🎮 Game Design Document

Bite-Sized
Brawlers

The Food Fight Auto-Battler — where anthropomorphic street food wage epic battles on a cafeteria table. Built entirely in React Native.

🍔 Auto-Battler ⚡ React Native 🔮 Gacha System ♾️ Idle Mechanics ☁️ Supabase Cloud 🗺️ Offline Campaign
scroll
The Big Idea

The Game Concept

A MOBA-brained auto-battler where the heroes are street food. Everyone already understands team comp — now make it delicious.

The Twist

Anthropomorphic Street Food

Instead of knights and dragons, the heroes are street food, snacks, and desserts. The battleground is a cafeteria table. Unique, highly brandable, and leaves endless room for creative 2D animations — ketchup splatters, soda explosions, the works.

The Hook

MOBA Instinct Applied

Anyone who has played Mobile Legends instinctively understands team composition. Beefy frontline, ranged attacker, healer. Bite-Sized Brawlers uses this exact logic — but makes it visually instant and universally relatable.

🌐

SEO + App Store Strategy

Build a blazing-fast companion website (e.g., bitebrawlers.com) hosting all Brawlers, optimal grid placements, and a global leaderboard. Advanced SEO on this site captures organic traffic from queries like "best mobile auto battlers" or "how to beat level 50 Bite Brawlers", funneling directly into downloads.

Tech Stack
React Native React Native Reanimated React Native Skia React Native Gesture Handler Zustand Supabase Expo Haptics MMKV RevenueCat LottieFiles
The Roster

Meet the Brawlers

Four core food fighters, each with a distinct MOBA role, unique targeting behavior, and a screen-shattering Ultimate.

🍔
Double Cheeseburger
Tank / Setter

Sits right in the front row. Big, slow, massive Health. Makes the enemy spend all their attacks on him.

HP
ATK
SPD
DEF
⚡ Ultimate — The Meat Shield

Slams the ground. All enemies are Stunned (miss their next 3 Ticks) and the Burger gains a temporary shield.

🍟
French Fry Box
ADC / Marksman

Sits in the back corners. Very low Health but blistering Attack Speed. Targets the lowest-HP enemy to finish them off.

HP
ATK
SPD
DEF
⚡ Ultimate — Salty Barrage

Shoots 5 high-damage potato spears at the lowest-health enemy. If the Burger keeps enemies busy, the Fries will wipe out the entire team.

🥤
Soda Cup
Burst Mage

Middle row. Slow individual attacks but a devastating AoE Ultimate. Drops sticky syrup on entire 2×2 grid sections.

HP
ATK
SPD
AoE
⚡ Ultimate — Sticky Geyser

Drops a puddle of syrup on a 2×2 section of the enemy grid. Massive burst damage and slows attack speed by 50%.

🍦
Ice Cream Cone
Support / Healer

Back row. Casts cooling auras to restore team health. The difference between a wipe and a comeback.

HP
HEAL
SPD
BUFF
⚡ Ultimate — Brain Freeze

Restores 30% HP to the friendly Brawler with the lowest health and grants them an attack speed buff.

🌶️

The Jalapeño — Wildcard Assassin

Built-in AI rule: At the start of battle, immediately jump to the furthest enemy tile. Bypasses all Tanks entirely and starts assassinating the squishy Marksmen hiding in the back. The anti-frontline wildcard.

UI Architecture

Six Polished Screens

The entire game flows through six highly-crafted screens built in React Native.

01
Home Hub
🏠 The Kitchen

The idle hub. An isometric, cartoonish kitchen counter where your equipped team of 5 Brawlers chills and passively generates currency.

  • Isometric illustrated kitchen counter background
  • Lottie idle animations — subtle breathing/bouncing loop
  • Big bouncy "Claim Crumbs" button with haptic feedback
  • PanGestureHandler swipe to pan with parallax effect
  • Top HUD: Player Level, Crumbs balance, Golden Tickets
  • Broken Vending Machine for offline earnings
Reanimated expo-haptics Lottie
02
Gacha / Summon
🛍️ The Delivery Bag

