Releases: OGSR/OGSR-Engine
Release list
3.529
-
Побеждена многолетняя проблема с солнцем на старых локациях!
Эта проблема появилась более 10 лет назад, когда вX-Ray extensions(первом "кастомном" движке под ТЧ) появилась возможность включить правильные тени от солнца. OGSR - первый движок, в котором эта проблема наконец-то решена.
Суть проблемы была в том, что солнце, когда находится низко по отношению к горизонту, светит сквозь землю в бункере Сидоровича, сквозь стены в Баре, сквозь холмы на Свалке и тд и тп.
Нам удалось исправить это, поправив рендер теней. Теперь солнце светит правильно и правки локаций не требуются.
Для управления добавлена консольная командаr_smap_2side(по умолчанию ВКЛ). Если вы используете современные локации, в которых нету проблем с солнцем - лучше выключить это.
P.S. Если спустя время увидите это в других проектах без указания авторства - будете знать, откуда взяли! -
ImGui обновлен до
v1.92.9, вырезан старый код инпута -
Доработки редактора погоды: добавлен редактор позиций солнца из
sun_positions.ltxс сохранением и сбросом. -
Настройка
g_music_tracksбольше не требует перезапуск игры -
Клавиша
Deleteубирает биндинг в настройках клавиатуры -
Вернули сет активного задания по приоритету (поведение как в ориг движке). Добавил отдельную опцию
dont_switch_active_task_by_prioв секцию[features]для отключения. -
Добавлен скриптовый метод
ini:iterate_lines(section, function(id, value)) -
Full Changelog: 3.525...3.529
Свежие скриншоты из ShOC + свежий OGSR Engine + Atmospherics 2.69:








