Перейти к содержанию
AziatkaVictor

Редактирование движка

Рекомендуемые сообщения

 

Автор темы: ForserX

Предложения по правкам движка

Сборки:

Правки:

Спойлер

Ссылка: ЯндексДиск

Изменения:

  • Отсутствие старфорсоов и сопутствующих проблем
  • В nodvd-вариантах из за сбоев в циклах движка могли происходить вылеты, которые здесь невозможны
  • Нормальная система отлова багов, в nodvd её по сути не было, движковые логи не писало
  • Если у НПЦ проблемы с логикой, nodvd-вариант сразу крешится без лога и бьются сейвы, тут это пофиксено
  • Фикс ошибки "(bytes_need<=mSize) && vl_Count" на r2, связанной с перегрузками видеобуфера
  • Оптимизация требований к памяти (GlobalMemoryStatus вместо GlobalMemoryStatusEx)
  • Возможность менять hud_fov (несколько предустановок, рассчитано исключительно на данный экзешник)
  • Возможность менять fov для xrgame.dll от 1.0006 (несколько предустановок)
  • Отключено загаживание консоли/лога сообщениями "CL setdestroy"
  • Расширено меню установки fov для xrgame.dll
  • Добавлены опциональные (необязательные к установке) фиксы. Запуск и выбор - через 10006_patcher.cmd:
  • Увеличение числа стеков памяти
  • Увеличение DVB (Vertices Buffer) до 6 mb
  • Увеличение DIB (Indices Buffer) до 1 mb
  • Отключение ругательств рендера на шейдеры
  • Отключение ругательств на неправильное положение солнца в погодном конфиге (by lvg_brest)
  • Отключение разных дебаг-сообщений в xrgame.dll
  • Основан на новом экзешнике от GSC с принудительным ограничением кадров (защита от перегрева видеокарт/БП)
  • Возможность опционально отключать ограничитель кадров (защиту от перегрева видеокарт/БП)
  • Теперь единый экзешник + внешние патчеры ru/ww
  • Теперь единый fov/hud_fov switcher
  • Новый xrGameSpy.dll (сетевая игра переключается на сервер GSC)

Спойлер

Спойлер

Ссылка: ЯндексДиск

Изменения:

  • Анимация ходьбы anim_walk для пистолетов
  • Новые скриптовые методы:
    • inv_weight - получить вес макс. вес
    • set_inv_weight - установить макс. вес
    • move_on_belt - переместить предмет на пояс
    • item_on_belt - получить предмет на поясе
    • set_ammo_type - установить тип патронов
  • Новые скриптовые кaллбэки:
    • on_item_belt - перемещение предмета на пояс
    • on_item_ruck - перемещение предмета в рюкзак
    • on_item_slot - перемещение предмета в слот
    • on_switch_nightvision - переключение ПНВ
  • Новые консольные команды:
    • fov [5.0, 180.0] - глобальный fov камеры
    • k_ammo_on_belt [on\off] - патроны на поясе
  • Артефакты работают только из рюкзака, на поясе не действуют на ГГ - пояс теперь по сути контейнер артефактов. Из инвентаря действуют абсолютно все свойства артефактов (радиоизлучение, пулестойкость, хим. защита и т.д.).

Спойлер

Вылечивает xrgame.dll ТЧ 1.0006 от засирания лога/консоли ненужными дебаг-сообщениями вида:

  • --NeedToDestroyObject
  • Destroying local grenade
  • sv destroy object
  • ge_destroy not found on server
  • sv ownership id_parent id_entity
  • sv !ownership (entity already has parent)
  • sv reject. id_parent id_entity
  • [16-9] get_xml_name for

Проверялся как на чистой dll, так и на пропатченной через x-ray extensions/cut x-ray.
С мультиплеером правка несовместима.

Ссылка: ЯндексДиск

Установка: Скопировать clear_xrGame.cmd и patch2.exe в папку с xrgame.dll и запустить clear_xrGame.cmd.

Также для полной чистоты лога рекомендуется использовать "Исправленный экзешник для S.T.A.L.K.E.R ТЧ 1.0006 (v2)" или в своем экзешнике хекс-редактором найти и обнулить байты фразы: cl setDestroy [%d][%d]


Спойлер

Основан на X-Ray extensions portable r230

