Files
2nd/10_Wiki/Topics/Domain_General/Game_Design/War-Commander-Event-Operations.md
T
Antigravity Agent c24165b8bc refactor(topics): 멀티 에이전트용 지식 재편 — _Common(공통 기본기) + Domain_* 구조
에이전트 8종(대화형/프로그래머 C·S/디자이너/설계자/기획자/QA/PD/PM)에게
[공통 기본 능력 + 롤별 Specialty] 2층으로 지식을 주입하기 위한 재분류.
문서 내용·포맷은 무수정, 폴더 이동만 (6,372개 문서 수 보존 확인).

- Topic_Programming → Domain_Programming (내부 구조 보존)
- Topic_Graphic → Domain_Design
- Topic_Business → Domain_Product
- Topic_General → Domain_General
- _Common 신설: Math(구 Topic_Math_Specialty), Reasoning(구 General/From_Thinking & Reasoning),
  Reasoning_Creativity(구 General/From_창의성), Communication(Poetic_Blog_Writing + From_writing)
- 타 도메인의 From_* 폴더는 유지 (출처 표기일 뿐, 이미 도메인에 맞게 분류된 문서)
- 빈 폴더 정리 (memory/procedures)
- 에이전트→폴더 매핑은 workspace의 .astra/agent-knowledge-map.json (9개 에이전트)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 11:05:56 +09:00

6.4 KiB

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-war-commander-event-operations War Commander Event Operations 10_Wiki/Topics verified self
WC Events
KIXEYE Event Ops
WC LiveOps
none A 0.85 applied
liveops
event-design
kixeye
mid-core
monetization
2026-05-10 pending
language framework
Python/JavaScript 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

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)

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)

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

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)

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

🤖 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