Maximum anticipation and visual explosion. This is where the dopamine peaks.

  • Glowing, sealed food delivery bag center stage
  • Player taps bag 5 times to open (TapGestureHandler)
  • Haptics escalate: Light → Medium → Heavy → BOOM
  • Each tap scales + shakes the bag (spring animation)
  • Final tap: White flash + Skia particle explosion
  • New Brawler card scales from 0 → 1.2 → 1.0 (bouncy spring)
React Native Skia TapGestureHandler Haptics
03
Inventory & Merging
🗄️ The Pantry

Tactile satisfaction. All about progression through satisfying drag gestures.

  • Grid FlatList — all owned Brawlers with rarity borders
  • Rarity tiers: Grey / Blue / Purple / Gold border colors
  • Long-press lifts a card (10% scale + drop-shadow)
  • Drag over matching Brawler → target pulses
  • Drop to merge: "Smash" sound + flash = Level Up!
  • Level-Up screen with stat comparison + upgrade button
PanGestureHandler Reanimated FlatList
04
Strategy & Combat
🥗 The Lunch Tray

Where the strategy happens. Setup phase → auto-battle spectacle.

  • Top 50%: Enemy's 3×3 grid (read-only)
  • Bottom 50%: Player's 3×3 grid + horizontal Brawler list
  • Valid drop square flashes translucent green
  • Warning icon if Marksman placed in front row
  • FIGHT button triggers Zustand tick engine (100ms)
  • Skia Canvas renders all combat visuals + floating numbers
Zustand Skia Canvas Reanimated
05
Social & Guilds
🏪 The Food Court

Long-term retention through social mechanics and guild economy.

  • Join a "Franchise" (Clan) with up to 30 players
  • Chat interface with real-time Brawler donation requests
  • Leaderboard — global trophy rankings
  • Request specific Brawlers to reach next level
  • Guildmates donate spares for bonus coins
  • Multi-tenant backend — Supabase handles isolation perfectly
Supabase Realtime Row-Level Security
06
Shop & Revenue
💰 The Menu

Ethical monetization. Offers things that look too good to ignore without forcing anyone.

  • Daily Freebie: Watch 30s ad → free Delivery Bag
  • Starter Meal ($1.99): 500 Gems + guaranteed Epic Brawler
  • Season Pass ($4.99/mo): Premium reward track + Mythic Sushi Roll
  • Cosmetics: Sunglasses, hats for any Brawler
  • Gem bundles: $4.99 / $19.99 tiers
  • Win purchase: heavy haptic + gem rain animation
RevenueCat App Store IAP AdMob
Combat System

The Battle Engine

A pure state machine running on a Tick system. No game engine needed — just Zustand, Reanimated, and Skia.

The Tick Loop

Every 100 milliseconds, the game's central Zustand store fires a Tick. Each Tick runs these checks across all living Brawlers:

T1

Target Selection

Each Brawler runs its targeting AI to pick the enemy to attack based on role (nearest / lowest HP / backline).

T5

Movement

Brawler moves forward toward the target. Reanimated translates the sprite with a slight rotation wobble to simulate walking.

T10

Attack & Damage

Attack connects. Enemy HP decreases. Floating damage number animates upward and fades. Lottie hit effect triggers.

T+

Energy Gain

Both attacker and target gain Energy. When energy hits 100, Brawler stops basic attacks and casts their Ultimate.

The 4 Attack Phases

When it's a Burger's turn to attack, he goes through 4 visual states:

① HYPE UP — Aggressive

Energy bar fills. A yellow "!" pops over his head. Sprite scales 1.0→1.2 (growing with anger). Medium haptic fires.

② DASH — Moving

withSpring animation flies the Burger toward the enemy grid square. Wind streak Lottie animation trails behind.

③ IMPACT — Triumph

Burger image swaps to wide-mouth expression. Enemy swaps to damaged sprite. Ketchup splat Lottie plays. HP bar drops.

④ RESET — Proud/Tired

Springs back to home square. Does a mini victory jump, eyes return to "ready" state. Turn indicator shifts to next Brawler.

🎯

Post-Match

Win: Massive "VICTORY" banner drops with heavy haptics + reward chest. Loss: Greyed "DEFEAT" screen + Damage Graph button so players understand exactly why they lost and how to improve.

AI Behavior

Targeting Intelligence

The secret sauce. How characters choose their targets is where all the strategic depth lives.

