4个版本
0.1.3 | 2024年7月22日 |
---|---|
0.1.2 | 2024年7月15日 |
0.1.1 | 2024年6月24日 |
0.0.0 | 2022年3月22日 |
2252 in 游戏开发
1,038 每月下载量
在 7 个工具箱中使用 (2 直接使用)
350KB
7K SLoC
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的风格。由于与Godot作为C++引擎交互,我们有时会采用非常规的方法来提供良好的用户体验。
开发状态
gdext库在2023年和2024年发生了很大变化,现在可以用于较小的项目。然而,还有一些需要注意的事项。
[!警告]
公共API会不时引入破坏性变化。其中大部分是由新功能和现有功能的改进引起的。有关书籍中的API稳定性,请参阅。
功能:虽然大多数Godot功能都可用,但一些不太常用的功能缺失。有关最新概述,请参阅 #24。在此阶段,对 Android 或 iOS 的支持很少,并且 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或其他保证。
依赖关系
~9–19MB
~298K SLoC