Files
2nd/10_Wiki/Topics/Game_Design/War-Commander-Combat-Ecosystem.md
T
2026-05-10 22:08:15 +09:00

5.5 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-combat-ecosystem War Commander Combat Ecosystem 10_Wiki/Topics verified self
WC Combat
War Commander Meta
KIXEYE Combat Loop
none A 0.9 applied
game-design
mid-core
base-builder
kixeye
combat
2026-05-10 pending
language framework
typescript 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

type UnitClass = 'inf' | 'vehicle' | 'air';
const RPS: Record<UnitClass, UnitClass> = { 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

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)

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

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

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

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

🤖 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 추가