Steam遊戲《TownScaper》技術分析!
首先作者從業經驗非常令人羨慕,在育碧Division幹完後就自己出來單幹獨立遊戲。

波函式坍縮
遊戲的核心技術是波函式坍縮,本來是一個利用固定種子和連通性篩選迭代畫素最後坍縮到穩定的影像內容的自動生成演算法。

https://github.com/mxgmn/WaveFunctionCollapse#notable-ports-forks-and-spinoffs
github.com/mxgmn/WaveFunctionCollapse
將2D演算法轉為3D演算法的基礎,就是下面這張Cube的匹配圖。

完成理論基礎建設後,作者設計的房屋建模。

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

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

非結構網格
如果你試玩了上面的Demo,會發現完成了生成演算法的屋子都是方方正正的矩形佈局。作者非常出彩的在六邊形佈局的基礎上擴充套件了非結構網格生成演算法,讓房屋的佈局擺脫一板一眼的方正佈局。

演算法的核心,每個菱形的中心和四個頂點的連線向量,統一到一個軸向上,隨機給力,再還原到菱形的角度上。


網格變形
配合非結構網格的方案,每個Cube區塊的模型根據當前網格的形狀做扭曲。


沙灘和海浪
生成結束後根據生成輪廓線,再平滑,組合生成沙灘mesh,再外擴成海浪mesh

Italian wires
作者開發期心血來潮做了一個類似廣場彩旗的細節,在整體風格變得“威尼斯”之後,改成了高空的晾衣繩。

上線之後又加了圓形浮空島下面加螺旋槳的細節。
庭院
在房屋形成的封閉空間裡二次進行波函式坍縮計算,這次模型換成庭院圍牆組,2D版演算法即可。


Boids
每個鳥落在屋頂的時候一個模型,起飛的時候一個模型,飛行動畫是shader寫的頂點基於高度的偏移。
鳥群計算用Boids演算法

利用房屋模型外表面法線判定飛行範圍和落腳位置

植被
灌木利用視錯覺而非CG技術製造立體感。
關於凹臉錯覺看過這種玩具的人就秒懂。


環境光
通過分層寫RT記錄空間資訊,偏移取樣獲得顏色。


畫素風格化
粗化描邊


Moody Clouds
環形緩慢旋轉的天空盒

包圍盒計算和球面相機
通過已有建築計算包圍六邊形,用螢幕中心射線確認相機錨點

儲存資料
所有資料序列化成編碼,本地複製和網路分享功能就完成了。

總結
26塊錢買個技術玩具,不虧。
來源:知乎專欄:人類本質復讀機
相關文章
- 遊戲技術遊戲
- [技術分析]探討大世界遊戲的製作流程及技術——前期流程篇遊戲
- 技術分析:線上棋牌遊戲的木馬“集結號”遊戲
- 遊戲技術美術之<技術&美術>知識構成遊戲
- steam怎麼共享遊戲給好友 steam家庭共享遊戲怎麼操作遊戲
- 旺旺農場NFT遊戲系統技術開發詳情分析遊戲
- 區塊雜湊競猜遊戲系統開發技術分析遊戲
- Steam上的“恐怖”遊戲遊戲
- Steam 遊戲上架指南遊戲
- GameFi鏈遊NFT遊戲智慧合約系統開發設計(技術分析)GAM遊戲
- epic遊戲怎麼轉到steam epic遊戲怎麼用steam開啟遊戲
- 常用遊戲AI技術盤點遊戲AI
- 遊戲AI——GOAP技術要點遊戲AIGo
- NFT遊戲系統開發/遊戲開發技術遊戲開發
- Cocos 技術派:實時競技小遊戲技術實現分享遊戲
- Tech Finger遊戲智慧搬磚系統合約開發(技術分析)遊戲
- 區塊雜湊競猜遊戲系統開發技術原理分析遊戲
- 悠遊世界合成遊戲系統技術開發解析/合成遊戲/小遊戲遊戲
- NFT鏈遊(GameFi鏈遊)遊戲系統合約開發技術分析丨GameFi丨NFTGAM遊戲
- steam獨立遊戲資料遊戲
- 遊戲反外掛技術揭祕遊戲
- Perforce:2024年遊戲技術報告遊戲
- FarmersWorld農民世界遊戲開發經濟模型介紹|模式技術分析遊戲開發模型模式
- 關於遊戲技術美術工程師的思考遊戲工程師
- steam怎麼共享遊戲給好友 steam怎麼共享遊戲給另一個帳號遊戲
- Mac 刪除 Steam 遊戲圖示Mac遊戲
- steam遊戲內建商店購買遊戲
- Steam將禁止區塊鏈遊戲區塊鏈遊戲
- 遊戲將要上線 steam,接入完 steam 後除了遊戲功能外,跟 steam 相關的測試點有哪些遊戲
- 遊戲資料分析的藝術PDF版遊戲
- 雙人成行steam多少錢 steam雙人遊戲推薦遊戲
- GameFi鏈遊系統技術開發/NFT遊戲元宇宙系統開發詳情分析GAM遊戲元宇宙
- 戰術競技遊戲的吃雞之路遊戲
- 雜湊遊戲系統技術開發丨雜湊單雙競猜遊戲原始碼丨雜湊遊戲程式設計技術遊戲原始碼程式設計
- FDF智慧合約迴圈互助遊戲dapp系統開發技術原理分析遊戲APP
- Steam 是暢玩遊戲、討論遊戲、創造遊戲的快樂所在遊戲
- Steam遊戲節開幕,已有超900款遊戲參與遊戲
- 環遊世界/合成/遊戲/系統技術開發案例遊戲