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 用精靈圖集與 Tilemap 節點,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 像素。匯入設定比畫功本身更關鍵:像素圖要把 Filter Mode 設成 Point(no filter)、Compression 設成 None,否則編輯器預設的雙線性濾波會把每一塊圖磚都糊掉,你整個晚上都在怪美術。迭代很快,因為新圖磚畫好、丟進資料夾就行。100x100 的地圖、每格 32 像素,等於一張 3200x3200 的圖,記憶體成本是真的,但還控制得住。

3D 路線意味著網格、骨架、蒙皮權重與動畫片段。一個角色需要一份網格、一副骨架,至少還要待機、走路、攻擊三段動畫。如果不買現成素材庫,這些都是遊戲玩法出現之前就得先付出的建模時間。迭代在兩個方向上都更慢:網格一改,燈光、LOD 網格和碰撞形狀都得重新確認。回報是相機可以做到圖磚格線做不到的事,以及一條能吃下掃描或拼裝場景的製作流程。

實際該問的不是哪一種比較好看,而是第一個可玩小時之後,你預期還會改動多少素材。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 網頁匯出,以及以執行緒建置的 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
×