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 — игровой движок, созданный украинским разработчиком компьютерных игр 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]).





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

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

Графический движок, основной компонент игрового движка «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 года выхода, разработчики добавили поддержку 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.[3][4]

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

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

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

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

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

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

Игровой ИИ

Игровой искусственный интеллект в движке «X-Ray» называется «A-Life» (англ. artificial life — рус. искусственная жизнь).[6]
Суть [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 (rc1), был выложен в интернете на одном из фан-сайтов. Архив размером 7 MБ представлял собой полные исходники собственно движка на C++, за исключением игрового SDK, утилит, плагинов и сторонних компонентов.

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

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

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

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

Напишите отзыв о статье "X-Ray (движок)"

Примечания

  1. [stalker-game-world.com/index/0-85 S.T.A.L.K.E.R. Team Полный состав команды разработчиков]. stalker-game-world.com. Проверено 21 июня 2009. [www.webcitation.org/65nct3CLe Архивировано из первоисточника 29 февраля 2012].
  2. Максим «Maxx» Михеенко. [www.gameland.ru/post/39574/?print=1 Интервью: Метро 2033]. Страна Игр (1 декабря 2007 года). Проверено 21 июня 2009. [www.webcitation.org/65ncvSOSu Архивировано из первоисточника 29 февраля 2012].
  3. Ian “Cabrtosr” McNaughton. [blogs.amd.com/play/2009/09/09/directx-11-–-what-to-expect/ DirectX 11 – What to expect!] (англ.). блоги AMD (9 сентября 2009 года). Проверено 12 сентября 2009. [www.webcitation.org/65ncy1jjc Архивировано из первоисточника 29 февраля 2012].
  4. Andrew Burnes. [ve3d.ign.com/articles/news/50217/ATI-On-DirectX-11-Gaming ATI On DirectX 11 Gaming] (англ.). Voodoo Extreme 3D (11 сентября 2009 года). Проверено 12 сентября 2009. [www.webcitation.org/65nczOAPh Архивировано из первоисточника 29 февраля 2012].
  5. [www.moddb.com/engines/x-ray-engine/games X-Ray Engine] (англ.). Mod DB. Проверено 7 мая 2009. [www.webcitation.org/65nd0DSG2 Архивировано из первоисточника 29 февраля 2012].
  6. Виталий Казунов (Lockust). [www.gametech.ru/cgi-bin/show.pl?option=article&id=85 S.T.A.L.K.E.R.: Чистое небо - интервью о проблемах выживания искусственного интеллекта в Чернобыльской Зоне]. GameTech (13 июня 2008 года). — Интервью с Дмитрием Ясеневым, главным разработчиком игрового ИИ в игре. Проверено 14 мая 2009. [www.webcitation.org/65nd2q5s0 Архивировано из первоисточника 29 февраля 2012].

Ссылки

  • [www.moddb.com/engines/x-ray-engine X-Ray Engine] (англ.). Mod DB. Проверено 6 мая 2009. [www.webcitation.org/65nd5H5Fg Архивировано из первоисточника 29 февраля 2012].
  • Terran. [www.devmaster.net/engines/engine_details.php?id=291 X-Ray] (англ.)(недоступная ссылка — история). DevMaster.net (3 августа 2006 года). Проверено 6 мая 2009. [web.archive.org/20060212213142/www.devmaster.net/engines/engine_details.php?id=291 Архивировано из первоисточника 12 февраля 2006].
  • Константин Терентьев, Евгений Соболь. [www.thg.ru/game/stalker/onepage.html S.T.A.L.K.E.R.: Shadow of Chernobyl. Схватка с жестокой неизвестностью] (рус.). Tom's Hardware (3 апреля 2007 года). Проверено 19 марта 2009.
  • Дмитрий Чеканов. [www.thg.ru/game/stalker_clear_sky/onepage.html "Stalker: Чистое Небо" (Clear Sky). Тест качества и производительности] (рус.). Tom's Hardware (1 октября 2008 года). Проверено 18 марта 2009.
  • Данил Гридасов. [www.ixbt.com/video/itogi-video/test/0811_scsdx101.shtml i3D-Quality - Под микроскопом - Ноябрь 2008 - DirectX 10.1 в «S.T.A.L.K.E.R.: Чистое небо»] (рус.). iXBT.com (12 декабря 2008 года). Проверено 12 декабря 2008. [www.webcitation.org/65ndBD5nK Архивировано из первоисточника 29 февраля 2012].
  • Данил Гридасов. [www.ixbt.com/video/itogi-video/test/0902_scsbench.shtml i3D-Quality - Под микроскопом - Январь-февраль 2009 - Производительность режимов высокого качества в S.T.A.L.K.E.R. Clear Sky] (рус.). iXBT.com (6 марта 2009 года). Проверено 6 марта 2009. [www.webcitation.org/65ndClF3e Архивировано из первоисточника 29 февраля 2012].
  • Дмитрий Трамбицкий. [article.techlabs.by/31_877.html Графические технологии в S.T.A.L.K.E.R. Тестирование десяти видеокарт в игре] (рус.) 5. TECHLABS.BY (12 апреля 2007 года). Проверено 8 мая 2009.
  • Арсений Капулкин. [www.gamedev.ru/community/gamedev_lecture/articles/r_e_n_de_r Лекция #32. R.E.N.D.E.R.] 7. GameDev.ru (10 мая 2007 года). — Стенограмма онлайн-лекции, посвящённой графическим технологиям в движке «X-Ray». Проверено 29 июля 2009. [www.webcitation.org/65ndF1MHa Архивировано из первоисточника 29 февраля 2012].
  • Кирилл Балалин. [itc.ua/articles/igry_protiv_zheleza_s_t_a_l_k_e_r_28009/ Игры против железа: S.T.A.L.K.E.R.]. ITC.ua (11 мая 2007 года). Проверено 3 января 2015. [www.webcitation.org/65ndFnpTt Архивировано из первоисточника 29 февраля 2012].

Отрывок, характеризующий X-Ray (движок)

В третьем кружке Нарышкин говорил о заседании австрийского военного совета, в котором Суворов закричал петухом в ответ на глупость австрийских генералов. Шиншин, стоявший тут же, хотел пошутить, сказав, что Кутузов, видно, и этому нетрудному искусству – кричать по петушиному – не мог выучиться у Суворова; но старички строго посмотрели на шутника, давая ему тем чувствовать, что здесь и в нынешний день так неприлично было говорить про Кутузова.
Граф Илья Андреич Ростов, озабоченно, торопливо похаживал в своих мягких сапогах из столовой в гостиную, поспешно и совершенно одинаково здороваясь с важными и неважными лицами, которых он всех знал, и изредка отыскивая глазами своего стройного молодца сына, радостно останавливал на нем свой взгляд и подмигивал ему. Молодой Ростов стоял у окна с Долоховым, с которым он недавно познакомился, и знакомством которого он дорожил. Старый граф подошел к ним и пожал руку Долохову.
– Ко мне милости прошу, вот ты с моим молодцом знаком… вместе там, вместе геройствовали… A! Василий Игнатьич… здорово старый, – обратился он к проходившему старичку, но не успел еще договорить приветствия, как всё зашевелилось, и прибежавший лакей, с испуганным лицом, доложил: пожаловали!
Раздались звонки; старшины бросились вперед; разбросанные в разных комнатах гости, как встряхнутая рожь на лопате, столпились в одну кучу и остановились в большой гостиной у дверей залы.
В дверях передней показался Багратион, без шляпы и шпаги, которые он, по клубному обычаю, оставил у швейцара. Он был не в смушковом картузе с нагайкой через плечо, как видел его Ростов в ночь накануне Аустерлицкого сражения, а в новом узком мундире с русскими и иностранными орденами и с георгиевской звездой на левой стороне груди. Он видимо сейчас, перед обедом, подстриг волосы и бакенбарды, что невыгодно изменяло его физиономию. На лице его было что то наивно праздничное, дававшее, в соединении с его твердыми, мужественными чертами, даже несколько комическое выражение его лицу. Беклешов и Федор Петрович Уваров, приехавшие с ним вместе, остановились в дверях, желая, чтобы он, как главный гость, прошел вперед их. Багратион смешался, не желая воспользоваться их учтивостью; произошла остановка в дверях, и наконец Багратион всё таки прошел вперед. Он шел, не зная куда девать руки, застенчиво и неловко, по паркету приемной: ему привычнее и легче было ходить под пулями по вспаханному полю, как он шел перед Курским полком в Шенграбене. Старшины встретили его у первой двери, сказав ему несколько слов о радости видеть столь дорогого гостя, и недождавшись его ответа, как бы завладев им, окружили его и повели в гостиную. В дверях гостиной не было возможности пройти от столпившихся членов и гостей, давивших друг друга и через плечи друг друга старавшихся, как редкого зверя, рассмотреть Багратиона. Граф Илья Андреич, энергичнее всех, смеясь и приговаривая: – пусти, mon cher, пусти, пусти, – протолкал толпу, провел гостей в гостиную и посадил на средний диван. Тузы, почетнейшие члены клуба, обступили вновь прибывших. Граф Илья Андреич, проталкиваясь опять через толпу, вышел из гостиной и с другим старшиной через минуту явился, неся большое серебряное блюдо, которое он поднес князю Багратиону. На блюде лежали сочиненные и напечатанные в честь героя стихи. Багратион, увидав блюдо, испуганно оглянулся, как бы отыскивая помощи. Но во всех глазах было требование того, чтобы он покорился. Чувствуя себя в их власти, Багратион решительно, обеими руками, взял блюдо и сердито, укоризненно посмотрел на графа, подносившего его. Кто то услужливо вынул из рук Багратиона блюдо (а то бы он, казалось, намерен был держать его так до вечера и так итти к столу) и обратил его внимание на стихи. «Ну и прочту», как будто сказал Багратион и устремив усталые глаза на бумагу, стал читать с сосредоточенным и серьезным видом. Сам сочинитель взял стихи и стал читать. Князь Багратион склонил голову и слушал.
«Славь Александра век
И охраняй нам Тита на престоле,
Будь купно страшный вождь и добрый человек,
Рифей в отечестве а Цесарь в бранном поле.
Да счастливый Наполеон,
Познав чрез опыты, каков Багратион,
Не смеет утруждать Алкидов русских боле…»
Но еще он не кончил стихов, как громогласный дворецкий провозгласил: «Кушанье готово!» Дверь отворилась, загремел из столовой польский: «Гром победы раздавайся, веселися храбрый росс», и граф Илья Андреич, сердито посмотрев на автора, продолжавшего читать стихи, раскланялся перед Багратионом. Все встали, чувствуя, что обед был важнее стихов, и опять Багратион впереди всех пошел к столу. На первом месте, между двух Александров – Беклешова и Нарышкина, что тоже имело значение по отношению к имени государя, посадили Багратиона: 300 человек разместились в столовой по чинам и важности, кто поважнее, поближе к чествуемому гостю: так же естественно, как вода разливается туда глубже, где местность ниже.
Перед самым обедом граф Илья Андреич представил князю своего сына. Багратион, узнав его, сказал несколько нескладных, неловких слов, как и все слова, которые он говорил в этот день. Граф Илья Андреич радостно и гордо оглядывал всех в то время, как Багратион говорил с его сыном.
Николай Ростов с Денисовым и новым знакомцем Долоховым сели вместе почти на середине стола. Напротив них сел Пьер рядом с князем Несвицким. Граф Илья Андреич сидел напротив Багратиона с другими старшинами и угащивал князя, олицетворяя в себе московское радушие.
Труды его не пропали даром. Обеды его, постный и скоромный, были великолепны, но совершенно спокоен он всё таки не мог быть до конца обеда. Он подмигивал буфетчику, шопотом приказывал лакеям, и не без волнения ожидал каждого, знакомого ему блюда. Всё было прекрасно. На втором блюде, вместе с исполинской стерлядью (увидав которую, Илья Андреич покраснел от радости и застенчивости), уже лакеи стали хлопать пробками и наливать шампанское. После рыбы, которая произвела некоторое впечатление, граф Илья Андреич переглянулся с другими старшинами. – «Много тостов будет, пора начинать!» – шепнул он и взяв бокал в руки – встал. Все замолкли и ожидали, что он скажет.
– Здоровье государя императора! – крикнул он, и в ту же минуту добрые глаза его увлажились слезами радости и восторга. В ту же минуту заиграли: «Гром победы раздавайся».Все встали с своих мест и закричали ура! и Багратион закричал ура! тем же голосом, каким он кричал на Шенграбенском поле. Восторженный голос молодого Ростова был слышен из за всех 300 голосов. Он чуть не плакал. – Здоровье государя императора, – кричал он, – ура! – Выпив залпом свой бокал, он бросил его на пол. Многие последовали его примеру. И долго продолжались громкие крики. Когда замолкли голоса, лакеи подобрали разбитую посуду, и все стали усаживаться, и улыбаясь своему крику переговариваться. Граф Илья Андреич поднялся опять, взглянул на записочку, лежавшую подле его тарелки и провозгласил тост за здоровье героя нашей последней кампании, князя Петра Ивановича Багратиона и опять голубые глаза графа увлажились слезами. Ура! опять закричали голоса 300 гостей, и вместо музыки послышались певчие, певшие кантату сочинения Павла Ивановича Кутузова.
«Тщетны россам все препоны,
Храбрость есть побед залог,
Есть у нас Багратионы,
Будут все враги у ног» и т.д.
Только что кончили певчие, как последовали новые и новые тосты, при которых всё больше и больше расчувствовался граф Илья Андреич, и еще больше билось посуды, и еще больше кричалось. Пили за здоровье Беклешова, Нарышкина, Уварова, Долгорукова, Апраксина, Валуева, за здоровье старшин, за здоровье распорядителя, за здоровье всех членов клуба, за здоровье всех гостей клуба и наконец отдельно за здоровье учредителя обеда графа Ильи Андреича. При этом тосте граф вынул платок и, закрыв им лицо, совершенно расплакался.


Пьер сидел против Долохова и Николая Ростова. Он много и жадно ел и много пил, как и всегда. Но те, которые его знали коротко, видели, что в нем произошла в нынешний день какая то большая перемена. Он молчал всё время обеда и, щурясь и морщась, глядел кругом себя или остановив глаза, с видом совершенной рассеянности, потирал пальцем переносицу. Лицо его было уныло и мрачно. Он, казалось, не видел и не слышал ничего, происходящего вокруг него, и думал о чем то одном, тяжелом и неразрешенном.
Этот неразрешенный, мучивший его вопрос, были намеки княжны в Москве на близость Долохова к его жене и в нынешнее утро полученное им анонимное письмо, в котором было сказано с той подлой шутливостью, которая свойственна всем анонимным письмам, что он плохо видит сквозь свои очки, и что связь его жены с Долоховым есть тайна только для одного него. Пьер решительно не поверил ни намекам княжны, ни письму, но ему страшно было теперь смотреть на Долохова, сидевшего перед ним. Всякий раз, как нечаянно взгляд его встречался с прекрасными, наглыми глазами Долохова, Пьер чувствовал, как что то ужасное, безобразное поднималось в его душе, и он скорее отворачивался. Невольно вспоминая всё прошедшее своей жены и ее отношения с Долоховым, Пьер видел ясно, что то, что сказано было в письме, могло быть правда, могло по крайней мере казаться правдой, ежели бы это касалось не его жены. Пьер вспоминал невольно, как Долохов, которому было возвращено всё после кампании, вернулся в Петербург и приехал к нему. Пользуясь своими кутежными отношениями дружбы с Пьером, Долохов прямо приехал к нему в дом, и Пьер поместил его и дал ему взаймы денег. Пьер вспоминал, как Элен улыбаясь выражала свое неудовольствие за то, что Долохов живет в их доме, и как Долохов цинически хвалил ему красоту его жены, и как он с того времени до приезда в Москву ни на минуту не разлучался с ними.
«Да, он очень красив, думал Пьер, я знаю его. Для него была бы особенная прелесть в том, чтобы осрамить мое имя и посмеяться надо мной, именно потому, что я хлопотал за него и призрел его, помог ему. Я знаю, я понимаю, какую соль это в его глазах должно бы придавать его обману, ежели бы это была правда. Да, ежели бы это была правда; но я не верю, не имею права и не могу верить». Он вспоминал то выражение, которое принимало лицо Долохова, когда на него находили минуты жестокости, как те, в которые он связывал квартального с медведем и пускал его на воду, или когда он вызывал без всякой причины на дуэль человека, или убивал из пистолета лошадь ямщика. Это выражение часто было на лице Долохова, когда он смотрел на него. «Да, он бретёр, думал Пьер, ему ничего не значит убить человека, ему должно казаться, что все боятся его, ему должно быть приятно это. Он должен думать, что и я боюсь его. И действительно я боюсь его», думал Пьер, и опять при этих мыслях он чувствовал, как что то страшное и безобразное поднималось в его душе. Долохов, Денисов и Ростов сидели теперь против Пьера и казались очень веселы. Ростов весело переговаривался с своими двумя приятелями, из которых один был лихой гусар, другой известный бретёр и повеса, и изредка насмешливо поглядывал на Пьера, который на этом обеде поражал своей сосредоточенной, рассеянной, массивной фигурой. Ростов недоброжелательно смотрел на Пьера, во первых, потому, что Пьер в его гусарских глазах был штатский богач, муж красавицы, вообще баба; во вторых, потому, что Пьер в сосредоточенности и рассеянности своего настроения не узнал Ростова и не ответил на его поклон. Когда стали пить здоровье государя, Пьер задумавшись не встал и не взял бокала.