Изменения:

  • Включены худовые анимации спринта для ножа,болта,гранат,бинокля
  • Исправлено положение при виде с внешней камеры для ножа,болта,гранат,бинокля
  • Болту увеличено время жизни, cокращено время набора силы броска по ПК, возвращена старая анимация
  • Исправлена модель худа SPAS-12
  • Альтернативная анимация стрельбы из SPAS-12
  • Для xrgame применены стандартные настройки из X-Ray extensions portable r230 (пропатченный xrgame.dll необходим для работы скрипта восстанавливающего спринт)
  • Работают команды cam_fov/hud_fov, включено солнце и т.п.
  • Пара правок bind_stalker для повышения стабильности (by makdm и Zander_driver)

Ссылка: ЯндексДиск


Спойлер






Спойлер

Советы:

Так же в теме можно задавать различные вопросы, связанные с редактированием движка.

  • Лайк 2
  • Хабар 1
  • Спасибо 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
2 часа назад, Nordic359 сказал:

Могу показать, как у себя этот вопрос решал.
В файле r2_rendertarget_phase_combine.cpp
Этот код:


envclr.x        *= 2*ps_r2_sun_lumscale_hemi; 
envclr.y        *= 2*ps_r2_sun_lumscale_hemi; 
envclr.z        *= 2*ps_r2_sun_lumscale_hemi;

Заменить на этот:


envclr.x		*= ps_r2_sun_lumscale_hemi; 
envclr.y		*= ps_r2_sun_lumscale_hemi; 
envclr.z		*= ps_r2_sun_lumscale_hemi;

Как только помножение на 2 исчезло, вроде пересветов поубавилось.
 

Спасибо, после работы попробую

Изменено пользователем AsuraH

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
В 22.06.2022 в 04:13, Nordic359 сказал:

Могу показать, как у себя этот вопрос решал.
В файле r2_rendertarget_phase_combine.cpp
Этот код:


envclr.x        *= 2*ps_r2_sun_lumscale_hemi; 
envclr.y        *= 2*ps_r2_sun_lumscale_hemi; 
envclr.z        *= 2*ps_r2_sun_lumscale_hemi;

Заменить на этот:


envclr.x		*= ps_r2_sun_lumscale_hemi; 
envclr.y		*= ps_r2_sun_lumscale_hemi; 
envclr.z		*= ps_r2_sun_lumscale_hemi;

Как только помножение на 2 исчезло, вроде пересветов поубавилось.
 

Да, это помогло немного  убавить блеск. Но все равно бросается в глаза. Я скорее имею ввиду сделать нечто похожее на R2 рендер (Неполная динамика, где бампы работают, но при этом освещение остаётся статическим, без Hemi освещение (чисто бампы и эмбиент освещение))

Вот, нечто в теории и хочется реализовать (речь коннкретно об отображении бампов и спекуляров мапов без hemi освещения, но уже на R4 рендере (DX11 улучшенное полное освещение) . В оригинале если просто выключить hemi с помощью консольных комманд. То все окружения становится черным). 

Ниже пример сравнения двух рендеров. Для более наглядной картины

IMG_20220623_084722_851.jpg

Изменено пользователем AsuraH

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
49 минут назад, AsuraH сказал:

без Hemi освещение (чисто бампы и эмбиент освещение))

Без правки шейдеров вам точно не обойтись. Не только же движок рендерит объекты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

AsuraH Не очень понимаю зачем вам вырезать hemi освещение, без него игра выглядит куда более мерзко, однако не мне вас осуждать. Достаточно в шейдре hmodel.h заменить расчет hscale на подобный код image.png.36eb683afdfc233a7583e231e998a18d.png Это сохранит вертикальность hemi освещения, но позволит вам не использовать для этого карты освещения.

Изменено пользователем Hozar_2002
  • Мастер! 1

Еще один злодей!
6 ГБ ОЗУ DDR3 1094 мГц (Разносорт) Процессор Intel Xeon E5420 4/4 2.57 ГГц (OC)
Видеокарта Gigabyte Radeon RX 580 8192 МБ GDDR5 (Micron) DirectX v12.0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
В 22.06.2022 в 02:53, macron сказал:

что в логе пишут про DVB

А что это такое и какое значение должно быть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
18 минут назад, Hunter сказал:

А что это такое и какое значение должно быть?

