RPG 遊戲引擎 · 該用哪一款

RPG 遊戲引擎比較:RPG Maker、Godot、Unity、Unreal 與瀏覽器建造器

打造你自己的 RPG 遊戲引擎

RPG Maker MV/MZ、Godot、Unity、Unreal、Phaser 還是瀏覽器建造器?比較成本、是否要寫程式、2D/3D 與匯出選項——再加上一個現在就能玩的免引擎選項。

✦遊戲
製作一個 RPG 遊戲引擎

選擇 RPG 遊戲引擎,大致上就是在決定三件事:美術如何製作、由誰來寫程式,以及完成的遊戲要在哪裡運行。選項可以清楚切分。RPG Maker MV 與 MZ 是 2D 編輯器,內建了現成的 RPG 系統。Godot、Unity、Unreal 與 Phaser 是需要你自己撰寫程式的通用引擎。Ren'Py 是以對話為先的引擎,把一款遊戲當成劇本來看待。瀏覽器建造器則完全免去安裝與建置步驟。

本頁會就真正決定一個專案走向的要素來比較這些路線:成本與授權、是否會碰到程式碼、2D 或 3D、能匯出什麼,以及多久能做出可玩的東西。凡是數字只能靠猜的地方,我們改為描述其運作機制。如果你想在投入某款引擎之前先看到一個世界跑起來,靠近頁尾的免引擎章節會是你該先讀的部分。

快速解答

如果這款遊戲是帶有數值、道具與對話框的俯視角 2D RPG,RPG Maker MV 或 MZ 能最快做出可玩場景,因為資料庫與事件系統本身就為這些系統建立了模型。如果你想要掌控渲染器與規則,又不願為任何一方付費,Godot 是最便宜、又不會把你鎖進某種格式的路線。當涉及團隊、主機送審或中介軟體時,Unity 與 Unreal 才合理。當 RPG 是一個網頁、而你又已經會寫 JavaScript 時,Phaser 就是答案。當遊戲以文字與分支選擇為主時,Ren'Py 就是答案。

下表涵蓋七條路線:RPG Maker MV/MZ、Godot、Unity、Unreal、Phaser、Ren'Py,以及產出是網頁而非建置檔案的瀏覽器建造器。欄位包括成本與授權、是否需寫程式、2D 或 3D、目標平台,以及達到首次可玩的時間。最後一欄請解讀為「讓一個可操控角色連同碰撞與一個可互動物件出現在畫面上」的時間,而不是完成一款遊戲的時間。多數 RPG 專案卡關是在系統,而非渲染,所以請把這張表當成篩選器,並把後面的章節當成做決定的依據。

比較表

這張表中有兩個欄位值得提出警告。Unity 的 Web 建置目標確實可用,但即使是規模不大的 2D RPG,其 WebAssembly 建置在素材壓縮前通常也會落在數十 MB 之譜;而啟用執行緒的建置需要跨來源隔離標頭(COOP 與 COEP),許多靜態主機預設並不會送出這些標頭。症狀會是一塊空白畫布,以及一則關於 SharedArrayBuffer 的主控台訊息,而不是明確的錯誤。Godot 的執行緒版網頁匯出有同樣的標頭要求,這也是 Godot 專案能在本機運行、卻在免費主機上失敗最常見的單一原因。

Unreal 的 HTML5 匯出在 4.23 到 4.24 那個時期已被移除,而且沒有受支援的替代方案,所以在 Unreal 中打造的 RPG 只能以二進位檔或透過商店平台發布。如果散布模型是一個連結,那這在你寫下任何一行程式碼之前,就已把 Unreal 從候選名單中剔除。

RPG Maker 的瀏覽器部署會在一開始就把整棵素材樹送出。對小型專案來說沒問題,但對擁有長篇配樂的專案就很痛苦,因為音訊在遠早於地圖之前就主導了載入量。請把首次載入、而不是影格率,列為你第一個要處理的效能問題。

