분기설계자(branch-architect)가 사용하는 분기 로직 전문 스킬. 분기 구조 패턴, 플래그 시스템 설계, 엔딩 아키텍처, 상태 관리 방법론을 제공한다. '분기 설계', '멀티 엔딩', '플래그 시스템', '분기 구조' 등에 활용한다.
Scanned 5/29/2026
Install via CLI
openskills install revfactory/harness-100---
name: branching-logic
description: "분기설계자(branch-architect)가 사용하는 분기 로직 전문 스킬. 분기 구조 패턴, 플래그 시스템 설계, 엔딩 아키텍처, 상태 관리 방법론을 제공한다. '분기 설계', '멀티 엔딩', '플래그 시스템', '분기 구조' 등에 활용한다."
---
# Branching Logic — 분기 로직 설계 방법론
branch-architect 에이전트가 분기 구조, 엔딩, 플래그 시스템을 설계할 때 활용하는 전문 지식.
## 왜 분기 로직이 중요한가
분기는 게임 내러티브를 소설/영화와 구분하는 **핵심 차별점**이다. 그러나 분기가 많을수록 제작 비용은 기하급수적으로 증가한다. 적은 분기로 많은 변화를 느끼게 하는 것이 기술이다.
## 분기 구조 패턴 6가지
### 1. 병목 구조 (Bottleneck / Hub-and-Spoke)
```
A
/ \
B C ← 분기
\ /
D ← 병목 (합류)
/ \
E F ← 재분기
\ /
G ← 병목
```
- **장점**: 제작 가능한 범위에서 선택의 자유 제공
- **핵심**: 병목 지점에서 모든 경로가 합류하되, **합류 방식이 달라야** 한다
- **적합**: 대부분의 상용 RPG (위쳐 3, 매스이펙트)
### 2. 평행 경로 (Parallel Paths)
```
A → B → C → D (루트 1)
A → E → F → D (루트 2)
A → G → H → D (루트 3)
```
- **장점**: 높은 리플레이 가치
- **단점**: 콘텐츠 3배 필요
- **적합**: 짧은 게임, 비주얼 노벨
### 3. 나뭇가지 구조 (Branching Tree)
```
A
/|\
B C D
/| |\
E F G H
```
- **장점**: 직관적, 설계 용이
- **단점**: 엔딩 수 폭발 (2^n), 후반부 콘텐츠 희박
- **적합**: 짧은 인터랙티브 픽션
### 4. 폴딩 구조 (Folding / Delayed Consequences)
```
선택 시점 ... 결과 반영 시점
A에서 선택 → B, C, D를 지남 → E에서 결과 발현
```
- **장점**: 적은 분기로 큰 임팩트, "내 선택이 의미 있었다" 체감
- **핵심**: 플래그를 설정하고, 한참 뒤에 발동시킨다
- **적합**: 장편 RPG, 에피소딕 게임
### 5. 상태 누적 구조 (State Accumulation)
```
선택 1: 명예 +10 / 악명 +10
선택 2: 명예 +5 / 악명 +5
...
임계값 도달 시: 엔딩 A(명예 70+) / B(악명 70+) / C(중립)
```
- **장점**: 단일 선택이 아닌 **행동의 총합**이 결과를 결정
- **핵심**: 플레이어가 자신의 성향을 자연스럽게 누적
- **적합**: 도덕 시스템이 있는 RPG (인파머스, 파블)
### 6. 하이브리드 구조
실제 게임은 위 패턴을 **혼합**한다:
- **메인 스토리**: 병목 구조 (제어 가능)
- **서브 퀘스트**: 나뭇가지 (독립적, 짧음)
- **관계 시스템**: 상태 누적 (NPC 호감도)
- **핵심 선택**: 폴딩 (지연된 결과)
## 플래그 시스템 설계
### 플래그 네이밍 컨벤션
```
[범주]_[대상]_[상태]
예시:
QUEST_bandit_camp_destroyed — 퀘스트 관련
REL_npc_aria_friendship_high — 관계 관련
WORLD_bridge_repaired — 세계 상태
PLAYER_has_ancient_sword — 플레이어 소유
STORY_chapter2_twist_revealed — 스토리 진행
MORAL_saved_village — 도덕적 선택
```
### 플래그 유형
| 유형 | 값 형태 | 사용처 | 예시 |
|------|--------|--------|------|
| **불리언** | true/false | 이벤트 발생 여부 | `QUEST_dragon_slain = true` |
| **카운터** | 정수 | 누적 행동 | `MORAL_mercy_count = 3` |
| **열거형** | 문자열 | 경로 선택 | `FACTION_chosen = "rebels"` |
| **타임스탬프** | 게임 시간 | 시간 제한 퀘스트 | `QUEST_deadline = day_30` |
### 플래그 의존성 매트릭스
모든 분기 결정에 필요한 플래그를 매트릭스로 관리한다:
```
| 분기 지점 | 필요 플래그 | 조건 | 결과 |
|----------|-----------|------|------|
| CH3_결전 | REL_aria >= 50 AND QUEST_sword = true | 충족 | 아리아 합류 |
| CH3_결전 | REL_aria < 50 OR QUEST_sword = false | 미충족 | 단독 전투 |
```
## 엔딩 아키텍처
### 엔딩 분류
| 유형 | 달성 조건 | 플레이어 비율 (목표) |
|------|---------|-------------------|
| **정석 엔딩** | 메인 퀘스트 완료 | 70~80% |
| **최선 엔딩** | 정석 + 핵심 사이드 + 관계 최대 | 15~20% |
| **최악 엔딩** | 치명적 선택 누적 | 5~10% |
| **히든 엔딩** | 특수 조건 조합 | 1~3% |
| **진 엔딩** | 2회차 + 히든 조건 | 0.5~1% |
### 엔딩 만족도 규칙
1. **모든 엔딩은 완결감이 있어야 한다** — "나쁜 엔딩"도 서사적으로 완결
2. **최선 엔딩이 너무 쉬우면 안 된다** — 노력에 비례하는 보상
3. **히든 엔딩은 힌트가 있어야 한다** — 완전 블라인드 발견은 불만족
4. **엔딩 후 요약**: 플레이어의 주요 선택과 결과를 보여주는 "선택의 결산" 화면
## 분기 테스트: 경로 시뮬레이션
모든 가능한 경로를 문서화하여 검증한다:
```
경로 1 (정의의 길): A→B→D→F→최선엔딩
- 플래그: MORAL_good=5, REL_aria=80, QUEST_all_done=true
- 누락 콘텐츠: 없음
- 플롯홀: 없음
경로 2 (실용의 길): A→C→D→G→정석엔딩
- 플래그: MORAL_neutral=3, REL_aria=40
- 누락 콘텐츠: 아리아 로맨스 서브 퀘스트
- 플롯홀: CH4에서 아리아 언급 시 조건 분기 필요
경로 3 (파괴의 길): A→C→E→H→최악엔딩
- 플래그: MORAL_evil=5, REL_aria=-20
- 플롯홀: 없음
```
No comments yet. Be the first to comment!