Самые популярные бесплатные движки для разработки игр
В январе я участвовала в своем первом геймджеме — Global Game Jam 2022, в Стамбуле. На джеме все участники писали игры на движках — ибо надо быстро. Игровой движок — это физика, рендеринг, скрипты, искусственный интеллект. Создавать игру с нуля или пользоваться движком — вопрос вкуса. Вон, Джонатан Блоу вообще пишет свой движок, чтобы писать на нем игру.
Я обратила внимание, что большинство студентов использовали либо Unity либо GameMaker. Сама я питаю нежные чувства к Construct, но на нем всего одна команда делала игру. Я решила поискать альтернативу для себя, заодно запилила подборку бесплатных движков для начинающих (а может и продолжающих) игроделов.
Еще я веду канал в Telegram GameDEVils (на русском) и блог на Substack (на английском), делюсь там клевыми материалами (про геймдизайн, разработку и историю игр).
Популярные движки Steam и itch.io
Вот статистика, игры на каких движках выкладывают в Steam:
Топ-11 движков в Steam:
- Unity (27148)
- Unreal (6869)
- GameMaker: Studio (2806)
- RPGMaker (1938)
- Ren’Py (1235)
- XNA (572)
- Adobe AIR (398)
- Godot (384)
- Cocos2d (326)
- MonoGame (280)
- Construct (201)
И на каких движках чаще публикуют на itch.io:

Топ-11 движков на itch.io:
- Unity (82 000)
- Construct (18 300)
- GameMaker: Studio (12 100)
- Godot (8 640)
- Twine (7 800)
- Unreal Engine (4 800)
- Bitsy (4 800)
- RPG Maker (4 500)(не бесплатно, но есть триалка)
- PICO-8 (4 200)($15)
- Ren’Py (3 100)
- LÖVE (1 500)
1. Unity

На Unity разработали много игр, прям МНОГО. Вот ссылочка на Википедию. Unity поддерживается на iOS, Android, Windows Phone, Tizen и Fire OS.
Если оборот или объем привлеченных инвестиций не превышает $100 тыс. за последние 12 месяцев, то можно пользоваться бесплатной подпиской Personal.
Про Unity на Хабре:
2. Unreal

Игровой движок от компании Epic Games, тоже очень популярный, вот список игр из Википедии.
Unreal Engine бесплатный аж с 2015 года, но разработчики игр должны передавать 5% от выручки с продаж игры компании Epic Games, если ежеквартальная выручка превышает $1 000 000.
Про Unreal на Хабре:
3. GameMaker: Studio2

Интерфейс Game Maker объединяет в себе редакторы спрайтов, объектов, комнат, скриптов, а также тайм-лайнов (последовательностей действий с привязкой по времени), путей (маршрутов) движения и констант. Летом 2021 года YoYo Games сделали беплатный доступ без ограничений по времени. Изначально они выдавали триалку только на месяц, для знакомства. Правда экспортировать на бесплатной версии можно разве что на GXC.
За базовую подписку CREATOR (≈ 80 руб./мес.) появляется экспорт для Windows, macOS и Linux. За INDIE (≈ 260 руб./мес.) появляется экспорт для HTML5 и мобилки.
Проблема GameMaker, и других движков типа «наведи и щелкни» в том, что разработчики более ограничены. С другой стороны, GameMaker популярен, потому что позволяет создать игру без предварительных навыков программирования.
Про GameMaker на Хабре:
4. Godot

Открытый кроссплатформенный 2D и 3D игровой движок под лицензией MIT, который разрабатывается сообществом Godot Engine Community. Среда разработки запускается в Linux, BSD, macOS и Windows. Godot поддерживает GDScript (свой собственный язык), C++ и C#. Плюс есть еще средство для создания привязок к другим языкам — GDNative. Сообщество поддерживает Rust, Nim, JavaScript, Haskell, Clojure, Swift и D.
Про Godot на Хабре:
Cocos2d

Кроссплатформенный опенсорсный фрейворк для разработки игр и приложений, преимущественно для мобилки с лицензией MIT. Cocos2d-x развертывается в iOS, Android, HTML5, Windows и Mac.
Фреймворк поддерживает создание 2D и 3D игр, предоставляет такие функции, такие как рендеринг графики, графический интерфейс, аудио, сеть, физика, пользовательский ввод и т.д. Ядро написано на C++ и поддерживает разработку на C++, Lua или JavaScript. У фрейворка есть множество ответвлений: Cocos2d-ObjC, Cocos2d-x, Cocos2d-html5 и Cocos2d-XNA.
Про Cocos2d на Хабре:
5. Construct

Ноу-код движок для создания 2D игр. Запускается в браузере, работает из десктопа офлайн. Движок не дает большой гибкости, как GameMaker, и также дружелюбен к новичкам без технического бэкграунда + на ютубе выложена куча туториалов.
Есть бесплатная версия Construct, основное ограничение — 2 слоя и максимум 25 «событий» (если авторизоваться, то 50 «событий») в проекте. За события считается любое действие / поведение объекта. Но чтобы попробовать, и даже собрать элементарный платформер — хватает. Персональная лицензия стоит около $5.
6. Twine

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

Чтобы создать простенький сторителлинг с помощью Twine, код писать не нужно. Но можно. Можно дополнить свои истории с помощью переменных, условной логики, изображений, CSS и JavaScript.
Про Twine на Хабре:
7. Adobe AIR SDK (HARMAN)
Кроссплатформенный движок (Windows, OS X, Linux, QNX, Android) от компании Adobe, которая пару лет назад передала на нее права компании HARMAN. Этот движок можно использовать бесплатно, если вы зарабатываете менее 50 тысяч долларов в год. Движок все еще популярен в Steam, отчасти из-за адаптаций браузерных игр на Flash.
На Хабре про AIR:
8. Ren’Py

Опенсорсный движок для создания визуальных новелл в 2D-графике с бесплатным коммерческим использованием.
Про Ren’Py на Хабре:
9. Bitsy
Крошечный онлайн редактор для мини-игр. Это какой-то супер-милый проект и милым сайтом. Разработчик выкладывает логи проекта на itch.io. И там же можно поиграть в игры, сделанные с помощью Bitsy движка.
10. LÖVE

Фреймворк для создания 2D игр на Lua. Он бесплатный, с открытым исходным кодом и работает на Windows, Mac OS X, Linux, Android и iOS. Лицензия zlib, позволяет свободно использовать движок даже в коммерческих проектах с закрытыми исходниками.
Про LÖVE на Хабре:
11/12. XNA и/или MonoGame
Microsoft еще лет 10 назад сказали, что не будут больше выпускать обновления для Microsoft XNA Game Studio. У этой платформы есть преемник — проект MonoGame, представляющий собой кроссплатформенную open-source реализацию XNA с дополнительными возможностями. MonoGame позволяют разрабатывать под Windows, Mac OS, Linux, iOS, Android, PS4, PSVita, Xbox One и Nintendo Switch. Язык разработки игр — C#.
НЕбесплатные движки с itch.io и Steam
PICO-8
Это игровая консоль, которая имитирует ограниченные графические и звуковые возможности 8-битных систем 1980-х годов. Можно единоразово приобрести за $15.
RPG Maker
Это серия движков для создания РПГ, точнее JRPG, японских ролевых игр. Для RPG Maker тоже нет бесплатной подписки, но есть пробная триалка. RPG Maker поддерживает только Windows. В Steam он лежит для разовой покупки от 500 до 3000 рублей, в зависимости от продукта, там есть несколько «комплектаций». Менять скрипты под себя можно на Ruby-подобном языке.
Больше бесплатных движков
Вот бонусом еще 11 бесплатных вариантов движков:
1. Amazon Lumberyard

