Над графічною частиною рушія в основному працювали програмісти Олесь Шишковцов і Олександр Максимчук (вони ж працювали у 4A Games над проектом Metro 2033 по однойменній книзі Дмитра Глуховського[1]).[2]
Спочатку рушій був орієнтований на 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.
Графічний рушій підтримує високу деталізацію (до 4 000 000 полігонів в кадрі) і здатен якісно відтворювати як закриті, так і відкриті простори, площа відкритих просторів може досягати 2 кв. км. Є система динамічної зміни дня і ночі, підтримка різних погодних ефектів, таких як дощ, вітер, туман.
Суть [A-Life] заключается в том, что персонажи в игре живут своей жизнью и существуют всё время, а не только когда их видит игрок. Это идёт вразрез с привычными оптимизациями, используемыми при разработке игр [...] Мы ввели два термина, характеризующие 2 модели поведения персонажа, отличающихся степенью детализации: офлайн и онлайн. Офлайновое поведение персонажа является очень простым с точки зрения детализации: персонаж не отыгрывает анимации, звуки, не управляет активно инвентарём, не строит детализированные сглаженные пути (хотя строит пути по глобальному навигационному графу, но об этом позже) и т.д. Онлайновое поведение напротив имеет полную степень детализации. Т.о. можно считать, что офлайновое поведение является плодом онлайнового.
В нашей системе пока игрок играет на своём уровне, другие персонажи живут на других уровнях, т.е. находятся в офлайне, т.е. используют офлайновое поведение. Более того, ввиду большой населённости, не все персонажи в пределах одного уровня имеют онлайновое поведение, а лишь те, кто находится в заданном радиусе от игрока (это может зависеть от уровней, обычно в районе 150 метров) или же по желанию гейм дизайнеров.
Для реализации этого симулятор следит за передвижением игрока и объектов в офлайне и переводит их в онлайн/офлайн. При вычислении перехода объектов используется стандартный трюк с инерцией: радиус перехода в офлайн больше радиуса перехода в онлайн.
Далее стоит сказать о навигации объектов в онлайне и офлайне. У нас в игре есть уровни, для каждого из которых создаётся свой навигационный граф, который используют персонажи для передвижения в онлайне. Мы называем его детальным графом. Для каждого детального графа также создаётся его менее детализированный аналог, вершины которого можно связать с вершинами такого же графа другого уровня/ей. Т.о. после объединения всех таких графов воедино мы получаем граф, который объединяет все уровни. Он и используется персонажами для передвижения в офлайне. Также им пользуются персонажи в онлайне, когда они выполняют свои стратегические цели. Например, если персонаж в онлайне решил идти на другой уровень, то он строит путь по глобальному графу, затем строит путь по детальному графу своего уровня со своей позиции до точки глобального графа. Если эта точка уже на другом уровне, то он телепортируется туда и автоматически переходит в офлайн. Для того, чтобы это не происходило на глазах у игрока, мы точки перехода для игровых персонажей ставили дальше точки перехода игрока, где-то «за углом»