Какой движок выбрать для создания своей игры. Игровой Движок - Написать Самому или Взять Готовый

Игровые движки, что же это такое? Frostbite,CryEngine,Unreal Engine,Source,Unity...
Можно вечно продолжать этот список но пока остановимся на выше названных движках.

Итак, что же такое игровой движок? Игровым движком называют центральный программный компонент компьютерных и видеоигр, упрощает разработку, часто даёт игре возможность запускаться на нескольких платформах, таких как игровые консоли и настольные операционные системы, например Linux, Mac OS и Windows. Игровой движок, включает в себя: движок рендеринга (графический движок), физический движок, звук, систему скриптов, анимацию, искусственный интеллект, сетевой код, управление памятью и многопоточность.

Часто на процессе разработки можно сэкономить за счёт повторного использования одного и того же игрового движка для создания множества различных игр.(Например Call of Duty:D)

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

1.Frostbite

Frostbite - игровой движок, разработанный компанией Electronic Arts, студией DICE (Digital Illusions CE).
Применяется как в собственных разработках студии, так и других проектах EA games.
Впервые Frostbite увидел свет в 2008 году,как игровой движок Battlefield:Bad Company.На данный момент существует 4 версии движка и один мобильный.Движок поддерживает отображение графики при помощи DirectX 9,10 и начиная с версии 1.5 также используется DirectX 11.Одной из заявленных особенностей является оптимизация для работы на многоядерных процессорах.

А теперь приведём список игр с данным движком для персональных компьютеров:

Battlefield:Bad Company(Frostbite 1.0)
Battlefield 1943(Frostbite 1.5)
Battlefield: Bad Company 2(Frostbite 1.5)
Medal of Honor(Frostbite 1.5)
Battlefield: Bad Company 2 Vietnam(Frostbite 1.5)
Battlefield 3 (Frsotbite 2.0)
Need for Speed: The Run(Frostbite 2.0)
Medal of Honor: Warfighter(Frostbite 2.0)
Battlefield 4(Frostbite 3.0)
Need for Speed: Rivals(Frostbite 3.0)
Plants vs. Zombies: Garden Warfare(Frostbite 3.0)
Dragon Age: Inquisition(Frostbite 3.0)
Mirror"s Edge 2014 (Frostbite 3.0)
Star Wars: Battlefront(Frostbite 3.0)
Mass Effect:Next(Frostbite 3.0)

Frostbite очень высоко поднял планку разрушаемости(особенно после Battlefielld 3), и очередной раз показал что разработка игр не стоит на месте а идет в правильном направлении.

2.Source

Source - игровой движок разработанный не без известной компанией Valve.Его особенностями считаются модульная основа и гибкость.Особенно он выделился своей технологией выражения эмоций и системой физики, работающей по сети.Движок может работать с видеокартой, поддерживающей DirectX 6-11.
Триумфом данного движка можно считать, использование его в Half-Life 2 в конце 2004 года.Тогда это был прорыв.Но даже сейчас его используют во многих играх.

Серия Half-Life 2
Portal 1 и 2
Counter-Strike:Source
Counter-Strike:Global Offensive
Left 4 Dead 1 и 2
Alien Swarm
E.Y.E:Divine Cybermancy
Nuclear Dawn
Postal 3
TitanFall
Dota 2

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

3. Unreal Engine


Unreal Engine - игровой движок, разрабатываемый и поддерживаемый компанией Epic Games.

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

Итак список наиболее известных игр:

Unreal Engine

Deus Ex
Rune
X-COM: Enforcer
Harry Potter and the Chamber of Secrets
Tom Clancy"s Splinter Cell
Postal 2
Lineage II
Spider-Man 2: The Game
Tom Clancy"s Rainbow Six 3: Black Arrow
Tom Clancy"s Ghost Recon 2
Star Wars: Republic Commando
SWAT 4
Tom Clancy"s Splinter Cell: Double Agent
Killing Floor
Mass Effect
Bioshock
Turok
Mirror"s Edge
Batman: Arkham Asylum
Section 8
Borderlands
Mass Effect 2
BioShock 2
Mortal Kombat (2011)
Batman: Arkham City
Mass Effect 3
Borderlands 2
Spec Ops: The Line
Dishonored
XCOM: Enemy Unknown
DmC: Devil May Cry
Painkiller: Hell & Damnation
BioShock Infinite
Outlast
Lost Planet 3

(Здесь не полный список игр на Unreal Engine)

Unreal Engine на пару с Source является культовым движком. И когда Source делал прорывы в лицевой анимации и физике, то Unreal Engine был сосредоточен на качестве картинки и спец-эфектов.

4. CryEngine


CryEngine - игровой движок, созданный немецкой частной компанией Crytek в 2002 году
Первая игра в которой использовался CryEngine это- FarCry.
CryEngine - коммерческий движок, который предлагается для лицензирования другим компаниям. С 30 марта 2006 года все права на движок принадлежат компании Ubisoft.