Бесплатный кросс-платформенный игровой движок, разработанный Amazon. Визуальная технология Lumberyard основана на CryEngine, но команда разработчиков Amazon уже внесла в систему значительные обновления. Роялти нет, лицензионных сборов нет. Amazon зарабатывает деньги через Amazon Web Service. Естественно, у этого игрового движка прекрасная совместимости с AWS. Помимо бесшовной интеграции с AWS, Lumberyard также предлагает интеграцию с Twitch.
Про Amazon Lumberyard на Хабре:
2. Solar2D (бывший Corona SDK)
Кросплатформенный движок с открытым исходным кодом для создания мобильных 2D-игр и приложений. Поддерживает такие платформы, как Android, iOS, Kindle, macOS, Windows, Linux. Предусмотрена сборка веб-приложений (HTML5). Solar 2D использует интегрированный Lua, наложенный поверх C++ / OpenGL.
Про Solar2D на Хабре:
3. jMonkeyEngine

Движок с открытым исходным кодом, написанный на Java для создания игр и приложений для Android или iOS. Точнее jMonkeyEngine — это набор библиотек для низкоуровневой разработки, а в высокоуровневый инструментарий его превращает интегрированная среда разработки, к примеру jMonkeyEngine 3 SDK.
Про jMonkeyEngine на Хабре:
4. SpriteKit
Это движок для 2D-игр, разработанный Apple и предназначенный для устройств Apple.
Про SpriteKit на Хабре:
5. Box2D

Физический движок от разработчика из Blizzard Entertainment, написан на C++, лицензия MIT.
Про Box2D на Хабре:
6. LibGDX
Кросплатформенная среда разработки на Java, которая предоставляет унифицированный API для создания 2D- и 3D-игр. LibGDX дружит с движком Box2D (физика реального мира), можно добавить поддержку TrueType шрифтов или работать с 3D объектами.
А еще коммьюнити LibGDX проводит геймджемы раз в сезон (март, июнь, сентябрь, декабрь), вот ссылочка на подробную информацию: Game Jams.
Про LibGDX на Хабре:
7. Urho3D

Бесплатный 2D и 3D игровой движок, запускается на Windows, Linux, macOS/iOS/tvOS, Android, и даже на Raspberry Pi и в браузере. Вики Urho3D содержит всю инфу для начала работы с движком, включая практические руководства по настройке.
Про Urho3D на Хабре:
8. CryEngine

Если вы использовали версию движка 5.5+ и заработали 5000$, то придется выплачивать 5% от прибыли. Если вы используете более ранние версии, то можете подать заявку на освобождение от выплат.
Про CryEngine на Хабре:
9. Panda 3D
Движок с открытым исходным кодом для 3D-игр. Язык разработки игр — Python. Сам движок написан на C++ и использует автоматический wrapper-генератор для предоставления полной функциональности движка в интерфейсе Python. Panda 3D может работать практически на всех основных платформах.
10. Bitty

Небольшой кроссплатформенный движок и опенсорсный фреймворк для создания 2D-игр на Lua…
11. Phaser

HTML5-опенсорсный движок для тех, кому хочется писать JavaScript или TypeScript браузерные 2D игры. Для начала работы с движком создатель предлагает просто начать вносить свои правки в уже существующие общедоступные игры и смотреть, что из этого получается. Плюс есть форум, где чувачки из комьюнити активно отвечают.
Кстати, про геймджем по-турецки скоро отдельный пост запилю. Вот пока моя фотка во время джема:

