Godot стал одним из самых популярных игровых движков за последние несколько лет. Он бесплатный, открытый исходный код по лицензии MIT, и достаточно мал, чтобы его можно было загрузить и начать использовать в течение нескольких минут. Большинство игр Godot пишутся на GDScript, собственном языке скриптов движка. Однако, рано или поздно, многие проекты нуждаются в чем-то, что уже существует в виде библиотеки C или C++: библиотека симуляции, база данных, сетевой протокол, среда выполнения машинного обучения. GDScript не может вызывать нативный код, но Godot может загрузить его через GDExtension, и godot-cpp, официальные привязки C++, позволяют вам предоставить этот код как обычные классы движка.
Написание кода на C++ — это лёгкая часть. Трудная часть — сборка: godot-cpp должен соответствовать вашей версии Godot, и каждая библиотека, которую вы добавляете, должна быть скомпилирована для каждой платформы, на которую вы выпускаете. В этом посте мы даём краткий обзор Godot, объясняем, как работают расширения C++, и показываем, как привнести библиотеки C++ в игру Godot с помощью Conan и godot-cpp 10, теперь доступного в Conan Center. В качестве примера мы будем использовать flecs, библиотеку системы сущностей и компонентов, чтобы смоделировать 100 000 частиц внутри сцены Godot.
GDExtension загружает динамически связанную библиотеку (.dll, .so, .dylib или .wasm в вебе) в официальную, неизменённую сборку Godot во время выполнения. Движок общается с библиотекой через стабильный интерфейс C. GDExtension является рекомендуемым подходом для большинства проектов, и именно так многие популярные плагины распространяются сегодня. Поскольку интерфейс C громоздок для прямого использования, команда Godot поддерживает godot-cpp, библиотеку C++, которая оборачивает его с помощью API, очень близкого к используемому внутри движка. Начиная с версии 10.0, одиночный выпуск godot-cpp работает с любой версией Godot начиная с 4.3.
Мы будем использовать flecs, чтобы смоделировать 100 000 частиц внутри сцены Godot, убегая от курсора мыши. Скачайте видео, чтобы увидеть полную симуляцию в действии.
Ключевые сущности: Компании: Conan, Godot, Hacker News