X-Ray (рушій гри)

Матеріал з Вікіпедії — вільної енциклопедії.
(Перенаправлено з X-Ray Engine)
Перейти до навігації Перейти до пошуку

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

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

Скріншот з гри S.T.A.L.K.E.R.: Тінь Чорнобиля, початкова версія рушія. На землі та цегляній стіні дому можна побачити складні м'які тіні.

Характеристики і особливості рушія[ред. | ред. код]

Графічний рушій[ред. | ред. код]

Скріншот з гри S.T.A.L.K.E.R.: Чисте небо, котрий демонструє графічний ефект «об'ємних променів»

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

Спочатку рушій був орієнтований на DirectX 8, але згодом він неодноразово допрацьовувався, щоб відповідати своєму часу. Таким чином у ньому з'явилася підтримка DirectX 9, та у грі 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:

  • DirectX 9 (шейдерна модель 2.0)
  • DirectX 9.0c (шейдерна модель 3.0)
  • Direct3D 10 (шейдерна модель 4.0)
  • Direct3D 10.1 (шейдерна модель 4.1)
  • Direct3D 11 (шейдерна модель 5.0)

Графічний рушій підтримує високу деталізацію (до 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

Витік вихідного коду в мережу[ред. | ред. код]

Примітки[ред. | ред. код]

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

Посилання[ред. | ред. код]