Перейти к содержимому

Что такое игровой движок

  • автор:

Игровой движок: что такое, как работает, зачем нужен

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

Что такое Game Engine

Если коротко, игровой движок (калька с английского Game Engine) — это универсальная основа, которая может использоваться разработчиками видеоигр для создания собственных продуктов. Этот набор программных инструментов, который отвечает за обработку графики, физики, звука в играх и многое другое. Когда вы любуетесь отражениями на мокром асфальте, каплями дождя, стекающими по стеклу, или солнечными лучами, проникающими сквозь листву — это работа игрового движка. Есть и более незаметные, но не менее важные этапы в разработке игр: диалоги, конструкторы уровней, взаимодействие игрока с игровыми элементами — все это тоже, чаще всего, возлагается на игровой движок. Его можно сравнить с фундаментом здания: имея эту основу, разработчики будут надстраивать “этажи” и добавлять “украшения” по собственному вкусу. При этом если кто-то другой будет использовать такой фундамент, в итоге он получит похожий, но все же уникальный продукт.

Компоненты игрового движка

Game Engine — не монолитная система, он включает множество компонентов, отвечающих за тот или иной этап разработки. Попробуем коротко перечислить основные из них.
Графический движок отвечает за рендеринг визуальных эффектов игр, например, 2D- или 3D-графика, текстуры и анимация. Все, что вы видите в игре, является результатом движка рендеринга.
Физический движок занят математическими расчетами физики в игре. Он управляет столкновениями, гравитацией и в целом поведением объектов. В зависимости от ваших целей, можно добиться реалистичной физики или наоборот.
Звуковой движок ответственен за звуковое оформление игры, в тот числе, музыку и звуковые эффекты. В качестве примера отличной работы звукового движка можно назвать Returnal с его богатой атмосферной озвучкой.
Искусственный интеллект забрался и в разработку игр. Здесь он управляет неигровыми персонажами и другими элементами игрового мира, оживляет NPC, диктуя их поведение, принятие решений и взаимодействие с игроком. Это не только самая захватывающая, но и самая перспективная область для разработки игр в ближайшие годы, ведь возможности ИИ растут стремительно.
Управление вводом — компонент, где название говорит само за себя. Он собирает данные с устройств для ввода (клавиатура, мышь или геймпад), а потом переводит их в действия в игре. Не стоит недооценивать важность этого компонента. Вспомните сами, как часто вам попадались игры с неудобным управлением и как это отбивало желание играть. Никакая графика, сюжет или звуковые эффекты не спасут игру с неудобным управлением.

Зачем нужно

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

Какие бывают

Unity

Вы наверняка видели логотип этого движка в массе популярных мобильных игр, однако это кроссплатформенная система. С ней можно создавать игры любых жанров, также она нередко используется для создания продуктов в виртуальной реальности: энциклопедий, видео экскурсий и тому подобного.
Unity можно загрузить и использовать бесплатно, но если вы планируете создавать коммерческий продукт, вам нужно будет заплатить комиссию авторам. Еще один неоспоримый плюс платформы — легкость ее освоения.
С Unity можно создавать 2D и 3D-игры, однако графика здесь будет не такой красивой, как у следующего нашего героя. На этом движке построены такие популярные игры как Hollow Knight, Ori and the Blind Forest и Cuphead.

Unreal Engine

Мощное, кроссплатформенное решение от Epic Games, которое вообще не нуждается в отдельном представлении. Вы можете обнаружить его во множестве популярных игр уровня ААА, именно к нему обращаются разработчики, когда хотят получить продукт с передовой графикой и отличной производительностью. Этот движок используется в сверхпопулярных Fortnite, BioShock Infinite и Gears of War.

Godot

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

CryEngine

Прекрасной демонстрацией возможностей CryEngine стала серия Crysis. Он также используется в Ryse: Son of Rome.

RPG Maker

Название движка говорит само за себя. Его возможности хорошо демонстрирует To the Moon.

ID Tech

Этот движок разработан id Software и он сыграл важную роль если не во всей индустрии видеоигр, то точно в разработке шутеров от первого лица. ID Tech стал основой культовых Doom и Quake, а позже и всех их аналогов разной степени успешности.

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

Как и зачем создавать собственный игровой движок

Игра с нуля — интересный челлендж для разработчика. Но если хотите пройти его на сложности Nightmare, можно еще и сделать собственный игровой движок, заточенный специально под проект. Подводных камней много, рассказываем, что важно знать при разработке такого гейм-дизайнерского софта, и что в него добавить.

Итак, вы задумались о создании собственного игрового движка. Отлично! У этого варианта множество плюсов в сравнении с использованием коммерческого — такого как Unity или Unreal. В этой статье разберемся, зачем разрабатывать свой движок, какие системы необходимо предусмотреть и как правильно подойти к процессу.

Зачем?

Начнем с главного вопроса, который стоит задать себе, если вы решили разработать собственный движок: зачем это вам?

Резонными причинами могут быть, например, такие:

Хотите создать игру с использованием новой технологии, которую не поддерживают другие движки. Или поддерживают, но реализация слишком сложна и костыльна. Это может быть масштабная симуляция (Factorio), нестандартный проект, который не вписывается в готовые шаблоны (Noita, Miegakure), и множество других идей. В таких случаях нет иного выхода кроме как писать собственный движок под проект.

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

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

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

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

Вам кажется, что вы придумаете движок покруче, чем Unity или Unreal (или Godot, или GameMaker). Не выйдет. Разработать подходящий для специфических нужд софт можно (см. предыдущий список), но в одиночку или маленькой командой невозможно создать универсальный движок, который будет конкурировать с известным универсальным ПО. Особенно при первой попытке.

Думаете, что иначе вы «ненастоящий программист»? Использование готового движка не делает гейм-разработчика хуже. Для того они и придуманы! Это просто инструмент для создания игр. 99% проектов можно разработать при помощи уже существующего софта — в этом нет ничего постыдного. Ведь главное — это сама игра!

