雑記

Googleのクラウドゲームストリーミングサービス『Stadia』に待ち受ける大きな課題とは?

株JIN.com 資産運用&公開ブログ】

Googleがゲーム開発者イベント GDC 2019で発表した STADIA (ステイディア)は、Googleのデータセンタで動くゲームをYouTubeのように動画として送信するストリーミングゲームプラットフォームでした。

今回のGoogleのStadiaの構想を聞いてユーザーはブラウザさえあれば良くて全ての処理をクラウド側で処理するとか、Google凄いって勘違いしている人が多いようなので。。。

まずは、それって昔からある考えですよって説明の為にクライアント・サーバーについて簡単に説明してみます。

コンピューターはクライアント・サーバーシステムで発展してきた

クライアントサーバーシステム

かなり昔のコンピューターはとても高価なものでした。なので大企業が1台のコンピューター導入を躊躇するくらいの時代がありました。

そこで、世の中に普及したのがクライアント・サーバーシステムでした。

高価なコンピューターを1台導入したら、その1台のコンピューターのことをサーバーと呼びました。

そして、社員達はそのサーバーにアクセスする為の端末をクライアントを呼びました。

こうすることで高価なコンピューターを1人の人が占有することなく、複数の場所にあるクライアント装置を使って利用することが可能になりました。

※クライアント装置は表示用ディスプレイと入力用キーボードの単純な構成で、その入出力データを社内ネットワークを使ってサーバーと通信していました。

これってStadiaがやっていることと全く同じです。クライアント側にはPCのブラウザでサーバー側にはGoogleの用意するクラウドゲーム用のサーバーに置き換わるだけです。

その後1990年代くらいまでは1人1台という時代ではなかったので、クライアント・サーバーシステムはどの会社にもありました。

そして1990年代には安価で高性能になったPCで全ての処理を行い、必要な情報(ファイル)のみをネットワークを使って通信する時代に変わりました。

またそこから10年ほど経ってネットワーク通信のインフラ設備が整ってきたことと1人2台以上のPC、ノートPCを持つ時代に変わったことで必要な情報はクラウド(サーバー)側に置いてどこからでも取得出来るようにした方が便利になって、徐々にクラウド(サーバー)へ情報が移行することになります。

つまり、コンピューター(PC)のコストとネットワークの通信性能の綱引きで情報の置き場が変わるだけです。

なのでもしStadiaが成功して完全に時代がストリーミングサービスでゲームを配信する時代になっても、時が経てばコンテンツ(情報)がリッチになってクライアント側で処理をしないとネットワーク負荷が耐えられない状況になります。

そうなれば新規ハードウェアを発売するか、パソコンに必要なハード要件が出てくるでしょう。そうなると現在の据置きゲーム機と同じシステムに戻ることになります。

静的コンテンツと動的コンテンツの違い

静的コンテンツと動的コンテンツ

これまでの説明でGoogleのStadiaのシステムが別に新しくないことは理解出来たと思います。

じゃーなんで、他社はこれまでクラウドゲームストリーミングサービスをやらなかったのか?

それはゲームは動的コンテンツなのでクライアント・サーバーシステムに向かないコンテンツだったからです。

一方でブログやHPや動画や音楽は静的コンテンツなのでクライアント・サーバーシステムを適応することの難易度が低かったのです。

静的コンテンツはキャッシュで通信負荷を軽減している

キャッシュサーバ概念図

静的なコンテンツでも多くのアクセスが発生するとサーバー側のシステムは意外と簡単にダウンします。

昔ラピュタの映画がTV放送される度に”パルス”という3文字のテキスト情報を多くの人がTwitter上で書き込むだけでシステムがダウンしたというニュースが有名ですよね。(Twitterは動的コンテンツですが、判りやすい例として使いました。)

つまり、どんなに性能の良いサーバーを導入していても一度に処理出来る上限は決まっているので、それを超えた情報量がアクセスされるとサーバーは自己防衛でダウンする仕組みになっています。

またはダウンしなくてもサーバーの応答速度が遅くなりすぎてユーザー側のブラウザはエラーを表示してしまいます。

そのためにインターネットの世界ではネットワークに流れる情報を少なくさせる工夫があります。

それがキャッシュです。

キャッシュにはザックリ2種類あります。

1つ目がパソコンのブラウザが持っているキャッシュです。自分が過去にアクセスしたサイトをある程度データ保存しておいて、

