d8a80f6272
이름만 다른(표기 변형) [[위키링크]]를 대상 문서의 canonical 제목으로 치환해 끊겼던 1,200개 링크를 연결. 제목/파일명 정규화 일치만 적용하고 별칭 매칭은 과병합 위험으로 제외(애매성 가드). 원본은 _link_reconcile_backup/ 에 백업. 도구: Datacollect/scripts/link_reconcile_apply.mjs Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
5.6 KiB
5.6 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-월드-오브-워크래프트-world-of-warcraft | 월드 오브 워크래프트(World of Warcraft) | 10_Wiki/Topics | verified | self |
|
none | A | 0.9 | applied |
|
2026-05-10 | pending |
|
월드 오브 워크래프트 (World of Warcraft)
매 한 줄
"매 21년 운영 = endgame loop의 끊임없는 reinvention". 2004 출시 후 2026 현재까지 11개 expansion (가장 최근: The War Within → Midnight 예정), MAU 가 격감과 부활의 cycle 을 반복하면서도 살아남은 이유는 raid · M+ dungeon · arena · classic re-release 의 4-pronged endgame, 그리고 LFG / cross-realm / WoW Token 같은 retention infra 에 있다.
매 핵심
매 endgame pillars
- Raid: 8-man (Heroic) / 20-man (Mythic) 보스 progression — tier set, mythic-only mounts.
- Mythic+ Dungeon: scalable 5-man, weekly chest, leaderboard (raider.io ecosystem).
- PvP Arena & Battleground: rated ladder, gear vendor.
- Open-world: world quest, delve (solo), profession.
매 retention infrastructure
- LFG/LFR (2010-2011) — queue-based grouping, 평등주의.
- WoW Token (2015) — gold ↔ subscription 전환, RMT 합법화.
- Cross-realm zone (2012) — 인구 부족 서버 통합.
- Classic / Hardcore (2019/2023) — nostalgia-driven 재출시.
매 응용
- MMO 디자인 reference — endgame multi-loop.
- Live ops — patch/expansion cadence (~2y).
- 플레이어 정체 회복 — reset-style season (Dragonflight S1+).
💻 패턴
Item level scaling formula (단순화)
-- 보상 ilvl 계산: M+ key level → loot ilvl
local function MythicPlusLootIlvl(keyLevel)
local base = 480 -- season 1 baseline
local cap = 522 -- weekly vault cap
if keyLevel < 2 then return base end
if keyLevel >= 10 then return cap end
return base + (keyLevel - 2) * 5
end
Combat log parser (DPS meter 기본)
local f = CreateFrame("Frame")
f:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
f:SetScript("OnEvent", function()
local _, sub, _, _, src, _, _, _, dst, _, _,
a1, a2, a3 = CombatLogGetCurrentEventInfo()
if sub == "SPELL_DAMAGE" or sub == "SWING_DAMAGE" then
local amount = (sub == "SWING_DAMAGE") and a1 or a4
DPS[src] = (DPS[src] or 0) + (amount or 0)
end
end)
Mythic+ key generator (server)
import random, dataclasses
DUNGEONS = ["Atal'Dazar","Halls of Infusion","Throne of Tides", ...]
AFFIXES = {2:"Tyrannical/Fortified",4:"Sanguine",7:"Spiteful",10:"Xal'atath"}
@dataclasses.dataclass
class MythicKey:
dungeon: str; level: int; affixes: list[str]
def downgrade_or_award(prev: MythicKey, completed_in_time: bool, depleted: bool):
if completed_in_time:
return MythicKey(prev.dungeon, prev.level + (1 if completed_in_time else 0), AFFIXES_FOR(prev.level+1))
return MythicKey(random.choice(DUNGEONS), max(2, prev.level - 1), AFFIXES_FOR(prev.level-1))
Tier set bonus (set bonus state machine)
local SET_BONUS_2P = "Increase damage of Frostbolt by 10%"
local SET_BONUS_4P = "Frostbolt has 20% chance to reset Frozen Orb cooldown"
local function CountTierPieces()
local n = 0
for slot=1,16 do
if IsTierItem(GetInventoryItemID("player", slot)) then n=n+1 end
end
return n
end
Weekly vault (3 sources)
# Player picks 1 reward from up to 9 options across 3 categories
def weekly_vault(player):
return {
"mplus": top_n(player.mplus_runs, n=3, key=lambda r: r.key_level),
"raid": top_n(player.raid_kills, n=3, key=lambda k: k.difficulty),
"pvp": top_n(player.pvp_honor, n=3, key=lambda p: p.tier),
}
Cross-realm zone matcher
def assign_phase(player, zone_id):
bucket = hash((zone_id, player.region, player.faction)) % 50
population = phase_populations.get((zone_id, bucket), 0)
if population >= 80: # soft cap
bucket = (bucket + 1) % 50
return (zone_id, bucket)
매 결정 기준
| 상황 | Approach |
|---|---|
| 신규 player onboarding | Chromie Time + level squish (60 cap → fast-track). |
| Endgame casual | Delve (solo) + LFR. |
| Endgame mid | Heroic raid + M+5-12. |
| Hardcore | Mythic raid + M+15+ + Arena 2400+. |
| 정체 player | Classic / Hardcore / SoD 로 retention 회복. |
기본값: 2년 expansion cycle · 4 raid tier per expansion · seasonal reset (M+ affix rotation).
🔗 Graph
- 부모: LiveOps
🤖 LLM 활용
언제: MMO endgame design 분석, raid encounter mechanic 설명, 클래스 spec rotation 코드 (luas). 언제 X: 매 patch-specific math (tier set coefficient) — 변동성 너무 큼, simC / Bloodmallet 데이터 직접 조회 권장.
❌ 안티패턴
- Borrowed power 의 횡포 (BfA azerite): 매 expansion 마다 reset → 누적감 박탈.
- Time-gated 일일 quest: 출석 체크 강요 → burnout.
- Dual-spec 비용: 매 swap 비용 = 실험 차단. (현재 free spec 으로 fix 됨)
- Pay-to-win RMT: WoW Token 으로 회색지대 (gold → BoE gear).
🧪 검증 / 중복
- Verified (Blizzard patch notes 2004-2026, raider.io API, wowhead).
- 신뢰도 A — 21년 누적 디자인 자료.
🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — WoW MMO design case study |