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日 |
#1842 in 游戏开发
在 kludgine-app 中使用
1MB
4K SLoC
Kludgine
为Rust语言提供的2D渲染引擎。
Kludgine的命名希望具有讽刺意味,但它是由一个对现代图形编程和Rust相对较新的开发者设计和编写的。因此,它可能是一个 kludge。
为什么使用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 的过程中,这个库变成了一个更加精简的渲染和窗口库。它将继续发展,以便可以单独使用、在其他 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 许可证 2.0 保护。此仓库中的字体默认不包含,并且仅 根据 Apache 许可证 2.0 许可。
依赖项
~26–58MB
~843K SLoC