{"id":3824,"url":"\/distributions\/3824\/click?bit=1&hash=a0d33ab5520cacbcd921c07a49fc8ac5b78623b57936b992ce15c804b99210d4","title":"\u041a\u0430\u043a\u0443\u044e \u0440\u0435\u043a\u043b\u0430\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0434\u0430\u0442\u044c \u043d\u0430 DTF \u0438 \u043a\u0442\u043e \u0435\u0451 \u0443\u0432\u0438\u0434\u0438\u0442","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"75ec9ef4-cad0-549d-bbed-1482dc44e8ee","isPaidAndBannersEnabled":false}
Gamedev
Alexander Kulkov

Игровые движки Godot 3 и Unigine 2

Сравнение графических возможностей на примере набросков похожих проектов, собранных в той и другой среде.

Unigine

Томский игровой движок, часто используемый для бенчмарков и симуляций. В этом году появилась бесплатная лицензия и вышли версии 2.11, 2.12. Внутри применяется довольно много интересных и перспективных решений, рендерит достаточно красивую картинку и может очень сильно приглянуться художникам (вплоть до прощания с CryEngine или Unreal), особенно если те моделят в отдельном 3д-пакете, а не средствами самого движка.

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

В качестве инструмента для игрового разработчика - здесь в принципе применим опыт использования C# в Unity, хотя в Unigine нет такого же многообразия готовых компонентных решений. Тем не менее, какие-то базовые вещи реализованы, а документация поможет написать остальное. Разумеется, использовать С++ тоже возможно.

Наброски проекта Невангеры в Unigine engine

Для мобильной платформы движок пока не подойдёт, как и для разработки без программирования. Хотя планируется развивать его и в этих направлениях. Требования к железу на уровне запросов Unreal, минимальный вес файла приложения довольно большой. Зато красиво и в целом многие вещи движок оптимизирует сам.

Godot

Ну а здесь у нас опенсурсный компактный движок с огромными возможностями (как я уже говорил - это как Blender от мира игровых движков), но, опять же, пока уступающий тому же Unity в плане многообразия готовых решений и возможностей. Хотя, различных неофициальных решений для Годо уже написано довольно много и благодаря относительной простоте/быстроте имплементации нового функционала, не сказать, чтобы это было какой-то проблемой на данный момент.

У Годо больше репутация 2д-движка, благодаря многообразию проработанных инструментов именно для 2д, но они являются дополнительным плюсом для 3д - куда проще делать игровой UI. На текущий момент Годо в своём развитии дошёл до стабильной 3.2.2 версии, вот вот выйдет 3.2.3, которая пока в состоянии релиз кандидатов.

Движок не требует мощного железа для 3д-графики и выдаёт вполне приличную картинку. Готовых трёхмерных инструментов не огромное количество, но реализованы как раз одни из самых нужных, полезных и универсальных. Примерно то же касается и оптимизаций. Например, в движке реализован обычный frustrum culling, отсекающий геометрию вне зоны видимости камеры. А вот для какого-нибудь occlusion culling (чтобы не считать закрытые стенами объекты) реализацию придётся придумывать самостоятельно (что не так уж сложно, особенно в каких-то точечных местах, да и не в каждой игре нужно).

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

Интерфейс движка, кстати, довольно продуманный и кастомизируемый (хотя есть некоторые негибкие элементы). Пользоваться им в целом удобно. Поддерживаемых языков достаточно, для разного уровня погружения. Тут и C++ и C# и довольно удобный внутренний GDScript, который запускается прямо внутри редактора, не требуя запуска отдельной среды. Визуальный скриптинг тоже присутствует (плюс очень классный инструмент для записи анимаций), так что без знания программирования в Годо тоже вполне можно жить - какую-то минимальную логику сконструировать, что-то заанимировать.

Малый вес приложения, мультиплатформенность, быстрота разработки, простота имплементации различных сторонних решений - тоже немаловажные плюсы движка. Есть два варианта рендера - gles2 и gles3, оба поддерживают 3д, но в первом оно попроще и в целом он больше подходит для 2д и мобилок. Gles3 даёт более продвинутый уровень графики, какая-то часть мобильных устройств его тоже поддерживает.

Другие не вангеры - проект wild engines на Годо (рендер gles3)

К концу года появится 4-я версия Godot, использующая vulkan. Там графика шагнёт ещё дальше, появится более продвинутое реалтайм освещение и дополнительные оптимизации. Собственно, неофициальные билды четвёртой версии уже есть и можно их пробовать, хотя работают частично и нестабильно.

0
30 комментариев
Написать комментарий...
Арсений Мирный

Главная пиар-беда Godot – это очень доброе, но пока не очень умелое (в 99%) случаев сообщество из самоучек. Народ заходит, смотрит на зачастую страшную графику, слышит байку про оптимизацию и выходит из здания. Но, дело движется)

