В этом посте я постараюсь провести как можно более подробное сравнение двух популярных игровых движков. Движки рассматриваются в базовой поставке, т. е. без плагинов и дополнений. Упор при сравнении делаю на два аспекта: особенности использования их в связке с Blender 3D и работе редакторов в среде Linux. Последняя особенность проявляется уже на этапе установки движков.
Возможность | Unity 5 | UE 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.
Комментариев нет:
Отправить комментарий