今まで語られてこなかったマイクラバドミントンの裏側

はじめに

はじめまして!マイクラバドミントンを運営している団体「まいばどすたっふ」のかずえもん、ふらみんご、さいらすです。

今回は、普段マイクラバドミントンのシステム開発・インフラ管理を担当している私たち3名で、マイクラバドミントンの裏側と、さくらインターネット様からご提供いただいているインフラをどのように活用しているかをご紹介します。

筆者紹介

今回の記事はシステム開発(ゲーム外)・インフラチームの以下3名で共同執筆しております。

K. かずえもん:

大会企画や大会運営システム「Shuttle」などのシステム全般を開発しています。好きなさくらのサービスは「さくらのメールボックス」です!

F. ふらみんご:

マインクラフトサーバーなどインフラの管理や、プログラムを書いています。好きなさくらのサービスは「さくらのレンタルサーバ」です!

C. さいらす:

物理サーバーの管理や構築、ネットワークの設計運用を行っています。好きなさくらのサービスは「さくらのVPS」です!

マイクラバドミントンとは?

マイクラバドミントンは、世界中で遊ばれているゲーム「マインクラフト」の世界の中でバドミントンを再現したeスポーツです。

2019年頃から大会を開催しており、これまで延べ1,000人以上のプレイヤーの皆さんにプレイいただいています。また、VTuberさんやマインクラフトの配信者さんをお呼びするスペシャルマッチを年に1回開催しています。

2025年2月に開催した冬大会の記念写真

マイクラバドミントンはマインクラフトの標準機能である「データパック」を用いて開発しているため、マインクラフトの Java 版を持っている方であれば、MODなどの導入をすることなくサーバーに接続するだけですぐにプレイできることが特徴です。

現在は初心者さんを対象とした無料の体験会や年4回開催しているシーズン大会、有料チケット制の24時間サーバーでプレイすることができますが、今後さらにプレイできる機会を増やしていく予定です。

マイクラバドミントンの裏側を覗いてみよう

ご紹介の通り、マイクラバドミントンはゲームサーバーに接続することでプレイできるゲームとなっており、これらのゲームサーバーの一部にさくらインターネット様よりご提供いただいている「さくらのクラウド」を使用しています。

ゲームサーバーの立て方

マインクラフトのゲームサーバーを建てるには、サーバーの中でサーバーソフトウェアを立ち上げる必要があります。サーバーソフトウェアはマインクラフト公式が提供していて一般に「バニラ」と呼ばれているソフトウェアと、オープンソースで有志によって開発されている Forge や Fabric、Spigot、Paper などのソフトウェアが存在します。

マイクラバドミントンは「データパック」を使って開発していますが、後者のオープンソースで開発されているソフトウェアは追加機能の実装によって互換性が保たれていないものが多く、期待通りに動作しないことがあるため、公式ソフトウェアを使用してゲームサーバーを構築しています。

マイクラバドミントンではこのサーバーソフトウェアを screen コマンドを使って起動するパターンと、Docker を使って起動するパターンの2つを使い分けています。

前者の方法では、screen コマンドを利用することで複数のシェルを開いたままの状態にして、SSH 接続が切断されていてもサーバーが動作するようにしています。screen はリアルタイムにコンソールにアクセスしてコマンドの実行やログの確認ができるため効率的に管理を行うことができます。

後者の方法では、マインクラフトサーバーの Docker イメージを用いてサーバーを起動しており、1つのホストサーバー上で立ち上げるゲームサーバー数が多い場合にこの方法を用いています。

サーバーの状態監視

マインクラフトのゲームサーバーを構築しているサーバーが正常に動作していることを監視するために、別のサーバー上で Zabbix (ザビックス) というソフトウェアを動作させています。

Zabbix のダッシュボード画面

Zabbix はサーバーが正常に動作しているかを24時間監視してくれるオープンソースソフトウェアです。Web からシステムの状態をグラフで分かりやすく確認することができ、問題が発生したときは自動的にメールなどで管理者に知らせてくれます。

Zabbix で確認できるサーバーメモリ使用率グラフ

そして、ゲームサーバーを動かしているサーバーと Zabbix を動かしているサーバー同士をさくらインターネット様よりご提供いただいている「さくらのクラウド」のスイッチで接続しています。

WireGuard などの VPN ではなくスイッチを利用するメリットとして、VPN は外部接続を必要とするため、何らかの原因で外部ネットワークから切り離されてしまった場合にサーバー監視が継続できなくなってしまいます。スイッチを利用することで、外部ネットワークを必要とせず閉域網内で接続を維持できるため、安定してサーバー監視を行うことが可能になります。

大会運営システムとの接続

マイクラバドミントンでは2024年後半からシステムのリニューアルを行っており、その一環で新しい大会運営システム「Shuttle」を開発しています。開発はかずえもん1名で担当していて、絶賛人員募集中です。

「Shuttle」は Node.js や PostgreSQL、Redis などを用いて開発されているシステム群で、リーグやトーナメントなどの対戦表を保持し、誰と誰が対戦するかという情報をゲームサーバーに送信した後、試合結果を取得して次の対戦カードを決定する役割を持っています。

Shuttle システムの大会オペレーション画面

ゲーム内に対戦情報を送信する際にはマインクラフトのコマンドを実行する必要があり、その際に Rcon と呼ばれる仕組みを用いています。Rcon はマインクラフトのゲームサーバー内で動作しているシステムで、送られてきたコマンドを実行してその結果を返却します。

Rcon にはパスワードを設定することができますが、パスワードさえ通ってしまえばどんなコマンドでも実行できてしまいます。そのため、Shuttle が動作しているサーバーからコマンドを送信するために Rcon サーバーをパブリックに公開するのではなく、間にコマンド実行を受け付ける gRPC サーバーを挟み、WireGuard を用いた VPN を経由させて通信を行うことで、安全な Rcon の利用を可能としています。

コマンド実行フロー イメージ図

現在 Shuttle システムは「さくらのクラウド」とは別の拠点サーバーで動作していますが、今後の規模拡大に伴ってゲームサーバーがさらに必要となるため「さくらのクラウド」上でも Shuttle システムを構築することやサーバー間のネットワーク構築に「さくらのクラウド」のスイッチ・VPCルーターを利用することを検討しています。

あとがき

今回の記事では、マイクラバドミントンの裏側がどのようになっているか、そしてさくらインターネット様よりご提供いただいている「さくらのクラウド」をどのように活用しているかをご紹介させていただきました。さくらインターネット様には、この場を借りてお礼申し上げます。

私たちはマインクラフト上でリアルスポーツを再現したゲームを「マイクラeスポーツ」と呼んでおり、今後様々なスポーツが増えていくのではないかと考えています。その中で、ゲームサーバーを一から構築・運用するには多くのノウハウが必要ですが、「さくらのクラウド」を用いることでそのハードルを下げることができると感じています。ぜひマインクラフトのゲームサーバーを構築するにあたって、一度「さくらのクラウド」を試してみてはいかがでしょうか。

ちなみに、まいばどすたっふは有志で活動しており、システム開発・インフラ管理だけでなく、企画やデザイン・配信などのメンバーを随時募集しています。ご興味があれば是非お声がけください。

最後までお読みいただきありがとうございました!