Gamedev
Alexander Kulkov
2167

Игровые движки 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. Там графика шагнёт ещё дальше, появится более продвинутое реалтайм освещение и дополнительные оптимизации. Собственно, неофициальные билды четвёртой версии уже есть и можно их пробовать, хотя работают частично и нестабильно.

{ "author_name": "Alexander Kulkov", "author_type": "self", "tags": ["\u043d\u0435\u0432\u0430\u043d\u0433\u0435\u0440\u044b","unigine","godot"], "comments": 29, "likes": 32, "favorites": 47, "is_advertisement": false, "subsite_label": "gamedev", "id": 210013, "is_wide": false, "is_ugc": true, "date": "Mon, 14 Sep 2020 14:17:26 +0300", "is_special": false }
0
29 комментариев
Популярные
По порядку
Написать комментарий...
8

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

Ответить
1

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

Ответить
3

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

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

Ответить
1

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

Ответить
3

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

Ответить
0

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

Ответить
0

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

Ответить
0

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

Ответить
2

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

Ответить
0

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

Ответить
0

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

Ответить
0

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

Ответить
0

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

Ответить
0

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

Ответить
0

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

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

Ответить
0

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

Ответить
0

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

Ответить
0

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

Ответить
1

Godot one love!

Ответить
1

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

Ответить
1

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

Ответить

Спортивный турник

0

В отличие от Unity движок не будет за вас  нарезать террейн на чанки 

А разве он нарезает? Я вообще сторонним решением запекаю на меши нарезанные. Выходит вроде удобно и фпса больше. 

Ответить
0

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

Ответить
0

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

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

Ответить
0

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

Ответить
0

2д работает именно в 2д пространстве

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

До Spine еще далеко.
физика

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

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

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

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

Ответить
0

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

Ответить
0

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

Ответить

Комментарии

{ "jsPath": "/static/build/dtf.ru/specials/DeliveryCheats/js/all.min.js?v=05.02.2020", "cssPath": "/static/build/dtf.ru/specials/DeliveryCheats/styles/all.min.css?v=05.02.2020", "fontsPath": "https://fonts.googleapis.com/css?family=Roboto+Mono:400,700,700i&subset=cyrillic" }