Мнение о Unreal Engine 4

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

Первое что бы хотел отметить – простота в использовании. Даже если Вы не бум-бум в программировании, то все равно быстро в нем освоитесь (вот к примеру базовый набор уроков, просмотрев которые за 2 дня, уже узнаете все основное, лично я тут смотрел). Во многом эта простота вытекает из системы Blueprint:

На первый взгляд, как и все новое, может показаться совершенно непонятной штуковиной, но присмотритесь. Все достаточно просто, весь основной функционал уже написан, нужно лишь взять готовый блок, как например направление камеры, произвести ряд простейших преобразований (+, *, и т.д.) и и результат передать в следующий блок, отвечающий, допустим, за движение, который в итоге сам определит, есть преграда. Есть блок определяющий препятствия по пути движения вектора, есть уже написанная аудио подсистема, в которую просто передаются звук и точка из которой он должен исходить и т.д. Повторюсь – порог входа очень низок.

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

1) Писать все «сложное и важное» на плюсах, а потом вызывать написанные методы из Blueprit’ов (картинка отсюда, так же на оф. сайте сможете найти подробнейшее описание что к чему)

2) Запустить проект сразу на плюсах, и сразу все писать на любимом языке (имею в виду С++, если же Вам ближе C#, то прямая дорога к Unity, который кстати в последнее время подтянулся более чем солидно и вполне может послужить базой даже для AAA)

 UE4-start

Итак, казалось бы – движек удобный, бесплатный на старте (будете платить 5% от выручки от 3к$), имеет достаточно простую в использовании систему работы с сетью, звуком и ряд других плюсов. Но, как всегда есть несколько Но.

1) Допустим откроем стандартный проект шутера от первого лица, он первый в списке:

Standart

Изменим положение «светила»:

Sun-down

Кстати заметьте – пропала иконка источника света, пришлось выбирать в списке элементов на уровне. Вот как должно было все это выглядеть:

Sun-down-n

Обратим внимание на блики на оружии и на то, как освещены кубики:

In-game

Каким образом, спрашивается, мы освещаемся, когда светило за текстурой и даже тени включены?

Да, это наверняка можно исправить, потратив время на примитивные вещи, которые не работают даже в «заводском примере». Уже наводит на нехорошие мысли.

2) Но меня в основном поверг в ужас другой минус – производительность на слабом железе.

Если взять все тот же проект (хотя тестировал разные), и запустить его на старом Intel Core 2 Duo, то FPS упрется в заветные 61.999, что и не удивительно, такая мелочь и должна так работать. Но лично я свой проект задумываю под различные железяки, в том числе и под нечто маломощное. И вот после отключения света в один прекрасный день, я запустил свои наработки на нетбуке с AMD A5000. Да, железо конечно слабое, но не то что бы прям «ваще». И о боже мой, количество кадров было меньше, чем в третьей батле на нем же, тут та я и ошалел. Поигравшись с настройкми, мне удалось добиться стабильного значения лишь в 20 FPS. А добавление хотя бы одного динамического источника освещения резало это значение в 2 раза. Все упирается в производительность ЦП, а точнее в 1 ядро, лишь чутка нагрузка падает на второе из 4-х.

3) Так же для некоторых проектов имеется еще один минус (который задевает мой проект) – гравитация не определяется вектором, как в некоторых других движках.

4) Поддержка Vulkan’а из коробки отсутствует, но подключается достаточно просто.

5) Попытка запустить 2-х игроков в виде игры по сети в режиме отладки заканчивалась не прогрузкой одного из игроков в режиме выделенного сервера а Twin Stick Shuter (камера не занимала нужную позицию, ввод не работал, какой-то баг). В разных режимах не прописаны разные действия, различные данные не передаются по умолчанию, но это не является особой проблемой, все равно всю логику нужно самому писать в любом случае, но вот то, что не может загрузиться персонаж – большая попа.

bg

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

Резюме

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

А не проще ли тогда все же будет «сварганить» нечто свое, конечно менее мощное, но зато качественно выполняющее именно свою задачу, чем тратить время (да, немного меньшее) на изучение того, что придется переделывать и за что все равно придется платить. И при этом заранее понимая что все равно нужно рано или поздно садиться за свое, ощутимо более подходящее к ТЗ.

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

З.Ы. Поддержки 12 DirectX из коробки тоже нет.

Main Admin

2 Comments

  1. Просто мнение: используя чужой движок всегда будешь ограничен в стремлении добавить что-то свое. Не говоря уже о том, что исходники кучи движков закрыты, а те что открыты — иногда легче свой написать чем в их коде разобраться.

    • Тоже об этом думал, но все же решил проверить и убедиться/разубедиться, т.к. не мало хорошего о UE4 слышал.

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

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