特許第6646319号(P6646319)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ソニー・インタラクティブエンタテインメント エルエルシーの特許一覧

特許6646319クラウドゲームのためのマルチユーザデモストリーミングサービス
<>
  • 特許6646319-クラウドゲームのためのマルチユーザデモストリーミングサービス 図000002
  • 特許6646319-クラウドゲームのためのマルチユーザデモストリーミングサービス 図000003
  • 特許6646319-クラウドゲームのためのマルチユーザデモストリーミングサービス 図000004
  • 特許6646319-クラウドゲームのためのマルチユーザデモストリーミングサービス 図000005
  • 特許6646319-クラウドゲームのためのマルチユーザデモストリーミングサービス 図000006
  • 特許6646319-クラウドゲームのためのマルチユーザデモストリーミングサービス 図000007
  • 特許6646319-クラウドゲームのためのマルチユーザデモストリーミングサービス 図000008
  • 特許6646319-クラウドゲームのためのマルチユーザデモストリーミングサービス 図000009
  • 特許6646319-クラウドゲームのためのマルチユーザデモストリーミングサービス 図000010
  • 特許6646319-クラウドゲームのためのマルチユーザデモストリーミングサービス 図000011
  • 特許6646319-クラウドゲームのためのマルチユーザデモストリーミングサービス 図000012
  • 特許6646319-クラウドゲームのためのマルチユーザデモストリーミングサービス 図000013
  • 特許6646319-クラウドゲームのためのマルチユーザデモストリーミングサービス 図000014
  • 特許6646319-クラウドゲームのためのマルチユーザデモストリーミングサービス 図000015
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6646319
(24)【登録日】2020年1月15日
(45)【発行日】2020年2月14日
(54)【発明の名称】クラウドゲームのためのマルチユーザデモストリーミングサービス
(51)【国際特許分類】
   A63F 13/493 20140101AFI20200203BHJP
   A63F 13/35 20140101ALI20200203BHJP
   A63F 13/533 20140101ALI20200203BHJP
   A63F 13/497 20140101ALI20200203BHJP
   A63F 13/79 20140101ALI20200203BHJP
   A63F 13/86 20140101ALI20200203BHJP
【FI】
   A63F13/493
   A63F13/35
   A63F13/533
   A63F13/497
   A63F13/79
   A63F13/86
