--- id: wiki-2026-0508-capybara-go title: "Capybara GO!" category: 10_Wiki/Topics status: verified canonical_id: self aliases: [Capybara GO, 카피바라 GO] duplicate_of: none source_trust_level: A confidence_score: 0.9 verification_status: applied tags: [game-design, mobile, idle-rpg, monetization, casual] raw_sources: [] last_reinforced: 2026-05-10 github_commit: pending tech_stack: language: design-doc framework: mobile-f2p --- # Capybara GO! ## 매 한 줄 > **"매 cute idle-RPG의 monetization 정점"**. 매 Habby (Survivor.io 개발사) 의 2024 hit, 매 카피바라 mascot + auto-battle + gacha + battle-pass 의 매 layered systems 로 매 2025 mobile top-grossing chart 의 sustained presence 의 달성. 매 idle-RPG genre 의 매 modern blueprint. ## 매 핵심 ### 매 core loop - **Auto-battle**: 매 player 의 minimal input — 매 stage select → auto-progress. - **Idle accumulation**: 매 offline 시 resources accrue — 매 8h cap 의 일반. - **Gear upgrade**: 매 equipment slot 6-8개 — 매 enhance + tier-up. - **Hero collection**: 매 gacha banner — 매 SSR pull rate ~1-2%. ### 매 retention layers - **Daily login**: 매 7-day reward escalator. - **Weekly battle pass**: 매 free + premium tier. - **Limited events**: 매 시간 limited gear / hero / outfit. - **Guild**: 매 boss raid + chat + co-op. ### 매 응용 1. 매 Habby 의 internal cross-promotion network. 2. 매 idle-RPG genre 의 reference design. 3. 매 mobile UA scaling pattern (CPI optimization). ## 💻 패턴 ### Battle-pass tier reward schema ```typescript type BattlePassTier = { level: number; // 1-100 xp_required: number; // cumulative free_reward: Reward; premium_reward: Reward; }; const TIERS: BattlePassTier[] = Array.from({length: 100}, (_, i) => ({ level: i + 1, xp_required: 100 * (i + 1) + Math.floor(i * i * 0.5), free_reward: i % 5 === 0 ? GOLD_PACK : XP_BOOK, premium_reward: i % 10 === 0 ? GACHA_TICKET : GEMS_50, })); function claimTier(player: Player, tier: number, premium: boolean) { const t = TIERS[tier - 1]; if (player.bp_xp < t.xp_required) throw new Error("not eligible"); player.inventory.add(t.free_reward); if (premium && player.bp_premium) player.inventory.add(t.premium_reward); player.claimed_tiers.add(tier); } ``` ### Idle reward calculation ```typescript function calculateIdleRewards(player: Player, now: number) { const elapsed_sec = Math.min( (now - player.last_collect) / 1000, 8 * 3600 // 8h cap ); const stage_data = STAGE_TABLE[player.current_stage]; return { gold: Math.floor(stage_data.gold_per_sec * elapsed_sec), xp: Math.floor(stage_data.xp_per_sec * elapsed_sec), materials: distributeMaterials(stage_data, elapsed_sec), }; } ``` ### Gacha pity system ```typescript function rollGacha(player: Player, banner: Banner): Hero { player.pity_count += 1; // Hard pity at 80 if (player.pity_count >= 80) { player.pity_count = 0; return banner.featured_ssr; } // Soft pity ramp from 60 let ssr_rate = 0.012; if (player.pity_count >= 60) { ssr_rate = 0.012 + (player.pity_count - 60) * 0.06; } const roll = Math.random(); if (roll < ssr_rate) { player.pity_count = 0; return rollSSRPool(banner); } return rollLowerRarity(banner, roll); } ``` ### Daily quest checker ```typescript const DAILY_QUESTS = [ { id: "battle_5", target: 5, action: "complete_stage", reward: 100 }, { id: "spend_gems_50", target: 50, action: "spend_gems", reward: 200 }, { id: "gacha_1", target: 1, action: "gacha_pull", reward: 150 }, ]; function onAction(player: Player, action: string, amount: number) { for (const q of DAILY_QUESTS) { if (q.action !== action) continue; const prog = player.daily_progress[q.id] ?? 0; player.daily_progress[q.id] = Math.min(prog + amount, q.target); } } ``` ### Offer engine (whale targeting) ```typescript function recommendOffer(player: Player): Offer | null { const ltv = player.spending_total; const days_inactive = (Date.now() - player.last_purchase) / 86400000; if (ltv > 1000 && days_inactive > 3) return WHALE_RETENTION_BUNDLE; if (ltv > 100 && player.level > 50) return MID_PROGRESS_PACK; if (ltv === 0 && player.session_count > 10) return STARTER_PACK_499; return null; } ``` ## 매 결정 기준 | 상황 | Approach | |---|---| | 매 시작 player | Starter pack ($4.99) — high conversion | | 매 mid-tier whale | Battle-pass + monthly card | | 매 dolphin/whale | Limited gacha banner + cosmetic bundle | | 매 churned | Win-back offer (gems + ticket) | **기본값**: 매 layered offer ladder + 매 daily/weekly/monthly cadence. ## 🔗 Graph - 응용: [[Game_Monetization_Strategy]] · [[Dynamic Offers]] · [[Gacha Mechanics Analysis]] - Adjacent: [[CPI (Cost Per Install)]] · [[Data-Driven Personalization]] ## 🤖 LLM 활용 **언제**: 매 monetization design review, idle-RPG benchmark, offer cadence design. **언제 X**: 매 hardcore PvP, AAA console design — 매 platform mismatch. ## ❌ 안티패턴 - **Pay-to-win 노골**: 매 PvP whales dominate — 매 F2P churn. - **Pity 의 부재**: 매 RNG-only gacha — 매 regulatory + retention risk. - **Daily 과다**: 매 chore fatigue — 매 30-min daily 초과 시 churn. - **No idle cap**: 매 uncapped accumulation — 매 일 missed = unrecoverable. ## 🧪 검증 / 중복 - Verified (Habby public press 2024-2025, AppMagic top-grossing data). - 신뢰도 A. ## 🕓 Changelog | 날짜 | 변경 | |---|---| | 2026-05-08 | Phase 1 | | 2026-05-10 | Manual cleanup — Capybara GO! idle-RPG monetization architecture. |