[心得] 有關RGSS
這一篇是從原本是我發在巴哈的文章修改而成,
因為原本主要是給和不懂程式的使用者看和要求代理商加強翻譯。
我截取其中有關RGSS的部份,
希望板上強者多交流一下,看看我有沒有什麼寫錯處。
基本上RGSS(Ruby Game Scripting System)是把 Ruby 作為基本的腳本語言,
現在只被 RPG maker XP裝載。
而為了讓大家理解什麼是RGSS,
我想有必要先讓大家理解RMXP「到底是什麼東西」。
事實上RMXP的本質和前面幾代都一樣,
並不會因為多開放了RGSS就不同。
「RM系列的本質就是一套用來製作遊戲的framework(框架)」。
所謂的framework就是為了避免設計者接觸底層的低階技術,
多花點時間在主要任務(遊戲設計)上,
總之,是為了增加生產效能和效率所誕生的軟體。
RMXP和前幾代的不同在於允許使用者去處理更底層的技術,
但在此有件事必須先說明,
那就是目前所有的RM系列所包裝的「低階技術」,
從電腦的角度來看其實都很「高階」,
而其內部的元件設計的也不複雜。
說明白點就是RM系列不管哪一代,
都是使用非常方便的framework,
即使不懂得程式的人都可以用。
好的framework可以集合設計者常用的指令,
用以減少設計者 coding(寫程式)的量,
不好的 framework會弄出要求使用者硬套的模型,
表面上看起來幫使用者寫了很多程式碼,
實際上這模型對設計者不是太小就是太大,
有時更慘的是還有一堆猶如隔靴搔癢的不合用介面。
這些缺點剛好就是 XP以前RM系列的問題,
如果使用者要做的遊戲型態和預設模型有很大差異,
則必需在這上面疊床架屋,繞一大圈才能完成功能。
還不如放棄framework,直接自己另外寫程式最快;
但XP的做法卻是一個更好的減少程式碼的實作法。
XP除了舊系列就有的預設簡單模型,
重要的是又提供這個簡單模型的程式碼,
讓使用者可以直接修改成合用形式。
如果預設的完全不能用,
也可以把預設的程式碼全部砍掉重寫,
這裡的重寫很方便,
至少比起另外自己寫程式輕鬆很多,
關鍵就是這些架構的實作方法:RGSS。
為何用RGSS會比直接使用任何其他高階語言輕鬆?
(常用的高階語言:C++、JAVA……等)
首先必須解釋RGSS的內容是什麼。
RGSS(Ruby Game Scripting System),
中文的意思是RUBY遊戲腳本系統。
是應用RUBY語言去做Windows 2D遊戲的系統。
日方原廠對RGSS這個名詞的解說也大約只有以上如此,
但就我看過其他日本使用者作品和實做的感想,
這個說法其實太模糊且不盡正確,
或許日方也有其考量?
事實上,
RGSS在程式語法上和RUBY完全相同,
只有在遊戲必要相關上強化。
(ex:音樂演奏、子圖集…..等)
嚴格說起來那些強化並沒有「包起來」,
都是看的見的程式碼,
要全部砍掉或忽略而自己重寫不是不行,
(比如說要做3D遊戲)
只是這樣原本的GUI(圖形使用者介面)大都會變沒用。
感覺「很像」直接拿RUBY編譯器去寫遊戲,
不同的是這套RGSS的API用的是微軟的DirectX,
(所以只能在Windows上跑)
因為有了API理所當然不用接觸底層的硬體,
(為了不同型號的搖桿寫個別的程式碼不是遊戲設計者該做的)
更方便的是除非你要搞東西要用的API在原廠預設的以外,
(我就是在說3D遊戲)
事實上設計者連DirectX要怎麼用也不用管,
這點絕對比直接拿高階語言寫方便。
由於以上的狀況,
我個人推薦的實做方法是兩者兼容,
除非該功能原廠沒給,否則就別自己實做。
即使你遊戲架構全重寫了,
但原廠程式碼因為RUBY物件導向的優點,
很多功能可以剪貼出來用,
這樣的好處是快,且降低跟原本核心衝突的可能性。
一個更常見的模式是遊戲架構和原廠相通,
只是在功能上做改變或增加。
(常見的是強化或改變戰鬥系統)
如果那個功能完全沒有在原廠預訂裡,
其實可以直接在RGSS裡調用想用的API,
對一般設計師來說還是比硬幹快樂多了。
(當然對RM系列大多使用者來說頗難)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.165.4.195
討論串 (同標題文章)
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章