LINUX.ORG.RU

Релиз игрового движка Godot 3.2

 , , , ,


4

4

ПО ПРОСЬБАМ ТРУДЯЩИХСЯ! Взято с опеннета.

После 10 месяцев разработки опубликован выпуск свободного игрового движка Godot 3.2, подходящего для создания 2D- и 3D-игр. Движок поддерживает простой для изучения язык задания игровой логики, графическую среду для проектирования игр, систему развёртывания игр в один клик, широкие возможности анимации и симуляции физических процессов, встроенный отладчик и систему выявления узких мест в производительности. Код игрового движка, среды проектирования игр и сопутствующих средств разработки (физический движок, звуковой сервер, бэкенды 2D/3D рендеринга и т.п.) распространяются под лицензией MIT.

Исходные тексты движка были открыты в 2014 году студией OKAM, после десяти лет развития проприетарного продукта профессионального уровня, который использовался для создания и публикации многих игр для PC, игровых консолей и мобильных устройств. Движком поддерживаются все популярные стационарные и мобильные платформы (Linux, Windows, macOS, Wii, Nintendo 3DS, PlayStation 3, PS Vita, Android, iOS, BBX), а также разработка игр для Web. Готовые для запуска бинарные сборки сформированы для Linux, Windows и macOS.

В отдельной ветке развивается новый бэкенд рендеринга на базе графического API Vulkan, который будет предложен в следующем выпуске Godot 4.0, вместо предлагаемых ныне бэкендов рендеринга через OpenGL ES 3.0 и OpenGL 3.3 (поддержка OpenGL ES и OpenGL будет сохранена через обеспечение работы старого бэкенда OpenGL ES 2.0/OpenGL 2.1 поверх новой архитектуры рендеринга на базе Vulkan). Переход с Godot 3.2 на Godot 4.0 потребует переработки приложений из-за нарушения совместимости на уровне API, но для ветки Godot 3.2 будет обеспечен длительный цикл поддержки, срок которого будет зависеть от востребованности данной ветки пользователями. В промежуточные выпуски 3.2.x также не исключается портирование не влияющих на стабильность новшеств из ветки 4.x, таких как поддержка AOT-компиляции, ARCore, DTLS и платформы iOS для проектов на C#.

