體素遊戲引擎 · 一次比較所有選項

2026 年最值得一用的體素遊戲引擎 — 還有一款完全不必安裝

打造你自己的體素遊戲引擎

比較各種體素遊戲引擎 — Hytopia、Noa、Luanti、Godot、Unity — 再加上一座無需安裝、馬上就能走進去的瀏覽器體素世界。

✦遊戲
打造一座體素世界,主題是 一座方塊小島

體素遊戲引擎分成三類:專用體素引擎、加上體素層的通用引擎,以及在分頁中渲染、什麼都不用安裝的瀏覽器世界。專用引擎第一天就給你區塊儲存、網格生成與光線傳播,接著讓所有東西都繞著它們運轉。通用引擎給你一整套工具鏈,然後把區塊管線當成作業丟給你。瀏覽器世界則完全跳過安裝與建置步驟。

本頁比較 Hytopia、Noa、Luanti、加上體素外掛的 Godot,以及加上體素外掛的 Unity:它們各自究竟是什麼、你在其中要寫什麼,以及它們會在哪裡耗掉你的時間。最後談到瀏覽器這個選項 — 一個在你描述它的同一分鐘內就能打開並走訪的世界。

快速解答:你該用哪一款體素引擎?

專用體素引擎,例如 Noa 或 Luanti:當世界資料本身就是產品,而你不希望在螢幕上看到任何東西之前,還得先自己寫網格生成器、區塊串流器與泛洪式光線計算時,就選它。

通用引擎加上體素外掛,例如 Godot 或 Unity:當你需要動畫、介面、物理、音訊、輸入對應與平台匯出,並且願意在別人的影格迴圈裡自行負責區塊管線時,就選它。

完全不用安裝的瀏覽器世界,例如 Neta Studio 建構器:當第一道障礙是讓另一個人看到這個世界,而一條連結比一次下載、一套工具鏈與一道建置步驟都更便宜時,就選它。

決勝點在於你的關鍵路徑上卡著什麼。如果困難之處在於內容,就選那條從一個想法到能親自走進去之間距離最短的管線。如果困難之處在於模擬 — 數千個彼此互動的方塊、自訂物理、可確定性的網路同步狀態 — 就選那套你能夠剖析、修補並重新編譯的工具組。

一座你能走進去的瀏覽器體素世界 — 無需安裝、無需建置步驟。

各引擎比較

以下五個選項,依其形態而非排名來描述。它們全都能渲染體素,差別在於它們交給你什麼,以及它們預期你回報什麼。

先讀「語言」那一欄。它決定了你在不進行原生建置步驟的情況下,能改動多少執行環境,而那又決定了你凌晨兩點該怎麼除錯。

Hytopia

Hytopia 是一個託管的體素遊戲平台,附有 JavaScript 與 TypeScript 的 SDK。世界以體素為基礎,用戶端在瀏覽器中執行,而多人連線是平台的一部分,而不是你另外加上的東西:你針對 SDK 的實體與玩家 API 撰寫遊戲邏輯,平台則負責伺服器。代價是你的遊戲活在他們的執行環境上。你負責設定與編寫腳本,但不能把引擎打包成獨立執行檔來發布。

Noa

Noa 是以 Three.js 為基礎、瞄準瀏覽器的 JavaScript 體素引擎。它處理區塊化地形、網格生成、實體系統,以及簡單的碰撞與重力,其餘部分則預期由你自行補上:渲染設定、輸入、遊戲規則、網路連線。它的 API 小到可以從頭讀到尾,這正是它真正的優勢。當某些東西行為古怪時,出錯的是你能打開來看的程式碼,而不是一個黑盒子。

Luanti(前身為 Minetest)

Luanti 前身是 Minetest,它是一套開源體素平台,而非單一遊戲。引擎以 C++ 寫成,但玩法是以 Lua 撰寫的遊戲與模組形式加上去,因此你無需重新編譯就能改變方塊行為、合成與實體。它的世界是由 16x16x16 的 mapblock 組成的節點網格,伺服器則透過網路把區塊串流給用戶端。你可以在本機執行伺服器,同一套伺服器程式碼也能跑在租用的主機上。諸如 active_block_range 與 max_block_send_distance 這類設定,決定了玩家能看多遠,以及用戶端會用掉多少記憶體。