(Это я в шапочке, честное слово)
Мой канал в Telegram с находками про разработку игр, историю игр и геймдизайн: GameDevils (на русском) и блог на Substack (на английском).
Хочу создавать игры. Какой язык программирования выучить?
![]()
Если вы планируете сделать карьеру разработчика видеоигр, ваш первый шаг — научиться программировать на языке, который используют профессионалы для создания величайших игр в мире. Но какой из многих языков программирования игр вам следует изучить в первую очередь?
Это очень важное решение. Чтобы выучить хоть один язык программирования, потребуется много времени, и лучше не тратить его на проходняк, который является лишь «изюминкой месяца».
Вместо этого вы хотите выучить язык, который ценится ведущими игровыми компаниями, такими как Sony, Activision или Nintendo. Так какие языки программирования помогут вам устроиться на работу в ведущую игровую компанию?
Популярность или немного статистики
Чтобы ответить на этот вопрос, мы возьмем 70 объявлений о вакансиях от 16 ведущих разработчиков игр со всего мира, чтобы выяснить, что им требуются от кандидатов на вакансии инженеров. Результаты представлены ниже.
![]()
Лучший язык программирования для игр: C/C++
Как видно из диаграммы выше, C/C++, по мнению ведущих игровых компаний мира, на сегодняшний день является лучшим языком программирования для игр. Более половины объявлений о вакансиях указали C/C++ как требование.
И речь идет не о каких-то низкоуровневых должностях, близким к уборщику. Этот язык фигурирует в качестве требования в широком спектре вакансий, включая программиста инструментов, графического инженера, программиста AI, Backend-программиста, программиста ответственного за геймплей и многих других.
![]()
Так что, если вы ищете язык для первого изучения, вы просто не можете ошибиться с C/C++. Очевидно, что он откроет для вас много-много дверей в профессии разработчика игр.
2-й лучший язык программирования игр для игр: C#
В то время как C/C++ прочно удерживает первое место как наиболее востребованный язык для разработки игр, на втором месте находится C#. Со временем C# становится все более популярным для разработки игр, особенно при использовании коммерческих игровых движков, таких как Unity 3D.
Но он все еще находится на втором месте, уступая C/C++. На самом деле, из 25 вакансий, в которых упоминался C#, только 5 из них указывали его в качестве отдельного требования. Остальные 20 объявлений фактически требовали C/C++, а C# просто перечисляли как «неплохо бы иметь».

Таким образом, хотя изучение C#, безусловно, может быть полезно для поиска работы, ваши возможности могут быть ограничены, если вы не владеете C/C++.

«Или эквивалент»
Несомненно, важно быть знакомым с лучшими языками программирования. Тем не менее факт состоит в том, что, зная один язык программирования, гораздо легче выучить другие. Вот почему в 14% объявлений о вакансиях указывается требование к знанию языка, но затем делается оговорка: «или эквивалент».
![]()
Например, в одном из объявлений компании Valve о вакансии инженера-программиста Steam требовался «подтвержденный опыт создания и выпуска коммерческого программного обеспечения на C++ или аналогичном языке». Другая вакансия от Rockstar Games для инженера требовала «навыков программирования и/или написания сценариев», в качестве примера приводились «C++, C# или Python».
Эти компании понимают, что любой хороший программист может изучать новые языки по мере необходимости. Именно поэтому они открыты для заявок от кандидатов, имеющих опыт программирования на других языках.
А как насчет всех остальных языков?
![]()
В то время как C/C++ и C# были очевидными лидерами, было упомянуто еще 9 языков, включая PHP, Java, javascript, Python, Assembly, Lua, Ruby, Erlang и Go.
В большинстве случаев менее используемые языки характерны для конкретной студии, что, вероятно, указывает на то, что некоторые студии имеют узкоспецифические инструменты разработки игр и технологии, построенные на нестандартных языках программирования.
Например, Take-Two Interactive была единственной компанией, которая упомянула Erlang, и только в сообщениях Riot Games упоминался Go. Обратите внимание, что ни одна из студий не упоминала эти языки в качестве жесткого требования.
В других случаях определенные языки были предпочтительны для конкретных типов вакансий. Например, язык ассемблера требовался для работы программистом движка, что вполне логично, поскольку ассемблер используется почти исключительно в сверхвысокопроизводительных областях игрового движка. А Java был упомянут несколькими игровыми компаниями, но в основном для работы в области бэкэнд и сетевого программирования.
Вывод
![]()
Если вы хотите начать успешную карьеру программиста видеоигр, совершенно очевидно, что изучение языка C/C++ станет важным шагом на вашем пути. Он уже несколько десятилетий занимает лидирующие позиции благодаря своей высокой производительности по сравнению с другими языками, и это вряд ли изменится в ближайшем будущем.
Тем не менее это не означает, что вам обязательно нужно начинать с C/C++. Изучение любого языка программирования поможет вам стать разработчиком программного обеспечения, и есть много других языков, которые легче выучить — даже профессиональные игровые компании знают, что как только вы научитесь писать на одном языке, вам будет легче изучать «эквивалентные» языки по мере необходимости.
Так что, если вы предпочитаете начать с чего-то менее популярного, но более легкого в освоении, дерзайте! Многие курсы программирования начинаются с обучения языкам «высокого уровня», таким как Lua или Python, поэтому не стесняйтесь начинать с них, если появилась такая возможность.
Вы всегда можете начать изучать C/C++ после того, как разберетесь с основными понятиями, которые применимы ко всем языкам программирования. Не успеете оглянуться, как вы уже будете осваивать новые языки программирования буквально на автомате.
На каких языках программирования пишут игры

