色々あって、Raspiでマインクラフト鯖を立てる必要がでてきました。
マインクラフトなんてVtuberの配信でしか見てないんですが(
そんな、ほぼ知識ゼロと言って過言でない状況からはじめるので、構築済み環境としては著名らしいSpigotというパッケージの力を借りてまずはローカルマルチ鯖を立ててみようと思います。
実際のところ
少し前からRasPiにはマインクラフトが入ってますが、それじゃなくマルチ鯖として外部から接続できるようにします。
今回の用途では、RaspiOSのLiteで十分のようですが、普段の個人実験で使ってるUbuntu20LTS on Raspi4Bでやりました
大前提としてのminecfartクライアントの導入
そもそも、これがなければはじまらない。
設定ファイルを
$ sudo nano /boot/firmware/usercfg.txt
を実行し、Minecraft実行時に処理落ちしないためのリミッター解除しときます。
各項目を詳しく知りたい方は公式へ。
over_voltage=6 arm_freq=2000
Javaの実行環境
MinecraftはJava実行環境の構築が必要です。
Spigotの公式はOpenJDKの8を勧めてるので、それで。
あわせて、ビルドツールに必要らしいGITもなければ導入。
$ sudo apt-get install git openjdk-8-jre-headless
spigot(=minecraftの)を導入
ビルドツールを入れる
mkdir minecraft cd $_ wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar
Git clone後の処理必要なので、GITのCRLFの自動処理は無しに。
git config --global --unset core.autocrlf
ようやくビルド。
RasPi4Bの8Gメモリでも結構時間がかかります。
java -jar BuildTools.jar #.... Success! Everything completed successfully. Copying final .jar files now. Copying spigot-1.16.5-R0.1-SNAPSHOT.jar to /home/ubuntu/minecraft/./spigot-1.16.5.jar - Saved as ./spigot-1.16.5.jar
スタートアップスクリプトの作成
nano minecraft_startup.sh
中身はこう。
#!/bin/sh java -Xms1024m -Xmx3500m -XX:+UseG1GC -jar spigot-1.16.5.jar nogui
chmod +x mineraft_startup.sh
更に、eulaがデフォでfalseなのでtrueに
$ nano eula.txt
eula=true
ここまできて、ようやく
./mineraft_startup.sh
野菜の成長率とかゾンビの発生とかの変数読んでるのが面白いなと思いました(小学生並みの感想)
で、パッケージを読んだとおもったら、今度は
Preparing spawn area:
といってマップ生成に結構時間がかかります。
結局、3分以上かかりました。
[Server thread/INFO]: Done (195.501s)! For help, type "help"
この状態でRasPiと同一ネットワークに入ってアクセスすれば完了。
外部解放用の設定とかはまたこれか。
参考もと
Hosting Minecraft Server With Raspberry Pi 4 – Cost Effective and Plenty of Power! – I Should Have Went To College
How-To: Raspberry Pi 4 as a Multiplayer Minecraft Server — ameriDroid
SpigotMC - High Performance Minecraft
BuildTools | SpigotMC - High Performance Minecraft
Installation | SpigotMC - High Performance Minecraft