Tetra
Tetra is a simple 2D game framework written in Rust. It uses SDL2 for event handling and OpenGL 3.2+ for rendering.
Note that Tetra is still extremely early in development! It may/will have bugs and missing features (the big ones currently being sound and gamepad support). That said, you're welcome to give it a go and let me know what you think :)
Features
- XNA/MonoGame-inspired API
- Efficient 2D rendering, with draw call batching by default
- Animations/spritesheets
- Pixel-perfect screen scaling
- Deterministic game loop, à la Fix Your Timestep.
Installation
To add Tetra to your project, add the following line to your Cargo.toml
file:
tetra = "0.1"
You will also need to install the SDL2 native libraries, as described here.
Examples
To get a simple window displayed on screen, the following code can be used:
extern crate tetra;
use ;
use ;
;
You can see this example in action by running cargo run --example hello_world
.
The full list of examples available are:
hello_world
- Opens a window and clears it with a solid color.texture
- Loads and displays a texture.animation
- Displays an animation, made up of regions from a texture.nineslice
- Slices a texture into nine segments to display a dialog box.keyboard
- Moves a texture around based on keyboard input.mouse
- Moves a texture around based on mouse input.tetras
- A full example game (which is entirely legally distinct from a certain other block-based puzzle game cough).
Support/Feedback
As mentioned above, Tetra is fairly early in development, so there's likely to be bugs/flaky docs/general weirdness. Please feel free to leave an issue/PR if you find something!
You can also contact me via Twitter, or find me lurking in the #gamedev channel on the Rust Community Discord.