Если вы хотите таким образом сэкономить время или деньги — забудьте! Создавать движок с нуля долго, а время = деньги. Использовать готовый софт выгоднее, чем пытаться разработать собственный. В долгосрочной перспективе это может стать выигрышной стратегией, но только если движок будет основой для нескольких прибыльных проектов, и при этом значительно удобнее в работе, чем коммерческие. Такое ПО разработать сложно, особенно если это первый опыт (и почти невозможно, если речь о 3D).

При принятии решения учитывайте свой опыт и цели. Чем меньше практики в создании игр, тем сложнее окажется разработка движка — обязательно потренируйтесь прежде чем браться за игровое ПО.

Я начинал с флэш-игр в 90-00х, и ни один движок того времени не поддерживал импорт флэш-анимаций. Единственным выходом было создать собственный софт. Намного приятнее и быстрее закидывать swf-файлы в папку с ресурсами и сразу использовать анимации в игре без промежуточных шагов типа экспорта в списки спрайтов.

Конечно,целесообразность создания собственного движка во многом зависит от количества опыта как в геймдеве, так и в программировании. Приятно сделать кастомный софт, не гуглить постоянно туториалы, и самостоятельно дебажить возникающие ошибки. В то же время, достаточно допустить пару оплошностей, и проект развалится, а обратиться за советом будет некуда. Собственный движок — это полный контроль, но и полная ответственность за продукт.

Игровой движок — это рабочая среда, в которой создают игры. Он состоит из базы, на которой строится проект, и деталей, из которых, словно из деталей лего, состоит сама игра. Это золотая середина между «логикой игры» и «скучными техническими штуками»: благодаря движку в игровом коде не приходится вручную прописывать, как отобразить на экране условный треугольник, можно сразу заняться взаимодействием элементов.

Разные движки выполняют за вас разное количество работы. Некоторые просто отображают графику на экране (Flash, Pico-8). Другие сами по себе — целая игра с возможностью кастомизации или узко заточены под определенный жанр (RPGMaker, Ren’Py). А между ними — бесчисленное количество вариантов.

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

Базовые функции движка.

Это основы, необходимые для того, чтобы начать создавать игры.

Инициализация системы.

Приводит программу в боевую готовность после запуска — открывает окно, загружает данные. С этим (и не только!) справится стандартная библиотека SDL, проще ее и использовать.

Контроль частоты кадров

Ограничивает частоту сменяемости кадров для плавного изображения и оптимизации работы.

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

Рендеринг

Большинство (ну как минимум 75%) игр так или иначе используют графику, и за нее отвечает как раз движок. В 2D-игре минимальному рендеру достаточно отображать на экране текстурированные четырехугольники. Шейдеры, буферы вершин, однобуферная прорисовка, меши, материалы и так далее — это прекрасные опции, которые можно добавить позднее, если понадобится. Если хочется заморочиться с OpenGL или Vulkan и кастомизировать рендерер — на здоровье! Но помните, нет ничего постыдного в том, чтобы использовать для рендеринга готовые библиотеки типа Ogre3D. Выбор зависит от целей и потребностей разработчика, а также от того, какие задачи интереснее решать самостоятельно.

Математические и прочие утилиты

Желательно, чтобы к этим библиотекам имели доступ как игровой код, так и движок. Плюс — ко всем иным полезным функциям и формулам, которые вы найдете в процессе разработки. STB — отличный ресурс для поиска всевозможных утилит, которые могут пригодиться при создании движка.

Дополнительные функции

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

Управление игровыми объектами и сценами

Можно кодить и вручную, но практичнее предусмотреть систему для обработки отдельных игровых объектов и коллекций. Это один из ключевых механизмов в движке, ведь он управляет логикой игры. Из каких компонентов состоят объекты, на какие типы событий реагируют, как происходит взаимодействие, что со структурой памяти, используется ECS? (Кстати, «чистый» неадаптированный ECS лучше применять только для специфических кейсов.) Эти и не только вопросы должна покрывать система управления объектами и сценами. Для таких задач доступны готовые библиотеки (особенно для чистого ECS), но, поскольку эта структура сильнее остальных влияет на игровой код, я склоняюсь к принципу «сделай сам». Использование существующего решения вынудит постоянно думать о том, как вписать логику игры в рамки. А надо наоборот — адаптировать движок под выражение задуманной игровой логики.

Аудио

Звуковые эффекты и музыка здесь разделены, хотя и прячутся под одним названием. Основные необходимые функции — это запуск и остановка звуковых циклов и воспроизведение звуковых эффектов от начала до конца. Этим аудио не ограничивается, но даже с двумя базовыми опциями можно далеко продвинуться. Минус в том, что стандартные звуковые фреймворки (FMod and Wwise) — коммерческие и с кучей лицензионных ограничений. Однако большинство ресурсов с открытым кодом раздражают неудобством (передаю привет OpenAL). Сам я использую FAudio — на мой вкус, простая и комфортная в использовании база для построения сложных звуковых механик.

Загрузка и управление файлами

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

Нетворкинг

Окей, нетворкинг (онлайн-мультиплеер) — это ОЧЕНЬ опционально. Если не планируется режим p2p, то и не заморачивайтесь. Однако эту систему чрезвычайно сложно встроить в движок, который разработан не с расчетом на многопользовательские игры. Поэтому, если вы планируете или допускаете добавление мультиплеера, подготовьте почву заранее, потому что иначе придется переделывать все системы.

Это базовый набор систем, которые входят в игровой движок. Другие варианты типа обнаружения столкновений, физики, сериализации, анимации и UI уже опциональны. Они распространены, поэтому входят в большинство движков, но для создания игр не обязательны. Например, предотвращение столкновений можно обеспечить при помощи математических утилит и прописать алгоритм в коде игры. Простейшую гравитацию и ускорение можно настроить без физических движков типа Box2D or Bullet. А полная сериализация вообще лишняя, если нужно попросту сохранить чекпойнт.

