游戏开发论坛

 找回密码
 立即注册
搜索
查看: 8668|回复: 0

Steam游戏《TownScaper》技术分析!

[复制链接]

4万

主题

5万

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
85829
发表于 2020-12-11 14:55:17 | 显示全部楼层 |阅读模式
TownScaper是今年6月份上线Steam的建造类游戏,不过它的作者已经在twitter做了一年多的游戏开发日志。结合2019年欧洲独立游戏大会的一场演讲,EPC2018一场演讲,输出一下这个游戏的技术要点。

首先作者从业经验非常令人羡慕,在育碧Division干完后就自己出来单干独立游戏。

微信图片_20201211144728.jpg

波函数坍缩

游戏的核心技术是波函数坍缩,本来是一个利用固定种子和连通性筛选迭代像素最后坍缩到稳定的图像内容的自动生成算法。

微信图片_20201211144736.jpg

https://github.com/mxgmn/WaveFunctionCollapse#notable-ports-forks-and-spinoffs

github.com/mxgmn/WaveFunctionCollapse

将2D算法转为3D算法的基础,就是下面这张Cube的匹配图。

微信图片_20201211144737.jpg

完成理论基础建设后,作者设计的房屋建模。

微信图片_20201211144738.jpg

每个Cube都不是一个完整的房子,所有完整的房子都是用若干个(4xn)模型块拼接而成。

微信图片_20201211144740.jpg

下面是作者完成3D化的波函数坍缩的Demo地址。

微信图片_20201211144742.jpg

非结构网格

如果你试玩了上面的Demo,会发现完成了生成算法的屋子都是方方正正的矩形布局。作者非常出彩的在六边形布局的基础上扩展了非结构网格生成算法,让房屋的布局摆脱一板一眼的方正布局。

微信图片_20201211144743.jpg

算法的核心,每个菱形的中心和四个顶点的连接向量,统一到一个轴向上,随机给力,再还原到菱形的角度上。

微信图片_20201211144745.jpg

微信图片_20201211144746.jpg

网格变形

配合非结构网格的方案,每个Cube区块的模型根据当前网格的形状做扭曲。

微信图片_20201211144749.jpg

微信图片_20201211144751.jpg

沙滩和海浪

生成结束后根据生成轮廓线,再平滑,组合生成沙滩mesh,再外扩成海浪mesh

微信图片_20201211144752.jpg

Italian wires

作者开发期心血来潮做了一个类似广场彩旗的细节,在整体风格变得“威尼斯”之后,改成了高空的晾衣绳。

微信图片_20201211144754.gif

上线之后又加了圆形浮空岛下面加螺旋桨的细节。

庭院

在房屋形成的封闭空间里二次进行波函数坍缩计算,这次模型换成庭院围墙组,2D版算法即可。

微信图片_20201211144755.jpg

微信图片_20201211144757.jpg

Boids

每个鸟落在屋顶的时候一个模型,起飞的时候一个模型,飞行动画是shader写的顶点基于高度的偏移。

鸟群计算用Boids算法

微信图片_20201211144758.jpg

利用房屋模型外表面法线判定飞行范围和落脚位置

微信图片_20201211144800.jpg

植被

灌木利用视错觉而非CG技术制造立体感。

关于凹脸错觉看过这种玩具的人就秒懂。

微信图片_20201211144801.jpg

微信图片_20201211144803.jpg

环境光

通过分层写RT记录空间信息,偏移采样获得颜色。

微信图片_20201211144810.jpg

微信图片_20201211144948.jpg

像素风格化

粗化描边

微信图片_20201211144949.jpg

微信图片_20201211144951.jpg

Moody Clouds

环形缓慢旋转的天空盒

微信图片_20201211144952.jpg

包围盒计算和球面相机

通过已有建筑计算包围六边形,用屏幕中心射线确认相机锚点

微信图片_20201211144954.jpg

保存数据

所有数据序列化成编码,本地复制和网络分享功能就完成了。

微信图片_20201211144955.jpg

总结

26块钱买个技术玩具,不亏。

来源:知乎专栏:人类本质复读机

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-11-23 17:27

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表