路線成本是否需寫程式2D / 3D目標平台達到首次可玩的時間
RPG Maker MV / MZ商業授權,依席次一次性購買;MV 與 MZ 是各自獨立的產品事件系統無須寫程式;資料庫無法表達的部分則需 JavaScript 外掛僅 2D;以圖磚為基礎的地圖,俯視角或側視角戰鬥透過 NW.js 產出 Windows 與 macOS 建置;瀏覽器與行動裝置部署取決於版本與社群工具幾分鐘:內附的範例專案一啟動就能運行
Godot免費,MIT 授權,無權利金或席次費用GDScript 或 C#。Godot 4 移除了內建的 VisualScript,因此沒有官方的遊戲邏輯節點圖兩者皆可,具有各自獨立的 2D 與 3D 渲染器與節點類型Windows、macOS、Linux、Android、iOS,以及 Web(WebAssembly)若你已經熟悉這款引擎,讓一個角色能移動與碰撞約需一到兩小時
Unity在 Unity 公布營收與募資門檻以下可免費使用 Personal 方案;超過門檻則需付費的 Pro 方案C#。視覺化腳本以官方套件與第三方素材的形式存在,但並非主要途徑兩者皆可;2D 使用精靈圖集與圖磚地圖節點,3D 使用 URP 或 HDRP桌上型電腦、行動裝置、經平台核准的主機,以及 Web 建置目標從 2D 範本開始約需數小時;若編輯器對你來說是全新的,則需一天以上
Unreal可免費使用;每項產品終身營收超過 100 萬美元的部分抽成 5% 權利金Blueprints 涵蓋多數遊戲邏輯;效能關鍵或引擎層級的工作則用 C++以 3D 為先。雖有供精靈圖使用的 Paper2D,但周邊工具鏈都假設是 3D桌上型電腦、主機、行動裝置。沒有受支援的瀏覽器或 HTML5 匯出第三人稱範本不到一小時;但 RPG 是靠組裝而成,並非套用範本就能完成
Phaser免費,MIT 授權JavaScript 或 TypeScript;沒有由編輯器編寫的遊戲邏輯層2D;具備 WebGL 與 Canvas 渲染器,3D 需額外使用其他函式庫以瀏覽器為先;行動與桌上型封裝可透過 Capacitor、Cordova 或 Electron若你已經會寫 JavaScript 約需一小時;每一個系統都得自己建
Ren'Py免費且開放原始碼;允許商業發布對話與流程使用 Ren'Py 腳本;任何自訂功能使用 Python2D;靜態背景、精靈圖、分層圖片Windows、macOS、Linux、Android、iOS,以及可透過啟動器產生的網頁建置幾分鐘:預設專案就已展示一個帶有對話與選項的場景
瀏覽器建造器(Neta Studio)無須安裝;工具在瀏覽器分頁中運行無須撰寫程式;你以文字描述世界及其規則3D,於分頁中以 Three.js 繪製;若要呈現 2D 觀感,則是相機與素材的選擇網頁本身;凡是 WebGL 2 能運行的地方都能運行一段描述就能得到一個可以走動的世界
免引擎選項,現在就能運行:一個在瀏覽器分頁中、無須安裝任何東西就能走動的世界。

2D 與 3D RPG 引擎

渲染器只是便宜的那一部分。Godot 與 Unity 都能在同一次下載中渲染 2D 與 3D,而把相機從透視切換成正交也只是改一個屬性。2D 與 3D RPG 之間的差異,在於渲染器上游的一切:素材如何製作、需要多少人手,以及一項變更要多久才會顯現出來。

2D 路線意味著精靈圖表與圖磚集。一個會朝四個方向行走的角色,通常每個方向需要三個影格,總共十二個影格,以 16x16、32x32 或 48x48 像素繪製。匯入設定比美術本身更重要:像素藝術請把篩選模式設為 Point(不篩選),並將壓縮設為 None,否則編輯器預設的雙線性篩選會把每塊圖磚都弄糊,讓你花一整晚怪罪美術。迭代很快,因為新圖磚只要畫好、丟進資料夾就行。一張每格 32 像素的 100x100 地圖,是 3200x3200 像素的影像,記憶體成本確實不小,但仍在可控範圍。

