HeadlinesBriefing favicon HeadlinesBriefing.com

在 Godot 中使用 C++ 库与 Conan

Hacker News •
×

Godot 已成为近年来最受欢迎的游戏引擎之一。它免费、基于 MIT 许可的开源软件,并且体积小,下载后即可在几分钟内开始使用。大多数的 Godot 游戏都是用 GDScript 编写的,这是引擎自带的脚本语言。然而,总有一天或另一个时候,许多项目需要使用已经存在的 C 或 C++ 库:仿真库、数据库、网络协议、机器学习运行时。GDScript 无法调用本地代码,但 Godot 可以通过 GDExtension 加载它,而 godot-cpp(官方 C++ 绑定)则允许你将这些代码作为常规引擎类暴露出来。

编写 C++ 代码是简单的部分。困难的部分是构建过程:godot-cpp 必须匹配你的 Godot 版本,并且你添加的每个库都必须为你发布的每个平台编译。在这篇文章中,我们将对 Godot 进行简短的介绍,解释 C++ 扩展如何工作,并展示如何使用 Conan 和 godot-cpp 10 将 C++ 库引入 Godot 游戏。godot-cpp 10 现已在 Conan Center 可用。作为示例,我们将使用 flecs(一个实体组件系统库)来在 Godot 场景中模拟 100,000 个粒子。

GDExtension 在运行时将共享库(.dll、.so、.dylib 或网页上的 .wasm)加载到官方的、未经修改的 Godot 构建中。引擎通过稳定的 C 接口与库进行通信。GDExtension 是大多数项目的推荐方法,也是当今许多流行插件分发的方式。由于直接使用 C 接口非常冗长,Godot 团队维护 godot-cpp,这是一个 C++ 库,用一个 API 包装它,该 API 与引擎内部使用的 API 非常接近。从版本 10.0 开始,单个 godot-cpp 发布版本适用于任何 Godot 4.3 及更高版本。

我们将使用 flecs 在 Godot 场景中模拟 100,000 个粒子,它们正在逃离鼠标光标。下载视频以查看完整的模拟效果。

关键实体:公司:Conan、Godot、Hacker News