Unity を検索

大規模かつインタラクティブな大規模なオンラインライブイベントを構築し、運営する

2021年3月24日 カテゴリ: ゲーム | 7 分 で読めます
green scenery
green scenery
取り上げているトピック
シェア

Unity はインタラクティブなライブストリームを配信できるツールセットを開発する Genvid と提携関係を結びました。同社のツールを使えば、ストリームの視聴者は単にストリームを見るだけではなく、そのコンテンツに影響を与えられる参加者となることができます。

2020 年 12 月 2 日、Genvid は、世界初の大規模なインタラクティブライブイベント(Massive Interactive Live Event; MILE)「Rival Peak」をローンチしました。Genvid 独自の SDK と包括的なバックエンドサポートにより、ゲームのような体験をクラウド上で実現し、ユーザーはダウンロードやインストールをすることなく、接続したあらゆるデバイスからアクセスできるようになります。Genvid は、Pipeworks Studios、DJ2 Entertainment、Facebook との緊密な連携により、真にユニークなものを作り上げました。それは、Unity で制作されたインタラクティブな疑似現実ショーで、Facebook で 12 週間にわたって毎日 24 時間のライブストリーミングを行うものでした。このショーの中では、Wil Wheaton 氏がホストを務める「Rival Speak」というタイトルの、その週の出来事をまとめてレポートする番組が毎週放送されました。

「Rival Peak」は、ライブサービスとして運営され、運営期間中、ダウンタイムはほぼありませんでした。そして、Facebook の視聴者のやり取りが、脚本やプロット、ライブ撮影パートに大きな影響を与えました。

Infographic

ライブプロダクション環境と Game as a Service(GaaS)の運営が現在進行形で行われているというプレッシャーを感じながら、「Rival Peak」チームは、運営を正しく行わなければならないと考えていました。12 週間にわたる「Rival Peak」の開催期間中、毎日複数のストリーマーが参加したライブストリームは、ピーク時には約 50,000 人の同時視聴者数を記録し、「Rival Speak」コンパニオンのシリーズは 1 話あたり平均 1,000 万回以上の視聴がありました。

Genvid の Unity 開発パートナーである Pipeworks Studios は、Genvid のツールセットを利用して、非常に低い GPU オーバーヘッドと高効率のサーバー構造を実現し、非常に多くの視聴者にリーチしました。40 年以上にわたり、ゲーム、グラフィックハードウェア、ソフトウェアに携わってきた Pipeworks のエンジニア、Joshua Lee 氏にその手法を説明してもらいました。

「『Rival Peak』の核となる部分は、『Galapagos』という 1 人用ゲームのプロトタイプの一部をベースにしており、すべて 1 つのインスタンスで動いていました。そのゲームの AI を使いたかったのですが、一度に 1 つの視点ではなく、複数の視点を持つ必要がありましたし、すべての出場者をフォローするカメラ、そしてホームストリーム(ユーザーのホーム画面でコンテンツを表示する領域)も必要でした。そのためには、単一の CPU で動作するゲームから、LAN ゲームのような複雑なネットワークでつながれた体験にする必要がありました。私たちの手元には、権威サーバーと、AI の『出場者(Contestants)』とホームストリーム用のレンダークライアントがありましたが、これは私たちにとって大きなアーキテクチャの変化でした。これらの機能を GameNode と呼ばれる 1 つの実行ファイルとして実装することにしました。この GameNode は実行時に様々な役割を設定することができます。たとえば、オーソリティ、レンダークライアント、そして(テストや開発のために)とオーソリティとクライアントを兼ねるハイブリッドな『シングルインスタンス』などです。

クライアントノードは、主にレンダリングエンジンとして機能します。キャラクターや環境のレンダリングに加えて、ダイナミックな天候やライティング、シネマティックカメラの計算も行うため、多くの機能が必要でした。Unity の観点から見ると、オーソリティはキャラクターを中心としたストリームを各レンダークライアントに提供していました。これは、外界の視点から見ると、ノードの配列を設定して、ビューワークライアント(Facebook のアプリなど)に『ここにこの特定のキャラクターのストリームがあり、約 8 時間ごとに定期的に更新されます』と知らせられるようになるという、補完的な問題をもたらしました。このコンセプトを具現化したのが『コンダクター』と呼ばれるものです。すべてがデータ駆動でなければならず、ゲーム内のノードの数、つまりその時ゲーム内にいる出場者の数だけイテレーションをオーサリングする方法が必要でした。

そして、もうひとつのオーサリングされたデータがあります。それは、『シミュレーションがどのように展開されるのか』ということ。つまり、内部でどのように実行されるか、それと、膨大な数のクラスターをどのように構成し、世界に向けて発信するのかという 2 つの領域がありました。ここではデータが非常に広い範囲に散っていきます。1 つのクライアントノードが動画ストリームを生成し、その特定のストリームに関連するデータは、膨大な数の Facebook ユーザーに対応してスケールする Genvid クラスターに送られます。 Genvid クラスターは Facebook に近い場所で動作しており、そこにいる視聴者は、インスタントゲームとして動作するビューアークライアントのインスタンスをそれぞれ持っています。

ビューアークライアントは、Genvid クラスターが提供するストリーミングソースを利用します。さらに、視聴者は、Pipeworks が APE と呼ぶ形式で入力を行います。Genvid クラスターは、視聴者からの大量の入力を、レンダークライアントで受け取る定期的なレポートの形に集約します。

レポートはオーソリティに転送され、そこでゲームプレイでの決定が行われます。オーソリティは、起きたことのロジックをレンダークライアントに送り、レンダリングを行わせます。レンダークライアントは、特定の『出場者』に関連付けられており、サイドバンドのゲームデータとともにオーディオおよび動画のストリームを生成します。これらのデータはすべて Genvid クラスターにストリーミングされ、Genvid クラスターはデータのエンコード方法を把握し、要求された数だけのインスタントゲームインスタンスにデータを送信します。

印象的だったのは、本番環境でレンダリングクラスターのインスタンスを 13 台しか稼働させていないことです。各出場者用に 1 つ、ホームストリーム用に 1 つ。つまり、13 のレンダリングクラスターと 1 つのオーソリティクラスターです。各レンダリングクラスターが使用する CPU は 1 つだけで、Genvid クラスターで使用する CPU の数は可変としました。信じられないことに、13 個の GPU で約 100 万人のユーザーに対応したのです。これは Genvid のソリューションを使わないと得られない利点です。」

 

Screenshot

「Rival Peaks」の詳細は、Genvid のウェブサイトでご確認いただけます。また、Genvid SDK は、Unity アセットストアで入手できます。

2021年3月24日 カテゴリ: ゲーム | 7 分 で読めます
取り上げているトピック