--- id: wiki-2026-0508-fate-war title: Fate War category: 10_Wiki/Topics status: verified canonical_id: self aliases: [Fate War game, Fate franchise war, Type-Moon Holy Grail War] duplicate_of: none source_trust_level: B confidence_score: 0.85 verification_status: applied tags: [game, fate, type-moon, holy-grail-war, narrative, gacha] raw_sources: [] last_reinforced: 2026-05-10 github_commit: pending tech_stack: language: Game / Narrative applicable_to: [Game Design, Narrative AI, Lore] --- # Fate War (Holy Grail War) ## 매 한 줄 > **"매 Type-Moon Fate franchise 의 core conflict — 매 7 master + 7 servant 의 Holy Grail 의 의 의 battle royale"**. Fate/stay night (2004) 시작 — 매 Visual Novel + 매 anime + 매 Fate/Grand Order (gacha) 등 expand. 매 narrative AI / 매 game design 의 reference. ## 매 핵심 ### 매 setup - **7 masters** (mages) + **7 servants** (heroic spirits). - **Holy Grail**: 매 wish-granting. - **Fuyuki city** (or variant) 의 setting. - **Battle royale**: 매 last 1 의 wins. ### 매 7 servant class - **Saber**: 매 sword. - **Archer**: 매 bow / range. - **Lancer**: 매 spear. - **Rider**: 매 mount. - **Caster**: 매 magic. - **Berserker**: 매 mad enhancement. - **Assassin**: 매 stealth. ### 매 Fate franchise - **Fate/stay night** (2004): 매 origin VN. - **Fate/Zero** (2011): 매 prequel. - **Fate/Apocrypha**: 매 14-servant variant. - **Fate/Grand Order** (2015+): 매 mobile gacha — 매 commercial 매 다수. - **Fate/Extra**: 매 Moon Cell variant. ### 매 narrative pattern - **Master-servant bond**: 매 strategic + emotional. - **Class triangle**: 매 rock-paper-scissors style. - **Heroic spirit**: 매 historical / mythological figure. - **Noble Phantasm**: 매 servant 의 ultimate. - **Command Spell**: 매 master 의 3-use control. ### 매 game design 응용 1. **Battle royale narrative**. 2. **Gacha**: 매 character + rarity. 3. **Class-based combat triangle**. 4. **Boss raid**: 매 servant 의 mythic scale. 5. **Visual novel**: 매 branching. ## 💻 패턴 (응용) ### Class triangle ```python CLASS_ADVANTAGE = { 'Saber': ['Lancer'], 'Lancer': ['Archer'], 'Archer': ['Saber'], 'Rider': ['Caster'], 'Caster': ['Assassin'], 'Assassin': ['Rider'], 'Berserker': [], # 매 매 class 의 advantage but takes 2x damage } def damage_modifier(attacker_class, defender_class): if defender_class in CLASS_ADVANTAGE.get(attacker_class, []): return 1.5 if attacker_class in CLASS_ADVANTAGE.get(defender_class, []): return 0.5 if attacker_class == 'Berserker': return 1.5 # 매 매 매 class return 1.0 ``` ### Servant data ```python @dataclass class Servant: true_name: str class_: str skills: list[str] noble_phantasm: dict parameters: dict # 매 STR/END/AGI/MAG/LCK/NP — 매 E~A++ alignment: str ``` ### Noble Phantasm trigger ```python def noble_phantasm(servant, master_mp, charge): if charge < servant.np.threshold: return 'insufficient_charge' if not master_mp.has(servant.np.cost): return 'mp_drain_master' return execute(servant.np) ``` ### Command Spell (3-use) ```python class Master: def __init__(self): self.command_spells = 3 def use_command_spell(self, command): if self.command_spells == 0: raise NoSpellsError() self.command_spells -= 1 # 매 absolute order 의 servant 의 force # 매 1: location-jump, 2: instant-restore, 3: kill-self-NP return self.servant.execute_absolute(command) ``` ### Battle royale logic ```python def grail_war_round(masters): alive = [m for m in masters if m.alive and m.servant.alive] if len(alive) <= 1: return alive[0] if alive else None # 매 territorial expansion + alliances encounters = pair_encounters(alive) for m1, m2 in encounters: outcome = simulate_combat(m1, m2) if outcome == 'm1_win': m2.alive = False elif outcome == 'm2_win': m1.alive = False else: break_alliance(m1, m2) ``` ### Visual novel branching (Ren'Py-like) ``` label crossroads: "Saber waits for orders." menu: "Engage Lancer": jump engage_lancer "Retreat": jump retreat_route "Attempt alliance": jump alliance_route ``` ### Gacha rarity (Fate/GO-style) ```python RARITY_RATES = {1: 0.40, 2: 0.30, 3: 0.20, 4: 0.07, 5: 0.03} def gacha_pull(rates=RARITY_RATES): r = random.random(); cum = 0 for rarity, rate in sorted(rates.items()): cum += rate if r <= cum: return draw_servant(rarity) ``` ### Heroic spirit lore (LLM-aided) ```python def generate_servant(historical_figure, class_): prompt = f"""Design a Fate-style servant. Historical figure: {historical_figure} Class: {class_} Output JSON: - true_name - class - 3 skills (with grade) - noble_phantasm (name, type, effect, rank) - parameters (STR/END/AGI/MAG/LCK) - one-line summary""" return llm.generate(prompt) ``` ## 매 결정 기준 (응용) | 상황 | Approach | |---|---| | Battle royale game | 매 alliances + 매 reduction | | Class system | Triangle | | Mobile gacha | Tiered rarity + pity | | Narrative game | VN branching | | LLM character | Heroic spirit gen | **기본값**: 매 lore-rich character + 매 class triangle + 매 multi-route narrative + 매 (mobile) gacha pity. ## 🔗 Graph - 부모: [[Game-Design]] - 변형: [[Gacha]] - 응용: [[Drama Management Systems]] · [[Computational_Creativity|Computational-Creativity]] ## 🤖 LLM 활용 **언제**: 매 narrative-rich game. 매 character generation. 매 lore wiki. **언제 X**: 매 actual Fate IP licensing 의 strict. ## ❌ 안티패턴 - **No class differentiation**: 매 strategic depth lose. - **Pure RNG gacha**: 매 burn-out. - **No Noble Phantasm uniqueness**: 매 character bland. ## 🧪 검증 / 중복 - Verified (Type-Moon official, Fate wiki). - 신뢰도 B. ## 🕓 Changelog | 날짜 | 변경 | |---|---| | 2026-05-08 | Phase 1 | | 2026-05-10 | Manual cleanup — Fate framework + 매 game design 응용 code |