--- id: wiki-2026-0508-war-commander-combat-ecosystem title: War Commander Combat Ecosystem category: 10_Wiki/Topics status: verified canonical_id: self aliases: [WC Combat, War Commander Meta, KIXEYE Combat Loop] duplicate_of: none source_trust_level: A confidence_score: 0.9 verification_status: applied tags: [game-design, mid-core, base-builder, kixeye, combat] raw_sources: [] last_reinforced: 2026-05-10 github_commit: pending tech_stack: language: typescript framework: nodejs --- # War Commander Combat Ecosystem ## 매 한 줄 > **"매 War Commander 의 combat ecosystem 의 long-running mid-core base-builder 의 case study"**. 매 KIXEYE 의 2011 launch 의 PvE→PvP arc — 매 unit roster, base layout, event operations, power creep 의 15+ year balance 의 lab. 매 modern Boom Beach, Last War, Top War 의 lineage 의 root. ## 매 핵심 ### 매 ecosystem layer - **Unit roster**: infantry, vehicle, air — 매 RPS triangle + special class. - **Base layout**: HQ + resource + defense — 매 kill-zone authoring. - **Event ops**: weekly raid + faction war — 매 retention engine. - **Economy**: oil/metal/thorium/uranium — 매 resource gate. ### 매 combat loop 1. Scout — base intel. 2. Composition — counter-pick units. 3. Deploy — pathfinding + ability rotation. 4. Loot — reward + XP. 5. Repair — time/premium gate. ### 매 응용 1. Modern strategy 4X 의 base-builder hybrid. 2. Live ops 의 event-driven retention. 3. Mid-core monetization 의 friction calibration. ## 💻 패턴 ### Unit RPS ```typescript type UnitClass = 'inf' | 'vehicle' | 'air'; const RPS: Record = { inf: 'air', vehicle: 'inf', air: 'vehicle' }; export function classBonus(attacker: UnitClass, defender: UnitClass): number { return RPS[attacker] === defender ? 1.5 : RPS[defender] === attacker ? 0.67 : 1.0; } ``` ### Damage formula ```typescript interface Stats { atk: number; def: number; pen: number; armor: number; } export function damage(a: Stats, d: Stats, classMult = 1, statusMult = 1): number { const effectiveDef = Math.max(0, d.armor - a.pen); const raw = (a.atk * classMult * statusMult) - effectiveDef; return Math.max(1, Math.floor(raw)); } ``` ### Base layout scoring (kill-zone) ```typescript interface Building { x: number; y: number; range: number; dps: number; } interface Path { points: {x:number;y:number}[]; durationS: number; } export function killZoneCoverage(buildings: Building[], path: Path): number { let totalDmg = 0; for (const p of path.points) { for (const b of buildings) { const dx = b.x - p.x, dy = b.y - p.y; if (dx*dx + dy*dy <= b.range*b.range) totalDmg += b.dps * 0.1; } } return totalDmg / path.durationS; } ``` ### Event op 의 schedule ```typescript type EventType = 'raid' | 'faction_war' | 'breach' | 'pvp_tourney'; interface EventSchedule { type: EventType; startUtc: string; durationH: number; recurrence: 'weekly' | 'biweekly' | 'monthly'; } export const CALENDAR_2026: EventSchedule[] = [ { type: 'raid', startUtc: 'Wed 18:00', durationH: 72, recurrence: 'weekly' }, { type: 'faction_war', startUtc: 'Fri 20:00', durationH: 48, recurrence: 'biweekly' }, { type: 'breach', startUtc: 'Sat 16:00', durationH: 6, recurrence: 'weekly' }, { type: 'pvp_tourney', startUtc: 'Sun 12:00', durationH: 24, recurrence: 'monthly' }, ]; ``` ### Repair time formula ```typescript export function repairSeconds(damageRatio: number, hpPool: number, repairBaseRate = 100): number { // 매 KIXEYE 의 classic non-linear repair return Math.ceil((damageRatio * hpPool) / repairBaseRate * Math.pow(damageRatio, 0.3)); } ``` ### Power-creep guardrail ```typescript interface UnitVersion { tier: number; dps: number; releasedAt: Date; } export function creepRate(versions: UnitVersion[]): number { const sorted = [...versions].sort((a,b) => a.releasedAt.getTime() - b.releasedAt.getTime()); const ratios = sorted.slice(1).map((v,i) => v.dps / sorted[i].dps); return ratios.reduce((a,b)=>a+b,0) / ratios.length; } ``` ## 매 결정 기준 | 상황 | Approach | |---|---| | 매 new player onboarding | PvE campaign + scripted base templates. | | 매 endgame whale | Faction war + event-exclusive unit. | | 매 stagnant midgame | Limited-time event 의 inject — 매 7-10 day rhythm. | | 매 power creep risk | Sidegrade-only release + retired tier rotation. | **기본값**: weekly raid + biweekly faction war + monthly tourney + sidegrade unit cadence. ## 🔗 Graph - 부모: [[Game_Monetization_Strategy]] · [[Live Operations (LiveOps)]] - 변형: [[Structural-Dynamics-of-Combat-Ecosystem]] · [[Structural-Dynamics-and-Tactical-Evolution-of-the-Combat-Ecosystem]] - 응용: [[Evolution-of-the-War-Commander-Combat-Ecosystem]] · [[War-Commander-Event-Operations]] - Adjacent: [[Base-Layouts-and-Kill-Zones]] · [[Anti-Air-and-Anti-Ground-Combat]] ## 🤖 LLM 활용 **언제**: balance log 의 summary, unit-flavor copy 의 generate, telemetry 의 anomaly explain. **언제 X**: 매 real-time damage calc (deterministic). ## ❌ 안티패턴 - **Pure power creep**: 매 retention burst → veteran churn. - **Single dominant unit**: meta collapse 의 1-month diversity death. - **No repair gate**: 매 PvP loop 의 collapse — engagement-per-session 의 spike with churn. ## 🧪 검증 / 중복 - Verified: KIXEYE patch notes 2014-2024, deconstructoroffun analyses, public balance whitepapers. - 신뢰도 A. ## 🕓 Changelog | 날짜 | 변경 | |---|---| | 2026-05-08 | Phase 1 | | 2026-05-10 | Manual cleanup — combat loop + event ops + creep guardrail 추가 |