3.526
ImGui обновлён до актуальной версии с Docking:
- Переосмыслен UI редактора (
Shift+F10) с использованием Docking:
- Убраны неиспользуемые настройки из редактора погоды; сделаны адекватные пределы регулирования
far_plane,fog_distance-1000им более чем достаточно; убраны настройки солнца если используетсяsun_positions.ltxили включенdynamic_sun_movement. - Добавлен RT Debug
- Реализован выбор тем в окне
ImSettings - Заменен шрифт на тот что используется в OGSR:GA
Погода и рендер:
- Собрал под актуальный двиг погодный пак Atmospherics 2.69 RC6.5 OGSR Edition. Крайне рекомендуем использовать именно его. Рандомный скрин с этой погодой из одного из модов в разработке:
- Добавлен ключ запуска
-prefetch_weather_textures, а то из-за того что текстуры неба в OGSR загружаются отложено, при замене погоды, чтоб увидеть в логе недостающую текстуру, надо было ждать когда соотв. погода применится. А так на первом запуске будет видно чего не хватает. Для-dev_reference_copyи-dev_gamedata_unusedтоже активировал это. - Если есть
sun_positions.ltxс позициями солнца, то будет использоваться он, независимо от того, включен ли где-либоdynamic_sun_movement. - Расширил границы регулирования консольки
r_SunShafts_Radius, чтобы делатьmrmnwarлучи поменьше (да да, тут чем больше значение - тем меньше радиус лучей) - Вернул шейдер volumetric лучей из SSS, он лучше работает с туманом.
- Прочие мелкие фиксы шейдеров.
- Подкорректировал дефолт настройки рендера
Обновление компонентов:
- Библиотеки Xiph обновлены до актуальных версий
- OpenAL Soft обновлён до
v1.25.1 - Mimalloc обновлён до
v.3* - DiscordRPC заменён на кастомную версию с поддержкой кнопок со ссылками:
Остальные изменения:
- Добавлена возможность менять музыку в меню из скрипта. Например в
ui_main_menu.scriptкак то так:
self.shniaga:SetMusic("music\\ogsm_music")- Показ инфы в
demo_recordтеперь по клавишеF1. - Внесено много исправлений в код для сборки на актуальном тулчейне VS2026 c включенным C++23
- Возможно исправлены редкие вылеты в
CUICarBodyWnd::MoveItems()иCUIAmmoCellItem::UpdateItemText() - Исправлена проблема с контактными гранатами ( #551 )
- Full Changelog: 3.519...3.525
3.518
В этой версии очередные фиксы багов, которые нашли во время тестирования двига с прошлого релиза на новом патче для OGSR:GA. Вероятно патч будет выпущен до конца апреля.
Нашли баги с необновлением скелетов, партиклами, тенями.
Full Changelog: 3.516...3.519
3.515
В этой версии исправлены мелкие баги которые обнаружили в прошлой версии 3.509.
- Надо сказать игрокам чтоб удалили
user.ltx, т.к. тамr__tf_mipbias_smapнадо поменять на ноль. В прошлой версии значение по умолчанию было сильно задрано, тени могли испортиться. - Так же исправлены всякие проблемы со светом заметные в редких случаях
- Удалён файл
shaders\models_sniperlenses.s, добавленный по ошибке. Из-за него могли возникнуть проблемы с прицелами на оружиях.
Full Changelog: 3.509...3.516
3.509
Note
UPD: релиз обновлён 22.03.2026. Удалён файл shaders\models_sniperlenses.s, добавленный по ошибке. Из-за него могли возникнуть проблемы с 3D прицелами.
Самое значимое изменение в этом релизе - оптимизации шейдеров и рендера. FPS повысился на ~25-30%
-
Оптимизации для шейдеров террейна (как выяснилось они были самые тяжелые здесь): отключены расчеты луж при сухой погоде, при дожде лужи рендерятся не далее 100 метров от игрока.
-
Настройка
r_sslr_enable offпереименована, теперь отключает все лужи полностью, на отражения в обычной воде не влияет, они много не хавают по сравнению с лужами. -
Пресеты графических настроек и вообще дефолт настройки рендера настроены более оптимально.
-
Разделены размеры солнечных каскадов. Для дальних можно понижать разрешение, типа так
r__smap_cascade0_size 2048x2048
r__smap_cascade1_size 1536x1536
r__smap_cascade2_size 1024x1024-
В
rs_statsдобавлен вывод статистики по каждому каскаду отдельно -
Добавлена консольная команда
r2_smap_low_lod- если включено, прогрессивные деревья будут рендериться на тенях максимально упрощённо. На вид теней вроде бы не очень влияет. -
Отдельный размер smap для
LP_smap_pool -
Добавлена консольная команда
ssfx_inter_branches, чтобы отключать отдельно от травы взаимодействие актора / нпс с кустами / ветками. По умолчанию - выкл. -
Фикс проблем с 3dss прицелами на последнем STSoC Weapon Pack
-
Оптимизирован код работы с шейдерами Beefs NVG
-
Вырезан старый шейдер пнв и shader_param_grayscale
-
Упрощен шейдер травы - убрана поддержка бампов. Если у кого-то трава с бампами и вы понимаете, для чего они вам нужны, заменяйте шейдеры с папки
_bumped_grass. Там оставлена версия шейдеров с поддержкой бампов -
Добавлена консольная команда
r_alphatest_threshold: можно немного подрегулировать "пышность" растительности (но без фанатизма, используйте это только если вы понимаете что делаете.) В некоторых случаях может быть полезно. -
Улучшения для Peak Volumetric by LVutner
-
volumetric_blur от SSS теперь не нужен и поэтому вырезан
-
Добавлены консольные команды r_mt_rain/sun_draw, для экспериментов, чтобы было отключать не весь mt_sun/rain а только draw часть. Половину, так скажем.
-
Добавлена консольная команда
ssfx_hud_raindrops on/offдля отключения эффекта капель дождя на оружии -
Для разработчиков: Настроен ASAN для Debug конфигурации. Для включения раскомментировать
EnableASANвOgsrBuildProps.propsи полностью пересобрать двиг. Запускать двиг примерно так (пути к папке компилятора свои вписать конечно же):
set ASAN_OPTIONS=halt_on_error=0:continue_on_error=1:abort_on_error=0
set COE_LOG_FILE=ogsr_asan.log
set PATH=C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC\14.50.35717\bin\HostX64\x64;%PATH%
set ASAN_SYMBOLIZER_PATH=C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC\14.50.35717\bin\HostX64\x64\llvm-symbolizer.exe
start bin_x64_DBG_ASAN\xrEngine.exeТак репорт запишется в ogsr_asan.log в папке с игрой.
- В конфиг ПДА добавились настройки времени когда экран будет вкл/выкл после старта анимаций убирания/доставания пда
screen_on_delay = 0.7
screen_off_delay = 0.5- Фикс скриптового метода
wnd:SetWndSize(x, y)
Full Changelog: 3.501...3.509
3.500
- Теперь terrain parallax из SSS доступен в публичной версии OGSR Engine. Включение в меню или консольной командой
r_terrain_parallax_enable.
Для правильной его работы, особенно чтобы правильно работали лужи, нужна перенастройка террейна: прописать террейнам вshaders.ltx/xrтекстуры из Anomaly+SSS, которые содержат правильные бампы под это. Пример:
[levels\aver_grass]
...
detail_name = detail\ground_grass_01
r2_r = detail\ground_grass_01
r2_g = detail\ground_asphalt_01
r2_b = detail\ground_earth_01
r2_a = detail\ground_mud_01Пример shaders.ltx из Secret Trails: https://github.com/I-AmDead/Secret-Trails/blob/80bb606/gamedata/shaders.ltx#L897
Кроме этого, для каждой текстуры террейна нужно подобрать свой offset. На offset влияет bump текстуры. Offset'ы задаются консольной командой ssfx_terrain_offset (их может быть 4). Для каждой локации подбирается набор из 4 текстур террейна, а offset'ы переключаются скриптом при переходе на новую локацию. Пример: https://github.com/I-AmDead/Secret-Trails/blob/80bb606/gamedata/scripts/ogsr/ogsr_shaders_control.script#L17
--Примерно так это настроено в Secret Trails
local ssfx_parallax_setup = {
["l01_escape"] = { -0.25, -0.15, -0.1, 0.0 },
["l02_garbage"] = { -0.15, -0.05, -0.1, 0.1 },
["l03_agroprom"] = { -0.2, -0.05, -0.13, 0.1 },
["l04_darkvalley"] = { -0.1, -0.05, -0.15, 0.1 },
["l05_bar"] = { -0.15, -0.1, -0.13, 0.0 },
["l06_rostok"] = { -0.07, -0.05, -0.07, 0.0 },
["l07_military"] = { -0.1, -0.1, -0.1, 0.05 },
["l08_yantar"] = { 0.1, -0.1, -0.45, 0.0 },
["l09_deadcity"] = { -0.13, -0.15, -0.25, 0.15 },
["l10_radar"] = { -0.2, -0.05, -0.1, 0.0 },
["l10_red_forest"] = { -0.15, -0.05, -0.15, 0.0 },
["l11_pripyat"] = { 0.1, -0.05, -0.1, -0.05 },
["l12_stancia"] = { -0.1, -0.05, -0.05, 0.1 },
["l12_stancia_2"] = { -0.05, 0.0, 0.0, 0.0 },
["l13_deep"] = { -0.2, -0.25, -0.2, 0.15 },
["swamp"] = { -0.15, -0.1, -0.2, 0.0 },
}
local function terrain_offset()
if (ssfx_parallax_setup[level.name()]) then
local setup = ssfx_parallax_setup[level.name()]
cmd("ssfx_terrain_offset " .. string.format("%f, %f, %f, %f", setup[1], setup[2], setup[3], setup[4]))
else
cmd("ssfx_terrain_offset 0, 0, 0, 0")
end
endЕсли задать offset неправильно, глубина намокания будет или недостаточной или слишком сильной.
Конечно наверное можно взять какие нибудь текстуры из паков под ТЧ/ЗП с нормальными бампами и под них всё это настроить, но мне кажется с этим ещё больше возьни будет, чем с готовыми из Anomaly+SSS.
В целом возьни с этими настройками много, но результат стоит того:
- Добавлен новый объёмный свет - Peak Volumetric shader by @LVutner
Оптимальные настройки для любых источников света:volumetric_intensity 0.2,volumetric_distance 1.
Можно аномалиям, у которых включен idle_light, прописать в конфиги:
idle_light_volumetric_enable = true
idle_light_volumetric_intensity = 0.25
idle_light_volumetric_distance = 1По умолчанию выключил r2_exp_far_no_shadows, чтоб волюметрики не исчезали с расстоянием.
-
Управление шейдерными макросами
USE_ACES,SSFX_SHADOWS,SSFX_SSSперенесено в движок, теперь их можно переключать из консоли:ssfx_use_aces,ssfx_shadows_enable,ssfx_sss_enable. -
Поправлено мельтяшение намокания под деревьями во время дождя в некоторых случаях
-
Добавлены недостающие в публичной версии движка скриптовые экспорты для работы модного скриптового компаса https://github.com/I-AmDead/Secret-Trails/blob/main/gamedata/scripts/jr_compass.script
-
Добавлен инвентарный звук разрядки оружия
snd_unload_wpn. -
Добавлены новые звуки для болта и гранат:
snd_draw,snd_holster,snd_throw_start,snd_throw,snd_throw_end -
Добавлена более точная настройка позиции броска гранаты/болта из позиции худовой кости руки. Пример настройки:
[wpn_bolt]
throw_point_bone = r_hand
throw_point = 0, 0, 0 ;(offset from r_hand)Старые параметры throw_point / dir - предварительно не забудьте удалить из конфигов!
-
Добавлен S2-стайл быстрый бросок болта по ЛКМ. Чтобы включить, надо прописать в конфиг болта
quick_throw_use = true.
Так же добавлены звуки и анимации для быстрого броска болта:
snd_quick_throw_start,snd_quick_throw,snd_quick_throw_end
anm_throw_quick_begin,anm_throw_quick,anm_throw_quick_end
и поддержка отдельногоquick_throw_point(по умолчанию равенthrow_point) иquick_throw_point_bone(по умолчанию равенthrow_point_bone, может пригодиться для бросков болта с разных рук или чего то подобного) -
Удалено чтение из худовой секции болтов/гранат параметров throw_point / dir - они не юзаются и не юзались ранее. throw_dir в секции мировой модели тоже не использовался.
-
Добавлена консольная команда
g_throw_dbgдля визуальной отладки позиций броска болтов/гранат -
Добавлен скриптовый каллбек
on_actor_boltthrowна бросок болта -
Поправлены проблемы с тенью от актора от 1 лица
-
Множество мелких улучшений и изменений. Full Changelog: 3.490...3.501
3.490
-
Библиотека
OpCoDeобновлена до версии1.3.2 -
Множество улучшений в работе файловой системы
SquashFS -
Улучшения в работе звука, качество должно стать получше. Звук теперь воспроизводится в 32-битном формате
WAVE_FORMAT_IEEE_FLOAT. Вкл/выкл можно консольной командойsnd_enable_float_pcm(по умолчанию вкл.) -
Улучшения в работе
R_occlusion- убраны ожидания результатов запросов от лампочек, теперь запрос выполняется асинхронно столько сколько ему надо. Явное ожидание осталось только для запросов отsmapvis, но тесты показывают что самsmapvisне влияет на fps, его в общем то можно выключить. Добавлена консольная командаr2_disable_smapvisдля отключенияsmapvis. Хотя судя по статистике он вроде бы работает и что то отсекает. -
Улучшена работа некоторых мьютексов с использованием
std::shared_lock. Они лучше подходят для некоторых задач. -
Исправлена проблема с тряской камеры, обнаруженная в прошлой версии.
-
Исправлена проблема что монстры в некоторых случаях могли помирать при спавне из за физических коллизий.
-
Множество мелких улучшений и изменений. Full Changelog: 3.471...3.490
3.478
3.471
Caution
UPD: В этом релизе обнаружена серьёзная проблема, не рекомендуем использовать его. Новая исправленная версия будет выпущена в последних числах декабря!
-
Добавлена поддержка множества форматов AI-сеток и больших
level.homдля больших локаций. -
OpenAL Softобновлён до v1.24.3 -
Добавлена кастомизация цвета индикаторов типа
radiation_staticвmaingame:
[warning_icon_color]
min = 255, 255, 105, 180 ;ARGB
max = 255, 0, 180, 255 ;ARGB- Добавлен метод
SetLightAnimдля статика через скрипты:
--например удобно можно подсветить взятые предметы в инвентаре, если там много лута
local o = level.object_by_id(id)
if o then
local st = o:get_cell_item()
if st then
st:SetColor(GetARGB(200,255,255,255))
st:SetLightAnim("ui_slow_blinking", true, true, false, true)
end
end-
Поддержка ЗП (стерео) формата эмбиента/музыки. ТЧ формат плох тем, что если произойдёт какой-то микрофриз, то один звук будет отставать от другого. Стерео формат у нас давно полноценно поддерживается, поэтому, почему нет?
-
COP-Style Scope Texture Support:
Поддержка текстурных прицелов в ЗП стиле, когдаscope_textureуказывает на структуру вscopes.xml. Поддержка расширена в видеwpn_crosshair_fallback, который будет использоваться для всех прицелов, который не нашли вscopes.xml. Для конкретных прицелов fallback можно отключить черезwpn_crosshair_fallback = falseв секции прицела или оружия.
Глобально включается вexternal.ltx:cop_style_scope_texture = true -
Добавлена поддержка отдельных ui xml для ultra-wide мониторов. Если ultra-wide монитор, будут искаться
_21.xml. Если не нашли, будут использоваться_16.xml, как раньше. -
Добавлены параметры коллизий под старое оружие, теперь коллизия с препятствиями на нем снова работает.
-
Фикс опции
busy_actor_restrictions- раньше её отключение работало не для всех ситуаций -
Добавлена консольная команда
level_env_mod_exportдля автораспаковки файловlevel.env_modвltx. -
Экспортированы в скрипты методы
ini_file:append_section(sect_name)для добавления новой секции в файл, иini_file:save_ini()для сохранения файла на диск. -
Фикс цвета перекрестья на монстрах
-
Убраны тени на тёмном тексте
-
Исправлен рандомный вылет
[CUIWeaponCellItem::scalar deleting destructor'()] + [86 byte(s)] -
Фикс зависания гранатомётов с
tri_state_reload = off -
Исправлено зависание оружия если выстрелить из ПГ когда оружие заклинило.
-
Добавлено множество фиксов в рендер: исправлено пропадание намокания и проблемы с тенями в некоторых случаях.
Доработки переключения языка:
- Переделано хранение имён персонажей: вместо самих переведённых имён мы будем хранить id имени и фамилии. В таком случае имена у персонажей будут правильно отображаться при смене языка.
- Добавлена перезагрузка многих строк в UI, но пока для полной смены языка всё ещё требуется перезапуск игры. Надо придумать универсальное решение для перезагрузки всех текстов в UI.
- Добавлено определение языка игры при первом запуске в зависимости от языка системы. Т.е. если у игрока винда на английском, то игра запустится тоже на английском языке, если такой имеется. После первого запуска, когда есть
user.ltx, язык уже будет читаться оттуда, как и обычно. Чтобы работало корректно, языки должны быть наименованы в форматеISO-639-2(первые три буквы из имени языка, напримерrus,eng). Наименования можно посмотреть >>здесь<<.
[string_table]
language = rus, eng

