Что значит движок игры. Дважды подумайте, прежде чем слишком обобщать

В последнее время я занят тем, что пишу игровой движок на C++. Я пользуюсь им для создания небольшой мобильной игры Hop Out . Вот ролик, записанный с моего iPhone 6. (Можете включить звук!)


Your browser does not support HTML5 video.


Hop Out - та игра, в которую мне хочется играть самому: ретро-аркада с мультяшной 3D-графикой. Цель игры - перекрасить каждую из платформ, как в Q*Bert.



С чего бы кому-то хотеть написать игровой движок? Возможных причин много:

  • Вы - ремесленник. Вам нравится строить системы с нуля и видеть, как они оживают.
  • Вы хотите узнать больше о разработке игр. Я в игровой индустрии 14 лет и всё ещё пытаюсь в ней разобраться. Я даже не был уверен, что смогу написать движок с чистого листа, ведь это так сильно отличается от повседневных рабочих обязанностей программиста в большой студии. Я хотел проверить.
  • Вам нравится ощущение контроля. Организовать код именно так, как вам хочется, и всегда знать, где что находится - это приносит удовольствие.
  • Вас вдохновляют классические игровые движки, такие как AGI (1984), id Tech 1 (1993), Build (1995), и гиганты индустрии вроде Unity и Unreal.
  • Вы верите, что мы, индустрия игр, должны сбросить покров таинственности с процесса разработки движков. Мы пока не очень-то освоили искусство разработки игр - куда там! Чем тщательнее мы рассмотрим этот процесс, тем выше наши шансы усовершенствовать его.

Игровые платформы в 2017-ом - мобильные, консоли и ПК - очень мощные и во многом похожи друг на друга. Разработка игрового движка перестала быть борьбой со слабым и редким железом, как это было в прошлом. По-моему, теперь это скорее борьба со сложностью вашего собственного произведения . Запросто можно сотворить монстра! Вот почему все советы в этой статье вращаются вокруг того, как сохранить код управляемым. Я объединил их в три группы:

  1. Осознайте, что сериализация - обширная тема.

Эти советы применимы к любому игровому движку. Я не собираюсь рассказывать, как написать шейдер, что такое октодерево или как добавить физику. Я полагаю, вы и так в курсе, что должны это знать - и во многом эти темы зависят от типа игры, которую вы хотите сделать. Вместо этого я сознательно выбрал темы, которые не освещаются широко - темы, которые я нахожу наиболее интересными, когда пытаюсь развеять завесу тайны над чем-либо.

Используйте итеративный подход

Мой первый совет - не задерживаясь заставьте что-нибудь (что угодно!) работать, затем повторите.


По возможности, начните с образца приложения, которое инициализирует устройство и рисует что-нибудь на экране. В данном случае я скачал SDL , открыл Xcode-iOS/Test/TestiPhoneOS.xcodeproj , затем запустил на своём iPhone пример testgles2 .



Вуаля! У меня появился замечательный вращающийся кубик, использующий OpenGL ES 2.0.


Моим следующим шагом было скачивание сделанной кем-то 3D-модели Марио. Я быстро написал черновой загрузчик OBJ-файлов - этот формат не так уж сложен - и подправил пример, чтобы он отрисовывал Марио вместо кубика. Ещё я интегрировал SDL_Image , чтобы загружать текстуры.



Затем я реализовал управление двумя стиками, чтобы перемещать Марио. (Поначалу я рассматривал идею создания dual-stick шутера. Впрочем, не с Марио).



Следующим делом я хотел познакомиться со скелетной анимацией, так что открыл Blender , создал модель щупальца и привязал к нему скелет из двух костей, которые колебались туда-сюда.



К тому моменту я отказался от формата OBJ и написал скрипт на Python для экспорта собственных JSON-файлов из Blender. Эти JSON-файлы описывали заскиненный меш, скелет и данные анимации. Я загружал эти файлы в игру с помощью библиотеки C++ JSON .



Как только всё заработало, я вернулся в Blender и создал более проработанного персонажа (Это был первый сделанный и зариганный мной трёхмерный человек. Я им весьма гордился.)



В течение следующих нескольких месяцев я сделал такие шаги:

  • Начал выделять функции работы с векторами и матрицами в собственную библиотеку трёхмерной математики.
  • Заменил.xcodeproj на проект CMake
  • Заставил движок запускаться и на Windows, и на iOS, потому что мне нравится работать в Visual Studio.
  • Начал перемещать код в отдельные библиотеки "engine" и "game". Со временем, я разделил их на ещё более мелкие библиотеки.
  • Написал отдельное приложение, чтобы конвертировать мои JSON-файлы в бинарные данные, которые игра может загружать напрямую.
  • В какой-то момент убрал все библиотеки SDL из iOS-сборки. (Cборка для Windows всё ещё использует SDL.)

Ключевой момент в следующем: я не планировал архитектуру движка до того как начал программировать . Это был осознанный выбор. Вместо этого я всего лишь писал максимально простой код, реализующий следующую часть функционала, затем смотрел на него, чтобы увидеть, какая архитектура возникла естественным образом. Под "архитектурой движка" я понимаю набор модулей, которые составляют игровой движок, зависимости между этими модулями и API для взаимодействия с каждым модулем.




Может показаться, что при таком подходе много времени теряется впустую, ведь вы всегда пишете плохой код, который потом требуется переписывать начисто. Но большая часть изменений представляет собой перемещение кода из одного.cpp -файла в другой, извлечение определений функций в.h -файлы или другие не менее простые действия. Определить, где что должно лежать - сложная задача, и решить её проще, когда код уже существует.


Готов поспорить, что больше времени тратится при противоположном подходе: пытаться заранее продумать архитектуру, которая будет делать всё, что вам понадобится. Две моих любимых статьи про опасности чрезмерной инженерии - The Vicious Circle of Generalization Томаша Дабровски и Don’t Let Architecture Astronauts Scare You Джоэла Спольски.


Я не говорю, что вы не должны решать проблемы на бумаге до того, как столкнётесь с ними в коде. Я также не утверждаю, что вам не следует заранее решить, какой функционал вам нужен. Например, я знал с самого начала, что хочу, чтобы движок загружал все ресурсы в фоновом потоке. Просто я не пытался спроектировать или реализовать этот функционал до тех пор, пока мой движок не начал загружать хоть какие-то ресурсы.


