Что такое игровой движок? Игровые Движки. Что они из себя представляют? За что отвечает движок в играх

Игровой движок (англ. 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 (англ. яз.).

Термин «игровой движок» появился в середине 1990-х в контексте компьютерных игр жанра шутер от первого лица , похожих на популярную в то время Doom . Архитектура программного обеспечения Doom была построена таким образом, что представляла собой разумное и хорошо выполненное разделение центральных компонентов игры (например, подсистемы трёхмерной графики, расчёта столкновений объектов, звуковой и других) и графических ресурсов, игровых миров, формирующие опыт игрока игровые правила и другое. Как следствие, это получило определённую ценность за счёт того, что начали создаваться игры с минимальными изменениями, когда при наличии игрового движка компании создавали новую графику, оружие, персонажей, правила игры и тому подобное .

Разделение между игрой и игровым движком часто неопределённо. Некоторые движки имеют разумное и ясное разделение, в то же время другие практически невозможно отделить от игры. Например, в игре движок может «знать» о том, как рисовать дугу , в то же время другой движок может работать с другим уровнем абстракции, и в нём дуга будет частным случаем параметров вызываемых функций. Одним из признаков игрового движка является применение архитектуры управления данными . Это определяется тем, что если игра содержит жёстко фиксированные данные (англ.) русск. , влияющие на логику, правила игры, рисование объектов и тому подобное, то становится сложно применять данное программное обеспечение в разных играх .

Большинство игровых движков разработаны и настроены для того, чтобы запустить определённую игру на определённой платформе . И даже наиболее обобщённые многоплатформенные движки подходят для построения игр определённого жанра, например шутеров первого лица или гонок . В данном контексте можно более аккуратно сказать, что игровой движок становится не оптимальным при его применении не для той игры или той платформы, для которой разработан. Данный эффект проявляется от того, что программное обеспечение представляет собой набор компромиссов, основанных на тех предположениях, какой должна быть игра. Например, проектирование рендеринга внутри зданий приведёт к тому, что движок, скорее всего, не будет таким же хорошим для открытых пространств. В первом случае движок может использовать BSP-дерево для отрисовки объектов, близких к камере. В то же время для открытых пространств могут использоваться менее точные способы, а также более активно применяются технологии отрисовки с разной степенью детализации , когда более далёкие объекты прорисовываются менее чётко, так как занимают меньшее количество пикселей .

Специализация

Как правило, игровые движки специализированы в рамках жанра компьютерных игр. Так, движок, спроектированный для двумерного файтинга на боксёрском ринге, будет существенно отличаться от движка для массовой многопользовательской игры , шутера от первого лица или стратегии в реальном времени . Но в то же время движки имеют существенные общие части - все трёхмерные игры, невзирая на жанр, требуют взаимодействия игрока посредством клавиатуры , геймпада и/или мыши , некоторую форму трёхмерного рендеринга, средства индикации, как на лобовом стекле (например, печать текста поверх графического изображения), звуковую систему и многое другое. Так, движок Unreal Engine , несмотря на то, что был спроектирован для шутера от первого лица, успешно использовался для создания игр во множестве других жанров, таких как шутер от третьего лица Gears of War , приключенческая ролевая игра Grimm (англ.) русск. , или футуристичная гонка Speed Star .

Исторически шутеры от первого лица относятся к играм, которые наиболее технологически сложны, так как им необходимо представлять игроку иллюзию трёхмерного мира, и делать это для активных действий в реальном времени. Движки шутеров от первого лица больше обращают внимание на такие технологии, как эффективный рендеринг трёхмерных миров, отзывчивая игровая механика контроля и прицеливания, высокая точность анимации оружия и рук управляемого игроком персонажа, широкий спектр ручного вооружения, «прощающая» модель движения игрока и его столкновения с препятствиями, высокое качество анимации и искусственного интеллекта неигровых персонажей . При этом характерны малая масштабируемость в многопользовательских играх (типична поддержка до 64 игроков) и повсеместная ориентация на игровой процесс deathmatch . Графические движки игр данного жанра используют ряд оптимизаций в зависимости от текущего окружения игрока, но вместе с тем предъявляются требования по анимации персонажа, аудио и музыке, динамики твёрдого тела (англ.) русск. , кинематике и другим технологиям .

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

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

История

На домашних компьютерах 1980-х из-за отсутствия стандартизации и ограничений памяти портирование было ручным и трудоёмким: переносилась только логика работы, а остальные части - вывод графики на экран, вызов прерываний и т. п. - писалось заново. Тем не менее, в те времена появились игровые движки Z-Machine и SCI от компаний Infocom и Sierra соответственно. В 1980-е компания Incentive Software начала разработку Freescape - переносимого 3D-ядра.

Сам же термин «игровой движок» появился в середине 1990-х годов - в это время окончательно установилось доминирование IBM-совместимых компьютеров , а быстрые процессоры и «хитрое» программирование дали 30 и более кадров в секунду в трёхмерных играх. Игры Doom и Quake от id Software оказались настолько популярными, что другие разработчики вместо того, чтобы работать с чистого листа, лицензировали основные части программного обеспечения и создавали свою собственную графику, персонажей, оружие и уровни - «игровой контент» или «игровые ресурсы».

Unity3D

Unity 3D - отличный доступный движок. У него есть ряд неоспоримых преимуществ перед конкурентами и, пожалуй, ключевое из них в том, что за лицензию вы платите всего один раз. Неважно, насколько популярной становится игра - если вы выбрали Unity, вам не придется раскошеливаться еще раз. С финансовой точки зрения — это удачное решение, в особенности для стартапов и начинающих разработчиков.

  • выгодная лицензионная политика;
  • легкость в использовании;
  • совместимость с любой платформой;
  • отличное комьюнити;
  • низкий порог входа;
  • популярен среди разработчиков (это означает, что ошибки быстро находят и исправляют).
  • ограниченный набор инструментов (вам, скорее всего, придется разработать некоторые из них самим);
  • процесс изготовления игры отнимает много времени.

Unreal Engine

Unreal Engine - один из наиболее популярных движков для разработки ААА-игр. Gears of War, Batman: Arkham Asylum, Mass Effect — все эти хиты были сделаны именно на нем.

  • поскольку множество разработчиков его использует, то у Unreal Engine, пожалуй, лучшее комьюнити среди конкурентов. Несколько часов видео-туториалов тому подтверждение;
  • отличная техподдержка и механизм апдейта;
  • новые инструменты выходят с каждым обновлением
  • широкий ассортимент инструментов для различных целей (некоторые настолько просты в использовании, что ими может управлять даже школьник)
  • совместим с различными платформами (iOS, Android, Linux, Mac, Windows и большинство других)
  • новая лицензионная политика включает подписку стоимостью $19 в месяц и 5% роялти, если игра заработает более $5,000, что делает движок куда более привлекательным для разработчиков, чем раньше.
  • субъективны. Некоторые разработчики жалуются, что к определенным инструментам сложно привыкнуть

CryEngine 3

Если внешняя составляющая игры - ваш пунктик, то вам нужен именно CryEngine 3.

  • функция Flowgraph поможет украсить игру отличной графикой;
  • набор функций Fmod для создания мощного звукового сопровождения;
  • самый простой процесс создания AI в сегменте;
  • начинающему разработчику будет легко сделать UI.
  • относительно небрежная техподдержка бесплатной версии;
  • поскольку движок в индустрии сравнительно недавно, ему еще только предстоит создать крепкое комьюнити;
  • относительно высокий порог вхождения.

HeroEngine

Этот движок хорошо зарекомендовал себя в создании мультиплеерных игр - взять хотя бы Star Wars: The Old Republic. Лицензия довольно дорогая и вряд ли подойдет начинающим разработчикам, но если ваш проект амбициозен, то я бы советовал рассмотреть этот вариант.

  • в наличии несколько карт для создания открытого мира. Есть возможность их «бесшовного» соединения;
  • сказочно могучий AI!
  • удобный набор инструментов для моделирования карт;
  • подходит для создания комплексных миссий, крафтинга и собирания ресурсов;
  • техподдержка осуществляется при помощи сервиса HeroCloud, что весьма удобно.
  • скриптовый движок мощный, но неудобный в управлении;
  • HeroEngine вместе с сервисом поддержки клиентов HeroCloud слишком дорого стоит и вряд ли будет доступен начинающим разработчикам;
  • высокий порог вхождения.

Rage Engine

Немногие могут конкурировать с широким спектром возможностей, которые предоставляет Rage Engine. Grand Theft Auto V, Red Dead Redemption и многие другие прославленные проекты сделаны при помощи этого движка.

  • широкие возможности для создания больших миров и погодных эффектов;
  • мощный AI;
  • множество стилей геймплея на выбор;
  • быстрый сетевой код.
  • интерфейс движка сравнительно неудобный;
  • управление плохо оптимизировано под клавиатуру и мышку.

Project Anarchy

Этот мощный игровой движок нравится многим разработчикам за наглядную и понятную документацию. Тем не менее, и у него есть свои недостатки.

  • если вы планируете разрабатывать игры на платформах iOS, Android и Tizen, то лицензия — бесплатная;
  • мощные инструменты для поиска и устранения багов;
  • сильное комьюнити;
  • издатель предоставляет четкую, понятную документацию и образцы;
  • Fmod для аудио-сопровождения;
  • мощный Havok AI .
  • отсутствует возможность разрабатывать игру на Mac и Linux;
  • нет вводного руководства для начинающих разработчиков;
  • если игра для ПК, то лицензия влетит вам в копеечку.

GameSalad

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

  • бесплатная лицензия (деньги с вас потребуют только за PRO-версию);
  • активное комьюнити;
  • отличный движок для быстрого создания прототипа;
  • совместимость с популярными мобильными платформами такими, как Cocona и Moai.
  • ограниченный набор инструментов разработки;
  • нет доступа к большинству возможностей платформы iOS.

GameMaker: Studio

Если вы начинающий разработчик и вам нужен простой и понятный движок, то GameMaker: Studio полностью отвечает вашим целям.

  • простое и интуитивно понятное управление;
  • собственный язык программирования Game Maker Language (GML);
  • интеграция со Steam;
  • кроссплатформенность.
  • относительно сложно устранять неполадки в игре;
  • чтобы экспортировать свою игру на популярные платформы, придется доплатить круглую сумму.

App Game Kit

App Game Kit - кроссплатформенный софт для разработчиков. Ценится за универсальность и легкость в управлении.

  • позволяет писать коды для основных платформ: Android iOS, Windows, Mac и Linux;
  • поставляется в комплекте с IDE , что позволяет тестить игры на любом устройстве;
  • без дополнительной установки уже включает в себя IAP, AdMob и Push;
  • есть мощные скрипты для 2D графики, физики и сетевого взаимодействия.
  • поскольку мало кто работает с этим движком, то недостатки программы долго не устраняются (относительно слабая техподдержка);
  • множество багов (что органично следует из предыдущего пункта).

Cocos2D

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

  • отлично интегрирован в платформу iOS;
  • бесплатный и с открытым исходным кодом;
  • широкий выбор инструментов разработки;
  • сильная поддержка комьюнити.
  • более сложный в применении, чем большинство аналогов;
  • высокий порог вхождения;
  • «заточен» конкретно под Mac или iOS. Отсутствует кроссплатформенность.

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

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

Общая для игр функциональность - графические решения, игровые механики, расчет физики и другое - стала выделяться в отдельные библиотеки, но, для того чтобы быть «игровым движком» было еще далеко. Во многом это было связано с серьезным различием программно-аппаратных платформ и неопределенности в самих играх. Ведь жанры и типы игр еще предстояло изобрести, при том, что многие первые игры были текстовыми. Собственно, именно для ранних адвенчур и платформеров и стали возникать игровые движки, особенно с развитием графики - хорошим примером можно назвать 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 до игровых автоматов.

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

С недавним релизом бесплатной версии Unreal Engine и анонсом бесплатного Source 2 у вас появилось ещё больше возможностей делать собственные игры. Но выбор движка, подходящего под ваши потребности и навыки – дело не самое простое. Давайте же пробежимся по лучшим образцам бесплатного (ну почти, о чем ниже) софта для новичков и профессионалов.

Помимо движков в данной подборке существует еще масса не очень известных, но, если сказать помягче, очень крутых движков второго эшелона. Как правило на сайте разработчика есть упоминание возможности лицензирования, но в очень сыром виде, тут придется связываться напрямую. У всех движков есть свои плюсы и минусы. Например, движок недавнего Dying Light, разрабатываемый Techland , хорошо подходит для игр с открытым миром, но у него проблемы с дальностью прорисовки.

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

На передовой технологий – CryENGINE

CryENGINE – это чрезвычайно мощный игровой движок, созданный компанией-разработчиком Crytek, впервые представленный в игре Far Cry. Он предназначен для разработки под PC и консоли, включая PlayStation 4 и Xbox One. Его графические возможности превосходят Unity и UDK, и время от времени стоят на шаг впереди Unreal Engine 4: новейшее освещение, реалистичная физика, продвинутые системы анимации и многое другое. Последней игрой на CryENGINE была Ryse: Son of Rome. По аналогии с UDK и UE4 в CryENGINE встроены мощные и интуитивные функции, касающиеся работы с дизайном уровней.

Продуктивное использование CryENGINE потребует определённого времени на его изучение, и у вас могут возникнуть затруднения при отсутствии опыта работы с другими движками. Если вам не нужна графика уровня Crysis 3 или Ryse: Son of Rome, стоит присмотреться к чему-то более дружелюбному к пользователю.

Ценовая модель CryENGINE несколько отличается от конкурентов. За использование движка . Он не полностью бесплатный, как UE4 или Unity 5, зато не требует выплаты роялти, так что $9,90 – это всё, что вам придётся платить Crytek. В зависимости от размера вашей студии и команды, отсутствие роялти может быть огромным преимуществом.

Начинающим – Stencyl или GameMaker

Если вы только начинаете делать игры и не имеете никакого опыта в программировании, вам лучше начать с простейших инструментов. Из таковых самые популярные и общепризнанные – это Stencyl и GameMaker. Оба просты в освоении новичками, и на их основе уже создано несколько качественных игр.

Stencyl позволяет делать игры без программирования. Интерфейс полностью основан на перетаскивании, игры можно выпускать на Windows, Mac, Linux, iOS, Android и Flash. Если вы когда-нибудь имели дело с чем-то вроде Scratch, вы сразу узнаете LEGO-подобный подход к построению кода посредством размещения блоков. Stencyl задуман для простого создания спрайтовых игр, поэтому чаще служит основой паззлам и сайд-скроллерам. Что-нибудь сложное сделать будет проблематично, так что если решили работать над RPG или стратегией, присмотритесь к другому софту. С помощью Stencyl на свет появилось несколько популярных игр, в том числе Impossible Pixel и Zuki’s Quest. Также в нём есть встроенное обучение, которое расскажет обо всём, что вам нужно знать.

GameMaker – другая бесплатная утилита для новичков, с помощью которой можно делать игры для Windows, Mac, iOS и Android. Как и в Stencyl, тут почти всё работает на перетаскивании, но есть ещё и хуки для многопользовательских игр, ссылки на внешние SDK, возможность покопаться в коде и многое другое. Бесплатная версия при экспорте накладывает водяные знаки, но, тем не менее, GameMaker отлично подходит для первого раза и содержит встроенное обучение основам. Тут нет такового жанрового ограничения, как в Stencyl, и можно найти отдельные руководства для разных типов игр. В GameMaker сделали оригинальную версию Spelunky и Hotline Miami.

Конечно, всё не ограничивается этими двумя вариантами. Buildbox – относительно новая утилита, доступная в течение пробного периода и предлагающая тренировочную программу для изучения её работы, а GameSalad – уже давно известная популярная платформа, правда на неё жалуются из-за багов и нестабильной работы. Construct стоит внимания, если хотите делать игры на HTML5. В каждом случае главная проблема в том, что придётся сдерживать свои дизайнерские идеи. Это софт для новичков, и вы просто сломаете его в попытке сделать что-то сложное. То есть, игры получатся забагованными и нерабочими, если вы попытаетесь выйти за рамки задуманной системы. И всё же, это превосходное место для старта и подходящий вариант при отсутствии опыта в программировании.

Программистам среднего уровня, нацеленным на 2D-игры – Cocos2D

Cocos2D – это программа с открытым исходным кодом для создания 2D-игр. Игры можно выпускать на Windows, Mac, Android, iOS, Windows Phone или на веб-платформе.

Большая часть того, что вы будете делать в Cocos2D – это работа с C++ (также есть поддержка Lua и JavaScript), так что вам нужно освоить этот язык программирования, прежде чем вообще браться за Cocos2D. Однако, при знании упомянутых языков, программа становится довольно простой в использовании. В ней есть полноценная IDE, и она совершенно бесплатна, без каких-либо условностей. Как понятно по названию, утилита предназначена для создания двумерных игр, так что и работает она лучше с простыми спрайтовыми играми, где 3D ни к чему. 2D-игры можно делать и на Unity (который мы рассмотрим чуть далее), но в Cocos2D вникнуть попроще, если вы только начинаете (и конечно, знаете C++).

На Cocos2D создано немало успешных игр различных жанров, включая увенчанную наградами Badland.

Разработчикам, нацеленным на мобильные платформы – Unreal Engine или Unity

Если вы заинтересованы в сложных, трёхмерных играх, два наиболее популярных инструмента для их создания – это Unreal Engine и Unity. У обоих есть свои сильные и слабые стороны и разные моменты в лицензионных соглашениях, с которыми стоит ознакомиться перед принятием окончательного решения.

Unity позволяет вам делать трёхмерные и двумерные игры практически для любой платформы, включая Windows, Mac, Xbox, Playstation, Android, iOS и не только. Он поддерживает игровые ресурсы, созданные в 3ds Max, Maya, Softimage, Cinema 4D, Blender и другом софте. Unity использует C#, наряду с собственным языком программирования, так что не помешает для начала хорошенько их изучить. Если сравнивать Unity и Unreal, первый, пожалуй, попроще в освоении. У него есть богатый набор готовых поведений и встроенная библиотека игровых ресурсов, в которой довольно просто за ними следить. Во время работы над этим текстом я общался с несколькими разработчиками, и они думают, что Unity – лучший движок для первых проектов, потому что его проще понять и изучить, чем Unreal. Если вы уже сделали игру, скажем, на GameMaker, то сразу разберётесь, что к чему в Unity. Ещё Unity поддерживает альтернативные модели оплаты прямо в движке, включая несколько free-to-play моделей монетизации.

Функционал бесплатной персональной версии уже достаточно богат для вашего первого проекта. Создав игру на бесплатной версии, вам не нужно платить лицензионные отчисления или роялти, но тут есть некоторые оговорки, а именно – вы не сможете получить больше $100000 спонсирования /прибыли. В помощь начинающим разработчикам по Unity написано множество обучающих статей. Популярные игры на этом движке: Alto’s Adventure, Gone Home и находящаяся в разработке .

Unreal Engine 4 использует C++, так что при должном знании этого языка можно остановить свой выбор на нём, впрочем, игры можно будет создавать и не углубляясь в сам язык. Игры, сделанные на Unreal, Engine можно выпускать на PC, Mac, iOS, Android, Xbox One и Playstation 4. В Unreal в движок встроено практически всё, что вам понадобится, включая 3D-моделирование и работу с ландшафтом. Из-за столь богатого наполнения, освоить Unreal Engine 4 сложнее других инструментов разработки, и даже при хорошем знании C++ вам стоит приготовиться к изучению множества новых вещей. Зато вы сможете создавать по-настоящему впечатляющие игры. О тонкостях устройства Unreal можно узнать больше с помощью реверс-инжиниринга, но всё же без предварительного опыта разобраться с ним будет нелегко. Unreal Engine 4 – относительно новый движок, но на нём уже вышли такие игры, как Daylight и Tekken 7.

Для использования Unreal Engine 4, вам нужно дать согласие на выплату роялти, если ваша игра будет продаваться. После начала продаж игры или приложения вы платите за квартал. Может показаться, что это слишком большие деньги, но с учётом прибыли, которую будет приносить игра, это не так уж много.

Также стоит присмотреться к движку Source 2 от Valve, который в этом году тоже должен стать бесплатным.

Обновлено 01.10.15: В августе на GDC . Stingray работает на ядре технологии Bitsquid и основан на 64-разрядной архитектуре. Stingray был разработан, чтобы быть очень гибким и работать с всеми популярными платформами, от мобильных до виртуальной реальности. Технологии модульной структуры и управляемых данных означают, что разработчикам гораздо проще вносить изменения и можно сразу увидеть результаты сразу на нескольких подключенных устройствах, без повторной компиляции. Плюс к этому возможен быстрый перенос объектов между продуктами Autodesk. Прорыва с автоматизацией разработки пока не случилось. Если вы уже используете Unity или Unreal, то переходить не стоит, выигрыш пока не очень заметен. Позже мы расскажем подробней.

Король разработки – Source 2

На GDC 2015 Valve сделала несколько громких анонсов, и самым главным для игрового сообщества из них, наверное, был анонс Source 2. Это преемник движка Source, использовавшегося в Counter-Strike: Source, Half-Life 2 и множестве других игр. Разработчики уже несколько лет с нетерпением ждали движка следующего поколения в арсенале Valve. На пресс-конференции Джей Стелли (Jay Stelly) из Valve сказал: « для разработчиков контента. Наряду с анонсами Epic и Unity это поможет PC оставаться доминирующей платформой создания контента». Очевидно, Valve решила присоединиться к гонке движков вместе с Epic и Unity, предложив разработчикам больше вариантов на выбор. Однако, пока не совсем ясно, что значит «бесплатно для разработчиков контента»: речь о любых зарекомендовавших себя разработчиках или это какая-то особенная категория?

О дате релиза конкретной информации нет, известно лишь, что Source 2 выйдет в ближайшем будущем. Джей Стелли также заявил: «Мы нацелены на повышение продуктивности авторов контента. Учитывая, насколько важным становится пользовательский контент, Source 2 предназначен не только для профессионалов, он позволяет и самим игрокам принимать участие в разработке своих любимых игр». По этим словам можно предположить, что Source 2 будет доступен не только профессиональным студиям, но и любителям и моддерам, что сделали многие игры Valve такими популярными.

Мы обратились к Valve за дополнительной информацией, и эта статья будет дополнена, когда о новом движке будет известно больше. Но уже сейчас можно сказать наверняка, что Source 2 станет серьёзным конкурентом тяжеловесам в лице Unity и Unreal Engine 4, ведь, по словам Джелли, он тоже будет бесплатным.

Писателям – Twine/RPG Maker/AXMA

Не все мы эксперты в программировании, и даже Stencyl многим может показаться сложноватым. Если вы рассматриваете себя больше как рассказчика историй, у вас на выбор есть два прекрасных варианта: Twine и RPG Maker.

Для создания интерактивных нелинейных историй. Проще говоря, можно сделать игру в жанре «выбери своё приключение». Утилита невероятно проста в использовании. Вы соединяете сюжетные отрезки с помощью различных переходов, примерно как в диаграммах связей. Каждый доступный игроку выбор ведёт к новому тексту. Когда закончите, можете сразу разместить результат на сайте. Всё вполне понятно, но если где-то застряли или хотите добавить что-нибудь ещё, вам поможет руководство для начинающих. Популярные игры, созданные в Twine: A Kiss и Cry$tal Warrior Ke$ha.

Если Twine кажется вам чересчур старомодным, попробуйте RPG Maker. В бесплатной версии меньше возможностей, чем в платных альтернативах, но и она на многое способна. В изучении система проста: графика перетаскивается, диалоги добавляются в один клик. Чтобы сделать что-нибудь поинтереснее обычной RPG, придётся мыслить нестандартно, но примеры в лице тепло принятых публикой To the Moon и LISA дают понять, что это возможно. Вы можете пользоваться бесплатной музыкой и изображениями, так что даже рисовать уметь не нужно. Встроенное обучение, опять же, поможет вам в создании первой игры. Популярные игры на RPGMaker: Clock of Atonement и One Night. У Twine существует отечественный аналог AXMA Story Maker к которому также стоит присмотреться.

Бесплатный софт для игровых ресурсов

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

Tiled – простой редактор карт для Cocos2D, Unity и других инструментов.

OpenGamesArt – бесплатные изображения и графические заглушки.

Free Music Archive – бесплатная музыка с лицензиями Creative Commons.

FreeSound – коллекция бесплатных звуковых эффектов.

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