9148c358d0
Topic_Agent/Topic_Blog/Topics/Topics_Biz/Topics_Meeting/Topics_Rag의 마크다운 지식 문서를 Topic_General/Topic_Programming/Topic_Graphic/Topic_Business 4개 카테고리로 재분류. - 중복 제거: frontmatter의 status:duplicate/merged + duplicate_of/redirect_to 필드로 자기 자신을 중복으로 선언한 리다이렉트 stub 1032개 제거, 완전 동일 내용 파일 472개 제거, 동일 파일명·다른 내용 충돌 시 더 큰(완전한) 버전만 유지(162개 제거) — 총 1639개 중복 제거. - 분류: 폴더 단위로 명확한 항목(AI_and_ML/Coding/Architecture 등 → Programming, Comfyui/Visual_Effects → Graphic, Topics_Biz/Topics_Meeting/사업 등 → Business, Poetic_Blog_Writing/창의성/Game_Design 등 → General)은 폴더 우선순위로, 나머지 혼재 폴더(Topic_Agent/Topic_Blog/Topics 루트/Thinking & Reasoning/Other/UI_UX_Assets)는 title/tags 키워드 스코어링으로 파일 단위 분류(불명확한 경우 General로 폴백). 원본 폴더명은 "From_*" 서브폴더로 보존해 추적 가능성 유지. - 최종 배치: Programming 2784 / General 1608 / Graphic 285 / Business 249 = 4926개 문서. - 에이전트 운영 상태(.astra/.agent/.obsidian/sessions/memory/_company/docs/lessons/_shared/src)는 지식 콘텐츠가 아니므로 재분류 대상에서 제외하고 원위치 유지. - Topics/Topic_email(상위 보호 폴더 Topic_email과 파일명 100% 중복) 삭제 — 보호 폴더 자체는 미변경. - 완전히 비게 된 Topic_Agent/Topic_Blog/Topics_Biz/Topics_Rag 폴더 제거.
6.4 KiB
6.4 KiB
id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, verification_status, tags, raw_sources, last_reinforced, github_commit, tech_stack
| id | title | category | status | canonical_id | aliases | duplicate_of | source_trust_level | confidence_score | verification_status | tags | raw_sources | last_reinforced | github_commit | tech_stack | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| wiki-2026-0508-위험과-보상-risks-and-rewards | 위험과 보상(Risks and Rewards) | 10_Wiki/Topics | verified | self |
|
none | A | 0.9 | applied |
|
2026-05-10 | pending |
|
위험과 보상(Risks and Rewards)
매 한 줄
"매 player choice 매 risk-reward tension 의 산물". 매 1980s arcade era (Pac-Man power pellet hunt, Galaga fighter capture) 부터 매 2026 modern roguelite (Hades heat system, Balatro stake escalation) 까지 매 동일한 design pillar 의 작동 — 매 player 에게 매 "더 큰 reward 의 위해 매 더 큰 risk 매 감수할 것인가?" 의 매 질문 의 제시.
매 핵심
매 R&R curve shape
- 매 linear: risk 2배 = reward 2배. 매 보장적 매 boring.
- 매 convex (accelerating): risk 2배 = reward 4배+. 매 high-skill push 매 보상.
- 매 concave (diminishing): risk 2배 = reward 1.3배. 매 conservative play 매 우대.
- 매 step function: threshold 매 도달 시 매 jump. 매 commitment 매 design.
매 expected value (EV) framework
- EV = Σ(outcome × probability)
- 매 design goal: 매 EV(risky) > EV(safe) by ~10-20% 매. 매 너무 크면 매 risk 매 obvious choice. 매 너무 작으면 매 risk 매 trap.
- 매 variance 매 player perception 의 영향 — 매 same EV 라도 매 high-variance 매 더 위험적 매 felt.
매 응용
- 매 Hades heat: +1 heat = run 의 +X% 의 어려움, +Y% 의 reward bonus. 매 player chooses pace.
- 매 Balatro stake: ante 매 escalation curve 매 explicit risk dial.
- 매 Diablo 4 Pit tier: timer 매 압박 의 high-tier 매 push 시 매 huge loot.
- 매 PoE Atlas: map mods (more rare/magic) 매 increase difficulty + drop quality.
- 매 Tarkov raid: extract early (safe loot) vs hunt boss (rare items, PvP risk).
💻 패턴
Linear vs convex reward curve
// Linear: predictable, low excitement
const linearReward = (risk: number) => 100 * risk;
// Convex: high-skill players get exponential reward
const convexReward = (risk: number) => 100 * Math.pow(risk, 1.6);
// Concave: protect casual players from punishment-snowball
const concaveReward = (risk: number) => 100 * Math.pow(risk, 0.7);
// Step: clear "go/no-go" decisions
const stepReward = (risk: number) =>
risk < 0.3 ? 50 : risk < 0.7 ? 200 : 1000;
Expected value calculator
type Outcome = { value: number; probability: number };
function expectedValue(outcomes: Outcome[]): number {
return outcomes.reduce((sum, o) => sum + o.value * o.probability, 0);
}
// Design check: risky path should EV-dominate by 10-20%
const safe: Outcome[] = [{ value: 100, probability: 1.0 }];
const risky: Outcome[] = [
{ value: 300, probability: 0.4 },
{ value: 0, probability: 0.6 },
];
console.log(expectedValue(safe)); // 100
console.log(expectedValue(risky)); // 120 — 20% premium for variance
Variance-aware reward
// Risk-averse player simulation: subtract σ * λ from EV
function utility(outcomes: Outcome[], lambda = 0.3): number {
const ev = expectedValue(outcomes);
const variance = outcomes.reduce(
(s, o) => s + o.probability * (o.value - ev) ** 2, 0
);
return ev - lambda * Math.sqrt(variance);
}
Hades heat system pattern
public class HeatModifier {
public string Name;
public float DifficultyDelta; // +0.15 enemy HP
public float RewardMultiplier; // +0.10 darkness
}
public class RunConfig {
public List<HeatModifier> Active = new();
public float TotalReward => 1f + Active.Sum(h => h.RewardMultiplier);
public float TotalDifficulty => 1f + Active.Sum(h => h.DifficultyDelta);
// Player picks which axis to dial: more enemies vs tougher boss vs less heal
}
Push-your-luck (Balatro/Slay the Spire elite)
class PushYourLuck {
pot = 0;
rounds = 0;
bustChance = 0.15;
step() {
this.rounds++;
this.bustChance += 0.05; // escalating
if (Math.random() < this.bustChance) return { result: "bust", payout: 0 };
this.pot += 100 * Math.pow(1.4, this.rounds);
return { result: "continue", pot: this.pot };
}
cashOut() { return { result: "cashed", payout: this.pot }; }
}
Asymmetric punishment (Tarkov-style)
// Death = lose carried gear; success = keep + bonus
function raidOutcome(survived: boolean, lootValue: number, gearValue: number) {
return survived ? { net: lootValue } : { net: -gearValue };
}
// Design: gearValue ≈ 0.5 * expected lootValue (so EV stays positive but tense)
매 결정 기준
| 상황 | Approach |
|---|---|
| 매 player skill 매 wide range | concave curve (cap snowball) |
| 매 high-skill audience (roguelike vet) | convex curve |
| 매 binary commit decisions | step function |
| 매 short session loop | step (clear payoff) |
| 매 long session escalation | continuous + variance |
기본값: 매 mildly convex (exponent ~1.3-1.5) + 매 EV premium 매 15% 매 risky path 의 매 적용.
🔗 Graph
- 부모: Game Economy · Decision Making
- 변형: 위험과 보상 구조(Structures of Risks and Rewards)
- 응용: 핀치 포인트(Pinch Point)
- Adjacent: Loss Aversion
🤖 LLM 활용
언제: 매 economy / progression / encounter 매 design 시 매 player choice tension 의 calibrate 시. 언제 X: 매 narrative-only 매 walking sim (no choice stakes) — 매 R&R framework 매 misapplied.
❌ 안티패턴
- 매 risk without reward: 매 die 시 매 lose progress, 매 win 시 매 nothing extra. 매 player 매 leave.
- 매 reward without risk: 매 free 의 grind 의 best gear. 매 boring.
- 매 hidden EV: 매 player 매 calculate 의 X. 매 trap design (slot machine illusion) — 매 ethical 의 X.
- 매 binary cliff: 매 EV jump 매 too sharp 매 → 매 only one viable path.
🧪 검증 / 중복
- Verified (Schell Art of Game Design, Adams Fundamentals of Game Design).
- 매 modern roguelite 매 case studies (Hades, Balatro, Slay the Spire).
- 신뢰도 A.
🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — R&R curve types + EV framework + working code patterns |