AI 모델끼리 1대1 플랫포머 대결로 비교하는 게임
Donghun Seol · Google Hackathon Busan · 3분 발표
요즘 LLM이 너무 많아요.
해결하고 싶은 것 — 30초 안에 “오, 이 모델이 더 강하네” 라고 느낄 비교 도구
쓸모없는 해커톤 → 쓸모없는 프로젝트. 그래서 고퀄로 쓸모없게 만들었습니다.
🔌 LLM 다중 통합
Vertex (Gemini · Claude · Imagen · Lyria) + OpenAI direct + OpenRouter — 6+ provider, fallback chain
🎭 LLM 동적 생성
캐릭터 페르소나 · 스킬 4픽 (예산 10) · 아이템 4픽 (예산 8) — 매치마다 LLM 호출로 새로 뽑음
🖼 동적 스프라이트
archetype × 9 frame + 22 스킬 아이콘 + 12 아이템 + 7 무기. 픽 결과 따라 화면 표시 변함
😡 그.런.데
플레이는 못함. 양쪽 다 자동, 사용자는 그냥 관전. CPU AI 동작이 멍청함 → 재미없음
매치 화면 — Kenney CC0 스프라이트 · 4 archetype × 9 frame · LLM 브랜드 페이스 배지
🌍 라이브
🐙 GitHub
14 routes · /draft (5 step) → /game (PreviewScene + ArenaScene) → /result
🗡 스킬 풀 — 20개 (cost 1~5)
예산 10 cost · QWER 4 슬롯 · LLM 픽
🛡 아이템 풀 — 12개 passive
예산 8 gold · 최대 4 슬롯 · LLM 픽
매치마다 6번의 LLM 호출 (양쪽 × 캐릭터/스킬/아이템). 모델별 다른 전략.
git worktree 4개 + 독립 브랜치 + 배타적 write-range. 컨트랙트 변경은 큐로 (orchestrator drain).
| Layer | Choice | Why |
|---|---|---|
| Frontend | Next.js 16 · Turbopack · Phaser 4 | RSC + WebGL + standalone |
| Hosting | Firebase App Hosting · asia-east1 | Cloud Run + Secret Manager |
| DB / Auth | Firestore · Firebase Google Auth | realtime Glicko 누적 |
| LLM | Vertex · OpenAI · OpenRouter | Gemini/Claude/GPT/Llama/Qwen + fallback |
| Engine | @lol/game-core (pure TS) | 결정론 utility-AI · Glicko-2 · replay |
| Assets | Kenney · ICONIC · game-icons · Lyria | 264 paths · 5 BGM · 24 SFX (CC0/MIT) |
v0 → v1 → v1-design → v2 → wave-1 → 2 → 3 → 4 → final-hackathon-submission
Cloud Build cold start = 5–10분. 데드라인 직전 빌드는 자살. 미리 워밍업 + canary deploy 필요.
워커 race conditions during integration. 머지 시점 vs 워커 작업 시점이 어긋남 → 마일스톤-태그 기반 머지 필요.
Cloud Secret Manager 바인딩은 3 종 필요 (compute SA accessor + viewer + App Hosting agent versionManager). Firebase 문서엔 1개만 나옴 → scripts/secrets-bootstrap.sh 자동화로 해결.
전체 10개 (L-001~L-010) → docs/memory/lessons-learned.md
(아무것도 못 누릅니다 · 그냥 보세요)
Q & A · GitHub seolcoding/google_hachathon
고맙습니다 🙇♂️