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.
На винде есть проблема с Vulkan бекендом, починю в след версии.
Новое
- Дополнительные настройки для тайлов при эекспорте. Capture теперь умеет сохранять отдельные снимки одного тайла: каждый этаж TOI, Cruma Tower и подземелий, срезанные на нужной высоте. Ещё можно спрятать кусты и мелкие растения (passable surfaces), чтобы увидеть землю под густым лесом (
- Срез по высоте во Viewer. В виде сверху (клавиша O) в Scene -> World -> Height cut можно спрятать всё выше или ниже заданной высоты. Удобно искать этажи, а числа сразу подходят для Tile views.
- Масштаб интерфейса. Options -> Interface -> Interface scale: автоматически по настройкам системы или вручную от 100% до 300%. Исправляет слишком мелкий текст на Windows.
- В стартовом меню есть кнопка Logs. Если что-то сломалось, приложите лог к сообщению. Хранятся логи последних трех запусков.
Улучшено
- Cruma больше не закрывается молча и не показывает просто «Failed to launch JVM». При ошибке появляется сообщение с объяснением.
- Capture теперь сохраняет тыйлы в папку Pictures/Cruma, для каждого клиента отдельно.
- Можно включить удаление старых тайлов перед новым экспортом.
- На радар-карте больше не обрезаны крыша TOI, а Primeval Isle и Forest of Mirrors показаны без крон деревьев.
Ссылка на новую версию:
Ссылка на предыдущую версию:
Новое
- Дополнительные настройки для тайлов при эекспорте. Capture теперь умеет сохранять отдельные снимки одного тайла: каждый этаж TOI, Cruma Tower и подземелий, срезанные на нужной высоте. Ещё можно спрятать кусты и мелкие растения (passable surfaces), чтобы увидеть землю под густым лесом (
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
). Настройка: Options -> Capture -> Export -> Tile views. Готовые конфиги уже есть для TOI, Cruma Tower, Garden of Eva, Forgotten Temple, School of Dark Arts, Imperial Tomb, логова Антараса и комната Белета.- Срез по высоте во Viewer. В виде сверху (клавиша O) в Scene -> World -> Height cut можно спрятать всё выше или ниже заданной высоты. Удобно искать этажи, а числа сразу подходят для Tile views.
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
.- Масштаб интерфейса. Options -> Interface -> Interface scale: автоматически по настройкам системы или вручную от 100% до 300%. Исправляет слишком мелкий текст на Windows.
- В стартовом меню есть кнопка Logs. Если что-то сломалось, приложите лог к сообщению. Хранятся логи последних трех запусков.
Улучшено
- Cruma больше не закрывается молча и не показывает просто «Failed to launch JVM». При ошибке появляется сообщение с объяснением.
- Capture теперь сохраняет тыйлы в папку Pictures/Cruma, для каждого клиента отдельно.
- Можно включить удаление старых тайлов перед новым экспортом.
- На радар-карте больше не обрезаны крыша TOI, а Primeval Isle и Forest of Mirrors показаны без крон деревьев.
Ссылка на новую версию:
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
Ссылка на предыдущую версию:
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
Проверялись только следующие версии клиентов: C4, C6, GF, HF и Salvation: The Gathering / Orfen (EN152).
Последнее редактирование:

























