I wanted to build an open-source, modular ecosystem from the ground up and naturally, I chose Rust because well.. cargo. Step one was creating a lightweight, cross-platform window manager (Windowed), followed immediately by a software renderer framebuffer (softbuf).
This is windowed and softbuf working together:

Why build my own? (Sticking to Simplicity)
Most existing windowing libraries pull in massive dependency trees or force a rigid architecture on you. By sticking to simplicity, my goal with this stack is keeping each piece strictly modular and easy to reason about. windowed handles OS window creation and events across Windows, Linux, and macOS, while softbuf gives you direct, no-nonsense pixel buffer access without needing a heavy GPU pipeline right out of the gate.
How It Looks in Code
Sticking to simplicity also applies to the API. Instead of hijacking your main thread, windowed lets you own your game loop directly. Here is all it takes to get a base window running:
use windowed::{ControlFlow, Event, Key, Window, WindowConfig};
fn main() -> windowed::Result<()> {
let mut window = Window::new(WindowConfig::new("Game Loop"))?;
'game_loop: loop {
let flow = window.pump_events(|event, _win| match event {
Event::CloseRequested => ControlFlow::Exit,
Event::KeyDown { key: Key::Escape, .. } => ControlFlow::Exit,
_ => ControlFlow::Poll,
})?;
if matches!(flow, ControlFlow::Exit) {
break 'game_loop;
}
// Run game simulation & physics tick
// Render frame
}
Ok(())
}
What's Next?
Now that the windowing and software framebuffer are done, the next step is locking down hardware rendering pipelines. To achieve this while keeping everything modular, we will be building dedicated OpenGL, Vulkan, and DirectX pipelines as separate crates that plug directly into windowedβall unified under a gateway library to manage them seamlessly as the foundation for a custom game engine.
Check out the Repos & Get Involved
Everything is completely MIT licensed and made with love π€. If you want to poke around the source code, try them out, or watch the engine come together, check out the repos below!
You can also help out! Whether it's opening PRs, testing across platforms, or sharing feedback, contributions and stars are always welcome:
- Windowed: https://github.com/Retroboi64/windowed
- softbuf: https://github.com/Retroboi64/softbuf
Top comments (0)