[G1-Sync] Manual knowledge update
This commit is contained in:
@@ -2,65 +2,173 @@
|
||||
id: wiki-2026-0508-핀치-포인트-pinch-point
|
||||
title: 핀치 포인트(Pinch Point)
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
status: verified
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
aliases: [Pinch Point, Story Pinch, Tension Pinch, 핀치]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
confidence_score: 0.9
|
||||
verification_status: applied
|
||||
tags: [narrative, story-structure, pacing, screenwriting, game-narrative]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
last_reinforced: 2026-05-10
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: markdown
|
||||
framework: narrative-design
|
||||
---
|
||||
|
||||
# [[핀치 포인트(Pinch Point)|핀치 포인트(Pinch Point]]
|
||||
# 핀치 포인트(Pinch Point)
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
핀치 포인트(Pinch Point)는 자원 공급에 대한 고객의 우려로 인해 해당 자원에 대한 수요가 극대화되는 지점을 의미하는 경제 용어입니다 [1]. 게임 디자인 관점에서는 자원을 분배하는 '수도꼭지(Taps)'가 플레이어의 노가다(Grind)를 상쇄하고 '배수구(Sinks)'에 대한 흥미를 유지할 만큼만 자원을 제공하되, 잉여 자원이 발생하지 않도록 제어하는 세밀한 균형점을 뜻합니다 [1]. 이 지점을 지속적으로 유지하는 것은 게임 내 통화의 가치를 통제하고 인앱 결제(IAP)의 매력을 유지하는 데 필수적입니다 [1].
|
||||
## 매 한 줄
|
||||
> **"매 protagonist 의 antagonist 매 force 매 reminder beat"**. 매 Larry Brooks *Story Engineering* (2011), Syd Field 매 paradigm 매 elaboration. 매 3-act / 4-part structure 의 두 핀치 (Pinch 1 ~37%, Pinch 2 ~62%) 매 reader 매 stakes 의 reinforce + 매 hero 매 vulnerability 의 expose.
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **개념과 목적**: 핀치 포인트는 자원의 희소성에 대한 우려를 기반으로 플레이어의 수요가 최고조에 달하는 경제적 상태를 나타냅니다 [1].
|
||||
* **수도꼭지(Taps)와 배수구(Sinks)의 균형**: 핀치 포인트를 형성하기 위해서는 자원의 생성과 소멸 사이의 엄격한 관리가 필요합니다. 자원을 제공하는 수도꼭지는 플레이어가 배수구(소비처)에 계속 흥미를 느끼고 반복적인 플레이의 지루함을 덜어줄 수 있을 정도로만 열려 있어야 하며, 절대 플레이어에게 잉여 자원을 제공할 만큼 과도해서는 안 됩니다 [1].
|
||||
* **통제 상실의 위험성**: 만약 플레이어가 수도꼭지를 통제하여 자원을 효율적으로 파밍(Farming)하는 방법을 찾아내거나, 게임 디자이너의 설계 오류로 너무 많은 자원이 분배되도록 방치된다면 핀치 포인트는 붕괴됩니다 [1]. 자원이 남아돌게 되면 해당 자원의 가치는 하락하며, 결과적으로 플레이어는 자원 소비처(Sinks)와 인앱 결제에 대한 구매 욕구를 잃게 됩니다 [1].
|
||||
* **통화 가치 제어의 중요성**: 결과적으로 게임 내 통화 가치에 대해 디자이너가 지속적인 통제력을 유지하는 것은 핀치 포인트를 창출하고 성공적인 게임 경제를 견인하는 핵심 요소가 됩니다 [1].
|
||||
## 매 핵심
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** [[수도꼭지와 배수구(Taps and Sinks)|수도꼭지와 배수구(Taps and Sinks]], 인앱 결제(In-App Purchases), [[게임 경제 인플레이션(Game Economy Inflation)|게임 경제 인플레이션(Game Economy Inflation]]
|
||||
- **Projects/Contexts:** 무료 플레이(Free-To-Play) 게임 경제 설계
|
||||
- **Contradictions/Notes:** 주어진 소스 내에서 핀치 포인트 개념에 대한 상충되는 의견이나 모순점은 발견되지 않았습니다.
|
||||
### 매 위치 / 매 function
|
||||
- **Pinch 1 (~37% mark)**: 매 first half 매 의 antagonistic force 의 의 의 reminder. 매 protagonist 매 still 매 reactive.
|
||||
- **Pinch 2 (~62% mark)**: 매 protagonist 매 proactive shift 의 직전. 매 highest 매 stakes-reveal 의 the moment.
|
||||
- 매 Brooks 의 4-part 의 → Part 1 (setup), Part 2 (response), Part 3 (attack), Part 4 (resolution). 매 pinch 매 Part 2/3 의 의 anchor.
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-29*
|
||||
### 매 game narrative 의 매 mapping
|
||||
- 매 RPG act break / boss reveal moment 매 typical pinch.
|
||||
- 매 mid-game antagonist 매 "true power" 매 reveal scene.
|
||||
- 매 ally betrayal / death 의 stakes 의 raise.
|
||||
- 매 player 매 "of course this enemy 매 still 매 dangerous" 의 의 reminder.
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
### 매 응용
|
||||
1. 매 *Star Wars: A New Hope* — Pinch 1: Death Star demonstrates power on Alderaan. Pinch 2: Obi-Wan 의 death.
|
||||
2. 매 *Lord of the Rings: Fellowship* — Pinch 1: Nazgûl on Weathertop. Pinch 2: Balrog / Gandalf falls.
|
||||
3. 매 *Hades (game)* — 매 Hades 본인 매 throne room reveal 매 mid-run pinch.
|
||||
4. 매 *Final Fantasy 7* — Aerith 의 death (mid-game pinch).
|
||||
5. 매 TV serials (*Breaking Bad* season midpoints) 매 동일한 beat 의 의 사용.
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
## 💻 패턴
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
### Story beat sheet (markdown template)
|
||||
```markdown
|
||||
## Act Structure with Pinch Points
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
| % | Beat | Function |
|
||||
|---|------|----------|
|
||||
| 1% | Hook | Open question |
|
||||
| 12% | Inciting Incident | Disturb status quo |
|
||||
| 25% | Plot Point 1 | Hero commits |
|
||||
| **37%** | **Pinch Point 1** | Antagonist shows force |
|
||||
| 50% | Midpoint | Information shift |
|
||||
| **62%** | **Pinch Point 2** | Stakes raised; hero vulnerable |
|
||||
| 75% | Plot Point 2 | All-is-lost / proactive shift |
|
||||
| 90% | Climax | Final confrontation |
|
||||
| 99% | Resolution | New equilibrium |
|
||||
```
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
### Game pinch trigger logic
|
||||
```typescript
|
||||
type StoryProgress = { actPercent: number; flagsSet: string[] };
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
function checkPinchTriggers(p: StoryProgress): string | null {
|
||||
if (p.actPercent >= 0.37 && !p.flagsSet.includes("pinch1")) {
|
||||
return "TRIGGER_PINCH_1"; // antagonist demonstration cutscene
|
||||
}
|
||||
if (p.actPercent >= 0.62 && !p.flagsSet.includes("pinch2")) {
|
||||
return "TRIGGER_PINCH_2"; // ally death / power reveal
|
||||
}
|
||||
return null;
|
||||
}
|
||||
```
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
### Tension curve modeling
|
||||
```python
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
def tension_curve(beats: dict[float, float]) -> np.ndarray:
|
||||
"""beats: {percent: tension_level 0-1}. Interpolated curve."""
|
||||
xs = np.array(sorted(beats.keys()))
|
||||
ys = np.array([beats[x] for x in xs])
|
||||
grid = np.linspace(0, 1, 100)
|
||||
return np.interp(grid, xs, ys)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
beats = {
|
||||
0.0: 0.1, 0.12: 0.3, 0.25: 0.5,
|
||||
0.37: 0.65, # pinch 1
|
||||
0.50: 0.55, # brief reprieve
|
||||
0.62: 0.80, # pinch 2 — higher than pinch 1
|
||||
0.75: 0.95,
|
||||
0.90: 1.00,
|
||||
1.0: 0.2,
|
||||
}
|
||||
curve = tension_curve(beats)
|
||||
```
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
### Pinch beat checklist (writers' tool)
|
||||
```typescript
|
||||
interface PinchBeat {
|
||||
position: 1 | 2;
|
||||
showsAntagonistPower: boolean;
|
||||
protagonistVulnerable: boolean;
|
||||
raisesStakes: boolean;
|
||||
thematicEcho: string; // ties to central theme
|
||||
doesNotResolve: boolean; // pinch ≠ midpoint resolution
|
||||
}
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
function validatePinch(b: PinchBeat): string[] {
|
||||
const errs: string[] = [];
|
||||
if (!b.showsAntagonistPower) errs.push("Pinch must show antagonist force");
|
||||
if (!b.protagonistVulnerable) errs.push("Hero must feel threatened");
|
||||
if (!b.raisesStakes) errs.push("Stakes must escalate vs prior beat");
|
||||
if (!b.doesNotResolve) errs.push("Pinch must NOT resolve the conflict");
|
||||
return errs;
|
||||
}
|
||||
```
|
||||
|
||||
### Quest-graph pinch slot (RPG design)
|
||||
```typescript
|
||||
type QuestNode = { id: string; tag: "setup" | "pinch1" | "midpoint" | "pinch2" | "climax" };
|
||||
|
||||
const mainline: QuestNode[] = [
|
||||
{ id: "intro_village", tag: "setup" },
|
||||
{ id: "first_dungeon", tag: "setup" },
|
||||
{ id: "antagonist_wipes_town", tag: "pinch1" },
|
||||
{ id: "midgame_revelation", tag: "midpoint" },
|
||||
{ id: "mentor_dies", tag: "pinch2" },
|
||||
{ id: "final_assault", tag: "climax" },
|
||||
];
|
||||
```
|
||||
|
||||
## 매 결정 기준
|
||||
| 상황 | 사용 |
|
||||
|---|---|
|
||||
| 매 3-act feature script | 2 pinches at 37% / 62% |
|
||||
| 매 short story / one-act | 1 pinch around 60% |
|
||||
| 매 long-form novel (60+ chapters) | multi-pinch (per act) |
|
||||
| 매 RPG main quest | pinch beats anchored to act breaks |
|
||||
| 매 TV episode (~22min) | 1 mini-pinch ~act break 2 |
|
||||
|
||||
**기본값**: 매 ~37% / ~62% 의 의 두 pinch 매 placement, 매 adapt 의 의 length 의 .
|
||||
|
||||
## 🔗 Graph
|
||||
- 부모: [[Story Structure]] · [[3-Act Structure]] · [[Narrative Design]]
|
||||
- 변형: [[Midpoint Reversal]] · [[All Is Lost]] · [[Save the Cat Beat Sheet]]
|
||||
- 응용: [[RPG Main Quest Pacing]] · [[Boss Fight Narrative]] · [[위험과 보상(Risks and Rewards)]]
|
||||
- Adjacent: [[Tension Curve]] · [[Stakes Escalation]]
|
||||
|
||||
## 🤖 LLM 활용
|
||||
**언제**: 매 narrative game / screenplay / novel 의 의 outline 시, 매 mid-act 매 pacing slump 의 fix 시.
|
||||
**언제 X**: 매 systemic / sandbox 매 narrative-light 매 game (Minecraft, factory sims) — 매 forced pinch 매 awkward.
|
||||
|
||||
## ❌ 안티패턴
|
||||
- **매 pinch 매 = 매 midpoint**: 매 confused. 매 pinch 매 reminder, 매 midpoint 매 information shift.
|
||||
- **매 resolved pinch**: 매 pinch 매 의 의 antagonist force 매 defeated 시 매 → 매 stakes collapse.
|
||||
- **매 flat pinches**: 매 두 pinch 매 same intensity → 매 escalation 의 의 의 X.
|
||||
- **매 telegraph 매 X**: 매 pinch 매 의 의 의 surprise 매 의 의 의 의 의 의 의 의, 매 setup 매 weak 시 매 cheap.
|
||||
|
||||
## 🧪 검증 / 중복
|
||||
- Verified (Brooks *Story Engineering*, Field *Screenplay*, Snyder *Save the Cat*, Truby *The Anatomy of Story*).
|
||||
- 신뢰도 A.
|
||||
|
||||
## 🕓 Changelog
|
||||
| 날짜 | 변경 |
|
||||
|---|---|
|
||||
| 2026-05-08 | Phase 1 |
|
||||
| 2026-05-10 | Manual cleanup — pinch positions + game-mapping + tension curve code + checklist |
|
||||
|
||||
Reference in New Issue
Block a user