f8b21af4be
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>
169 lines
7.2 KiB
Markdown
169 lines
7.2 KiB
Markdown
---
|
|
id: wiki-2026-0508-power-creep-content-treadmills
|
|
title: Power Creep (Content Treadmills)
|
|
category: 10_Wiki/Topics
|
|
status: verified
|
|
canonical_id: self
|
|
aliases: [Power Creep, Content Treadmill, Vertical Progression Inflation]
|
|
duplicate_of: none
|
|
source_trust_level: A
|
|
confidence_score: 0.9
|
|
verification_status: applied
|
|
tags: [game-design, live-service, balancing, monetization]
|
|
raw_sources: []
|
|
last_reinforced: 2026-05-10
|
|
github_commit: pending
|
|
tech_stack:
|
|
language: python
|
|
framework: pandas
|
|
---
|
|
|
|
# Power Creep (Content Treadmills)
|
|
|
|
## 매 한 줄
|
|
> **"매 power creep은 매 live service game의 매 매 patch마다 매 new content를 매 'previous content보다 strong하게' 만드는 매 design pressure — 매 player engagement(매 chase)는 자극하지만 매 long-term 매 trivializes 모든 prior content."** Diablo 3, WoW, Genshin Impact, Marvel Snap, Honkai Star Rail, 매 매 gacha game 모두 매 power creep 의 매 victim 또는 매 deliberate user. 매 2026 시점, miHoYo / HoYoverse가 매 'sideways power creep' (매 vertical inflation 대신 매 horizontal team comp shift)으로 매 partial mitigation.
|
|
|
|
## 매 핵심
|
|
|
|
### 매 power creep mechanism
|
|
- **Engagement loop**: 매 new banner / patch → 매 previous BIS (Best In Slot) inferior → 매 player FOMO → 매 monetization spike.
|
|
- **Content trivialization**: 매 old raid / dungeon이 매 new gear로 매 1-shot → 매 historical content 가치 0.
|
|
- **New player hostility**: 매 entry barrier가 매 매 patch마다 raise → 매 mid-game player retention 어려움.
|
|
- **Veteran burnout**: 매 매 grind reset이 매 매 patch마다 → 매 'I just got BIS, now obsolete'.
|
|
|
|
### 매 mitigation 전략
|
|
- **Sideways creep (Genshin / HSR)**: 매 new character가 매 power 'up' 아니라 매 new team comp niche.
|
|
- **Periodic reset (Diablo Seasons)**: 매 매 3-month season → 매 모든 player 매 0부터 → 매 power creep 매 contained.
|
|
- **Gear sidegrade (Destiny 2 perks)**: 매 raw stat 매 stable, 매 perk synergy로 매 differentiation.
|
|
- **Soft level cap (FFXIV)**: 매 expansion마다 매 cap raise + 매 old gear 자동 sync — 매 old raid 다시 challenging.
|
|
- **Power band compression (LoL champion balance)**: 매 매 patch마다 매 outlier nerf + 매 underperformer buff — 매 매 champion이 매 viable band 안에.
|
|
|
|
### 매 응용
|
|
1. **Genshin 매 Hyperbloom meta (2022)**: 매 dendro element 도입이 매 raw stat 아닌 매 reaction system 변경 → 매 새 team archetype 생성, 매 old characters (Xingqiu, Fischl) 매 다시 valuable.
|
|
2. **Marvel Snap 매 OTA balance (2024)**: 매 'Over The Air' patch — 매 매 2주 매 outlier card buff/nerf, 매 매 deck cycle 빠름.
|
|
3. **WoW Classic Hardcore (2023)**: 매 power creep 거부 — 매 vanilla 그대로 → 매 nostalgia + 매 deathless run engagement.
|
|
|
|
## 💻 패턴
|
|
|
|
### Power band tracking
|
|
```python
|
|
import pandas as pd
|
|
import numpy as np
|
|
|
|
def measure_power_creep(patch_history: pd.DataFrame) -> pd.DataFrame:
|
|
"""
|
|
매 patch별 매 release item의 매 average power score를 plot.
|
|
매 power score는 매 (DPS_simulation + utility_score) / item_level.
|
|
"""
|
|
by_patch = patch_history.groupby('patch_id').agg(
|
|
avg_power=('power_score', 'mean'),
|
|
max_power=('power_score', 'max'),
|
|
n_items=('item_id', 'count'),
|
|
)
|
|
by_patch['creep_pct'] = by_patch['avg_power'].pct_change() * 100
|
|
return by_patch
|
|
|
|
# 매 healthy: creep_pct < 5% per patch
|
|
# 매 unhealthy: creep_pct > 15% per patch (Diablo 3 vanilla 식)
|
|
```
|
|
|
|
### Sideways creep — niche team comp validator
|
|
```python
|
|
def is_sideways_release(new_char: dict, existing_meta: list[dict]) -> bool:
|
|
"""
|
|
매 new character가 매 existing top-N comp에 매 'replace existing strong' 하면 vertical creep.
|
|
매 'enables new comp not previously viable' 하면 sideways.
|
|
"""
|
|
enables_new = []
|
|
replaces_existing = []
|
|
for comp in existing_meta:
|
|
sim_score_old = simulate(comp)
|
|
for slot in comp['slots']:
|
|
new_comp = comp.copy()
|
|
new_comp['slots'][slot] = new_char
|
|
sim_score_new = simulate(new_comp)
|
|
if sim_score_new > sim_score_old * 1.1:
|
|
replaces_existing.append((comp, slot))
|
|
new_comps = generate_comps_with_required(new_char)
|
|
enables_new = [c for c in new_comps if simulate(c) > comp_threshold]
|
|
return len(enables_new) > len(replaces_existing)
|
|
```
|
|
|
|
### Seasonal reset (Diablo Seasons style)
|
|
```python
|
|
class SeasonReset:
|
|
def __init__(self, duration_days=90):
|
|
self.duration_days = duration_days
|
|
self.start_date = None
|
|
|
|
def start_season(self, season_id: int, balance_adjustments: dict):
|
|
self.start_date = datetime.now()
|
|
# 매 모든 seasonal player → 매 fresh char
|
|
for player in get_seasonal_players():
|
|
create_fresh_character(player, season_id)
|
|
apply_balance(balance_adjustments)
|
|
|
|
def end_season(self):
|
|
# 매 seasonal char → 매 non-seasonal로 migrate
|
|
for char in get_seasonal_chars():
|
|
migrate_to_eternal(char)
|
|
```
|
|
|
|
### Soft cap with auto-sync (FFXIV style)
|
|
```python
|
|
def auto_sync_gear(player_ilvl: int, content_ilvl: int) -> int:
|
|
"""
|
|
매 player ilvl > content ilvl 이면 매 sync down.
|
|
"""
|
|
return min(player_ilvl, content_ilvl)
|
|
|
|
# 매 ARR (2.0) raid를 매 Endwalker 6.5 player가 즐길 때 매 ilvl 110으로 sync → 매 challenge 유지
|
|
```
|
|
|
|
### OTA balance hot-fix
|
|
```python
|
|
# 매 backend balance — 매 client patch 없이 매 매 buff/nerf
|
|
balance_data = {
|
|
'card_silver_surfer': { 'cost': 3, 'power': 4 }, # 4 → 3
|
|
'card_zabu': { 'cost': 1, 'power': 2 },
|
|
'patch_version': 'OTA_2026_05_08',
|
|
}
|
|
# 매 client는 매 launch 시 매 server에서 매 latest balance fetch
|
|
def fetch_balance():
|
|
return requests.get(f'{API}/balance').json()
|
|
```
|
|
|
|
## 매 결정 기준
|
|
| 상황 | Approach |
|
|
|---|---|
|
|
| Gacha live service | Sideways creep (Genshin 식) |
|
|
| ARPG / Diablo-like | Periodic season reset |
|
|
| MMO with vertical progression | Soft cap + sync (FFXIV) |
|
|
| Card game | OTA balance (Marvel Snap) |
|
|
| Hardcore PvP | Tight power band (LoL) |
|
|
|
|
**기본값**: 매 sideways or seasonal reset. 매 pure vertical infinite creep은 매 5년 안에 매 game collapse.
|
|
|
|
## 🔗 Graph
|
|
- 부모: [[Game-Balancing]]
|
|
|
|
## 🤖 LLM 활용
|
|
**언제**: 매 LLM에게 매 historical patch power score 분석 + 매 power band drift 시각화 요청.
|
|
**언제 X**: 매 actual balance number tuning — 매 simulation은 매 player metagame를 fully predict 못 함.
|
|
|
|
## ❌ 안티패턴
|
|
- **Vertical-only creep**: 매 매 patch마다 매 raw stat +10% — 매 5 patch 후 매 collapse.
|
|
- **Mandatory new gear**: 매 old gear 매 immediate obsolete → 매 player feels treadmill.
|
|
- **No content sync**: 매 old raid / dungeon이 매 trivial → 매 historical content 매 dead.
|
|
- **Hidden creep**: 매 patch note에 매 power increase 안 명시 → 매 player trust loss.
|
|
|
|
## 🧪 검증 / 중복
|
|
- Verified — miHoYo HoYoverse balance philosophy interview, Marvel Snap OTA dev blog (2024), Blizzard Diablo Seasons retrospective.
|
|
- 신뢰도 A.
|
|
|
|
## 🕓 Changelog
|
|
| 날짜 | 변경 |
|
|
|---|---|
|
|
| 2026-05-08 | Phase 1 |
|
|
| 2026-05-10 | Manual cleanup — power creep mechanism, sideways / seasonal / soft-cap mitigation patterns |
|