docs(10_Wiki): 위키 전체 재구성 — Topic_* 폴더를 4개 카테고리로 통합 + 대규모 중복 제거
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 폴더 제거.
This commit is contained in:
@@ -0,0 +1,181 @@
|
||||
---
|
||||
id: wiki-2026-0508-부분-유료화-free-to-play
|
||||
title: 부분 유료화 (Free-to-Play)
|
||||
category: 10_Wiki/Topics
|
||||
status: verified
|
||||
canonical_id: self
|
||||
aliases: [Free-to-Play, F2P, Freemium, 부분유료화, 프리투플레이]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.9
|
||||
verification_status: applied
|
||||
tags: [game-design, monetization, business-model, economy]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-10
|
||||
github_commit: pending
|
||||
tech_stack:
|
||||
language: language-agnostic
|
||||
framework: monetization
|
||||
---
|
||||
|
||||
# 부분 유료화 (Free-to-Play)
|
||||
|
||||
## 매 한 줄
|
||||
> **"매 무료 entry, 매 in-game purchase 의 통한 monetize."**. 2010s mobile gaming 의 explosion 의 driver — 매 Candy Crush, Clash of Clans, Genshin Impact, Fortnite 의 backbone. 2026 의 매 cosmetics-only (Fortnite, Valorant) 와 매 progression-gated (gacha) 의 split — 매 EU/KR regulation (gambling disclosure, 매 odds publication) 의 매 design 의 reshape.
|
||||
|
||||
## 매 핵심
|
||||
|
||||
### 매 monetization 의 종류
|
||||
- **Cosmetic**: 매 skin · emote · nameplate — 매 power 의 X.
|
||||
- **Battle pass**: 매 seasonal progression — 매 paid + free track.
|
||||
- **Gacha / loot box**: 매 randomized reward — 매 rarity tier.
|
||||
- **Energy / wait gate**: 매 stamina · timer — 매 pay-to-skip.
|
||||
- **Pay-to-win (P2W)**: 매 power 의 직접 sell — 매 controversial.
|
||||
- **Subscription**: 매 monthly perk (Apple Arcade, Game Pass — F2P 의 hybrid).
|
||||
|
||||
### 매 metric
|
||||
- **ARPU**: average revenue per user.
|
||||
- **ARPPU**: average revenue per paying user.
|
||||
- **Conversion rate**: 매 free → paying %.
|
||||
- **Whale concentration**: 매 top 1% 의 50%+ revenue 의 contribute (typical).
|
||||
- **D1/D7/D30 retention**: 매 monetization 의 prerequisite.
|
||||
|
||||
### 매 응용
|
||||
1. 매 economy design — 매 sink/source balance 의 inflation 의 prevent.
|
||||
2. 매 A/B test — 매 price point · 매 offer cadence.
|
||||
3. 매 ethical disclosure — 매 gacha odds publication (KR · CN law).
|
||||
|
||||
## 💻 패턴
|
||||
|
||||
### Pricing tier (server config)
|
||||
```yaml
|
||||
products:
|
||||
- id: gem_pack_small
|
||||
price_usd: 4.99
|
||||
gems: 500
|
||||
bonus: 0
|
||||
- id: gem_pack_medium
|
||||
price_usd: 19.99
|
||||
gems: 2200 # 매 10% bonus
|
||||
bonus: 200
|
||||
badge: "best_value"
|
||||
- id: gem_pack_large
|
||||
price_usd: 99.99
|
||||
gems: 13000 # 매 30% bonus, whale tier
|
||||
bonus: 3000
|
||||
```
|
||||
|
||||
### Gacha pull with pity
|
||||
```python
|
||||
import random
|
||||
|
||||
def pull(banner, pity_counter):
|
||||
rates = banner.rates # {"5★": 0.006, "4★": 0.051, "3★": 0.943}
|
||||
if pity_counter >= banner.hard_pity: # 매 90 pulls 의 5★ guarantee
|
||||
return banner.featured_5star, 0
|
||||
r = random.random()
|
||||
if r < rates["5★"]: return random_5star(), 0
|
||||
if r < rates["5★"] + rates["4★"]: return random_4star(), pity_counter + 1
|
||||
return random_3star(), pity_counter + 1
|
||||
```
|
||||
|
||||
### Battle pass progression
|
||||
```typescript
|
||||
interface BattlePass {
|
||||
season: number;
|
||||
currentXP: number;
|
||||
tiers: Tier[]; // 매 100 tiers
|
||||
ownsPaid: boolean;
|
||||
}
|
||||
|
||||
function unlockedRewards(bp: BattlePass): Reward[] {
|
||||
const tier = Math.floor(bp.currentXP / 1000);
|
||||
return bp.tiers.slice(0, tier).flatMap(t =>
|
||||
bp.ownsPaid ? [t.free, t.paid] : [t.free]
|
||||
);
|
||||
}
|
||||
```
|
||||
|
||||
### Energy/stamina regen
|
||||
```typescript
|
||||
function currentStamina(user: User, now: Date): number {
|
||||
const elapsed = (now.getTime() - user.lastStaminaUpdate.getTime()) / 1000;
|
||||
const regen = Math.floor(elapsed / 360); // 매 6 min/point
|
||||
return Math.min(user.stamina + regen, user.maxStamina);
|
||||
}
|
||||
// pay 의 instant refill: refill_cost = 50 gems
|
||||
```
|
||||
|
||||
### Whale-friendly bundle
|
||||
```yaml
|
||||
bundle_starter:
|
||||
one_time_only: true
|
||||
price_usd: 0.99
|
||||
contents:
|
||||
- hero_card_5star: 1
|
||||
- gems: 1000
|
||||
rationale: "low-friction first purchase — 매 conversion driver"
|
||||
```
|
||||
|
||||
### Disclosure (KR/CN law compliance)
|
||||
```json
|
||||
{
|
||||
"banner": "limited_5star_featured",
|
||||
"rates_disclosed": {
|
||||
"5★_featured": 0.0030,
|
||||
"5★_other": 0.0030,
|
||||
"4★_any": 0.0510,
|
||||
"3★_any": 0.9430
|
||||
},
|
||||
"pity_disclosed": { "soft_pity_at": 75, "hard_pity_at": 90 }
|
||||
}
|
||||
```
|
||||
|
||||
### Live ops calendar (offers)
|
||||
```yaml
|
||||
events:
|
||||
- id: "weekend_sale"
|
||||
cadence: "Fri 18:00 → Sun 23:59 KST"
|
||||
discount: 0.20
|
||||
- id: "comeback_offer"
|
||||
trigger: "user.daysSinceLastSession >= 7"
|
||||
contents: [gems: 500, hero_token: 1]
|
||||
```
|
||||
|
||||
## 매 결정 기준
|
||||
| 상황 | Approach |
|
||||
|---|---|
|
||||
| 매 competitive PvP | Cosmetic-only — 매 P2W 의 player exodus 의 cause |
|
||||
| 매 RPG/gacha audience | Banner + pity + battle pass |
|
||||
| 매 casual puzzle | Energy gate + remove-ad IAP |
|
||||
| 매 EU/KR market | Disclosure 의 mandatory · 매 gambling-like 의 minor restriction |
|
||||
| 매 retention < D7 | 매 monetize 의 premature — 매 retention 의 fix first |
|
||||
|
||||
**기본값**: 매 cosmetic + battle pass — 매 controversy 의 minimize, 매 long-term retention 의 protect.
|
||||
|
||||
## 🔗 Graph
|
||||
- 부모: [[Game_Monetization]]
|
||||
- 변형: [[Freemium]]
|
||||
- 응용: [[Gacha]] · [[Loot_Box]] · [[LiveOps]]
|
||||
- Adjacent: [[Game_Economy]] · [[Player_Retention]]
|
||||
|
||||
## 🤖 LLM 활용
|
||||
**언제**: 매 economy simulation — 매 sink/source balance 의 model, 매 offer copy 의 generate.
|
||||
**언제 X**: 매 ethical decision — 매 manipulative dark pattern 의 design 의 X.
|
||||
|
||||
## ❌ 안티패턴
|
||||
- **Pay-to-win in PvP**: 매 competitive integrity 의 destroy → 매 churn.
|
||||
- **Hidden gacha rates**: 매 KR/CN illegal · 매 trust 의 destroy.
|
||||
- **Inflation**: 매 currency source > sink — 매 economy 의 break.
|
||||
- **Monetize early**: 매 D1 popup 의 IAP — 매 retention 의 tank.
|
||||
- **Whale-only design**: 매 top 1% 의 only 의 fun — 매 base 의 hollow out.
|
||||
|
||||
## 🧪 검증 / 중복
|
||||
- Verified (Schell *Art of Game Design*; KR Game Industry Promotion Act 2024 amend; Sensor Tower 2026 mobile report).
|
||||
- 신뢰도 A.
|
||||
|
||||
## 🕓 Changelog
|
||||
| 날짜 | 변경 |
|
||||
|---|---|
|
||||
| 2026-05-08 | Phase 1 |
|
||||
| 2026-05-10 | Manual cleanup — monetization types, gacha mechanics, regulation |
|
||||
Reference in New Issue
Block a user