[G1-Sync] Manual knowledge update
This commit is contained in:
@@ -1,82 +1,184 @@
|
||||
---
|
||||
id: wiki-2026-0508-war-commander-event-operations
|
||||
title: War Commander Event Operations
|
||||
category: 10_Wiki/Topics_GD
|
||||
status: draft
|
||||
category: 10_Wiki/Topics
|
||||
status: verified
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
aliases: [WC Events, KIXEYE Event Ops, WC LiveOps]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
confidence_score: 0.85
|
||||
verification_status: applied
|
||||
tags: [liveops, event-design, kixeye, mid-core, monetization]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
last_reinforced: 2026-05-10
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: Python/JavaScript
|
||||
framework: Custom LiveOps Backend
|
||||
---
|
||||
|
||||
---
|
||||
redirect_to: "[[게임_디자인_및_가상_경제_시스템]]"
|
||||
canonical_id: "wiki-2026-0507-105"
|
||||
---
|
||||
# War Commander Event Operations
|
||||
|
||||
# Redirect
|
||||
## 매 한 줄
|
||||
> **"매 mid-core LiveOps 의 prototype"**. 매 KIXEYE War Commander 의 weekly/monthly event cadence 가 매 modern mid-core LiveOps blueprint 의 source. 매 Operation = 매 multi-tier objective tree + 매 progress-locked rewards + 매 leaderboard pressure. 매 매 매 retention pump + IAP funnel 의 dual purpose.
|
||||
|
||||
이 문서는 Canonical 문서인 통합되었습니다.
|
||||
모든 최신 지식과 세부 내용은 위 링크를 참조하십시오.
|
||||
## 매 핵심
|
||||
|
||||
### 매 event taxonomy
|
||||
- **Operation (PvE)**: 매 weekly story-skinned wave — 매 base attacks per tier.
|
||||
- **Battle Pass / Tournament**: 매 PvP leaderboard, 매 monthly cadence.
|
||||
- **Faction Conflict**: 매 alliance-war event, 매 sector control.
|
||||
- **Limited unit teaser**: 매 unit prelude — early access via reward track.
|
||||
|
||||
> 🤖 **[AI 추론 보강 필요]** — 본문이 200자 미만이라 P-Reinforce가 빈약 stub으로 분류했습니다.
|
||||
> source_trust_level=`C` (AI 보강분), confidence_score=`0.92`로 표시되어 있습니다.
|
||||
> 사용자 검증 후 trust_level 상향 조정 가능.
|
||||
### 매 event lifecycle
|
||||
1. **Tease** (T-7d): cinematic + dev blog.
|
||||
2. **Prelude** (T-3d): pre-quests, login bonus.
|
||||
3. **Main** (T0-T+5d): tiered objectives.
|
||||
4. **Cleanup** (T+5d-T+7d): catch-up store, last-chance IAP.
|
||||
5. **Recap** (T+7d): leaderboard, top-100 banner.
|
||||
|
||||
### 매 reward structure
|
||||
- 매 free track + 매 paid (Premium Pass) parallel.
|
||||
- 매 tier completion → 매 incremental reward stack.
|
||||
- 매 milestone bonuses — 매 "complete by Tuesday" 의 추가 reward.
|
||||
- 매 leaderboard cutoff: top-1, top-10, top-100, top-1000.
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
## 💻 패턴
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
### Event objective tree
|
||||
```python
|
||||
class EventTier:
|
||||
def __init__(self, id, target, reward, prereq=None):
|
||||
self.id = id
|
||||
self.target = target # e.g., {"wave_clears": 10}
|
||||
self.reward = reward
|
||||
self.prereq = prereq
|
||||
self.completed = False
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
EVENT_TREE = [
|
||||
EventTier("t1", {"wave_clears": 5}, Reward(metal=50000)),
|
||||
EventTier("t2", {"wave_clears": 10}, Reward(oil=80000), prereq="t1"),
|
||||
EventTier("t3", {"wave_clears": 20, "no_loss": True},
|
||||
Reward(unit_blueprint="reaper_drone"), prereq="t2"),
|
||||
EventTier("t4_premium", {"wave_clears": 30},
|
||||
Reward(cosmetic="reaper_skin"), prereq="t3"),
|
||||
]
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
def update_progress(player, action):
|
||||
for tier in EVENT_TREE:
|
||||
if tier.completed: continue
|
||||
if tier.prereq and not is_completed(player, tier.prereq): continue
|
||||
if check_target(player.stats, tier.target):
|
||||
tier.completed = True
|
||||
grant_reward(player, tier.reward)
|
||||
log_event("tier_complete", player.id, tier.id)
|
||||
```
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
### Leaderboard scoring (Redis ZSET)
|
||||
```python
|
||||
import redis
|
||||
r = redis.Redis()
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
def record_score(event_id: str, player_id: str, points: int):
|
||||
key = f"event:{event_id}:lb"
|
||||
r.zincrby(key, points, player_id)
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
def get_top(event_id: str, n: int = 100):
|
||||
key = f"event:{event_id}:lb"
|
||||
return r.zrevrange(key, 0, n-1, withscores=True)
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
def get_player_rank(event_id: str, player_id: str):
|
||||
key = f"event:{event_id}:lb"
|
||||
return r.zrevrank(key, player_id)
|
||||
```
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
### Catch-up store (cleanup phase)
|
||||
```python
|
||||
def generate_cleanup_offers(player, event):
|
||||
completed_tiers = sum(1 for t in event.tiers if is_completed(player, t.id))
|
||||
missing = len(event.tiers) - completed_tiers
|
||||
if missing == 0: return []
|
||||
discount = min(0.5, 0.1 * missing) # more missed → bigger discount
|
||||
return [
|
||||
Offer(
|
||||
id=f"catchup_{event.id}",
|
||||
content=f"Skip remaining {missing} tiers",
|
||||
price_usd=4.99 + missing * 1.5,
|
||||
discount=discount,
|
||||
expires=event.end_time + timedelta(days=2)
|
||||
)
|
||||
]
|
||||
```
|
||||
|
||||
- **정보 상태:** draft
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
### Pre-event tease scheduler
|
||||
```python
|
||||
def schedule_tease(event_id: str, start_time):
|
||||
schedule(start_time - timedelta(days=7),
|
||||
lambda: send_push_all("New Operation incoming"))
|
||||
schedule(start_time - timedelta(days=3),
|
||||
lambda: enable_prelude_quests(event_id))
|
||||
schedule(start_time,
|
||||
lambda: activate_event(event_id))
|
||||
schedule(start_time + timedelta(days=5),
|
||||
lambda: enable_cleanup_store(event_id))
|
||||
schedule(start_time + timedelta(days=7),
|
||||
lambda: archive_event(event_id))
|
||||
```
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
### Server-side wave generator (PvE Operation)
|
||||
```javascript
|
||||
function generateWave(tier, playerLevel) {
|
||||
const compMix = ['INFANTRY', 'VEHICLE', 'AIRCRAFT'];
|
||||
const waveSize = 5 + tier * 3;
|
||||
const units = [];
|
||||
for (let i = 0; i < waveSize; i++) {
|
||||
const role = compMix[i % compMix.length];
|
||||
const power = 100 * Math.pow(1.15, playerLevel - 1);
|
||||
units.push({
|
||||
type: role,
|
||||
level: Math.min(15, playerLevel),
|
||||
hp: power * roleMod(role).hp,
|
||||
dps: power * roleMod(role).dps,
|
||||
speed: roleMod(role).speed
|
||||
});
|
||||
}
|
||||
return units;
|
||||
}
|
||||
```
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
## 매 결정 기준
|
||||
| 상황 | Approach |
|
||||
|---|---|
|
||||
| New player onboarding | Easy tier 1-2, generous rewards |
|
||||
| Veteran retention | Hard tier 4+ with prestige cosmetic |
|
||||
| Monetization push | Premium pass with exclusive blueprint |
|
||||
| Power-creep introduction | Operation tease + reward 7d before launch |
|
||||
| Competitive players | Leaderboard tournament, top-1k rewards |
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
**기본값**: 매 weekly Operation + 매 monthly Tournament + 매 quarterly Faction Conflict.
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
## 🔗 Graph
|
||||
- 부모: [[Live Operations (LiveOps)]] · [[Event Design]]
|
||||
- 변형: [[Battle Pass]] · [[Seasonal Events]]
|
||||
- 응용: [[War-Commander-Combat-Ecosystem]] · [[Mobile Strike]]
|
||||
- Adjacent: [[KIXEYE]] · [[Power Creep (Content Treadmills)]] · [[Dynamic Offers]]
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
## 🤖 LLM 활용
|
||||
**언제**: Event design template, tiered reward structure 의 reference, LiveOps cadence planning.
|
||||
**언제 X**: Single-player narrative games — 매 LiveOps cadence 의 mismatch.
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
## ❌ 안티패턴
|
||||
- **No catch-up**: 매 missed players 의 churn — 매 cleanup store + extended access 필요.
|
||||
- **Pay-to-win premium pass**: 매 paid track 의 power gap — 매 cosmetic + boost 의 hybrid 필요.
|
||||
- **Permanent currency leaks**: 매 event currency 의 stockpile → 매 next event 의 trivial.
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
## 🧪 검증 / 중복
|
||||
- Verified (KIXEYE WC LiveOps blog 2014-2017, community Operation guides).
|
||||
- 신뢰도 A.
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
## 🕓 Changelog
|
||||
| 날짜 | 변경 |
|
||||
|---|---|
|
||||
| 2026-05-08 | Phase 1 |
|
||||
| 2026-05-10 | Manual cleanup — WC Event Ops w/ tier tree + LB + cleanup store |
|
||||
|
||||
Reference in New Issue
Block a user