PCG 绠楁硶缁煎悎鎸囧崡
鏈枃妗g敱浠ヤ笅鏂囦欢鍚堝苟鐢熸垚 (2026-01-09)
馃鈥嶁檪锔?鍏冲崱鐢熸垚绠楁硶(PCG)娣卞害鐮旂┒
馃摎 1. 鐞嗚鍩虹 (Theoretical Basis)
馃幆 鏍稿績瀹氫箟
绋嬪簭鍖栧唴瀹圭敓鎴?(Procedural Content Generation, PCG) 鏄€氳繃绠楁硶鑷姩鍒涘缓娓告垙鍐呭鐨勬妧鏈€傚浜嶳oguelike娓告垙锛孭CG鏄牳蹇冩敮鏌便€? **PCG鐨勪紭鍔?*:- 鏃犻檺鍐呭 - 閬垮厤閲嶅鎰?
- 闄嶄綆鎴愭湰 - 鍑忓皯鎵嬪伐璁捐宸ヤ綔閲?
- 澧炲姞瀵垮懡 - 姣忔娓哥帺閮戒笉鍚?
- 璐ㄩ噺鎺у埗 - 鐢熸垚缁撴灉鍙兘涓嶅彲鐜?
- 鎬ц兘寮€閿€ - 鐢熸垚绠楁硶鍙兘寰堟參
- *骞宠 鎬? - 闅惧害/濂栧姳鍙兘澶辫
馃搻 鏍稿績绠楁硶鍒嗙被
1. WFC (Wave Function Collapse) - 娉㈠嚱鏁板潔缂?
鍘熺悊: 鍩轰簬绾︽潫浼犳挱鐨勭摝鐗囨嫾鎺ョ畻娉曘€?- 鉁?鐢熸垚缁撴灉濮嬬粓绗﹀悎瑙勫垯
- 鉁?閫傚悎澶嶆潅绾︽潫
- 鉁?鍙互鐢熸垚鏈夋満鎰熺殑鍏冲崱
- 鉂?鍙兘闄峰叆鏃犺В鐘舵€侊紙闇€瑕佸洖婧級
- 鉂?鎬ц兘杈冩參
- 鉂?瑙勫垯瀹氫箟澶嶆潅
2. BSP (Binary Space Partitioning) - 浜屽弶绌洪棿鍒嗗壊
鍘熺悊: 閫掑綊鍒嗗壊绌洪棿锛屽垱寤烘埧闂村拰璧板粖銆?- 鉁?绠€鍗曟槗瀹炵幇
- 鉁?鐢熸垚閫熷害蹇?
- 鉁?鎴块棿鍒嗗竷鍧囧寑
- 鉂?鐢熸垚缁撴灉杈冭鏁达紙缂轰箯鏈夋満鎰燂級
- 鉂?璧板粖鍙兘鍐楅暱
- 鉂?涓嶅闅忔満
3. Cellular Automata - 鍏冭優鑷姩鏈?
鍘熺悊: 鍩轰簬绠€鍗曡鍒欑殑杩唬婕斿寲銆?- 鉁?鐢熸垚鑷劧鐨勬礊绌?鏈夋満褰㈢姸
- 鉁?瀹炵幇绠€鍗?
- 鉁?鍙傛暟鏄撹皟
- 鉂?涓嶄繚璇佽繛閫氭€?
- 鉂?闅句互鎺у埗鍏蜂綋褰㈢姸
- 鉂?闇€瑕佸悗澶勭悊锛堣繛閫氭€ф娴嬶級
馃洜锔?2. 瀹炶返搴旂敤 (Practical Implementation)
馃幃 Vampirefall 鍦板浘鐢熸垚妗嗘灦
娣峰悎鐢熸垚绛栫暐
Vampirefall鐨勫闃?鑲夐附鐗规€ч渶瑕?*鎵嬪伐璁捐 + 绋嬪簭鐢熸垚**娣峰悎锛?馃梻锔?鏁版嵁缁撴瀯
MapTemplate.cs
ProceduralMapGenerator.cs
馃帹 璺緞淇濊瘉绠楁硶
闂: 绋嬪簭鐢熸垚鍙兘浜х敓涓嶅彲閫氳鐨勮矾寰勩€? 瑙e喅鏂规: 璺緞浼樺厛鐢熸垚 + 楠岃瘉 + 淇銆?馃専 3. 涓氱晫浼樼妗堜緥 (Industry Best Practices)
馃幃 妗堜緥 1: Spelunky - 妯℃澘鎷兼帴澶у笀
鏍稿績鏈哄埗
Spelunky浣跨敤棰勫埗鎴块棿妯℃澘 + 鏅鸿兘鎷兼帴鐢熸垚鍏冲崱銆? 鐢熸垚娴佺▼:- 棰勫埗濉旈槻妯℃澘锛堜笉鍚屽湴褰級
- 妯℃澘搴撳垎绫伙紙绠€鍗?鍥伴毦/Boss锛?
- 涓昏矾寰勪繚璇佺畻娉?
馃幃 妗堜緥 2: *The Binding of Isaac - 鎴块棿搴撶郴缁?
鏍稿績鏈哄埗
Isaac浣跨敤澶ч噺鎵嬪伐璁捐鎴块棿 + 闅忔満缁勫悎銆? **鎴块棿搴撹妯?*:“绋嬪簭鐢熸垚涓嶆槸涓轰簡鍑忓皯宸ヤ綔閲忥紝鑰屾槸涓轰簡澧炲姞閲嶇帺浠峰€笺€?Vampirefall 鍊熼壌:
- 寤虹珛濉旈槻鍦烘櫙搴擄紙100+锛?
- 鍩轰簬闅惧害鍒嗙骇
- 閬垮厤鍚屼竴灞€閲嶅
馃幃 妗堜緥 3: *Enter the Gungeon - 绋嬪簭鍖栧湴鐗?
鏍稿績鏈哄埗
Gungeon缁撳悎浜?*BSP鍒嗗壊 + 鎵嬪伐鎴块棿 + 鐗规畩瑙勫垯**銆? 鐢熸垚绠楁硶:- BSP鐢ㄤ簬澶у尯鍩熷垝鍒?
- 鍏抽敭鎴块棿锛圔oss/鍟嗗簵锛変綅缃鍒?
- 绉樺瘑鍖哄煙璁捐
馃敆 4. 鍙傝€冭祫鏂?(References)
馃搫 鐞嗚
-
Procedural Content Generation in Games
浣滆€? Noor Shaker, Julian Togelius, Mark J. Nelson
涔︾睄閾炬帴 -
Wave Function Collapse Algorithm
Maxim Gumin
GitHub
馃摵 GDC
-
[GDC 2017] Spelunky Level Generation
婕旇鑰? Derek Yu
YouTube -
[GDC 2015] Diablo’s Dungeon Generation
婕旇鑰? Mike Barlow (Blizzard)
GDC Vault
馃寪 鍗氬
-
The Binding of Isaac Room Design
Edmund McMillen Blog -
Procedural Map Generation Techniques
RogueBasin Wiki
馃幆 闄勫綍锛歏ampirefall PCG瀹炴柦妫€鏌ユ竻鍗?
鉁?闃舵1: 妯℃澘绯荤粺锛堝繀椤伙級
- 鍒涘缓10+濉旈槻鍦板浘妯℃澘
- 瀹氫箟璺緞鑺傜偣鍜屽浣?
- 寤虹珛妯℃澘搴撶鐞嗗櫒
鉁?闃舵2: 鐢熸垚绠楁硶锛堝繀椤伙級
- 瀹炵幇BSP鎴栨埧闂存嫾鎺?
- 璺緞淇濊瘉绠楁硶
- 杩為€氭€ч獙璇?
鉁?闃舵3: 闅忔満鎬э紙鎺ㄨ崘锛?
- 闅滅鐗╅殢鏈烘斁缃?
- 璧勬簮鐐瑰垎甯?
- 鏁屼汉鍒锋柊鐐瑰彉鍖?
鉁?闃舵4: 楠岃瘉绯荤粺锛堝繀椤伙級
- 鍙帺鎬ф娴?
- 闅惧害璇勪及
- 绉嶅瓙璁板綍锛堢敤浜巄ug澶嶇幇锛?
鉁?闃舵5: 璋冭瘯宸ュ叿锛堟帹鑽愶級
- 鍙鍖栫敓鎴愯繃绋?
- 绉嶅瓙杈撳叆鍔熻兘
- 鎬ц兘鐩戞帶
**鏈€鍚庢洿鏂?: 2025-12-04
**缁存姢鑰?: Vampirefall 璁捐鍥㈤槦
娉㈠嚱鏁板潔缂?(WFC) 鐢熸垚 (Wave Function Collapse)
[!NOTE] 鏍稿績鎬濇兂: WFC 鏄竴绉嶅熀浜?绾︽潫 (Constraint)* 鐨勭敓鎴愮畻娉曘€傚畠涓嶆槸鍛婅瘔璁$畻鏈衡€滄€庝箞鐢烩€濓紝鑰屾槸鍛婅瘔瀹冣€滀粈涔堜笉鑳界敾鈥濄€?鍦?Roguelike 鍦扮墷鐢熸垚涓紝WFC 鑳芥瘮浼犵粺鐨勨€滄埧闂?璧板粖鈥濈畻娉曠敓鎴愭洿鑷劧銆佹洿鏈夋満鐨勭粨鏋勩€?
1. 鏍稿績姒傚康 (Core Concepts)
1.1 鍙犲姞鎬?(Superposition)
鍦ㄧ畻娉曞紑濮嬫椂锛屽湴鍥句笂鐨勬瘡涓€涓牸瀛愰兘鍚屾椂澶勪簬鈥滄墍鏈夊彲鑳界姸鎬佲€濈殑鍙犲姞涓€?- 渚嬪锛氫竴涓牸瀛愭棦鍙兘鏄€滆崏鍦扳€濓紝涔熷彲鑳芥槸鈥滃澹佲€濓紝涔熷彲鑳芥槸鈥滄按鈥濄€?
1.2 鐔?(Entropy)
鐔垫槸琛¢噺涓嶇‘瀹氭€х殑鎸囨爣銆?- 楂樼喌: 璇ユ牸瀛愭湁寰堝绉嶅彲鑳芥€?(渚嬪锛氳崏鍦?澧?姘?璺?銆?
- 浣庣喌: 璇ユ牸瀛愬彧鏈夊緢灏戠殑鍙兘鎬?(渚嬪锛氬彧鑳芥槸澧?銆?
- 鐔典负0: 璇ユ牸瀛愮姸鎬佸凡纭畾 (鍧嶇缉)銆?
1.3 鍧嶇缉 (Collapse)
瑙傛祴瀵艰嚧鍧嶇缉銆傛垜浠汉涓哄湴锛堟垨闅忔満鍦帮級閫夋嫨涓€涓牸瀛愶紝灏嗗叾鐘舵€佸浐瀹氫笅鏉ャ€?1.4 绾︽潫浼犳挱 (Constraint Propagation)
涓€鏃︿竴涓牸瀛愮‘瀹氫簡锛堜緥濡傚彉鎴愪簡鈥滄按鈥濓級锛屽畠鐨勯偦灞呭氨涓嶅彲鑳芥槸鈥滃博娴嗏€濓紙鍋囪姘寸伀涓嶅锛夈€傝繖绉嶇害鏉熶細鍍忔尝绾逛竴鏍峰悜鍥涘懆浼犳挱锛屽噺灏戦偦灞呯殑鐔点€?2. 绠楁硶娴佺▼ (Algorithm Flow)
- **鍒濆鍖?*: 灏嗙綉鏍间腑鎵€鏈夊崟鍏冩牸璁句负鍙犲姞鎬?(鍖呭惈鎵€鏈夊彲鑳界殑 Tile)銆?
-
瀵绘壘鏈€灏忕喌: 鎵惧埌褰撳墠缃戞牸涓喌鏈€灏忥紙鍙兘鎬ф渶灏戯級浣嗗皻鏈潔缂╃殑鍗曞厓鏍笺€?
- 濡傛灉鏈夊涓渶灏忕喌锛岄殢鏈洪€変竴涓€?
- 瑙傛祴/鍧嶇缉: 鏍规嵁鏉冮噸闅忔満閫夋嫨璇ュ崟鍏冩牸鐨勪竴涓姸鎬侊紝灏嗗叾鍥哄畾銆?
-
浼犳挱:
- 鏇存柊璇ュ崟鍏冩牸鐨勬墍鏈夐偦灞呫€?
- 濡傛灉閭诲眳鐨勫彲鑳芥€у噺灏戜簡锛岀户缁洿鏂伴偦灞呯殑閭诲眳 (閫掑綊鎴栧爢鏍?銆?
- 濡傛灉鍦ㄤ紶鎾繃绋嬩腑鏌愪釜鍗曞厓鏍肩殑鍙兘鎬у彉涓?0 (鏃犺В)锛屽垯鐢熸垚澶辫触锛岄渶瑕佸洖婧垨閲嶈瘯銆?
- 寰幆: 閲嶅姝ラ 2-4锛岀洿鍒版墍鏈夊崟鍏冩牸閮藉潔缂╁畬鎴愩€?
3. 瀹炵幇鎸囧崡 (Implementation Guide)
3.1 瀹氫箟 Tile 涓?Socket (鎺ュ彛)
涓轰簡鍒ゆ柇涓や釜 Tile 鏄惁鑳界浉閭伙紝鎴戜滑闇€瑕佸畾涔夊畠浠殑杈圭紭鎺ュ彛 (Socket)銆? 鍋囪鎴戜滑鏈?4 涓柟鍚戯細涓娿€佷笅銆佸乏銆佸彸銆?- 鑽夊湴 Tile:
[Grass, Grass, Grass, Grass] - 娴峰哺 Tile:
[Water, Grass, Coast, Coast](鍋囪)
3.2 鏃嬭浆涓庨暅鍍?
涓轰簡鑺傜渷缇庢湳璧勬簮锛屾垜浠彲浠ヨ嚜鍔ㄧ敓鎴愭棆杞彉浣撱€?- 涓€涓笉瀵圭О鐨?Tile 鍙互鐢熸垚 4 涓棆杞増鏈€?
- 鎺ュ彛鏁版嵁涔熼渶瑕侀殢涔嬫棆杞€?
3.3 鍥炴函涓庨噸璇?(Backtracking)
WFC 鍙兘浼氶亣鍒扳€滄鑳″悓鈥?(Contradiction)銆?- **绠€鍗曠瓥鐣?*: 閬囧埌鍐茬獊鐩存帴娓呯┖鏁翠釜鍦板浘閲嶆潵 (瀵逛簬灏忓湴鍥鹃潪甯稿揩)銆?
- 楂樼骇绛栫暐: 璁板綍姣忎竴姝ョ殑鐘舵€侊紝閬囧埌鍐茬獊鍥為€€鍒颁笂涓€姝ワ紝骞舵爣璁板鑷村啿绐佺殑鍒嗘敮涓轰笉鍙銆?
3.4 鎬ц兘浼樺寲
- 鏈€灏忓爢 (Min-Heap): 鐢ㄦ渶灏忓爢缁存姢鎵€鏈夋牸瀛愮殑鐔碉紝浠ヤ究 O(1) 鍙栧嚭鏈€灏忕喌鏍煎瓙銆?
- 鑴忔爣璁?(Dirty Flags): 浼犳挱鏃跺彧澶勭悊鍙楀奖鍝嶇殑鍖哄煙銆?
4. Unity 浠g爜鐗囨 (浼唬鐮?
5. 涓氱晫妗堜緥 (Industry Cases)
Townscaper
- 鐗圭偣: 鏋佸叾娴佺晠鐨勫疄鏃?WFC銆?
- 鏈哄埗: 鐜╁鐐瑰嚮鍙槸鈥滆娴嬧€濅簡涓€涓牸瀛愶紝绠楁硶鑷姩璁$畻鍛ㄥ洿鏍煎瓙鐨勬渶浼樿В锛堝眿椤躲€佸湴鍩恒€佹ゼ姊級銆?
Bad North (鍖楁柟缁濆)
- 鐗圭偣: 寰瀷宀涘笨鐢熸垚銆?
- 搴旂敤: 淇濊瘉宀涘笨杈圭紭鎬绘槸骞虫粦鐨勬捣宀哥嚎锛屼笖楂樹綆宸湁姊瓙杩炴帴銆?
Caves of Qud
- 鐗圭偣: 鏋佸叾澶嶆潅鐨勬枃鏈弿杩扮敓鎴愩€?
- 搴旂敤: 鍒╃敤 WFC 鐢熸垚鍘嗗彶浼犺鍜屽湴璨屾弿杩般€?