学内限定マイクラ鯖 UT-Craftの話

この記事は Calendar for VUTD(バーチャル東大Discord) | Advent Calendar 2021 - Qiita の19日目です。

UT-Craftとは?

「東大生オンリー」「普通のマイクラと違う世界」をコンセプトに作られた鯖です。

VUTDアドベントカレンダーにいるのは、多少技術っぽさが無いわけではないのと、UT-CraftがVUTDと非常に深いかかわりを持っているからですね。

発端

VUTDは1/30でできてから、急速に整備がなされました。その際に作られたゲームチャンネルの一つがマイクラだったのですが、早速マイクラ鯖を建てようという話になりました。チャンネルを遡ると色々案があったようです。(modを入れたり、特殊なワールドだったりetc)

で、僕自身も色々案があったわけですが、結局のところ「modを入れずに全員バニラで入れるようにしつつ、ワールドはなるべく『普通ではない』世界にする」という折衷案になりました。

そんなこんなで、2/7にサーバーとUT-Craft専用のDiscordを公開しました。

浮島と炎のネザーの世界

最初の世界はオーバーワールドが無数の浮島で構成されており、ネザーが過酷な世界でした。(それぞれ、sanonasu floating islandと、incendiumというデータパックの効果です)また、浮島どうしを効率的に移動するためにフックショットのデータパックを導入しました。

鯖構成としては非常にシンプルにAWSのEC2を一つ立てて、その中で動かしているだけです。データ管理の方式もシンプルで、(バイナリ以外の)設定ファイルをgitで管理してるほかは自分のPCに保存されているだけです。とはいえ、プラグインを入れるなどのアップデートをするたびにマシンのスナップショットを取っていたので、そんなに心配はしていませんでした。

コマンド一つでPCから鯖へのアップロードとダウンロードがそれぞれ行えるようにしているため、プラグインやデータパックを入れるなどのアップデートの際はテストプレイと称してテスト用の鯖を立てて色々やったりもしました。

とはいえ、アクシデントはいくつかありました。今に至るまでの最大のアクシデントですが、やはり「/kill @e」を実行してすべてのモブとエンティティーをkillしてしまったのが一番影響がでかかったですね....killの利用は慎重にしましょう。何かを殺したいときは半径を指定すると致命的なことはだいたい避けられます。

洞窟と崖の世界

マルチプレイあるあるだと思うんですが、マイクラって大人数で作業するとめちゃくちゃ捗るんですよね。僕自身も島を一つ消してますし、中には街ごと作ってしまった人もいました。

そんなわけで、だいぶ開拓されたので次の世界やるかー、ということで、バージョンを1.17にアプデするついでに世界を一新して、(当時はまだ来なかった)1.18の洞窟と崖 +アルファの世界に移行しました。

また、鯖代が結構バカにならなかったので、ちょっと安めのAWS Lightsailに移行しました。(性能を上げたので、結局今までとそんなに鯖代は変わっていませんが、倍くらい良い鯖になりました)

そんなわけで色々やっていたわけですが、1.17の状態で無理やりワールドの高度限界を拡張したりしたためか、めちゃくちゃサーバーが重くなる事態が頻発しており、原因もよく分かっていないので苦しんでいます。また、現在はlog4j2の脆弱性の対応のために一旦鯖は止めています。

これから

log4j脆弱性対応と1.18移行

log4j2脆弱性に対応するついでに1.18に移行してしまおうと思っています。おそらく1.17ではワールドが重いのは変わらないでしょう。もちろんいくつかのデータパックは動かなくなってしまう可能性が高いですが、カスタムエンチャントなどが動けば問題ないかな、と思っています。1.18はワールドがだいぶ改変されており、ワールド改変データパックがなくても充分に「普段とは違うマイクラ」になっているでしょう。

鯖缶bot

なかなか開発が進んでいませんが、Discordから鯖を起動したり削除できるようにしたり、人が居ない時間は落とすことで、「月当たりの鯖代を節約し、その分良い性能のサーバーに移る」という計画をしています。できると嬉しいですね。

終わりに

ということでUT-Craftの話でした。普通のマイクラに飽きた東大生の皆さんはぜひお越し下さい。また、初めてマイクラをやる場合でも、マルチは色々と楽しめると思いますし、他の鯖よりも「最初は易しく、奥が深い」世界になっていると思います。ではまた。