X-Ray (движок)

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
X-Ray
Игровой движок (Список)
Разработчик Украина GSC Game World
Ключевые программисты Олесь Шишковцов, Александр Максимчук
Аппаратная платформа IBM PC-совместимые компьютеры
Поддерживаемая ОС Microsoft Windows
Написан на языке C++ , С , Assembler
Первая игра на движке S.T.A.L.K.E.R.: Тень Чернобыля / 23 марта 2007 года
Последняя игра на движке S.T.A.L.K.E.R.: Зов Припяти / 2 октября 2009 года
Страница X-Ray на сайте разработчика

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», использует технологию отложенного освещения и затенения (англ. Deferred shading), которая позволяет достичь высокой достоверности в рендеринге освещения при высокой геометрической сложности сцены. Поддерживается рендеринг в высоком динамическом диапазоне с плавающей запятой.

Изначально движок был ориентирован на DirectX 8, но впоследствии он многократно дорабатывался, чтобы соответствовать своему времени. Таким образом в нём появилась поддержка DirectX 9, и в игре S.T.A.L.K.E.R.: Тень Чернобыля пользователь мог в графических опциях игры выбирать версию графического API. В версии движка X-Ray 1.5, которая появилась в игре S.T.A.L.K.E.R.: Чистое небо 2008 года выхода, разработчики отказались от DirectX 8[3] и добавили поддержку Direct3D 10. Патч 1.5.07 к этой игре добавил в движок поддержку Direct3D 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.[4][5]

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

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

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

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

Физический движок[править | править вики-текст]

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

Игровой ИИ[править | править вики-текст]

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

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

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

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

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

»

Звуковой движок[править | править вики-текст]

Звуковой движок использует технологию en:Head-related transfer function (HRTF) для качественной генерации звука. Поддерживается вывод шестиканального (5.1) звука. Звуковые данные сохраняются в медиаконтейнерах MP3, MP2, WMA, ADPCM, Ogg.

Работа с сетью[править | править вики-текст]

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

Список игр с использованием X-Ray[править | править вики-текст]

Утечка исходного кода в сеть[править | править вики-текст]

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

6 Июня 2014 года на сайте PasteBin были опубликованы ссылки на скачивание исходников.

Примечания[править | править вики-текст]

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

Ссылки[править | править вики-текст]