Итеративный подход дал мне куда более элегантную архитектуру, чем я мог бы вообразить, глядя на чистый лист бумаги. iOS-сборка моего движка сегодня на 100% состоит из оригинального кода, включая собственную математическую библиотеку, шаблоны контейнеров, систему рефлексии/сериализации, фреймворк рендеринга, физику и аудио микшер. У меня были причины писать каждый из этих модулей самостоятельно, но для вас это может быть необязательным. Вместо этого есть множество отличных библиотек с открытым исходным кодом и разрешительной лицензией, которые могут оказаться подходящими вашему движку. GLM , Bullet Physics и STB headers - лишь некоторые из интересных примеров.

Дважды подумайте, прежде чем слишком обобщать

Как программисты, мы стремимся избегать дублирования кода, и нам нравится, когда код следует единому стилю. Тем не менее, я думаю, что полезно не давать этим инстинктам управлять всеми решениями.

Время от времени нарушайте принцип DRY

Приведу пример: мой движок содержит несколько шаблонных классов умных указателей, близких по духу к std::shared_ptr . Каждый из них помогает избежать утечек памяти, выступая обёрткой вокруг сырого указателя.

  • Owned<> для динамически выделяемых объектов, имеющих единственного владельца.
  • Reference<> использует подсчёт ссылок чтобы позволить объекту иметь несколько владельцев.
  • audio::AppOwned<> используется кодом за пределами аудио микшера. Это позволяет игровым системам владеть объектами, которые аудио микшер использует, такими как голос, который в данный момент воспроизводится.
  • audio::AudioHandle<> использует систему подсчёта ссылок, внутреннюю для аудио микшера.

Может показаться, что некоторые из этих классов дублируют функциональность других, нарушая принцип DRY . В самом деле, в начале разработки я пытался повторно использовать существующий класс Reference<> как можно больше. Однако, я выяснил, что время жизни аудио-объекта подчиняется особым правилам: если объект закончил воспроизведение фрагмента, и игра не владеет указателем на этот объект, его можно сразу же поместить в очередь на удаление. Если игра захватила указатель, тогда аудио-объект не должен быть удалён. А если игра захватила указатель, но владелец указателя уничтожен до того, как воспроизведение закончилось, оно должно быть отменено. Вместо того чтобы усложнять Reference<> , я решил, что будет практичнее ввести отдельные классы шаблонов.


95% времени повторное использование существующего кода - верный путь. Но если оно начинает вас сковывать или вы обнаруживаете, что усложняете что-то, однажды бывшее простым, спросите себя: не должна ли эта часть кодовой базы в действительности быть разделена надвое.

Использовать разные соглашения о вызове - это нормально

Одна из вещей, которая мне не нравится в Java - то, что она заставляет вас определять каждую функцию внутри класса. По-моему, это бессмысленно. Это может придать вашему коду более единообразный вид, но также поощряет переусложнение и не поддерживает итеративный подход, описанный мной ранее.


В моём C++ движке некоторые функции принадлежат классами, а некоторые - нет. Например, каждый противник в игре - это класс, и бо́льшая часть поведения противника реализована в этом классе, как и следовало ожидать. С другой стороны, в моём движке выполняются вызовом sphereCast() , функции в пространстве имён physics . sphereCast() не принадлежит какому-либо классу - это просто часть модуля physics . У меня есть система сборки, которая управляет зависимостями между модулями, что сохраняет код достаточно (для меня) хорошо организованным. Заворачивание этой функции в произвольный класс никоим образом не улучшит организацию кода.



Как минимум, постарайтесь представить, насколько сложными будут ваши требования. Если вы делаете маленькую игру вроде Flappy Bird, с несколькими ассетами, вам скорее всего не придётся много думать о сериализации. Вероятно, вы можете загружать текстуры напрямую из PNG и этого будет достаточно. Если вам нужен компактный бинарный формат с обратной совместимостью, но вы не хотите разрабатывать свой - взгляните на сторонние библиотеки, такие как Cereal или Boost.Serialization . Не думаю, что Google Protocol Buffers идеально подходят для сериализации игровых ресурсов, но они всё равно стоят изучения.


Написание игрового движка - даже маленького - большое предприятие. Я мог бы сказать намного больше, но, если честно, самый полезный совет, который я могу придумать для статьи такой длины: работайте итеративно, слегка сопротивляйтесь тяге к обобщению кода, и помните, что сериализация - обширная тема, так что понадобится выбрать подходящую стратегию. Мой опыт показывает, что каждый из этих пунктов может стать камнем преткновения, если его игнорировать.


Я люблю сравнивать наблюдения по этой теме, так что мне очень интересно услышать мнение других разработчиков. Если вы писали движок, привел ли ваш опыт к тем же выводам? А если не писали или ещё только собираетесь, ваши мысли мне тоже интересны. Что вы считаете хорошим ресурсом для обучения? Какие аспекты ещё кажутся вам загадочными? Не стесняйтесь оставлять комментарии ниже или свяжитесь со мной

Вместе с созданием первых игр программисты пришли к тому, что каждая игра содержит общие компоненты, даже несмотря на различие аппаратных платформ. А первые игры имели место на игровых автоматах размером с холодильник.

Общая для игр функциональность - графические решения, игровые механики, расчет физики и другое - стала выделяться в отдельные библиотеки, но, для того чтобы быть «игровым движком» было еще далеко. Во многом это было связано с серьезным различием программно-аппаратных платформ и неопределенности в самих играх. Ведь жанры и типы игр еще предстояло изобрести, при том, что многие первые игры были текстовыми. Собственно, именно для ранних адвенчур и платформеров и стали возникать игровые движки, особенно с развитием графики - хорошим примером можно назвать Adventure Game Interpreter (AGI). При разработке King’s Quest в далеком 1984 году, программисты Sierra On-Line столкнулись с неудобством низкоуровневой разработки столь сложной и перспективной по графике в те времена игры - и разработали набор решений, которым и стал AGI. Всего на нем было выпущено 14 различных игр за 5 лет на 7 различных платформах, поэтому понятие “кроссплатформенность” было важным уже тогда.

Однако, движки того времени редко выходили за пределы изначальной компании-разработчика и, как правило, были достаточно узкоспециализированными под конкретный жанр игры.

Начало

