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.42021年10月31日

#1842 in 游戏开发


kludgine-app 中使用

MIT/Apache

1MB
4K SLoC

Kludgine

为Rust语言提供的2D渲染引擎。

Kludgine is considered experimental crate version Live Build Status HTML Coverage Report for main branch Documentation for main branch

Kludgine的命名希望具有讽刺意味,但它是由一个对现代图形编程和Rust相对较新的开发者设计和编写的。因此,它可能是一个 kludge

为什么使用Kludgine?

Kludgine处于早期开发阶段,API可能会发生破坏性变化。尽管如此,API已经开始稳定,以下是Kludgine的主要优势

快速且高度便携

Kludgine基于 easygpu,它基于 wgpuwgpu 是一个实验性的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