![見出し画像](https://assets.st-note.com/production/uploads/images/49497108/rectangle_large_type_2_0890ab19ba621a9a5666179ae125ca1e.png?width=1200)
minetestのサーバ立ててみた
minecraft代替サンドボックスゲームminetestが良さそうなので、調子にのってサーバ立ててみました。
当初は私が自分のPCのワールドでプレイしつつホスティングをオンにし、子どもたちがそれぞれの端末から無線LANを通じてアクセスするという形でやっていましたが、ちょっとした設定変更でゲームを中断する度に全員落ちてしまったり、プレイ中に用事で離席してる間に獣に食われてたりするので、私がいなくても子供らが勝手にやってもらえるシステムにします。
サーバ導入自体は下のサイトなどを参考にしてわりと簡単にできたので、導入の詳細は省略します。
https://www.vultr.com/docs/how-to-setup-a-minetest-server-on-ubuntu-17-04
すでに同じPC上でminetest立ち上げ、ワールドを作成済みなら、サーバ起動時に既存のワールドを指定してやればいいようですが、私の場合flatpak版を使っていたので、
~/.var/app/net.minetest.Minetest/.minetest/
内の「mods」と「worlds」フォルダの中身をそれぞれ、
~/.minetest/
へコピーしてやる必要がありました。
サーバの起動を確認したら、クライアント端末で接続します。
これまでのマルチプレイと同様、「ゲームに参加」からホストのIPアドレスと名前などを入れて、接続ボタンを押すだけです。
もちろんどの端末からでも自分の名前で入ればそのキャラとしてプレイできます。
ちなみに、サーバ稼働中の私のPCでminetestを立ち上げてクライアントとして参加することもできました。
低スペックPCにスマホをつないでプレイ
これで、家庭内のどの端末からでも自分の名前で参加できるようになったので、試しにlinux運用のmacbook late2006にminetestを入れてプレイしてみましたが、これはさすがに重かった。そこで以前マイクラでやったように「scrcpy」を使いスマホをusb接続し、android版をmac画面上で動かしてみました。
ーーscracpyに関する過去投稿
【簡単にお金をかけずにスマホゲームをlinuxPCモニタに表示し、あわよくばゲーム配信も】
https://note.com/bbp3110/n/na958ed633ea6
このmacbookの解像度が1280×800なので、このままだと画面からはみ出してしまいます。
-mオプションで、出力を変更できるようです。
$ scrcpy -m 1280
という感じで起動してやると、うまいこと表示されました。
リンク先にもあるように、なぜかキーボードはスマホにbluetooth接続したもの、マウスはPCにつないだものを使うと比較的遅延なく動きます。
ネット経由のマルチプレイ
ポートを開いてグローバルIPを相手に知らせれば、ネット上の知り合いなんかともプレイできそうですが、そういえばウチのネットはDS-lite方式なので、残念ながらそもそもポートの開放がムリだったはず。
そこで、ためしにルーター設定でPPPoEに切り替えて、UDPプロトコルでポートを開くなどしてみると、ネットから私のワールドにアクセスできました。
とはいえ、せっかくDS-liteの高速通信があるのにこれのために常時PPPoEにしておくなんてことはさすがにあり得ない。
そこで、倉庫に打ち捨てられていた15年前くらいの古いルーターを発掘し、DS-liteとPPPoEを同時接続することで、通常のインターネット利用とminetestサーバ用の回線を分けることにしました。
モデム
|
PPPoE接続ルータ→minetestサーバ
|(IPv6パススルー)
DS-lite接続ルータ→通常使用のクライアント
てな感じにルータをセッティングし、最初のルータはPPPoEに接続、IPv6をパススルーします。
サーバとなるPCのIPアドレスを固定し、minetestで指定したポート(初期値は30000)を開放、プロトコルを「UDP」に設定。
DS-lite接続のルータの変更なし。
本当なら従来のルーターを先につないで、PPPoEをパススルーしたいところですが、残念ながらこのルーターは、DS-liteで接続状態でパススルー機能を使用することができないようなので、やむを得ずこの形に。
パススルーしているとはいえ、手前がなんせ古いルーターですから当然LANポートなどが100Mbpsリミットでボトルネックになります。
ふつうに繋げば200Mbpsくらい出るのが、70Mbpsくらいになってしまいます。
まぁ、これくらいの速度が出てれば、通常のブラウジングや動画視聴に差は感じられないし、minetestのクライアントも問題なく動きます。
どうしても速度が欲しいときは、サーバを停止して、モデムから出ているケーブルを元のルーターに差し替えるだけなので、単一ルータ内でいちいちDS-liteとPPPoEを手動切り替えするよりはぜんぜん楽です。
サーバは当初実験的にメインPCに立てておりましたが、セキュリティもさることながら、これだとサーバ起動中は常にPPPoE接続となってしまうので、ふだん子どものyoutube視聴マシンとなっているlinux運用のmacmini2008に移動しました(ワールドやmodのデータは元のPCからコピー)。
$ minetest --server --worldname 〈移植したワールド名〉
でサーバ起動。
クライアントからminetestを起動し、家庭内マルチのときと同じように、「ゲームに参加」からサーバのグローバルIPとポート番号、自分の名前を入れてアクセスします。
core2duo、メモリ4GBで、PPPoE回線は遅いですが、2,3人でまあまあふつうにプレイできます。遠くへ行くと風景の描画が追いつかないこともあるけど。
携帯電話回線からのテストはしましたが、じっさいに遠方からのアクセスはまだなので、検証できたら結果をまた書きたいと思います。
のんびりとバーチャル田舎暮らしを楽しむにはもってこい
minetest自体は子どもも非常に気に入っています。
マイクラのpeace modeは空腹でライフが減ることもなく物足りなさがあるけど、ひとつ上のeasy modeにするといきなりハードルが上がります。
いっぽうminetestではなにもしなくても適度にライフが減るので、食べ物を集めたり耕作をする甲斐もあるし、敵モブはmodの加減で調整ができることで、子どもでも落ち着いて建築や畑作りなどに精を出せます。
modに関しては、依存や相性などあって安定するまでにちょっと紆余曲折あったので、そのあたりについては後日まとめます。