マインクラフトはいろいろ面白い

(TL;DR マイクラはおもしろすぎるから最初からやるな)
http://minecraft.net/images/animals.png
えー、いまさらではありますが、マインクラフトってゲームが面白いので最近ハマってやっていました。
Minecraft
ゲームの内容以上に私が面白いなと思ったのはマインクラフト周りのコミュニティとか、エコシステム辺りの話です。
(ゲーム的な面白さの説明は他のサイトに任せます…)

クローズドソースであってクローズドでない

マインクラフトはJavaで書かれておりjarの形で配布されてます。
そしてマインクラフトはオープンソースなプロジェクトではありません。
(ただし販売数が落ち込んだらコードを公開すると公式サイトに以前は書いてあったけど、その時が来るのは随分先のことであろう)

のだけど、コンピュータゲームには古くからMOD(modificatoin)という文化がありまして。
これはゲームを改良・拡張するパッチを有志が作って、それを一般ユーザが当てて愉しむっていう、一口で言うとそんな感じのものです。
そして、マインクラフトもご多分に漏れずMODの文化があるわけなんですね。
マインクラフトのMOD作成に拍車を掛けたのがソースコードデコンパイルしてMODを作りやすくしたMCPMinecraft Coder Pack)というものです。
http://mcp.ocean-labs.de/page.php?4

マインクラフトは素直にJavaコンパイルしたものが配布されているのでわりと簡単にデコンパイル可能で、MCPはさらにデコンパイルしたものに色々パッチを当ててMODを作りやすくしています。
具体的にはヘルパ的なメソッドを入れたり、デコンパイル後の訳がわからないメソッド名を読みやすくしたり(たぶん)、とかですね。

マインクラフト作者でもあるNotchはMODについてどう考えてるのかって言うと、
Notch: ‘Minecraft mod used to threaten my vision’ – Minecraft creator speaks | VG247
最初は嫌だったけどMODの大事さは俺も分かってるから、まあ自然に任せるよ、的なことを言っておりまして。
作者に止められることもなく、MinecraftのMODがどんどん作られ、配布される状況になっており、そのことでさらに多くのユーザを獲得してるという状況です。

MCP登場から時は少し流れて、現在ではMinecraftforgeというのが登場し、更にMODを導入・作成するのが簡単になっています。
Rubygemsみたいなのがでてくるのも時間の問題かもしれませんねえ。

MOD作り

私も練習がてら何個かMOD作ってみたのですが、これは結構面白いですね。
コードを読まないとMOD作れないので読んでみましたが、3Dゲームってこうやって作るんだなぁと思いました。クラス設計とか結構キレイで感心します。
Minecraft MOD作り入門」みたいな本があると良さそうだなというアイデアはありますが、まあちょっと色々とグレイな感じが…。
しかし、初心者がプログラミングを覚えるという観点でいくと、けっこう面白いと思います、MODづくりは。

Wikiと掲示板の多用

MLとかあるのかもしれませんが、Minecraftのほとんどの情報は専用の掲示板とWiki上で交換されています。
交換されている情報はほんとうに様々で、基本的なMinecraftの操作方法から、自作MODの配布まで様々です。
日本にもかなり大きな掲示板(日本ユーザフォーラム)があったり、Wikiがあったりします。

フォーラムでは自作MODが配布されていて、このMOD製作者の間にもコミュニティがあったり。
またMOD紹介者というMODの紹介動画をyoutubeニコニコ動画に上げる人たちがいて、その人と視聴者の間でコミュニティがあったりと、なかなか熱い感じになっています。
MODとかも掲示板のコメントの添付ファイルという形で貼る感じで、ワイルドだぜぇ。

NBTという謎のフォーマット

こっからは完全に余談なんですけど、マインクラフトしてるとどこに何のブロックがあるのか知りたいことがよくあります。
で、そのワールドの地形データはNBTフォーマットという独自のバイナリ形式で保存されていまして、それをパースする必要があるんですね。

厳密に言えばそのNBTフォーマットの仕様や地形データの形式自体も公開されているわけではないんですが、仕様を書いたテキストファイルが公式サイト上のとあるURLにおかれていた時期があって(わざとかどうかはしらない)、それを参考にしたものと、あとはリバースエンジニアリングを駆使しまして、Wikiに詳細な仕様がまとめられています。

恐ロシア。でもこのおかげでRubyでパースするプログラムは簡単にかけたりしたので、まあゴニョゴニョ…

異文化楽しい

長文を書いてきたんですけど、何が面白かったかって、オープンソースじゃないのにかなりしっかりとしたエコシステムができてるんだな〜ということですね。
あまりにもユーザが多いと、どんな障壁や障害もへし折り、ぶち倒していくんですね。
そのパワーというか、そういうのスゴイなあと思いました。

Notchが言うとおり「It all kind of emerged organically(これらはすべて有機的に現れてきたものなんだ)」という感じでしょうか。
こういうことって過去にもあるんでしょうけれど、私はゲーム界隈のコミュニティについて詳しくないので色々と新鮮でした。

マインクラフトも元々は1人のコンピュータオタクがJavaで創り上げた3Dゲームなんですよね。
それがここまでのユーザを獲得して、しっかりコミュニティが育って、それぞれ独自に進んで行っていると。
以前、高橋会長がRWCで「人がやりたいと思ったことの邪魔はしないようにする」みたいなことを言ってましたが、ある程度大きなコミュニティ群ができると、作者としてはそういうことが大事なことなのかもしれないですね。

長文失礼しました。私もそんな暇じゃないんで、マイクラに戻ります。じゃあ。