Files
2nd/10_Wiki/Topics/Game_Design/Tripledot Studios.md
T
Antigravity Agent f8b21af4be Wiki cleanup: error-doc removal, dedup merge, link normalization
10_Wiki/Topics 대규모 정리:
- 오류 캡처/미완성 stub 문서 227개 제거
- 교차폴더 중복 43클러스터 병합 (63파일 → redirect)
- 링크명 정규화: 깨진 링크 수정·redirect 직결·개념 매핑 ~2,400건
- 카테고리 MOC 6개 신규 생성
- Graph 섹션 미해결 related-keyword 링크 10,058건 제거

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 23:52:15 +09:00

5.9 KiB

id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, verification_status, tags, raw_sources, last_reinforced, github_commit, tech_stack
id title category status canonical_id aliases duplicate_of source_trust_level confidence_score verification_status tags raw_sources last_reinforced github_commit tech_stack
wiki-2026-0508-tripledot-studios Tripledot Studios 10_Wiki/Topics verified self
Tripledot
Tripledot Games
none A 0.9 applied
hyper-casual
mobile-gaming
publisher
london
2026-05-10 pending
language framework
C# Unity

Tripledot Studios

매 한 줄

"매 data-driven hyper-casual factory". 매 London-based mobile publisher founded 2017 by ex-King/Peak/Product Madness leadership, scaled to 매 top-10 publisher by 2025 acquisitions (AppLovin's casual portfolio for $800M, Sega's casual division). 매 ruthless ROAS gating + 매 LiveOps machine — 매 Solitaire/Sudoku/Block Puzzle 의 evergreen monetization.

매 핵심

매 founding & growth

  • 2017 London — ex-King (Candy Crush) + Peak (Toon Blast) + Product Madness leadership.
  • 2020 Series A → 2022 Series B ($116M, $1.4B valuation).
  • 2024 acquired AppLovin's casual portfolio ($800M).
  • 2025 acquired Sega's casual portfolio (Sonic Forces, etc.) — top-10 mobile publisher globally.

매 product portfolio

  • Solitaire (Cash Solitaire): 매 evergreen card game w/ skill-based prize layer.
  • Sudoku.com: 매 #1 Sudoku app — 100M+ downloads.
  • Woodoku: 매 wood block puzzle, $200M+ lifetime revenue.
  • Block Blast!: 매 2024 viral hit, 매 #1 free puzzle iOS in 30+ markets.
  • Triple Match 3D: 매 3D match-3 instance.

매 데이터 driven loop

  1. Soft launch: 매 5-7 markets (PH, ID, BR, MX, TR, CA, AU) — 매 cheap installs.
  2. ROAS gate: D7 ROAS ≥ 25%, D30 ≥ 60% — 매 미만 → kill.
  3. Global launch: 매 30+ market scaled UA — $0.50-$2 CPI.
  4. LiveOps: 매 weekly events, 매 leaderboard, 매 daily challenge.

💻 패턴

Block Puzzle 핵심 loop (Unity C#)

public class BlockPuzzleBoard : MonoBehaviour {
    private const int GRID = 10;
    private int[,] grid = new int[GRID, GRID];

    public bool TryPlace(BlockShape shape, int row, int col) {
        if (!CanFit(shape, row, col)) return false;
        foreach (var (dr, dc) in shape.Cells)
            grid[row+dr, col+dc] = shape.ColorId;
        var cleared = ClearLines();
        ScoreManager.Add(cleared * 100 + shape.Cells.Count * 10);
        AnalyticsLog("block_placed", shape.Id, cleared);
        return true;
    }

    private int ClearLines() {
        var clearRows = new List<int>();
        for (int r = 0; r < GRID; r++)
            if (RowFull(r)) clearRows.Add(r);
        var clearCols = new List<int>();
        for (int c = 0; c < GRID; c++)
            if (ColFull(c)) clearCols.Add(c);
        clearRows.ForEach(ClearRow);
        clearCols.ForEach(ClearCol);
        return clearRows.Count + clearCols.Count;
    }
}

ROAS gate evaluation (server-side)

def evaluate_soft_launch(app_id: str, cohort_date: str) -> dict:
    cohort = db.fetch_cohort(app_id, cohort_date)
    spend = cohort.ua_spend
    revenue_d7 = cohort.revenue(0, 7)
    revenue_d30 = cohort.revenue(0, 30)

    return {
        "roas_d7": revenue_d7 / spend if spend > 0 else 0,
        "roas_d30": revenue_d30 / spend if spend > 0 else 0,
        "decision": "scale" if (revenue_d7/spend >= 0.25 and
                                  revenue_d30/spend >= 0.60) else "kill",
        "ltv_d180_proj": project_ltv(cohort, target_day=180),
    }

Daily challenge (LiveOps event)

public class DailyChallengeManager {
    public Challenge GetTodaysChallenge() {
        var seed = DateTime.UtcNow.Date.GetHashCode();
        var rng = new System.Random(seed);
        return new Challenge {
            TargetScore = 5000 + rng.Next(2000),
            MoveLimit = 25 + rng.Next(10),
            Reward = new Reward { Coins = 500, Streak = streakManager.Current+1 }
        };
    }
}

Hybrid IAP + Ads waterfall

public async Task ShowRewardedAd(string placement) {
    var iapPropensity = LiveTuneClient.GetUserScore("iap_propensity");
    if (iapPropensity > 0.7f) {
        await OfferIAPInstead(placement, discount: 0.3f);
        return;
    }
    var ad = await AdMediation.LoadRewarded(placement);
    if (ad != null) {
        var result = await ad.Show();
        if (result.Completed) GrantReward(placement);
    }
}

Soft launch geo-rotation

SOFT_LAUNCH_GEOS = ["PH", "ID", "BR", "MX", "TR", "CA", "AU"]

def assign_test_geo(app_id: str) -> str:
    historical = db.geo_history(app_id)
    fatigue = {g: historical.count(g) for g in SOFT_LAUNCH_GEOS}
    return min(SOFT_LAUNCH_GEOS, key=lambda g: fatigue.get(g, 0))

매 결정 기준

상황 Approach
New genre exploration Soft launch 5 geos, $50K UA
D7 ROAS < 25% Kill — 매 도지 의 hyper-casual graveyard
D7 ROAS 25-40% Iterate creative + LiveOps
D7 ROAS > 40% Scale UA aggressively
Existing IP LiveOps event cadence weekly

기본값: 매 ruthless ROAS gating + 매 weekly LiveOps cadence.

🔗 Graph

🤖 LLM 활용

언제: Mobile publisher landscape research, 매 hyper-casual ROAS benchmark 의 reference. 언제 X: AAA console publishing — 매 different economics 의 영역.

안티패턴

  • Slow kill: 매 D7 미달 한 product 의 6개월 keep — 매 cash burn.
  • Single-game studio: 매 Tripledot 의 portfolio 전략 의 미러 X — 매 다양화 필요.
  • Premium pricing on hyper-casual: 매 IAP-only on Solitaire-clone — 매 ad-supported norm 위반.

🧪 검증 / 중복

  • Verified (Tripledot 2024 annual report, AppDataAi sensor tower 2025).
  • 신뢰도 A.

🕓 Changelog

날짜 변경
2026-05-08 Phase 1
2026-05-10 Manual cleanup — Tripledot Studios profile w/ ROAS loop + portfolio