-
-
GIF
Core Gameplay
-
The arena: six home wedges around a shared middle.
-
Break out of your corner, rocket a rival, catch the drops.
-
Bombs, falling shields and the last one standing.
-
Home, the Locker and the results screen.
-
App icon (1024 x 1024).
-
In-game screenshot, no device frame.
-
Aiming a rocket at a rival. In-game screenshot, no device frame.
-
GIF
Shrink a rival
-
GIF
Pass tiers and claims
-
GIF
Win rewards
-
GIF
Break shield and move up!
-
GIF
Locker screen with cosmetics
-
GIF
Rocket a rival!
-
GIF
More points upfront
Inspiration
I always enjoyed classic Breakout games, or the lesser-known Ricochet, and I always wondered what this arcade game would look like with multiple players. What would the interactions look like? What mechanics would work besides the basic brick breaking? Could the lag be hidden by smart local physics simulation and periodic server syncs?
Multiplayer was the goal, but I had to start with bots: to simulate the experience, to have a lean start while the game isn't popular, and to allow offline play. So the remaining question was: how many players? 2? 4? Those numbers would keep the classic rectangular brick layout. But then I thought about how 6 could fit on a single map, and that's when the circle with 6 wedges came to life. The more players, the merrier, and the hexagonal center is where all the fun should happen.
I built the rest around that idea: give up safety to get to the center, where you score more, catch more power-ups, and can attack rivals.
I wanted it to be a casual but competitive, fast-paced mobile game, so I kept it free of "pay-to-win" mechanics. Money only buys cosmetics, a battle pass, and coins.
What it does
It's a brick breaker for six. The arena is a circle split into six wedges. You hold one, five bots hold the others, and everyone fights over the bricks in the middle.
Your home. Move a curved paddle with one thumb. Drag to steer, push sideways to aim, and let go to fire. An arrow shows where the ball will go. Miss a ball and you lose one of your 10 lives.
Ascend. Break through your shield row to move onto the ring. You get a higher score multiplier, but everyone can reach you. Up there, the shield behind you takes 8 hits. If it breaks, you have a few seconds to catch a Repair before you fall back home.
The middle. The green bricks are shared. Each section grows back when it gets low, so there's always something to compete for.
Combo. Break bricks quickly to build your multiplier to x4, or x12 on the ring.
Power-ups. Catch these 7 drops with your paddle:
- Supply: an extra ball, served right away
- Wide: a wider paddle for a while
- Repair: fixes your shield on the ring or gives you a life at home
- Fireball: your ball hits twice as hard for 8 bricks
- Bomb: each brick you break blows up its neighbors, for 8 breaks
- Rocket: aim at a rival to destroy their shield on the ring or take a life at home
- Shrink Ray: aim at a rival to halve their paddle for 12 seconds
Hold and drag to aim a Rocket or Shrink Ray, then release. Play keeps going while you aim.
Bank shots. When you and a neighbour are both on the ring, a plate appears between you. Bounce your ball off it to hit them from the side.
It gets harder. The ball speeds up every minute. Rockets become more common as the match goes on and players drop out.
Modes. Play Timed (4 minutes, highest score wins) or Last Player Standing. There are five difficulties, from Very Easy to Very Hard. Harder bots aim better and attack more often.
Around the match. A win earns 1,000 coins and a loss earns 250. Spend them in the Shop on paddle skins, ball trails and taunts. There are also 3 daily missions and a 14-tier Launch Pass with free and premium tracks.
Learning. The first match teaches the basics in four short steps. Other mechanics get an explanation when you first encounter them.
How we built it
- TypeScript + PixiJS (WebGL) for the arena, React for menus, and Capacitor for Android and iOS.
- Custom physics. I wrote the physics myself to handle the round arena and to control how the ball bounces off the paddle. It doesn't depend on the browser, so it can run on a server for multiplayer later.
- Simulated matches as tests. A 10-minute match between six bots runs in about 7 seconds, so after every change I run a batch of them to catch physics bugs and balance shifts. I tuned the five difficulties on 15,000 simulated matches.
- Firebase handles accounts and saved progress. Cloud Functions handle rewards. Analytics and Crashlytics only run with consent.
- RevenueCat manages the Launch Pass entitlement and coins as a virtual currency. I also report rewarded ad events to RevenueCat.
- AdMob provides rewarded ads. The server verifies rewards before paying coins.
- Art and sound. I used fal.ai for metal textures, Nano Banana for cosmetics, and ElevenLabs for sound effects. Music changes with the match's intensity.
- I built it solo with Claude Code and Codex as coding partners. It runs close to 60 fps on my test phone, a 2017 Samsung S8.
Challenges we ran into
- The wedge-shaped home produced some weird collision angles, and we had to change the normal rectangular arcade physics a bit to let the balls bounce back toward the center correctly.
- How do we make it fun? By keeping the old, satisfying chain brick breaking and adding new mechanics made for multiplayer.
- The first negative feedback was: "I'm in a 6-player arena, but I feel like I'm still playing alone." That's when I added targeted attack power-ups and plates you can bank your ball off to break an opponent's shield or take their life.
- Choosing a theme was also tricky, but going from classic arcade to a slightly cyberpunk, sci-fi neon style worked out great, I think.
- Any change to the game could break things, not just in functionality but also in game balance. That's why we built an extensive battery of simulated gameplay tests to keep the numbers close to a baseline that human players approved.
- The iOS build is still in review because of some mishaps with Apple guidelines.
Accomplishments that we're proud of
We made it in time for the Shipaton deadline, even though the project only seriously started at the end of July 2026. The art style and music look and feel awesome. Blending multiple background tracks depending on game intensity was a nice design choice. The game can feel intense and chaotic, but really fun, according to player feedback. Proud that we built a mission system, cosmetics, and monetization in record time.
What we learned
Automated testing and gameplay simulation are essential in an indie dev team (of 1 dev). An early design system is a must for a cohesive UI/UX. You don't need Unity or a big game engine to build a mobile game. Vanilla JS + a WebGL canvas works just fine.
What's next for Brick Breaker: Overdrive
- iOS public launch
- stabilize current features
- get feedback
- fix bugs
- adjust the coin economy to feel more challenging
- even prettier cosmetics
- Biggest one: multiplayer, with the simulation synced through a backend. This is the end goal, but the core gameplay loop needs to be in top shape before we roll it out.
Built With
- admob
- capacitor
- firebase
- pixijs
- react
- revenuecat
- typescript
- webgl
Log in or sign up for Devpost to join the conversation.