1行代码生成随机迷宫,概率编程语言登GitHub热榜,WFC作者新作( 二 )
文章图片
第二个规则 , 在第一个规则被“卡住” , 也就是没有符合条件的可选项时 , 自动执行将“红-绿-绿”色块随机重写为“白-白-红”色块 。
文章图片
这样一来 , 算法就能通过第一个规则生成随机路径 , 并通过第二个规则回溯还没有经过的路径、生成岔路口 , 最终遍历整个黑色地图 , 生成一套“2D迷宫” 。
还有更简单的思路 , 将所有“白-黑-黑”替换成“白-A-白” , 其中A是一个中间态 , 不作为起点 , 在迷宫生成完成后被替换为白色 。
文章图片
据作者表示 , 利用这个规则 , 1行代码就能随机生成2D或3D迷宫 。
文章图片
△3D迷宫长这样
基于这样的思路 , 换套规则组合方法 , 还能生成随机地形图 。
例如 , 试图生成一块河流地形图 , 就只需要利用上面的生成模型方法 , 再添加一些其他的重写规则 , 就能搞出一个随机河流图来:
文章图片
除了地形图、简单的2D/3D迷宫 , 更复杂的3D建筑也能搞定 , 只需要在两层2D“迷宫”之间的随机位置生成一批“楼梯”:
文章图片
嗯 , 连电路图都能画……
文章图片
据作者介绍 , 只要灵活运用这些规则 , 就能用MarkovJunior随机生成各种各样的建筑和图画 。
文章图片
可以说是非常好用了 。
还是著名WFC算法的作者这个概率编程语言的作者MaximGumin , 是一名独立游戏开发者 。
文章图片
他搞过最有名的项目 , 应该是一套叫做“波函数坍缩算法”(WaveFunctionCollapse , WFC)的东西 , 目前在GitHub上已经有18.7kStars 。
文章图片
这套WFC算法是他受量子力学中“波函数坍缩”概念的启发自创出来的 , 目前已经被应用到一些游戏中 , 如《城镇叠叠乐》(Townscaper)等 。
文章图片
△图源:Steam
MaximGumin并未透露更多自己的信息 , 但我们能在他的主页上看到 , 这位老哥自称“概率模型之王 , 程序化生成の弥赛亚 , 驯服马尔科夫链的人……”(手动狗头)
文章图片
从GitHub来看 , 这些年他一直专注于将各种数学算法应用于程序化生成中 , 做出各种有意思的模型 。
说不定你玩过的游戏中 , 有一些已经用过他开发的算法了 。
项目地址:
https://github.com/mxgmn/MarkovJunior参考链接:
[1]https://twitter.com/ExUtumno[2]https://github.com/mxgmn/WaveFunctionCollapse[3]https://www.youtube.com/watch?v=DOQTr2Xmlz0[4]https://twitter.com/fchollet/status/1532019171038355456—完—
【1行代码生成随机迷宫,概率编程语言登GitHub热榜,WFC作者新作】量子位QbitAI·头条号签约
- 1行代码生成随机迷宫,这个概率编程语言登GitHub热榜,作者曾开发著名WFC算法
- 文本生成图像这么火,你需要了解这些技术的演变
- 无代码平台真强大!表格搭建管理软件,10分钟处理完一周工作量
- 太魔幻了!DALL·E 2 居然能用自创的语言来生成图像,AI模型的可解释性再一次暴露短板
- 对于微软来说|所有Windows系统都遭殃:专家发现高危代码执行零日漏洞
- excel|一行代码轻松合并excel多个工作表!建议收藏!
- 上能写代码,下要“揍”黑客,还有什么不是程序员的“锅”?
- 狗狗币创始人称马斯克是骗子,马斯克反击称其代码写得不如孩子
- excel|一行代码,pandas分分钟搞定Excel!
- MySQL|华为鸿蒙使用的AOSP代码中,50%+由谷歌贡献,下一步是去谷歌化