3D 路線意味著網格、骨架、蒙皮權重與動畫片段。一個角色需要一個網格、一副骨架,以及至少待機、行走與攻擊三種片段。如果你不打算授權使用現成素材庫,那就是在任何遊戲玩法存在之前先花上的建模時間。迭代在兩個方向上也都更慢:當一個網格改變時,光照、細節層級網格與碰撞形狀全都要重新檢查。回報是:一台能做到圖磚網格做不到的事的相機,以及一條能接受掃描或拼湊環境的製作流程。

實際的問題不在於哪一種看起來更好,而在於你在首次可玩的那一小時之後,預期還要改動多少素材。一個 2D 專案能便宜地吸收數十次變更。一個 3D 專案吸收十幾次之後,就會開始讓你每次付出一個星期的代價。

各條路線如何改變你的 RPG 遊戲引擎美術流程

RPG Maker 把你綁定在 2D,而這其實是一項優點:地圖編輯器、自動圖磚與角色集全都假設是圖磚網格,所以你唯一必須製作的素材類型就是圖磚集。Unreal 則把你推向 3D——Paper2D 雖能渲染精靈圖,但光照、物理與動畫工具鏈都是圍繞網格打造,所以在那裡做 2D 遊戲是在跟引擎對抗。

Godot 與 Unity 是唯二讓你之後再決定的選項,但這是有代價的。把原型從精靈圖切換到網格,意味著要重建碰撞、重新調校相機距離,並重新製作每一個動畫,因為精靈圖表的影格數與骨架的片段長度毫無共通之處。請在打造第一場戰鬥遭遇之前就選定維度,而不是之後。

你需要寫程式嗎?

不需要,直到你想要某個工具尚未建立模型的東西那一刻為止。RPG Maker 的事件系統是一份帶有條件、開關與變數的指令清單,你無須打任何一行程式碼,就能建出一條任務鏈、一間商店與一場回合制戰鬥。牆會出現在資料庫無法表達的自訂選單版面與戰鬥公式上;到了那個時候,你就是在編輯 JavaScript 外掛檔案,並把它們註冊到外掛清單中,那是外掛作者的工作,而不是新手的工作。

Unreal 的 Blueprints 最接近一款具備完整視覺化腳本層的通用引擎。你可以把整個 RPG 的邏輯都建成節點圖,而它與 C++ 的效能差異,只有在每個影格、每個角色都執行的程式碼中才會顯現,例如大量人群或投射物的迴圈。Unity 的視覺化腳本是一個套件加上第三方素材,而多數教學與論壇解答都假設你使用 C#。Godot 完全沒有內建的遊戲邏輯節點圖;GDScript 才是正途,而且它的語法刻意貼近 Python。Phaser 從第一行就是程式碼。Ren'Py 的腳本格式讀起來更像電影劇本而非程式,並以 Python 處理各種邊角狀況。

還有第四個選項,不屬於「節點圖對比程式語言」的那種分野:描述這款遊戲,讓工具來建構它。Neta Studio 的 3D 遊戲建造器接收一段文字描述,並產出一個在分頁中以 Three.js 運行的世界。你透過描述來做出變更,而不是打開場景檔案、到處尋找正確的檢視器面板。當你需要對傷害公式做到影格級精確控制時,它是節點圖的拙劣替代品;但它也是大多數專案在初始設定上白白損失的那兩個星期的絕佳替代品。

哪一款 RPG 遊戲引擎出貨時不附場景編輯器

Ren'Py 是最明顯的例子。一個專案就是一個裝滿純文字腳本檔案的資料夾;你可以用任何文字編輯器加上啟動器來撰寫並運行它,而啟動器唯一必須做的工作就是啟動遊戲。Phaser 是第二個例子:一個專案就是一個裝滿 JavaScript 的資料夾與一個 HTML 檔案,而瀏覽器就是編輯器。這兩條路線都沒有視覺化的地圖繪製工具,但兩者也都不要求你安裝一種在文字編輯器裡讀不了的專案格式。

