プログラミング

RasberryPi4でMinecraftサーバー(統合版)を構築した話

娘とマインクラフト生活を始めてしばらく経ちましたが、マルチプレイで同時にログインしていないと出来ない状況がだんだん不便になってきました。

娘がやりたいという度立ち上げて、デスクトップ上に置いておくと、

PC作業をしたいときなどに目に付いて邪魔になります。

バックグラウンドで放置していると、30分程度で自動切断されて、「できなくなった」と声が掛かったり。

このままじゃ自宅で何も出来なくなるなと思いました。

各々が勝手にプレイするには、マルチプレイ用のサーバーが必要です。

Minecraftマルチプレイへ向けて

選択肢は3つ

  • Realmsに課金して利用する
  • レンタルサーバーを利用してMinecraftサーバーを作る
  • 自宅サーバーを作る

レンタルするとランニングコストがかかってきます。Realmsなら月額904円(180日で5420円)、レンタルサーバー(ConoHa)だと4人までの小規模でも月額1680円。

多少の初期費用(スターターセット11000円)は掛かっても、ランニングコストは電気代のみで、勉強にもなり、他の用途もあるので、Rasberry Pi4をAmazonで購入して、初めてのサーバー構築にtryすることにしました。

初心者のサーバー構築

しかし、それが苦難の道の始まりでした。

NOOBS、Raspbian(Raspberry Pi OS)がインストールされたセットだったので起動までは簡単でした。

キットを組み立てて、USBキーボード、マウス、HDMIケーブルでモニターを繋げば、GUI仕様でデスクトップPCの如く起動して、動かせました。

画面表示に促されるまま、国、言語、タイムゾーン、ホストネーム、パスワード変更と進めていきます。

Wi-Fiに接続して、

$ sudo apt update
$ sudo apt upgrade
$ sudo reboot

Linuxお決まりのOSアップデートコマンドをします。最初は時間がかかるので休憩タイムになります。

初めてだと、休憩する余裕はありません。

PCモニターが余っていなかったため、別室のテレビをモニター代わりにして捜査していましたが、疲れてくるので、デスクトップPCから同じWi-Fiのサーバーを直接操作できるようにVNC接続を有効にしました。

毎回サーバーのIPアドレスが変わると面倒なので、IPアドレスの固定も行いました。

ついでにssh接続も。

VNC viewerをデスクトップPCにインストールすると、快適にサーバーを操作できるようになりました。

あとはキーボード設定がデフォルトでUSキーボードのため日本語入力をツール入れて有効にしたり、bootしたときにGUIにログインした状態になるようにしたり、HDMIケーブルにモニターが繋がっていなくても起動してVNC接続するように、といった設定をRaspi-configから各種サイトを参考に設定して行きました。

仕上げに再起動して設定を有効化し、準備完了。

まずゲームとして一番安定しているであろう公式サーバーをDLしてみました。

公式サイトで公開されていてお金はかかりません。

サーバーを動かすJavaが入っていないということなので、

$ sudo apt install openjdk-11-jre

これでJavaが動作するようになり、公式サイトにある通りサーバーファイルを置いたフォルダに移動して

$ java -Xmx1024M -Xms1024M -jar minecraft_server.1.16.1.jar nogui

しかし起動しません。公式のチュートリアルを見てみると、eula.txtを編集して、eula=trueに書き換えないと起動しないということ。

その通りにしたら、起動しました。

しかし、こんなに簡単なはずはありませんでした。

Minecraftを開いて、サーバーのIPアドレス、ポート番号(デフォルトで19132)を入力し、サーバーを検索してみますが見当たりません。

統合版(Bedrock Edition)が必要

そうです。

Java版のサーバーを立てて満足していたのです!

昔のPC用として販売されていたJava版と、PC(Windows)とXbox、PS4、iOS、Androidとクロスプレイできるようになった統合版は別のゲームで、Java版サーバーを立てたところで入れませんでした。

初歩的なことが分かっていなかった・・・。

そして統合版サーバーとの戦いが始まりました。

公式では、Windows版とUbuntu版のアルファ版サーバーが配布されています。RaspbianはLinuxだからUbuntu版で大丈夫だろうと思って、Downloadしました。

$ LD_LIBRARY_PATH=. ./bedrock_server

何度も実行しましたが反応がありませんでした。

Linuxコマンドの基礎知識もないため、何故動かないのか見当もつきません。

サーバー以外は問題なく動いていたので悩みましたが、公式のUbuntu版で動かしたいと思い、microSDを書き換える所からやり直して、OSをUbuntu server20.04(LTS)に変更しました。

Windowsデフォルトのフォーマットをするとサイズの大きいSDカードではexFATとなり、FAT32でフォーマットしなければRaspberry piの起動に使えないという罠もありました。

このフォーマットのためだけに、Guiformatというソフトを入れました。

