RaspberryPiとMinitestで自分だけのブロック世界を作ろう! - uepon日々の備忘録

RaspberryPiとMinitestで自分だけのブロック世界を作ろう!

子どもたちにも人気のMinecraft。自分も3年ほど前はかなりハマっていたのですが、さすがに時間が無尽蔵にあるというわけではないので、現在ではほぼ遊んではいません。

Minecraftは有料ゲーム(アプリ)ですが、最近はで教育版もリリースでてきていて、各地のCoderDojoなどでも使用されているようです。 とはいえ、ただクリエイティブモードでプレイするというのであれば、無料でもあるRaspberryPi版のMinecraftPiを使用すればいいのかなと思っています。 ただ無料とはいえ「RaspberryPiでやるか?」と尋ねられれば、正直どうだろというという気持ちになります。

【参考】 uepon.hatenadiary.com

uepon.hatenadiary.com

Minitestとは?

こちらの画像をみてください。

一見、Minecraftのクローンのように見えますが、これ自体はゲームエンジンであって、このエンジンに付属しているゲームがMinecraftに見えるMinetestというものになるそうです。(わかりにくい)今回はこのMinetestRaspberryPiにインストールして遊んでみたいと思います。個人的にはMinecraftをプレイする前にちょっと試すというようなことやマルチプレイなどを試してみるというような用途に使ってみるにはいいのかなと感じています。最初から興味があるなら購入してもいいんですけど。

ja.wikipedia.org

github.com

インストールする環境

64bitのRaspberry Pi OSを使用しています。最初にLite版のOSをしようしていたのですが、MinetestはXの環境がないと実行ができないようです。最後の実行時に失敗するので、必ずXが使える環境(Lite版以外)のインストールをしましょう。

事前に依存関係のあるライブラリインストール

基本はRaspberryPi OSDebian/Ubuntuに準じているので以下を参照してビルドを行います。

【参照】 github.com

ビルドには必要となるライブラリがあるので事前にインストールを行います。

ライブラリのインストールは以下で行います。

$ sudo apt install g++ make libc6-dev cmake libpng-dev libjpeg-dev libxi-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev libzstd-dev libluajit-5.1-dev gettext

実はこれだけではライブラリのインストールができていません。irrlichtライブラリのみaptではインストールがされないので、先ほどの依存関連の表からGithubのリンクを参照しインストールを行います。

github.com

$ cd ~
$ git clone https://github.com/minetest/irrlicht
$ cd irrlicht
$ cmake . -DBUILD_SHARED_LIBS=OFF
$ make -j$(nproc)
$ sudo make install

これで依存ライブラリのインストールは完了です。

ソースファイルのダウンロード

ソースファイルは先ほどのGitHubにあるのでダウンロードをgitコマンドでクローンしてダウンロードを行います。ただ、そのままだとかなりソースファイルのサイズが大きくなるので—depth 1オプションを使用して最新の部分のみを対象にします。Cloneが終わったらダウンロードしてディレクトリに移動します。

$ cd ~
$ git clone --depth 1 https://github.com/minetest/minetest.git
$ cd minetest

もし、宗教上の理由🤔などでgitが使用できない場合には以下のようにして取得しても大丈夫です。

$ wget https://github.com/minetest/minetest/archive/master.tar.gz
$ tar xf master.tar.gz
$ cd minetest-master

ソースファイルのビルド

残る作業はソースファイルにビルドになります。以下のコマンドを使用してビルドを行っていきます。

$ cmake . -DRUN_IN_PLACE=TRUE
$ make -j$(nproc)

cmakeに渡している-DRUN_IN_PLACE=TRUEはローカルビルドを行うためのオプションになります。システムへインストールを行う場合には-DRUN_IN_PLACE=FALSEを設定してください。システム側にインストールが反映されます。

今回はRaspberryPi 4Bを使用しましたがビルドには20分程度程かかりました。

cmakeでエラーメッセージが出た場合

irrlichtのインストールがされていない場合にはエラーが発生しますので、インストール作業の確認を行ってください。

以下のように表示されていると思います。

minitestの起動

ビルドができたらMinitestを起動してみましょう。

ビルドを行ったパスで以下のように実行します。

$ ./bin/minetest

(注意)リモートコンソールでは以下の様なエラーが発生するので、Xが起動している環境下で行うようにしてください。

起動に成功すると、デフォルトの付属ゲームである「Minetest Game」が起動します。

Minetest Gameに関しては以下の情報を参考にしてください。

https://wiki.minetest.net/Getting_Started/jawiki.minetest.net

これでRaspberryPiでの環境構築ができ、シングルプレイ可能になります。

マルチプレイを行う!

もしRaspberryPiをサーバーとする場合には別の端末などにもMinetestをインストールを行いましょう。

以下のリンクを参考にUbuntu環境から接続を行ってみます。

www.minetest.net

Ubuntu環境でのインストールは以下のようになります。。

$ sudo add-apt-repository ppa:minetestdevs/stable
$ sudo apt update
$ sudo apt intall -y minitest

UbuntuCLIからインストールを行うと自動的にランチャーにも追加されるので、あとはランチャーのアイコンをクリックすれば実行可能です。

以下にUbuntuでのインストールの参考リンクを掲載します。

【参考】 note.com

マルチプレイ時は接続先をRaspberry PiIPアドレスにすることで接続ができます。パスワードなどを設定することも可能です。

おわりに

RaspberryPiMinetestをインストールして、マルチプレイ用のサーバとして仕立ててみました。無料で世界観やマルチプレイを体験するにはちょうどいいのかもしれません。操作などがわかってからMinecraftを購入するっていうのもいいですし、クリエイティブモードであればそのまま作品を作るっていうのでもいいのかもしれません。

/* -----codeの行番号----- */