[程式] Wave Function Collapse 实用技巧

楼主: dklassic (DK)   2020-12-29 14:14:18
上篇大致上讲述了 Wave Function Collapse 的基本概念。
如果照着做的话大概可以做出像这样的东西:
https://imgur.com/pF36Ds5
无论基本方块有多少,这时候都已经可以无限量自动产生出关卡结构。但是像这样的关卡
显然还过于格状粗糙,远远不到可以实用的程度。
所以在这里分享我研究 Wave Function Collapse 期间得出的两个主要精致化手段:
1. 边界条件的多样化与精细化
https://imgur.com/AxfjDPK
简单点就是像我这样。
多样化在于原本边界条件是墙壁与地板,在这里多加了围栏。
而精细化在于原本边界条件只分成两部分,在这里则是直接切割为了四部分。
2.转接器
https://imgur.com/l6Ggkre
简单来说是一个允许边界条件之间转换的零件。
由于这样的零件存在,就可以让所有边界条件随时切换,让关卡版面不至于太死板。
发挥以上两点之后就有办法自动产生像这样的盘面:
https://imgur.com/tZWCzfs
https://imgur.com/BjvB2iC
https://imgur.com/H78iV51
https://imgur.com/d5NUnEo
虽然由于使用的是简单的方块,当然还是看起来很丑。但结构已经看起来不像是具备特定
意图的设计师摆放出来的样子了。在人造建筑上可能是稍嫌奇怪,但如果将这样的东西使
用在天然岛屿(例如说就像 Bad North 那样),效果可以说是一流。
而如果是单纯产生房间形状的话,应该也可以轻易制作出像 Ape Escape 的关卡结构。
而从八月到九月之间研究完 Wave Function Collapse 之后,其实到现在十二月底我的个
人专案又回归到了手拉关卡。接下来的部分就是要讲述这样的转变背后的理由:
1. 大量产生 != 无脑产生
Wave Function Collapse 虽然允许用极低的努力做出极大化的成果,然而这个成果仍然是
正比于一开始制作的板块(规则)总量。
Oskar Stalberg 的 Bad North 虽然使用了 Wave Function Collapse 进行关卡产生,但
是他也制作了超过 300 个基本板块才能够呈现出看似每个都完全独特的岛屿。作为参考
上面产生的关卡只有 24 个板块组成。
2.有设计目的的关卡 > 关卡总量
虽然关卡产生的总量是可以无上限的,但是并不代表绝对能有效表现关卡想要考验玩家的
目的。能够达成目的的关卡价值远大于纯粹的关卡总量。
为了要验证关卡能够达成目的,实际上还是得付出更多的时间对于产生规则进行微调。
也因此虽然当时研究出 Wave Function Collapse 自觉得很得意,但回头看来其实我的游
戏设计并不需要用无上限的关卡量来堆叠。
Hades 的开发团队也提到说虽然他们不是没有打算做随机产生关卡,但是为了要让一个关
卡有多样的变化,所花的时间已经够他们设计一面全新的关卡了。而甚至我玩了很久才意
识到 Hades 的关卡并不是随机产生的,代表说就算不仰赖关卡量也能是个好的 Rogue 游
戏。
但是对于机制极为简单的游戏循环来说, Wave Function Collapse 还是能明显带来各种
好处。例如 Oskar Stalberg 不算是游戏的 Townscape,以及 Bad North 这样比较好限制
条件产生出好关卡的游戏。
总之大概就是这样提供参考(?
大概再下次写就是关于自己的游戏的验尸报告了 XDD
https://imgur.com/mJgsf5K
作者: hiiragi0312   2020-12-29 22:28:00
感谢分享
作者: coolrobin (泳圈)   2020-12-29 22:47:00
推推
作者: oopFoo (3d)   2020-12-29 23:35:00
分层次建设?例如地板,墙...一个个叠(Blend)上去
楼主: dklassic (DK)   2020-12-29 23:49:00
不太确定楼上是指什么?

Links booklink

Contact Us: admin [ a t ] ucptt.com