[G1-Sync] Manual knowledge update
This commit is contained in:
@@ -2,69 +2,169 @@
|
||||
id: wiki-2026-0508-자원-로지스틱스-resource-logistics
|
||||
title: 자원 로지스틱스(Resource Logistics)
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
status: verified
|
||||
canonical_id: self
|
||||
aliases: []
|
||||
aliases: [Resource Logistics, Supply Chain (Game), Resource Flow Design, 자원 흐름]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.92
|
||||
tags: [uncategorized]
|
||||
confidence_score: 0.9
|
||||
verification_status: applied
|
||||
tags: [game-design, economy, systems-design, factorio, rts]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-08
|
||||
last_reinforced: 2026-05-10
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: typescript
|
||||
framework: ecs-bevy
|
||||
---
|
||||
|
||||
# [[자원 로지스틱스(Resource Logistics)|자원 로지스틱스(Resource Logistics]]
|
||||
# 자원 로지스틱스(Resource Logistics)
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
War Commander의 자원 로지스틱스는 금속([[Metal|Metal]]), 석유(Oil), 그리고 희귀 자원인 토륨([[Thorium|Thorium]])의 생산, 저장, 획득 및 물류 관리를 의미하며 전투 시스템의 핵심 기반입니다 [1, 2]. 자원은 기지 방어 시설 구축, 유닛 생산 및 훈련, 전투 후 수리 등에 필수적으로 사용됩니다 [3, 4]. 효율적인 자원 물류는 군사력 유지의 필수 조건이며, 플레이어는 기지 내 자체 생산, 월드 맵에서의 매장지 점령, 그리고 적 기지 약탈 등 다양한 수단을 통해 자원 흐름을 관리해야 합니다 [5, 6].
|
||||
## 매 한 줄
|
||||
> **"매 source → transport → buffer → consumer 매 chain 매 game 의 의 backbone"**. 매 *Factorio* (2016 → 2.0 Space Age 2024) 매 belt-bot-train 매 trinity, *Dyson Sphere Program* (2021), *Satisfactory* (1.0 2024) 매 매 매 동일한 design pillar — 매 player 매 logistics 의 의 의 의 의 의 problem 의 의 의 solving.
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **자원 생산 및 획득 채널**
|
||||
기본 자원인 금속과 석유는 기지 내의 Metal Factory와 Oil Pump에서 생산되며, 희귀 자원인 토륨(Thorium)은 [[Command Center|Command Center]] 2레벨 이상에서 건설할 수 있는 Thorium Mine을 통해 생산됩니다 [7, 8]. 자체 생산 외에도 플레이어는 월드 맵의 자원 매장지(Resource Deposits)를 점령하여 시간에 따라 자원을 얻거나, 다른 플레이어의 기지를 공격해 저장된 자원을 훔칠 수 있습니다(토륨의 경우 최대 50%까지 약탈 가능) [6, 9-11].
|
||||
* **보관 및 수송 시스템**
|
||||
생산된 자원은 일꾼 드론(Worker Drones)들에 의해 자동으로 자원 저장소(Oil [[Storage|Storage]], Metal Storage, Thorium Vault)나 건설 현장으로 수송됩니다 [12, 13]. 저장 용량 한계에 도달하면 자원 생산이 중단되므로 플레이어는 꾸준히 저장소로 자원을 옮겨야 합니다 [14].
|
||||
* **자원 압축(Resource Compression)**
|
||||
기지가 성장하여 방어망 구축과 Arc 2 등 첨단 부대 양성을 위해 엄청난 양의 자원이 필요해지면 공간의 한계가 발생합니다. 플레이어는 Base Upgrade 메뉴에서 '자원 압축'을 실행하여 새로운 건물 추가 없이 기존 자원 저장 한도를 확장할 수 있습니다 [15, 16]. 이 압축은 최대 15레벨까지 가능하며 각 레벨당 10%씩 증가하여, 금속과 석유의 최종 저장 한도를 21억 개 이상으로 끌어올릴 수 있습니다 [15, 16].
|
||||
* **전투 시스템과의 전략적 상호작용**
|
||||
자원 관리는 전투 전략과 직결되어 있습니다. 값비싼 유닛을 사용할 때 전투 병력의 손실은 곧 막대한 자원 고갈을 의미하므로, 플레이어는 특정 유닛 조합을 활용해 수리 비용을 극소화하는 '무료 수리(Free Repair)' 전술을 구사하기도 합니다 [17]. 반대로, 적의 물류를 붕괴시키기 위해 동맹을 동원해 적 기지 주변을 둘러싸 자원 획득을 차단하는 '감금([[Jailing|Jailing]])' 전술이 사용되기도 하며 [18], 기지 방어 시에는 자원 저장소와 전력 발전소를 기하학적 방어선의 중심에 두어 적의 약탈을 막는 것이 최우선 과제입니다 [19, 20].
|
||||
## 매 핵심
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** 자원 압축(Resource Compression), 월드 맵 약탈(World Map Looting), [[기지 방어(Base Defense)|기지 방어(Base Defense]], [[토륨 경제(Thorium Economy)|토륨 경제(Thorium Economy]]
|
||||
- **Projects/Contexts:** Arc 2 기술 및 유닛 업그레이드 (토륨 자원이 대규모로 소모되는 후반부 전투 생태계의 핵심 맥락 [5, 21])
|
||||
- **Contradictions/Notes:** 과거에는 월드 맵에 한시적으로 생성되는 Thorium Deposit(토륨 매장지)를 점령하여 토륨을 캐는 방식이 존재했으나, 2016년 1월 업데이트로 해당 시스템은 폐기되었고, 현재는 대량의 토륨을 즉시 약탈할 수 있는 영구적인 'Verkraft Thorium Compounds'를 공격하는 방식으로 대체되었습니다 [22].
|
||||
### 매 logistics primitives
|
||||
1. **Source (생산)**: miner / extractor / spawn point.
|
||||
2. **Transport (수송)**: belt, pipe, train, drone, teleport.
|
||||
3. **Buffer (저장)**: chest, tank, warehouse.
|
||||
4. **Consumer (소비)**: assembler, smelter, ship, player.
|
||||
5. **Throttle / 제어**: priority splitter, circuit network, request gate.
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-27*
|
||||
### 매 transport 매 axis tradeoffs
|
||||
- **belt**: cheap, infinite, slow, density-bound.
|
||||
- **pipe**: fluid only, pressure-aware (DSP, Satisfactory 1.0).
|
||||
- **train**: high-throughput, high-latency, expensive.
|
||||
- **drone / bot**: flexible routing, energy-intensive.
|
||||
- **teleport / portal**: 매 endgame, breaks classical logistics tension.
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
### 매 응용
|
||||
1. *Factorio* main bus 의 vs city-block layout.
|
||||
2. *Satisfactory* 의 train network + drone hops.
|
||||
3. *Dyson Sphere Program* 의 logistics tower 의 interplanetary supply.
|
||||
4. *Anno 1800* 의 trade route + warehouse.
|
||||
5. *RimWorld* 의 stockpile priority + pawn hauling AI.
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
## 💻 패턴
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
### Belt throughput simulation
|
||||
```typescript
|
||||
interface BeltSegment {
|
||||
capacity: number; // items / sec (Factorio yellow=15, red=30, blue=45)
|
||||
current: number;
|
||||
upstream?: BeltSegment;
|
||||
}
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
function tickBelt(seg: BeltSegment, dt: number) {
|
||||
const incoming = Math.min(seg.upstream?.current ?? 0, seg.capacity * dt);
|
||||
seg.current += incoming;
|
||||
if (seg.upstream) seg.upstream.current -= incoming;
|
||||
// saturation = bottleneck visible to player
|
||||
return { saturation: seg.current / (seg.capacity * dt) };
|
||||
}
|
||||
```
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
### Producer/consumer rate matching
|
||||
```typescript
|
||||
function balanceRatio(producerRate: number, consumerRate: number): number {
|
||||
return producerRate / consumerRate;
|
||||
// ratio = 1.0 → balanced
|
||||
// < 1 → consumer starves (add producers)
|
||||
// > 1 → buffer overflow (add consumers / storage)
|
||||
}
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
// Factorio classic: 1 stone furnace = 0.3125 plate/s
|
||||
// 1 yellow belt = 15 items/s → needs 48 furnaces to saturate
|
||||
```
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
### Train scheduling (priority + fuel)
|
||||
```typescript
|
||||
type Station = { id: string; demand: number; supply: number };
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
function dispatchTrain(stations: Station[]): { from: string; to: string } | null {
|
||||
const supplier = stations.filter(s => s.supply > 0)
|
||||
.sort((a, b) => b.supply - a.supply)[0];
|
||||
const consumer = stations.filter(s => s.demand > 0)
|
||||
.sort((a, b) => b.demand - a.demand)[0];
|
||||
if (!supplier || !consumer) return null;
|
||||
return { from: supplier.id, to: consumer.id };
|
||||
}
|
||||
```
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
### Drone routing (cost-aware)
|
||||
```typescript
|
||||
function chooseDrone(drones: Drone[], from: Vec2, to: Vec2): Drone | null {
|
||||
return drones
|
||||
.filter(d => d.battery > distance(from, to) * d.energyPerTile)
|
||||
.sort((a, b) => distance(a.pos, from) - distance(b.pos, from))[0];
|
||||
}
|
||||
```
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
### Stockpile priority (RimWorld-style)
|
||||
```typescript
|
||||
interface Stockpile {
|
||||
id: string;
|
||||
priority: 1 | 2 | 3 | 4 | 5; // 5 = highest
|
||||
acceptedTags: string[];
|
||||
capacity: number;
|
||||
current: number;
|
||||
}
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
function chooseStockpile(piles: Stockpile[], item: Item): Stockpile | null {
|
||||
return piles
|
||||
.filter(p => p.acceptedTags.includes(item.tag))
|
||||
.filter(p => p.current < p.capacity)
|
||||
.sort((a, b) => b.priority - a.priority)[0] ?? null;
|
||||
}
|
||||
```
|
||||
|
||||
### Bottleneck detector (ECS / Bevy-style pseudo)
|
||||
```rust
|
||||
// Bevy system that flags saturated belts for player visualization
|
||||
fn detect_bottlenecks(
|
||||
mut belts: Query<(&BeltSegment, &mut MaterialColor)>,
|
||||
) {
|
||||
for (belt, mut color) in &mut belts {
|
||||
let sat = belt.current / belt.capacity;
|
||||
color.0 = if sat > 0.95 { RED } else if sat > 0.7 { YELLOW } else { GREEN };
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 매 결정 기준
|
||||
| 상황 | transport |
|
||||
|---|---|
|
||||
| 매 short distance, low rate | belt |
|
||||
| 매 long distance, high rate | train |
|
||||
| 매 fluid | pipe |
|
||||
| 매 sparse / mobile target | drone |
|
||||
| 매 cross-planet / cross-zone | logistics tower / portal |
|
||||
|
||||
**기본값**: 매 early-game belt → mid-game train → late-game drone+train hybrid → endgame logistics network.
|
||||
|
||||
## 🔗 Graph
|
||||
- 부모: [[Game Economy]] · [[Systems Design]] · [[Factory Builder Genre]]
|
||||
- 변형: [[Belt Logistics]] · [[Train Network Design]] · [[Drone Logistics]]
|
||||
- 응용: [[프리미엄 통화 브릿지(Premium Currency Bridge)]] · [[Production Chain]] · [[Crafting Tree]]
|
||||
- Adjacent: [[Supply Chain Optimization]] · [[Operations Research]] · [[Queueing Theory]]
|
||||
|
||||
## 🤖 LLM 활용
|
||||
**언제**: 매 factory builder / RTS / colony sim 매 design, 매 production-chain balance 의 의 system 의 build 시.
|
||||
**언제 X**: 매 narrative-only / linear adventure — 매 logistics 매 systems-driven design 의 의 의 매 fit.
|
||||
|
||||
## ❌ 안티패턴
|
||||
- **매 infinite buffer**: 매 buffer 매 size 매 ∞ 시 매 logistics tension 매 의 의 disappears.
|
||||
- **매 zero friction**: 매 instant teleport 매 baseline → 매 layout 매 의 의 의 의 의 trivial.
|
||||
- **매 over-coupled**: 매 single bottleneck 매 chain 의 의 의 의 의 cascade — 매 player frustration.
|
||||
- **매 invisible bottleneck**: 매 saturation visualization 매 X → 매 player 매 의 의 root cause 의 의 의 X.
|
||||
|
||||
## 🧪 검증 / 중복
|
||||
- Verified (Wube Software dev blogs Factorio FFF series, Coffee Stain Studios Satisfactory talks, GDC factory-builder 의 talks 2023-2025).
|
||||
- 신뢰도 A.
|
||||
|
||||
## 🕓 Changelog
|
||||
| 날짜 | 변경 |
|
||||
|---|---|
|
||||
| 2026-05-08 | Phase 1 |
|
||||
| 2026-05-10 | Manual cleanup — logistics primitives + transport tradeoffs + working belt/train/drone code |
|
||||
|
||||
Reference in New Issue
Block a user