🛡️
Standard Aggro
Front-to-Back

Characters target the closest enemy in their lane by default. Your opponent's frontline Tanks soak up 90% of standard damage. Burgers protecting the back row.

Used by: All Brawlers (default)
🌶️
Assassin Jump
Backline Bypass

The wildcard. At battle start, immediately teleport to the furthest enemy tile. Bypasses Tanks entirely, assassinates the squishy Marksmen hiding in the corners.

Used by: The Jalapeño
🎯
Sniper Focus
Lowest HP Hunt

Always target the enemy with the lowest total HP. Designed to finish off weakened enemies, preventing them from getting a chance to cast their Ultimate.

Used by: The French Fry Box
💡

The Dopamine Moment

It hits when the player perfectly positions their Burger to absorb all damage, allowing their Soda Cup just enough time to build 100 Energy and wipe out the enemy team with a massive explosion — right before the Burger dies. This is the tension-and-release loop that makes auto-battlers addictive.

Spectacle System

Energy & Ultimates

Basic attacks are fun. Ultimates are what make the game visually spectacular.

Energy Mechanics

78 / 100
  • +Gain Energy each time you attack
  • +Gain Energy each time you get attacked
  • !At 100 Energy: stop basic attacks and cast Ultimate
  • Screen dims, time slows for a fraction of a second
  • Heavy haptic vibration fires on the phone
  • Massive React Native Skia visual effect triggers

Emotional State Expressions

To make Brawlers feel alive, swap character expressions during battle:

State Visual Cue Trigger
IdleNeutral angry eyes, determinedWaiting for turn
AttackingWide open mouth, screamingPhase 2 & 3
WinningHuge smile, winkingAfter killing enemy
Taking HitEyes squeezed shut, dizzyEnemy attacks
Low HealthSweating, bruised, nervousBelow 30% HP
Retention Engine

The Core Loop

The million-dollar cycle that keeps players coming back every single day.

⚔️
1. Battle
Play Arena matches → win Delivery Bags. Trophies go up. Team comp matters.
⏱️
2. Wait
Bag drops into a slot. 3-hour timer starts. Or skip for 10 Golden Tickets.
💰
3. Collect
Gather idle Crumbs while waiting. Swipe the Kitchen to collect passively-earned currency.
⬆️
4. Upgrade
Open Bag. Get cards + Crumbs. Hit the green UPGRADE button. New level, new stats.
🔁
5. Repeat
Stronger team → fight harder enemies. The cycle is mathematically endless.

The Daily Player Ritual

Every single day, the engaged player does this:

☀️Open app → collect overnight idle Crumbs
🛍️Open the Bag that unlocked overnight
Start a new Bag timer
⚔️Play a few Arena matches to fill empty Bag slots
📱Close the app — game is running in the background
🔔

The Most Important Moment

When the player sees the 3-hour timer and taps "Start Timer" — you have guaranteed this user will open your app again in 3 hours. This is the true hook.

Psychology of Play

Core Dopamine System

Three tiers of rewards calibrated to keep players' hands on the screen at every timescale.

Tier 1
Every 10–30 seconds

The Small Hit

Pure tactile satisfaction. Requires zero brainpower but feels physically incredible.

  • 🤝The Merge — drag Level 1 onto Level 1, instant flash + heavy haptic + "ding!" = Level 2
  • 💰Claiming Crumbs — swipe to collect idle coins with rapid popping sounds
  • Polished React Native transitions are what elevate this from template to premium
Tier 2
Every 3–5 minutes

The Medium Hit

Tension and release. Validates the player's intelligence.

  • 💥The Perfect Ultimate — Marksman survives on 1 HP, energy bar fills, screen dims, time slows, team wiped
  • 🏆Winning an Arena Match — "VICTORY" banner + rank trophies tick up from 1200 to 1230
  • 🛍️Unlocking a Standard Bag — tapping it open for upgrade materials
Tier 3
Once a week / When spending

The Large Hit

Adrenaline, retention, and monetization. The slot machine effect.

  • 🐉Mythic Gacha Pull — screen vibrates aggressively, flashes gold, 0.1% drop rate Golden Dragon Sushi Roll
  • 🥇League Promotion — screen-shaking animation entering Gold League from Silver
  • 🏢Global Guild Buff — Franchise HQ levels up, everyone gets permanent +5% damage boost
