サーバーを触る者の教養としてマインクラフトのサーバーを立ててみたので気づいたことを書く。以下で言及するマインクラフトのサーバーとは数人程度での運用を仮定する。

(前提)Java版とBedrock版がある

記事執筆現在マインクラフトにはWindows、OSX、Linux対応のJava版と、Windows 10、Android、iOS、PS4等に対応したBedrock版が存在する。名前の通り、Java版はJava言語で書かれており、Bedrock版はC++で書かれている。

Java版

Java版はJava言語で書かれているのでサーバー側のプラットフォームを選ばない。Javaが動作する環境であればどこでも動く。CPUのアーキテクチャも問題ではない。ただし、JavaVMを使うのであまりにも貧弱なサーバーでは負荷が大きすぎるだろう。数時間使ってみたところメモリ使用量は最大で6GBくらいであった。なお、ラズベリーパイ(4B 4GBモデル)で試験的に運用してみたところ問題なくプレイできた。

Bedrock版

Bedrock版はC++で書かれており、公式ではx86_64アーキテクチャ用のバイナリしか配布されていない。プロプライエタリ・ソフトウェアなのでその他のアーキテクチャで動作させることは基本的にはできない。が、qemu-user-staticを使えばユーザー空間でエミュレートできるのでCPUアーキテクチャが異なってもx86_64のバイナリを実行することができる。ただ、システム全体をエミュレートしてるわけではないとはいえ、負荷が大きいのでラズベリーパイのような性能では運用には程遠かった。また、使用するメモリはおよそ500MBと非常に軽量であった。なお、CPUはそれなりに必要なので注意。

注意点

  • Java版はTCPで通信するが、Bedrock版はUDPなのでルーターやファイアウォールの設定をそれに合わせる必要がある。
  • Bedrock版クライアントは時刻が正しくないとマイクロソフトアカウントで認証できず、サーバーに入れない。「マイクロソフトアカウントで認証する必要があります」というメッセージが出る。
  • Bedrock版でローカルにサーバーを立てたときにサーバーアドレスにlocalhostと入力するとサーバーに入れない。127.0.0.1とすることで対処できる。

Realms

MojangとMicrosoftはRealmsというサービスを展開しており、