close

要製作一個Minecraft的mod,你需要以下的東西:

1. Java基本知識
 Minecraft是用Java作為骨架語言,所以你必須要懂Java才能夠寫得好。
Java比較偏於C語言家族,所以如果你不會Java但是會C/C++或PHP等C語言架構,那請勤於估狗其相異處,應該也不是難事
如果你懂的是VB(聽說很多高中都有教,但我不是高中畢業的哈哈) ,因為VB不是C語言家族,所以你會辛苦一點,但是好好地注意如何轉換語法,還是可以的
如果你懂的只是HTML、CSS之類的,很抱歉,這跟從零開始沒有兩樣
Untitled     


2. MCP
MCP是一群國外modder所編寫的Minecraft原碼轉譯套裝,全名是「Minecraft Code Pack」
Minecraft的程式碼如同其他java程式一樣,發布板都是一堆class檔,裡面裝有人類無法辨識的二進制碼,需要交由反編譯器(Decompiler)才能夠逆編譯成Java碼
 但是Minecraft的程式即使你拿反編譯器反編譯後,你得到的還是一堆無法辨認用途的英文代碼
 這是因為MojangAB畢竟是間公司,他們有用特殊的機制對變數名稱和函數名稱進行代碼化。而這些代碼規則每個版本都不一樣
(當然,在MCP出現之前已經有強者就憑這些代碼寫出Mod來--但是如果能夠搭飛機到美國,你何必游泳去?

所以MCP內建decompiler可以把class逆編譯成java碼,另外還有隨版本更新的對應表把這些代碼替換成有意義的名稱,這是MCP最主要的功能
另外MCP也附有打包批次檔和ecplise的對應設置值,能夠方便modder開發。

(其實Minecraft的使用規章是禁止像這樣的逆向工程,但是MojangAB也沒有對MCP的存在發表意見..就當他們默許了吧) 

3. 正版Minecraft
為什麼一定要正版?沒錯,開心版也是有MCP逆編譯時需要的檔案,所以使用開心版來開發也未嘗不可。
但是這主要是對原作者的尊重。還有,國外的玩家社群對於開心版是非常的反感
如果你用開心版開發,只要你在作品的展示圖片或影片裡透露出一點點你是用開心版的徵兆,那保證你的帳號會被停權。

(你說你只在台灣發佈?只給好朋友玩?well..隨便你,這是你的良心問題

 

4. Forge
得到Minecraft原碼之後,如果你有去閱讀他,你會發現Minecraft的原程式內完全沒有讓mod存在的開口機制。
這是當然的,MojangAB從來沒有公開允許mod的存在。
所以我們需要一個前期mod來修改Minecraft原碼,讓他的物件增加開口函數來擁有mod的可能。

(自己修改程式來提供開口行不行?可以,但是你的mod和其他mod的衝突率會增加。而且又是那句話--如果能夠搭飛機到美國,你何必游泳去?

提供這種服務的前期Mod目前有ModLoader和Forge。ModLoader的中文教學(Made in China)不少,而且ModLoader有被放置play的跡象
相比之下Forge的資料偏少
重要的是,MC 1.3.2版中,有一個關於EntityID的bug,使用ModLoader是無解的,Forge卻有解
所以本網誌的教學都會以Forge為主。

5.Idea
創意工業最重要的就是點子! 
想必很多玩家在玩了那麼多的Mod之後總會有些點子。
當然,點子不要超出自己的能力範圍,還有不要破壞Minecraft的藝術感,更重要的是不要抄襲。
隨著你的能力成長,你能達成的點子會越來越多。這也是寫Mod的樂趣之一。

 

那麼,一切就緒之後,下一章將會講述MCP的設置>_O 

 

arrow
arrow
    文章標籤
    minecraft mod mcp java
    全站熱搜

    fls81245 發表在 痞客邦 留言(0) 人氣()