Files
2nd/10_Wiki/Topic_Programming/Architecture/Infraspace.md
T
Antigravity Agent 9148c358d0 docs(10_Wiki): 위키 전체 재구성 — Topic_* 폴더를 4개 카테고리로 통합 + 대규모 중복 제거
Topic_Agent/Topic_Blog/Topics/Topics_Biz/Topics_Meeting/Topics_Rag의 마크다운 지식 문서를
Topic_General/Topic_Programming/Topic_Graphic/Topic_Business 4개 카테고리로 재분류.

- 중복 제거: frontmatter의 status:duplicate/merged + duplicate_of/redirect_to 필드로
  자기 자신을 중복으로 선언한 리다이렉트 stub 1032개 제거, 완전 동일 내용 파일 472개 제거,
  동일 파일명·다른 내용 충돌 시 더 큰(완전한) 버전만 유지(162개 제거) — 총 1639개 중복 제거.
- 분류: 폴더 단위로 명확한 항목(AI_and_ML/Coding/Architecture 등 → Programming,
  Comfyui/Visual_Effects → Graphic, Topics_Biz/Topics_Meeting/사업 등 → Business,
  Poetic_Blog_Writing/창의성/Game_Design 등 → General)은 폴더 우선순위로,
  나머지 혼재 폴더(Topic_Agent/Topic_Blog/Topics 루트/Thinking & Reasoning/Other/UI_UX_Assets)는
  title/tags 키워드 스코어링으로 파일 단위 분류(불명확한 경우 General로 폴백).
  원본 폴더명은 "From_*" 서브폴더로 보존해 추적 가능성 유지.
- 최종 배치: Programming 2784 / General 1608 / Graphic 285 / Business 249 = 4926개 문서.
- 에이전트 운영 상태(.astra/.agent/.obsidian/sessions/memory/_company/docs/lessons/_shared/src)는
  지식 콘텐츠가 아니므로 재분류 대상에서 제외하고 원위치 유지.
- Topics/Topic_email(상위 보호 폴더 Topic_email과 파일명 100% 중복) 삭제 — 보호 폴더 자체는 미변경.
- 완전히 비게 된 Topic_Agent/Topic_Blog/Topics_Biz/Topics_Rag 폴더 제거.
2026-07-05 00:33:48 +09:00

6.0 KiB
Raw Blame History

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-infraspace Infraspace 10_Wiki/Topics verified self
Infraspace
인프라스페이스
City Builder Infraspace
none A 0.9 applied
city-builder
simulation
indie-game
supply-chain
unity
2026-05-10 pending
language framework
C# Unity

Infraspace

매 한 줄

"매 city builder × factory game hybrid". Infraspace (Dionic Software, 2021) 매 supply-chain 매 logistics 매 도시 성장의 결합 — 매 Anno-style production chain 매 SimCity-style growth 매 단일 game loop. 2026 매 매우 활발한 modding scene + 매 multiplayer co-op DLC.

매 핵심

매 Game design pillars

  • Supply chain first: 매 building 매 input → output 매 명시. 매 "magic" infrastructure 없음.
  • Logistics matters: 매 truck/road network 매 first-class system. 매 traffic 매 actual gameplay 의 bottleneck.
  • Population progression: 매 worker → engineer → scientist → astronaut tier. 매 tier 매 새 demand 추가.
  • Late-game space: 매 endgame 매 spaceport + offworld colony.