В самописном движке однозначно будет меньше систем и функций, чем в универсальном коммерческом. Такова цель! Unity и Unreal — огромные монолиты, и каждая отдельная игра использует лишь малую часть предложенных опций. Добавляйте только то, что нужно для вашего конкретного кейса и сосредоточьтесь на том, чтобы сделать инструменты разработки лучше и комфортнее в использовании.

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

Итак, вы взвесили за и против, поняли, чего хотите, и решили все-таки взяться за создание движка. И как же это сделать?

Сразу к делу: делайте игру параллельно с разработкой движка. Это правило нельзя нарушать. Изучите основы как можно скорее и сразу же начинайте создавать на этой базе игру. Движок — ничто без игры.

Это необходимо, потому что функционал движка должен соответствовать потребностям сделанных на нем игр. Нельзя понять, как построить хорошую анимационную систему, если проект не требует сложной анимации. Слабые места движка проявляются в процессе написания игры. Может быть, нужна древовидная система, благодаря которой дальние объекты не будут рендериться, пока не приблизятся на определенное расстояние? Я не знаю, и вы не узнаете, пока не соберете игровой уровень, который будет страшно зависать. И даже тогда проблема может оказаться не в обновлении объектов — чтобы понять, надо проверить.

Не программируйте того, что не нужно. Если единственный UI в игре — кнопка Play в главном меню, поздравляю! Не придется создавать мудреный пользовательский интерфейс. В The End Is Nigh нет ни физического движка, ни детектора столкновений. Там даже нет камеры, потому что она там не нужна. Я использовал электронную таблицу .csv, чтобы собрать карту мира, вместо всяких сложных редакторов. Делается легко и нормально работает.

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

Что касается языков программирования — выбирайте, каким лучше владеете. Разработка движка — сама по себе непроста, а если делать это параллельно с изучением С++, обе эти задачи станут в два раза сложнее. C# идеально подойдет для создания движка. Медленнее, чем на С++, но не критично. Более медленный язык типа Python может вызвать затруднения, если в игре много движущихся объектов… но для некоторых игр пойдет. Используйте, что удобно.

И еще — с первой попытки идеально не получится. Моей первой игрой на самописном движке стала Closure, и в ней полный бардак (забавно, что ее номинировали на награду «Техническое совершенство» на фестивале независимых игр в 2010 году). Системы рендеринга и обновления вдвоем обрабатывали всю игру. Добавлять новые объекты было крайне трудоемко, приходилось дописывать кучу кода и работать с кривыми редакторами анимации, так что в итоге осталось с дюжину интерактивных предметов. У некоторых из них было несколько вариаций, кардинально менявших поведение объекта — это было проще, чем добавлять новые. Так что прожекторы, зеркала и турели по сути один и тот же объект!

Но с ошибками приходит и опыт. Движок Closure написан кое-как, но оказался достаточно хорош, чтобы запустить игру на PS3. Идея переписать некоторые части движка была заманчивой, но это лишь отложило бы выход игры. Вместо этого я писал заметки о том, что получилось плохо, чтобы учесть ошибки в следующий раз. Особенно о том, что мешало непосредственно созданию игры. То же и с The End is Nigh. В ее движке (который, кстати, НАМНОГО лучше, чем в Closure) все равно была куча ошибок, которые я решал, стиснув зубы. Как только игра вышла, я сразу начал улучшать движок для следующего проекта, исправлять раздражающие баги и добавлять новые функции.

И так раз за разом: учишься, создаешь игру, запускаешь, и все по новой. До тех пор, пока движок не станет действительно хорош.

Не стал вдаваться в технические подробности, как внедрить в движок каждую отдельную систему. Это зависит от конкретных вариантов использования, есть сотни способов — и каждый из них правильный. Понять, что вам подходит — ВОТ в чем суть разработки движка, с таким настроем стоит браться за создание собственных проектов.

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

Топ лучших игровых движков

Топ лучших движков для создания игр

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

Что это за движки и какие пользуются особой популярностью в 2022 году – разберемся в сегодняшней статье.

Почему лучше выбрать готовый движок

У готовой платформы уже есть базовые инструменты, которые можно использовать в своей игре. Это позволяет сэкономить массу времени и денег, особенно на старте. Не нужно заморачиваться с созданием управления, физикой и прочими фичами – все уже готово и находится «в коробке».

Вот несколько причин использовать «коробочное» решение:

  1. Встроенная система управления, включая перемещение, прыжки и атаки, поможет сконцентрироваться на дизайне уровней и геймплее.
  2. Возможно создавать реалистичное падение, столкновения и другие физические эффекты без необходимости писать код с нуля.
  3. Уже имеющиеся инструменты для создания и управления анимациями персонажей делают процесс генерации живых и реалистичных персонажей гораздо проще.
  4. Встроенные библиотеки визуальных эффектов, среди которых взрывы, огонь и дым, придадут игре эпичности.
  5. Визуальные редакторы уровней, редакторы материалов и анимаций ускорят процесс разработки.

У популярных движков живое community девелоперов, где можно подискутировать, спросить совета и найти решение проблем. Там всегда есть шанс наткнуться на крутых разрабов, которые поделятся своим опытом и помогут в развитии. Это как поддержка 24/7!

Популярные движки Steam и itch.io

Вот топ популярных платформ, которые пользуются спросом на онлайн-площадках Steam и itch.io. Они предлагают множество возможностей для творчества и помогут воплотить идеи в реальность.

Unity

Unity движок для создания игр

Одна из самых популярных платформ для создания игр – Unity. Она появилась в 2005 году и до сих пор не теряет спроса среди гейм-разработчиков. Первая причина, почему движок так долго держится на плаву – это огромное сообщество и множество официальных и неофициальных гайдов, которые помогают создавать игры и решать многие проблемы. Также от самих создателей можно найти курсы для прокачивания своих навыков.