RPG Maker 不符合,因為資料庫、地圖與事件頁面都存在於編輯器的專案格式中。瀏覽器建造器則反其道而行:描述本身就是專案,而編輯器就是你早就在看的那個文字欄位。如果你避免使用編輯器的理由是不想再學一套,那這個區別比功能清單更重要。

  • 事件清單RPG Maker MV/MZ。指令、條件與開關。無須程式碼即可涵蓋任務、商店與標準戰鬥;自訂介面與公式則需要 JavaScript 外掛。
  • 節點圖Unreal Blueprints。足以承載整個 RPG 的邏輯。與 C++ 相較的成本,會顯現在每個影格、每個角色的迴圈中,而非一般遊戲邏輯程式碼。
  • 腳本語言Godot、Unity 與 Phaser 中的 GDScript、C# 與 JavaScript;以及 Ren'Py 腳本加上 Python。完全掌控,而初始設定的工作也全歸你。
  • 描述Neta Studio 的 3D 遊戲建造器。你撰寫世界、相機與規則;建造器產出場景。最快得到能走動的東西,但最不適合對戰鬥做精確的數值控制。

匯出與發布

你匯出什麼,就決定了玩家在能玩之前必須先做什麼。RPG Maker 透過 NW.js 部署 Windows 與 macOS 建置,瀏覽器與行動裝置部署則取決於版本與社群工具。瀏覽器部署是一個 HTML 檔案、一個 JavaScript 執行環境,以及專案的影像與音訊目錄——可放在任何靜態伺服器上,但素材會在標題畫面出現之前先行下載。

Godot 透過儲存在 export_presets.cfg 中的預設集進行匯出。網頁匯出會產出一個 HTML 外殼、一個 .wasm 二進位檔,以及一個包含專案資料的 .pck 檔案。Godot 4 的執行緒版網頁匯出需要 SharedArrayBuffer,這要求主機送出 COOP 與 COEP 標頭。少了它們,你要嘛改出單執行緒建置,要嘛頁面永遠不會啟動。Unity 的 Web 建置會經過 IL2CPP,產出 WebAssembly 加上一個資料包,同樣有執行緒的標頭要求,忽略它的後果也相同。

Unity 兩個實務上的網頁問題是初始載入與記憶體。一個在啟動時載入所有東西的場景會在第一個影格卡住;可定址素材與場景分割才是解法,而不是把建置縮小。Unreal 為桌上型電腦與主機匯出原生二進位檔,並沒有受支援的瀏覽器目標。Phaser 什麼都不用匯出,因為那些檔案本來就是網頁檔案——部署就只是複製一個資料夾。Ren'Py 會依其建置設定產出各平台的發行檔,包括網頁建置,並把素材與執行環境一起打包。

如果你要發布到靜態主機,請在測試遊戲之前先測試標頭。一個會設定 COOP 與 COEP 的本機伺服器,會掩蓋一個只在正式環境才會出現的主機問題。

  • 靜態資料夾上傳RPG Maker 瀏覽器部署、Phaser,以及 Ren'Py 的網頁建置。把輸出目錄複製到任何靜態主機就能運行。
  • 需要標頭啟用執行緒建置的 Godot Web 匯出與 Unity Web 建置。少了 COOP 與 COEP,頁面是無法啟動,而不是運行緩慢。
  • 二進位散布Unreal,以及來自 Godot、Unity、RPG Maker 與 Ren'Py 的桌上型建置。玩家下載執行檔並安裝它。
  • 以網頁取代檔案Neta Studio 的 3D 遊戲建造器。世界在分頁中運行,而產出是一個你可以直接交給別人的網址。
同樣的概念做成一款完成的遊戲:一個以連結形式發布的等角 3D 關卡。

免引擎選項

有一條路線,上述全都不適用,因為沒有引擎要安裝、沒有專案資料夾,也沒有匯出預設集要設定。Neta Studio 的 3D 遊戲建造器接收一段文字描述,並產出一個在瀏覽器分頁中以 Three.js 渲染的世界。產出就是一張網頁。你把連結傳給別人,世界就會開啟;他們不必下載壓縮檔、不必執行安裝程式,也不必決定要不要信任一個執行檔。

