Minecraft で AI をするためのメモ

3 min読了の目安(約2700字IDEAアイデア記事

Minecraft で AI できたら面白そうなので、どんなものがあるのか列挙してみた。

Malmö

マインクラフトで強化学習等するために作られたやつ。
gymみたいに使えるらしい。

Malmö のラッパー

MineRL

単に強化学習だけだと、流石にマイクラくらい複雑なものは学習が難しいみたい。
教師ありも取り入れた方がいいみたい。
これは、独自サーバーで集めた人間のプレイデータを使いやすくしたもの。
Malmo互換らしい。

CraftAssist

マイクラ内のエージェントに自然言語で指示を出して色々作ってもらえるやつ。
強化学習とは違うみたい。
学習に使ったデータセットも公開されてる。

RaspberryJuice+MCPI

公式が、Minecraft + ラズパイでプログラミングを勉強しよう!
って出してるやつの再現modっぽい。
Pythonから建築ができたりするが、情報の取得がほとんどできないのでキツイ。
RaspberryJuiceがJavaのmodで、MCPIがPython側のAPI。
ソケット通信でやってる。

Picraft

上記の方法の発展型。こっちの方が多機能っぽい。

画面キャプチャでゴリ押す

Minecraftでしか動かないのは嫌だって人向け。
画面キャプチャでゲーム画像を取得し、キーボードを操作してプレイさせよう。
大変だけど汎用性は高いはず...

Modding

一から作りたい人向け。
mcpiのところで前述したが、ソケット通信を使えば、なんとかJavaのmodとpythonでやりとりができる。

Java版のクライアントにMODを追加する以外にも方法がある。
マインクラフトはクライアント・サーバモデルで動作しており、それぞれ自作が可能らしい。
つまり任意の言語で、Bot用のコードを書くことが可能。

その他

もしかすると役に立つかもしれないメモ

  • minecraft-python
    サーバーMOD の Spigot の plugin を Python で叩けるようにしたやつ
  • PrismarineJS
    Minecraft の Modding を Javascript でやるプロジェクト

参考