[雜談] 最近在嘗試 MapleStory Worlds 的遊戲編輯器

最近都在摸 MapleStory Worlds (以下簡稱 MSW) 的編輯器
這是 Nexon 藉由楓之谷這個 IP 打造出來的創作平台,類似 Roblox

我並沒有接觸過 Roblox,只知道他是一個自由度很高的東西
後來去查才知道它已經是接近遊戲引擎程度的東西,並且提供免費雲端資源讓玩家建立伺服器
而 MSW 也是如此,就連存取資料的方式也很相似

為什麼想接觸 MSW

我一直很喜歡楓之谷,也很懷念以前的遊戲環境
原本要懷舊只能夠透過私服,因為私服本身不合法,所以最多只能自己架來給自己玩玩
幾年前就找了一個老版本自己解析封包並從零建立後端
老實說這會花費很大量的時間去建立相關資料、腳本,而且做出來的後端還不易升版 (要再解析封包並調整服務端架構)

自從知道官方要推出 MSW ,就很期待能夠透過官方的平台來打造自己的懷舊服
從 04/24 中文平台開放之後,就一直在摸他的編輯器

我沒有做遊戲的經驗,目前就是抱持著玩玩看的想法天天在摸編輯器

目前的體驗心得

用到目前為止,我覺得 MSW 的編輯器體驗不太好
他的限制太多了,而且相關資源非常的少,官方的開發者社群看起來也不是很積極的在經營
編輯器目前還很陽春,官方的文件也不詳盡,只能說現在用 MSW 來做遊戲還是比較痛苦一點

目前 MSW 我覺得問題最大的是有跟沒有一樣的資源標籤以及缺乏良好的官方創作社群

資源標籤有跟沒有一樣

MSW 上的官方資源有標記很多 tag
這些 tag 一看就是用 AI 產的,一點參考價值都沒有
只有幾個 tag 比如遊戲包路徑、ID 等有用…
對於沒有拆過檔的人來說,這資源標籤基本上可以直接忽略

alt text

這是黃金海灘的 NPC
雖然不知道名子,但只要是楓谷玩家至少能知道 NPC 的所在位置或是場景

標籤除了遊戲資料路徑如 npc/1081100.imgstand/11有用以外,剩下的標籤完全不相關。裡面甚至有 UUID 標籤,用它啥都查不到…
(其實有 NPC 的韓文名稱標籤,但要剛好會韓文而且知道 NPC 名稱才有用…)

缺乏良好的開發社群

目前唯一看到的官方開發者社群只有 Discord
對,只有 Discord,而且開發者還跟玩家擺在一起
並沒有什麼模型、Plugin 平台可以分享,連個像樣論壇都沒有

韓國平台開放也兩年了,但目前仍然只有 Discord 群組
至少也開個平台讓人分享模組資源吧…


除了上面提到比較大的問題,其他還有像是:

  • 上傳資源不夠方便
  • 官方文件不夠詳盡
  • 基礎元件功能不完善

之類的問題

這些問題不是很嚴重,工具可以用,文件也有參考價值,就是陽春了點,感覺能再更好

上傳資源不方便

雖然 MSW 上已經有許多楓谷資源可以使用,看起來大約是 RED 時期到六轉二技時期的資源
但官方資源並非萬能,總會需要上傳自己的圖片或是音樂資源

資源唯一的上傳方式就是經過官方的 ResourceManager,雖然有批次上傳,但也謹此而已
目前似乎沒有便利的方式可以設定資源,任何操作都只能在 GUI 上完成,不論是拉伸邊界還是原點設定

如果 MSW 能上傳圖片、聲音以外的資源,那上傳功能陽春一點也沒關係
但今天限定只能上傳圖片、聲音資源,又只能在 GUI 上一個一個設定資源,真的很不方便…

組隊任務的錯誤效果

這個是楓谷組隊任務的錯誤效果
官方資源並沒有提供這個效果,所以我必須要自己上傳並製作動畫

即使只有 5 個 Frame,但我唯一能做的就是上傳這 5 張圖片
然後自己一個一個透過 GUI 手動調整這些圖片的中心點並製作動畫
這個過程很花時間

官方文件不夠詳盡

官方雖然有 API 文件以及遊戲創作指南
但我個人覺得內容不夠詳盡。適合入門,但要深入的話,資料還不夠齊全

編輯器上可以找到沒有文件說明的元件,我必須自己摸索元件如何運作
甚至會出現棄用屬性依然被使用的問題,官方文件完全沒提到這點,還以為是元件出 Bug 了…

標示已棄用的 RenderSetting

這個是 Sprite 渲染元件,官方文件是這樣寫 RenderSetting 這個屬性的:
這個屬性不再被使用

然而,從預設素材拉出來的物件會把這個值設為 1
而直接建物件這個值預設為 0
這個屬性會間接影響狀態動畫元件 (StateAnimationComponent),設定為 1 時,狀態變化後動畫才會自動切換

官方文件完全沒有提及這個屬性跟 StateAnimationComponent 的關係
要不是我開 Local Workspace 功能存檔剛好看到,還真不知道預設模型會設定一個編輯器點不到的東西

基礎元件功能不完善

官方有提供一個很基礎的 Sprite 渲染元件叫 SpriteRendererComponent,就是前面提到的那個元件
它可以支援動畫播放,但只能循環播放,沒辦法自己暫停或是限定播放次數
明明 GUI 用的 SpriteGUIRendererComponent 就可以設定一次性動畫跟來回播放的動畫
但遊戲內的動畫渲染卻什麼配置都沒有

SpriteGUIRendererComponent 與 SpriteRendererComponent 比對

為什麼 GUI Sprite 可以只播放一次動畫,但遊戲內的 Sprite 卻只能重複播放動畫?

MSW 還年輕,還有發展空間

與發展快 20 年的 Roblox 相比,MSW 出來也才 2 年多,還有發展空間
即使目前體驗不算很好,但也還在可以接受的範圍內

官方最近也開始在嘗試經過第三方編輯器如 VSCode 編輯腳本
雖然它會綁死 Local Workspace,但算是一個不錯的嘗試

期望未來社群能逐漸壯大,並出現許多好玩的遊戲跟好用的開發工具
也希望官方能開放創作者上架模組促進社群發展

結語

最初想說 MSW 會提供基於楓谷的環境來開發遊戲,但現在看起來它更像 Roblox,自由度比起原作更高一些
雖然跟想像中不太一樣,但光是能夠使用預建好的楓谷素材,就已經讓我有足夠的動機去使用這個編輯器了

最近這段時間應該都會研究 MSW ,除了打發時間以外,主要還是想試著在上面建立自己的懷舊服 :)