"매 unit 의 매 다른 unit 에 대한 effective vs ineffective relationship". RTS 의 매 핵심 strategic depth — Dune II (1992) 의 light/heavy/infantry triad 에서 시작, StarCraft II 의 armor type × damage type matrix 로 evolution, 매 modern title (Stormgate 2026, AoE IV) 에서 매 attack-bonus 시스템으로 standardize.
publicstructSplashShape{publicfloatinnerRadius;// 100% damagepublicfloatouterRadius;// 25% damagepublicboollinear;// siege tank line vs colossus disc}
Balance simulation harness
importnumpyasnp# armies: list of (count, dps_vs_type_dict, hp, armor_type)defsimulate(army_a,army_b,dt=0.1):whilealive(army_a)andalive(army_b):damage_a_to_b=sum(c*dps[b_armor]forc,dps,_,_inarmy_aforb_armorintypes_in(army_b))# ... apply to softest target first (focus fire heuristic)tick(army_b,damage_a_to_b*dt)tick(army_a,damage_b_to_a*dt)returnwinner_margin(army_a,army_b)
매 결정 기준
상황
Approach
Symmetric RTS (SC2-like)
Soft counter matrix, 1.3-1.5x multiplier
Asymmetric (faction-unique units)
Per-faction counter chart, identity > balance
MOBA-style hero
Stat-based counters (mobility, range, burst) — no explicit type
Auto-battler (TFT)
Trait synergy + damage type secondary
Tower defense
Armor-color hard counter (red = magic only) acceptable
기본값: SC2-style — Light/Armored/Massive armor tag + soft 1.3-1.5x bonus damage. 매 readable + balanceable.
언제: damage matrix 의 first draft, balance hypothesis ("if zergling +1 damage, what changes"), counter chart 의 markdown 화.
언제 X: 매 actual playtested numbers — LLM 의 pure speculation. Sim harness + telemetry 가 ground truth.
❌ 안티패턴
Hard counter only (2x+): composition 강요 → boring "scout-and-react" gameplay.
Hidden multipliers: damage tooltip 에 안 보이면 매 player 의 frustration.
Symmetric mirror (모든 unit 의 동일 multiplier): counter 의 의미 X.
Too many damage types (8+): cognitive overload. 4-5 가 sweet spot.