Ситуация начала меняться в 1993-м году после выхода игры Doom от компании id Software. Хотя при ее разработке использовались наработки движка Wolfenstein 3D, с точки зрения возможностей и модульности в ней был совершен настоящий технологический прорыв. В то время видеопроцессоры были не способны эффективно работать с трехмерной графикой, поэтому Джон Кармак (ведущий программист движка) выполнял все необходимые математические вычисления, служащие для манипуляции с трехмерными объектами, светом, затенением, наложением текстур и прочего самостоятельно. В результате, изображение выглядело трехмерным, на самом деле таковым не являясь. Поэтому Doom engine (первая версия id Tech) был не истинно трехмерным, а псевдотрехмерным. Но важно то, что техническая составляющая этой игры задала стандарт для того, что могло называться игровым движком. А именно, движок Doom был модульным, представлял из себя набор подсистем, в нем каждый четко отделенный программный слой отвечал за обработку своей порции данных. В результате, использовать его для различных игр (Hexen, Heretic, Strife) и силами сторонних разработчиков (Raven Software и Rogue Entertainment) стало намного проще. Поэтому появление игровых движков относят к середине 90-х годов 20-го века, то есть тогда окончательно сформировалось определение игрового движка в современном смысле.

Игровой движок представляет своеобразную узкоспециализированную операционную систему, поскольку включает все модули последней. В него входят: система управления памятью, графическая подсистема, система ввода, аудио подсистема, искусственный интеллект, физическая подсистема, сетевая подсистема, редактор игровых уровней и другое. Кроме того ядро движка может предоставлять особый подход к работе с файлами – файловую (ресурсную) систему, а так же отличающиеся от основной операционной системы средства работы с многопоточностью. Современный игровые движки вдобавок включают интерпретатор скриптового языка, заточенного для описания игровой логики, а нередко и полностью визуальный ее редактор. Его использование позволяет абстрагироваться от описания низкоуровневых команд и инструкций, а сконцентрироваться на геймплее. На этом составляющие движок компоненты не ограничиваются, их может быть как больше, так и меньше.

Цели

Игровой движок в первую очередь создается в целях упрощения и ускорения разработки. Поэтому включает средства для создания игрового мира – level-моделинга, импорта объектов, текстурирования, загрузки и анимации персонажей, создания визуальных эффектов, настройки физики и прочего.

Второй значительной целью разработки движка является кроссплатформенность или платформонезависимость разрабатываемой игры. То есть возможность ее запуска с минимально возможными изменениями. Совсем без изменений на другой платформе осуществить запуск игры не удастся из-за аппаратных различий, в том числе: размеров экрана, средств и способов управления и др.

Развитие игровых движков происходит вместе или под влиянием развития аппаратных и программных платформ, вместе с появлением новых игровых жанров и изменениями вкусов пользователей. Коротко говоря, развитием игровой индустрии в целом.

Генезис графических систем

В середине 90-х после появления видеопроцессоров, способных обрабатывать трехмерную графику стали появляться программные интерфейсы, упрощающие ее разработку. Вслед за кроссплатформенным OpenGL на сцену в составе DirectX вышел Direct3D для Windows. Эти 2 визуализатора на много лет вперед определили способы графического вывода в играх.

В 1996-м году вышла игра Quake на Quake Engine. Этот движок оказал колоссальное влияние на игровую индустрию.


Дерево движков, основанных на Quake Engine

Почти до конца десятилетия на рынке промежуточного программного обеспечения для игр (другими словами, игровых движков) практически единолично ритм задавала id Software. Однако в 1998-м году компания Epic Games выпустила успешную игру Unreal на одноименном движке - с настоящим технологическим прорывом по уровню графики. Ведущим программистом движка стал основатель Epic Тим Суини. Тим наравне с Кармаком является наиболее значимой фигурой в истории движков игровой индустрии - и Unreal Engine в его 3 и 4 версиях очень популярен и сейчас. Год спустя от Epic вышла ставшая еще более популярной игра Unreal Tournament.

В это же самое время конкурирующая компания-разработчик – id Software выпустила мультиплеерную игру Quake 3 Arena (на движке id Tech 3), ровно как Unreal Tournament включающую сетевые баталии.

Эти две игры стали флагманами индустрии, определив ее развитие на годы вперед.

На рынке было не так много игроков. Поэтому их продукция была очень дорога, и флагманские движки лицензировались только достаточно крупными разработчиками,

Ситуация начала коренным образом меняться примерно в середине первого десятилетия 21-го века. Тогда на рынке и в свободном доступе стало появляться большое количество средств для разработки игр. Бизнес промежуточного ПО (middleware) стал набирать обороты. Сначала рынок заполнился графическими фреймворками: Ogre, DarkGDK и др., предоставляющие программисту высокоуровневую прослойку над графическим API. В то же время отличающиеся от игровых движков полным отсутствием внутриигровых редакторов.

Затем на рынок пришли полноценные игровые движки по ценам, уместным для небольшой инди-команды разработчиков, среди них: Torque 3D, Unity 3D, и многие другие. Даже стартовавшие как флагманские движки - например, CryEngine от Crytek и ранее упомянутый Unreal Engine - стали использовать намного более доступную ценовую политику и стали доступны даже начинающим разработчикам.


Torque 3D

Важным трендом игровой индустрии стали казуальные игры. Эти, по своей сути, незамысловатые, но красочные, не требующие бешеного взаимодействия с клавиатурой и мышкой головоломки с технической точки зрения были проще трехмерных хардкорных шутеров, поэтому для их разработки не понадобилось сильной модификации универсальных движков. Но, зато, в индустрии появились новые игроки, такие как: Torque Game Builder, HGE и другие.


Torque Game Builder

В это же время, благодаря World of Warcraft, в игровой индустрии стали очень популярны MMORPG - а параллельно многие жанры делали все большую ставку на мултиплеер. Целый ряд движков не смог предоставить пользователям новую функциональность для клиент-серверных приложений, поэтому они ушли в небытие. Другие движки были адаптированы для мультиплеерного мира путем разработки для них серверных решений, так для Unity 3D были разработаны Photon и SmartFox. Третий тип универсальных движков, изначально являясь клиент-серверным, не почувствовал изменений. К нему относится Torque 3D. Также на рынке появились новые движки, предназначенные для глобальных многопользовательских игр, например HeroEngine, BigWorld, объединяющие масштабируемое под тысячи игроков серверное решение и доступный конкретному игроку клиент.


