Files
2nd/10_Wiki/Topics/Architecture/디아블로_2(Diablo_II).md
Antigravity Agent f8b21af4be Wiki cleanup: error-doc removal, dedup merge, link normalization
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>
2026-05-20 23:52:15 +09:00

146 lines
4.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
id: wiki-2026-0508-디아블로-2-diablo-ii
title: 디아블로 2(Diablo II)
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Diablo II, D2, Diablo 2 Resurrected]
duplicate_of: none
source_trust_level: A
confidence_score: 0.85
verification_status: applied
tags: [game-design, arpg, loot, blizzard, architecture]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: C++
framework: Custom engine (Diablo II) / Vulkan (Resurrected)
---
# 디아블로 2(Diablo II)
## 매 한 줄
> **"매 ARPG 의 archetype — 매 random loot + skill tree + hardcore + ladder."**. 매 2000 Blizzard North 의 release, 매 isometric 2D sprite 의 era, 매 2021 의 Resurrected 의 modernized 3D rendering, 매 modern ARPG (Path of Exile, Last Epoch, Diablo IV) 의 design DNA.
## 매 핵심
### 매 design pillars
- Random loot tables: magic / rare / set / unique items.
- Skill trees: 매 class 마다 의 30 skills 의 3 tabs.
- Difficulty tiers: Normal → Nightmare → Hell.
- Ladder seasons: 매 fresh economy reset.
- Hardcore mode: 매 death 의 permanent.
### 매 architecture
- Client-server (Battle.net): 매 anti-cheat 의 server-authoritative.
- Tile-based map generation: 매 procedural dungeon.
- Sprite system: 매 8 directions × frames × layers.
- MPQ archive: 매 asset packing format.
### 매 응용
1. Loot system 의 modern ARPG influence.
2. Skill tree 의 RPG genre 의 standard.
3. Online economy 의 trading mechanics.
4. Modding scene (Median XL, Path of Diablo).
## 💻 패턴
### Pattern 1 — Loot table weighting (pseudocode → C)
```c
typedef struct { ItemType type; int weight; } LootEntry;
LootEntry table[] = {
{NORMAL, 60}, {MAGIC, 25}, {RARE, 10},
{SET, 3}, {UNIQUE, 2}
};
int roll = rand() % 100;
int acc = 0;
for (int i = 0; i < 5; i++) {
acc += table[i].weight;
if (roll < acc) return table[i].type;
}
```
### Pattern 2 — Magic find (MF) calculation
```c
// effective_chance = base_chance * (1 + MF/100)
// but with diminishing returns formula
float effective_mf(float mf, float factor) {
return (mf * factor) / (mf + factor);
}
// Unique factor = 250, Set = 500, Rare = 600
```
### Pattern 3 — Skill synergy (D2 LoD)
```c
// Damage = base * (1 + 0.10 * synergy_skill_level)
int fireball_damage(int level, int fire_bolt_lvl, int meteor_lvl) {
int base = 18 + level * 4;
float synergy = 1.0f + 0.10f * (fire_bolt_lvl + meteor_lvl);
return (int)(base * synergy);
}
```
### Pattern 4 — Item affix prefix/suffix
```c
struct Item {
BaseType base;
Affix prefix[3]; // e.g., "of Speed"
Affix suffix[3]; // e.g., "Cruel"
int sockets;
};
// Rare = 4-6 affixes, Magic = 1-2
```
### Pattern 5 — Resurrected toggle (legacy ↔ modern render)
```cpp
// D2R retains original game logic, swaps render layer
if (settings.legacyRender) {
Render2DSprites(scene); // original DirectDraw path
} else {
Render3DRemastered(scene); // Vulkan/D3D12, PBR materials
}
```
### Pattern 6 — Open Battle.net character (insecure, historical)
```
// "Open" chars stored client-side → trivial to dupe/edit.
// "Closed/Realm" chars stored server-side → authoritative.
// Lesson: server-authoritative state is non-negotiable for online RPGs.
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| 매 modern ARPG design | D2 의 loot + skill tree 의 baseline |
| 매 anti-cheat | Server-authoritative state |
| 매 retention | Ladder / season reset |
| 매 monetization 2026 | Cosmetics-only (D2R) vs MTX (D4) |
**기본값**: 매 server-authoritative + 매 seasonal ladder.
## 🔗 Graph
- 부모: [[Game-Design]]
- 응용: [[Skill-Tree-Design]]
- Adjacent: [[Procedural-Generation]]
## 🤖 LLM 활용
**언제**: 매 ARPG mechanic 의 design 시, 매 loot table 의 balance 분석, 매 skill synergy 의 formula 설계.
**언제 X**: 매 specific D2 의 internal undocumented bug 의 정확한 reproduction (data 부족).
## ❌ 안티패턴
- **Client-authoritative state**: D2 Open Battle.net 의 mass duping 의 lesson.
- **Power creep**: 매 patch 마다 의 damage inflation 의 trivialize content.
- **No drop rate transparency**: 매 modern player 의 expectation 위반.
- **Pay-to-win**: 매 D2 의 cosmetic-only 의 reputation 의 maintain.
## 🧪 검증 / 중복
- Verified (Blizzard official patch notes, D2 LoD wiki, Resurrected dev interviews).
- 신뢰도 A-.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — D2 design pillars + loot/skill patterns + Resurrected architecture |