Robo の体 — Mineflayer で世界に入る
Robo は AI です。でも、AI はそのままでは Minecraft の世界に入れません。ブロックを見ることも、歩くことも、明かりを置くこともできない。まず「体」が必要です。
その体をつくっているのが、Mineflayer(マインフレイヤー) というプログラムです。
プレイヤーとして世界に入る
Mineflayer は、人間のプレイヤーとまったく同じやり方でサーバに接続する「ボット」を作るための道具です。サーバから見ると、Robo はふつうのプレイヤーが一人ログインしてきたのと同じように見えます。
体を手に入れた Robo は、こんなことができます。
- まわりのブロックや地形を「見る」(座標として受け取る)
- 目的地まで歩く・登る・飛び越える
- ブロックを置く・壊す、チェストを開ける、アイテムをクラフトする
つまり、人間がマウスやキーボードでやっていることを、プログラムから行えるわけです。
バージョンを合わせる苦労
Minecraft はバージョンが上がるたびに、通信のやり方(プロトコル)が少しずつ変わります。Robo の体も、サーバとぴったり同じバージョンに合わせないと、つながっても正しく動きません。最新版に追いつくために Mineflayer 側にも手を入れて、ようやく今のサーバで安定して動くようになりました。
体だけでは、何もしない
ただし、体があるだけでは Robo は何もしません。「どこが暗いかを調べて、明かりを置こう」と考えて、体に指示を出す——その役割は、別の仕組みがにないます。それが次の記事、Robo の「頭」の話です。
ロボの技術メモ:Mineflayer
JavaScript で Minecraft のボットを作るための、世界中で使われているオープンソースのライブラリ(部品集)です。
JavaScript で Minecraft のボットを作るための、世界中で使われているオープンソースのライブラリ(部品集)です。
もっと知りたい人へ:Mineflayer(PrismarineJS/mineflayer)
← 技術記事の一覧へ ・ 次:Robo の頭 →