среда, 19 апреля 2017 г.

Сравнение игровых движков Unreal Engine 4 и Unity 5

В этом посте я постараюсь провести как можно более подробное сравнение двух популярных игровых движков. Движки рассматриваются в базовой поставке, т. е. без плагинов и дополнений. Упор при сравнении делаю на два аспекта: особенности использования их в связке с Blender 3D и работе редакторов в среде Linux. Последняя особенность проявляется уже на этапе установки движков.


ВозможностьUnity 5UE 4
Установка движковустанавливается очень просто: с официального форума качается DEB-пакет для debian-based дистрибутивов и sh-скрипт для всех остальных и устанавливается как обычный пакет (мой любимый способ -- через консоль с помощью dpkg -i). В начале соответствующей темы форума указаны зависимости, которые необходимо удовлетворить перед установкой.Для UE 4 доступны исходные коды. И их ПРИДЁТСЯ качать. На официальной wiki движка есть достаточно подробная инструкция по получению исходников и сборки из них редактора. Epic Games так до сих пор и не выкатили стандартный Epic Launcher для Linux. С этим обстоятельством связана следующая особенность...
Доступ к магазину ресурсоввкладка Asset store доступна прямо в редакторе, достаточно залогиниться в свой Unity ID -- и можно качать всё что нужно.доступ к Marketplace осуществляется исключительно из Epic Launcher, которого нет в Linux. Для этого приходится держать венду в дуалбуте или виртуалке. Epic Games заявили о поддержке Linux в 2014 году со словами "We love Linux!" однако, создаётся ощущение, что Linux они любят как-то вяло и неискренне.
Документация и обучающие материалыВесьма неплохая документация, даже переведена на русский язык.Достаточно подробная документация, встроенные "обучалки", о которых движок сообщает миганием значка. Весьма неплохо для того чтобы освоиться в движке и понять как с этим работать.
ИнтерфейсОднооконный интерфейс с возможностью открытия дополнительных вкладок и выведения вкладок в отдельные окна. Большинство настроек появляются во вкладке Inspector. В Linux иногда появляются некоторые баги отрисовки интерфейса, но вполне преодолимые.По умолчанию тоже одно окно, но почти на каждый чих открывается новое окно специализированного редактора, которое перекрывает основное. Причём, это окно можно сделать вкладкой основного и при следующем редактировании этого ресурса окно откроется уже в виде вкладки. Однако на каждый ресурс открывается отдельное окно и при большом количестве используемых ресурсов каждый раз вкладывать окно в окно может надоесть.
Транспорт контентаТекстуры, видеофайлы и blend-файлы можно записывать/читать прямо в каталоге проекта, они будут автоматически обновляться при сохранении файлов. Blend-файлы будут читаться только при условии, что Blender установлен в системе (ассоциирован с типом фалов), поскольку редактор использует блендеровский плагин экспорта FBX.Контент приходится (ре)импортировать и экспортировать вручную.
Работа с материалами и текстурами, возможности шейдингаХотя здесь используется PBR, возможностей шейдинга немного: металлическая или диэлектрическая глянцевость и прозрачность. Подповерхностное рассеивание и прочие плюшки нужно писать в виде отдельного шейдера или пользоваться плагинами. Назначать текстуры в Блендере бесполезно, это всё равно придётся делать в движке. Здесь также используется PBR, имеются такие возможности, как SSS и преломления для прозрачных материалов. Редактор материалов основан на нодах, что позволяет добиваться весьма эффектных результатов. Если базовые карты (diffuse, normalmap) назначить материалу в Blender (Internal) renderer, то при импорте материалов и текстур они будут присоединены в соответствующие входы шейдера в движке.
Программирование игрового процессаПисать скрипты придётся буквально на каждый чих. Есть стандартные ассеты с предварительно написанными скриптами. Скрипты пишутся на C#.Для программирования можно использовать как C++, так и встроенную систему блюпринтов, поделенных на классы, позволяющие решать специализированные задачи (человекоподобные персонажи, четырёхколёсные ТС). Блюпринты состоят из параметрической части, характерной для для конкретного класса, и из общей алгоритмической части, реализованной в виде системы нодов, что позволяет не знать конкретного языка программирования, но требует хотя бы общего понимания программирования (понятие о переменных, типах данных, функциях и т.д.). При запуске движка можно выбрать предустановки различных типов геймплея для быстрого прототипирования (ну и поковырять на предмет как оно там устроено).
Отличия в инструментах редактора.Есть встроенный редактор деревьев Speed Tree.Шикарный компонент Bezier curve, который можно использовать в качестве пути для движения частиц или построения извилистой горной дороги с возможностью подогнать рельеф местности точно под меш дороги.



Пост, возможно, будет постепенно дополняться.

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




Комментариев нет:

Отправить комментарий