HeroEngine

На рынке еще с 90х существовали браузерные игры, а затем второе рождение им дали социальные сети. необходимость эффективно создавать игры для браузера не осталась незамеченной. Разработчики универсальных движков, например Torque 2D/3D, Unity 3D отреагировали на это довольно оперативно, выпустив плагины для браузеров, которые позволили отображать графику прямо в окне последних. Сначала популярность завоевал визуализатор на основе технологии Flash, но по целому ряду причин эта технология все больше теряет свою долю на рынке. Поэтому сейчас для визуализации в вебе часто используется библиотека для языка JavaScript - WebGL, которая позволяет создавать интерактивную 3D-графику. Однако, из-за недостатков языка, таких как отсутствие многопоточности, библиотека не может полноценно удовлетворить потребности игроделов. Ей на смену консорциумом W3C (куда входят: Microsoft, Google, Mozilla и др.) разрабатывается новый низкоуровневый бинарный компилируемый формат WebAssembly.


WebAssembly

Под конец первого десятилетия 21-го века очень быстро развивались мобильные технологии. Как гром среди ясного неба появились мобильные устройства по мощности сопоставимые с ПК средней ценовой категории и способные запускать мощные игровые приложения со всеми спецэффектами, которыми обладали низкоуровневые графические интерфейсы. На что разработчики игровых движков ответили в некоторых случаях созданием специализированных конверторов, создающих нативный для конкретного оборудования код (как, например, Unity 3D), а в других - модернизировали свои продукты для кроссплатформенности (к примеру, Torque 2D , Cocos 2DX). Также, на рынке появились новые игроки, предлагающие кроссплатформенные движки для всего парка мобильных устройств, выполняющиеся со скоростью нативного кода. Примеры подобных средств: Corona SDK, Marmalade SDK, AGK (App Game Kit).


Corona SDK

Также, возник целый ряд кроссплатформенных движков, позволяющих разработать игру при минимальном знании программирования. Примерами можно назвать Construct 2 и GameMaker Pro. Используя готовые решения и визуальные редакторы, можно быстро - иногда в течение нескольких часов - создавать простые игры. Это оказалось особенно распространенным на мобильном рынке, где распространение free2play модели и короткая игровая сессия сделали “простые” игры вполне успешным жанром.

Новинки игровой индустрии

Низкоуровневые программные интерфейсы: OpenGL, DirectX развиваются в соответствии с видеоадаптерами. Раз в 1 - 2 года появляются новые версии, которые поддерживают и дают прикладным программистам (разработчикам движков) реализовать всю функциональность железа. DirectX уже достиг 12-й версии. С другой стороны на смену OpenGL пришел Vulkan - новый кроссплатформенный графический api, разрабатываемый консорциумом Khronos Group, куда входят производители железа и софта.

VR


Последний на текущий момент тренд игровой индустрии - виртуальная/дополненная реальность. Подавляющее большинство современных игровых движков уже обзавелись поддержкой данной технологии, среди них: Torque 3D, Unity 3D, Unreal Engine 4. Разработано и множество сторонних расширений, таких как Vuforia Unity Extension. Чтобы реализовать поддержку очков VR разработчикам движков надо не только добавить визуализацию на второй экран (для второго глаза) с отличным от первого содержимым (так как, первый и второй глаза могут видеть отличающиеся сцены), но и так же добавить поддержку управления с новых устройств ввода, которые различны для разных гарнитур VR и пока не стандартизированы.

Итоги

За годы существования игровой индустрии в ней образовались 5 больших типов игр с точки зрения игровых движков:

1) Однопользовательские игры (со своей спецификой для ПК и консолей)
2) Многопользовательские онлайн игры
3) Игры для социальных сетей и браузерные игры в целом
4) Мобильные игры (со спецификой для телефонов и планшетов, и Android/iOS)
5) Игры для VR/AR

Кроме того, существуют и другие платформы - от SmartTV до игровых автоматов.

Для разработки каждого типа есть определенный набор движков, потому что с технической стороны между всеми типами игр имеются большие различия. На рынке сейчас представлены десятки движков на любой вкус: кроссплатформенные и специализированные, требующие активной работы с исходным кодом движка и доступные без знаний программирования вообще, с разными производительностью, качеством документации и ценой. Подробнее о современных движках и о том, как выбрать правильный для своих целей, я рассказываю на дисциплине “Технические основы разработки игр” нашей программы “

Что такое игровой движок? Не во всех словарях найдешь определение этого словосочетания. Но если мы сами попробуем найти ответ на это вопрос, тогда он скорей всего будет следующим: «Игровой движок - это программный компонент, позволяющий нам создавать и запускать видеоигры». Он предоставляет разработчикам инструменты для создания большинства компонентов игры, а потом позволяет им собрать их воедино. Движок игры затрагивает все компоненты игры, начиная от рендеринга, физики, звукового оформления, скриптинга, создания ИИ и заканчивая сетевыми аспектами. А если что-то создать с его помощью и не возможно, вы можете создать это в специализированной программе и потом импортировать это в игру. В любом случае, движки игры это рабочие лошадки современных видеоигр.

Насколько вы знаете, сейчас существует огромное количество игровых движков, начиная от всем известных брендов, таких как Quake и Unreal, которые разработчики и издатели могут приобрести по достаточно внушительной цене, заканчивая движками, которые разработчики создают специально для их внутренних проектов.
Чуть ниже мы познакомим вас со списком лучших игровых движков этого поколения. Это действительно самые лучшие представители, гордо сияющие в руках их создателей, они приносят вам тот самый запоминающейся игровой процесс. Вот пример того как хорошие творческие идеи приносят вам захватывающий геймплей.
Замечание: Стоит отметить, что не все разработчики говорят о своих игровых движках, многие держат их строжайшем секрете. Поэтому много хороших движков, о которых нам не известно не попали в данный список, хотя они этого и достойны. Примеры таких инкогнито использовались и используются для создания: Metal Gear Solid 4, FIFA и God of War III.

***
Замечен в таких проектах как: Rockstar Table Tennis,
GTA IV + его дополнительный контент
Midnight Club: Los Angeles,
Red Dead Redemption,
L.A. Noire (предположительно)
***