🧠

The Mathematical Hook

If you nail the visual and audio feedback for all three tiers, the game becomes mathematically impossible to put down. The Mythic pull is the slot machine effect — because the game is connected to the cloud, they can immediately show off that Mythic Brawler in Club chat or use it in their next battle.

First 3 Minutes

The First-Time Experience

No main menu. Instant action. The player learns everything through doing — never through reading.

Screen: The Lunch Tray

🥊 Step 1 — The Ambush

App loads directly into battle. No menu. Player sees their Level 1 Burger and French Fry vs. an evil Moldy Donut. An animated finger points: "Tap FIGHT to defend your lunch!"

Battle is rigged. Player cannot lose. Massive "VICTORY!" drops. A shiny Delivery Bag appears.

✅ Victory Guaranteed 🛍️ Delivery Bag
Screen: The Delivery Bag

🎁 Step 2 — The First Reward

The shiny Delivery Bag sits center screen. Animated finger points: "Tap to open!" Player taps. Bag shakes and bursts open with a bright flash.

Three reward cards slide out. New Brawler unlocked for the first time.

💰 +100 Crumbs 🍔 ×5 Burger Copies 🆕 Soda Cup Unlocked!
Screen: The Pantry

⬆️ Step 3 — The First Upgrade

Game forces player to Pantry. Burger card is glowing green. Finger points: "Your Burger is ready to level up! Tap him!"

They see the UPGRADE button and tap it. Cash-register sound plays. Burger spins, gains shiny new stats, big text announces Level 2.

⬆️ Burger → Level 2 ❤️ HP 1200→1450 ⚔️ ATK 300→340
Screen: The Kitchen

🏠 Step 4 — Core Loop Revealed

Full Kitchen home screen unlocks. All three Brawlers chill on the counter. A friendly chef pops up: "Welcome to your Kitchen! Keep fighting to unlock more recipes!"

Bottom nav bar finally appears. Player is now free. They feel smart, powerful, and ready to compete.

🔓 Full Game Unlocked 📱 Nav Bar Active
💾

Implementation Note

Use a isTutorialComplete boolean saved in MMKV. While false, hide the bottom tab bar and force the user to click only the highlighted buttons. All other UI is non-interactive until the tutorial completes.

Character Growth

Progression & Damage States

Cap Brawler levels at 20. Modular accessories unlock visual rank. Three damage sprites per Brawler create the illusion of animation through smart state swapping.

The Level System

Cap characters at Level 20. This keeps math balanced, prevents ugly "4.54 Million HP" numbers, and gives players a clear finish line. For endlessness, give them Unlimited Stages instead of unlimited levels.

Lv 1 Plain Burger — base body only
Lv 3 + Pixelated Sunglasses overlay
Lv 7 + Red Martial Arts Headband overlay
Lv 12 + Oversized Red Boxing Gloves
Lv 18 + Gold Championship Belt
Lv 20 ✨ Max Level — Glowing Golden Crown + Mythic Aura (Skia)

Modular "Lego" System

Never generate 100 images. Generate 15–20 images total and create thousands of combinations via stacking.

// Everything stacks perfectly — same canvas size!
<View style={{ width: 100, height: 100 }}>
  <Image source={baseBurger}
    style={{ position: 'absolute', width: '100%', height: '100%' }} />
  {level > 3 &&
    <Image source={sunglasses}
      style={{ position: 'absolute', width: '100%', height: '100%' }} />
  }
  {level > 7 &&
    <Image source={headband}
      style={{ position: 'absolute', width: '100%', height: '100%' }} />
  }
</View>
📐

The Canvas Rule

All assets must share the same canvas size (512×512 px). If the Burger is centered in a 512×512 image, and the sunglasses are positioned at eye level in a 512×512 image, they align perfectly with zero math.

Damage States (Visual Degradation)

Three PNG assets per Brawler. Swap them based on HP percentage. Hide the swap behind a flash animation so the player's brain perceives it as physical damage.

🍔
HP: 100% → 51%
Full Health
Perfect Burger — angry eyes, fists raised, ready to fight
😣
HP: 50% → 1%
Bitten
Massive cartoon bite out of the side, lettuce hanging off, bruised eyes
💀
HP: 0%
Defeated
Flattened bottom bun, ketchup splattered, "X" eyes, crumbs everywhere

