このサーバーの仕様と目的(子どもとマイクラ)

 VPS  621

このサーバーで一体何をしているかということをメモしておく。

テトリスを超え「世界一売れたゲーム」マインクラフト。
いわゆるレゴのパソコン版のようなものか。

サーバーの仕様

サーバーの目的

主に子ども達のマインクラフト(マイクラ)用である。わざわざサーバー構築するメリットは以下の2点ぐらい。マイクラだけなら公式のRealmsサーバーを借りるという手もあるのだが、マイクラ以外の用途には使えないのと最大10人までの制限があるので使っていない。

  • ローカルのマイクラ世界と比べていつでもアクセスできる。
  • ローカルよりセーブデータが消える可能性が低い。

サーバーソフトウェアは非公式で作られている方が良いようだが、今のところ公式のアルファテストのものを使っている。ただし、サーバー側から出来ることは最低限の参加者管理だけなので面白みはない。動作が軽いらしいが、特に比較していないので不明。公式に対応しているOSはUbuntuかWindows。自宅鯖では動作の軽いArchLinuxを使うことが多かったのだが、この理由でUbuntuにしている。使ってみると、Ubuntuはネットに転がっている情報が圧倒的に多く、トラブルも解決しやすいのでもう元には戻れないだろう。

ダウンロードページリンク:https://www.minecraft.net/en-us/download/server/bedrock

ちなみに、特に遊びたい人は居ないだろうが、このブログのアドレスと同じなので入ろうと思えば誰でも入れるようにはなっている。

マイクラ関連では他に、WEB上でマイクラを起動しなくても全体の様子を確認できるようにしている。ツールは、マイクラのワールドデータを鳥瞰図で表示できるフリーソフト(OverViewer)を使用している。

OverViewer:https://overviewer.org/ 

OverViewerでワールドを表示(これはなぜか水と石ばかりの奈落の設定になっていた時のデータ)

少しマニアックな話をすると、OverViewerはJAVA版しか対応していないので、Bedrock版用にワールドを変換するツールが必要だ。現状、Linuxを使って変換できるような無料ツールは無かったので以下2つのモジュールを組み合わせて作成している。やっていることは単純なデータの置換。

※2022年1月22日追記。上記の方法だとver1.18で動作しなくなっている。チャンクフォーマットが変わった事によるものと思われる。

もし構築で気になる部分があれば、コメントなりTwitterで質問していただければ出来る限りお答えする。以下、雑感。

マイクラは子どもの教育に良いのか?

正直まだわからない。長男は3歳半からマイクラ(PC版)をしているが、特に他の子と比べて何か違うという感じはない。現実世界で新しく見たもの、例えば飛行機や新幹線などの乗り物や宮殿・博物館などを家に帰ってマイクラで再現している様子をみると、デフォルメする技術は養われているような気もする。

ちなみに、手先がまったく鍛えられないので、レゴ的なおもちゃの上位互換とまでは言えない。遊んだ後のブロックの片付けが無いので、親は楽ではあるが。

仮想専用サーバー (Vertual Private Server:VPS)を使う理由

今まで古いノートパソコンを使った自宅鯖で遊んでいたが、今回はVPSを使って構築している。物理的なサーバーに魅力を感じないわけではないが、発火リスク・電気代・ハードのメンテナンス作業を考えると長期運用はめんどくさいものだ。VPSを使えば月額で数千円程度払うだけで安定したサーバー運用ができる。今からやる人はVPS一択だと思う。

VPSのデメリット

自宅鯖と比べると一応VPSにもデメリットはある。GPUを使うサーバーを借りようと思うと途端に費用が高くなることだ。例えば、NoxやBlueStacksなどのアンドロイドエミュレーターでゲームのマクロを動かしておくなんてことをVPS上でしようと思うと月額で数十万は必要となる。(過去に試しにやろうとしていたが、価格を知って諦めた)

おわりに

今回はマイクラが主目的なのでサーバーを構築したが、プログラムの実行であれば、最近はGAS(GoogleAppsScript)を使えば解決することが多い。javascript系はちょっとクセがあって自分には使いづらいのだが、全くコストをかけずにオンライン上でプログラムを実行する事ができるのは良い。ストレージ利用はGoogleDriveやOneDrive、iCloudなどクラウドが充実しているし、個人でサーバーを構築するメリットは減る一方で、趣味要素が強くなってきていると感じる。

コメント
  • 2 うーる 2022年1月17日 10:19 AM

    初めまして。うーると申します。
    OverViewerに関しまして、質問させていただいても宜しいでしょうか。

    legato様、Bedrock版Minecraftを自宅サーバで運用している者です。詳細は以下に明記させていただきます。
     ・OS: Ubuntu
     ・Bedrock Server バージョン: 1.18
    当方もOverViewerを用いてワールド俯瞰図の作成を思案しておりますが、Java版のみの対応と知り手段を模索している最中で当ブログを拝見しました。
    しかし当方の知識不足とPythonに触れた経験がないことから、ブログ内に明記されております2つのモジュールの使用方法をご教示いただきたく、コメントを送付させていただきました。

    現段階で内容整理いたしますと以下の通りとなります。
     ・ワールドデータはバックアップ運用にて取り出し済みです
     ・明記されている2モジュールの使用方法(Windows環境へダウンロードした後から俯瞰図を表示するまでの手順)をご教示いただきたいです
     ・現段階の最新バージョン(1.18.*)で俯瞰図を表示させたことはございますでしょうか

    以上になります。急ぎではございません故、legato様のタイミングにてご返信いただけますと幸いです。

    • 3 legato 2022年1月22日 10:38 AM

      うーる様

      コメントありがとうございます!
      残念ながら最新バージョンでは動作しないようです。
      Bedrock版のワールドデータ読み込みモジュールの方でエラーが発生しているので、モジュールが修正されればまた試してみたいと思います。
      モジュールの使用方法については、自作のプログラムに組み込むようになるので、pythonの知識がないと難しいです。(と言ってもプログラミングをされたことがあるのであれば、すぐに慣れるとは思います。私も1年前ぐらいから使い始めたばかりです)

      私の方法についてざっとご説明しますと、
      【事前準備】
      ・Java版(Anvil)で空気しかないワールドを作成し、空気しかないリージョンファイル(.mca)を準備
      【プログラムの流れ】
      ①Bedrockのデータを読み込み ←モジュール使用
      ②各座標のブロックデータをJava版に合うブロック名に置換 ←自作の置換テーブルを用意
      ③空気しかないAnvilのデータを編集して保存。(各r.x.x.mcaファイルは空気しかないリージョンファイルを複製して使う)
      ーーー
      ④OverViewerツールで地図作成。
      【問題点】
      ・指定した座標分しか置換できない。
       (これらのモジュールだけでは、ワールドデータ全体を把握できない)
      ・データ置換作業に非常にメモリを食う。
       (512 x 256 x 512 の地図でもメモリ16GBだと足りないぐらい。置換を分割すればメモリ不足で落ちることはないが、その分時間がかかる)

      ご参考になれば幸いです。

      • 4 うーる 2022年2月15日 10:11 AM

        legato様

        ご返信いただきありがとうございます。うーるです。
        ご説明に加え問題点も挙げていただきとても分かり易く、理解できました。
        技術的な作業に加え、物理マシンのスペック見直しも必要そうです…。試しにご教示いただきました手順で進めてみます。
        ありがとうございました。