--- 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, // % 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) 분석 |