Part A (연대기 ↔ 내러티브 태그 개념 분리) — 문서 6개 반영
시스템 기획서: 내러티브 태그 항목에서 연대기 서술 제거, 연대기를 독립 항목으로 신설 스토리 바이블: "연대기의 편찬" 테마를 '결정 장부' 관점으로 재서술 텍스트 와이어프레임: 팝업을 '세계의 상흔'(태그) / '연대기'(결재 이력) 2종으로 분리, 엔딩 화면에 연대기 요약 블록 추가 비전 문서 / PRD / 유저플로우 / 개발순서: 각각 정의 분리 및 분리 저장 명시 Part B (스니펫 시스템) — B-4 결정사항(은근한 헌신 농도, 고정 마침 도장 리스트) 반영 narrative_tags.json 10종 전체에 snippet(1문장, 숫자 1개, 거리감 있는 관료체) + snippet_type 필드 추가 — 시스템형 7 : 사람형 3 비율. update_csv_tags.js는 이 파일을 생성/가공하지 않아 스크립트 변경 불필요했습니다. 빌드(vite build) 정상 확인.
This commit is contained in:
@@ -84,8 +84,6 @@
|
||||
- 우: 위험 단계 (엔트로피, 내부 저항, 위험 수용 계수) 상승
|
||||
- 공통 획득
|
||||
- 내러티브 태그: 스토리 전달 + 엔딩 조건 중 하나
|
||||
- 연대기 시스템 (Chronicle)
|
||||
- 누적된 내러티브 태그를 터치하면, 플레이어가 지금까지 세상을 어떻게 망치고 구해왔는지 연대기 형태의 히스토리/텍스트로 확인 가능. (플레이어의 목적의식과 내러티브 몰입도 강화)
|
||||
- 성향 태그: 파벌과의 우호도 변화
|
||||
- 덱 오염 (토큰을 마이너스)
|
||||
- 그림자 의회가 끝날때 마다 엔트로피 단계(1~5단계)에 따라 '신화 카드' 추가
|
||||
@@ -174,6 +172,9 @@
|
||||
- 태그 0~3개: 페이즈1 (사태 파악 및 은폐의 시작)
|
||||
- 태그 4~7개: 페이즈2 (프로젝트 가동 및 이사회의 개입 본격화)
|
||||
- 태그 8개 이상: 페이즈3 (통제 불능의 사태 및 종말의 카운트다운)
|
||||
- 연대기 (Chronicle)
|
||||
- 국장이 결재한 카드와 그에 대한 선택(좌/우/위)을 시간순으로 기록하는 결정 장부. 내러티브 태그가 '세계의 결과'라면, 연대기는 '국장의 원인 이력'이다.
|
||||
- 내러티브 태그(세계의 상흔)와는 별도의 데이터·별도의 진입점(로그 버튼)으로 관리한다.
|
||||
|
||||
## 라운드 플로우차트 (Round Flowchart)
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ UN 상임이사국과 글로벌 메가코프들이 비밀리에 설립한 초법
|
||||
**모래성 무너뜨리기 (The Sandcastle)**
|
||||
국장은 재력, 무력, 감시라는 영구 자원 태그를 모아 거대한 통제 엔진을 구축합니다. 하지만 세계의 엔트로피가 차오를수록, 이사회의 표적 규약과 쏟아지는 뉴스 속보가 당신이 공들여 쌓은 방어벽을 잔인하게 허물어뜨립니다.
|
||||
**연대기의 편찬 (The Chronicle)**
|
||||
국장은 끝없이 반복되는 루프 속에서 단편적인 무작위 내러티브 태그들을 마주합니다. 국장은 이 혼란스러운 단서들을 수집(Collect)하고, 얽혀있는 파벌 간의 인과를 조직화(Organize)하며, 멸망의 진정한 원인을 추출(Distill)하여 최종 결재라는 형태로 세계에 표현(Express)해 나갑니다. 이 지독한 과정은 플레이어의 목적의식을 강화하는 한 편의 텍스트 연대기(Chronicle)로 기록됩니다.
|
||||
국장의 모든 결재는 되돌릴 수 없는 기록으로 남습니다. 세계의 상흔(내러티브 태그)이 '무엇이 벌어졌는가'를 말한다면, 연대기는 '누가 그렇게 결정했는가'를 말합니다. 플레이어는 회차가 끝난 뒤 이 장부를 되짚으며, 멸망이 사고가 아니라 자신의 서명들이 쌓인 결과였음을 마주합니다.
|
||||
## 3. 메인 시나리오: 종말의 3단계 페이징 (Story Paging)
|
||||
시나리오는 획득한 [내러티브 태그]의 누적 개수에 따라 기구의 토큰 경제가 파탄 나는 3가지 페이즈로 진행됩니다.
|
||||
### 페이즈 1: 사태 파악 및 은폐의 시작 (태그 0~3개)
|
||||
|
||||
@@ -65,7 +65,9 @@
|
||||
- **페이즈 3 (태그 8개 이상)**: 종말 카운트다운. 극한의 오염 카드와 뉴스 속보가 쏟아지는 자원 고갈의 생존 구간.
|
||||
|
||||
## 5. 최종 목표: 멀티 엔딩 매트릭스 도감
|
||||
다양한 엔딩을 수집하여 [연대기 시스템]을 통해 플레이어의 히스토리를 시각화합니다.
|
||||
다양한 엔딩을 수집하여 도감에 기록합니다. 회차의 여정은 두 축으로 분리되어 기록됩니다.
|
||||
- **연대기(Chronicle)**: 국장이 결재한 카드와 좌/우/위 선택을 시간순으로 기록한 결정 이력.
|
||||
- **내러티브 태그**: 그 결재의 결과로 세계에 남은 상흔이자 엔딩 조건. 연대기와는 별개로 관리·저장됩니다.
|
||||
|
||||
- **수집해야 할 엔딩 카테고리**:
|
||||
- 기본 4대 붕괴 엔딩 (사임, 멸망, 문명 붕괴, 탄핵)
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
- **작업 항목**:
|
||||
- **엔딩 분기 시스템**: 파라미터 5단계 도달 시, 현재 보유한 토큰/자원 태그를 검사하여 기본 붕괴 엔딩 또는 변주된 엔딩으로 분기시키는 판별기 구현.
|
||||
- **특수 엔딩 트리거**: 극단적 파라미터, 내러티브 연쇄, 의회 정치 조건 달성 시 발동하는 조기 엔딩 이벤트 구현.
|
||||
- **도감 및 연대기(Chronicle)**: 해금된 엔딩을 저장하는 도감 UI 구현 및 이번 회차에서 획득한 내러티브 태그를 히스토리 텍스트로 나열해 주는 연대기 기능 구현.
|
||||
- **도감 및 연대기(Chronicle)**: 해금된 엔딩을 저장하는 도감 UI 구현. 연대기 기능(결재 카드·선택 이력 로그)과 내러티브 태그 뷰('세계의 상흔', 태그 키워드+스니펫 히스토리)를 별도의 UI/팝업으로 분리 구현.
|
||||
|
||||
## Phase 5: 비주얼 폴리싱 및 다이제틱 UX
|
||||
핵심 로직이 모두 검증된 후, 기획 단계에서 논의된 추상적이고 몰입감 있는 피드백을 적용합니다.
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
- **영구 자원 태그 (1코스트 할인 효과)**: 재력/자본 태그(건물), 무력/조직 태그(방패), 감시/언론 태그(눈동자).
|
||||
|
||||
### C. 엔딩 도감 및 연대기 (Chronicle)
|
||||
- **연대기 시스템**: 누적된 내러티브 태그를 통해 플레이어가 세상을 어떻게 망치고 구해왔는지 히스토리를 확인하여 몰입도를 강화합니다.
|
||||
- **연대기 시스템**: 국장이 결재한 카드와 좌/우/위 선택을 시간순으로 기록한 결정 장부입니다. 세계가 어떻게 되었는가(세계의 상흔)는 내러티브 태그가 별도로 담당하며, 연대기는 '누가 그렇게 결정했는가'라는 원인 축을 기록해 몰입도를 강화합니다.
|
||||
- **멀티 엔딩 매트릭스**: 기본 붕괴 엔딩 외에도 특정 자원/토큰과 결합된 변주 엔딩, 극단적 파라미터 조기 엔딩, 내러티브 연쇄 엔딩, 의회 정치 엔딩 등 수십 가지의 결과를 수집해야 합니다.
|
||||
|
||||
|
||||
|
||||
@@ -82,5 +82,5 @@
|
||||
- 조건에 부합하는 가장 높은 우선순위의 텍스트와 연출 출력.
|
||||
4. **도감 동기화**
|
||||
- 출력된 엔딩을 계정 도감 데이터에 '해금(Unlocked)' 처리.
|
||||
- 이번 회차의 연대기 히스토리 보관.
|
||||
- 이번 회차의 [연대기](결재 결정 이력)와 [내러티브 태그](세계 상흔) 목록을 각각 분리 저장.
|
||||
|
||||
|
||||
@@ -47,16 +47,26 @@
|
||||
- `[🩸 내부 감사] (인력 소모 / 기권 유도)`
|
||||
|
||||
## 3. 오버레이 및 팝업 (Overlays & Popups)
|
||||
### 3.1. 연대기 시스템 (Chronicle Popup)
|
||||
메인 화면 좌상단의 내러티브 태그 터치 시 노출.
|
||||
- **타이틀**: 국장의 연대기
|
||||
- **본문**: 획득한 [내러티브 태그]의 스토리가 시간순으로 나열된 텍스트 목록 (세상을 망치고 구한 히스토리).
|
||||
### 3.1. 세계의 상흔 팝업 (World's Scars Popup)
|
||||
메인 화면 좌상단의 `[📖 4/8]` 카운터 터치 시 노출.
|
||||
- **타이틀**: 세계의 상흔
|
||||
- **본문**: 획득한 [내러티브 태그]의 키워드와 스니펫이 시간순으로 나열된 텍스트 목록 (세상이 어떻게 망가졌는가).
|
||||
|
||||
### 3.2. 엔딩 결산 화면 (Ending Result Screen)
|
||||
### 3.2. 연대기 팝업 (Chronicle Popup, 신규)
|
||||
메인 화면의 별도 로그 버튼 터치 시 노출. '세계의 상흔' 팝업과는 별개의 진입점·별개의 데이터.
|
||||
- **타이틀**: 국장의 연대기
|
||||
- **본문**: 국장이 결재한 카드와 좌/우/위 선택 이력이 시간순으로 나열된 결정 장부.
|
||||
```
|
||||
[일상] 오염된 장부 승인
|
||||
└ 좌(예산+): 유가족 위로금은 예비비 충당
|
||||
```
|
||||
|
||||
### 3.3. 엔딩 결산 화면 (Ending Result Screen)
|
||||
붕괴 조건 도달 시 출력되는 화면.
|
||||
- **타이틀**: `[수집한 엔딩 이름]` (예: 사임, 세계 멸망, 문명 붕괴, 정치적 탄핵 등).
|
||||
- **결과 텍스트**: 해당 엔딩에 대한 상세 서사.
|
||||
- **원인 요약**: 현재 붕괴 게이지, 특정 자원 태그, 토큰 보유 상황 등 엔딩 발동 조건 표기.
|
||||
- **이번 회차 연대기**: 회차 중 결재한 카드와 선택 이력을 요약한 '결정 요약' 블록.
|
||||
- **액션**: `[도감에 기록하기 & 다음 회차 시작]` 버튼.
|
||||
|
||||
|
||||
|
||||
138
docs/내러티브태그_시스템_작업지시서.md
Normal file
138
docs/내러티브태그_시스템_작업지시서.md
Normal file
@@ -0,0 +1,138 @@
|
||||
# 내러티브 태그 시스템 작업 지시서
|
||||
|
||||
> **범위:** (A) 연대기 ↔ 내러티브 태그 개념 분리 + (B) 내러티브 태그 스니펫 시스템 도입.
|
||||
>
|
||||
> **작업 환경:** Claude Code 세션에서 각 파일을 열어 해당 섹션을 대조 후 반영. 아래 문구는 리포 실제 텍스트와 100% 일치하지 않을 수 있으므로 의미 기준으로 수정할 것.
|
||||
>
|
||||
> **주의:** `narrative_tags.json` 콘텐츠(스니펫 등)는 자유롭게 초안·반영 가능. 단 `update_csv_tags.js` 등 **보호된 스크립트** 수정이 필요해지면 임의 실행 금지 — 근거 설명 → diff 확인 → 승인 절차를 따를 것.
|
||||
|
||||
---
|
||||
|
||||
# PART A. 연대기 ↔ 내러티브 태그 분리
|
||||
|
||||
## A-0. 개념 정의 (기준선)
|
||||
|
||||
| 구분 | 내러티브 태그 (Narrative Tag) | 연대기 (Chronicle) |
|
||||
|---|---|---|
|
||||
| 본질 | **결과** — 세계가 어떻게 되었는가 | **원인** — 내가 무엇을 어떻게 결재했는가 |
|
||||
| 성격 | 명사 · 세계의 상흔 | 동사 · 국장의 결정 로그 |
|
||||
| 구성 | 키워드 + 스니펫 + 엔딩 조건 + 페이즈 축 | 등장한 결재 카드 + 플레이어 선택(좌/우/위) 이력 (시간순) |
|
||||
| 진입점 | 좌상단 `[📖 4/8]` 카운터 → '세계의 상흔' 팝업 | 별도 로그 버튼 + 엔딩 화면 '이번 회차 결정 요약' |
|
||||
|
||||
**한 줄 기억표:** 태그는 스토리의 '무엇', 연대기는 '어떻게'.
|
||||
**스니펫은 태그 쪽에 귀속된다** (태그의 살). 연대기와는 무관.
|
||||
|
||||
## A-1. 시스템 기획서 — `Project SS 서사형 덱빌딩 게임 시스템 기획서.md`
|
||||
|
||||
1. 내러티브 태그 항목에서 연대기 서술을 **제거**. 태그 항목엔 스토리 전달(스니펫) + 엔딩 조건 + 페이즈 축만 남김.
|
||||
2. 시스템 목록에 **독립 항목** 신설:
|
||||
> **연대기 (Chronicle):** 국장이 결재한 카드와 그에 대한 선택(좌/우/위)을 시간순으로 기록한 결정 장부. 내러티브 태그가 '세계의 결과'라면, 연대기는 '국장의 원인 이력'이다.
|
||||
|
||||
## A-2. 스토리 바이블 — `Project SS 스토리 바이블 v3.0.md`
|
||||
|
||||
2장 "연대기의 편찬(The Chronicle)" 테마를 '결정 장부' 관점으로 재서술:
|
||||
> 국장의 모든 결재는 되돌릴 수 없는 기록으로 남는다. 세계의 상흔(내러티브 태그)이 '무엇이 벌어졌는가'를 말한다면, 연대기는 '누가 그렇게 결정했는가'를 말한다. 플레이어는 회차가 끝난 뒤 이 장부를 되짚으며, 멸망이 사고가 아니라 자신의 서명들이 쌓인 결과였음을 마주한다.
|
||||
|
||||
## A-3. 텍스트 와이어프레임 — `ProjectSS 텍스트 와이어프레임.md`
|
||||
|
||||
1. **3.1 팝업 2종 분리:**
|
||||
- '세계의 상흔' 팝업: `[📖 4/8]` 터치. 본문 = 태그 키워드 + 스니펫 시간순.
|
||||
- '연대기' 팝업(신규): 별도 로그 버튼. 본문 = 결재 카드 + 선택 이력 시간순.
|
||||
```
|
||||
[일상] 오염된 장부 승인
|
||||
└ 좌(예산+): 유가족 위로금은 예비비 충당
|
||||
```
|
||||
2. **3.2 엔딩 화면:** '이번 회차 연대기(결정 요약)' 블록 추가.
|
||||
|
||||
## A-4~A-7. 나머지 문서 (한두 줄 수정)
|
||||
|
||||
- **비전 문서 4-C:** 연대기 = 결재 카드·선택의 시간순 결정 장부. 세계 상태는 태그가 담당(분리).
|
||||
- **PRD 5장:** 연대기(결재 결정 이력) / 내러티브 태그(엔딩·세계 상태) 각주 분리.
|
||||
- **유저플로우 4.4:** 연대기와 태그 목록을 **분리 저장**으로 명시.
|
||||
- **개발순서 Phase 4:** 연대기 기능과 태그 뷰('세계의 상흔')를 별도 UI로 분리 구현 명시.
|
||||
|
||||
---
|
||||
|
||||
# PART B. 내러티브 태그 스니펫 시스템
|
||||
|
||||
> 태그 키워드만으로는 서사 체감이 약함. 각 태그에 1~2문장 결과 보고서 스니펫을 붙여 살을 부여한다. 그레이박스 원칙 안에서 순수 텍스트로 검증 가능.
|
||||
|
||||
## B-1. 스타일 가이드 (확정)
|
||||
|
||||
**톤 3원칙**
|
||||
1. **거리 유지** — 감정 형용사·판단·괴수 외형 묘사 금지. 오직 기록·숫자·행정 용어.
|
||||
2. **숫자 하나** — 스니펫마다 구체 숫자 정확히 1개(예: 14명, 47건, 15%). 냉혹한 비용편익의 앵커.
|
||||
3. **인정 유예** — 스니펫은 위로·의미 부여를 하지 않는다. 인정(감동)은 엔딩/연대기 회고의 몫으로 미룬다.
|
||||
|
||||
**포맷 골격**
|
||||
`사실 진술 → 행정적 뒤틀림 → [처리 상태]로 종결`
|
||||
- **마침 도장(각인층):** 모든 스니펫은 결재 상태어로 끝난다(처리됨 / 승인됨 / 종결됨 / 이관됨 / 반려됨 / 미반영됨 등). 이 게임만의 문장 지문.
|
||||
|
||||
**유형 2종 — 비율 약 7:3**
|
||||
- **시스템형(70%):** 시스템의 부조리가 주인공.
|
||||
- **사람형(30%):** 익명의 개인이 데이터 이상치로만 존재('숨겨진 헌신'). 엔딩/변주 콜백용.
|
||||
|
||||
> **설계 근거(참고 문서에서 이식):** 감동 공식(거리+숨겨진 헌신+인정+의미의 역류) — 거리는 문체로 확보, 헌신은 사람형 스니펫에 매설, 인정은 엔딩에서 역류. 로그라이크 루프가 이 역류를 회차마다 반복시킨다.
|
||||
|
||||
## B-2. 스키마 변경 (승인 필요 항목)
|
||||
|
||||
각 태그 객체에 두 필드 추가:
|
||||
|
||||
```json
|
||||
{
|
||||
"id": "quarantine_breach",
|
||||
"keyword": "격리 붕괴",
|
||||
"snippet": "격리동 전력 계통에 원인 불명의 수동 복구 기록 1건. 해당 시간대 출입 승인자 없음. 요원 K-771, 실종자 명단으로 이관됨.",
|
||||
"snippet_type": "human",
|
||||
"phase": 2
|
||||
}
|
||||
```
|
||||
|
||||
- `snippet` (string): 태그 스니펫 본문.
|
||||
- `snippet_type` ("system" | "human"): 콜백 로직용. 엔딩/연대기 회고에서 해당 회차의 human 태그를 골라 "그때 K-771이…" 식 콜백 훅으로 사용.
|
||||
|
||||
> `narrative_tags.json` 직접 수정은 가능. 단 이 파일이 `update_csv_tags.js`로 **생성/가공**되는 구조라면 스크립트에 신규 컬럼 반영이 필요하므로, 그 경우 diff 확인 → 승인 후 진행.
|
||||
|
||||
## B-3. 샘플 배치 8종 (검토용 기준선)
|
||||
|
||||
**시스템형 (5)**
|
||||
|
||||
| 태그 | 스니펫 |
|
||||
|---|---|
|
||||
| `[실종]` | 7구역 정수장 근무자 14명 미귀가. 근태 시스템상 전원 '정상 퇴근'으로 **처리됨**. |
|
||||
| `[가스 폭발]` | 언론 브리핑상 '노후 배관 폭발'로 발표. 유가족 위로금 항목은 예비비로 충당, 회계 **승인됨**. |
|
||||
| `[매수]` | 3분기 감사 중 국장 명의 차명 계좌 3건 인지. 담당 조사관 해외 연수 발령으로 조사 **중단됨**. |
|
||||
| `[차원 균열]` | 12구역 상공 '접힘 현상', 위성 미검출. 목격 진술 47건 전원 상이. 관측 장비 오류로 **종결됨**. |
|
||||
| `[마녀사냥]` | '이웃이 변이체' 신고 폭증. 실제 변이 확인 0건, 자경단 폭행 사망 3건. 통계 비공개 **결정됨**. |
|
||||
|
||||
**사람형 (3) — 숨겨진 헌신**
|
||||
|
||||
| 태그 | 스니펫 |
|
||||
|---|---|
|
||||
| `[격리 붕괴]` | 격리동 전력 계통에 원인 불명의 수동 복구 기록 1건. 해당 시간대 출입 승인자 없음. 요원 K-771, 실종자 명단으로 **이관됨**. |
|
||||
| `[결손 보전]` | 은폐 자금 결손분 340만, 익명 입금으로 충당. 입금자 추적 '불필요' 판정. 계정 **종결됨**. |
|
||||
| `[초과 근무]` | 작전부 잔업 신청 반려 건수 218건. 반려된 요원 전원 무급으로 현장 잔류 확인. 근태 기록 **미반영됨**. |
|
||||
|
||||
## B-4. 확정 대기 (스타일 가이드 완성 전 결정 필요)
|
||||
|
||||
- [ ] **사람형 헌신 농도:** ⑥~⑧을 더 은근하게 vs 더 드러나게.
|
||||
- [ ] **마침 도장 어휘:** 자유 어휘 허용 vs 고정 리스트로 관리(처리됨/승인됨/종결됨/이관됨/반려됨/미반영됨…).
|
||||
|
||||
이 둘이 정해지면 스타일 가이드 확정 → 나머지 태그를 다음 배치들로 진행.
|
||||
|
||||
---
|
||||
|
||||
# 통합 체크리스트
|
||||
|
||||
**Part A (개념 분리)**
|
||||
- [ ] 시스템 기획서: 연대기 독립 항목 승격, 태그 항목 정리
|
||||
- [ ] 스토리 바이블: "연대기의 편찬" 결정 장부 관점 재서술
|
||||
- [ ] 와이어프레임: 팝업 2종 분리 + 엔딩 결정 요약 블록
|
||||
- [ ] 비전/PRD/유저플로우/개발순서: 정의 분리 및 분리 저장/분리 구현 반영
|
||||
|
||||
**Part B (스니펫)**
|
||||
- [ ] 스타일 가이드 확정(B-4 두 항목 결정)
|
||||
- [ ] `narrative_tags.json` 스키마에 `snippet`, `snippet_type` 추가
|
||||
- [ ] (해당 시) `update_csv_tags.js` 신규 컬럼 반영 — diff 승인 후
|
||||
- [ ] 샘플 8종 반영 → 검토 → 나머지 태그 배치 확장
|
||||
- [ ] 스토리 바이블 톤 앤 매너에 스니펫 3원칙·포맷 규칙 문서화(선택)
|
||||
Reference in New Issue
Block a user