こちらは、2018年4月17日に公開された以下のドキュメントを翻訳したものとなります。
Enabling Guns of Icarus Alliance Cross-platform with Photon Voice
この寄稿は、ニューヨーク市に拠点をおくインディースタジオであるMuse Gamesのチームリーダー、Howard Tsao氏によるものです。
同社の人気タイトル「Guns of Icarus」は、チームごとのPvP対戦の可能性を広げ、戦略上の駆け引きや協力プレイに重点を置いています。航空艦同士の迫力ある戦闘ゲームで、チームワークや策略、高速アクションが特徴的です。
「Guns of Icarus Alliance」はSteamからご利用いただけます。
はじめに
Guns of Icarusの開発初期から、私達はチームワークや協力プレイを重視してきました。このため、このゲームの完全版であるGuns of Icarus AllianceをPlayStation 4に展開する際にも、シームレスなクロスプラットフォームプレイは必須と当初から想定していました。
私達は、PS4のプレイヤーとSteam PCのプレイヤーが同時に戦うだけでなく、出来るだけ多くの手段を通じて十分にコミュニケーションを取れることを目指していました。つまり、クロスプラットフォームのボイスチャットサポートの実装は不可欠でした。
PS4とSteam上のPC(Win/Mac/Linux)間の、クロスプラットフォームプレイとボイスチャットの完全な連携を実現するうえで、私達は数多くの新たな課題を独自の方法で解決する必要がありました。これは、模倣できるような前例がなかったためです。
こうしたクロスプラットフォームの夢を実現するには、PhotonとPhoton Voiceが非常に役立ちました。
PhotonやPhoton Voiceとの連携
Guns of Icarusは、SteamのAPIを統合したPCゲーム(Windows、Mac、Linux)として始まりました。このため私達は、チャットをSteamのボイスチャットシステムの上部に実装しました。この実装はピアツーピアのネットワーキング経由によるものです。ただし、このボイスシステムではすべてのプレイヤーがSteamを稼動していることが前提となり、PS4ユーザーには使用できませんでした。
PS4には、独自のボイスチャットSDKがあります。Unityは、このボイスチャットSDKをNet Chat Pluginに内包されていました。このSDKは基本的なボイスチャット機能を提供していましたが、このゲームで実現したいボイスチャット機能のすべては含まれていませんでした。さらに重大な問題点として、このSDKはPCプレイヤーに対応していませんでした。
クロスプラットフォームのボイスをサポートするために私達がまず考えたのは、PCとPS4プレイヤーの双方で作動するサードパーティーのボイスチャット・ソリューションが存在するだろうか、という点でした。こうしたソリューションがなくても、PCとPS4の両方のプレイヤーが一緒にプレイできるようサポートは可能ですが、プレイヤー間のコミュニケーションにボイスチャットを使用できないでしょう。しかし、このゲームでは高度な協力プレイが必要となるため、ボイスチャットは不可欠です。開発が進むにつれて、私達はボイスシグナリング/コマンドシステム、さらには微妙なニュアンスを実現できるAI乗組員へのコマンドシステムなどを構築しました。ただしこれらは二次的なプランにすぎず、私達はクロスプラットフォームのボイスチャットを目指したまま実現できずにいました。
当時、クロスプラットフォームゲームはまだ少なく、異なるプラットフォームのプレイヤーの協力プレイをサポートするゲームはさらに限られていました。このため、私達は他の同様のゲームがどのように作動するか確認することができませんでした。また、当時はレディメードのサードパーティーソリューションがなかったため、ボイスチャットの連携を私達が独自に構築する試みは、スムーズには進みませんでした。この課題は非常に難しく、私達は長い間不可能だと考えていました。
パッケージ自体は非常に分かりやすく、簡単に使用できました。しかし、Guns of Icarusの既存のボイスチャットシステムは複雑でした。私達は軍隊からインスピレーションを受け、対戦中のボイスチャットをマルチチャネル構造上に設計していたためです。同じ戦艦の乗組員同士でなければ互いに話すことはできず、艦長には同じチームの他の艦長と話すためのチャネルが追加してありました。全員の声が聞こえると、プレイヤーは圧倒されて情報過多になり、非常に混乱してしまいます。こうした状況を避けるために考えられたのが、上記のマルチチャネル構造の設計でした。
結果として、インテグレーションには少し時間を要しました。同じグループのプレイヤー間だけでなく、同じマッチロビーのプレイヤー間でのチャットもサポートしなければならず、グループとマッチロビーでは異なるメンバーのプレイヤーになる可能性があったためです。また、マッチロビーではマッチチャット、チームチャット、艦長チャット、乗組員チャットをサポートしていたため、聞き手は誰が話しているかだけでなく、プレイヤーがどのチャネルを使用しているかを把握する必要がありました。これらの機能はPhoton Voice提供するオリジナルのコードではサポートされていなかったので、私達はソースコードをより高度なレベルへと変換しました。Photonソリューションの柔軟性が非常に高かったので、Steamのボイスと全く同様に作動させることができ、さらにクロスプラットフォームでの作動も実現できました!
しかし、私達がだいぶ後になるまで気づかなかった注意点があり、この点はSonyのFQAチームによって報告されました。PS4のプレイヤーは、ヘッドフォンにチャット音声のみを出力することはできず、その他のTVへの音楽や音声も出力されたままでした。この機能はPS4のボイスデバイスへの入力ボイスデータをルーティングするUnityのNet Chat Pluginによってサポートされており、その一方でPhoton VoiceはUnityのAudioSourceクラスによってボイスを処理していたため、同一システム内の他の音声からチャット音声を分離することができなかったためです。この件について私達がPhotonチームに報告したところ、すぐにサポートを受けられました。近日中に、Photonをソリューションとして使用しているすべてのユーザーが、私達よりもはるかに容易にこの問題点を解決できるようになることを願っています。深い闇のような課題に取り組んだおかげで、私達はPhotonチームのすばらしいメンバーと協同する機会を得られ、さらにはPhoton製品やプラットフォームの向上の一助となることができました。これらは、今回の開発を通じてもっとも意義深かった点でした。
終わりに
PS4でのリリースを実現し、クロスプラットフォームでのプレイとボイスを実装するソリューションを見つけるには、長期にわたって困難な道を歩まなければなりませんでした。結果的に、PhotonやPhoton Voiceの存在なしでは、私達は成功できなかったでしょう。また、Exit Gamesのチームがタイムリーなサポートを提供してくれたことも成功につながりました。オンラインマルチプレイヤーのプロジェクト向けにクロスプラットフォームソリューションをお探しならば、私達はぜひPhotonをお勧めします。
コメント
0件のコメント
サインインしてコメントを残してください。