マイクラでプログラミング(Python編)

パソコン版のマイクラでは、ゴニョゴニョするとプログラムで遊ぶことができる。

なので、ゴニョゴニョしていく。

前提として、 WindowsにMINECRAFTがインストールされている事。
他のOSでも可能だが、とりあえずWindowsで。

まずは、プログラミング以前に、ゲームにMODを入れるためのソフトを入れる。ちなみにMODとはModificationの略。

次のページから「Download Recommended」の「Installer-win」をダウンロードしてインストール。

http://files.minecraftforge.net/

インストール中に選択画面が出てくるが、デフォルトの「Install client」でOK。

インストールが終わると、マイクラのランチャーには最新バージョン以外に、forgeのスタート項目が出てくる。

forgeを選択して「プレイ」すると、「Mods」というボタンが表示されている。

Open 2.0が必要とか言ってるが、これは自分のPCのグラフィック処理能力が低すぎるため。
グラフィックボード買いたい。でも、金ない。誰かPCI Express X16のボードください。
と言うか、PC自体が古すぎだな。

続いてPython自体を次のページからダウンロードしてインストール。

https://www.python.org/downloads/windows/

1点、インストーラの最初のページで、「Add Python 3.6 to PATH」のチェックを入れる。

コマンドプロンプトで次のコマンドを実行してインストールされたことを確認。

>python -V
Python 3.6.1

次に、Pythonを動かすためのMODを入れる。次のページから、mods.zipをダウンロードする。
ついでにpython-scripts.zipもダウンロードしておく。

https://github.com/arpruss/raspberryjammod/releases

mods.zipの中の、使っているマイクラのバージョンと同じ名前のフォルダから、RaspberryJamMod.jarを解凍して、以下のフォルダにコピーする。

C:\Users\[ユーザ名]\AppData\Roaming\.minecraft\mods\

マイクラを起動して、forgeのプロファイルで起動すると、MODSの中に「Raspberry Jam Mod」が追加されている。

先ほどダウンロードしておいたpython-scripts.zipを展開し、mcpipyフォルダを以下のフォルダに入れる。

C:\Users\[ユーザ名]\AppData\Roaming\.minecraft\

おもむろに新しい世界を作って、マイクラ上で以下のコマンドを入力。

/py helloworld

画面に「Hello world!」と表示されて、足元にダイヤモンド鉱石が出現していたら成功です。

後は、mcpipyフォルダのpyファイルを見ながら、アイデアを練りましょう。

マイクラを始めた2

そう。我が家を壊す奴。それは、

クリーパー

近づくと、点滅して自爆する。

近くのプレーヤーも、ゾンビも、ブロックも一気に吹き飛ばしてしまう。

スタート地点から長い道のりのあとに爆破されて殺されると、もうやる気が半減。

死んでしまうと持っていたアイテムはその場所にばらまかれた状態になる。
取り戻しに向かうが、うろちょろした後には、元の場所に戻れなかったりする。
戻るのが遅すぎると、それらのアイテムは消えてしまっている。

初心者としては、スタート地点に拠点を作るのが良いのか。

さて、ウロウロすることに飽きたら、道具を作ってみる。

木を切り倒すには斧
土を掘るにはスコップ
岩を掘るにはつるはし
敵を倒すには剣

木→木材→棒と加工して、木材と棒で木の道具を作る。
工作台で丸石と合わせて石の道具を作る。

加工は、持ち物表示、工作、装備を表示する画面から行う。画面右下「・・・」から開く。

工作台は、木材をいっぱい使って作る。
工作台でないと作れない物がほとんどなので、まずは1つ作ってしまおう。

そして、木の道具の次は鉄の道具。

鉄は掘り進んでいくと鉄鉱石があるので、かまどで燃やして生成させる。
燃やすための燃料は、燃えるものならなんでもOK。掘って見つけた石炭が最適だ。

そして、道具を駆使し、資源を増やして色々する。

そしてそして、最後は、エンダードラゴンを倒す。
これが最終目的。。。とすることもできる。

なんだよ!エンダードラゴンって?となるが、最初はそういうことを考えずに慣れるのがよいのではなかろうか。

マイクラを始めた1

といっても、だいぶ前のこと。

ケチな性分なので、お金を出して買うまではしたくない。

偶然Amazonから1000円分のアプリ購入クーポンを貰った。
なので、これ幸いと、Minecraft PE(Pocket Edition)を買った。ん?もらった?

ゲームを開始する。というか、ゲームなのか?ゴールは何だ?

目的もないままウロウロして、日が暮れた。
といっても、ゲーム上の夜。このゲームには1日があるようだ。

さらにウロウロしていると、何だか知らないが、殺られた。
意味がわからない。

[Respawn]してみる。何だリスポーンって?

生き返る。一番最初の場所から。

何回か、殺られる。生き返る。を繰り返す。

何回も同じ場所から。同じ向きで。

繰り返すうちにゾンビがいることが分かった。骸骨は矢を射ってくる。

とりあえず、道具も何もないが、樹木を伐採できる。
素手で大木を削る。大木の一部が、だるま落としのように無くなり、上から木が落ちて、、、来ない。

木が浮いている。この世界では物は落ちてこないらしい。
注:砂利など、一部の物は落ちます。そういうルールです。

ちなみに、自分は落ちる。落ちる高さが高すぎるとダメージを受ける。

動物も落ちる。ゾンビも落ちる。

あぁ、この世界には動物もいる。鶏、豚、馬、うさぎ、山猫などなど

やっつけると肉が取れる。食べれる。お腹が満たされる。
ちなみに、この世界では腹が減る。

満腹だと、ダメージが解消される。