GTA III, Vice City, San Andreas и Bully несмотря на свой блеск не были созданы на внутреннем движке Rockstar, вместо этого они использовали движок компании Criterion «Renderware». А вот, несмотря на то, что Red Dead Revolver вроде как и был менее коммерческой игрой, именно он натолкнул популярного издателя на идею создания своего движка для нового поколения приставок. С мечтами о великом сиквеле, который не могли бы осуществить никакие другие игровые движки, отделение Rockstar в Сан Диего начала работу над игровым движком RAGE (Rockstar Advanced Game Engine) в далеком 2004, для того чтобы впервые опробовать его в их будущей игре Red Dead Redemption. А согласно словам разработчиков, к трем играм, которые уже успели выйти на этом движке, в 2010 добавится ещё как минимум одна игра. И это именно тот самый желанный сиквел Red Dead Redemption.

RAGE обладает большим количеством плюсов. Среди них стоит отметить возможность создания обширных миров, комплексного ИИ, погодных эффектов, быстрого сетевого кода и большую разновидность геймлпей стилей, всё это нам как раз и доказал GTA IV. Так же данный движок довольно таки доброжелателен к симбиозу с другими игровыми движками. К примеру, с ныне популярным движком Euphoria от NaturalMotion, который подошёл RAGE так, будто бы он был с ним с рождения (такого симбиоза не достигли даже LucasArts в своей недавней игре Star Wars: The Force Unleashed). Так же отлично к RAGE вписался и физический движок Ервина Коуманса, отвечающий за игровую симуляцию пуль. И что более удивительно, этот движок ещё совсем юн и готов к дальнейшему своему развитию. Улучшенная физика, экосистема, улучшенный ИИ и дальность прорисовки это лишь некоторые из улучшении, которые, по словам разработчикам, принесет нам RAGE в своей следующей игре.

***
Замечен в таких проектах как: Far Cry,
Crysis, Crysis: Warhead, Crysis 2,
Aion: Tower of Eternity
***

Немецким разработчикам из CryTek не понадобилось много времени, чтобы создать себе громкое имя. Их первая же игра, вышедший в 2004 «Far Cry», стала для всех открытием. В то время как мир, как и следовало ожидать, ждал появления Half-life 2, Doom 3 и S.T.A.L.K.E.R., которые, по мнению многих должны были ознаменовать появления нового поколения ПК игр, CryTek опередил всех на шаг, выпустив свой топический шутер, созданный на внутренним движке студии «CryEngine». Три года спустя их новая игра Crysis разработанная на второй версии движка «CryEngine 2» снова добилась того же успеха, установив новую визуальную планку в игростроении. Следующим взятым пиком должен стать Crysis 2, разработанный уже на третьей версии движка «CryEngine 3». С помощью него Crytek попытается обхватить уже и консольный рынок.

Согласно словам CryTek CryEngine 3 будет первым движком на Xbox 360 и PlayStation 3, который позволит разработчикам работать с возможностями DirectX 10 на некст-ген консолях (пф! - прим. ред.). В отличие от большинства конкурентов, этому движку не нужны союзники среди других дополнительных игровых движков. Он может работать и с физикой игры, и с её звуком и анимацией. С помощью такого движка, игры смогут добиться высоких визуальных высот. Собственно, именно благодаря им, Crytek и стали столь популярны. И если собственных игр Crytek не достаточно для того, чтобы добавить CryEngine в данный список лучших движков, тогда стоит отметить тот факт, что его разработчики делают всё возможное чтобы раскрутить его в качестве Программного Обеспечения доступного для других разработчиков. Это хорошие новости для нас геймеров, и не совсем хорошие для Epic Games и их движка «Unreal Engine 3», у которого похоже появится весьма достойный конкурент.
P.S. И ещё давайте надеяться на то, что слухи о TimeSplitters 4 на CryEngine 3 окажутся правдой.

Naughty Dog Game Engine

***
Замечен в таких проектах как: Uncharted: Drake"s Fortune,
Uncharted 2: Among Thieves
***

Несомненно Uncharted 2: Among Thieves был одним из графических чудес последнего E3, а главное он доказал что PlayStation 3 обладает огромным потенциалом если правильно относится к созданию игрового движка. Движок Naughty Dog - названый в честь студии создателей не только Uncharted, но и такой популярной серии как Jak & Daxter - был создан специально под архитектуру PS3. С его помощью разработчики добились огромных высот ещё в 2007 году, с выходом Uncharted: Drake"s Fortune. Великолепная анимация и модели персонажей, объемное освещение, шикарный звук, богатая палитра цветов и Голливудо-подобные кат-сцены стали его визитной карточкой. Более двух лет упорной работы было потрачено для создания движка Naughty Dog 2.0, который уже используется в разработке Uncharted 2: Among Thieves. Результат данной работы ошеломляющий. Все локации игры заполнились большим количеством динамических объектов, которые обладают своей собственной физикой. Анимация окружения стала более сглаженной и разнообразной. Поразительные улучшения коснулись света и ИИ игры. Без шовные переходы от игры к кат-сценам и наоборот. И не забудем, что в новой части Uncharted нас ждёт кооперативная игра и мультиплеер. Просто замечательные результаты.

Так же по нашим данным Naughty Dog делятся своим знанием и опытом с секретной студией Sony The Ice Team которая занимается разработкой основного комплекта инструментов, которые помогут в будущем улучшить все проекты для PS3. И ещё не стоит забывать, что на прошедшей E3 разработчики намекнули на то, что в следующем году может появиться и новая часть их популярной серии Jak & Daxter.

***
Замечен в таких проектах как: Dead Space,
Dante"s Inferno
***

Dead Space была проста замечательна: настолько замечательна, что сразу же после её выхода никому не известная студия EA Redwood Shores сделала себе имя. В мае, Electronic Arts переименовало студию в Visceral Games (дословно - "Интуитивные Игры") дабы сильнее выразить культуру и личность данной студии, которая фокусируется на создании интеллектуальных экшенов (а такие бывают! - прим. ред.). Хотя Dead Engine это и не официальное название движка Visceral Games (так его прозвала пресса и фанаты Dead Space), о его существовании и технических возможностях сообщил Глен Шофилд, во время одной из промо акций Dead Space на территории Австралии.

