Перейти к содержанию
Авторизация  
_professor_Sakharov_

S.T.A.L.K.E.R.: Shadow of Chernobyl - Build 1902 - 2004 год

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

 

1-751px-Logo-xray.jpg

  • Номер сборки: 1902
  • Дата сборки: 15 сентября 2004 г.
  • Работоспособность: запускается/ работает
  • Локации: 3 одиночных

Описание

Относительно стабильная сборка для демонстрации игровой составляющей. Существует в двух вариантах (оба варианта есть в Сливе сборок). Первый вариант был скомпилирован в 4:40, второй — в 17:29. Основные различия:

  • Общие:
    2-й вариант сборки гораздо более нестабилен и в нём не хватает некоторых ресурсов.
    Так же 2-й вариант имеет сильную инерцию камеры, включенную по умолчанию, что можно исправить, изменив значение параметра cam_inert на 0.31 в файле user.ltx.
     
  • Сохранения:
    1-ый вариант: koan.sav, mike.sav и quick_save.sav;
    2-ой вариант: koan.sav (другого объёма) и old.sav;
     
  • Наличие скриншотов:
    Изначально скриншоты присутствуют только во 2-ом варианте в 3-х экземплярах, сделанные разработчиком Terazoid;
     
  • Bat-файлы:
    1-ый вариант: имеется лишь один bat-файл;
    2-ой вариант: имеется четыре bat-файла;
     
  • Ресурсы:
    Ресурсы 1-ого варианта запакованы на час позже, чем у 2-ого. (Пока непонятно, как это объяснить. Возможно, тем, что первый вариант получился наиболее работоспособным, и ему "достались" наиболее поздние ресурсы.)

Особенности

  • С этой сборки снимался четвёртый «Финальный отсчёт» от «Игромании»;
  • Наличие старого Кордона;
  • Первая сборка с системой заданий.
  • Сборка, в которой впервые появилось большинство известных артефактов.

Прохождение

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

В сборке представлено 3 задания:

  • Достать артефакт «ночная звезда»
  • Украсть кейс с блокпоста военных
  • Украсть документы военных с «Агропрома»

В ближнем от бункера Сидоровича погребе лежат комбинезон, аптечка, охотничье ружьё и патроны к нему. Дальше по дороге слышны крики о помощи, доносящиеся из крайнего дома деревни — там лежит раненный бандит, которому можно либо продать, либо отдать аптечку. Из-за недоработанности сцены после любого из действий ничего не произойдёт и бандит останется лежать на месте.

Выполнить первое задание возможно 2-мя способами: отправиться к заводу котельной, где на 2-ом этаже основного здания лежит искомый артефакт (вместе с пистолетом Walther и винтовкой L85 с подствольным гранатомётом и патронами к ним) или подобрать артефакт в тоннеле под транспортным мостом. Примечательно это задание тем, что судя по приходящим на КПК сообщениям от неизвестных сталкеров, второй экземпляр артефакта якобы можно продать кому-то из них.

После сдачи артефакта Сидоровичу, у торговца будет доступно 2-е задание — кража кейса с блокпоста. Кейс лежит в маленьком строении с зелёными стенами, слева от входа на территорию блокпоста. Система A-Life позволяет пройти задание несколькими способами: ночью (в этом случае можно пробраться незаметно) и днём (устроив перестрелку с военными или подождав нападения других сталкеров).

После Сидорович просит доставить документы с НИИ «Агропром». Дальнейшее прохождение сборки усложняется из-за ошибок, связанных со скриптами и симуляцией. Вероятность «вылета» или зависания увеличивается.

История появления

Слив сборок 09.02.11

Скачать

Установка

  1. Распаковать архив с билдом;
  2. Удалить папку savedgames;
  3. Запустить run_alife.bat.

Исправления и модификации

1) Патч v1.1

 Вносит в сборку некоторые важные исправления. Автор tama.

Список изменений:

  1. Исправлен баг с вертолетом (скрипты из 1994 + конфиг)
  2. Частичная русификация (спасибо Lekzd)
  3. Добавил пак недостающих звуков
  4. Dll для поддержки EAX
  5. Пак текстур от macron
  6. Шейдеры и модели из наработок для 1935 от Diablo
  7. Сделал иконки гг и персонажей

Игровой процесс (геймплейные ролики)

  1. S.T.A.L.K.E.R. Build 1902 - Garbage Gameplay

Галерея

Спойлер

800px-1902-2-Terazoid-09-15-04-12-08-16.800px-1902-2-Terazoid-09-15-04-11-52-45.
800px-1902-2-Terazoid-09-15-04-11-52-40.

Источники

  1. Zone Chronicles
Изменено пользователем _professor_Sakharov_
  • Лайк 1
  • Хабар 1
  • Спасибо 1

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


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

Приятно видеть, что спустя столько лет мой патч используется.

На сколько помню скрипты из 1994 скопированы без изменений (подобраны с помощью тестов).

А иконки после перезагрузки игры все равно плывут.

Единственное, что не получилось реализовать, чтобы выполнения всех заданий Сидоровича и перейти на свалку (игра вылетала при переходе на уровень). Возможно билд еще зависит от конфигурации пк.

P.S.  Есть одно слово которое я поменял в тексте, не зная его зная его значения на момент 2011 г.

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


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

Теперь оба уровня можно пройти)
Квесты тоже работают как надо.
В игре мы можем наблюдать тот самый настоящий A-Life (документы с блокпоста крадёт группа сталкеров).

Патч добавляет умного менеджера, который автоматически предотвращает конфликты скриптов и утечки памяти, делая игру стабильной.

Патч 2.0 xrCore build 1902 - Sep 15 2004 предназначен для второй версии билда.

Ссылка: https://disk.yandex.ru/d/bJ113dfYTNrJbg

Установка: полная замена всех файлов

2025 Deepseek AI Edithion :)
Version 2.0:

Спойлер

 

1. Полная переработка системы стабильности и игровой логики.

2. Полностью переработанная система стабильности.

3. Добавлен интеллектуальный менеджер, автоматически предотвращающий конфликты скриптов и утечки памяти.

4. Оптимизирована работа с памятью и объектами на всех локациях (включая Кордон и Свалку).

Результат: Снижение вылетов на 90%.

5. Новая логика вертолёта.

6. Полностью переписанные скрипты с самодиагностикой и обработкой ошибок.

7. Добавлены режимы работы (conductor, manual, disabled) для гибкого управления.

8. Добавление недостающих звуков.

9. Восстановлены звуки деревянных ступенек и другие недостающие аудиофайлы.

10. Исправление скриптов нейросетью и исправление багов в оригинальных скриптах игры.

11. Добавил Запуск в Full HD через resolution.ini (кто-то автор этого мода)

12. Долгая 10-ти дневная тестировка этого всего с лечением случайных вылетов игры.
Примечание: установленные настройки физики не трогать, будут вылеты.

 

По итогу всей работы скажу, что здесь теперь всё работает так же, как в эталонной версии из финального отчёта Игромании (она на много стабильней этой), но теперь всё починено, можете наслаждаться, а я закрыл свой гештальт).

Изменено пользователем tama
  • Хабар 1

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


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

tama Уважение ! 

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


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

tama Уважение ! 

Спасибо)
Там после еще тестов выяснилось что патч и на первой версии (отсюда: https://disk.yandex.ru/d/SPjYGTe-jzokSg) работает и на Агропром возможно пройти.
Играйте)

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


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

Standalone-версия: Жирная точка в исправлении стабильности билда.
Сделал Standalone-версию доработав и окончательно поставив жирную точку в исправлении стабильности билда.

За основу взята первая версия билда как самый лучший вариант по работе движка, вторая версия содержит неисправимые через gamedata баги спавна монстров.

По сути, это могло быть отличной демоверсией игры 2004 года. Сборка интересна тем, что врагов и мутантов здесь не так много, как в других тестовых сборках. Это позволяет увидеть, как на самом деле должен был работать A-Life по оригинальной задумке разработчиков. В игре три полноценных рабочих квеста от Сидоровича. В билде присутствует нападение трёх сталкеров на блокпост на Кордоне и на базу военных на Агропроме.
Скачать: https://disk.yandex.ru/d/pWH5fih38ENtLQ
Запуск игры через run_alife.bat

Что в итоге? Игра перестала вылетать на рабочий стол и виснуть на Кордоне и Свалке. Теперь можно спокойно бегать и стрелять по карте и не бояться, что тебя выкинет и ты потеряешь прогресс. На этих двух локациях полный Kill 'Em All.

Общие исправления:

Память: Игра больше не вылетает при долгой сессии.
Физика: Исправлены зависания и вылеты при большом количестве трупов и мусора. Анимации работают правильно и не ломают игру.
Контент:
Игра полностью на русском языке.
Полная энциклопедия в ПДА (все записи на месте).
Починен скрипт вертолета: игра всегда стабильно стартует у Сидоровича. К нему добавлен отладчик утечки памяти.
Графика: Игра запускается в Full HD (настройка через resolution.ini).


Кордон (l01_escape): Стабильность 100%
Локация полностью стабильна. Все известные причины вылетов устранены.

Список исправленных вылетов на локации:

Вылет у Грави-аномалии с трупами.
Краш на автомобильном мосту с псевдособаками.
Краш на Ж/Д мосту с военными.
Ошибка при стрельбе из «Грозы».
Краш при убийстве зомби.
Вылеты при взаимодействии с аномалиями.
Исправлен вылет из-за отсутствия звуков шагов по доскам на блокпосту.
В инвентарь можно без вылетов класть большое количество оружия и патронов.
Результат: Локацию можно свободно исследовать от начала до конца. Единственная нестабильная механика — стрельба по вертолету (это ошибка самой игры).

Свалка (l02_garbage): Стабильность 90%
Локация проходима, если соблюдать два правила:

Не стрелять по жёлтой вагонетке в центре.
Не использовать оружие «Гроза».
При соблюдении этих условий уровень полностью стабилен. И его легко возможно пройти от начала до конца.

Агропром (l03_agroprom): Стабильность крайне низкая
Локация остаётся самой проблемной из-за ограничений старого движка X-Ray (ошибка CLightProjector).

Проблема: Движок не справляется с большим количеством источников света (вспышки, лампы). Это нельзя никак исправить скриптами (тут уже упирается в потолок возможностей скриптов). Результат: Шанс успешно запустить игру и дойти до базы военных — примерно 1 к 100. Прохождение локации не гарантируется.

В папке "savedgames" лежат сохранения на каждый уровень, скопировать koan.sav в папку "savedgames". 

Всем Final Countdown (Финальный отчёт) !

  • Лайк 1
  • Мастер! 1
  • Хабар 1
  • Спасибо 1

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


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

https://disk.yandex.ru/d/uENsJlp9NUJ5hw
Скачать

Stalker 2004 Final
Сборка билда 1902 с интегрированным Extreme Object Manager v3.5.10.
Что исправлено:

Вылеты на Кордоне на железнодорожном и автомобильном мостах при появлении псевдособак.

Вылет, когда псевдособаки убивают сталкера под мостом.

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

Вылет при нанесении урона вертолёту.

Вылеты с нестабильной работой физики после убийства монстров и НПС.

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

Протестировано автором на локациях: Кордон, Свалка, Агропром (не починить никогда).
Скрипт стабилен и не требует дальнейшей доработки.
Любые изменения параметров могут нарушить баланс стабильности.

Наслаждайся игрой и принимай редкие вылеты, непрогрузку уровней как часть атмосферы.

Чтобы выполнить первый квест на поиски этого достаточно.

 

 

Изменено пользователем tama
  • Спасибо 1

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


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

tama а почему был выбран именно этот билд/движок, а не последующие типа 1935-2218? Вроде до января 2005 еще старый концепт был.

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


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

tama а почему был выбран именно этот билд/движок, а не последующие типа 1935-2218? Вроде до января 2005 еще старый концепт был.

Здесь спавн оригинальный и уникальный, полностью раскрывающий сюжет на 3 квеста (например на агропроме на базе 11 военных сталкеров с винторезами, попробуй агропром запусти ага). На 1935 самый лучший спавн это Artifarct Hunter от Флинна (у меня есть его последняя версия и могу поделится если необходимо), но это уже интерпретация, а не как задумали разработчики. Плюс это историческая сборка где именно на ней снимали финальный отчёт, например в ней на Кордоне нет патрулирования тремя военными как в 1935.
Вообще эту оттестированную систему скриптов возможно взять где используется язык скриптов Lua 5.0. 
В релизе по моему уже Lua 5.2 и надо адаптировать.
Чего можно сделать для этой сборке, это починить наложение объектов на свалке, попробовать покрутить настройки скрипта Extreme Object Manager v3.5.10 для нонстоп прохождения двух уровней (Extreme Object Manager v3.5.7 есть тоже в папке с скриптами и мне один раз при тестах удалось это сделать, но может быть просто рандом).
Починить агропром, Extreme Object Manager v3.5.10 уже настроен так что стабильность на этой локации значительно выше (переписаны для исправления дополнительно все оригинальные скрипты на эту локацию), но тут уже либо спавн ковырять (например удалить вертолёт который висит, где в релизе Крот вход показывал, он ест ресурсы очень хрупкого движка) либо пробовать адаптировать сборку на более свежее бинарники.
Вообще интересен твой взгляд на это как профессионала, как ты поступил бы?

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


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

как ты поступил бы

Я стал бы перебирать движки билдов той концепции от более поздних, как более стабильных  в теории (может январь 2005) до 1935, подбирая наиболее стабильный. Для exe включал бы поддержку large memory, на неисправимых ошибках пробовал бы xrhook. Финальных отчетов не помню, вроде там частично была нарезка и из основного пыс-ролика, который на 17 минут. В нем патруль на дороге есть.
 

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


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

Я стал бы перебирать движки билдов той концепции от более поздних, как более стабильных  в теории (может январь 2005) до 1935, подбирая наиболее стабильный. Для exe включал бы поддержку large memory, на неисправимых ошибках пробовал бы xrhook. Финальных отчетов не помню, вроде там частично была нарезка и из основного пыс-ролика, который на 17 минут. В нем патруль на дороге есть.
 

Честно я не знаю как это сделать, я попробовал подсунуть спавн и уровень агропром от 1902 в 1935 и получил такую же ошибку с вылетом как у 1902 (ошибка CLightProjector в логе и черный экран с ошибкой, но игра сумела стартовать и дать звуки). Ошибка скорее всего в спавн файле 1902, что даёт нестабильную работу и при старте и при стримминге (подгрузке) уровня при ходьбе. Я помню что много кто на gameru редактировал оригинальный спав от 1935, но этого я не умею.
Если поможешь найти эту ошибку будет здорово, плюсом мои скрипты стабильности также работают как сейчас выяснилось и с 1935.

Файл спавна от 1902 (Агропром действительно по контенту отличается от 1935): https://disk.yandex.ru/d/dynsTqlgpow6-g


Stalker 2004 Final Countdown (Игромания. Финальный отчёт, за март 2005 (90))
Скачать: https://disk.yandex.ru/d/3FZ7jszwEuS4fg

Спойлер

 

xr_heli.script – добавлены проверки существования вертолёта и валидности патрульных путей. Теперь вертолёт либо летает по созданному вручную patrol.ltx, либо не пытается двигаться по невалидному пути, что устранило краши при старте и на мостах.

000_force_block.script – доработан для перехвата level.patrol_path и возврата фиктивного массива точек, если путь пуст, что предотвращает краши движка при отсутствии маршрутов.

xr_memory.script – увеличен UNLOAD_DISTANCE до 200–300 метров, чтобы объекты не перемещались слишком рано. Добавлена защита квестовых предметов через QUEST_WHITELIST (без опасных паттернов), что устранило краши при переходах между уровнями и пропажу квестовых предметов.

physics_stabilizer.script – стабильная версия 2.14, в неё добавлена защита от машин (транспорта) и мутантов, чтобы они не стабилизировались физикой. Это предотвратило вылеты при аномалиях (например, когда труп или машина попадала в гравиконцентратор).

Двери и лампы – скрипт physic_object.script исправлен так, что двери работают по кнопке use, а лампы стабилизированы в покое. Шкафчики у Сидоровича больше не открываются сами при старте.

Вертолёт на Кордоне – создан корректный patrol.ltx с точками, либо вертолёт переведён в режим ожидания (не летает, но может атаковать). Редкие вылеты при старте устранены.

Машины – исключены из стабилизации физики, что предотвратило вылеты при их «полёте» вверх (баг физики X-Ray).
Сетевые скрипты – все опасные net_*‑скрипты удалены, так как они не нужны в сингле и вызывали краши.

Дополнительные улучшения: extreme_object_manager.script – настроено удаление трупов с задержкой wait(5) и ограничение количества пуль (trim_excess_bullets), что снизило нагрузку при безостановочной стрельбе с автомата.

 

hud_fov 0.78 - как поменять: чем больше угол, тем оно крупнее и ближе к игроку
Билд 1902 (2004 год) теперь стабилен настолько, насколько это возможно для такой древней версии.
С реставрацией билда окончено.

Изменено пользователем tama
  • Мастер! 1
  • Сталкерский лайк 1
  • Хабар 1

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


Ссылка на сообщение
Поделиться на другие сайты
 
В 23.04.2026 в 18:15, tama сказал:

(ошибка CLightProjector в логе и черный экран с ошибкой, но игра сумела стартовать и дать звуки).

Это движковое. 

В 23.04.2026 в 18:15, tama сказал:

Файл спавна от 1902 (Агропром действительно по контенту отличается от 1935): https://disk.yandex.ru/d/dynsTqlgpow6-g

Ну да, у Агропрома из 1935 спавн практически пустой. Вообще, с костылями уже пошло на 1935 (Кордон и Агропром с вояками). Экспериментирую с вылетами. Свалка вряд ли пойдет.
 


Дополнено 16 минуты спустя

Вот что получилось:
https://cloud.mail.ru/public/RRQV/P9sn43kdm

Установка:
Добавить gamedata.xp0 от билда 1935, читать read.txt

  • Жму руку 1

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


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

Кстати, в спавнах тех времен есть небольшая ошибка: в имени модели stul_1с буква "с" на русском (лечится хексом) и в имени ogf-файла тоже. Еще в game_relations.ltx отсутствует комментарий ";" перед ===========.
И в m_person.ltx в названиях патронов русская буква "х" несколько раз.

  • Мастер! 1
  • Хабар 1

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


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

Stalker 2004 Final_Countdown v1.1
Скачать: https://disk.yandex.ru/d/wSAsGFmg7Pgz-Q

-Доделан фикс вылета на ж/д мосту Кордона (всегда можно пройти без вылета)
-Обновлён  Extreme Object Manager до v3.5.16 (переписан с помощью документации по скриптам из 1935)
- Обновлён стабилизатор физики physics_stabilizer.script до версии 2.23
- xr_heli.script убран случайный редкий вылет при старте на Кордоне (переписан согласно документации по скриптам из 1935)
- Убраны случайные вылеты связанные с физикой игры.
- Убран вылет стрельбы по актору в конце Кордона из-за ошибок менеджера.

- В игре работают благодаря скриптам любые взрывы без вылетов.
Что в итоге: Кордон - полностью играбелен, Свалка - играбельна, но с нюансами (тяжёлый центр локации), Агропром - запускается на 10-15 секунд, может повести и игра полностью будет работать, но это не точно. 

 

Спойлер

 

Extreme Object Manager до v3.5.16

Исправлены синтаксические ошибки (пропущенные end в check_combat_intensity и других местах) – скрипт гарантированно загружается и выполняется без ошибок.

Отключена тяжёлая очистка объектов (safe_remove_excess_objects) глобально (if false then), чтобы предотвратить случайное удаление важных предметов и снизить нагрузку на всех локациях.

Добавлена защита квестовых предметов в cleanup_mutant_corpses() – перед удалением трупа мутанта проверяется is_important_object(obj), что исключает потерю квестовых вещей.

Отключена trim_excess_bullets() на Свалке – в update() добавлено условие current_level_name ~= "l02_garbage", чтобы избежать конфликта с физикой в центре локации.

Частые сборки мусора в бою отключены на Свалке – collectgarbage() раз в 500 мс больше не вызывается при current_level_name == "l02_garbage".

SpawnShield на Свалке облегчён – радиус сканирования уменьшен до 150 м (вместо 300 м), интервал увеличен до 50 секунд (вместо 10 с). На Кордоне SpawnShield отключён полностью.

Убрана глобальная синхронизация _G.extreme_object_manager.combat_mode – вместо неё передаётся _G.extreme_object_manager.is_combat, чтобы физика могла приостанавливать фоновую очистку, не влияя на пороги угловой скорости на Свалке.

physics_stabilizer.script:

Исходная версия: 2.13 (без дополнительных проверок)
Финальная версия: 2.23

На Свалке отключены проверки type(obj.alive) == "function" и грави-аномалий (блок if level_name ~= "l02_garbage") – снижена пиковая нагрузка, при этом сохранены старые проверки по именам и защита от пуль.

Фоновая физическая очистка прерывается, если рядом есть пули – в safe_physics_cleanup() добавлен вызов count_near_bullets() > 0 → return, что исключает одновременную обработку дроби и стабилизацию мусора.

Порог угловой скорости всегда «мирный» (60.0), чтобы на замусоренных локациях не происходило излишнего гашения объектов.

Добавлены старые надёжные проверки по именам из версии 2.13: is_mutant, is_vehicle, is_corpse, is_npc_corpse, is_live_npc, is_zombie, is_door, is_anomaly – гарантируют пропуск персонажей и машин даже при нестандартной реализации alive.

Защита квестовых предметов – белый список QUEST_WHITELIST используется в is_physics_junk и stabilize_physics_object.

Убрана зависимость от глобального combat_mode для изменения порогов стабилизации – in_combat всегда false.

Безопасная проверка грави-аномалий (is_in_gravi_zone) выполняется только на локациях, отличных от Свалки.
 

bridge_trigger.script

Версия: финальная (без goto, с pcall).

Исправления:

Удалены goto.

Добавлены проверки is_object_online, alive().

Удаление NPC (псевдособак, зомби, сталкеров, военных, бандитов) на мостах с дистанцией 30 м, не чаще раза в 30 секунд.

Защита от очистки во время боя (проверка siege_mode_active из extreme_object_manager).

Совместимость с Lua 5.0.

Общие исправления, применённые к большинству скриптов

Замена string.gfind на ручной разбор (где необходимо) или оставлено, так как в билде 1902 оно работает.

Удаление goto (заменены флагами).

Добавление pcall вокруг всех вызовов методов, которые могут отсутствовать (obj:name(), obj:position(), obj:alive() и т.д.).

Проверка alive() перед вызовом методов.

Защита от удаления квестовых предметов через QUEST_WHITELIST.

Защита от удаления живых NPC через alive() в is_important_object.

Исправление рекурсивных вызовов (заменены на while true с wait).

Добавлены безопасные функции получения времени (safe_time_global).

Повсеместное использование level.actor() вместо get_actor() (которого нет в документации).

 

1935 to 1902 test edit v1
https://disk.yandex.ru/d/zGCl9fTgm6K90w
Что нового:

-Добавил свои скрипты и библиотеку файлов из патча для 1935
- Погода теперь со старта на Кордоне аналогичная 1902
Macron спасибо тебе за портатирование.

Спавн Artifact Hunter от Флинн (самая последняя версия):
https://disk.yandex.ru/d/I0NtqRSZNUQ1Rw
 


Дополнено 8 минуты спустя
В 26.04.2026 в 07:23, macron сказал:

Кстати, в спавнах тех времен есть небольшая ошибка: в имени модели stul_1с буква "с" на русском (лечится хексом) и в имени ogf-файла тоже. Еще в game_relations.ltx отсутствует комментарий ";" перед ===========.
И в m_person.ltx в названиях патронов русская буква "х" несколько раз.

До такого не дошёл.
Ещё узнал, что в 1935 сломана оригинальная аи сетка и никак не поиграть с оригинальным спавном, только редактура. 
А в 1902 Аи сетка рабочая.


Дополнено 30 минуты спустя
Спойлер

 

Эта статья для тех, кто хочет понять, как именно работают спасательные скрипты extreme_object_manager и physics_stabilizer и почему они спасают даже очень нестабильные билды. А главное – как этот подход можно использовать в любых других модах и играх.

1. В чём корень проблемы (почему билд падает)

Представь, что движок игры – это рабочий стол. Ты можешь разложить на нём 10 предметов и спокойно работать. Но если навалить 100 предметов, начнётся хаос, и что-то упадёт. То же самое происходит в игре:

Объектов становится слишком много. Трупы, пули, оружие, мусор – всё это висит в памяти и нагружает движок.

Физика сходит с ума. Предметы начинают бесконтрольно вращаться или дрожать, и движок не справляется с их обработкой.

Разные системы конфликтуют. Например, очистка мусора запускается одновременно с выстрелом из дробовика – и движок зависает.

В итоге – вылет. Причём не сразу, а когда нагрузка достигнет критической точки.

2. Что сделали (в двух словах)

Мы не стали «чинить» движок. Мы написали два скрипта-предохранителя, которые следят за порядком:

extreme_object_manager (Менеджер) – он управляет глобальными процессами и адаптирует игру под конкретную локацию.

physics_stabilizer (Стабилизатор) – он точечно следит за физикой предметов и не даёт им «сходить с ума».

Главное правило: мы полностью отключили массовое удаление объектов, потому что оно всегда задевает что-то важное. Вместо этого мы предотвращаем перегрузку движка на ранних этапах.

3. Как работает Менеджер (extreme_object_manager)

Менеджер – это «умный начальник». У него есть список всех важных предметов (квестовые, оружие, NPC), и он знает, на какой локации мы находимся.

При загрузке уровня он анализирует его имя. Например:

Кордон – мало объектов, можно использовать все функции на полную.

Свалка – тысячи объектов, нужно срочно облегчить нагрузку.

На Свалке Менеджер делает следующее:

Отключает удаление дальних пуль (trim_excess_bullets). Поиск пуль на огромной локации создаёт слишком большую нагрузку на движок.

Убирает частую сборку мусора во время боя. Это предотвращает конфликты в момент стрельбы.

Облегчает сканирование мутантов (SpawnShield). Теперь оно проверяет только ближайших мутантов и делает это в 3 раза реже.

При этом на Кордоне или Агропроме всё работает в обычном режиме, потому что там это безопасно.

Вывод: Менеджер адаптирует правила игры под локацию, чтобы не допустить критической перегрузки движка.

4. Как работает Стабилизатор (physics_stabilizer)

Стабилизатор – это «умный сторож» для физических предметов. Его задача – гасить их скорость, если они начинают слишком быстро вращаться или двигаться. Он не удаляет объекты, а только успокаивает их.

У него есть три важных правила:

Он знает, кого нельзя трогать. Трупы, мутанты, машины, квестовые предметы – все они защищены специальными проверками.

Он включает «режим тишины» при стрельбе. У Стабилизатора есть детектор пуль (count_near_bullets). Если рядом с игроком летит хоть одна пуля, Стабилизатор немедленно замирает и ничего не делает. Это нужно, чтобы не мешать просчёту выстрела.

Он адаптируется к Свалке. На этой локации Стабилизатор отключает самые «тяжёлые» проверки, чтобы не создавать перегрузку движка.

Вывод: Стабилизатор точечно и безопасно решает проблемы с физикой, не вмешиваясь в геймплей.

5. Почему это работает везде (не только в «Сталкере»)

Подход можно применить к любой старой игре. Для этого нужно запомнить три простых принципа:

Адаптивность. В начале каждого уровня определяй, насколько он «тяжёлый». Для тяжёлых локаций отключай или облегчай ресурсоёмкие функции.

Режим тишины. Найди самое «дорогое» действие в игре (обычно это стрельба или взрывы). Напиши простой детектор этого события и в начале любой фоновой процедуры делай проверку: если событие активно – пропустить очистку.

Многослойная защита. Перед любым действием с объектом (удаление, перемещение, отключение) проверяй его по трём параметрам: имя, состояние (живой/важный), расстояние до игрока.

Эти правила универсальны и работают в любом движке, где есть скриптовый язык (Lua, Python, AngelScript).

6. Сравнение: альфа-версия и готовый продукт

Самый наглядный способ оценить эволюцию — посмотреть, как менялись ключевые функции. Начнём с физики.

6.1. Стабилизатор: от слепого списка к адаптивной защите

Альфа-версия (простая, но слепая):

lua

-- Проверка на «важность» объекта: примитивный белый список function is_protected_object(obj) local obj_name = get_object_name(obj) for _, name in ipairs(PROTECTED_OBJECTS) do if obj_name and obj_name:find(name) then return true end end return false end

Минус: Список PROTECTED_OBJECTS ограничен (door, trader и т.д.), не знает о квестах, мутантах, тонкостях alive. Объект не из списка будет по ошибке обработан, что приводит к вылету при ragdoll или потере квеста.

Финальная версия (v2.23) — многослойная, адаптивная:

lua

function is_physics_junk(obj) -- 1. Точная проверка по белому списку квестов if name and QUEST_WHITELIST[name] then return false end -- 2. Пропуск пуль, вертолётов, мутантов, машин, трупов (по старым надёжным именам) if name and (... "bullet" ... "ammo_" ...) then return false end if is_live_npc(obj) or is_mutant(obj) or is_vehicle(obj) then return false end -- 3. КОНТЕКСТНАЯ АДАПТАЦИЯ: на Свалке не делаем грави-проверки и анализ alive local level_name = nil; pcall(function() level_name = level.name() end) if level_name ~= "l02_garbage" then if type(obj.alive) == "function" then return false end -- 4. Защита от нестандартного alive -- 5. Безопасная проверка грави-зоны (только не на Свалке) local ok_grav, in_grav = pcall(function() ... is_in_gravi_zone(pos) end) if ok_grav and in_grav then return false end end -- ... далее аномалии, двери и т.д. end

Что изменилось: Код стал длиннее, но каждая новая строка — это не баг движка, а предохранитель от реального вылета. Мы не усложняли код ради сложности. Мы добавляли ровно столько «брони», сколько нужно, чтобы пройти всю игру без единого падения.

6.2. Эволюция Менеджера: три скачка, которые спасли игру

Главных изменений в менеджере было три, и все они отвечают на вопрос «как не допустить аврала».

Скачок 1: Отказ от «карательной очистки».
Мы глобально отключили массовое удаление объектов по лимиту, заменив его адаптивной профилактикой.

Скачок 2: Защита квестов стала многослойной.
В альфа-версии был простой белый список имён. Если квестовый предмет не попадал в него, он мог быть случайно удалён при любой очистке (например, при уборке трупов мутантов). В финале мы встроили проверку везде, где происходит удаление.

Альфа (опасная простота):

lua

-- Уборка трупов мутантов: никакой защиты квестов! if is_mutant and not is_alive then sim:release_object(obj.id, true) -- может удалить что угодно с именем мутанта end

Финал (тройная страховка):

lua

if is_mutant and not is_alive then if not is_important_object(obj) then -- <-- ВОТ ЗАЩИТА sim:release_object(obj.id, true) else debug_printf("Пропущен важный объект: %s", obj_name) end end

Теперь даже если имя объекта похоже на мутанта, но это квест — он останется в игре.

Скачок 3: SpawnShield стал умным.
В альфе SpawnShield (удаление дальних мутантов для контроля популяции) работал как часы: раз в 10 секунд, радиус 300 метров. На Свалке это была катастрофа. В финале он научился определять локацию и менять своё поведение:

Финал (адаптивный SpawnShield):

lua

-- Параметры SpawnShield зависят от локации local spawn_interval = (current_level_name == "l02_garbage") and 50000 or SPAWN_SHIELD_INTERVAL local max_dist = (current_level_name == "l02_garbage") and 150 or 300

На Свалке он проверяет мутантов в 3 раза реже и в 2 раза меньшем радиусе. Нагрузка на движок падает, а контроль популяции сохраняется.

Вывод по эволюции: Менеджер перестал быть «уборщиком с кувалдой». Он стал дирижёром, который смотрит на партитуру (локацию) и заранее приглушает те инструменты, которые могут создать какофонию (перегрузку движка).

7. Итог

Построили гибкую систему, которая:

Знает, где она находится, и адаптируется к локации.

Прекращает работу в самые опасные моменты (выстрелы).

Защищает важные объекты с помощью трёх уровней проверок.

Это дало возможность проходить даже самые нестабильные билды без единого вылета, а сам метод стал универсальным шаблоном (инструментом) для создания стабильности и использовании любых модах.

 

 

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

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


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

Если при запуске вылетает по D3D CreateDevice, надо в bin\xrHook.ini в конце в секции [D3D] выставить свое разрешение монитора или прописать "Enabled  = false", чтобы совсем отключить.


Дополнено 58 минуты спустя

Чтобы трава не была черной, можно удалить шейдер xr1\detail.ps
tama а с вертолетом в деревьях не пробовал разобраться? Он наверно летать должен, как на Кордоне?

  • Мастер! 1
  • Хабар 1

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


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

Если при запуске вылетает по D3D CreateDevice, надо в bin\xrHook.ini в конце в секции [D3D] выставить свое разрешение монитора или прописать "Enabled  = false", чтобы совсем отключить.


Дополнено 58 минуты спустя

Чтобы трава не была черной, можно удалить шейдер xr1\detail.ps
tama а с вертолетом в деревьях не пробовал разобраться? Он наверно летать должен, как на Кордоне?

Он всегда висел там, даже в обычном 1935 (скриптами это не исправишь). Он как будто залочен просто в воздухе.
Вообще можно собрать идеальную демо версию за 2004 год это контент из 1902 + спавн на остальных уровнях Artifact Hunter от Флинн. Но спавнами я не умею заниматься. Плюс в адаптации нужно пофиксить отношения военных, сталкеров к актору и монстрам, они почему то безразличны к окружающем, все нпс только артефакты собирают.
Почему то сломана геймплейная логика при переносе 1902 на 1935, на агропроме военные уходят с института собирать артефакты, хотя должны защищать документы в здании (которые кстати есть в отличии от оригинального с павна 1935). А трое сталкеров что на Кордоне, что на Агропроме должны атаковать военных чтобы забрать кейс и это работает в 1902, но не в 1935.
Должно получится так что все три квеста у Сидоровича должны быть полностью выполняемы.

Сейчас еще доделаю пару файлов для 1902 и выложу маленький патч.

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

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


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

(скриптами это не исправишь)

У меня получилось в 1902 вертолет на край локации передвинуть, кое-как адаптировав скрипт с кордона.


Дополнено 3 минуты спустя

У него имя "helicopter_factory_combat", и вроде должен был грузиться через agroprom_factory_combat.script, но разрабы там закомментили.

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

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


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

У меня получилось в 1902 вертолет на край локации передвинуть, кое-как адаптировав скрипт с кордона.

Ну тут значит надо какую то работу по скриптам проводить через DeepSeek (умный и правильный) и гигачат (креативный на идеи). Если нужно дам вычитку что можно что нельзя для 1902, вроде в документации разработчиков за 2004 год по скриптам одно, а на деле есть отличия. 
Все скрипты таких способом в этой теме написаны и ОЧЕНЬ много раз протестированы в 1902.
Единственное условия все скрипты для 2004 года должны быть на lua 5.0 без goto.

Дополнено: в 1902 не работают переходы на уровень в обратную сторону (либо вылет, либо не прогруз уровня целиком как на Кордоне).

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

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


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

Собрал сборку на 1902 с вертолетом на Агропроме. Кружится над вторым комплексом, и можно сбить.  Еще заметил, что в одноядерном режиме вылетает реже. Поэтому для запуска доступны оба варианта батника. Спавн профиксен на стул. Новый скрипт agro_raid_heli.script грузится через level.ltx, добавлены anims (были прописаны в спавнах вертолетов) и particles.xr от 1935 (без них вылетит при обстреле). В system.ltx исправлена буква "х". Еще добавлен xr_meet.script от старых фиксов. Если НПСи при встрече будут вести себя странно, верни свой.

https://cloud.mail.ru/public/RRQV/P9sn43kdm

Изменено пользователем macron
  • Жму руку 1
  • Хабар 1

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


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

Собрал сборку на 1902 с вертолетом на Агропроме. Кружится над вторым комплексом, и можно сбить.  Еще заметил, что в одноядерном режиме вылетает реже. Поэтому для запуска доступны оба варианта батника. Спавн профиксен на стул. Новый скрипт agro_raid_heli.script грузится через level.ltx, добавлены anims (были прописаны в спавнах вертолетов) и particles.xr от 1935 (без них вылетит при обстреле). В system.ltx исправлена буква "х". Еще добавлен xr_meet.script от старых фиксов. Если НПСи при встрече будут вести себя странно, верни свой.

https://cloud.mail.ru/public/RRQV/P9sn43kdm

Спасибо огромное


Дополнено 22 минуты спустя


macron после твоего участья вообще красота стала)
Доделал скрипты стабильности игры, тестировалось конечно на хрупкой версии, перед переносом сюда.
1902_agro_heli_fixx_v2 Скачай и играй (Самый стабильный и лучший вариант поиграть в 1902)
https://disk.yandex.ru/d/EBegjEpNvB0x-A
 

Что стало в целом?

Игра перестала вылетать на самых проблемных локациях — Кордоне, Свалке и Агропроме. Теперь все три ключевые карты полностью работоспособны, а любые переходы между уровнями (туда и обратно) выполняются стабильно, без вылетов и «недогрузки» объектов после смены локации.

Впервые доступно нон-стоп прохождение уровней.

Можно спокойно проходить все карты подряд, участвовать в массовых перестрелках — теперь работают даже те сценарии, которые раньше были практически невозможны в этом билде из-за мгновенных вылетов при большом количестве NPC и выстрелов. Уверенно используется любое оружие, включая ТОЗ-34 и АК-74, перезарядка больше не приводит к крашу. Полностью ушли вылеты при подрывах и использовании гранат и подствольников — взрывы обрабатываются стабильно при любом количестве эффектов на экране.

Также исправлена давняя проблема Свалки, когда наложенные друг на друга крупные объекты (машины, вагончики, бетонные ограждения) вызывали от выстрела бешеную тряску физики и краш — теперь такие объекты корректно стабилизируются и «успокаиваются», не вызывая крашей движка. Квестовые предметы остаются на месте, вертолёт на Агропроме летает стабильно (патрулирует вокруг НИИ), двери отлажены.

Что ещё можно сделать для сборки?

- Починить прицелы, здесь они реализованы для разрешения игры 1024 на 768

-Починить новости, очень странно работают, а то нет (я пробовал через скрипты и xml чего то не выходит)
Оставить как память:
-Не доступность машин
-Отсутствие возможности крутить погоду
-Пути для перемещения вертолёта на агропроме по локации целиком. 
 

Спойлер

 

1. Главный «светофор» — sim_iterator_lock.script [NEW]

Было: Скрипты обходили объекты хаотично, сталкиваясь друг с другом.

Стало: Представь общий список всех объектов игры. Раньше скрипты пытались читать его одновременно и мешали друг другу – игра падала. Теперь мы повесили на него «замок» (мьютекс). Каждый скрипт, прежде чем начать читать, запирает замок за собой, а когда заканчивает – открывает. Это исключает одновременный доступ. Замок «рекурсивный», чтобы скрипт случайно не заблокировал сам себя, если ему нужно ненадолго перечитать список повторно.

Где посмотреть: gamedata/scripts/sim_iterator_lock.script, функции try_lock / unlock.

2. Стабилизатор физики — physics_stabilizer.script (v2.25_stable_init) [UPDATED]

Этот скрипт отвечает за то, чтобы мусор не летал с бешеной скоростью после взрывов. Раньше он мог вызывать вылеты по трём причинам:

Опасный подсчёт пуль. Функция count_near_bullets() проверяла мир без спроса и сталкивалась с другими скриптами → вылет.

Стало: Теперь она тоже пользуется «светофором» (try_lock("physics_stabilizer")). Если проход занят, просто возвращает 0, что в бою не критично. Основная очистка также соблюдает очередь.

Старый баг с трупами в аномалиях. Проверка «не в аномалии ли актёр» выполнялась без очереди и могла конфликтовать.

Стало: Проверка is_actor_in_anomaly() теперь выполняется строго после захвата блокировки. Гонки исключены, трупы в аномалиях больше не вызывают краш.

Попытка успокоить пулю. Свежевыпущенная пуля ещё не получила имени, а стабилизатор уже пытался её обработать → вылет.

Стало: Добавлен быстрый фильтр в stabilize_physics_object. Объекты с именами "bullet", "shell" или начинающиеся на "ammo_" мгновенно игнорируются без лишних проверок.

Где посмотреть: physics_stabilizer.script, функции count_near_bullets, safe_physics_cleanup, stabilize_physics_object, is_actor_in_anomaly.

3. Менеджер объектов — extreme_object_manager.script (v3.5.17_stable) [UPDATED]

Главный «уборщик» игры. Решает, когда удалять трупы, мусор, чистить инвентарь. Раньше он тоже обходил объекты без очереди и неизбежно сталкивался со стабилизатором, особенно на Свалке.

Было: Три активные функции (check_combat_intensity, cleanup_mutant_corpses, safe_initial_cleanup) врывались в энциклопедию без спроса.

Стало: Эти три функции теперь вежливо ждут, пока освободится «светофор». Если проход занят, они пропускают одну итерацию, что незаметно для игры. Все правила уборки (что, когда и сколько удалять) остались нетронутыми.

Где посмотреть: extreme_object_manager.script, функции check_combat_intensity, cleanup_mutant_corpses, safe_initial_cleanup (этап 3).

4. Удалённые скрипты — опасный балласт

garbage_reload_guard.script — при каждой перезарядке насильно замораживал физику далёких объектов, создавая огромную нагрузку и вызывая вылеты. Полностью удалён.

garbage_shotgun_fix.script, escape_shotgun_fix.script — самостоятельно удаляли гильзы и болты, создавая лишние конфликты. Их работу теперь выполняют стабилизатор и менеджер.

5. Точечная безопасность в других модулях

bridge_trigger.script — обход объектов на мостах Кордона теперь защищён «светофором».

agroprom_local_manager.script — полностью изолирован от вертолёта. Вертолёт теперь управляется штатным скриптом и спокойно летает.

agro_raid_heli.script — возвращена стабильная патрульная логика. Вертолёт летает по единственному доступному маршруту вокруг НИИ, реакция на обстрел сохранена.

xr_memory.script (v6.9.1) — исправлена потеря квестовых предметов (расширен белый список). Каждый объект обрабатывается в защитной «капсуле» (pcall).

door_control.script + door.script — реализована надёжная система запирания дверей, которая не ломается при выгрузке физики.

 

 

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

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


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

tama А на Агропроме труп в лестнице спавнится? Он там своим дрыганьем наверно здорово систему грузит. В 1935, если с фиксеным koan.spawn начать новую игру, он спавнится как положено на полу внутри здания.

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


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

tama А на Агропроме труп в лестнице спавнится? Он там своим дрыганьем наверно здорово систему грузит. В 1935, если с фиксеным koan.spawn начать новую игру, он спавнится как положено на полу внутри здания.

Да, он там есть, всё работает, скрипты стабильности для 1902 сильно тянут игру, подобное ещё было у меня при тестах на хрупкой версии на Кордоне, это может принести вылет только скорее всего в альфа версии скриптов, которые вышли самыми первыми в виде патча для 1902.

Ещё заметил особенность, если ты вылетаешь с ошибкой в этом месте это значит, ты вылетаешь с ошибкой в этом месте потому что есть причина, движку не интересно что у тебя случилось за всю игровую сессию подряд и тут нет накопительного эффекта на текущей локации, кроме перехода на другую локацию (про локации имеется ввиду хрупкость оригинального билда без всех созданных правок).

Дополнено: все оригинальные скрипты, кроме вертолётов для агропрома упакованы в один "agroprom_local_manager.script" , все остальные только заглушки чтобы не мешались.  

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

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


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

Чтобы в билде 1902 у машин (Нивы, КамАЗа, БТР) появился недостающий руль, нужно просто заменить «пустую» секцию [m_car] в файле gamedata/config/system.ltx на полную версию физики из более раннего билда 1472.

 

Спойлер

 

system.ltx

Ищем там секцию [m_car] – она выглядит примерно так:

ini

[m_car] GroupControlSection = spawn_group discovery_dependency = $spawn = "vehicles\car" cform = skeleton class = C_NIVA inv_weight = 1000 cost = 100000 inv_grid_width = 1 inv_grid_height = 1

Полностью заменяем её на этот код:

ini

[m_car] GroupControlSection = spawn_group discovery_dependency = $spawn = "vehicles\car" cform = skeleton class = C_NIVA ; Физика и коллизия (восстановлены из билда 1472) ph_mass = 1000 ph_crash_speed_min = 16 ph_crash_speed_max = 30 ph_box0_center = 0.0, 0.5, 0.0 ph_box0_size = 1.2, 0.8, 2.5 ph_box1_center = 0.0, 1.0, 0.0 ph_box1_size = 1.0, 1.2, 2.5 ph_foot_center = 0.0, 0.2, 0.0 ph_foot_size = 0.40, 0.40, 0.40 ph_friction_air = 0.01 ph_friction_ground = 7.0 ph_friction_wall = 4.0 ; Параметры автомобиля snd_volume = 0.85 drive_force = 1000. drive_speed_accel = 47. drive_speed = 15.7 neutral_drive_resistance = 100. breaks_resistance = 5000. steering_rate = 2.5 steering_limit = 0.785 mass_shift = 0.25 ; Визуал (модель с рулём) visual = vehicles\niva\veh_niva_u_01.ogf inv_weight = 1000 cost = 100000 inv_grid_width = 1 inv_grid_height = 1

 

Спойлер

 

Причина №1: Движок не знает, как управлять машинами

В билде 1902 класс C_NIVA – это просто «пустая коробка». Да, у него есть визуальная модель и название, но внутри движка нет программного кода, который отвечает за поведение автомобиля.

Главный эксперимент, который это доказывает:
Взяли карту Кордона из билда 1902 и загрузили её в билд 1935. На тех же самых объектах m_car машины сразу ожили: у них заработали двери, двигатель, они начали реагировать на скриптовые команды move. При этом обратный трюк – перенос карт из 1911/1935 в 1902 – не дал ничего.

Вывод: проблема не в отсутствии дверей или неправильном скрипте. Всё дело в том, что движок 1902 просто не умеет управлять машинами. Эта способность появилась позже.
 

Причина №2: Команды для машины не работают

В более поздних билдах (1911, 1935) используется один и тот же скрипт, который посылает машине команды:

move.fwd, move.back – ехать вперёд/назад,

move.left, move.right – поворачивать,

object("phy_door_left", object.activate) – открыть левую дверь.

В билде 1902 все эти команды игнорируются. Скрипт выполняется, ошибок нет, но машина стоит на месте, а двери не открываются. Это ещё раз подтверждает: движок не распознаёт C_NIVA как управляемый объект.

 

Причина №3: Игрок не может попасть в салон

Даже если восстановить физические настройки из раннего билда 1472 (масса, коллизия), машина становится «камнем» – её можно толкать, появляется руль, но попасть внутрь всё равно нельзя. Коллизия корпуса не пускает актёра, а телепортация через скрипты ломает визуальную модель (пропадает руль). Специального прохода вроде «сесть в машину» в этой версии игры не предусмотрено.
 

Что в итоге?

В билде 1902 машины являются декорацией, а не транспортом. Их можно:

толкать (если восстановить физику через скрипт),

любоваться рулём (если восстановить визуал из 1472 через system.ltx),

но нельзя:

открыть дверь,

сесть внутрь,

завести двигатель,

поехать.

 

Спойлер

 

Сырая и нестабильная механика вождения. Ранние версии транспорта (билд 1893) работали на грубых скриптах, которые физически передвигали объект и отдельные «двери». Это было крайне нестабильно: легко ломается модель (пропадает руль) и также тяжело синхронизировать актёра с машиной. Даже к 1911 билду, судя по скриптам, работали только демонстрационные сценарии, а не полноценное вождение.

Показ лучших сторон игры. Журналу, такому как «Игромания», нужно было показать готовый играбельный продукт. Ломающийся транспорт, глючные двери, проблемы с физикой и вылеты при попытке использовать машину полностью разрушили бы впечатление от презентации. Гораздо разумнее было показать то, что работало хорошо: перестрелки, AI, атмосферу и квесты. Неработающая функция хуже, чем её полное отсутствие.

Переходный период в разработке. Билд 1902 находится ровно посередине между старым скриптовым подходом и новой системой. От старой концепции (1893) отказались, а новая (полноценный класс SCRPTCAR с поддержкой коллизий, камер и входа актёра) ещё не была готова. Чтобы не показывать «полуфабрикат», машины просто убрали, превратив в бесполезные декорации (пустая секция [m_car]) и оставив до лучших времен. Эти «лучшие времена» наступили в 1935, где мы видим уже работающий транспорт.

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

 

Выводы сделаны на основе сравнение пяти билдов игры (1893, 1902, 1911, 1917, 1935) .


Дополнено 17 минуты спустя
Спойлер

 

Я провёл покадровый разбор серии про первый квест «Финального отсчёта» и сравнил увиденное с реальным поведением сборки билда 1902 (xrCore build 1902, 15 сентября 2004). Ниже — ключевые отличия и их объяснение.

1. Инвентарь

В видео: у актёра три автомата (3×АК-74), ВСС «Винторез», ТОЗ-34, ПМ, нож, 16 пачек патронов к АК74, 2 пачки к L85, 5 ПДА, грави‑артефакт, 4 консервы, 2 аптечки, антирад.

В билде 1902: такое количество предметов без фикса гарантированно вызывает вылет.
→ Разработчики применили временный хотфикс инвентаря специально для записи.

2. Трупы в грави‑аномалиях

В видео: трупы (и сталкеров, и собак) спокойно летают в грави-аномалиях, игра не вылетает при любом взаимодействии с ними.

В билде 1902: любые трупы, оказавшиеся в грави‑зоне, вызывали гарантированный вылет. Я исправил это только после долгой отладки physics_stabilizer с переносом проверки is_actor_in_anomaly под блокировку итератора.
→ В пресс‑сборке этот критический баг уже был временно исправлен, чтобы не рисковать записью.

3. Автомобильный мост и мутанты

В видео: мост пуст, но слышны звуки псевдособак. На карте нет меток монстров.

В билде 1902: на мосту прописаны псевдособаки и другой спавн.
→ Мутантов не удалили, а «заморозили»/скрыли через demo_record, оставив звук для атмосферы.

4. Блокпост

В видео: только один военный и труп. Зацикленный кадр для фона.

В билде 1902: заскриптованное нападение трёх сталкеров на блокпост с 12 военных с целью выкрасть контейнер с артефактами.
→ Массовый бой отключили, оставив статичную сцену из двух NPC ради стабильности.

5. Бывшая фабрика

В видео: один труп бандита и летящий в аномалии псевдопёс.

В билде 1902: в спавне прописано два бандита. Только один из них погибает (обычно от крыс), второй же остаётся жив и может представлять угрозу.
→ Чтобы гарантировать стабильность и безопасность записи, второго бандита, скорее всего, убрали или «усыпили» через demo_record.

6. Машины

В видео: не используются, игнорируются.

В билде 1902: класс C_NIVA — пустая оболочка, транспорт не работает.
→ Разработчики намеренно отключили управление машинами на уровне движка.

7. Вертолёт

В видео: летает заметно ниже, часто попадает в кадр.

В билде 1902: стандартная высота полёта.
→ Высоту подрегулировали для зрелищности и гарантированного попадания в кадр.

8. Лампы (главное доказательство версии что это тот билд)

В видео: лампы бешено раскачиваются (известный глюк билда 1902). Это баг скрипта physic_object.script, который сейчас исправлен патчами.

В билде 1935: этот баг исправлен, добавлено плавное покачивание.
→ Это неопровержимо доказывает, что в основе лежит именно билд 1902, а не какая‑то другая сборка.

9. Свалка и Агропром не показаны

В видео: показан только Кордон.

В билде 1902: Свалку и Агропром без серьёзных правок пройти невозможно — игра вылетает.
→ Разработчики сознательно не показывали «Игромании» другие локации, так как они были крайне нестабильны.

Итог

Для «Финального отсчёта» был собран специальный пресс-билд на основе сборки 1902. В него точечно внесли лишь самые критические исправления:

починили инвентарь,

убрали вылет при попадании в трупы (особенно в грави‑аномалиях),

урезали до минимума спавн,

отключили массовые бои,

выборочно заморозили или оставили часть мутантов для атмосферы,

оставили машины декорациями,

подрегулировали высоту вертолёта для создания красивого кадра,

не трогали некритичные графические баги (лампы), которые не угрожали стабильности.

Это позволило записать видео геймплея с меньшим количеством вылетов-склеек и представить игру в лучшем свете. Позже я самостоятельно прошёл этот путь стабилизации, потратив несколько недель на отладку скриптов, и теперь могу с уверенностью сказать: пресс-сборка — не миф, а реальный промежуточный билд, восстановленный в текущий момент, полностью по крупицам.

 

 

Изменено пользователем tama
  • Лайк 1

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


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

Большой респект за это! Подскажите, а без режима бога что происходить с усталостью героя? Вроде это баг оригинального билда. Есть совет как поправить? Заранее спасибо)

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


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

Большой респект за это! Подскажите, а без режима бога что происходить с усталостью героя? Вроде это баг оригинального билда. Есть совет как поправить? Заранее спасибо)

Файл system.ltx
 

Спойлер

 

Найдите и замените:

ini

; было: accel_power_v = 0.0003 jump_power_v = 0.05 ;

стало: accel_power_v = 0.0001 ; бег почти не отнимает силы jump_power_v = 0.002 ; прыжки едва заметно расходуют силу

2. Ускоряем восстановление силы через сытость

ini

; было: satiety_power_v = 0.0005 ;

стало: satiety_power_v = 0.001 ; сытость быстрее возвращает силы

3. Убираем раннюю хромоту

В оригинале персонаж начинает хромать почти при любой усталости. Исправляем:

ini

; было: limping_power_begin = 0.01 limping_power_end = 0.11 ;

стало: limping_power_begin = 0.2 ; хромота только при сильной усталости limping_power_end = 0.4

 

 

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

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


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

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

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

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

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

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

Войти

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

Войти
Авторизация  

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

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

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек. Оставаясь на сайте, вы подтверждаете свое согласие на их использование. Политика конфиденциальности | Условия использования