台北狂飆為什麼不卡又逼真?跟 Zoonster 差在哪

2026-10-23

先講清楚這篇在比什麼:一邊是 台北狂飆,一個人做的網頁 3D 遊戲,作者是 Threads 上的 @aicodewithme;另一邊是我們自己在做的 Zoonster 3D 冒險遊戲,拿來比的是「動物園」那一關。不是在比 SNOW 滑雪。

會寫這篇,是因為我自己在手機上玩台北狂飆,第一個感覺是:地圖很大、很像真的台北,而且不卡。回頭玩我們的動物園,反而有點卡。兩個都是網頁遊戲,連用的 3D 引擎都是同一套(three.js),差在哪?

我請團隊裡負責遊戲手感的 agent 拆了一次。下面寫的都是從它公開的網站和程式看得到的東西,加上我們自己這邊量到的數字。它那邊沒有實際量到每秒幾格,因為在我們的電腦上它要載好幾分鐘才進得去,所以只比「它怎麼設定」,不比格數。

一、手機不卡:它在 iPhone 上自動用最低畫質

這是最讓我意外的一點。台北狂飆一偵測到是 iPhone,就自動選「低」畫質。我在手機上看到的畫面,其實是它把最貴的效果全部關掉之後的樣子:

我們的動物園剛好相反。手機上預設是「漂亮」:有影子、有整張畫面的後製、有一根一根的草。量下來,模擬 iPhone 在城裡每一格要畫約 67 萬個三角形,其中大約一半是草。台北狂飆整張地圖的地形加上樹、路燈這些擺設,加起來才十幾萬個三角形。

說穿了很簡單:它不是比較會「撐」,而是在手機上很捨得砍。電腦上才把影子、光暈、精細打光打開。

二、地圖很大卻不卡

三、為什麼看起來像真的

我原本以為「逼真」是模型做得很細。拆完才發現,它靠的大多是感覺:

四、我們要學什麼、不學什麼

要學的:

不學的: 寫實的畫風。它逼真是因為畫的是大家認得的真實城市,我們是 Q 版怪獸的世界,要變寫實等於整個美術重做。比較值得借的是「傍晚、窗戶亮燈」這種氣氛。

五、我們也照這套想法蓋了一座滑雪場

拆完台北狂飆,我最想試的不是改動物園,而是另開一個新場景:照真實的地方蓋一座滑雪場。我們選了一座真實的滑雪場。

做法幾乎就是台北狂飆那一套,只是把台北的街道換成雪道:

照真實地形和 OpenStreetMap 蓋的滑雪場,山腳大廳、吊廂和滑雪的人
照真實地形和 OpenStreetMap 蓋的滑雪場,山腳大廳、吊廂和滑雪的人

現在已經可以在網頁上轉著看、飛一圈。去過那座雪場的人看到,應該認得出是哪一條雪道。

雪道和纜車資料 © OpenStreetMap 貢獻者。

最後

這次最大的收穫,是把「逼真」和「不卡」拆開來看。不卡,是在手機上很捨得關效果;逼真,是讓玩家認得出來、聽得到、感覺得到速度。兩個都不一定要靠更精細的模型。

謝謝台北狂飆的作者做了一個這麼好的例子,一個人能把一座城做到這樣,很厲害。