d8a80f6272
이름만 다른(표기 변형) [[위키링크]]를 대상 문서의 canonical 제목으로 치환해 끊겼던 1,200개 링크를 연결. 제목/파일명 정규화 일치만 적용하고 별칭 매칭은 과병합 위험으로 제외(애매성 가드). 원본은 _link_reconcile_backup/ 에 백업. 도구: Datacollect/scripts/link_reconcile_apply.mjs Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
4.8 KiB
4.8 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-combat-balance-buff | Combat Balance Buff | 10_Wiki/Topics | verified | self |
|
none | A | 0.88 | applied |
|
2026-05-10 | pending |
|
Combat Balance Buff
매 한 줄
"매 underperforming unit / ability 의 매 strength 의 increase". 매 nerf 의 opposite — 매 player frustration 의 minimal 한 buff 가 매 balance team 의 default tool. 매 telemetry-driven (winrate < 47%, pickrate < 5%) buff 의 매 modern live-ops standard.
매 핵심
매 buff 종류
- Stat buff: 매 damage / HP / speed 의 numeric.
- Mechanic buff: 매 cooldown 단축, range 증가.
- Synergy buff: 매 set bonus, faction bonus.
- Quality-of-life: 매 animation 단축, hitbox 확대.
매 결정 기준 (telemetry)
- Winrate: 매 baseline ±3%.
- Pickrate: 매 5-15% target.
- Ban rate (PvP): 매 < 30%.
- Player sentiment: 매 forum / Reddit weighted.
매 응용
- 매 patch cadence (2-week, monthly).
- 매 PTR (public test realm) testing.
- 매 retro-buff 의 long-tail content.
💻 패턴
Buff candidate selector
type UnitTelemetry = {
unit_id: string;
winrate: number; // 0-1
pickrate: number; // 0-1
banrate: number; // 0-1 (PvP)
sample_size: number;
};
function bufCandidates(units: UnitTelemetry[]): UnitTelemetry[] {
return units
.filter(u => u.sample_size > 1000)
.filter(u => u.winrate < 0.47 || u.pickrate < 0.05)
.filter(u => u.banrate < 0.10) // not problem-banned
.sort((a, b) => a.winrate - b.winrate);
}
Buff magnitude calculator
function suggestBuffPercent(current_winrate: number, target_winrate = 0.5): number {
const gap = target_winrate - current_winrate;
// Empirical: ~5% stat buff ≈ 1% winrate shift
const raw = gap * 5 * 100;
return Math.round(clamp(raw, 3, 15)); // bounded
}
// Example: winrate 0.42 → suggest +8% damage
Multi-stat buff distribution
function distributeBuff(
total_buff_budget: number, // e.g. 10 (%)
stats: ("damage" | "hp" | "speed" | "cooldown")[]
): Record<string, number> {
const weights = { damage: 0.4, hp: 0.3, speed: 0.15, cooldown: 0.15 };
const out: Record<string, number> = {};
let total_w = stats.reduce((a, s) => a + weights[s], 0);
for (const s of stats) {
out[s] = (weights[s] / total_w) * total_buff_budget;
}
return out;
}
Patch-note generator
function generatePatchNote(unit: string, changes: Change[]): string {
const lines = [`## ${unit}`, ""];
for (const c of changes) {
const arrow = c.delta > 0 ? "↑" : "↓";
lines.push(`- ${c.stat}: ${c.before} → ${c.after} (${arrow}${Math.abs(c.delta)}%)`);
}
lines.push("", `*Designer note: ${changes[0]?.rationale ?? ""}*`);
return lines.join("\n");
}
A/B buff validation (PTR)
async function validateBuff(unit_id: string, ptr_data: TelemetryWindow) {
const before = await getLiveTelemetry(unit_id, "30d");
const after = ptr_data;
const winrate_shift = after.winrate - before.winrate;
const pickrate_shift = after.pickrate - before.pickrate;
if (winrate_shift > 0.06) return { decision: "scale_back", reason: "overshoot" };
if (winrate_shift < 0.01) return { decision: "increase", reason: "insufficient" };
return { decision: "ship", winrate_shift, pickrate_shift };
}
매 결정 기준
| 상황 | Approach |
|---|---|
| 매 winrate 42-47% | +5-8% stat buff |
| 매 pickrate <3% | mechanic / QoL buff |
| 매 niche pick | synergy buff |
| 매 winrate >50% but low pickrate | accessibility buff (animation, range) |
기본값: 매 telemetry > 1000 sample + 매 conservative +5% first pass.
🔗 Graph
- 부모: 게임 밸런싱 · LiveOps
- 응용: Defense-Buildings · Damage-Resistance-Platforms
- Adjacent: Evolution-of-the-War-Commander-Combat-Ecosystem
🤖 LLM 활용
언제: 매 patch design, telemetry analysis, magnitude calibration. 언제 X: 매 launch tuning — 매 telemetry 부족.
❌ 안티패턴
- Power creep: 매 매번 buff — 매 이전 unit 의 obsolete.
- Buff knee-jerk: 매 forum 의 single voice 에 react.
- Stack 무시: 매 multiple buff 의 multiplicative 효과.
- Sample 부족: 매 < 1000 의 의미 없음.
🧪 검증 / 중복
- Verified (Riot Games balance team blog, Blizzard patch notes 2024-2025).
- 신뢰도 A.
🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — combat balance buff telemetry + magnitude design. |