如何評價《騎馬與砍殺》的修改器「魔球」?

魔球修改器是由SSgt_Edward、Ser_Charles和我不是個過客製作的用於修改戰團的修改器。個人感覺是雖然有不少不足,但使用起來還是很方便的,有時即使不是修改用來查看兵種屬性也很方便。甚至魔球還有個「Py碼」-「機器碼」轉換的功能,雖然沒有涵蓋MS(Module System)所有的修改內容,但是還是感到相當神奇,對作者感到很敬佩。然而似乎魔球早就不再開發,作者們也不知所蹤。請問有沒有了解魔球的人,出來談談這個修改器?


我是作者當中的SSgt_Edward。雖然已經不碰騎砍快兩年了,魔球也很早就不再開發,但是回答一下這個問題,也算是對一段時光的總結。畢竟曾經為魔球獻出了很多精力和時間。

很多人可能知道,我和作者中的Ser_Charles是雙胞胎。初中就曾接觸過騎砍原版,但因為接受不了那個畫面而放棄......高三那年(2010年),正好是戰團發布,在電驢上偶然看到便立刻下載下來玩,之後便一發不可收拾.......騎砍獨特的格鬥、馬戰系統,一下就把我們這兩個之前基本只喜歡槍槍槍的玩家拖下了水。

高考完的那個暑假,我開始跟我哥(Ser_Charles)一起上貼吧。我到的第一個吧就是騎馬與砍殺吧,很快就和貼吧裡面當時的活躍人物打成一片。

至於開發魔球的動機,一張圖就可以說明:

圖1. 魔球的起源(2010-11-21)

時間(2010年10月)、地點(騎馬與砍殺吧)、人物(我不是個過客、SSgt_Edward)就全齊了。高中就開始編程的我當時很喜歡做點小程序,圖中的FileSnap就是當時做了用於對比Mod之間區別的一個小程序(說到底就是文件快照,類似於GitHub的對比功能)。當時大家對這個東西不是很感興趣,但是可能是出於可憐我,過客就來推薦我嘗試移植原版的編輯器(【1.11.0.16】 部隊兵種物品 編輯器 支持騎砍1.011版 多語言支持,俗稱美腿修改器)到戰團上。

當時原版的編輯器是用Visual Basic 6 (vb6)寫的,而vb6也正是我們最早接觸的語言,所以很快就上手開始移植。比較難的部分是理解每個機器碼的涵義。一上來就是看看美腿源代碼,但戰團的機器碼新添了很多未知項。開始就是連蒙帶猜,改一下數值,進騎砍看看變化。後來覺得這樣效率太低了,突然想起不如看Module System (MS) Python文件里的注釋來了解含義。果然基本MS里每一項數值Python文件裡面都有介紹(雖然不是以機器碼的形式),再結合MS的編譯文件(process_*.py)來對照解析。解析完了,我們再想用方便的形式(控制項)來表現給玩家修改。(想了解如何解析的玩家很推薦閱讀這篇文章:Item_kinds1.txt文件解析)

於是,邊解析邊設計程序大概耗費了我們2個月時間。那時候我們剛上大一,課程比較緊張,南京的高校那時候晚上還實行斷電(11點左右吧),我們每天基本就是白天上課,晚自習回來斷電後搞一兩個小時。那時候動機非常強烈,從來不感覺累,好的點子也是一個接一個的來。很快,12月份的時候,第一版魔球就發布了!

圖2. 發布魔球(2010-12-26)

說到魔球這個名字,其實魔球里應該是看不到「魔球」這個字眼的。因為最早我們定的名稱就是《戰團劇本編輯器》。後來過客覺得應該也要和美腿一樣有個通俗的叫法,然後加上我當時隨便給編輯器弄了個圖標(圖3),過客就給起了「魔球」這個名字。

圖3. 魔球的圖標

魔球在中文站發布的第一天下載量就是3000多,這個和過客是分不開的。當時過客是騎砍中文站(騎馬與砍殺|騎砍中文站)模型區的版主,我們一做出來,他就聯繫中文站給帖子加高亮,還掛了七天的置頂。現在(也就是今天:D),光中文站魔球下載量就是85w啦(圖4)。

圖4. 魔球目前下載量(2015-09-01)

第一版魔球對觸發器是沒有支持的(這裡指廣義觸發器,不僅僅是simple_triggers.py或者triggers.py里的內容,包括物品的觸發器),儘管我們也讀取相關數據(甚至也解析),但沒有提供用戶介面來修改他們。我們當然不會放過這個騎砍修改最核心的部分,於是後面的更新主力就是在開發對觸發器修改的支持。由於觸發器類似於一個小語言(用數字表示的語言),所以如何把內容轉換成人可讀的(實際上就是反編譯MS),並設計用戶可以修改的界面(類似於IDE,圖5)就是主要問題。也就是在這時候,我們其實已經後悔用vb6來寫魔球了。原因有二:

1. 觸發器里有大量的長整型(long,64位),而vb6所謂的長整型只有32位。這意味著我們需要自定義數據類型,而自定義數據類型意味著很多基層的操作(包括加減乘除)都要重寫。vb6屬於高級語言,對基層重寫的支持非常差,使得我們自己的64位long運算效率很低。

2. 用於修改觸發器的IDE無法直接使用現有控制項,需要對現有控制項重寫。那時候vb6並沒有直接對重寫控制項有支持,而是用Active X來實現。這個技術在當時算是很新穎的,但是兼容性做的並不好,這也是為什麼後來的魔球還要裝個額外的「運行環境」,其實就是往系統里裝一些組件來確保魔球的運行。

