15个版本 (5个重大更新)

0.6.0 2023年6月21日
0.5.1 2023年6月17日
0.4.3 2023年6月14日
0.3.1 2023年6月13日
0.1.4 2023年1月7日

#1593 in 游戏开发

Download history 222/week @ 2024-03-08 34/week @ 2024-03-15 3/week @ 2024-03-29

每月126次下载

Apache-2.0

1MB
11K SLoC

shura

shura是一个安全、快速且跨平台的2D组件化游戏框架,用Rust编写。shura可以帮助您通过其场景管理、分组系统和组件系统来管理大型游戏,该组件系统旨在轻松地在项目之间共享组件(因此允许构建组件生态系统)。shura拥有您2D游戏所需的一切,例如物理、控制器输入、音频、易于扩展的渲染、序列化、反序列化、文本渲染、GUI、动画等等。请参阅功能部分以了解shura的所有功能。

shura目前处于早期版本,未来可能会有变化或无法按预期工作。如果您遇到错误、有反馈或有问题,请随时创建问题。

入门指南

要查看一些示例,请前往/examples目录,或运行以下命令:

cargo run --release --example bunnymark

或者

将以下内容添加到您的Cargo.toml

[dependencies]
shura = "0.3.0"

通过提供的示例或阅读文档,是学习shura的好方法。

功能

  • 管理多个独立场景。

  • 易于使用的组件系统,具有分组系统以确保在大型关卡中快速管理的2D游戏

  • 分组系统类似于块系统,用于组织组件和管理大型世界

  • 支持渲染的后处理

  • 易于配置相机缩放,以确保您的游戏响应式并在所有类型的屏幕上工作

  • 通过rapier(功能标志'physics')将物理模拟直接实现到组件系统中

  • 使用winit进行窗口管理

  • 使用wgpu进行跨平台的可扩展渲染

  • 触摸、鼠标和键盘以及使用 gilrs(功能标志 'gamepad')的控制器输入处理

  • 文本渲染灵感来源于 wgpu_text(功能标志 'text')

  • 使用 rodio(功能标志 'audio')进行音频播放

  • 使用 egui(功能标志 'gui')轻松创建GUI

  • 使用 serdebincode 序列化和反序列化场景和组

  • bevy_tweening 启发的动画(功能标志 'animation')

  • 使用 env_logger 和修改版的 wasm_logger(功能标志 'log')在所有平台上进行日志记录

跨平台

shura 目前仅在 Windows 10/11、Linux、Android 以及使用 WASM 的网页上进行测试。macOS 和 iOS 目前未进行测试,但很可能可以工作。

模板使用 template,通过 run-wasm 在网页上运行,并通过 cargo-apk 在 Android 上运行。

Android

当为 Android 编译时,确保在 Cargo.toml 中添加以下内容

[lib]
crate-type = ["cdylib"]
path = "src/main.rs"

依赖项

~20–62MB
~824K SLoC