この世界のゾンビは太陽に弱いらしく、太陽に当たると燃えて肉が残る。

ゾンビの肉は、どついてやっつけても手に入る。
が、取れる肉は腐っている。ただし、食える。腹は壊さない。
そもそもトイレには行かない。

腐った肉を食べると、体から嫌な匂いが出ているっぽい表示がされる。
俺のデバイスから、匂いを出す機能はない。多分臭い。そういう色のモワモワが表示される。

とりあえず、木をどついて丸太を手に入れる。地面を掘って土を手に入れる。
砂地を掘って砂を手に入れる。草をむしって、たまに種を手に入れる。

日が暮れたらゾンビに襲われないように、家に帰る。

家と言っても、ゾンビが入れないように、ブロックを2個の高さに積み上げた、ただの壁。

ブロック2個の高さは、ゾンビは超えられない。ちなみに自分も超えられない。

家に入るときは、ブロックを崩して入り、ブロックを積んで戸締まりする。

ブロックの種類によって、柔らかい、すぐに壊れる物もあれば、硬い物もある。
なので、壁はやわらかい土で作っておく。

柔らかくてもゾンビはそれを壊せない。アイツを除いては。。。

マイクラのサーバーを裏で動かす

サーバーのインストールが終わり、起動もできた。
だが、シェルで起動した状態を保つ必要がある。
なので、裏で動かすための設定を行おう。

まず、screenなるソフトが必要。
次のコマンドでインストール済みか調べる。

$ yum list installed | grep screen

インストールされてなかったら、次のコマンドでインストール。

$ sudo yum install screen

「完了しました!」と出たら、便利なスクリプトをダウンロード。

$ sudo wget -O /etc/init.d/minecraft “http://minecraft.gamepedia.com/Tutorials/Server_startup_script/Script?action=raw”

ただし!wgetを使ってダウンロードすると、各行の先頭にスペースが入ってしまう。すべて消す必要がある。更に、ファイルの最後には余分なXTML文が入っているので、「exit 0」以降の行は削除。

あと、ファイルの最初の方にあるパラメータを自分用に変えていく。次の行ではminecraftサーバーをインストールしたパスを書いておく。

MCPATH=’/home/minecraft/minecraft’

最後に実行するために権限変更。

$ sudo chmod a+x /etc/init.d/minecraft

これでサービスとして裏で動く。例えば、起動は、

$ sudo service minecraft start

停止は、

$ sudo service minecraft stop

状況表示は、

$ sudo service minecraft status

OS起動と同時にminecraftサーバーも起動させたい場合は、次のコマンドを実行しておく。

$ sudo chkconfig –add minecraft

でもね、俺のサーバ、メモリ1GBなのね。
だからかな?クラッシュするのね。

[Server Watchdog/FATAL]: Considering it to be crashed, server will forcibly shutdown.
[14:27:18] [Server Watchdog/ERROR]: This crash report has been saved to: /home/minecraft/./crash-reports/crash-2017-06-02_14.27.18-server.txt

サーバーを立てること自体が目的だからいっか。
つまりは、自己満足なのよね。

あと、バックアップを定期的に行うには、crontab使おうね。

$ sudo crontab -e

0,30 * * * * /etc/init.d/minecraft backup

これで30分ごとにバックアップ取ってくれる。

でも、バックアップ先のパスをBACKUPPATHに設定しておかないとダメよ。

マイクラのサーバーをインストールしてみる

まず、インストール先はCentOS。

サーバーはJAVAで動いているということなので、インストール済みか調べる。

$ java -version
-bash: java: コマンドが見つかりません

ちなみに、

$ yum list installed | grep java

でも何も表示されない。

$ yum search openjdk

で、インストールできるパッケージを探す。

32bitと64bitでインストールするべきものが違うので、どちらかを次のコマンドで調べる。

$ uname -a

表示される中に、32bitなら*86という文字列が、64bitなら64という文字列が含まれている。

で、今回は次のパッケージをインストール。
JAVAのバージョンは8だ。

32bitなら、

$ sudo yum install java-1.8.0-openjdk-devel.i686

64bitなら、

$ sudo yum install java-1.8.0-openjdk-devel.x86_64

「完了しました!」と出たら、確認してみる。

$ java -version
openjdk version “1.8.0_131”
OpenJDK Runtime Environment (build 1.8.0_131-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)

最新のサーバーをダウンロードする。
以下のページから最新版を確認して、


https://minecraft.net/ja-jp/download/server

次のコマンドでダウンロード。

$ wget https://s3.amazonaws.com/Minecraft.Download/versions/1.11.2/minecraft_server.1.11.2.jar

そして、ダウンロードしたサーバーをおもむろに実行してみる。

$ java -Xms1G -Xmx1G -jar minecraft_server.jar nogui

ちなみに、-Xms1Gなどはメモリを1GB確保するためのオプション。それ以下だと処理が重くなるらしい。
でも、サーバー自体のメモリはいくらか?次のコマンドでMB単位のメモリ情報を参照しておく。

$ free -m

初回起動時は、eula.txtの確認を指示される。
次のコマンドでエディタを起動して、

$ vi eula.txt

#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#Fri Jun 02 09:42:54 GMT 2017
eula=false

最後のfalseをtrueに書き換えて保存。細かく書くと、
[i]、カーソルで移動して「false」を「true」に書き換えて、[esc][:][w][q]

[Add Server]ボタンで、

サーバーアドレスを入れて、[Done]
ちなみに、サーバーのデフォルトのポート番号は25565

一覧に追加されるので、選択して[Join Server]

めでたくサーバーにログインできました。

最後にサーバーを停止するには、次のコマンドを実行。

/stop

これで世界が止まる。。。