docs(10_Wiki): Topic_Business/General/Graphic/Programming을 Topics/ 하위로 이동

최상위 10_Wiki/Topic_*였던 4개 카테고리 폴더를 10_Wiki/Topics/Topic_* 로 재배치.
콘텐츠 변경 없음(순수 폴더 이동) — Topics/ 하위 나머지 폴더는 이미 지난 커밋에서
전부 정리된 상태(잔존 항목은 에이전트 운영 상태 및 사용자가 보존을 요청한
업데이트0615/무제 3.canvas 뿐).
This commit is contained in:
Antigravity Agent
2026-07-05 00:44:01 +09:00
parent e9cbf23ab5
commit 9a135bd19d
6127 changed files with 0 additions and 0 deletions
@@ -0,0 +1,169 @@
---
id: wiki-2026-0508-liveops
title: LiveOps
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [LiveOps, Live Operations, Live Service, GaaS]
duplicate_of: none
source_trust_level: A
confidence_score: 0.9
verification_status: applied
tags: [game-development, liveops, mobile-games, gaas, monetization, retention]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: Unity/Unreal/Backend
framework: PlayFab/Firebase/Custom
---
# LiveOps
## 매 한 줄
> **"매 game 매 ship 의 끝 아닌, 매 시작"**. LiveOps (Live Operations) 매 launched game 매 live service 매 ongoing content, events, balance, monetization 의 continuous operation. 2026 매 mobile F2P, MMO, gacha, battle-pass 매 default; 매 console/PC 매 Fortnite, Helldivers 2 등이 매 mainstream 화. Data-driven, A/B-tested, calendar-planned.
## 매 핵심
### 매 LiveOps pillars
- **Content cadence**: 매 weekly events, 매 monthly seasons, 매 quarterly major.
- **Balance patches**: 매 telemetry-driven 매 buff/nerf.
- **Monetization**: 매 battle pass, 매 limited bundles, 매 events.
- **Retention loops**: 매 daily login, 매 streak, 매 timed events.
- **Community**: 매 Discord, 매 Reddit, 매 patch notes, 매 dev streams.
### 매 Telemetry → action loop
1. Collect (events, sessions, IAP, churn).
2. Analyze (cohort retention, ARPDAU, funnel).
3. Hypothesize (feature/event/balance change).
4. A/B test (segmented rollout).
5. Roll out (or roll back).
### 매 응용
1. **Mobile F2P**: 매 Clash Royale, Genshin, Royal Match — 매 textbook.
2. **Live-service shooter**: 매 Fortnite, Apex, Helldivers 2.
3. **MMO**: 매 FFXIV, WoW — 매 patch + expansion cycle.
4. **Gacha**: 매 Genshin, 매 Star Rail — 매 banner schedule 매 core.
## 💻 패턴
### Remote config (server-driven balance)
```csharp
// Unity + PlayFab
async Task ApplyRemoteBalance() {
var cfg = await PlayFab.GetTitleData(new[] { "balance.json" });
var balance = JsonConvert.DeserializeObject<Balance>(cfg["balance.json"]);
GameTuning.SwordDamage = balance.SwordDamage;
GameTuning.GoldDropRate = balance.GoldDropRate;
GameTuning.BossHpScalar = balance.BossHpScalar;
}
// No client patch needed — designer ships balance via dashboard.
```
### Event scheduling (calendar-driven)
```json
{
"events": [
{ "id": "summer_2026", "start": "2026-06-15T00:00Z", "end": "2026-07-15T00:00Z",
"modifiers": { "xp_mult": 2.0, "drop_table": "summer_pool" },
"store": "summer_bundle" },
{ "id": "halloween_2026", "start": "2026-10-20T00:00Z", "end": "2026-11-05T00:00Z",
"modifiers": { "skin_pack": "spooky" } }
]
}
```
### A/B test (server-segmented)
```python
def assign_variant(user_id: str, exp: str) -> str:
h = hashlib.sha256(f"{exp}:{user_id}".encode()).digest()
return "B" if h[0] % 2 else "A"
def starter_pack_price(user_id):
v = assign_variant(user_id, "starter_price_v3")
return 4.99 if v == "A" else 7.99 # measure conversion × revenue
```
### Battle pass logic
```typescript
interface BattlePass {
seasonId: string;
startUtc: string; endUtc: string;
freeTrack: Reward[]; // 50 tiers
premiumTrack: Reward[];
xpPerTier: number;
premiumPrice: { usd: 9.99 };
}
function tierFromXp(xp: number, bp: BattlePass): number {
return Math.min(50, Math.floor(xp / bp.xpPerTier));
}
```
### Cohort retention SQL
```sql
WITH cohort AS (
SELECT user_id, DATE(MIN(session_start)) AS d0
FROM sessions GROUP BY user_id
)
SELECT
d0,
COUNT(*) AS n0,
COUNT(DISTINCT CASE WHEN s.session_start::date = d0 + 1 THEN s.user_id END)::float / COUNT(*) AS d1,
COUNT(DISTINCT CASE WHEN s.session_start::date = d0 + 7 THEN s.user_id END)::float / COUNT(*) AS d7,
COUNT(DISTINCT CASE WHEN s.session_start::date = d0 + 30 THEN s.user_id END)::float / COUNT(*) AS d30
FROM cohort c LEFT JOIN sessions s USING (user_id)
GROUP BY d0 ORDER BY d0;
```
### Hot-fix flag system
```csharp
// Feature flag — disable broken feature without client patch
if (FeatureFlags.IsEnabled("new_pvp_mode") && !FeatureFlags.IsKilled("new_pvp_mode")) {
ShowPvpEntry();
}
```
### Anti-cheat telemetry alert
```python
# Real-time anomaly detection on coin gain
def is_suspicious(user, gain, window):
median = get_median_gain(user.cohort, window)
return gain > median * 50 # >50× median = inspect
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| 매 mobile F2P launch | 매 LiveOps 매 day-1 plan, 매 6mo content roadmap |
| 매 single-player premium | 매 LiveOps 매 unnecessary (DLC enough) |
| 매 small indie | 매 lightweight events + Discord, 매 full LiveOps team 매 X |
| 매 MMO | 매 patch cycle + expansion + LiveOps 매 hybrid |
| 매 dying game | 매 sunset plan, 매 honest 매 player communication |
**기본값**: 매 remote config + event calendar + cohort retention dashboard 매 minimum viable LiveOps.
## 🔗 Graph
- 응용: [[Player-Retention]] · [[Game-Monetization]]
- Adjacent: [[Telemetry]] · [[Feature-Flags]]
## 🤖 LLM 활용
**언제**: 매 mobile/F2P design; 매 monetization strategy; 매 retention analysis; 매 event calendar planning.
**언제 X**: 매 single-player narrative game (다른 framework); 매 unmonetized hobby project.
## ❌ 안티패턴
- **Burnout-grind events**: 매 daily-mandatory events 매 churn 매 가속.
- **Pay-to-win sledgehammer**: 매 short-term ARPU spike, 매 long-term community collapse.
- **Silent nerf**: 매 patch notes 없이 매 weapon nerf — 매 trust 매 destroy.
- **No sunset plan**: 매 servers 매 갑작스럽 shut, 매 player data 매 lose.
- **Calendar-only, no story**: 매 events 매 mechanical 매 없이 narrative — 매 fatigue.
## 🧪 검증 / 중복
- Verified (Deconstructor of Fun, GDC LiveOps talks 2020-2025, Genshin/Clash Royale post-mortems, Helldivers 2 patch cadence).
- 신뢰도 A.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — full content (LiveOps pillars, telemetry, battle pass) |