Unity против Unreal. Какой движок выбрать начинающему разработчику

На рынке инди-игр когда-то доминировал движок Unity, и по сей день он силён в своём сегменте, но постепенно сдаёт позиции Unreal Engine 4. Сегодня мы поговорим о том, почему так происходит и попробуем помочь определиться с выбором сердца вашей будущей игры.

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

Сегодня самый большой конкурент Unity – Unreal Engine, который превратился в ещё одну бесплатную и удобную для пользователей среду. 

У двух движков обширные наборы инструментов, включающие редактор ландшафтов, симуляцию физики, анимацию, улученное освещение, поддержку VR и многое другое. Но в последнее время можно заметить, что многие разработчики с небольшими или средними проектами, выполненными в Unity, начинают переключаться на продукт Epic Games. Некоторые даже пытаются делать свои первые полноценные игры на Unreal Engine 4. Почему?


Больший эффект меньшими усилиями

В сегодняшнем стремлении к лучшей графике избалованный ААА-проектами игрок чувствует себя матёрым продюсером, поэтому любой продукт с небольшим бюджетом и без художников с 20-летним опытом считается как минимум посредственностью. Лучший пример – игры-выживания, которые часто выглядят неплохо, но не обеспечивают настолько высокого качества, как у Gears of War, God of War и даже Days Gone. Поэтому, начиная создавать игру, разработчики думают, как добиться крутых эффектов самым простым способом, и здесь однозначно выигрывает Unreal Engine 4. После первого запуска он даёт пресловутый «вау-эффект» с демонстрацией красивого освещения, детализированных моделей и мощных инструментов для изменения графики.

В Unity мы видим грубую, устаревшую сцену. Чтобы добиться хорошего эффекта, похожего на UE4, придётся потрудиться: изменить систему рендеринга с нормальной на HDRP, заменить свет и скайбокс на более приятные. Но даже после трансформации такой же результат не получится. В основном это связано с тем, что Epic, как разработчик движка с 90-х годов, накопила большой опыт и каждый раз создавала что-то новое, а остальным приходилось догонять. Unity больше ориентирован на небольшие проекты, сделанные в основном в 2D и для мобильных устройств.


Простота и интуитивность

Еще одно важное преимущество Unreal Engine 4 – большая интуитивность. Если вы хотите сделать что-то с игрой в программе Epic Games, у вас всегда под рукой есть масса хороших решений, работающих всесторонне по умолчанию. Не нужно беспокоиться о каких-либо дополнительных вещах, которые необходимо загружать или переписывать вручную, чтобы заставить работать. В Unity придётся покопаться в правильных инструментах для создания того же, что в Unreal есть изначально. Где-то потребуется больше работы по программированию, а значит времени и средств.

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

В качестве примера возьмем две простые вещи: анимацию дверей и поставочную сцену. Чтобы сделать интерактивную анимацию открытия двери в Unity, нужно знать, как правильно запрограммировать такую механику на C#, подключить обнаружение столкновений и подготовить последовательность анимации – это три разных окна и требование знания языка программирования. Также возможна реализация и через инструмент визуального программирования Bolt – летом 2020 года он стал бесплатным.

В Unreal Engine 4 всё, что нужно сделать – создать соответствующий Blueprint (элемент визуального скриптинга), в который можно сразу добавить столкновение, последовательность анимации и подготовить рабочий механизм с помощью нескольких простых подключений. Процесс на двух движках во многом схож.

Второй пример – ролики, относящиеся к игровому процессу. В Unity вы должны ознакомиться с инструментом Cinemachine (предпочтительно в связке с Timeline) – на освоение уйдёт день-два. В UE4 всё, что нужно сделать – открыть инструмент Cinematic, вручную настроить камеру, одним щелчком отделить кат-сцену от остальной части игры, начать запись и простым щелчком сохранить то, что было создано в игровой мир. Буквально за 5 минут (возможно, немного дольше) можно показать раскачивающийся мост, растущие деревья или движущиеся объекты и использовать их в игровом процессе.


Поддержка и удобство

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

В случае с Unity нужно подумать о том, в какой версией мы хотим работать, потому что не каждая получит долгосрочную поддержку от компании. Если это произойдет, патчей будет дюжина, и переход, например, с Unity 2020.1.2 на Unity 2020.1.12 связан с техническими проблемами. 

Epic обеспечивает полную поддержку, помогает с решением даже маленькой проблемы и предлагает подробную документацию по своим инструментам. 

С Unity всё немного сложнее, и иногда быстрее найти решение через сообщество, чем от самой компании. Кроме того, документация и учебные пособия по Unity могут быть сложными и нечитаемыми, в то время как Epic Games даже финансирует компании, которые создают хорошие учебники для сообщества Unreal Engine.

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

Cuphead сделана на Unity

За и против

Если спуститься на уровень кода, то Unity выиграет тем, что это C#, писать на котором легче. У Unity огромное сообщество, и на YouTube можно найти много инструкций, поэтому даже без навыков программирования с помощью этого движка можно реализовать что-то несложное.

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

У Unity слегка ниже системные требования, сам движок и проекты на нём занимают меньше места на диске. 

Два движка способны выдавать примерно одинаковую графику. Изначально она лучше в UE4, но всё зависит от опыта разработчиков. 

С другой стороны, при создании небольших 2D и 2,5D-игр, Unity – лучший выбор, особенно когда речь о продукте с сенсорным интерфейсом. Обратная сторона – закрытый код Unity и без Bolt (инструмент виртуального программирования) нужно научиться программировать. Но обучение относительно простое из-за множества бесплатных и платных курсов. 

Как видим, всё зависит от того, какими проектами хочет заниматься студия. Если это мобильная игра в 2D или 2,5D – разработчики явно выберут Unity из-за простоты. Unreal не создавался для 2D-игр и реализация проекта добавит ненужную сложность. Но если планируется файтинг, гонка, серьёзный шутер – предпочтительней выбрать Unreal Engine 4. 

Days Gone сделана на Unreal

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

Разработчики годами пытаются вырваться из замкнутого круга - «большая игра в 3D – UE4», «маленькая в 2D – Unity» и до конца этого не получается. Везде находятся свои исключения: The Forest (новая Sons of the Forest), Subnautica, Escape from Tarkov, Valheim, Wasteland 3, Green Hell, Rust, Boneworks – сделаны на Unity.

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

Статьи Дмитрий Кривов К обсуждению