Видеобуфер. Чтобы не было вылетов, не менее 4096K.

  • Жму руку 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
В 22.06.2022 в 02:56, Hunter сказал:

То есть, рендера-не твои? А в сети гуляло под твоим авторством)

там оригинальные файлы из папки bin в комплекте сразу, изменений в них не было.

  • Жму руку 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Stern-13 они 13 года.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
3 часа назад, macron сказал:

Видеобуфер. Чтобы не было вылетов, не менее 4096K.

Цитата

В рендере используется вершинный буфер. До заполнения координатами вершин, буфер блокируется, чтобы видеокарта не пыталась оттуда брать данные. Перед блокировкой проверяется размер данных для заполнения буфера, сравнивается с его размером, и если размер данных больше размера буфера, происходит вылет: (bytes_need<=mSize) && vl_Count. В ТЧ его почему-то ограничили 512 килобайтами, поэтому ЧНовские Болота и функционируют на нём только с туманной погодой (ограничение дальности отрисовки геометрии => снижение размера данных для вершинного буфера). Ну и интересный факт: текущий размер буфера пишется в лог, после * DVB created:

 

 

  • Лайк 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
3 часа назад, Hunter сказал:

они 13 года.

и что? Дата файла не показывает его содержание, а содержание там было без изменений.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Всем привет! Собрал движок из исходников 1.0007 (rc1). Можно начать новую игру, сохранится, но при загрузке любого сохранения вылетает с логом:

FATAL ERROR
 
[error]Expression    : fatal error
[error]Function        : CScriptEngine::lua_error
[error]File                 : script_engine.cpp
[error]Line                : 73
[error]Description   : <no expression>
[error]Arguments    : LUA error: ...ow of chernobyl\gamedata\scripts\task_manager.script:222: attempt to index local 'defend_object' (a nil value)

stack trace:

0023:74291D7A xrCore.dll, xrDebug::fatal()
0023:725D7B91 xrGame.dll

В OGSR-Engine предлагают использовать заглушку и в task_manager.script после 220 строки:

local defend_object = alife():object(self.task_info[id].selected_target)

Добавить следующее:

if not defend_object then
                defend_object = alife():actor()

end

Собственно сам главный вопрос: может есть более корректный способ поправить баг??? Заметил что в патче от lvg_brest, и в stalker final update такой заглушки нет, хотя движок у них тоже подвергался редактированию. Может это конечно не оригинальный баг, а результат внесенных правок? Но тогда каких - я всего-то и сдедал, что перенес увеличение видеобуффера до 4096к, восстановление в.синхрогизации, включение очистки текстур g-буффера и принудительной очистки пула моделей при завершении игры???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
18 минут назад, Zloy i Derzkiy сказал:

Заметил что в патче от lvg_brest

Автор не все из 1.0007 переносил как есть

18 минут назад, Zloy i Derzkiy сказал:

stalker final update

Тут вообще XRay Extension для 1.0006, а не 1.0007

Изменено пользователем Stern-13

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Ошибка на стороне пользователя. Сам неоднократно работал с 1.0007(rc1) и такого не встречал 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
2 часа назад, Stern-13 сказал:

Тут вообще XRay Extension для 1.0006, а не 1.0007

Вот этого не знал, хотя действительно можно было догадаться. Думал что в 2k22 при наличии исходного кода в открытом доступе никто не будет правками из x-ray extensions пользоваться. Ведь в самом коде гигантское количество багов и недочетов которые extensions не исправляет, но которые просто Must Have в проекте направленном на устранение косяков оригинала.


Дополнено 9 минуты спустя
2 часа назад, ForserX сказал:

Ошибка на стороне пользователя. Сам неоднократно работал с 1.0007(rc1) и такого не встречал 

Вот ради интереса ревертнул всё внесенные правки, за исключением путей к библиотекам dplay и directx конечно же. Оставил код в том виде в котором скачал из интернета, собрал - вылет никуда не делся. Может сам архив с исходниками не там где нужно было скачал?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

macron привет, подтверждаю, твой движок с вертикалкой еще имеет исправленный видеобуфер, вылетов нет)

  • Мастер! 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
В 23.06.2022 в 09:54, Hozar_2002 сказал:

