« MineChem5 | トップページ | Minecraft MOD開発 2 »

2014年3月 9日 (日)

Minecraft MOD開発 1

MinecraftのMOD開発に興味を持ったので試してみる。

まずは開発環境を整えることから。
Minecraft Modding WikiMOD開発環境を作るを参考にする。
JDKは6を使えと書かれているが、手元で使っているJREがjre-7u51-windows-x64なので、同じバージョンのJDKをOracleのサイトからダウンロードしてインストールする。

どうでもいいけど、Solaris版とWindows版のこのファイルサイズの差は何なのだ。

次に、MCPをダウンロードするのだが、こちらによると、Minecraft 1.6.4用にはMCP 8.11を使えと書いてある。
ダウンロードして解凍したものをC:\mcp811へ置く。

次にminecraft_server.1.6.4.jarを入手しなければならないようだが、Yahoo!知恵袋によるとURLを直叩きしないといけないようだ。C:\mcp811\jarsへ置く。

.minecraftフォルダから、assetsとlibrariesとversionsをC:\mcp811\jarsへコピーする。

C:\mcp811のdecompile.batを実行する。「終わるまでお茶でも飲んで待っていよう」と書いてあったけど、数分で終わった。ログはこんな感じ。

C:\mcp811>decompile.bat
== MCP 8.09 (data: 8.11, client: 1.6.4, server: 1.6.4) ==
"scalac" is not found on the PATH.  Scala files will not be recompiled
# found ff, ff patches, srgs, name csvs, doc csvs, param csvs, astyle, astyle co
nfig, rg, ss
Looking in C:\Users\---\AppData\Roaming\.minecraft\versions for mc installs..
. OK
Copying assets... OK
Parsing JSON file... OK
Looking for minecraft main jar... OK
> Checking libraries...
> Checking Natives...
        Extracting native lwjgl.dll... OK
        Extracting native OpenAL32.dll... OK
        Extracting native jinput-dx8_64.dll... OK
        Extracting native jinput-wintab.dll... OK
        Extracting native jinput-dx8.dll... OK
        Extracting native jinput-raw.dll... OK
        Extracting native OpenAL64.dll... OK
        Extracting native jinput-raw_64.dll... OK
        Extracting native lwjgl64.dll... OK
== Decompiling client using fernflower ==
> Creating SRGs
> Applying SpecialSource
> Applying MCInjector
> Filtering classes
> Decompiling
> Unpacking jar
> Copying sources
> Applying fernflower fixes
> Applying patches
> Cleaning comments
- Done in 83.43 seconds
== Reformating client ==
> Cleaning sources
> Replacing OpenGL constants
> Reformating sources
- Done in 15.17 seconds
== Updating client ==
> Adding javadoc
> Renaming sources
- Done in 15.80 seconds
== Decompiling server using fernflower ==
> Creating SRGs
> Applying SpecialSource
> Applying MCInjector
> Filtering classes
> Decompiling
> Unpacking jar
> Copying sources
> Applying fernflower fixes
> Applying patches
> Cleaning comments
- Done in 55.63 seconds
== Reformating server ==
> Cleaning sources
> Reformating sources
- Done in 9.99 seconds
== Updating server ==
> Adding javadoc
> Renaming sources
- Done in 10.48 seconds
== Recompiling client ==
> Cleaning bin
> Recompiling
- Done in 11.44 seconds
> Generating client md5s
== Recompiling server ==
> Cleaning bin
> Recompiling
- Done in 8.18 seconds
> Generating server md5s
続行するには何かキーを押してください . . .

C:\mcp811\src\minecraft\net\minecraft\srcにソースファイルが生成されている。
簡単だと思われるBlockStone.javaを読んでみた。
20行しかないし、クリエイティブモードではブロックタブに表示すること、壊したときは丸石になることしか記述されていないようだ。
これなら理解できそう。

BlockStone.javaで

        return Block.cobblestone.blockID;
となっているところを、
        return Block.grass.blockID;
と変えてみる。

リコンパイルすると数十秒で終わった。

C:\mcp811>recompile.bat
== MCP 8.09 (data: 8.11, client: 1.6.4, server: 1.6.4) ==
"scalac" is not found on the PATH.  Scala files will not be recompiled
# found ff, ff patches, srgs, name csvs, doc csvs, param csvs, astyle, astyle co
nfig, rg, ss
== Recompiling client ==
> Cleaning bin
> Recompiling
- Done in 10.55 seconds
== Recompiling server ==
> Cleaning bin
> Recompiling
- Done in 8.14 seconds
続行するには何かキーを押してください . . .

startclient.batを実行して動作テストすると、石ブロックの破壊で確かに草ブロックがドロップした。

一応の成果を得られたと思ったら、1.6.1以降はForgeを使えMCPは要らないだと?
そういうことはもっと見つけやすいところに書いておいてくれ。
C:\mcp811を消して、環境構築からやり直す。

« MineChem5 | トップページ | Minecraft MOD開発 2 »

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1499066/55303202

この記事へのトラックバック一覧です: Minecraft MOD開発 1:

« MineChem5 | トップページ | Minecraft MOD開発 2 »