12月 1, 2020

Rival Peakを支えるライブオペレーション


ライブオペレーションマネージャーJosh Downsと開発エンジニアKyle Umstatter – Genvid Technologies

 

Rival Peakのライブオペレーション(LiveOps)サポートは、ローンチ段階で同時に13本のストリーミングが24時間休みなく配信されるという、これまでで最も意欲的なライブ・ストリーミングの取り組みです。しかもそのうちの12本は効果的にデュアルストリームを使用しています。Genvidが開発したユニークなインタラクティブ配信技術とサービスを使用しており、ライブストリームのうち12本はそれぞれRival Peakの12人のAIキャラクターに特化しています。3か月にわたり放映されるシーズン1を通して、視聴者はリアルタイムでキャラクターをフォローできるだけでなく、彼らや環境にインタラクションすることができます。

弊社のライブオペレーションチームは、通常のストリームとその上に表示する追加の画像や情報を持ったオーバーレイストリームを組み合わせた、特殊なライブストリーミングをすることにかけては実績と経験があります。しかし今回のように、1つのプロジェクトで通常の13倍に及ぶライブストリーミングをサポートするのは初めてでした。過去にサポートしたプロジェクトは、通常ひとつのストリーミングのみでした。今回は、サーバー要件とサポートに関して、文字通りリソースを倍増して対応してきました。

ライブオペレーションの視点からすると、Rival Peakのような大規模なインタラクティブ・ライブ・イベント(massive interactive live event – MILE)は、従来のビデオゲームのインタラクティブなライブストリームをサポートすることと大きな違いはありません。視聴者の視点からでも、違いはごくわずかです。ユーザー入力は、どちらの場合も基本的に同じであり、タップ(クリック)して、表示されているものを変化させたり、影響を与えたりします。13台の配信サーバーから何百、何千、何万ものユーザー入力がされ、14番目のサーバーでは、シミュレーションやAI機能とともに、視聴者の入力を解析するバックエンドのゲームデータをすべて管理しています。

13本のライブストリームの他に、「Authority」と呼ばれる14台目のマシンがあります。このマシンで、シミュレーション内の処理、競合の解決、スケジュールの追跡などが行なわれます。Authorityはそれに特化したサーバーを持ち、同じUnityゲームをヘッドレスモードで動かしています。レンダリングすることなくシミュレーションされ、Bolt(Authorityとの間で in-sim イベントをやり取りするためのUnity互換のクライアントホスト型ネットワーキングソリューション)でキャラクターインスタンスに接続し、シミュレーション情報を再生し、適切なライブストリームに送ります。また、Authorityサーバー内には「Conductor」が存在します。Conductorはスケジュールファイルを読み込んで、定められた時刻に特定の時間だけ「エピソード」を再生することを決定し、Facebookのストリームをオンにしてタイマーを開始し、そのちょうど8時間後に停止します。

視聴者は事実上、いつでもRival Peakを視聴することができますが、世界中のすべての時間帯をサポートするために多少のダウンタイムが生じます。毎日の番組は、3つの地域での8時間のストリームとして配信されます。各地域の視聴者が毎日の動向をキャッチできるように、ストリームは連続した構成になっています。つまり、セッションとセッションの間の数分間を除けば、毎日24時間、12週連続でライブ配信されます。


もちろん、サービスを継続して稼働させることが第一目標であることは事実ですが、Rival Peakにおける課題の 1 つは、Facebookの限界を超えることでした。当時のFacebookは24時間休みなく数か月間にわたってライブ配信をホストするようにはデザインされていませんでした。今回のプロジェクトでは、「ひとつの窓口」を通して集中的に監視を行っていますが、13本のストリームをサポートしているので、目視よりもアラート通知に大きく依存しています。

テストをする過程で、コロナウィルスパンデミック期間の対策として自宅で作業してくれたインドやメキシコのテスターの方々を含め、世界中のKeywords Studiosで連日24時間のQA作業を実施しました。世界中の家庭で問題なく1080pの鮮明なストリーミングを受信できるということには驚きを隠せません。

一般的にプロジェクトへの参加パートナーが増えると全体のプロセスの複雑さは増しますが、このプロジェクトのもう一社のパートナーPipeworks Studiosはサポートの方法、システムなどの面で、優れた協力をしてくれました。Pipeworks Studiosがシミュレーションおよびレンダリングシステムを構築しました。弊社と彼らは異なるツール(Perforce や Git など)を使用していることもあり、共に歩み寄りながら仕事を進めました。
また、Facebookのシステムでは平均15 ~ 25秒の遅延が生じますが、この遅延を感じさせない工夫がされています。これはGenvid開発の同期ソフトを使用して実現した、Rival Peakの特徴のひとつです。
弊社はRival Peakに向けて、何百万人ものユーザーの同時接続に対応可能なスケーラビリティを確保し、20億人のFacebookユーザーがこのユニークな視聴体験を楽しめるようサポートする準備ができています。