加上體素外掛的 Godot

Godot 的核心引擎裡沒有體素地形。你得自己加上去:看是要用能生成區塊網格的社群外掛,還是自己寫一個能產生 ArrayMesh 表面與碰撞形狀的網格生成器。Godot 提供的是環繞體素的那些部分,也就是場景樹、AnimationPlayer、介面、物理剛體、輸入與匯出範本,以及在網格化程式碼方面可透過 GDExtension 使用的 GDScript、C# 或 C++。區塊網格生成應該放在工作執行緒或 WorkerThreadPool 任務上。把它放在主執行緒上,正是玩家跨越區塊邊界時卡頓的常見原因。

加上體素外掛的 Unity

Unity 是同樣的故事,只是工具鏈更沉重。體素地形來自外掛或你自己的區塊系統;有效率的做法是使用 C# Job System 中經 Burst 編譯的 job,在工作執行緒上生成網格資料,並透過 Mesh.SetVertices 等呼叫上傳。碰撞是反覆出現的問題:每個區塊各用一個 MeshCollider 的烘焙成本很高,因此許多專案改為針對方塊網格自行撰寫體素射線投射與 AABB 碰撞。你保留了 Unity 的動畫、介面、音訊混音器,以及跨桌機與網頁目標的建置管線。

引擎形態你撰寫的語言如何執行
Hytopia附有 SDK 的託管體素平台TypeScript 或 JavaScript在他們託管執行環境上的瀏覽器用戶端
Noa以 Three.js 為基礎的瀏覽器體素引擎JavaScript你自己的頁面與你自己的伺服器
Luanti附有 Lua 遊戲的開源體素平台以 Lua 撰寫遊戲與模組已安裝的用戶端,加上你自己架設的伺服器
加上體素外掛的 Godot加上體素地形的通用引擎GDScript、C# 或透過 GDExtension 的 C++桌機匯出,或為瀏覽器版本做網頁匯出
加上體素外掛的 Unity加上體素地形的通用引擎C#,並以 Burst job 進行網格化桌機、主機或 WebGL 版本
Neta Studio 3D 遊戲建構器瀏覽器世界建構器以白話描述一個瀏覽器分頁,無需安裝

無需安裝任何東西,直接遊玩體素世界

要決定自己想不想打造體素世界,最快的方法就是站進其中一座。Neta Studio 3D 遊戲建構器在瀏覽器分頁中執行。你輸入對一個世界的描述 — 地形、氛圍、建築 — 建構器便生成一個可遊玩的 Three.js 場景,讓你用 WASD 與滑鼠在其中走動。沒有 SDK、不必安裝編輯器、沒有建置步驟,也沒有得先接好的素材管線。

你得到的世界是真正的幾何,而不是一段影片。你能與它碰撞、讓相機在其中移動,並藉由描述變更來改變它 — 提高水位、加一座橋、拓寬山谷 — 然後重新生成。Agent Sprite Forge 涵蓋 2D 這一層:為角色、道具與拾取物製作精靈圖,讓場景不至於因為等角色美術而停擺。Mini World 是最小的示範,也是筆電上最適合的第一個目標。The Cyclops’ Island 則是一個較大、經精心編排的世界,展示了當地形與光影都不再平板時,場景能變成什麼樣。

它做不到的事:它不會給你專用引擎那種方塊層級的腳本 API,也不會產生可放到商店上架的獨立執行檔。它位於管線中「檢視與反覆調整」的那一端,也是讓另一個人最快理解你所說的體素世界長什麼樣的方法。

1

01

在較新的桌機瀏覽器中打開建構器。Chrome、Edge、Firefox 與 Safari 都能用;條件是具備支援 WebGL2 的 GPU,而內建顯示卡對示範世界來說就已足夠。

2

02

寫一句描述這個世界的句子。具體的名詞勝過形容詞:一座有石塔與淺潟湖的霧中小島松林,比一句「很酷的島」能讓生成器有更多東西可擺放。

3

03

生成,然後走一走。移動方式是 WASD 加上滑鼠視角。先檢查斜坡碰撞與水岸邊緣,因為生成的地形通常就是在這些地方出錯。

4

04

用描述變更的方式來編輯,而不是逐一搬動方塊。當世界還在變動時,重新生成比手動擺放幾何更省事。

5

05