同じアクセスが来たらネットワークにアクセスすることなくローカルのデータを表示させてユーザーには通信したデータのようにサイトを表示させています。

2つ目がサーバーが持っているキャッシュです。自分がアクセスするサイトにアクセスするまでには数個から数十個のサーバーを経由して情報にアクセスしています。

その数個から数十個のサーバーも以前にアクセスしたサイトをある程度データ保存しています。誰がアクセスしたかは関係なくアクセス先が同じだったら、そのデータを返すことで通信料の負荷を減らすことが出来ます。

ただ、これは静的なアクセスの場合のみです。動的なデータだとユーザーの挙動に応じたデータをサーバーが処理しないといけないのでキャッシュという技術は基本的には使えません。

動的コンテンツはクライアント側で処理させることで通信負荷を軽減している

20190322_javascript

しかし、簡単なゲームなど動的なコンテンツを配信しているサイトはあります。

その場合には、実はプログラムをユーザー側がダウンロードしていて、自分のパソコン側で自分の挙動に応じた画面を処理して表示しています。

なので、画像が綺麗なネットゲームなどでは高価なグラフィックボードが必要になります。

あれもネットに流すデータは最低限に抑えていて重い処理は全て自分のPCで処理することでシステムが成り立っています。

Stadiaがクリアするべき課題

20190322_Stadia01

前置きが長くなってしまいました・・・

Stadiaはゲームというインタラクティブ(双方向)なコンテンツなのでバリバリな動的コンテンツになります。

ユーザーの向く方向が変われば画面に描画する映像は計算してデータ生成をすることになります。そしてその生成したデータをストリーミングでユーザーに配信することになります。

ゲームをやったことがあるひとは想像出来ると思いますが、これってもの凄い量のデータ通信量が必要になりそうじゃないですかね?

なのでゲームの遅延をどうやってなくすか?が最大の課題となるでしょう。

当然、これまで開発チームは出来る限りの環境でテストを繰り返して課題をクリアしてきたのでしょうが、テストと実際のサービスは全然違います。

それも織り込み済みでGoogleは発表していることもわかっているのですが、それでもネットワークの環境依存が凄いというイメージがある私には多くのユーザーを満足させる通信品質を確保出来るとは思えないんですよね。

ネットワークの通信速度は一定ではありません。たとえば今日このサイトを表示するための通信経路と明日の通信経路が同じ保障はありません。

なのでユーザーとサーバーの間の物理的な距離が遠ければ遠いほど通信速度が不安定になります。

また先ほど説明した通信経路にあるサーバーキャッシュは利用出来ないので、ユーザーのPCから出るキーボードやマウスの指示は最終的なGoogleが提供するクラウドサーバーまで届ける必要があります。

じゃー各市町村レベルでGoogleがサーバーを設置するのは現実的ではありません。その最適解を見つけないといけません。

そうなると完全に全てのユーザーに快適な環境を与えるのは無理になると思うので、例えば田舎のユーザーなんかは遅延が多くて利用出来ないと思います。

これを有料サービスで提供すると多くのクレームとなり、Googleはバッシングの嵐となるのではないでしょうか?

これを無料サービスで提供するのであればクレームの規模は無料だから仕方ないよねってことである程度は抑えられると思いますが、それでも『使えねぇ〜』ってネット上では叩く人はいるでしょう。

そうなるとこのサービスが有料だろうが無料だろうが、開始した後にGoogleに待ち受ける宿命としては、多くのユーザーから日々寄せられるクレーム対応で”もぐらたたき”状態になるのではないでしょうか。

一応Google側の発表では、以下の対応で遅延問題は解決出来るとは言っています。

・全世界に「Googleだけが可能」な規模のデータセンタを持っており物理的・ネットワーク的に近いこと(世界7500か所以上のエッジノード等)
・独自コントローラならば直接ルータに接続して入力遅延を短縮すること(PCなどを経由しない)
・レイテンシ軽減に最適化したサーバ設計や通信プロトコル等

もし、Googleが圧倒的な資金と人を投入して多くのユーザーが受け入れるレベルの”クラウドゲームストリーミングサービス”を提供することが出来たら、私は『Googleすげぇー』って素直に言えるでしょう。

▼▼米国株ブログはこちら▼▼
にほんブログ村 株ブログ 米国株へ