すべての記事

ひとつの世界、5つのプラットフォーム — 開発日誌 #2:クロスプラットフォームMMORPG開発の難しさ

ひとつのMMORPGを、マウスでもタッチスクリーンでもコントローラーでも遊べるように。インターフェース、操作、30言語、ローカルのチャット翻訳について、Ancient Onlineが下した判断。

薄暗い光の中、机の上で赤とターコイズの反射を帯びるゲームコントローラー

私たちはAncient Online: Remasteredを、Windows、Linux、macOS、Android、iOSのプレイヤーが出会うひとつの世界として設計しています。紙の上では簡単に聞こえます。ひとつのゲーム、5つのプラットフォーム。しかし実際には、マウスのクリックでプレイするように設計されたクラシックなMMORPGをスマートフォンやコントローラーに持ち込むことは、難しい判断の連続を意味します。開発日誌の今回は、そうした判断と、その背景にある理由を共有します。

このゲームは開発中です。開発ビルドは現在、WindowsとAndroidの端末でテストしています。macOS、Linux、iOSは、私たちが目標としているそのほかのプラットフォームです。

ルール1:ひとつの世界、ひとつのルールセット

モバイルプレイヤーのための別サーバーも、「簡略化された」バランスもありません。ゲームのルールはすべてサーバー上で動いているため、どの端末から接続しても、同じ世界で、同じルールのもとでプレイすることになります。アカウント、キャラクター、インベントリ、ギルドは端末に依存しません。サーバー側については、開発日誌の第1回で取り上げました。

クライアントにとってこのルールが意味するのは、プラットフォームごとに異なる操作を提供することはできても、異なる能力を提供することはできない、ということです。

タッチスクリーン:縮小ではなく、再考

クラシックなMMORPGのインターフェースをそのまま縮小してスマートフォンに載せても、うまくいきません。ボタンは指には小さすぎ、画面は混み合いすぎてしまいます。そこで私たちは、モバイル用に別のインターフェース層を設計しました。

  • フローティングジョイスティック:画面の左半分のどこに指を置いても、ジョイスティックのほうがそこへやって来ます。プレイヤーが画面上の特定の位置を狙う必要はありません。
  • 押し続けて攻撃するボタンと、そのまわりに弧を描いて並ぶスキル。
  • タップでターゲット:PCでの「モンスターをクリックする」という習慣の、タッチ版です。

あえてやらなかったこともあります。タップでの移動です。移動はジョイスティックが受け持ちます。移動の仕組みが2つあると、ターゲットを狙って外したタップがすべて意図しない移動に変わってしまいます。戦闘の最中に、それは許容できません。

もうひとつ、小さいけれど重要な判断があります。スマートフォンでは一度に見えるスロットがわずかなので、スキルページの切り替えが、デスクトップよりもはるかに頻繁に起こります。そこで私たちは、ポーションのスロットをページから独立させました。ページを切り替えても、ポーションはその場に残ります。これを実現するには、インターフェースのセルをひとつ動かすだけでは済みませんでした。ポーションスロットを使うコードを、ページのロジックから完全に切り離す必要があったのです。

カメラとマルチタッチ

スマートフォンでは、空いている場所を指でドラッグするとカメラが回転します。インターフェースの上に全画面の「カメラゾーン」を置いて実現する方法は魅力的に見えましたが、そうした層は、その下にあるすべてのボタンに向けられたタッチを飲み込んでしまいます。私たちは、カメラのドラッグをインターフェース層ではなくプレイヤーコントローラーで処理することで、ボタンとカメラの衝突を防ぎました。また、ターゲット選択とカメラのドラッグは、小さな移動のしきい値で区別しています。しきい値を超えるまでカメラはまったく動かず、超えたあとは、急に跳ねることなく回転を始めます。

コントローラー:メニューの操作も

コントローラー対応は、戦闘だけでなく、インターフェース全体を対象に設計しました。コントローラーでインベントリやメニューを操作できるように、十字キーによるフォーカス移動を追加しています。ここにも落とし穴がありました。十字キーと決定/戻るボタンは、メニューの操作にも、クイックスロットの使用にも必要なのです。解決策はこうです。ウィンドウが開いているあいだ、これらのボタンはメニューを操作し、閉じるとクイックスロットに戻ります。戦闘の最中に、気づかないうちに「メニューモード」へ入り込んでしまうことは、このシステムが抱えうる最悪のバグでしょう。

ゲームは、最後に使った入力デバイスを把握しています。コントローラーに持ち替えると、タッチボタンは画面から消えます。

設定もプラットフォームに従う

設定ウィンドウは、端末に合わせて形を変えます。マウスとキーボードのタブはPCにだけ、タッチのタブはスマートフォンにだけ表示されます。Lumen、DLSS、FSRといったデスクトップ専用のグラフィックオプションは、モバイルでは解像度とアンチエイリアスのオプションに置き換わります。それぞれの端末で、そこで実際に意味のある設定だけを表示しています。

30の言語と、言語ごとに測るインターフェース

ゲームと私たちのウェブサイトは、30言語への対応を目指しています。多言語インターフェースの隠れた難しさは、テキストの長さです。同じボタンのラベルが、ある言語では短く、別の言語ではその2倍の長さになることがあります。私たちは、設定ウィンドウのタブの幅を均等に割り振るのではなく、その言語での各ラベルの実際の幅から計算しています。言語が変わると、レイアウトは再計算されます。言語の選択欄では、それぞれの言語がその言語自身の名前で表記されます。

私たち自身のサーバーで行うチャット翻訳

異なる国のプレイヤーが同じ世界で理解し合えるように、チャットのメッセージは読み手の言語に翻訳されます。このシステムを構築するにあたって、私たちには2つの原則がありました。

  1. メッセージは私たちのサーバーの外に出ない。翻訳は、私たち自身のサーバーで、CPUのみで動くローカルのモデルが行います。外部の翻訳APIは使いません。
  2. ゲームの言葉を守る。MMORPGのチャットは、略語、ゲーム用語、絵文字であふれています。私たちはゲーム専用の用語集を使い、絵文字は翻訳の途中で失われないように別途保護しています。

今後について

モバイルのパフォーマンスと、目標としているそのほかのプラットフォームについて、作業を続けています。プレイヤー側の操作の一覧は、ゲームサイトのPC・モバイル クロスプラットフォームガイドをご覧ください。私たちのスタジオについては、Astronaut Entertainmentとは?をお読みください。

共有:
他の言語29