Что проще unity или unreal engine 4
Перейти к содержимому

Что проще unity или unreal engine 4

  • автор:

ВЫБОР МЕЖДУ UNITY3D ИЛИ UNREAL ENGINE 4 Текст научной статьи по специальности «Компьютерные и информационные науки»

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Лазарев Андрей Игоревич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Лазарев Андрей Игоревич

Разработка мультиплеерной игры на платформе Unity 3D

ОБЗОР ПРЕИМУЩЕСТВ И НЕДОСТАТКОВ ИГРОВЫХ ДВИЖКОВ. ОБОСНОВАНИЕ ВЫБОРА ИНСТРУМЕНТОВ И ТЕХНОЛОГИЙ РАЗРАБОТКИ КЛИЕНТСКОЙ ЧАСТИ ИГРОВЫХ ПРИЛОЖЕНИЙ

Обзор трехмерных графических движков для создания виртуального тренажера
Процесс разработки движка для 2D игр и интерфейсов Sad Lion Engine
Современные игровые движки
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ВЫБОР МЕЖДУ UNITY3D ИЛИ UNREAL ENGINE 4»

ВЕСТНИК НАУКИ И ТВОРЧЕСТВА

ВЫБОР МЕЖДУ UNITY3D ИЛИ UNREAL ENGINE 4

Лазарев Андрей Игоревич, Новосибирский университет экономики и управления, г. Новосибирск

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

Ключевые слова: программирование, Unity3d , Unreal Engine 4

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

Какой тип игр вы собираетесь создавать?

Что выбрать unity3d или unreal engine 4 Первый вопрос, который вы должны задать себе — как вы собираетесь использовать движок и какие игры вы хотите создать? Вы хотите создать 2d платформер или 3d шутер от первого лица? Может, гибрид 2d и 3d? Возможно, вы хотите начать с первой небольшой игры и разработать простой пазл с базовой физикой, или предпочитаете запустить игру в веб-браузере, или на мобильных платформах? А может, игровые консоли?

ВЕСТНИК НАУКИ И ТВОРЧЕСТВА

Кстати, как вы собираетесь зарабатывать деньги на своей игре? Внутренние покупки, реклама или просто сделать игру платной?

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

Если вы хотите делать мобильные игры — Unity будет идеальным решением. Это подтверждается доминированием Unity среди разработчиков мобильных игр, а также большим количеством плагинов для использования нативных возможностей мобильных платформ: реклама, внутренние покупки, аналитика, игровые центры и т. д. — все это интегрируется в игру за считанные минуты. Если вы нацелены на разработку 2d игры, Unity тоже будет прекрасным выбором, потому что именно у него есть прекрасные возможности для создания 2d игр. Хотя Unreal Engine 4 в последнее время пытается заманить разработчиков мобильных приложений, обещая не меньшие, а даже большие возможности для 2d игр.

Если вы хотите создавать 3d игры, Unity также очень мощный инструмент для разработки 3d игр. Хотя графически он далеко не на том уровне, что Unreal Engine 4. При необходимости использовать next-gen графику лучшим решением будет Unreal Engine 4.

В Unreal Engine 4 используется язык программирования C++. В Unity3d в основном C# . Какая программа лучше с точки зрения языков программирования — действительно сводится к личным предпочтениям. Если вы предпочитаете какой-либо из этих языков, то выбор движка для вас может быть довольно очевидным.

ВЕСТНИК НАУКИ И ТВОРЧЕСТВА

1 Construction ticnpt

fJfort о ua^CofttWpfl » » »