用 Agent Sprite Forge 為任何需要一張臉的東西加上精靈圖:角色、道具與拾取物。

6

06

分享連結。對方打開一個分頁,無需安裝任何東西就降落在同一個世界裡。

Gaga Little World — 同樣的堆疊與擺放語言,縮小到玩具尺度。

真正要緊的事

有四項特性會決定一套體素引擎到了第三個月是令人愉快還是痛苦。它們沒有一項會出現在功能清單上,而且全都能在你投入之前就衡量出來。

世界大小

儲存很便宜,串流卻不是。一個世界通常會被切成 16x16x16 或 32x32x32 個方塊的區塊,而引擎會讓其中一個半徑範圍常駐記憶體。記憶體大致隨半徑的三次方成長,所以在還沒算進網格之前,視距加倍就大約是八倍的方塊資料。座標也很重要:float32 位置在遠離原點處會失去精度,這會在遠超過 100,000 單位之外的地方,以相機抖動與 z-fighting 的形式顯現。引擎會用原點重定位或相機相對渲染來處理這個問題。在規劃一整塊大陸之前,先弄清楚你用的引擎是哪一種。

光影

體素光影通常是泛洪式的。每個方塊儲存一個光照等級,陽光向下傳播直到碰上不透明方塊,火把則向外傳播並逐漸衰減。這種做法每個方塊的成本很低,但要維持正確卻很貴。當玩家放置或移除一個方塊時,該區塊及其相鄰區塊的光線都必須重新計算,而如果你略過了相鄰區塊,光線就會以一道明亮的接縫從邊界漏出。如果引擎把光線烘焙進頂點顏色,那麼每次編輯都得重新烘焙一份網格。如果它是在著色器中打光,你則得在 uniform 上限與額外繪製呼叫上付出代價。

多人連線

體素的多人連線主要是頻寬問題。伺服器具權威性:它持有方塊網格,用戶端傳送的是意圖而非位置。只有編輯會以差異的形式傳送,而且只有感興趣半徑內的區塊才會被送出,因此流量隨玩家人數乘以視距成長,而不是隨世界大小成長。兩個用戶端在同一個 tick 內挖同一個方塊,是你必須為其定義解答的真實情況。如果你選的引擎沒有網路功能,那感興趣系統、差異格式與用戶端預測都得由你自己寫。那是一個專案,而不是一項功能。

能在瀏覽器中執行

瀏覽器這個目標省去了安裝步驟,而安裝正是你請別人試玩你的世界時最大的流失點。代價是更小的資源額度:WebGL2 的繪製呼叫、除非你為 SharedArrayBuffer 設定跨來源隔離否則只有一條主要的 JavaScript 執行緒,以及每個素材的下載大小。WebGPU 已出現在目前的桌機瀏覽器中,但並非全面支援,因此保留 WebGL2 作為後備仍是常見做法。如果世界能在分頁中執行,你就能用一則訊息把它送出去。如果它需要啟動器,你就辦不到。

體素沙盒與體素引擎之別

體素沙盒是一款剛好由方塊構成的完成品遊戲。你下載它、玩它,而方塊調色盤就是開發者出貨時的樣子。體素引擎則是一套工具組:區塊儲存、網格化、渲染器,以及一套讓你撰寫程式碼的 API。這個區別很重要,因為搜尋結果對兩者用的是同樣的字眼。

頁面上的訊號。如果有啟動器與截圖藝廊,那它是沙盒。如果有 API 參考文件、類別名稱與要安裝的套件,那它是引擎。如果方塊類型是你可以編輯的資料檔,而不是你註冊的執行期物件,這就告訴你產品位於哪一層。如果有匯出或獨立建置的路徑,你是在買一套工具組。如果唯一能發布的方式就是在他們的平台內,那你是在租一套。

混合體很常見,值得一提。Luanti 是一個平台:引擎是工具組,隨附的遊戲是建於其上的沙盒,你可以選擇要在哪一層工作。Hytopia 既是 SDK 也是託管的執行環境,所以你寫的是在別人伺服器上執行的引擎層級程式碼。瀏覽器建構器則位於最偏內容的那一端,產出的是世界而不是系統。在比較功能清單之前,先決定你想擁有的是哪一層,因為一款附有好編輯器的沙盒,並不能取代一套附有 API 的引擎。