Ограничений по созданию игр в Unity практически нет – можно создавать как простые игры типа «Три в ряд», так и более сложные – шутеры, RPG и многие другие.

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

Преимущества:

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

Недостатки:

  • иногда хромает оптимизация игр.

Игры на платформе: Hearthstone, Pokemon Go, Subnautica и другие

Стоимость: бесплатно, если прибыль меньше $100 000, иначе потребуется оплатить подписку за $399 или $1800 в год (зависит от типа разработки)

Официальная страница: Unity

Unreal Engine

Unreal Engine движок для создания игр

Еще один лидер в рейтинге игровых движков. Unreal Engine – это платформа, заточенная под 3D с системой визуального программирования Blueprint, благодаря которой можно собирать прототипы без навыков программирования. Кроме того, в официальном магазине часто появляются бесплатные ассеты – части игрового контента, которые можно использовать в коммерческих целях.

Сегодня уже доступна пятая версия продукта Unreal Engine. Ее отличительной особенностью является система Nanite, которая позволяет не беспокоиться об оптимизации ассетов под разные системы: движок все делает самостоятельно. Другая фича – технология Lumen, которая автоматически обрабатывает источники света. Но самое крутое – это конструктор людей MetaHuman, который позволяет создавать реалистичных людей буквально в несколько кликов.

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

Преимущества:

  • встроенное визуальное программирование;
  • открытый исходный код;
  • универсальный – можно делать даже спецэффекты к фильмам;
  • есть официальный магазин с ассетами;
  • адаптирован под консоли, ПК и мобильные устройства.

Недостатки:

  • высокие требования к навыкам разработчика.

Игры на платформе: Fortnite, Star Wars: Jedi Fallen Order, Mortal Kombat 11 и другие

Стоимость: бесплатный, при доходе от миллиона долларов за все время существования игры Epic Games забирает 5%

Официальная страница: Unreal Engine

Godot

Godot платформа для создания игр

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

Движок разработан в 2007 году двумя программистами из Аргентины – Хуаном Линетски и Ариэлем Манзур. Несколько лет Godot был основой для внутреннего ПО некоторых латиноамериканских компаний. Пока исходный код движка не выложили в открытый доступ, он выходил под разными названиями: Larvotor, Legacy, NG3D и Larvita.

Godot до сих пор активно поддерживается благодаря пожертвованиям на Patreon от сообщества, заинтересованного в развитии технологии. Он поддерживает создание как 2D, так и 3D-игр. Вместо псевдо-2D, когда трехмерный мир представлен в двух измерениях, платформа работает в реальном 2D-пространстве, выраженном в пикселях – это значительно упрощает создание и оптимизацию 2D-игр.

Преимущества:

  • идеально подходит для 2D-игр;
  • в отличие от Unity, поддерживает систему измерения в пикселях и облегчает создание пиксель-арта;
  • скрипты реализованы проще, чем на других движках: помимо собственного GDScript, есть полная поддержка C# 8.0, C++, а также визуальное программирование;
  • гибкая система анимации объектов, встроенная в движок;
  • наличие подробной документации в сообществе, а также много полезной информации на Reddit.

Недостатки:

  • 2D-физика и тени реализованы хуже, чем на других бесплатных движках;
  • могут возникнуть трудности с перемещением и изменением объектов на уровне;
  • 3D-движок не может конкурировать с более мощными альтернативами;
  • не поддерживает консоли.

Игры на платформе: Splice Crisis 2, Ruins Of Mitriom и другие

Стоимость: бесплатно

Официальная страница: Godot

Panda 3D

Panda 3D движок для создания игр

Panda 3D – фреймворк, разработанный Disney для 3D-аттракционов в парке развлечений. Исходный код Panda 3D выложили в открытый доступ в 2002 году. Со временем инструмент оброс впечатляющей функциональностью для создания коммерческих продуктов с 3D-графикой. Для работы с движком требуется знание Python и C++. В настоящий момент движок используется в проектах, связанных с тренировкой ИИ, а также вычислениями на удаленных серверах.

Движок достаточно простой в изучении. Кривая сложности – линейная, то есть вы постепенно прогрессируете равными шагами, чего нельзя сказать об Unreal Engine 4 и Unity3D, где кривая сложности – экспонента, когда очень просто начать и сделать прототип, но гораздо сложнее завершить начатое.

Преимущества:

  • большой набор инструментов и тулсетов: анализ производительности, конвертация моделей, плагин для браузера;
  • поддержка популярных физических движков: Bullet, NVIDIA PhysX, ODE;
  • наличие дополнительных возможностей: ИИ, процедурная анимация, графические ассеты, скелетная анимация.

Недостатки:

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

Игры на платформе: Disney’s Toontown, Disney’s Pirates of the Caribbean Online, Autumn Moon Entertainment: Ghost Pirates of Vooju Island и другие

Стоимость: бесплатно

Официальная страница: Panda 3D

CryEngine

CryEngine движок для создания игр

Еще одна платформа, сравнимая с Unity и Unreal Engine, – CryEngine. Это игровой движок, созданный немецкой компанией Crytek в 2002 году и первоначально использовавшийся в шутере от первого лица Far Cry. На CryEngine сделано много успешных игр от студий, которые лицензировали движок: Far Cry, Crysis, Entropia Universe, Blue Mars, Warface, Homefront: The Revolution, Sniper: Ghost Warrior, Armored Warfare, Evolve и многие другие.

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

CryEngine позволяет создавать игры с фотореалистичной графикой. При должном умении проекты, разработанные с его помощью, превосходят по качеству картинки любые игры на Unreal Engine 4 или Unity. Движок содержит функциональный realtime renderer, позволяющий быстро испытать только что созданный уровень или сцену.

Преимущества:

  • продвинутые возможности по разработке видеоигр и поддержка самых передовых технологий, включая DirectX 12, Vulkan API, VR;
  • попиксельное освещение в реальном времени;
  • детализированные текстуры, туман, поверхности с бликами, реалистичная физика, продвинутая анимация и многое другое.

