Inspiration

I wondered if a player could create a unique character with just one short sentence and jump straight into an AI-driven battle narrative. That curiosity—“Can we make a real-time, ranked fight from a single line of text?”—sparked Text Battle.

What it does

  • Character Creation: One prompt ≤ 100 characters is all you need.
  • Matchmaking & Combat: You’re paired with a random rival, and an LLM narrates a turn-based fight.
  • Ranking System: Daily leagues and unlimited-season Elo leaderboards.
  • Cooldown / Coins: A 60-second wait between fights, or skip instantly with 1 coin.
  • Challenge Mode: Fight anyone on the leaderboard (their full prompt stays hidden to prevent easy counters).

How we built it

  • Frontend: React
  • Backend & Auth: Supabase (Email, Google, Anonymous sign-ins)
  • AI Engine: Gemini API
  • Live URL: https://plan9.kr/battle

Challenges we ran into

  1. LLM costs: Keeping the game free meant balancing micro-transactions with heavy infra optimization.
  2. Perceived cooldown: Is 60 s a breather or a frustration? We’re still testing.
  3. Elo balance: Aligning point gains between free matches and coin-skipped matches proved tricky.
  4. Copy & UX: Explaining all rules in a single screen forced lots of wording iterations.

Accomplishments that we're proud of

  • End-to-end flow—prompt → battle → ranking—averages under one minute, no install required.
  • Dual Elo boards (daily + season) boosted retention.
  • Anonymous sign-in lowered the barrier to first battle.

What we learned

  • Cooldown tolerance: Players split between “nice pacing” and “too slow,” so A/B testing by skill tier is next.
  • Monetization psychology: Micro-payments offset LLM bills, but without meaningful rewards, repeat spend drops fast.
  • Model efficiency: Prompt compression and sampling trimmed API token usage by ~30 %.

What’s next for Text Battle – AI-simulated fights, daily Elo ranking

  • Further cost optimization: Token trimming, smarter caching, and serverless fine-tuning.
  • Reward design: Win-streak bonuses and seasonal cosmetics to broaden coin sinks.
  • Community features: Replay sharing, prompt strategy boards, friend-code duels.
  • Balance patches: Iterate Elo formula and cooldown length based on player feedback.

Built With

Share this project:

Updates