走進它所屬的那個世界

一個精靈圖就是一個無處可站的角色。最後這一步是別人都沒提供的:把你剛做好的圖集放進一個有人能走動的世界裡 — 一座小島、一顆行星、一個下雨的街角。這個網站上的每個世界,都是從一段文字描述製成,並發布成一個你能實際遊玩的頁面。

FAQ

我可以在瀏覽器中製作體素遊戲嗎? +

可以。一個具備網格化、碰撞與泛洪式光影的區塊化體素世界,能在分頁中以 WebGL2 執行,而渲染則由 Three.js 負責。Noa 與 Hytopia 都以瀏覽器為目標,Neta Studio 建構器則能生成方塊打造的世界,讓你無需安裝任何東西就能走訪。限制在於繪製呼叫、只有一條主要的 JavaScript 執行緒,以及素材的下載大小。

Godot 適合做體素嗎? +

Godot 在體素周邊的一切上都很強,對體素本身則保持中立。它沒有內建的體素地形,所以你得加上區塊系統、網格生成器與碰撞,看是要用社群外掛還是自己寫,並且要在工作執行緒上生成網格,讓串流不會拖住影格。如果你本來就熟悉 Godot,那是個合理的取捨。如果你不熟,那你就是在學一套引擎的同時還要寫一層體素。

Luanti 是免費的嗎? +

是的。Luanti 這個前身名為 Minetest 的專案,是免費且開源的,沒有付費層級,遊玩或架設伺服器都無需帳號。你可以在自己的機器或租用的主機上執行伺服器,而建於其上的遊戲與模組是以 Lua 撰寫的,因此無需重建引擎就能改變玩法。

打造體素引擎需要用 C++ 嗎? +

通常不用。Hytopia 用的是 JavaScript 與 TypeScript,Noa 是 JavaScript,Luanti 的玩法是 Lua,Godot 提供 GDScript 與 C#,Unity 則是 C#。當你要改動引擎核心或撰寫原生擴充時,才會動用 C++,例如 Godot 的 GDExtension 模組或 Unity 的原生外掛。無論哪一種,網格化演算法都是一樣的。

什麼是體素? +

體素是規則三維網格上的一個值,以整數座標定址,而且它並不是你渲染出來的那個立方體。你看到的方塊,是由一連串體素生成出來的網格:網格生成器走訪網格,只產生那些接觸到空曠空間的面,而貪婪網格化則把同一種方塊類型、共平面的面合併成更大的四邊形。儲存的東西是網格,看得見的立方體則是一個渲染上的決定。

體素遊戲中的多人連線是怎麼運作的? +

伺服器持有具權威性的方塊網格,用戶端傳送的是意圖而非位置。只有編輯會以差異的形式傳送,而伺服器會串流每位玩家周圍感興趣半徑內的區塊,因此頻寬隨玩家人數乘以視距成長,而不是隨世界大小成長。用戶端預測能為移動掩蓋來回延遲,而伺服器則負責裁決兩名玩家在同一個 tick 內編輯同一個方塊的情況。

究竟是什麼導致體素效能問題? +

三件事,依序是:在主執行緒上做網格化、繪製呼叫太多,以及碰撞體烘焙。把區塊網格放到工作執行緒上生成並上傳完成後的緩衝,每個區塊保留一份網格而非每個方塊一個物件,並依相機視錐體剔除區塊。在物理方面,每個區塊各用一個網格碰撞體,成本遠高於針對方塊網格做射線投射與 AABB 測試。

我可以匯出在瀏覽器中打造的世界嗎? +

Neta Studio 建構器是在分頁中執行世界,因此分享就只是一條連結,對方無需安裝。它不是獨立執行檔的匯出管線,所以如果你需要可下載的版本或主機平台的封裝,就得選 Godot 或 Unity 並自行加上體素層。許多團隊會先在瀏覽器中做配置原型,等世界不再變動後,再於引擎中重建。

返回 3D 遊戲建構器

全部 31 個完成的 3D 世界、遊戲與場景都在同一頁上 — 每一個都能實際遊玩。

平台:Neta Studio頁面:2026 年最值得一用的體素遊戲引擎接著閱讀:/explore/tool/ai-voxel-game-maker · /explore/tool/voxel-circle-generator · /use-cases/en/isometric-pixel-art
×