"매 grammar + constraint = playable layout". Procedural level geometry 는 매 1980s Rogue 의 BSP 부터 매 2010s Spelunky 의 room template, 매 2020s Minecraft / No Man's Sky / Townscaper 의 WFC, 매 2026 ML-assisted hybrid (Pixar's RayBend, Nvidia GANverse) 까지 매 evolution. 매 핵심 trade-off: 매 controllability ↔ matrix variety.
매 핵심
매 algorithm families
BSP / partition: Rogue, NetHack — 매 simple, 매 grid-only.
Cellular automata: Cave generation — 매 organic shape.
Random walk / drunkard: 매 cave / path.
Template + stitching: Spelunky, Enter the Gungeon — 매 controllable.
Wave Function Collapse (WFC): Townscaper, Bad North — 매 high constraint.
ROOM_TEMPLATES={"side":["....","..S.","....",".###"],"drop":[".S..","....","###.","...."],"trap":[["X"ifrandom.random()<.1else"."for_inrange(4)]for_inrange(4)],}defbuild_level(plan):"""plan: 4×4 grid of (template_kind)."""return[ROOM_TEMPLATES[kind]forrowinplanforkindinrow]
언제: 매 roguelike / sandbox / open-world 의 generation system, 매 designer 의 매 toolkit, 매 controllability ↔ variety trade-off discussion.
언제 X: 매 highly-authored linear narrative — 매 PCG 의 cost > benefit.
❌ 안티패턴
No validation: 매 unreachable goal / 매 closed-off key item.
Over-randomization: 매 every tile random = 매 chaos, 매 design intent X.
No reproducibility: 매 seed 의 expose 의 X — 매 bug repro / 매 speedrun 의 X.
🧪 검증 / 중복
Verified (Shaker / Togelius "Procedural Content Generation in Games" 2016; WFC paper Gumin 2016; Spelunky postmortem GDC 2014).