На чем создают игры
Как программировать игры: языки, движки и все, что нужно знать начинающему разработчику
Сперва это кажется дико сложным, но чем глубже погружаешься, тем лучше получается. Рассказываем, как начать делать игры,
Главное — в самом начале узнать, что нас ждёт, чтобы потом не свернуть на полпути, пройти все этапы и выпустить релиз. Подробно всем тонкостям, навыкам и хитростям мы обучаем на курсе «Профессия разработчик игр на Unity». Здесь же рассмотрим первые шаги, которые ждут разработчика.
С чего начать разработку игры
Рассчитываем, что вы уже придумали, какой будет игра, разработали концепт и уже ищете способы разработки. Настало время реализовать свои задумки. Есть несколько вариантов, как это сделать.
Все три способа подразумевают какое-никакое программирование, так что знать хотя бы основы вам точно придётся.
Пишет о программировании, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.
Языки программирования
Подойдут любые, от Python и C до Pascal и Java. От выбора зависит то, сколько времени уйдёт на игру и для какой платформы будет релиз. Также язык влияет на производительность.
На C++, например, пишут для любой платформы, а вот PHP или JavaScript лучше подходят для браузерных игр. Если же вы используете один из движков, то лучше вдобавок изучать C# — на нём прописывают скрипты. Главное — не недооценивать языки. Движок Unity дружит и с JavaScript, а MineCraft был написан на Java.
Движки для создания игр
Среди современных выделим:
Crysis, Far Cry, Sniper II: Ghost Warrior.
Gears of War 4, Dead Pool, Mortal Kombat X, Tekken 7
Outlast, Assassin’s Creed: Identity, Temple Run, Deus Ex: The Fall.
Большой популярностью пользуется Unity, он рассчитан как на 2D-, так и на 3D-игры. Он подходит под разные платформы и языки. На нём создается большинство мобильных и инди-игр. Он бесплатный, но если вы зарабатываете на своих играх больше 100 тысяч долларов в год, то придётся делиться ими с разработчиками Unity.
Как строится игровой код
Допустим, вы выбрали язык и движок, составили план. Что дальше? Продумайте всё от и до. В зависимости от выбранного вами пути (чистый язык или использование движка) будет отличаться и то, что вас ждёт на разных этапах разработки.
Если делаете всё своими силами, то на ваши плечи ляжет работа над физикой, механикой, графикой, искусственным интеллектом и балансом. Если выбрали движок — можно вздохнуть спокойно.
Физика
Физика — это то, как мир игры реагирует на действия игрока или объектов внутри мира. Вот какие могут быть физические действия:
Если пишете сами, то для обычного прыжка придется:
Не говоря уже о том, что нужно работать над анимацией всего этого.
В движках уже прописана физика, и нужно лишь подогнать её под свои нужды. Для примера:
И для этого не придётся писать код вообще — всё уже предусмотрено.
Механика
Игровая механика — это то, какими способами игрок взаимодействует с миром. Совокупность игровых механик составляет игровой процесс. Например, вы уже реализовали возможность ходьбы и прыжков. Эта игра, скорее, платформер.
А если добавите механику получения опыта, повышения уровней, прокачки навыков, — игра станет походить на RPG. Механика — такая же важная составляющая игры, как и сюжет или графика.
Ещё один пример: вы написали сценарий к игре, в которой нужно сбежать из тюрьмы. Даже если игра будет самой линейной в мире, игровая механика может всё изменить:
Будучи программистом, придётся уделять много времени механике.
Графика
Раньше графика создавалась с помощью программного кода, потом придумали текстуры и спрайты, а для 3D-игр используются модели. Подготовив все текстуры и модели, нужно добавить их в игру.
В движке достаточно просто загрузить нужные файлы и прикрепить их к нужным моделям. Иначе — прописывать всё вручную, в том числе и анимацию.
Для анимации 2D-объектов создаётся текстура по типу той, что на изображении выше. Она разбивается на равные части, которые сменяют друг друга. То есть игрок сначала видит первый кадр, который потом сменяется на второй, а затем на третий — это создает иллюзию движения.
Если брать 3D-модель, то используется скелетная анимация — модель как бы нанизывается на специальный каркас (скелет) с подвижными частями. Движение этих частей прописывается в коде.
На скриншоте видно, как персонаж сгибает руку в местах с точками (вершинами). Таких точек может быть очень много, если требуется сложная анимация — жесты, мимика и так далее.
Создаётся анимация так: прописываются точки координат или захватываются движения реального актера.
Первый способ сложный, но дешёвый, потому что от программиста требуется только прописать движения — сдвинуть точку A1 на координаты (50,240).
Второй проще, потому что достаточно одеть актеров в специальные костюмы с маячками, отснять это и перенести в игру. Но тут, конечно, придётся оплатить костюмы, павильон, работу операторов, постановщиков и актёров.
Баланс
Чтобы играть было интересно, нужен баланс. Это значит, что у каждого противника должны быть сильные и слабые стороны. Так геймплей не превратится в убийство одуванчиков или десятичасовые перестрелки с боссом.
Искусственный интеллект
Если геймплей предусматривает взаимодействие с NPC, то им нужно прописать модели поведения: реакцию на действия игрока, агрессивность, возможность вести диалоги или торговать.
Работа с ИИ — одна из самых сложных, потому что стоит учитывать множество ситуаций, для которых задумана реакция. Например, когда вы пытаетесь пройти в дверь, ваш компаньон обязательно должен преградить вам путь, чтобы жизнь малиной не казалась.
На какие платформы ориентироваться
Разобравшись с тем, как всё будет устроено в игре, можно приступать к разработке. Но чтобы проект был коммерчески успешен, выбирайте популярные платформы. Всего можно выделить четыре:
У каждой из этих платформ своя аудитория с вполне конкретными предпочтениями. На мобильных устройствах предпочитают головоломки (2048, 94%, Cut the Rope), аркады (Subway Surf, Temple Run, Angry Birds) и казуалы (Talking Cat Tom, Kitty Kate Baby Care, Hair Stylist Fashion Salon).
На компьютерах играют в MMORPG (Lineage II, World of Warcraft, Skyrim) или шутеры (Battlefield, Call of Duty, Counter-Strike).
Приставки подходят для гонок (Need for Speed, Blur, Burnout Paradise), приключенческих игр (Assassin’s Creed, Portal, The Walking Dead) и так далее.
В браузерах собирают пазлы и строят фермы.
Конечно, можно сделать и головоломку для PS4, и гонку для браузера — никто никого не ограничивает.
Заключение
Будьте готовы к тому, что ваша первая игра не станет шедевром. Но не расстраивайтесь, потому что такие проекты отлично подходят для обучения.
Подтяните свои навыки в программировании, чтобы научиться создавать игры, изучите современный язык, который часто используется разработчиками, и выпустите свой первый проект. А наш курс поможет вам в этом.
На чём создают игры? Обзор популярных игровых движков
Авторизуйтесь
На чём создают игры? Обзор популярных игровых движков
индивидуальный разработчик видеоигр
Игровые движки — особый класс программного обеспечения. Каждая компания использует свой собственный, охраняя все секреты с исключительной ревностью. Чаще всего все знаковые «фишки» какой-то успешной игры обусловлены именно возможностями движка, а не квалификацией программистов. А потому, предоставить лицензию кому-то другому означает получить себе сильного конкурента.
Взять к примеру, автомобильные гонки: как там будут реализованы погодные условия? Просто туман — довольно легко, но надо, чтобы на лобовое стекло падали капли дождя или мокрого снега, причем взаимодействовали с потоком набегающего воздуха в зависимости от скорости. Если вас обогнали на мокрой трассе — значит, должно окатить грязью. Добавьте еще реалистичное отражение в зеркалах, и подумайте, сколько здесь работы для программиста. Если все это будет доступно на уровне движка, значит, с работой вполне справится специалист средней руки во вполне обозримые сроки. В результате, уникальная в своем роде игра рискует быть расклонированной безо всякого стеснения.
Бывают программисты, способные написать игру без движка, или даже сперва создать собственный движок, а затем игру. Но зачем, если можно сразу игру? А затем, что в каждой компании есть HR-специалист, который не позволит руководству совершить роковую ошибку, и сделать проект зависимым от одного человека. В зарплате таких программистов не обидят и создадут самые комфортные условия, но сделать игру без движка не позволят ни под каким видом.
По сути, каждый проприетарный игровой движок — это уникальный закрытый фреймворк, построенный по собственным стандартам, использующий собственную терминологию. За счет этого, программист, работающий в знаменитой студии, прикован к движку, как к веслу на галере. Весь его опыт и квалификация востребованы только здесь, и нигде более.
Возникает вопрос: зачем изучать игровые движки? А затем, что в последние годы ситуация в гейм-индустрии радикально меняется. Меняются подходы к лицензированию, меняется уровень доступного контента, меняется рынок труда в ИТ.
На самом деле, доступные и бесплатные движки были всегда. Однако, если взглянуть на готовые проекты, становится ясно, почему бесплатно: пользуясь предложенным инструментарием, вы никогда и никому не составите конкуренции. Говоря коротко, при всем богатстве выбора, достойными внимания можно считать от силы четыре движка: CryEngine, Godot, Unity, Unreal Engine.
Каждый имеет свою специфику, но есть и общие свойства, выделяющие их в особую категорию. Будучи доступными индивидуальному разработчику, все они позволяют создавать проекты ААА класса. До недавнего времени такое сочетание считалось невозможным. Как следствие, на рынке труда можно встретить вакансию «Разработчик Godot/UE/Unity» столь же часто, как и «Программист С++».
CryEngine
Самый экзотический движок из нашего списка. Создан немецкой частной компанией Crytek в 2002 году. В 2006 году движок купила компания Ubisoft. Игры Crysis и Far Cry знают многие, но рабочий инструмент для их создания большой популярности так и не набрал. Условия использования — 5% роялти при доходе более 5 тысяч евро в год вполне демократичные, но главная проблема другая. Движок хорош для тех, кто делает шутер под десктоп или консоль, а о мобильных устройствах лучше не думать.
В свое время Crysis казался революционным благодаря уровню интерактивности с внешней средой. Все предметы были разрушаемыми, их можно было брать и перемещать. Зато на максималках эта игра не работала ни у кого. Сегодня реалистичность взаимодействия с предметами стала привычной, но уровень оптимизации движка до сих пор оставляет желать лучшего. В былые времена реальное попиксельное освещение, объемные эффекты, анимированные текстуры и прозрачные материалы внушали пользователям благоговейное уважение и потому недостаток производительности прощали.
Из достоинств следует также отметить высококачественный звук 5.1 и реалистичную проработку перспективы. К примеру, туман доступен трех типов: объемный, слоистый и дальний. Не забыли разработчики также и об искусственном интеллекте, который настраивается скриптами помимо кода C++.
В версии 5.6.7 присутствуют шаблоны SideCroller, Third Person Shooter, Top Down Shooter, но почему-то никто под мобильные устройства ничего не делает. Также следует помнить, что все продукты Crytek были однопользовательскими, следовательно мультиплейер тоже под большим вопросом. Южнокорейский разработчик NCsoft использовал CryEngine для MMORPG The Tower of Eternity, но все сетевое взаимодействие переписывали самостоятельно с нуля.
Godot
Здесь самое приятное — это цена. Движок полностью бесплатный безо всякого мелкого шрифта. Трудно поверить, но это один единственный файл размером менее 70 мегабайт, не требующий инсталляции. При этом имеет полный функционал, к которому привык современный разработчик.
В смысле кроссплатформенности самый универсальный: Godot-проекты можно портировать как на ПК или консоли, так и на мобильные или WEB-платформы. «Из коробки» доступна основная физика, как для персонажей так и для автотранспортных средств. Есть встроенные алгоритмы поиска пути с обходом препятствий. В наличии привычный для многих визуальный редактор шейдеров, в полном объеме представлены инструменты скелетной анимации и визуальные эффекты, основанные на частицах. Редактор анимаций в движке устроен таким образом, что можно анимировать практически любой параметр, присутствующий в проекте. Для движка доступно огромное количество шаблонов и готовых примеров, и раскапывать эту сокровищницу не хватит никакого терпения.
Чтобы не перехвалить, следует отметить отсутствие встроенного редактора ландшафта, но зато есть расширенный импорт из Блендера, откуда можно забрать всю сцену со всеми потрохами. В качестве языка программирования предложен GDScript, по синтаксису похожий на Python. Идеологически Godot-проект представляет собой древовидную структуру, каждый узел которой может служить самостоятельной сценой. Объекты могут общаются между собой с помощью так называемых сигналов, которые могут содержать в себе переменные.
Начиная с версии 3.0 появилась возможность использовать Visual Scripting, до боли напоминающий Блюпринты в Unreal Engine.
Unity
Сказать о нем «очень известный» — ничего не сказать. Без преувеличения это один из столпов, на которых держится игровая индустрия. Angry Birds 2, Pokemon Go, Super Mario Run, Escape From Tarkov — ничтожно малая часть проектов, созданных на Unity.
Лицензия Personal бесплатна, при условии, что ваш доход не превышает 100 000 долларов в год. Если вы вдруг разбогатеете сверх меры, придется покупать помесячную или годовую подписку. Причем богатеть есть с чего, поскольку система идеальна для разработки мобильных приложений. В этом сегменте и пиратства поменьше, и издателей побольше, да и покупателей хватает.
От прочих систем Unity отличает сравнительно низкий порог вхождения: визуальный редактор прост, удобен интуитивно понятен. В отличие от Godot имеется встроенный редактор ландшафта.
Есть базовая физика, в том числе симуляция ткани. Можно сделать так, чтобы плащ на плечах героя не торчал, как лист фанеры, а красиво развевался на ветру. Но нельзя сказать, будто вся красота доступна прямо из коробки: любая фенечка начинает работать только после того, как ее описать в соответствующем скрипте и немного посидеть над отладкой.
В качестве языка программирования используется C#, любители визуального скриптинга могут приобрести за отдельные деньги Playmaker. Вообще говоря, Unity — система модульная и позволяет легко превратить свои наработки в отдельный коммерческий продукт. Оболочка включает в себя собственный и довольно бойкий Marketplace, где можно как хорошо потратиться, так и хорошо заработать. В любом случае, разработчику на Unity придется всерьез вникать в программирование, благо в интернете можно найти достаточно учебных материалов на русском зыке.
Unreal Engine
Движок был рожден в 1998 году в недрах компании Epic Games и буквально до 2015 года оставался малоизвестным даже в узких кругах. Судя по всему, все эти годы система эволюционировала намного активнее своих конкурентов. Из специфического движка для шутера от первого лица UE превратился в удивительно универсальный кроссплатформенный инструмент, способный удовлетворить самые изысканные запросы. Очевидно, чудо случилось в тот момент, когда были приняты новые условия распространения: бесплатно для некоммерческого использования или роялти 5% от дохода.
Что движок этот приличный, догадаться легко, все помнят игры серии Unreal, Deus Ex, Rune, X-Com, Duke Nukem D-Day, BioShock, Mass Effect, S.T.A.L.K.E.R. 2, и наконец, Fortnite. Другое дело, никто не мог представить, насколько удобным может быть рабочее место разработчика сложных проектов. Едва движок оказался общедоступным, монополизму Unity пришел конец.
С первого взгляда Unreal Engine подкупает широким набором стандартных шаблонов. Кроме трехмерных шутеров от первого или третьего лица предложены и полеты в космосе, и двухмерные пазлы, целых два варианта платформера и два варианта автомобильных гонок с упрощенной и продвинутой подвеской.
Погружаясь в работу вы обнаруживаете, что многие функции, которые в Unity надо непременно описывать в скриптах, встроены в движок заранее, надо лишь найти нужную галочку в свойствах объекта.
И наконец, заглянув в Marketplace находите много бесплатного но качественного контента.
Игровая логика программируется на C++, для опытного программиста — идеальный вариант. Если не делать стратегию реального времени типа StarCraft, и таргетироваться под десктоп, можно вполне обойтись пресловутыми блюпринтами, по готовому проекту ни один сноб об этом не догадается.
Единственная беда —проекты на Unreal Engine получаются достаточно объемными, и для мобильных устройств приходится очень серьезно заниматься оптимизацией. Однако, в свете современных трендов такие недостатки постепенно отходят на второй план.
На каких языках программирования пишут игры
Новички часто спрашивают, на каком языке программирования можно создать игру. Поставим точку в этом вопросе.
Ориентироваться лучше на то, что хотите реализовать и на какой платформе:
Если создаёте игру впервые, воспользуйтесь каким-нибудь движком:
Пишет о программировании, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.
В чём отличие языков для создания игр
У каждого языка свои преимущества и назначение, поэтому не стоит думать, что какой-то лучше остальных — все они для решения разных задач. Многие, например, пишут большую часть проекта на одном, а высоконагруженную — на другом.
Чтобы выбрать, какой язык подойдёт вам, давайте разберемся в нескольких моментах. А для совсем новичков мы предлагаем курс «Профессия Разработчик игр на Unreal Engine 4».
Браузерные игры
Они хоть и не такие крутые, как игры для консолей и компьютеров, но тоже затягивают. Причина в умелой работе гейм-дизайнеров — они продумывают механики так, чтобы вы тратили на игру больше времени и денег.
Если вы играли хотя бы в одну крупную браузерную игру, то знаете: игровой процесс дозируют, чтобы игроку не наскучило. А чтобы продолжить игру, приходите на следующий день либо платите.
Тут уже можно подключить JavaScript — он позволяет хранить в переменных данные персонажа, а графику обрабатывать с помощью Canvas. Если прикрутить PHP, получится создать базу данных, построить защиту и реализовать многопользовательский режим. А это уже полноценная браузерная игра.
Многие из таких игр создаются на Flash, который работает на языке ActionScript. Мы не рекомендуем изучать эту технологию, потому что скоро её поддержка будет прекращена, а на HTML5 появится ещё больше возможностей, чтобы полностью её заменить.
Примеры браузерных приложений
Игры для мобильных устройств
Мобильные игры превосходят браузерные, но не сильно. Маленький экран и небольшая мощность не позволяют создавать крутую графику. И ещё нельзя реализовать такое же удобное управление, как на компьютерах и приставках.
Это компенсируется простотой разработки. Можно скачать популярный движок и за несколько недель выпустить готовое приложение — это программы, которые предоставляют готовые решения для работы с графикой и физикой. Разработчику остается только добавить спрайты или модели, а потом прописать несколько скриптов на одном из предложенных языков. Можно даже не заморачиваться из-за всех ресурсов — они скачиваются или покупаются в интернете.
Unity, один из самых популярных движков, даёт возможность писать на C# и JavaScript. Подключаете скачанные файлы, пишете несколько команд — и простенькая игра готова.
Примеры мобильных игр
Компьютерные и консольные игры
Тут настоящий размах. Реалистичная графика, VR, большой игровой мир, поддержка огромного количества игроков онлайн и так далее. Можно создавать проекты вроде Limbo или Super Meat Boy в одиночку, а можно в команде разрабатывать новый Fortnite.
Но и сложность возрастает. Чем масштабнее вы мыслите, тем больше работы предстоит проделать. Вот неполный список аспектов разработки, над которыми следует потрудиться:
В таких играх ведется работа над освещением, тенями, частицами, разрушаемостью — всем, что важно для конкретного проекта. Один человек не потянет всё это за год или даже два, поэтому такое под силу только крупным студиям. Конечно, многое решается в движках, но работа всё равно колоссальная.
Без движков тоже можно обойтись: World of WarCraft был написан на C++, а MineCraft создан одним человеком на Java, после чего игру купила компания Microsoft за 2,5 миллиарда долларов.
Даже Super Mario написали на ассемблере, когда о движках никто и не задумывался.
7 игровых движков, на которых можно создать свою первую игру
Сегодня игровая разработка доступна как никогда: в сети можно найти сотни руководств и десятки движков под любые запросы.
Из-за этого новичкам сложно найти подходящий вариант — многие просто устанавливают самые популярные программы.
За последние пять лет я создавал небольшие прототипы — то есть наброски, реализующие разные механики, — на разных игровых движках. А еще участвовал в джемах — конкурсах по созданию прототипов за короткий промежуток времени — и помогал в разработке пока не вышедшей игры на Unity.
В этом тексте я собрал самые простые для освоения движки для создания первых проектов. В список попали утилиты с большим количеством обучающего материала и максимально низким порогом входа.
Важное уточнение: в некоторых разделах указаны сложности в работе с 3D — под этим подразумевается отсутствие официальной поддержки трехмерных игр. Впрочем, это не мешает некоторым разработчикам добиваться эффекта псевдотрехмерности в любом движке. Прямо как в первой Doom.
Почему лучше выбрать готовый движок
Игровые движки, доступные на рынке, — это чаще всего готовые наборы утилит, которые помогают сразу приступить к разработке игры. Зачастую они бесплатны, а брать с вас деньги начнут лишь тогда, когда вы захотите использовать движок в коммерческих целях — то есть решите выпустить игру в магазине.
Большие игровые движки постоянно дорабатываются разработчиками — выходят новые версии и утилиты. Вокруг них складываются большие сообщества авторов игр, которые делятся советами и руководствами между собой. Нередко при движках существуют еще и магазины ассетов — предметов, которые используются в играх, будь то 3D-модель или текстура.
Разработчики дают лицензировать свой движок по-разному : кто-то одномоментно берет фиксированную сумму за коммерческое использование, а кто-то предпочитает забирать процент с доходов игр, выпущенных на движке. Последний вариант наиболее выгоден для независимых разработчиков, которые хотят продавать игры, но не располагают большими деньгами для лицензирования.
Альтернатива готовым движкам — это написать свой. В случае с собственным движком никому не надо платить за его использование, да и знать вы его будете лучше всех. Но новичку такой вариант не подойдет: написание движка может занять несколько лет и требует знаний в математике, программировании и графических технологиях.
Если вы хорошо знакомы, например, с языком C++ и графическими библиотеками вроде OpenGL, можно попробовать написать собственный движок, но разработка игры затянется, ведь утилиту придется постоянно дорабатывать. На старте все потребности учесть невозможно.
Даже у больших издателей проприетарные движки, то есть разработанные внутри компании, постоянно обновляют из-за недостатка функций. Например, Electronic Arts, известная по Battlefield и Mass Effect, постоянно пытается приспособить Frostbite под разные жанры.
Для разработки первой игры лучше выбрать один из готовых движков — ничего стыдного в этом нет. Тем более что крупные разработчики тоже ими не брезгуют: весомая доля известных проектов выпущена на Unreal Engine или Unity.
Как победить выгорание
Unity
Unity появился аж в 2005 году, и это до сих пор один из любимых движков в инди-среде наравне с более продвинутым Unreal Engine 4. Главное преимущество движка — большое сообщество и множество официальных и неофициальных «обучалок». Создатели программы даже запустили портал Unity Learn с курсами о разных аспектах работы с движком.
Unity практически не ограничивает пользователя: в движке можно работать с 2D и 3D, VR и любыми жанрами от «три в ряд» до шутеров от первого лица.
Сегодня порог вхождения в Unity низок: первый прототип можно собрать очень быстро благодаря встроенному магазину ассетов и инструментам визуального программирования — утилитам, которые позволяют настраивать логику игровых механик без необходимости писать код.
Новичкам особенно удобна система Shader Graph для создания сложных шейдеров — специальных эффектов отображения объектов.
Unity подходит для мобильной разработки и инди. В нем можно быстро создавать прототипы, что особенно кстати для разработки гиперказуальных проектов — игр для смартфонов с очень простыми механиками и высокой степенью вовлечения, например Helix Jump или Flappy Bird.
Unity часто винят в плохой оптимизации и визуальной бедности: тот же Unreal Engine 4 часто используют 3D-художники для того, чтобы выставить свет и красиво настроить сцену. В Unity же нужно время, чтобы достичь такой картинки.
А еще обновления Unity нередко «ломают» проекты или отдельные его части вроде текстур.
Unreal Engine
Цена: бесплатный, при доходе от миллиона долларов за все время существования игры Epic Games забирает 5%
Сильные черты: графика, встроенное визуальное программирование, открытый исходный код
Недостатки: высокие требования к навыкам разработчика
Игры на движке: Fortnite, Star Wars: Jedi Fallen Order, Mortal Kombat 11
Unreal Engine и Unity — «большая двойка» игровых движков. Но в UE по умолчанию гораздо более продвинутая картинка, чем у конкурентов, и заточен он под 3D. А система визуального программирования Blueprint упрощает работу для новичков, которые не хотят писать код: благодаря ей в движке очень удобно собирать небольшие прототипы. К тому же в официальном магазине каждый месяц проводятся бесплатные раздачи ассетов для коммерческого использования.
Новая версия движка, Unreal Engine 5, — потенциальный прорыв для всей индустрии. Благодаря системе Nanite художникам больше не нужно беспокоиться об оптимизации ассетов под разные системы: движок сделает это самостоятельно. А технология Lumen автоматически обрабатывает источники света — раньше на подобные системы приходилось тратить немало ресурсов.
В последнее время Epic Games делает все, чтобы у пользователей Unreal Engine был доступ к самым продвинутым технологиям — взять хотя бы конструктор людей MetaHuman, который позволяет за пару секунд создать реалистичную модель человека.
Неудобство UE в том, что он во многом ориентирован на профессионалов. Визуальное программирование Blueprint тратит больше ресурсов системы, чем код на C++, поэтому большой проект совсем без программирования сделать не получится.
В местном интерфейсе новичок легко запутается, да и красивая картинка может вызвать проблемы, ведь ее придется оптимизировать под самые разные устройства.
Unreal Engine — хороший выбор для тех, кто хочется сразу погрузиться в профессиональный геймдев и в перспективе работать над высокобюджетными проектами. Разработка на нем требует большей технической подкованности, чем на других движках, так что он больше подойдет тем, кто уже немного знаком с особенностями создания игр. Например, для тех, кто уже работал в Unity, в документации UE есть отдельный гайд.
GameMaker Studio
Цена: бесплатная версия не позволяет опубликовать проект, инди-лицензия стоит 259 Р в месяц, корпоративная — 1389 Р в месяц
Сильные черты: программирование необязательно, drag-and-drop-разработка
Недостатки: почти не работает с 3D, бедный встроенный магазин ассетов
Игры на движке: Katana Zero, Hyper Light Drifter
GameMaker Studio — один из самых известных игровых движков наравне с Unity и Unreal Engine. На нем сделаны многие инди-хиты вроде Undertale, а еще у него очень низкий порог вхождения: для GameMaker необязательно умение программировать, и все взаимодействия можно настраивать буквально «перетягиванием».
Впрочем, писать код в нем тоже можно — создатели даже разработали специальный язык, GML (Game Maker Language). У него меньше возможностей, чем у того же C#, а некоторые его особенности не встречаются в других языках, зато он очень прост в освоении и подойдет как опытным программистам, так и новичкам.
GameMaker Studio не просто хорошо оптимизирован — в нем немало инструментов для работы над играми в любых жанрах. Так что это хороший выбор для тех, кто хочет погрузиться в геймдизайн и не тратить время на «математику» и поиск расширений.
Он не понравится тем, кто хочет работать с 3D: движок не поддерживает его официально, а разработчики не планируют что-то с этим делать. Да и магазин ассетов GameMaker гораздо беднее, чем у конкурентов.
С недавних пор использовать GameMaker для разработки можно бесплатно, но придется оплатить подписку для публикации своей игры. То есть вы можете опробовать все его возможности бесплатно перед тем, как тратиться на подписку.
Defold
Цена: бесплатный для коммерческого использования
Сильные черты: хорошая оптимизация и поддержка всех платформ
Недостатки: относительная неизвестность, отсутствие 3D
Игры на движке: Family Island, Marginalia Hero
Defold — один из главных конкурентов Unity, но используют его намного реже. Он рассчитан на двухмерные игры, которые программируются на языке Lua и запускаются почти на всех платформах — от HTML5 ( веб-страницы ) до Nintendo Switch. Поэтому он быстро работает и компилирует маловесные билды, в отличие от того же Unity.
У Defold нет встроенного визуального программирования, но есть фанатский плагин, который его добавляет. Также в сети опубликовано много обучающего материала по нему, но меньше, чем у конкурентов.
Как и любой молодой движок, Defold постоянно развивается, так что все недостатки могут исправить в будущем. Сейчас же это необычная альтернатива Unity для тех, кто хочет попробовать себя в программировании, но не желает погружаться в трудности семейства C, общепринятого в «большой» индустрии.
Godot
Цена: бесплатный для коммерческого использования, можно поддержать разработчиков на «Патреоне»
Сильные черты: постоянное развитие, множество поддерживаемых языков программирования
Недостатки: пока с трудом работает с 3D и не поддерживает консоли
Игры на движке: Rogue State Revolution, Kingdoms of the Dump (в разработке)
Godot — это «выбор на перспективу», который примечателен постоянными обновлениями. Он максимально открыт — за движок не надо платить, а на GitHub лежит его исходный код, в котором может покопаться любой желающий. А еще в Godot большой выбор языков программирования соседствует с визуальным скриптованием: сегодня утилита поддерживает C, C# и собственный GDScript, который напоминает Python.
Открытый исходный код движка позволяет участвовать в его разработке всем желающим: например, исправлять баги или предлагать новые функции.
Главная проблема движка в его «перспективности»: Godot разрабатывают уже 14 лет, но в нем до сих пор не очень удобно работать в 3D, а сообщество намного меньше в сравнении с другими продуктами. Ну и разрабатывать консольные игры в нем сложно из-за того, что там нельзя издавать игры, сделанные на полностью открытом ПО без лицензии. К счастью, сооснователь компании-разработчика движка как раз открыл студию для портирования игр с Godot на консоли.
Godot вполне может оказаться очень востребованным на рынке через несколько лет, когда в нем появятся все те функции, которые давно есть у конкурентов. Тогда у Godot появятся все шансы стать главным «противником» Unity.
Stencyl
Stencyl — это максимально простой 2D-конструктор. Его часто используют для того, чтобы обучать детей программированию. В первую очередь он предназначен для мобильных игр и небольших прототипов в духе флеш-игр. Из-за этого работать над большими проектами в нем довольно сложно, зато можно делать небольшие игры в духе популярной Super Dangerous Dungeons.
Также в движке есть Code Mode — возможность писать собственный код на языке Haxe, который синтаксисом напоминает C#.
Недостатки Stencyl похожи на проблемы других простых движков — здесь нет 3D и поддержки консолей. Скорее всего, все это и не появится, так что стоит сразу определить для себя, нужны ли вам эти особенности. Если нет, и вы хотите просто побыстрее выпустить маленькую игру и не возиться с кодом или просто набросать прототип перед переходом на «большой» движок, Stencyl — хороший выбор. Это что-то вроде аналога игровых конструкторов в духе Super Mario Maker, где вы можете сосредоточиться на геймдизайне и картинке, а не технической составляющей.
Construct
Цена: бесплатный с ограничениями, персональная версия стоит 525 Р в месяц или 4199 Р в год
Сильные черты: работает в браузере, не требует программирования
Недостатки: не подходит для 3D и консолей
Игры на движке: Hypnospace Outlaw, Mighty Goose
Construct очень похож на Stencyl — это тоже простой, пусть и более известный конструктор двухмерных проектов, который используют в обучении детей. Как и Stencyl, Construct — это хороший инструмент прототипирования. Если функций местного визуального программирования не хватит, то прямо в блочную систему можно встроить код на JavaScript.
Даже проблемы у движков общие: Construct тоже не подходит для крупных проектов, не работает с 3D и на консолях. На нем можно собрать игру под Xbox, но производительность там оставляет желать лучшего.
Зато Construct основан на JavaScript, поэтому игры на нем могут запускаться на всех остальных платформах, а попробовать движок можно прямо в браузере — не надо скачивать никаких дистрибутивов. Причем всего за пару минут там можно создать первый прототип простым перетаскиванием блоков и выбором действий.
А еще движок постоянно развивается, так что вполне возможно, что в будущих версиях он станет ближе к GameMaker Studio. Пока что это хороший способ сделать первый шаг в игровой разработке или приобщить к ней ребенка.