Tetra

Build Status Crates.io Documentation License

Tetra is a simple 2D game framework written in Rust. It uses SDL2 for event handling and OpenGL 3.2+ for rendering.

Features

Installation

To add Tetra to your project, add the following line to your Cargo.toml file:

toml tetra = "0.6"

You will also need to install the SDL2 native libraries - full details are provided in the documentation.

Examples

To get a simple window displayed on screen, the following code can be used:

```rust ,noplaypen use firecoretetra::graphics::{self, Color}; use firecoretetra::{Context, ContextBuilder, State};

struct GameState;

impl State for GameState { fn draw(&mut self, ctx: &mut DefaultContext) -> firecore_tetra::Result { // Cornflower blue, as is tradition graphics::clear(ctx, Color::rgb(0.392, 0.584, 0.929)); Ok(()) } }

fn main() -> firecoretetra::Result { ContextBuilder::new("Hello, world!", 1280, 720) .build()? .run(|| Ok(GameState)) } ```

You can see this example in action by running cargo run --example hello_world.

The full list of examples is available here.

Support/Feedback

Tetra is fairly early in development, so you might run into bugs/flaky docs/general weirdness. Please feel free to open an issue/PR if you find something! You can also contact me via Twitter or the Rust Game Development Discord.