Godot是近年最受欢迎的开源游戏引擎之一,采用MIT许可证,大多数游戏使用其内置脚本语言GDScript编写。然而许多项目迟早需要调用现成的C或C++库,如仿真库、数据库、网络协议或机器学习运行时。GDScript无法直接调用原生代码,但Godot可通过GDExtension加载C++扩展,官方绑定库godot-cpp能将C++代码暴露为常规引擎类。文章指出,编写C++代码并非难点,真正的挑战在于构建:godot-cpp必须与Godot版本匹配,且每个依赖库都需针对各发布平台分别编译。Conan包管理器为此提供了解决方案——godot-cpp现已作为常规软件包上架ConanCenter,其api_version和target参数成为Conan选项,每种组合只需构建一次即可被所有项目复用。作者以flecs实体组件系统(ECS)库为例,演示了在Godot场景中模拟10万个逃离鼠标光标的粒子:粒子模拟由flecs在原生代码中运行,渲染借助MultiMesh单次绘制完成。文章完整展示了依赖声明、CMake配置、节点类编写与扩展注册的全流程,并说明godot-cpp 10.0单个版本可兼容Godot 4.3及以上的所有引擎版本,最终构建只需一条conan build命令即可完成。
事件分析
核心观点:包管理器补齐了游戏引擎原生扩展的构建短板,C++生态与游戏开发的融合门槛正被工具链快速拉低。
原文链接:Hacker News

评论前必须登录!
立即登录 注册