【備忘録】Apple SiliconマシンでMinecraft Bedrock版を動かす
子供がMinecraftにハマっているものの、スマホだと画面が小さいのでどうにかPCに誘導したい・・・
Minecraft
今時のキッズに大人気のクラフト系ゲームである。
ちなみに、僕自身はいまいち楽しさが分かりきっていない。
いや、多分プレイすれば楽しいんだろうけれど、クラフト系ゲームで遊ぶよりも、コードを書いたり、電子工作したり、3Dプリンタで遊んでいるほうが好きなのだ。
そして、この手のブログ記事も三日坊主で続いた試しがない。
基本的に書くことが面倒臭いのだ。なので、これは備忘録である。
長いのでお付き合い願いたい。
背景
息子がMinecraft(MC)にハマっている。これ自体はクラフト系のゲーム自体は現代版の”レゴブロック”と同じようなものと思っているのでいいのだが、Android版を買え与えてしまったので、彼はスマホでプレイしている。
しかし、スマホはどこにでも持ち歩ける反面で、画面が小さいのと、必然的に凝視するので目に悪いのである。そこで、親としてはどうにかこの状況を解消したい。
選択肢として、1. Windows版を購入し、PCでプレイさせる。 2. もう少し大きなタブレットでプレイさせる が考えられるが、2だとiPadでは動かないのでAndroidタブレットを買う必要がある。ゲーム以外の諸々を考えると、PCでプレイさせるのが将来的を考えると良い選択肢に思える。さらに彼の学校の教材(※米国のPreschool)もブラウザベースでアクセスできるようになっているので、ラップトップを与えるのが良さそうである。
問題はどのバージョンのMCが導入できるかである。
MCは大きくオリジナルのJava版と、Microsoftに買収された後にプラットフォームに最適化されたBedrock版がある。(他に、教育現場向けのEducation EditionやRaspberry Piに入っているPi Editionなどもある・・・)一般的にNintendo SwitchやAndroid・XBox向けのはBedrock版で、要するに公式のオンライン機能とマーケットプレイスがあり友達と協力プレイや公式のMOD導入ができる。
一方で、とりあえずオンラインの機能を使わずにクラフトだけをするのであれば、Java版でよく、こちらはWindows以外にもMacOSとLinuxもサポートされている。
問題はオンラインの機能と息子がAndroid版で作ったセーブデータを使おうとするとBedrock版である必要があり、Microsoftの呪縛なのかPC版はWindows以外に選択肢がないのである。
ここからは我が家固有の問題なのだが、我が家にはWindowsがまともに入っているマシンがない。
僕のメインPCは長年Debianだし、それ以外のマシンはKVMで動いているVMで、家族用のクライアントマシンはMacbookしかないという極端な家庭なのである。
ここからが本題で、なんとかBedrock版をMacOSで動かしたい のである。
Unofficial *NIX Lancher for Minecraft
https://minecraft-linux.github.io というプロジェクトがある。
これは、Bedrock版のMCをWindows以外のプラットフォーム(Linux or MacOS)で動かしてしまおうというプロジェクトである。
原理としては、AndroidのBedrock版のMCを起動するためのランチャーである。そのため海賊版とか割れ物というわけではなく、Android版のMCを正規で購入しておき、あくまでそれを起動するためのツールである。グレー寄りではあるので、使い方等はここでは説明しない。
実はこのアプリ、Raspberry Pi OSにも収録されており、Raspberry Piでは導入できたりする。
Linux向けにはdebパッケージやAppimage形式で配布されており、非常に簡単に導入できる。前述した通り、Raspberri Piなどのディストリによっては標準的なパッケージマネージャから導入できるほどである。
MacOS向けにもpkgが公開されており、普通にインストール可能なのだが、Linux版と比べて幾分かコードベースが古く、現状(2025/10/04)時点ではマトモに起動しないため、この備忘録では僕がMacOS上でソースからビルドした方法を書いておくことにする。
ちなみに、先に言っておくとMacOSにはOpenGL ESのレイヤーが存在しないため、パフォーマンス的にはあまりよくないらしい。(ただし、M4 MBAで動かしてみた分には普通に遊べるくらいのFPSは出ていたが・・・)
How to build
基本的には公式 https://minecraft-linux.github.io/source_build/index.html に書いてある通りなのだが、若干古新聞になっており、Qt6を使う場合はマニュアルのままではビルドできないのと、OpenGL ESのレイヤーをどうするか問題が残る。
大まかに言って、次の3つをビルドする必要がある。
- Game launcher (mcpelauncher):MCを起動するためのLauncherコアプログラム
- MSA:Xbox Liveと通信するためのコンポーネントらしい
- GUI:QtベースのUI
Qtベースということで、Qt6のパッケージが必要である。また、OpenSSLは1系がすでにdeprecatedなので、3系でビルドする必要がある。それと、ビルドしようとしているくらいなので、Homebrew は入っていることを前提とする。
Required packages
自分の環境ではこんな感じである。
brew install cmake ninja pkg-config git libpng openssl@3 qt@6 libzip protobuf
Configure
適当なディレクトリを掘って、gitでgithubからソースをもらってくる。
mkdir minecraft-linux
git clone --recursive https://github.com/minecraft-linux/mcpelauncher-manifest.git mcpelauncher
git clone --recursive https://github.com/minecraft-linux/msa-manifest.git msa
git clone --recursive https://github.com/minecraft-linux/mcpelauncher-ui-manifest.git mcpelauncher-ui
これで、3つのrepoがcloneされたはずなので、以下のようになっているはず。
ls
mcpelauncher mcpelauncher-ui msa
ついでに、bin用のディレクトリも作っておく。
mkdir bin
ls
bin mcpelauncher mcpelauncher-ui msa
PREFIXでインストール先をさっき作ったbin用のディレクトリを指定。
export PREFIX="~/minecraft-linux/bin"
mcpelauncher
まず、launcherからビルドしていく。qt6ブランチに切り替えておかないと標準ではQt5を使ってしまうのでqt6ブランチに切り替える。
cd mcplauncher
git checkout qt6
git submodule sync --recursive
git submodule update --init --recursive --checkout
ls次に、cmakeでconfigureしていく。
mkdir build && cd build
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-DCMAKE_INSTALL_PREFIX="$PREFIX" \
-DCMAKE_PREFIX_PATH="$(brew --prefix qt@6)" \
-DOPENSSL_ROOT_DIR="$(brew --prefix openssl@3)"
無事に通ったら、ninjaでビルド。
ninja
ninja install
msa
基本的にはmcpelauncherとやることは一緒。qt6用のブランチはないので、QT_VERSIONでQt6を指定する。
cd msa
git checkout qt6
git submodule sync --recursive
git submodule update --init --recursive --checkout
mkdir build && cd build
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-DQT_VERSION=6 \
-DCMAKE_INSTALL_PREFIX="$PREFIX" \
-DCMAKE_PREFIX_PATH="$(brew --prefix qt@6)" \
-DENABLE_MSA_QT_UI=ON
ninja
ninja install
mcpelauncher-ui
cd mcpelauncher-ui
git checkout qt6
git submodule sync --recursive
git submodule update --init --recursive --checkout
mkdir build && cd build
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-DCMAKE_INSTALL_PREFIX="$PREFIX" \
-DCMAKE_PREFIX_PATH="$(brew --prefix qt@6)" \
-DOPENSSL_ROOT_DIR="$(brew --prefix openssl@3)"
ninja
ninja install
無事に3つともビルドできると、bin ディレクトリが以下のようになってるはずある。
drwxr-xr-x 4 nyacom staff 128B 10 5 00:31 .
drwxr-xr-x 6 nyacom staff 192B 10 4 23:38 ..
drwxr-xr-x 9 nyacom staff 288B 10 5 00:50 bin
drwxr-xr-x 3 nyacom staff 96B 10 5 00:31 share
PATHにmcpelauncher-ui-qtのあるディレクトリを通した上で、bin/mcpelauncher-ui-qt を叩くとUIが起動してくる。
export PATH=$PATH:~/minecraft-linux/bin/bin/
cd ~/minecraft-linuux/bin/bin
./mcpelaunchher-ui-qt

ただし、このまま起動してもMCの起動に失敗する。理由としてはMacOSにはOpenGL ESのレイヤーがないため。
ANGLE
MacOSにはOpenGL ESのレイヤーがないので、Googleが開発している互換レイヤーのANGLEを導入する。
もちろんソースから導入してもいいのだが、面倒臭いので https://medium.com/@grplyler/building-and-linking-googles-angle-with-raylib-on-macos-67b07cd380a3 を参考にGoogle Chromeに同封されているのをもらってくる。

おわりに
ちなみに、Intel版MacOSでも基本的に同じで、Intel Macでも割と快適に動く。