Expand description
framework
is a simple and easy to use game library for Rust programming language.
framework
attempts to avoid any rust-specific programming concepts like lifetimes/borrowing, making it very friendly for rust beginners.
Supported platforms
- PC: Windows/Linux/MacOS
- HTML5
- Android
- IOS
Features
- Same code for all supported platforms, no platform dependent defines required
- Efficient 2D rendering with automatic geometry batching
- Minimal amount of dependencies: build after
cargo clean
takes only 16s on x230(~6years old laptop) - Immidiate mode UI library included
- Single command deploy for both WASM and Android build instructions
Example
use framework::prelude::*;
#[framework::main("BasicShapes")]
async fn main() {
loop {
clear_background(RED);
draw_line(40.0, 40.0, 100.0, 200.0, 15.0, BLUE);
draw_rectangle(screen_width() / 2.0 - 60.0, 100.0, 120.0, 60.0, GREEN);
draw_circle(screen_width() - 30.0, screen_height() - 30.0, 15.0, YELLOW);
draw_text("HELLO", 20.0, 20.0, 20.0, DARKGRAY);
next_frame().await
}
}
Modules
2D and 3D camera.
Special framework-friendly collections. The datatypes from this module may help to organize game code.
Color types and helpers.
The way to emulate multitasking with framework’s .await
.
Usefull for organizing state machines, animation cutscenes and other stuff that require
some evaluation over time.
Cross platform files management functions.
Cross-platform mouse, keyboard (and gamepads soon) module.
Custom materials - shaders, uniforms.
Math types and helpers.
3D shapes and models, loading 3d models from files, drawing 3D primitives.
Mose common types that can be glob-imported use oxid::framework::prelude::*
for convenience.
Cross platform random generator.
2D shapes rendering.
Functions to load fonts and draw text.
Loading and rendering textures. Also render textures, per-pixel image manipluations.
Cross platform system time access and FPS counters.
Window and associated to window rendering context related functions.