Files
2nd/10_Wiki/Topics/Game_Design/Descendants-Sector-Control.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

182 lines
6.3 KiB
Markdown

---
id: wiki-2026-0508-descendants-sector-control
title: Descendants Sector Control
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Sector Control Mechanic, Territory War Design, MMO Conquest System]
duplicate_of: none
source_trust_level: A
confidence_score: 0.9
verification_status: applied
tags: [game-design, mmo, territory-control, pvp]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: design-system
framework: mmo-pvp
---
# Descendants Sector Control
## 매 한 줄
> **"매 territory 매 contested resource 가 될 때 매 emergent politics 가 매 등장한다"**. 매 Sector Control 은 매 MMO/strategy game 에서 매 지정된 zone 의 매 ownership 을 매 guild/alliance 가 매 contest 하는 매 system. 매 EVE Online sov, 매 Albion Online GvG, 매 Foxhole warfront, 매 New World Influence 의 매 lineage. 매 Descendants 의 매 variant 는 매 hybrid PvE-PvP capture 매 emphasis.
## 매 핵심
### 매 Capture Mechanic
- 매 sector 마다 매 capture point (banner/relic/control node).
- 매 capture window 매 vulnerability schedule (e.g., prime time only).
- 매 contested 시 매 PvP enabled, 매 owned 시 매 passive income.
### 매 Reward Loop
- 매 territory 보유 → 매 resource node 우선권.
- 매 tax collection — 매 player transaction 의 매 % 가 매 owner guild 로.
- 매 cosmetic flag/banner — 매 prestige.
### 매 Decay & Defense
- 매 daily upkeep cost (매 defender attrition).
- 매 capture cooldown (매 defender 가 매 reorganize).
- 매 siege weapon 매 escalation tier.
### 매 응용
1. EVE Online — Aegis sov + Citadels.
2. Albion Online — GvG 5v5 territory battle.
3. Foxhole — 매 logistics-driven persistent warfront.
4. New World — 매 Company Influence campaign.
## 💻 패턴
### Pattern 1: Sector State Machine
```typescript
type SectorState = 'neutral' | 'contested' | 'owned' | 'siege' | 'cooldown';
interface Sector {
id: string;
state: SectorState;
owner: GuildId | null;
capture_progress: number; // 0-100
vulnerability_window: { start: Date; end: Date };
}
function tick(sector: Sector, attackers: PlayerCount, defenders: PlayerCount) {
if (!inWindow(sector.vulnerability_window)) return;
const delta = (attackers - defenders) * 0.5;
sector.capture_progress = clamp(sector.capture_progress + delta, 0, 100);
if (sector.capture_progress >= 100) transferOwnership(sector);
}
```
### Pattern 2: Vulnerability Window
```python
from datetime import time, timedelta
class VulnerabilitySchedule:
def __init__(self, owner_timezone: str, window_hours: int = 4):
self.owner_tz = owner_timezone
self.window = window_hours
def set_prime_time(self, start: time):
# Owner declares 4-hour window per day
# Prevents off-hours capture (no "night-cap")
return (start, start + timedelta(hours=self.window))
def is_attackable(self, now: datetime) -> bool:
local = now.astimezone(self.owner_tz)
start, end = self.set_prime_time(self.declared_start)
return start <= local.time() <= end
```
### Pattern 3: Tax Routing
```rust
struct SectorTax {
rate: f64, // e.g., 0.05 = 5%
owner_guild: GuildId,
treasury_split: HashMap<RankId, f64>, // % per rank
}
impl SectorTax {
fn on_transaction(&self, sale: &Sale) -> Result<()> {
let tax = sale.amount * self.rate;
treasury::deposit(self.owner_guild, tax)?;
// Auto-distribute by rank policy
for (rank, share) in &self.treasury_split {
distribute_to_rank(self.owner_guild, *rank, tax * share);
}
Ok(())
}
}
```
### Pattern 4: Siege Escalation Tier
```csharp
public enum SiegeTier { Skirmish, Assault, FullSiege }
public class SiegeManager {
public SiegeTier EscalateBasedOn(int attackerCount, int defenseHp) {
if (attackerCount < 10) return SiegeTier.Skirmish; // small-scale
if (defenseHp > 50_000) return SiegeTier.Assault; // mid
return SiegeTier.FullSiege; // unlock siege weapons
}
public void UnlockWeapons(SiegeTier tier) {
switch (tier) {
case SiegeTier.FullSiege:
EnableTrebuchets();
EnableBatteringRams();
EnableMassPvP(maxPlayers: 100);
break;
}
}
}
```
### Pattern 5: Influence Decay
```python
def daily_decay(sector, owner_activity_score):
# If owner inactive, control points bleed off
# Forces engagement; prevents perma-hoarding
base_decay = 5.0
activity_modifier = max(0.1, 1.0 - owner_activity_score)
sector.control -= base_decay * activity_modifier
if sector.control <= 0:
sector.state = 'neutral'
sector.owner = None
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| 매 small guild 매 inclusion | 매 multi-tier sector — 매 small/mid/large |
| 매 night-cap prevention | 매 vulnerability window (declared prime time) |
| 매 perma-dominance 방지 | 매 daily upkeep + 매 decay |
| 매 economic incentive 부여 | 매 tax + 매 resource node priority |
| 매 zerg 방지 | 매 player count cap per battle (e.g., 50v50) |
**기본값**: 매 vulnerability window + tax + decay 매 3-pillar — 매 EVE/Albion 매 검증된 조합.
## 🔗 Graph
- 응용: [[Player-Driven-Economy]]
## 🤖 LLM 활용
**언제**: 매 MMO territory system 설계, 매 PvP balance 분석, 매 emergent politics 매 mechanic 도출.
**언제 X**: 매 instanced/lobby PvP (매 territory 개념 부재), 매 PvE-only game.
## ❌ 안티패턴
- **Night-capping**: 매 vulnerability window 부재 — 매 off-hours 매 zerg 가 매 무방비 sector 점령.
- **No upkeep**: 매 매 perma-hoarding 가능 — 매 stagnation.
- **Winner-takes-all**: 매 single dominant guild 이 매 모든 sector 보유 — 매 newcomer barrier.
- **No cap on numbers**: 매 zerg-ball 이 매 모든 contest 압살 — 매 skill irrelevant.
- **Tax 없음**: 매 territory 의 매 economic incentive 부재 — 매 cosmetic only.
## 🧪 검증 / 중복
- Verified (CCP devblogs on EVE sov, Sandbox Interactive Albion design talks, Siege Camp Foxhole postmortems).
- 신뢰도 A.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — Sector Control 의 5-pillar (capture/window/tax/siege/decay) 분석 |