【請求項の数】19
【全頁数】37
(21)【出願番号】特願2018-516774(P2018-516774)
(86)(22)【出願日】2016年9月16日
(65)【公表番号】特表2018-534974(P2018-534974A)
(43)【公表日】2018年11月29日
(86)【国際出願番号】US2016052349
(87)【国際公開番号】WO2017058539
(87)【国際公開日】20170406
【審査請求日】2018年3月30日
(31)【優先権主張番号】62/235,435
(32)【優先日】2015年9月30日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】518187455
【氏名又は名称】ソニー・インタラクティブエンタテインメント エルエルシー
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】ペリー、デイヴィッド
(72)【発明者】
【氏名】チェ、ジー、ユン
【審査官】 宇佐田 健二
(56)【参考文献】
【文献】 特開2014−121610(JP,A)
【文献】 特表2008−527851(JP,A)
【文献】 特開2014−135049(JP,A)
【文献】 特開2012−065831(JP,A)
【文献】 特開2014−018324(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00−13/98,9/24
H04N 7/173
(57)【特許請求の範囲】
【請求項1】
クラウドゲームシステムを介してデモンストレーションゲームプレイストリーミングを生成するための方法であって、
前記クラウドゲームシステムによって管理されるゲームのライブラリからゲームを実行することであって、前記実行することが、前記ゲームを起動し、前記ゲームのモジュールをロードし、前記ゲームのインタラクティブ入力を待っているゲームセッションに進める、前記実行することと、
前記ゲームセッション中の第1のユーザによる前記ゲームのゲームプレイを可能にすることであって、前記第1のユーザが、ゲームプレイの第1のポイントまで前記ゲームを進める、前記可能にすることと、
前記ゲームの前記モジュールがロードされ起動されたままで、前記ゲームのインタラクティブ入力を待つように、前記ゲームセッションをアクティブかつ実行中に維持することと、
ゲームプレイの前記第1のポイントまでの前記ゲームプレイの一部の記録を保存することと、
前記ゲームのインジケータを前記クラウドゲームシステムのウェブページにポストすることであって、前記インジケータが、前記ゲームをインスタントプレイに利用可能であると識別し、第2のユーザが、前記第1のユーザがゲームプレイの前記第1のポイントで中断した場所から前記ゲームセッションのプレイを再開することができる、前記ポストすることとを含み、
前記第2のユーザによる前記ゲームセッションのプレイを再開することが、前記第1のユーザによる前記ゲームプレイの後に前記ゲームセッションがアクティブかつ実行中のままであるため、前記クラウドゲームシステムのサーバに前記ゲームをロードし再起動する必要がない、方法。
【請求項2】
前記ゲームの前記モジュールが、前記サーバでのロードを必要とするコードコンポーネントであって、前記モジュールが、前記ゲームのためのゲームコード、前記ゲームのためのユーザインターフェースコード、前記ゲームのためのオーディオ、ゲームのためのグラフィックスコード、前記ゲームのためのゲームエンジンコード、及び前記ゲームのレベル特有のコードを含む、請求項1に記載の方法。
【請求項3】
前記ウェブページ上で、前記第1のユーザによるゲームプレイの前記第1のポイントに至るまでのゲームプレイの前記一部の前記記録を見るためのオプションを提供することをさらに含む、請求項1に記載の方法。
【請求項4】
ゲームプレイの前記第1のポイントに至るまでの前記ゲームの複数の先行プレイをフェッチすることと、
前記ゲームプレイの第1のポイントに至るまでに行われたアクションの概要を見るためのオプションとして、前記ゲームの前記複数の先行プレイを表示することとをさらに含む、請求項1に記載の方法。
【請求項5】
前記インジケータが、前記ゲームのシーンのサムネイルまたは前記ゲームを識別する画像であって、前記インジケータが、前記第2のユーザによる前記ゲームの前記インスタントプレイをアクティブにするためのプレイコントロールに関連付けられる、請求項1に記載の方法。
【請求項6】
ゲームプレイの前記第1のポイントに至るまでの前記ゲームの複数の先行プレイをフェッチすることと、
前記第1のポイントに至るまでに行われたアクションの概要を見るためのオプションとして、前記ゲームの前記複数の先行プレイを表示することとをさらに含む、請求項1に記載の方法。
【請求項7】
クラウドゲームシステムを介してデモンストレーションゲームプレイストリーミングを生成するための方法であって、
前記クラウドゲームシステムによって管理されるゲームのライブラリからゲームを実行することであって、前記実行することが、前記ゲームを起動し、前記ゲームのモジュールをプリロードし、前記ゲームのインタラクティブ入力を待っているゲームセッションに進める、前記実行することと、
前記ゲーム内の第1のレベルから第2のレベルに、前記クラウドゲームシステムによって前記ゲームを進行させることと、
前記クラウドゲームシステム上で前記ゲームを一時停止することと、
前記ゲーム及び前記第2のレベルを示す第1のポストを生成することであって、前記第1のポストがウェブサイトに表示され、前記ゲームの前記実行、前記進行及び前記一時停止が、ユーザ入力なしで前記クラウドゲームシステムによって処理される、前記生成することと、
前記第1のポストの選択によって前記第2のレベルのゲームプレイを開始するために、第1のユーザからの入力を受信することと、
前記ゲームの前記ゲームプレイを前記第2のレベルから第3のレベルに進めることを可能にすることと、
前記クラウドゲームシステム上で前記ゲームを一時停止することと、
前記ゲーム及び前記第3のレベルを示す第2のポストを生成することであって、第2のユーザまたは前記第1のユーザが、前記第2のポストを選択し、前記ゲームをロードし再起動することを要求することなく前記ゲームの他のレベルを通じて前記ゲームの進行を継続することができるように、前記一時停止中に前記ゲームをアクティブセッションのままにする、前記生成することとを含む、方法。
【請求項8】
ウェブページ上で、前記第1のポストに関連付けられるように、前記第2のレベルに至るまでのゲームプレイの記録を見るためのオプションを提供することをさらに含む、請求項7に記載の方法。
【請求項9】
前記第2のレベルまたは前記第3のレベルに至るまでの前記ゲームの複数の先行プレイをフェッチすることと、
前記第2のレベルまたは前記第3のレベルに至るまでに行われたアクションの概要を見るためのオプションとして、前記ゲームの前記複数の先行プレイを表示することとをさらに含む、請求項7に記載の方法。
【請求項10】
前記ゲームの別のユーザによる現行プレイのビデオを提供することであって、前記現行プレイが前記ゲームのレベルに関連付けられている、前記提供することをさらに含み、
前記現行プレイが、前記ゲームの前記他のユーザによって停止されると、前記クラウドゲームシステムが、前記他のユーザが停止した場所から前記ゲームを即座にプレイするためのオプションを生成する、請求項7に記載の方法。
【請求項11】
前記プリロードが、前記ゲームを即座にプレイするためのオプションの提示に先立って、ユーザ入力なしに前記クラウドゲームシステムによって処理されることをさらに含む、請求項7に記載の方法。
【請求項12】
前記プリロードが、前記クラウドゲームシステムのサーバで前記ゲームのモジュールをロードすることを含み、前記モジュールが、前記ゲームのためのゲームコード、前記ゲームのためのユーザインターフェースコード、前記ゲームのためのオーディオ、ゲームのためのグラフィックスコード、前記ゲームのためのゲームエンジンコード、及び前記ゲームのレベル特有のコードを含み、
前記プリロードが、前記ゲームを即座にプレイするためのオプションの提示に先立って、ユーザ入力なしに前記クラウドゲームシステムによって処理される、請求項7に記載の方法。
【請求項13】
前記クラウドゲームシステムが、前記クラウドゲームシステムに登録されたユーザのクライアントデバイスにインターネットを介してアクセス可能なデータセンターの1つまたは複数のサーバによって定義され、前記データセンターの1つまたは複数のサーバが、前記ゲームのインスタンスを1つまたは複数のレベルでインスタントプレイに利用可能にする準備で、前記ゲームの前記プリロードを実行するように構成され、
前記クラウドゲームシステムは、前記ゲームの前記第1のポスト、前記第2のポストまたは他のポストに関連付けられている前記ゲームをプレイするために前記クライアントデバイスのうちの1つからの入力を受信すると、エンコーダを使用して圧縮されたビデオフレームのストリームを生成するように構成され、その結果、符号化されたビデオフレームが前記サーバから前記クライアントに送信され、前記クライアントが、前記サーバへ入力を戻すことによって、前記ゲームのインタラクティビティを促すように構成され、前記クライアントが、デコーダを使用して、前記クライアントのディスプレイ上に画像を解凍してレンダリングするようにさらに構成され、前記圧縮することが、待ち時間が短縮された前記クライアントへの前記ゲームのストリーミングを可能にする、請求項7に記載の方法。
【請求項14】
前記第1のユーザまたは前記第2のユーザのそれぞれが、ソーシャルメディアサイトのソーシャルグラフによって判定された友人によって前記ゲームの1つまたは複数の先行プレイを提供されるように、前記第1のユーザまたは前記第2のユーザの友人を判定するために前記ソーシャルメディアサイトにアクセスすることをさらに含み、
前記先行プレイが、前記第1または前記第2のユーザが、それぞれの友人のうちの1人がゲームプレイを中断した場所からゲームプレイを再開することができるように、インスタントプレイを可能にする、請求項7に記載の方法。
【請求項15】
前記ソーシャルメディアサイトへの前記アクセスが、アプリケーションプログラミングインターフェース(API)呼び出しを介して行われ、前記API呼び出しが、前記第1または第2のユーザの前記ソーシャルグラフに関する情報をキャプチャするように処理される、請求項14に記載の方法。
【請求項16】
クラウドゲームシステムを介してデモンストレーションゲームプレイストリーミングを生成するための方法であって、
前記クラウドゲームシステムによって管理されるゲームのライブラリからゲームを実行することであって、前記実行することが、前記ゲームを起動し、前記ゲームのモジュールをプリロードし、前記ゲームのインタラクティブ入力を待っているゲームセッションに進める、前記実行することと、
前記ゲーム内のあるレベルからそれ以降のレベルに、前記クラウドゲームシステムによって前記ゲームを進行させることと、
前記クラウドゲームシステム上で前記ゲームを一時停止することと、
前記ゲーム及び前記それ以降のレベルを示すポストを生成することであって、前記ポストがウェブサイトに表示されている、前記生成することと
前記それ以降のレベルまたは他のレベルに至るまでの前記ゲームの複数の先行プレイをフェッチすることと、
前記それ以降のレベルまたは他のレベルに至るまでに行われたアクションの概要を見るためのオプションとして、前記ゲームの前記複数の先行プレイを表示することとを含み、
前記ゲームの前記実行、前記進行及び前記一時停止がユーザ入力なしで前記クラウドゲームシステムによって処理され、
前記クラウドゲームシステムが、前記クラウドゲームシステムに登録されたユーザのクライアントデバイスにインターネットを介してアクセス可能なデータセンターの1つまたは複数のサーバによって定義され、前記データセンターの1つまたは複数のサーバが、前記ゲームのインスタンスを特定のインスタントプレイに利用可能にする準備で、前記ゲームの前記プリロードを実行するように構成され、
前記クラウドゲームシステムは、前記ゲームの前記ポストまたは他のポストに関連付けられている前記ゲームをプレイするために前記クライアントデバイスのうちの1つからの入力を受信すると、エンコーダを使用して圧縮されたビデオフレームのストリームを生成するように構成され、その結果、符号化されたビデオフレームが前記サーバから前記クライアントに送信され、前記クライアントが、前記サーバへ入力を戻すことによって、前記ゲームのインタラクティビティを促すように構成され、前記クライアントが、デコーダを使用して、前記クライアントのディスプレイ上に画像を解凍してレンダリングするようにさらに構成され、前記圧縮することが、待ち時間が短縮された前記クライアントへの前記ゲームのストリーミングを可能にする、方法。
【請求項17】
前記ウェブサイト上で、前記ポストに関連付けられるように、前記それ以降のレベルに至るまでのゲームプレイの記録を見るためのオプションを提供することをさらに含む、請求項16に記載の方法。
【請求項18】
前記プリロードが、前記クラウドゲームシステムのサーバで前記ゲームのモジュールをロードすることを含み、前記モジュールが、前記ゲームのためのゲームコード、前記ゲームのためのユーザインターフェースコード、前記ゲームのためのオーディオ、ゲームのためのグラフィックスコード、前記ゲームのためのゲームエンジンコード、及び前記ゲームのレベル特有のコードを含む、請求項16に記載の方法。
【請求項19】
前記プリロードが、前記ゲームを即座にプレイするためのオプションの提示に先立って、ユーザ入力なしに前記クラウドゲームシステムによって処理される、請求項16に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ゲームがプリロードされ、特定のレベルで即座にプレイされる準備ができており、他のユーザが中断したところでプレイを再開できるようにする、クラウドゲームシステムによって実行されるゲームのデモモード動作のためのシステム及び方法に関する。
【背景技術】
【0002】
クラウドシステムは、コンピューティングリソース(ハードウェア及びソフトウェア)を使用して、ネットワーク(通常はインターネット)を介してサービスを提供する。ゲームに関連して、サービスは、リモートクライアントへのコンテンツのストリーミングを可能にし、ほとんどの処理は、分散され得るサーバ上で行われる。リモートクライアントで提供される入力は、クライアントの場所で専用のゲームハードウェアを必要とせずに、サーバ上でゲームを実行させる。クラウドシステム上で実行されるゲームへのアクセスが容易であるため、複雑なハードウェアの制限がなく、より多くのタイトルにアクセスすることが容易になるため、クラウドゲームの人気が高まっている。同様に、ゲームのサプライヤは、集中管理された場所からゲームコードを管理する方が簡単だと考えている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
残念なことに、クラウドゲームシステムでは、ゲームをロードしてプレイする準備ができるまでの間、ユーザは一定の時間待機する必要がある。ロード時間がかなり長くなり得る理由は、ゲームの複雑さ及び精巧さが増し、アクティブなゲームプレイを有効にする前に、ソフトウェアをインスタンス化し適切にロードする必要があるためである。グラフィックス及び複雑さが増え続けるにつれて、ゲームのロード時間も同様に増え続ける。さらに、特定のゲームまたはゲームの機能を試してみたいユーザは、ゲーム全体を購入するか、購入した後、関心のレベルに達するまで複数のレベルを介してプレイする必要がある。
【0004】
これに関連して、本開示の実施形態が生じる。
【課題を解決するための手段】
【0005】
本開示の実施形態は、ゲームのロードに関連する待ち時間を必要とせずに、ゲーム内の特定の時点でのゲームのインスタントプレイを可能にする、クラウドゲームシステムのためのシステム及び方法に関する。特定の実施形態では、ユーザが特定の時点までゲームをプレイでき、その後、別のユーザが先行ユーザが中断した場所からプレイを再開できるようにする方法が提供される。一例では、ゲームは、他のプレーヤーが中断した場所を示す先行プレイオプションを提供し、そのプレーヤーが中断した場所から再開するためのインスタントプレイをユーザに提供し得る。さらに他の実施形態では、クラウドゲームシステムが、ゲーム内の複数の異なる開始点、例えば、レベルを生成することを可能にし、したがって、ゲームのデモンストレーションを希望するユーザが、その特定のレベルを単にプレイすることを可能にする方法が提供される。そのような実施形態では、ユーザは、その特定の関心レベルまで先行ゲームプレイを確認して、そのレベルまで至る能力を提供される。
【0006】
このようにして、ユーザには、ユーザがその特定のレベルのインスタントプレイを試みる前に、行われたゲームプレイ及びアクティビティのタイプの概要を提供される。さらに別の実施形態では、ユーザは、ゲームのインスタンスをストリーミングする他のユーザを見る能力が提供される。ゲームをプレイしている他のユーザを見ているユーザは、先行ユーザが中断した場所でプレイを再開することができる。一実施形態では、ゲームをプリロードする必要なく、他のユーザによってゲームを再開することができる。例えば、ゲームがロードされたままで、プレーヤーが中断した場所またはデモのためにユーザが作成及びロードしたレベルに応じて、様々な時点でインスタントプレイができる状態になる。この機能を有効にすると、クラウドゲームシステムのウェブサイトにアクセスしているユーザは、ゲームのプリロードやゲーム全体の購入を必要とすることなく、タイトルを選択してゲームの特定のレベルを即座にデモすることができる。
【0007】
この機能を提供することにより、待機時間が短縮され、ロードに関連するリソースが削除または削減される。いくつかの実施形態では、特定のレベルまたは先行ゲームプレイをポーズ状態でアクティブに維持することにより、ゲームを再起動し、様々なスプラッシュ画面、導入、及びそれ以前のレベルを処理するために必要となる処理能力を低減する。したがって、この機能により、データセンターのサーバによって消費され得る電力消費、及び実行時間が技術的に削減される。
【0008】
一実施形態では、クラウドゲームシステムを介してデモンストレーションゲームプレイストリーミングを生成するための方法が提供される。方法は、クラウドゲームシステムによって管理されるゲームのライブラリからゲームを実行することを含む。実行することで、ゲームが起動し、ゲームのモジュールがプリロードされゲームのインタラクティブ入力を待機しているゲームセッションに進む。方法は、ゲーム内のあるレベルからそれ以降のレベルに、クラウドゲームシステムによってゲームを進めることを含む。次いで、クラウドゲームシステム上のゲームを一時停止し、ゲーム及びそれ以降のレベルを示すポストを生成する。ポストはウェブサイト上に表示され、ゲームの実行、進行及び一時停止がユーザ入力なしでクラウドゲームシステムによって処理される。いくつかの実施形態では、他のユーザがゲームプレイを進めることができ、他のユーザは、ゲームを再ロードする必要なく、中断した場所からプレイを再開することができる。
【0009】
別の実施形態では、クラウドゲームシステムを介してデモンストレーションゲームプレイストリーミングを生成するための方法が提供される。方法は、クラウドゲームシステムによって管理されるゲームのライブラリからゲームを実行することを含む。実行することで、ゲームが起動し、ゲームのモジュールがロードされゲームのインタラクティブ入力を待機しているゲームセッションに進む。方法はさらに、ゲームセッション中に第1のユーザによるゲームのゲームプレイを可能にする。第1のユーザがゲームの第1のポイントまでゲームを進行する。次いで、システムは、ゲームのモジュールがロードされたままでゲームのインタラクティブ入力を待つように、ゲームセッションをアクティブに維持する。方法はさらに、ゲームプレイの第1のポイントまでのゲームプレイの一部の記録を保存し、ゲームのインジケータをクラウドゲームシステムのウェブページにポストすることを含む。インジケータは、ゲームがインスタントプレイに利用可能であると識別する。次いで、第2のユーザは、第1のユーザがゲームプレイの第1のポイントで中断した場所からゲームセッションのプレイを再開することができる。第2のユーザによるゲームセッションのプレイの再開では、第1のユーザによるゲームプレイの後にゲームセッションがアクティブのままであるため、クラウドゲームシステムのサーバにゲームをロードする必要はない。
【0010】
本開示の他の態様は、本開示の原理を例示により示す添付の図面と関連した、以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【0011】
本開示は、添付の図面と関連した以下の説明を参照することによって最もよく理解されるであろう。
【0012】
図1A】クラウドゲームセッションが、クラウドゲームシステムのサーバによって実行される、インターネットを介したクラウドゲームセッションをプレイするユーザの様々な例を示す。
図1B】クラウドゲームセッションが、クラウドゲームシステムのサーバによって実行される、インターネットを介したクラウドゲームセッションをプレイするユーザの様々な例を示す。
【0013】
図2】クラウドゲームシステムにアクセスし、ゲームタイトル、映画、音楽、及び/またはサーバによって実行可能な、リモートユーザにストリーミングされる一般的なコンテンツなどの特定のデジタルコンテンツへのアクセスを提供するライブラリにアクセスするユーザの例を示す。
【0014】
図3】複数のカテゴリのゲームの中から特定のゲームタイトルを選択するために、クラウドゲームシステムにアクセスし、特定の時点で即座にプレイすることができる特定のゲームのデモストリーミングへのアクセスが提供されるユーザの一例を示す。
【0015】
図4A】様々な構成要素を含み得るゲーム及びゲームの任意の時点でデモを作成し、ゲームの任意の時点からインスタントプレイを可能にする柔軟性の一例を示す。
【0016】
図4B】ゲームのプリロードがゲームの特定のレベルまで実行され、したがって、以前にプレイされたゲームアクティビティのポストを見る他のプレーヤーによりゲームプレイの再開が可能となるように、特定のゲームを処理することができる、デモストリーミングロジックの例を示す。
【0017】
図5】特定の時点(例えば、異なるレベル)でのゲームのインスタントプレイのポストを生成し、先行場所を提示し、ライブ形式の他のプレーヤーの間で進行中であり得る現行プレイを提示するために、ゲームを処理するデモストリーミングロジックの一例を示す。
【0018】
図6】一実施形態による、異なるレベルでの特定のゲームに対する異なるデモオプションを生成するデモストリーミングロジックの一例を示す。
【0019】
図7】ゲームプレイが中断されたところで他のプレーヤーによってインスタントプレイ及び/または再開を可能にするためにゲームがプリロードされる、特定のレベルでのゲームのインスタントプレイオプションを生成することに関連するフローチャート図を示す。
【0020】
図8】一実施形態による、特定のレベルに至るまでのゲームの先行プレイをポストすることを説明する例示的なフローチャートを示す。
【0021】
図9】特定のゲームをプレイしている他のプレーヤー及び、ゲームのプリロードを必要とせずに、インスタントプレイ形式で、他のプレーヤーが中断する場所でプレイを再開する能力を示し得る複数のゲームのチャンネルを提供するシステムの一例を示す。
【0022】
図10】本開示の一実施形態による、ビデオ及びゲームクリップの実行及び共有を管理するために使用され得るゲームクラウドシステム1110の簡略ブロック図を示す。
【0023】
図11】本発明の一実施形態による、ヘッドマウントディスプレイ102の構成要素を示す図である。
【0024】
図12】本発明の様々な実施形態による、ゲームシステム1400のブロック図である。
【発明を実施するための形態】
【0025】
次の実施形態は、ゲームのロードに関連する待ち時間を必要とせずに、ゲーム内の特定の時点でのゲームのインスタントプレイを可能にする、クラウドゲームシステムのためのシステム及び方法を説明する。一例では、ユーザが特定の時点までゲームをプレイでき、その後、別のユーザが先行ユーザが中断した場所からプレイを再開できるようにする方法が提供される。異なるゲームのプレイのための異なる時点の選択を可能にする実施態様に関する様々な例が説明される。いくつかの例では、ユーザは、先行プレーヤーによりゲームが一時停止及び/または停止された時点までの先行ゲームプレイの概要クリップをプレイすることができる。インスタントプレイ機能により、ユーザは、ユーザがプリロードし、プリロードを待ち、異なるレベルを経て進め、及び/またはゲームを購入する必要なく、デモを望むものをプレイすることができる。
【0026】
この柔軟性により、ユーザは、ゲーム全体へのアクセスを必要とする、及び/またはユーザがプレイ、またはゲーム機能のテストもしくはデモンストレーションを開始する前にゲーム全体をプリロードする現在の技術に関連するボトルネックなしで、関心のあり得る時点またはアクションを即座に特定することができる。さらに、様々な実施形態は、ユーザがゲームのインスタンスをプレイする他のプレーヤーを見ることを可能にし、ユーザが他のユーザがゲームプレイを中断する場所からゲームプレイを再開できるようにする方法を提供する。いくつかの実施形態では、先行ゲームプレイを、ソーシャルネットワーク接続に基づいて、特定のユーザに提示することができる。例えば、特定のゲームに関心があり得るプレーヤー間のさらなるインタラクションを可能にするために、ユーザの友人からの先行ゲームプレイを最初に提示することができる。
【0027】
インスタントプレイデモモードに関する詳細は、図3図9を参照して提供されるが、残りの図に記載される他の特徴は、本明細書に記載の様々な実施形態に関連し、特定の実施形態を定義するために組み合わせることができる。しかし、本開示は、これらの具体的な詳細の一部または全部を使用せずに実施し得ることは、当業者には明らかであろう。他の例では、本開示を不必要に不明瞭にしないために、周知の処理工程を詳細には説明していない。様々な実施形態の上記の一般的な理解により、実施形態の例示的な詳細を、様々な図面を参照して説明する。
【0028】
図1Aは、本発明の実施形態による、クラウドベースのビデオゲームをプレイするユーザを示す。図示されるように、ユーザU1は、ディスプレイ100上に示されるクラウドベースのビデオゲームをプレイする。クラウドベースのビデオゲームは、主にリモートサーバ、ゲームコンソールサーバ、及び/またはデータセンターで実行されるゲームコンソールサーバのグループで実行されるビデオゲームである。さらに、一実施形態では、サーバは、仮想マシンデータセンターで実行される個々のサーバまたは複数のサーバを含むことができ、多くのサーバを仮想化して、要求された処理を提供することができる。図示の実施形態では、クラウドゲームサーバ(複数可)104は、ディスプレイ100上にレンダリングされるビデオゲームを実行する。
【0029】
クライアント101は、入力を受信して処理し、これらをクラウドゲームサーバ104に通信し、さらにクラウドゲームサーバ104からビデオ及びオーディオデータを受信するためにユーザの場所に配置される。クライアント101及びクラウドゲームサーバ104は、インターネットなどのネットワーク102を介して通信する。他の実施形態では、クライアントは、ネットワークと通信し、ゲームプレイをレンダリングするためのディスプレイへのアクセスを提供し、ユーザからのインタラクティビティを促すための入力を可能にする限り、クライアントは、無線であっても非無線であっても、携帯であっても非携帯であっても、どのようなデバイスであってもよい。一実施形態では、クライアントはシンクライアントである。ただし、他の実施形態では、クライアントは、汎用コンピュータ、専用コンピュータ、ゲームコンソール、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、モバイルコンピューティングデバイス、ポータブルゲームデバイス、携帯電話、スマートフォン、セットトップボックス、ストリーミングメディアインターフェース/デバイス、スマートテレビジョンまたはネットワークディスプレイ、または本明細書で定義されるクライアントの機能性を満たすように構成することができる任意の他のコンピューティングデバイスとすることができる。一実施形態では、クラウドゲームサーバは、ユーザによって利用されているクライアントデバイスのタイプを検出し、ユーザのクライアントデバイスに適したクラウドゲーム体験を提供するように構成される。例えば、画像設定、オーディオ設定、及びその他のタイプの設定を、ユーザのクライアントデバイス用に最適化し得る。
【0030】
様々な実施形態では、クライアントによって実行される処理の程度は、入力及び出力処理に関して変化し得る。しかし、大まかに言って、ビデオゲームの状態は、クラウドゲームサーバ104上で実質的に維持され、実行され、クライアントは、主として、ユーザ入力を受信し、復号化し、通信し、レンダリングのためのビデオ/オーディオデータを受信するように機能している。クライアント101は、ディスプレイ100に接続され、ディスプレイ100上にレンダリングするためのビデオデータを提供するスタンドアロンデバイスであり得る。他の実施形態では、クライアントをディスプレイ100に統合することができる。一実施形態では、ディスプレイ100は、ディスプレイのネットワーク接続を利用するアプリケーションまたは「アプリ」のためのプラットフォームのオペレーティングシステムを提供するネットワークディスプレイである。そのような実施形態では、クライアントは、ディスプレイのオペレーティングシステムによって提供されるプラットフォーム上で実行されるアプリケーションによって定義することができる。
【0031】
図1Bは、クラウドベースのビデオゲームのゲームプレイに参加する複数の場所にいる複数のユーザを示す。ユーザU1は、ディスプレイ100上にレンダリングされたビデオゲームと対話する第1の場所に示される。ユーザU2及びU3は、ディスプレイ106上にレンダリングされたビデオゲームと対話する第2の場所に示される。ユーザU4は、ディスプレイ108上にレンダリングされたビデオゲームをプレイする第3の場所に示されている。ユーザU5、U6、及びU7は、ディスプレイ110上にレンダリングされたビデオゲームと対話する第4の場所に示されている。
【0032】
第1、第2、第3及び第4の各場所で、様々なユーザからの入力を処理し、それぞれのディスプレイ上にクラウドベースのビデオゲームをレンダリングするための少なくとも1つのコンピューティングデバイスが提供される。コンピューティングデバイスは、ディスプレイに統合することができる、または、パーソナルコンピュータ、セットトップボックス、ゲームコンソール、またはデータを処理及び格納するための少なくとも1つのプロセッサ及びメモリを有する任意の他のタイプのデバイスなどのスタンドアロンデバイスであり得ることを理解されたい。コンピューティングデバイスは、上述したように、クライアントを実行または定義することができる。コンピューティングデバイスは、ネットワーク化され、インターネット102などのネットワークを介してクラウドゲームサーバ104と通信する。
【0033】
クラウドゲームサーバ104は、ユーザによってプレイされている様々なビデオゲームを実行し、所与のビデオゲームのゲームの状態を刻々と定義し、ビデオデータ(画像データ及びオーディオデータを含む)を特定の場所のコンピューティングデバイスに送信する。所与の場所のコンピューティングデバイスは、ビデオゲームをプレイしているユーザ(複数可)からの入力を処理し、入力データをクラウドゲームサーバに転送し、クラウドゲームサーバは入力データを処理してビデオゲームのゲームの状態に影響を与える。クラウドベースのゲームは、ネットワークを介してすべてのプレーヤーがアクセス可能なリモートサーバでのビデオゲームの実行を提供することにより、異なる場所に位置するプレーヤーからのマルチプレーヤーゲームを容易にすることを理解されたい。このようにして、ビデオゲームの実行は、単一のプレーヤーのハードウェアまたはネットワークの伝導度に依存しないが、そのようなものは、その所与のプレーヤーのユーザ体験に影響を与える。
【0034】
図2は、本発明の一実施形態による、クラウドゲームのためのシステムを示す。図示されるように、ユーザ200は、コントローラ202を操作して、クラウドベースのビデオゲームに入力を提供する。コントローラ202は、ボタン、ジョイスティック、タッチパッド、トラックボール、ならびに加速度計、磁力計、及びジャイロスコープなどの動作検知ハードウェアなどの様々なタイプの入力デバイスのいずれかを含むことができる。一実施形態では、コントローラ202は、コントローラ202の位置を決定するために追跡することができる照明されたオブジェクトを含むことができる。光トラッキング、フォトダイオードレーザートラッキング、磁気トラッキングなど、位置を検出する他の方法も可能である。コントローラ202は、シンゲームクライアント204と無線で通信することもできる。クライアント204は、ネットワーク208を介してクラウドゲームサービス210と通信する。クライアント204は、コントローラ202からのデータを処理して、クラウドゲームサービス210によって実行されるビデオゲームに通信される入力データを生成する。さらに、クライアント204は、ディスプレイ206上にレンダリングするために、クラウドゲームサービス210からビデオデータを受信する。一実施形態では、クライアント204は、ディスプレイ206と互換性のあるフォーマットでビデオストリームを提供するために、受信したビデオデータを処理し得る。例えば、サーバによって送信されたデータは、圧縮を使用して圧縮され、クライアントは、圧縮されたデータを復号化するように構成される。一実施形態では、クライアント204は、コントローラデバイスまたはコントローラデバイス上に配置されたオブジェクトを追跡するためのカメラを含むことができる。これまでに述べたように、オブジェクトは、カメラからのキャプチャされた画像フレームの分析に基づいて、追跡をさらに容易にするために照らすことができる。
【0035】
クラウドゲームサービス210は、ビデオゲームを実行できる環境を提供するためのリソースを含む。大まかに言って、リソースは、ビデオゲームアプリケーションの実行を容易にするために利用できる、プロセッサ、ストレージデバイス、及びネットワーク機器を含む、様々なタイプのコンピュータサーバハードウェアを含むことができる。図示の実施形態では、ビデオゲームライブラリ212は、様々なゲームタイトルを含む。各ゲームタイトルは、ビデオゲームをインスタンス化するために利用される実行可能なコードならびに関連するデータ及びアセットライブラリを定義する。ホスト214は、仮想マシン216をインスタンス化するためのプラットフォームを定義する単一のコンピューティングデバイスとすることができる。別の実施形態では、ホスト214は、それ自体を仮想化されたリソースプラットフォームとすることができる。他の実施形態では、ホスト214は、データセンターのラック上で実行し得る複数のゲームコンソールサーバを実行することができる。ゲームは、データセンターのローカルストレージまたは他の接続されたデータセンター内の他のストレージシステムに格納することができる。したがって、例えば、ホスト214は、1つまたは複数のサーバコンピューティングデバイス上で動作し、遠隔地からゲームを実行し得る統一プラットフォームを提示しつつ、サーバコンピューティングデバイスによって定義されたリソースの割り当て及び使用を処理し得る。
【0036】
一実施形態では、仮想マシンは、ゲームコンソールのハードウェアリソース環境をエミュレートするように構成することができ、ゲームコンソールに関連付けられたオペレーティングシステムは、仮想マシン上で実行され、そのゲームコンソール用に開発されたゲームタイトルの実行をサポートする。別の実施形態では、オペレーティングシステムは、ゲームコンソールのネイティブオペレーティングシステム環境をエミュレートするように構成することができるが、基礎となる仮想マシンは、ゲームコンソールのハードウェアをエミュレートするように構成されてもされなくてもよい。別の実施形態では、エミュレータアプリケーションが、仮想マシンのオペレーティングシステムのトップで実行され、エミュレータは、ゲームコンソール用に設計されたビデオゲームをサポートするために、そのゲームコンソールのネイティブオペレーティングシステム環境をエミュレートするように構成される。クラウドベースのゲームシステムでは、現在及び従来の様々なゲームコンソールをエミュレートすることができることを理解されたい。このようにして、ユーザは、クラウドゲームシステムを介して異なるゲームコンソールからゲームタイトルにアクセスすることができる。ユーザ200が特定のビデオゲームタイトルをプレイすることを要求すると、ビデオゲームタイトルがライブラリ212から検索される。
【0037】
所与のビデオゲームは、特定のプラットフォーム及び特定の関連するコントローラデバイスのために開発され得ることを理解されたい。しかし、このようなゲームが、本明細書で提示されるようなクラウドゲームシステムを介して利用可能にされる場合、ユーザは、異なるコントローラデバイスを使用してビデオゲームにアクセスし得る。例えば、ゲームはゲームコンソール及びそれに関連するコントローラ用に開発されているが、ユーザはキーボード及びマウスを利用してパーソナルコンピュータからクラウドベースのバージョンのゲームにアクセスしている可能性がある。そのようなシナリオでは、入力パラメータ構成により、ユーザの利用可能なコントローラデバイス(この場合はキーボード及びマウス)によって生成することができる入力から、ビデオゲームの実行の条件を満たしている入力へのマッピングを定義することができる。
【0038】
別の例では、ユーザは、タブレットコンピューティングデバイス、タッチスクリーンスマートフォン、または他のタッチスクリーン駆動デバイスを介してクラウドゲームシステムにアクセスし得る。この場合、クライアントデバイス及びコントローラデバイスは、同じデバイス内に統合され、検出されたタッチスクリーン入力/ジェスチャによって入力が提供される。そのようなデバイスの場合、入力パラメータ構成は、ビデオゲームのゲーム入力に対応する特定のタッチスクリーン入力を定義し得る。例えば、ボタン、方向パッド、またはその他のタイプの入力要素が、ビデオゲームの実行中に、表示またはオーバーレイまたはビデオフレームの画素と統合され、ユーザがゲーム入力を生成するためにタッチすることができるタッチスクリーン上の位置を示す。特定の方向のスワイプまたは特定のタッチ動作などのジェスチャも、ゲーム入力として検出され得る。一実施形態では、タッチスクリーン上のコントロールの操作にユーザが慣れるために、例えば、ビデオゲームのゲームプレイを開始する前に、ゲームプレイのためにタッチスクリーンを介して入力を提供する方法を示すチュートリアルをユーザに提供することができる。
【0039】
図3は、本発明の一実施形態による、ユーザにゲームデモを提供する方法を示す。デモ用に利用可能な様々なゲームタイトルのビネットまたはアイコン302、304、306、308、310、及び312を提供するインターフェース300が示されている。各アイコンは、それが表すゲームを示す画像を提供するように構成することができる。一実施形態では、ユーザが所与のアイコンに移動すると、アイコンがアクティブになり、ビデオゲームを表すアニメーションまたはビデオクリップを表示するか、またはそれ以外の方法でビデオゲームのコンテンツについてユーザに追加情報を提供し得る。一実施形態では、ユーザは、アイコン302、304、306、308、310、及び312のいずれかに移動し、それがハイライトされ、ビデオゲームからのシーンを示すアクティブなアニメーションを表示し得る。
【0040】
この例では、クラウドゲームシステム104は、様々なモジュール及びシステムとインターフェースされて動作するように構成される。例示のために、クラウドゲームシステム104は、ソーシャルネットワーク320とインターフェースし得る。ソーシャルネットワークは、例えば、登録されたプレーヤー及び登録されたプレーヤーの友人などの、クラウドゲームシステム104によって管理されるものであり得る。他の実施形態では、クラウドゲームシステム104は、ソーシャルネットワーキングサイトなどのサードパーティによって運営されるシステムとインターフェースし得る。そのようなインターフェースは、例えば、アプリケーションプログラミングインターフェース(API)呼び出し、及び/または他の通信リンクまたはチャンネルを介して管理し得る。さらに、ゲームライブラリ322は、クラウドゲームシステム104のユーザが、ディスプレイ300に示されるような様々なゲームタイトルにアクセスできるようにするために提供される。上述したように、ゲームタイトルは、様々なタイプのゲームコンソール世代、パーソナルコンピュータゲーム、オンラインゲーム、または任意のタイプのデジタルコンテンツ(例えば、映画、インタラクティブコンテンツ、ハイブリッドインタラクティブコンテンツ、ヘッドマウントディスプレイコンテンツなど)に提供することができる。
【0041】
また、デモストリーミングロジック324が示されており、これは、複数のユーザが、ゲームプレイの様々なレベルで特定のゲーム及びインスタントプレイゲームにアクセスできるように構成されている。例えば、デモストリーミングロジックは、クラウドゲームシステム104の登録ユーザによって使用され得る様々なゲームをプリロードするように構成される。使用統計及び履歴分析に基づいて、クラウドゲームシステムの登録ユーザによって頻繁に使用され得る特定のゲームを識別することが可能である。いくつかの実施形態では、特定のゲームは、1日の時間帯、地理的領域、特定のユーザ人口統計、1カ月の時間帯、またはそれらの組み合わせに基づいて、頻繁に使用されるゲームとして識別されることができる。
【0042】
この情報を使用して、クラウドゲームシステム104によって実行されるべきゲームが、登録ユーザによってプリロードされ即座にプレイされる準備ができていることを識別することが可能である。一実施形態では、複数のゲームが、クラウドゲームシステム104の登録ユーザによってプリロードされ、インスタントプレイができる状態になる。特定の実施形態では、ゲームは異なるレベルのゲームプレイにプリロードされる。例えば、1つの特定のゲームは、ゲームの複数のインスタンスをプリロードすることができ、その結果、同じゲームが、その特定のレベルでゲームにアクセスしたいと望むユーザによるインスタントプレイのためにプリロードされ、インスタントプレイができる状態になっている複数のレベルを有することができる。ユーザが異なるレベルでプリロードされたゲームにアクセスできるようにすることで、異なるゲームイベントである特定のゲームを異なるレベルで体験をしたいユーザは、購入前にそのようなゲームにアクセスできるようになる。いくつかの実施形態では、ユーザは、特定のゲームレベルが面白いと聞き得て、購入前にそれらのゲームレベルのプレイを望み得る。しかし、このようなデモプレイを可能にする現在の技術では、ユーザは最初から開始するか、またはゲームがロードされるのを待つ必要がある。どちらの状況でも、セットアップに関連する遅延は、ユーザが特定のゲームを試行したり、ゲームのレベル、体験、アクション、ポイントインタイム、またはその特定の関心地点でのゲームの即座の開始に関連するインタラクティビティを体験することを妨げ得る。
【0043】
したがって、デモストリーミングロジックは、クラウドゲームシステム104の登録ユーザに、異なるレベルまたはアクション/インタラクティビティのポイントで異なるゲームを体験する柔軟性を提供するように構成される。クラウドゲーム104はまた、クラウドゲームサービス104の登録ユーザのユーザアカウントを管理するように構成された、ユーザアカウント326とインターフェースし得る。ユーザアカウント326はまた、特権、ユーザアカウントメトリック、購入されたゲーム、購入されたアセット、ユーザの友人などを識別し得る。一実施形態では、ユーザの履歴プレイデータを識別する、ユーザデータ328が提供される。履歴プレイデータには、プレーヤーが以前に中断した場所またはゲームプレイ中の場所を識別するデータとメタデータを含むことができる。追加データには、達成したレベル、獲得したポイント、獲得したトロフィー、達成したインタラクティビティ、ランキング、レーティング、及び1つまたは複数のゲームまたはインタラクティビティに関連するユーザ個人のその他のデータを含むことができる。いくつかの実施形態では、特定のゲームは、ユーザのデジタルアセット、得たポイント、達成レベル、及び他のユーザ固有のメタデータを定義するユーザデータに従って実行される。様々な実施形態では、クラウドゲームシステム104は、これらのモジュールのいずれかの情報を利用して、特定のユーザのためのコンテンツの効率的なレンダリングを可能にする。
【0044】
以下に説明するように、デモストリーミングロジック324は、特定のゲームをデモしたいユーザに特定の柔軟性を提供する。デモプロセスはゲームのロード時間をなくし、ユーザがフルゲームを購入せずにゲームをプレビューすることも可能にする。いくつかの実施形態では、ユーザはチャンネルに参加することができ、ゲームの1つのインスタンスをストリーミングする他のユーザ(またはゲームの他のインスタンスをストリーミングする他のユーザ)を見ることができる。次いで、ユーザは最後のユーザが中断した場所からゲームをプレイできる。ゲームはストリーミングサーバにプリロードされ、ユーザはすぐにプレイを開始できる。遅延のないゲームは、特定のレベルまで、またはよりダイナミックなプレイ及びリプレイのためにプリロードすることもできる。
【0045】
図4Aは、様々なコンポーネント401を含むゲームの例を示す。この図は、インスタントプレイのデモをゲームまたはインタラクティブコンテンツの任意のポイントに関連付けることができることを明確にするために作成したものである。この例では、デモはレベル、例えば、レベル3に関連付けられ得る。別の実施形態では、デモは、特定のシーン403、例えば、レベル3内のシーン2に関連付けられ得る。別の実施形態では、デモは、特定の時点405、例えば、TxからTyに関連付けられ得る。デモが特定の時間に関連付けられている場合、時間Txは、先行ユーザが中断した場所、例えば、プレイを停止した場所であり得て、したがって、ゲームにアクセスしている現行ユーザは時間Txから再開できる。次いで、ユーザは、時刻TxからTyまたは他の任意の時刻Tzまでプレイすることができる。プレイする時間の長さに応じて、ユーザはゲームの終了時に、または特定のレベル内の他のレベルまたはシーンでプレイを停止し得る。したがって、前述のように、デモはゲーム内の任意のポイントにプリロードすることができ、必ずしもレベルに関連付ける必要はない。ただし、別のユーザがプレイを再開できるようにするには、レベルが効率的なブレークポイントになり得る。
【0046】
図4Bは、本開示の一実施形態による、デモストリーミングロジック324によって実行される例示的な処理を示す。図示されるように、特定のゲームは、デモ選択モジュール530のためのデジタルコンテンツを提供するなどの、デモストリーミングロジック324によって処理され得る。一実施形態では、デモストリーミングロジック処理のために複数のゲームが選択される。上述したように、クラウド処理ロジックによってサービスされる特定のゲームは、デモ用に提供されると識別される。一実施形態では、新しいゲームをデモ用に提供することができる。他の実施形態では、頻繁に使用されるゲームをデモ用に提供することができる。他の実施形態では、より高い関心レベルを体験するゲームをデモ用に動的に提供することができる。さらに他の実施形態では、使用、ソーシャルインタラクション、ソーシャルポスティング、ソーシャルリファレンス、プレーヤーからプレーヤーへの招待、プレーヤーのチャレンジ、レーティング、またはそれらの組み合わせに基づいて人気があるゲームを一実施形態で使用し得て、デモ用に選択されたゲームは、クラウドゲームシステム104のウェブページまたはページのデモ選択モジュールで表し得る。例えば、ユーザがクラウドゲームシステム104にログインすると、ユーザは、デモ選択モジュールに移動し得て、デモ選択モジュールは、ページ、リンクまたはインターフェースとして表し得る。デモ選択モジュールでは、デモのオプションとして複数のゲームを表示し得る。
【0047】
さらに図4Bでは、ゲームAについては、プリロード(402)が処理され、続いて特定のレベルにジャンプすることが示されている。これらの例では、ゲームは、例えば、図5を参照して説明したように、ロード時間及び導入画面のすべてまたは一部をバイパスした後に、簡単にレベル1に進み得る。他の実施形態では、システムは、他のレベル、例えば、レベル7、22、Nに進めさせ得るかまたはジャンプさせ得る(404)。選択されたレベルについて、システムは、他のユーザによる先行プレイの概要クリップをフェッチまたは取得し得る(406)。これらの先行プレイは、他のユーザが、インスタントプレイしたいレベルに至るまでの経緯を知ったり、理解したりするために、他のユーザが見るのに有用であり得る。動作408では、ポストは、特定のレベルをプレイする準備完了状態にすることができる。一例では、ポストにより、単にウェブサイトにインスタントプレイオプションを追加することができる。ウェブサイトは、クラウドゲームシステム、ゲームネットワーク、他者によるゲームウェブサイト、パートナーのウェブサイト、ソーシャルメディアサイト、ソーシャルメディアストリームなどのウェブサイトとすることができる。
【0048】
図5に示すように、ゲームがデモ用に選択されると、デモストリーミングロジック324は、特定のレベルでデモゲームを即座にプレイするオプションなどのデモ選択モジュールオプションを生成するために、それらの特定のゲームを処理する。デモストリーミングロジック324に戻って、デモ処理用にゲーム502が選択されると、ゲームはオペレーション504でプリロードされる。ゲームのプリロードは、ゲームを選択すること、ゲームをロードさせること、そのオブジェクトのすべてのインスタンス化を待つこと、スプラッシュスクリーンが表示されるのを待つこと、及びゲームをプレイする準備を維持することを含むことができる。
【0049】
1つの技術的な実施態様では、ゲームのプリロードは、特定のモジュール、例えば、コードをロードすることを含むことができる。例えば、コードは個々のゲームの構造に応じてロードされる。いくつかの実施態様では、ゲームの一般的な要素は、ゲームコード、ユーザインターフェースコード、オーディオ、グラフィックス、ゲームエンジン、及びプレイする必要があるレベルに特有のコードであり得る。
【0050】
データセンターでは、すべてのコードモジュールがロードされると、ゲームが開始される。しかし、本開示の様々な実施形態で構成されるようなインスタントプレイでは、ビデオはクライアントに送信されていない。例えば、ゲームプレイが開始される前に、クラウドゲームシステムがX秒間待機する必要があり(例えば、1つまたは複数のビデオが再生されている間)、クラウドゲームシステムによって1つまたは複数のボタン押下が自動的に入力される必要がある(例えば、特定の通知、グラフィック画像などをスキップするため)。この時点では、クラウドゲームシステムは、ゲームプレイアクションまであとほぼ1つのボタンを押すところにあり、ゲームが一時停止される。クラウドゲームシステムが、レベル1以外のレベルを自動的にユーザにプレイさせたい場合、例えば、クラウドゲームシステムは、例えば、仮想プレーヤー入力ボットを介して、または特定のレベルをスキップしたり、ゲームの他のレベルに進むために必要な所定のボタン押下または入力を介して、任意の数のボタン押下を自動的に実行することができる。いくつかのゲームでは、単純に他のレベルをプレイすることが可能であり、これらのゲームでは、クラウドゲームシステムはそのポイントまでゲームを進めて一時停止し、デモ選択モジュール530を介してそのゲームレベルをインスタントプレイができる状態にする。
【0051】
一実施形態では、ゲームが接続されている場合、例えば、ユーザがインスタントプレイ534ボタンを押すことに応答して、1つまたは複数のスクリーン通知がユーザに対して再生され得る。例えば、その接続が行われてから数秒間(例えば、5秒未満)、ゲーマーに(例えば、プリロードプロセスをバイパスすることによって自動的にスキップされた)すべての法的要件を含む法的画面を表示することで、その時間を稼ぐことが可能である。この時点で、ユーザは、ゲームの所望のインスタントプレイポイントでインスタントゲームプレイまであとボタンを1つ押すだけである。分かりやすくするために、インスタントプレイ532のために利用可能なゲームの1つのレベルをプレイすることを望むユーザに先立って、インスタントプレイ532のためにゲームをプリロードして読み出す間に、クラウドゲームシステムでセットアップが行われる。その結果、多くのゲームをプリロードすることができ、これらのゲームは、クラウドゲームシステムのデモ選択モジュール530のウェブサイトに表示されると、プレイできる状態になる。
【0052】
いくつかの実施形態では、例えば、ユーザがレベル1のインスタントプレイを決定し、次いでレベル3までプレイする場合、他のユーザには、先行ユーザが中断したレベル4でそのゲームのプレイを再開するオプションを提供することができる。したがって、第1のユーザにはレベル1のインスタントプレイが提供され、ゲームがプリロードされたときにユーザはゲームプレイに直接入ることができる。次のユーザも、先行ユーザが中断した場所からプレイを再開しているだけなので、ゲームプレイに直接入ることができる。例えば、中断する先行ユーザは、単にゲームを一時停止し、インスタントで実行したままで、次のプレーヤーに利用可能にする(すなわち、ゲームのプリロードも避ける)。
【0053】
動作506では、動作は、ゲーム内のレベルを識別することを含むことができる。例えば、デモストリーミングロジックは、特定のレベルからデモをプレイすることができるように、ゲームの複数のインスタンスを作成し、ゲーム内の特定のレベルにスキップすることができる。いくつかの実施形態では、スキップすることは、必ずしもあるレベルに進むことだけはなく、インタラクティビティの時点、インタラクティビティの特定のシーン、特定のアクションシーケンス、特定のアニメーション、またはそれらの組み合わせに進むことも含むことができる。
【0054】
いくつかの実施形態では、動作506におけるレベルの識別は、先行プレーヤーがプレイしたゲームのインスタンスと、先行ユーザが中断したレベルとを決定することを含むことができる。例えば、プレーヤー1は、レベル1からゲームをプレイすることを決定し、3までプレイすることができる。プレーヤー2はまた、レベル1からゲームをプレイすることを決定し、レベル10までプレイすることができる。プレーヤー3は、レベル11からゲームをプレイすることを決定し、レイヤー2が中断した場所から再開することができる。プレーヤー4は、レベル7からプレイすることを決定し得る。プレーヤー4は、他のプレーヤーの再開をプレイすることはできず、レベル7のインスタンスを提供するだけである。したがって、クラウドゲームシステムにより、ユーザは、クラウドゲームシステムが自動的に進めたレベルをプレイすることができる、または、ユーザは、他のプレーヤーが中断したレベルでプレイすることができる。このように、システムがプレイに利用可能なレベルまで自動的に進めることによって、そのレベルを作成するので、インスタントプレイ532は、別のプレーヤーによって以前にプレイされたセッションまたはプレイに利用可能なレベルとすることができる。
【0055】
いくつかの実施形態では、クラウドゲームシステムは、どのゲームがインスタントプレイのより多くのデモレベルを必要とするかを自動的に分析することができる。他の多くのユーザがレベル2、4、及び5までの特定のゲームをプレイした場合、システムはレベル3、6、7及び8のより多くのインスタントプレイを作成する必要があると判定することができる。したがって、システムは、ゲームのための補足を行い、ゲームをプリロードし、それらを特定のレベルに進め、それらのレベルのインスタントプレイを可能にする。いくつかの実施形態では、特定のゲームの人気の分析に基づいて、インスタントプレイを自動的に作成することができる。他の実施形態では、新しいゲームを促進するために、その新しいゲームのインスタントプレイを作成することができる。他の実施形態では、ユーザにトレーニングを提供するために、インスタントプレイを作成することができる。
【0056】
さらに他の実施形態では、インスタントプレイ532は、ユーザがリンクをクリックして即座にプレイすることができるように、様々なウェブサイトにポストすることができる。この場合、他のウェブサイトは、クラウドゲームシステムにアクセスさせるリンクをユーザが追加することができる、他のウェブサイト(例えば、クラウドゲームシステムのウェブサイト以外)とすることができる。ゲストまたは登録ユーザとしてアクセスし得る。ゲストとしてアクセスした場合、機能を縮小または調整できる。さらに、他のウェブサイトは、画像クリップまたはビデオクリップがソーシャルストリームにポストされる、ソーシャルメディアウェブサイトとすることができる。リンクを選択すると、そのゲームレベルまたはゲーム部分のインスタントプレイが可能になる。
【0057】
したがって、レベルの識別は、ゲームがシフトされる時点からインスタントプレイを開始することができるように、単にその時点を特定することを含むように広く解釈されるべきであることを理解されたい。考察の目的のために、特定のゲームのレベルの識別について説明する。
【0058】
レベルが動作506で識別されると、動作508でサムネイル画像を生成することができる。サムネイル画像の生成は任意であり、代わりにゲームの名前を生成することができる。さらに、動作512では、識別されたレベルの先行ゲームプレイを識別することができる。先行ゲームプレイは、他のユーザのゲームプレイから記録されたプレイインタラクティビティとすることができる。例えば、他のユーザは特定のレベルに達し得て、その先行ゲームプレイは、デモ選択モジュール530にアクセスしているユーザが、その特定のレベルでプレイを再開できる時点を表すことができる。
【0059】
一例として、ユーザのボブがレベル4に到達した先行プレーヤーあった場合、彼の先行ゲームプレイは、先行ゲームプレイ536のサムネイルとして表すことができる。スティーブとジャックによる先行ゲームプレイでも同じことが言える。一実施形態では、先行ゲームプレイ536は、先行プレーヤーによって識別することができ、スコア、レーティング、及び他の識別またはソーシャルデータも示すことができる。動作506に戻って、レベルは現行プレイ510を識別することもできる。現行プレイは、クラウドゲームシステム104に接続されている他のユーザによるゲームのライブインタラクティブプレイを含むことができる。一実施形態では、ユーザは、現行ゲームプレイ538を見たり、現行ゲームプレイのプレーヤーと通信したり、現行プレーヤーにチャットメッセージを送信したり、テイクオーバーライブゲームプレイ及び/または他の通信を要求したりし得る。
【0060】
一実施形態では、先行ゲームプレイ514の概要クリップは、先行プレイ536を示すためなどに生成し得る。必要に応じて、概要クリップは、動作518でのユーザソーシャルグラフとの対話によって、動作516でユーザの友人のために選択することができる。動作520では、先行ゲームプレイのクリップの概要をフェッチし、動作522での特定のレベルをプレイする準備完了状態をポストするポスティングロジックに提供することができる。動作522は、現行プレイ510に関する情報も受信する。ポストは、ゲームレベル、先行プレイ536、及び現行プレイ538に関する情報がデモ選択モジュール530に提供されるときに行われる。
【0061】
一実施形態では、ポストすることは、インスタントプレイインターフェース532を単に含むことができ、先行プレイ536または現行プレイ538を含むことはできない。別の実施形態では、現行プレイ538を提供せずに、インスタントプレイ532及び先行プレイ536が提供される。さらに他の実施形態では、先行プレイ536または現行プレイ538が提供されるかどうかは、ゲームレベルのインスタントプレイ532の能力と共にポストする他のユーザからのコンテンツがあるかどうかに依存する。現在の例では、インスタントプレイ532は、レベル4のゲームのサムネイル画像を示す。クラウドゲームシステム104にアクセスするユーザは、ゲームのレベル4を即座に開始するために、単にアイコン534(例えば、プレイコントロール、プレイボタン、プレイ矢印、またはプレイリンクなど)を選択するか、または任意の他のインターフェースを選択することができる。一実施形態では、ユーザは、先行プレイ536のユーザのうちの1人が中断した場所からユーザがプレイを再開できるモードで、ゲームのプレイレベル4を開始することができる。上述のように、ユーザは、友人のスティーブが中断した点(スティーブは18点をあげていた)から、ゲームのレベル4をプレイすることを所望することがあり得る。
【0062】
いくつかの実施形態では、先行プレイ536は、それ自体、特定の先行ユーザが中断した場所から再開するインスタントプレイを可能にし得る。先行プレイのうちの1つがインスタントプレイとして選択された場合、他の先行プレイを表示し得て、ユーザは以前に行われたプレイの概要を見ることができる。いくつかの実施形態では、ユーザが良いスコアを達成したユーザの先行プレイを見た場合、ユーザは、代表インスタントプレイ532オプションの代わりに、その先行ゲームプレイ536のインスタントプレイを所望し得る。
【0063】
他の実施形態では、インスタントプレイ532は、ユーザが他のユーザからの過去のプレイなしで、レベル4をプレイすることを可能にする。これは、以前のユーザプレイからのプレイを再開したくないユーザもいるため、ユーザに提供する選択肢とすることができる。しかし、ユーザが先行プレイ536のいずれかのプレイの再開を所望しない場合でも、ユーザは、先行場所のビデオクリップを視聴して、ユーザをゲームと関連付け、先行ユーザが課題を残した場所、成果を上げた場所、または成功した場所を理解することができる。デモ選択モジュール530によってレンダリングされる特定のバスケットボールゲームのレベル4のこの例は、単なる一例に過ぎない。具体的には、デモプレイのために提供されるゲームそれぞれが、その様々なレベル、対話ポイント、アクションシーンなどをプレイするための複数のオプションを含むことができる。これらのレベルのそれぞれが、クラウドゲームシステム104によってプリロードされ実行されているゲームのインスタンス化を表す。ゲームをプリロードして特定のレベルにスキップすることによって、ゲームがロードされるのを待つことがなくなり、ユーザが特定のゲームのプレイにすぐに参加できるようになる。上述のように、ゲーム全体を購入するか、ゲームがロードされるのを待つか、またはユーザが関心のある所望のレベルに達するまで、レベルごとにユーザがそれぞれ進むことを待つことなく、様々なレベルでのこの即座のゲームプレイにより、ユーザはゲームをすばやく試すことができる。
【0064】
図6は、デモ選択モジュール530とインターフェース接続されたデモストリーミングロジック324のブロック図を示す。上述したように、デモ選択モジュール530は、デモモードに追加するゲームを識別するように設計されている。この例では、ゲームA〜ゲームNが表示されている。さらに、デモモードのために任意の数のゲームを選択することができ、デモモードからゲームを追加または削除することができることを理解されたい。この例では、ゲームAのデモ選択モードは、複数のレベル、すなわちレベルA〜レベルNを含むように示されている。レベルのそれぞれが、インスタントプレイ532と、オプションで先行プレイ536と、現行プレイ538とを含むことができる。上述のように、先行プレイは、他のユーザによるプレイ、または現在プレイ中のユーザによるプレイともすることができ、最後のユーザが中断した場所でプレイを再開する能力を有する。さらに、先行プレイは、先行ユーザが現行レベルに到達する前に、先行レベルで実行した方法を見るために、再生することができるビデオクリップを提供することができる。別の実施形態では、先行プレイはレベル自体になり得る。この例では、ユーザは、ビデオクリップを再生して、その特定のレベルがどのようにプレイされたか、または友人または他のプレーヤーによる達成度を見ることができる。
【0065】
別の実施形態では、現行プレイ538をゲームAの各レベルに関連付けることができ、これにより、1人または複数のユーザによるライブインタラクティブのゲームプレイを見るための能力が提供される。他のユーザによるゲームプレイ中に、ユーザは、テキストをポストし、チャットセッションに参加し、画像を提供し、ビデオを提供し、知識を共有し、ゲームステージについてチャットし、及び/または単に交流することによって、他のユーザと通信し得る。
【0066】
いくつかの実施形態では、ユーザは、単に参加して、現在プレイ538しているユーザのうちの1人と代わることで、別のユーザのプレイを継続するオプションが提供される。この動作では、ユーザは、ゲーム内の1人のプレーヤーのコントロールを引き継ぐだけであり、ユーザが停止することを決定するまで、プレイを継続することができる。いくつかの実施形態では、ユーザがインスタントプレイ532をプレイするとき、そのレベルのユーザのプレイは、他のユーザが見る、及び/または再開するための先行プレイ536となり得る。
【0067】
図7は、本開示の一実施形態による、クラウドゲームサーバを使用する場合の、特定のレベルでゲームのインスタントプレイを可能にすることに関連するフローチャート図を示す。動作702では、ゲームがプリロードされる。上述したように、プリロードは、この場合も、ゲームの選択、ゲームの起動、紹介コンテンツの表示を待つことを含むことができる。プリロードが完了した後、クラウドゲームシステムは、動作704でゲーム内の特定のレベルへのジャンプを自動的に生成する。動作704でのゲームのレベルへのジャンプは、所望のレベルに到達するために、ゲームステージ、インタラクティビティ、選択ステージ、入力ステージ、インタラクティビティなどを介した早送りを含むことができる。一実施形態では、この処理は、同じゲームがレベル1、2、3、4、...Nなどのいくつかのレベルに到達するために繰り返され得る。
【0068】
動作706では、特定のレベルがプリロードされているゲームの特定のレベルのそれぞれに到達すると、ゲームは一時停止される。ゲームを一時停止することは、ゲームが停止されておらず、インスタントプレイができる状態でバックグラウンドで実行されていることを意味する。例えば、特定のゲームがレベル2、12、27などの3つのレベルのためにプリロードされている場合、各レベルは、クラウドゲームサービスの登録ユーザによって一時停止され、プレイする準備ができている。動作708では、ゲームのインジケータが生成され、インスタントプレイのレベル及びオプションが表示される。例えば、ゲームの画像サムネイルを生成してゲームを識別し、インスタントプレイのゲームの選択を可能にすることができる。
【0069】
別の実施形態では、インジケータは、単純に、ゲーム及びレベルを識別するテキスト、及び関連するリンクとすることができる。動作710では、そのレベルに至るまでのイベントの概要を提供するゲームのために1つまたは複数の先行ゲームプレイを取得することができる。例えば、先行ゲームプレイは、インスタントプレイのために提供されている現行レベルより前のレベルを識別することができる。一実施形態では、先行ユーザは先行レベルでゲームをプレイしており、インスタントプレイを提供されているユーザは、先行ユーザが中断したその時点からゲームプレイを再開することができる。一実施形態では、これは、別のユーザに対するプレイコントロールの動的なハンドオフとして機能することができる。場合によっては、2人以上の遠隔ユーザが、チームとしてゲームまたはセッションを完了させるために、前後に、または順番にゲームプレイをハンドオフすることができる。1人のプレーヤーがコントロールしている間は、他のプレーヤーは見ていることができる。ゲームがマルチプレーヤーの場合、複数のプレーヤーが即座に参加できる。別の実施形態では、先行ゲームプレイはレベル自体になり得る。その状況では、ユーザは、ゲームレベルのビデオクリップを視聴して、ゲームに関連付けることができ、その特定のゲームレベルをどのようにプレイするかを理解することができる。動作712では、そのレベルのゲームのインスタントプレイが可能になる。
【0070】
ゲームは、特定のデータセンターから実行され得る、クラウドゲームサーバ(複数可)上で実行される。クラウドゲームサーバにアクセスするユーザは、インターネット接続を介してサーバにアクセスすることができる。したがって、ゲームの実行は、ロード時間を待つことなく、特定のレベルで特定のゲームを即座にプレイするオプションが提供されているクライアント(ユーザ)から遠隔にある。
【0071】
図8は、本開示に従って、ゲームのインスタントプレイオプションを生成するためにクラウドサーバによって実行される動作を示すフローチャート図である。動作802では、ゲームのインジケータがポストされる。ポストは、インスタントプレイが利用可能なゲーム内のレベルを表示する。本明細書で使用される場合、ポストするという動作は単に、オプションがクラウドゲームシステム104上でアクセス可能な少なくとも1つのインタラクティブページ上にグラフィカルに提供されることを意味する。
【0072】
例えば、クラウドゲームシステムは、ユーザがコンテンツを選択するためのオプションを提供する複数のウェブページを含み得る。ウェブページのうちの1つまたはウェブページのサブセットは、デモモードでインスタントプレイが可能ないくつかのゲームを識別する領域を含み得る。動作804では、特定のゲームについて、ゲームの複数の先行プレイが、インスタントプレイが利用可能なレベルに至るまで、ポストされ得る。
【0073】
例えば、先行プレーヤーがレベル3をプレイし、レベル4がインスタントプレイが利用可能なレベルである場合、先行プレイはレベル3の様々な対話セッションを表示する。一実施形態では、これにより、ユーザは、レベル3の先行ゲームプレイを見てから、レベル3のユーザが中断した場所でレベル4を即座に開始することができる。したがって、ゲームのプレイは、ゲームの先行プレイのいずれかから開始され、ゲームプレイが継続される。別の実施形態では、ユーザがレベル4に至るまで行われたゲームアクションのより詳細な概要を望む場合には、さらに前のレベルをユーザに示すこともできる。
【0074】
図9は、特定のゲームをプレイする他のプレーヤーを定義する、ゲームのための、複数のチャンネルをレンダリングする動作を示すフローチャート図である。例えば、複数のユーザが現在ゲームAをプレイしている場合、それらのインスタンスはチャンネルとして見ることができる。これらのチャンネルは、クラウドゲームサービス104の1人または複数の登録ユーザが、ゲームチャンネルへのアクセスを提供するユーザインターフェースにログインして接続されたときに、見ることができる。したがって、動作902では、ゲームチャンネルは、ユーザに他のユーザが特定のゲームをプレイするのを生で視聴するための能力を提供し、それらのユーザが、プレイ中のユーザと対話できるようにする。
【0075】
動作904では、停止点は、プレイされていたゲームのうちの1つに対して識別され得る。停止されたゲームは、ロードされたままとなり、他のプレーヤーによってインスタントプレイができる状態になる。したがって、ライブプレイ中のゲームのいずれかがプレイ中のユーザによって一時停止または停止された場合、ライブゲームプレイを視聴し得る別のユーザは、それらのユーザが中断した場所からゲームプレイを再開し得る。一実施形態では、他のユーザが中断した時点は、それらの特定のユーザのために依然として保存され得て、視聴しているユーザによるゲームの継続は、先行ゲームプレーヤーのゲームプレイまたは状態に影響を与えない。
【0076】
このように、各ユーザの保存されたデータは、個別に管理され、それぞれのユーザのユーザアカウントに関連付けられることができる。動作906では、第2のユーザは、インスタントプレイを介して、プレイされていたゲームのうちの1つを停止点から開始して再開することを可能とすることができる。前述したように、第2のユーザは、ゲームがロードされるのを待つことなく、他のユーザが中断した場所からゲームを即座に開始することが可能になる。大まかに言って、ゲームはデータセンター内のサーバの1つにロードされたままであり、別のユーザがコントロールを引き継いでプレイを再開するのを待つだけである。一般に、別のユーザがインスタントプレイモードを再開できるようにするには、データセンター内のサーバ及びロジックで、別のユーザをゲームの特定のインスタンスに関連付ける必要がある。これには、特定のユーザアカウントに関連付けるマッピング機能が特定のゲームに必要であり、そのユーザのゲームの特定の機能を有効にする。例えば、ゲームがデモの場合、有効になる特定の機能と、有効にならない特定の機能がある。より具体的には、デモモードでは、ゲームの機能のすべてが、全額支払い済みのゲームのように有効になるわけではない。
【0077】
別の実施形態では、デモモードは、ゲーム全体ではなく、ゲームの1つまたは複数のレベルのプレイのみを可能にするため、ゲームのすべての機能がそのデモモードに対して有効になる。デモモード中に特定のレベルのゲームのより多くの機能またはゲームのすべての機能を有効にすることにより、ユーザにゲームの購入を促す水準まで、ユーザがゲームを高く評価し、精通することが可能になる。
【0078】
これらの動作は、複数のサーバ及び/または実行プラットフォームを必要とする技術的動作を形成し、データベースへの迅速なアクセス及び遠隔に位置するユーザへのコンテンツの提示を可能にする。本明細書の様々な場所で述べたように、クラウドゲームは、任意の数の圧縮技術を利用する圧縮の動作を含むこともできる。圧縮技術は、標準的なエンコーダを使用し得て、クライアントデバイス上の標準デコーダがビデオゲームにアクセスしてプレイできるようにすることができる。ビデオゲーム及び配信の管理には、いくつかのデータセンター、方向サーバ、サービス品質テスター、低遅延データセンターへの指示及びリダイレクト、インスタントプレイデモの管理が含まれる。これらの動作及びタスクは、ゲームの遠隔実行及びクライアントデバイスへの配信のために、ストリーミング及び低遅延用に設計された専用コンピュータを利用することも理解されたい。
【0079】
図10は、本開示の一実施形態による、ビデオ及びゲームクリップの実行及び共有を管理するために使用され得るゲームクラウドシステム1110の簡略ブロック図を示す。一実施形態では、クラウドゲームシステム1100は、データセンターの一部である複数のサーバによって定義され、接続されたユーザによって遠隔でプレイできるゲームまたはメディアを実行するように構成される。サーバは、ネットワーク化されたゲーム機である、汎用サーバ及び専用サーバによって定義することができる。ネットワークゲームコンソールの場合、データセンターは、特定のゲームを実行し、複数の接続されたユーザにサービスを提供するように構成し得る、ゲームコンソールの複数のラックによって定義することができる。場合によっては、特定のゲームコンソールが特定のゲームに予め割り当てられており、特定の数(例えば、1人または複数)のユーザを前記ゲームコンソールに割り当てることができる。次いで、サーバインフラストラクチャは、ゲームの実行及び遠隔ユーザデバイスに送信されたコンテンツの符号化(例えば、圧縮)を可能にするように設計される。遠隔ユーザデバイスは、データを復号化し、遠隔ユーザによって使用されるクライアントのディスプレイ上にインタラクティブコンテンツを表示する。同様に、コントローラ入力などのユーザ入力がサーバに返送され、ゲームのインタラクティビティを実行することが可能になる。広義には、クラウドゲームは、データセンターのリモートサーバ上でゲームの実行を処理し、オーディオ及びビデオ出力をリモートクライアントに提示することを含む。クライアントとサーバとの間の帯域幅が最小レベルのものがあり、遅延が300ミリ秒未満である場合、リモートクライアントの画面に表示されるインタラクティビティは、コンテンツがクライアント上でローカルに実行されている場合と同様である。いくつかの実施形態では、ゲームクラウドシステム1110は、ホストマシン(または単にホスト)のハイパーバイザ上で実行する複数の仮想マシン(VM)を含み得て、1つまたは複数の仮想マシンは、ホストのハイパーバイザが利用可能なハードウェアリソースを利用して、ゲームプロセッサモジュールを実行するように構成される。
【0080】
ゲームクライアントデバイスのいくつかの例には、パーソナルコンピュータ(PC)、テレビジョン、ホームシアターPC、汎用コンピュータ、モバイルコンピューティングデバイス、スマートフォン、タブレット、またはビデオゲームを実行するためにインターネットを介してゲームサーバと対話することができる任意の他のタイプのコンピューティングデバイスがある。このように、ゲームサーバは、ホスト上で実行され、ネットワーク1120を介して遠隔アクセスされる仮想マシンを含む、クラウドで利用可能な任意のタイプのサーバコンピューティングデバイスであり得る。
【0081】
いくつかの構成では、ユーザがクラウドゲームシステム1110にログインすると、ユーザがクラウドゲームネットワークにアクセスしているクライアントデバイスのタイプを指定するオプションがユーザに提示され得る。一実施形態では、ユーザがクライアントデバイスに対応するものを選択し得る、一連のクライアントデバイスオプションが提示される。同様に、ビデオゲームをプレイするために使用するコントローラデバイスのタイプを指定するオプションもユーザに提示され得る。一実施形態では、一連のコントローラオプションをユーザに提示することができ、ユーザはコントローラハードウェアに対応するコントローラタイプを指定することを選択し得る。
【0082】
他の実施形態では、クラウドゲームシステム1110は、クライアントデバイスタイプ及び/またはコントローラデバイスタイプを自動的に検出するように構成することができる。例えば、ログイン時に、クライアントデバイスは、(例えば、ゲームサーバからの要求に応答して)それ自体を識別するゲームサーバならびに接続されたコントローラデバイスに情報を送信し得る。この情報に基づいて、ゲームクラウドシステム1110内のゲームサーバは、ユーザのクライアントデバイス及びコントローラデバイスに最適化されたゲーム体験を提供するために、適切なビデオゲーム出力設定(例えば、圧縮、解像度、アスペクト比など)及び入力パラメータ設定を決定し得る。一実施形態では、ルックアップテーブルを採用して、検出されたクライアントデバイス及び検出されたコントローラデバイスに基づいてビデオゲーム設定及び入力パラメータ設定を決定する。これらの設定及び入力パラメータは、予め定義されたセットアップパラメータを生成するために使用される。設定パラメータにより、ビデオゲームをプレイするためのコントロールを定義するために、情報がクライアントデバイスで提供される。設定パラメータに加えて、他のユーザとのソーシャルインタラクションを可能にするために、クライアントデバイスでソーシャルメディアインターフェースも提供され得る。
【0083】
さらに図10を参照すると、様々な例示的なモジュール及びそれらの相互作用が示されている。例えば、ソーシャルメディアプロバイダ1140、ユーザデバイス1100、及びゲームクラウドシステム1110は、インターネット1120を介して接続される。1つのユーザデバイス100が示されているが、実際には、GCS1110及びソーシャルメディアプロバイダ1140によって提供されるサービスにアクセスするために、より多くのユーザデバイスがインターネット1120に接続され得ることを理解されたい。
【0084】
一実施形態では、ゲームクラウドシステム1110は、記録されたゲームプレイ、例えば、先行プレイビデオのデモの実行及び共有の管理に関連する様々なデータを受信及び処理する複数のモジュールを含む。一実施形態では、ゲームクラウドシステム1110の異なるモジュールは、ゲームサーバに利用可能なデータを使用して、ゲームサーバ上で実行する1つまたは複数の実行エンジンを含み得る。一部のシステムにはこれらのモジュールが多かれ少なかれあり得るため、この例は、オンラインゲームを可能にするように構成されている、さらに多くの実施態様に限定されていると見なすべきではないことを理解されたい。
【0085】
例えば、いくつかの実行エンジンを使用して、異なるゲーム及び管理タスクを実行し得る。いくつかの例示的なエンジンは、限定しないが、ゲーム実行エンジン1170、ゲームコードマッパ1171、記録エンジン1172、デモストリーミングプロセッサ1173、メトリックアキュムレータ1174、ユーザプロセッサ1175、及びタイトルインデックスエンジン1176を含み得る。
【0086】
ゲームクラウドシステム1110はさらに、様々なデータ及び/または処理されたデータを格納するための複数のデータストレージシステムを含み得る。図示されるように、限定しないが、データストアは、ゲーム状態ストア1160、ゲームコードストア1161、記録ゲームストア1162、ソーシャルネットワークデータストア1163、デモ及び概要ビデオデータストア1164、ゲームタイトルストア1165、ゲームネットワークユーザストア1167を含み得る。ゲームセッションマネージャ1185は、ゲーム実行エンジン及びデータストア、ならびにソーシャルコネクションマネージャ1195と対話するように構成し得る。ゲームセッションマネージャ1185は、例えば、ユーザアクセスロジック1180を介して、様々なユーザへのアクセスを許可及び/または制御するようにも構成される。
【0087】
一実施形態では、ユーザU0は、特定の画面1132を有する、ユーザデバイス1100を介してゲームクラウドシステム1110にアクセスし得る。ユーザによって提供される入力は、コントローラ、キーボード、タッチスクリーン、または任意の他の入力を介して入力することができる。入力1136は、インターネット1120を介してゲームクラウドシステム1110に通信される。一実施形態では、入力1136は圧縮され、ゲームクラウドシステム1110に転送され、ネットワークインターフェース1190によって受信され得るデータのパケットで通信することができる。一実施形態では、ネットワークインターフェース1190は、ゲームクラウドシステム1110の特定のサーバ、特定のゲームコンソール、またはデータセンター内の様々なサーバに関連付けられ得る。次いで、入力1136は、ゲームロジックの処理、オーディオ及びビデオパケット1135の返送を提供するゲームセッションマネージャ1185に渡される。オーディオ及びビデオパケットは、符号化(例えば、圧縮)され、クライアントデバイス1100に転送され、ここで、クライアントデバイスのデコーダが復号化し、データを画面1132に戻して提示する。
【0088】
いくつかの実施形態では、システムはハイブリッドシステムとして動作することができ、ソーシャルリレーションシップは、サードパーティのソーシャルメディアプロバイダからのソーシャルグラフデータ1145を使用して(アプリケーションプログラミングインターフェース(API)アクセスなどを介して)管理される。さらに他の実施形態では、ゲームクラウドシステム1110は、ゲームクラウドシステム1110のユーザアカウントを有するユーザのリストと、特定のゲームをプレイするか、または互いに対話する友人を識別する関係とを含むことができる、それ自体のソーシャルネットワークデータを管理することができる。
【0089】
一実施形態では、ユーザ、例えば、ユーザU0は、ユーザアカウントを作成し、作成されたユーザアカウントをゲームクラウドシステム1110に登録し得る。ユーザアカウントがゲームクラウドシステム1110に登録された後、ゲームクラウドシステム1110は、この登録ユーザアカウントにユーザIDを提供し、登録ユーザアカウントに関連付けられたユーザプロファイルにユーザIDを保存し得る。一実施形態では、ユーザアカウントに関連付けられたユーザプロファイルは、ゲームネットワークユーザストア1167内のユーザデータベースに保存し得る。
【0090】
ログイン後、ユーザは、ゲームセッションマネージャ1185を介してゲームクラウドシステム1110によって提供されるサービスにアクセスすることができる。例えば、ゲームセッションマネージャ1185は、ユーザプロセッサ1175が、このユーザに関連するユーザプロファイルにユーザログイン情報を記録または更新し得るように、ユーザプロセッサ1175にユーザログイン情報を通知し得る。ユーザプロセッサ1175はまた、タイトルインデックスエンジン1176と通信して、ユーザアカウントに関連付けられたゲームタイトルを識別し得る。ユーザアカウントに関連付けられたゲームタイトルは、以前にユーザによって購入され、以前にユーザによってプレイされ得て、及び/またはゲームプロバイダによって識別され、利用可能にされた無料ゲームタイトルであり得る。一実施形態では、ユーザアカウントに関連付けられたゲームタイトルはまた、ユーザの以前のゲーム選択に基づいて、ユーザの関心によって定義されたジャンルに関連付けられたゲームタイトルを含み得る。さらに、ユーザプロセッサ1175は、過去のプレイデータ、特定のゲームで達成されたレベル、蓄積されたポイント、進行中のゲームの状態、獲得されたトロフィー、獲得されたクレジットなどを含むユーザデータを識別し得る。
【0091】
ゲームセッションマネージャ1185は、ユーザが以前のゲームプレイ停止点からゲームプレイを再開できるように、もしあれば、(選択したゲームの)ユーザがプレイした最後のセッションの保存されたゲーム状態を取得するためにゲーム状態ストア1161にアクセスする。再開点または開始点が識別されると、ゲームセッションマネージャ1185は、ゲームコードストア1161に格納されている選択したゲームタイトルのゲームコードを実行するようにゲーム実行エンジン1170に通知し得る。ゲームセッションが開始された後、ゲームセッションマネージャ1185は、ネットワークインターフェース1190を介して、ゲームビデオフレーム(すなわち、ストリーミングビデオデータ)をユーザデバイス、例えば、ユーザデバイス1100に渡し得る。
【0092】
ゲームプレイ中、ゲームセッションマネージャ1185は、ゲーム実行エンジン1170、及び記録エンジン1172と通信して、ゲームプレイのプロセスとして、ゲームプレイまたはゲームプレイセッションの記録(例えば、ビデオ)を生成または保存し得る。一実施形態では、ゲームプレイのビデオ録画は、ゲームプレイ中に提供及び/またはキャプチャされた他のゲーム関連メタデータを含むことができる。この追加のデータは、ゲームをプレイしているユーザのビデオを含むことができる。例えば、ゲームをプレイしているユーザのこのビデオを使用して、デモストリーミングプロセッサ1173によって処理することができる、先行プレイビデオを生成し得る。
【0093】
所与のビデオゲームは、特定のプラットフォーム及び特定の関連するコントローラデバイスのために開発され得ることを理解されたい。しかし、このようなゲームが、本明細書で提示されるようなゲームクラウドシステムを介して利用可能にされる場合、ユーザは、異なるコントローラデバイスを使用してビデオゲームにアクセスし得る。例えば、ゲームはゲームコンソール及びそれに関連するコントローラ用に開発されているが、ユーザはキーボード及びマウスを利用して、パーソナルコンピュータからクラウドベースのバージョンのゲームにアクセスすることができる。そのようなシナリオでは、入力パラメータ構成により、ユーザの利用可能なコントローラデバイス(この場合はキーボード及びマウス)によって生成することができる入力から、ビデオゲームの実行の条件を満たしている入力へのマッピングを定義することができる。
【0094】
別の例では、ユーザは、タブレットコンピューティングデバイス、タッチスクリーンスマートフォン、または他のタッチスクリーン駆動デバイスを介してクラウドゲームシステムにアクセスし得る。この場合、クライアントデバイス及びコントローラデバイスは、同じデバイス内に統合され、検出されたタッチスクリーン入力/ジェスチャによって入力が提供される。そのようなデバイスの場合、入力パラメータ構成は、ビデオゲームのゲーム入力に対応する特定のタッチスクリーン入力を定義し得る。例えば、ボタン、方向パッド、またはその他の種類の入力要素が、ビデオゲームの実行中に、表示またはオーバーレイされ、ユーザがゲーム入力を生成するためにタッチすることができるタッチスクリーン上の位置を示す。特定の方向のスワイプまたは特定のタッチ動作などのジェスチャも、ゲーム入力として検出され得る。一実施形態では、タッチスクリーン上のコントロールの操作にユーザが慣れるために、例えば、ビデオゲームのゲームプレイを開始する前に、ゲームプレイのためにタッチスクリーンを介して入力を提供する方法を示すチュートリアルをユーザに提供することができる。
【0095】
いくつかの実施形態では、クライアントデバイスは、コントローラデバイスの接続ポイントとして機能する。すなわち、コントローラデバイスは、クライアントデバイスとの無線または有線接続を介して通信し、コントローラデバイスからクライアントデバイスに入力を転送する。クライアントデバイスは、これらの入力を処理し、ネットワークを介して(例えば、ルータなどのローカルネットワークデバイスを介してアクセスされる)入力データをクラウドゲームサーバに転送し得る。しかし、他の実施形態では、コントローラは、それ自体をネットワークデバイスとすることができ、クライアントデバイスを介して最初にそのような入力を通信する必要がなく、入力をネットワークを介してクラウドゲームサーバに直接通信する能力を有する。例えば、コントローラは、クラウドゲームサーバにデータを送信し、クラウドゲームサーバからデータを受信するために、ローカルネットワークデバイス(前述のルータなど)に接続し得る。したがって、クラアントデバイスがクラウドベースのビデオゲームからビデオ出力を受信し、それをローカルディスプレイ上にレンダリングすることが依然として要求される一方、コントローラが、クライアントデバイスをバイパスして、ネットワークを介してクラウドゲームサーバに直接入力を送信できるようにすることで、入力待ち時間を短縮できる。
【0096】
一実施形態では、ネットワークコントローラ及びクライアントデバイスは、特定のタイプの入力をコントローラからクラウドゲームサーバへ直接送信し、及び他のタイプの入力をクライアントデバイスを介して送信するように構成することができる。例えば、検出がコントローラ自体とは別の追加のハードウェアまたは処理に依存しない入力は、クライアントデバイスをバイパスして、ネットワークを介してコントローラからクラウドゲームサーバに直接送信することができる。そのような入力は、ボタン入力、ジョイスティック入力、埋め込み動き検出入力(例えば、加速度計、磁力計、ジャイロスコープ)などを含み得る。ただし、追加のハードウェアを利用する入力またはクライアントデバイスによる処理を必要とする入力は、クライアントデバイスによってクラウドゲームサーバに送信することができる。これらには、クラウドゲームサーバに送信する前に、クライアントデバイスによって処理され得るゲーム環境からキャプチャされたビデオまたはオーディオが含まれ得る。さらに、コントローラの動き検出ハードウェアからの入力は、キャプチャされたビデオと共にクライアントデバイスによって処理され、コントローラの位置及び動きを検出し、その後、クライアントデバイスによってクラウドゲームサーバに通信され得る。様々な実施形態によるコントローラデバイスは、クライアントデバイスから、または直接クラウドゲームサーバからデータ(例えば、フィードバックデータ)を受信し得ることも理解されたい。
【0097】
本明細書に記載の実施形態は、任意のタイプのクライアントデバイス上で実行され得ることを理解されたい。いくつかの実施形態では、クライアントデバイスはヘッドマウントディスプレイ(HMD)である。
【0098】
図11は、本発明の一実施形態による、ヘッドマウントディスプレイ102の構成要素を示す図である。ヘッドマウントディスプレイ102は、プログラム命令を実行するためのプロセッサ1300を含む。メモリ1302は、ストレージ目的のために提供され、揮発性メモリ及び不揮発性メモリの両方を含み得る。ユーザが見ることができる視覚インターフェースを提供するディスプレイ1304が含まれる。ヘッドマウントディスプレイ102の電源としてバッテリ1306が設けられている。動き検出モジュール1308は、磁力計1310、加速度計1312、及びジャイロスコープ1314など、様々な種類の動き検知ハードウェアのいずれかを含み得る。
【0099】
加速度計は、加速度及び重力誘発反力を測定するためのデバイスである。加速度の大きさと方向を異なる方向で検出するために、単一軸モデル及び複数軸モデルを利用できる。加速度計は、傾き、振動、及び衝撃を検知するために使用される。一実施形態では、3つの加速度計1312が重力の方向を提供するために使用され、2つの角度(世界空間ピッチ及び世界空間回転)の絶対的基準を与える。
【0100】
磁力計は、ヘッドマウントディスプレイの近くの磁場の強さと方向を測定する。一実施形態では、ヘッドマウントディスプレイ内に3つの磁力計1310が使用され、世界空間ヨー角の絶対的基準を保証する。一実施形態では、磁力計は地磁界にまたがるように設計されており、地磁界は±80マイクロテスラである。磁力計は金属の影響を受け、実際のヨーで単調なヨー測定値を提供する。磁場は、環境内の金属のために歪み得て、ヨー測定値に歪みが生じる。必要に応じて、この歪みは、ジャイロスコープまたはカメラなどの他のセンサからの情報を使用して較正することができる。一実施形態では、加速度計1312が磁力計1310と共に使用され、ヘッドマウントディスプレイ102の傾斜角及び方位角を取得する。
【0101】
ジャイロスコープは、角運動量の原理に基づいて、方向を測定または維持するためのデバイスである。一実施形態では、3つのジャイロスコープ1314は、慣性感知に基づいて、各軸(x、y及びz)を横切る動きに関する情報を提供する。ジャイロスコープは、高速回転を検出するのに役立つ。しかし、ジャイロスコープは、絶対的基準の存在なしでは、時間の経過と共にドリフトする可能性がある。これにより、ジャイロスコープは定期的にリセットする必要がある。これは、オブジェクトの視覚的追跡、加速度計、磁力計などに基づく位置/方向測定などの、他の利用可能な情報を使用して行うことができる。
【0102】
カメラ1316は、現実の環境の画像及び画像ストリームをキャプチャするために設けられている。ヘッドマウントディスプレイ102には、後ろ向き(ユーザがヘッドマウントディスプレイのディスプレイを見ているときにユーザから遠ざかる方向に向けられた)カメラ及び、前向き(ユーザがヘッドマウントディスプレイ102のディスプレイを見ているときにユーザの方に向けられた)カメラを含む、複数のカメラが含まれ得る。さらに、現実の環境のオブジェクトの深さ情報を検出するために、ヘッドマウントディスプレイ102に深度カメラ1318を含め得る。
【0103】
ヘッドマウントディスプレイ102は、オーディオ出力を提供するためのスピーカ1320を含む。また、マイクロホン1322は、周囲環境からの音、ユーザが話す言葉など、現実の環境からオーディオをキャプチャするために含まれ得る。ヘッドマウントディスプレイ102は、触覚フィードバックをユーザに提供するための触覚フィードバックモジュール1324を含む。一実施形態では、触覚フィードバックモジュール1324は、触覚フィードバックをユーザに提供するために、ヘッドマウントディスプレイ102の動き及び/または振動を引き起こすことができる。
【0104】
LED1326は、ヘッドマウントディスプレイ102の状態の視覚的インジケータとして提供される。例えば、LEDは、バッテリレベル、電源オンなどを示し得る。ヘッドマウントディスプレイ102が、情報をメモリカードから読み出し、メモリカードに書き込むことを可能にするために、カードリーダ1328が設けられている。USBインターフェース1330は、周辺デバイスの接続、または他の携帯デバイス、コンピュータなどの他のデバイスとの接続を可能にするためのインターフェースの一例として含まれる。ヘッドマウントディスプレイ102の様々な実施形態では、ヘッドマウントディスプレイ102の接続性をより広げることを可能にするために、様々なタイプのインターフェースのいずれかを含め得る。
【0105】
無線ネットワーク技術を介して、インターネットへの接続を可能にするために、WiFi(登録商標)モジュール1332が含まれる。また、ヘッドマウントディスプレイ102は、他のデバイスへの無線接続を可能にするブルートゥース(登録商標)モジュール1334を含む。通信リンク1336はまた、他のデバイスへの接続のために含まれ得る。一実施形態では、通信リンク1336は、無線通信のために赤外線伝送を利用する。他の実施形態では、通信リンク1336は、他のデバイスとの通信のための様々な無線または有線伝送プロトコルのいずれかを利用し得る。
【0106】
入力ボタン/センサ1338は、ユーザのための入力インターフェースを提供するために含まれる。ボタン、タッチパッド、ジョイスティック、トラックボールなど、様々なタイプの入力インターフェースのいずれかが含まれ得る。超音波通信モジュール1340は、超音波技術を介して他のデバイスとの通信を容易にするために、ヘッドマウントディスプレイ102に含まれ得る。
【0107】
バイオセンサ1342は、ユーザからの生理学的データの検出を可能にするために含まれる。一実施形態では、バイオセンサ1342は、ユーザの皮膚を通してユーザの生体電気信号を検出するための1つまたは複数のドライ電極を含む。
【0108】
ヘッドマウントディスプレイ102の前述の構成要素は、単にヘッドマウントディスプレイ102に含まれ得る例示的な構成要素として説明されている。本発明の様々な実施形態では、ヘッドマウントディスプレイ102は、前述の様々な構成要素のうちのいくつかを含んでも含まなくてもよい。ヘッドマウントディスプレイ102の実施形態は、本明細書に記載される本発明の態様を容易にするために、本明細書に記載されていないが、当技術分野で周知である他の構成要素をさらに含み得る。
【0109】
当業者であれば、本発明の様々な実施形態では、上述のハンドヘルドデバイスを、ディスプレイ上に表示されたインタラクティブアプリケーションと共に利用して、様々なインタラクティブ機能を提供することができることを理解されるであろう。本明細書に記載された例示的な実施形態は、例示としてのみ提供されるもので、限定するものではない。
【0110】
図12は、本発明の様々な実施形態による、ゲームシステム1400のブロック図である。ゲームシステム1400は、ネットワーク1415を介して1つまたは複数のクライアント1410にビデオストリームを提供するように構成される。ゲームシステム1400は、通常、ビデオサーバシステム1420及びオプションのゲームサーバ1425を含む。ビデオサーバシステム1420は、最小限のサービス品質で1つまたは複数のクライアント1410にビデオストリームを提供するように構成される。例えば、ビデオサーバシステム1420は、ビデオゲーム内の状態または視点を変更するゲームコマンドを受信し、クライアント1410に、この変更を直ちに反映する更新されたビデオストリームを、最小遅延時間で提供し得る。ビデオサーバシステム1420は、まだ定義されていないフォーマットを含む、多種多様な代替ビデオフォーマットでビデオストリームを提供するように構成し得る。さらに、ビデオストリームは、多種多様なフレームレートでユーザに提示するように構成されたビデオフレームを含み得る。典型的なフレームレートは、毎秒30フレーム、毎秒60フレーム、及び毎秒1420フレームである。ただし、本発明の代替の実施形態には、より高いまたはより低いフレームレートが含まれる。
【0111】
本明細書で、1410A、1410Bなどと個々に呼ばれるクライアント1410は、ヘッドマウントディスプレイ、端末、パーソナルコンピュータ、ゲームコンソール、タブレットコンピュータ、電話機、セットトップボックス、キオスク、無線デバイス、デジタルパッド、スタンドアロンデバイス、ハンドヘルドゲームプレイデバイス、及び/または同様のものを含み得る。典型的には、クライアント1410は、符号化されたビデオストリームを受信し、ビデオストリームを復号化し、得られたビデオをユーザ、例えば、ゲームのプレーヤーに提示するように構成される。符号化されたビデオストリームを受信し、及び/またはビデオストリームを復号化する処理は、通常、個々のビデオフレームをクライアントの受信バッファに格納することを含む。ビデオストリームは、クライアント1410に統合されたディスプレイ上またはモニタもしくはテレビジョンなどの別個のデバイス上でユーザに提示され得る。クライアント1410は、オプションで、複数のゲームプレーヤーをサポートするように構成される。例えば、ゲームコンソールは、2人、3人、4人またはそれ以上の同時プレーヤーをサポートするように構成され得る。これらのプレーヤーの各人は、別個のビデオストリームを受信し得るか、または単一のビデオストリームは、各プレーヤーに対して特別に生成された、例えば、各プレーヤーの視点に基づいて生成されたフレームの領域を含み得る。クライアント1410は、オプションで地理的に分散される。ゲームシステム1400に含まれるクライアントの数は、1つもしくは2つから数千、数万、またはそれ以上に大きく変動し得る。本明細書で使用する「ゲームプレーヤー」という用語は、ゲームをプレイする人を指すために使用され、「ゲームプレイデバイス」という用語は、ゲームをプレイするために使用されるデバイスを指すために使用される。いくつかの実施形態では、ゲームプレイデバイスは、協働してゲーム体験をユーザに提供する複数のコンピューティングデバイスを指し得る。例えば、ゲームコンソール及びHMDは、ビデオサーバシステム1420と協働して、HMDを介して見られるゲームを提供し得る。一実施形態では、ゲームコンソールは、ビデオサーバシステム1420からビデオストリームを受信し、ゲームコンソールは、ビデオストリームまたはビデオストリームを更新して、レンダリングのためにHMDに転送する。
【0112】
クライアント1410は、ネットワーク1415を介してビデオストリームを受信するように構成されている。ネットワーク1415は、電話ネットワーク、インターネット、無線ネットワーク、電力線ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、プライベートネットワークなどを含む任意のタイプの通信ネットワークとし得る。典型的な実施形態では、ビデオストリームは、TCP/IPまたはUDP/IPなどの標準プロトコルを介して通信される。あるいは、ビデオストリームは、独自の規格を介して通信される。
【0113】
クライアント1410の典型的な例は、プロセッサ、不揮発性メモリ、ディスプレイ、復号化ロジック、ネットワーク通信能力、及び入力デバイスを含むパーソナルコンピュータである。復号化ロジックは、ハードウェア、ファームウェア、及び/またはコンピュータ可読媒体に格納されたソフトウェアを含み得る。ビデオストリームを復号化(及び符号化)するためのシステムは、当該技術分野において周知であり、使用される特定の符号化方式に応じて異なる。
【0114】
クライアント1410は、必須ではないが、受信ビデオを修正するように構成されたシステムをさらに含み得る。例えば、クライアントは、さらなるレンダリングを実行する、1つのビデオ画像をもう1つのビデオ画像に重ねる、ビデオ画像をトリミングする、及び/または同様のことができるように構成し得る。例えば、クライアント1410は、Iフレーム、Pフレーム、及びBフレームなどの様々なタイプのビデオフレームを受信し、これらのフレームをユーザに表示するための画像に処理するように構成し得る。いくつかの実施形態では、クライアント1410のメンバーは、ビデオストリームに対するさらなるレンダリング、シェーディング、三次元への変換、または同様の動作を実行するように構成される。クライアント1410のメンバーは、オプションで、複数のオーディオまたはビデオストリームを受信するように構成される。クライアント1410の入力デバイスは、例えば、片手ゲームコントローラ、両手ゲームコントローラ、ジェスチャ認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、ポインティングデバイス、フォースフィードバックデバイス、動き及び/または位置検知デバイス、マウス、タッチスクリーン、神経インターフェース、カメラ、まだ開発されていない入力デバイス、及び/または同様のものを含み得る。
【0115】
クライアント1410によって受信されたビデオストリーム(及びオプションでオーディオストリーム)は、ビデオサーバシステム1420によって生成され、提供される。本明細書の他の箇所でさらに説明するように、このビデオストリームはビデオフレームを含む(及びオーディオストリームはオーディオフレームを含む)。ビデオフレームは、ユーザに表示される画像に有意義に貢献する(例えば、それらは適切なデータ構造内に画素情報を含む)ように構成される。本明細書で使用する「ビデオフレーム」という用語は、ユーザに表示される画像に貢献する、例えば、効果を与えるように構成された情報を主に含むフレームを指すために使用される。「ビデオフレーム」に関する本明細書の教示のほとんどは、「オーディオフレーム」にも適用することができる。
【0116】
クライアント1410は、典型的には、ユーザからの入力を受信するように構成される。これらの入力は、ビデオゲームの状態を変化させるように、またはそれ以外の場合はゲームプレイに影響を与えるように構成されたゲームコマンドを含み得る。ゲームコマンドは、入力デバイスを使用して受信することができる、及び/またはクライアント1410上で実行する命令を計算することによって自動的に生成し得る。受信したゲームコマンドは、クライアント1410からネットワーク1415を介してビデオサーバシステム1420及び/またはゲームサーバ1425に通信される。例えば、いくつかの実施形態では、ゲームコマンドは、ビデオサーバシステム1420を介してゲームサーバ1425に通信される。いくつかの実施形態では、ゲームコマンドの別個のコピーが、クライアント1410からゲームサーバ1425及びビデオサーバシステム1420に通信される。ゲームコマンドの通信は、オプションでコマンドのIDに依存する。ゲームコマンドは、オーディオまたはビデオストリームをクライアント1410Aに提供するために使用されたものとは異なる経路または通信チャンネルを介して、クライアント1410Aからオプションで通信される。
【0117】
ゲームサーバ1425は、オプションで、ビデオサーバシステム1420とは異なるエンティティによって運営される。例えば、ゲームサーバ1425は、マルチプレーヤーゲームのパブリッシャーによって運営され得る。この例では、ビデオサーバシステム1420は、オプションで、ゲームサーバ1425によってクライアントとして見なされ、オプションで、ゲームサーバ1425の観点から、従来技術のゲームエンジンを実行する従来技術のクライアントに見えるように構成される。ビデオサーバシステム1420とゲームサーバ1425との間の通信は、オプションで、ネットワーク1415を介して行われる。このように、ゲームサーバ1425は、ゲーム状態情報を複数のクライアントに送信する従来技術のマルチプレーヤーゲームサーバとすることができ、そのうちの1つがゲームサーバシステム1420である。ビデオサーバシステム1420は、同時にゲームサーバ1425の複数のインスタンスと通信するように構成し得る。例えば、ビデオサーバシステム1420は、異なるユーザに複数の異なるビデオゲームを提供するように構成することができる。これらの異なるビデオゲームの各々は、異なるゲームサーバ1425によってサポートされ得て、及び/または異なるエンティティによってパブリッシュされ得る。いくつかの実施形態では、ビデオサーバシステム1420の地理的に分散された複数のインスタンスは、複数の異なるユーザにゲームビデオを提供するように構成される。ビデオサーバシステム1420のこれらのインスタンスの各々は、ゲームサーバ1425の同じインスタンスと通信し得る。ビデオサーバシステム1420と1つまたは複数のゲームサーバ1425との間の通信は、オプションで、専用の通信チャンネルを介して行われる。例えば、ビデオサーバシステム1420は、これらの2つのシステム間の通信に専用の高帯域幅チャンネルを介してゲームサーバ1425に接続され得る。
【0118】
ビデオサーバシステム1420は、少なくともビデオソース1430、I/Oデバイス1445、プロセッサ1450、及び非一時的ストレージ1455を含む。ビデオサーバシステム1420は、1つのコンピューティングデバイスを含み得るか、または複数のコンピューティングデバイスに分散され得る。これらのコンピューティングデバイスは、オプションで、ローカルエリアネットワークなどの通信システムを介して接続される。
【0119】
ビデオソース1430は、例えば、ストリーミングビデオまたは動画を形成する一連のビデオフレームなどのビデオストリームを提供するように構成される。いくつかの実施形態では、ビデオソース1430は、ビデオゲームエンジン及びレンダリングロジックを含む。ビデオゲームエンジンは、プレーヤーからゲームコマンドを受信し、受信したコマンドに基づいてビデオゲームの状態のコピーを維持するように構成される。このゲーム状態には、ゲーム環境内のオブジェクトの位置と、典型的には視点を含む。ゲーム状態はまた、オブジェクトの特性、画像、色及び/またはテクスチャを含み得る。
【0120】
ゲーム状態は、典型的には、ゲームルールと、移動、回転、攻撃、フォーカス設定、対話、使用及び/または同様のものなどのゲームコマンドに基づいて維持される。ゲームエンジンの一部は、オプションで、ゲームサーバ1425内に配置される。ゲームサーバ1425は、地理的に分散したクライアントを使用する複数のプレーヤーから受信したゲームコマンドに基づいて、ゲームの状態のコピーを維持し得る。これらの場合、ゲーム状態は、ゲームサーバ1425によってビデオソース1430に提供され、ゲーム状態のコピーが格納され、レンダリングが実行される。ゲームサーバ1425は、ネットワーク1415を介してクライアント1410から直接ゲームコマンドを受信し得て、及び/またはビデオサーバシステム1420を介してゲームコマンドを受信し得る。
【0121】
ビデオソース1430は、典型的には、レンダリングロジック、例えば、ハードウェア、ファームウェア、及び/またはストレージ1455などのコンピュータ可読媒体に格納されたソフトウェアなどを含む。このレンダリングロジックは、ゲーム状態に基づいてビデオストリームのビデオフレームを作成するように構成される。レンダリングロジックの全部または一部は、オプションで、グラフィックス処理ユニット(GPU)内に配置される。レンダリングロジックは、典型的には、ゲーム状態及び視点に基づいて、オブジェクト間の三次元空間関係を決定するように、及び/または適切なテクスチャなどを適用するように構成された処理ステージを含む。レンダリングロジックは生のビデオを生成し、通常、クライアント1410と通信する前に符号化される。例えば、生のビデオは、Adobe Flash(登録商標)規格、.wav、H.264、H.263、On2、VP6、VC−1、WMA、Huffyuv、Lagarith、MPG−x.Xvid.FFmpeg、x264、VP6−8、リアルビデオ、mp3などに従って符号化し得る。符号化処理は、リモートデバイス上のデコーダに提供するために、オプションでパッケージ化されたビデオストリームを生成する。ビデオストリームは、フレームサイズ及びフレームレートによって特徴付けられる。任意の他のフレームサイズを使用し得るが、典型的なフレームサイズには、800×600、1280×720(例えば、720p)、1024×768がある。フレームレートは、1秒あたりのビデオフレームの数である。ビデオストリームは、異なるタイプのビデオフレームを含み得る。例えば、H.264規格は、「P」フレーム及び「I」フレームを含む。Iフレームは、ディスプレイデバイス上のすべてのマクロブロック/画素をリフレッシュするための情報を含み、Pフレームは、そのサブセットをリフレッシュするための情報を含む。Pフレームは、典型的には、Iフレームよりもデータサイズが小さい。本明細書で使用する「フレームサイズ」という用語は、フレーム内の画素数を指すことを意味する。「フレームデータサイズ」という用語は、フレームを格納するために必要なバイト数を指すために使用される。
【0122】
代替の実施形態では、ビデオソース1430は、カメラなどのビデオ記録デバイスを含む。このカメラは、コンピュータゲームのビデオストリームに含めることができる遅延ビデオまたはライブビデオを生成するために使用し得る。得られたビデオストリームは、オプションで、レンダリングされた画像と、スチルカメラまたはビデオカメラを使用して記録された画像の両方を含む。ビデオソース1430はまた、ビデオストリームに含めるために以前に記録されたビデオを格納するように構成されたストレージデバイスを含み得る。ビデオソース1430はまた、オブジェクト、例えば、人物の動きまたは位置を検出するように構成された動きまたは位置検知デバイス、ならびに検出された動き及び/または位置に基づいてゲーム状態を決定、またはビデオを生成するように構成されたロジックを含み得る。
【0123】
ビデオソース1430は、オプションで、他のビデオに配置されるように構成されたオーバーレイを提供するように構成される。例えば、これらのオーバーレイは、コマンドインターフェース、ログイン指示、ゲームプレーヤーへのメッセージ、他のゲームプレーヤーの画像、他のゲームプレーヤーのビデオフィード(例えば、ウェブカメラビデオ)を含み得る。タッチスクリーンインターフェースまたは視線検出インターフェースを含むクライアント1410Aの実施形態では、オーバーレイは、仮想キーボード、ジョイスティック、タッチパッド、及び/または同様のものを含み得る。オーバーレイの一例では、プレーヤーの音声がオーディオストリーム上に重ねられる。ビデオソース1430は、オプションで、1つまたは複数のオーディオソースをさらに含む。
【0124】
ビデオサーバシステム1420が、複数のプレーヤーからの入力に基づいてゲーム状態を維持するように構成されている実施形態では、各プレーヤーは、視界の位置及び方向を含む異なる視点を有し得る。ビデオソース1430は、オプションで、各プレーヤーに対して、彼らの視点に基づいて別個のビデオストリームを提供するように構成される。さらに、ビデオソース1430は、異なるフレームサイズ、フレームデータサイズ、及び/または符号化をクライアント1410のそれぞれに提供するように構成し得る。ビデオソース1430は、オプションで、三次元ビデオを提供するように構成される。
【0125】
I/Oデバイス1445は、ビデオサーバシステム1420が、ビデオ、コマンド、情報要求、ゲーム状態、視線情報、デバイス動作、デバイス位置、ユーザ動作、クライアントID、プレーヤーID、ゲームコマンド、セキュリティ情報、オーディオ、及び/または同様のものなどの情報を送信及び/または受信するように構成される。I/Oデバイス1445は、典型的には、ネットワークカードまたはモデムなどの通信ハードウェアを含む。I/Oデバイス1445は、ゲームサーバ1425、ネットワーク1415、及び/またはクライアント1410と通信するように構成される。
【0126】
プロセッサ1450は、本明細書で論じられるビデオサーバシステム1420の様々なコンポーネント内に含まれるロジック、例えば、ソフトウェアを実行するように構成される。例えば、プロセッサ1450は、ビデオソース1430、ゲームサーバ1425、及び/またはクライアントクォリファイア1460の機能を実行するためにソフトウェア命令でプログラムされ得る。ビデオサーバシステム1420は、オプションで、プロセッサ1450の複数のインスタンスを含む。プロセッサ1450はまた、ビデオサーバシステム1420によって受信されたコマンドを実行するため、または本明細書で論じられるゲームシステム1400の様々な要素の動作を調整するために、ソフトウェア命令でプログラムされ得る。プロセッサ1450は、1つまたは複数のハードウェアデバイスを含み得る。プロセッサ1450は、電子プロセッサである。
【0127】
ストレージデバイス1455は、非一時的なアナログ及び/またはデジタルストレージデバイスを含む。例えば、ストレージ1455は、ビデオフレームを格納するように構成されたアナログストレージデバイスを含み得る。ストレージ1455は、コンピュータ可読デジタルストレージ、例えば、ハードドライブ、光学ドライブ、またはソリッドステートストレージを含み得る。ストレージ1415は、ビデオフレーム、人工フレーム、ビデオフレームと人工フレームの両方を含むビデオストリーム、オーディオフレーム、オーディオストリーム、及び/または同様のものを格納するように(例えば、適切なデータ構造またはファイルシステムによって)構成される。ストレージ1455は、オプションで、複数のデバイス間に分散される。いくつかの実施形態では、ストレージ1455は、本明細書の他の箇所で論じられるビデオソース1430のソフトウェアコンポーネントを格納するように構成される。これらのコンポーネントは、必要なときに供給する準備ができる形式で格納し得る。
【0128】
ビデオサーバシステム1420は、オプションで、クライアントクォリファイア1460をさらに含む。クライアントクォリファイア1460は、クライアント1410Aまたは1410Bなどのクライアントの能力を遠隔で判定するように構成される。これらの能力は、クライアント1410A自体の能力と、クライアント1410Aとビデオサーバシステム1420との間の1つまたは複数の通信チャンネルの能力の両方を含むことができる。例えば、クライアントクォリファイア1460は、ネットワーク1415を介して通信チャンネルをテストするように構成し得る。
【0129】
クライアントクォリファイア1460は、クライアント1410Aの能力を手動または自動で判定(例えば、発見)することができる。手動判定は、クライアント1410Aのユーザと通信し、ユーザに能力を提供するように依頼することを含む。例えば、いくつかの実施形態では、クライアントクォリファイア1460は、クライアント1410Aのブラウザ内に画像、テキスト、及び/または同様のものを表示するように構成される。一実施形態では、クライアント1410Aは、ブラウザを含むHMDである。別の実施形態では、クライアント1410Aは、ブラウザを有するゲームコンソールであり、HMD上に表示され得る。表示されたオブジェクトは、ユーザが、クライアント1410Aのオペレーティングシステム、プロセッサ、ビデオデコーダタイプ、ネットワーク接続のタイプ、ディスプレイ解像度などの情報を入力することを要求する。ユーザによって入力された情報は、クライアントクォリファイア1460に返信される。
【0130】
自動判定は、例えば、クライアント1410A上のエージェントの実行によって、及び/またはクライアント1410Aへのテストビデオの送信によって行い得る。エージェントは、ウェブページに埋め込まれるか、またはアドオンとしてインストールされるJava(登録商標)スクリプトなどのコンピューティング命令を含み得る。エージェントは、オプションで、クライアントクォリファイア1460によって提供される。様々な実施形態では、エージェントは、クライアント1410Aの処理能力、クライアント1410Aの符号化及び表示能力、クライアント1410Aとビデオサーバシステム1420との間の通信チャンネルの遅延時間の信頼性及び帯域幅、クライアント1410Aのディスプレイタイプ、クライアント1410A上に存在するファイアウォール、クライアント1410Aのハードウェア、クライアント1410A上で実行するソフトウェア、クライアント1410A内のレジストリエントリ、及び/または同様のものを検出することができる。
【0131】
クライアントクォリファイア1460は、ハードウェア、ファームウェア、及び/またはコンピュータ可読媒体に格納されたソフトウェアを含む。クライアントクォリファイア1460は、オプションで、ビデオサーバシステム1420の1つまたは複数の他の要素とは別個のコンピューティングデバイス上に配置される。例えば、いくつかの実施形態では、クライアントクォリファイア1460は、クライアント1410とビデオサーバシステム1420の複数のインスタンスとの間の通信チャンネルの特性を判定するように構成される。これらの実施形態では、クライアントクォリファイアによって検出された情報を使用して、ビデオサーバシステム1420のどのインスタンスが、クライアント1410の1つにストリーミングビデオを配信するのに、最適なのかを判定することができる。
【0132】
本明細書で定義される様々な実施形態は、本明細書に開示された様々な特徴を使用して特定の実施態様に組み合わされるか、または組み立てられ得ることを理解されたい。したがって、提供される例は、より多くの実施態様を定義するために、様々な要素を組み合わせることによって可能な様々な実施態様に対する限定ではなく、単にいくつかの可能な例である。いくつかの例では、開示または同等の実施態様の精神から逸脱することなく、いくつかの実施態様がより少ない要素を含み得る。
【0133】
本発明の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラマブル民生用電子機器、ミニコンピュータ、メインフレームコンピュータなどを含む様々なコンピュータシステム構成で実施し得る。本発明は、有線ベースまたは無線ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境でも実施することができる。
【0134】
上記の実施形態を念頭に置いて、本発明は、コンピュータシステムに格納されたデータを含む様々なコンピュータ実装の動作を使用することができることを理解されたい。これらの動作は、物理量の物理的操作を必要とする動作である。本発明の一部を形成する本明細書に記載されているいずれの動作も有用な機械動作である。本発明はまた、これらの動作を実行するためのデバイスまたは装置に関する。装置は、必要とされる目的のために特別に構成することができ、または装置は、コンピュータに格納されたコンピュータプログラムによって選択的に起動または構成された汎用コンピュータとすることができる。特に、本明細書の教示に従って書かれたコンピュータプログラムと共に様々な汎用機械を使用することができ、または必要とされる動作を実行するより特殊化した装置を構築する方がより便利であり得る。
【0135】
本発明は、コンピュータ可読媒体上のコンピュータ可読コードとして具体化することもできる。コンピュータ可読媒体は、データを格納することができる任意のデータストレージデバイスであり、このデータは、その後コンピュータシステムによって読み取ることができる。コンピュータ可読媒体の例には、ハードドライブ、ネットワーク接続ストレージ(NAS)、リードオンリメモリ、ランダムアクセスメモリ、CD−ROM、CD−R、CD−RW、磁気テープならびに他の光学及び非光学データストレージデバイスが含まれる。コンピュータ可読媒体は、コンピュータ可読コードが分散方式で格納され、実行されるように、ネットワーク結合コンピュータシステム上に分散されたコンピュータ可読有形媒体を含むことができる。
【0136】
方法動作は特定の順序で説明されているが、他のハウスキーピング操作が動作の間に実行され得る、または、動作が、わずかに異なる時間に生じるように調整され得る、もしくはオーバーレイ動作の処理が所望の方法で実行される限り、処理に関連する様々な間隔で処理動作の発生を可能にするシステムに分散され得ることを理解されたい。
【0137】
前述の発明は、理解を明確にするために幾分詳細に説明してきたが、添付の特許請求の範囲内である種の変更及び修正を実施できることは明らかであろう。したがって、本実施形態は例示的であって限定的ではないと見なされるべきであり、本発明は本明細書に記載された詳細に限定されるものではなく、添付の特許請求の範囲及び均等物の範囲内で修正され得る。
図1A
図1B
図2
図3
図4A
図4B
図5
図6
図7
図8
図9
図10
図11
図12