Unreal Engine 4 используют как крупные компании, так и небольшие инди-студии. На UE4 созданы Final Fantasy VII Remake, Returnal, Gears 5, Borderlands 3, Fortnite, Abzû, Observer и многие другие игры.

Узнали у геймэнтузиаста Владимира Семыкина и преподавателя курса «Геймдизайнер» Антона Токарева, в чём же причины такой популярности Unreal Engine и что лучше для начинающего разработчика игр — Blueprints или C++.

Gears 5 — шутер канадской компании The Coalition, — использует движок UE4

Есть несколько причин большой популярности UE4. 

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

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

В-третьих, движком можно пользоваться бесплатно: в лицензионном соглашении Unreal Engine указано, что пока ваша игра не принесёт более $1 000 000 — после этого придётся платить 5% от дохода. 

Также в Unreal Engine 4 есть возможность сделать игру, которая запустится на всех популярных платформах: PlayStation, Xbox, Switch, ПК, iOS, Android. 

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

Epic Games постоянно устраивает бесплатные раздачи ассетов, которые могут пригодиться при разработке игры

Большое преимущество Unreal Engine 4 в универсальности и доступности — его могут использовать как опытные разработчики, так и новички, которые впервые берутся за создание игры. Всё дело в том, что UE4 по умолчанию поддерживает сразу два языка программирования: текстовый C++, в котором нужно писать строчки кода, и визуальный язык Blueprints, в котором игровая логика выстраивается при помощи связанных между собой блоков. Такой подход помогает сделать программирование более наглядным и понятным для тех, у кого нет опыта.

«Blueprints разработала компания Epic Games, чтобы дать инструменты программирования людям, которые далеки от этого. Поэтому научиться работать с Blueprints очень легко. Конечно, необходимо получить минимальную теоретическую базу, например, разобраться, что такое переменные и как работает функциональное и объектно-ориентированное программирование. 

Но и эту теоретическую базу можно изучать, применяя Blueprints. И даже без неё можно сделать что-то интерактивное, например, кнопку, которая открывает дверь. Язык Blueprints крайне прост в освоении, и в нём есть много решений, которые делают его применение удобнее. Например, цветовая индикация различных типов переменных», — Антон Токарев, преподаватель Нетологии, геймдизайнер в Apella Games.

Пример логики для шарика, который отскакивает от препятствий и теряет скорость после каждого столкновения

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

Несмотря на то, что Blueprints проще для понимания, такой скриптинг почти не уступает C++ по функциям — есть лишь несколько редких исключений, в которых Blueprints немного ограничен.

«Таких ограничений мало. Они упираются либо в невозможность изменить исходный код движка UE4 (для этого нужен C++) и базовых классов проекта, либо в производительность сложных математических расчётов, например, обработки таблиц данных сотен игроков в MMO.

Практически всё можно реализовать на Blueprints. Все принципы и подходы программирования, которые используют в текстовых языках (вроде C++), также можно применять и в Blueprints», — Антон Токарев, преподаватель Нетологии, геймдизайнер в Apella Games.

Так выглядит программирование на C++, который представляет собой более традиционный текстовый язык — нужно писать строчки кода, а не соединять ноды

«Самое лучшее — совмещать работу в C++ и Blueprints. Например, структуры, которые состоят из групп переменных, и энумераторы (нумерованные списки) гораздо более стабильны, если созданы в C++. А вот их Blueprint-аналоги могут не пережить сложных изменений, к примеру, переименования или удаления нескольких элементов. И хоть это происходит редко, лучше избегать подобного и создавать их в C++. 

Также любые сложные вычисления на C++ работают гораздо быстрее. Всё дело в том, что при запуске игры автоматически включается специальная виртуальная машина, которая исполняет все функции, созданные с помощью Blueprints. Отсюда и большее время обработки вычислений», — Антон Токарев, преподаватель Нетологии, геймдизайнер в Apella Games.

Returnal — шутер финской студии Housemarque, вышедший на PlayStation 5 в апреле 2021 года, также использует движок Unreal Engine 4