The Swap Animation Sequence

1. Hit Effect
Lottie "Sword Slash" triggers over Burger for 0.2s
🔄
2. Sprite Swap
While flash covers character, image source changes
📳
3. Shake
Reanimated wobbles the sprite left/right aggressively
🍅
4. Debris
Skia particle emitter shoots 4–5 brown crumbs + ketchup
Solo Content

Offline Modes

A massive single-player experience that never runs out. Clean math, capped levels, unlimited stages.

🗺️

The Adventure Map

Candy-Crush-style winding path through different "Food Zones." Levels 1–20 in "The Greasy Grill," 21–40 in "The Frosty Freezer."

  • Vertical ScrollView with absolute-positioned level nodes
  • Dashed line fills with color as new levels unlock
  • Padlock icon shakes and breaks when unlocked
  • Tap old levels to replay/sweep for farming Crumbs
  • Boss levels with unique mechanics every 10 stages
ScrollViewabsolute positioning
🔍

The Scouting Screen

Before any campaign battle, let the player peek at exactly which enemies are waiting. Teaches deep strategy without any tutorial text.

  • Popup shows exact enemy Brawler lineup
  • Player sees grouped enemies → thinks "I need AoE!"
  • Teaches MOBA-style counter-picking organically
  • Warning labels for particularly dangerous setups
  • Suggested team comp hints for new players
ModalAnimated
❄️

The Deep Freezer

Endless survival tower. No HP reset between floors. Every floor beaten, a rogue-like buff selection appears. Every run feels unique.

  • Survive as many floors as possible
  • After each floor: modal with 3 random buffs to choose
  • Buff examples: +10% ATK Speed / Heal 50% HP / Ice Shield
  • Card flip animation on selection with satisfying sound
  • 1000+ combinations keep runs feeling fresh forever
ModalRogue-like RNG
🎰

The Idle Vending Machine

Broken vending machine in the Kitchen corner. Fills with loot while the app is closed, based on how far the player reached in the Adventure Map.

  • Fills overnight with Crumbs + upgrade cards
  • Opens the app to a glowing, shaking machine
  • Tap repeatedly — each tap shakes and spills loot
  • Skia particle emitter fires for every tap
  • Massive dopamine hit at the start of every session
MMKVSkia Particles
⚖️

The Balance: Level Cap + Endless Stages

Cap Brawler levels at Level 20 (clean math, no "4.54 Million HP" numbers) + Unlimited Stages to fight in = thousands of hours of gameplay without complexity creep for the developer.

Revenue Strategy

Monetization

Ethical, player-first. Offers things that look too good to ignore without ever forcing a purchase.

💰Crumbs (Soft Currency) — earned in-game
🎫Golden Tickets (Premium) — purchased or rare reward
💎Gems — IAP currency via RevenueCat
📺
Daily Freebie
Free with Ad

Watch a 30-second ad to receive a free Delivery Bag. You get ad revenue, they get 50 free Gems. Completely optional — players love it.

Habit Builder
🍱
Starter Meal
$1.99 — New Players Only

500 Gems + guaranteed Epic Brawler (Spicy Taco). Show a shiny red "90% OFF!" badge using position: absolute. Once a player spends $1.99, they're 5× more likely to spend $10 later.

High Conversion
🎟️
Season Pass
$4.99 / month

Unlocks a premium reward track. As players win battles they progress and earn exclusive Brawlers like the Mythic Sushi Roll. Recurring revenue, player-friendly.

Recurring Revenue
🕶️
Cosmetics
Variable Pricing

Sunglasses, hats, and unique skins for favorite Brawlers. Zero pay-to-win — purely aesthetic. Players who love a character will absolutely buy this.

Zero P2W
💎
Gem Bundles
$4.99 / $19.99

Standard hard currency. "Handful of Gems" at $4.99, "Bucket of Gems" at $19.99. On purchase: heavy haptic + Gem icons rain down the screen.

Standard IAP
Skip Timers
10 Golden Tickets

Instantly unlock any Delivery Bag without waiting. Impatient players (highest spenders) will pay for convenience. Classic mobile monetization trigger.

