Раньше я занимался проектом Lost World Origin, потом немного работал над Lost World Quantum (далее LWQ). Занимался я картостроением, отвечал за полную Припять и т.д. И для LWQ хотелось чего - то большего, а именно - полной Зоны. Попробовали, не получилось, инструменты не соответствовали. И захотелось собрать оригинальный SDK, именно в том виде, каком он существовал у всех, с небольшимим изменениями: фикс известных багов и устранение проблемы создания больших карт. После непродолжительной борьбы с Borland C++ Builder 6.0 получилось собрать LevelEditor. Однако, все оказалось гораздо банальнее: после устранения проблем с размерами, координатами и прочим, SDK стал вылетать по памяти, так как был 32 битным. Попытка дать ему длинные адреса не увенчалась успехом, ему все также не хватало (на тот момент у меня была соединённая карта Теней Чернобыля, то есть полная Зона). Именно после этого я и решился на порт SDK по 64 битную архитектуру, соответственно с переездом на более совеременные IDE (Borland C++ Builder 6.0 не поддерживает архитектуру 64 бит). Кратко говоря...путь был весьма не прост, один баг меня поставил в тупик дня на четыре. Однако, в целом все получилось успешно. Конечно, есть еще куда стремиться и развиваться - но у же другим, тем, кому это будет интересно :) Я свою цель и мечту реализовал по полной, поэтому и выкладывюю полный и настроенный код. Успехов всем желающим!
- Visual Studio 2026 (toolset 145);
- Embarcadero RAD Studio 13.1. Обязательно запустить от имени администратора, так как редакторы настроены на UAC!
- Открыть в rad studio проект components (code\SDK\components\components.groupproj);
- Собрать проекты elpackB6, elpkdbB6, elpproB6, editorB(главный проект, собирает все) в x64 Debug. Проверить, что все зависимости тоже выставлены в x64 Debug;
- Собрать проекты elpackB6, elpkdbB6, elpproB6, editorB(главный проект, собирает все) в x64 Release. Проверить, что все зависимости тоже выставлены в x64 Release;
- Собрать проекты dceldbB6, dcelppB6, dclelpB6, editor(главный проект, собирает все) в x64 Release. Проверить, что все зависимости тоже выставлены в x64 Release. Установить каждый компонент. Порядок установки: editor, dceldbB6, dcelppB6, dclelpB6;
- Открыть движок (code\engine.vc2008\engine.sln) в Visual Studio, выбрать нужный конфиг и собрать xrEntry(главный проект, собирает все);
- Открыть в rad studio проект all_editors (code\engine.vc2008\all_editors.groupproj), выбрать проект ActorEditor или LevelEditor, и собрать в нужной конфигурации и архитектуре (достаточно собрать эти проекты, все остальное соберется автоматически);
- Выходные файлы будут в папке bin/архитектура/конфигурация;
- Запуск стандартный, папка start, выбрать нужный батник (подредактируйте пути внутри батников к своим игровым ресурсам).
- Python 3
- RAD Studio 13.1 (MSBuild из rsvars.bat, платформа проектов Win64x);
- Visual Studio 2026 (MSBuild.exe, сборка Win64 для engine.sln);
- 7-Zip (7z.exe) Пути по умолчанию задаются в начале скрипта или через переменные окружения RAD_STUDIO_BIN, VSINSTALLDIR, SEVEN_ZIP_EXE.
- build_release.bat - собирает release движок и SDK и пакует в 7zip;
- build_debug.bat - собирает debug движок и SDK и пакует в 7zip;
- build_full.bat - собирает debug и release движок и SDK и пакует в 7zip.
- Движок: выбрать запускаемым проектом xrEntry, выставить у него рабочим каталогом папку до игровых ресурсов (до местоположения игровых архивов и/или gamedata), запустить;
- SDK: выбрать запускаемым проектом ActorEditor/LevelEditor, выставить у них рабочим каталогом папку до SDK - ресурсов (до местоположения папки gamedata/rawdata), не забыть про аргумент командной строки -editor, запустить.
- Если при запуске ошибки связанные с openal, установить из папки : tools/redistributable_package - oalinst;
- Если при запуске ошибки с ucrtbase(-d), установить из папки : tools/redistributable_package - winsdksetup;
- При открытии редакторов в IDE RAD Studio иногда могут быть жалобы на компоненты AlexMX/ElPack. Нужно просто перезапустить IDE.
- Open Xray (https://github.com/OpenXRay/xray-16);
- xray_re-tools (https://bitbucket.org/stalker/xray_re-tools/);
- OGSR (https://github.com/OGSR/OGSR-Engine).
- Engine x64 Debug/Release;
- Maya Plugins 2026 x64 Debug/Release;
- Xray SDK Level Editor/Actor Editor x64 Debug/Release;
- Xray Compilers x64 Debug/Release.
- Движок пересобран под стандартами C++ 17/23;
- Удален BugTrup;
- Обновлены luabind, LuaJIT, minilua, Buildvm на самые свежие версии;
- Для плагинов maya используется ядро xray_re;
- Сделана общая точка запуска xrEntry;
- Добавлены все необходимые для запуска dll;
- Приложены все инструменты для запуска собранных бинарников (SDK Win, dx sdk, open al);
- Добавлены батники под все конфигурации для быстрого старта собранного программного продукта;
- Сам SDK переведён под clang компилятор и стандарт C++ 23;
- Всё: добавлена всевозможная трассировка стека. Движок отлавливает практически все падения и трассирует их в стек;
- SDK: исправлен вылет nodefault reached на win > 7;
- SDK: удален rt_object_props.ltx;
- SDK: исправлен limit 32 items for multiply add objects (256 items);
- SDK: максимальный размер lod - текстуры теперь 8к;
- SDK: вывод координат до 100000, и до сотых - при редактировании позиции объекта в LE;
- SDK: исправлен баг, когда трава отказывалась отрисовываться;
- Всё: удалена x86, завезена x64;
- SDK: диалоговые окна заменены на COM - реализацию;
- SDK: корректное сохранение и загрузка dti (индексы + модели травы, файл);
- SDK: вывод списка thm с указанием проблемной при вылете (Pos<=Size) && (Pos>=0);
- SDK: переименование материалов в AE и LE;
- SDK: вывод настроек камеры в быстрые настройки LE(по клавише enter);
- SDK: select texture(AE) - исправлена ошибка при выборе текстуры;
- SDK: check new textures (AE, LE) - создание новых thm, исправлена ошибка по stack overflow;
- SDK: ai maps (LE) - исправлены фризы при использовании инструмента;
- SDK: UAC для редакторов по - умолчанию;
- SDK: корректный скейлинг на больших разрешениях;
- xrLC: исправлен вылет при очень больших полигонах (переполнение);
- xrLC: добавлена возможность постановки компиляции на паузу;
- вся кодовая база переведена на кодировку UTF-8 с исправлением испорченной кодировки;
- обновлен nvtt2 до nvtt3 (с поддержкой cuda). Теперь сборка LOD - текстуры в LE занимает считанные секунды;
- SDK: при загрузке карты и отсутствии spawn/object - моделей есть кнопка, которая прерывает загрузку уровня для экономии времени;
- mixed конфигурация - не настроена.
- Windows 10;
- Windows 11
Проект открыт для изменений и модификаций.