|0.1.4||Jan 7, 2023|
|0.1.3||Jan 7, 2023|
|0.1.2||Jan 6, 2023|
|0.1.1||Jan 6, 2023|
|0.1.0||Jan 6, 2023|
#318 in WebAssembly
22 downloads per month
shura is a safe, fast and cross-platform 2D component-based game framework written in rust. shura helps you to manage big games with a component system, scene managing and its group system. See the features section for all of shura's features.
shura is currently in an early beta version and many features most likely have some issues, so feedback is very welcome.
Get started by copying the template. The template includes the library and has some additional config to make sure your game runs on all supported platforms.
If you don't care for other platforms than PC, you can just add the following to your
[dependencies] shura = "*"
A good way to learn shura is through the provided examples or through reading the code documentation.
Managing multiple independent scenes.
Easy to use component system with a group system to ensure fast manageable 2D games in massive levels
Group system that acts like a chunk system to organize components and manage big worlds
Built in support for postprocessing of your renders
Physics simulations directly implemented into the component system through rapier (feature flag 'physics')
Window Management with winit
Cross-platform extendable rendering with wgpu
Input handling for touch, mouse and keyboard and controller with gilrs (feature flag 'gamepad')
Text rendering with wgpu_glyph (feature flag 'text')
Audio playback with rodio (feature flag 'audio')
Easily create GUI's with egui (feature flag 'gui')
Future features (TODO):
Tutorials and in depth documentation
Lighting (with rapier2d)
Debug grid and complete debug information
Create models from rapier2d colliders / bodies
ComponentGroup always active (before you would just add a huge dimension to it)
Screenshots and videos
The entire engine including the component system is completely without any unsafeties except some data conversion mandatory to pass data to the GPU.
shura is currently only tested on Windows 10 / 11, Linux, Android and on the web with WASM. macOS and iOS are currently untested, but are likely to work.
All examples are running on said platforms, but not every example has support for mobile.
The template uses run-wasm to run on the web and cargo-apk to run on android.
When compiling for android make sure the following is added in the Cargo.toml:
[lib] crate-type = ["cdylib"] path = "src/main.rs"
Checkout some cross-platform examples in the examples directory.
Run a postprocessing example (Located in /examples/postprocessing):
cargo run --release
Android (See Android) :
cargo apk run --release
Browser (Make sure that hardware acceleration is enabled)
Or build it yourself:
cargo run-wasm --release --package bunnymark