После релиза The Godfather в 2006 году, команда разработчиков распалась, часть из них, забрав собой движок, и стала той самой студией EA Redwood Shores, выпустившей Dead Space. Движок был почти полностью переделан для того чтобы удовлетворить хоррор-футуристические запросы Dead Space. В конечном счете, успех движка больше обязан Dead Space, нежели The Godfather. Dead Space удивляла нас почти каждой новой локацией, однако главными преимуществами движка являются его легкость в работе, а так же работа со звуком и освещением игры. Dead Space с лёгкостью можно назвать одной из самых страшных игр в истории видеоигр. А следующей точкой в развитии движка уже должна стать новая игра Visceral Games Dante"s Inferno.

***
Замечен в таких проектах как: Gears of War,
Mass Effect,
BioShock,
Unreal Tournament 3,
Borderlands,
Brothers in Arms: Hell"s Highway,
Homefront,
Mirror"s Edge,
Singularity,
Rainbow Six: Vegas
***

Как много раз мы слышали эти слова «сильно модифицированный Unreal Engine» в разных обзорах видео игр или же в игровых пресс релизах? С момента своего первого появления в 1998 году, разработанный Epic Games Unreal Engine (сейчас уже в своей третьей ипостаси) стал ничем иным, как главным оружием большинства известных и не очень разработчиков видеоигр. Он появлялся и в таких детских проектах как Surf"s Up и даже в играх студий, которые имеют помимо него и свои собственные движки. Главный вопрос - почему?

Несмотря на некоторые отрицательные отзывы (Silicon Knights, создатели Too Human) и проблемы связанные с работоспособностью в ранних проектах для PS3 (в основном проблема проседания кадров в секунду), движок от Epic Games предоставлял своим потребителем высокое качество и возможность разработки игры в абсолютно любом жанре. А его скромная цена отговорила многих от дорогостоящего создания своих собственных движков. Самый популярный игровой движок Unreal Engine, именно он сформировал у нас ту самую картинку, как должна выглядеть некст-ген игра.
Согласно последним сообщения «Epic Games» уже вовсю трудится над Unreal Engine 4 и по плану этот движок должен появиться как раз к выходу следующего поколения приставок, среди возможных дат релиза был объявлен 2012 год.

Avalanche Engine

***
Замечен в таких проектах как: Just Cause, Just Cause 2,
The Hunter
***

Just Cause 2 был одной из тех игр, которая нас сильно удивила на прошлой Е3. Хотя первая часть и была достаточно интересной, прошло уже почти 4 года с момента её выхода и об игре мы начали понемногу забывать. Такой промежуток затишья немного убил наш интерес ко второй части, и мы её уже и не ждали. Однако создатели игры - Avalanche Studios, оказывается, потратили всё это время недаром. Они полностью изменили движок Avalanche Engine и пересоздали множество его элементов с чистого листа. Так что, используя новый движок Avalanche Engine 2.0 разработчики создали Just Cause 2, который может с легкостью переплюнуть успех первой части игры.

Глядя на Just Cause 2, сложно не удивится тому, что получилось достичь разработчиков с их новым движком. Движок выдает весьма разнообразную игровую механику (прыжки на парашюте, вождение, стрельба и рукопашный бой от третьего лица, дайвинг и многое другое). На экране постоянно мелькает большое количество взрывов и врагов. У главного героя появились новые возможности, главная возможность это крюк. ИИ враги тоже претерпел ряд изменении и теперь кажется в разы лучше того, что мы видели в первой части. Да и к тому же картинка игры весьма впечатляющая. Всё это действие разворачивается на обширном пространстве, здесь нас ждут и снежные вершины гор, тропические джунгли и песчаные берега. Все эти преимущества и выделяют Avalanche Engine, как один из лучших игровых движков этого поколения.
P.S. К тому же, следующим уже объявленным проектом построенном на Avalanche 2.0 будет игра под названием AionGuard, которая построена в фэнтази-сеттинге; интересно как справится с такой задачей данный движок.

***
Замечен в таких проектах как: Call of Duty 2,
Call of Duty: Modern Warfare,
Call of Duty: World at War,
Quantum of Solace,
Modern Warfare 2
***

Поясняем: IW расшифровывается как Infinity Ward, легендарная студия, создавшая одну из самых популярных игровых серии данного поколения - Call of Duty. И хотя в первой части своей игровой серии Infinity Ward использовали движок id Tech 3, уже к выходу второй части они подготовили свой собственный, внутренний движок, который к сожалению до сих пор так и не получил официального наименования. После одного из вопросов по поводу движка, заданного нами на прошлой Е3, Infinity Ward сообщили нам, что грядущий хит Modern Warfare 2 был создан на четвертой версий движка, то есть IW 4.0. Та же самая версия движка использовалась для создания шедеврального Call of Duty 4, вышедшего в 2007.
Если вы играли в игру, тогда вам, наверное, известны возможности этого движка и то, какой игровой опыт он может предоставить его игрокам. Феноменальная анимация и освещение, сложный ИИ, замечательный звук, симуляция реального поведения пули - всё это движок способен обрабатывать очень быстро - и это никто не отрицает. К тому же, всю эту красоту можно увидеть и играя по сети с друзьями, не зря Call of Duty считается одной из самых удачных онлайн игр за всю историю существования видеоигр. Конечно, для второй части Modern Warfare 2 движок не претерпел больших изменений, однако, они достаточно весомые, чтобы снова нас удивить. Новая система текстурирования позволит увеличить детализацию мира и поднять текстурам разрешение. А главные изменения коснутся освещения, физики и ИИ игры.

P.S. Ещё одной хорошей новостью похоже является то, что Infinity Ward разрешают использовать свой движок и остальным студиям, которые находятся под управлением Activision, к примеру Treyarch.

***
Замечен в таких проектах как: Assassin"s Creed,
Prince of Persia (2008),
Shaun White Snowboarding,
Assassin"s Creed II
***