Основные новшества Godot 3.2:

  • Добавлена поддержка шлемов виртуальной реальности Oculus Quest, реализованная на базе плагина для платформы Android. Для разработки систем дополненной реальности для iOS добавлена поддержка фреймворка ARKit. Для Android развивается поддержка фреймворка ARCore, но она пока не готова и будет включена в одном из промежуточных выпусков 3.3.x;
  • Переработан интерфейс визуального редактора шейдеров. Добавлены новые узлы для создания более продвинутых шейдеров. Для шейдеров, реализуемых классическими скриптами, добавлена поддержка констант, массивов и модификаторов «varying». Многие шейдеры, специфичные для бэкенда OpenGL ES 3.0, портированы для OpenGL ES 2;
  • Поддержка физически корректного рендеринга материалов (PBR) синхронизирована с возможностями новых движков PBR-рендеринга, таких как Blender Eevee и Substance Designer, для обеспечения сходного отображения сцены в Godot и используемых пакетах 3D-моделирования;
  • Проведена оптимизация различных настроек рендеринга для повышения производительности и увеличения качества картинки. В бэкенд GLES3 перенесены многие возможности из GLES3, включая поддержку метода сглаживания MSAA (Multisample anti-aliasing) и различные эффекты постпроцессинга (свечение, DOF-размытие и BCS);
  • Добавлена полная поддержка импорта 3D-сцен и моделей в формате glTF 2.0 (GL Transmission Format) и добавлена начальная поддержка формта FBX, которая позволяет импортировать сцены с анимацией из Blender, но пока несовместима с Maya и 3ds Max. Добавлена поддержка скинов каркасов при импорте сцен через glTF 2.0 и FBX, позволяющая использовать один каркас в нескольких мешах. Работа по улучшению и стабилизации поддержки glTF 2.0 выполнена совместно с сообществом разработчиков пакета Blender, в котором улучшенная поддержка glTF 2.0 будет предложена в выпуске 2.83;
  • Сетевые возможности движка расширены поддержкой протоколов WebRTC и WebSocket, а также возможностью использовать UDP в режиме multicast. Добавлен API для использования криптографических хэшей и работы с сертификатами. Добавлен графический интерфейс для профилирования сетевой активности. Началась работа по созданию порта Godot для WebAssembly/HTML5, который позволит запускать редактор в браузере через Web;
  • Переработан плагин для платформы Android и система экспорта. Теперь для формирования пакетов для Android предлагается две отдельные системы экспорта: одна с предварительно собранным движком, а вторая позволяющая формировать собственные сборки на основе кастомизированных вариантов движка. Настройку собственных сборок можно производить на уровне плагина для Android, без ручной правки исходного шаблона;
  • В редактор добавлена поддержка выборочного отключения отдельных возможностей, например, можно убрать кнопки для вызова 3D-редактора, редактора скриптов, библиотеки ресурсов, узлов, панелей, свойств и других элементов, которые не требуются разработчику (скрытие лишнего позволяет заметно упростить интерфейс);
  • Добавлена начальная поддержка интеграции с системами управления исходным кодом и реализован плагин для поддержки Git в редакторе;
  • Предоставлена возможность переопределения камеры для запущенной игры через окно в редакторе, что даёт возможность оценки различных режимов в игре (свободный обзор, инспектирование узлов и т.п.);
  • Предложена реализация сервера LSP (Language Server Protocol) для языка GDScript, позволяющая передавать информацию о семантике GDScript и правилах автодополнения кода во внешние редакторы, такие как VS Code plugin и Atom;
  • Внесены многочисленные улучшения во встроенный редактор скриптов GDScript: добавлена возможность установки закладок на позиции в коде, реализована панель minimap (для быстрого обзора всего кода), улучшено автодополнение ввода, расширены возможности режима визуального проектирования скриптов;
  • Добавлен режим создания псевдо-3D игр, позволяющий использовать эффект глубины в двухмерных играх через определение нескольких слоёв, формирующих фиктивную перспективу;
  • В 2D-редактор возвращена поддержка атласов текстур;
  • В GUI модернизирован процесс расстановки якорей и границ областей;
  • Для текстовых данных добавлена возможность наблюдения на лету за изменением параметров эффектов, обеспечена поддержка тегов BBCode и возможность определения собственных эффектов;
  • Добавлен генератор звуковых потоков, позволяющий создавать звуковые волны на основе отдельных кадров и спектрального анализатора;
  • При помощи библиотеки V-HACD реализована возможность разложения вогнутых мешей на точные и упрощённые выпуклые части. Данная возможность значительно упрощает генерацию форм столкновений для существующих 3D-мешей;
  • Реализована возможность разработки игровой логики на языке C# с использованием Mono для платформ Android и WebAssembly (ранее C# поддерживался для Linux, Windows и macOS). На базе Mono 6.6 реализована поддержка C# 8.0. Для C# также реализована начальная поддержка упреждающей компиляции (AOT, ahead-of-time), которая добавлена в кодовую базу, но пока не активирована (для WebAssembly пока применяется интерпретатор). Для редактирования кода C# реализована возможность подключения внешних редакторов, таких как MonoDevelop, Visual Studio for Mac и Jetbrains Rider;
  • Заметно расширена и улучшена документация. Опубликован частичный перевод документации на русский язык (переведено вводное руководство по началу работы).

Новость на сайте Godot

Скачать последнюю версию

>>> Подробности

★★

Проверено: Zhbert ()

Ответ на: комментарий от RedEyedMan666

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

anonymous ()
Ответ на: комментарий от anonymous

новый опенгл

Какой именно? https://github.com/tobspr/RenderPipeline этот рендер к панде требует 4.3. Разрабам движка виднее.

запилят вулкан - вообще норм будет.

На днях соберу билд движка с вулканом, но меня предупредили, что врядли у меня что-то получится из этого. Похоже вулкан не в приоритете у них.

RedEyedMan666 ()
Ответ на: комментарий от RedEyedMan666

На днях соберу билд движка с вулканом, но меня предупредили

И я хочу тебя предупредить, мой мальчик. *азино вулкан до добра тебя не доведет. Ты забыл как в карты свою жепу мне проиграл? А там из тебя могут вулкан сделать.

Алибек

anonymous ()
Ответ на: комментарий от ququmba

и пересобирать под виртуалкой… мне супер не хотелось, может в будущем сделаю

тратить еще 2 дня на сборку под все платформы, когда там посетителей 2 человека в год-очень сомнительно

ну давайте я пересоберу. Что там надо? собрать редактор из исходников и собрать проект?

OpenMind ★★★ ()
Ответ на: комментарий от OpenMind

Похоже я ошибался. Не количество полигонов на меше влияет на производительность, а количество полигонов на геометрии коллизий (collisions geometry), которая формируется из меша и содержит такое же количество полигонов. Моя моделька Mountains содержала большое количество полигонов геометрии коллизий (равное количеству полигонов визуальной геометрии), поэтому обсчет поверхностей занимал дольше времени и дропал фреймрейт с 60 до 26. Пришло время оптимизировать геометрию коллизий на указанной модельке.

RedEyedMan666 ()
Ответ на: комментарий от OpenMind

я так понял нужна последняя версия Godot с гитхаба и FutariAddon? Или 3.2 пойдёт?

только Godot 3.1 не с гитхаба, только со стабильного ахива(на гитхабе под релиом 3.1 версии есть архив исходников)

на 3.2 оно не будет работать, там одна функция старая, ее убрали в 3.2, чтоб заработало на 3.2 надо переименовать эту функцию в скриптах этой игры

+собрать Годот 3.1 с FutariAddon тогда сможешь открыть (и 6+Гб оперативки чтоб открыть)

(я обновлю до 3.2 на этой неделе, сейчас занят)

ququmba ()
Ответ на: комментарий от OpenMind

bullet же вроде тысячи объектов тянет, не?

десятки объектов, на 1 потоке 1.5Ггц, именно столько остается от 3Ггц потока, 50% забирают скрипты, в вебе так и того меньше(на 10-20% меньше чем нативно) (эта демка не тормозит в вебе(с линукса))

сотни 3D объектов если выделишь целый поток(в годоте галочку включить многопоточность нажать), все упрется в тормознутый GDScript

если на С++ бинарный модуль сделать или свою логику, без скриптов и подключить в Godot то будет чуть… ну пара тыщ может быть 90% того что в демках булета показано будет

ququmba ()
Ответ на: комментарий от ququmba

взял версию 3.1.2, собираю из исходников. Оперативной памяти 8 гб, 0.5 жрёт видуха, потому доступно 7.5 гб. Моя прошлая сборка была за зря получается, пришлось удалить.

OpenMind ★★★ ()
Ответ на: комментарий от ququmba

у меня всё происходит на ноуте с 2х ядерным процом в 1.4 герца. Я проверял, 10 объектов тянет легко по 1000 поликов колизии. Что-то не то у вас с расчётами, либо объекты сильно жирные. Хотя если колизия как у вас проекте, то да, она сильно жирная, надо упрощать.

OpenMind ★★★ ()
Ответ на: комментарий от RedEyedMan666

В моем случае в файле Mountains.egg находится специальный тег <Collide>, который при загрузке модели создает копию геометрии для коллизий, у которой полигоны равны количеству полигонов визуальной геометрии модели. Теперь я нашел код, который оптимизирует геометрию коллизий, насколько я понял, упрощает ее. Сначала парсит исходный файл используя Panda3D API, затем производит некие вычисления и записывает результат в файл того же формата. Но сам код старый, времен Python 2, и мне надо будет разобраться в нем и подготовить к Python 3.7.5, который я использую в своем домашнем проекте.

RedEyedMan666 ()
Ответ на: комментарий от ququmba

3.1 я так понял имеется ввиду прямо ровно 3.1, а не 3.1.2? После сборки файл просто не запускается. Выдаёт ошибку: SCRIPT ERROR: Parse Error: Can’t preload resource at path: res://scene/b1.tscn At: res://scene/scripts/game_logic/player_l.gdc:135

OpenMind ★★★ ()
Последнее исправление: OpenMind (всего исправлений: 3)
Ответ на: комментарий от RedEyedMan666

Мы говорим о мужиках.

Галымбек, читал там у вас в казахстане какие то беспорядки, кто то подрался массово. Ты не пострадал, милый? Тебя там под шумок никто в сраку не отодрал?

Эмомали

anonymous ()
Ответ на: комментарий от ChekPuk

«Примитивноват.» :)

Godot темная лошадка но скорей всего Единорог Сложность вхождения в Godot выше чем в Unity\Unreal Engine но цена сложности позволяет делать магию как по мне.

youtube.com

-Godot Smoke and mirrors part 3 - Rendering loads of objects-

/watch?v=pmyOYInhlkI

-[Godot Shader Tutorial] Stylized Waterfall-

/watch?v=PLCGL3RW548

-Procedural generated planets #1 - Introduction-

/watch?v=8kB3koB1N3A

 Сообщество Unity\Unreal Engine круче и больше, есть stor'ы которые продают готовые игры в исходниках по 80-150$ можно купить, доработать, продать и окупится в 10000%.

Текущий топ |Unreal Engine –> PUBG |Unity ———-> Escape from Tarkov

FPS дропы у обоих проектов класса ААА, 70% играть нормально в это не могут.

anonymous ()
Ответ на: комментарий от OpenMind

Обновил до 3.2 https://github.com/danilw/e-ani

  1. скачай исхдники Годот 3.2 https://github.com/godotengine/godot/releases только оттуда под релизом 3.2Стабле и распакуй кудато

  2. https://gitlab.com/polymorphcool/futari-addon копируй в modulesв исходниках Годот3.2

  3. собери Годот https://docs.godotengine.org/en/3.2/development/compiling/compiling_for_x11.html должно хватить команд

scons -j4 platform=x11
strip bin/godot.x11.tools.64

scons -j4 platform=x11 tools=no target=release bits=64
strip bin/godot.x11.opt.64
  1. переименуй bin/godot.x11.opt.64 в linux_x11_64_release и скопируй в ~/.local/share/godot/templates/3.2.stable/

  2. открой мой проект и нажми экспорт (если поругается что нет дебиг шаблона то скопируй linux_x11_64_release в туже папку и переименуй в linux_x11_64_debug)

  3. При експорте обязательно нажми галочку «экспорт БЕЗ ДЕБАГ» в последнем окне, после нажатия экспорт кнопки

ququmba ()
Ответ на: комментарий от OpenMind

добавил https://danilw.itch.io/e-ani

спасибо что собрал

когда я делал этот проект, в процессе у меня перестал работать основной комп, и я доделывал на старом с 4Гб оперативки и двухядернике, там даже места под убунту не было а виртуалку не установить(основная ОС и тогда и сейчас OpenSUSE)

сейчас уже новый комп, но руки пока не доходят до поднятия виртуалки, занят другими проектами

ququmba ()
Ответ на: комментарий от ququmba

не за что) Всегда надо держать пусть и старый, но комп с настроенным всем необходимым. Этот ноут моя переносная крепость в мире линукс. У него очень слабый проц AMD E1-2500, но он может сделать всё необходимое. Он не греется и долго работает от батареи. А оставаться на дровах, когда некуда это поставить грустно и неудобно. Обращайтесь!

OpenMind ★★★ ()
Последнее исправление: OpenMind (всего исправлений: 1)