brkrs — a fun, playable brick-breaker game & learning playground
brkrs is a real, playable Breakout/Arkanoid-style game written in Rust 🦀 using the Bevy engine.
It’s also a hands-on learning project, letting you explore:
- Spec-first development with GitHub speckit
- Incremental feature development through issues & PRs
- AI-assisted and agentic coding experiments
Every feature starts as a spec, flows through an issue or PR, and ends as working Rust code. You can play the game, explore the code, and learn modern Rust/Bevy workflows all at the same time.
Linus Torvalds said: “Talk is cheap. Show me the code.”
brkrs lets you play, tinker, and see the specs come alive in a real game.
The Story Behind brkrs
I always wanted to rewrite my old Arkanoid/Breakout-style game, YaAC 🐧, in a modern game framework.
I began by manually implementing the core gameplay foundations: reading documentation, following examples, and building a basic proof-of-concept with the essential mechanics (ball, paddle, bricks).
It quickly became clear that doing everything manually would involve a steep learning curve and a lot of time.
brkrs was born as a solution: a way to learn modern Rust game development, apply spec-first workflows, and experiment with AI-assisted coding, all while still having fun playing a real game.
Try it now
You can play a web version on GitHub Pages
Key Features
brkrs is a Breakout/Arkanoid style game implemented in Rust with the Bevy engine. It extends the classic formula with richer physics, paddle rotation, and per-level configuration.
- Classic Breakout-style gameplay: paddle, ball, bricks, and levels
- Levels are human-readable and easy to modify
- Spec-first workflow: every feature begins as a spec and ends as working Rust code
- Small, incremental PRs demonstrate the development workflow and learning path
- Crate-ready and cross-platform (desktop + WebAssembly builds)
- A fun, approachable way to learn Rust, Bevy, and modern coding practices
Quickstart (play & learn)
Prerequisites: Rust + Cargo + Git
git clone https://github.com/cleder/brkrs.git
cd brkrs
cargo run --release
Controls: move paddle with mouse, scroll wheel to rotate (if enabled), ESC to pause.
Play, tweak, and learn — modify levels, bricks, or mechanics to see specs turn into features.
Core Systems
- Physics (Rapier3D) – 3D physics constrained to a flat play plane.
- Game State – (planned) menu, playing, paused, game over, transitions.
- Level Loader – RON file parsing, entity spawning, per-level gravity.
- Brick System – Extensible brick behaviors via components & events.
- Pause System – ESC to pause, click to resume, with window mode switching (native).
Learning Path & Contribution
This project is intended to be fun and educational. Suggested learning steps:
- Read a spec in the repo or wiki
- Pick a small issue to implement
- Submit a PR that fulfills the spec
- Experiment with AI-assisted features or gameplay tweaks
Documentation
Full documentation is available at brkrs.readthedocs.io:
- Quickstart Guide — Get running in 10 minutes
- Developer Guide — Set up a development environment
- API Reference — Rust API documentation
Why You’ll Enjoy It
- Play a real game while learning coding practices
- Watch specs transform into working features
- Experiment safely with Rust, Bevy, and AI-assisted workflows
- Learn by doing in a hands-on, playful way
Top comments (0)