A Rust port of the olcConsoleGameEngine. Make simple retro-style console games directly in the terminal, with an API closely matching the original C++ engine.
conhost.exe to run any console games.
- Basic Console Rendering (text, colors, and shapes)
- Sprites (.spr format)
- Keyboard & mouse input
- Audio support (.wav files and arbitrary frequencies)
- Publish to crates.io (available here)
- Documentation
- Audio support
- Image → sprite converter
- Cross-platform support
Add the engine to your Cargo.toml:
[dependencies]
rusty_console_game_engine = "0.4.1"Then create a game:
use rusty_console_game_engine::prelude::*;
struct Demo;
impl ConsoleGame for Demo {
fn app_name(&self) -> &str {
"Demo"
}
fn create(&mut self, _engine: &mut ConsoleGameEngine<Self>) -> bool {
true
}
fn update(&mut self, engine: &mut ConsoleGameEngine<Self>, _elapsed_time: f32) -> bool {
engine.clear(FG_BLACK);
engine.fill_circle(engine.mouse_x(), engine.mouse_y(), 5);
if engine.key_pressed(SPACE) {
engine.audio.play_note(D4, 500);
}
true
}
}
fn main() {
let mut engine = ConsoleGameEngine::new(Demo);
engine
.construct_console(150, 150, 4, 4)
.expect("Console Construction Failed");
engine.start();
}To see more typical use cases of the engine, check out the examples!
Open conhost.exe (in the repo root) before running an example.
Platformer – Mario-style scrolling platformer
Mode7 – Pseudo 3D flying effect
Mazes – Maze generator and renderer
Raycaster - Simple raycasted world to explore
Piano - Piano to play different notes