Недостатки:

  • скромный выбор ассетов;
  • есть ограничения для сетевых игр;
  • слабое комьюнити и техническая поддержка.

Игры на платформе: Crysis, Hunt: Showdown, Kingdom Come: Deliverance и другие

Стоимость: бесплатно, но начиная с пятой версии – 5% при доходе от $5000

Официальная страница: CryEngine

GameMaker Studio 2

GameMaker Studio 2 движок для создания игр

GameMaker Studio – один из самых известных игровых движков наравне с Unity и Unreal Engine. На нем сделаны многие инди-хиты, например Undertale, также у него крайне низкий порог вхождения – необязательно уметь программировать, а все взаимодействия можно легко настраивать простым перетягиванием элементов.

Однако писать код в нем тоже можно – создатели разработали специальный язык GML (Game Maker Language). У него меньше возможностей, чем у C#, а некоторые его особенности не встречаются в других языках, но он очень прост в освоении – подойдет как новичкам, так и профессионалам.

Для начинающих гейм-разработчиков есть несколько бесплатных видеоуроков, которые охватывают основы. Есть объемные уроки про то, как создавать конкретные жанры игр, такие как пошаговые RPG, Tower Defense и фермы.

Преимущества:

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

Недостатки:

  • плохо оптимизирован для некоторых платформ;
  • плохо реализован инструмент для создания 3D-игр;
  • нет встроенного русскоязычного интерфейса;
  • в бесплатной версии нельзя опубликовать проект.

Игры на платформе: Katana Zero, Hyper Light Drifter

Стоимость: бесплатно либо от 82,95 рублей в месяц

Официальная страница: GameMaker Studio 2

Phaser 3

Phaser 3 движок для создания игр

Первая версия движка от студии Photon Storm появилась еще в 2013 году. Сегодня Phaser 3 – один из самых популярных фреймворков для создания HTML-игр. Есть возможность рендера как на Canvas, так и на WebGL. На основе библиотек PixiJS созданные игры можно скомпилировать на iOS и Android.

Phaser имеет визуальный редактор MightyEditor, который упрощает разработку, а также инструмент Phaser SandBox, позволяющий экспериментировать с возможностями фреймворка или собственным кодом, а также сохранять ссылку для демонстрации проекта.

Движок также позволяет одной строкой кода загружать различные ассеты: рисунки, звуки, spritesheet, tilemap, содержимое JSON и XML-файлов.

Преимущества:

  • богатый инструментарий для создания 2D-игр;
  • понятная документация со множеством наглядных примеров;
  • быстрая интеграция приложений с веб-сайтами.

Недостатки:

  • необходимость изучения JavaScript или TypeScript для использования дополнительных фич;
  • возможность портирования на мобильные платформы только при помощи сторонних инструментов: Apache Cordova, PhoneGap.

Игры на платформе: Scrap Memories – Chapter One, Something Dungeons, Gems ’n Ropes и другие

Стоимость: бесплатно

Официальная страница: Phaser 3

Defold

Defold движок для создания игр

Defold – один из главных конкурентов Unity, но используют его намного реже. Он рассчитан на двухмерные игры, которые программируются на языке Lua и запускаются почти на всех платформах – от браузеров до Nintendo Switch.

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

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

Преимущества:

  • кроссплатформенность;
  • простота использования;
  • развитое сообщество.

Недостатки:

  • своеобразный подход к организации объектов;
  • ограниченные возможности работы с 3D.

Игры на платформе: Family Island, Marginalia Hero и другие

Стоимость: бесплатно

Официальная страница: Defold

Ren’Py

Ren’Py движок для создания игр

Бесплатный движок с открытым кодом для создания визуальных новелл. С 2004 года его используют во всем мире для разработки коммерческих и бесплатных игр в этом жанре. Разработчики Ren’Py просят авторов зарегистрировать игру в специальном разделе сайта, где уже числится более 4500 игр.

Преимущества:

  • простой скриптовый язык;
  • руководство и интерфейс на русском языке;
  • множество инструментов для кастомизации.

Недостатки:

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

Игры на платформе: Бесконечное лето, Зайчик, Katawa Shoujo, ALLBLACK Phase 1 и другие

Стоимость: бесплатно

Официальная страница: Ren’Py

Amazon Lumberyard

Lumberyard движок для создания игр

Это молодой и бесплатный движок для разработки игр AAA-класса, с открытым исходным кодом и на основе CryEngine. Главная особенность – встроенная поддержка сервисов от Amazon, например AWS и Twitch.

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

Преимущества:

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

Недостатки:

  • необходимость использования исключительно сервисов Amazon.

Игры на платформе: Coffence, The Grand Tour Game, New World и другие

Стоимость: бесплатный, но за сервисы от Amazon придется заплатить

Официальная страница: Amazon Lumberyard

Cocos2d

Cocos2d

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

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

Преимущества:

  • кроссплатформенность;
  • анимация спрайтов;
  • поддержка Python, C++, Lua и JavaScript.

Недостатки:

  • ограниченные 3D-возможности;
  • отсутствие встроенной поддержки физики.

Игры на платформе: Clash of Lords 2, Flow Free, Shadow Fight 2, Hill Climb Racing, Geometry Dash

Стоимость: бесплатно

Официальная страница: Cocos2d

Adobe AIR SDK (HARMAN)

Adobe AIR SDK (HARMAN)

Adobe AIR SDK позволяет создавать игры для ОС Windows, macOS, iOS и Android. Этот движок имеет множество инструментов и библиотек, которые помогают в написании крутых игрушек, среди которых ActionScript, JavaScript или HTML/CSS.

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

Преимущества:

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

Недостатки:

  • долгое ожидание обратной связи от Adobe BugBase об устранении багов;
  • встроенный доступ к SQLite и веб-сервисам ограничен и создает сложности при работе с базами.

