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塊錢買個技術玩具,不虧。
來源:知乎專欄:人類本質復讀機
相關文章
- 遊戲技術遊戲
- 分析技術
- 王者榮耀技術分析(二):遊戲的幀同步遊戲
- [技術分析]探討大世界遊戲的製作流程及技術——前期流程篇遊戲
- 技術分析:線上棋牌遊戲的木馬“集結號”遊戲
- 技術宅找女朋友的技術分析
- xMIS需求分析技術
- 遊戲技術美術之<技術&美術>知識構成遊戲
- 交換技術:NGN核心軟交換技術分析(轉)
- steam怎麼共享遊戲給好友 steam家庭共享遊戲怎麼操作遊戲
- Steam上的“恐怖”遊戲遊戲
- Steam 遊戲上架指南遊戲
- steam獨立遊戲資料遊戲
- 區塊雜湊競猜遊戲系統開發技術分析遊戲
- 旺旺農場NFT遊戲系統技術開發詳情分析遊戲
- epic遊戲怎麼轉到steam epic遊戲怎麼用steam開啟遊戲
- Linux核心技術分析Linux
- SD-WAN技術分析
- 量化技術分析應用
- 開發者分析:Steam獨立遊戲競爭激烈 賺錢也變難了遊戲
- 區塊雜湊競猜遊戲系統開發技術原理分析遊戲
- [技術] CDM技術分析和產品選擇建議
- Lynx技術分析-JS引擎擴充套件技術基礎JS套件
- "陷阱"技術探秘 ──動態漢化Windows技術的分析 (轉)Windows
- 陷阱"技術探秘 ──動態漢化Windows技術的分析 (轉)Windows
- 雙人成行steam多少錢 steam雙人遊戲推薦遊戲
- Cocos 技術派:實時競技小遊戲技術實現分享遊戲
- 遊戲AI——GOAP技術要點遊戲AIGo
- 常用遊戲AI技術盤點遊戲AI
- SAP SD定價技術分析
- 技術分析--日本蠟燭圖
- 漏洞挖掘分析技術總結
- 用例分析技術小結
- Tech Finger遊戲智慧搬磚系統合約開發(技術分析)遊戲
- steam怎麼共享遊戲給好友 steam怎麼共享遊戲給另一個帳號遊戲
- steam遊戲內建商店購買遊戲
- Steam將禁止區塊鏈遊戲區塊鏈遊戲
- HTC Vive也能玩Steam遊戲了遊戲