Наверное, Ubisoft надоело использовать для создания игр чужие технологии, поэтому последнее время их студии начали изрядно клепать одни за другими свои собственные игровые движки. Сейчас этих движков набралось с десятка, среди них стоит отметить следующие: Dunia (Far Cry 2), LEAD (Splinter Cell: Conviction), Fox (Naruto: Broken Bond), LyN (Beyond Good & Evil 2), IRISZOOM (R.U.S.E) и собственно наш герой Anvil, aka Scimitar 2.0 Engine. На самом деле сложно пройти мимо игры построенной на этом движке и не удивится картинке, которую она выдает. К тому же, не забудем, что именно этому движку и обязан своей популярностью нашумевший хит Assassin"s Creed.
И в Assassin"s Creed, и в Prince of Persia, Anvil позволил анимации взаимодействовать с окружающей средой в реальном времени. Он же позволяет заселить виртуальные миры сотнями моделями, при этом наделяя их своим собственным достаточно умным ИИ. Для сиквела Assassin"s Creed разработчики из Ubisoft Montreal приготовят улучшенную систему освещения, отражений, динамическую одежду, продвинутый ИИ, увеличат возможность взаимодействия с окружающим миром, дальность прорисовки, а так же прикрутят игре полный цикл смены дня и ночи. Стоит так же отметить, что ко всему перечисленному, Anvil добавил себе одну из технологий движка Dunia, на котором был построен Far Cry 2. Это технология отвечает за симуляцию растительности игры.

Так же отметим тот факт, что в Shaun White Snowboarding Anvil впервые предложил игрокам сетевую игру, что подогрело слухи о том, что сетевой режим появится и во второй части Assassin"s Creed.

***
Замечен в таких проектах как: Colin McRae: DiRT,
Race Driver: GRiD,
Operation Flashpoint: Dragon Rising,
Colin McRae DiRT 2,
F1 2009,
F1 2010
***

Codemasters уже издало пару весьма посредственных игр на этом поколении приставок, но когда речь заходит о внутренних проектах студии, она пытается принести нам только лучшее. Больше количество этого лучшего построено именно на движке EGO Engine (некогда известного под названием NEON). Кстати, стоит отметить, что в создании этого движка отчасти поучаствовали и люди из Sony. Для многих геймеров Codemasters известны своими игровыми сериями Colin McRae & Race Driver, весьма популярными и качественными гоночными симуляторами.
Среди плюсов движка не только возможность создания хорошего гоночного геймплея игры, с помощью него можно создать и модели и физику для этих самых машин. Так же он может создавать высоко детализированные миры разного покрова (и пустыне и снежные покровы), которые выглядит просто потрясно, особенно через лобовое окно вашего автомобиля на скорости 200 км/час. К тому же разработчики создали вразумительную систему повреждении, блестящий ИИ и освещение. Все эти преимущества превращают игру, созданную на EGO, в конфетку. Ну, а главной причиной, по которой EGO попал в наш список лучших движков, так это его удивительная возможность меняться из гоночного движка, в отличный движок, к примеру, для FPS. Это он доказал нам, став базой для суперреалистичного Operation Flashpoint: Dragon Rising, который появится на прилавках магазина уже в этом сентябре.

Ну, а в DiRT 2 разработчики решили сфокусироваться на физике игры, дабы привнести в игру ещё больший реализм. И если так и дальше пойдет, то у разработчиков F1 2010, у которых в кармане ещё целый год разработки, должно получиться что-то очень серьезное и привлекательное.

***
Замечен в таких проектах как: Red Faction: Guerrilla
***

Когда Digital Illusions выпустили свои игровой движок «Frostbite Engine», который показал нам невиданную до сих пор систему динамического разрушения в игре Battlefield: Bad Company, мы были действительно впечатлены тем, как изменяется поле сражения во время битвы. Следующий шаг, в этом направлении, предприняли разработчики из LucasArts, выпустив Star Wars: The Force Unleashed, которая обладала собственным физическим движком Digital Molecular Matter. Он позволял окружающему миру изменяться под давлением внешних сил. Показанное удивило не одного геймера нашей планеты. Но Volition Inc пошли ещё дальше в Red Faction: Guerrilla. Использовав новую версию своего движка Geo-Mod, который появился ещё в 2001 во время создания первой части Red Faction.
Третья часть уже целой игровой серии позволила нам не просто бессмысленно разрушать всё в округе. Geo-Mod позволяет объектам принимать свойства их реальных прототипов, они разрушаются согласно реальным законом нашего мира, это прививает реализм не только действиям игрока, но и объектам, которые его окружают. Симулировать взрывной геймплей игры, её сложный ИИ и имитировать законы реального мира, при этом без потерь в фреймрейте, сможет не любой движок. Плюс ко всему это всё работой отличное и в сетевой игре. И пусть данный движок не обладает многими преимуществами выше перечисленных конкурентов, его способность имитировать реальные законы, создавать удивительные взрывы в реальном времени выделяют его среди остальных.

Мы очень надеемся на то, что разработчики найдут возможность использования этого движка в своем будущем продолжении хитовой серии Saints Row 3.

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

Игровой движок (англ. game engine ) — это центральный программный компонент компьютерных и видеоигр и других интерактивных приложений с графикой, обрабатываемой в реальном времени. Он обеспечивает основные технологии, упрощает разработку и часто даёт игре возможность запускаться на нескольких платформах, таких как игровые консоли и настольные операционные системы, например, GNU/Linux, Mac OS X и Microsoft Windows.

Словосочетание «игровой движок» подразумевает целый комплекс прикладных программ, включающий движок рендеринга («визуализатор») для 2D или 3D графики, физический движок, или обнаружение столкновений (и реакции на столкновение), звук, скриптинг, анимацию, искусственный интеллект, сетевой код, streaming, управление памятью, threading и граф сцены. Строго говоря, все части кода, написанные программистами при разработке игры, являются компонентами движка. Игровой процесс (геймплей) определяется функциями, реализованными в этих программах.

Если на заре компьютерной эры каждая игра создавалась разработчиками «с нуля», то всё изменилось с момента появления игры Doom (более 10 лет назад). В настоящее время практически все коммерческие игры создаются с использованием готового инструментария: в процессе разработки можно сэкономить за счет повторного использования одного игрового движка для создания множества различных игр.

Иногда «мододелы» делают какие-то видоизменения с помощью встроенного в игру языка программирования через скриптовые сценарии. Можно подкрутить некоторые параметры функций движка, чем с удовольствием пользуются читеры (увеличивая, например, количество денег у игрока). Однако серьезные изменения геймплея невозможны без вмешательства в исходный код игры. И тут начинаются проблемы. Во-первых, не каждая игровая компания код обнародует. Во-вторых, далеко не каждый может разобраться самостоятельно в огромном количестве функций движка. А другого пути часто нет, поскольку отсутствует справочная информация и техническая поддержка (спросить не у кого). В-третьих, как правило, публикуют исходный код уже технически устаревших движков (например, Quake II, III).