Игры на платформе: Machinarium, Super Hexagon

Стоимость: бесплатно

Официальная страница: Adobe AIR

LÖVE

Лов – легкий программный продукт, который отличается чистотой и простотой синтаксиса. Код страниц выглядит красиво и элегантно, не приходится тратить время на мелочи, чтобы заставить работать OpenGL.

А еще LÖVE радует великолепными библиотеками. Например, есть встроенная поддержка Box2D, что позволяет создавать реалистичную физику, – можно сразу включаться в работу и делать действительно стоящие вещи, не тратя силы на настройку.

Преимущества:

  • предоставляет доступ к крутым библиотекам прямо из Луа-кода;
  • поддержка Lua-библиотек Simple-Tiled-Implementation;
  • открытая IDE на Луа ZeroBrane Studio.

Недостатки:

  • требует знания языка программирования Lua;
  • LÖVE не имеет готовых инструментов разработки.

Игры на платформе: Space Invaders

Стоимость: бесплатно

Официальная страница: LÖVE

Solar 2D (бывший Corona SDK)

Solar 2D (бывший Corona SDK)

Этот геймдев-фреймворк позволяет разрабатывать игрушки для различных платформ, включая iOS, Android и десктопы. Solar2D использует Lua, который является дружественным и достаточно простым для изучения. Но самая главная его плюха – поддержка быстрой разработки и прототипирование игровых идей.

Преимущества:

  • скриптинг на Lua;
  • мультиплатформенность;
  • для создания Android-приложений больше не нужен Java/JDK.

Недостатки:

  • ресурсы привязаны к плагинам;
  • ориентирован на 2D-графику;
  • недостаток обучающих материалов.

Игры на платформе Solar2D: Magician’s Legacy, Ball, Necromancer Returns

Стоимость RPG Maker: бесплатно

Официальная страница: Solar2D

jMonkeyEngine

jMonkeyEngine

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

Преимущества:

  • расширенная настройка фич;
  • поддержка OpenGL;
  • рендеринг через LWJGL.

Недостатки:

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

Игры на платформе: Mythruna, Astrocreep

Стоимость: бесплатно

Официальная страница: jMonkeyEngine

LibGDX

LibGDX

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

Преимущества:

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

Недостатки:

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

Игры на платформе: Grimmwood, Albion Online, Stonehearth

Стоимость: бесплатно

Официальная страница: LibGDX

Urho3D

Urho3D

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

Преимущества:

  • аппаратный скининг;
  • инстансинг с поддержкой Shader Model 3;
  • поддержка AngelScript.

Недостатки:

  • требует знания CodeBlocks, Visual Studio, Eclipse, Xcode.
  • нуждается в высокопроизводительном железе для быстрой детализации геометрии, материалов и анимации.

Игры на платформе: Urho3D Sample Game

Стоимость: бесплатно

Официальная страница: Urho3D

Bitty

Bitty

Bitty Engine – мощный инструмент разработки 2D-игр любого жанра. Открытый фреймворк имеет встроенные редакторы, значительно упрощающие процесс создания игровых проектов в двухмерном пространстве с различными видами камер. Эта платформа поддерживает сборку автономных проектов под разные ОС.

Преимущества:

  • интерфейс автоматом подстраивается под большие разрешения;
  • можно работать с файлами, архивами, JSON, сетью;
  • есть шаблоны для быстрого старта.

Недостатки:

Игры на платформе: Roblox

Стоимость: бесплатно

Официальная страница: Bitty Engine

GDEVELOP

GDEVELOP

Главная черта программы – систематичность. С использованием конструктора можно легко определить логику игр без углубления в программирование. Геймдевам доступен интуитивно понятный визуальный редактор, что делает этот проект подходящим даже для детей. GDevelop подходит для разработки разнообразных пиксельных игровых жанров, включая платформеры, головоломки, новеллы и аркады.

Преимущества:

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

Недостатки:

  • нет возможностей для создания сложных сценариев.

Стоимость: бесплатно

Официальная страница: GDEVELOP

Bitsy

Bitsy

Битси – это полнофункциональный редактор для выпуска простых игр и небольших локаций на базе HTML. Геймдев обладает простотой использования и максимальной доступностью, что позволяет быстро создавать игры. Цель автора Битси, Адама Леду, заключается в предоставлении легкого способа написания игр, которые позволяют геймерам исследовать, взаимодействовать и просто наслаждаться игровым процессом.

Преимущества:

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

Недостатки:

  • не подходит для создания сложных RPG-сюжетов или игр с многоуровневым геймплеем;
  • игры, созданные на этом движке, привлекают узкую аудиторию из-за ретрографики и незамысловатых игровых механик.

Игры на платформе: Evangelion Art, A RESUME, A Commuter

Стоимость: бесплатно

Официальная страница: Bitsy

Twine

Twine

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

Преимущества:

  • быстрое прототипирование;
  • экспорт в HTML;
  • игровой движок без кода.

Недостатки:

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

Игры на платформе: Hell love, Pure Spring, Emoji game

Стоимость: бесплатно

Официальная страница: Twine

XNA/MonoGame

XNA/MonoGame

XNA является форком оригинального XNA Framework, который был создан для продолжения развития и поддержки этого продукта после официального закрытия проекта. MonoGame является открытым проектом с открытым исходником, развиваемым сообществом разработчиков.

MonoGame является последователем XNA и предоставляет широкую поддержку платформ, включая Windows, Mac, Linux, Android, iOS и PlayStation. В то же время XNA ориентирован преимущественно на платформы Windows, Xbox 360 и Windows Phone.

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

Игры на платформе XNA: Magicka, Storm, Bastion

Игры на платформе MonoGame: Axiom Verge, Celeste, Transistor

Стоимость: бесплатно для некоммерческого использования

Официальный сайт: MonoGame

SpriteKit

SpriteKit

