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

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

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


ВозможностьUnity 5UE 4
Установка движковустанавливается очень просто: с официального форума качается DEB-пакет для debian-based дистрибутивов и sh-скрипт для всех остальных и устанавливается как обычный пакет (мой любимый способ -- через консоль с помощью dpkg -i). В начале соответствующей темы форума указаны зависимости, которые необходимо удовлетворить перед установкой.
 Начиная с версии 2017.3.0f1 Unity Technologies перестали заморачиваться на упаковку пакетов. Они создали графический установщик, в котором можно выбрать какие компоненты нужно установть (голый редактор или с поддержкой сборки под различные платформы).
для 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.FBX, графические файлы можно сохранять прямо в каталог проекта. Программа сама предложит импортировать контент или реимпортировать, если файл был изменён.
Работа с материалами и текстурами, возможности шейдингаХотя здесь используется PBR, возможностей шейдинга немного: металлическая или диэлектрическая глянцевость и прозрачность. Подповерхностное рассеивание и прочие плюшки нужно писать в виде отдельного шейдера или пользоваться плагинами. Назначать текстуры в Блендере бесполезно, это всё равно придётся делать в движке. Здесь также используется PBR, имеются такие возможности, как SSS и преломления для прозрачных материалов. Редактор материалов основан на нодах, что позволяет добиваться весьма эффектных результатов. Если базовые карты (diffuse, normalmap) назначить материалу в Blender (Internal) renderer, то при импорте материалов и текстур они будут присоединены в соответствующие входы шейдера в движке.
Программирование игрового процессаПисать скрипты придётся буквально на каждый чих. Есть стандартные ассеты с предварительно написанными скриптами. Скрипты пишутся на C#.Для программирования можно использовать как C++, так и встроенную систему блюпринтов, поделенных на классы, позволяющие решать специализированные задачи (человекоподобные персонажи, четырёхколёсные ТС). Блюпринты состоят из параметрической (компонентной) части, характерной для для конкретного класса, и из общей алгоритмической части, реализованной в виде системы нодов, что позволяет не знать конкретного языка программирования, но требует хотя бы общего понимания программирования (понятие о переменных, типах данных, функциях и т.д.). При запуске движка можно выбрать предустановки различных типов геймплея для быстрого прототипирования (ну и поковырять на предмет как оно там устроено).
Отличия в инструментах редактора.Есть встроенный редактор деревьев наподобие Speed Tree.Шикарный компонент Bezier curve, который можно использовать в качестве пути для движения частиц или построения извилистой горной дороги с возможностью подогнать рельеф местности точно под меш дороги.
Наконец, самое главное: ГРАФОНИЙ
Весьма симпатичная графика, хорошие зеркальные отражения на плоских поверхностях (при условии грамотно расположенного захватчика отражений), при этом вполне уверенно выдаёт 40 fps в сцене с более 1,3 млн треугольников с некоторыми оптимизациями при "ночном" освещении на GTX 1055TiГрафика постепенно улучшается от релиза к релизу, но на сцене  с несколькими сотнями тысяч треугольников выдаёт 15-17 fps. 



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

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




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

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