在Godot中无缝集成任意C++库
Using any C++ library in Godot

Godot引擎虽然以GDScript著称,但通过GDExtension和godot-cpp,开发者可以轻松引入C++生态。文章展示了如何利用Conan管理依赖,将flecs等C++库集成到Godot项目中,实现10万粒子的高效模拟。从构建配置到代码实现,这套方案让C++扩展像原生节点一样在编辑器中运行,既保留了GDScript的开发效率,又释放了C++的性能优势。
编写C++代码是简单的部分,真正的挑战在于构建:godot-cpp必须匹配你的Godot版本,而你添加的每个库都必须为每个发布平台进行编译。
HN 评论区
39- valorzard
如果你懂 Rust,Godot 的 GDExtension Rust 绑定也非常棒,能让你在 Godot 中使用任何 Rust 库(如果你真的想用的话,包括 tokio 和异步 Rust)。
- voodooEntity
最近一直在用 Godot 搞 RTS,结果撞上了 gdscript 性能的上限。
于是开始把大量重型逻辑迁移到 C++ 模拟中:确实繁琐,但结果不言而喻。
基本上,这让我能用 Godot 处理菜单、对话之类的东西,同时把真正的重活交给 C++ 模拟来跑。
- fwsgonzo
别忘了至少在 Linux 上需要版本控制脚本。要么这样,要么就得用 Godot 所用的那个旧发行版来编译,这样才能匹配 libstdc++ 版本。你可以链接更新版的 stdlibc++,但你需要一个链接器版本控制脚本,把你的实现对动态链接器隐藏起来,否则你的机器上就会出现各种莫名其妙的鬼影。
- MeteorMarc
那么,有什么性能分析工具能帮你找出 GDscript 或 C# 代码中的关键部分?这样在为了性能问题而盲目跳进 C++ 的麻烦之前,先确认一下?本文讨论的是功能层面的原因,这没问题。
- Asmod4n
我正在构建类似的东西,使用 c++26 反射。这样任何语言都只需要几行样板代码就能使用 C++ 库,并且在可能的情况下保证生命周期和内存安全。对于那些无法推断对象安全生命周期的情况,我有一个小的 .toml 文件,告诉库如何安全地调用这些函数。