這改變了工作的樣貌。編輯之後沒有建置步驟要重跑,也沒有平台專屬的匯出要維護。你描述地形、相機角度、光照、存在哪些角色,以及玩家能做什麼;建造器組出場景圖,並由 Three.js 繪製。Agent Sprite Forge 涵蓋了在美術出現之前就需要一個角色或道具的情況,而 Mini World 與 The Cyclops' Island 是可遊玩的世界,你可以打開來看看相機、地面與移動已經在運作。

在大型 RPG 上,這並不是 Godot 或 Unity 的替代品。具有精確數值需求的系統——傷害公式、必須跨版本保持相容的存檔格式、帶有十幾種互相作用狀態的戰鬥狀態機——仍然需要真正的腳本層。它移除的是在那之前的那個階段:世界還不存在,而你看不出相機的觀感是否成立、尺度感覺是否怪異。

1

01

用純文字描述這個世界:地形、光照、相機角度、存在哪些角色,以及玩家能做什麼。

2

02

在分頁中打開生成的世界並走一走。對照角色身高檢查地面尺度,確認相機能避開幾何物件,並確認第一個可互動物件從出生點就看得到。

3

03

每一輪只改一件事,然後重新生成。「把出生點移到山脊上」是有效的編輯,「讓火炬的光更暖,並把半徑減半」也是。

4

04

留意影格預算。數百個實例化物件還算輕鬆;數百個各自擁有材質的獨立網格,會讓內顯掉影格。

5

05

分享這張網頁。世界在分頁中載入,無須安裝任何東西,也沒有建置產物要同步。

如何在十分鐘內做出選擇

依序看過以下幾點,並在第一條能定案的敘述就停下來。多數專案在前兩條就能定案。

1

01

數一數人。一個人、沒有美術,指向 RPG Maker MV/MZ 或瀏覽器建造器。兩到五個人、有美術,指向 Godot 或 Unity。一個有技術美術且懷抱主機企圖心的團隊,指向 Unity 或 Unreal。

2

02

看看你已經有的美術。圖磚集與精靈圖表把你推向 2D。已綁定骨架的角色或一套環境素材把你推向 3D。完全沒有,則把你推向最快看到成果的路線,而不是看起來最厲害的那一條。

3

03

決定你是否需要桌上型二進位檔。主機送審、商店平台要求,或離線遊玩,意味著 Godot、Unity、Unreal、RPG Maker 或 Ren'Py。如果一個連結可以接受,瀏覽器路線就刪除了你整個建置與散布步驟。

4

04

為首次可玩設定目標。不到一小時:RPG Maker 的範例專案、Ren'Py 的預設專案,或瀏覽器建造器中一段描述生成的世界。約一天:跟著教學做 Godot 或 Unity。一週以上:在 Unreal 中用你自己的素材做一款原創 3D RPG。

5

05

列出你無法自行建構的系統。存檔、戰鬥公式與物品欄是 RPG 專案卡關的地方。RPG Maker 三者全都內建。Godot 與 Unity 給你基本元件,把設計留給你。瀏覽器建造器涵蓋常見情況,但不涵蓋冷僻的情況。

6

06

在寫下第一行程式碼之前,先把匯出目標寫下來。一個必須同時在主機與瀏覽器上運行的專案,等於兩個專案,之後才決定就意味著要重寫輸入與存檔層。

7

07

用最便宜的工具做原型,然後移植。在瀏覽器建造器中粗略搭建一個關卡,再於 Godot 中重建,成本比在一套完整引擎裡反覆調整光照來得低。

走進它所屬的那個世界

在有一列真正跑起來之前,引擎比較都只是一張表。瀏覽器那一列是你無須安裝任何東西就能測試的:打開一個用一句話描述、並以網頁形式匯出的世界。那正是表中最後一列的實際感受。

回到 3D 遊戲建造器

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

平台: Neta Studio頁面: RPG 遊戲引擎比較:RPG Maker、Godot、Unity、Unreal 與瀏覽器建造器接著閱讀: /explore/tool/rpg-creator · /explore/tool/ai-rpg-generator · /explore/guide/how-to-make-an-rpg
×