1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【マイクラサーバー】#2 — Switch のマイクラには「サーバーを追加」が無い

1
Posted at

遊ぶ機械が変わった

家のラズパイでマイクラのサーバーを動かしている。設計はずっと「iPad の統合版でつなぐ」前提で組んできた。

ところが子どもの遊ぶ機械が Nintendo Switch に変わった。決め直すことが2つ出てくる。サーバーのソフトを替える必要があるのか。そして Switch からどうやって入るのか。

先に結論を書くと、1つめは替えなくてよかった。2つめで詰んだ。

クライアントとサーバーの話が混ざっていた

調べはじめて最初に気づいたのは、自分が2つの話を混ぜていたことだった。

Switch のマイクラは統合版しかない。Java版は動かせない。ここから「だからサーバーも統合版専用のソフトにしないといけない」と考えてしまう。実際そう書いてある記事も多い。

でもこれは繋がっていない。あいだに Geyser のような翻訳機を置けば、Java版のサーバーに統合版のクライアントから入れる。クライアントが統合版だという制約は、サーバーのソフトを縛らない。

候補は3つあった。公式の Bedrock サーバーをエミュレータ経由でラズパイに載せる案、有志が続けている軽量サーバーの案、そしていま動いている PaperMC + Geyser を続ける案。

比べて効いたのは速さでもメモリでもなく、バージョン追従だった。Switch は本体がゲームを勝手に更新する。iPad なら「自動更新を切って」と頼む逃げ道が一応あったが、Switch にはそれが実質ない。前2つは1つのバージョンしか受け付けない作りなので、更新のたびに入れなくなる。Geyser は複数の統合版バージョンを同時に受け付ける。

というわけで今のまま続投。ワールドは最初から Java 形式だし、systemd もバックアップも全部そのまま使える。作り直しはゼロだった。

サーバーをどう作っても解決しない問題があった

ここまでは順調だったのだが、調べているうちに作り直しより重い問題が出てきた。

Switch のマイクラには、サーバーのアドレスを打ちこむ画面が無い。

iPad やスマホや Windows の統合版には「サーバー」タブの一番下に「サーバーを追加」がある。ここにアドレスを入れれば自宅サーバーに入れる。前に記事に書いたトンネルの話も、この入口があることが前提だった。

Switch と Xbox と PlayStation には、これが無い。「サーバー」タブに出るのは、マイクラの会社が選んだおすすめサーバーだけだ。

これはサーバー側の問題ではない。 公式の Bedrock サーバーを立てても、軽量サーバーに替えても、同じように入れない。クライアント側の作りの問題なので、こちら側で何を作っても解決しない。

サーバーのソフトを3つ比較して悩んでいたのに、そのどれを選んでも詰む問題が別のレイヤーに刺さっていたわけだ。これに気づいたのが招待の前でよかった。

入口は3つ、まず一番簡単なやつ

入る手段は結局3つに整理できた。

A. 家の中で遊ぶ。 同じ Wi-Fi につないでおくと「フレンド」タブにサーバーが出てくる。DNS も何も触らない。家の中だけ。

B. BedrockConnect を使う。 Switch の DNS 設定を書きかえて、おすすめサーバーの一覧を自分用の一覧に差しかえる。外からでも入れる。

C. B の仕組みを自分のラズパイで動かす。 他人のサーバーを経由しない。一番安全だが一番面倒。

決めたのは「まず A を試す」。これで遊べるなら DNS を触る必要はまったくない。外から遊びたくなったら B を検討する。ただし B は Switch の名前解決を他人のサーバーに預けることになるので、そこは親が判断する。

B で困ることが出てきたら C。ちなみに C をやるときは BedrockConnect と Geyser が同じ UDP 19132 を取り合うので、Geyser を 19133 に逃がす必要がある。これは実際にポートが衝突して気づいた。

手順書が嘘をついていた

この調査でいちばん効いたのは、招待用の手順書を書き直したことだった。

家族向けに「友達を呼ぶときの手順」を書いたファイルがあって、そこにこう書いてあった。

  1. 一番下の「サーバーを追加」をタップ

Switch では実行できない。そして手順書を読むのは、たいてい友達が家に来ている当日だ。その場で「あれ、その画面が無い」となって、30分溶かして遊べずに終わる。

ドキュメントが古くなるのはよくある話だが、この種の嘘は「読む人が一番困っているとき」にだけ露出するのがたちが悪い。普段は誰も読まないので、間違っていても誰も気づかない。

いまは「招待の前に読む」ページを分けて、そこに「Switch は A から試す」「A で一度は入れることを確認してから人を呼ぶ」と書いてある。

学んだこと

サーバー側の設計を3案も比較していたのに、本当の制約はクライアント側にあった。どの機械で遊ぶかは、サーバーの選択肢ではなく入口の有無を変える。 先に入口を確認しておけば、サーバーの比較表を作る前に答えが出ていた。

BedrockConnect は有志が作った仕組みなので、マイクラ側の作りが変われば使えなくなる。だから手順書は BedrockConnect に依存させず、動かなくなったら A に戻れる形にしてある。見直すきっかけも書いた。Switch 版に「サーバーを追加」が付いたら、この話は丸ごと要らなくなる。

自宅サーバーは、動かすところまでは調べれば書いてある。難しいのは、家族が実際にそこへ辿り着けるかのほうだった。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?