Движок для создания 2D-игр от Apple на основе Box2D, который генерирует реалистичные физические эффекты в играх. Всю работу по отрисовке берет на себя OpenGl, и это происходит низкоуровнево.

Для создания игр использовался Objective-C, но с появлением iOS 8 заниматься геймдевом можно с помощью Swift, за счет чего SpriteKit обрел популярность среди девелоперов.

Преимущества:

  • поддержка OpenGl плавно погружает в игровой мир;
  • Box2D создает реалистичную картину движений;
  • интеграция с Xcode и Swift.

Недостатки:

  • SpriteKit ориентирован только на устройства Apple;
  • предназначен преимущественно для создания 2D-графики.

Игры на платформе: Space invader, Space Quest

Стоимость: бесплатно

Официальная страница: SpriteKit

Box2D

Box2D

Box2D – это мощный инструмент продвинутых девелоперов, который разрушает стандартные представления о геймдеве. Эта платформа разработана специально для того, чтобы придать телам со сложной геометрией реалистичные движения. «Под капотом» технологии лежит C++, что делает движок кроссплатформенным.

Преимущества:

  • доступность рейкастинга;
  • новые типы джоинтов;
  • использование биндинга для применения движка на Python и DarkBasic.

Недостатки:

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

Игры на платформе: Angry Birds, Rolando, Crayon Physics Deluxe, Limbo, Fantastic Contraption

Стоимость: бесплатно

Официальная страница: Box2D

НЕбесплатные движки с itch.io и Steam

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

Construct 3

Construct

Фишка Construct 3 в его визуальном сопровождении. Даже новичкам по силам освоить его и запилить свой первый проект. Но самое крутое – это его скорость. Благодаря удобному интерфейсу можно быстро строить прототипы и тестить идеи.

Преимущества:

  • поддержка плагинов «Gamepad», «Mouse», «Keyboard», «iAP» «Facebook»;
  • наличие визуальных эффектов «blur», «noise», «distortions»;
  • присутствие AJAX, Web Sockets, WebRTC DataChannels упрощает работу.

Недостатки:

  • не поддерживает виртуальную реальность;
  • не может управлять IT-активами.

Игры на платформе: Throwy, The fog of war, RoboCar

Стоимость: 99$/149$ в год

Официальная страница: Construct 3

RPG Maker

RPG Maker

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

Преимущества:

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

Недостатки:

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

Игры на платформе: Corpse Party, Yume Nikki, Ao Oni

Стоимость: 79.99$

Официальная страница: RPG Maker

Stencyl

Stencyl

«Создай 2D-игры без кода» – главный девиз платформы. С помощью этого геймдева джуны могут воплощать творческие идеи в увлекательные игры, используя интуитивный редактор.

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

Преимущества:

  • бесплатная библиотека игровых ресурсов StencylForge;
  • поддержка HTML5, Flash, iOS и Android;
  • активное сообщество разработчиков, которые делятся своими знаниями, ресурсами и поддержкой.

Недостатки:

  • зависимость от сторонних плагинов;
  • примитивная организация игрового процесса.

Игры на платформе: Heart Start, Super Dangerous Dungeons, Duke Dashington, Remastered

Стоимость: 99$/199$ в год

Официальная страница: Stencyl

Заключение

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

Как разобраться в игровых движках

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

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

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

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

Касательно внутреннего устройства игровые движки делятся на:

  • Полноценное ПО — это такая специальная программа, которая может собрать игру воедино за вас, а вам предоставляет полноценный редактор.
  • Фреймворк — это набор полезных классов и функций, которые вы можете использовать при создании своей игры с нуля. Игру вам придётся собирать самостоятельно, но зато у вас будет больше контроля за процессом.

Если мы говорим о фреймворках, то игра пишется на том же языке, на котором написан фреймворк. Если же мы говорим о полноценном ПО, то программировать в них можно на:

  • Полноценный язык программирования. Такими языками могут быть C++, C#, Javascript, Lua.
  • Адаптированный скриптовый язык. Обычно за основу берётся какой-нибудь скриптовый язык, а его синтаксис и возможности расширяются, чтобы им было проще пользоваться в контексте разработки игр. Тут нет универсальных решений, но чаще всего эти языки очень похожи друг на друга.
  • Визуальный интерфейс. Это абсолютно такой же процесс программирования, но вместо написания строк кода вы соединяете узлы действий между собой. Это ещё проще, чем писать код вручную, но процесс программирования всё равно изучать придётся. А ещё в узлах сложнее ориентироваться из-за их громоздкости.

Если говорить о лицензии, то тут тоже есть несколько вариантов:

  • Платные движки — за использование этих программ придётся платить, иногда даже каждый месяц.
  • Бесплатные для использования — эти движки вы можете спокойно скачать и использовать для разработки, но чтобы продавать игры, сделанные на нём, придётся отчислять процент владельцам движка.
  • Движки с открытым исходным кодом — эти движки вы можете спокойно скачать и использовать с минимумом ограничений.

Возможности, которые может предоставлять или не предоставлять игровой движок (список неокончательный):

  • Система уровней
  • Физика
  • Система частиц
  • Навигация
  • Двумерная анимация
  • Трёхмерная анимация
  • Карты тайлов
  • Редактор местности (terrain)
  • Воспроизведение звука
  • Источники освещения и тени
  • Шейдеры
  • Диалоговая система

Чем больше возможностей предоставляет движок, тем сложнее и дольше им пользоваться из-за огромного количества кнопочек и удлинённого времени компиляции, так что подбирать движок лучше не из соображений «чтобы умел побольше», но «взять достаточно для моих нужд — и не больше».

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

Игровой мир состоит из игровых объектов (GameObject). К этой базовой категории можно практически отнести всё, что находится в игре, в том числе игрока, его инвентарь, камеру, землю под ногами, каждый отдельный кустик и даже небо. Не стоит думать, что все объекты обязательно должны быть видимы — всякие триггеры (объекты, вызывающие события при прикосновении), барьеры, источники освещения и даже части интерфейса являются такими же объектами. Все игровые объекты обладают несколькими базовыми свойствами: положение в пространстве (Transform), включены ли они (Active), какой у них родительский объект и есть ли он (Parent).