圖5. 魔球觸發器編輯器界面(類似IDE)

一直到大二,魔球基本算是成型了,vb6在那時候也早已落伍,我們在做其他開發的時候也已完全轉成C#或者Java,魔球的更新就這樣慢了下來。在2013年6月份解決了最後一個問題之後,就完全停止了更新。值得一提的是,我們曾想採用.net構架,重新編寫魔球,甚至基本已經完成,就差對觸發器支持了,但因為需要準備GRE出國,所以最後並沒有發布(試用版:MOJO.rar_免費高速下載),很是遺憾!

雖然魔球代碼部分主要是我和Ser_Charles完成,但不少人也都為魔球做出過貢獻。我不是個過客、鹿過(中文站ID:心中飛翔)、Last_Promise、威爾士遊俠,等等。現在離開騎砍社區已經快兩年了吧,回想起來卻仍然有些心潮澎湃。另外想吹噓一下,當年我和Ser_Charles聯機也算是令人聞風喪膽的標槍步呢!:D

圖6. Z隊(當時)的Totti前來投降(大霧,其實當晚我們被他大鎚子虐了)。原帖地址:黨隊的標槍好准啊最後,我還是想說一下騎砍的MS。雖然python是一個腳本語言,然而騎砍的MS卻並沒有把python當做腳本語言在用。之所以這麼說,是因為騎砍在運行的時候,實際上讀取的是txt里的代碼而不是py腳本。而騎砍2準備使用C#,有兩種可能:一是跟戰團一樣,C#只是一個編譯工具,而實際讀取的還是txt碼;二是真正在使用C# script (CS-Script)。後者(動態語言)是目前的趨勢,省時省力,而且擴展性比txt碼更強,唯一缺點就是需要編程基礎。


只是用過……

啊,又想起當時為了做MOD啃Python的晦暗歲月了……

當然最後還是沒啃完…

魔球是騎砍這邊最好的面向對象的腳本編輯器了…毋庸置疑。

依靠魔球,完全沒有編程和腳本語言基礎的人都可以做一些簡單的MOD了。

騎砍這邊官方給的mod工具是mod system,其實是一套python的「頭文件」(定義遊戲里所需要用到的函數)和默認的mod、也就是native的源碼。就像這樣:

以及:

這樣。

對這些文件進行修改,編譯(build_module)出來的是無格式的機器碼(txt),這就是自己的MOD。魔球是對編譯出來的機器碼進行修改,優勢在於簡單直接,面向對象,上手容易。

魔球相比mod system的最大劣勢在於自由度上。我最佩服的modder之一,騎砍中文站的rubik曾經拿騎砍的mod system做過一些益智遊戲,華容道之類的。足以看出騎砍的mod system自由度之高,完全可以看作一個python的二次開發工具。

另一個局限則是魔球對一些已經從根本上修改過遊戲模式的MOD可能會有兼容性上的問題。魔球可以修改的一般都是基於native的基本框架的,或者說沒有對遊戲內容進行根本性的修改的MOD。有的MOD根本就已經脫離騎砍自有的框架了,或許就會出現兼容性的問題。不過我還沒有遇到過,至少現在的主流MOD,基本都是適合用魔球修改的,包括潘德的預言,領軍者,1257AD這樣的比較大的overhaul也可以。

其他幾個同樣對MOD非常開放的遊戲來說,全面戰爭系列得翻茫茫的資料庫文件:

P社四萌則是直接對腳本文件進行修改:

文明系列,雖然2K一直有開放MOD的SDK,但是實際上也免不了大量的xml操作:

(上圖來自THE MODDERS GUIDE TO Sid Meier"s Civilization V by Derek "Kael" Paxton)

相比之下魔球的純圖形化界面簡直是太親民了!

騎砍另一個偉大的社區創造就是開源的模型查看器openbrf,這個是國外魔戒MOD製作組當年為了自己製作MOD而寫的程序,現在已經是全球騎砍modder的必需品了:

騎砍社區一直在嘗試吧mod system更見簡單直觀化。比如:

面向對象的module system?

Python源代碼文檔化工具

我記得很久以前中文站甚至有人試圖做一個所見即所得的mod system,但是帖子找不到了……

不過後來可能也是作罷了,因為這個的工程量可不是一般的巨大。

騎砍中文站的大神BigM曾經說:

實際上潛在的騎砍modder的玩家群中,毫無代碼基礎的人仍然是大多數:

而魔球其實也就是為完全沒有代碼基礎的modder準備的,最好的工具。不繼續更新的話,確實很可惜……三年前就有不靠譜的傳聞說騎砍2的mod system會放棄python,轉用C#,但是不知道消息是否確切,因為現在騎砍2也就只有一個影子。如果這樣的話意味著現在這批非碼農出身的modder可能又得從頭開始了。如果是碼農的話可能轉起來快一點?不是很清楚,不瞎說了……


魔球做出來是為了方便做mod而不是修改器因為騎砍的修改實在是太容易改個txt文件就行了……

雙胞胎很強,過客也很強,但是他們年齡都大了,騎砍這麼多年沒出2好多老人都自我冷藏了……


看到作者出來我覺得可以關閉回答了


推薦閱讀:

如何評價《三國志 13 威力加強版》?
怎樣上手 P 社的遊戲?
《輻射 4》到底講了一個什麼故事?
《極品飛車》系列遊戲里哪個版本最經典?可玩性最高?

TAG:單機遊戲 | 角色扮演遊戲RPG | MOD | 騎馬與砍殺Mount&Blade |