Итак, список наиболее известных игр:

Far Cry
Aion: Tower of Eternity
Crysis
Merchants of Brooklyn
Entropia Universe
Blue Mars
NED
Kailas
ArcheAge
The Day
Vigilance
Lightspire: Fortune’s Web
Project E:st
Hunt The THING
Homefront 2
Lichdom
Star Citizen
Enemy Front
Everybody"s Gone to the Rapture
Ryse: Son of Rome
SNOW
MechWarrior Online
ArcheAge
State of Decay
Sniper: Ghost Warrior 2
Crysis 3
PANZAR
Warface
Nexuiz

Crytek со своим движком CryEngine добилась больших успехов. В 2007 году взять хотя бы Crysis, это был ОГРОМНЫЙ прорыв в плане графики, что даже сейчас первый CryEngine выглядит очень современно.Ну а графика Crysis 3 замораживает своими пейзажами.

5.Unity


Unity -это один из самых распространенных движков, используемый практически на всех платформах(Windows, Windows Phone, Android, Apple iOS, Linux,Wii, PlayStation 3,X-BOX 360).Также его всё чаще используют в разработке игр из за упрощенного редактора. Приложения, созданные с помощью Unity, поддерживают DirectX и OpenGL.

Вот список наиболее известных игр на данном движке:

Angry Birds
Bad Piggies
Battlestar Galactica Online
Deus Ex: The Fall
Endless Space
Guns Of Icarus Online
Hearthstone: Heroes of Warcraft
King"s Bounty: Legions
Prime World
Scrolls
Slender: The Arrival
Slender: The Eight Pages
Temple Run 1,2
The Forest
StarForge
И многие другие

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

Это пятая статья из цикла материалов для начинающих разработчиков игр: Игровой движок - написать самому или взять готовый?

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

Почему не стоит писать свой игровой движок

В первую очередь необходимо ответить себе на один простой вопрос - что именно вы хотите сделать, игру или движок ? Если движок, то забудьте про игру и занимайтесь только им. Если игру - возьмите готовый движок или конструктор и делайте игру, не отвлекаясь на разработку её программной части.

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

Помимо бесплатных систем разработки игр, многие коммерческие игровые движки, полностью готовые к немедленному началу использования в игровых проектах, предлагают сразу несколько очень привлекательных схем лицензирования : полностью бесплатную (Unity 3D в бывшей Indie-редакции), смешанную схему с выплатой Royalties (Unreal Development Kit ) - 99 $ взнос за лицензию и выплаты 25 % прибыли после первых заработанных 5000 $, либо же доступную стоимость полновесной коммерческой лицензии (Unity Pro за 1500 $).

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

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

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

Подводим итог : написанием собственного игрового движка могут заниматься те, кто чётко представляет, что именно и зачем ему это нужно, видит адекватные преимущества такого подхода и способен за вменяемые сроки претворить свой план в жизнь. Всем остальным следует поискать готовое решение, благо оных в последнее время появилось достаточно - взять хотя бы те же Unity 3D и UDK.

Все мы слышали про движки для создания игр, при этом мало кто понимает, что это такое.

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

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

Понятие

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

Термин образовался в средине 90-х по отношению к шутерам вроде Quake, Wolfenstein и Doom .

Еще до возникновения такого понятия игровой мир заметил, что удивительно хорошо сочетали в себе:

  • трехмерную графику;
  • расчёт столкновений с объектами;
  • объемный игровой мир;
  • звуковую составляющую;
  • инвентарь (система вооружения) и другие правила.

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

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

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

Разновидности

Движки для разработки игр специализируются на жанрах.

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

В любой игре есть взаимодействие объектов , управление кем-либо или чем-либо при помощи геймпада, мыши и клавиатуры, вывод картинки и звука, наложение текста, рендеринг трехмерных объектов (в 3D-играх).

С учётом этого некоторые движки успешно используются для разработки развлечений разных жанров. изначально был платформой для создания шутеров от первого лица, но Gear of War (вид от третьего лица) и Speed Star (гонка) на его основе получились полноценными видеоиграми.

Шутер

Благодаря им появилось понятие движка, с них и начнём.

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

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

Платформер

Обычно это двухмерные развлечения, к ним требования более снисходительны:

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

Файтинг

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

Нередки в файтингах и сетевое взаимодействие, кастомизация персонажа, появление последствий драки (царапины, ссадины), добивающие приёмы.

Гонки

Для гонок создан не один игровой движок с учётом специфики игр.

Ввиду реализации мультипоточности, PhysX отличается наличием выделенного потока без каких-либо проверок. Это позволяет выполняться ряду задач одновременно в параллельных потоках.

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

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

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