Blueprints и C++ можно воспринимать как два последовательных этапа в процессе овладения Unreal Engine 4. Blueprints проще для восприятия и позволяет познакомиться с базовыми принципами программирования. А благодаря изучению C++ вы сможете разобраться, как всё это устроено изнутри.

«Изучая Blueprints, вы познакомитесь с основными классами и функциями самого движка, а углубляясь в C++ вы узнаете как они работают изнутри. Но пользуясь только Blueprints, у вас всё равно будет полный доступ ко всему, что вам может понадобиться для создания собственной инди-игры или интерактивного проекта», — Антон Токарев, преподаватель Нетологии, геймдизайнер в Apella Games.

Abzû — приключенческая игра от студии Giant Squid, вышедшая в 2016 году. В качестве игрового движка используется Unreal Engine 4 — он помог разработчикам воссоздать движение косяков рыб, анимацию растительности и подводное освещение

Конечно, в студиях, состоящих из нескольких человек, владение UE4 требуется далеко не всем.

«Чаще всего непосредственно с редактором UE4 работают два вида геймдизайнеров: левел-дизайнеры и технические геймдизайнеры. Первые — собирают уровни, поэтому им необходимо знать инструментарий движка в контексте работы со сценой и объектами в ней. А также знать основы работы с Blueprints, чтобы заниматься скриптингом уровней — добавлять логику взаимосвязанных элементов уровня: вроде выключателей, дверей и так далее. 

Вторые же прототипируют механики, создают инструменты для всех дизайнеров на проекте и выступают в роли мостика между командой дизайнеров и командой программистов. Они должны глубоко знать Blueprints, сам движок и понимать, как работает C++ и как он связан с Blueprints», — Антон Токарев, преподаватель Нетологии, геймдизайнер в Apella Games.

Observer — психологический хоррор от польской студии Bloober Team. Разработка также велась на базе игрового движка Unreal Engine 4

Знание Blueprints может оказаться полезным для геймдизайнеров — это позволит быстро прототипировать и пробовать собственные идеи на практике. А C++ необходим для инженеров-программистов, для которых язык программирования — это основной инструмент в работе. 

UE4 можно использовать и при соло-разработке. Часто инди-разработчики применяют чужие ассеты — это позволяет быстрее закончить игру, так как реализация отдельных механик может занять много времени. К счастью, в магазине представлены ассеты, сделанные как на Blueprints, так и на C++.

«Есть и Blueprints-ассеты, есть и C++ ассеты, а есть и плагины, которые написаны на C++. Есть ассеты на любой вкус! Например, ассеты на Blueprints очень полезно рассматривать изнутри — изучать, как они сделаны, и на их примере обучаться. Не все они созданы идеально, но поучиться всегда есть чему. Как минимум — как делать не надо, если вдруг там всё плохо. 

Не рекомендуется использовать сторонние Blueprints-ассеты как базовые фичи своего проекта, потому что их сделали не вы. А это значит, что вы не можете быть уверены в том, что они работают как вам нужно. И зачастую их неудобно менять — особенно если автор продолжает выпускать обновления для них», — Антон Токарев, преподаватель Нетологии, геймдизайнер в Apella Games.

*****

В итоге, Unreal Engine 4 — один из самых популярных движков из-за нескольких важных преимуществ:

  • универсальность. UE4 можно использовать и для PlayStation, и для Switch, и для ПК, — буквально для чего угодно — это даёт нужную гибкость при разработке игры;

  • большая библиотекой ассетов;

  • простота входа из-за Blueprints. Правда, для профессиональной работы всё равно понадобится изучить C++;

  • хорошая задокументированность и поддерживаемость, активное сообщество с кучей opensource-инструментов;

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

Владение Unreal Engine 4 открывает перед специалистом большие возможности. Он может сделать игру в одиночку, а может присоединиться к команде. При этом предыдущий опыт имеет не такое уж большое значение — начинающий разработчик без особых проблем сможете обучиться Blueprints, чтобы создать собственный проект. Это станет отличной базой для дальнейшего изучения C++, знание которого позволит ещё больше углубиться в создание внутренней архитектуры игры.