Skip to content

Releases: OGSR/OGSR-Engine

2.1.390

05 Sep 13:01
Compare
Choose a tag to compare

Фундаментальные изменения в движке:

  • Все модули движка линкуются статически, поэтому оставлен только DX11 рендер.
  • Двиг переведён на С++20. Используются самые новые features, такие как std::format, и тд.
  • Интегрирован mimalloc - is a general purpose allocator with excellent performance characteristics.

Наиболее значимые изменения:

  • Теперь двиг поддерживает погоду из Зова Припяти. Тип погоды определяется по наличию специфичных для этой погоды строк в fsgame.ltx. Если их нет - используется ТЧ-стайл погода.

  • Починен и возвращён оптимизированный MSAA. Крайне рекомендуется к использованию, потому что хорошо сглаживает провода и полупрозрачную геометрию. На настройках 2х/4х жрет не очень много fps.

  • В меню добавлена настройка размера шрифтов - особенно пригодится обладателям мониторов с сверхвысокими разрешениями. Регулируется ширина и высота шрифтов конс. командами g_font_scale_x, g_font_scale_y.

  • Возвращена многопоточная загрузка текстур. Теперь она даёт очень существенное ускорение загрузки игры. Управляется конс. командой r_mt_texload и соотв. опцией в меню.

  • Реализовано Anomaly-style разделение расчетов худа для предметов в левой и правой руках + новая система коллизии худа для OGSR GA.

  • Добавлена поддержка 90% анимаций для оружия из Gunslinger Mod

  • Добавлена поддержка 3D PDA. Важный нюанс: для его работы слот пда должен быть активируемым:

[inventory]
slot_visible_8 = true ;pda
  • Переписан настройщик худа, теперь в нём можно настраивать позиции лазера и фонаря.

  • Добавлен настройщик положения оружия от третьего лица. Можно настроить положение оружия как у актора от 3 лица, так и у НПС. Настройка для состояния за спиной у нпс тоже работает.
    Для включения режима настройки наводим курсор на НПС и набираем в консоли dbg_adjust_attachable_item имя_секции_оружия или (что более удобно) dbg_adjust_attachable_item_in_slot номер_слота.
    LSHIFT + Z/X/C + PageUP/PageDown - настройка position (x,y,z)
    LALT + Z/X/C + PageUP/PageDown - настройка rotation (x,y,z)
    LSHIFT + ENTER - сохранение результатов в папку logs/_world/
    Шаги для настройки регулируются командами adjust_delta_pos, adjust_delta_rot

  • Добавлена SFZ-стайл тряска рук при воздействии пси-ауры мутантов. Интенсивность тряски регулируется через controller_amplitude в секции [wpn_bobbing_effector]

  • Добавлено скриптовое управление demo_record:

level.demo_record_start()
level.demo_record_stop()

local HPB = level.demo_record_get_HPB()
level.demo_record_set_HPB(HPB)

-- направление
-- HPB.x Left\Right
-- HPB.y Up\Down
-- HPB.z Rotate Left\Rotate Right

local position = level.demo_record_get_position()
level.demo_record_set_position(position)

-- position x y z как обычно на уровне

level.demo_record_set_direct_input(true/false) -- управление прямым вводом

Так же поправлено управление игрой в режиме demo record. Включается на * (звездочку DIK_MULTIPLY)

  • Эффекты ppe теперь должны отображаться в режиме от 3 лица. Так же добавлена команда g_effects_on_demorecord что б эффекты были и в режиме demo_record.

  • Добавил метод game.stop_tutorial и ЗП-стайл экшены для туториалов типа такого:

<action id="use" finalize="1">xr_effects.pri_a18_use_idol</action>
  • Для статиков можно указывать прозрачность. ogm видео теперь тоже поддерживает регулировку прозрачности, как и обычные текстуры. Примеры:

XML:

<!-- color_alpha="192" указывает, что текстура будет иметь 25% прозрачности. Значение от 0 до 255, от полностью прозрачной (не видимой) до полностью оригинальной текстуры. При отсутствии этого параметра текстура показывается как есть, т.е. без доп. прозрачности. -->
<hud_gaz_blue x="0" y="0" width="1024" height="768" stretch="1" color_alpha="192"
  light_anim="ui_slow_blinking_alpha" la_cyclic="1" la_texture="0" la_text="1" la_alpha="1" priority="30">

LUA:

local cs = get_hud():GetCustomStatic( hud_static )
cs:wnd():SetColorA( 128 ) --Здесь SetColorA установить прозрачность статика в 50%.
cs:wnd():SetColorA( 255 ) -- Этот вызов вернет статик к его оригинальному виду, т.е. без доп. прозрачности.
  • Добавлен функционал работы с мешами из скриптов. Вкл/выкл их видимости, а так же анализ модели (дамп всех костей и мешей). Главная фича управления мешами (в отличие от костей) в том, что можно менять внешний вид модели ничего не делая с скелетом.
local item = db.actor:active_item()
if item then
  item:dump_visual_to_log() --Распечатать в лог информацию о мешах и костях модели - мировой и худовой, если худовая доступна.
  log3("--Mesh count of [%s]: [%s]", item:name(), item:get_mesh_count_hud()) --вывести кол-во мешей в худовой модели.
  item:set_show_model_mesh_hud(0, false) --Установить видимость меша для худовой модели, в данном случае скрыть нулевой.
  local shown = item:get_show_model_mesh_hud(0) --узнать показан ли меш

  --Тоже самое для мировых моделей, подойдет для любых объектов наверно, не только для оружия.
  item:set_show_model_mesh(4, true)
  item:get_show_model_mesh(4)
  item:get_mesh_count()
end

Прочие более мелкие изменения:

  • Добавлена опция volumetric_for_actor для управления объёмным светом фонаря актора, т.к. у актора объемный свет выглядит не очень красиво.
  • Добавлена конс. команда show_wnd_rect_names для показа имён статиков при отладке UI.
  • Добавлена конс. команда g_mouse_wheel_switch_slot и соотв. опция в меню.
  • Добавлено чтение hud_fov из конфига оружия
  • Редактирование меток в пда перенесено на левую кнопку мыши
  • Патрон в патроннике можно включить в конфиге оружия CartridgeInTheChamberEnabled = true
  • Xml парсер не будет игнорировать грубые ошибки в синтаксисе xml файлов. Однако оставлен режим совместимости в [features]:
;Игнорировать ошибки парсинга xml (в ТЧ они встречаются даже в оригинальной игре)
skip_shoc_xml_errors = true
  • Добавлены звуки snd_aim_start, snd_aim_end, snd_close_weapon_empty
  • Для оружия с трёхстадиевой перезарядкой при расклине будет проигрываться первая и третья стадия перезарядки.
  • Добавлена конс. команда r_terrain_parallax_enable и соотв. опция в меню.
  • Обновлён xrCompress. Добавлен ключ -WW для worldwide формата архивов, добавлен игнор пустых папок, добавлены настройки игнорируемых имен файлов, а не только расширений (см. xrCompress_Cfg.ltx)
  • Фикс ситуации когда вместо оружия в руках нпс мог оказаться артефакт
  • Команда ai_use_torch_dynamic_lights будет управлять объемным светом фонарей нпс, если он включен для них. Ранее эта команда не работала вообще.
  • Убран игнор ошибок в луа каллбеках. (на удивление в очень редких случаях ошибки там к сожалению могли игнорироваться)
  • Фикс тумана для шейдера models\transparent
  • Добавлен специальный шейдер для коллиматоров models_lfo_light_dot_weapons
  • Добавлен метод PlaySound("filename") в класс меню.
  • При использовании движка с оружием из Gunslinger Mod, надо добавить в system.ltx:
[mod_ver]
mod_ver = "OGSR: Gunslinger Addon"

так будут активированы необходимые для него фиксы. Затычка от крашей в ode.dll например.

2.1.386

01 Apr 07:22
Compare
Choose a tag to compare

