Game development with SpecKit, Rust and Bevy
Source: Dev.to
Overview
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.
“Talk is cheap. Show me the code.” – Linus Torvalds
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
Play the web version on GitHub Pages.
Key Features
- 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
- Enter fullscreen mode
- Exit fullscreen mode
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 –
ESCto 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.