Сегодня видеоиграми увлекается больше 3,1 млрд. человек — это 40% населения Земли. Рынок игровой индустрии растёт с каждым годом. К концу 2020 года, объём рынка составлял более 175 миллиардов долларов. Это на 19,6% больше, чем в 2019 году.
Наиболее популярны игры для смартфонов. 49% приходится на сегмент мобильных игр, 29% на консольный и ещё 22% — на сегмент игр для ПК.
Рынок консольных игр в России всегда был закрытым, его товары покупает лишь небольшой процент населения — консоли стоят дорого, игры к ним тоже. Поэтому, в России упор сделан на игры для смартфонов и ПК. На развитие индустрии видеоигр отразилась эпидемия коронавируса — многие сидя дома стали больше времени проводить за играми.
В игровой индустрии над каждой игрой работает огромная команда, чтобы всё было продумано до мелочей: от сюжета до механики. И наиболее важный специалист в этом процессе — разработчик. Разберёмся, как работают разработчики игр и какие языки программирования используют в работе.
Какие разработчики востребованы в геймдеве
Геймдев — это индустрия разработки игр, а гейм-девелопер — разработчик игр. Вот на какие специализации делится эта профессия.
- Программист игровой механики — отвечает за программную реализацию всех механизмов игры, создаёт прототипы, проводит измерения данных и скорости работы алгоритмов. В работе важны навыки гейм-дизайнера и инженера.
- Программист 3D-движка — отвечает за отображение всех графических элементов мира на экране пользователя. Он оптимизирует движок и создаёт графические эффекты.
- UI/UX-разработчик — отвечает за взаимодействие пользователя с игрой, программирует интерфейс и меню.
- Программист сетевого кода — отвечает за внутреннюю структуру, работу игры через интернет, взаимодействие между игроками и связь с локальной сетью.
Каждый разработчик использует разные методики и разные языки программирования.
На каких языках обычно пишут игры
Знания одного языка программирования может быть недостаточно для написания полноценной игры. Разработка может требовать работы с двумя языками одновременно, потому что каждый отвечает за определённый круг задач. На одном языке пишут движки, на другом — скрипты, а на третьем — игровые процессы.
Если вы хотите писать игры, вам придётся стать «полиглотом» и изучить несколько языков программирования. Выбирать язык для создания игр стоит исходя и вида игры:
- для браузерных игр — JavaScript и PHP,
- для мобильных игр — JavaScript и C#,
- для компьютерных и консольных игр — C++, Assembler, C# и Java.
Языки программирования SQL и Python реже используют в разработке игр, но они тоже могут пригодиться.
Какой язык выбрать новичку для разработки игр
Среди всех языков программирования нельзя выделить универсальный, на котором можно написать любую игру. Каждый язык ориентирован под определённые задачи и виды игр. Остановимся на каждом виде подробнее.
Браузерные игры
Браузерные игры во многом уступают играм для компьютеров и консолей. Они не отличаются графикой и продолжительностью, но зачастую имеют хорошо продуманный сюжет. Эти игры не требуют установки, регулярных обновлений, а играть в них можно даже со слабого устройства. Достаточно иметь на нем браузер с поддержкой функций Unity или Flash.
Особенности. Один из плюсов браузерных игр для пользователей — их казуальность. В большинстве случаев, у таких игр простые правила, с которыми разберётся даже ребёнок. Поэтому, у браузерных игр довольно широкая аудитория — люди со слабым ПК, дети и просто любители казуалок.
Языки программирования. Раньше браузерные игры активно создавались по технологии Flash. Для этого использовался язык ActionScript. Но с 1 января 2021 года компания Adobe объявила о прекращении поддержки и распространения Flash Player. Это сделано в пользу более прогрессивных и безопасных технологий.
Сегодня при разработке браузерных игр обычно используют JavaScript. Он помогает хранить данные о персонаже. Также понадобится элемент HTML5 — Canvas, который представляет API для работы с графикой игры. Фактически, это холст для художника, на котором он рисует командами JavaScript.
Особенности разработки на JavaScript. JavaScript — самый популярный язык программирования. Его достоинства:
- производительность и скорость работы — позволяет быстро писать код;
- поддержка скриптов всеми браузерами — можно подключить к любому сайту в сети;
- простота применения — простые задачи решаются за 10 минут, а для большинства сложных есть множество готовых решений;
- простота изучения — можно освоить за неделю;
Научиться программировать браузерные игры поможет ТОП курсов по обучению JavaScript
Мобильные игры
На долю мобильных игр приходится наибольший доход со всей игровой индустрии. И это оправданно, ведь телефон всегда под рукой — можно играть где угодно и когда угодно. Мобильные игры по качеству превосходят браузерные, но до компьютерных и консольных им ещё далеко. Проблема в самом устройстве, на котором играет пользователь — маленький экран и ограниченные характеристики не позволяют создавать впечатляющую графику.
Особенности. Мобильные игры создаются относительно просто и быстро. Несложную аркаду можно создать за несколько недель. Для игр со сложным сюжетом, управлением и графикой, понадобится больше времени и специалистов в команде.
Языки программирования. Для написания мобильных игр в основном используют языки программирования C# и JavaScript. Эти языки позволяют писать игры разнообразных жанров: от простых головоломок до сложных аркад и хорроров.
Особенности разработки на C#. C# — мощный и универсальный язык разработки, который позволяет решать широкий круг задач. Вот чем он хорош:
- мощный язык с множеством возможностей для решения задач;
- понятный синтаксис позволяет выучить язык за месяц;
- лучшая адаптация с платформой Unity среди языков программирования;
- множество библиотек, уже имеющихся в базе.
C# программисты разрабатывают игры и создают и десктопные и веб-приложения, облачные сервисы и многое другое. Возможности разработки на этом языке почти безграничны, выбирайте подходящую программу из подборки лучших курсов обучения С#-разработчиков и приступайте
Компьютерные и консольные игры
Игры для консолей и ПК дают полную свободу для разработчиков. Здесь возможно все: использование сложной графики, поддержка современных технологий дополненной реальности и игра с друзьями онлайн.
Сложность создания игры для компьютера или консоли пропорциональна возможностям. Придётся пройти множество этапов: создание концепции, продумывание механики, динамики, анимации, физики, разработку геймплея и сюжета, написание скриптов и озвучку.
При этом у консольных игр больше плюсов: оборудование долго не устаревает, можно играть вдвоём, нет нужды в мощном и производительном компьютере и на консолях чаще появляются громкие эксклюзивы.
Особенности. Некоторые игры можно создать в одиночку за полгода, для других понадобится огромная команда и несколько лет непрерывной работы. Зато можно создать огромный мир с реалистичной графикой и большими возможностями, как Cyberpunk 2077, работа над которым велась целых восемь лет.
Языки программирования. Для компьютеров и консолей пишут игры на языках C++ — это позволяет тонко оптимизировать игру на уровне железа и характеристик. На языке C++ создаётся настройка графики в играх, которая позволяет пользователям играть даже на слабых устройствах.
Особенность разработки на С++. С++ — строгий язык, при работе с которым нельзя использовать разные типы переменных в одном выражении. При этом, язык открывает много возможностей:
- кросс-платформенность позволяет писать программы для самых разных платформ и систем;
- поддержка объектно-ориентированного программирования позволяет быстрее писать код;
- синтаксис C++ похож на синтаксис языков C и C#, поэтому между ними легко переключаться;
- поддерживает различные стили программирования.
C++ — довольно сложный язык, если учить его не зная языков семейства C. Но его знание открывает новые возможности для простого и быстрого написания кода. Если решите прокачаться в С++, полистайте подборку лучших курсов С++ для начинающих и опытных программистов
Из каких этапов состоит разработка игр
Все этапы создания даже сложной игры можно разделить на четыре основных этапа. Это концепция, препродакшен, продакшен и постпродакшен.
- Концептирование — это начальная проработка игрового дизайна и создание документации, которая описывает все аспекты игры и то, как должен выглядеть готовый продукт.
- Препродакшен или прототипирование — на этом этапе создаётся более детальная документация проекта. Программисты создают рабочий прототип, отражающий основную идею и механики игры. Он необходим для проверки гипотез и ключевых технических моментов. Работа программистов над прототипом игры невозможна без ведения документации — технического отчёта, в котором описана технология их работы и инструменты, использованные в работе.
- Продакшен — самая важная часть, во время которой задействованы все отделы и члены команды. Она же длится дольше всего. Именно в продакшен вкладывается больше всего средств. Создаются локации, уровни и начинает вырисовываться игровой процесс.
- Постпродакшен — на этом этапе проходит закрытое бета-тестирование. К работе подключаются тестировщики, которыеиграют в игру и выявляют баги, ошибки и дыры. После тестирования и сбора данных об ошибках, начинается багфиксинг — исправления недоработок. После релиза к работе подключаются маркетологи производителя, которые распространяют игру по рекламным каналам, чтобы увеличить аудиторию.
Важно понимать, что работа над игрой после релиза не заканчивается. Баги могут возникать и после того, как игра оказалась в магазине приложений, поэтому должна быть отлажена работа технической поддержки.
Коротко о главном
Интерес к разработке игр возрастает после того, как вы увидите результат своего труда. Чтобы верно выбрать язык программирования, важно учитывать жанр игры и вид игры: будет это браузерная, мобильная, компьютерная или консольная игра. Каждый язык хорош в определённых задачах, но важно понимать, что при написании игр, профессиональные программисты редко ограничиваются одним языком. Комбинируя их, можно выйти на более высокий профессиональный уровень.
На чём создают игры? Обзор популярных игровых движков
Игровые движки — особый класс программного обеспечения. Каждая компания использует свой собственный, охраняя все секреты с исключительной ревностью. Чаще всего все знаковые «фишки» какой-то успешной игры обусловлены именно возможностями движка, а не квалификацией программистов. А потому, предоставить лицензию кому-то другому означает получить себе сильного конкурента.
Взять к примеру, автомобильные гонки: как там будут реализованы погодные условия? Просто туман — довольно легко, но надо, чтобы на лобовое стекло падали капли дождя или мокрого снега, причем взаимодействовали с потоком набегающего воздуха в зависимости от скорости. Если вас обогнали на мокрой трассе — значит, должно окатить грязью. Добавьте еще реалистичное отражение в зеркалах, и подумайте, сколько здесь работы для программиста. Если все это будет доступно на уровне движка, значит, с работой вполне справится специалист средней руки во вполне обозримые сроки. В результате, уникальная в своем роде игра рискует быть расклонированной безо всякого стеснения.
Вот почему игровой движок остается главным сокровищем студии. Это и визитная карточка и ударное оружие в маркетинге. Движки самых популярных проектов никто в глаза не видел и не держал в руках, однако все только и делают, что пишут о них глубокомысленные экспертные заключения.
Бывают программисты, способные написать игру без движка, или даже сперва создать собственный движок, а затем игру. Но зачем, если можно сразу игру? А затем, что в каждой компании есть 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 получаются достаточно объемными, и для мобильных устройств приходится очень серьезно заниматься оптимизацией. Однако, в свете современных трендов такие недостатки постепенно отходят на второй план.