这个项目能做什么
godot-rust是一个将Rust语言与Godot 4集成的库,Godot 4是一款专注于高效、功能齐全的2D和3D体验的开源游戏引擎。它使用Godot的GDExtension API,该API允许将第三方语言和库集成到引擎中。
理念
该绑定被定位为GDScript的替代方案,强调类型安全、可扩展性和性能。这两种语言可以在项目中混合使用,并且可以从GDScript以类型安全的方式调用自定义Rust API。所述的主要目标是为游戏开发者提供实用的Rust API:重复性工作流应简单且需要最少的样板代码,API设计尽可能安全且符合Rust惯用风格。由于它与作为C++引擎的Godot交互,该项目有时会采用非常规方法来改善用户体验。
README示例中展示的功能
激励示例注册了一个继承自Sprite2D的Godot类Player。它演示了:
- 通过GodotClass派生宏进行类声明,自动初始化和基类。
- 通过组合实现继承,允许访问基类方法。
- 基于属性的字段初始化,包括默认的hitpoints值。
- OnReady子节点访问,在调用_ready()时自动初始化。
- 通过预定义trait实现Godot虚方法(例如覆盖_ready)。
- 类型安全的信号连接,例如连接到健康条的value_changed信号。
- 通过#[func]属性向GDScript暴露自定义方法。
- 通过可变基类访问在self上调用Node方法。
开发状态
README指出,该库自2023年以来已显著发展,现在可用于游戏、编辑器插件、工具和其他基于Godot的应用程序等项目。它指出偶尔会引入破坏性更改,通常较小并附带迁移指南;crates.io发布遵循SemVer,但落后于master分支。绝大多数Godot API已映射到Rust。当前开发重点是更自然的Rust体验和日常游戏开发中有用的设计模式。一套精密的CI套件包括clippy、单元测试、引擎集成测试和内存清理器,甚至测试了热重载。对Wasm、Android和iOS存在实验性支持,但文档和工具仍然缺乏。
入门和资源
README指出godot-rust书籍是最好的起点,应与API文档一起使用。demo-projects仓库中提供了实用示例和小型游戏。通过Discord服务器提供帮助,设有#help频道。
许可证和贡献
该项目使用Mozilla Public License 2.0,被描述为在宽松和copyleft许可证之间取得平衡。用户可以商业使用该库并保持自己的代码闭源;主要条件是必须公开对godot-rust本身的修改。欢迎贡献,Contributing.md中提供了指引。
评论
0 评分人数达到10人后显示
登录后参与讨论。