Unreal Engine 4 для инди и прототипирования
Последняя статья из цикла «Разработка» — работаем с редактором UE4, пишем логику без навыков программирования и начинаем конкурс работ.
Автор: Александр Блинцов. Специализируется на Unreal Engine. В Pixonic является клиентским разработчиком и отвечает за разработку и поддержку технической стороны нового сетевого мобильного шутера.
Уже две статьи цикла «Разработка» были полностью посвящены Unity и различным туториалам для этого движка. А в этой я расскажу об относительно молодом Unreal Engine 4. Несмотря на то, что оригинальный UE существует уже два десятилетия, новая версия была почти полностью переписана и сильно повлияла на разработку игр в целом. Мы рассмотрим основные плюсы этого движка для начинающих инди-разработчиков с упором на тех, которые никогда раньше не занимались программированием.
Четвертая версия движка вышла в 2014 году и распространялась по подписке за $19 в месяц. Но уже через год Epic Games сделала его бесплатным, после чего Unreal Engine 4 начали использовать не только студии, но и инди-разработчики.
Одно из главных преимуществ движка — это множество инструментов и возможностей «из коробки». Не нужно писать или покупать плагины, достаточно скачать редактор, и можно приступать к разработке.
Несмотря на «новизну» UE4, сообщество вокруг движка растёт очень быстро, появляется огромное количество туториалов, документации, ассетов и плагинов.
Шаблоны и демо-проекты
Сразу после запуска движка вам предложат выбрать один из шаблонов. Можно, конечно, открыть пустой, но всегда легче переписывать и дополнять что-то готовое, если шаблон подходит к выбранному жанру.
Стоит обратить внимание на демки из лаунчера Epic Games (вкладка Learn/Изучить). Там можно найти очень много проектов на разные темы. Причём это практически полноценные прототипы игр, с логикой и графикой.
Демо идеально подойдут новичкам — их можно изучать или сделать свой проект на их основе. Все готовые шаблоны и демо можно использовать в коммерческих целях.
Лайфхак: можно собрать проект полностью на основе предложенного контента, а потом потихоньку заменять его на свой, оригинальный.
Редактор
После выбора шаблона или демо-проекта вы попадёте в редактор. В первый раз здесь можно потеряться — в UE4 огромное количество фичей и кнопочек, а у каждого ассета есть ещё и внутренний редактор для настройки контента. Например, в отдельном редакторе статичных мешей можно сгенерировать низкополигональные модельки, а в редакторе анимаций создать позы или изменить анимацию.
Может показаться, что редактор перегружен функционалом, но в этом и плюс: всё необходимое находится в одном месте. Хотя создавать хороший контент (модели, звуки, текстуры и т.д.) всё равно придётся в сторонних программах.
Зато в UE4 есть инструменты для прототипирования, благодаря которым можно собрать билд игры вообще без использования других программ. Например, с помощью Brush’ей можно смоделировать базовый мир и предметы. А уже потом поменять их на более качественные или оставить как есть, если стилистика проекта позволяет.
Blueprints
Прежде чем заменять тестовый контент на собственный, стоит написать механику, то есть кор-геймплей, от которого зависит почти всё в вашей игре. Обычно для этого нужно изучать язык программирования (в Unity, например, это С#, а в UE4 — C++) и писать код, чтобы всё работало как задумано. Но новички могут обойтись и без этого.
В Unreal Engine 4 есть Blueprints — специальный инструмент визуального программирования. Он позволяет строить логику игры с помощью блок-схем из нод. Инструмент достаточно наглядный, простой и интересный в работе. Например, оба скрипта на скриншотах ниже создают мигающую лампочку.
С блюпринтами работать намного легче, потому что в них невозможно допустить синтаксическую ошибку — подать неправильный тип данных или забыть поставить нужный знак. Ещё блюпринты защищают от вылетов программы. Например, если в С++ попытаться получить доступ к несуществующему объекту, игра вылетит, а в блюпринтах просто появится ошибка в логе.
Звучит слишком хорошо, чтобы быть правдой. Подвох в том, что несмотря на низкий порог входа и наглядность, блюпринты — полноценный инструмент объектно-ориентированного программирования (ООП).
Оно требует практики, чтобы правильно всё организовывать, разделять по классам, компонентам и держать в чистоте. Кроме того, с помощью блюпринтов не получится отправить внешний запрос (например, по http), поработать с файловой системой компьютера или подключить стороннюю библиотеку. Для этого придется качать плагины или писать их самостоятельно. Но в остальном можно обойтись и дефолтными блюпринтами — внутри движка они умеют всё, что нужно.
В итоге игру можно написать только на блюпринтах (причём не только одиночную, но и сетевую) и во многих случаях разницы в производительности не будет. Хотя зависит от самой игры.
В Unity, кстати, тоже есть аналогичный инструмент. Он называется Playmaker, но стоит 45 долларов.
Меши, материалы и эффекты
Предположим, у вас уже готов прототип игрового мира и механика геймплея. Теперь нужно импортировать модели и настроить материалы к ним, чтобы всё выглядело как нужно. Мы обойдёмся готовыми ассетами.
Движок поддерживает .fbx и .obj форматы 3D-моделей, а также все популярные форматы текстур. Импортировать их достаточно просто — можно даже закинуть всё в папку с проектом, и импорт произойдёт автоматически.
Ещё важно настроить материалы, то есть шейдеры. Обычно они пишутся кодом в других программах, но в Unreal Engine 4 и на этот случай есть визуальный инструментарий, который позволяет описать инструкции шейдера нодами. Может показаться запутанным, но на самом деле для простых материалов присоединить нужные текстуры и получить реалистичный вид не так сложно.
Добавив еще немного смешиваний, можно получить эффекты поинтереснее.
Не забудем и про визуальные эффекты. Сейчас в UE4 для них есть два редактора: модульный и нодовый. В первом собирается система частиц и эффектов с помощью модулей и настроек. А во втором можно создавать эффекты с помощью нодового редактора, очень похожего на редактор материалов. Там можно гибко настраивать эффекты для получения нужного результата.
Вот так преобразился прототип локации из начала статьи после импорта и настройки контента.
Интерфейс пользователя
Хорошо, графика уже выглядит прилично. Осталось настроить пользовательский интерфейс (UI).
В Unreal Engine 4 есть специальный редактор виджетов — UMG. Как и всё остальное, он простой и мощный. Можно размещать элементы с якорями, можно создавать блочную вёрстку, встраивать виджеты внутри других виджетов и так далее. Есть куча разных настроек, почти всё можно переделать или анимировать.
С помощью UMG можно создать меню, HUD и другие части пользовательского интерфейса, а настроить работу всего этого можно через те же блюпринты.
Звук
Значительную часть атмосферы игры создают звуковые эффекты. Со звуком работать тоже не сложно, достаточно импортировать его форматом Wav 16 и проигрывать с помощью блюпринтов (или кода на С++) в нужном месте. Или поставить компонент звука и включать/выключать его в нужные моменты.
Миксовать и создавать комплексные звуковые эффекты в UE4 тоже можно — опять же, с помощью нодового редактора.
Сборка
Проект готов, и вполне возможно, что во время работы даже не нужно было открывать другие программы — помимо браузера с документацией и магазина с ассетами. Здорово! Теперь нужно собрать игру под определённую платформу.
UE4 позволяет собрать проект под все популярные платформы, от ПК и консолей до мобильных устройств и даже HTML5. Для ПК хватает одного клика, а вот для остальных платформ может понадобиться дополнительный SDK, инструкции по которому есть в документации.
В Unreal Engine 4 есть ещё много полезных инструментов, мы разобрали только самые основные. В целом, это один из самых привлекательных движков на сегодняшний день — много полезных инструментов и лёгок в освоении.
Итоги цикла о геймдизайне и розыгрыш PlayStation 4 Pro Spider-Man Limited Edition
Второй цикл статей для начинающих разработчиков игр подошёл к концу — вспомним, с чем мы успели познакомиться.
- Первая статья «Выбор движка для первой игры».
- Вторая статья «Учимся делать 2D-игры с нуля».
- Третья статья «Учимся делать 3D-игры с нуля».
- Правила для тех, кто хочет выиграть лимитированный бандл PS4.
Цель этих статей — показать, что начать разрабатывать игры может любой. Для этого не нужно заканчивать профильные университеты или досконально знать программирование.
В прошлом разделе «Геймдизайн» мы создавали концепт, проверяли идеи и формулировали уникальные черты будущей игры. Теперь пришло время показать игровой прототип игры или основной механики. Среди участников мы снова разыграем лимитированное издание PlayStation 4 Pro — Spider-Man Limited Edition.
Задание
Чтобы принять участие в конкурсе и собрать наш фидбек, необходимо:
- Выбрать движок и в паре строк объяснить, почему именно он.
- Определить и кратко описать одну из основных механик вашей игры. Например, пошаговый бой в rogue-like, в шутере — бег по стенам, а в детективном квесте — пара головоломок. Будет плюсом, если она в чём-то будет уникальной.
- Сделать прототип этой механики или механик на любом движке — от RPG Maker до Unity или Unreal Engine 4. Не важно, насколько красивым он будет.
- Прислать ссылку на прототип и описание на нашу почту kojima@pixonic.com до 20 декабря 2018 года.
В конкурсе могут участвовать любые прототипы, в том числе сделанные и до цикла «Разработка». Главное, чтобы это был именно прототип, а не часть уже выпущенного проекта или бета-версии перед релизом.
Помните, прототип — это не урезанная версия игры, а только проверка гипотезы. Он может быть сделан и «на кубиках».
Прототип должен показывать, что играть будет интересно. Не стоит делать высокополигональные модели и заказывать музыку у композитора — всё это успеется, сначала нужно понять, что игра того стоит.
На этом цикл заканчивается, а впереди у нас арт и маркетинг. Последняя тема будет полезной, даже если нет многомиллионного бюджета на рекламу.