4个版本

0.1.3 2024年7月22日
0.1.2 2024年7月15日
0.1.1 2024年6月24日
0.0.0 2021年11月23日

游戏开发中排名 1727

Download history • Rust 包仓库 252/week @ 2024-06-22 • Rust 包仓库 168/week @ 2024-06-29 • Rust 包仓库 277/week @ 2024-07-06 • Rust 包仓库 327/week @ 2024-07-13 • Rust 包仓库 373/week @ 2024-07-20 • Rust 包仓库 110/week @ 2024-07-27 • Rust 包仓库 164/week @ 2024-08-03 • Rust 包仓库 79/week @ 2024-08-10 • Rust 包仓库 157/week @ 2024-08-17 • Rust 包仓库

每月下载量 566
6 个库中使用 (通过 godot-core)

版权 MPL-2.0

165KB
2.5K SLoC

logo.png

Godot 4的Rust绑定

网站 | 书籍 | API文档 | Discord | Mastodon | Twitter | 赞助

gdext 是一个库,用于将Rust语言与Godot 4集成。

Godot 是一个开源的游戏引擎,专注于高效和完整的2D和3D体验。
它的 GDExtension API 允许集成第三方语言和库。

如果你正在寻找Godot 3 (GDNative API)的Rust绑定,请查看 gdnative

哲学

Rust绑定是GDScript的替代方案,侧重于类型安全、可扩展性和性能。

gdext的主要目标是提供针对游戏开发者的 实用Rust API

重复的工作流程应该简单,并需要最少的样板代码。API设计旨在尽可能安全且符合Rust惯例。由于与C++引擎Godot交互,我们有时会采取非常规方法以提供良好的用户体验。

开发状态

gdext库在2023年和2024年经历了很大的发展,现在可以用于小型项目。然而,还有一些需要注意的事项。

[!警告]
公共API有时会引入破坏性变更。其中大部分是由新功能和现有功能的改进动机所驱动。请参阅书籍中的API稳定性

功能:虽然大多数 Godot 功能都可用,但一些不太常用的功能缺失。请参阅#24以获取最新的概述。目前对AndroidiOS的支持很少,并且Wasm处于实验阶段。欢迎贡献!

问题:与 FFI 层相关的大多数未定义行为已经被解决,但仍可能存在偶尔的安全性问题时。除此之外,库的新增功能通常一开始并不完整,但随着反馈和测试逐渐变得更稳健。为了应对问题,我们有一个包括 clippy、单元测试、引擎集成测试和内存清理器的详尽的 CI 套件。甚至热重载也被测试了!

入门

要使用 gdext 深入 Rust 开发,请查看godot-rust 书籍。这本书仍在建设中,但已经涵盖了从 Hello World 设置到几个更深入的章节。

要查阅 API 参考,请查看在线API 文档

此外,我们在examples/dodge-the-creeps目录中提供了一个小型示例游戏。
示例examples/hot-reload展示了在 Godot 编辑器中的热重载。

如果您需要帮助,请加入我们的Discord服务器,并在#help-gdext频道中提问!

许可证

我们使用Mozilla 公共许可证 2.0。MPL 尝试在许可(MIT、Apache、Zlib)和版权(GPL、LGPL)之间找到平衡。

该许可证提供了很多自由:您可以商业使用该库并保持自己的代码为闭源,即游戏开发不受限制。主要条件是如果您修改了 gdext 本身,则需要提供这些更改(仅这些,不包括周围代码)。

贡献

欢迎贡献!如果您想帮忙,请参阅Contributing.md以获取一些入门指南。


lib.rs:

godot-rust的内部crate

不要直接依赖这个crate,而是使用godot crate。不提供 SemVer 或其他保证。

贡献者文档

提供的C核心API的低级别绑定。

依赖关系

~0–2MB
~30K SLoC