The indie game market was once dominated by the Unity engine, and it is still strong in its segment to this day, but it is gradually losing ground to Unreal Engine 4. Today we will talk about why this is happening and try to help you decide on the heart of your future game.
Когда 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 – это идеальный движок, если вы хотите выжать максимум из графики и игрового процесса.