(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-18
(45)【発行日】2024-07-26
(54)【発明の名称】ピアツーピアストリーミングを使用したクラウドソーシングによるクラウドゲーム
(51)【国際特許分類】
A63F 13/355 20140101AFI20240719BHJP
A63F 13/34 20140101ALI20240719BHJP
【FI】
A63F13/355
A63F13/34
(21)【出願番号】P 2021524056
(86)(22)【出願日】2019-09-11
(86)【国際出願番号】 US2019050667
(87)【国際公開番号】W WO2020096694
(87)【国際公開日】2020-05-14
【審査請求日】2021-07-02
(32)【優先日】2018-11-05
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】518187455
【氏名又は名称】ソニー・インタラクティブエンタテインメント エルエルシー
(74)【代理人】
【識別番号】100105924
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】バトラー、ディラン
(72)【発明者】
【氏名】キャノン、カイル
【審査官】嶋田 行志
(56)【参考文献】
【文献】特開2017-035298(JP,A)
【文献】米国特許出願公開第2016/0375363(US,A1)
【文献】特開2017-056194(JP,A)
【文献】国際公開第2015/163208(WO,A1)
【文献】米国特許出願公開第2018/0250600(US,A1)
【文献】米国特許出願公開第2017/0354878(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00-A63F 13/98
A63F 9/24
YouTube
(57)【特許請求の範囲】
【請求項1】
クラウドゲームマシンにより、クラウドビデオゲームのセッションを実行することであって、前記セッションは、ゲームプレイビデオを生成するように構成される、前記実行することと、
集約サーバにより、複数のユーザデバイスからの入力を集約することと、
前記クラウドゲームマシンからネットワークを介して一次ユーザデバイスに前記ゲームプレイビデオをストリーミングすることであって、前記一次ユーザデバイスは、前記ゲームプレイビデオを一次ディスプレイにレンダリングするように構成される、前記ストリーミングすることと、を含み、
前記一次ユーザデバイスは、ピアツーピアネットワークを介して1つ以上の二次ユーザデバイスに前記ゲームプレイビデオをストリーミングするように構成され、前記二次ユーザデバイスのそれぞれは、前記ゲームプレイビデオを1つ以上の二次ディスプレイにそれぞれレンダリングするように構成され、
前記集約サーバは、前記一次ユーザデバイスに対応付けられたインタラクティブゲームプレイから生成される一次入力と、前記1つ以上の二次ユーザデバイスに対応付けられたインタラクティブゲームプレイから生成される二次入力とをそれぞれ前記一次ユーザデバイスと前記1つ以上の二次ユーザデバイスから受信し処理して、集約入力を生成するように構成され、
前記クラウドゲームマシンにより、前記ネットワークを介して前記集約サーバから前記集約入力を受信すること、を含み、
前記クラウドビデオゲームの前記セッションを実行することは、前記集約入力を適用し、前記ゲームプレイビデオを生成するために処理される前記クラウドビデオゲームのゲーム状態を更新することを含み、
前記一次入力及び前記二次入力を処理して前記集約入力を生成することは、前記集約サーバにより、
ゲームプレイにおいてユーザが操作するゲーム環境内のオブジェクト別に異なるユーザグループに分割し、ユーザグループ毎に、前記一次入力及び前記二次入力に基づいて最も高い数または頻度で発生する入力を特定することを含
み、
前記一次ユーザデバイスは、前記ゲームプレイの制御を前記二次ユーザデバイスに譲渡し、前記ピアツーピアネットワークを介して前記二次ユーザデバイスからの制御入力を受信し、前記制御入力が前記クラウドビデオゲームの前記セッションに適用され前記ゲーム状態の実行を駆動するように、前記二次ユーザデバイスから受信された前記制御入力を前記クラウドゲームマシンに転送するように構成される、
方法。
【請求項2】
前記方法は、前記一次ユーザデバイス及び前記1つ以上の二次ユーザデバイスを介して、前記クラウドビデオゲームの前記セッションのほぼリアルタイムなインタラクティブゲームプレイを同時に可能にする、請求項1に記載の方法。
【請求項3】
前記クラウドゲームマシンは、前記1つ以上の二次ユーザデバイスと通信しない、請求項1に記載の方法。
【請求項4】
前記クラウドビデオゲームの前記セッションは、前記クラウドビデオゲームのシングルプレーヤセッションとして定義される、請求項1に記載の方法。
【請求項5】
前記一次ユーザデバイスは、ソケットを提供するように構成され、前記ソケットを介して、前記1つ以上の二次ユーザデバイスから前記二次入力が受信される、請求項1に記載の方法。
【請求項6】
前記二次ユーザデバイスのうちの少なくとも1つは、前記ピアツーピアネットワークを介して受信される前記ゲームプレイビデオをレンダリングするブラウザアプリケーションを実行するように構成される、請求項1に記載の方法。
【請求項7】
前記ピアツーピアネットワークを介して前記1つ以上の二次ユーザデバイスに前記ゲームプレイビデオをストリーミングすることは、WebRTCアプリケーションプログラミングインターフェース(API)にアクセスして、前記ピアツーピアネットワークを確立することを含む、請求項1に記載の方法。
【請求項8】
前記一次入力及び前記二次入力を処理して前記集約入力を生成することは、前記一次入力及び前記二次入力を単一の入力ストリームに組み合わせることを含む、請求項1に記載の方法。
【請求項9】
クラウドゲームマシンにより、クラウドビデオゲームのセッションを実行することであって、前記セッションは、ゲームプレイビデオを生成するように構成される、前記実行することと、
集約サーバにより、複数のユーザデバイスからの入力を集約することと、
前記クラウドゲームマシンからネットワークを介して一次ユーザデバイスに前記ゲームプレイビデオをストリーミングすることであって、前記一次ユーザデバイスは、前記ゲームプレイビデオを一次ディスプレイにレンダリングするように構成される、前記ストリーミングすることと、を含み、
前記一次ユーザデバイスは、ピアツーピアネットワークを介して1つ以上の二次ユーザデバイスに前記ゲームプレイビデオをストリーミングするように構成され、前記二次ユーザデバイスのそれぞれは、前記ゲームプレイビデオを1つ以上の二次ディスプレイにそれぞれレンダリングするように構成され、
前記集約サーバは、前記一次ユーザデバイスに対応付けられたインタラクティブゲームプレイから生成される一次入力と、前記1つ以上の二次ユーザデバイスに対応付けられたインタラクティブゲームプレイから生成される二次入力とをそれぞれ前記一次ユーザデバイスと前記1つ以上の二次ユーザデバイスから受信し処理して、集約入力を生成するように構成され、
前記クラウドゲームマシンにより、前記ネットワークを介して前記集約サーバから前記集約入力を受信すること、を含み、
前記クラウドビデオゲームの前記セッションを実行することは、前記集約入力を適用し、前記ゲームプレイビデオを生成するために処理される前記クラウドビデオゲームのゲーム状態を更新することを含み、
前記一次入力及び前記二次入力を処理して前記集約入力を生成することは、前記集約サーバにより、ゲームプレイ
においてユーザが操作するゲーム環境内のオブジェクト別に異なるユーザグループに分割し、ユーザグループ毎に、所与の入力タイプ及び現在の時間間隔に関して、前記所与の入力タイプであり前記現在の時間間隔中に発生した前記一次入力及び前記二次入力のうちのいくつかの入力に基づいて、単一入力コマンドを特定することを含
み、
前記一次ユーザデバイスは、前記ゲームプレイの制御を前記二次ユーザデバイスに譲渡し、前記ピアツーピアネットワークを介して前記二次ユーザデバイスからの制御入力を受信し、前記制御入力が前記クラウドビデオゲームの前記セッションに適用され前記ゲーム状態の実行を駆動するように、前記二次ユーザデバイスから受信された前記制御入力を前記クラウドゲームマシンに転送するように構成される、
方法。
【請求項10】
プログラム命令が組み込まれた非一時的コンピュータ可読媒体であって、前記プログラム命令は、少なくとも1つのサーバコンピュータにより実行されると、前記少なくとも1つのサーバコンピュータに方法を実行させるように構成され、
前記方法は、
クラウドゲームマシンにより、クラウドビデオゲームのセッションを実行することであって、前記セッションは、ゲームプレイビデオを生成するように構成される、前記実行することと、
集約サーバにより、複数のユーザデバイスからの入力を集約することと、
前記クラウドゲームマシンからネットワークを介して一次ユーザデバイスに前記ゲームプレイビデオをストリーミングすることであって、前記一次ユーザデバイスは、前記ゲームプレイビデオを一次ディスプレイにレンダリングするように構成される、前記ストリーミングすることと、を含み、
前記一次ユーザデバイスは、ピアツーピアネットワークを介して1つ以上の二次ユーザデバイスに前記ゲームプレイビデオをストリーミングするように構成され、前記二次ユーザデバイスのそれぞれは、前記ゲームプレイビデオを1つ以上の二次ディスプレイにそれぞれレンダリングするように構成され、
前記集約サーバは、前記一次ユーザデバイスに対応付けられたインタラクティブゲームプレイから生成される一次入力と、前記1つ以上の二次ユーザデバイスに対応付けられたインタラクティブゲームプレイから生成される二次入力とをそれぞれ前記一次ユーザデバイスと前記1つ以上の二次ユーザデバイスから受信し処理して、集約入力を生成するように構成され、
前記クラウドゲームマシンにより、前記ネットワークを介して前記集約サーバから前記集約入力を受信すること、を含み、
前記クラウドビデオゲームの前記セッションを実行することは、前記集約入力を適用し、前記ゲームプレイビデオを生成するために処理される前記クラウドビデオゲームのゲーム状態を更新することを含み、
前記一次入力及び前記二次入力を処理して前記集約入力を生成することは、前記集約サーバにより、
ゲームプレイにおいてユーザが操作するゲーム環境内のオブジェクト別に異なるユーザグループに分割し、ユーザグループ毎に、前記一次入力及び前記二次入力に基づいて最も高い数または頻度で発生する入力を特定することを含
み、
前記一次ユーザデバイスは、前記ゲームプレイの制御を前記二次ユーザデバイスに譲渡し、前記ピアツーピアネットワークを介して前記二次ユーザデバイスからの制御入力を受信し、前記制御入力が前記クラウドビデオゲームの前記セッションに適用され前記ゲーム状態の実行を駆動するように、前記二次ユーザデバイスから受信された前記制御入力を前記クラウドゲームマシンに転送するように構成される、
非一時的コンピュータ可読媒体。
【請求項11】
前記方法は、前記一次ユーザデバイス及び前記1つ以上の二次ユーザデバイスを介して、前記クラウドビデオゲームの前記セッションのほぼリアルタイムなインタラクティブゲームプレイを同時に可能にする、請求項10に記載の非一時的コンピュータ可読媒体。
【請求項12】
前記クラウドゲームマシンは、前記1つ以上の二次ユーザデバイスと通信しない、請求項10に記載の非一時的コンピュータ可読媒体。
【請求項13】
前記クラウドビデオゲームの前記セッションは、前記クラウドビデオゲームのシングルプレーヤセッションとして定義される、請求項10に記載の非一時的コンピュータ可読媒体。
【請求項14】
前記一次ユーザデバイスは、ソケットを提供するように構成され、前記ソケットを介して、前記1つ以上の二次ユーザデバイスから前記二次入力が受信される、請求項10に記載の非一時的コンピュータ可読媒体。
【請求項15】
前記二次ユーザデバイスのうちの少なくとも1つは、前記ピアツーピアネットワークを介して受信される前記ゲームプレイビデオをレンダリングするブラウザアプリケーションを実行するように構成される、請求項10に記載の非一時的コンピュータ可読媒体。
【請求項16】
前記ピアツーピアネットワークを介して前記1つ以上の二次ユーザデバイスに前記ゲームプレイビデオをストリーミングすることは、WebRTCアプリケーションプログラミングインターフェース(API)にアクセスして、前記ピアツーピアネットワークを確立することを含む、請求項10に記載の非一時的コンピュータ可読媒体。
【請求項17】
前記一次入力及び前記二次入力を処理して前記集約入力を生成することは、前記一次入力及び前記二次入力を単一の入力ストリームに組み合わせることを含む、請求項10に記載の非一時的コンピュータ可読媒体。
【請求項18】
プログラム命令が組み込まれた非一時的コンピュータ可読媒体であって、前記プログラム命令は、少なくとも1つのサーバコンピュータにより実行されると、前記少なくとも1つのサーバコンピュータに方法を実行させるように構成され、
前記方法は、
クラウドゲームマシンにより、クラウドビデオゲームのセッションを実行することであって、前記セッションは、ゲームプレイビデオを生成するように構成される、前記実行することと、
集約サーバにより、複数のユーザデバイスからの入力を集約することと、
前記クラウドゲームマシンからネットワークを介して一次ユーザデバイスに前記ゲームプレイビデオをストリーミングすることであって、前記一次ユーザデバイスは、前記ゲームプレイビデオを一次ディスプレイにレンダリングするように構成される、前記ストリーミングすることと、を含み、
前記一次ユーザデバイスは、ピアツーピアネットワークを介して1つ以上の二次ユーザデバイスに前記ゲームプレイビデオをストリーミングするように構成され、前記二次ユーザデバイスのそれぞれは、前記ゲームプレイビデオを1つ以上の二次ディスプレイにそれぞれレンダリングするように構成され、
前記集約サーバは、前記一次ユーザデバイスに対応付けられたインタラクティブゲームプレイから生成される一次入力と、前記1つ以上の二次ユーザデバイスに対応付けられたインタラクティブゲームプレイから生成される二次入力とをそれぞれ前記一次ユーザデバイスと前記1つ以上の二次ユーザデバイスから受信し処理して、集約入力を生成するように構成され、
前記クラウドゲームマシンにより、前記ネットワークを介して前記集約サーバから前記集約入力を受信すること、を含み、
前記クラウドビデオゲームの前記セッションを実行することは、前記集約入力を適用し、前記ゲームプレイビデオを生成するために処理される前記クラウドビデオゲームのゲーム状態を更新することを含み、
前記一次入力及び前記二次入力を処理して前記集約入力を生成することは、前記集約サーバにより、ゲームプレイ
においてユーザが操作するゲーム環境内のオブジェクト別に異なるユーザグループに分割し、ユーザグループ毎に、所与の入力タイプ及び現在の時間間隔に関して、前記所与の入力タイプであり前記現在の時間間隔中に発生した前記一次入力及び前記二次入力のうちのいくつかの入力に基づいて、単一入力コマンドを特定することを含
み、
前記一次ユーザデバイスは、前記ゲームプレイの制御を前記二次ユーザデバイスに譲渡し、前記ピアツーピアネットワークを介して前記二次ユーザデバイスからの制御入力を受信し、前記制御入力が前記クラウドビデオゲームの前記セッションに適用され前記ゲーム状態の実行を駆動するように、前記二次ユーザデバイスから受信された前記制御入力を前記クラウドゲームマシンに転送するように構成される、
非一時的コンピュータ可読媒体。
【請求項19】
システムであって、
クラウドビデオゲームのセッションを実行するように構成されたクラウドゲームマシンであって、前記セッションは、ゲームプレイビデオを生成するように構成される、前記クラウドゲームマシンと、複数のユーザデバイスからの入力を集約するように構成された集約サーバとを含み、
前記クラウドゲームマシンは、ネットワークを介して前記クラウドゲームマシンから一次ユーザデバイスに前記ゲームプレイビデオをストリーミングするように構成され、前記一次ユーザデバイスは、前記ゲームプレイビデオを一次ディスプレイにレンダリングするように構成され、
前記一次ユーザデバイスは、ピアツーピアネットワークを介して1つ以上の二次ユーザデバイスに前記ゲームプレイビデオをストリーミングするように構成され、前記二次ユーザデバイスのそれぞれは、前記ゲームプレイビデオを1つ以上の二次ディスプレイにそれぞれレンダリングするように構成され、
前記集約サーバは、前記一次ユーザデバイスに対応付けられたインタラクティブゲームプレイから生成される一次入力と、前記1つ以上の二次ユーザデバイスに対応付けられたインタラクティブゲームプレイから生成される二次入力とをそれぞれ前記一次ユーザデバイスと前記1つ以上の二次ユーザデバイスから受信し処理して、集約入力を生成するように構成され、
前記クラウドゲームマシンは、前記ネットワークを介して前記集約サーバから前記集約入力を受信するように構成され、
前記クラウドビデオゲームの前記セッションを実行することは、前記集約入力を適用し、前記ゲームプレイビデオを生成するために処理される前記クラウドビデオゲームのゲーム状態を更新し、
前記一次入力及び前記二次入力を処理して前記集約入力を生成することは、前記集約サーバにより、
ゲームプレイにおいてユーザが操作するゲーム環境内のオブジェクト別に異なるユーザグループに分割し、ユーザグループ毎に、前記一次入力及び前記二次入力に基づいて最も高い数または頻度で発生する入力を特定することを含
み、
前記一次ユーザデバイスは、前記ゲームプレイの制御を前記二次ユーザデバイスに譲渡し、前記ピアツーピアネットワークを介して前記二次ユーザデバイスからの制御入力を受信し、前記制御入力が前記クラウドビデオゲームの前記セッションに適用され前記ゲーム状態の実行を駆動するように、前記二次ユーザデバイスから受信された前記制御入力を前記クラウドゲームマシンに転送するように構成される、
システム。
【請求項20】
前記一次ユーザデバイス及び前記1つ以上の二次ユーザデバイスを介して、前記クラウドビデオゲームの前記セッションのほぼリアルタイムなインタラクティブゲームプレイを同時に可能にする、請求項19に記載のシステム。
【請求項21】
前記クラウドゲームマシンは、前記1つ以上の二次ユーザデバイスと通信しない、請求項19に記載のシステム。
【請求項22】
前記クラウドビデオゲームの前記セッションは、前記クラウドビデオゲームのシングルプレーヤセッションとして定義される、請求項19に記載のシステム。
【請求項23】
システムであって、
クラウドビデオゲームのセッションを実行するように構成されたクラウドゲームマシンであって、前記セッションは、ゲームプレイビデオを生成するように構成される、前記クラウドゲームマシンと、複数のユーザデバイスからの入力を集約するように構成された集約サーバとを含み、
前記クラウドゲームマシンは、ネットワークを介して前記クラウドゲームマシンから一次ユーザデバイスに前記ゲームプレイビデオをストリーミングするように構成され、前記一次ユーザデバイスは、前記ゲームプレイビデオを一次ディスプレイにレンダリングするように構成され、
前記一次ユーザデバイスは、ピアツーピアネットワークを介して1つ以上の二次ユーザデバイスに前記ゲームプレイビデオをストリーミングするように構成され、前記二次ユーザデバイスのそれぞれは、前記ゲームプレイビデオを1つ以上の二次ディスプレイにそれぞれレンダリングするように構成され、
前記集約サーバは、前記一次ユーザデバイスに対応付けられたインタラクティブゲームプレイから生成される一次入力と、前記1つ以上の二次ユーザデバイスに対応付けられたインタラクティブゲームプレイから生成される二次入力とをそれぞれ前記一次ユーザデバイスと前記1つ以上の二次ユーザデバイスから受信し処理して、集約入力を生成するように構成され、
前記クラウドゲームマシンは、前記ネットワークを介して前記集約サーバから前記集約入力を受信するように構成され、
前記クラウドビデオゲームの前記セッションを実行することは、前記集約入力を適用し、前記ゲームプレイビデオを生成するために処理される前記クラウドビデオゲームのゲーム状態を更新し、
前記一次入力及び前記二次入力を処理して前記集約入力を生成することは、前記集約サーバにより、ゲームプレイ
においてユーザが操作するゲーム環境内のオブジェクト別に異なるユーザグループに分割し、ユーザグループ毎に、所与の入力タイプ及び現在の時間間隔に関して、前記所与の入力タイプであり前記現在の時間間隔中に発生した前記一次入力及び前記二次入力のうちのいくつかの入力に基づいて、単一入力コマンドを特定することを含
み、
前記一次ユーザデバイスは、前記ゲームプレイの制御を前記二次ユーザデバイスに譲渡し、前記ピアツーピアネットワークを介して前記二次ユーザデバイスからの制御入力を受信し、前記制御入力が前記クラウドビデオゲームの前記セッションに適用され前記ゲーム状態の実行を駆動するように、前記二次ユーザデバイスから受信された前記制御入力を前記クラウドゲームマシンに転送するように構成される、
システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、クラウドソーシングによるクラウドゲームのためのシステム及び方法に関し、より具体的には、クラウドビデオゲームの一次クライアントデバイスにより仲介される分散型ゲームを可能にするためのピアツーピアビデオストリーミングの確立に関する。
【背景技術】
【0002】
現在急成長している技術分野は、クラウドゲームの分野である。ユーザは、インターネットなどのネットワークを介してクラウドゲームサイト上の多数のゲームにアクセスし、ゲームとのインタラクション/ゲームプレイを開始することができる。ゲームプレイ用のゲームを選択するために、ユーザは、クラウドゲームサイト上の自分のアカウントにアクセスし、ユーザアカウントでゲームプレイ可能な複数のゲームのうちの1つを開始する。クラウドビデオゲームから生成されるビデオは、クライアントデバイスへ転送される。クラウドゲームシステムの一例として、Playstation(登録商標)Nowクラウドゲームサービスが挙げられる。
【0003】
このような背景において、本開示の実施形態は生じる。
【発明の概要】
【0004】
本開示の実施態様は、ピアツーピアストリーミングを使用したクラウドソーシングによるクラウドゲームを提供するために使用される方法及びシステムを提供する。
【0005】
本開示の実施態様によれば、ブラウザに組み込むことができるストリーミング技術であるWebRTCを使用することで、ビデオストリーム(ビデオ画像データ及びオーディオデータを含む)のピアリングが可能となり得る。ホストはビデオを別のユーザに配信することができ、そのユーザは別のユーザなどにビデオを共有することができる。WebRTCによりビデオを効率的に配信できるようにする方法は、いくつか存在する。本開示の実施態様によれば、このようなストリーミングは、ブラウザを介して受信されるビデオゲームストリームに適用することができる。ビデオのストリーミング元であるクラウドゲームマシンに接続されたビデオゲームの最初のストリーマには、複数のデバイスを接続することができる。複数のデバイスへのビデオストリームは、従って他のユーザに複製されるため、これらの観客は、最初のユーザのゲームストリームを視聴することができる。
【0006】
WebRTCの1つの利点は、ビデオの劣化が非常に良質であることである。いくつかのストリーミングサービスでは、利用者がストリーミングサービスのサーバのうちの1つに近接して存在しない場合、レイテンシが原因で接続及びビデオ品質が低下し得る。しかしWebRTC P2Pネットワークでは、ビデオ共有により、動的にダウンサンプリングが行われ、所与のユーザデバイスはデータセンタに近い別のデバイスに接続できることからネットワーク範囲が広がり、P2P接続は直接接続であり、可能な限り複数のホップが回避される。
【0007】
さらに、最初のユーザにソケットバックアップを提供することが可能であり、これにより、観客からの入力を受け取って、ゲームプレイを(少なくとも部分的に)制御するのに使用することができる。いくつかの実施態様では、ユーザの入力がまとめて集計され、ビデオゲームに適用される。観客は各自のコントローラを介して入力コマンドを発行でき、これらの入力コマンドは、ホストユーザのマシンまたはゲームマシンのアップストリームのいずれかに集約され得る。全ての入力コマンドは、メインユーザのマシンを介して、クラウド内のゲームマシンにフィードバックされる。こうすることにより、クラウドゲームプロバイダにさらなるリソース負担をかけることなく、大規模なマルチプレーヤオンラインゲーム体験を実現することが可能となる。さらに、様々なユーザからリアルタイムの視聴及び入力制御を提供することが可能である。多数のユーザが存在し得るが、これらのユーザの集合的入力は好適なチャネルを介して送信されるため、ゲームマシンは多数のユーザをシングルプレーヤとして扱うことができる。例えば、いくわっつかの実施態様では、全てのユーザが、一次メインユーザと同じキャラクタの制御に携わっている場合がある。クラウドゲームサーバの観点からは、集合的入力は単一のクライアントとして現れ、セッションに変更がないため、シームレスである。従って、クラウドソーシングによるゲームプレイ機能は、データセンタのホスティングシステムに対し透過的であり得る。
【0008】
クラウドソーシングゲームにおける従来の試み、例えばユーザに次に何をすべきかコメントさせ、次に投票を集計し、次に最も人気のあるコマンドを発行するなどは、テンポの遅いゲームプレイのビデオゲーム(例えばターン制ゲーム)で実施された。しかし、このような設定では、リアルタイム制御を要するゲームのクラウドソーシングゲームプレイを効果的にプレイすることはできない。クラウドソーシングゲームにおけるこのような従来の試みとは対照的に、本開示による実施態様は、追加のクラウドサーバリソースを要することなく、リアルタイムのクラウドソーシングゲームプレイ制御を可能にする。
【0009】
本開示の実施態様により、協力的なゲーム体験が可能となり、他のユーザがゲームセッションへの参加、1分間の引き継ぎ、援助などができるようになることが理解されよう。
【0010】
概して、本開示のいくつかの実施態様は、最新のウェブブラウザ内のゲームクライアントに関する。このようなブラウザクライアントは、WebRTC技術を使用して構築され得、WebRTC技術は、十分に対応されている技術であり、全ての主要なブラウザで同様に機能する。WebRTCは、エラーチェックまたはパケット保証が実行されないという点で、TCPトランスポートとは異なる。WebRTCは、UDPトランスポートと同様に、オーバーヘッドがほとんどないまたは全くない状態でパケットを送信/受信するため、高速である。
【0011】
本開示の実施態様は、WebRTCを使用して、2つのクライアント間の直接接続であるピアツーピア接続を作成することができる。ピアツーピア接続により、複数のホップを回避して、レイテンシに影響を与える接続が可能となる。接続開始は、セッション記述プロトコル(SDP)を使用して実行され得る。SDPは、2つのデバイス間の通信コントラクトを作成するために使用され、バッファリング、キーフレーム定義、フォールバックポート、プロトコルなどを制御するいくつかのオプションに対応する。
【0012】
いくつかの実施態様では、方法が提供され、方法は、クラウドゲームマシンにより、ゲームプレイビデオを生成するように構成されたクラウドビデオゲームのセッションを実行することと、クラウドゲームマシンからネットワークを介して一次ユーザデバイスにゲームプレイビデオをストリーミングすることであって、一次ユーザデバイスは、ゲームプレイビデオを一次ディスプレイにレンダリングするように構成される、当該ストリーミングすることと、一次ユーザデバイスは、ピアツーピアネットワークを介して1つ以上の二次ユーザデバイスにゲームプレイビデオをストリーミングするように構成され、当該二次ユーザデバイスのそれぞれは、ゲームプレイビデオを1つ以上の二次ディスプレイにそれぞれレンダリングするように構成され、一次ユーザデバイスは、一次ユーザデバイスに対応付けられたインタラクティブゲームプレイから生成される一次入力と、1つ以上の二次ユーザデバイスに対応付けられたインタラクティブゲームプレイから生成される二次入力とを処理して、集約入力を生成するように構成され、クラウドゲームマシンにより、ネットワークを介して一次ユーザデバイスから集約入力を受信することと、クラウドビデオゲームのセッションを実行することは、ゲームプレイビデオを生成するために処理されるクラウドビデオゲームのゲーム状態を、集約入力を適用して更新することを含む、これらの動作を含む。
【0013】
いくつかの実施態様では、方法は、一次ユーザデバイス及び1つ以上の二次ユーザデバイスを介して、クラウドビデオゲームのセッションのほぼリアルタイムなインタラクティブゲームプレイを同時に可能にする。
【0014】
いくつかの実施態様では、クラウドゲームマシンは、1つ以上の二次ユーザデバイスと通信しない。
【0015】
いくつかの実施態様では、クラウドビデオゲームのセッションは、クラウドビデオゲームのシングルプレーヤセッションとして定義される。
【0016】
いくつかの実施態様では、一次ユーザデバイスは、ソケットをインスタンス化するように構成され、ソケットを介して、1つ以上の二次ユーザデバイスから二次入力が受信される。
【0017】
いくつかの実施態様では、二次ユーザデバイスのうちの少なくとも1つは、ピアツーピアネットワークを介して受信されるゲームプレイビデオをレンダリングするブラウザアプリケーションを実行するように構成される。
【0018】
いくつかの実施態様では、ピアツーピアネットワークを介して1つ以上の二次ユーザデバイスにゲームプレイビデオをストリーミングすることは、WebRTCアプリケーションプログラミングインターフェース(API)にアクセスして、ピアツーピアネットワークのインスタンス化を可能にすることを含む。
【0019】
いくつかの実施態様では、一次入力及び二次入力を処理して集約入力を生成することは、一次入力及び二次入力を単一の入力ストリームに組み合わせることを含む。
【0020】
いくつかの実施態様では、一次入力及び二次入力を処理して集約入力を生成することは、一次入力及び二次入力に基づいて人気のある入力を特定することを含む。
【0021】
いくつかの実施態様では、一次入力及び二次入力を処理して集約入力を生成することは、所与の入力タイプ及び現在の時間間隔に関して、所与の入力タイプであり現在の時間間隔中に発生した一次入力及び二次入力のうちのいくつかの入力に基づいて、単一入力コマンドを特定することを含む。
【0022】
いくつかの実施態様では、プログラム命令が組み込まれた非一時的コンピュータ可読媒体が提供され、プログラム命令は、少なくとも1つのサーバコンピュータにより実行されると、当該少なくとも1つのサーバコンピュータに方法を実行させるように構成され、方法は、クラウドゲームマシンにより、ゲームプレイビデオを生成するように構成されたクラウドビデオゲームのセッションを実行することと、クラウドゲームマシンからネットワークを介して一次ユーザデバイスにゲームプレイビデオをストリーミングすることであって、一次ユーザデバイスは、ゲームプレイビデオを一次ディスプレイにレンダリングするように構成される、当該ストリーミングすることと、一次ユーザデバイスは、ピアツーピアネットワークを介して1つ以上の二次ユーザデバイスにゲームプレイビデオをストリーミングするように構成され、当該二次ユーザデバイスのそれぞれは、ゲームプレイビデオを1つ以上の二次ディスプレイにそれぞれレンダリングするように構成され、一次ユーザデバイスは、一次ユーザデバイスに対応付けられたインタラクティブゲームプレイから生成される一次入力と、1つ以上の二次ユーザデバイスに対応付けられたインタラクティブゲームプレイから生成される二次入力とを処理して、集約入力を生成するように構成され、クラウドゲームマシンにより、ネットワークを介して一次ユーザデバイスから集約入力を受信することと、クラウドビデオゲームのセッションを実行することは、ゲームプレイビデオを生成するために処理されるクラウドビデオゲームのゲーム状態を、集約入力を適用して更新することを含む、これらの方法動作を含む。
【0023】
いくつかの実施態様では、システムが提供され、システムは、クラウドゲームマシンを含み、クラウドゲームマシンは、ゲームプレイビデオを生成するように構成されたクラウドビデオゲームのセッションを実行するように構成され、クラウドゲームマシンは、ネットワークを介してクラウドゲームマシンから一次ユーザデバイスにゲームプレイビデオをストリーミングするように構成され、一次ユーザデバイスは、ゲームプレイビデオを一次ディスプレイにレンダリングするように構成され、一次ユーザデバイスは、ピアツーピアネットワークを介して1つ以上の二次ユーザデバイスにゲームプレイビデオをストリーミングするように構成され、当該二次ユーザデバイスのそれぞれは、ゲームプレイビデオを1つ以上の二次ディスプレイにそれぞれレンダリングするように構成され、一次ユーザデバイスは、一次ユーザデバイスに対応付けられたインタラクティブゲームプレイから生成される一次入力と、1つ以上の二次ユーザデバイスに対応付けられたインタラクティブゲームプレイから生成される二次入力とを処理して、集約入力を生成するように構成され、クラウドゲームマシンは、ネットワークを介して一次ユーザデバイスから集約入力を受信するように構成され、クラウドビデオゲームのセッションを実行することは、ゲームプレイビデオを生成するために処理されるクラウドビデオゲームのゲーム状態を、集約入力を適用して更新することを含む。
【0024】
本開示の他の態様及び利点は、添付の図面と併せて、本開示の原理を例として示す下記の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【0025】
本開示は、そのさらなる利点と共に、添付の図面と併せて下記の説明を参照することにより、最も良く理解されるであろう。
【0026】
【
図1A】本開示の実施形態による、ゲームコンテンツをクラウドゲームサーバにプリロードするために使用される例示的なシステムの簡略化されたブロック図を示す。
【0027】
【
図1B】本開示の実施態様による、クラウドビデオゲームをクライアントデバイスにストリーミングするために実行される様々な動作を概念的に示すフロー図である。
【0028】
【
図2】本開示の実施態様による、ネットワークを介して複数のユーザにクラウドビデオゲームを提供するためのシステムを概念的に示す。
【0029】
【
図3】本開示の実施態様による、一次ユーザデバイス220及び二次ユーザデバイス228の構成要素を概念的に示す。
【0030】
【
図4A】本開示の実施態様による、入力の集約が一次クライアントデバイスで処理されるシステムを概念的に示す。
【0031】
【
図4B】本開示の実施態様による、入力の集約がゲームマシンで処理されるシステムを概念的に示す。
【0032】
【
図4C】本開示の実施態様による、入力の集約が集約サーバで処理されるシステムを概念的に示す。
【0033】
【
図5A】本開示の実施態様による、ユーザ間におけるビデオゲームセッションの制御の譲渡を概念的に示す。
【
図5B】本開示の実施態様による、ユーザ間におけるビデオゲームセッションの制御の譲渡を概念的に示す。
【
図5C】本開示の実施態様による、ユーザ間におけるビデオゲームセッションの制御の譲渡を概念的に示す。
【0034】
【
図6A】本開示の実施態様による、クラウドゲームシステムのオンラインユーザのゲームプレイにアクセスするためのインターフェース600を示す。
【0035】
【
図6B】本開示の実施態様による、クラウドゲームシステムにおけるユーザのセッションのゲームプレイを視聴する及び/またはゲームプレイに参加するためのアクセスを提供するインターフェース610を示す。
【0036】
【
図7】本開示の実施態様による、地理的に分散しネットワークを介して接続されたユーザに情報コンテンツ及びサービスを届けるための例示的な情報サービスプロバイダアーキテクチャを示す。
【0037】
【
図8】本開示の実施態様による、ユーザに提示されるコンテンツを制御するために使用されるコンピューティングデバイスの例示的な構成要素を示す。
【0038】
【
図9】本開示の実施態様による、ゲームシステム900のブロック図である。
【発明を実施するための形態】
【0039】
以下の発明を実施するための形態では、本開示の完全な理解を提供するために、多くの具体的な詳細が述べられる。しかしながら、本開示は、これらの具体的な詳細の一部または全てがなくとも実践できることは、当業者には明らかであろう。他の例では、本開示を不明瞭にしないために、周知のプロセスステップについては詳細に説明していない。
【0040】
クラウドゲームシステムの一例として、Playstation(登録商標)Nowクラウドゲームサービスが挙げられる。現在、このようなシステムでは、クライアントデバイスは、プレイステーション(登録商標)4ゲームコンソールなどのゲームコンソール、またはパーソナルコンピュータなどの別のデバイスであり得る。
【0041】
既存のクラウドゲームシステム(例えばPlaystation(登録商標)Now)では、クラウドゲームマシン(例えばクラウドコンソールデバイス)がデータセンタに存在し、サーバは、一次クライアントデバイス(例えばPlaystation(登録商標)4ゲームコンソールまたはパーソナルコンピュータ)とクラウドゲームマシンとの接続を確立する。例えばレイテンシ、ストリーミングビットレート、利用可能なクラウドコンピューティングリソース、サーバの負荷分散などに関して好適なパフォーマンスを提供することが見込まれるデータセンタといった、クラウドビデオゲームのストリーミング元として最適なデータセンタが選択され得る。次に、クラウドゲームマシンと一次クライアントデバイスとの間でストリーミングが直接行われ、一次ユーザに満足のいくクラウドゲーム体験を提供するのに十分なパフォーマンスを可能にする高速接続を設けることが理想的である。
【0042】
しかし、他のリモート二次ユーザが一次ユーザのゲームセッションを視聴したい場合、どのようにして一次クライアントデバイスのビデオストリームを他のリモートユーザに提供するかという課題に直面する。1つの選択肢としては、同じデータセンタから、場合によっては同じゲームマシンから、二次ユーザにそれぞれ対応付けられた二次クライアントデバイスへ、ストリーミングを行うことが挙げられる。しかし、このようにすることで、データセンタのリソース及びデータセンタのネットワーク接続に追加の負荷がかかり、他のデバイス及びセッションのためのリソース可用性及び接続帯域幅は減少する。さらに、データセンタは、一次クライアントデバイスに対しては最適化され得るが、二次クライアントデバイスのうちの1つ以上に対しては、良好なパフォーマンスを提供しない場合がある。例えば、二次クライアントデバイスは、一次クライアントデバイスよりもデータセンタから大幅に離れた位置に存在し得、二次クライアントデバイスは、低接続速度及び低ストリーミングパフォーマンスという問題を抱え得る。
【0043】
このような事情を考慮して、本開示による実施態様は、一次クライアントデバイスと二次クライアントデバイスとの間にピアツーピアネットワークを確立し、このピアツーピアネットワークを介して(一次クライアントデバイスのクラウドゲームセッションの)ゲームプレイビデオのストリーミングを行うシステムを提供する。このようにして、二次クライアントデバイスは、クラウドゲームサービスのサーバとストリーミング接続を確立する必要がなく、よって、クラウドゲームサービスは、そのようなストリーミング接続の処理に関連する高いサーバコストを負担する必要がない。
【0044】
いくつかの実施態様では、ピアツーピアストリーミングは、WebRTC技術を使用して実施される。いくつかの実施態様では、一次クライアントデバイスは、ストリーミングサーバを実装し、最適なストリーミングパフォーマンスのためにUDPで配信するように構成され得る。従来、ブラウザは、パケットが失われた場合には接続が切断されるようなシリアルプロセスであるTCP/IPを使用する。しかし、UDPの場合、接続を切断せずにパケットを破棄できるため、ビデオのストリーミングには有利である。
【0045】
さらに、いくつかの実施態様では、ソケットまたはデータチャネルが提供され、これを介して、二次クライアントデバイスにより生成されたユーザ入力が一次クライアントデバイスに送信される。このようなユーザ入力は、一次クライアントデバイスのユーザ入力とともに、一次クライアントデバイスで集約され、一次クライアントデバイスからクラウドゲームサービスに送信され得る。このようにして、二次ユーザは、クラウドビデオゲームの一次ユーザのセッションを視聴するだけでなく、プレイに参加することもできる。クラウドゲームマシンは、二次クライアントデバイスと通信する必要はないにもかかわらず、二次ユーザは、クラウドビデオゲームの一次ユーザのセッションのプレイに参加することが可能である。
【0046】
従って、本開示による実施態様は、ピアツーピア技術を活用する(例えばWebRTCプロトコルを使用する)一次クライアントを提供することにより、複数の二次クライアントが、クラウドゲームサービスのシステムリソースに追加の負担をかけることなく、一次クライアントのゲームプレイビデオを視聴することを可能にする。さらに、二次ユーザは、入力を通して一次ユーザのゲームセッションに参加することができ、入力は、一次クライアントデバイスで集約され、次にクラウドビデオゲームに送信される。
【0047】
従って、本開示による実施態様は、クラウドゲームサービスプロバイダに追加のリソース負荷をかけることなく、複数のユーザがビデオゲームで満足のいくストリーミングゲームプレイを行うことを可能にするという課題に対し、解決策を提供する。
【0048】
概して、ゲームタイトルのユーザリクエストが受信されると、クラウドゲームを有効化するために、クラウドゲームサイトに対応付けられたデータセンタ内の1つ以上のサーバによりいくつかの動作が実行される。クラウドゲームサイトがユーザリクエストを受信すると、選択されたゲームタイトルに対応付けられたゲームをホストするデータセンタが識別され、選択されたゲームタイトルのゲームをインスタンス化するために、識別されたデータセンタにリクエストが送信される。リクエストに応じて、データセンタのサーバは、ゲームコンテンツをユーザに提示する準備として、ゲームコードを識別し、識別したゲームコードをロードし、ゲームコードに関連するファイルを初期化する。ゲームに対応付けられたゲームデータには、一般的なゲームデータと、ユーザ固有のゲームデータとが含まれ得る。従って、ファイルを初期化することは、一般的なゲームデータ及びユーザ固有のゲームデータの両方を識別し、ロードし、初期化することを含み得る。一般的なゲームデータを初期化することは、グラフィックエンジンを初期化すること、グラフィックデータをインストールすること、サウンドファイルを初期化すること、アートワークをインストールすることなどを含み得る。ユーザ固有データを初期化することは、ユーザデータ、ユーザ履歴、ゲーム履歴などを検索すること、転送すること、及びインストールすることを含み得る。
【0049】
一般的なゲームデータがロードされ初期化されている間に、「スプラッシュ」画面がクライアントデバイスでレンダリングされるように提供され得る。スプラッシュ画面は、ロードされているゲームの代表的な画像を提供するように設計され、ロードされているゲームの好例をユーザが下見することを可能にし得る。一般的なゲームデータがロードされると、特定の初期コンテンツがレンダリングされ得、選択/ナビゲーション画面が、ユーザ選択及びカスタマイズのために提示され得る。選択/ナビゲーション画面で入力されるユーザ選択には、ゲームレベルの選択、ゲームアイコン(複数可)の選択、ゲームモードの選択、ゲームの獲得物、追加のゲームコンテンツのアップロードが必要となり得る他のユーザ関連データが含まれ得る。いくつかの実施形態では、ゲームコンテンツは、クラウドゲームシステムからユーザのコンピューティングデバイスにゲームコンテンツをストリーミングすることにより、視聴及びインタラクションに利用可能となる。いくつかの実施態様では、ユーザ固有データをロードした後に、ゲームコンテンツはゲームプレイに利用可能となる。
【0050】
図1Aは、クラウドゲームサイトを介して利用可能なゲームのゲームファイルをロードするために使用される例示的なシステムを示す。システムは、インターネットなどのネットワーク102を介してクラウドゲームサイト104に通信可能に接続された複数のクライアントデバイス100を含む。クラウドゲームサイト104にアクセスするリクエストがクライアントデバイス100から受信されると、クラウドゲームサイト104は、ユーザデータストア108に格納されたユーザアカウント情報106にアクセスし、リクエストを発信したクライアントデバイスに対応付けられたユーザを識別する。いくつかの実施形態では、クラウドゲームサイトはまた、ユーザが視聴/プレイを許可された全てのゲームを特定するために、識別したユーザを検証し得る。ユーザアカウントの識別/検証に続いて、クラウドゲームサイトは、ゲームタイトルデータストア110にアクセスして、リクエストを発信したユーザアカウントがクラウドゲームサイトで利用可能なゲームタイトルを識別する。今度は、ゲームタイトルデータストア110が、ゲームデータベース112とインタラクトして、クラウドゲームサイトが利用可能な全てのゲームのゲームタイトルを取得する。新しいゲームが導入されると、ゲームデータベース112はゲームコードが更新され、ゲームタイトルデータストア110は、新たに導入されたゲームのゲームタイトル情報を提供される。リクエストを発信したクライアントデバイスは、リクエストを発信した時に、クラウドゲームサイトに登録されている場合とされていない場合がある。リクエストを発信したクライアントデバイスのユーザが登録ユーザでない場合には、クラウドゲームサイトは、そのユーザを新規ユーザとして識別し、新規ユーザに好適なゲームタイトル(例えばデフォルトのゲームタイトル集合)を選択し得る。
図1Aに示されるように、特定されたゲームタイトルは、ディスプレイ画面100-aに提示するようにクライアントデバイスに返される。
【0051】
クライアントデバイス上でレンダリングされたゲームタイトルのうちの1つでユーザインタラクションが検出され、信号がクラウドゲームサイトに送信される。信号には、ユーザインタラクションが検出されたゲームタイトル情報と、ゲームタイトルで登録されたユーザインタラクションとが含まれる。クライアントデバイスから受信した信号に応じて、クラウドゲームサイトは積極的に、ゲームがホストされているデータセンタを特定し、特定したデータセンタに信号を送信して、ユーザインタラクションが検出されたゲームタイトルに対応付けられたゲームをロードする。いくつかの実施形態では、複数のデータセンタがゲームをホストしている場合がある。このような実施形態では、クラウドゲームサイトは、リクエストを発信したクライアントデバイスの地理的位置を特定し、クライアントデバイスに地理的に近いデータセンタを識別し、データセンタにゲームをプリロードするように信号を送信し得る。ユーザの地理的位置は、いくつか例を挙げると、クライアントデバイス内の全地球測位システム(GPS)メカニズム、クライアントのIPアドレス、クライアントのping情報を使用して、特定され得る。当然ながら、ユーザの地理的位置を検出する前述の方法は例示であり得、他の種類のメカニズムまたはツールを使用して、ユーザの地理的位置を特定してもよい。クライアントデバイスに近いデータセンタを識別することにより、ユーザがゲームとインタラクトする際のレイテンシを最小限に抑えることができる。いくつかの実施形態では、識別されたデータセンタは、ゲームをホストするのに必要な帯域幅/処理能力を有さない場合がある、または過使用されている場合がある。これらの実施形態では、クラウドゲームサイトは、クライアントデバイスに地理的に近い第2のデータセンタを識別し得る。ゲームをロードすることは、ゲームコードをロードすることと、ゲームのインスタンスを実行することとを含む。
【0052】
クラウドゲームサイトから信号を受信したことに応じて、識別されたデータセンタは、データセンタにおけるサーバを選択して、サーバ上でゲームをインスタンス化し得る。サーバは、利用可能なハードウェア/ソフトウェアの処理能力及びゲーム要件に基づいて選択される。サーバは、複数のゲームコンソールを含み得、サーバは、ゲームをロードするのに、複数のゲームコンソールのうちのどのゲームコンソールを使用するかを決定し得る。ゲームコンソールは、独立したゲームコンソールに類似し得る、またはラックマウントサーバもしくはブレードサーバであり得る。ブレードサーバは、次に、複数のサーバブレードを含み得、各ブレードは、ゲームなどの単一の専用アプリケーションをインスタンス化するのに必要な回路を有する。当然ながら、前述のゲームコンソールは例示であり、限定として見なされるべきではない。ゲームステーションなどを含む他の種類のゲームコンソール、及び他の形態のブレードサーバも、識別されたゲームをホストするために用いられてよい。
【0053】
ゲームコンソールが識別されると、ゲームがインスタンス化されるゲームコンソールを識別するネットワークを介して、クラウドゲームサイトにより、ゲームの一般的なゲーム関連コードがゲームコンソールにロードされ、クライアントデバイスに信号が返される。このように、ロードされたゲームは、ユーザに利用可能となる。
【0054】
図1Bは、本開示の実施態様による、クラウドビデオゲームをクライアントデバイスにストリーミングするために実行される様々な動作を概念的に示すフロー図である。ゲームシステム118は、ビデオゲームを実行し、生の(非圧縮の)ビデオ120及びオーディオ122を生成する。ビデオ120及びオーディオ122は、例示の図の参照番号124に示されるように、ストリーミングのために取り込まれ符号化される。符号化により、ビデオ及びオーディオのストリームが圧縮され、帯域幅の使用量は軽減され、ゲーム体験は最適化され得る。符号化形式の例として、H.265/MPEG-H、H.264/MPEG-4、H.263/MPEG-4、H.262/MPEG-2、WMV、VP6/7/8/9などが挙げられる。
【0055】
符号化されたオーディオ126及び符号化されたビデオ128はさらに、インターネットなどのネットワークを介して送信するために、参照番号132に示されるように、ネットワークパケットにパケット化される。ネットワークパケット符号化プロセスは、データ暗号化プロセスも採用し得るため、データセキュリティが強化される。例示の実施態様では、オーディオパケット134及びビデオパケット136は、参照番号140に示されるように、ネットワークを介して転送するために生成される。
【0056】
ゲームシステム118はさらに、触覚フィードバックデータ130を生成し、これもネットワーク送信のためにネットワークパケットにパケット化される。例示の実施態様では、触覚フィードバックパケット138は、参照番号140でさらに示されるように、ネットワークを介して転送するために生成される。
【0057】
生のビデオ及びオーディオ並びに触覚フィードバックデータを生成することと、ビデオ及びオーディオを符号化することと、符号化されたオーディオ/ビデオ及び触覚フィードバックデータを転送用にパケット化することとの前述の動作は、クラウドゲームサービス/システムを集合的に定義する1つ以上のサーバ上で実行される。参考番号140に示されるように、オーディオ、ビデオ、及び触覚フィードバックのパケットは、インターネットなどのネットワーク、及び/またはインターネットを含むネットワークを介して、転送される。参考番号142に示されるように、オーディオパケット134、ビデオパケット136、及び触覚フィードバックパケット138は、クライアントデバイスによりパケット化解除/再構築され、クライアントデバイスにて、符号化されたオーディオ146、符号化されたビデオ148、及び触覚フィードバックデータ150が定義される。データが暗号化されている場合は、ネットワークパケットは暗号解読化も行われる。次に、符号化されたオーディオ146及び符号化されたビデオ148は、参照番号144に示されるように、クライアントデバイスにより復号化され、クライアント側の生のオーディオ及びビデオデータが生成され、ディスプレイデバイス152上にレンダリングされる。触覚フィードバックデータ150は、処理/通信され、触覚効果をレンダリングすることができるコントローラデバイス156または他のインターフェースデバイスにて、触覚フィードバック効果が生成される。触覚効果の一例として、コントローラデバイス156の振動またはランブルが挙げられる。
【0058】
ビデオゲームはユーザ入力に応答することから、ユーザ入力の送信及び処理に関しても、前述と同様の手順の流れを、クライアントデバイスからサーバへの逆方向で実行され得ることが理解されよう。示されるように、コントローラデバイス156を操作するユーザは、入力データ158を生成し得る。この入力データ158は、ネットワークを介してクラウドゲームシステムに転送するために、クライアントデバイスでパケット化される。入力データパケット160は、クラウドゲームサーバによりパケット化解除及び再構築されて、サーバ側で入力データ162が定義される。入力データ162は、ゲームシステム118に供給され、ゲームシステム118は、入力データ162を処理して、ビデオゲームのゲーム状態を更新する。
【0059】
オーディオパケット134、ビデオパケット136、及び触覚フィードバックパケット138の転送中(参照番号140)、クラウドゲームストリームのサービス品質を保証するために、ネットワークを介したデータの送信が監視され得る。例えば、参照番号164により示されるように、アップストリーム及びダウンストリームネットワーク帯域幅の両方を含むネットワーク状態が監視され得、ゲームストリーミングは、利用可能な帯域幅の変化に応じて調整され得る。すなわち、参考番号166により示されるように、ネットワークパケットの符号化及び復号化は、現在のネットワーク状況に基づいて制御され得る。
【0060】
図2は、本開示の実施態様による、ネットワークを介して複数のユーザにクラウドビデオゲームを提供するためのシステムを概念的に示す。例示の実施態様では、ゲームマシン202によりクラウドビデオゲームが実行され、ビデオゲームセッション204が定義される。ゲームマシン202は、様々なクライアントデバイスのクラウドビデオゲームのセッションを実行することが可能な他のゲームマシンとともに、データセンタ200内に配置され得る。様々な実施態様において、ゲームマシン202は、ゲームコンソール、ゲームコンソールと同等のハードウェア(例えばブレード型ゲームコンソールハードウェア)、サーバコンピュータ/サーバブレード、ハードウェアリソースで実行される仮想マシン、またはクラウドビデオゲームに好適な実行環境を提供できる任意の他の構成のハードウェアであり得ることが、理解されよう。
【0061】
例示の実施態様では、ビデオゲームセッション204は、一次ユーザ226に対して定義される。従って、ビデオゲームセッション204は、インターネットを含み得るネットワーク218を介して、一次ユーザ226に対応付けられた一次ユーザデバイス220にストリーミングされる。より具体的には、ビデオゲームセッション204は、受信した入力コマンドに基づいて更新されるゲーム状態を、インスタンス化して維持する。ゲームマシン202は、ゲーム状態に基づいてビデオフレーム及びオーディオをレンダリングし、ネットワーク218を介して一次ユーザデバイス220に送信されるビデオストリーム221(動画データ及びオーディオデータの両方を含む)を定義する。本開示で使用される場合、及び本開示で注記されないあるいは明らかでない限り、ビデオは、動画データ及び対応するオーディオデータの両方を指すものとする。一次ユーザデバイス220は、ビデオストリームを、一次ユーザ226が見られるようにディスプレイ222にレンダリングする。一次ユーザ226は、コントローラデバイス224の操作を介してビデオゲームとインタラクトし得、コントローラデバイス224は、一次ユーザ226がビデオゲームに対するインタラクティブ入力を提供できる任意のデバイスであり得、例えばゲームコントローラ、周辺機器、キーボード、マウス、タッチパッド、トラックボール、モーションコントローラ、ビデオカメラ、深度カメラ、マイクロフォンなどであり得る。
【0062】
一次ユーザデバイス220は、ゲームコンソール、パーソナルコンピュータ、ラップトップ、ポータブルゲームデバイス、タブレット、携帯電話、またはゲームマシン202からビデオストリーム221を受信してディスプレイ222にレンダリングすることが可能な任意の他のネットワークデバイスなど、様々な種類のデバイスのうちのいずれかであり得ることが理解されよう。ディスプレイ222は、ビデオゲームセッションからのビデオを表示することが可能な任意の種類のディスプレイであり得、例としてテレビ、モニタ、プロジェクタ、タッチスクリーン、ヘッドマウントディスプレイ(HMD)などが挙げられるが、これらに限定されない。いくつかの実施態様では、一次ユーザデバイス220及びディスプレイ222は、同じフォームファクタ(例えばラップトップ、タブレット、携帯電話など)に統合され得る。いくつかの実施態様では、コントローラデバイス224も同じフォームファクタに統合され得ることが理解されよう。一次ユーザに対応付けられたデバイスに関して説明されたのと同様の概念が、下記でさらに説明される二次ユーザに対応付けられたデバイスにも適用されることが理解されよう。
【0063】
前述の実施態様では、ゲームマシン202は、ビデオストリーム221を一次ユーザデバイス220にストリーミングする。いくつかの実施態様では、一次ユーザデバイス220へのビデオストリーム221のストリーミングを処理するために、ストリーミングサーバ206が呼び出される。ストリーミングサーバ206は、ゲームマシン202により出力された生のビデオを、例えば圧縮形式で符号化し、それを1つの形式/コデックから別の形式/コデックにトランスコードし、様々な検討事項(例えばネットワーク帯域幅、一次ユーザデバイスのハードウェア処理能力、一次ユーザデバイスのアプリケーション/ブラウザの種類など)に基づいてそのビットレートを調整することで処理して、ビデオストリーム221を生成し得る。いくつかの実施態様では、ストリーミングサーバ206は、データセンタ200内に配置されるが、他の実施態様では、ストリーミングサーバ206は、他のデータセンタなどの他の場所に配置され得る。いくつかの実施態様では、ストリーミングサーバ206は、ゲームマシン202により実行される。
【0064】
本開示の実施態様によれば、複数の二次ユーザが一次ユーザ226のセッションを視聴し、セッションに参加することを可能にする方法が提供される。例示の実施態様では、このような二次ユーザ234、242、250、及び258が、二次ユーザデバイス228、236、244、及び252にそれぞれ対応付けられて示される。二次ユーザデバイス228、236、244、及び252は、ディスプレイ230、238、246、及び254、並びにコントローラデバイス232、240、248、及び256に、それぞれ動作可能に接続される。
【0065】
本開示の実施態様によれば、一次ユーザデバイス220によりレンダリングされたビデオは、ピアツーピア(P2P)共有を介して二次ユーザデバイスに共有される。すなわち、一次ユーザデバイスと二次ユーザデバイスとの間にピアツーピア接続が確立され(ネットワーク218を介して)、P2Pネットワークが形成され、これを介して全ての二次ユーザデバイスにビデオが共有される。P2P共有は、最小のレイテンシで、ほぼリアルタイムであり、これにより、二次ユーザは、一次ユーザ226が見ているビデオゲームセッション204の同じビデオコンテンツを、最小の時間差で同時に見ることができることが理解されよう。このようにして、二次ユーザは、ほぼリアルタイムで一次ユーザのゲームプレイを視聴することができる。
【0066】
いくつかの実施態様では、P2P共有は、WebRTCを使用して実現される。例えば、いくつかの実施態様では、ピアツーピア接続は、RTCPeerConnection APIを使用して、さらにセッション記述プロトコル(SDP)に従って、確立される。概して、これには、SDPを使用してオファーとアンサーを交換することによりメディア構成情報を交換するシグナリングが含まれる。
【0067】
さらに、本開示の実施態様によれば、二次ユーザが一次ユーザのビデオゲームセッション204のゲームプレイに参加することを可能にする機能が提供される。例えば、いくつかの実施態様では、二次ユーザにより供給されたインタラクティブ入力は、一次ユーザデバイス220に返信され、そこで一次ユーザの入力と併せて集約または処理され得る。次に、一次ユーザ及び二次ユーザの集約入力は、入力ストリーム223としてゲームマシン202に送信される。例示の実施態様では、二次ユーザからの入力は、二次ユーザが各自のコントローラデバイス232、240、248、及び256を操作することにより生成され得る。従って、例えば二次ユーザ234の視聴及びゲームプレイ体験を考えると、二次ユーザ234が二次ユーザのディスプレイ230を通して一次ユーザ226の共有ゲームプレイビデオを見る時、二次ユーザ234は、コントローラデバイス232を操作することにより、ビデオとインタラクトすることができる。これにより、二次ユーザデバイス228が一次ユーザデバイス220に送信する入力が生成される(例えば一次ユーザデバイス220にて入力を受信するように構成されたソケットまたは他の接続プロトコルを介して)。同様の体験が、各自の二次ユーザデバイス、ディスプレイ、及びコントローラデバイスを使用する他の二次ユーザにも提供されることが理解されよう。
【0068】
このようにして、二次ユーザデバイスは、二次入力を一次ユーザデバイス220に提供し、一次ユーザデバイス220は、一次ユーザ226のインタラクティビティにより(コントローラデバイス224の操作を通して)供給される一次入力とともに、これらを処理して、集約入力ストリーム223を生成し得る。様々な実施態様において、一次ユーザ及び二次ユーザの組み合わされた入力は、様々な方法で処理され得ることが理解されよう。処理方法に関わらず、このように、二次ユーザは、一次ユーザ226に対して定義されたビデオゲームセッション204のゲームプレイに参加することができる。さらに、ゲームマシン202の観点からは、これは、単一のクライアント、すなわち一次ユーザデバイス220にセッションを提供しているだけであり、二次ユーザの参加を可能にするために追加のクラウドリソースは必要ない。ゲームマシン202(または呼び出した場合はストリーミングサーバ206)は、二次ユーザデバイスと通信する必要はないにも関わらず、二次ユーザは、ゲームプレイを見ることができ、さらにゲームプレイに参加することもできる。
【0069】
いくつかの実施態様では、クラウドビデオゲーム及び視聴/参加機能は、クラウドゲームサービス208により提供される。概して、クラウドゲームサービス208は、ゲームプレイするためのクラウドビデオゲームへのアクセス、並びに他のユーザのゲームプレイを視聴するためのアクセスを提供する。例示の実施態様では、クラウドゲームサービス208は、クラウドゲームサービス208のユーザが操作するユーザデバイスからネットワーク218を介してリクエストを受信して応答するウェブサーバ210を含む。いくつかの実施態様では、ウェブサーバ210は、クラウドゲームサービス208へアクセスするリクエストの受信及び応答を、例えばログイン資格情報の承認を促進して、クラウドゲームサービスのインターフェースへのアクセスを提供することにより行い、クラウドゲームサービスのインターフェースは、いくつかの実施態様では、リクエストを発信したユーザデバイスがウェブブラウザを介してクラウドゲームサービスにアクセスする場合、1つ以上のウェブページの形態であり得る。このようなサービスを提供する際、ウェブサーバ210は、ログイン資格情報、ユーザゲーム履歴、ソーシャルグラフ情報、功績/トロフィー、ゲームの所有権、好み/設定など、様々なユーザ関連データを含み得るユーザデータストレージ216にアクセスし得る。
【0070】
例示の実施態様によれば、ウェブサーバ210は、一次ユーザデバイス220からクラウドビデオゲームにアクセスするリクエストを受信し得、リクエストに応じて、一次ユーザデバイス220は、データセンタ200のゲームマシン202に割り当てられ、ゲームマシン202上では、一次ユーザ226のためにビデオゲームセッション204が開始される。
【0071】
さらに、ウェブサーバ210は、二次ユーザデバイス228、236、244、及び252から、ライブゲームセッションにアクセスするリクエストを受信し得る。例示の実施態様では、クラウドゲームサービス208は、ライブゲームモニタ212を含み、ライブゲームモニタ212は、進行中のクラウドゲームセッションから更新を取得し、更新をライブゲームデータストレージ214に格納するように構成される。例えば、このような更新には、活動中のクラウドゲームセッションを識別するデータ、代表的な最近のスクリーンショット、そのようなセッションに関する情報/統計(例えば活動中のセッションの継続時間、セッションに対応付けられたユーザID、マルチプレーヤセッションのプレーヤ数、ゲーム関連統計など)、チャットログなどが含まれ得る。前述のライブゲームセッションにアクセスするリクエストに応じて、ウェブサーバ210は、ライブゲームデータストレージ214にアクセスして、ライブゲームセッションに関するデータを取得し、リクエストを発信した二次ユーザデバイスに提供し得る。
【0072】
ウェブサーバ210はさらに、二次ユーザデバイス228、236、244、及び252から、一次ユーザ226のビデオゲームセッション204を特に視聴し、場合によってはそれに参加するリクエストを受信し得る。このようなリクエストに応じて、ウェブサーバ210は、前述のようにゲームプレイビデオのP2P共有を開始するために、リクエストを一次ユーザデバイス220に通信し得る。
【0073】
図3は、本開示の実施態様による、一次ユーザデバイス220及び二次ユーザデバイス228の構成要素を概念的に示す。例示の実施態様では、一次ユーザデバイス220は、本明細書で説明されるように、ビデオゲームセッション204の共有ゲームプレイを可能にする機能を実行するように構成されたクラウドゲームアプリケーション302を実行する。上記のように、一次ユーザデバイス220は、ゲームコンソールまたはパーソナルコンピュータなど、様々な種類のネットワーク対応デバイスのうちのいずれかであり得る。従って、いくつかの実施態様では、クラウドゲームアプリケーション302は、一次ユーザデバイス220のオペレーティングシステム環境で実行される専用またはスタンドアロンのアプリケーションまたはアプリであり得る。一方、他の実施態様では、クラウドゲームアプリケーション302はウェブアプリケーションであり、及び/またはウェブブラウザアプリケーション300のコンテキスト内で様々な機能モジュールを定義し得る。
【0074】
例示の実施態様では、クラウドゲームアプリケーション302は、ビデオストリームハンドラ304を含み、ビデオストリームハンドラ304は、ビデオストリーム221を受信し、それを、一次ユーザ226が見るレンダリングゲームプレイビデオとして、ディスプレイ222にレンダリングする。いくつかの実施態様では、ゲームプレイビデオのP2P共有を促進するために、一次ユーザデバイス220でビデオストリームサーバ306が実行される。ビデオストリームサーバ306は、P2P API316を介してP2Pライブラリ318にアクセスして、一次ユーザデバイス220のP2P共有機能を提供し得ることが理解されよう。
【0075】
P2P共有がWebRTCを使用して実行されるいくつかの実施態様では、ビデオストリームサーバ306は、P2P接続324を介してゲームプレイビデオを共有/配信するように構成されたWebRTCサーバであり得る。このような実施態様では、P2P API316は、WebRTC APIであり、P2Pライブラリ318はWebRTCライブラリである。
【0076】
二次ユーザデバイス228は、一次ユーザデバイス220と同様に、様々な種類のネットワークデバイスのうちのいずれかであり得る。例示の実施態様では、二次ユーザデバイス228は、クラウドゲームアプリケーション334を含み、これは、スタンドアロンアプリケーション/アプリであり得る、またはウェブブラウザ332を介して定義され得る。クラウドゲームアプリケーション334は、P2P接続324を介して共有されるゲームプレイビデオを受信するように構成されたビデオストリームクライアント336を含む。ゲームプレイビデオはP2Pネットワークを介して共有されるため、二次ユーザデバイス228のビデオストリームクライアント336は、同じくP2Pネットワークの一部であり、かつP2Pネットワークを介してゲームプレイビデオの一部を受信して共有している他の二次ユーザデバイスから、ゲームプレイビデオの一部を受信し得ることが理解されよう。さらに、ビデオストリームクライアント336はまた、ゲームプレイビデオの一部を、P2Pネットワーク内の他の二次ユーザデバイスと共有し得る。ビデオストリームクライアント336は、P2P API340を介してP2Pライブラリ342にアクセスし得、これらは、いくつかの実施態様では、WebRTCライブラリ及びWebRTC APIであり得る。
【0077】
いくつかの実施態様では、クラウドゲームアプリケーション302は、様々な二次ユーザデバイスからの入力を受信するのに使用するソケット330を設定するように構成される。ソケット330は、ソケットAPI320を介してアクセスされるソケットライブラリ322により定義され得る。いくつかの実施態様では、ソケット330は、socket.IOライブラリ及びAPIを使用して定義される。
【0078】
例示の実施態様では、クラウドゲームアプリケーション334はさらに、ローカル入力ハンドラ338を含み、ローカル入力ハンドラ338は、二次ユーザデバイス228のビデオストリームクライアント336によりディスプレイ230にレンダリングされるゲームプレイビデオに対し二次ユーザ234が行うインタラクティビティから生成される二次入力を、送受信するように構成される。例えば、このような二次入力は、二次ユーザ234によるコントローラデバイス232の操作を介して生成され得る。ローカル入力ハンドラ338は、ソケット330を介して一次ユーザデバイス220に入力を送信する。
【0079】
一次ユーザデバイス220のピア入力ハンドラ310は、二次ユーザデバイス228(及び他の二次ユーザデバイス)からの着信二次入力を受信するように構成される。一次ユーザデバイス220のクラウドゲームアプリケーション302はさらに、ローカル入力ハンドラ308を含み、ローカル入力ハンドラ308は、一次ユーザデバイス220からディスプレイ222にレンダリングされたビデオゲームセッション204のゲームプレイビデオに対し一次ユーザ226が行うインタラクティビティから生成される一次入力を、受信するように構成される。このような一次入力は、コントローラデバイス224の操作を介して生成され得る。
【0080】
例示の実施態様では、一次ユーザデバイス220のクラウドゲームアプリケーション302はさらに、入力アグリゲータ312を含み、入力アグリゲータ312は、(一次ユーザの)一次入力及び(二次ユーザの)二次入力を集約し処理するように構成される。下記でさらに詳しく論述されるように、一次入力及び二次入力を集約し処理する様々な方法が企図される。一次入力及び二次入力は、集約入力ストリーム223を定義するように処理され、集約入力ストリーム223は、ゲームマシン202に通信され、セッションの実行を駆動してビデオゲームのゲーム状態を更新するように、ビデオゲームセッション204に適用される。このようにして、クラウドビデオゲームをプレイするために、一次ユーザ226及び二次ユーザからの入力の組み合わせが利用される。これは、一次ユーザ226に対して定義されるビデオゲームセッション204のコンテキストで達成されるが、必ずしも二次ユーザに対してではないことが理解されよう。それにもかかわらず、二次ユーザは、リアルタイムで同じゲームプレイビデオを見て、またインタラクティブに参加して、ビデオゲームのゲームプレイ及び結果に影響を与えることが可能である。
【0081】
様々な実施態様において、入力の集約処理は、様々なエンティティにより実行され得ることが理解されよう。
図4Aは、本開示の実施態様による、入力の集約が一次クライアントデバイスで処理されるシステムを概念的に示す。例示の実施態様では、一次ユーザデバイス220は、ゲームマシン202からゲームプレイビデオを受信し、P2P共有を介して二次ユーザデバイス228にゲームプレイビデオを配信する。二次ユーザデバイス228からの二次入力は、一次ユーザデバイス220に返信される(例えば一次ユーザデバイス220のソケットを介して)。従って、例示の実施態様では、二次入力及び一次入力の集約は、一次ユーザデバイス220で行われる。一次ユーザデバイス220により入力が集約され処理された後、結果的に組み合わされた入力は、ゲームマシン202に送信される。
【0082】
図4Bは、本開示の実施態様による、入力の集約がゲームマシンで処理されるシステムを概念的に示す。例示の実施態様では、一次ユーザデバイス220は、ゲームマシン202からゲームプレイビデオを受信し、P2P共有を介して二次ユーザデバイス228にゲームプレイビデオを配信する。二次ユーザデバイス228からの二次入力は、ゲームマシン202に返信される。また、一次ユーザデバイス220からの一次入力も、ゲームマシン202に送信される。従って、例示の実施態様では、二次入力及び一次入力の集約は、ゲームマシン202で行われる。
【0083】
図4Cは、本開示の実施態様による、入力の集約が集約サーバで処理されるシステムを概念的に示す。例示の実施態様では、一次ユーザデバイス220は、ゲームマシン202からゲームプレイビデオを受信し、P2P共有を介して二次ユーザデバイス228にゲームプレイビデオを配信する。二次ユーザデバイス228からの二次入力は、集約サーバ400に送信される。一次ユーザデバイス220からの一次入力も、集約サーバ400に送信される。従って、例示の実施態様では、二次入力及び一次入力の集約は、集約サーバ400で行われる。集約サーバ400により入力が集約され処理された後、結果的に組み合わされた入力は、ゲームマシン202に送信される。
【0084】
様々な実施態様において、一次入力及び二次入力は、ビデオゲームセッションに適用するために、数多くの異なる方法で組み合わされ得ることが理解されよう。例えば、いくつかの実施態様では、一次入力及び二次入力は、それらのタイミングに応じて集約され、ビデオゲームセッションに直接提供される。すなわち、全ての入力は、さらなる処理を行うことなくビデオゲームセッションに提供されるので、各ユーザ(一次及び二次の両方)が提供する各入力は、ビデオゲームセッションに提供される。
【0085】
いくつかの実施態様では、一次入力及び二次入力は定期的な間隔で集約され、単一の入力(または入力の部分集合)が間隔ごとに選択され、ビデオゲームセッションに送信される。例えば、いくつかの実施態様では、最も人気のある入力、すなわち最も高い数または頻度で発生する入力が、間隔ごとに選択され、ビデオゲームセッションに送信される。いくつかの実施態様では、最も人気のある入力集合など、複数の入力が選択される。定期的間隔の特定の長さは、様々な実施態様において、限定ではなく例として、例えば約ミリ秒から、10分の1秒まで、数秒までの範囲で変わり得ることが理解されよう。
【0086】
いくつかの実施態様では、ビデオゲームに対し様々な入力クラスまたは入力タイプが存在し得る。非限定的な例として、方向入力(例えば上、下、前方、後方、右、左など)、動作タイプ入力(例えば走る、ジャンプする、銃撃する、しゃがむ、加速する、ブレーキするなど)、武器制御入力(例えば発射する、リロードする、武器を変更するなど)、仮想デバイス制御入力など、が挙げられる。いくつかの実施態様では、最も人気のある入力または入力集合が選択され、間隔ごとに適用される。
【0087】
いくつかの実施態様では、入力または入力タイプに、閾値が適用され得る。例えば、所与の時間間隔で、所与の入力が、最小回数またはユーザ総数の最小の割合で選択された場合に、所与の入力は選択され得る、または選択に検討のみされ得る(例えば前述の人気に基づいて)。
【0088】
さらに、いくつかの実施態様では、定期的間隔の特定の長さは、入力タイプ/クラスごとに異なり得る。
【0089】
いくつかの実施態様では、1人以上のユーザを優先するために、入力に重みを付けることができる。例えば、いくつかの実施態様では、一次ユーザの入力は、二次ユーザの入力よりも大きく重み付けされる。このように、一次ユーザの入力は、ビデオゲームに適用される入力により大きな影響を与えるが、二次ユーザの入力は、依然として関連性を有する。いくつかの実施態様では、適用する具体的な重み付けは、一次ユーザにより設定可能であり、よって、一次ユーザは、自分の好みに応じてユーザの重み付けを設定することができる。
【0090】
いくつかの実施態様では、制御は、異なるユーザグループ間で分割することができる。いくつかの実施態様では、このような制御の分割は、一次ユーザデバイスを介して一次ユーザにより設定可能である。例えば、1つの二次ユーザグループは、特定のゲームプレイ機能(例えばキャラクタの動き)を制御するように割り当てられ得、一方、別の二次ユーザグループは、別のゲームプレイ機能の制御(例えば武器の発射及び選択などの武器/攻撃制御)を行うように割り当てられる。
【0091】
いくつかの実施態様では、ビデオゲームをプレイするために一次入力と二次入力を組み合わせる方法を定義する事前定義済みテンプレートを、一次ユーザにより選択可能にすることができる。これは、一次ユーザが選択できる特定のデフォルトオプションを提供するのに役立ち得る。
【0092】
図5A、
図5B、及び
図5Cは、本開示の実施態様による、ユーザ間におけるビデオゲームセッションの制御の譲渡を概念的に示す。
図5Aの例示の実施態様では、ビデオゲームのゲームプレイビデオは、ゲームマシン202から一次ユーザデバイス220にストリーミングされる。ゲームプレイビデオはまた、二次ユーザデバイス228、236、及び500に共有されるP2Pである。
図5Aに示されるように、全ての一次ユーザ及び二次ユーザはほぼリアルタイムでゲームプレイビデオを見ることができるが、一次ユーザのみが、一次ユーザデバイス220を介してビデオゲームセッションに入力を供給することでゲームプレイを制御している。二次ユーザデバイス228、236、及び500は、一次ユーザのゲームプレイビデオを視聴しているが、ゲームプレイの制御には参加していない。
【0093】
しかし、本開示の実施態様によれば、一次ユーザは、ゲームプレイの制御を二次ユーザのうちの1人に渡すことができる。いくつかの実施態様では、一次ユーザは二次ユーザに制御を提供でき、またはいくつかの実施態様では、1人以上の二次ユーザが「次を呼ぶ」ことができ、及び/またはゲームプレイの制御を引き継ぐようにリクエストすることができる。いくつかの実施態様では、制御の譲渡は、一次ユーザデバイス220に対応付けられた一次ユーザ226により許可が与えられることを条件とすることが理解されよう。いくつかの実施態様では、制御の譲渡は、二次ユーザデバイスの待ち行列に従って進められ得、よって、制御の引き継ぎをリクエストする二次ユーザは、それらのリクエストの順序で待ち行列に配置され、その順序に従って順番に制御が譲渡される。
【0094】
図5Bに示される例示の実施態様では、ゲームプレイの制御は、二次ユーザデバイス228に譲渡されている。従って、二次ユーザデバイス228からの入力は、一次ユーザデバイス220に送信され、次に、一次ユーザデバイス220は、入力がビデオゲームセッションに適用されてゲーム状態の実行を駆動するように、入力をゲームマシン202に転送する。このゲームプレイモードでは、セッションは一次ユーザデバイス220の一次ユーザ226用に定義されているが、二次ユーザデバイス228(例えば操作コントローラデバイス232)を介して入力を提供する二次ユーザ234が、ゲームプレイを制御している。一次ユーザデバイス220並びに二次ユーザデバイス236及び500は、ゲームプレイを視聴しているが、ゲームプレイを能動的に制御していないことが理解されよう。
【0095】
図5Cに示される例示の実施態様では、ゲームプレイの制御は、二次ユーザデバイス236に譲渡されている。従って、二次ユーザデバイス236からの入力は、一次ユーザデバイス220に送信され、次に、一次ユーザデバイス220は、入力がビデオゲームセッションに適用されてゲーム状態の実行を駆動するように、入力をゲームマシン202に転送する。このゲームプレイモードでは、セッションは一次ユーザデバイス220の一次ユーザ226用に定義されているが、二次ユーザデバイス236(例えば操作コントローラデバイス240)を介して入力を提供する二次ユーザ242が、ゲームプレイを制御している。一次ユーザデバイス220並びに二次ユーザデバイス228及び500は、ゲームプレイを視聴しているが、ゲームプレイを能動的に制御していないことが理解されよう。
【0096】
図6Aは、本開示の実施態様による、クラウドゲームシステムのオンラインユーザのゲームプレイにアクセスするためのインターフェース600を示す。例示の実施態様では、インターフェース600は、ソーシャルネットワーク上の一次ユーザの友達に関連する情報へのアクセスを提供する。ソーシャルネットワークは、クラウドゲームシステムのソーシャルネットワーク、または別のソーシャルネットワークであり得る。示されるように、特定のユーザを検索できる「検索」機能、現在オンラインになっている友達を表示する「オンライン」機能、一次ユーザの全ての友達を表示する「全て」機能、活動中のゲームセッションに現在参加している友達を表示する「ゲームセッション中」機能602、別のコンテキストで(例えばビデオゲームのマルチプレーヤゲームプレイ中に)ユーザが遭遇したプレーヤのIDを表示する「遭遇プレーヤ」機能、ソーシャルネットワーク上で友達になるための一次ユーザへの/一次ユーザからのリクエストを表示する「友達リクエスト」機能、及びソーシャルネットワーク上で一次ユーザとの通信またはインタラクションをブロックされたユーザを表示する「ブロック」機能など、様々なオプションが提供される。
【0097】
例示の実施態様に示されるように、インターフェース600から「ゲームセッション中」機能602が選択されており、これにより、インターフェースの右側に、活動中のゲームプレイセッションに現在参加しているユーザの友達のリストが明示される。このような友達のリストは、エントリ604などの一連のプロファイルエントリの形式であり得、さらに、友達のユーザID、プロファイル写真、友達がプレイしている特定のビデオゲームタイトル、友達のゲームプレイ継続時間、友達の現在のレベルなど、関連情報を含み得る。さらに、「セッション参加」機能606が提供され、機能606を選択することにより、一次ユーザは、ビデオゲームセッションのゲームプレイの視聴または参加をリクエストすることが可能となる。従って、例示の実施態様に示されるように、現在の一次ユーザは、視聴者としてのみ、または参加者としても、ユーザ「Johnny123」のセッションへ参加をリクエストすることができる。いずれの場合も、ゲームプレイビデオのストリーミングは、前述のようにP2P共有を介して行われることが理解されよう。現在のユーザが参加者として参加することを許可された場合、現在のユーザの入力は、ユーザ「Johnny123」に対応付けられたユーザデバイスへ、例えばユーザデバイスのソケットを介して、送信される。
【0098】
図6Bは、本開示の実施態様による、クラウドゲームシステムにおけるユーザのセッションのゲームプレイを視聴する及び/またはゲームプレイに参加するためのアクセスを提供するインターフェース610を示す。例示の実施態様では、インターフェース610は、ライブ進行中のゲームセッションを見るためのアクセスを提供するように構成される。例えば、様々なアイコン612、614、及び616は、現在ライブ中で、視聴可能なビデオゲームセッションを示す。いくつかの実施態様では、アイコンを選択することにより、システムのユーザには、ゲームセッションのライブビデオフィードが提供される。ライブビデオフィードは、前述のようにP2P共有を使用して提供され得ることが理解されよう。
【0099】
さらに、いくつかの実施態様では、所与のゲームセッションのライブビデオフィードにアクセスするユーザは、参加者としてゲームプレイに参加することをリクエストすることもできる。リクエストの承認は、場合によっては自動的であり得、またはセッション所有者の明示的な承認が必要であり得るが、リクエストが承認されると、ライブビデオフィードにアクセスしているユーザからの入力は、前述のようにセッション所有者のデバイスに返され、ゲームマシンにより実行されるビデオゲームセッションに適用される。
【0100】
いくつかの実施態様では、セッション所有者は、所有するセッションゲームプレイに別のユーザが参加者として(視聴者としてのみではなく)参加することを許可するか否かを判定するための設定を構成し得る。いくつかの実施態様では、参加者として参加するオプションは、クラウドゲームシステムに対応付けられたソーシャルネットワークなどのソーシャルネットワーク上のセッション所有者の友達にのみ提供されるように構成され得る。いくつかの実施態様では、最低限の経験レベルを有するプレーヤのみが参加者として参加することを許可するなど、ゲーム関連設定が適用され得る。
【0101】
いくつかの実施態様では、クラウドソーシングゲーム中にグループチャットセッションが提供され、これにより、ユーザは、音声チャット/テキストチャットを介して相互に通信し得る。
【0102】
図7は、情報サービスプロバイダアーキテクチャの実施形態を示す。情報サービスプロバイダ(ISP)770は、ネットワーク786を介して、地理的に分散し接続されたユーザ782に多数の情報サービスを届ける。ISPは、株価の更新などの1種類のサービスのみ、または放送メディア、ニュース、スポーツ、ゲームなどの様々なサービスを届けることができる。さらに、各ISPにより提供されるサービスは動的であり得、すなわち、任意の時点でサービスは追加され得る、または取り除かれ得る。従って、特定の個人に特定の種類のサービスを提供するISPは、時間の経過と共に変わり得る。例えば、ユーザが地元にいる間は、ユーザの付近のISPによりユーザはサービスを受け得、ユーザが別の街に移動した時は、異なるISPによりユーザはサービスを受け得る。地元のISPは、必要な情報及びデータを新しいISPに転送し、これにより、ユーザ情報は新しい街までユーザに「追従」し、ユーザはデータにより近くなり、アクセスしやすくなる。別の実施形態では、ユーザの情報を管理するマスタISPと、マスタISPの制御下のユーザと直接インターフェースで接続するサーバISPとの間に、マスタ-サーバ関係が確立され得る。別の実施形態では、クライアントが世界中を移動すると、あるISPから別のISPにデータが転送され、これにより、ユーザにサービスするのにより良い位置にあるISPが、これらのサービスを届けるISPとなる。
【0103】
ISP770は、ネットワークを介して顧客にコンピュータベースのサービスを提供するアプリケーションサービスプロバイダ(ASP)772を含む。ASPモデルを使用して提供されるソフトウェアは、オンデマンドソフトウェアまたはソフトウエアアズアサービス(SaaS)と呼ばれることもある。特定のアプリケーションプログラム(顧客関係管理など)へのアクセスを提供する簡単な形式には、HTTPなどの標準プロトコルが使用される。アプリケーションソフトウェアは、ベンダのシステムに常駐し、HTMLを使用するウェブブラウザを介して、ベンダが提供する専用クライアントソフトウェアを介して、またはシンクライアントなどの他のリモートインターフェースを介して、ユーザによりアクセスされる。
【0104】
広い地理的領域にわたって届けられるサービスは、多くの場合、クラウドコンピューティングを使用する。クラウドコンピューティングは、動的にスケーラブルであり、かつ多くの場合仮想化されたリソースがインターネット経由のサービスとして提供される、コンピューティング様式である。ユーザは、ユーザを支援する「クラウド」の技術インフラストラクチャの専門家である必要はない。クラウドコンピューティングは、インフラストラクチャアズアサービス(IaaS)、プラットフォームアズアサービス(PaaS)、及びソフトウエアアズアサービス(SaaS)などの様々なサービスに分けられ得る。クラウドコンピューティングサービスは、多くの場合、ウェブブラウザからアクセスされる共通のビジネスアプリケーションをオンラインで提供するが、ソフトウェア及びデータは、サーバ上に格納される。クラウドという用語は、コンピュータネットワーク図におけるインターネットの描かれ方に基づいて、(例えばサーバ、ストレージ、及びロジックを使用する)インターネットの隠喩として使用され、複雑なインフラストラクチャを隠し持つことの抽象的概念である。
【0105】
さらに、ISP770は、ゲームクライアントがシングル及びマルチプレーヤビデオゲームをプレイするために使用するゲーム処理サーバ(GPS)774を含む。インターネット上でプレイされるほとんどのビデオゲームは、ゲームサーバへの接続を介して作動する。通常、ゲームは、プレーヤからデータを収集し、収集したデータを他のプレーヤに配信する専用サーバアプリケーションを使用する。これは、ピアツーピア構成よりも効率的かつ効果的であるが、サーバアプリケーションをホストするために別個のサーバが必要となる。別の実施形態では、GPSは、プレーヤ及びそれぞれのゲームプレイデバイスの間の通信を確立し、集中型GPSに依存せずに情報を交換する。
【0106】
専用GPSは、クライアントとは無関係に稼働するサーバである。このようなサーバは、通常、データセンタに配置された専用ハードウェア上で稼働し、より多くの帯域幅及び専用処理能力を提供する。専用サーバは、大抵のPCベースのマルチプレーヤゲームのゲームサーバをホストするのに、好ましい方法である。大規模なマルチプレーヤオンラインゲームは、ゲームタイトルを所有するソフトウェア会社が通常ホストする専用サーバ上で実行され、専用サーバがコンテンツを制御及び更新することを可能にする。
【0107】
放送処理サーバ(BPS)776は、視聴者にオーディオまたはビデオ信号を配信する。非常に狭い範囲の視聴者への放送は、ナローキャスティングと呼ばれることもある。放送配信の最終工程は、聴取者または視聴者への信号の伝達方法であり、信号は、ラジオ局またはテレビ局の場合と同様にアンテナ及び受信機に地上波で伝達され得る、または局を介してケーブルテレビもしくはケーブルラジオ(もしくは「無線ケーブル」)を通じて、または直接ネットワークから、伝達され得る。インターネットはまた、特に信号及び帯域幅の共有を可能にするマルチキャストを用いて、ラジオまたはテレビを受信者に届け得る。歴史的に、放送は、全国放送または地域放送などの地理的領域により範囲が定められてきた。しかし、高速インターネットの普及に伴い、コンテンツは世界のほぼ全ての国に到達可能であるため、放送は地域により定められない。
【0108】
ストレージサービスプロバイダ(SSP)778は、コンピュータストレージ空間及び関連する管理サービスを提供する。SSPは、定期的なバックアップ及びアーカイブも提供する。ストレージをサービスとして提供することにより、ユーザは必要に応じてより多くのストレージを注文することができる。別の大きな利点として、SSPはバックアップサービスを含み、コンピュータのハードドライブに障害が発生しても、ユーザがユーザの全てのデータを失うことはない。さらに、複数のSSPは、ユーザデータの全体的または部分的なコピーを有することができ、これにより、ユーザの位置またはデータアクセスに使用されるデバイスとは無関係に、ユーザは効率的な方法でデータにアクセスすることが可能となる。例えば、ユーザは、移動中に自宅のコンピュータ並びに携帯電話の中の個人ファイルにアクセスすることができる。
【0109】
通信プロバイダ780は、ユーザに接続性を提供する。通信プロバイダの一種として、インターネットへのアクセスを提供するインターネットサービスプロバイダ(ISP)が挙げられる。ISPは、ダイヤルアップ、DSL、ケーブルモデム、ファイバ、無線、または専用の高速相互接続など、インターネットプロトコルデータグラムの提供に好適なデータ伝送技術を使用して、顧客を接続する。通信プロバイダは、電子メール、インスタントメッセージ、及びSMSテキストなどのメッセージサービスも提供し得る。通信プロバイダの別の種類として、インターネットへの直接のバックボーンアクセスを提供することにより帯域幅またはネットワークアクセスを販売するネットワークサービスプロバイダ(NSP)が挙げられる。ネットワークサービスプロバイダは、電気通信会社、データ通信業者、無線通信プロバイダ、インターネットサービスプロバイダ、高速インターネットアクセスを提供するケーブルテレビ事業者などで構成され得る。
【0110】
データ交換788は、ISP770内のいくつかのモジュールを相互接続し、これらのモジュールを、ネットワーク786を介してユーザ782に接続する。データ交換788は、ISP770の全てのモジュールが近接している場合は、小さな領域をカバーし得、または様々なモジュールが地理的に分散している場合は、大きな地理的領域をカバーし得る。例えば、データ交換788は、データセンタのキャビネット内に高速のギガビットイーサネット(登録商標)(もしくはさらに高速のもの)、または大陸間仮想エリアネットワーク(VLAN)を含み得る。
【0111】
ユーザ782は、少なくともCPU、メモリ、ディスプレイ、及びI/Oを含むクライアントデバイス784により、リモートサービスにアクセスする。クライアントデバイスは、PC、携帯電話、ネットブック、タブレット、ゲームシステム、PDAなどであり得る。一実施形態では、ISP770は、クライアントが使用するデバイスの種類を認識し、採用する通信方法を調整する。他の事例では、クライアントデバイスは、HTMLなどの標準的な通信方法を使用して、ISP770にアクセスする。
【0112】
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家庭用電化製品、小型コンピュータ、及びメインフレームコンピュータなどを含む様々なコンピュータシステム構成で実施され得る。本開示はまた、有線ベースネットワークまたは無線ネットワークを介してリンクされたリモート処理デバイスによりタスクが行われる分散コンピューティング環境においても、実施することができる。
【0113】
前述の実施形態を考慮に入れて、本開示は、コンピュータシステムに格納されたデータを伴う様々なコンピュータ実施動作を採用し得ることを理解されたい。これらの動作は、物理量の物理的操作を要する動作である。本開示の一部を形成する本明細書で説明される動作のいずれも、有用なマシン動作である。本開示はまた、これらの動作を実行するためのデバイスまたは装置に関する。装置は、必要な目的のために特別に構築され得る、または装置は、コンピュータに格納されたコンピュータプログラムにより選択的に有効化または構成される汎用コンピュータであり得る。具体的には、本明細書の教示に従って書かれたコンピュータプログラムと共に様々な汎用マシンを使用することができる、あるいは、必要な動作を実行するためにさらに特化した装置を構築するほうがより好都合である場合もある。
【0114】
本開示はまた、コンピュータ可読媒体上のコンピュータ可読コードとしても具現化され得る。あるいは、コンピュータ可読コードは、前述のデータ交換相互接続を使用して、サーバからダウンロードされ得る。コンピュータ可読媒体は、後でコンピュータシステムにより読み出され得るデータを格納できる任意のデータストレージデバイスである。コンピュータ可読媒体の例として、ハードドライブ、ネットワーク接続ストレージ(NAS)、読み出し専用メモリ、ランダムアクセスメモリ、CD-ROM、CD-R、CD-RW、磁気テープ、並びに他の光学及び非光学データストレージデバイスが挙げられる。コンピュータ可読媒体には、コンピュータ可読コードが分散方式で格納され実行されるように、ネットワーク接続されたコンピュータシステムにわたり分散されたコンピュータ可読有形媒体が含まれ得る。
【0115】
方法動作は特定の順序で説明されたが、オーバーレイ動作の処理が所望のやり方で実行される限り、動作の合間に他の維持管理動作が実行されてもよく、または動作がわずかに異なる時間に起こるように調整されてもよく、またはシステム内に動作を分散することで、様々な処理関連間隔で処理動作が起こることを可能にしてもよいことを、理解されたい。
【0116】
前述の開示は、理解を明確にするためにある程度詳細に説明されたが、添付の特許請求の範囲内で特定の変更及び修正を実施できることは明らかであろう。従って、本実施形態は、限定ではなく例示としてみなされるべきであり、本開示は、本明細書で提供される詳細に限定されるべきではなく、説明される実施形態の範囲内及び均等物内で変更されてもよい。
【0117】
図8は、本開示の一実施形態による、アバター制御システムを実施するコントローラと互換性があり得る、Sony(登録商標)Playstation 3(登録商標)エンターテインメントデバイスなどのゲームコンソールの全体的システムアーキテクチャを概略的に示す。システムユニット800が、システムユニット800に接続可能な様々な周辺デバイスと共に提供される。システムユニット800は、いくつかの実施態様では、コンピューティングサーバであり得る。システムユニット800は、セルプロセッサ828と、Rambus(登録商標)動的ランダムアクセスメモリ(XDRAM)ユニット826と、専用のビデオランダムアクセスメモリ(VRAM)ユニット832を有するReality Synthesizerグラフィックユニット830と、I/Oブリッジ834と、を備える。システムユニット800はまた、ディスク840aから読み出しを行うBlu Ray(登録商標)Disk BD-ROM(登録商標)光学ディスクリーダ840と、着脱可能スロットインハードディスクドライブ(HDD)836とを含み、これらはI/Oブリッジ834を介してアクセス可能である。任意で、システムユニット800は、コンパクトフラッシュ(登録商標)メモリカード、及びMemory Stick(登録商標)メモリカードなどを読み出すメモリカードリーダ838も備え、これもI/Oブリッジ834を介して同様にアクセス可能である。
【0118】
I/Oブリッジ834はまた、6つのユニバーサルシリアルバス(USB)2.0ポート824と、ギガビットイーサネット(登録商標)ポート822と、IEEE 802.11b/g無線ネットワーク(Wi-Fi)ポート820と、最大で7つのBluetooth(登録商標)接続に対応することが可能なBluetooth(登録商標)無線リンクポート818と、に接続する。
【0119】
動作中、I/Oブリッジ834は、1つ以上のゲームコントローラ802からのデータを含む、無線データ、USBデータ、及びイーサネット(登録商標)データの全てを扱う。例えば、ユーザがゲームをプレイしている時、I/Oブリッジ834は、Bluetoothリンクを介してゲームコントローラ802からデータを受信し、受信したデータをセルプロセッサ828に送り出し、これに応じてセルプロセッサ828は、ゲームの現在の状態を更新する。
【0120】
無線ポート、USBポート、及びイーサネット(登録商標)ポートはまた、ゲームコントローラ802に加えて、リモコン804、キーボード806、マウス808、Sony Playstation Portable(登録商標)エンターテインメントデバイスなどのポータブルエンターテインメントデバイス810、EyeToy(登録商標)ビデオカメラ812などのビデオカメラ、及びマイクロホンヘッドセット814といった、他の周辺デバイスへの接続性も提供する。従って、このような周辺デバイスは、原則として無線でシステムユニット800に接続され得、例えば、ポータブルエンターテインメントデバイス810は、Wi-Fiアドホック接続を介して通信し得、一方、マイクロホンヘッドセット814は、Bluetoothリンクを介して通信し得る。
【0121】
これらのインターフェースの提供は、Playstation 3(登録商標)デバイスが、デジタルビデオレコーダ(DVR)、セットトップボックス、デジタルカメラ、ポータブルメディアプレーヤ、ボイスオーバIP電話、携帯電話、プリンタ、及びスキャナなどの他の周辺デバイスとの互換性も潜在的に有することを意味する。
【0122】
加えて、レガシーメモリカードリーダ816がUSBポート824を介してシステムユニットに接続され得、これにより、Playstation(登録商標)またはPlaystation 2(登録商標)のデバイスにより使用される種類のメモリカード848の読み出しが可能となる。
【0123】
本実施形態では、ゲームコントローラ802は、Bluetoothリンクを介してシステムユニット800と無線で通信するように動作可能である。しかし、ゲームコントローラ802は、代わりにUSBポートに接続することができ、これにより、ゲームコントローラ802のバッテリを充電するための電力も提供される。1つ以上のアナログジョイスティック及び従来の制御ボタンに加えて、ゲームコントローラは、各軸における平行移動及び回転に対応した、6つの自由度における動きに反応する。その結果、ゲームコントローラのユーザによるジェスチャ及び動作は、従来のボタンまたはジョイスティックのコマンドに加えて、またはそれらの代わりに、ゲームへの入力として変換され得る。任意で、Playstation(商標)ポータブルデバイスなどの他の無線対応の周辺デバイスがコントローラとして使用され得る。Playstation(商標)ポータブルデバイスの場合、追加のゲーム情報または制御情報(例えば制御命令または残機数)がデバイスの画面上に提供され得る。ダンスマット(図示せず)、ライトガン(図示せず)、ハンドル及びペダル(図示せず)、または即答クイズゲーム用の単一または複数の大型ボタン(同様に図示せず)といった特注コントローラなど、他の代替的または補助的な制御デバイスも使用されてもよい。
【0124】
リモコン804も、Bluetoothリンクを介してシステムユニット800と無線で通信するように動作可能である。リモコン804は、Blu Ray(商標)ディスクBD-ROM840リーダの動作に好適な制御、及びディスクコンテンツのナビゲーションに好適な制御を有する。
【0125】
Blu Ray(商標)ディスクBD-ROMリーダ840は、従来の記録済みCD及び記録可能なCD、並びにいわゆるスーパーオーディオCDに加えて、Playstation及びPlaystation 2のデバイスと互換性を有するCD-ROMを読み出すように動作可能である。リーダ840はまた、従来の記録済みDVD及び記録可能なDVDに加えて、Playstation 2及びPlaystation 3のデバイスと互換性を有するDVD-ROMを読み出すように動作可能である。リーダ840はさらに、従来の記録済みBlu-Rayディスク及び記録可能なBlu-Rayディスクだけでなく、Playstation 3のデバイスと互換性を有するBD-ROMも読み出すように動作可能である。
【0126】
システムユニット800は、ディスプレイ844及び1つ以上のラウドスピーカ846を有するモニタまたはテレビセットなどのディスプレイ及びサウンド出力デバイス842へのオーディオ及びビデオコネクタを通して、Playstation 3により生成または復号されたオーディオ及びビデオを、Reality Synthesizerグラフィックユニット830を介して供給するように動作可能である。オーディオコネクタ850は、従来のアナログ出力及びデジタル出力を含み得、一方、ビデオコネクタ852は、コンポーネントビデオ、S-ビデオ、コンポジットビデオ、及び1つ以上の高解像度マルチメディアインタフェース(HDMI(登録商標))出力を様々に含み得る。結果として、ビデオ出力は、PALもしくはNTSCなどの形式、または720p、1080i、もしくは1080pの高解像度であり得る。
【0127】
オーディオ処理(生成及び復号など)は、セルプロセッサ828により実行される。Playstation 3のデバイスのオペレーティングシステムは、Dolby(登録商標)5.1サラウンドサウンド、Dolby(登録商標)シアターサラウンド(DTS)、及びBlu-Ray(登録商標)ディスクの7.1サラウンドサウンドの復号化に対応する。
【0128】
本実施形態では、ビデオカメラ812は、単一の電荷結合素子(CCD)、LEDインジケータ、並びにハードウェアベースのリアルタイムデータ圧縮及び符号化装置を備え、これにより、圧縮されたビデオデータは、システムユニット800により復号化されるために、イントラ画像ベースのMPEG(motion picture expert group)規格などの好適な形式で送信され得る。カメラLEDインジケータは、例えば不利な照明条件を示すシステムユニット800からの好適な制御データに応じて、発光するように配置される。ビデオカメラ812の実施形態は、USB、Bluetooth、またはWi-Fiの通信ポートを介して、システムユニット800に様々に接続され得る。ビデオカメラの実施形態は、1つ以上の対応付けられたマイクロフォンを含み得、またオーディオデータを送信可能であり得る。ビデオカメラの実施形態では、CCDは、高解像度ビデオの取り込みに適した分解能を有し得る。使用時、ビデオカメラにより取り込まれた画像は、例えば、ゲーム内に組み込まれ得る、またはゲーム制御入力として解釈され得る。
【0129】
一般に、システムユニット800の通信ポートのうちの1つを介して、ビデオカメラまたはリモコンなどの周辺デバイスとのデータ通信が正常に行われるように、デバイスドライバなどの1つの好適なソフトウェアが提供されるべきである。デバイスドライバ技術は公知であり、ここでは詳細に説明しないが、ただし、デバイスドライバまたは同様のソフトウェアインタフェースが、説明される本実施形態において必要とされ得ることを当業者は理解するであろう。
【0130】
図9は、本開示の実施態様による、ゲームシステム900のブロック図である。ゲームシステム900は、ネットワーク915を介して1つ以上のクライアント910にビデオストリームを提供するように構成される。ゲームシステム900は通常、ビデオサーバシステム920と、任意のゲームサーバ925とを含む。ビデオサーバシステム920は、1つ以上のクライアント910に対し、最低限のサービス品質のビデオストリームを提供するように構成される。例えば、ビデオサーバシステム920は、ビデオゲームの状態またはビデオゲーム内の視点を変更するゲームコマンドを受信し、この状態変更を反映させた更新済ビデオストリームを、最小の遅延時間でクライアント910に提供し得る。ビデオサーバシステム920は、ビデオストリームを、未定義の形式を含む多種多様な代替的ビデオ形式で提供するように構成され得る。さらに、ビデオストリームは、多種多様なフレームレートでユーザに提示されるように構成されたビデオフレームを含み得る。通常のフレームレートは、毎秒30フレーム、毎秒60フレーム、及び毎秒920フレームである。しかし、本開示の代替的な実施形態には、より高いまたはより低いフレームレートが含まれる。
【0131】
本明細書で個別に910A、910Bなどと称されるクライアント910には、ヘッドマウントディスプレイ、端末、パーソナルコンピュータ、ゲームコンソール、タブレットコンピュータ、電話、セットトップボックス、キオスク、無線デバイス、デジタルパッド、スタンドアロンデバイス、及び/またはハンドヘルドゲームプレイデバイスなどが含まれ得る。通常、クライアント910は、符号化されたビデオストリームを受信し、ビデオストリームを復号化し、結果得られるビデオをユーザ、例えばゲームのプレーヤに提示するように構成される。符号化されたビデオストリームを受信し、及び/またはビデオストリームを復号化するプロセスは通常、クライアントの受信バッファに個々のビデオフレームを格納することを含む。ビデオストリームは、クライアント910に統合されたディスプレイ、またはモニタもしくはテレビなどの別個のデバイス上で、ユーザに提示され得る。クライアント910は任意で、複数のゲームプレーヤに対応するように構成される。例えば、ゲームコンソールは、2人、3人、4人以上の同時プレーヤに対応するように構成され得る。これらのプレーヤのそれぞれは別個のビデオストリームを受信し得る、または単一のビデオストリームが、各プレーヤのために特別に生成された、例えば各プレーヤの視点に基づいて生成されたフレームの領域を含み得る。クライアント910は、任意で地理的に分散される。ゲームシステム900に含まれるクライアントの数は、1つまたは2つから、数千、数万以上まで、大幅に異なり得る。本明細書で使用される用語「ゲームプレーヤ」は、ゲームをプレイする人を指すために用いられ、用語「ゲームプレイデバイス」は、ゲームをプレイするために使用するデバイスを指すために用いられる。いくつかの実施形態では、ゲームプレイデバイスは、協働してユーザにゲーム体験を届ける複数のコンピューティングデバイスを指し得る。例えば、ゲームコンソール及びHMDは、ビデオサーバシステム920と協働して、HDMを通して見るゲームを配信し得る。一実施形態では、ゲームコンソールは、ビデオサーバシステム920からビデオストリームを受信し、ゲームコンソールは、レンダリングのためにHMDに対し、ビデオストリームまたはビデオストリームの更新を転送する。
【0132】
クライアント910は、ネットワーク915を介してビデオストリームを受信するように構成される。ネットワーク915は、電話ネットワーク、インターネット、無線ネットワーク、電力線ネットワーク、ローカルエリアネットワーク、広域ネットワーク、及び/またはプライベートネットワークなどを含む任意の種類の通信ネットワークであり得る。典型的な実施形態では、ビデオストリームは、TCP/IPまたはUDP/IPなどの標準プロトコルを介して通信される。あるいは、ビデオストリームは、独自の規格を介して通信される。
【0133】
クライアント910の典型的な例として、プロセッサと、不揮発性メモリと、ディスプレイと、復号化ロジックと、ネットワーク通信機能と、入力デバイスとを備えるパーソナルコンピュータが挙げられる。復号化ロジックには、ハードウェア、ファームウェア、及び/またはコンピュータ可読媒体に格納されたソフトウェアが含まれ得る。ビデオストリームを復号化(及び符号化)するシステムは、当技術分野において周知のものであり、使用される特定の符号化方式に応じて異なる。
【0134】
クライアント910は、必須ではないが、受信したビデオを修正するように構成されたシステムをさらに含み得る。例えば、クライアントは、1つのビデオ画像をもう1つのビデオ画像上にオーバーレイする、及び/またはビデオ画像を切り取るなど、さらなるレンダリングを実行するように構成され得る。例えば、クライアント910は、Iフレーム、Pフレーム、及びBフレームなどの様々な種類のビデオフレームを受信し、これらのフレームを処理してユーザに表示するための画像にするように構成され得る。いくつかの実施形態では、クライアント910のうちの一員は、ビデオストリームに対し、さらなるレンダリング、シェーディング、または3D変換などの動作を実行するように構成される。クライアント910のうちの一員は任意で、複数のオーディオストリームまたはビデオストリームを受信するように構成される。クライアント910の入力デバイスには、例えば、片手用ゲームコントローラ、両手用ゲームコントローラ、ジェスチャ認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、ポインティングデバイス、力フィードバックデバイス、動作及び/または位置感知デバイス、マウス、タッチスクリーン、ニューラルインターフェース、カメラ、並びに/あるいは開発中の入力デバイスなどが、含まれ得る。
【0135】
クライアント910が受信するビデオストリーム(及び任意でオーディオストリーム)は、ビデオサーバシステム920により生成され、提供される。本明細書の別の箇所でさらに説明されるように、このビデオストリームは、ビデオフレームを含む(及びオーディオストリームはオーディオフレームを含む)。ビデオフレームは、ユーザに表示される画像に有意義に寄与するように構成される(例えばビデオフレームは好適なデータ構造の画素情報を含む)。本明細書で使用される用語「ビデオフレーム」は、ユーザに示される画像に寄与する、例えば作用するように構成された情報を主に含むフレームを指すために使用される。「ビデオフレーム」に関する本明細書の教示のほとんどは、「オーディオフレーム」にも適用することができる。
【0136】
クライアント910は通常、ユーザからの入力を受信するように構成される。これらの入力は、ビデオゲームの状態を変更する、あるいはゲームプレイに作用するように構成されたゲームコマンドを含み得る。ゲームコマンドは、入力デバイスを使用して受信することができ、及び/またはクライアント910上で実行されるコンピューティング命令により自動的に生成され得る。受信されたゲームコマンドは、ネットワーク915を介してクライアント910から、ビデオサーバシステム920及び/またはゲームサーバ925へ通信される。例えば、いくつかの実施形態では、ゲームコマンドは、ビデオサーバシステム920を介してゲームサーバ925へ通信される。いくつかの実施形態では、ゲームコマンドの別個の複製が、クライアント910から、ゲームサーバ925及びビデオサーバシステム920へ通信される。ゲームコマンドの通信は、任意でコマンドの識別に依存する。ゲームコマンドは、任意で、クライアント910Aにオーディオストリームまたはビデオストリームを提供するために使用される経路または通信チャネルとは異なる経路または通信チャネルを介して、クライアント910Aから通信される。
【0137】
ゲームサーバ925は任意で、ビデオサーバシステム920とは異なるエンティティにより運用される。例えば、ゲームサーバ925は、マルチプレーヤゲームの発行者により運用され得る。この例では、ビデオサーバシステム920は、任意でゲームサーバ925によりクライアントとして見られ、任意でゲームサーバ925の視点から、従来技術のゲームエンジンを実行する従来技術のクライアントに見えるように構成される。ビデオサーバシステム920とゲームサーバ925との通信は、任意でネットワーク915を介して行われる。よって、ゲームサーバ925は、ビデオサーバシステム920を含む複数のクライアントにゲーム状態情報を送信する従来技術のマルチプレーヤゲームサーバであり得る。ビデオサーバシステム920は、ゲームサーバ925の複数のインスタンスと同時に通信するように構成され得る。例えば、ビデオサーバシステム920は、異なるユーザに複数の異なるビデオゲームを提供するように構成され得る。これらの異なるビデオゲームのそれぞれは、異なるゲームサーバ925により対応され得る、及び/または異なるエンティティにより発行され得る。いくつかの実施形態では、ビデオサーバシステム920のいくつかの地理的に分散したインスタンスは、複数の異なるユーザにゲームビデオを提供するように構成される。ビデオサーバシステム920のこれらのインスタンスのそれぞれは、ゲームサーバ925の同じインスタンスと通信し得る。ビデオサーバシステム920と1つ以上のゲームサーバ925との通信は、任意で専用通信チャネルを介して行われる。例えば、ビデオサーバシステム920は、ゲームサーバ925に、これらの2つのシステム間の通信専用の高帯域幅チャネルを介して接続され得る。
【0138】
ビデオサーバシステム920は少なくとも、ビデオソース930と、I/Oデバイス945と、プロセッサ950と、非一時的ストレージ955とを備える。ビデオサーバシステム920は、1つのコンピューティングデバイスを含み得る、または複数のコンピューティングデバイスに分散され得る。これらのコンピューティングデバイスは任意で、ローカルエリアネットワークなどの通信システムを介して接続される。
【0139】
ビデオソース930は、例えばストリーミングビデオ、または動画を形成する一連のビデオフレームといった、ビデオストリームを提供するように構成される。いくつかの実施形態では、ビデオソース930は、ビデオゲームエンジン及びレンダリングロジックを含む。ビデオゲームエンジンは、プレーヤからゲームコマンドを受信し、受信したコマンドに基づいてビデオゲームの状態の複製を保持するように構成される。このゲーム状態は、ゲーム環境内のオブジェクトの位置、並びに通常では視点を含む。ゲーム状態はまた、オブジェクトの特性、画像、色、及び/または質感も含み得る。ゲーム状態は通常、ゲーム規則、並びに移動、方向転換、攻撃、焦点の設定、インタラクション、及び/または使用などのゲームコマンドに基づいて、維持される。ゲームエンジンの一部は任意で、ゲームサーバ925内に配置される。ゲームサーバ925は、地理的に分散したクライアントを使用する複数のプレーヤから受信したゲームコマンドに基づいて、ゲームの状態の複製を保持し得る。これらの事例では、ゲーム状態はゲームサーバ925によりビデオソース930に提供され、ゲーム状態の複製が格納され、レンダリングが行われる。ゲームサーバ925は、ネットワーク915を介して直接クライアント910からゲームコマンドを受信してもよく、及び/またはビデオサーバシステム920を介してゲームコマンドを受信してもよい。
【0140】
ビデオソース930は通常、レンダリングロジック、例えばハードウェア、ファームウェア、及び/またはストレージ955などのコンピュータ可読媒体に格納されたソフトウェアを含む。このレンダリングロジックは、ゲーム状態に基づいて、ビデオストリームのビデオフレームを作成するように構成される。レンダリングロジックの全てまたは一部は、任意で、グラフィック処理ユニット(GPU)内に配置される。レンダリングロジックは通常、ゲーム状態及び視点に基づいて、オブジェクト間の3次元空間関係を特定するように、及び/または好適な質感などを適用するように構成された処理段階を含む。レンダリングロジックは、未処理ビデオを生成し、次いで未処理ビデオは、通常、クライアント910へ通信される前に符号化される。例えば、未処理ビデオは、Adobe Flash(登録商標)規格、.wav、H.265、H.264、H.263、On2、VP6、VC-1、WMA、Huffyuv、Lagarith、MPG-x. Xvid. FFmpeg、x264、VP6-8、realvideo、またはmp3などに従って、符号化され得る。符号化プロセスは、リモートデバイス上のデコーダに配信するために任意でパッケージ化されたビデオストリームを生成する。ビデオストリームは、フレームサイズ及びフレームレートにより特徴付けられる。典型的なフレームサイズには、800×600、1280×720(例えば720p)、1024×768が挙げられるが、任意の他のフレームサイズも使用されてもよい。フレームレートは、1秒あたりのビデオフレームの数である。ビデオストリームは、様々な種類のビデオフレームを含み得る。例えば、H.264規格は、「P」フレーム及び「I」フレームを含む。Iフレームは、ディスプレイデバイス上の全てのマクロブロック/画素を更新する情報を含み、一方、Pフレームは、その部分集合を更新する情報を含む。Pフレームは通常、Iフレームよりデータサイズが小さい。本明細書で使用される用語「フレームサイズ」は、フレーム内の画素数を指すことを意味する。用語「フレームデータサイズ」は、フレームを格納するのに必要なバイト数を指すために使用される。
【0141】
代替的な実施形態では、ビデオソース930は、カメラなどのビデオ記録デバイスを含む。このカメラを使用して、コンピュータゲームのビデオストリームに含めることができる遅延ビデオまたはライブビデオが生成され得る。結果得られるビデオストリームには、レンダリングされた画像と、スチルカメラまたはビデオカメラを使用して記録された画像との両方が、任意で含まれる。ビデオソース930はまた、ビデオストリームに含めるために事前に記録したビデオを格納するように構成されたストレージデバイスも含み得る。ビデオソース930はまた、例えば人などのオブジェクトの動作または位置を検出するように構成された動作感知デバイスまたは位置感知デバイスと、検出された動作及び/または位置に基づいてゲーム状態の決定またはビデオの生成を行うように構成されたロジックとを含み得る。
【0142】
ビデオソース930は任意で、他のビデオ上に配置されるように構成されたオーバーレイを提供するように構成される。例えば、これらのオーバーレイには、コマンドインターフェース、ログイン指示、ゲームプレーヤへのメッセージ、他のゲームプレーヤの画像、他のゲームプレーヤのビデオ配信(例えばウェブカメラビデオ)が含まれ得る。クライアント910Aがタッチスクリーンインターフェースまたは視線検出インターフェースを含む実施形態では、オーバーレイには、仮想キーボード、ジョイスティック、及び/またはタッチパッドなどが含まれ得る。オーバーレイの一例では、プレーヤの声がオーディオストリームにオーバーレイされる。ビデオソース930は任意で、1つ以上のオーディオソースをさらに含む。
【0143】
ビデオサーバシステム920が複数のプレーヤからの入力に基づいてゲーム状態を維持するように構成された実施形態では、ビューの位置及び方向を含む視点は、各プレーヤで異なり得る。ビデオソース930は任意で、各プレーヤの視点に基づいて、別個のビデオストリームを各プレーヤに提供するように構成される。さらに、ビデオソース930は、クライアント910のそれぞれに、異なるフレームサイズ、フレームデータサイズ、及び/または符号化を提供するように構成され得る。ビデオソース930は任意で、3Dビデオを提供するように構成される。
【0144】
I/Oデバイス945は、ビデオサーバシステム920が、ビデオ、コマンド、情報リクエスト、ゲーム状態、視線情報、デバイス動作、デバイス位置、ユーザ動作、クライアント識別、プレーヤ識別、ゲームコマンド、セキュリティ情報、及び/またはオーディオなどの情報を、送信及び/または受信するように構成される。I/Oデバイス945は通常、ネットワークカードまたはモデムなどの通信ハードウェアを含む。I/Oデバイス945は、ゲームサーバ925、ネットワーク915、及び/またはクライアント910と通信するように構成される。
【0145】
プロセッサ950は、本明細書で論述されるビデオサーバシステム920の様々な構成要素内に含まれるロジック、例えばソフトウェアを実行するように構成される。例えば、プロセッサ950は、ビデオソース930、ゲームサーバ925、及び/またはクライアントクオリファイア960の機能を実行するように、ソフトウェア命令でプログラムされ得る。ビデオサーバシステム920は任意で、プロセッサ950の複数のインスタンスを含む。プロセッサ950はまた、ビデオサーバシステム920が受信したコマンドを実行するように、または本明細書で論述されるゲームシステム900の様々な要素の動作を調整するように、ソフトウェア命令でプログラムされ得る。プロセッサ950は、1つ以上のハードウェアデバイスを含み得る。プロセッサ950は、電子プロセッサである。
【0146】
ストレージ955は、非一時的なアナログ及び/またはデジタルのストレージデバイスを含む。例えば、ストレージ955は、ビデオフレームを格納するように構成されたアナログストレージデバイスを含み得る。ストレージ955は、例えばハードドライブ、光学ドライブ、またはソリッドステートストレージといったコンピュータ可読デジタルストレージを含み得る。ストレージ955は、ビデオフレーム、人工フレーム、ビデオフレームと人工フレームの両方を含むビデオストリーム、オーディオフレーム、及び/またはオーディオストリームなどを(例えば好適なデータ構造またはファイルシステムにより)格納するように構成される。ストレージ955は任意で、複数のデバイスに分散される。いくつかの実施形態では、ストレージ955は、本明細書の別の箇所で論述されるビデオソース930のソフトウェア構成要素を格納するように構成される。これらの構成要素は、必要に応じてすぐに提供できる形式で格納され得る。
【0147】
ビデオサーバシステム920は任意で、クライアントクオリファイア960をさらに備える。クライアントクオリファイア960は、クライアント910Aまたは910Bなどのクライアントの能力をリモートで特定するように構成される。これらの能力には、クライアント910A自体の能力、並びにクライアント910Aとビデオサーバシステム920との間の1つ以上の通信チャネルの能力の両方が含まれ得る。例えば、クライアントクオリファイア960は、ネットワーク915を介して、通信チャネルをテストするように構成され得る。
【0148】
クライアントクオリファイア960は、手動または自動で、クライアント910Aの能力を特定(例えば発見)し得る。手動による特定は、クライアント910Aのユーザと通信して、能力を知らせるようにユーザに依頼することを含む。例えば、いくつかの実施形態では、クライアントクオリファイア960は、クライアント910Aのブラウザ内に画像及び/またはテキストなどを表示するように構成される。一実施形態では、クライアント910Aは、ブラウザを含むHMDである。別の実施形態では、クライアント910Aは、HMD上に表示され得るブラウザを有するゲームコンソールである。表示されるオブジェクトは、ユーザに対し、クライアント910Aのオペレーティングシステム、プロセッサ、ビデオデコーダの種類、ネットワーク接続の種類、ディスプレイ解像度などの情報を入力するように要求する。ユーザにより入力された情報は、クライアントクオリファイア960へ返信される。
【0149】
自動による特定は、例えば、クライアント910A上でエージェントを実行することにより、及び/またはクライアント910Aにテストビデオを送信することにより、行われ得る。エージェントは、ウェブページに埋め込まれた、またはアドオンとしてインストールされたジャバスクリプトなどのコンピューティング命令を含み得る。エージェントは任意で、クライアントクオリファイア960により提供される。様々な実施形態では、エージェントは、クライアント910Aの処理能力、クライアント910Aの復号化及び表示能力、クライアント910Aとビデオサーバシステム920との間の通信チャネルの遅延時間信頼性及び帯域幅、クライアント910Aのディスプレイの種類、クライアント910A上に存在するファイアウォール、クライアント910Aのハードウェア、クライアント910A上で実行されるソフトウェア、及び/またはクライアント910A内のレジストリエントリなどを、見つけ出すことができる。
【0150】
クライアントクオリファイア960は、ハードウェア、ファームウェア、及び/またはコンピュータ可読媒体に格納されたソフトウェアを含む。クライアントクオリファイア960は任意で、ビデオサーバシステム920の1つ以上の他の要素とは別個のコンピューティングデバイス上に配置される。例えば、いくつかの実施形態では、クライアントクオリファイア960は、クライアント910とビデオサーバシステム920の複数のインスタンスとの間の通信チャネルの特性を特定するように構成される。これらの実施形態では、クライアントクオリファイアが発見した情報を使用して、クライアント910のうちの1つにストリーミングビデオを配信するのに最適なビデオサーバシステム920のインスタンスが特定され得る。
【0151】
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家庭用電化製品、小型コンピュータ、及びメインフレームコンピュータなどを含む様々なコンピュータシステム構成で実施され得る。本開示はまた、有線ベースネットワークまたは無線ネットワークを介してリンクされたリモート処理デバイスによりタスクが行われる分散コンピューティング環境においても、実施することができる。
【0152】
前述の実施形態を考慮に入れて、本開示は、コンピュータシステムに格納されたデータを伴う様々なコンピュータ実施動作を採用し得ることを理解されたい。これらの動作は、物理量の物理的操作を要する動作である。本開示の一部を形成する本明細書で説明される動作のいずれも、有用なマシン動作である。本開示はまた、これらの動作を実行するためのデバイスまたは装置に関する。装置は、必要な目的のために特別に構築され得る、または装置は、コンピュータに格納されたコンピュータプログラムにより選択的に有効化または構成される汎用コンピュータであり得る。具体的には、本明細書の教示に従って書かれたコンピュータプログラムと共に様々な汎用マシンを使用することができる、あるいは、必要な動作を実行するためにさらに特化した装置を構築するほうがより好都合である場合もある。
【0153】
本開示はまた、コンピュータ可読媒体上のコンピュータ可読コードとしても具現化され得る。コンピュータ可読媒体は、後でコンピュータシステムにより読み出され得るデータを格納できる任意のデータストレージデバイスである。コンピュータ可読媒体の例として、ハードドライブ、ネットワーク接続ストレージ(NAS)、読み出し専用メモリ、ランダムアクセスメモリ、CD-ROM、CD-R、CD-RW、磁気テープ、並びに他の光学及び非光学データストレージデバイスが挙げられる。コンピュータ可読媒体には、コンピュータ可読コードが分散方式で格納され実行されるように、ネットワーク接続されたコンピュータシステムにわたり分散されたコンピュータ可読有形媒体が含まれ得る。
【0154】
方法動作は特定の順序で説明されたが、オーバーレイ動作の処理が所望のやり方で実行される限り、動作の合間に他の維持管理動作が実行されてもよく、または動作がわずかに異なる時間に起こるように調整されてもよく、またはシステム内に動作を分散することで、様々な処理関連間隔で処理動作が起こることを可能にしてもよいことを、理解されたい。
【0155】
前述の開示は、理解を明確にするためにある程度詳細に説明されたが、添付の特許請求の範囲内で特定の変更及び修正を実施できることは明らかであろう。従って、本実施態様は、限定ではなく例示としてみなされるべきであり、本開示は、本明細書において提供される詳細に限定されるべきではなく、本開示の範囲内及び均等物内で変更されてもよい。