Whale Trigger
Production Pipeline

Asset Strategy & AI Prompts

The exact AI tool stack, image specs, and copy-paste prompts for every asset in the game.

🎨
Midjourney v6
Best for high-quality 2D characters and backgrounds. Most consistent art style across generations.
🤖
DALL-E 3
Best for simple UI icons (coins, swords, shields). Understands strict instructions better.
✂️
Remove.bg / Photoroom
AI generators produce solid backgrounds. Always run through a background remover to get transparent PNGs.

Image Specifications

Asset Type Resolution Format Purpose
Brawler Bases512 × 512 pxPNG-24 (Transparent)Main body + damage state swaps
Accessories512 × 512 pxPNG-24 (Transparent)Hats, glasses — same canvas as base
UI Icons128 × 128 pxPNG-24 (Transparent)Coins, status icons, buttons
Backgrounds1920 × 1080 pxJPG (Compressed)Kitchen, Battle Arena environments
Skill Effects256 × 256 pxPNG or Lottie JSONSplatters, hits, flashes

AI Prompts (Copy & Paste)

Base Brawler (Level 1 Body)

A cute, cartoon anthropomorphic [DOUBLE CHEESEBURGER] with angry eyes and small arms and legs, standing in a fighting pose. 2D mobile game asset, vibrant colors, thick black outlines, vector art style, flat shading, symmetric composition, pure solid white background, high resolution --v 6.0

Bitten State (50% Health)

A cute, cartoon anthropomorphic [DOUBLE CHEESEBURGER] with a massive bite taken out of the side, missing a chunk, looking distressed and bruised. 2D mobile game asset, vibrant colors, thick black outlines, vector art style, flat shading, pure solid white background --v 6.0

Defeated State (0% Health)

A completely squashed, flattened, and ruined [DOUBLE CHEESEBURGER], messy crumbs and debris, defeated cartoon 'X' eyes. 2D mobile game asset, defeat state, vibrant colors, thick black outlines, vector art style, flat shading, pure solid white background --v 6.0

Accessory — Headwear

A single cartoon [RED MARTIAL ARTS HEADBAND], floating alone, designed to be worn by a 2D mobile game character. Vibrant colors, thick black outlines, vector art style, flat shading, pure solid white background --v 6.0

Arena Background

Isometric view of a wooden school cafeteria table with scattered pencils and a lunch tray. 2D mobile game background, cartoon style, vibrant, slightly blurred depth of field, no characters, empty arena --ar 16:9 --v 6.0

Attack Impact VFX

A cartoon comic-book style [POW! IMPACT STAR], floating alone, 2D mobile game visual effect, vibrant colors, thick black outlines, vector art style, pure solid white background --v 6.0

⚠️

The "One Character" Strategy

Generate only the Burger and all his accessories first. Build the entire game — battle, leveling, inventory — using only the Burger. Once the "Burger version" is 100% polished and feels fun, then spend one weekend generating Soda, Fries, and Taco. The Modular System means you just swap the image source — all code works automatically.

Complete Asset Checklist

🧑 Character Assets (Transparent PNGs)
  • 🍔 Burger, 🍟 Fries, 🥤 Soda Cup, 🌮 Taco, 🍩 Donut, 🍕 Pizza, 🍦 Ice Cream
  • × 3 damage states each (Full, Bitten, Defeated)
  • Headband, Boxing Gloves, Sunglasses, Crown, Spiked Armor, Ninja Mask
🌍 Environment Assets (JPGs)
  • Isometric Kitchen Counter (home screen)
  • Cafeteria Table, Dark Alleyway, Frosty Freezer (arenas)
  • Long winding path graphic (campaign map)
🎨 UI Elements (PNGs)
  • Crumb coin icon, Golden Ticket gem icon
  • Sword/Heart/Shield/Cross icons (128px)
  • Rarity borders (Grey/Blue/Purple/Gold), inventory grid cells
✨ VFX (Lottie JSON — from LottieFiles.com)
  • Small explosion (enemy death)
  • Red liquid splash (ketchup damage)
  • Green healing cross, white light flash (loot bag open)
Backend Architecture

Cloud Infrastructure

Supabase as the Source of Truth. The phone only displays — all critical logic runs server-side.

