S.T.A.L.K.E.R.: New Project - Внедрение многопоточности

2025-05-02 16:42:07

> Давняя проблема с отсутствием многопоточности в оригинальном движке X-Ray сильно ограничивала модмейкеров в творчестве, вынуждая сокращать уровень детализации своих проектов в угоду приемлемому FPS. Говоря простыми словами, огромное количество сложных вычислительных задач игры «сливались в бутылочное горлышко», что значительно замедляло их совокупную обработку, и как следствие — заметно снижало FPS при в высоко детализованных сценах.

Однако в последние несколько лет многие программисты известных проектов вселенной STALKER в той или иной степени решили проблему путём глубокой модификации движка, создав возможность распределения задач по нескольким вычислительным потокам

История проблемы
Оригинальный движок X-Ray не обладал какой-либо значимой многопоточностью. В частности, движок игры располагал всего двумя потоками для подготовки и отрисовки кадра: основной, который выполнял ~95% всех задач, и вспомогательный, выполняющий небольшие периферийные задачи.

Оригинальный движок хорошо справлялся с отрисовкой большинства игровых сцен оригинальной трилогии. Однако для сложных и высоко детализированных модификаций, не говоря уже о масштабных аддонах, возможностей оригинального X-Ray было недостаточно.

Разработка системы многопоточности
Команда S.T.A.L.K.E.R.: New Project разработала собственный планировщик распределения и выполнения многопоточных задач, который способен правильно распределить задачи по имеющимся потокам, учитывая их загруженность и приоритеты задач. Так же была проведена очень трудоемкая и сложная работа по адаптации оригинального кода под возможность параллельного выполнения большого количества вычислительных задач.
Проделанная работа дала свои плоды и FPS значительно вырос. Разницу можно увидеть на скриншотах ниже
1) Без многопотока [FPS: 9] 2) Вкл. многопоточность только ориг. движка [FPS: 14] 3) Вкл. многопоточность для New Project [FPS: 73]

Таким образом благодаря системе многопоточности разработчикам удалось настолько сильно повысить производительность движка игры, что дало возможность реализовать все идеи по level-дизайну и геймплею без ущерба производительности.
Источник: S.T.A.L.K.E.R.: New Project

оригинальный X-Ray был достаточен для 2000х, понятно что он не тянет современные модификации с улучшенной графикой, ИИ и скриптами,, было бы полезно упомянуть, какие именно подсистемы теперь работают в потоках , например- ИИ, анимации, звуки, физика?
кстати в оригинале версии 1.0-1.6, включая ТЧ, ЧН, ЗП были однопоточными, а модернизированные версии движка OGSR, EFP, Anomaly, OP-2.2 используют многопоточность

2025-05-03 21:24:24

Только многопоточность там максимально условная. То, что движки 64-битные, ещё не значит, что потоки нормально будут использоваться

2025-05-30 21:57:15

Полноценного распределения нагрузки по ядрам как в движках типо Unreal engine или Decima engine конечно там нет. Несколько знаю  в отдельные потоки идут- аудио, физика, логика маркеров передвижения,  скрипты несложные могут входить, типо спавна, диалогов начальных, чисто разгрузить основной поток.  Практический весь AI и сюжетные геймплейные скрипты по прежнему в главном потоке. 
Улучшение есть, но кардинального прироста особо нет, согласен.

2025-05-31 09:59:05

однако хотел бы добавить, что в тех же Ogsr, Anomaly, Op 2.2 данная "условная" многопоточность даёт хоть и ограниченный, но реальный прирост произволдительности особенно в ситуациях, где можно частично разгрузить основной поток, по fps это очень заметно видно как в закрепленных скринах, то есть fps поднимается и до 50% что просто замечательно

2025-05-31 10:10:06
Вы не можете отправлять комментарии так, как не АВТОРИЗОВАНЫ
> Alehandro, ну не знаю, мне наоборот понравилось
2025-11-13 13:56:48
> Ognom, да видел я этот хайп беспонтовый, удалил через две минуты.
2025-11-13 13:17:45
> Alehandro, видел бы ты шум в аппро из-за закона шляпки
2025-11-13 13:13:53
> Ognom, вообще нет, ни разу, я вообще молчу). Это скорей к тебе относится)
2025-11-13 13:03:05
> Alehandro, твой девиз: пошумим, бать😁
2025-11-13 12:57:14
> Dzgamir, вот если б Антон был, я б уже давно матом орал здесь. Чувствуешь разницу)😆
2025-11-13 12:51:15
> Dzgamir, 👍, я знаю что ты бдишь, ,бди дальше Дамир, кто как не ты)
2025-11-13 12:43:14
это только видимость, я все читаю, и думаю...."а стоит ему таймаут дать, или он не пьян?"
2025-11-13 12:29:28
Тишина чёт
2025-11-13 12:08:29
Эй зазноба выходи скорей на двор
Я спецально для тебя гитару припёр
Я сыграю для тебя на аккордах на блатных
Ну а коль не выйдешь ты, то получишь под дых😆
2025-11-13 12:07:06
План-это очень хитрый предмет
Он если есть, то его сразу нет😆
2025-11-13 11:43:17
кто может на раздачу STALKER Anomaly R.E.A.L.I.T.Y 2.3 Repack от SeregA-Lus встать?
2025-11-12 17:51:44
Если мод производит какую-то проверку фракции, то наверняка подобный скрипт можно подстроить и под еду
2025-11-12 15:30:52
> Алексей Авдеев, вроде есть в моде Perk Based Artefacts похожий скрипт, где артефакт Цепь даёт баффы игроку если тот является грешником
2025-11-12 15:28:52
> Алексей Авдеев, вот это был бы реализм
2025-11-12 15:18:57
Алиса AI
Переведи на английский язык: Уважаемые господа, друзья, товарищи модостроители, прошу у Вас помощи. Уже много лет играю в игры серии Сталкер, в последнее время упёрся в Сталкер. Очень сильно понравилась игра. Но, задался вопросом, приблизить игру к более реальному виду. Когда столкнулся с игрой за фракцию Грех понял, что немного не то впечатление. Ведь фракция Грех, вроде как, коренные жители Зоны, откуда у их торговца продукты других фракций? Задался целью привести в соответствие пищевую цепочку этой фракции в соответствие с их стилем обитания. Собрал все продукты Зоны торговцу Греха, но они-то имеют как положительные так и отрицательные показатели воздействия на человека. А ведь Грех, это фракция полу людей полу зомби, живущих в Зоне всю свою жизнь. И уперся в проблему: не могу придумать, как переопределить характеристики продуктов, чтобы для всех остальных сталкеров, т.е. игрока, который играл бы за другие фракции продукты имели оригинальные характеристики, а для игрока за фракцию Грех они менялись на положительные. Я не программист, по этому не могу сам написать подобный скрипт, ИИ тоже не может помочь, потому как язык в Аномалии не совсем чистый lua. Все скрипты от "Алисы" и "Гигачата" не работают. А привести геймплей в соответствие с идеей жизни фракции Грех, очень хочется. Кто сможет помочь, или хотя бы ткнуть пальцем в направление, куда копать, выручайте пожалуйста!.
Dear sirs, friends, and fellow mod developers,

I am asking for your help. I have been playing games from the S.T.A.L.K.E.R. series for many years, and recently I’ve become deeply immersed in S.T.A.L.K.E.R. itself. I really love this game, but I’ve started wondering how to make it look more realistic.

When I played as the Sin faction, I realized that the experience wasn’t quite what I expected. After all, the Sin faction are supposed to be the native inhabitants of the Zone — so why does their trader have goods from other factions?

I decided to align the food chain of this faction with their lifestyle. I’ve collected all the Zone’s food items for the Sin trader, but these items have both positive and negative effects on humans. However, the Sin faction consists of half-humans, half-zombies who have lived in the Zone their entire lives.

And here’s the problem I’ve run into: I can’t figure out how to redefine the characteristics of the food items so that they retain their original properties for players from other factions, but become beneficial for players who choose the Sin faction.

I’m not a programmer, so I can’t write such a script myself. AI hasn’t been able to help either, since the scripting language in Anomaly isn’t pure Lua — scripts from «Alice» and «Gigachat» don’t work.

But I really want to adjust the gameplay to match the way of life of the Sin faction. If anyone can help, or even just point me in the right direction, I would greatly appreciate it!
2025-11-12 14:30:43
> Швейцар, Привет!
2025-11-12 14:14:37
Здарова братцы
2025-11-12 13:56:08
мне тоде заходит РП )))
2025-11-11 22:40:34
> Галоперидол, Обычно в таких случаях рекомендуют бросить за npc гранату. Они побегут и глюк пройдёт. Я пробовал 50/50 помогает.
2025-11-11 21:47:08
Авторизация