メインコンテンツまでスキップ

Elemental Fracture Marla サーバー 2.0 アップデート

· 約8分
Brendon (Doobs)
プロジェクトリーダー

みなさんこんにちは、Doobs です。 いやはや、大変な道のりでした。本題に入る前にひとこと。はい、わかっています。6 時間と言いましたよね。ところが配管を引き剥がして入れ替え始めると、途中で追加の水漏れが見つかることもあるものです。何かを直しては別の何かを壊すという終わりのない繰り返しに感じられましたが、すべて稼働し、これまで以上に快調に動いていることをご報告できてうれしく思います。今回のアップデートは大がかりで、あまりに大きいので Nitro の文字数上限も超えてしまいました。インフラを刷新し、セキュリティを強化し、サーバーの効率を高め、必要だった自動化も追加しました。ついでに、自分の作業が少し楽になるバックエンド側の改善もいくつか入れています。

新機能と改善点

1. Marla 2.0 のご紹介

Marla がシステムに完全統合されました。まだ発展途上ですが(誰しもそうですよね)、このバージョン 2.0 は完成と呼んでよい段階だと思います。新機能や調整のアイデアがあれば教えてください。Marla はみなさんの手間を減らすための存在なので、みなさんが必要とするものに合わせて改善を続けたいと思っています。

2. Sentinel、稼働開始

これはスタッフ向けの話ですが、これから来るものの土台でもあります(ネタバレはしません、続きを読んでのお楽しみです)。待望の Sentinel システムが稼働を開始し、プレイヤーの記録とサーバーアクセスの管理を担う正式な基盤になりました。このシステムによって、これまで足りていなかった仕組みと目配りが加わり、全員にとってより公平で透明性の高い運用になります。 できることは次のとおりです。

  • プレイヤーの活動記録。初回接続を記録し、ログイン履歴を保持します。
  • アクセス制御。管理者が権限や制限を体系的に管理できるようにします。
  • 安全な操作ログ。すべてのやり取りを記録し、説明責任を果たせるようにします。 プライバシーが気になる方のために、収集している情報を正確にお伝えします。
  • ユーザー名(Spellbreak を始めた当時のもの)
  • IP アドレス
  • 初回接続のタイムスタンプ 以上です。プライベートメッセージも、他の閲覧履歴をひそかに追跡することもありません(YouTube で陰謀論動画を何時間見ていようと、私は気にしません)。次の疑問はこうでしょう。「このデータは危険にさらされていないのか」。正直に言えば、危険はあります。ゲームであれ、銀行であれ、SNS であれ、オンラインのやり取りには必ず何らかのリスクが伴います。本当に安全なデータは、オフラインで保管されているものか、そもそも存在しないものだけです。とはいえ、露出を最小限に抑えるための対策は講じています。
  • 暗号化。収集したデータはすべて暗号化しています。
  • アクセス制限上位権限(および RSA トークン)を持つアカウントだけがアクセスできます。
  • root/sudo による保護。復号には完全な root/sudo 権限が必要なので、気軽に覗き見ることはできません。 ひとつだけ厄介な点があります。ユーザー名を変更すると接続に問題が出ることがあります。Sentinel 側で手動調整はできますが、面倒を避けるためにも名前は変えずに使うことをおすすめします。名前をよく変える方には窮屈でしょうし、その点は申し訳ありません。ただ、少なくともアイデンティティの揺らぎは安全に守られています。

3. Windows なし、クレカなし、面倒なし

これは特大の変更です。Windows の面倒に永遠とも思える時間を費やしたのち、Wine を使ってすべてを正式に Linux へ移行し、Docker コンテナー群の中で動作するように構成しました。動作を遅くする Windows の仮想マシンはもうありません。Windows が今すぐアップデートすると言い出したせいで、あるいは Pink Marla が何かを気に入らなかったせいで突然落ちることもなくなります。 とはいえサーバーの話ばかりでも仕方ありません。これはみなさんにとって何を意味するのでしょうか。

  • Windows のオーバーヘッド解消。Windows の仮想マシンはシステム資源を大量に消費し、パフォーマンスの問題を招いていました。それは過去のものです。
  • 性能向上。Linux は格段に効率がよく、システム負荷が下がり、プレイもより滑らかになります。
  • 安定性の向上。クラッシュが減り、稼働率が上がり、全体として快適になります。
  • 更新と保守の高速化。Windows に邪魔されないぶん、更新や修正、最適化をずっと素早く届けられます。 そして、ここからが本当に面白いところです。この移行によって、サーバー展開の自由度が格段に高まりました。今後は次のことができます。
  • 他を止めずにパブリックテストベータ(PTB)サーバーを立ち上げる。
  • 過去のどのバランスパッチ時点のサーバーでも展開する。バニラの Spellbreak も含みます。
  • 多くの保守作業を自動化し、手作業を減らす。
  • ご要望に応じて、海外のコミュニティパートナーにもこの構成を提供する。 これは Elemental Fracture にとってだけの前進ではありません。Spellbreak コミュニティ全体にとっての前進です。

4. 試合トラッキングの改善

誰がオンラインかを確認するためだけに、延々と流れるサーバーリストを眺める日々は終わりました。 Match Tracker Mod が完全に統合され、これまで以上の形で復活しました。試合データは Discord 上でリアルタイムに更新されます。表示される試合の状態は次の 5 つです。

  • Starting Up。ゲームサーバーが読み込み中です。
  • Waiting for Players。サーバーが開いていて接続を受け付けています。
  • Waiting to Start。試合のカウントダウンが進行中です。
  • Started。試合が進行中です(途中参加はできません)。
  • Ended。試合が終了しました(あるいは何かが壊れました)。 これで誰が遊んでいるかをリアルタイムに把握しやすくなりますが、他にも面白い使い道があります。ぜひご意見を聞かせてください。人数が十分に集まったとき、Marla が特定のロールにメンションすべきでしょうか。Solos に 10 人以上いる場合、試合を埋めるために @Battle Royale へ通知したほうがよいでしょうか。可能性は大きいので、みなさんの考えを教えてください。

今後の予定

次の大きなプロジェクトは何かというと、ランチャーです。今のところ、特に技術に詳しくない方にとって、導入は少し面倒です。この体験をできる限りシンプルで滑らかなものにしたいと考えています。アイデアは山ほどありますが、私 1 人では実現できません。手伝ってくださる方はぜひご連絡ください。 ロードマップは次のとおりです。

  1. IP の手入力をなくす。 ネットワークパケットを特定のゲームモードに対応づける方法を検討しています。実現すれば、モードを選ぶだけで自動接続でき、IP を入力する必要はなくなります。
  2. 認証とトラッキングの仕組み。 プレイヤーの進行状況、さらには ELO を Sentinel のプロフィールに紐づける仕組みを作りたいと考えています。これが実現すれば、より競技性の高い対戦、マッチメイキングの改善、大会の開催にもつながります。

不具合に遭遇した場合、ご意見がある場合、あるいは今回の変更がどれだけ好き(または嫌い)かを伝えたい場合、さらには私が話しすぎだと思った場合も、遠慮なくお知らせください。いつも Elemental Fracture の最良の部分でいてくれてありがとうございます。次に何が来るのか、私も楽しみにしています。