9148c358d0
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 폴더 제거.
5.6 KiB
5.6 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-no-mans-sky | No Man's Sky | 10_Wiki/Topics | verified | self |
|
none | A | 0.9 | applied |
|
2026-05-10 | pending |
|
No Man's Sky
Hello Games (Sean Murray) 우주 탐험 SF. 2016 출시 직후 혹평 → 8년간 무료 업데이트로 회복한 라이브 서비스 모범 사례. 18 quintillion (1.8×10^19) 절차적 행성.
핵심
절차적 생성
- 64-bit seed 기반 deterministic generation: 행성/지형/생물/식물/색상.
- Uniform 우주 좌표: galactic position → seed → 동일 결과 어디서든.
- 레이어 구조: galaxy → star system → planet → biome → terrain → fauna → flora.
- Voxel terrain (LOD 적용) + noise 함수 (Simplex/Worley).
- PCG 생물: 부위 조합 (head/torso/legs/wings) + 색/크기 변이.
기술 스택 (추정/공개)
- 자체 C++ 엔진, Vulkan/DX12.
- multi-thread streaming, infinite-precision 행성 (origin shifting).
- PSSL/HLSL 셰이더, GPU procedural texturing.
라이브 서비스 진화 (주요 무료 업데이트)
- Foundation (2016) — 기지 건설.
- Pathfinder, Atlas Rises — 차량/포털.
- NEXT (2018) — 멀티플레이어 (16명).
- Beyond — VR.
- Origins, Next Generation, Companions, Expeditions, Frontiers — 정착지.
- Endurance, Waypoint, Fractal, Singularity, Echoes, Omega.
- Orbital, Adrift, Worlds Part I/II (2024-2025) — 행성 다양성 대폭 확장.
- Aquarius, Relics (2025-2026) — 수중/고생물.
모던 엔지니어링 교훈
- 출시 후 신뢰 회복: 무사과 + 일관된 무료 업데이트 + 기능 약속 이행.
- Live-service ≠ 과금: 모든 확장 무료, payd cosmetic 없음.
- PCG vs hand-crafted: PCG 단독 → 단조로움. 이후 templated biome / set-piece 추가.
- 소규모 스튜디오 (~30명) + 장기 운영의 가능성.
- Cross-play / cross-save (PC, PS, Xbox, Switch, Mac, VR).
응용 (게임 디자인)
- Starfield (procedural + handcrafted hybrid), Elite Dangerous, Star Citizen 비교.
- 인디 PCG 게임 (Astroneer, Subnautica) 영향.
- 실패 → 회복 케이스 스터디 (Cyberpunk 2077, FF XIV: A Realm Reborn 비교).
💻 패턴
결정론적 PCG (의사코드)
struct PlanetSeed { uint64_t galacticIndex; };
Planet generatePlanet(PlanetSeed s) {
PRNG rng(s.galacticIndex);
Planet p;
p.radius = lerp(1500, 6500, rng.float01());
p.biome = pickBiome(rng);
p.atmosphere = pickAtmosphere(rng, p.biome);
p.fauna = generateFauna(rng.fork("fauna"), p.biome);
p.heightmap = simplexFractal(p.galacticIndex, octaves=8);
return p;
}
Origin shifting (대규모 좌표 정밀도)
Vec3d worldOrigin; // double
Vec3f localPos; // float, near origin
void update(Vec3d player) {
if ((player - worldOrigin).length() > 1024.0)
worldOrigin = player;
localPos = (player - worldOrigin); // float-safe
}
Procedural creature assembly
Creature assembleCreature(PRNG& rng) {
return {
.head = headLibrary[rng.range(headLibrary.size())],
.torso = torsoLibrary[rng.range(torsoLibrary.size())],
.legs = legsLibrary[rng.range(legsLibrary.size())],
.scaleY = rng.range(0.6f, 2.4f),
.palette = generatePalette(rng),
};
}
LOD 기반 voxel streaming
void streamChunk(Vec3i chunk, int playerLOD) {
if (distance(chunk, player) > LOD_DISTANCE[playerLOD]) return;
if (!cache.has(chunk))
async_load([&]{ cache.put(chunk, generate(chunk)); });
}
무료 라이브 업데이트 — feature flag 출하
// 클라이언트는 server flag로 신규 시스템 unlock
if (flags.has("WORLDS_PART_2")) enableNewBiomes();
if (flags.has("RELICS_EXPEDITION")) startExpedition("Relics");
결정 기준
| 비교축 | NMS | Starfield | Elite Dangerous |
|---|---|---|---|
| 행성 개수 | 18 quintillion | 1000 | 400B |
| 무중단 진입 | O | X (loading) | O |
| 핸드크래프트 비중 | 낮음 (post-Worlds 증가) | 높음 | 매우 낮음 |
| 멀티플레이 | 16명 | X | 대규모 |
| 라이브 서비스 무료 | O | DLC 유료 | 주요 확장 유료 |
기본값 (PCG 인디 reference): NMS의 결정론적 seed + 후속 templated content 추가 모델.
🔗 Graph
🤖 LLM 활용
- 언제: 패치 노트 요약, 행성/생물 생성 narrative, 커뮤니티 Q&A 트리아지, expedition 가이드 초안.
- 언제 X: 게임 내 PCG 자체 (deterministic seed가 더 적합), 로어 정합성 검증 (LLM hallucination).
❌ 안티패턴
- PCG = 무한 콘텐츠 라는 가정 (시각/메카닉 단조로움 빠짐).
- 출시 마케팅 과약속 (NMS 2016 트라우마).
- Float 좌표로 행성-스케일 처리 (jitter) → double + origin shifting 필수.
- 라이브 서비스를 유료 DLC = 동일시 (NMS 모델은 무료 + 게임 자체 판매 지속).
- 결정론 깨기 (랜덤 시드 새로 뽑기) → 멀티플레이 동기화 깨짐.
🧪 검증 / 중복
- 검증: 동일 좌표 두 클라이언트 결과 일치 (deterministic test), origin shift 시 jitter 없음.
- 중복: Procedural Generation (기법 일반) vs 본 문서 (NMS 사례 특화).
🕓 Changelog
- 2026-05-10: 표준 포맷, 2024-2026 업데이트 (Worlds, Relics) 반영.