Why Supabase

In 2026, Supabase is the best choice for games because it uses PostgreSQL — ideal for relational game data (this Burger belongs to this Player). Easy to handle separate clans, shared resources, and real-time chat.

🔐
Auth
Google, Apple, Email login
🗄️
PostgreSQL
Levels, inventory, stats
Edge Functions
Server-side battle logic
📡
Realtime
Clan chat, donations

Database Schema

profiles
usernameTEXTDisplay name
trophiesINTEGERFor leaderboard ranking
player_levelINTEGERAccount progression
inventory
brawler_idTEXTe.g. "burger_001"
current_levelINTEGER1–20 (capped)
copy_countINTEGERCopies owned for merging
wallet
crumbs_balanceBIGINTSoft currency — never store on phone
gems_balanceBIGINTPremium currency — never store on phone
transactions
receipt_idTEXTApple/Google receipt
statusENUMpending / verified / failed

Secure Upgrade Flow

// User taps Upgrade button in React Native
// 1. App sends request to server — NEVER directly update DB from client
const { data, error } = await supabase
  .rpc('upgrade_brawler', { brawler_id: 'burger_001' });

// 2. Edge Function checks: "Does this player have enough Crumbs and Copies?"
// 3. If yes → subtracts Crumbs, increments Burger level in DB
// 4. Returns { success: true, new_level: 7, new_stats: {...} }

// 5. ONLY NOW does the app play the Level Up animation
if (data.success) {
  playLevelUpAnimation();
  updateLocalState(data.new_stats);
}
🔒

Anti-Cheat Rule

Every time the app opens, it asks the cloud: "What is this player's current inventory?" If a player hacks their phone to add a new Burger, the cloud ignores it because it was never recorded in the database. The cloud is always the source of truth.

📶

Offline Sync Strategy

Offline campaign saves locally to MMKV (fast local storage). The moment the phone sees internet, it pushes local wins to Supabase. Rule: Never allow the Store or Gems to work offline. This ensures 100% revenue security.

12-Month Plan

Development Roadmap

Logic first. Art second. Polish last. One Brawler. Full game. Then expand.

Phase 1
⚙️ The Engine
Months 1–3 · Build the boring-but-working version
Month 1

Set up React Native project. Use Zustand. Build 3×3 grid. Make a "Burger" box move and attack an "Enemy" box. Core game loop in squares.

Month 2

Integrate Supabase. Level Up saves to cloud. New level persists when app is closed and reopened.

Month 3

Build Pantry and Kitchen screens. Buttons work, screens navigate correctly. Art can be ugly placeholders.

Phase 2
🎨 Visual Identity
Months 4–6 · Generate assets, add the juice
Month 4

AI asset generation. Generate Burger, Soda, and Fries using the Modular Method (Base + Accessories). Background-remove everything.

Month 5

Add Skia and Reanimated "juice." Replace moving boxes with AI Brawlers. Attack flashes, bouncy transitions.

Month 6

Build the Adventure Map. Create 20 stages against AI-controlled "Moldy Snacks."

Phase 3
🌐 Social & Economy
Months 7–9 · Multiplayer + monetization
Month 7

Async PvP Arena. Players upload their Deck to Supabase. Other players fight it. Trophies and league system.

Month 8

RevenueCat integration. Starter Pack, Season Pass, Gem bundles. Server-side receipt verification.

Month 9

Clubs and Chat. Players join Franchises, request and donate Brawler cards. Real-time Supabase subscriptions.

Phase 4
🚀 Polish & Launch
Months 10–12 · Ship it
Month 10

Beta test with 10 friends. Watch them play. If they get confused, fix the UI. Prioritize feel over features.

Month 11

ASO and Marketing. App Store screenshots, keyword-optimized descriptions. Set up Next.js companion website.

Month 12

Submit to Apple App Store ($99/yr) and Google Play ($25 one-time). Soft launch in Philippines or Canada first.

🍎

Apple Developer Program

Sign up early — $99/year. Identity verification can take a full week. Don't let this block your submission date. Register at month 10 at the latest.

🌍

Soft Launch Strategy

Release only in one small country (Philippines or Canada) for 2 weeks. If players keep playing, click the button for Worldwide release. Test retention before scaling marketing spend.