microSDカードにOSイメージを入れるのは、Raspberry pi公式サイトから配布されているimagerが、いちいちOSのファイルをダウンロードしなくて良くて便利だと思いました。(balenaEtcherでもSDカードへの焼き付けはできます。)

Raspberry Pi4にUbuntu LTS server20.04を入れる

ここからが障害の嵐。何をやるにも躓きました。

まず、apt update, apt upgradeができない。

PCでmicroSDカードからNetwork.config修正しても変わらず。

調べてみるとUbuntuに残っているバグみたいな仕様のようですが、初期設定でWiFiが無効になっていました。

Ubuntuの仕様と知らなかったので再インストールしてから調べ直してみて、やっと気づきました。

有線でLANケーブル接続したら繋ぐことができ、apt update, apt upgradeが出来ました。

アップデート出来ればWi-Fiを有効にすることができ、ケーブルを外しても大丈夫になりました。

Ubuntu server設定完了。

GUI仕様で使いたくなり、Ubuntu MATEのデスクトップをインストールしました。

しかし、バグ(?)でGUIなのに何もできなくなり、後悔しました。

Ubuntu serverを再々インストールして今度はlubuntuデスクトップ入れました。

PCから操作したくてVNC接続にtryしましたが、フリーで使えるVNCソフトを調べて試しましたが、

TightVNCserver、VNC4serverで出来なくて諦め、デスクトップPCからssh接続でサーバー操作することにしました。

今度こそUbuntu版マインクラフトサーバー(統合版)をダウンロードして、コマンドラインに先ほどと同じコマンドを入力して起動を試みます。

やっぱり反応がありません。

よくよく調べてみると、Ubuntu版サーバーはRaspberry Pi4に搭載されているCPU(ARM)に非対応とのこと。。。先に言ってよ・・・

Raspbian&非公式BE版サーバーに変更

ここでようやく公式版を諦める選択をしました。

デスクトップPCからVNC接続で自由に操作できるRaspbianの方が良いと考えました。

Raspberry Pi上で動かしやすく、それ故に解説もたくさん見つかる(これ大事)Raspbianが有利だろうと思ったからです。

imagerを使用してRaspbian再インストール

Raspberry Piで動かすための解説を動画で参考にできるNukkitサーバーを選択しました。

フォルダを作成してCloudburstMC(Github)のダウンロードリンクからNukkitのBedrock server(nukkit-1.0-SNAPSHOT.jar)をDL

Nukkit serverの良い所は起動までがシンプルなこと

サーバーを置いたフォルダに移動し、

$ sudo java -Xms1024M -Xmx1024M -jar nukkit-1.0-SNAPSHOT.jar

これだけ。

start.shにこれを書き込んで作成しても良いと思います。

Xms~、Xmx~はサーバーに割り当てるメモリの容量なので、環境によりもっと多く割り当てることも出来ます。

言語をjpn(日本語)に設定。

起動完了 と表示されれば成功です。

最後の障害-バージョン違い

サーバー起動に成功しましたが、Minecraft統合版から入れず。

サーバーのIP、ポートは認識出来てる

しかし、この画面で止まります。

ファイアウォール、セキュリティソフト無効化→入れず。

何故だろうと考えていて、Nukkit Bedrock serverがまだv1.14.60ということに気付きます。

ネザーアップデートがあって、Minecraftのclient側はv1.16.1になったばかり。

Java版ではバージョンを下げて起動することも出来るようですが、統合版にはバージョンダウンする正規の方法はありませんでした。

タイミングが悪かった。。

最新バージョンにサーバーが対応してくれるのを待つか、バージョンを変えるツールがどこかにないか。

気持ち的には1日たりとも待てませんでした。

バージョンを変える方法、調べてみると英語でしたがありました。

mc-w10-version-launcherという、今の僕にピッタリ合ったツールを発見。

ワールドやキャラスキンの情報が消えてしまうこともあり、バックアップ必須です(試す方は自己責任で!)。v1.14.60もきちんと選択肢にあり、バージョンをサーバーと合わせてMinecraftを起動することができました。

ローカルサーバーとして、自由に出入りできるようになりました。

悲願の家族プレイ

そのままではMobがいない世界ですが、Mobpluginを入れると、動物・モンスターが出現するようになります。

Mobの動きが単調だったり、家畜に二体に餌をやっても子供産まなかったり、コマンドがエラーで発動しないものが多かったり、ラズパイでは複数人プレイで簡単にフリーズしてしまったり、不自由なところは多々ありますが、とりあえずの目標は達せられました。

ちなみにその後サーバーはv1.16.0にアップデートされ、最新のMinecraftからも入れるようになりました。

外部公開であったりセキュリティであったり、快適にプレイするための軽量化やプラグインや他のサーバーを試したり、次なる課題は沢山。

PCスキルって目的があると一気に上がるなと思いました。

ABOUT ME
アバター
kanchan
一般内科、消化器内科、救急、脳神経外科、大学病院、関連病院、民間病院。色々な医療現場を経験してきました。 医療×テクノロジーで未来を創造することが夢です。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です