AsuraH Не очень понимаю зачем вам вырезать hemi освещение, без него игра выглядит куда более мерзко, однако не мне вас осуждать. Достаточно в шейдре hmodel.h заменить расчет hscale на подобный код image.png.36eb683afdfc233a7583e231e998a18d.png Это сохранит вертикальность hemi освещения, но позволит вам не использовать для этого карты освещения.

Да нет, почему?

Если убрать Hemi, и включить бампы. То смотрится так же как та же динамика но без теней от объектов (Не включаю их потому что ФПС жрет паскуда) 

И без этого странного блеска на моделях

IMG_20220701_221307_083.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

AsuraH 
Этот странный блеск называется спекуляром. И если его нормально настроить - выглядит шикарно. Просто все любят в модификациях выкручивать блеск до заоблачных пределов и из-за этого все выглядит очень не очень.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
Только что, HollowKrueger сказал:

AsuraH 
Этот странный блеск называется спекуляром. И если его нормально настроить - выглядит шикарно. Просто все любят в модификациях выкручивать блеск до заоблачных пределов и из-за этого все выглядит очень не очень.

Не совсем так...

Спекуляр работает за счёт Бамп мапов. А странный блеск идёт за счёт hemi 

Это хорошо видно если выключить солнце. Или в пасмурную погоду. Модели блестят словно в масле обмазанны

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
35 минут назад, AsuraH сказал:

Модели блестят словно в масле обмазанны

Это может происходить изза местной реадизации IBL. Если вам это не очень нравится, то можно просто переписать функцию так, чтобы она не учитывал #small скайкубы. Базовое освещение станет более плоским, но тогда не придется отказываться от затенения внутри помещений.

UPD: Вот псевдокод такой реализации

hdiffuse = env_color.xyz * env_color.xyz * h + L_ambient.xyz;
hspecular = 0.0f;

 

Изменено пользователем Hozar_2002

Еще один злодей!
6 ГБ ОЗУ DDR3 1094 мГц (Разносорт) Процессор Intel Xeon E5420 4/4 2.57 ГГц (OC)
Видеокарта Gigabyte Radeon RX 580 8192 МБ GDDR5 (Micron) DirectX v12.0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
22 минуты назад, Hozar_2002 сказал:

Это может происходить изза местной реадизации IBL. Если вам это не очень нравится, то можно просто переписать функцию так, чтобы она не учитывал #small скайкубы. Базовое освещение станет более плоским, но тогда не придется отказываться от затенения внутри помещений.

UPD: Вот псевдокод такой реализации


hdiffuse = env_color.xyz * env_color.xyz * h + L_ambient.xyz;
hspecular = 0.0f;

 

Да, спасибо. Разобрался уже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Всем привет

Подскажите пожалуйста кто работал с движком для ТЧ 1.0004.

Хочу добавить телепортацию в demo_record, но не знаю исходники какие нужны и как собирать. Какой файл редактировать и что изменять это нашел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Alex Kireev обратись к Макрону, он-гений движковых правок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Спасибо, не ко мне. Я пока движки не компилирую.

  • Жму руку 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
В 26.06.2022 в 08:09, Zloy i Derzkiy сказал:

В OGSR-Engine предлагают использовать заглушку и в task_manager.script после 220 строки

Это судя по всему я и предлагал ? 

https://www.gameru.net/forum/index.php?s=&showtopic=23443&view=findpost&p=1696840

В 26.06.2022 в 08:09, Zloy i Derzkiy сказал:

Собственно сам главный вопрос: может есть более корректный способ поправить баг???

Я не нашел такого способа.

В 26.06.2022 в 08:09, Zloy i Derzkiy сказал:

Заметил что в патче от lvg_brest, и в stalker final update такой заглушки нет, хотя движок у них тоже подвергался редактированию.

Дело не в самом факте редактирования, а в том, что обновили версию Lua или luabind (уже не помню). В их движках скорее всего не обновляли, поэтому и последствий не было.

Вот тут я начинал разбор вопроса: https://www.gameru.net/forum/index.php?s=&showtopic=23443&view=findpost&p=1696594

Изменено пользователем RayTwitty

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
5 часов назад, Alex Kireev сказал:

Какой файл редактировать и что изменять это нашел.

так напиши, что за файл нашёл и что там надо править, тогда и легче подсказать и понять, что тебе надо будет дальше делать)

Изменено пользователем CiberZold

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу