X-Ray (игровой движок) — Википедия

X-Ray
Изображение логотипа
Логотип движка на презентации в 2004 году.
Тип игровой движок
Разработчик GSC Game World
Ключевые программисты Олесь Шишковцов, Александр Максимчук, Дмитрий Ясенев
Дата анонса 13 ноября 2001
Аппаратная платформа IBM-PC-совместимые компьютеры
Поддерживаемые ОС Windows, Linux, Xbox 360 (ограниченная поддержка)
Написан на языках C/C++
Лицензия проприетарная
Последняя версия 1.6.02 (build 4017) (2 февраля 2010)
Первая игра на движке «S.T.A.L.K.E.R.: Тень Чернобыля» (20 марта 2007)
Последняя игра на движке «S.T.A.L.K.E.R.: Зов Припяти» (2 октября 2009)

X-Ray — игровой движок, созданный украинскими разработчиками компьютерных игр GSC Game World для игры S.T.A.L.K.E.R.: Тень Чернобыля.

Движок был представлен общественности ещё в 2001 году. Изначально он был ориентирован на DirectX 8, но впоследствии многократно дорабатывался, чтобы соответствовать своему времени. Таким образом в нём появилась поддержка DirectX 9, а с выходом S.T.A.L.K.E.R.: Чистое небо добавился и DirectX 10. После выхода патча 1.5.07 для S.T.A.L.K.E.R.: Чистое небо в игре появилась поддержка DirectX 10.1. В S.T.A.L.K.E.R.: Зов Припяти в движке появилась поддержка DirectX 11.

Над графической частью движка в основном работали программисты Олесь Шишковцов и Александр Максимчук[1] (они же работали в 4A Games над проектом Metro 2033 по одноимённой книге Дмитрия Глуховского[2]).

Скриншот из игры S.T.A.L.K.E.R.: Shadow of Chernobyl, первоначальная версия движка. На земле и кирпичной стене дома можно увидеть сложные мягкие тени.

Характеристики и особенности движка

[править | править код]

Графический движок

[править | править код]
Скриншот из игры S.T.A.L.K.E.R.: Clear Sky, демонстрирующий графический эффект «объемных лучей»

Графический движок, основной компонент игрового движка X-Ray Engine, использует технологию отложенного освещения и затенения (англ. Deferred shading), которая позволяет достичь высокой достоверности в рендеринге освещения при высокой геометрической сложности сцены. Поддерживается рендеринг в высоком динамическом диапазоне с плавающей запятой.

Изначально движок был ориентирован на DirectX 8, но впоследствии он многократно дорабатывался, чтобы соответствовать своему времени. Таким образом DirectX 8 сменился на DirectX 9, реализация которого делилась на версию, с динамическим освещением и освещением статическим, реализованным при помощи технологии отложенного затенения типа Light map, таким образом, в игре S.T.A.L.K.E.R.: Тень Чернобыля пользователь мог в графических опциях игры выбирать версию графического API. В версии X-Ray Engine 1.5, на которой основана игра S.T.A.L.K.E.R.: Чистое небо 2008 года выхода, разработчики добавили поддержку DirectX 10. Патч 1.5.07 к этой игре добавил в движок поддержку DirectX 10.1.

9 сентября 2009 года старший маркетинговый менеджер AMD-ATi Ян МакНоутон (англ. Ian “Cabrtosr” McNaughton) в своём блоге опубликовал статью «DirectX 11 — What to expect!», в которой описал преимущества и основные особенности Direct3D 11. В этой статье он заявил, что «S.T.A.L.K.E.R.: Зов Припяти», наряду с «BattleForge» и «Colin McRae: Dirt 2», будет использовать DirectX 11[3][4].

Таким образом, последняя версия движка (1.6) поддерживает следующие версии Direct3D:

Графический движок поддерживает высокую детализацию (до 4 000 000 полигонов в кадре) и способен качественно отрисовывать как закрытые, так и открытые пространства, площадь открытых пространств может достигать 2 км². Имеется система динамической смены дня и ночи, поддержка различных погодных эффектов, таких как дождь, ветер, туман.

Система освещения является полностью динамической и попиксельной. Возможны мягкие тени и используется технология Screen Space Ambient Occlusion. Из технологий рельефного текстурирования используются Normal mapping и Parallax mapping.

Из-за особенностей используемой технологии отложенного освещения и затенения движок не может одновременно использовать её совместно с полноэкранным сглаживанием в режиме DX9[5].

Физический движок

[править | править код]

В X-Ray Engine используется свободный физический движок Open Dynamics Engine.

Игровой ИИ

[править | править код]

Игровой искусственный интеллект в X-Ray Engine называется «A-Life» (англ. artificial life — рус. искусственная жизнь)[6].

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

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

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

Далее стоит сказать о навигации объектов в онлайне и офлайне. У нас в игре есть уровни, для каждого из которых создаётся свой навигационный граф, который используют персонажи для передвижения в онлайне. Мы называем его детальным графом. Для каждого детального графа также создаётся его менее детализированный аналог, вершины которого можно связать с вершинами такого же графа другого уровня/ей. Т.о. после объединения всех таких графов воедино мы получаем граф, который объединяет все уровни. Он и используется персонажами для передвижения в офлайне. Также им пользуются персонажи в онлайне, когда они выполняют свои стратегические цели. Например, если персонаж в онлайне решил идти на другой уровень, то он строит путь по глобальному графу, затем строит путь по детальному графу своего уровня со своей позиции до точки глобального графа. Если эта точка уже на другом уровне, то он телепортируется туда и автоматически переходит в офлайн. Для того, чтобы это не происходило на глазах у игрока, мы точки перехода для игровых персонажей ставили дальше точки перехода игрока, где-то «за углом»

Звуковой движок

[править | править код]

Звуковой движок использует технологию Creative EAX для качественной генерации звука в пространстве. Поддерживается вывод шестиканального (5.1) звука. Звуковые данные сохраняются в медиаконтейнерах MP3, MP2, WMA, ADPCM, Ogg.

Работа с сетью

[править | править код]

Движок использует сетевую модель «клиент-сервер» и технологию распределённых вычислений. Движком поддерживается до 32 игроков в одном матче.

Список игр с использованием X-Ray Engine

[править | править код]
Название игры Дата выхода игры Платформы Версия движка
Oblivion Lost отменена Windows, Xbox Альфа-версия X-Ray Engine 1.0
S.T.A.L.K.E.R.: Тень Чернобыля 20 марта 2007 Windows X-Ray Engine 1.0
S.T.A.L.K.E.R.: Чистое небо 22 августа 2008 Windows X-Ray Engine 1.5
S.T.A.L.K.E.R.: Зов Припяти 2 октября 2009 Windows X-Ray Engine 1.6
S.T.A.L.K.E.R. 2: Heart of Chornobyl (до 2011) отменена, впоследствии разработка возобновлена на Unreal Engine 5 X-Ray Engine 2.0

Существовало незавершенное глобальное обновление движка — 2.0, единственная известная сборка данной версии — build 661, которая была скомпилирована 18 июня 2010 года[7][неавторитетный источник]. На X-Ray Engine 2.0 должен был разрабатываться S.T.A.L.K.E.R. 2: Heart of Chornobyl, однако в конце 2011 года игра была отменена, а вся команда разработчиков распущена.

О возобновлении разработки S.T.A.L.K.E.R. 2 было объявлено в мае 2018 года, но движок был сменен на Unreal Engine 5[8]. X-Ray Engine больше не обновлялся.

Утечка исходного кода в сеть

[править | править код]

28 апреля 2014 г. исходный код движка X-Ray, версии приблизительно 1.0007 (rc1), был выложен в интернете на одном из фан-сайтов. Архив размером 7 МБ представлял собой полные исходники собственно движка на C++, за исключением игрового SDK, утилит, плагинов и сторонних компонентов.

9 августа полный исходный код версий, примерно соответствующей патчам 1.0007 (rc1) (Тень Чернобыля) 1.5.10 (Чистое небо) был выложен одним из друзей GSC на форуме gameru.net.

16 сентября был выложен код движка Зова Припяти (версия 1.6.02).

11 апреля 2015 года все на том же форуме gameru.net был выложен исходный код так и не дописанного движка X-Ray Engine 2.0, а 14 апреля — код движка наиболее масштабной игровой модификации Lost Alpha.

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

Примечания

[править | править код]
  1. S.T.A.L.K.E.R. Team Полный состав команды разработчиков. stalker-game-world.com. Дата обращения: 21 июня 2009. Архивировано 28 февраля 2012 года.
  2. Максим «Maxx» Михеенко. Интервью: Метро 2033. Страна Игр (1 декабря 2007). Дата обращения: 21 июня 2009. Архивировано 11 сентября 2014 года.
  3. Ian “Cabrtosr” McNaughton. DirectX 11 – What to expect! (англ.). блоги AMD (9 сентября 2009). Дата обращения: 12 сентября 2009. Архивировано 28 февраля 2012 года.
  4. Andrew Burnes. ATI On DirectX 11 Gaming (англ.). Voodoo Extreme 3D (11 сентября 2009). Дата обращения: 12 сентября 2009. Архивировано 28 февраля 2012 года.
  5. X-Ray Engine (англ.). Mod DB. Дата обращения: 7 мая 2009. Архивировано 28 февраля 2012 года.
  6. Виталий Казунов (Lockust). S.T.A.L.K.E.R.: Чистое небо - интервью о проблемах выживания искусственного интеллекта в Чернобыльской Зоне. GameTech (13 июня 2008). — Интервью с Дмитрием Ясеневым, главным разработчиком игрового ИИ в игре. Дата обращения: 14 мая 2009. Архивировано 8 июля 2013 года.
  7. Build 661 (X-Ray 2.0). S.T.A.L.K.E.R. Wiki. Дата обращения: 1 января 2024. Архивировано 1 января 2024 года.
  8. S.T.A.L.K.E.R. 2 официально делают на Unreal Engine 5. Игромания. Дата обращения: 1 января 2024. Архивировано 20 октября 2022 года.