Ответить
Развернуть ветку
Alexander Kulkov
Автор

Просто задача не в пиаре, а в том чтобы сделать хороший инструмент.

Ответить
Развернуть ветку
Арсений Мирный

Делаем хороший инструмент
Кладём его в сарай
Им никто не пользуется
??? Profit?

Это как со строительством заводов на территории бывшего СССР – забыли учесть, что нужен рынок сбыта и просчитать рентабельность.

Ответить
Развернуть ветку
Alexander Kulkov
Автор

Только Годо пользуются. Вот уже Майкрософт и UE ему денег дали. Просто зачем бегать за среднестатистическим пользователем, который сто лет назад умудрялся не замечать такого фантастического пакета, как Blender, да и сейчас продолжают фыркать и накатывать свежую пиратскую Майю (и это ещё в лучшем случае, когда человек хотя бы сам использует 3д пакет, а не просто "имеет мнение" по вопросу).
Что кому доказывать. Кто всё понял - сам возьмёт и будет использовать. Кому не надо - ну не надо, так не надо.

Ответить
Развернуть ветку
Арсений Мирный

Мне это не нужно объяснять, я про него делал видео в 2017 году и периодически пилю что-нибудь. Через это видео в Godot привёл тонну людей)

Ответить
Развернуть ветку
Alexander Kulkov
Автор

Ну так замечательно ведь. Просто очевидно, что не все являются разработчиками, а в среде неразработчиков свои представления о крутизне. Им приятнее UE обсуждать, графон, рейтрейсинг. Знать ничего не надо - посмотрел презентации, уже эксперт по нанитам и люминусам. А что Годо, ну движок как движок, ну вулкан появится, можно будет пообсуждать.
Там вон Stride (Xenko) вобще по-тихому развивается себе. По сравнению с ним Годо, считай на лютом хайпе.

Ответить
Развернуть ветку
Арсений Мирный

По сравнению с нынешним охватом Unigine, Stride на лютом хайпе)

Ответить
Развернуть ветку
Alexander Kulkov
Автор

Если говорить про игровую разработку, то что-то около того. А так Unigine вполне на виду в других нишах, в бенчмарках, в симуляциях, визуализациях и так далее.

Ответить
Развернуть ветку
muunu

Ну, в Unigine картинка в разы лучше.
Жду не дождусь, когда Хуан 4-ю версию Godot выпустит

Ответить
Развернуть ветку
Alexander Kulkov
Автор

Тут ещё надо быть уверенным, что драйвера железа поддерживает vulkan. Допустим, у меня на маломощной машине текущие сборки Годо 4 уже не запускаются.

Ответить
Развернуть ветку
muunu

Это не потому что она тестовая?

Ответить
Развернуть ветку
Alexander Kulkov
Автор

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

Ответить
Развернуть ветку
Арсений Мирный

А какая именно видеокарта у тебя? Там для запуска тестовых сборок Godot 4 нужно поставить Vulkan SDK. Я тоже не сразу допёр: https://www.lunarg.com/vulkan-sdk/

Ответить
Развернуть ветку
Alexander Kulkov
Автор