Значимых изменений не много, потому что в основном идёт работа над OGSR:Gunslinger Addon. Какие-то новые баги тоже вполне могут быть.

  • Обновлён OpenAL Soft до версии 1.21.1

  • Добавлены инструменты для настройки UI в пикселах на мониторе конечного юзера, а не в координатной системе 1024х768. Это нужно что бы можно было избежать растянутого UI на широких мониторах, например ( #378 ).
    При включении атрибута as_is="1" в конфиге, GUI элементы будут читать координаты в пикселах конечного монитора, а не в сетке 1024х768 как было в ванили. Поэтому размеры и координаты в GUI-конфигах придется править, чтобы выглядело нормально и влезало в экран. Скорее всего придется поэкспериментировать. Но зато когда правкой конфигов удастся получить хороший результат, этот результат будет таким же хорошим для всех мониторов.

  • Для drag-drop элементов так же добавлен атрибут as_is, чтобы иконки инвентаря сохраняли правильные пропорции при любом отношении сторон экрана.

  • Так же для drag-drop элементов добавлен атрибут autocalc (0 or 1) управляющий автокалькуляцией размера и количества ячеек. Иконки инвентаря авто-масштабируются в сторону уменьшения, если это необходимо для того чтобы в драгдроп-лист вместилось то число ячеек, что указано в его конфиге. Драгдроп-лист до-заполняется дополнительными ячейками в ширину или высоту, до полного заполнения, если после применения вышеописанных манипуляций в нем осталось свободное место. Размер ячеек регулируется новым атрибутом cell_size (по умолчанию 50), старые атрибуты cell_width, cell_height не используются.

  • Сделал нормальную интерактивность тракбаров, в т.ч. для скриптов. Добавлен UI-евент TRACKBAR_CHANGED, и добавлен метод тракбара GetTrackValue. Пример использования в Lua:

self:AddCallback(
	"control_"..opt,
	ui_events.TRACKBAR_CHANGED,
	function()
		--log('TRACKBAR_CHANGED(%s) : %3.3f', opt, ctl:GetTrackValue())
	end
)
  • GetColorFromText с поддержкой ARGB или RGB. Более "дружелюбное" чтение конфигов. Автоматически понимает, в каком формате цвет - RGB или ARGB. Не генерирует вылет в случае невалидной кодировки.

  • Вывод дополнительной информации при вылете 'wrong fixed bone'.

  • Добавлено больше ассертов на манипуляции с костями, т.к. если двиг пытается что-то делать с несуществующей костью - это не безопасная ситуация.

  • Добавлена опция volumetric_for_actor для фонарика, чтобы для актора объемный свет можно было отключить, т.к. он только у нпс красиво выглядит.

  • Псевдо-коллизию камеры можно выключать командой g_camera_collision

  • Добавлена конс. команда show_wnd_rect_names для показа имён статиков при их отладке.

  • Добавлена конс. команда g_mouse_wheel_switch_slot взамен старой опции в конфиге.

  • Изменено имя окна. Движок больше не детектируется как CoP.

  • Добавлен режим более строгой проверки синтаксиса xml файлов

;Игнорировать ошибки парсинга xml (в ТЧ они встречаются даже в оригинальной игре)
skip_shoc_xml_errors = true

2.1.359

31 Dec 14:03
Compare
Choose a tag to compare
  • Добавлена поддержка ЗП-стайл детекторов в руках.

Простой и средний детекторы полностью работают как в ЗП, элитный детектор с экраном работает по огсе-системе (артефакты, аномалии и квестовые штуки на нем рисуются шейдером с управлением из скриптов, а не через рендер ui - у меня он по не понятным причинам не работает, для моих целей это и не нужно, поэтому я особо на это время не тратил. Если у кого-то есть желание помочь - я буду только рад.) Увеличил лимит на кол-во показываемых аномалий и артефактов, которые шейдер может нарисовать на экране детектора - было 8 , стало 24.
По причинам выше, ui_detector_artefact.xml сделан не обязательным.

Старый класс детекторов без худа переименован в CCustomDetectorSHOC, они будут работать как раньше без изменений.

Добавлена возможность детектировать все артефакты добавив в конфиг детектора:

af_class_all = true
af_sound_all_ = detectors\art_beep1
af_freq_all = 0.05, 2

Добавил для скриптов проверку get_actor_obj():IsDetectorActive() - так можно проверять, находится ли детектор в руках актора в данный момент.

Артефактам в конфиг добавились параметры af_rank, can_be_controlled, det_show_particles, det_hide_particles, particles_bone, det_show_snd, det_hide_snd из ЗП. Я так понимаю для того чтобы можно было делать арты невидимыми (не тестировалось)

Детектор можно держать в руках месте с болтом, ножом или предметом которому прописан первый слот (пистолетный).
ss_admin_11-14-21_20-46-14_(k01_darkscape_ogse)

  • Сделали ганслингер-стайл эффекты выглядываний. Добавились новые параметры для оружия (по умолчанию в движке такие же значения как тут):
lookout_enabled = true
lookout_transition_time = 0.25
lookout_hud_offset_pos = 0.045, 0.0, 0.0
lookout_hud_offset_rot = 0.0, 0.0, 10.0

lookout_aim_enabled = true
lookout_aim_transition_time = 0.15
lookout_aim_hud_offset_pos = 0.0, 0.0, 0.0
lookout_aim_hud_offset_rot = 0.0, 0.0, 15.0
  • Добавлена поддержка многих анимаций для оружия (анимации moving будут работать если выключен bobbing эффектор конечно же):
anm_shoot*
anm_idle_aim_start*
anm_idle_aim_end*
anm_idle_moving_crouch*
anm_idle_moving_slow*
anm_idle_aim_moving*
anm_idle_aim_scope_moving*

anm_idle_aim_g ; - тоже самое что и anm_idle_g_aim
anm_idle_aim_w_gl ; - тоже самое что и anm_idle_w_gl_aim
  • Добавил для аномалий параметр DestroyAfterBlowout, чтобы можно было удалить мины после их взрыва. Мины же на классе аномалий сделаны.

  • Добавил для скриптов проверку db.actor:active_item():get_weapon():UseScopeTexture() - показывает, использует ли оружие текстурный прицел в данный момент.

  • Скриптовый каллбек на нажатие клавиши перенесен в другое место, чтобы он срабатывал в ui.

  • В скриптовый каллбек article_info передается ещё один аргумент - текст артикла.

  • В scope_bone можно указывать несколько костей через запятую.

  • Исправлен вылет при попытке снять прицел с оружия находящегося в ящике, а не в инвентаре.

  • Пофиксил растянутую иконку заряда рпг на худе.

  • Исправлена работа консольной команды g_spawn.

  • Поправлен баг с анимациями разряженного пистолета.

  • Убрана квантизация параметров анимаций при их загрузке.

Т.к. изменений/переделок в коде движка довольно много, весьма вероятно, что в этой версии могут быть новые баги, которых мы пока не заметили.

2.1.320

04 Nov 10:07
Compare
Choose a tag to compare
  • Исправлены проблемы на DX 10-11 рендерах, больше не должно быть зависаний / крашей с упоминанием d3d11.dll.

  • Сделано автоопределение RU и WW архивов игры. Никакие ключи запуска для этого больше не нужны.

  • Убрал окно с выводом сообщения об ошибке. Теперь при ошибках будет открываться лог. Логи будут создаваться с уникальными именами, чтобы не терялись.

  • Исправлены проблемы с курсором когда игра запущена в оконном режиме в разрешении меньше разрешения монитора.

  • Исправлена бесконечная выдача туториала на перевес.

  • По просьбам вернул подобие коллизии камеры, чтобы камера не залезала в геометрию.

  • Исправлено не отыгрывание анимации доставания оружия при смене оружия с той же худовой секцией.

  • Исправлены проблемы с системой многоприцельности ( #372 )

  • Исправлен статик иконок патронов на худе ( #362 )

  • Убран ассерт omfs.size() < MAX_ANIM_SLOT. Совершенно ненужное ограничение.

  • Добавлена консольная команда hud_crosshair_hard, настройка в меню геймплея. Включает режим, в котором при стрельбе от бедра пули будут вылетать не из центра камеры, а в правильном направлении из оружия. Худовый курсор тоже будет учитывать это направление. Для настройки точки вылета пуль введен параметр shoot_point. Можно было бы просто использовать fire_point, но проблема в том, что эта точка партиклов сильно смещена вперёд, и если её использовать для вылета пуль, можно будет стрелять сквозь стены, предметы и тп. shoot_point - это тот же самый fire_point, но у которого z - координата должна быть смещена назад. По умолчанию в движке сделано смещение -0.5, но для некоторых стволов этого недостаточно, именно поэтому это можно настроить для каждого оружия индивидуально:

fire_point  = 0.0, 0.133, 0.200
shoot_point = 0.0, 0.133, -0.6

Работать shoot_point будет только на ЗП-стволах, либо на ТЧ-стволах, у которых fire_point перенастроен с включенным use_cop_fire_point = true. Для обычных стволов которые делались под ТЧ это адекватно настроить не представляется возможным, потому что там fire_point не привязан к оружию, это отдельный элемент в пространстве, в этом можно убедиться, значительно поменяв hud_fov - на тч стволах все партиклы уедут. В этих условиях shoot_point тем более нормально настроить невозможно.

  • Для фонарика можно включить объемный свет. Пример настроек:
[torch_definition]
volumetric_enabled   = true
volumetric_quality   = 1.0
volumetric_intensity = 0.15
volumetric_distance  = 0.45
  • Скрины будут в формате png по умолчанию. Для скринов в формате jpg оставлен ключ запуска -ss_jpg.

  • Во время стрельбы бег сбрасывается.

  • Добавил исправленные текстуры воллмарков от ножа, в ТЧ с ними косяк, когда режешь по металлу, дереву или камню, с расстояния 5-10 метров чернели края. Вес у них очень маленький, так что не помешают.

  • Обновлён xrCompress. Можно указать имя архива, который будет создан:

xrCompress "gamedata" -ltx xrCompress_Cfg.ltx -filename gamedata.db_base_configs
  • Добавлена возможность настроить зависимость скорости разглядывания актора от полунепрозрачных препятствий. Чем больше полунепрозрачных препятствий между мобом и актором, тем медленнее моб будет актора "разглядывать". По умолчанию выключено. Включается в секциях зрения мобов:
; степень замедления разглядывания, в зависимости от густоты полупрозрачных материалов между неписем и актором. Чем меньше значение, тем медленнее разглядывание. При 1 замедление соответствует степени полупрозрачности материалов. Т.е. если у кустов прозрачность 0.7, то и скорость разглядывания будет умножена на 0.7.
transparency_factor = 1
  • Добавлен динамический размер визуальной памяти у мобов. Настраивается вот так вот в секции мобов:
DynamicObjectsCount = 32
; как долго хранить в визуальной памяти объекты, если их кол-во превышает DynamicObjectsCount
DynamicObjectsCount_adaptive = 10000 ;10 сек

2.1.293

22 Sep 10:22
Compare
Choose a tag to compare
  • LuaJIT обновлён до актуальной версии.
  • Оптимизирован механизм передачи данных от клиентских объектов к серверным, из него убраны нет-пакеты и им сопутствующие проблемы, вырезано большое кол-во сетевого кода.
  • Проведена большая работа по приведению кода движка в соответствие со стандартом С++
  • Добавлен шейдерный эффект для шлемов. Добавлены команды r2_visor_refl и r2_visor_refl_control (шейдер включается при включении этих 2х команд). Также добавлены команды r2_visor_refl_intensity - для настройки силы эффекта и r2_visor_refl_radius - соответственно для изменения радиуса эффекта. По умолчанию шейдер выключен консольными командами поскольку для нормальной его работы нужен скрипт который будет отслеживать надетый костюм и уже в зависимости от этого включать\выключать шейдер.
  • Улучшены отражения в воде.
  • Исправлен баг с пистолетами ( #344 )
  • Исправлена растянутая иконка патронов на худе ( #301 )
  • Скриптовый метод game_object:zero_effects() теперь влияет и на жажду.

2.1.242

29 Jun 17:05
Compare
Choose a tag to compare
  • Теперь полностью поддерживается ЗП-система худа рук ( #322 ). ТЧ-худ тоже будет работать, как и раньше.

  • Из-за изменений в системе худа, теперь ogsr-стайл анимацию для неполной перезарядки обязательно надо прописывать, одного anim_reload_partly_stop_k недостаточно.

  • Добавлена поддержка OpenXRay-стайл анимаций и звуков неполной перезарядки (anm_reload_empty, snd_reload_empty и тп.), и анимаций движения в прыжке (anm_idle_moving_crouch и тп.) для стволов из популярных паков типа STCoP Weapon Pack.

  • Если у оружия включена билдораскачка, анимации idle_moving играться не будут.

  • Параметр grenade_bone у худовой секции РПГ7 и оружия с ПГ больше не обязателен. По умолчанию будет использоваться кость grenade.

  • В ЗП партиклы учитывают худовый fov, поэтому теперь им выставляется режим отображения в зависимости от типа худа. На всякий случай добавлен параметр forced_particle_hud_mode для ручного управления режимом отображения.

  • Фикс тряски худа ( #193 )

  • Починен и теперь работает дебаг-рендер на DX11 (для g_zones_dbg, g_vertex_dbg и тп.)

  • Вернул поддержку EFX ( #328 )

  • Вынес в конфиг опцию use_cop_thm_format по ЗП-формату thm

2.1.228

17 May 20:27
Compare
Choose a tag to compare
  • Временно заткнул проблему с машинками ( #325 )
  • Добавлена команда g_3d_scopes_fps_factor для настройки FPS в 3D-прицелах.
  • Добавлена команда g_spawn.
  • Добавлено влияние тумана на зрение мобов. Чем глубже объект в тумане, тем медленнее его должны видеть мобы. В [vision_free_section] и [vision_danger_section] добавлены параметры, регулирующие это:
fog_factor = 1 ;Задаёт коэффициент для плотности тумана. По умолчанию 1. В этом случае на расстоянии fog_far точка будет цвета тумана, а не объекта и на этом расстоянии мобы никогда не увидят объект. Если этот коэффициент увеличивать, то расстояние, на котором мобы не рассмотрят объект, будет уменьшаться. Если задать 0, то туман не будет влиять на зрение, т.к. плотность тумана станет тоже 0.
fog_pow = 5 ;Задаёт кривизну зависимости плотности тумана от расстояния. По умолчанию 5. Кривизна плотности тумана рассчитывается по формуле y = x в степени fog_pow.
;График такой функции выглядит примерно вот так:
;      *
;     *
;   **
;***
; т.е. чем дальше, тем сильнее увеличивается плотность тумана. Это для того, что бы туман тем сильнее влиял на зрение, чем дальше объект в тумане. Что бы он как можно меньше влиял на близких и средних дистанциях.
  • Новые скриптовые методы:
alife():spawn_id( "имя" ) --Возвращает `spawn_id` из `all.spawn` по имени объекта. При пересборке оллспавна spawn_id же постоянно меняются, и их приходится после каждой пересборки в скриптах менять. А так ничего менять не нужно будет.
db.actor.inventory:is_active_slot_blocked() --Проверка на блокирование слота ( например на лестнице и тп )

2.1.204

30 Apr 09:40
8f025de
Compare
Choose a tag to compare
  • Поправлен древний баг когда предмет, заспавненный в ящик, находящийся в онлайне (или монстру), пропадал после сейв-лоада. Ранее приходилось городить в скриптах костыли (через transfer_item), чтобы избежать этой проблемы, теперь они не нужны.
  • Теперь работает levelmap / cubemap screenshot на DX11 ( #298 )
  • Сделал сохраняемой консольную команду input_exclusive_mode
  • Теперь можно указать отдельный звук для неполной перезарядки оружия: snd_reload_partly ( #300 , #286 )
  • Добавлена поддержка скрываемых костей для моделей оружия. Чтобы скрыть нужные кости, надо добавить в секцию ствола что-то вроде:
hidden_bones = d2, d1, s1, s2, s3, s4, s5, m1, m2, m3, muzzle
  • Исправлены неработающие анимации у оружия anim_holster_g и anim_shoot_g - теперь работают ( #308 ).
  • Фикс загрузки _empty анимаций у пистолета. При ходьбе с разряженным пистолетом проигрывалась идловая анимация вместо anim_empty. И при наличии anim_idle_moving использовалась anim_idle_sprint.
  • Добавлено затемнение экрана при vid_restart, чтобы скрыть вращение камеры.
  • Убрал на высоких рендерах настройку texture_lod. Говорят, что если она != 0, время загрузки текстур возрастает ОЧЕНЬ СИЛЬНО.
  • В шейдерах включен USE_SUNMASK, выключен USE_GRASS_WAVE

2.1.190

12 Mar 07:43
Compare
Choose a tag to compare
  • Исправлены давние проблемы с курсором при запуске движка в режиме VSR/DSR

2.1.186

24 Feb 07:34
Compare
Choose a tag to compare
  • Исправлена проблема #274 , обнаруженная в прошлой версии.