Files
2nd/10_Wiki/Topics/Architecture/Power_Creep.md
T
2026-05-10 22:08:15 +09:00

4.4 KiB
Raw Blame History

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-power-creep Power Creep 10_Wiki/Topics verified self
Power Creep
파워 크립
밸런스 인플레이션
none A 0.9 applied
game-design
balance
live-ops
monetization
2026-05-10 pending
language framework
design live-ops

Power Creep

매 한 줄

"매 새 content는 매 old content보다 강해야 매 sells". Power creep은 매 live-service game에서 매 신규 unit/card/weapon이 매 기존보다 점진적으로 강해지는 매 balance drift 현상. 매 monetization pressure와 매 player engagement 사이 매 tension에서 발생.

매 핵심

매 발생 mechanism

  • 매 economic incentive: 매 신규 hero pull 유도 위해 매 stronger stats 부여.
  • 매 numeric inflation: 매 HP/DMG 절댓값이 매 patch마다 매 5–15% 상승.
  • 매 ability complexity: 매 신규 unit이 매 더 많은 keyword (cleave + lifesteal + immunity).
  • 매 retroactive obsolescence: 매 old roster가 매 PvE/PvP에서 매 unviable.

매 증상 vs 매 healthy iteration

  • Creep: 매 new > old (strict dominance) → roster 축소.
  • Sidegrade: 매 new ≠ old (matchup-dependent) → roster 확장.
  • 매 Rotation: 매 old를 매 explicitly retire (Hearthstone Standard).

매 응용

  1. Hearthstone Standard rotation (yearly Set retire).
  2. Genshin Impact 5-star sidegrade (element-niche).
  3. League of Legends VGU + item rework.

💻 패턴

Numeric drift detection

# Patch-over-patch stat inflation tracker
import pandas as pd

def detect_creep(units_df: pd.DataFrame, baseline_patch: str) -> pd.DataFrame:
    base = units_df[units_df.patch == baseline_patch].set_index("name")
    latest = units_df.groupby("name").last()
    delta = (latest[["hp", "dmg"]] - base[["hp", "dmg"]]) / base[["hp", "dmg"]]
    return delta[(delta.hp > 0.1) | (delta.dmg > 0.1)].sort_values("dmg", ascending=False)

Sidegrade design constraint

# Enforce no strict dominance in unit pool
def is_sidegrade(new_unit, pool):
    for old in pool:
        dominated = all(getattr(new_unit, s) >= getattr(old, s) for s in ["hp", "dmg", "speed"])
        strictly = any(getattr(new_unit, s) > getattr(old, s) for s in ["hp", "dmg", "speed"])
        if dominated and strictly:
            return False
    return True

Rotation calendar

# rotation.yaml — Standard format
sets:
  - name: Core
    rotates: never
  - name: Eternal_2024
    rotates: 2026-Q3
  - name: Voyage_2025
    rotates: 2027-Q3

Catch-up mechanic

# Older units gain free re-tuning each major patch
def catchup_buff(unit, age_patches):
    if age_patches >= 4 and unit.pickrate < 0.02:
        unit.dmg = round(unit.dmg * 1.08)

ELO-weighted balance

# Buff units underperforming at high ELO only
def needs_buff(stats):
    return stats.high_elo_winrate < 0.47 and stats.low_elo_winrate > 0.50

매 결정 기준

상황 Approach
Live PvP game Sidegrade + rotation
Gacha PvE Controlled creep + catch-up banners
Collectible TCG Annual Standard rotation
Single-player RPG Creep OK (no competitive frame)

기본값: Sidegrade design + 매 rotation/catch-up safety net.

🔗 Graph

🤖 LLM 활용

언제: balance patch note 분석, stat-drift detection, 매 design review. 언제 X: 매 single-player narrative game (creep is acceptable).

안티패턴

  • 매 Mudflation 무시: 매 절댓값 inflation을 매 무한 허용.
  • 매 Pay-to-skip-only-creep: 매 신규 unit을 매 paywall 뒤에서만 강하게.
  • 매 No retire path: 매 old roster를 매 영구 obsolete 상태로 방치.
  • 매 매 patch마다 power 5%↑: 매 compound inflation으로 매 design space 고갈.

🧪 검증 / 중복

  • Verified (Schreiber & Romero "Game Balance" 2021, Riot dev blogs 20242025).
  • 신뢰도 A.

🕓 Changelog

날짜 변경
2026-05-08 Phase 1
2026-05-10 Manual cleanup — power creep mechanism + sidegrade/rotation patterns