13个版本 (4个破坏性更新)
0.5.0 | 2023年4月28日 |
---|---|
0.4.0 | 2023年1月27日 |
0.3.1 | 2022年11月6日 |
0.2.0 | 2022年7月31日 |
0.1.0-dev.4 | 2021年10月31日 |
#942 in 游戏开发
1MB
6K SLoC
Kludgine
为Rust语言设计的2D渲染引擎。
Kludgine的命名可能带有讽刺意味,但它是由一个对现代图形编程和Rust相对较新的开发者设计和编写的。因此,它可能是一个修补程序。
为什么使用Kludgine?
Kludgine处于早期开发阶段,API可能会发生破坏性更改。尽管如此,API已经开始稳定,以下是Kludgine的主要优点:
快速且高度可移植
Kludgine建立在easygpu之上,它基于wgpu。 wgpu
是一个实验性的WebGPU实现,它支持Windows上的DirectX、Linux上的Vulkan、iOS/Mac OS上的Metal,并且几乎可以在浏览器中工作。Kludgine目前还不能在浏览器中工作,但我们将最终支持它。
在Kludgine中编写的应用程序和游戏应在预算硬件上运行良好,即使没有独立GPU。
智能重绘
虽然大多数游戏希望有一个稳定的帧率,但许多开发者可能希望允许他们的程序不会不断重绘。Kludgine通过RedrawStatus
类型使管理这一点变得简单,允许轻松安排未来的帧重绘或立即请求重绘。
如果您希望进行一致的重绘,请实现Window::target_fps
。
多窗口支持
Kludgine支持多窗口。一般来说,大多数游戏不需要多个窗口,但通用应用程序需要。
易用性
这有点模糊,但包括以下内容:
- 人体工程学和一致的API:这是一个正在进行的工作,但目标是实现一致的设计,易于阅读和编写。
- 模块化设计:Kludgine 开始成为一个大型引擎,但在创建 Gooey 的过程中,这个 crate 成为了一个更精简的渲染和窗口化 crate。它将继续进化,使其能够独立使用,或在其他 wgpu 应用程序中使用,或作为 Gooey 的前端。
let texture = Texture::load("kludgine/examples/assets/k.png")?;
let sprite = SpriteSource::entire_texture(texture);
sprite.render_at(
scene,
Rect::from(scene.size()).center(),
SpriteRotation::around_center(self.rotation_angle),
);
要查看如何使用 Kludgine 的各种功能的示例,请参阅存储库中的 kludgine/examples 文件夹。如果您遇到问题,请确保您查看的是 Kludgine 正确版本的示例。如果您使用的是发布版本,请切换到查看该版本标签的存储库。
入门指南
要使用 Kludgine,请将其添加到您的 Cargo.toml
cargo add kludgine
关于
此项目由 Khonsu Labs 开发,并用于 Cosmic Verge。我希望它对其他人也很有用。
此代码采用双许可协议,受 MIT 许可证 和 Apache License 2.0 的保护。此存储库中的字体默认不包含在内,且仅根据 Apache License 2.0 许可证 许可。
依赖关系
~30–67MB
~1M SLoC