Русская Википедия:Reality Engine
Шаблон:Карточка движка Reality Engine — игровой движок, разработанный американской компанией Artificial Studios для лицензирования другим компаниям. Движок примечателен тем, что был одним из первых движков, активно использующих физический движок «Ageia PhysX» и поддерживал физический процессор Ageia PhysX PPU. Благодаря этому движок использовался в нескольких техно-демо-играх, призванных демонстрировать технологии компании Ageia[1]. 11 мая 2005 года движок был полностью продан компании Epic Games и с этого момента перестал развиваться и лицензироваться.
История
Компания Artificial Studios была основана в 2001 году. Её первым и основным продуктом стал ориентированный на лицензирования сторонним компаниям движок «Reality Engine», который постоянно дорабатывался и совершенствовался[2].
Сотрудничество с NovodeX AG
22 февраля 2005 года Artificial Studios в пресс-релизе официально сообщила о подписании соглашения со швейцарской компанией NovodeX AG, разработчиком физического движка NovodeX Physics. Согласно сделке, физический движок «NovodeX Physics» был интегрирован в «Reality Engine». «В поисках мощного физического движка для игр следующего поколения мы рассматривали много вариантов, но ни один не впечатлил нас своей производительностью и способностями так сильно, как NovodeX. Мы верим, что это сотрудничество позволит разработчикам на Reality поднять реализм в своих играх на новый уровень», — заявил Тим Джонсон (Шаблон:Lang-en), основатель и технический директор Artificial Studios[3][4].
Позже стало известно, что ещё в 2004 году компания NovodeX AG и её движок были приобретены компанией Ageia, «NovodeX Physics» превратился в «Ageia PhysX». После этой сделки с 13 декабря 2005 года в «Reality Engine» стал использоваться «Ageia PhysX»[3].
Покупка движка компанией Epic Games
11 мая 2005 года американская компания Epic Games, один из крупнейших американских разработчиков игр и разработчик серии движков Unreal Engine, официально анонсировала о завершении покупки игрового движка «Reality Engine». Одновременно с покупкой движка, Epic Games наняла Тима Джонсона, основателя Artificial Studios и главного программиста движка. Было объявлено, что Джонсон подключится к процессу разработки движка «Unreal Engine 3»[5][6].
Epic Games выкупила полный набор прав на «Reality Engine», включая права на интеллектуальную собственность, торговые марки и авторские права. Было объявлено, что Epic Games не намерена продолжать развивать, поддерживать и продавать «Reality Engine», — цель покупки состояла в интеграции «Reality Engine» в «Unreal Engine 3». Разработчикам, которые ранее купили лицензию на «Reality Engine», был предложен апгрейд с «Reality Engine» на «Unreal Engine 3» по сниженной цене (по сравнению с полной стоимостью «Unreal Engine 3»)[6].
Тим Суини, основатель Epic Games и главный программист всех движков серии Unreal Engine, так прокомментировал данную сделку: «Мы очень рады видеть Тима Джонсона в составе нашей команды. Он привнёс опыт шести лет разработки игровых движков в команду разработчиков Unreal Engine 3, и он прямо сейчас полон идеями, как улучшить нашу технологию. Тим отлично подходит для Epic — он прекрасно понимает все стороны бизнеса лицензирования, от проектирования до поддержки клиентов для развития бизнеса. Он будет иметь огромное положительное воздействие на нашу компанию и на лицензиатов нашего движка»[5].
На следующий день Джереми Штиглиц (Шаблон:Lang-en), сооснователь и главный дизайнер Artificial Studios, прокомментировал эту сделку и сообщил, что для лицензиатов «Reality Engine» будет продолжена поддержка, разработка документации и исправление ошибок движка[3].
Технические характеристики
Игровой движок «Reality Engine» написан на языках программирования Си и C++. Он полностью интегрирован с языками платформы .NET Framework, позволяя писать модули к нему на C#, C++/CLI, Visual Basic .NET и других. Для некоторых модулей, в качестве скриптового языка использовался Python. В движке, в качестве API рендера, используется Direct3D9. «Reality Engine» — кроссплатформенный движок, однако при его разработке основной акцент был сделан на IBM PC-совместимые компьютеры под управлением операционных систем семейства Microsoft Windows[7]. Вместе с тем архитектура движка спроектирована так, чтобы его можно было портировать на игровые консоли Xbox 360 и PlayStation 3[8][9].
Графический движок
Шаблон:External media Графический движок в «Reality Engine» создан на основе DirectX 9.0 и обратно совместим с DirectX 7 и DirectX 8. Движок поддерживает попиксельное освещение и затенение при помощи шейдерных моделей PS3.0, PS2.X, PS2.0 и PS1.1,также поддерживается FPP. Поддерживаются динамический проективный маппинг, normal mapping, зеркальность Фонга, попиксельный reflection mapping, преломления (рефракции), parallax mapping, анимированные текстуры, имитация ткани, анизотропное рассеивание, рендеринг воды и другие конфигурируемые пиксельные и вершинные шейдеры[8].
В движке используется технология «Precomputed Radiance Transfer» (сокращённо «PRT»), иначе называемая «Realtime Radiosity», благодаря которой возможна реализация технологий подповерхностного рассеивания и мягких теней. Система освещения и затенения является унифицированной и динамичной, способной обрабатывать циклы день/ночь[9].
Важной особенностью движка является иерархичное попиксельное окклюзивное обрезание (Шаблон:Lang-en), которое устраняет необходимость в создании порталов, зон видимости или ручных окклюдеров. Окклюзивное обрезание невидимых поверхностей проводится полностью автоматически[8].
Поддерживается технология «High Dynamic Range Rendering» с использованием буферов с плавающей запятой, что позволяет реализовывать такие эффекты, как Tone Mapping, Exposure Adaption и Blue Shift[9].
Пост-процессинг включает такие пост-фильтры, как Motion Blur, Bloom и нефотореалистичный рендеринг[8].
Физический движок
Шаблон:External media В качестве физического движка в «Reality Engine» использовался сначала «NovodeX Physics», а с 13 декабря 2005 года — «Ageia PhysX», который был на нём основан. После перехода на «Ageia PhysX» стало возможным ускорение физических расчётов на физическом процессоре Ageia PhysX PPU. Поддержка Ageia PhysX PPU была добавлена для версии «Reality Engine» v.15 13 декабря — в день перехода на движок Ageia PhysX[3].
Движком поддерживается обнаружение столкновений, физика твёрдых тел, физика транспортных средств, физика Ragdoll, мульти-примитивы, соединения (кинематические пары), разрушаемые объекты, физика безразмерных (точечных) частиц и многие другие функции. Ещё одной функцией движка является возможность создания так называемых «физических зон» — областей в трёхмерной сцене, в которых величины физических констант (инерция, трение, ускорение свободного падения) отличаются от величин этих констант вне данной «физической зоны»[9].
Работа с физическим движком поддерживается в утилите «Reality Builder» на уровне графического интерфейса. Так, в «Reality Builder» можно создавать ограничивающие объёмы для разных моделей и скелетных анимированных мешей, возможно редактирование соединений, а также просчёт, выполнение и тонкая настройка физики внутри редактора[8].
Система анимации
Система анимации, входящая в состав «Reality Engine», имеет поддержку анимации по ключевым кадрам (Шаблон:Lang-en), скелетной анимации и смешивания анимации. Поддерживается скелетная анимация на уровне вершинных шейдеров, персонажи могут содержать любое количество произвольных пиксельных и вершинных шейдеров для множества материалов. Система анимации поддерживает бесшовные переходы между физической анимацией (например, физикой Ragdoll) и предпросчитанной анимацией по ключевым кадрам. Физические свойства костей скелетов персонажей позволяют создавать процедурную анимацию[9].
«Reality Engine» содержит инструменты для экспорта анимационных последовательностей, взвешенных сеток и скелетов из 3ds Max и Maya в движок[8].
Звуковой движок
Звуковой движок в составе «Reality Engine» поддерживает технологии Environmental Audio Extensions и 5.1 Surround, способен обрабатывать звуковые источники на двухмерной и трёхмерной сцене, был написан с использованием DirectSound. Поддерживается потоковое аудио, имеется поддержка аудиокодека Vorbis[9].
Работа с сетью
«Reality Engine» способен работать с компьютерными сетями, позволяя создавать многопользовательские сетевые игры или режимы игры. Сетевые компоненты движка построены на основе технологии «клиент-сервер».
При работе с сетевыми соединениями используется адаптивная деградация данных и предсказание поведения, позволяющие более эффективное взаимодействие пользователей через сетевые соединения с большой задержкой (латентностью). Сетевая подсистема поддерживает голосовую связь. Платформо-независимый сетевой компонент способен работать на выделенных серверах, которые запущены на Microsoft Windows, Linux или Mac OS[8][9].
Сетевая система движка широко используется при разработке игр на нём. Например, множество разработчиков какой-либо игры на «Reality Engine» могут одновременно вносить изменения в одну игровую сцену через множество компьютеров в сети, — эти изменения будут добавляться в сцену, которая будет запущена на сервере. Кроме этого, сервер работает как система управления версиями — он сохраняет и синхронизирует все сборки (билды) и игровые ассеты, которые находятся на уровне во время его создания[9].
Ещё одной функцией сетевой компоненты «Reality Engine» являются распределённые вычисления системы освещения. Разработчики игры могут просчитывать «Precomputed Radiance Transfer» на своих собственных (локальных) компьютерах и потом отправлять результаты вычислений на сервер[9].
Игровой ИИ
Шаблон:External media В «Reality Engine» присутствуют компоненты игрового искусственного интеллекта, позволяющие создавать ИИ-персонажей, например, ботов или NPC. Модуль по работе с игровым ИИ был создан с использованием библиотеки Kynapse от AutoDesk. При сетевой игре ИИ может выполняться как на стороне клиента, так и на стороне сервера; во втором случае на клиент отсылаются лишь действия виртуальных персонажей, просчитанные на сервере[9].
Присутствуют алгоритмы поиска пути, причём есть и предпросчитанные заготовки, и динамические варианты поиска пути с уклонением от препятствий. Принятие решений основано на модели адаптивного конечного автомата. Боты могут реагировать на такие внешние раздражители, как изображения и звуки[8].
Редакторы уровней и другие утилиты
«Reality Engine» содержит редактор уровней, имеющий графический интерфейс и работающий по принципу «What You See Is What You Get». Для перехода из режима редактирования в режим сцены не нужно время на компиляцию или другую обработку уровня — переключение в режим игры производится сразу. Редактор уровней позволяет создавать и настраивать все ассеты на уровне: точки респавна, неигровых персонажей, игровых предметов, инвентаря и амуниции, узлы путей ИИ-персонажей, источники света и др. Все объекты появляются на сцене сразу и полноценно обрабатываются графическим движком[8].
Существует набор плагинов к 3ds Max и Maya, которые позволяют экспортировать из этих программ трёхмерные модели, анимационные и другие данные[8].
Лицензирование
Компания Artificial Studios предлагала движок «Reality Engine» для лицензирования сторонним компаниям. Цена публично не оговаривалась, она определялась индивидуально для лицензиата после собеседования с ним. При лицензировании лицензиат получал полный исходный код движка, полный исходный код фреймворка, технологические демонстрации, все компиляторы и утилиты, а также их исходный код. Лицензиат обеспечивался поддержкой и ежедневными обновлениями движка из онлайновой CVS[10].
Для потенциальных лицензиатов Artificial Studios предлагала оценочные версии движка с ограниченным исходным кодом. Существовали обучающие лицензии, распространяемые со скидками, по меньшей цене[10].
После покупки движка компанией Epic Games компания Artificial Studios утратила все права на движок и прекратила его лицензирование, однако продолжила поддержку для уже существующих лицензиатов. Было заявлено, что работы над движком продолжаться: будут выпускаться новые обновления, писаться инструкции, продолжаться поддержка лицензиатов[3].
В августе 2008 года Тим Джонсон на официальном сайте сообщил, что он и его компания больше не принимают сообщений от лицензиатов движка касательно самого движка[3].
Продукты, использующие Reality Engine
Одна лицензия на использование «Reality Engine» была продана компании FutureFarm Studio, которая занимается трёхмерной графикой и дизайном.[11]
«Reality Engine» лицензировала ирландская компания Phooka Entertainment, которая в 2006 году выпустила на движке игру Recall.[11] Данная игра является обучающей игрой в стиле action-adventure и с видом от третьего лица. Эта игра была предназначена для «установления мира и примирения в Северной Ирландии путём содействия развитию сотрудничества, взаимопонимания и примирения». Кроме этого, планировалось использовать игру в школах на севере Ирландии.[29]
Компания Artificial Studios выпустила ряд технологических демонстраций «Reality Engine»[11]:
- «Reality Engine Cave Tech Demo» — 2003 год
- «Reality Engine Haunted Mansion Tech Demo» — 2003 год
- «Reality Engine Backyard Tech Demo» — 2004 год
- «Reality Engine Eval Kit Deathmatch Level» — 2004 год
Оценки и отзывы
9 мая 2007 года сайт Cinema Blend опубликовал статью «Unreal Engine 3 Vs Reality Engine: The Battle Of Compatibility» (Шаблон:Lang-ru), в которой был проведён анализ и сравнение движков «Unreal Engine 3» и «Reality Engine», а также были приведены высказывания нескольких разработчиков игр по этим движкам. Основным и ключевым недостатком «Reality Engine» была названа его недостаточная поддержка консолей, которая делает его пригодным только для использования на персональных компьютерах. Именно этот фактор привёл к тому, что «Reality Engine» имеет очень слабую популярность и лицензиатов, тогда как мультиплатформенный «Unreal Engine 3» является лидером по лицензированию[7].
В данной статье были приведены высказывания Майка Хамлетта (Шаблон:Lang-en), президента компании Vision Studios, которая разрабатывает игру Strike Force Red Cell для ПК и Xbox 360 на «Reality Engine». Выход этой игры запланирован на второе полугодие 2010 года. В интервью сайту VG Core 6 октября 2006 года Майк Хамлетт заявил[7][30]:
« |
Мы действительно хотели работать с Unreal Engine 3, но его цена не вписывалась в наш бюджет. Мы решили купить Reality Engine ещё до того, как он был куплен Epic, и мы расширили возможности движка согласно нашим нуждам. Движок восхитительный и он будет конкурировать с другими будущими ААА-продуктами. | » |
— Анонимус |
Кроме этого, Хамлетт сообщил, что, по сравнению с «Unreal Engine 3», «Reality Engine» вполне конкурентоспособный и имеет такие особенности, которые отсутствуют в «Unreal Engine 3». Единственной причиной, по которой «Reality Engine» не получил такого распространения, как «Unreal Engine 3», Хамлетт считает покупку движка компанией Epic Games, вследствие которой уже никто не может лицензировать «Reality Engine».[30]
Отзывы на применение PhysX в играх серии CellFactor
«Reality Engine» стал одним из первых игровых движков, в который был интегрирован физический движок «Ageia PhysX» с поддержкой физического процессора Ageia PhysX PPU[31]. Благодаря этому на «Reality Engine» было выпущено несколько бесплатных техно-демо-игр, которые были призваны демонстрировать особенности и преимущества комплекса PhysX по сравнению с конкурентами. Так, игры CellFactor: Combat Training (май 2006), CellFactor: Revolution (май 2007), Desert Diner (январь 2009) являются технологическими демонстрациями[1].
« |
На примере CellFactor хорошо прослеживается практическое доказательство нашего теоретического предположения о том, что PPU — это в первую очередь количественное улучшение уже виденных нами физических эффектов. В 2003-м году в Max Payne 2 с полок падало на пол по 5 коробок, а тут — летает по 500 ящиков одновременно. | » |
— Анонимус |
Стандартно «CellFactor: Combat Training» была предназначена для запуска только на тех ПК, на которых установлена плата Ageia PhysX PPU. В случае отсутствия такой платы игра не запускалась. Однако в июле 2006 года участники форумов сайта Tom's Hardware предложили работающий «рецепт», как обеспечить нормальную работу «CellFactor: Combat Training» без наличия Ageia PhysX PPU в системе. Благодаря этому журналисты смогли тестировать производительность и качество физического движка PhysX в игре «CellFactor: Combat Training» в двух режимах: без наличия физического ускорителя и при его наличии[1][32][33].
8 мая 2006 года авторитетный англоязычный сайт Bit-tech.net опубликовал обширный обзор BFG Tech AGEIA PhysX PPU — платы расширения, которая использовала физический процессор Ageia PhysX PPU. Для тестирования использовались коммерческая игра «Tom Clancy's Ghost Recon Advanced Warfighter» от шведского разработчика GRIN и «CellFactor: Combat Training» Журналисты очень хорошо отозвались о качестве и масштабах физики в «CellFactor: Combat Training», а также о количестве физически взаимодействующих объектов. «Вот где мощь процессора PhysX PPU действительно пробивается», — заявили обозреватели. Особо сильно журналисты подчеркнули работу с тканью в игре: «Рендеринг реальной ткани является одной из самых сложных задач в играх, <…> и мы никогда ранее не видели разрушаемую ткань такого высокого качества». Вместе с тем, журналисты заметили, что «CellFactor: Combat Training» — техно-демо-игра, специально разработанная для демонстрации PhysX, поэтому она не может приниматься во внимание так же, как «полноценные» коммерческие игры[34].
Русскоязычный сайт «Железо» в своём обзоре на Asus PhysX P1 оценивал его, как и Bit-tech.net, при помощи двух игр — «Tom Clancy's Ghost Recon Advanced Warfighter» и «CellFactor: Combat Training». О качестве физики в первой игре журналисты отозвались отрицательно, однако были восхищены уровнем и масштабами физики в «CellFactor: Combat Training». Обозреватели поражались «огромным» количеством одновременно обрабатываемых объектов и активное взаимодействие с ними при помощи телекинеза, присущего игровому персонажу. «В действии это, надо сказать, смотрится потрясающе — вот где наглядно видно преимущество аппаратного ускорения физики!» — заявили журналисты[33].
Примечания
Ссылки
- ↑ 1,0 1,1 1,2 Ошибка цитирования Неверный тег
<ref>
; для сносокixbt_ppu
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокcompany_as
не указан текст - ↑ 3,0 3,1 3,2 3,3 3,4 3,5 3,6 Ошибка цитирования Неверный тег
<ref>
; для сносокnews_as
не указан текст - ↑ Шаблон:Cite web
- ↑ 5,0 5,1 Ошибка цитирования Неверный тег
<ref>
; для сносокbuy_orig
не указан текст - ↑ 6,0 6,1 Ошибка цитирования Неверный тег
<ref>
; для сносокbuy
не указан текст - ↑ 7,0 7,1 7,2 7,3 Ошибка цитирования Неверный тег
<ref>
; для сносокcompare
не указан текст - ↑ 8,0 8,1 8,2 8,3 8,4 8,5 8,6 8,7 8,8 8,9 Ошибка цитирования Неверный тег
<ref>
; для сносокdescr_as
не указан текст - ↑ 9,0 9,1 9,2 9,3 9,4 9,5 9,6 9,7 9,8 9,9 Ошибка цитирования Неверный тег
<ref>
; для сносокdescr_devmaster
не указан текст - ↑ 10,0 10,1 Ошибка цитирования Неверный тег
<ref>
; для сносокfaq_as
не указан текст - ↑ 11,0 11,1 11,2 11,3 11,4 11,5 11,6 Ошибка цитирования Неверный тег
<ref>
; для сносокmedia_as
не указан текст - ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ 30,0 30,1 Ошибка цитирования Неверный тег
<ref>
; для сносокvgcore
не указан текст - ↑ Поддержка Ageia PhysX PPU была добавлена 13 декабря 2005 года, тогда как сам PPU был анонсирован в марте 2005 года. Первая коммерческая игра, в которой была полная поддержка PhysX — Tom Clancy's Ghost Recon Advanced Warfighter, вышедшая 5 мая 2006 года для ПК.
- ↑ Шаблон:Cite web
- ↑ 33,0 33,1 Ошибка цитирования Неверный тег
<ref>
; для сносокxard_ppu
не указан текст - ↑ Шаблон:Cite web