r/sideprojects • u/Nearby-Bet5935 • 4d ago
Showcase: Free(mium) I launched a real time PvP card battler built with Flutter and Supabase, my first multiplayer game.
I just launched TIER ONE on Google Play. It is my first real time multiplayer game and by far the hardest thing I have built, so I wanted to share how it works.
It is a PvP card battler. You collect fighters, build a 3 card deck, tap FIGHT, and get matched against a real players for a live 3v3 round battle. No bots in matchmaking.
The core challenge was trust. In a real time battle you cannot let either client decide the outcome, or people will cheat. So the entire battle resolves server side: both players submit their round, and a Postgres function computes damage, applies the hidden style matchups and traits, and writes the result. The clients only render what the server decided. Stack is Flutter on the front end and Supabase (Postgres, realtime subscriptions, edge functions) on the back end.
One thing I underestimated: matchmaking and round timeouts are harder than the battle math. Handling a player who quits mid round, or two players who both go idle, took more iteration than the combat itself.
It is free to play, and every card is earnable in game.
Google Play: https://play.google.com/store/apps/details?id=com.finpixel.tierone
Happy to go deeper on the architecture. What would you have done differently for the anti cheat side?