매 Technical architecture

  • Unity (C#) + DOTS/ECS partial migration (2024 update).
  • Pathfinding: 매 hierarchical A* + flow-field for trucks.
  • Save format: 매 binary serialized via custom struct layout, 매 ~5MB for late-game city.
  • Modding: 매 BepInEx + Harmony patches; 매 Steam Workshop 매 official.

매 응용

  1. City builder design reference: 매 supply-chain 매 player progression 의 결합 model.
  2. Modding case study: 매 Unity game 매 BepInEx integration pattern.
  3. Educational sim: 매 logistics/economics 매 teaching tool.

💻 패턴

Resource flow node graph (mod authoring)

// BepInEx mod adding a custom production building
using BepInEx;
using HarmonyLib;
using Infraspace.Buildings;

[BepInPlugin("com.example.solarfarm", "Solar Farm Mod", "1.0.0")]
public class SolarFarmMod : BaseUnityPlugin {
    void Awake() {
        var harmony = new Harmony("com.example.solarfarm");
        harmony.PatchAll();
    }
}

[HarmonyPatch(typeof(BuildingRegistry), "RegisterAll")]
class RegisterPatch {
    static void Postfix(BuildingRegistry __instance) {
        __instance.Add(new BuildingDef {
            Id = "solar_farm",
            Inputs  = new[] { },
            Outputs = new[] { new ResourceFlow("electricity", 50f) },
            Footprint = new Vector2Int(4, 4),
            Cost = new ResourceCost("steel", 100),
        });
    }
}

Truck dispatch (greedy nearest-need)

public class TruckDispatcher {
    public DeliveryOrder NextOrder(Truck t, List<Producer> producers, List<Consumer> consumers) {
        var match = consumers
            .Where(c => c.NeedsResource())
            .Select(c => new {
                Consumer = c,
                Producer = producers
                    .Where(p => p.Has(c.NeededResource))
                    .OrderBy(p => Distance(t.Pos, p.Pos) + Distance(p.Pos, c.Pos))
                    .FirstOrDefault()
            })
            .Where(m => m.Producer != null)
            .OrderBy(m => Distance(t.Pos, m.Producer.Pos))
            .FirstOrDefault();
        return match == null ? null : new DeliveryOrder(match.Producer, match.Consumer);
    }
}

Population tier demand calculation

public struct DemandProfile {
    public Dictionary<string, float> PerCapita;
    public static DemandProfile Worker => new() {
        PerCapita = { ["food"] = 1.0f, ["water"] = 1.5f }
    };
    public static DemandProfile Engineer => new() {
        PerCapita = { ["food"] = 1.0f, ["water"] = 1.5f,
                      ["clothes"] = 0.3f, ["electricity"] = 2.0f }
    };
}

Hierarchical pathfinding (truck network)

public List<Vector3> FindPath(Vector3 from, Vector3 to) {
    var fromCluster = roadGraph.GetCluster(from);
    var toCluster = roadGraph.GetCluster(to);
    var clusterPath = AStar(roadGraph.ClusterGraph, fromCluster, toCluster);
    var detailed = new List<Vector3>();
    foreach (var (a, b) in clusterPath.Pairs())
        detailed.AddRange(AStar(roadGraph.NodeGraph, a.Exit, b.Entry));
    return detailed;
}

DOTS-style ECS update (production tick)

public partial struct ProductionTickJob : IJobEntity {
    public float Dt;
    void Execute(ref Production p, in Recipe r, ref ResourceBuffer rb) {
        p.Progress += Dt * p.Speed;
        if (p.Progress >= r.Duration && rb.HasInputs(r.Inputs)) {
            rb.Consume(r.Inputs);
            rb.Produce(r.Outputs);
            p.Progress = 0;
        }
    }
}

매 결정 기준

상황 Approach
매 build a similar city builder 매 supply-chain core first, 매 visuals last
매 modding Infraspace 매 BepInEx + Harmony, 매 Steam Workshop publish
매 reference for thesis/study 매 Anno 1800 + Infraspace 매 비교 분석
매 multiplayer city builder 매 deterministic sim + lockstep 매 priority

기본값: 매 supply-chain 매 first-class abstraction 으로 design.

🔗 Graph

🤖 LLM 활용

언제: 매 city-builder design pillars 매 reference 필요 시; 매 supply-chain game balancing 의 case study; 매 BepInEx modding example. 언제 X: 매 AAA-scale RTS reference (다름); 매 grand strategy (다름).

안티패턴

  • Magic infrastructure: 매 building 매 input/output 명시 없이 placement 만 — Infraspace ethos 위반.
  • Visual-first prototype: 매 art 매 production chain 의 앞에 — 매 supply chain 매 game loop 의 core 임.
  • Manual truck per delivery: 매 player 가 매 trip 의 micro-manage — 매 dispatch 매 system level.

🧪 검증 / 중복

  • Verified (Steam page, dev blog, BepInEx mod registry, 2024 DOTS migration patch notes).
  • 신뢰도 A.

🕓 Changelog

날짜 변경
2026-05-08 Phase 1
2026-05-10 Manual cleanup — full content (city builder mechanics, modding patterns)