OGSR 2
Движок X-Ray для «S.T.A.L.K.E.R.: Тень Чернобыля» на Vulkan — ПК, Nintendo Switch, Android, Linux
X-Ray engine for S.T.A.L.K.E.R.: Shadow of Chernobyl, rebuilt on Vulkan for PC, Nintendo Switch, Android and Linux
Русский
OGSR 2 — продолжение OGSR Engine: тот же движок «Тени Чернобыля», но с новым рендером на Vulkan, единым кодом для нескольких платформ и переписанными узкими местами (ИИ, звук, интерфейс, загрузка). Цель — играть в моды на OGSR на ПК и на портативных устройствах со стабильными 60 кадрами.
Warning
Проект в активной разработке. Ветка main собирается, но отдельные системы (порты Switch и Android,
новый боевой ИИ) ещё не доведены. Готовых сборок пока нет.
Что нового по сравнению с OGSR
| Область | Что сделано |
|---|---|
| Рендер | Форвардный рендер на Vulkan вместо D3D11; bindless-материалы мира, VSM-тени, дальняя тень в фоне, LOD скинов, туман и дождь с намоканием, DLSS (Streamline/NGX) и FSR |
| Платформы | Один код на все платформы: Switch и Android — это пресет настроек, а не копия движка. Сборка Switch (.nro, devkitPro + mesa/NVK), Android (libmain.so, NDK + SDL2), первый Linux-бинарь |
| Интерфейс | Меню, инвентарь, торговля, диалоги, КПК, экран загрузки и всплывающие сообщения на RmlUi (HTML/CSS), управление с геймпада, колесо оружия |
| ИИ | Боевой ИИ v2: запрос позиций, командир боя, «запечённые» дома из AI-сетки, карта угрозы; слух и зрение NPC с учётом того, заметили ли игрока |
| Звук | Глухость за стенами, HDR-микс, распространение звука по AI-сетке, автоматический реверб; на Switch — свой драйвер на DSP (audren) |
| Производительность | Сборщик Lua без рывков (финализаторы luabind вне атомарной фазы), быстрый спавн NPC, фоновая предзагрузка, приоритеты потоков, аим-ассист для геймпада |
| Сеть | Транспорт на GameNetworkingSockets (xrOnlineNet) — основа для совместной игры |
| Обновления | Встроенный апдейтер: проверяет GitHub Releases этого репозитория, качает сборку с подписанным манифестом (Ed25519) и подменяет файлы при следующем запуске — на ПК, Switch и Android |
Платформы
| Платформа | Состояние | Как собрать |
|---|---|---|
| Windows x64 | ✅ основная | Visual Studio 2022, Engine.sln — см. docs/BUILD_VULKAN.md |
| Nintendo Switch (homebrew) | 🟡 играбельно, оптимизация | CMake + cmake/toolchain-switch.cmake (devkitPro) |
| Android arm64 | 🟠 запуск движка | ogsr_engine/cmake/android/build.sh (NDK 27, SDL2) |
| Linux | 🟠 первый бинарь | ogsr_engine/CMakeLists.txt + cmake/toolchain-aarch64-linux-clang.cmake |
Сборка под Windows
Нужно: Visual Studio 2022 (нагрузка «Разработка классических приложений на C++» + ATL),
Vulkan SDK 1.3+ с заданной переменной VULKAN_SDK, Git.
git clone https://github.com/babasha/OGSR-2.git
cd OGSR-2
Update_Components.cmdЗатем вручную поставить зависимости, которые скрипт не качает сам (RmlUi + freetype, AMD FidelityFX SDK,
Streamline, meshoptimizer) — точные команды записаны комментариями в Update_Components.cmd.
После этого открыть Engine.sln, выбрать Release | x64 и собрать решение.
Скомпилированные шейдеры (*.spv) лежат в репозитории, glslc для запуска не нужен.
Подробности, деплой в игру и частые ошибки — в docs/BUILD_VULKAN.md.
Структура репозитория
ogsr_engine/ исходники движка
xr_3da/ ядро и главный цикл
xrCore/ xrCDB/ базовые библиотеки, коллизии
xrGame/ игровая логика, ИИ, интерфейс RmlUi
Layers/xrRenderVulkan/ рендер на Vulkan
xrSound/ звук (OpenAL, audren на Switch)
xrOnlineNet/ сетевой транспорт
android/ cmake/ сборка Android, Switch, Linux
3rd_party/ сторонние библиотеки (часть подтягивает Update_Components.cmd)
Game/ ресурсы движка (gamedata)
_tools/ утилиты: упаковка ресурсов для Switch, выпуск обновлений (update/), разбор профилей, шрифты UI
docs/ документация по сборке
Лицензия
Код движка основан на исходниках X-Ray от GSC Game World и распространяется на условиях
LICENSE.md: только некоммерческое использование, с сохранением уведомления об авторских правах.
Сторонние библиотеки в 3rd_party/ — под своими лицензиями.
Проект не связан с Nintendo, GSC Game World или AMD/NVIDIA. Для игры нужна своя легальная копия «S.T.A.L.K.E.R.: Тень Чернобыля»; ресурсы игры в репозитории не распространяются.
Автор
Егор Бабушкин — github.com/babasha: рендер на Vulkan, порты на Switch, Android и Linux, интерфейс на RmlUi, боевой ИИ, звук, апдейтер и всё остальное, что отличает OGSR 2 от OGSR.
Поддержать разработку: boosty.to/babaiiia.
Благодарности
Всем, на чьей работе стоит этот движок: команде OGSR и её участникам, а также Im-dex, SkyLoader, Shoker, OpenXRay, vTurbine, solbjorn, abramcumner, ForserX, Xottab-DUTY, morrey, Anomaly, Alpet & KD, CoC-Xray, авторам RmlUi, devkitPro и mesa.
English
OGSR 2 continues OGSR Engine: the same Shadow of Chernobyl engine with a new Vulkan renderer, a single codebase for several platforms, and rewritten hot spots (AI, audio, UI, loading). The goal is to play OGSR-based mods on PC and handhelds at a stable 60 fps.
Warning
Work in progress. main builds, but the Switch and Android ports and the new combat AI are not finished. No binary releases yet.
Highlights
- Vulkan forward renderer replacing D3D11: bindless world materials, VSM shadows, async far shadow, skinned LODs, fog, rain and wetness, DLSS and FSR.
- One codebase, many targets: Windows x64, Nintendo Switch homebrew (
.nro, devkitPro + mesa/NVK), Android arm64 (NDK + SDL2), Linux. Handheld targets are a settings preset, not a fork. - RmlUi interface: main menu, inventory, trade, dialogs, PDA, loading screen and HUD news in HTML/CSS, full gamepad support, weapon wheel.
- Combat AI v2: position queries, squad commander, houses baked from the AI mesh, threat map; NPC hearing and sight depend on whether they have noticed the player.
- Audio: occlusion, HDR mix, sound propagation over the AI mesh, automatic reverb; a native DSP (audren) backend on Switch.
- Performance: stall-free Lua GC, fast NPC spawning, background preloading, thread priorities, gamepad aim assist.
- Networking: GameNetworkingSockets transport (
xrOnlineNet) as the base for co-op. - Updates: built-in updater that checks this repository's GitHub Releases, downloads an Ed25519-signed build and swaps it in at the next start (PC, Switch, Android).
Building on Windows — Visual Studio 2022 (Desktop C++ + ATL), Vulkan SDK 1.3+ with VULKAN_SDK set, Git:
git clone https://github.com/babasha/OGSR-2.git
cd OGSR-2
Update_Components.cmdThen install the manual dependencies listed as comments in Update_Components.cmd (RmlUi + freetype, AMD FidelityFX SDK,
Streamline, meshoptimizer), open Engine.sln, pick Release | x64 and build. Full guide (in Russian): docs/BUILD_VULKAN.md.
Author — Egor Babushkin, github.com/babasha: the Vulkan renderer, the Switch, Android and Linux ports, the RmlUi interface, combat AI, audio, the updater and everything else that sets OGSR 2 apart from OGSR. Support the development on Boosty.
Credits — everyone whose work this engine stands on: the OGSR team and contributors, OpenXRay, Anomaly, CoC-Xray and the people listed in the Russian section, plus the authors of RmlUi, devkitPro and mesa.
License — engine code derives from GSC Game World's X-Ray source and is covered by LICENSE.md: non-commercial use only. Third-party libraries keep their own licenses. Not affiliated with Nintendo, GSC Game World, AMD or NVIDIA. You need your own copy of S.T.A.L.K.E.R.: Shadow of Chernobyl; no game assets are distributed here.