Godot загружает любую C++ библиотеку без перекомпиляции движка
Using any C++ library in Godot

Godot — бесплатный движок с открытым кодом, но GDScript не умеет вызывать нативный код. Расширение GDExtension решает это через godot-cpp: C++ классы становятся обычными узлами Godot. Главная сложность — сборка под каждую платформу. Conan и рецепт godot-cpp 10 в ConanCenter автоматизируют процесс. В примере flecs симулирует 100 000 частиц внутри сцены Godot.
Самое сложное — сборка: godot-cpp должен соответствовать вашей версии Godot, а каждую добавляемую библиотеку нужно компилировать для каждой платформы, на которую вы выпускаете игру.
- valorzard
Если ты знаешь Rust, то биндинги Godot для Rust к GDExtension тоже очень хороши и позволяют использовать любую библиотеку Rust в Godot (включая tokio и асинхронный Rust, если уж очень захочется)
- voodooEntity
Недавно игрался, собирая RTS на Godot, пока не упёрся в потолок того, что мог вытянуть с точки зрения производительности GDScript.
Тогда начал переносить много тяжёлой логики в симуляцию на C++: муторно, конечно, но результаты говорят сами за себя.
По сути, это позволяет мне использовать Godot для всяких меню, диалогов и тому подобного, а настоящую тяжёлую работу выполнять в симуляции на C++.
- MeteorMarc
Итак, какая поддержка профилирования доступна, чтобы найти критичные части твоего кода на GDScript или C#. Прежде чем без нужды ввязываться в возню с C++ ради производительности? В статье речь идёт о функциональных причинах, что нормально.
- Asmod4n
Я строю нечто похожее, с рефлексией C++26. Так что любой язык может использовать библиотеки C++ всего с парой строк обвязки, пожизненно и, где возможно, безопасно с точки зрения памяти. А там, где невозможно вывести безопасное время жизни объекта, у меня есть небольшой .toml-файл, который говорит библиотеке, как безопасно использовать эти функции.
- zerr
> // Copy the position of every entity into the MultiMesh buffer
Значит, zero-copy невозможен из-за границ мира (C++ против Godot)?