Files
2nd/10_Wiki/Topic_General/Game_Design/War-Commander-Event-Operations.md
T
Antigravity Agent 9148c358d0 docs(10_Wiki): 위키 전체 재구성 — Topic_* 폴더를 4개 카테고리로 통합 + 대규모 중복 제거
Topic_Agent/Topic_Blog/Topics/Topics_Biz/Topics_Meeting/Topics_Rag의 마크다운 지식 문서를
Topic_General/Topic_Programming/Topic_Graphic/Topic_Business 4개 카테고리로 재분류.

- 중복 제거: frontmatter의 status:duplicate/merged + duplicate_of/redirect_to 필드로
  자기 자신을 중복으로 선언한 리다이렉트 stub 1032개 제거, 완전 동일 내용 파일 472개 제거,
  동일 파일명·다른 내용 충돌 시 더 큰(완전한) 버전만 유지(162개 제거) — 총 1639개 중복 제거.
- 분류: 폴더 단위로 명확한 항목(AI_and_ML/Coding/Architecture 등 → Programming,
  Comfyui/Visual_Effects → Graphic, Topics_Biz/Topics_Meeting/사업 등 → Business,
  Poetic_Blog_Writing/창의성/Game_Design 등 → General)은 폴더 우선순위로,
  나머지 혼재 폴더(Topic_Agent/Topic_Blog/Topics 루트/Thinking & Reasoning/Other/UI_UX_Assets)는
  title/tags 키워드 스코어링으로 파일 단위 분류(불명확한 경우 General로 폴백).
  원본 폴더명은 "From_*" 서브폴더로 보존해 추적 가능성 유지.
- 최종 배치: Programming 2784 / General 1608 / Graphic 285 / Business 249 = 4926개 문서.
- 에이전트 운영 상태(.astra/.agent/.obsidian/sessions/memory/_company/docs/lessons/_shared/src)는
  지식 콘텐츠가 아니므로 재분류 대상에서 제외하고 원위치 유지.
- Topics/Topic_email(상위 보호 폴더 Topic_email과 파일명 100% 중복) 삭제 — 보호 폴더 자체는 미변경.
- 완전히 비게 된 Topic_Agent/Topic_Blog/Topics_Biz/Topics_Rag 폴더 제거.
2026-07-05 00:33:48 +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