■ ф Tif[J« . New Bnghln«5

5*1 Soira Radius

Рис. 1 Blueprint в Unreal Engine 4

Но Unreal Engine 4 имеет решение для людей, которые боятся высокого порога вхождения в C++. Это Blueprint — редактор визуального скриптинга. Технически вам не нужно писать ни одной строки кода. Это очень удобно для создания быстрых прототипов, и вы даже можете создавать целые игры с помощью Blueprint. Если вы не мастер программирования, Unreal Engine 4 будет для вас отличным вариантом. К слову, в Unity есть похожее решение. В Unity Asset Store можно приобрести расширение для редактора под названием Playmaker, которое так же позволяет разрабатывать прототипы игр без написания кода.

Оба движка Unreal Engine 4 и Unity3d имеют свой магазин ассетов: из них можно загрузить готовые 3d модели персонажей и окружения, текстуры и даже такие вещи, как звуки и системы частиц. Тем не менее, Unity3d однозначно выходит на первое место с точки зрения количества ассетов в магазине. В нем имеется все — от анимаций и генераторов GUI до расширений редактора для управления ИИ. Там есть все, что нужно для создания игры.

ВЕСТНИК НАУКИ И ТВОРЧЕСТВА

Рис. 2 Asset Store в Unity3d

Unreal Engine 4 и Unity3d являются условно бесплатными. Полная версия Unreal Engine 4 будет бесплатной для вас, пока доход от игры составляет меньше $ 3 000 в квартал, если же больше — вам придется делиться 5% от своих доходов.

С Unity3d все сложнее. Если доходы вашей компании составляют меньше $ 100 000 в год, вы можете использовать бесплатную версию, но она не полная. Хоть и бесплатной версии вполне достаточно для написания полноценной игры, в ней отсутствуют некоторые важные возможности: такие, как замена стандартного splash screen или создание Asset Bundle. На профессиональную версию Unity3d нужно потратить один раз $1 500 или купить подписку за $75 в месяц. Если вы разрабатываете мобильные игры, тогда на этом ваши затраты не заканчиваются. Придется расстаться с $1 500 ($75 в месяц) за iOS лицензию и столько же за Android.

ВЕСТНИК НАУКИ И ТВОРЧЕСТВА

Рис. 3 Сайт Unity3d информация о расширенной версии

В отличие от Unity3d, в Unreal Engine 4 есть еще один большой плюс для программистов — это открытый код. Выбор остается за вами.

Чем отличается Unity от Unreal и о навыках Unity-разработчиков — Вадим Воробьёв

img

Вадим Воробьёв шесть лет в геймдеве. За это время успел поработать в четырёх игровых студиях, в том числе и в одной из известнейших в Беларуси Vizor Games. Разрабатывал игры и на Unity, и на Unreal.

И теперь Вадим делится своими знаниями с другими как по одному движку, так и по другому являясь инструктором этого курса разработки игр на Unity (а также и на Unreal Engine)

Мы посчитали, что Вадиму есть что рассказать на тему игровых движков, и задали ему пару вопросов.

О различиях Unity и Unreal Engine 4

Разница между Unity и Unreal Engine 4 фундаментально огромная. И в техническом плане, и в лицензионном, и в финансовом, и в сообществе, но обо всём по порядку.

Анрил появился в 1998 году. В те времена еще не было даже понятия «движок». Ребята просто делали классную игру, которая должна была использовать самые современные возможности компьютерного железа. В этом плане их философия остается такой до сих пор — выжать максимум из железа.

Юнити в этом плане появился в 2005 году — чтобы делать игры на компьютерах от Apple и для компьютеров от Apple. И на волне смартфонов ребята быстро оседлали волну технологического прогресса под лозунгом «чем больше платформ, тем лучше».

Историю выше надо знать. Потому что эти вещи легли в основу философии обоих компаний. Компания Epic Games зарабатывает тем, что делает и продает игры. Компания Unity Technologies зарабатывает тем, что делает и продает игровой движок. Это объясняет и разницу между экосистемами.

Unity — движок для всех. Компания предоставляет кучу сопутствующих услуг: формальное обучение и сертификаты, соответственную аналитику и рекламу.

Epic Games — движок для выжимания технологического максимума. С продвижением в массы у них поскромнее, но зато есть гранты. Они просто дают денег тем, кто им понравится.

В плане работы юнити сделан простым, а анрил — эффективным. Это прослеживается в работе с файлами, в том как пишется игровая логика, даже в том, как выглядит стартовый проект.

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

В интернете часто можно встретить заявление «Юнити для мобилок, анрил для пк и консолей». Противоречивое утверждение, и может даже устаревшее. Unity в последнее время сделали довольно много для 2D-игр. Но и для улучшения картинки и производительности они сделали немало. Unreal же давно обзавелся 2D-инструментами, просто их редко используют.

Какой игровой движок выбрать?

Всём привет! Меня зовут Дядиченко Григорий, и я CTO Foxsys. В разработке я порядка 8 лет, а занимаюсь игровой или AR/VR разработкой последние лет 6. Сразу скажу, что в данной статье нет простого ответа “этот игровой движок лучше”, и она не претендует на объективность. Я лишь расскажу мнение с точки зрения технического директора и человека за плечами которого порядка 40 коммерческих проектов. Если вам интересно — добро пожаловать под кат.

Как выбираются технологии для проекта?

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

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

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

Бизнес-часть принятия решения составляет из себя ответы на вопросы: “Насколько просто найти специалистов на рынке на данной технологии?”, “Какую технологию дороже поддерживать?”, “Какой экспертизой на данный момент обладает команда?” + возможности партнёрства и прочие бизнес-причины.

Продумав все вопросы выбор обычно сводится к достаточно небольшому списку технологий, подходов к разработке и фреймворков. То есть не существует ответа на вопрос “Какой игровой движок лучше?”, так как всё зависит от задачи и множества сопутствующих факторов.

Какой движок лучше выбрать новичку?

Конечно, с моим бекграундом в 6 лет Unity разработке можно было бы предположить, что выбор уже решён и что тут дальше читать то. Но мой ответ вас, возможно, удивит. На данный момент я считаю, что, если вы совсем новичок, ещё не погрузились ни в один движок и только начинаете свой путь лучшим выбором будет Unreal Engine. И пока сообщество не начало обвинять меня в предательстве я объясню свою точку зрения.

Я считаю, что эти движки в большинстве задач связанных с 3д графикой по сути идентичны. Чуть ниже я подробнее распишу почему. Мой выбор на данный момент связан не столько с технологическими причинами, сколько с работой компаний со своими комьюнити. И на данный момент я вижу в разы больше интересных программ, активностей, образовательных мероприятий и прочего со стороны Epic Games. На Unity, конечно, сидит почти весь мобильный геймдев, в 3 раза больше вакансий чем на UE и так далее. Но думаю, это со временем изменится. Да и 134 (на момент написания статьи) открытых позиций это немало. Современная разработка устроена так, что в целом вы можете учить что угодно, что вам больше нравится, и вы всегда найдёте себе работу. Поэтому это мнение на тему новичков, так как если вы выбрали для себя Unity — это отличный выбор. 6 лет работаю на Unity и горя не знаю. А вот для совсем новичков я вижу просто больше образовательных возможностей и интересного со стороны эпиков. Но всё может измениться.

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

На Unreal Engine лучше графика?

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

Это чистой воды миф совершенно непонятно откуда взявшийся. В 3д графика движка настолько хороша, насколько хорош его свет и Post Processing. И с точки зрения что не особо напрягаясь и где можно накрутить, они для меня практически идентичны. Вот собственно наилучшее сравнение, которое я находил.

Графика — это вопрос пряморукости людей, которые подготавливают контент и рендер программистов. Давайте возьмём за правило то, что вы конечно можете быть универсалом, но в игровой разработке программисты, отвечающие за графику, за игровую логику, за ИИ и так далее — это разные программисты. Компьютерная графика — это весьма глубокая область, как и скажем программирование ИИ, и если вы хотите стать гуру — вам нужно понимать, что такое графический конвейер, как вообще работает реалтайм рендер и так далее. На этот счёт могу порекомендовать книги Real-Time Rendering Tomas Akenine-Möller и серию GPU Gems.

Так вот, если вы понимаете, как пишутся оптимальные шейдеры, из чего вообще складываются графические эффекты и т. п. — вам в среднем плевать какой у вас в руках движок. Исключением являются технологии. Скажем вроде как (тут меня могут поправить UE разработчики) у Unreal Engine всё лучше с поддержкой технологий Nvidia. Тот же DLSS вроде появится 2021.2, хотя в UE его вроде уже можно использовать. Но скажем из Nvidia GameWorks есть поддержка Nvidia Flex и так далее. В общем это уже совсем тонкие нюансы, зависящие от контекста вашего проекта. В среднем по рендеру движки если не идентичны, то очень похожи. А в паре с бесплатными плагинами каждый различается по-своему в тонких нюансах.

Что же лучше для проекта?

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

Единственное, хотя я немного не в контексте движка UE, но я бы его не стал бы брать для 2D проектов в принципе. Так как последние время Unity выпускает много крутых инструментов для 2D разработки. Поэтому мне кажется, что пока в этой области UE рассматривать нет особого смысла. Есть конечно менее популярные движки для этой задачи типа Defold или же Game Maker, но их я бы не стал брать по бизнес-причинам. Потому что я не уверен, что не столкнусь с проблемой того, что мне неоткуда будет расширять команду, так как специалистов на них днём с огнём не сыщешь.

И оба движка я бы в целом не рассматривал бы для web проектов. Если в UE я просто не знаю, что с поддержкой веба (может её там и нет) То с Unity прикол в двух основных проблемах. Первая, что там до сих пор нет поддержки мобильных браузеров. Да, на топовых телефонах оно даже как-то работает, но это очень рискованная затея брать технологию, которая официально не поддерживается для продакшен решения. А второе и самое главное — это время загрузки. Основной прикол веба в быстрой доставке контента до пользователей (помимо того, что там нет ограничений и правил сторов). Поэтому время загрузки Unity убивает эту фишку напрочь. Для веб проектов я чаще всего беру pixi.js, three.js, playcanvas и react. Что в этом списке забыл реакт? Это длинная история для другой статьи, если кому-то это интересно.

Собственно, по этим же причинам я для себя пока не вижу смысла переходить с Unity. За 40 коммерческих проектов разного масштаба я ни разу не упирался в стену, чтобы что-то было нереально сделать на Unity и реально на Unreal Engine. Плюс для меня, как для бывшего С++ разработчика (невысокого уровня) основным минусом UE является С++. C# как язык в разы приятнее. Кто знает undefined behavior и сложные утечки памяти, тот поймёт.

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

Открытые исходники — это хорошо?

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

Подводя некий итог

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

Орёл или решка: сравнение Unity и Unreal Engine

Орёл или решка: сравнение Unity и Unreal Engine

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

Объекты в редакторе сцены изменяются с помощью инструментов перемещения, поворота и масштабирования — они похожи в обоих движках. Свойства Unity-объектов отображаются в Inspector, а UE4 — в части Details. Jayanam также сравнивает возможности Unity Prefabs c Blueprints.

В обоих движках есть статические меши (static meshes) — их можно двигать, поворачивать, и масштабировать — и скелетные меши (skeletal meshes) — геометрические объекты, привязанные к костям скелета и используемые для анимирования персонажей. Их можно создавать в программах вроде Blender или Maya.

Анимации, включённые для скелетных мешей, также можно импортировать. В Unity они прикрепляются к импортированному объекту, как клипы анимации (animation clips), а в UE4 называются последовательностями анимации (animation sequences). В первом движения управляются с помощью контроллеров анимации (animation controllers), а во втором по тому же принципу действуют анимационные Blueprints.

В обоих движках есть стейт-машины, определяющие переходы из одного состояния ассета в другое. В UE4 система называется Persona, а в Unity — Mecanim. Также возможно применение скелетных мешей одного скелета к другим, но в Unity это в основном используется для анимирования гуманоидов.

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

Для этого в Unity нужно задать материалу шейдер и добавить в его слоты текстуры — карты шероховатостей, нормалей или диффузии. Собственные шейдеры придётся писать самостоятельно или с помощью сторонних инструментов вроде Shader Forge или ASE. А в UE4 встроен очень мощный редактор материалов, основанный, как и система Blueprints, на нодах.

Для программирования в UE4 используется язык C++, который не все любят из-за сложности и продолжительности компилирования. Однако Jayanam считает, что у движка понятный API и приемлемый период компиляции. В UE4 очень мощная и проработанная система визуального скриптования — Blueprints, с помощью которой можно достичь практически тех же результатов, что и c C++.

Unity 5 поддерживает языки C# и UnityScript. API и его концепт очень похож на аналог из UE4. При использовании управляемого языка вроде C#, программист не обязан использовать указатели (pointers), компилирование происходит быстро. В Unity нет системы визуального скриптования, и чтобы использовать что-то подобное, разработчик вынужден покупать сторонние дополнения вроде Playmaker.

Для 2D-разработки в Unity есть великолепные инструменты — sprite creator, sprite editor и sprite packer. UE4 также поддерживает спрайты в Paper 2d, но решения из Unity мощнее, кроме того, в последнем есть отдельный физический движок для 2d-объектов.

В UE4 встроен постпроцессинг. К сцене можно применять bloom-эффект, тонирование и антиалиасинг как глобально, так и к отдельным её частям (при помощи компонента PostProcessVolume).

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

Sequencer в UE4 можно использовать для создания синематиков. Это мощный инструмент, работающий по принципу добавления объектов на временную шкалу. К настоящему моменту в Unity 5.6 нет системы для синематиков, но timeline-редактор добавят в Unity 2017.

В заключении автор подчёркивает, что оба движка — мощные, но UE4 более гибок. В то же время, для создания 2D-игры он бы выбрал Unity 5, а вот дорогой 3D-проект с открытым миром делал бы на UE4.

Другие мнения

Израильская компания AppReal-VR, занимающаяся решениями для виртуальной реальности, также сравнивала движки, но применительно к мобильной и VR-разработке.

У каждого из движков есть свои сильные стороны для разных задач. Unity подойдёт новичкам и любителям, в то время как Unreal — строго для профессиональных разработчиков.

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

Из блога AppReal-VR

А каким был ваш опыт работы с Unity 3D и Unreal Engine 4? Поделитесь в комментариях.

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

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