この記事ではマインクラフト統合版を非GUI環境でリモートで動作させるべく、サービス化してバックグラウンドで動かす、ということをします。
はじめに
みなさん、マイクラ楽しんでますか?
私はマイクラはAndroidで統合版をやっていて(Java版はやったことがありません)、知人とマルチプレイをしてワイワイしています。
マイクラ統合版はクライアントソフト(Android版, Switch版, PS4版など)自体にもサーバーとなる機能がついていて、マルチプレイをすることができることにはできるんですが、 ワールドの主が不在の時はプレイできないなど、不便が発生します。Realmsというサービスを使えばサーバーを立てることができるんですが、VPSよりちょい安いぐらいな価格で、 ゲームへの月額課金としては結構高価な印象があります(多人数でワイワイやる分にはいいのかもしれない)
歴代マイクラ統合版サーバーたち
過去にマイクラ統合版サーバーを立てるという記事は3本書いていて、それぞれサーバー筐体が異なります。
「Thinkpad X220」というノートパソコンだったり、「Larkbox」というミニPC、最近ではARM64だけど無料で使えるIaaSの「Oracle Cloud」でサーバーを立ててきました。
実生活に及ぼす影響的に、Oracle Cloudが一番快適(無料、無音、ハイスペック!)だったんですが、どうもbox64でエミュレーションすると不具合が起きてしまったので素直にx86_64で動かそうかのうと思った次第です。
ARMでマイクラサーバー動かしてるけど謎のバグが発生してる。船乗ってるときに変なオフセット掛かって微妙に潜水してる
— おはよう君 (@ohayoyogi) 2021年12月27日
これとか。なんか水面を船で進んでたはずが水の中を進んでる判定になって変につっかえたりしました。
今回はどうする?
というわけで、素直に「普通の」パソコンでマイクラ統合版サーバー立てるか~~~と思ったんですが、やっぱりファンレスで静かな方ががいい!ということで、 録画サーバーとして使用しているPentium J2900 を搭載したマシン にマイクラ統合版サーバーになってもらうことにしました。
この録画サーバー、かれこれ10年ぐらい運用していますが、特にそれらしい問題も起こらず、なかなかに偉いPCです。
Windows 10 Home マシンにマイクラ統合版サーバーを立てよう!
というわけで、タイトルの内容です。
Windows 10 Home で動かす場合の障壁 : どうやってリモートコントロールする?
今まではマイクラ統合版サーバーを立てるにあたっては Windows 10 Pro や Ubuntu を使用していたため、リモート管理はRDPだったりSSHだったりで簡単にできました。
しかし、 Windows 10 Home は Homeエディションなので「リモートデスクトップ」が使用できません。TeamViewer使ったりVNC入れたりすれば解決するのかな~とも思ったんですが、 あんまり導入を難しくしてメンテできなくなっても嫌だなぁという気持ちもあり、比較的「それっぽい」やり方を模索してみることにしました。
WindowsにSSHで繋げないと誰が決めた?
Windows 10から「なんか知らんけどsshコマンドが叩ける」みたいな状態になっているのは周知の事実かと思いますが、 実は「OpenSSH サーバー」も導入できます。いつの間にかサーバー機能も持たせられるようになっていたんですね~~~
SSHで繋いでも 開くのはおなじみの「cmd コマンドプロンプト」 ですが。
screenに類するものがない
「よっしゃ SSH で繋がるなら screen コマンド叩いてサーバー動かしてりゃとりあえず動くだろ」と私も思ったんですが、 cmdってバックグラウンドにプロセスを移すことができないみたいですね。
じゃあふつうはどうやるのよ = サービス化
「うーん、てことはSSHのセッション切れたら終わり、ってコト?!」
って感じで途方にくれましたが、まぁそんなアホな話はなく、「サービス化」すればよさそうです。録画サーバーとかそうしてるでしょうに。
マイクラ統合版サーバーをサービスとして動かそう!
というわけで、マイクラ統合版サーバーをSSHで繋いでバックグラウンド起動する、みたいなやり方を卒業し、「サービス化して、Windows起動したらもうマイクラ統合版サーバー動いてる!」 みたいなやり方に変えたいと思います。 (自動起動云々はお好みで変えられます)
世の中には私のような凡人が考えることをすでに実施している人がいてオープンソースで公開までしてくれているのでそれを拝借します。
その名も 「BedrockService」
これを導入していきます。
BedrockServiceの入手
入手の方法はいたって簡単。Releasesフォルダのzipファイルをダウンロード・展開するだけ!
https://github.com/ravetroll/BedrockService/tree/master/Releases
、、、ってオイオイって感じですが、ここらへんはプルリク投げるなどで貢献したいですね。
展開したフォルダを覚えやすい位置に置いておきましょう。
BedrockServiceの設定
展開したフォルダの BedrockService.exe.config
ファイルを編集します。
<BedrockServerExeLocation>C:\マイクラ統合版サーバーのフォルダ\bedrock_server.exe</BedrockServerExeLocation>
そして上記のように BedrockServerExeLocation
を編集し、マイクラ統合版サーバーのexeファイルを置いた場所を指定します。
マイクラ統合版サーバーは下記からダウンロードしてください。
BedrockServiceのインストール
BedrockServiceのフォルダで管理者権限でcmdを開き、下記を実行します
bedrockservice install bedrockservice start
アンインストールは以下
bedrockservice stop bedrockservice uninstall
動作確認
これで、マイクラ統合版サーバーがlocalhostで動いていたら完成です!
終わりに
以上、マイクラ統合版サーバーを動かす記事でした。前にも書きましたが、統合版サーバーは何回も作っては壊ししているんですが、今回は最適解を見つけられたような気がします。これが最後になるとうれしいw
BedrockService
にはなんとマイクラのデータを自動バックアップする機能などもあるみたいなので、もうちょっとソースコード読んだりドキュメント読んで試してみたいと思います。何か知ってることあったら教えてください。
終わりに2
本当はもっといろいろやっていて、WSL2であればscreenで別に動かせるなぁとか思っていたんですが、WSL2だとWindows-WSL2間のポートのマッピングをしなければならず、結構設定が煩わしかったので今回はやめておきました。(dockerもしかり)
終わりに3
マイクラ統合版のWindows10版を買いました。そしてRyzenのパワーを思い知りました(Thinkpad E495 でも全然遊べる)
PS4の DualShock4 をPCにつないで遊んでるけど、 XBox のワイヤレスコントローラが欲しい。
ヒツジ
うちの村です