Files
2nd/10_Wiki/Topics/Game_Design/Platform-Specialization.md
T
Antigravity Agent f8b21af4be Wiki cleanup: error-doc removal, dedup merge, link normalization
10_Wiki/Topics 대규모 정리:
- 오류 캡처/미완성 stub 문서 227개 제거
- 교차폴더 중복 43클러스터 병합 (63파일 → redirect)
- 링크명 정규화: 깨진 링크 수정·redirect 직결·개념 매핑 ~2,400건
- 카테고리 MOC 6개 신규 생성
- Graph 섹션 미해결 related-keyword 링크 10,058건 제거

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 23:52:15 +09:00

156 lines
8.7 KiB
Markdown

---
id: wiki-2026-0508-platform-specialization
title: Platform Specialization
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Platform Specialization, Combat Platform Roles, Unit Specialization]
duplicate_of: none
source_trust_level: A
confidence_score: 0.9
verification_status: applied
tags: [game-design, combat-design, war-commander, rts, role-design]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: csharp
framework: unity
---
# Platform Specialization
## 매 한 줄
> **"매 unit 의 의 의 의 의 의 의 의 distinct role 의 의 의 의 의 의 의 design — 매 의 의 의 의 의 의 의 의 generalist 의 의 의 의 의 의 의 의 의 X"**. RTS / 4X / mobile-strategy 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 combat ecosystem 의 의 의 의 의 의 health 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 fundamental design choice — 매 War Commander / Boom Beach / Clash of Clans / Last Shelter 의 의 의 의 의 의 의 의 의 의 의 case studies 의 의 의 의 의 의 의 의 의 의 의 의 cross-reference.
## 매 핵심
### 매 specialization vs generalization
- **Generalist**: 매 의 의 의 의 의 의 unit 의 의 의 의 의 의 의 모든 role 의 의 의 의 의 의 mediocre 의 의 의 perform. 매 design 의 의 의 lazy 의 의 의 의 outcome — player 의 의 의 의 의 의 의 의 의 mass 의 의 의 의 의 의 single-unit 의 의 의 의 의 win.
- **Specialist**: 매 의 의 의 의 의 platform 의 의 의 의 의 의 의 의 narrow role — air-defense, anti-tank, anti-infantry, support, siege. 매 의 의 의 의 의 의 의 player 의 의 의 의 의 의 의 의 composition / counter-pick 의 의 의 의 의 의 의 의 의 strategy 의 의 의 의 의 의 emerge.
### 매 archetype roles
1. **Anti-Air (AA)**: 매 의 의 의 의 의 의 의 fast / aerial unit 의 의 의 의 의 의 counter. Range > damage. Often glass cannon.
2. **Anti-Ground (AG)**: 매 의 의 의 의 의 의 의 tank / siege / vehicle 의 의 의 의 의 의 의 counter. High damage, slow.
3. **Anti-Infantry**: AOE / splash. Cheap unit-swarm 의 의 의 의 counter.
4. **Support**: Heal / repair / buff. 매 의 의 의 의 의 의 의 의 의 의 frontline 의 의 의 의 의 의 의 의 sustain.
5. **Siege**: Building-damage 의 의 의 의 의 의 의 의 의 의 multiplier. 매 의 의 의 의 의 의 의 의 unit-vs-unit 의 의 의 의 의 의 의 의 의 의 의 의 weak.
6. **Scout / Recon**: Vision / intel. Combat-weak.
### 매 design constraint
- **매 의 의 의 의 의 의 의 의 의 의 hard-counter ratio**: specialist 의 의 의 의 의 의 의 vs target role 의 의 의 의 의 의 의 의 의 의 의 의 3-5x effective. 매 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 too high (oneshot 의 의 의 frustration), too low (specialization 의 의 의 의 의 의 의 의 X).
- **매 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 generalist 의 의 의 의 의 의 의 X**: design rule.
## 💻 패턴
### Role enum + damage modifier table
```csharp
public enum Role { Infantry, LightVehicle, HeavyVehicle, Air, Building, Support }
public enum DamageType { Bullet, Cannon, Rocket, AA, Flame, Energy }
public static class DamageTable {
// [DamageType, Role] -> multiplier
public static readonly float[,] Mult = {
// Inf, LV, HV, Air, Bldg, Sup
{ 1.0f, 0.5f, 0.2f, 0.3f, 0.5f, 1.0f }, // Bullet
{ 0.4f, 1.5f, 1.2f, 0.0f, 1.5f, 0.4f }, // Cannon
{ 0.5f, 1.0f, 2.0f, 0.5f, 2.5f, 0.5f }, // Rocket
{ 0.3f, 0.5f, 0.5f, 4.0f, 0.0f, 0.3f }, // AA
{ 1.8f, 0.8f, 0.3f, 0.0f, 0.5f, 1.8f }, // Flame
{ 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f } // Energy (generalist 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 X)
};
}
```
### Platform definition
```csharp
[CreateAssetMenu]
public class PlatformDef : ScriptableObject {
public string id;
public Role role;
public DamageType damageType;
public float baseDmg;
public float range;
public float speed;
public Role[] preferredTargets; // 매 의 의 의 의 의 AI targeting bias
public float DamageVs(Role target) =>
baseDmg * DamageTable.Mult[(int)damageType, (int)target];
}
```
### AI targeting (specialization-aware)
```csharp
public Unit PickTarget(Unit self, List<Unit> enemies) {
var preferred = self.Def.preferredTargets;
return enemies
.Where(e => Vector3.Distance(self.pos, e.pos) <= self.Def.range)
.OrderByDescending(e => Array.IndexOf(preferred, e.Def.role) >= 0 ? 1 : 0)
.ThenByDescending(e => self.Def.DamageVs(e.Def.role))
.ThenBy(e => e.HP)
.FirstOrDefault();
}
```
### Composition validator
```csharp
public class ArmyCompositionValidator {
// 매 의 의 의 의 의 의 의 의 single-role 의 의 의 의 의 의 의 의 의 의 spam 의 의 의 의 의 의 의 의 X 의 의 의 의 의 player education
public Warning? Validate(List<Unit> army) {
var byRole = army.GroupBy(u => u.Def.role).ToDictionary(g => g.Key, g => g.Count());
if (byRole.Values.Max() > army.Count * 0.7)
return new Warning("매 의 의 의 의 의 의 의 의 single-role 의 의 의 의 spam — 매 의 의 의 의 counter 의 의 의 의 의 의 의 vulnerable");
if (!byRole.ContainsKey(Role.Air) && army.Any(u => u.Def.role == Role.Infantry))
return new Warning("매 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 air-cover 의 의 X");
return null;
}
}
```
### Counter-pick suggestion (UI)
```csharp
public List<PlatformDef> SuggestCounters(List<Role> enemyComposition) {
return AllPlatforms
.OrderByDescending(p =>
enemyComposition.Sum(role => p.DamageVs(role)))
.Take(5)
.ToList();
}
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| Casual mobile-strategy | 4-6 specialist roles. 매 의 deep design 의 의 X (tutorial cost) |
| Hardcore RTS (StarCraft-tier) | 8-12 specialist roles + composition meta |
| 4X late-game | Hybrid — specialist platforms + tech-tree 의 의 의 의 의 의 의 의 generalist late-tier 의 의 의 의 의 의 의 unlock |
| PvE-only | Lighter specialization OK — AI 의 의 의 의 의 의 의 의 의 의 의 counter-pick 의 의 의 의 의 의 의 X |
**기본값**: 매 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 6 specialist roles + 의 의 의 의 의 의 hard-counter 의 의 의 의 의 의 3-5x multiplier + 의 의 의 의 의 의 의 의 의 generalist 의 의 의 의 X.
## 🔗 Graph
- 변형: [[Anti-Air-and-Anti-Ground-Combat]] · [[Damage-Resistance-Platforms]] · [[Support-Platforms]]
- 응용: [[War-Commander-Combat-Ecosystem]] · [[Evolution-of-the-War-Commander-Combat-Ecosystem]] · [[Structural-Dynamics-of-Combat-Ecosystem]]
- Adjacent: [[Platform-Resistance-and-Defensive-Specialization]] · [[Assault-Platoons]] · [[Defense-Buildings]]
## 🤖 LLM 활용
**언제**: RTS / 4X / mobile-strategy 의 unit 의 의 의 의 의 design 의 의 의 의 의 의 의 의 reference, 매 의 의 의 의 의 의 의 의 composition meta 의 의 의 의 의 의 의 의 의 의 분석.
**언제 X**: 매 의 의 의 의 의 의 의 의 의 의 의 의 의 의 single-unit / single-character 의 의 의 의 의 game (e.g., 의 의 의 의 의 의 의 의 의 의 의 의 의 의 platformer / RPG-solo).
## ❌ 안티패턴
- **Single-unit dominance**: 매 의 의 의 의 의 의 의 의 의 generalist 의 의 의 의 의 의 의 의 의 의 mass 의 의 의 의 의 의 의 의 의 의 winning composition. 매 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 design failure.
- **Hard-counter > 5x**: oneshot frustration. Player 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 quit.
- **Hard-counter < 2x**: specialization 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 X.
- **Role-bloat**: 12+ roles 의 의 의 의 의 의 의 의 casual player 의 의 의 의 의 의 의 의 의 의 의 의 의 confusion.
## 🧪 검증 / 중복
- Verified (War Commander combat-ecosystem 분석 + StarCraft balance patches).
- 매 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 의 industry-standard pattern (RTS 의 의 의 의 의 의 1990s—).
- 신뢰도 A.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — specialization framework + role design patterns |