Игровые объекты так же могут быть дополнены поведением (Behaviour или Component). Поведение — это отдельный код, который привязан к объекту и выполняется при определённых условиях. Условия могут быть самыми разными, а количество поведений, привязанных к объекту, ничем не ограничено. В таком коде вы например можете двигать объект по движению мыши или перекрашивать его цвет. А ещё у каждого поведения могут быть свои отдельные параметры (выраженные в переменных).

Например, мы можем создать для картинки поведение «Персонаж», у которого будут очки здоровья и возможность прыгать. И когда персонаж падает со слишком большой высоты, эти очки здоровья у него отнимать.

Помимо своих собственных поведений в игровом движке есть несколько стандартных типов поведений: форма столкновения (Bounding Box/Sphere/Capsule/…), физическое тело (Rigidbody), отрисовщик (Renderer), камера (Camera), создатель частиц (Particle Manager), аниматор (Animator) и ещё десятки других типов. Всеми этими поведениями вы можете управлять на лету.

Очень важным концептом является событие (Event). Это сигнал, который возникает при соблюдении каких-то условий. Поведения объектов в игре могут порождать эти события и реагировать на них. Например, столкновение — это событие, причём одно из самых частых по использованию. Именно на событиях строится основной игровой процесс, разработчик игры может навешивать действия (Action) одних поведений на события других и так, например, делать кнопки, рычаги, точки сохранений и так далее.

Но это и не единственный способ заставить игру работать, ещё есть раздел Update, в который можно написать код и который будет выполняться постоянно, в каждый игровой тик (tick). Тик — это самая минимальная единица времени, которую игра может обеспечить. Обычно тик составляет 16 миллисекунд, но если у вас плохо с оптимизацией, то он увеличится. Без этой функции не обойтись, и некоторые вещи, например плавное передвижение и проверка столкновений, пишутся именно там. Но чем меньше кода написано в этой секции — тем лучше.

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

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

И последнее, про графику. Объекты в игре могут выглядеть самым разным способом. И дело даже не в отдельный настройках, а в самом способе их отображения на экране. Это могут быть 2D-объекты, например различные простейшие геометрические формы (Shape) или картинки (Sprite). А могут и 3D-объекты, которые состоят из 3D-модели (Mesh). Все видимые объекты в игре обязаны иметь материал (Material) — набор параметров, влияющий на отображение объекта. Такими параметрами могут являться текстуры (Texture), цвета (Color) и обычные числа (Float). Некоторые движки дают доступ ограниченный доступ материалу, давая лишь задать текстуру и цвет окрашивания, другие же дают полный доступ. В основе материала лежит шейдер (Shader) — особая программа, которая проводит математические вычисления и проецирует объекты в пространстве на плоский экран камеры.

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

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

Stencyl — ещё один движок для создания 2D-игр. Имеет открытый исходный код и и приятный интерфейс. Логика на визуальном интерфейсе. Мало известен, но полностью бесплатен (платно только публикация на ПК).

GDevelop — другой движок для создания 2D-игр, набирающий огромную популярность. Так же имеет открытый исходный код и приятный интерфейс. Логика на визуальном интерфейсе. Полностью бесплатен.

RPG Maker — очень популярный движок для создания пиксельных RPG. Именно для RPG движок и заточен, но он подойдёт и для похожих жанров. Много встроенных ассетов и настроек для персонажей. Есть бесплатный 30-дневный пробник, дальше придётся платить.

Game Maker Studio — очень популярный движок для разработки 2D-игр. Позволяет программировать логику на адаптированном Lua и даёт много возможностей. Есть бесплатный 30-дневный пробник, дальше придётся платить.

Godot — очень многообещающий движок с открытым исходным кодом, который грозится «заменить Unity» в своей распространённости. Godot поддерживает 2D и 3D графику, а так же несколько языков программирования (C++, C# и модификация Python) и имеет свой визуальный скриптинг. Его использование полностью бесплатно.

Ren’Py — самый популярный движок визуальных новелл, на котором написаны тысячи новелл. Использует Python в качестве языка программирования логики. Полностью бесплатен

Monogatari — простой движок визуальных новелл на веб-технологиях. Мало известен, но выглядит интересно, к тому же движок на Javascript легче исправить под свои нужды. Код пишется на том же языке. Полностью бесплатен.

Unity — самый популярный в мире движок для разработки игр. Поддерживает 2D и 3D графику, имеет в себе невиданное количество вспомогательных модулей, огромный магазин ассетов и поддерживает большинство платформ. К сожалению, с ростом популярности движок становится всё сложнее и тяжелее в освоении, но всё равно очень доступен. Программирование на C#. Использование условно-бесплатное, при превышении определённого порога прибыли придётся платить за лицензию.

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

Source — игровой движок, использумый Valve для своих игр. Использование напрямую недоступно, но с помощью него можно делать модификации на основе других игр — и вот тут уже намного больше возможностей.

Cocos2d — популярный фреймворк, портированный на несколько языков (C, Python, JS, Swift, C#). С его помощью сделано много игр в том числе для мобильных устройств.

Phaser — набирающий популярность фреймворк для разработки игр на Javascript.

libGDX — завоевавший доверие фреймворк для разработки игр для Java.

SFML — популярный фреймворк для разработки игр на C++

Что ж, теперь вы знаете, как выбрать движок и какие опции доступны. А теперь дерзайте! Скачивайте, тыкайте, экспериментируйте. На сайтах движков вы можете найти очень много шаблонов и примеров, а на YouTube (особенно английской его версии) можно найти буквально сотни и иногда даже тысячи гайдов по тем или иным сторонам разработки. Ждём ваши работы!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *