DEV Community

Cover image for Game development with SpecKit, Rust and Bevy
Christian Ledermann
Christian Ledermann

Posted on • Edited on

Game development with SpecKit, Rust and Bevy

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
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

  1. Physics (Rapier3D) – 3D physics constrained to a flat play plane.
  2. Game State – (planned) menu, playing, paused, game over, transitions.
  3. Level Loader – RON file parsing, entity spawning, per-level gravity.
  4. Brick System – Extensible brick behaviors via components & events.
  5. 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:

  1. Read a spec in the repo or wiki
  2. Pick a small issue to implement
  3. Submit a PR that fulfills the spec
  4. Experiment with AI-assisted features or gameplay tweaks

Documentation

Full documentation is available at brkrs.readthedocs.io:


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 (4)

Collapse
 
pavelkorobok profile image
Pavel Korobok • Edited

I experimented with Bevy and Rust, inspired by your brkrs, and put together a simple Breakout with Rapier physics and RON levels, but after a marathon of coding, my brain was craving an epic world to reboot. I chose Genshin Impact, but instead of tedious farming, I bought an account with top characters and Primogems through Genshin Impact Accounts . Now I'm drawing ideas from the game for my projects, and everything is moving along more smoothly. Your spec-first approach is fantastic, I'll add it to my workflow!

Collapse
 
ldrscke profile image
Christian Ledermann

It is not a silver bullet though. In the beginning everything runs smooth and productive, and then you can hit a brick wall, where the LLM goes around in circles, fixes one bug and introduces another one in the process, fixes that one introduces the first one again, and similar problems.
Once the project is over a certain threshold of complexity, you have to take a step back, look at the architecture and unravel the spaghetti manually.

Collapse
 
art_light profile image
Art light

Really impressive work—your approach to learning and building through hands-on specs is super inspiring. I’d love to explore this more and see how we might collaborate or learn from each other.☺

Collapse
 
ldrscke profile image
Christian Ledermann

Thanks :-)

You are very welcome as a contributor, have a look at the backlog if anything tickles your fancy ;-)
There are programming as well as non-technical tasks available. Give me a shout if you need some more information.