Radeon 8670M dual graphics. У меня просто драйвера не последние, мне чтобы поставить нормальные надо сносить систему, чего я пока не хочу. Поэтому я в курсе что у меня кое-что не запускается или работает некорректно, вроде того же Blender версий 2.8+, поэтому не стал углубляться в вопрос. На другой системе всё без sdk запустилось.

Ответить
Развернуть ветку
Арсений Мирный

8670M это прям весьма старая железка. У меня есть 8970M ноутбук и то бы не решился новые либы копать на нём. Пришлось изрядно постараться, чтобы правильные драйвера подобрать к нему пару месяцев назад.

А так, работаю с RTX 2060 (Acer Helios 300, 2019). Вот уж где всё летает)

Ответить
Развернуть ветку
Alexander Kulkov
Автор

Я на нём работаю с Godot, веду пару проектов. В том числе и видео записывал (не те, что в статье). При записывании уже ощущаются подлагивания.
Также делал на нём Unity проекты. CryEngine 5 идёт более менее, Unreal 4 уже хуже, в редакторе Unigine уже слишком большой лаг.

Ответить
Развернуть ветку
Арсений Мирный

Картинка в 4 версии не станет вот прям лучше, чем Unigine. Есть нюансы: у Godot рендер заточен под кросс-платформу по-умолчанию. У Unigine по-умолчанию заточка под хай-энд, включая трассировку, DX12 и прочие шалости. Но уже сейчас в G4 работает довольно быстрый GI для открытых пространств и море других ништяков.

Ответить
Развернуть ветку
Alexander Kulkov
Автор

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

Ответить
Развернуть ветку
Vlad Kiselev

Godot one love!

Ответить
Развернуть ветку
Alexander Kulkov
Автор

Согласен :)
Кстати, писал по движку некоторый мини-обзор с разбором каких-то основных полезных инструментов и мелких деталей:
https://habr.com/ru/post/509144/

Ответить
Развернуть ветку
Арсений Мирный

Гикпорт 99 уровня)

Ответить
Развернуть ветку
Отвратительный ГОСТ

Комментарий недоступен

Ответить
Развернуть ветку
Alexander Kulkov
Автор

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

Ответить
Развернуть ветку
NopeHope
У Годо больше репутация 2д-движка, благодаря многообразию проработанных инструментов именно для 2д.

Да господи, какие там проработанные инструменты для 2D. Удобных тулзов в годот нет. А те что есть - это багованные аддоны от рандомов. Просто попробуйте создать более-менее масштабный проект, сразу все станет понятно.  

Ответить
Развернуть ветку
Alexander Kulkov
Автор

А я и пробую. Легчайшая реализация текстурных атласов (к тому же сам может сшивать спрайты в атлас), привязки к экрану, 2д работает именно в 2д пространстве, отличная производительность, возможность делать наборы стилей, хороший понятный аниматор что для 2д что для 3д, 2д-физика, 2д-частицы, шейдеры. Я не знаю, что вам там такого надо - многие 2д движки и фреймворки обходились куда более скромными возможностями.
В основном своём проекте применяю 2д для UI, прочее в 3д:

Ответить
Развернуть ветку
NopeHope
2д работает именно в 2д пространстве

И это большой минус, на самом деле. Возможности CanvasItem сильно ограничены.

хороший понятный аниматор

До Spine еще далеко.

физика

Bullet самое слабое место движка. Линетский сам не знает, что с этим делать.

частицы

Слабее чем в юнити, ни коллизий, ни моушен трейлов, ни шумов.

шейдеры

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

Можно еще про баги с тайлами поговорить, про поддержку консолей и еще кучу всего, но мне уже лень, честно говоря.

Ответить
Развернуть ветку
Alexander Kulkov
Автор

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

Ответить
Развернуть ветку
NopeHope

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

Ответить
Развернуть ветку
Алексей Прасол

Всю жизнь сидел на SDL2 с растом и Love2d с Lua
Про юнити даже не задумывался ибо проприетарное ПО, жЫрный и неповоротливый.
Пока что мне все в Godot нравится

Ответить
Развернуть ветку
Алексей Прасол

next pass -> добавляешь еще один шейдер

Ответить
Развернуть ветку
Читать все 30 комментариев
null