Cruma - Lineage 2 World Viewer & Radar Map Generator

~RosT~

Знаменитый
Участник
Старожил I степени
Легенда Истоков
Сообщения
10
Розыгрыши
0
Репутация
0
Реакции
17
Баллы
1 235

Cruma​

Предыстория​

Примерно в 2024 году мне понадобилась радар мапа высокого разрешения и я связался с одним из разработчиков в сообществе, который занимался подобными вещами. Разработка должна была занять около четырёх месяцев и обойтись почти в $10к. Я посчитал эту цену слишком высокой для моих нужд и решил создать такую карту самостоятельно.

Вскоре я наткнулся на проект (благодарю justgos, который судя по всему является его автором). В целом проект работал, но, как отмечал сам автор, проект был довольно messy. В нём присутствовали баги, производительность оставляла желать лучшего, а загрузить весь игровой мир целиком было невозможно.

Позже я нашёл l2mapconv, который на мой взгляд был реализован значительно лучше. Однако он поддерживал только некоторые типы текстур для статических мешей. Другие типы материалов, terrain и различные остальные элементы отображались без текстур.

Поскольку Java была мне гораздо ближе, а с C++ мне приходилось работать скорее по необходимости, я решил взять за основу второй проект, переписать его на Java и использовать некоторые наработки из первого проекта для поддержки большего количества типов материалов. Из-за существенных различий в архитектуре двух проектов это процесс не был простым/быстрым. В общей сложности работа заняла около двух-трёх месяцев. В результате я получил не только необходимую мне мапу, но и возможность загружать и исследовать весь игровой мир клиента L2.

Из неподдерживаемых возможностей оставались только FX эффекты, анимация билбордов (billboards), небо. Также присутствовали некоторые проблемы с ambient lighting, но для создания радарных карт всё это не имело особого значения.

Возвращение к проекту​

Несколько месяцев назад я решил попробовать одну из новых моделей OpenAI чтобы проверить сможет ли она помочь мне довести до ума рендеринг всех типов материалов, а также заменить OpenGL на bgfx. Основная мотивация заключалась в том, что macOS, моя основная операционная система, поддерживает OpenGL только до версии 4.1, а для дальнейшего повышения производительности мне требовались возможности более новых версий OpenGL. bgfx позволяет решить эту проблему благодаря поддержке различных графических бэкендов, включая нативный Metal на macOS, Vulkan и DirectX.

Текущее состояние​

Сейчас проект достиг стадии, когда мне уже не стыдно поделиться. С его помощью можно создавать радарные карты для любой версии клиента Lineage 2* практически в любом разрешении. При этом каждый тайл карты также экспортируется в отдельный файл. Лично мне было довольно интересно просто увидеть весь игровой мир целиком и получить возможность посетить любую его точку.

Доступные режимы​

В приложении доступны три режима:
  • Explore: Свободное перемещение по миру с управлением камерой через WASD. Скорость движения можно изменять клавишами 1–5, а также ускорять или замедлять с помощью Shift и Alt. F1 отображает все шорткаты.
  • Inspect: Позволяет выделить и изолировать любой объект. Я добавил этот режим главным образом для быстрой диагностики и поиска проблем с материалами.
  • Diagnostics

Поддерживаемые платформы и производительность​

Приложение поддерживает Windows, macOS и Linux. Лучше всего оно работает на macOS, поскольку именно на этой платформе проводилась большая часть тестирования. На моём M5 Max я стабильно получаю более 50 FPS при обзоре всего мира. Также я тестировал приложение на Windows с использованием бэкендов DirectX 11, DirectX 12 и Vulkan.

Возможные проблемы​

Если у вас возникнут сложности или ошибки, пишите в этой теме. Пожалуйста, указывайте версию операционной системы и клиента Lineage 2, который используете. Если ваш ПК не справляется с нагрузкой, попробуйте изменить параметры в основных настройках а так же в Scene Settings после загрузки мира либо загрузите только часть игрового мира.

Инструкции по установке, настройке и использованию приложения можно найти в README.
Link:

Скриншоты:
castle.jpg giran.jpg toi.jpg world.jpg

map.jpg

Проверялись только следующие версии клиентов: C4, C6, GF, HF и Salvation: The Gathering / Orfen (EN152).
 
Последнее редактирование:
Спасибо. Полезный и нужный софт.
Шрифт конечно выбран очень мелкий, пришлось лупу брать.
Но не разу программа не доработала, то закрылась то такая ошибка
1791523232129.webp
 
Последнее редактирование:
Спасибо. Полезный и нужный софт.
Шрифт конечно выбран очень мелкий, пришлось лупу брать.
Но не разу программа не доработала, то закрылась то такая ошибка
Посмотреть вложение 98344
Привет, спасибо за фидбек. Размер шрифта и обработку ошибок поправлю. Я думаю, что вылет может быть из-за памяти. Откройте файл app\Cruma.cfg (папка app лежит рядом с Cruma.exe) и замените строку java-options=-Xmx12g на, к примеру, java-options=-Xmx8g, если у вас 16 ГБ. Затем перезапустите Cruma и попробуйте загрузить только какую-то часть тайлов.

Если не поможет, напишите, сколько у вас памяти и какая видеокарта и пришлите файлы hs_err_pid*.log из папки Cruma, если они есть.
 
Привет, спасибо за фидбек. Размер шрифта и обработку ошибок поправлю. Я думаю, что вылет может быть из-за памяти. Откройте файл app\Cruma.cfg (папка app лежит рядом с Cruma.exe) и замените строку java-options=-Xmx12g на, к примеру, java-options=-Xmx8g, если у вас 16 ГБ. Затем перезапустите Cruma и попробуйте загрузить только какую-то часть тайлов.

Если не поможет, напишите, сколько у вас памяти и какая видеокарта и пришлите файлы hs_err_pid*.log из папки Cruma, если они есть.
Братишка 9 тысяч из 10 наверно было б за название понял да? Я просто за последние 10 лет ахуеваю бл**ь от того как люди придумывают названия своим проектам в области l2 - не важно что это сервер, софт или ещё что то: diontown, tanatos, orentown, l2baium, l2tateossionring.com, l2animalskin.ru
Я просто не могу понять неужели нельзя в англ словаре посмотреть или попросить ИИшку подсказать слово не связанное с миром l2 красиво описывающее ресурс даже без описания?
Хорошо пускай представим что крума это башня с высоты которой многое видно но ведь ТоИ выше? пизда.
 
скинь исход в ЛС - тоже хочу себе такую програмку накидать, может тут хоть какая-то оптимизация будет )))

Условно меня интересует как вообще получилось сделать отображения всех карт при условии что одна карта по 4гб (если полностью загрузить) в память займет...
 
ты че охуел
орен это бренд который был создан в 22 году, не было еще никаких нейросетей и прочих шляп, мы его сразу развивали как "подвал орена", нишевый сервер для работяг
 
Последнее редактирование:
Спасибо. Полезный и нужный софт.
Шрифт конечно выбран очень мелкий, пришлось лупу брать.
Но не разу программа не доработала, то закрылась то такая ошибка
Посмотреть вложение 98344
Проверь версию java в PATH или укажи путь к нужной версии, должно сработать
 
this is gold, thanks
 
ты че охуел
орен это бренд который был создан в 22 году, не было еще никаких нейросетей и прочих шляп, мы его сразу развивали как "подвал орена", нишевый сервер для работяг
Хуёво развивали, раз не додумались до красивого названия, поставили бы HunterVillageTownCity.ru

Чё то я в тиктоке в комменты поднасрал что проект ждёт судьба dointown так сразу приставку town убрали оставили только oren
 
Назад
Сверху Снизу