Что такое движок игры: Что такое игровой движок? | Видеоигры | Блог
Что такое игровой движок? | Видеоигры | Блог
Если вы регулярно читаете статьи о компьютерных играх, то обязательно сталкивались со словами «игровой движок». И вы знаете, что он может быть быстрым, тормозным, продуманным, неудачным, привычным и так далее. А что это за «движок», который скрывается под красивой оберткой текстур и скриптов компьютерной игры? Это же не двигатель автомобиля. Тогда что? Программный код? Комплекс приложений для программистов и игроков? Разберемся немного подробнее.
Понятие «игрового движка»
Термин «игровой движок» является прямой копией английского «Game Engine». Фактически это объединенный в единое целое комплекс прикладных программ, с помощью которых обеспечивается графическая визуализация, звуковое сопровождение, перемещение внутриигровых персонажей, их действия в соответствии со скриптами, а также игра в сети, встроенные графические сцены, соблюдение физических эффектов и законов и многое другое.
Впервые этот термин появился в середине 90-х годов прошлого века. Связан он был с играми в жанре «шутер от первого лица», а точнее, с самым популярным на тот момент Doom. Исходный код этой игры был построен очень продуманно, с выделенными основными компонентами: системой трехмерной графики, звуками, расчетами столкновений, скриптами. Это привело к тому, что игровые программисты не стали писать свой код, а использовали наработки разработчиков Doom, внеся в код некоторые изменения: рисовали другие уровни, изменяли графику и внешний вид оружия, корректировали правила и выпускали новые игры, в основе которых оставался все тот же код из Doom.
Есть ли польза от использования готового игрового движка? Несомненно. Разработчик получает готовый качественный инструмент с большим количеством библиотек. В результате ему не надо писать большую часть базового программного кода и можно сосредоточиться на реализации своих идей, графики, игровой механики и сюжета, не тратя время на написание кода с нуля.
В результате ряд компаний занялся разработкой именно игровых движков, а разработчики игр стали покупать на них лицензии, как это получилось с Unreal Engine или id Tech 3. Стоимость лицензии может составлять от нескольких тысяч до миллионов долларов. Но при этом надо отметить, что для некоммерческого использования многие игровые движки, например, популярные Unity и Unreal Engine 4 доступны бесплатно. Остановимся на этих движках немного подробнее.
Особенности популярных игровых движков Unity и Unreal Engine 4
Движки Unity и Unreal Engine 4 являются самыми популярными в среде разработчиков из-за их удобства, детальной проработки и большого количества дополнительных библиотек, что позволяет настраивать и реализовывать практически любые идеи, приходящие в голову дизайнерам и игроделам.
Unreal Engine 4
Этот движок смело можно назвать легендой. Его разработка началась в 1998 году и с тех пор он постоянно модернизируется, дополняется и совершенствуется. Современный Unreal Engine 4 — это движок, на котором пишут игры для любых платформ и операционных систем, начиная от ОС Windows и заканчивая всеми современными консолями — Playstation 4, Xbox One, а также мобильными платформами, в том числе и iOS.
13 мая 2020 года разработчики из Epic Games анонсировали Unreal Engine 5 и показали демо для консоли Playstation 5. Ожидается, что этот движок выйдет в 2021 году, а пока разработчики продолжают работать с Unreal Engine 4. В настоящее время он бесплатен при условии, что выпущенные приложения приносят прибыль не более $3 000 в квартал. Если сумма прибыли больше, потребуется лицензировать движок и выплачивать его разработчикам процент от прибыли.
Unity
Unity — одна из популярных платформ для разработчиков игровых приложений. Можно услышать, что этот движок называют самым молодым. Но тут надо отметить, что он появился в 2005 году и с тех пор успешно развивается.
Как и Unreal Engine, Unity — кроссплатформенная система. На ней пишут игры для любых платформ и в любых жанрах. На Unity делают как простые аркады и головоломки, так и шутеры от первого лица с достаточно сложным игровым миром. Пример — Dead Trigger. Другой пример — интересная стратегия Endless Legend. Движок бесплатен для некоммерческого использования, а при написании коммерческих игр требуется выплачивать комиссионный сбор авторам движка.
Большой плюс Unity — простота его освоения. Минус — графика в играх, созданных на основе этого движка. Она выглядит проще и не настолько реалистична, как у Unreal Engine. Тем не менее, около половины всех мобильных игр, по заверениям разработчиков, написаны именно на этом движке.
Как создаются игры с помощью игровых движков
Для разработчика игровых приложений движки представляют собой программную среду, в которой он ведет разработку проекта. Ее использование позволяет не заниматься такими рутинными вещами, как описание работы с графикой, звуком и физической моделью. Но это не значит, что программировать не придется ничего. Разработчику все равно потребуется писать скрипты для внутриигровых действий. На Unity, например, потребуется работа с C#, да и на Unreal Engine знание языков программирования не помешает.
Необходимо отметить, что важной особенностью Unreal Engine является технология Blueprints, позволяющая описывать игровую логику и события с помощью графических схем, без использования языков программирования. Это, конечно, приведет к тому, что созданная игра будет занимать больше места и требовать более быстрой платформы, но зато процесс разработки значительно упрощается.
Использование игровых движков позволяет избавиться от написания кода для очень многих рутинных моментов, так как, кроме самих движков, для них существует огромное количество библиотек и расширений. С их помощью первые простейшие игры на Unity можно создать уже через несколько часов изучения платформы. Специально для начинающих в Unity существует масса проектов вроде Creator Kit и Microgame, предлагающих большое количество исходных материалов для написания простых приложений в 2D и 3D. На Unreal Engine также есть множество библиотек и уроков, позволяющих быстро освоить программную среду и начать писать простые игровые приложения.
Все игровые движки позволяют добавлять и рисовать уровни, их элементы и персонажей, прописывать события, которые происходят в зависимости от действий главного героя. При этом разработчик не тратит время на написание сотен строчек кода, а занимается только реализацией своих непосредственных идей.
Так что же такое игровой движок для игрока и разработчика?
Получается, что игровой движок с точки зрения разработчика является программной платформой, на которой ведется разработка приложения. Кстати, это совсем не обязательно игра. Unity, например, активно используют в работе над приложениями с дополненной реальностью. А это уже не только игры, но и путеводители, справочники, энциклопедии и многое другое.
А с точки зрения игрока или пользователя написанного приложения, игровой движок — это основа игры, на которую разработчиком наложен сюжет, уровни, графика и музыка. Разница между этими двумя определениями небольшая, но она все-таки есть.
Игровой движок — Википедия. Что такое Игровой движок
Игрово́й движо́к (англ. game engine) — базовое программное обеспечение компьютерной или видео игры[1]. Разделение игры и игрового движка часто расплывчато, и не всегда студии проводят чёткую границу между ними. Но в общем случае термин «игровой движок» применяется для того программного обеспечения, которое пригодно для повторного использования и расширения, и тем самым может быть рассмотрено как основание для разработки множества различных игр без существенных изменений[2].
Определение
Термин «игровой движок» появился в середине 1990-х в контексте компьютерных игр жанра шутер от первого лица, похожих на популярную в то время Doom. Архитектура программного обеспечения Doom была построена таким образом, что представляла собой разумное и хорошо выполненное разделение центральных компонентов игры (например, подсистемы трёхмерной графики, расчёта столкновений объектов, звуковой и других) и графических ресурсов, игровых миров, формирующие опыт игрока игровые правила и другое. Как следствие, это получило определённую ценность за счёт того, что начали создаваться игры с минимальными изменениями, когда при наличии игрового движка компании создавали новую графику, оружие, персонажей, правила игры и тому подобное[2].
Разделение между игрой и игровым движком часто неопределённо. Некоторые движки имеют разумное и ясное разделение, в то же время другие практически невозможно отделить от игры. Например, в игре движок может «знать» о том, как рисовать дугу, в то же время другой движок может работать с другим уровнем абстракции, и в нём дуга будет частным случаем параметров вызываемых функций. Одним из признаков игрового движка является применение архитектуры управления данными. Это определяется тем, что если игра содержит жёстко фиксированные данные (англ.)русск., влияющие на логику, правила игры, рисование объектов и тому подобное, то становится сложно применять данное программное обеспечение в разных играх[2].
Большинство игровых движков разработаны и настроены для того, чтобы запустить определённую игру на определённой платформе. И даже наиболее обобщённые многоплатформенные движки подходят для построения игр определённого жанра, например шутеров первого лица или гонок. В данном контексте можно более аккуратно сказать, что игровой движок становится не оптимальным при его применении не для той игры или той платформы, для которой разработан. Данный эффект проявляется от того, что программное обеспечение представляет собой набор компромиссов, основанных на тех предположениях, какой должна быть игра. Например, проектирование рендеринга внутри зданий приведёт к тому, что движок скорее всего не будет таким же хорошим для открытых пространств. В первом случае движок может использовать BSP-дерево для отрисовки объектов, близких к камере. В то же время, для открытых пространств может использоваться менее точные способы, а также более активно применяются технологии отрисовки с разной степенью детализации, когда более далёкие объекты прорисовываются менее чётко, так как занимают меньшее количество пикселей[3].
Специализация
Как правило, игровые движки специализированы в рамках жанра компьютерных игр. Так, движок, спроектированный для двумерного файтинга на боксёрском ринге будет существенно отличаться от движка для массовой многопользовательской игры, шутера от первого лица или стратегии в реальном времени. Но в то же время движки имеют существенные общие части — все трёхмерные игры, невзирая на жанр, требуют взаимодействия игрока посредством клавиатуры, геймпада и/или мыши, некоторую форму трёхмерного рендеринга, средства индикации как на лобовом стекле (например, печать текста поверх графического изображения), звуковую систему и многое другое. Так, движок Unreal Engine несмотря на то, что был спроектирован для шутера от первого лица, успешно использовался для создания игр во множестве других жанров, таких как шутер от третьего лица Gears of War, приключенческая ролевая игра Grimm (англ.)русск., или футуристичная гонка Speed Star[4].
Исторически шутеры от первого лица относятся к играм, которые наиболее технологически сложны, так как им необходимо представлять игроку иллюзию трёхмерного мира, и делать это для активных действий в реальном времени. Движки шутеров от первого лица больше обращают внимание на такие технологии, как эффективный рендеринг трёхмерных миров, отзывчивая игровая механика контроля и прицеливания, высокая точность анимации оружия и рук управляемого игроком персонажа, широкий спектр ручного вооружения, «прощающая» модель движения игрока и его столкновения с препятствиями, высокое качество анимации и искусственного интеллекта неигровых персонажей. При этом характерны малая масштабируемость в многопользовательских играх (типична поддержка до 64 игроков) и повсеместная ориентация на игровой процесс deathmatch[5]. Графические движки игр данного жанра используют ряд оптимизаций в зависимости от текущего окружения игрока, но вместе с тем предъявляются требования по анимации персонажа, аудио и музыке, динамики твёрдого тела (англ.)русск., кинематике и другим технологиям[6].
Движки платформеров обращают больше внимания на анимацию персонажа и его аватара, и при этом им не требуется той реалистичности, которая присуща трёхмерным шутерам. Для платформеров характерно применение ряда технологий: множество способов перемещения (движущиеся платформы, лестинцы, верёвки, подпорки и другие), элементы из головоломок, использование следящей за персонажем камеры от третьего лица, рендеринг нескольких слоев геометрии в сочетании с системой столкновений объектов, и другие[7].
Файтинги ориентированы на богатую анимацию, точность ударов, возможность задания сложных комбинаций последством кнопок и/или джойстика и тому подобное. Анимационные персонажи предъявляют требования движкам по высокой детализации, дополнительно движки обеспечивают возможность изменения и добавления спецэффектов (шрамов после ударов, выступление пота и тому подобное), а также предоставляются возможности симуляции причёски, одежды и других элементов[8].
Автосимуляторы могут быть разными и здесь имеется ряд поджанров. Графика таких игр ориентирована на «коридорность» и кольцевые треки, и поэтому движки больше обращают внимание на детализацию машин, трека и непосредственное окружение. Как следствие, используются технологии для рендеринга далёких фоновых объектов (отображаемых двумерно), трек часто разделяется на несколько секторов, внутри которых проводится оптимизация по рендерингу. В случае движения по туннелям или другим «тесным» местам используются техники для того, чтобы камера с видом от третьего лица не пересекалась с фоновой геометрией. Используемые структуры данных и искусственный интеллект ориентируются на решение задач машин неигровых персонажей, таких как поиск пути и других технических проблем[9].
У стратегий реального времени нет высоких требований к графике и поэтому движок ориентируется на то, что отбражает юнитов в низком разрешении, но при этом он должен быть способен работать с большим числом юнитов одновременно. Отдельные особенности имеются у интерфейса взаимодействия игрока и элементов управления, в которые входят инструменты работы с группами юнитов (выделение по площади, управление) и ряд меню и панелей инструментов, содержащих команды управления, элементы снаряжения, выбор типов юнитов и зданий и тому подобное[10].
Массовые многопользовательские игры требуют наличия большого игрового мира и возможности одновременного присутствия и взаимодействия большого числа игроков. Локальные задачи, решаемые движком, похожи на те, что имеются в играх других жанров, но особенностью жанра является ориентация и проработка программного обеспечения серверов, которые должны сохранять состояние мира, управлять подключением и отключением игроков, предоставлять внутриигровые чаты, способы взаимодействия голосом и так далее[11].
История
На домашних компьютерах 1980-х из-за отсутствия стандартизации и ограничений памяти портирование было ручным и трудоёмким: переносилась только логика работы, а остальные части — вывод графики на экран, вызов прерываний и т. п. — писалось заново. Тем не менее, в те времена появились игровые движки Z-Machine и SCI от компаний Infocom и Sierra соответственно. В 1980-е компания Incentive Software начала разработку Freescape — переносимого 3D-ядра.
Сам же термин «игровой движок» появился в середине 1990-х годов — в это время окончательно установилось доминирование IBM-совместимых компьютеров, а быстрые процессоры и «хитрое» программирование дали 30 и более кадров в секунду в трёхмерных играх. Игры Doom и Quake от id Software оказались настолько популярными, что другие разработчики вместо того, чтобы работать с чистого листа, лицензировали основные части программного обеспечения и создавали свою собственную графику, персонажей, оружие и уровни — «игровой контент» или «игровые ресурсы». Движок Quake был использован в более чем десяти проектах и дал серьёзный толчок развитию middleware-индустрии.
Более поздние игры, такие как Unreal 1998 года (движок Unreal Engine) и Quake III Arena (на движке id Tech 3) 1999 года, были спроектированы с применением данного подхода, с отдельно разработанными движком и наполнением. Практика лицензирования такой технологии оказалась полезным вспомогательным доходом для некоторых разработчиков игр. Так, стоимость одной лицензии на коммерческий игровой движок класса high-end может варьироваться от 10 тыс. до 3,75 млн $ (в случае Warcraft III)[источник не указан 2786 дней], а число лицензиатов может достигать несколько десятков компаний (как для Unreal Engine). По крайней мере, многократно используемые движки ускоряют и упрощают разработку игры, что является ценным преимуществом в конкурирующей индустрии компьютерных игр.
Дальнейшее усовершенствование игровых движков привело к сильному разделению между рендерингом, скриптингом, художественным дизайном и дизайном уровней. Сейчас для типичной команды разработчиков игр является вполне обычным иметь в составе столько же художников, сколько и программистов.
Шутеры от первого лица остаются преобладающими пользователями сторонних игровых движков, но сейчас такие движки также используются в других жанрах. Например, RPG Morrowind и MMORPG Dark Age of Camelot основаны на движке NetImmerse, в то время, как Oblivion и Fallout 3 используют новую версию данной технологии — Gamebryo. Известная MMORPG Lineage II построена на движке Unreal Engine 2 (несмотря на то, что данный движок изначально предназначался для использования в шутерах).
Игровые движки также используются в играх, первоначально разработанных для игровых консолей; например, движок RenderWare используется во франчайзах Grand Theft Auto и Burnout.
Современные игровые движки — одни из самых сложных в написании приложений, зачастую состоящие из десятков различных компонентов, каждый из которых можно настраивать по отдельности под нужды игры. Сложность разработки такого рода систем наглядно показывает один из комментариев к теме на сайте Slashdot.org, описывающий набор типовых навыков, необходимых разработчику.
Обзор
В дополнение к многократно используемым программным компонентам, игровые движки предоставляют набор визуальных инструментов для разработки. Эти инструменты обычно составляют интегрированную среду разработки для упрощённой, быстрой разработки игр на манер поточного производства. Эти игровые движки иногда называют «игровым подпрограммным обеспечением» (сокр. ППО; англ. middleware), так как, с точки зрения бизнеса, они предоставляют гибкую и многократно используемую программную платформу со всей необходимой функциональностью для разработки игрового приложения, сокращая затраты, сложность и время разработки — все критические факторы в сильноконкурирующей индустрии видеоигр.
Как и другие ППО решения, игровые движки обычно платформо-независимы и позволяют некоторой игре запускаться на различных платформах, включая игровые консоли и персональные компьютеры, с некоторыми внесёнными в исходный код изменениями (или вообще без них). Часто игровое ППО имеет компонентную архитектуру, позволяющую заменять или расширять некоторые системы движка более специализированными (и часто более дорогими) ППО компонентами, например, Havok — для физики, FMOD — для звука или SpeedTree — для рендеринга. Некоторые игровые движки, такие как RenderWare, проектируются как набор слабосвязанных ППО компонентов, которые могут выборочно комбинироваться для создания собственного движка, вместо более традиционного подхода расширения или настройки гибкого интегрируемого решения. Тем не менее расширяемость достигнута и остаётся высокоприоритетной в игровых движках из-за широких возможностей их применения. Несмотря на специфичность названия, игровые движки часто используются в других типах интерактивных приложений, требующих графику в реальном времени, таких как рекламные демо-ролики, архитектурные визуализации, обучающие симуляторы и среды моделирования.
Некоторые игровые движки предоставляют только возможности 3D рендеринга в реальном времени вместо всей функциональности, необходимой играм. Эти движки доверяют разработчику игры реализацию остальной функциональности или её сбор на основе других игровых ППО компонентов. Такие типы движков обычно относят к «графическим движкам», «движкам рендеринга» или «3D движкам» вместо более содержательного термина «игровой движок». Однако эта терминология используется противоречиво: так, многие полнофункциональные игровые 3D движки упомянуты просто как «3D движки». Некоторые примеры графических движков: RealmForge, Ogre 3D, Power Render, Crystal Space и Genesis3D. Современные игровые или графические движки обычно предоставляют граф сцены — объектно-ориентированное представление 3D мира игры, которое часто упрощает игровой дизайн и может использоваться для более эффективного рендеринга огромных виртуальных миров.
Аппаратная абстракция
Чаще всего 3D движки или системы рендеринга в игровых движках построены на графическом API, таком как Direct3D или OpenGL, который обеспечивает программную абстракцию GPU или видеокарты. Низкоуровневые библиотеки, например, DirectX, SDL и OpenAL, также используются в играх, так как обеспечивают аппаратно-независимый доступ к другому аппаратному обеспечению компьютера, такому как устройства ввода (мышь, клавиатура и джойстик), сетевые и звуковые карты. До появления аппаратно-ускоряемой 3D графики использовались программные визуализаторы. Программный рендеринг всё ещё используется в некоторых инструментах моделирования для рендеринга изображений, для которых визуальная достоверность важнее производительности (количество кадров в секунду) или когда аппаратное обеспечение компьютера не удовлетворяет требованиям, например, не поддерживает шейдеры.
См. также
Примечания
- ↑ game engine | Definition of game engine in English by Oxford Dictionaries. Oxford Dictionaries | English. — «The basic software of a computer game or video game». Проверено 11 декабря 2017.
- ↑ 1 2 3 Jason, 2009, p. 11.
- ↑ Jason, 2009, p. 12.
- ↑ Jason, 2009, p. 13.
- ↑ Jason, 2009, p. 13, 14.
- ↑ Jason, 2009, p. 14.
- ↑ Jason, 2009, p. 16, 17.
- ↑ Jason, 2009, p. 17, 18.
- ↑ Jason, 2009, p. 19-21.
- ↑ Jason, 2009, p. 22, 23.
- ↑ Jason, 2009, p. 23, 24.
Литература
- Jason, Gregory. Game Engine Architecture : [англ.]. — CRC Press, 2009. — 864 с.
Ссылки
Краткая история развития игровых движков
О разработке игр и становлении игровой индустрии
Вместе с созданием первых игр программисты пришли к тому, что каждая игра содержит общие компоненты, даже несмотря на различие аппаратных платформ. А первые игры имели место на игровых автоматах размером с холодильник.
Общая для игр функциональность — графические решения, игровые механики, расчет физики и другое — стала выделяться в отдельные библиотеки, но, для того чтобы быть «игровым движком» было еще далеко. Во многом это было связано с серьезным различием программно-аппаратных платформ и неопределенности в самих играх. Ведь жанры и типы игр еще предстояло изобрести, при том, что многие первые игры были текстовыми. Собственно, именно для ранних адвенчур и платформеров и стали возникать игровые движки, особенно с развитием графики — хорошим примером можно назвать 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 до игровых автоматов.
Для разработки каждого типа есть определенный набор движков, потому что с технической стороны между всеми типами игр имеются большие различия. На рынке сейчас представлены десятки движков на любой вкус: кроссплатформенные и специализированные, требующие активной работы с исходным кодом движка и доступные без знаний программирования вообще, с разными производительностью, качеством документации и ценой. Подробнее о современных движках и о том, как выбрать правильный для своих целей, я рассказываю на дисциплине “Технические основы разработки игр” нашей программы “Менеджмент игровых интернет проектов” ВШБИ. Кстати, 11 февраля у нас будет однодневная конференция с бесплатным входом (надо только зарегистрироваться), где я в 12:00 буду читать одну из своих лекций про игровые движки, заходите.
Что такое игровой движок? Не во всех словарях найдешь определение этого словосочетания. Но если мы сами попробуем на …: jedaj | Паб
Что такое игровой движок? Не во всех словарях найдешь определение этого словосочетания. Но если мы сами попробуем найти ответ на это вопрос, тогда он скорей всего будет следующим: «Игровой движок — это программный компонент, позволяющий нам создавать и запускать видеоигры». Он предоставляет разработчикам инструменты для создания большинства компонентов игры, а потом позволяет им собрать их воедино. Движок игры затрагивает все компоненты игры, начиная от рендеринга, физики, звукового оформления, скриптинга, создания ИИ и заканчивая сетевыми аспектами. А если что-то создать с его помощью и не возможно, вы можете создать это в специализированной программе и потом импортировать это в игру. В любом случае, движки игры это рабочие лошадки современных видеоигр.
Насколько вы знаете, сейчас существует огромное количество игровых движков, начиная от всем известных брендов, таких как Quake и Unreal, которые разработчики и издатели могут приобрести по достаточно внушительной цене, заканчивая движками, которые разработчики создают специально для их внутренних проектов.
Чуть ниже мы познакомим вас со списком лучших игровых движков этого поколения. Это действительно самые лучшие представители, гордо сияющие в руках их создателей, они приносят вам тот самый запоминающейся игровой процесс. Вот пример того как хорошие творческие идеи приносят вам захватывающий геймплей.
Замечание: Стоит отметить, что не все разработчики говорят о своих игровых движках, многие держат их строжайшем секрете. Поэтому много хороших движков, о которых нам не известно не попали в данный список, хотя они этого и достойны. Примеры таких инкогнито использовались и используются для создания: Metal Gear Solid 4, FIFA и God of War III.
RAGE
***
Замечен в таких проектах как: 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 в своей следующей игре.
CryEngine
***
Замечен в таких проектах как: 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.
The Dead Engine
***
Замечен в таких проектах как: 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.
Unreal Engine
***
Замечен в таких проектах как: 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, которая построена в фэнтази-сеттинге; интересно как справится с такой задачей данный движок.
IW Engine
***
Замечен в таких проектах как: 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.
Anvil Engine
***
Замечен в таких проектах как: 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.
EGO Engine
***
Замечен в таких проектах как: 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, у которых в кармане ещё целый год разработки, должно получиться что-то очень серьезное и привлекательное.
Geo-Mod Engine
***
Замечен в таких проектах как: 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.
Вот собственно и всё. Мы провели вас по списку лучших игровых движков на сегодняшний день. Большинство игр, которые вы так любите, созданы именно с помощью этих лошадок. К сожалению, очень много других достойных кандидатов на звания лучшего движка не попали в этот список, но мы надеемся в ближайшем будущем создать для вас продолжение данного списка и ознакомить с оставшимися.
Подумайте дважды, прежде чем использовать игровые движки / Хабр
Холивар о том, нужно ли использовать для создания игр движки, начался сразу после появления первых игровых движков. Этот пост на reddit не является идеальным примером разумных контраргументов против постоянного использования движков, но я считаю, что непреодолимое желание их применения немного отдаёт фанатизмом.
Давайте рассуждать разумно
Я считаю, что не существует готового ответа на вопрос, стоит ли разработчику применять движок. Мудрый разработчик перед выбором технологии оценивает все возможные варианты.
Уровень навыков
Достаточно ли у вас навыков, чтобы эффективно использовать выбранный вариант? Если у вас нулевой опыт в программировании, то придётся многому научиться, прежде чем вы будете готовы создавать игру из набора разрозненных библиотек.
Если у вас нет ни технических навыков, ни интереса к их изучению, то вариантов и в самом деле нет — придётся работать с движком (или убедить кого-нибудь заняться технической частью за вас; удачи вам в этом!).
Есть промежуточное состояние между полным отсутствием навыков и профессиональным уровнем. В основном он находится в стране скриптовых языков: Scratch, Game Maker, Pygame, Unreal Blueprints, LOVE2D и т.д. Все они для тех, кто желает получить определённый уровень технических знаний, чтобы быстро достичь результатов.
Если вы опытный/профессиональный программист, способный уверенно освоить стороннее ПО, то можете воспользоваться этим навыком и решить, насколько минималистичным/максималистичным будет ваш подход (будет ли это исключительно минимальный SDL или же полностью оборудованный Unreal Engine).
Цели разработки
Каковы ваши цели в этом проекте? Технологии должны по максимуму упрощать их достижение:
- Для вас это хобби и больше всего вы хотите вырасти как разработчик? Возможно, вам стоит держаться подальше от Unity и Unreal и смотреть в сторону разработки игр на основе более низкоуровневых библиотек.
- Для вас это бизнес? На таком уровне всё становится намного сложнее. Возможные варианты следует оценивать в зависимости от множества факторов: можете ли вы нанимать людей, знакомых с технологией? Хотят ли эти люди использовать технологию? Соответствует ли она вашим временным рамкам? Есть ли у вас навыки для её эффективного применения? Нравится ли технология вашим художникам/дизайнерам?
Интерес
Если вы больше работаете (или планируете работать) с разработчиками, чем в одиночку, то вам нужно оценить, насколько другие люди заинтересованы в технологии. Если вы работаете со старым движком/фреймворком, который все ненавидят, то вам сложно будет найти для своего проекта мотивированных разработчиков.
Подумайте также над тем, как с технологией будут взаимодействовать художники и дизайнеры. Хотите ли вы создавать инструменты, чтобы догнать по функциональности Unreal? Они неизбежно будут сравнивать возможности движка и собственные. Я слышал, что даже у AAA-студий есть проблема с художниками, требующими наличия функций Unreal, которые пока не реализованы в текущем форке Unreal студии.
Если вы работаете в одиночку, то нужно поддерживать в себе сильную увлечённость проектами. Если вы ненавидите технологию, с которой работаете, то скорее всего забросите работу. Если вы бросите, то все ваши усилия пойдут прахом (за исключением бесценного опыта).
Что они дают вам на самом деле?
У Джонатана Блоу есть удивительно мудрое видео о том, что же на самом деле дают игровые движки. Они решают за вас «простые» проблемы, но потом встают на пути, когда пытаетесь решить сложную проблему, из которых и состоят увлекательные игры.
Да, конечно, вы получаете великолепный редактор, инструменты профессионального уровня и движок, который подошёл тысячам разработчиков, но вы расплачиваетесь за него множеством других аспектов:
- Иногда использованные в нём решения слишком обобщённые: возможно, в вашей игре гравитация применяется совершенно новым образом, но тогда вам придётся сражаться с жёстко заданной системой гравитации Unreal. Возможно, вы создаёте проект со сложной сетевой моделью, и тогда вам придётся полностью избавиться от серверной архитектуры Unreal.
- Иногда решения слишком специализированы: если вы когда-нибудь копались во внутренностях Unreal Engine, то видели, что весь движок пронизан кодом шутера от первого лица. Если вы создаёте игру такого жанра, то отлично. Если же нет, то это будет только сбивать с толку.
- Иногда в движке слишком много всего: это создаёт нагрузку и на мозг, и на компьютер. Выполнение полной симуляции физики твёрдого тела, 3D-конвейера со скелетной анимацией и тремя фреймворка — это абсолютный перебор для 2D-игры. Придётся разбираться, как отключить все эти функции Unreal, удачи вам в этом. Лично я нахожу, что производительность Unreal разочаровывает даже в тестовых мирах с малым количеством объектов.
Вам нужно задаться вопросом: «Что же мне требуется на самом деле?» Избавляйтесь от всего лишнего. Каждая ненужная система — это впустую потраченные ресурсы и время.
Что нужно для вашего проекта?
Технологиями должен управлять ваш проект, если только это не технологическое демо. Если вы создаёте игру, то нужно работать только с теми технологиями, которые оказывают влияние на игру — только с самым необходимым для передачи вашего видения. Если движок предоставляет вам самый быстрый путь для выпуска вашей игры, то это хороший выбор. Но так будет не всегда!
Существуют успешные игры, которым бы послужил плохую службу любой из доступных движков:
- Для Dreams был написан собственный рендерер, упрощающий и ускоряющий интуитивное создание 3D-ассетов.
- В No Man’s Sky активно используются совершенно новые способы процедурной генерации. При реализации таких вещей в движке приходилось бы постоянно с ним бороться.
- В Minecraft можно было бы использовать только немногие из возможностей стандартных движков.
Будущее вашей (и нашей) индустрии
При использовании любой технологии стоит задуматься о замыкании. У Джоэла Сполски есть серия статей о бизнес-стратегии разработки ПО, в которой он размышляет о замыкании на продукте. Если вкратце, то его мысль заключается в том, что компании заинтересованы удерживать вас, чтобы вы использовали их продукт, потому что если вы не используете продукт, то они не зарабатывают денег. Мастерами в захвате целых отраслей стали Apple, Microsoft, Adobe и Autodesk, они создают ощущение, что кроме их ПО нет никаких других альтернатив.
Замыкание влияет даже на хобби/соло-разработчиков. У меня есть друг, который постоянно борется с Unity (рушащие совместимость обновления, система прототипирования, навмеш, плохая поддержка 2D…). Он хочет уйти от Unity, но сильно замкнут на этот движок, потому что большая часть его кода (и данных) полагается на Unity API.
Почему движки покупают?
Unreal и Unity управляются требованиями рынка. Их клиенты AAA-уровня при помощи многомиллионых контрактов определяют курс дальнейшего развития движков. Если вы работаете над игрой, структура которой не совпадает с целями этих AAA-игроков, то разработчики движков не будут так же преданно служить вам. Например, двухмерным, процедурным, экспериментальным, воксельным играм и играм с большими объёмами данных почти всегда приходится искать что-то своё.
Чем ярче кажутся функции, тем больше руководство компаний (которое чаще всего не является технарями) стремится использовать движки. Такие возможности, как Blueprints движка Unreal, очень нравятся художникам и дизайнерам, но создают множество проблем программистам. (Это свойственно любым скриптовым языкам; если позволить не изучавшим программирование людям программировать, то результат будет плохим, аналогично тому, как плоха графика, рисуемая программистами).
Действительно ли новые функции упрощают завершение создания вашей игры? На самом ли деле они повышают ценность конечного продукта?
Боритесь с централизацией
Каждый раз, когда одна из студий переходит с собственного движка на Unreal или Unity, компании Epic и Unity набирают в игровой индустрии ещё бОльшую мощь. Поначалу такая централизация может казаться выгодной (у них ведь над движком работают 500 инженеров, отлично!), но через пару десятилетий это станет реальной проблемой. На ум приходит Google: эта компания захватила обширную часть функций, которые люди используют в Интернете, и это стоило им потери большой доли приватности.
Даже на уровне хобби отказ от исследований в пользу Unreal или Unity вредит будущим поколениям движков. Это может повредить даже самому Unreal: если все будут использовать Unreal, то Epic не сможет больше нанять никого для создания нового поколения движка, потому что никто не будет знать, как пишутся игровые движки!
Будущее может быть за открытыми исходниками
Если мы, как индустрия, хотим расти, создавая всё более качественные продукты, то нам нужно больше, а не меньше делиться технологиями.
Я думаю, что индустрия движется в этом направлении, хоть и чрезвычайно медленно. В особенности это свойственно игровым студиям AAA-уровня, которые всё ещё скрывают код своих движков, чтобы получить (воображаемое?) конкурентное преимущество.
- Microsoft сделала в этом направлении огромные шаги. Если меняются даже они, то я уверен, что смогут и другие.
- В лицензионном соглашении Unreal содержится пункт, позволяющий опираться на его код при работе над собственным (проприетарным или свободным) движком. Я думаю, что это большой прогресс.
- Благодаря своей полной открытости и бесплатности большую популярность набирает Godot, и я надеюсь, что если ему дать достаточно времени и поддержки, то он станет конкурентом Unity (а со временем и Unreal).
- id Software (в эпоху Джона Кармака) выпускала полный исходный код с Doom и до Doom 3. У Кармака было множество причин продвигать такое решение. Самая убедительная из них для компаний заключается в том, что это не вредит продажам. Модель shareware, по которой распространялся Doom — разработчик отдаёт движок и продаёт данные — может быть эффективной стратегией и сегодня. Если ваш бизнес беспокоится о том, что конкуренты «украдут» вашу технологию, можете опубликовать свой код уже после того, как за ним выпущена более новая игра (так поступала id). После ухода Кармака id, похоже, потеряла интерес к публикации кода.
Качество ПО
Джонатан Блоу и Кейси Муратори — ярые критики современных практик написания ПО. Их точка зрения заключается в том, что мы создаём надстройки над слоями абстракций так долго, что получаются огромные хрупкие слои ненужного хлама, и это не позволяет нам писать более качественные продукты.
Возможно их философия ближе к идеализму, чем к прагматизму (что обычно приводит к откладыванию сроков выпуска игр), но если она близка вам, то не стоит её игнорировать.
Важны ли вам скорость, качество и элегантность ваших технологий? Многих людей вполне устраивает отрицательный ответ, но некоторые хотят создавать программы более «чистым» способом.
Каковы альтернативы?
Вместо использования движка вы просто пишете игру.
Новички часто думают, что для создания игры им нужен движок. С большой долей вероятности им стоит отбросить такую точку зрения. Начинающие будут впустую тратить время на реализацию бесполезных функций движка, вместо того, чтобы дать игре решить самой, что ей абсолютно необходимо. Только игра должна управлять тем, что нужно от движка (разумеется, в качестве контрпримера можно привести Unity, как образец подхода «движок в первую очередь»; в поддержку такой концепции у Unreal Engine 4 есть Paragon, Fortnite и Unreal Tournament, не говоря уже о десятках лет опыта выпуска бесконечного количества игр в предыдущих версиях движков).
Использование библиотек
Начинать «с нуля» имеет смысл только если вы имеете навык и планируете создать инновацию в конкретном компоненте (или имеете ограничения). Во всех остальных случаях существует множество библиотек для интеграции. Это особенно хорошо, когда вы знаете, что, например, стандартная система физики полностью подходит для требований вашего проекта (особо важно это потому, что для реализации собственной физики нужен большой объём знаний в этой области).
Вот несколько библиотек, которые могут заполнить пробел между работой «с нуля» и использованием полностью готового движка:
- Графика: SDL, SFML, Ogre
- Физика: Bullet, PhysX (которая недавно стала open source — огромная победа!)
- Звук: SDL, SFML
Это лишь очень малая доля существующих библиотек.
Большой плюс в использовании библиотек заключается в том, что он даёт вам наибольшую среди всех вариантов гибкость. Если вы пишете весь код в одном движке, то для его портирования придётся приложить огромные усилия. Если вы пишете игру как коллекцию библиотек, то обладаете большой мобильностью и можете заменять целые подсистемы. Если библиотека не отвечает вашим требованиям, то можно попробовать другую или даже написать собственную замену.
Кроме того, и Unreal, и Unity поддерживают импорт динамически подключаемых библиотек. Это значит, что можно начать работать с библиотеками, а затем перейти на Unreal без необходимости переписывать весь базовый код геймплея, потому что он находится в библиотеке. Чтобы код оказался достаточно гибким для таких огромных изменений, требуется серьёзная продуманность, но я думаю, что для среднего или долговременного проекта оно того стоит.
В заключение
Я представил несколько точек зрения, под которыми можно рассматривать технологии при их выборе. Потратьте пару недель на подробное исследование, и это может сэкономить вам в дальнейшем несколько месяцев работы по портированию или даже годы неудобств.
В конце концов, ваша основная задача — закончить проект. Вам следует приложить максимальные усилия к поиску кратчайшего пути к решению этой задачи. Он может оказаться для вас довольно неожиданным!
Игровой движок — это… Что такое Игровой движок?
Игрово́й движо́к — это центральный программный компонент компьютерных и видеоигр или других интерактивных приложений с графикой, обрабатываемой в реальном времени. Он обеспечивает основные технологии, упрощает разработку и часто даёт игре возможность запускаться на нескольких платформах, таких как игровые консоли и настольные операционные системы, например, GNU/Linux, Mac OS X и Microsoft Windows.
Основную функциональность обычно обеспечивает игровой движок, включающий движок рендеринга («визуализатор»), физический движок, звук, систему скриптов, анимацию, искусственный интеллект, сетевой код, управление памятью и многопоточность. Часто на процессе разработки можно сэкономить за счет повторного использования одного игрового движка для создания множества различных игр.
История
В первое время из-за невысокой скорости и отсутствия какой-либо стандартизации аппаратной части даже порты одной игры серьёзно переписывались — а из одной игры в другую вообще переносили минимум кода. Впрочем, в играх жанра квест существовали Infocom’овская Z-Machine и SCI компании Sierra — именно их можно считать первыми законченными игровыми движками.
Сам же термин «игровой движок» появился в середине 1990-х годов — в это время окончательно установилось доминирование IBM-совместимых компьютеров и появились первые трёхмерные игры. Игры Doom и Quake от id Software оказались настолько популярными, что другие разработчики вместо того, чтобы работать с чистого листа, лицензировали основные части программного обеспечения и создавали свою собственную графику, персонажей, оружие и уровни — «игровой контент» или «игровые ресурсы». Движок Quake был использован в более чем десяти проектах и дал серьёзный толчок развитию middleware-индустрии.
Более поздние игры, такие как Unreal 1998 года (движок Unreal Engine) и Quake III Arena (на движке id Tech 3) 1999 года, были спроектированы с применением данного подхода, с отдельно разработанными движком и наполнением. Практика лицензирования такой технологии оказалась полезным вспомогательным доходом для некоторых разработчиков игр. Так, стоимость одной лицензии на коммерческий игровой движок класса high-end может варьироваться от 10 тыс. до 3,75 млн $ (в случае Warcraft III)[источник не указан 646 дней], а число лицензиатов может достигать несколько десятков компаний (как для Unreal Engine). По крайней мере, многократно используемые движки ускоряют и упрощают разработку игры, что является ценным преимуществом в конкурирующей индустрии компьютерных игр.
Дальнейшее усовершенствование игровых движков привело к сильному разделению между рендерингом, скриптингом, художественным дизайном и дизайном уровней. Сейчас для типичной команды разработчиков игр является вполне обычным иметь в составе столько же художников, сколько и программистов.
Шутеры от первого лица остаются преобладающими пользователями сторонних игровых движков, но сейчас такие движки также используются в других жанрах. Например, RPG Morrowind и MMORPG Dark Age of Camelot основаны на движке NetImmerse, в то время, как Oblivion и Fallout 3 используют новую версию данной технологии — Gamebryo. Известная MMORPG Lineage II построена на движке Unreal Engine 2 (несмотря на то, что данный движок изначально предназначался для использования в шутерах).
Игровые движки также используются в играх, первоначально разработанных для игровых консолей; например, движок RenderWare используется во франчайзах Grand Theft Auto и Burnout.
Современные игровые движки — одни из самых сложных в написании приложений, зачастую состоящие из десятков различных компонентов, каждый из которых можно настраивать по отдельности под нужды игры. На сайте Future Game Coders есть различные темы о подсистемах современных игр.
Обзор
В дополнение к многократно используемым программным компонентам, игровые движки предоставляют набор визуальных инструментов для разработки. Эти инструменты обычно составляют интегрированную среду разработки для упрощённой, быстрой разработки игр на манер поточного производства. Эти игровые движки иногда называют «игровым подпрограммным обеспечением» (сокр. ППО; англ. middleware), так как, с точки зрения бизнеса, они предоставляют гибкую и многократно используемую программную платформу со всей необходимой функциональностью для разработки игрового приложения, сокращая затраты, сложность и время разработки — все критические факторы в сильноконкурирующей индустрии видеоигр.
Как и другие ППО решения, игровые движки обычно платформо-независимы и позволяют некоторой игре запускаться на различных платформах, включая игровые консоли и персональные компьютеры, с некоторыми внесёнными в исходный код изменениями (или вообще без них). Часто игровое ППО имеет компонентную архитектуру, позволяющую заменять или расширять некоторые системы движка более специализированными (и часто более дорогими) ППО компонентами, например, Havok — для физики, FMOD — для звука или SpeedTree — для рендеринга. Некоторые игровые движки, такие как RenderWare, проектируются как набор слабосвязанных ППО компонентов, которые могут выборочно комбинироваться для создания собственного движка, вместо более традиционного подхода расширения или настройки гибкого интегрируемого решения. Тем не менее расширяемость достигнута и остаётся высокоприоритетной в игровых движках из-за широких возможностей их применения. Несмотря на специфичность названия, игровые движки часто используются в других типах интерактивных приложений, требующих графику в реальном времени, таких как рекламные демо-ролики, архитектурные визуализации, обучающие симуляторы и среды моделирования.
Некоторые игровые движки предоставляют только возможности 3D рендеринга в реальном времени вместо всей функциональности, необходимой играм. Эти движки доверяют разработчику игры реализацию остальной функциональности или её сбор на основе других игровых ППО компонентов. Такие типы движков обычно относят к «графическим движкам», «движкам рендеринга» или «3D движкам» вместо более содержательного термина «игровой движок». Однако эта терминология используется противоречиво: так, многие полнофункциональные игровые 3D движки упомянуты просто как «3D движки». Некоторые примеры графических движков: RealmForge, Ogre 3D, Power Render, Crystal Space и Genesis3D. Современные игровые или графические движки обычно предоставляют граф сцены — объектно-ориентированное представление 3D мира игры, которое часто упрощает игровой дизайн и может использоваться для более эффективного рендеринга огромных виртуальных миров.
Аппаратная абстракция
Чаще всего 3D движки или системы рендеринга в игровых движках построены на графическом API, таком как Direct3D или OpenGL, который обеспечивает программную абстракцию GPU или видеокарты. Низкоуровневые библиотеки, например, DirectX, SDL и OpenAL, также используются в играх, так как обеспечивают аппаратно-независимый доступ к другому аппаратному обеспечению компьютера, такому как устройства ввода (мышь, клавиатура и джойстик), сетевые и звуковые карты. До появления аппаратно-ускоряемой 3D графики использовались программные визуализаторы. Программный рендеринг всё ещё используется в некоторых инструментах моделирования для рендеринга изображений, для которых визуальная достоверность важнее производительности (количество кадров в секунду) или когда аппаратное обеспечение компьютера не удовлетворяет требованиям, например, не поддерживает шейдеры.
См. также
Ссылки
Собственные игровые движки: небольшое исследование / Хабр
Пару недель назад я играл в A Plague Tale студии Asobo Studio (и прошёл её). Меня очень захватила эта игра, благодаря не только красивой графике, но и сюжету с локациями. Я решил немного изучить технологии, использовавшиеся при её разработке, и был удивлён, обнаружив, что игра создавалась на собственном движке относительно небольшой студии. Я знаю, что некоторые компании используют собственные движки, но очень сложно найти подробное маркетинговое исследование с подобной информацией. Поэтому я написал эту статью.
Сегодня многие компании выбирают для разработки игр такие движки, как Unreal или Unity (или, по крайней мере, так думают многие люди), потому что для разработки собственного движка AAA-уровня требуется множество ресурсов. Поэтому я решил составить список некоторых из самых популярных самописных движков с указанием размеров студий и значимых игр, выпущенных на этих движках.
Большинство представленных здесь движков разрабатывалось на протяжении многих лет, множества итераций и для множества видеоигр, эти движки имели несколько версий или даже полностью (частично) переписывались с нуля с последующей сменой названия. Кроме того, важно заметить, что большинство этих движков для реализации определённой функциональности (совместимость с платформами, физика, сеть, растительность, UI, рендеринг, звук…) использует всевозможное промежуточное ПО.
*Примечание: я стремился к максимальной точности при указании количества сотрудников (сверялся с веб-сайтами компании, Википедией или LinkedIn компании), но не стоит относиться к этим показателям с особым доверием (некоторые значения могут уже быть неактуальными).
КРУПНЫЕ компании
Слева направо: Assassin’s Creed Odyssey, Final Fantasy XV, Red Dead Redemption 2
Ниже представлен список очень больших корпораций, иногда имеющих сложные корпоративные структуры с несколькими отделами (которые занимаются не только видеоиграми) и разными студиями/подрядчиками, создающими игры. Некоторые из них работают с несколькими движками, не только с собственными, но и с лицензированными.
Обычно такие компании вкладываются в собственные движки, чтобы иметь полный контроль над технологиями, а также избежать затрат на отчисления, требуемые лицензируемыми движками. Несмотря на это, есть некоторые большие компании, которые в последние годы выбрали для разработки Unreal Engine. Самые примечательные из них:
- Capcom использует Unreal для новых игр Street Fighter IV/V.
- В последних крупных хитах Bandai Namco используется Unreal: Jump Force, Dragon Ball Fighter Z, Dragon Ball Z: Kakarot, Tales of Arise.
- Square Enix при разработке нескольких новых игр тоже перешла на Unreal: Dragon Quest XI, Kingdom Hearts III, Final Fantasy VII Remake
Любопытно заметить, что все три компании из Японии, возможно, это какой-то региональная рыночная тенденция. Также стоит сказать, что китайский холдинг Tencent владеет 40% Epic Games; наверняка он обладает определённым влиянием на азиатский рынок.
Студии среднего размера
Слева направо: Rise of the Tomb Raider, Uncharted 4, A Plague Tale
Здесь мы рассмотрим средние компании, решившие создавать для своих игр собственные движки.
Количество сотрудников — хороший параметр, который нужно учитывать, ведь собственные движки обычно разрабатываются силами компании (то есть не отдаются на аутсорс), но стоит заметить, что некоторые из этих компаний могут иметь большой штат из-за собственных художественных/звуковых отделов, в то время как другие компании отдают эту работу на аутсорс.
Было бы очень интересно знать, сколько инженеров работает в отделе разработки движков каждой компании; я уверен, что нас бы ждал сюрприз: вероятно, над движком и инструментами трудится совсем небольшой коллектив инженеров!
Также интересно было бы узнать больше об инструментарии в составе этих движков, получить доступ к подобной информации очень сложно. Инструментарий движков обычно хранится в секрете (исключение составляют только презентации на GDC и короткие видео с демонстрацией возможностей движка).
Слева направо: Horizon Zero Dawn, God of War, Death Stranding
Выводы, которые можно сделать из списка:
- Судя по информации в титрах игры Rise of the Tomb Raider, над Foundation engine работает всего 10 программистов, это число можно использовать для понимания того, сколько людей обычно работает над ядром движка.
- В Death Stranding Kojima Productions использует Decima engine, разработанный Guerrilla Games; ранее она использовала Fox Engine в Metal Gear Solid V.
- Похоже, что последнюю игру/движок Media Molecule (Dreams) разрабатывали всего около 15 кодеров, потрясающе!
- Компании, выполняющие разработку под одну платформу, обычно имеют меньше ограничений и могут максимально использовать возможности этой платформы. К сожалению, большинство компаний не может позволить себе такую роскошь.
- Компания Asobo Studio, благодаря которой началось это маркетинговое исследование, кажется не особо маленькой… но, как и другие компании, она параллельно работает над несколькими играми.
- Очень здорово, что в Википедии есть подробности о некоторых движках со списком выпущенных игр, это должно стать обязательной практикой.
Небольшие студии (инди-студии)
Слева направо: The Witness, No Man’s Sky, X-Morph Defense
Здесь мы рассмотрим очень маленькие студии, тоже решившие создать для своих игр собственные движки. Стоит заметить, что для отдельных частей игры в таких движках применяются другие библиотеки/фреймворки. Чаще всего среди них встречаются SDL (кроссплатформенная библиотека графики и ввода), OGRE (движок рендеринга), MonoGame (кроссплатформенный игровой фреймворк, в котором также используются SDL, SharpDX, OpenTK, OpenAL-Soft…).
Многих людей может заинтересовать такой вопрос: какие же части движка на самом деле пишутся разработчиками? Бывает по-разному, но чаще сего кодеры занимаются менеджером экрана, менеджером сущностей и менеджером контента, а также обёртками/интерфейсами для внешних библиотек.
Второй вопрос: в каких частях движка обычно используются внешние библиотеки/промежуточное ПО? Это тоже зависит от ресурсов компании, но обычно это звуковая система, физика, рендеринг, работа с сетью, система UI, система рельефа, система растительности и некоторые другие элементы.
Слева направо: Factorio, Thimbleweed Park, Owlboy
В представленном ниже списке (и в следующем за ним тоже) я добавил дату издания (только от 2012 года и далее), а также ссылку на страницы всех игр в Steam… Не так много игр с собственными движками от небольших студий, и я считаю, что они заслуживают известности и поддержки.
Интересные факты об этом списке:
- Сооснователь Shiro Games Николя Каннасс является разработчиком языка программирования Haxe и движка Heaps, использованного Motion Twin для создания Dead Cells (2017 год).
- Hello Games — очень маленькая студия, учитывая масштаб No Man’s Sky и использование собственного движка. Очень впечатляет!
- Runic Games была распущена в ноябре 2017 года, её основатели создали Double Damage, а теперь работают в Echtra Games над Torchlight III.
- Генеральный директор Chucklefish Родриго Браз Монтейро отвечает за разработку движка Halley, который является open-source!
- В большинстве этих студий за создание движка отвечают всего 1-3 человека!
- Более шести лет Lo-fi Games была командой из одного человека (Криса Ханта)!
- На разработку некоторых игр в списке было потрачено пять с лишним лет!
- Игр не так много… всего по паре хитов в год…
Движки, написанные одним человеком
Слева направо: Stardew Valley, ScourgeBringer, Eagle Island
В конце мы приведём список героев.
Игры, разработанные одним-двумя людьми на собственных движках, причём эти движки в основном писались одним человеком!
Создание движка и игры с нуля до этапа издания — огромное достижение, немногие в мире к этому готовы. Почти все из них — 2D-игры, обычно с очень низкими бюджетами, которые разрабатывались в течение нескольких лет. Разработчиков можно поздравить!
Слева направо: Axiom Verge, Ghost 1.0, Remnants of Naezith
Примечания по поводу этого списка:
- Некоторые из этих команд были сформированы одним-двумя людьми, но на определённом этапе или выросли, или отдали часть разработки на аутсорс (графику, звук…). Обычно с ресурсами также помогает издатель (локализация, маркетинг…).
- Омар Корнут из Lizardcube является основным программистом движка Wonder Boy: The Dragon’s Trap, а также разработчиком Dear ImGui — бесплатной библиотеки GUI режима immediate-mode с открытыми исходниками, которая используется во многих самописных AAA-движках.
- Бен Фике из Lizardcube также является главным художником Streets of Rage 4, собственный движок для которой написал Сирилл Лагариг из Guard Crush Games.
- Марк Флури программировал игровой движок Thumper, отказавшись от парадигмы ООП в пользу процедурного программирования.
- Кристиан Уайтхед — создатель Star Engine, использованного в игре Sonic Mania, но в разработке игры также участвовали Headcannon (Саймон Томли) и PagodaWest Games (Джаред Касл и Том Фрай).
- Для разработки некоторых игр из этого списка потребовалось пять с лишним лет!
- Не так много игр… по паре хитов в год…
Вот ещё несколько примечательных игр, в которых используются собственные движки: Minecraft (2011 год), Braid (2009 год), Super Meat Boy (2010 год), Terraria (2011 год), Dustforce (2012 год), Sword and Sorcery EP (2012 год), FEZ (2013 год), Dust: An Elysian Tail (2013 год), Rogue Legacy (2013 год), Dyad (2012 год), SpaceChem (2013 год), Darkest Dungeon (2016 год), Scrap Mechanic (2016 год), Battle Brothers (2015 год), Renowned Explorers (2015 год), Yuppie Psycho (2019 год), Surviving Mars (2018 год), The End Is Nigh (2017 год), The Binding of Isaac: Afterbirth (2017 год), The Binding of Isaac: Rebirth (2014 год), BattleBlock Theater (2013 год), Full Metal Furies (2017 год), Binding of Isaac (2011 год), Rusted Warfare (2017 год).
Выводы
Начну с того, что я пристрастен, мне очень нравятся технологии создания видоеигр и я обожаю собственные движки и инструменты для создания игр. Я тоже сделал свой вклад в экосистему собственных движков: raylib и несколько инструментов для создания игр. Я предпочитаю лицензируемым движкам самописные, потому что считаю, что дополнительные усилия, вложенные в разработку продукта, обычно оборачиваются созданием особо потрясающей механики или удивительных особенностей.
Несмотря на это, нужно признать, что создание собственного движка — серьёзное предприятие, и к нему готовые немногие люди и компании. Я признаю, что Unity (и в меньшей мере Unreal) демократизировала разработку видеоигр, сегодня многие мелкие и средние компании могут использовать этот движок для быстрой разработки игр, иногда с очень низкими бюджетами… Тем не менее, многие крупные компании предпочитают полагаться на собственные технологии.
С точки зрения преподавателя разработки игр я считаю, что студенты должны как можно подробнее изучать внутреннее устройство игровых движков. Использование движков наподобие Unity/Unreal в учёбе позволяет студентам быстро создать красивый проект, но это ошибочный путь. В конце концов, кто-то же должен писать движок и все инструменты!
Что такое движки видеоигр и для чего они нужны?
Frostbite, Unity, Unreal … мы все слышали о самых популярных в мире игровых движках и видели их логотипы на фоне таких игр, как PUBG, Firewatch и Battlefield V. Вы, наверное, видели их потрясающие технические демонстрации, которые выделить достижения в области освещения, анимации, физики и эффектов частиц. Но что на самом деле делают игровые движки? Они являются наиболее важной частью внутриигровой разработки, потому что до тех пор, пока команда не получит или не создаст ее, почти все в конвейере приостанавливается.
В этой статье мы собираемся исследовать некоторые мифы об игровых движках (и то, насколько жалобы на «ленивых разработчиков», ну, ленивые), почему студии вкладывают так много ресурсов в создание собственных инструментов, и опишем наиболее популярные программные инструменты, используемые сегодня. «Игровой движок — это платформа, на которой будет работать ваша игра; чтобы загрузить мир, поместить вас в него и приспособить ваше пребывание», — объясняет техническая команда CD Projekt Red. «Существует много видов движков. В зависимости от требований вашей игры , каждый из них будет отличаться тем, сколько работы он фактически выполняет.Они визуализируют (отображают) мир, вычисляют физику, воспроизводят звуки и многое другое. Движки — это весь код, который не относится к вашей игре и потенциально может быть повторно использован в другом названии ».
Хотите получать самые свежие новости, обзоры и особенности Xbox?
Подпишитесь на официальный журнал Xbox в печатном или электронном виде, чтобы получить более подробные сведения о функциях, обзорах и предварительных обзорах о Xbox One, Xbox One X и будущем консоли Microsoft.
Имея движок, который уже имеет способы обработки таких вещей, как рендеринг, физика, освещение и искусственный интеллект прямо из коробки, он позволяет быстро создавать модели персонажей и заставлять их вести себя определенным образом.Такие игровые движки позволяют командам разработчиков сосредоточиться на реальном создании своих игр, а не изобретать велосипед каждый раз, когда они этого хотят. Это также одна из основных причин, по которой новые разработчики предпочтут использовать легко доступные бесплатно движки, такие как Unity или Unreal Engine.
Они также имеют модульную структуру, что позволяет улучшать или настраивать функциональные возможности механизма с помощью дополнительного программного обеспечения, называемого «промежуточным программным обеспечением».Этот тип программного обеспечения предназначен для решения конкретных задач, таких как звуковой движок Audiokinetic, Wwise или движок Nvidia PhysX, который обрабатывает физику, — с которыми исходный движок мог бы работать не так хорошо. Есть даже некоторые софтверные компании, которые предоставляют весь исходный код движка, чтобы более продвинутые разработчики могли напрямую манипулировать им в соответствии со своими потребностями.
Почему разработчики создают собственные игровые движки?
Но иногда, несмотря на всю доступность и гибкость этих движков, разработчикам приходится тратить дополнительное время и деньги на разработку собственных, как это сделала CD Projekt Red для своего REDengine.«Каждый игровой движок адаптирован под определенный опыт», — поясняет команда CD Projekt Red Tech. «Наши игры ориентированы на творческое повествование в живом и дышащем мире, поэтому нам потребовались движок и инструменты, подходящие для этих конкретных ситуаций. После тщательного рассмотрения мы пришли к выводу, что стороннее программное обеспечение не поможет. Возможно, потребуется больше времени, чтобы настроить коммерческий движок под наши нужды, чем просто создать собственный с нуля. Вот что мы сделали ». Наличие движка, специально разработанного для их игр, позволяет CDPR иметь беспрецедентный уровень контроля над каждым аспектом разработки, чтобы они могли достичь любой поставленной цели.Постоянное сотрудничество их дизайнеров с программистами означало, что они могли адаптировать движок в соответствии со своими потребностями.
Однако, как вы понимаете, это задача не для слабонервных. «Создание собственного двигателя требует много работы и преданной команды профессионалов», — говорит CDPR. «Современный движок с открытым миром — это большой и сложный зверь. Для его укрощения требуются большие знания и опыт. Более того, пока ядро вашего движка не будет готово, игровые системы не могут быть построены поверх.Так что отполировать один маленький элемент двигателя в течение длительного периода времени — это большая нагрузка и мало роскоши. Кроме того, когда мы сталкиваемся с препятствием, у нас нет другого выхода, кроме как полагаться на себя и исправить его. Никакая внешняя поддержка невозможна, тогда как для имеющихся в продаже двигателей она иногда предлагается ».
«Я думаю, что самым большим заблуждением об игровых движках является то, что они представляют собой своего рода волшебную программу … которая может превратить любую игру в реальность всего несколькими щелчками мыши».
Зак Пэрриш, технический художник
Даже те, кто имеет хоть какое-то представление о том, что такое игровой движок, склонны упрощать свою роль, полагая, что они несут ответственность только за один аспект игры, например за графику
или производительность. Это приводит ко многим заблуждениям. «Я думаю, что самым большим заблуждением об игровых движках является то, что они представляют собой своего рода волшебную часть программного обеспечения, работающего на крови единорогов, которое может превратить любую игру в реальность всего несколькими щелчками мыши», — объясняет старший технический художник по связям с разработчиками Зак. Пэрриш.«Дело в том, что в Unreal Engine нет кнопки« Сделать игру », и вам все равно придется много работать, чтобы сделать игру удобной для игры. Создание игр — профессия для увлеченных ». Но самым большим заблуждением из всех, кажется, является вера в то, что проблемы в игре, такие как производительность, частота кадров и сбои, являются ошибкой игрового движка, хотя на самом деле это почти никогда не бывает и, скорее, является проблемой программирования.
Как движок Unreal сыграл решающую роль в успехе Fortnite
Возможно, наиболее известным из всех игровых движков является движок Unreal Engine от Epic Game, который использовался для разработки чрезвычайно популярной Fortnite и, очевидно, сыграл решающую роль в его успехе.« Fortnite — это труд любви в Epic, — говорит Пэрриш. «Мы долго работали над этим, чтобы превратить его в игру, которой она является сегодня. Каждая часть этого процесса — каждый рефакторинг, каждый капитальный ремонт основной системы, каждая полная замена серии игровых механик — была возможна только благодаря гибкости, предоставляемой Unreal Engine.
«Результатом является игра, которая служит прочной платформой, на которой мы можем постоянно расширяться и строить», — продолжает Пэрриш. «Каждый ключевой аспект Fortnite : надежный и развивающийся опыт Save the World, новые игровые режимы, такие как королевская битва, которых не было при запуске раннего доступа, выпуск игры на всех мыслимых платформах с высокопроизводительных ПК для консолей вплоть до мобильных устройств, даже возможность поддерживать новый контент для игроков практически в постоянном темпе, каждая часть этого процесса разработки была оптимизирована Unreal Engine.”
Могут ли игровые движки позволить кому-либо создавать игру?
Сейчас доступно множество бесплатных игровых движков, некоторые из которых вы увидите на следующей странице нашего краткого обзора некоторых из самых популярных программ для разработчиков, так что если вы заинтересованы в том, чтобы рискнуть окунуться в мир разработка игр и создание собственного Fortnite , вот вам несколько напутственных советов: «Не ждите, не оправдывайтесь; просто сделай игру, — говорит Пэрриш. «Честно говоря, мой первый совет начинающим разработчикам прямо сейчас — полностью осознать, что сейчас лучшее время для изучения разработки игр.Если вы новичок в мире разработчиков игр, вы, вероятно, даже не подозреваете, что находитесь в настоящем золотом веке. У вас под рукой так много технологий и возможностей: бесплатные игровые движки, такие как Unreal, бесплатные 3D-приложения, бесплатные 2D-приложения, тонны бесплатного обучения тому, как что-то делать … Я вспоминаю, когда впервые изучал эти вещи, и я меня настил.
«На самом деле ничто не мешает начинающему разработчику прямо сейчас просто создать игру и отправить ее, — продолжает Пэрриш. «Конечно, если вы один, вам нужно немного ограничить свои возможности, но если вы хотите получить опыт доставки — именно это волнует студии — вы можете создать игру и запустить ее практически на любой платформе в наши дни, и все без много денег из собственного кармана.Epic Games и Unreal Engine — от инструментов до исходного кода и тонны обучающего контента — всегда за вами.
На каких игровых движках работали крупнейшие игры 2018 года? У нас есть все ответы на следующей странице.
.
Что такое игровой движок? (с изображением)
Под игровым движком понимаются среды разработки программного обеспечения, специально разработанные для создания видеоигр. Он содержит основную библиотеку функций, используемых в игре, однако существует независимо от содержимого конкретной игры. Ресурсы, которые делают игру уникальной, такие как тема и персонажи, формируют контент. Движок игры используется для управления взаимодействием ресурсов для оживления игры. Это достигается с помощью набора повторно используемых компонентов, которые могут служить движком для игр различных жанров и стилей.
Игровые движки делают видеоигры играбельными.
Роль игрового движка — делать всю тяжелую работу за кулисами, которая делает любую видеоигру пригодной для игры. Центральные компоненты включают движок графического рендеринга, физический движок и обнаружение столкновений.Механизм рендеринга генерирует двух- или трехмерное изображение из файла сцены, который определяет такие элементы, как точка обзора, освещение и текстура. Физические движки аппроксимируют движение в реальном мире способом, знакомым игроку, но также имеющим смысл в контексте игры. Обнаружение столкновений включает в себя то, как игра обнаруживает, отображает и реагирует на пересечение двух или более визуализированных объектов.
Другие ресурсы, такие как сетевые возможности, искусственный интеллект и создание звука, также часто являются компонентами игрового движка.Обычно компоненты доступны разработчику через визуальную интегрированную среду разработки (IDE), которая упрощает создание игр. Файлы сцен можно создавать и тестировать с помощью механизма рендеринга, например, не выходя из среды IDE. Такой подход также способствует повторному использованию компонентов, что делает процесс создания более простым и эффективным.
Большинство ранних игровых движков были собственными разработками, разработанными для использования при создании одиночных игр.Была отмечена гибкость, обеспечиваемая выбором предпочитаемых компонентов и построением специализированного интерфейса. Такой подход давал разработчикам возможность полностью контролировать внешний вид игр, но значительно удлинял цикл разработки. Ограничения по стоимости обычно запрещают использование проприетарного игрового движка в большинстве проектов.
Доступны полные, готовые к использованию комплекты для разработки игр, которые обеспечивают все функции патентованных разработок.Многие из них являются коммерческими продуктами, но игровой движок с открытым исходным кодом сопоставимого качества найти несложно. Они открыты для настройки кода в соответствии с любимыми стилями программирования или инструментами. Создатель игр может не обладать гибкостью собственного движка, но время и деньги, сэкономленные на разработке, обычно намного перевешивают потерю стилистической свободы.
.
Как работают игровые движки?
Компании постоянно хвастаются своим новейшим игровым движком. Напрашивается вопрос: что именно — это игровой движок ?
Игровой движок закладывает программную основу для создания и создания видеоигр. Они предоставляют функции от анимации до искусственного интеллекта. Игровые движки отвечают за рендеринг графики, обнаружение столкновений, управление памятью и многие другие параметры.
Игровые движки предоставляют разработчикам инструменты для создания множества игровых приложений.Дизайнеры часто повторно используют эти движки для создания других игр, что делает их ценным вложением.
Игровой движок состоит из пяти компонентов: основная игровая программа, которая содержит игровую логику; механизм рендеринга, который можно использовать для создания трехмерной анимированной графики; звуковой движок, состоящий из алгоритмов, связанных со звуками; физический движок для реализации «физических» законов в системе; и «Искусственный интеллект» — модуль, предназначенный для использования разработчиками программного обеспечения со специальным статусом.
Сегодняшние инструменты и программы упростили начало разработки игр.
При большом количестве игровых движков выбрать подходящий для вашего проекта может быть непросто.
Ниже перечислены игровые движки, доступные в настоящее время всем, кто интересуется разработкой игр.
Unity
Пользователи считают Unity одним из самых простых игровых движков благодаря простому интерфейсу. Одной из основных функций, которые он включает, является то, что он позволяет разрабатывать игры для нескольких платформ.Используя движок Unity, можно создавать игры для Android, iOS и других операционных систем телефона, включая ОС ПК.
Помимо кроссплатформенных возможностей, платформа имеет активное сообщество разработчиков плагинов, которые предлагают множество бесплатного и недорогого контента для использования в игровом движке. Некоторые примеры игр, созданных на движке, включают Temple Run, Rust и Deus Ex: The Fall. Примечательно, что их личный пакет полностью бесплатный и включает множество инструментов для начинающих и любителей.Вы можете ознакомиться с различными планами Unity здесь.
Unreal Game Engine
Unreal Engine — один из лучших игровых движков для рендеринга детализированной графики. Некоторые известные игры, созданные с помощью Unreal Engine, включают Borderlands 2, Dishonored, Mass Effect 3 и Street Fighter V. Сторонники Unreal Game Engine говорят, что он может создавать одни из лучших ландшафтов в играх.
Модель ценообразования, лежащая в основе этого механизма, включает бесплатную версию с полным доступом. Однако Unreal Engine берет 5% роялти за любые игры, созданные на его основе.
Вы можете подписаться на Unreal Engine здесь.
GameMaker: Studio
Хотя некоторые утверждают, что GameMaker не является настоящим игровым движком, он все еще широко развернут и используется несколькими разработчиками игр. Вместо обычного программирования пользователи могут буквально «перетаскивать» элементы, чтобы создавать игры намного быстрее и с большой легкостью.
СМОТРИ ТАКЖЕ: ВЫ НЕ МОЖЕТЕ БОЛЬШЕ УКАЗАТЬ РАЗНИЦУ МЕЖДУ РЕАЛЬНОЙ ЖИЗНЬЮ И ВИДЕОИГРАМИ
Одна из примечательных игр, созданных с помощью GameMaker, — это Hotline Miami.Однако из-за природы «перетаскивания» разработчики имеют ограничения на создание расширений и дополнений с альтернативным кодом.
Как и другие движки, Studio включает бесплатную версию с ограниченным доступом. Вы можете зарегистрироваться в студии GameMaker здесь.
Написано Maverick Baker
.