Hasty Briefsbeta

双语

Using any C++ library in Godot

4 hours ago
  • Godot是一个开源游戏引擎,大多数游戏使用GDScript编写,但GDScript无法直接调用原生代码。
  • GDExtension允许在运行时加载C++共享库,而godot-cpp提供了C++绑定,将原生代码暴露为常规引擎类。
  • 为多个平台构建C++扩展较为复杂;Conan通过管理依赖并提供预编译的godot-cpp及其他库简化了这一过程。
  • 该示例使用flecs ECS库创建了一个Swarm节点以模拟10万个粒子,展示了C++在性能上的优势。
  • 通过选择api_version选项,godot-cpp 10可与任意Godot 4.3+版本配合使用,并支持与Godot构建对应的三个目标(template_debug、template_release、editor)。
  • 使用Conan时,扩展通过CMake构建,链接godot-cpp和flecs,并将库直接输出到Godot项目的bin文件夹中。
  • GDExtension类通过GDREGISTER_RUNTIME_CLASS注册,并在编辑器中显示为内置节点,但仅在游戏运行时生效。
  • Conan能轻松处理跨平台构建,文中还提及在Linux上静态链接libstdc++以提高兼容性。