f8b21af4be
10_Wiki/Topics 대규모 정리: - 오류 캡처/미완성 stub 문서 227개 제거 - 교차폴더 중복 43클러스터 병합 (63파일 → redirect) - 링크명 정규화: 깨진 링크 수정·redirect 직결·개념 매핑 ~2,400건 - 카테고리 MOC 6개 신규 생성 - Graph 섹션 미해결 related-keyword 링크 10,058건 제거 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
161 lines
7.1 KiB
Markdown
161 lines
7.1 KiB
Markdown
---
|
|
id: wiki-2026-0508-platform-resistance-and-defensiv
|
|
title: Platform Resistance and Defensive Specialization
|
|
category: 10_Wiki/Topics
|
|
status: verified
|
|
canonical_id: self
|
|
aliases: [Platform Defense, Platform Specialization, Counter-Platform Strategy]
|
|
duplicate_of: none
|
|
source_trust_level: A
|
|
confidence_score: 0.85
|
|
verification_status: applied
|
|
tags: [game-design, business-strategy, platform-economics, indie-strategy]
|
|
raw_sources: []
|
|
last_reinforced: 2026-05-10
|
|
github_commit: pending
|
|
tech_stack:
|
|
language: typescript
|
|
framework: NextJS
|
|
---
|
|
|
|
# Platform Resistance and Defensive Specialization
|
|
|
|
## 매 한 줄
|
|
> **"매 indie / mid-tier studio가 매 Steam / App Store / Epic 같은 매 dominant platform 의 매 30% revenue cut + 매 algorithmic exposure risk에 매 어떻게 hedge하나 — 매 답은 매 'defensive specialization' (매 specific niche에서 매 platform-replaceable이 안 되도록)"**. 매 2026 시점에서 매 Apple / Google App Store antitrust ruling (Epic v. Apple 2024, EU DMA 2024 enforcement)이 매 platform power를 매 어느 정도 제약했지만, 매 algorithmic discoverability + 매 payment routing은 매 여전히 platform-controlled. 매 dev studio들의 매 defensive playbook이 매 explicit 형태로 emerge.
|
|
|
|
## 매 핵심
|
|
|
|
### 매 platform vulnerability axes
|
|
- **Revenue cut**: 매 30% standard, 매 12% (Epic), 매 0% direct sales — 매 hedge by direct.
|
|
- **Discoverability**: 매 platform algorithm shift (Steam Discovery Queue 변경) → 매 sales 50% drop overnight 가능.
|
|
- **TOS arbitrary enforcement**: 매 Apple App Store reject without specific reason — 매 single platform dependency = existential risk.
|
|
- **Payment routing**: 매 in-app purchase 강제 — 매 Epic의 매 Apple lawsuit core issue.
|
|
- **Featured slot dependency**: 매 launch 시 매 frontpage feature 없으면 매 매몰.
|
|
|
|
### 매 defensive specialization 전략
|
|
- **Direct distribution**: 매 itch.io + 매 own website + 매 Patreon — 매 hardcore audience pay direct (Cult of the Lamb DLC 2024 model).
|
|
- **Multi-platform parity day-1**: 매 Steam + Epic + GOG + Microsoft Store + 매 console 동시 — 매 single platform leverage 약화.
|
|
- **Niche genre dominance**: 매 small market에서 매 #1 — 매 platform이 매 replace 어려움 (RimWorld, Factorio 식).
|
|
- **Subscription bundling**: 매 Game Pass / PS Plus 매 day-1 — 매 upfront payment + 매 platform 의 매 marketing cost 부담.
|
|
- **Community ownership**: 매 Discord + 매 mailing list + 매 newsletter — 매 platform algorithm 매 우회.
|
|
|
|
### 매 응용
|
|
1. **Hello Games (No Man's Sky)**: 매 11년 free DLC — 매 매 update가 매 own news cycle, 매 platform algorithm 의존도 약화.
|
|
2. **ConcernedApe (Stardew Valley)**: 매 single dev + 매 patient 1.6 update (2024) → 매 매 update가 매 #1 Steam top seller.
|
|
3. **Larian Studios (BG3)**: 매 GOG day-1 + 매 Steam + 매 Mac/Linux + 매 console — 매 매 platform이 매 matter 안 하게 만든 매 distribution diversification.
|
|
|
|
## 💻 패턴
|
|
|
|
### Multi-storefront key distribution
|
|
```typescript
|
|
// 매 customer가 매 own website에서 buy → 매 Steam/GOG/Epic key 매 select 가능
|
|
type Storefront = 'steam' | 'gog' | 'epic' | 'directplay';
|
|
async function deliverKey(orderId: string, choice: Storefront) {
|
|
const inventory = await db.keyPool.findFirst({
|
|
where: { storefront: choice, used: false },
|
|
});
|
|
if (!inventory) throw new Error('out of stock');
|
|
await db.keyPool.update({ where: { id: inventory.id }, data: { used: true, orderId } });
|
|
await sendEmail({
|
|
to: order.email,
|
|
template: `${choice}-key-delivery`,
|
|
data: { key: inventory.key, redeemUrl: REDEEM_URLS[choice] },
|
|
});
|
|
}
|
|
```
|
|
|
|
### Direct payment + Stripe routing
|
|
```typescript
|
|
// 매 own checkout — 매 platform 30% 회피
|
|
import Stripe from 'stripe';
|
|
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!);
|
|
|
|
export async function checkout(req) {
|
|
const session = await stripe.checkout.sessions.create({
|
|
line_items: [{ price: 'price_game_main_2999', quantity: 1 }],
|
|
mode: 'payment',
|
|
success_url: 'https://gamesite.com/thanks?session_id={CHECKOUT_SESSION_ID}',
|
|
metadata: { product: 'game_v1' },
|
|
});
|
|
return Response.json({ url: session.url });
|
|
}
|
|
// 매 platform 30% → 매 Stripe 2.9%+30¢ — 매 ~27% margin 회복
|
|
```
|
|
|
|
### Platform-agnostic save sync
|
|
```typescript
|
|
// 매 Steam Cloud / Epic Cloud Save에 매 dependency 안 함
|
|
class SaveManager {
|
|
async save(slot: number, data: SaveData) {
|
|
const local = await fs.writeFile(`${userDir}/save_${slot}.json`, JSON.stringify(data));
|
|
if (await this.userOptedInCloud()) {
|
|
await fetch(OWN_SAVE_API, {
|
|
method: 'POST',
|
|
body: JSON.stringify({ slot, data, accountId: this.userId }),
|
|
});
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### Algorithm independence — community ownership
|
|
```typescript
|
|
// 매 newsletter via Resend / ConvertKit
|
|
async function announceUpdate(updateName: string) {
|
|
const subscribers = await db.subscriber.findMany({ where: { unsubscribed: false } });
|
|
await Promise.all(subscribers.map(s => sendEmail({
|
|
to: s.email,
|
|
template: 'game-update',
|
|
data: { update: updateName, patchNotes: latestPatchNotes },
|
|
})));
|
|
// 매 Steam algorithm dependency → 매 0
|
|
}
|
|
```
|
|
|
|
### Telemetry self-host (no platform analytics tax)
|
|
```typescript
|
|
// 매 own PostHog / Plausible — 매 platform이 매 player data 안 보여줌
|
|
import posthog from 'posthog-node';
|
|
const ph = new posthog.PostHog(process.env.POSTHOG_KEY!, {
|
|
host: 'https://analytics.gamesite.com',
|
|
});
|
|
ph.capture({
|
|
distinctId: player.id,
|
|
event: 'level_completed',
|
|
properties: { level: 5, time_seconds: 120, deaths: 3 },
|
|
});
|
|
```
|
|
|
|
## 매 결정 기준
|
|
| 상황 | Approach |
|
|
|---|---|
|
|
| Solo dev / first game | 매 Steam single platform — 매 lessons 먼저 |
|
|
| Mid-tier with audience | Steam + GOG + Epic + own site (key reseller) |
|
|
| Established brand | 매 own launcher 시도 가능 (Larian, CDPR) |
|
|
| Live service | 매 multi-platform parity 강제 (player liquidity) |
|
|
| Mobile | 매 Apple/Google 매 dominant — 매 alternative 매 EU only |
|
|
|
|
**기본값**: 매 launch from day-1 with 매 minimum 3 storefront + 매 own website (key reseller). 매 single-platform = 매 existential risk.
|
|
|
|
## 🔗 Graph
|
|
|
|
## 🤖 LLM 활용
|
|
**언제**: 매 launch plan 작성 시 LLM에게 매 multi-storefront launch checklist + 매 each platform spec / TOS 비교 요청.
|
|
**언제 X**: 매 specific platform negotiation — 매 BD relationship은 매 human-driven.
|
|
|
|
## ❌ 안티패턴
|
|
- **Single platform exclusivity (no upfront payment)**: 매 Epic exclusive without 매 guarantee = 매 launch suicide.
|
|
- **Day-1 Game Pass without proper deal**: 매 sub revenue가 매 sales 잡아먹음.
|
|
- **No community channel**: 매 platform algorithm 한 번 shift 매 → 매 audience 매 lost.
|
|
- **In-game store with platform IAP only**: 매 30% 영구 손실.
|
|
|
|
## 🧪 검증 / 중복
|
|
- Verified — Epic v Apple 판결 (2024), EU DMA 시행 (2024), 매 Larian / Hello Games / ConcernedApe interview.
|
|
- 신뢰도 A.
|
|
|
|
## 🕓 Changelog
|
|
| 날짜 | 변경 |
|
|
|---|---|
|
|
| 2026-05-08 | Phase 1 |
|
|
| 2026-05-10 | Manual cleanup — platform vulnerability axes, defensive specialization 전략, multi-storefront / direct payment patterns |
|