無料でGoogleのクラウド上にマインクラフトのサーバーを立てて複数人でマルチプレイする方法
マインクラフトを皆で遊ぶ時にはサーバーを用意する必要がありますが、自分のPCでサーバーを立てる場合、他の人が遊んでいる時はPCをつけっぱなしにしておく必要があったり、サーバーとクライアントを同時に使うことで重くなってしまったりという問題があります。そこで、今回はGoogleのクラウドコンピューティングサービスの無料トライアルを利用して無料でサーバーを用意し、マルチプレイを楽しんでみました。
Google のクラウド コンピューティング、ホスティング サービス、API | Google Cloud Platform
https://cloud.google.com/
「Google Cloud Platform」のページにアクセスし、「無料トライアル」をクリックします。
お知らせメールを受け取るかどうかを選択し、利用規約に同意するかどうかで「はい」を選択し、「同意して続行」をクリックします。
名前、住所、電話番号を入力していきます。
最後にクレジットカードの情報を登録し、「無料トライアルを開始」をクリックします。ここでクレジットカードを登録するのはロボットでないことを証明するためであり、勝手に支払いが行われるわけではありません。
また、試用のために300ドル(約3万3700円)分のクレジットをもらえるという通知が出るので「OK」をクリックします。
ダッシュボード画面が表示されるので、左上のハンバーガーメニューから「Compute Engine」をクリック。
「VMインスタンス」の画面になるので「作成」をクリックします。初めてアクセスする場合、初期設定のために数分間待たされる場合があります。
「インスタンスの作成」画面になるので、設定を行っていきます。名前はマインクラフトのサーバーであることが分かりやすいように「minecraft-server」にしました。ゾーンはサーバーの置かれる場所です。本当は距離が近いasiaゾーンを選びたいのですが、マシンの無料枠が設定されているのはusゾーンのみであるため、usゾーンの中で最も日本に近い「us-west1-a」を選択しました。マシンタイプは無料枠が設定されている「micro」を選択します。右に料金の目安が表示されますが、「今月のf1-microインスタンスの使用量は、最初の744時間分が無料です」と表示されています。一か月は24×31=744時間なので、このインスタンスのみであればかなり長時間無料でマインクラフトが楽しめるという寸法です。
これらの設定が終わったら、その他は初期値のままにして、画面下部の「作成」をクリックします。
「VMインスタンス」のページに作成したインスタンスが表示されます。インスタンスに接続するので「SSH」をクリックします。
もしポップアップがブロックされた場合、Google Chromeならアドレスバー右端に表示されるアイコンをクリックし、赤枠部分にある「ポップアップを常に許可する」を選択してから「完了」をクリックして、もう一度「SSH」をクリックします。
接続すると黒背景に白文字の画面が別ウィンドウで表示されます。
このインスタンスにマインクラフトのサーバーをセットアップしていくのですが、本家のサーバーは非常に動作が重たく、今回使用している「f1-micro」インスタンスでは動作させることができません。そこで、オープンソースで開発されているマインクラフトの軽量サーバーである「CUBERITE」を使用します。インストールの方法を調べるため、公式ページにアクセスして下の「Manual」をクリック。
マニュアルの目次が表示されるので「1-INSTALLING」をクリックします。
curl -sSfL https://download.cuberite.org | sh
を入力するように書かれているので、赤枠部分をコピーして……
別ウィンドウで開かれているSSHの画面に貼り付けてエンターキーを押せばインストール完了。
サーバーを動かすには
cd Server; ./Cuberite
と入力するよう表示されるので、コピー&ペーストしてエンターキーを押すとサーバーが立ち上がります。
初回のセットアップは数十秒かかるのでそのまましばらく待ちます。最後に「Startup complete」と表示されれば準備完了です。
次にこのインスタンスに外部から接続できるように設定していきます。左上のハンバーガーメニューから「VPCネットワーク」にカーソルを乗せ、右に表示されるメニューから「ファイアウォールルール」をクリックします。
新しくルールを追加するので上部にある「+」マークのボタンをクリックします。
名前はマインクラフトのサーバーで使うルールであることが分かりやすいように「minecraft-server」にしました。
下へスクロールし、続いて設定を行っていきます。ターゲットタグの欄も、タグだけで設定が分かるように「minecraft-tcp-25565」としておきます。ソースIPの範囲は「0.0.0.0/0」として、世界中どこからでもアクセスできるようにしました。プロトコルとポートにはマインクラフトのデフォルト設定である「tcp:25565」を記入し、「作成」ボタンをクリックします。
「ファイアウォールルール」に新しいルールが追加されたことが確認できます。
続いて先ほど作成した「ファイアウォールルール」をマインクラフトのサーバーを動かしているインスタンスに適用します。左上のハンバーガーメニューから「Compute Engine」にカーソルを乗せ、右に出現するメニューから「VMインスタンス」をクリックします。
「VMインスタンス」の一覧から、「minecraft-server」の名前の部分をクリックします。
詳細画面に移動するので、右上の「編集」をクリックして設定画面へ行きます。
設定一覧の真ん中あたりにある「ネットワークタグ」の設定で、ファイアウォールルールを作成したときに設定した「ターゲット」と同じタグである「minecraft-tcp-25565」と記入します。
そのまま下へスクロールし、「保存」をクリック。
これでアクセスすることができるようになりました。「インスタンス一覧」で確認できる「外部IP」を使ってアクセスします。
サーバーが認識され、アクセスできるようになりました。
「f1-micro」インスタンスはCPUパワーが貧弱なため、「冒険の旅に出てワールドがどんどん生成されていく」という状況ではCPU使用率が200%を超える場面も。プレイ自体は「ちょっと重たいな」と感じる程度で、プレイできないようになるというわけではありませんでした。
メモリの使用量は2MBほど。さすがC++言語で書かれているサーバーだけあって非常に小さく抑えられています。
起動には成功したのですが、このままだとブラウザを閉じたときにマインクラフトのサーバーも同時に落ちてしまいます。これを回避するためにscreenというコマンドを使います。マインクラフトのサーバーを起動したままの場合、コンソール画面が表示されているのでそのまま「stop」と入力し、エンターキーを押すことでマインクラフトのサーバーを停止します。マインクラフトのサーバーが終了して「~/Server$ 」という表示になったら
screen -S mcs ./Cuberite
と入力し、エンターキーを押します。
ここでもし「~/Server$ 」ではなく「~$ 」と表示されていた場合、まず
cd Server
と入力してエンターキーを押します。
「~/Server$ 」と表示されるのを確認してからscreen~のコードを入力します。
こうしておくと、ウィンドウを閉じてもマインクラフトのサーバーが実行され続けます。なお、「Ctrl+A」「D」キーを続けて入力することで元の画面に戻ることができ、再びサーバーのコンソールを開きたい時は
screen -r mcs
と入力してエンターキーを押せばOKです。
しかし、サーバーにログインしているのが1人ならまだきちんと動作してくれたf1-microも、2人目が入ってくるとだんだん動作が怪しくなってきて、3人目がログインすると、壊したブロックがドロップしなかったり、モンスターや動物を殴れなくなったりとまともに遊ぶのはかなり厳しい状況になってしまいました。その間のCPU使用率が画像に現れていますが、常に100%に張り付いており、処理速度が間に合っていないことが分かります。
Google Compute Engineのソリューション紹介ページに書いてある通りに、無料のf1-microではなく月あたり約3000円かかるn1-standard-1を使って、軽量サーバーではなく公式の重いサーバーを利用してみたところかなり快適に動作しました。n1-standard-1はf1-microとは違って永久に無料とはいきませんが、利用金額が300ドル(約3万3700円)に達するまでは無料で使用でき、300ドルを超えても自動的に課金されるのではなく一度インスタンスが停止し、再度継続利用を確認されるとのことなので、「とりあえず半年くらいサーバーが立っていれば良い」という人はn1-standard-1と公式のマインクラフトサーバーの組み合わせがおすすめです。
・関連記事
Minecraftはもはや芸術の域に達していることを示すムービー - GIGAZINE
マインクラフトがついに全世界売上1億本突破、その快挙を振り返るインフォグラフィックを公開 - GIGAZINE
Googleが自社で使っている「クラウド機械学習」を一般に開放、こんなスゴイことが簡単にできる - GIGAZINE
ポケモンGOというモンスターゲームが世界中で熱狂を起こしたときGoogle内部では何が起きていたのか - GIGAZINE
Googleはクラウド経由で量子コンピューティングを提供予定 - GIGAZINE
・関連コンテンツ
in レビュー, ネットサービス, Posted by log1d_ts
You can read the machine translated English article How to Multiplayer with Multiple People ….