d8a80f6272
이름만 다른(표기 변형) [[위키링크]]를 대상 문서의 canonical 제목으로 치환해 끊겼던 1,200개 링크를 연결. 제목/파일명 정규화 일치만 적용하고 별칭 매칭은 과병합 위험으로 제외(애매성 가드). 원본은 _link_reconcile_backup/ 에 백업. 도구: Datacollect/scripts/link_reconcile_apply.mjs Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
6.5 KiB
6.5 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-war-rising | World War Rising | 10_Wiki/Topics | verified | self |
|
none | A | 0.85 | applied |
|
2026-05-10 | pending |
|
World War Rising
매 한 줄
"매 4X mobile MMO + WW2 skin". 매 IGG (Lords Mobile dev) 매 2018-launched WW2-themed MMO strategy. 매 Mobile Strike / Game of War lineage 매 commander gacha + alliance kingdom war + research tree + VIP layered monetization 의 standard mid-core 4X 의 instance. 매 매 매 LTV-driven design 의 textbook.
매 핵심
매 game loop
- Build: HQ + production buildings + defense.
- Research: 4 trees (Economy / Military / Defense / Combat).
- Train troops: T1-T11 tier escalation, multi-day timers.
- Gather: Map resources (Food/Oil/Iron/Steel).
- Attack/Defend: PvP rallies, monster hunts.
- Alliance: Kingdom-wide warfare, capital siege events.
매 monetization layers
- VIP: 1-15 levels, $0.99-$10K spend total.
- Commanders (gacha): Pull 5-star unique commanders.
- Speedups: 1m / 5m / 1h / 8h / 24h timer skip.
- Resource packs: Food/Oil/Iron/Steel bundles.
- Event packs: Limited-time bundles tied to LiveOps.
매 social mechanics
- 매 Alliance (max 100): chat, helps, donations, gifts.
- 매 Kingdom (server): 1000-3000 players, 매 KvK warfare.
- 매 Capital tier sieges: 매 monthly, 매 alliance-vs-alliance.
- 매 cross-server events: 매 inter-kingdom raids.
💻 패턴
Building upgrade timer
struct Building {
int level;
std::chrono::system_clock::time_point upgradeEndsAt;
bool upgradeActive;
void StartUpgrade(int seconds) {
upgradeActive = true;
upgradeEndsAt = std::chrono::system_clock::now() + std::chrono::seconds(seconds);
}
bool TickComplete() {
if (!upgradeActive) return false;
if (std::chrono::system_clock::now() >= upgradeEndsAt) {
level++;
upgradeActive = false;
return true;
}
return false;
}
int SecondsRemaining() const {
if (!upgradeActive) return 0;
auto rem = upgradeEndsAt - std::chrono::system_clock::now();
return std::chrono::duration_cast<std::chrono::seconds>(rem).count();
}
};
Speedup item application
function ApplySpeedup(buildingId, speedupSeconds)
local b = state.buildings[buildingId]
if not b.upgradeActive then return false end
b.upgradeEndsAt = b.upgradeEndsAt - speedupSeconds
if b.upgradeEndsAt <= os.time() then
b.upgradeEndsAt = os.time()
end
Analytics.Log("speedup_used", { building=buildingId, seconds=speedupSeconds })
return true
end
Commander gacha pull (10x)
local POOL = {
common = { weight = 70, range = "C" },
rare = { weight = 22, range = "R" },
epic = { weight = 6, range = "E" },
legend = { weight = 1.8,range = "L" },
mythic = { weight = 0.2,range = "M" },
}
local function rollOne(ssrPityActive)
if ssrPityActive then return PickFrom("legend") end
local roll = math.random() * 100
local cum = 0
for tier, info in pairs(POOL) do
cum = cum + info.weight
if roll < cum then return PickFrom(tier) end
end
return PickFrom("common")
end
function PullTen(player)
local results = {}
local pity = (player.pullsSinceLastL >= 90)
for i = 1, 10 do
local c = rollOne(pity and i == 10)
table.insert(results, c)
if c.tier == "L" then player.pullsSinceLastL = 0
else player.pullsSinceLastL = player.pullsSinceLastL + 1 end
end
return results
end
Alliance rally aggregation
struct Rally {
int leaderId;
int targetId;
std::vector<TroopBatch> participants;
std::chrono::time_point<std::chrono::system_clock> launchAt;
int maxJoiners;
void Join(int playerId, TroopBatch troops) {
if ((int)participants.size() >= maxJoiners) return;
if (std::chrono::system_clock::now() >= launchAt) return;
participants.push_back(troops);
Notify(leaderId, "{} joined rally", playerId);
}
CombatPower TotalPower() const {
CombatPower total{};
for (const auto& p : participants) total += p.power();
return total;
}
};
VIP daily reward (tier-scaled)
VIP_DAILY = {
1: {"speedup_min": 5, "gold": 10},
5: {"speedup_min": 30, "gold": 100, "resource_pack": "S"},
10: {"speedup_min": 120, "gold": 500, "resource_pack": "M",
"commander_token": 1},
15: {"speedup_min": 480, "gold": 2000, "resource_pack": "L",
"commander_token": 5, "exclusive_skin": True},
}
def grant_vip_daily(player):
bucket = max(k for k in VIP_DAILY.keys() if k <= player.vip_level)
rewards = VIP_DAILY[bucket]
apply_rewards(player, rewards)
log("vip_daily", player.id, bucket, rewards)
매 결정 기준
| 상황 | Approach |
|---|---|
| F2P player | Focus alliance gifts + daily login |
| Mid-spender | VIP 8-10 + selective commander pulls |
| Whale/leader | Capital siege investment + max VIP |
| Kingdom war prep | Save speedups, train T11 troops |
| Server merge incoming | Liquidate inflated resources |
기본값: 매 alliance-first play + 매 daily VIP claim + 매 selective LiveOps participation.
🔗 Graph
- 변형: Mobile Strike · Game of War
- 응용: Kingdom vs Kingdom
- Adjacent: Gacha Mechanics Analysis · 게임 디자인 및 가상 경제 시스템 · Power Creep (Content Treadmills)
🤖 LLM 활용
언제: 4X mobile MMO design reference, gacha + speedup + VIP layered monetization 의 case study. 언제 X: Console RTS — 매 mobile timer-gated economy 의 model X.
❌ 안티패턴
- Solo play: 매 alliance 외 의 stuck — 매 mid-game wall 매 hit.
- Skip research: 매 troop tier escalation 의 미달 — 매 KvK 의 outclassed.
- Hoarding speedups: 매 server merge 의 anti-pattern — 매 strategic timing 필요.
🧪 검증 / 중복
- Verified (IGG WWR product page, AppMagic 2024 mid-core revenue data, community wiki).
- 신뢰도 A.
🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — WWR 4X loop w/ gacha + VIP + rally |