Прочий функционал:

  • визуализация сцен с широким цветовым пространством;
  • использование десятков источников света в кадре;
  • полностью динамическое освещение;
  • размытие в движении без влияния на производительность;
  • отличное распараллеливание процесса визуализации;
  • расчёт распространения звука, его поглощение и отражение от преград;
  • множество условий боя;
  • удобная и понятная система скриптования;
  • система анализа топологии ИИ;
  • персонажи наделены зрением, слухом и прочими чувствами, что делает их серьёзными противниками;
  • групповое поведение.
  • сложность процесса портирования игр на консоли;
  • не оригинальная разработка, а усовершенствованный X-Ray (факт не доказан, но намёки на это есть);
  • поддержка DirextX12 не реализована.
  • улучшена графическая часть;
  • разрушаемость моделей и прочие преимущества PhysX;
  • нет спецэффектов ради спецэффектов (добавляются только необходимые).

Игры: серия Metro, в том числе разрабатывается Metro Exodus, и Arktika.1.

Яркий пример реализации личных амбиций и один из немногих всемирно известных движков, созданных на просторах СНГ.

Anvil

Создан дочерней компанией Ubisoft, используется для выпуска и только внутри компании.

Первой игрой была первая часть Креда Убийцы, затем появился симулятор сноуборда и Prince of Persia.

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

Поддерживается на PC, PS всех версий, Nintendo, Wii и Xbox.

Код написан на C++, модели нарисованы в ZBrush, а окружающий мир – в 3ds Max. Для правильной скелетной анимации задействовано . Физику виртуального мира моделирует легендарный Havok. В последних релизах было уделено немало внимания смене времени суток, динамическому освещению и дистанционной прорисовке. Также в него была интегрирована прогрессивная схема растительности (как в Far Cry 2) с новым ИИ, важным отличием коего является усовершенствованная система навигации NPC. Реализация и отладка Direct3D 10/11 хоть и весьма затратные, работа все же была проделана.

Среди неназванных особенностей движка выделим следующие:

  • оптимизация работы на многоядерных системах, вплоть до 32 потоков;
  • запуск игр на нескольких экранах в панорамном режиме;
  • сложный шумовой туман, способный симулировать песчаную бурю без падения fps;
  • эффекты преломления, отражения и рассеивания света в воде;
  • до шести отличающихся персонажей в одной кат-сцене;
  • большинство анимаций снято с реальных актеров;
  • в одной сцене может находиться до 3 тысяч участников, что позволяет устраивать массовые баталии, лишь бы ПК справился с нагрузкой;
  • NPC активно реагируют на героя, могут нападать одновременно, а не поочерёдно;
  • технология отсечения моделей и сортировка объектов по глубине прорисовки.
  • требователен к ресурсам;
  • не лицензируется;
  • долго не поддерживал DirectX 10 и 11.
  • хорошая реализация многопоточности;
  • работает на PC и множестве консолей;
  • возможность реализации массовок при участии сотен игровых персонажей.

С Ubisoft, в плане устроить массовую заваруху и нагнать побольше людей в одно место, не сравнится никто.

Creation Engine

Довольно новый движок от американской студии Bethesda, которая продемонстрировала его возможности в Skyrim. Как и предыдущие решения, создан только для нужд его разработчика. За основу был взят Gamebryo – подспорье для Oblivion и его аддонов.

Первое, что интересно в технологии – поддержка огромных локаций с дальней прорисовкой, свободным и быстрым перемещением.

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

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

Концепция управления развитием сюжета способна генерировать дополнительные задания с учётом стиля игры.

Система построения деревьев изрядно переработана в новой версии движка, что позволило разнообразить растительный мир, и разгрузить для её просчёта.

Для анимации персонажей использован посторонний инструмент от Havok.

Особенности:

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

Ничего лучшего для моддеров пока не придумано, поэтому больше, чем для Fallout, их создано только для Oblivion.

CryEngine 4

Последняя версия движка от немецкой компании Crytek для шутеров от первого лица.

Самый удачный пример использования – .

С 2016 года движок стал распространяться по схеме «заплати, сколько не жалко», но только для игрового использования.

Особенности и возможности:

  • наличие огромных территорий, причем не коридорных;
  • локации создаются без швов;
  • поддержка инверсной кинематики персонажей и транспорта, его взаимодействия с окружающей средой;
  • имитация различных нетвёрдых объектов: ткань, вода;
  • огромный арсенал с уникальными характеристиками каждого вида оружия;
  • скриптовый и командный интеллект;
  • можно изменять параметры ИИ, не имея знаний в области программирования;
  • интерактивное музыкальное сопровождение – музыка соответствует ситуации;
  • полная поддержка звуковой системы 5.1;
  • воспроизведение звуков природы с учётом среды, отражения и поглощения звука;
  • реалистичный эффект жары и пожара;
  • прозрачность стекол – можно видеть, что находится в зданиях;
  • эксплуатация карт высот для получения многоуровневой среды с видимым расстоянием до 2000 м;
  • невероятные возможности работы с освещением и тенями, что отлично демонстрирует Crysis;
  • объемный густой туман и дым для придания атмосферы;
  • наличие необычных физических эффектов (например, нанокостюма).

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

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

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

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


Читайте также: