2007年02月25日
對 RMXP(RPG MAKER XP) 與 RGSS的看法
這一篇是從原本是我發在巴哈的文章修改而成,因為原本主要是給和不懂程式的使用者看和要求代理商加強翻譯。原文共有兩篇,這邊稍作修改成一篇。
(對一個日版RMXP的使用者來說,看到之前巴哈上廠商版一些文就想替那些人解說一下)
日版的 RMXP 說明分為紙本說明書和電子說明檔,紙本說明書的部份沒有提到RGSS,而是對於圖形化使用者介面(GUI)做出基本且完整的介紹。我認為這部份英特衛應該保留,前面有人認為這是多餘的,但其說法顯然有誤解。
這主要有兩點:
一來要顧慮剛入門的使用者,並不是每個人都有用過前幾代。
二來是讓人搞清楚RMXP[到底是什麼東西]。
看大家在巴哈前面的發言對RMXP的本質似乎都不了解,即使有用過前代的人也因為對RGSS的誤解造成整體的誤解。就我所知,即使在日本這個原產地,大部分做出遊戲的使用者除了套套網路上強者做的RGSS script,其實真正會對內建的的RGSS碼做大修改甚至架構性改變的很少,因為除非你是要做完全不同類型的遊戲(ex:第一人稱射擊、即時戰略等非rpg類),其實在架構上全部自己重寫在大部分的情況下是沒有必要的。反而會造成在投入(做遊戲專案)與產出(專案成果)上的不平衡,(時間/成果的C/P值會很低),剛好抹煞了RMXP 這軟體的優勢和本意。後面我會分享一些我個人在實作上的經驗,
這邊先舉個例子:
RMXP的官方範例遊戲
「白之絆」(http://0rz.tw/d32q5)
這遊戲在戰鬥畫面上完全和RMXP內建不一樣,系統選單也是自製的,但事實上,內部的RGSS碼一個字也沒改,簡單來說,除了素材是自己重畫,只要對如何用GUI操作系統了解透徹,用用前面幾代就有的圖形化介面建立的「開關」和「變數」,用RMXP做出這類遊戲在程式上一點也不難。
(白之絆用的還是其中最簡單且最笨的方式)
總之,我希望英特衛保留原日版紙本這部份,即使我不需要,我想大多數的使用者會需要的。再來是有關介紹電子說明檔和RGSS的部份。
下面主要是介紹日版RMXP的電子檔和RGSS,和由我個人製作經驗產生對說明書製作的看法。
而為了讓大家理解什麼是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系列大多使用者來說頗難)
解釋完RGSS終於可以來講電子檔了,電子檔內容分成三部份,剛好對應三種程度的使用者。
第一部份內容跟紙本說明書一樣(簡略版),對應完全不想碰程式的使用者。
第二部份是腳本入門,是原廠編寫的程式設計基本教科書,介紹的是看懂程式該懂的基本知識。
(包括一些預設程式碼的介紹)這裏專給完全不懂卻想學程式的人看。
第三部份是RGSS的技術文件,是由RUBY官網上參考手冊擷取必要內容,再加上RGSS裡特有的類別和函數所改寫成。
版大(巴哈英版版主)上面引的那段就出自於此,所以我才會說內容沒問題。大家看不懂一來是翻譯實在太爛,二來是不習慣看技術文件。
總之,我希望英特衛可以加強糟糕的翻譯,就結果來看,這次的翻譯靠對岸來做實在不是一件好事。希望校稿的能多用點心加油。還有就是教育使用者,後續教育訓練我不敢期待,但至少在消費之前要教育使用者,讓大家知道自己買的東西是什麼又能做什麼。而不是一堆空泛的廣告詞。
(對一個日版RMXP的使用者來說,看到之前巴哈上廠商版一些文就想替那些人解說一下)
日版的 RMXP 說明分為紙本說明書和電子說明檔,紙本說明書的部份沒有提到RGSS,而是對於圖形化使用者介面(GUI)做出基本且完整的介紹。我認為這部份英特衛應該保留,前面有人認為這是多餘的,但其說法顯然有誤解。
這主要有兩點:
一來要顧慮剛入門的使用者,並不是每個人都有用過前幾代。
二來是讓人搞清楚RMXP[到底是什麼東西]。
看大家在巴哈前面的發言對RMXP的本質似乎都不了解,即使有用過前代的人也因為對RGSS的誤解造成整體的誤解。就我所知,即使在日本這個原產地,大部分做出遊戲的使用者除了套套網路上強者做的RGSS script,其實真正會對內建的的RGSS碼做大修改甚至架構性改變的很少,因為除非你是要做完全不同類型的遊戲(ex:第一人稱射擊、即時戰略等非rpg類),其實在架構上全部自己重寫在大部分的情況下是沒有必要的。反而會造成在投入(做遊戲專案)與產出(專案成果)上的不平衡,(時間/成果的C/P值會很低),剛好抹煞了RMXP 這軟體的優勢和本意。後面我會分享一些我個人在實作上的經驗,
這邊先舉個例子:
RMXP的官方範例遊戲
「白之絆」(http://0rz.tw/d32q5)
這遊戲在戰鬥畫面上完全和RMXP內建不一樣,系統選單也是自製的,但事實上,內部的RGSS碼一個字也沒改,簡單來說,除了素材是自己重畫,只要對如何用GUI操作系統了解透徹,用用前面幾代就有的圖形化介面建立的「開關」和「變數」,用RMXP做出這類遊戲在程式上一點也不難。
(白之絆用的還是其中最簡單且最笨的方式)
總之,我希望英特衛保留原日版紙本這部份,即使我不需要,我想大多數的使用者會需要的。再來是有關介紹電子說明檔和RGSS的部份。
下面主要是介紹日版RMXP的電子檔和RGSS,和由我個人製作經驗產生對說明書製作的看法。
而為了讓大家理解什麼是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系列大多使用者來說頗難)
解釋完RGSS終於可以來講電子檔了,電子檔內容分成三部份,剛好對應三種程度的使用者。
第一部份內容跟紙本說明書一樣(簡略版),對應完全不想碰程式的使用者。
第二部份是腳本入門,是原廠編寫的程式設計基本教科書,介紹的是看懂程式該懂的基本知識。
(包括一些預設程式碼的介紹)這裏專給完全不懂卻想學程式的人看。
第三部份是RGSS的技術文件,是由RUBY官網上參考手冊擷取必要內容,再加上RGSS裡特有的類別和函數所改寫成。
版大(巴哈英版版主)上面引的那段就出自於此,所以我才會說內容沒問題。大家看不懂一來是翻譯實在太爛,二來是不習慣看技術文件。
總之,我希望英特衛可以加強糟糕的翻譯,就結果來看,這次的翻譯靠對岸來做實在不是一件好事。希望校稿的能多用點心加油。還有就是教育使用者,後續教育訓練我不敢期待,但至少在消費之前要教育使用者,讓大家知道自己買的東西是什麼又能做什麼。而不是一堆空泛的廣告詞。
這些是被硬加的廣告不要點
Posted by kk(黑月) at 01:11│Comments(9)
│自製遊戲
この記事へのコメント
所以像是以前做個花俏的對話框就必須一直複製同樣的程式碼,現在就可以解決這個問題嗎?
或者是現在能靠手寫程式,不需要用滑鼠一直按嗎?
或者是現在能靠手寫程式,不需要用滑鼠一直按嗎?
Posted by Markmcm at 2007年06月17日 07:03
>手寫程式
可以,f11按下去會跑個編譯器出來。
不過就像我這篇講的一樣,
軟體內附電子說明檔記得要看,
如果只是把這RGSS當在直接用RUBY寫實在太浪費了,
(而且也會有所限制......)
能從內建的code直接改code會省掉很多時間。
>花俏的對話框
做這東西的方法很多,我記得從前代到現在XP都可以很方便的做和改。
(可以用內建改,也可以利用事件寫在同一頁內)
我並不太懂為什麼要[必須一直複製同樣的程式碼]?
可以,f11按下去會跑個編譯器出來。
不過就像我這篇講的一樣,
軟體內附電子說明檔記得要看,
如果只是把這RGSS當在直接用RUBY寫實在太浪費了,
(而且也會有所限制......)
能從內建的code直接改code會省掉很多時間。
>花俏的對話框
做這東西的方法很多,我記得從前代到現在XP都可以很方便的做和改。
(可以用內建改,也可以利用事件寫在同一頁內)
我並不太懂為什麼要[必須一直複製同樣的程式碼]?
Posted by kk at 2007年06月17日 08:33
這篇很棒耶~
RGSS一直以來都一知半解的
請問KK大 您BLOG的文章可以轉載嘛?
我會標明出處~
RGSS一直以來都一知半解的
請問KK大 您BLOG的文章可以轉載嘛?
我會標明出處~
Posted by 潛水 at 2008年07月09日 21:50
>潛水
因為沒有想到會有人回,所以這幾天都注意到有這新留言......冏
要轉的話,除了註明出處,請告訴我你要轉去哪吧。
因為沒有想到會有人回,所以這幾天都注意到有這新留言......冏
要轉的話,除了註明出處,請告訴我你要轉去哪吧。
Posted by kk at 2008年07月13日 01:55
感恩~
小弟是要轉到
鐵之狂傲論壇
http://www.gamez.com.tw/forum-477.html
剛合併 發現rm的資料相當少
所以 希望能轉貼一下~
小弟是要轉到
鐵之狂傲論壇
http://www.gamez.com.tw/forum-477.html
剛合併 發現rm的資料相當少
所以 希望能轉貼一下~
Posted by 潛水 at 2008年07月14日 14:25
>潛水
ok
加油吧~~
ok
加油吧~~
Posted by kk at 2008年07月14日 15:54
您有禿頭嗎
Posted by 我再找禿頭 at 2010年09月04日 04:39
樓上如果是要廣告生髮水的話好像找錯地方摟XD
我比較希望有人介紹好的理髮師。
還有,雖然我很久沒來,這裡還是不歡迎廣告文。
我比較希望有人介紹好的理髮師。
還有,雖然我很久沒來,這裡還是不歡迎廣告文。
Posted by kk at 2010年09月11日 23:34
靠北w居然過了一年都有人回w
Posted by 無名氏 at 2010年10月02日 00:54