Что же остается начинающим разработчикам?

  • Купить право на использование современного двигателя от известной компании (лицензировать движок). К нему прилагается справочная информация и поддержка производителя. Однако это удовольствие не из дешевых. Существуют коммерческие игровые движки стоимостью до сотни тысяч долларов.
  • Разработать свой собственный движок. Выход, конечно, но для этого требуется много усилий и высокая квалификация в программировании.
  • Использовать один из бесплатных движков, наиболее подходящий по своим возможностям. Как правило, к ним имеется дополнительная информация и поддержка.

Бесплатные игровые движки

На сегодняшний день самыми популярными и продвинутыми из бесплатных (обычно open source , с открытым кодом) игровых движков являются:

  • OGRE (Object-Oriented Graphics Rendering Engine)

Объектно-ориентированный графический движок рендеринга. Написан на C++, 3D графика, в нем используются Direct3D and OpenGL. По этому движку существуют печатные книги (на английском языке). Имеется и русскоязычный сайт . Для работы с последней версией движка нужен один из следующих компиляторов: gcc, Visual C++ 7.1 (2003), Visual C++ 8.0 (2005). Движок поддерживает компиляторы Для работы в Linux и Mac применяется gcc 3+. Если в игре будет использован DirectX, необходимо предварительно установить DirectX SDK (можно скачать с сайта Microsoft).

По утверждению разработчика, Ogre не является в строгом смысле слова игровым движком. Как сказано в документации, «Ogre — графический, и только графический движок. Это значит что ничего другого, кроме вывода и обработки графики, он не делает. Но это значит еще и то, что к нему можно прикрутить сторонние библиотеки для создания полноценной игры, а именно:

  • звук;
  • организация сети;
  • ввод (манипуляторы, джойстики);
  • расчет столкновений.

Ogre не содержит эти библиотеки, но предоставляет интерфейс, который позволяет легко подключать внешние модули».

Движок отличается широкой поддержкой разнообразных графических форматов. Помимо стандартных, можно использовать объемные, сжатые текстуры и cubemaps. Много плагинов, которые позволяют импортировать в него 3D-модели из различных пакетов 3D-графики (3DS Max, Maya, Milkshape3D, Blender Wings3D). При этом можно использовать как фреймовую, так и скелетную анимацию. Ландшафты в Ogre выглядят неплохо. Для создания небольшой игры в состав движка включены все необходимые стандартные классы управления сценой. Игровые ресурсы можно паковать в архивы PK3 ZIP.

На Ogre делают и коммерческие игры — в частности, на нём написаны игры «Стальные монстры» (Pacific Storm) и онлайновая игра Anarchy Online . Разработка на основе движка коммерческих игр говорит о большом потенциале Ogre. У него множество пользователей. Есть к кому обратиться в случае возникновения проблем. Наверняка их кто-то до вас решал или, по крайней мере, знает, как обойти. Большое количество справочной информации и примеров позволят освоить движок даже начинающим. Это отличный вариант для разработки игры при отсутствии финансов на покупку коммерческого engine.

  • Crystal Space . Кросс-платформенный SDK с открытым кодом для 3D графики в реальном времени, в особенности для разработки игр. Написан на C++, но использовать его можно не только в C++ проектах, но и в Python, Perl, Java проектах.
  • Nebula Engine 2 . Движок с открытым кодом для 3D-игр и визуализации. Использовался в нескольких коммерческих играх. Написан также на C++, работает только под Windows, использует DirectX 9.0. Есть классы для реализации шейдеров (HLSL и FX-файлы DirectX), скелетной анимации, системы частиц, теней. Поддерживает несколько широко распространённых скриптовых языков TCL, Python и Lua.
  • . Open source, кроссплатформенный, написан на C++, можно использовать из-под.NET (языки типа C#, VisualBasic, and Delphi.NET), Java — c помощью библиотеки jirr или Bindenlicht, Python — с помощью библиотеки Pyrr, Ruby — с помощью библиотеки IrrRuby и ряда других языков. Этот игровой движок родом из Германии. Продвигает его фактически один человек. Развивать движок в одиночку, сделать его полностью бесплатным и выложить весь исходный код — на такое способен далеко не каждый. Хотя до финальной версии Irrlicht еще далековато, на нём уже можно делать серьезные игры. В движке имеются все необходимые для этого функции. Рендеринг выполняется через OpenGLDirect3D (с поддержкой DirectX9.0). Присутствует и софтверный режим, то есть всё будет отрисовано собственным программным визуализатором, который в эру больших аппаратных возможностей видеокарт практически не используют. Этот достаточно простой в освоении игровой движок подойдет как делающим первые шаги в программировании трехмерных игр, так и опытным командам для создания полноценной игры. Подробнее об Irrlicht можно прочитать на сайте knol.google.com .
  • OpenSceneGraphg . Open source, кроссплатформенный, написан на стандартном C++, использует OpenGL. Работает с трехмерными моделями форматов.lwo, .obj, .geo, .3ds, .x, .wrl, то есть с объектами, созданными в любом современном редакторе трехмерной графики (3DS Max, Maya и Lightwave 3D).
  • Microsoft XNA . Технология от Microsoft по кросплатформенной разработке игр для 3-х платформ — Windows, Xbox 360 и Zune (mp3-плеер от Microsoft). Правда, чтобы разрабатывать игры для Xbox, придётся приобрести Xbox Developer Kit, но под Windows игры можно разрабатывать бесплатно. Технология расчитана на разработку игр под DirectX и.NET Framework (.NET Compact Framework на Xbox 360) и, строго говоря, основным языком при разработке игр с использованием XNA должен быть C#. Есть поддерживаемое корпорацией сообщество разработчиков. На сайте techdays.ru есть несколько « » (слайдов, озвученных закадровым голосом), которые посвященных разработке игр на XNA. Вебинары прочитаны сотрудниками Microsoft и представляют собой введение в курс дела.
  • Есть нескоторые другие бесплатные игровые движки: Panda3D , , Dark Basik , однако они не так широко применяются, как охарактеризованные выше.

Имея готовый игровой движок, можно думать только о механике игры, а это очень важно для разработчика.

Источники:

  • sindicollo.blogspot.com — обзор бесплатных игровых движков (game engines);
  • knol.google.com — бесплатные игровые движки (А. Крылов);
  • x-sky.ru — бесплатные игровые движки;
  • irrlicht3d.org — викиресурс по движку Irrlicht (англ. яз.).