Выпуск открытого игрового движка Godot 3.1
Представлен выпуск свободного игрового движка Godot 3.1, предоставляющего средства для создания 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.
Основные новшества:
- Возвращена убранная в выпуске 3.0 возможность рендеринга с использованием OpenGL ES 2.0 / OpenGL 2.1 вместо OpenGL ES 3.0 / OpenGL 3.3, что позволяет добиться более высокой производительности на устаревшем оборудовании, обойти некоторые проблемы с драйверами и обеспечить совместимость со старыми мобильными устройствами и браузерами без поддержки WebGL 2.0. Так как по возможностям рендеринг на базе OpenGL ES 2 отстает от OpenGL ES 3, поддержка OpenGL ES 2 реализована в виде отдельной платформы отрисовки;
- В языке сценариев GDScript добавлена опциональная поддержка явного указания типов, помимо предлагаемой изначально динамической типизации. Указанная возможность пока реализована только на уровне парсера и будет доработана в будущем. Использование типов позволит повысить производительность кода, упрощает работу системы автодополнения ввода, позволяет отлавливать дополнительные ошибки и делает код более читаемым;
- Переработан интерфейс инспектирования. Добавлены такие новые возможности, как редактирование векторных полей, инспектирование в процессе редактирования ресурсов, улучшенные настраиваемые визуальные редакторы для различных типов объектов, удобная система управления на основе ползунков, улучшенное редактирование массивов и словарей;
- Переписан 2D-редактор. Значительно улучшена работа с прямоугольниками-ограничителями для манипуляции с объектами (gizmo), обеспечена пометка общих узлов, и добавлена возможность прямого изменения размер фигур;
- Представлен новый редактор для тайловой графики, позволяющий формировать целостное изображение из фрагментов одинакового размера;
- Переработана панель для работа с файловой системой, в которой реализован режим древовидного отображения файлов с миниатюрами, предпросмотром выбранных файлов, определением содержимого файлов на сцене и секцией с избранными файлами;
- Улучшены средства для создания кинематической анимации, упрощающие визуализацию движения персонажей. Доступные такие возможности как привязка тела к поверхности, поддержка форм RayCast в движущихся телах и синхронизация кинематического перемещения с физическими свойствами, позволяющая избежать отставания на один кадр;
- Полностью переработан редактор анимации. Упрощено оформление, добавлен предпросмотр для большинства типов ключей анимации, появилась возможножность группировки треков по узлам, в режим инспектирования добавлена поддержка редактирования ключей, обеспечена возможность копирования треков через буфер обмена, добавлен API для подключения собственных плагинов редактирования треков, добавлены новые типы треков;
- Предложен новый интерфейс с деревом наложения анимации (AnimationTree);
- Добавлена новая система обработки координатных осей, упрощающая произвольную привязку к осям;
- Возвращен визуальный редактор шейдеров;
- Добавлены новые узлы Skeleton2D и Bone2D для создания двумерных каркасов для скелетной деформации;
- Добавлена поддержка 2D-мэшей, которые можно конвертировать из спрайтов, например, чтобы избежать отрисовки больших прозрачных областей;
- Улучшен 3D-редактор, в котором полностью переработаны механизмы выделения объектов и система ограничивающих параллелепипедов (gizmo);
- На базе движка Bullet реализована поддержка симуляции мягких тел (soft body), Также добавлена система SkeletonIK, позволяющая создавать простые цепочки обратной кинематики (IK) для существующих каркасов и переключаться между режимами прямой и обратной кинематики;
- Добавлена возможность быстрого моделирования прототипов твердых тел при помощи конструктивной блочной геометрии (CSG);
- Добавлена поддержка симплексных (OpenSimplex) и зашумленных текстур.
- Добавлена возможность использования CPU для генерации частиц (ранее поведение частиц рассчитывалось только при помощи GPU);
- В сетевой API добавлена поддержка WebSockets и UPnP;
- В звуковой системе появилась возможность использования MIDI-устройств и захвата звука через микрофон.