---
id: wiki-2026-0508-war-commander-event-operations
title: War Commander Event Operations
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [WC Events, KIXEYE Event Ops, WC LiveOps]
duplicate_of: none
source_trust_level: A
confidence_score: 0.85
verification_status: applied
tags: [liveops, event-design, kixeye, mid-core, monetization]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
  language: Python/JavaScript
  framework: Custom LiveOps Backend
---

# War Commander Event Operations

## 매 한 줄
> **"매 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.

## 매 핵심

### 매 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.

### 매 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.

## 💻 패턴

### 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

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"),
]

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)
```

### Leaderboard scoring (Redis ZSET)
```python
import redis
r = redis.Redis()

def record_score(event_id: str, player_id: str, points: int):
    key = f"event:{event_id}:lb"
    r.zincrby(key, points, player_id)

def get_top(event_id: str, n: int = 100):
    key = f"event:{event_id}:lb"
    return r.zrevrange(key, 0, n-1, withscores=True)

def get_player_rank(event_id: str, player_id: str):
    key = f"event:{event_id}:lb"
    return r.zrevrank(key, player_id)
```

### 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)
        )
    ]
```

### 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))
```

### 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;
}
```

## 매 결정 기준
| 상황 | 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 |

**기본값**: 매 weekly Operation + 매 monthly Tournament + 매 quarterly Faction Conflict.

## 🔗 Graph
- 부모: [[Live Operations (LiveOps)]]
- 응용: [[War-Commander-Combat-Ecosystem]] · [[Mobile Strike]]
- Adjacent: [[KIXEYE]] · [[Power Creep (Content Treadmills)]] · [[Dynamic Offers]]

## 🤖 LLM 활용
**언제**: Event design template, tiered reward structure 의 reference, LiveOps cadence planning.
**언제 X**: Single-player narrative games — 매 LiveOps cadence 의 mismatch.

## ❌ 안티패턴
- **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.

## 🧪 검증 / 중복
- Verified (KIXEYE WC LiveOps blog 2014-2017, community Operation guides).
- 신뢰도 A.

## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — WC Event Ops w/ tier tree + LB + cleanup store |
