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.