JP2020151494A - クライアント側のアセット統合を用いたクラウドゲームストリーミング - Google Patents

クライアント側のアセット統合を用いたクラウドゲームストリーミング Download PDF

Info

Publication number
JP2020151494A
JP2020151494A JP2020094313A JP2020094313A JP2020151494A JP 2020151494 A JP2020151494 A JP 2020151494A JP 2020094313 A JP2020094313 A JP 2020094313A JP 2020094313 A JP2020094313 A JP 2020094313A JP 2020151494 A JP2020151494 A JP 2020151494A
Authority
JP
Japan
Prior art keywords
game
video
visual
client device
cloud
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020094313A
Other languages
English (en)
Other versions
JP7157099B2 (ja
Inventor
ペリー、デイヴィッド
David Perry
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Interactive Entertainment Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Interactive Entertainment Inc filed Critical Sony Interactive Entertainment Inc
Publication of JP2020151494A publication Critical patent/JP2020151494A/ja
Application granted granted Critical
Publication of JP7157099B2 publication Critical patent/JP7157099B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/31Communication aspects specific to video games, e.g. between several handheld game devices at close range
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an MPEG-stream for transmitting to a mobile phone or a thin client
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/23Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/48Starting a game, e.g. activating a game device or waiting for other players to join a multiplayer session
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • A63F13/537Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/54Controlling the output signals based on the game progress involving acoustic signals, e.g. for simulating revolutions per minute [RPM] dependent engine sounds in a driving game or reverberation against a virtual wall
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/71Game security or game management aspects using secure communication between game devices and game servers, e.g. by encrypting game data or authenticating players
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5683Storage of data provided by user terminals, i.e. reverse caching
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/534Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5546Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history
    • A63F2300/5566Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history by matching opponents or finding partners to build a team, e.g. by skill level, geographical area, background, play style

Abstract

【課題】ビデオゲームのクラウドストリーミングへの移行によるローカルビデオゲームの初期化方法を提供する。【解決手段】クラウドビデオゲームを開始するためのコマンドをクライアントデバイス224で受信し、初期コンテンツ234ををレンダリングする。クラウドビデオゲームにアクセスするためにクライアントデバイスからクラウドゲームサーバー104に要求を送信する。クラウドゲームサーバーが、クラウドビデオゲームを実行するゲーム機118にクライアントデバイスを割り当てる。インタラクティブゲームプレイを開始するためのコマンドをクライアントデバイスで受信し、クライアントデバイスからクラウドゲームサーバーに要求を送信する。クラウドゲームサーバーが、要求を受信したことに応答して、実行中のクラウドビデオゲームによって生成されたインタラクティブゲームプレイコンテンツのクライアントデバイスへのストリーミングを開始する。【選択図】図2

Description

本開示は、ユーザインタラクション向けのクラウドビデオゲームを提供するためのシステム及び方法に関し、より詳細には、ビデオゲームのクラウドストリーミングへの移行によるローカルビデオゲームの初期化に関する。
急速に成長する技術の現在の領域は、クラウドゲームの分野である。ユーザは、インターネットなどのネットワークを介してクラウドゲームサイト上の多数のゲームにアクセスして、対話を開始しゲームをプレイすることができる。ゲームプレイするゲームを選択するために、ユーザはクラウドゲームサイトで自分のアカウントにアクセスする。ユーザには、ゲームプレイするユーザアカウントに使用可能なゲームのリストが提供される。ユーザが視聴及び/またはゲームプレイするゲームを選択すると、ユーザは、ゲームプレイするゲームにアクセスする前に、例えば、ユーザアカウントがクラウドゲーム機に割り当てられ、ゲームコードがロードされ、グラフィックスエンジンが初期化され、グラフィックスがロードされ、ゲーム及びユーザ設定がアップロードされるまで待たなければならない。さらに、ビデオゲームの初期コンテンツの進行は、一般的に線形処理であるため、ユーザは、後続のコンテンツがユーザクライアントデバイスにロード、実行、ストリーミングされるとき、ビデオゲームの初期コンテンツの各選択ポイントまたは他のブレークポイントまで待つ必要がある。選択したゲームにアクセスしてからプレイするまでの待ち時間は、グラフィックを多用するゲームでは、より長くなり得る。待つことにより、ユーザはゲームへの関心を失い、ゲームサイトとの対話を停止し、ゲーム開発者/ゲームサイトの所有者に潜在的な損失をもたらし得る。
本文脈の範囲内で、本発明の実施形態が生じる。
本開示の実施形態は、クラウドベースのビデオゲームを提供するために使用される方法及びシステムを提供する。
いくつかの実施態様によれば、以下の方法の操作を含む方法が提供される。すなわち、クラウドビデオゲームを開始するための第1のコマンドをクライアントデバイスで受信することと、第1のコマンドを受信したことに応答して、クライアントデバイスによって、クラウドビデオゲームのための初期コンテンツをクライアントローカルストレージから取得することと、初期コンテンツをクライアントデバイスに接続されたディスプレイデバイスにレンダリングすることであって、レンダリングされた初期コンテンツが、クラウドビデオゲームのインタラクティブゲームプレイコンテンツをレンダリングする前に、レンダリングされるように構成されたクラウドビデオゲームのためのコンテンツを定義する、レンダリングすることと、さらに、第1のコマンドを受信したことに応答して、クラウドビデオゲームにアクセスするためにクライアントデバイスからクラウドゲームサービスに第1の要求を送信することであって、クラウドゲームサービスが、第1の要求を受信したことに応答して、クラウドビデオゲームを実行するように構成されたゲーム機にクライアントデバイスを割り当て、実行中のクラウドビデオゲームによって生成されたインタラクティブゲームプレイコンテンツのストリーミングをクライアントデバイスに準備するように構成される、第1の要求を送信することと、クラウドビデオゲームのインタラクティブゲームプレイを開始するための第2のコマンドをクライアントデバイスで受信することと、第2のコマンドを受信したことに応答して、クライアントデバイスからクラウドゲームサービスに第2の要求を送信することであって、クラウドゲームサービスが、第2の要求を受信したことに応答して、実行中のクラウドビデオゲームによって生成されたインタラクティブゲームプレイコンテンツのクライアントデバイスへのストリーミングを開始するように構成される、第2の要求を送信すること、である。
いくつかの実施様態では、レンダリングされた初期コンテンツは、クラウドビデオゲームのゲームプレイコンテキスト内のユーザの進行状況または達成レベルには影響を与えない。
いくつかの実施様態では、レンダリングされた初期コンテンツは、法的情報の列挙、ロゴ提示、スプラッシュ画面、ローディング画面、レーティング画面、メニューのうちの1つまたは複数を定義する。
いくつかの実施様態では、レンダリングされた初期コンテンツは、クラウドビデオゲームのためのユーザ定義の入力を提供するように構成されたインターフェースデバイスのための構成手順を定義する。
いくつかの実施様態では、インタラクティブゲームプレイコンテンツのクライアントデバイスへのストリーミングは、クライアントデバイスによるレンダリングのための、クラウドゲームサービスからクライアントデバイスへのビデオストリーム及びオーディオストリームの転送によって定義される。
いくつかの実施様態では、クラウドゲームサービスは、保存されたゲームデータにアクセスし、保存されたゲームデータに従って実行中のクラウドビデオゲームの状態を定義することによって、インタラクティブゲームプレイコンテンツのストリーミングを準備するように構成される。
いくつかの実施態様によれば、以下の方法の操作を含む方法が提供される。すなわち、クラウドビデオゲームを開始するための第1のコマンドをクライアントデバイスで受信することと、第1のコマンドを受信したことに応答して、クライアントデバイスによって、クラウドビデオゲームのための初期コンテンツをクライアントローカルストレージから取得することと、初期コンテンツをディスプレイデバイスにレンダリングすることと、さらに、第1のコマンドを受信したことに応答して、クラウドビデオゲームにアクセスするためにクライアントデバイスからクラウドゲームサービスに第1の要求を送信することであって、クラウドゲームサービスが、第1の要求を受信したことに応答して、クラウドビデオゲームを実行し、実行中のクラウドビデオゲームによって生成されたインタラクティブゲームプレイコンテンツのストリーミングをクライアントデバイスに準備するように構成される、第1の要求を送信することと、クラウドビデオゲームのインタラクティブゲームプレイを開始するための第2のコマンドをクライアントデバイスで受信することと、第2のコマンドを受信したことに応答して、クライアントデバイスからクラウドゲームサービスに第2の要求を送信することであって、クラウドゲームサービスが、第2の要求を受信したことに応答して、実行中のクラウドビデオゲームによって生成されたインタラクティブゲームプレイコンテンツのクライアントデバイスへのストリーミングを開始するように構成される、第2の要求を送信すること、である。
いくつかの実施様態では、レンダリングされた初期コンテンツは、クラウドビデオゲームのゲームプレイコンテキスト内のユーザの進行状況または達成レベルには影響を与えない。
いくつかの実施様態では、レンダリングされた初期コンテンツは、法的情報の列挙、ロゴ提示、スプラッシュ画面、ローディング画面、レーティング画面、メニュー、または、クラウドビデオゲームのためのユーザ定義の入力を提供するように構成されたインターフェースデバイスのための構成手順のうちの1つまたは複数を定義する。
いくつかの実施様態では、インタラクティブゲームプレイコンテンツのクライアントデバイスへのストリーミングは、クライアントデバイスによるレンダリングのための、クラウドゲームサービスからクライアントデバイスへのビデオストリーム及びオーディオストリームの転送によって定義される。
いくつかの実施様態では、クラウドゲームサービスは、保存されたゲームデータにアクセスし、保存されたゲームデータに従って実行中のクラウドビデオゲームの状態を定義することによって、インタラクティブゲームプレイコンテンツのストリーミングを準備するように構成される。
いくつかの実施様態では、本方法は、さらに、第2のコマンドを受信することに応答して、クライアントデバイスへのインタラクティブゲームプレイコンテンツのストリーミングを開始することと、インタラクティブゲームプレイコンテンツとのユーザ対話機能から定義されたクライアントデバイスでユーザ入力を受信することと、実行中のビデオゲームによって処理するために、クライアントデバイスからクラウドゲームサービスにユーザ入力を転送することとをさらに含む。
いくつかの実施様態では、本方法は、さらに、ビデオゲームのゲームプレイを終了するための第3のコマンドをクライアントデバイスで受信することと、第3のコマンドを受信することに応答して、クライアントデバイスからクラウドゲームサービスに第3の要求を送信することと、クラウドゲームサービスが、第3の要求を受信することに応答して、クライアントローカルストレージに格納されている初期コンテンツへの更新が必要かどうかを判定するように構成され、更新されていれば、更新をクライアントデバイスに送信することとを含む。
本開示の実施様態によれば、以下の方法の操作を含む方法が提供される。すなわち、クラウドゲーム機によってクラウドビデオゲームを実行することであって、実行中のクラウドビデオゲームが、クライアントデバイスにストリーミングするためのビデオコンテンツを生成するように構成されている、クラウドビデオゲームを実行することと、クライアントデバイスにキャッシュされるように構成されたキャッシュ可能なビジュアルコンテンツを識別することとであって、キャッシュ可能なビジュアルコンテンツが、1つまたは複数のビジュアルアセットを含む、ビジュアルコンテンツを識別することと、ビデオコンテンツ及びキャッシュ可能なビジュアルコンテンツを含む混合データストリームをクライアントデバイスに送信することであって、クライアントデバイスが、キャッシュ可能なビジュアルコンテンツをクライアントキャッシュに格納するように構成され、クライアントデバイスが、ディスプレイにレンダリングするためのクライアント画像ストリームを定義するために、ビデオコンテンツをビジュアルアセットの1つまたは複数と組み合わせるようにさらに構成される、混合データストリームをクライアントデバイスに送信すること、である。
いくつかの実施様態では、実行中のクラウドビデオゲームは、クライアントキャッシュに格納されたビジュアルアセットを識別するように構成され、ビデオコンテンツを生成することが、生成されたビデオからクライアントキャッシュに格納されたビジュアルアセットを除外するように構成される。
いくつかの実施様態では、実行中のクラウドビデオゲームは、ビデオコンテンツと組み合わされるビジュアルアセットの1つまたは複数を識別する識別データを生成するように構成され、混合データストリームは識別データを含む。
いくつかの実施様態では、識別データは、ビジュアルアセットの1つまたは複数がビデオコンテンツに挿入される、ビデオコンテンツの画像フレーム内の空間的または時間的位置をさらに定義する。
いくつかの実施様態では、キャッシュ可能なコンテンツを識別してクライアントデバイスに送信することが、クラウドビデオゲームのゲームプレイの完了が所定の閾値を超えたと判定することに応答する。
本発明の他の態様及び利点は、本発明の原理を例示により示す添付の図面と関連した、以下の詳細な説明から明らかになるであろう。
本発明は、そのさらなる利点と共に、添付の図面と関連した以下の説明を参照することによって最もよく理解されるであろう。
本発明の一実施形態による、ゲームコンテンツをクラウドゲームサーバにプリロードするために使用される例示的なシステムの簡略ブロック図を示す。
本開示の実施様態による、クラウドビデオゲームをクライアントデバイスにストリーミングするために実行される様々な動作を概念的に示すフロー図である。
本開示の実施様態による、ローカルアプリケーションのクイックスタート機能を有するクラウドゲームのためのシステムを概念的に示す。
本開示の実施様態による、キャッシュ最適化クラウドゲームを提供するためのシステムを示す。
本開示の実施様態による、クラウドゲームサービスからのローカルキャッシュ最適化クラウドビデオゲームのストリーミングを提供するためのデータの流れを概念的に示す。
本開示の実施様態による、ローカルアプリケーションのクイックスタート機能を提供するための方法を示す。
本開示の実施様態による、ローカルアプリケーションのクイックスタート機能を提供するための方法を示す。
本開示の実施様態による、既存の従来のゲームストリーミングセットアップの帯域幅使用率を、クライアントキャッシュを採用するものと比較する、データ帯域幅対時間を示すグラフである。
本発明の一実施形態による、ネットワークを介して地理的に分散され、接続されているユーザに情報コンテンツ及びサービスを配信するための例示的な情報サービスプロバイダアーキテクチャを示す。
本発明の一実施形態による、ユーザに提示されるコンテンツを制御するために使用されるコンピューティングデバイスの例示的なコンポーネントを示す図である。
以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細が述べられている。しかしながら、本発明は、これらの具体的な詳細の一部または全部を用いずに実施し得ることは、当業者には明らかであろう。他の例では、本発明を不明瞭にしないために、周知の処理工程を詳細には説明していない。
ゲームタイトルのユーザ要求が受信されると、クラウドゲームサイトに関連付けられたデータセンター内のサーバ(複数可)によっていくつかの操作が実行される。クラウドゲームサイトがユーザ要求を受信すると、選択されたゲームタイトルに関連するゲームをホストするデータセンターが識別され、選択されたゲームタイトルのゲームをインスタンス化するため、要求が識別されたデータセンターに送信される。要求に応答して、データセンターのサーバは、ゲームコードを識別し、識別されたゲームコードをロードし、ゲームコンテンツをユーザに提示するための準備のためにゲームコードに関連するファイルを初期化する。ゲームに関連するゲームデータには、汎用ゲームデータ及びユーザ固有のゲームデータが含まれる。したがって、ファイルの初期化には、汎用ゲームデータ及びユーザ固有のゲームデータを識別し、ロードし、初期化することが含まれる。汎用ゲームデータの初期化には、グラフィックスエンジンの初期化、グラフィックスデータのインストール、サウンドファイルの初期化、アートワークのインストールなどが含まれ得る。ユーザ固有のデータの初期化には、ユーザデータ、ユーザ履歴、ゲーム履歴などの検索及びインストールが含まれ得る。汎用ゲームデータのロードは、ゲームの複雑さ/ゲームのグラフィックスに応じて、数秒から数分かかり得る。
汎用ゲームデータがロードされ、初期化されている間に、クライアントデバイスでレンダリングするための「スプラッシュ」画面が提供され得る。スプラッシュ画面は、ユーザがロードされているゲームの種類のプレビューをすることができるように、ロードされているゲームの代表的な画像を提供するように設計し得る。汎用ゲームデータがロードされると、オーディオコンテンツがレンダリングされ、選択/ナビゲーション画面がユーザの選択/カスタマイズのために提示され得る。選択/ナビゲーション画面で提供されるユーザ選択入力は、ゲームレベル選択、ゲームアイコン(複数可)選択、ゲームモード選択、ゲーム獲得物、追加のゲームコンテンツのアップロードを必要とし得る他のユーザ関連データを含み得る。ユーザ選択入力のアップロードは、ゲームプレイのためにユーザにゲームコンテンツが使用可能になる前に、さらなる遅延を引き起こす可能性がある。いくつかの実施形態では、ゲームコンテンツは、ゲームクラウドシステムからユーザのコンピューティングデバイスにストリーミングすることによって、視聴及び対話することが可能になる。ユーザ固有のデータをロードした後、ゲームコンテンツはゲームプレイに使用可能になる。
図1Aは、クラウドゲームサイトを通じて使用可能なゲームのゲームファイルをロードするために使用される例示的なシステムを示す。システムは、インターネットなどのネットワーク102を介してクラウドゲームサイト104に通信可能に接続された複数のクライアントデバイス100を含む。クラウドゲームサイト104にアクセスする要求がクライアントデバイス100から受信されると、クラウドゲームサイト104は、ユーザデータストア108に格納されたユーザアカウント情報106にアクセスして、要求が開始されるクライアントデバイスに関連付けられたユーザを識別する。いくつかの実施形態では、クラウドゲームサイトはまた、ユーザが視聴/プレイすることが許可されているすべてのゲームを判定するために、識別されたユーザを検証し得る。ユーザアカウント識別/検証に続いて、クラウドゲームサイトは、ゲームタイトルデータストア110にアクセスして、要求を開始するユーザアカウントのゲームクラウドサイトで使用可能なゲームタイトルを識別する。ゲームタイトルデータストア110は、次に、ゲームデータベース112と対話して、クラウドゲームサイトで使用可能なすべてのゲームのゲームタイトルを取得する。新しいゲームが導入されると、ゲームデータベース112がゲームコードで更新され、ゲームタイトルデータストア110に、新たに導入されたゲームのゲームタイトル情報が提供される。要求が開始されたクライアントデバイスは、要求が開始されたときにクラウドゲームサイトに登録されてもされなくてもよい。要求を開始するクライアントデバイスのユーザが登録ユーザでない場合、クラウドゲームサイトは、新しいユーザとしてユーザを識別し、新しいユーザに適したゲームタイトル(例えば、ゲームタイトルのデフォルトセット)を選択し得る。識別されたゲームタイトルは、図1Aに示すように、ディスプレイ画面100−a上に提示するためにクライアントデバイスに返される。
クライアントデバイス上でレンダリングされたゲームタイトルのうちの1つでユーザインタラクションが検出されると、信号がクラウドゲームサイトに送信される。信号には、ユーザインタラクションが検出されたゲームタイトル情報及びゲームタイトルに登録されたユーザインタラクションが含まれる。クライアントデバイスから受信された信号に応答して、クラウドゲームサイトは、ゲームがホストされているデータセンターを事前に判定し、識別されたデータセンターに信号を送信して、ユーザインタラクションが検出されたゲームタイトルに関連するゲームをロードする。いくつかの実施形態では、複数のデータセンターがゲームをホストし得る。そのような実施形態では、クラウドゲームサイトは、要求を開始するクライアントデバイスの地理的位置を判定し、クライアントデバイスに地理的に近いデータセンターを識別し、データセンターに信号を送信し、ゲームをプリロードする。ユーザの地理的位置は、クライアントデバイス内の全地球測位システム(GPS)機構、クライアントのIPアドレス、クライアントのping情報などを使用して判定し得る。もちろん、ユーザの地理的位置を検出する前述の方法は例示的なものであり得て、他の種類の機構またはツールを使用してユーザの地理的位置を判定し得る。クライアントデバイスに近いデータセンターを識別することで、ゲームとのユーザインタラクション中の待ち時間を最小限に抑えることができる。いくつかの実施形態では、識別されたデータセンターは、ゲームをホストするために必要な帯域幅/容量を有し得ないか、または過度に使用され得る。これらの実施形態では、クラウドゲームサイトは、クライアントデバイスに地理的に近い第2のデータセンターを識別し得る。ゲームのロードには、ゲームコードのロード及びゲームのインスタンスの実行が含まれる。
クラウドゲームサイトから信号を受信することに応答して、識別されたデータセンターは、データセンターでサーバを選択して、サーバ上でゲームをインスタンス化し得る。サーバは、使用可能なハードウェア/ソフトウェア機能及びゲーム要件に基づいて選択される。サーバは、複数のゲームコンソールを含み得て、サーバは、ゲームをロードするために使用する複数のゲームコンソールのいずれかを決定し得る。ゲームコンソールは、独立したゲームコンソールと同様であり得て、ラックマウント型サーバまたはブレードサーバであり得る。ブレードサーバは、ゲームなどの単一の専用アプリケーションをインスタンス化するために必要な回路を有する各ブレードを備えた複数のサーバブレードを含み得る。もちろん、上述したゲームコンソールは例示的なものであり、限定的なものではない。ゲームステーションなどを含む他の種類のゲームコンソール、及び他の形態のブレードサーバもまた、識別されたゲームをホストするために使用し得る。
ゲームコンソールが識別されると、ゲームの汎用ゲーム関連コードがゲームコンソールにロードされ、ゲームがインスタンス化されているゲームコンソールを識別するネットワークを介して、クラウドゲームサイト経由でクライアントデバイスに信号が返される。したがって、ロードされたゲームがユーザに使用可能となる。
図1Bは、本開示の実施様態による、クラウドビデオゲームをクライアントデバイスにストリーミングするために実行される様々な動作を概念的に示すフロー図である。ゲームシステム118は、ビデオゲームを実行し、生の(非圧縮の)ビデオ120及びオーディオ122を生成する。例示した図の参照番号124で示すように、ビデオ120及びオーディオ122は、ストリーミング目的のためにキャプチャされ符号化される。符号化は、ビデオ及びオーディオストリームの圧縮を提供し、帯域幅の使用量を減らし、ゲーム体験を最適化することができる。符号化形式の例としては、H.265/MPEG−H、H.264/MPEG−4、H.263/MPEG−4、H.262/MPEG−2、WMV、VP6/7/8/9などがある。
符号化されたオーディオ126及び符号化されたビデオ128は、インターネットなどのネットワークを介した転送のために、参照番号132で示されるように、ネットワークパケットにさらにパケット化される。ネットワークパケット符号化処理はまた、データ暗号化処理を採用することができ、それによって、強化されたデータセキュリティを提供する。図示された実施様態では、オーディオパケット134及びビデオパケット136は、参照番号140に示すように、ネットワークを介した転送のために生成される。
ゲームシステム118は、触覚フィードバックデータ130をさらに生成し、触覚フィードバックデータ130も、ネットワーク転送のためにネットワークパケットにパケット化される。図示された実施態様では、触覚フィードバックパケット138は、参照番号140でさらに示されるように、ネットワークを介した転送のために生成される。
転送のために、生のビデオ及びオーディオ、ならびに触覚フィードバックデータを生成し、ビデオ及びオーディオを符号化し、符号化されたオーディオ/ビデオ及び触覚フィードバックデータをパケット化する前述の動作は、クラウドゲーミングサービス/システムを集合的に定義する1つまたは複数のサーバ上で実行される。参照番号140に示すように、オーディオ、ビデオ、及び触覚フィードバックパケットは、インターネットなど及び/またはインターネットを含む、ネットワークを介して転送される。参照142に示すように、オーディオパケット134、ビデオパケット136、及び触覚フィードバックパケット138は、クライアントデバイスで符号化されたオーディオ146、符号化されたビデオ148、及び触覚フィードバックデータ150を定義するために、クライアントデバイスによって復号化/再構成される。データが暗号化されている場合、ネットワークパケットも復号化される。符号化されたオーディオ146及び符号化されたビデオ148は、参照番号144で示すように、クライアントデバイスによって復号化され、ディスプレイデバイス152上にレンダリングするためのクライアント側の生のオーディオ及びビデオデータを生成する。触覚フィードバックデータ150は、触覚効果をレンダリングすることができるコントローラデバイス156または他のインターフェースデバイスで触覚フィードバック効果を生成するために処理/伝達することができる。触覚効果の一例は、制御デバイス156の振動または低周波雑音である。
ビデオゲームはユーザの入力に応答し、したがって、ユーザ入力の転送及び処理のための手順フローは、上述したものと同様であるが、クライアントデバイスからサーバへの逆方向に実行できることが理解されるであろう。図示されているように、コントローラデバイス156を操作するユーザは、入力データ158を生成し得る。この入力データ158は、ネットワークを介してクラウドゲームシステムに転送するために、クライアントデバイスでパケット化される。入力データパケット160は、サーバ側で入力データ162を定義するために、クラウドゲームサーバによって解凍され、再構成される。入力データ162は、ゲームシステム118に供給され、ゲームシステム118は入力データ162を処理して、ビデオゲームのゲーム状態を更新する。
オーディオパケット134、ビデオパケット136、及び触覚フィードバックパケット138の転送中(参照番号140)、ネットワークを介したデータの転送を監視して、クラウドゲームストリームのサービス品質を保証することができる。例えば、参照番号164によって示されているように、アップストリーム及びダウンストリームの両方のネットワーク帯域幅を含む、ネットワーク状態を監視することができ、使用可能な帯域幅の変化に応じてゲームストリーミングを調整することができる。すなわち、ネットワークパケットの符号化及び復号化は、参照番号166によって示されているように、現在のネットワーク状態に基づいて制御することができる。
図2は、本開示の実施様態による、ローカルアプリケーションのクイックスタート機能を有するクラウドゲームのためのシステムを概念的に示す。ユーザ226は、クラウドゲームサービスにアクセスするように構成されたクライアントデバイス100と対話する。ユーザ226は、コントローラデバイス156を操作して、クライアントデバイス100への入力を生成及び提供し得る。さらに、クライアントデバイス100は、ディスプレイデバイス152にコンテンツをレンダリングするように構成することができる。いくつかの実施様態では、ディスプレイデバイス152はヘッドマウントディスプレイにすることができることが理解されるであろう。
クライアントデバイスは、ネットワーク102を介してクラウドゲームサーバ104と通信し、クラウドゲームサーバ104は、ユーザのクラウドゲームアカウントへのアクセスを提供する。クラウドゲーミングサーバ104は、ユーザアカウントストレージ106からユーザデータ204を取得し、図示の実施形態では、ユーザデータ204はユーザ226に固有である。一例として、ユーザデータ204は、ユーザによるゲームプレイのための使用可能なゲームタイトルであるタイトル206などの様々なクラウドゲーム関連データを含むことができる。これらは、ユーザが購入した、レンタルした、借用した、授与された、またはそれ以外の方法でゲームプレイのためにアクセス権を取得したゲームタイトルであり得る。ユーザデータはまた、ゲームセーブデータ208、トロフィー210、統計212、ソーシャルデータ214(例えば、ソーシャルグラフデータを含む)、及び履歴データ216(例えば、ユーザアクセス履歴、ゲームプレイ履歴など)を含み得る。
ユーザ226が、ユーザがアクセス許可を有する所与のクラウドビデオゲームをプレイしたい場合、ユーザは、ディスプレイ152上のクライアントデバイス100によって提示されるグラフィカルユーザインターフェース(GUI)上でビデオゲームの選択を指示し得る。ゲームプレイのビデオゲームが選択されると、クライアントデバイス100からクラウドゲームサーバ104にゲーム要求が転送される。ゲーム要求は、ユーザがプレイしたいゲームタイトルを識別し得る。ゲーム要求を受信したことに応答して、クラウドゲームサーバ104は、クラウドゲーム機118をアクティブ化して、要求されたビデオゲームのタイトルをインスタンス化する。すなわち、クラウドゲーム機118は、要求しているクライアントデバイス100に割り当てられ、要求されたビデオゲームタイトルの実行を開始する。
クラウドゲームサーバ104に対するクライアントデバイス100によるゲーム要求の通信と同時に、クライアントデバイス100は、ローカルストレージ232から初期コンテンツ234のレンダリングも開始する。初期コンテンツプレゼンタ236は、初期コンテンツ234による検索、レンダリング、及びインタラクティビティを管理する。初期コンテンツ234は、要求されたビデオゲームに対して固有にすることができ、ビデオゲームのインタラクティブゲームプレイの開始前にユーザに提示され得る任意のゲーム関連コンテンツを含み得る。
本開示の目的のために、インタラクティブゲームプレイとは、ビデオゲームの競争的/物語的な文脈の中で、実質的にユーザの進行を直接進めることができる、ユーザと実行中のビデオゲームとの間の双方向性を指すものとする。したがって、ビデオゲームのインタラクティブゲームプレイには、スタートアップ画像/ビデオ、スプラッシュ/ローディング画面またはビデオ、法的情報画面、ゲーム設定(例えば、コントローラ設定、ゲーム難易度、ビデオ設定、オーディオ設定など)へのアクセスまたは設定、ゲーム選択メニュー(例えば、保存されたゲーム選択、ゲームレベル選択、ゲームタイプ選択(例えば、アーケード、キャンペーン)など)、及び/またはビデオゲームの競争的または物語的な文脈の中でユーザの進行を直接進めることができない他の種類のゲーム関連コンテンツまたはインタラクティブ機能などの他の種類のコンテンツレンダリングまたはゲーム関連インタラクションは含まれない。
前述のように、ビデオゲームの初期コンテンツ234は、インタラクティブゲームプレイの開始前に提示されるコンテンツを含む。初期コンテンツ234は、ロゴ画面、スタートアップ/スプラッシュ画面(画像またはアニメーション/ビデオ)、法的情報/免責事項画面、周辺デバイス構成メニュー、機能設定メニューなどのコンテンツを含むことができる。初期コンテンツ234は、ローカルストレージ232からローカルにアクセス可能であるため、初期コンテンツ234のレンダリングは、すぐに行われることができ、非常に高速なシステムでは実質的に即時または瞬時に行い得る。ユーザは、ビデオゲームのコンテンツがディスプレイデバイス152にレンダリングされる前に、クラウドゲームシステムが、クライアント100のゲーム機118を提供/割り当てし、割り当てられたゲーム機118に適切なビデオゲームコードをロードし、ビデオゲームコードの実行を開始し、及び/またはクライアント100へのストリーミングを開始するのを待つ必要はない。これにより、クラウドゲームシステムは、ゲームストリーミングのためにゲーム機118を準備しながら、ビデオゲームへのローカルクイックスタートを提供する。したがって、ユーザには、不十分なクラウドゲーム体験と感じてしまうクラウドゲームシステムの動作を待つことを強要させるのではなく、使用して楽しむための初期コンテンツが提供される。
ゲーム機118は、ゲームタイトルデータストア110から要求されたゲームタイトルコードを取得し、そのゲームタイトルコードを実行して、実行するビデオゲームを定義する。ゲーム機118からの生のビデオ/オーディオ出力は、ストリーミングサーバ220に供給され、ストリーミングサーバ220は、生のビデオ/オーディオを、ストリーミングのために圧縮フォーマットに符号化する。上述のように、符号化されたオーディオ及びビデオは、ネットワーク通信プロトコルに従ってネットワーク102を介して転送することができる。クライアントデバイス224のストリーミングロジック238は、ディスプレイ152にレンダリングするために、受信したストリーミングオーディオ/ビデオを処理する。
ローカルストレージ232の初期コンテンツ234の提示から、ストリーミングサーバ220を介したクラウドベースのゲーム機118のストリーミングビデオゲームの提示までの移行が行われることが理解されるであろう。いくつかの実施様態では、ゲーム機118でのビデオゲームの実行は、ある時点に達するまで進行し、その時点でビデオゲームはクライアントデバイス100へのビデオゲームのストリーミングを開始するためのトリガを待つ。いくつかの実施様態では、ストリーミングを開始するためのトリガは、クライアントデバイス100で受信したユーザ入力から定義し得る。例えば、ユーザは、ボタンを押すか、コントローラ156を介して他の何らかの入力を提供して、ストリーミングを開始し得る。
コンテンツのローカル実行/提示からコンテンツのクラウドストリーミングへの移行は、円滑なユーザ体験を提供するように構成することができる。ゲーム機118によるビデオゲームの実行は、クライアントデバイスでの初期コンテンツの提示に同期させることができる。ゲーム機118は、初期コンテンツの提示に関してクライアントデバイス224からステータス更新を受信し得て、クラウドゲーム機118によるビデオゲームの実行は、初期コンテンツ234の提示と同期するように調整することができ、したがって、クラウドストリーミングへの円滑な移行が可能になる。いくつかの実施様態では、ローカルコンテンツからストリーミングコンテンツへの移行は、ユーザ入力を必要とせずに自動的に行われるが、他の実施様態では、ユーザ入力に応じて移行が行われることが理解されるであろう。
初期コンテンツのレンダリングからクラウドのビデオゲームのストリーミングへの移行は、ゲーム全体の提示の様々な時点で行われ得る。例えば、スプラッシュ画面(画像/アニメーション/ビデオ)のレンダリング、またはユーザによるアクティブな選択もしくは入力を必要とするメニューまたは他のコンテンツのレンダリングに続いて、移行が行われ得る。後者の概念では、ユーザ選択(例えば、メニュー項目またはオプションの選択)または入力は、ゲーム機118で実行中のビデオゲームに伝達することができ、ゲーム機118は、レンダリングされる次のコンテンツを判定するために選択/入力を処理し得る。いくつかの実施様態では、レンダリングされる次のコンテンツは、別のスプラッシュ画面またはメニューであり、したがって、初期コンテンツのローカル実行からクラウドビデオゲームストリーミングへの移行は、インタラクティブゲームプレイの開始前に提示される画面/メニュー間で行われる。いくつかの実施様態では、クラウドゲーム機118は、いくつかの画面のうちのどれがクライアントデバイス224に提示されているかに関する状態の更新を受信することができ、ゲーム機118は、クライアントデバイス224にストリーミングされる次の画面を実行して、レンダリングするように指示することができる。
いくつかの実施様態では、単一コンテンツ画面の提示中に移行が行われる。例えば、初期コンテンツ234は、連続して提示される複数の画面を含むことができる。画面のローカル提示中に、クラウドゲーム機118は、どの画面が提示されているかを示す状態の更新を受信することができ、クラウドゲーム機118は、クライアントデバイス224によって現在提示されている画面と同じ画面を実行してレンダリングするように指示することができる。したがって、ストリーミングへの移行は、現在の画面の提示中に行われる可能性があり、ユーザに対してシームレスに表示され得る。いくつかの実施様態では、画面コンテンツの画像/ビデオ部分は最初にストリーミングに移行されるが、オーディオは次の画面の提示まで移行されない。いくつかの実施様態では、オーディオは、オーディオクリップのループ再生によって定義され、オーディオ再生がクリップの終わりに達すると、(ビデオとオーディオの両方の、またはオーディオのみの)移行が行われ得る。このような構成は、オーディオ提示の可聴中断を回避することができる。
いくつかの実施様態では、ビデオゲームのストリーミングを開始するためのトリガは、ビデオゲームのインタラクティブゲームプレイの開始もトリガする。例えば、開始コンテンツは、実際のインタラクティブなゲームプレイを開始する前に、ユーザに提示されるビデオゲームのすべてのコンテンツを含むことができる。次に、インタラクティブゲームプレイを開始する時点で、クライアントデバイス100は、ローカルに格納されたコンテンツを提示することから、クラウドベースのストリーミングコンテンツを提示することに移行する。さらに、ユーザ選択または他のユーザ入力などの初期コンテンツとのユーザインタラクションが、実行中のビデオゲームに伝達できることが理解されるであろう。このようにして、ローカルに格納されたコンテンツとの対話を使用して、クラウドベースのビデオゲームを実行させることができる。例えば、ユーザはメニュー選択を指示し得て、これはゲーム機118上で実行中のビデオゲームに伝達される。ただし、メニューの提示は、ローカルストレージ232からのものであり、メニューからのユーザ選択に続いて、ユーザ選択はゲーム機118に(例えばクラウドゲームサーバ104を介して)伝達され得て、ゲーム機118はユーザ選択を処理し得る。クライアントデバイス100はまた、ストリーミングサーバ220を介してゲーム機118からユーザ選択の結果を(例えば、ビデオゲームのインタラクティブゲームプレイを開始するために)ストリーミングすることに移行し得る。
当業者によって理解されるように、実行中のビデオゲームは、入力を受信し、入力を処理してビデオゲームのゲーム状態を更新するゲームエンジンを定義し得る。いくつかの実施様態では、ビデオゲームのゲームエンジンは、ゲーム機118で初期化され、初期コンテンツ234は、クライアントデバイスで提示される。ゲームエンジンは、ゲーム機がゲームエンジンの実行を継続するためのトリガを待機するとき、初期化されて一時停止状態に入り得る。ユーザ入力から定義することができるトリガを受信すると、一時停止状態が終了し、その結果、ゲームエンジンが実行され、ビデオゲームのインタラクティブゲームプレイが開始される。
いくつかの実施様態では、クライアントデバイス224は、初期コンテンツ234の提示に関して、状態の更新をクラウドゲームシステムに伝達するように構成することができる。そのような状態の更新は、初期コンテンツの提示の現在の状態を識別する情報、及びユーザ入力/選択/ナビゲーションを含むことができる。このような状態の更新に応答して、ゲーム機118によるビデオゲームの実行は、ビデオゲームの文脈内で様々なオプションのいずれかを実行するように指示することができる。したがって、クライアントデバイス224による初期コンテンツ234のレンダリングからストリーミングサーバ220のビデオゲームのストリーミングまでの間の移行は、円滑なユーザ体験を提供するために管理及び同期させることができる。
いくつかの実施様態では、多くの場合、ユーザは通常、最後に保存した場所からゲームプレイを続けることを望むため、ゲーム機でのゲームエンジンの初期化は、ユーザの最後に保存したゲームデータを自動的にロードするように構成することができる。ユーザが、最後に保存したゲームのゲームプレイを続けたいことを指示する(例えば、ナビゲーション/ゲームの選択/オプションによって)間もなく、ユーザの最後に保存したゲームデータのこの自動的なロードを先制的に行うことができることが理解されるであろう。これは、クラウドベースのゲーム機が最終的なインタラクティブゲームプレイのためにゲームエンジンを初期化している間に、クライアントデバイスが初期コンテンツを処理してレンダリングする処理の分割によって可能になる。したがって、ここで説明した構成は、各ローカルクライアントデバイス100及びクラウドベースのゲーム機118がそれぞれ、ローカルデバイスによる初期コンテンツの順次ロードと、それに続く保存したゲームのロードを並列に処理するため、ユーザは待たされることがなくなり、従来のコンソールゲームのゲーム体験さえも超える利点を提供する。
いくつかの実施様態では、クラウドゲームサーバ104は、ユーザのゲームプレイ履歴に基づいて、所与のビデオゲームに対して最後に保存したゲームを先制的にロードするかどうかを判定するように構成することができる。例えば、いくつかの実施様態では、システムは、ビデオゲームのユーザの最後のゲームプレイセッション中に、ユーザが前回最後に保存したゲームをロードした場合、ユーザの最後に保存したゲームを自動的にロードするように構成され得る。関連する実施様態では、システムは、最後のゲームプレイセッションからの経過時間が閾値時間より短く、ユーザのビデオゲームの最後のゲームプレイセッション中に、ユーザが前回最後に保存したゲームをロードした場合、ユーザの最後に保存したゲームを自動的にロードするように構成し得る。他の実施様態では、システムは、ソーシャルネットワーク活動、時間帯、最後のゲームプレイからの時間の長さ、ビデオゲームの保存されたゲームと保存されていないゲーム(例えば、アーケード、マルチプレーヤー)とのゲームプレイの相対的な量などの、様々な要因に基づいてユーザの最後に保存したゲームを自動的にロードするかどうかを判定するように構成され得る。
図示された実施様態では、インタラクティブゲームプレイ中、ゲーム機118はゲームエンジンを実行して、ビデオ及びオーディオデータのフル非圧縮ストリームを生成する。ストリーミングサーバ220は、フルビデオ及びオーディオデータストリームを受信し、それらをネットワーク102を介してクライアントデバイス100に転送するために処理する。処理は、ビデオ及びオーディオデータを圧縮フォーマットに符号化し、圧縮データを暗号化し、転送用のネットワークプロトコルに従ってデータをパケット化することが必要となり得る。クライアントデバイス100は、転送されたデータを受信し、ネットワークパケットを再構成し、ディスプレイ/HMD152及びオーディオデバイス(ディスプレイ152の一部であり得る)にレンダリングするために、圧縮されたビデオ/オーディオデータを復号して解読する。
上述の実施様態では、ストリーミングサーバは、フルビデオ及びオーディオストリームの圧縮バージョンをクライアントデバイス100にストリーミングする。いくつかの実施様態では、以下にさらに詳細に説明するように、ストリーミングサーバ220は、他の方法でも最適化されたフルビデオ及びオーディオストリームのバージョンをストリーミングするように構成され得る。説明するように、ストリーミングされたビデオ及びオーディオは、ゲームのストリーミングに必要な帯域幅が少なくなるように、または、ストリーミングされたビデオ及びオーディオの残りの部分を、より高い忠実度(例えば、より高いフレームレートまたはサンプルレート、より高い解像度など)でストリーミングし得るように、後にクライアント100で供給される特定のコンテンツ部分/アセットが残るように構成され得る。
図3は、本開示の実施様態による、キャッシュ最適化クラウドゲームを提供するためのシステムを示す。大まかに言って、図示されたシステムは、ビデオゲームの画像またはオーディオ部分がクライアントデバイスに格納され、ディスプレイ上にレンダリングする直前にクライアントデバイスでストリーミングされたビデオまたはオーディオと結合されるように構成され、それによって、ビデオゲームをストリーミングするのに必要な帯域幅を減少させる。クライアントデバイスに格納されている部分は、ゲームストリーミング及び/またはネットワーク状態に関する帯域幅使用率を監視することから決定されるように、使用可能な帯域幅がある時間帯にデバイスに転送することができる。
図示された実施様態では、ゲーム機118は、ゲームタイトルストレージ110に格納されているビデオゲーム(タイトルA)のキャッシュ最適化ゲームビルド300を実行する。キャッシュ最適化ゲームビルド300は、本明細書で説明されるキャッシュ最適化ゲームストリーミング機能を提供するように構成されたビデオゲームタイトルの特殊バージョンである。特に、キャッシュ最適化ゲームビルド300は、ビデオゲームの特定のビジュアルまたはオーディオコンポーネントを除外したビデオ及びオーディオデータストリームを出力するように構成可能であり、それによって、ビデオ及びオーディオデータストリームのデータサイズが低減する。
ゲーム機118でゲームビルド300を実行することにより、ゲーム状態を更新するために入力を受信して処理し、画像フレームデータ350及びオーディオデータ352を出力するゲームエンジン302を定義する。ゲームエンジン302は、出力する画像フレームデータ350またはオーディオデータ352から、任意に特定のビジュアルまたはオーディオコンテンツ/アセットを除外するように構成することができる。除外されたビジュアルアセットの場合、ゲームエンジン302は、除外されたビジュアルアセットを識別するビジュアルアセット識別子を生成し得て、画像フレームデータ内のその配置(その時間的位置及び空間的位置を定義する)、サイズ、方向、色(複数可)、明るさ/コントラスト、その他のビジュアル特性などの、その提示を制御するパラメータをさらに定義し得る。除外されたオーディオアセットの場合、ゲームエンジン302は、除外されたオーディオアセットを識別するオーディオアセット識別子を生成し得て、ボリューム、バランス/フェーダパラメータ、配置、等化パラメータなどの、その提示を制御するパラメータをさらに定義し得る。ビジュアル/オーディオアセット識別子は、画像フレームデータ350またはオーディオデータ352の一部として添付または含まれ得て、クライアントデバイス100で処理されたときに、どのビジュアルまたはオーディオアセットを画像/オーディオストリームと組み合わせるべきかを示すために役立つ。
ストリーミングサーバ220は、ゲーム機118によって生成された生の画像フレームデータ350及びオーディオデータ352を受信する。エンコーダ314は、画像フレームデータ350及びオーディオデータ352を圧縮されたビデオ/オーディオフォーマットで符号化する。暗号化モジュール316は、ネットワーク102を介した転送のために、圧縮されたビデオ/オーディオを暗号化する。ストリーミングサーバ220はまた、ビデオゲームのキャッシュデータ306を、ゲームキャッシュデータストレージ304からクライアントデバイス100に転送するように構成されている。キャッシュデータ306は、後にビデオ/オーディオストリームと組み合わせるためにクライアントデバイスに格納することができるビデオゲーム用に定義されたキャッシュ可能なコンテンツ/アセットである、ビジュアルコンテンツ/アセット308及び/またはオーディオコンテンツ/アセット310を含むことができる。したがって、ストリーミングサーバ220は、圧縮されたビデオ/オーディオならびにクライアントのキャッシュ可能なビジュアル及び/またはオーディオコンテンツ/アセットを含むことができる混合データストリーム354を送信する。暗号化モジュール316は、ネットワーク102を介した転送用の混合データストリーム354に含めるためにビジュアル/オーディオアセットを暗号化することもできることが理解されるであろう。
混合データストリーム354にビジュアル/オーディオアセットを含める特定のタイミングは、現在の帯域幅使用量及びネットワーク状態に基づいて決定することができる。いくつかの実施様態では、ストリーミングサーバ220は、混合データストリーム354のストリーミングによる現在の帯域幅の使用量を監視し、圧縮されたビデオ/オーディオストリームに加えてビジュアル/オーディオアセットをストリーミングするために使用可能な帯域幅が存在する時期を判定するように構成される。ストリーミングサーバ220は、ゲームストリーミング中に継続的に初期ネットワーク状態を判定し、ネットワーク状態を監視し得て、ネットワーク状態を現在の帯域幅の使用量と関連して参照し、存在する使用可能な帯域幅をいつでも判定し得る。
キャッシュされるビジュアル/オーディオのコンテンツ/アセットは、クライアントデバイスによるアプリケーション及びレンダリングの前に、クライアントデバイスにストリーミングされることが理解されるであろう。帯域幅使用率が比較的低い期間中、未使用の帯域幅を利用して、ビジュアル/オーディオアセットをクライアントデバイスにストリーミングすることができる。クライアントデバイスに格納された特定のビジュアル/オーディオアセットを追跡することができ、したがって、ゲームエンジンは、(クライアントに既にキャッシュされている)ビジュアル/オーディオアセットが、ゲームエンジンによって生成された生の画像フレームデータまたはオーディオデータに含まれないように構成することができる。
混合データストリーム354は、クライアントデバイス100で受信され、データストリームハンドラ328によって処理される。いくつかの実施様態では、データストリームハンドラ328は、混合データストリーム354に対して逆多重化機能を実行して、混合ビデオストリームから圧縮されたビデオ、圧縮されたオーディオ、及びビジュアル/オーディオアセットストリームを解析する。ビジュアル/オーディオアセットが混合データストリーム354で転送されるとき、キャッシュマネージャ326は、ビジュアル/オーディオアセットをクライアントキャッシュストレージ318に格納する。より具体的には、ビデオゲームのためのキャッシュデータ320の一部を定義するビジュアルコンテンツデータ322及び/またはオーディオコンテンツデータ324に格納する。
データストリームハンドラ328は、混合データストリーム354からビデオストリーム及びオーディオストリームも生成する(例えば、逆多重化及び/または解凍)。ビデオ及びオーディオストリームは、それぞれ、画像ストリームアセンブラ326またはオーディオストリームアセンブラ334に渡される。画像ストリームアセンブラ326は、画像フレームデータのどの部分がビデオストリーム内で除外されたかを判定し、これらの部分をクライアントキャッシュデータ320から取得したビジュアルコンテンツ/アセットで埋めるように構成される。いくつかの実施様態では、前述のビジュアルアセット識別子は、混合データストリームと一緒にまたは混合データストリームの一部として転送され、ビデオストリームに挿入/結合されるビジュアルアセット及び、それらの配置及び場合によっては他のビジュアルプロパティに関するパラメータを識別するために処理される。いくつかの実施様態では、マーカーがビデオストリーム自体に符号化され、マーカーは、追加されるビジュアルアセット及びビデオストリーム内のその場所を、空間的及び時間的の両方で識別する。
画像ストリームアセンブラ326は、完全に組み合わされたビデオストリームをビデオ信号発生器332に出力する。ビデオ信号発生器332は、完全に組み合わさられたビデオストリームを処理して、ディスプレイデバイス152でレンダリングするための正しいフォーマットで適切なビデオ信号を生成する。ディスプレイデバイス152は、図示されたシステムで別個のコンポーネントとして示されているが、一部の実施様態では、ディスプレイデバイス152は、クライアントデバイス100の一部として組み込まれる。
画像ストリームアセンブラ326と同様に、オーディオストリームアセンブラ334は、オーディオデータのどの部分がオーディオストリーム内で除外されたかを判定し、これらの部分をクライアントキャッシュデータ320から取得したオーディオコンテンツ/アセットで埋めるように構成される。いくつかの実施様態では、前述のオーディオアセット識別子は、混合データストリームと一緒にまたは混合データストリームの一部として転送され、ビデオストリームに挿入/結合されるオーディオアセット及び、それらの配置及び場合によっては他のオーディオプロパティに関するパラメータを識別するために処理される。いくつかの実施様態では、マーカーがオーディオストリーム自体に符号化され、マーカーは、追加されるオーディオアセット及びオーディオストリーム内のその場所を識別する。
オーディオストリームアセンブラ334は、完全に組み合わされたオーディオストリームをオーディオ信号発生器336に出力する。オーディオ信号発生器336は、完全に組み合わさられたオーディオストリームを処理して、オーディオデバイス340でレンダリングするための正しいフォーマットで適切なオーディオ信号を生成する。オーディオデバイス340は、図示されたシステムで別個のコンポーネントとして示されているが、一部の実施様態では、オーディオデバイス340は、クライアントデバイス100の一部として組み込まれる。さらに、いくつかの実装形態では、オーディオデバイス340は、ディスプレイデバイス152の一部として含まれる。
図4は、本開示の実施様態による、クラウドゲームサービス400からのローカルキャッシュ最適化クラウドビデオゲームのストリーミングを提供するためのデータの流れを概念的に示す。実行中のビデオゲーム302が示され、これは、ビデオゲーム用の変数のその時々の状態を定義するゲーム状態402を定義する。ビデオゲーム302を実行すると、現在の状態に基づいて、及びクライアントデバイス100から受信された入力データ418に基づいて、ゲーム状態402が継続的に更新されることが理解されるであろう。
ビデオゲーム302は、クラウドゲームサービス400を介して処理されると、混合データストリーム354を生成する。混合データストリーム354は、画像データ404と、オーディオデータ406と、キャッシュデータ408とを含む。図示の実施様態では、画像データ404は、例示的な画像フレーム410を定義する。画像フレーム410の部分412は、完全には定義されていない。すなわち、部分412は、画像フレームをストリーミングするために必要な帯域幅の量を減らすために、画像フレーム410に完全に定義/含まれるのではなく、クライアントデバイス100によって供給される。
キャッシュデータ408は、画像フレーム410などの画像データ404の画像フレームに挿入されるアセットを定義するデータを含む。キャッシュデータ408は、クライアントデバイス100によって受信され、混合データストリーム354から解析され、画像キャッシュデータ322の一部としてクライアントキャッシュストレージ318に格納される。図示された実施様態では、以前にクライアントデバイス100に転送されたビジュアルアセット414が、画像キャッシュデータ322から取得され、画像フレーム410に挿入され、以前に完全には定義されなかった部分412を定義する。得られる完成した画像フレームは、ディスプレイデバイス上に提示するための完全な画像ストリーム132の一部を形成する。
クライアントデバイス転送され、クライアントデバイスにキャッシュされるビジュアルアセットは、クラウドビデオゲームによって生成されたビデオストリームとは別に、別個に提供され得る画像、アイテム、オブジェクト、または他のビジュアルプロパティのいずれかの種類とすることができ、後にクライアントデバイスでビデオストリームの画像フレームに挿入されて、ディスプレイへのレンダリングのための完成した画像フレームを提供することが理解されるであろう。ビジュアルアセットは、ビデオストリームに提示されたときの外観が、現在のゲーム状態に基づいて変更されないという意味で静的な静的アイテムを含むことができる。これらは、例えば、インジケータ、エンブレム、トロフィー、バッジ、及び現在のゲームの状態に基づいて動的に外観が決定されない他の種類のビジュアルアイテムなどのアイテムを含み得る。例えば、能力、所有しているアイテム、他のユーザのキャラクタなど、キャラクタまたはゲームプレイの現在の状態をユーザに示す様々なビジュアルインジケータが存在し得る。別の例として、ユーザが車両を操縦する役割を担うビデオゲームは、車両の操縦席のビューを含み得る。操縦席内のビジュアルアイテムのいくつかは静的であり得て、ビデオゲームのインタラクティブゲームプレイが進行しているときでさえ、操縦席がユーザのゲームビューで表示されている間は不変であり得る。静的なビジュアルアセットは、変更せずにクライアントデバイスのビデオストリームに挿入することができる。
しかし、いくつかの実施様態では、ビジュアルアセットは、ゲーム状態条件に基づいて外観が少なくとも部分的に決定される動的ビジュアルアセットを含むことができることが理解されるであろう。例えば、ダイナミックビジュアルアセットは、現在のゲーム状態に基づいてクライアントデバイスによって、色、サイズ、向き、透明度、または他のビジュアルプロパティが変更され、ディスプレイにレンダリングする前にクライアントデバイスによってビデオストリームに挿入され得る。これを達成するために、ビデオストリームと共に変更データを転送して、ビデオストリームに挿入する前にビジュアルアセットで実行される特定の変更を示すことができる。
上記の説明と同様に、混合データストリーム354で配信されるオーディオデータ406は、オーディオキャッシュデータ324からオーディオアセットを追加され、オーディオデバイスを介して提示するための完成したオーディオストリーム130を定義することができる。オーディオアセットは、限定はしないが、サウンドエフェクト、バックグラウンドミュージック、録音済みオーディオクリップなどを含む、ビデオゲームによって利用される様々な種類のオーディオまたはサウンドのいずれかを含むことができる。クラウドゲームマシンによって生成されたオーディオと比較して、クライアントデバイスで生成/挿入される特定のオーディオは、異なる実施形態で変化し得ることが理解されるであろう。例えば、いくつかの実施様態では、バックグラウンドミュージック/オーディオが生成され、クライアントデバイスのオーディオストリームに追加される一方で、ユーザのリアルタイムインタラクティブゲームプレイによってトリガされるか、またはアクティブ化される他のサウンドエフェクトが、クラウドゲーム機によって生成される。1つの特定の実施様態では、すべてのサウンドは、クラウドゲーム機によって生成されたデータに基づいてクライアントデバイスで生成され、生成されるサウンド、そのようなサウンドのタイミング、及び、例えば、ボリューム、音質補正、指向性/音源などの任意の追加のオーディオ関連パラメータを識別する混合データストリーム内のクライアントデバイスによって受信される。
ビジュアル及びオーディオアセットを、予想される将来のゲーム状態を示し得る現在のゲーム状態に基づいて、クライアントデバイスに予測的または先制的に転送することができる。これは、例えば、ビデオゲームシーンの全景が変化し得るとき、シーンの変化時に起こり得る帯域幅使用率の急激な増加を緩和するのに役立つ。例えば、プレーヤー制御キャラクタが、シーンの変化が起こり得る物理的または時間的な場所の近くにいるか、またはその場所に向かって移動している場合、シーンの変化時に利用するクライアントデバイスにビジュアル/オーディオアセットを転送し得る。例えば、プレーヤーが自分のキャラクタをドアに向かわせて、ドアを開けるか通過するとシーンが変化する場合、ドアを開ける前に、ビジュアル/オーディオアセットは、シーンの変化中に利用されることを見越してクライアントに転送され得る。別の例では、ユーザがビデオゲームのレベルまたはシーンの完了に近づいているとき、ビジュアル/オーディオアセットは、次のレベル/シーンのストリーミング中に使用するために、レベル/シーンの完了前にクライアントデバイスに転送され得る。いくつかの実施様態では、シーン/レベルのユーザのゲームプレイの完了が所定の閾値を超えると、使用可能な帯域幅が許す限り、ビジュアル/オーディオアセットがクライアントデバイスに転送される。
クライアントデバイス100の入力処理モジュール416は、コントローラデバイスまたは他の入力デバイスからの入力を処理し、入力データ418を実行中のビデオゲーム302に転送するように構成される。ビデオゲーム302は、そのゲーム状態402を更新するために入力データ418を適用する。このゲーム状態に基づいて、予測される将来のゲーム状態が決定され、予測される将来のゲーム状態に基づいてクライアントデバイスへのビジュアル/オーディオアセットの転送を決定することができることが理解されるであろう。
図5は、本発明の一実施形態による、ローカルアプリケーションのクイックスタート機能を提供するための方法を示す。方法動作500では、ビデオゲームを開始する要求が、クラウドゲームサービスと通信しているクライアントデバイスで受信される。方法動作502では、これが、ゲームの最初の購入など、ゲームを要求する最初のインスタンスであるか、または更新が必要であるかどうかが判定される。その場合、方法動作504で、ビデオゲームの初期コンテンツがダウンロードされ、インストールされ、及び/または更新される。更新または追加のダウンロードが必要ない場合、またはそのようなダウンロード及びインストール/更新に続いて、方法動作506で、ビデオゲームの初期コンテンツがクライアントデバイスのローカルストレージからレンダリングされる。方法動作508では、レンダリングされた初期コンテンツに応答するユーザ入力及び/または選択がクライアントデバイスで処理され、方法動作510では、初期コンテンツのレンダリング状態が更新され、方法動作506に戻る。
一方、ビデオゲームにアクセスするための要求は、ユーザのゲーム所有権及び/または要求されたビデオゲームの購入を認証するクラウドゲームサービスに伝達される。方法動作518では、クラウドゲーム機は、要求されたビデオゲームを実行するように初期化され、ユーザのクラウドゲームセッションに割り当てられる。方法動作520では、クラウドゲーム機はビデオゲームを実行する。方法動作522では、ユーザ入力/選択は、実行中のビデオゲームによって処理されて、実行中のビデオゲームの状態を更新する。入力/選択は、初期コンテンツとのユーザインタラクションから定義することができる。
方法動作512では、クライアントデバイスは、ビデオゲームのストリーミングを開始することを要求及び/または待機する。方法動作524では、クラウドゲームサービスは、ビデオゲームのストリーミングビデオ/オーディオを生成して転送し、方法動作514では、ストリーミングビデオ/オーディオは、クライアントデバイスによって受信され、ユーザインタラクティビティのためにレンダリングされる。
図6は、本発明の一実施形態による、ローカルアプリケーションのクイックスタート機能を提供するための方法を示す。方法動作600では、ユーザは、方法動作612でクラウドゲームサーバによるユーザの認証を行うクライアントデバイスを介してクラウドゲームサービスにログインする。方法動作602では、ユーザはクライアントデバイスでビデオゲームを開始し、それに応答して、方法動作604では、ビデオゲームの初期コンテンツがクライアントデバイスのローカルストレージからロードされてディスプレイにレンダリングされる。
一方、方法動作614では、ビデオゲームを開始するためのユーザ要求に応答して、ゲーム機がユーザのクライアントデバイスに提供/割り当てられる。方法動作616では、ゲーム機に要求されたビデオゲームタイトルがロードされる。方法動作618では、ユーザ要求を予期して、またはユーザ要求に応答して、ユーザのアカウントの保存されたゲームデータがアクセスされ、ロードされる。
方法動作606では、クライアントデバイスのユーザから要求を受信し、インタラクティブゲームプレイを開始する。方法動作620では、インタラクティブゲームプレイがクラウドゲーム機によって実行される。方法動作622では、クラウドゲームサービスは、クライアントデバイスに転送されるビデオストリームを生成する。方法動作608では、ビデオストリームがクライアントデバイスによってレンダリングされる。方法動作610では、インタラクティブ入力がクライアントデバイスによって受信され、クラウドゲーム機で実行中のビデオゲームに転送される。実行中のビデオゲームは、インタラクティブ入力を処理してゲーム状態を更新し、更新されたゲーム状態に基づいて、参照番号622に示すようにビデオストリームが生成される。
図7は、本開示の実施様態による、既存の従来のゲームストリーミングセットアップの帯域幅使用率を、クライアントキャッシュを採用するものと比較する、データ帯域幅対時間を示すグラフである。曲線700は、ゲームストリーミングの使用可能な最大データ帯域幅を示す。曲線702は、既存の従来のゲームストリーミングセットアップの帯域幅使用率を示す。曲線704は、本明細書の他の箇所に記載されているように、クライアントのキャッシュ可能なコンテンツを組み込んだゲームストリーミングセットアップの帯域幅使用率を示す。時間T0では、曲線702に示される帯域幅使用率レベル706は、使用可能な帯域幅内にあり、したがって、ストリーミング品質の低下は、ユーザによって経験されない。しかし、時間T2では、帯域幅使用率を劇的に増加させるシーン遷移または他のイベントが発生する。帯域幅使用率は、使用可能な最大帯域幅700を超えるピークレベル708に上昇し、それによってビデオ/オーディオストリーミング品質が低下する可能性がある。時間T3では、帯域幅使用率は、使用可能な最大帯域幅内にあるレベル710に戻る。
曲線704は、本開示の実施様態に従って、クライアントキャッシングを採用するクラウドゲームセットアップのための帯域幅使用率を示す。時間T0から時間T1では、クライアントでキャッシュ可能なコンテンツを使用して、ビデオ/オーディオストリームの一部を提供するために、帯域幅使用率はレベル712であり、これは従来のセットアップの対応するレベル706より幾分低くなり得る。時間T1では、ユーザのゲームプレイが、より大きな帯域幅使用率を必要とするシーン遷移または他のイベントに近づいていると判定される。したがって、シーン遷移に使用されるキャッシュ可能なコンテンツは、シーン遷移の発生に先立ってクライアントデバイスにストリーミングされ、その結果、帯域幅使用率がレベル714に増加する。レベル714は、従来のシステムの帯域幅使用率のレベル716を上回っているが、依然として利用可能な帯域幅700内にあることは理解されるであろう。
時間T2では、シーン遷移が起こり、帯域幅使用率はレベル718に上昇し得るが、従来のシステムとは異なり、クライアントキャッシングを採用するシステムのレベル718は、依然として使用可能な帯域幅700内にあり、したがって、ストリーミング品質の低下は生じない。時間T3では、シーンの遷移が完了し、帯域幅使用率は、レベル720に低下し、ビデオ/オーディオストリームの一部を提供するために、クライアントキャッシュされたコンテンツを継続的に適用することにより、レベル710よりも低くなり得る。
いくつかの実施形態では、クライアントは、汎用コンピュータ、専用コンピュータ、ポータブルゲームコンソール、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、モバイルコンピューティングデバイス、ポータブルゲームデバイス、携帯電話、ストリーミングメディアインターフェース/デバイス、スマートテレビジョンまたはネットワークディスプレイ、または本明細書で定義されるクライアントの機能性を満たすように構成することができる任意の他のコンピューティングデバイスとすることができる。一実施形態では、クラウドゲームサーバは、ユーザによって利用されているクライアントデバイスの種類を検出し、ユーザのクライアントデバイスに適したクラウドゲーム体験を提供するように構成される。例えば、画像設定、オーディオ設定、及びその他の種類の設定を、ユーザのクライアントデバイス用に最適化し得る。
図8は、情報サービスプロバイダアーキテクチャの一実施形態を示す。情報サービスプロバイダ(ISP)1070は、ネットワーク1086を介して地理的に分散され接続されたユーザ1082に多数の情報サービスを配信する。ISPは、株価の更新などのただ1種類のサービス、またはブロードキャストメディア、ニュース、スポーツ、ゲームなどの様々なサービスを提供することができる。さらに、各ISPによって提供されるサービスは動的であり、つまり、任意の時点でサービスを追加または取り除くことができる。したがって、特定の個人に特定の種類のサービスを提供するISPは、時間の経過と共に変化する可能性がある。例えば、ユーザは故郷にいる間に、ユーザの近くのISPによってサービスを受け得て、ユーザは異なる都市に移動しているときに、異なるISPによってサービスを受け得る。故郷のISPは、必要な情報及びデータを新しいISPに転送し、その結果、ユーザ情報が新しい都市までユーザに「追随」し、データをユーザにより近づけて、よりアクセスしやすくする。別の実施形態では、ユーザの情報を管理するマスタISPと、マスタISPからの制御下のユーザと直接的にインターフェースをとるサーバISPとの間に、マスタとサーバの関係が確立され得る。別の実施形態では、ユーザにサービスするためにより良い位置にあるISPを、これらのサービスを配信するIPSとするため、クライアントが世界中を移動するにつれて、あるISPから別のISPにデータが転送される。
ISP1070は、ネットワークを介して顧客にコンピュータベースのサービスを提供する、アプリケーションサービスプロバイダ(ASP)1072を含む。ASPモデルを使用して提供されるソフトウェアは、オンデマンドソフトウェアまたはソフトウエアアズアサービス(SaaS)と呼ばれることもある。特定のアプリケーションプログラム(顧客関係管理など)へのアクセスを提供する簡単な形式は、HTTPなどの標準プロトコルを使用することである。アプリケーションソフトウェアは、ベンダのシステムに常駐し、HTMLを使用するWebブラウザ、ベンダが提供する専用クライアントソフトウェア、またはシンクライアントなどの他のリモートインターフェースを介してユーザからアクセスされる。
広い地理的地域で配信されるサービスは、多くの場合、クラウドコンピューティングを使用する。クラウドコンピューティングは、動的スケーラブルで、仮想化されたリソースがインターネット上のサービスとしてしばしば提供されるコンピューティングのスタイルである。ユーザは、ユーザをサポートする「クラウド」のテクノロジインフラストラクチャの専門家である必要はない。クラウドコンピューティングは、インフラストラクチャアズアサービス(IaaS)、プラットフォームアズアサービス(PaaS)、及びソフトウエアアズアサービス(SaaS)などの異なるサービスに分けることができる。クラウドコンピューティングサービスは、多くの場合、Webブラウザからアクセスされる共通のビジネスアプリケーションをオンラインで提供し、ソフトウェア及びデータはサーバに保存される。クラウドという用語は、インターネットがコンピュータネットワーク図にどのように描かれているかに基づいて(例えば、サーバ、ストレージ、ロジックを使用する)インターネットのメタファとして使用され、メタファが隠す複雑なインフラストラクチャの抽象的概念である。
さらに、ISP1070は、ゲームクライアントによってシングル及びマルチプレーヤービデオゲームをプレイするために使用されるゲーム処理サーバ(GPS)1074を含む。インターネット上でプレイされるほとんどのビデオゲームは、ゲームサーバへの接続を介して動作する。通常、ゲームはプレーヤーからのデータを収集し、それを他のプレーヤーに配布する専用サーバアプリケーションを使用する。これは、ピアツーピア構成よりも効率的かつ効果的であるが、サーバアプリケーションをホストするには別のサーバが必要となる。別の実施形態では、GPSは、プレーヤーとそれぞれのゲームプレイデバイスとの間の通信を確立し、中央のGPSに頼ることなく情報を交換する。
専用GPSは、クライアントとは独立して実行されるサーバである。このようなサーバは、通常、データセンターに配置された専用ハードウェアで実行され、より多くの帯域幅と専用の処理能力を提供する。専用サーバは、ほとんどのPCベースのマルチプレーヤーゲームのためのゲームサーバをホストするのに適した方法である。多人数参加型オンラインゲームは、通常ゲームタイトルを所有するソフトウェア会社がホストする専用サーバで実行され、コンテンツを制御及び更新することができる。
放送処理サーバ(BPS)1076は、視聴者にオーディオまたはビデオ信号を配信する。非常に狭い範囲の視聴者への放送はナローキャスティングと呼ばれることもある。放送配信の最終工程は、信号が聴取者または視聴者にどのように届くかであり、ラジオ局またはテレビ局と同様にアンテナ及び受信機に届いたり、局を介してケーブルテレビまたはケーブルラジオ(または「無線ケーブル」)を経由してまたはネットワークから直接届いたりし得る。インターネットはまた、特に、信号及び帯域幅を共有できるマルチキャストを使用して、ラジオまたはテレビのいずれかを受信者に届け得る。歴史的に、放送は、全国放送または地域放送などの地理的領域によって区切られてきた。しかし、高速インターネットの普及に伴い、コンテンツは世界のほぼすべての国に到達可能なため、放送は地域によって定義されることはない。
ストレージサービスプロバイダ(SSP)1078は、コンピュータストレージ空間及び関連する管理サービスを提供する。SSPは定期的なバックアップとアーカイブも提供する。ストレージをサービスとして提供することにより、ユーザは必要に応じてより多くのストレージを注文することが可能である。その他の大きな利点は、SSPにバックアップサービスが含まれており、コンピュータのハードドライブに障害が発生してもユーザがすべてのデータを失うことがないことである。さらに、複数のSSPは、ユーザデータの全部または一部のコピーを有することができ、ユーザがどこにいるかに関係なく、またはデータにアクセスするために使用されているデバイスとは関係なく、ユーザは効率的な方法でデータにアクセスすることができるようになる。例えば、ユーザは、移動中に自宅のコンピュータ及び携帯電話内の個人ファイルにアクセスすることが可能である。
通信プロバイダ1080は、ユーザに接続性を提供する。通信プロバイダの1つの種類は、インターネットへのアクセスを提供するインターネットサービスプロバイダ(ISP)である。ISPはダイヤルアップ、DSL、ケーブルモデム、光ファイバ、無線、または専用の高速インターコネクトなどのインターネットプロトコルデータグラムの配信に適したデータ伝送技術を使用して顧客を接続する。通信プロバイダは、電子メール、インスタントメッセージング、及びSMSテキストメッセージなどのメッセージングサービスも提供することができる。通信プロバイダの別の種類は、インターネットへの直接のバックボーンアクセスを提供することによって、帯域幅またはネットワークアクセスを販売するネットワークサービスプロバイダ(NSP)である。ネットワークサービスプロバイダは、電気通信会社、データ通信業者、無線通信プロバイダ、インターネットサービスプロバイダ、高速インターネットアクセスを提供するケーブルテレビ事業者などで構成され得る。
データ交換1088は、ISP1070内のいくつかのモジュールを相互接続し、ネットワーク1086を介してこれらのモジュールをユーザ1082に接続する。データ交換1088は、ISP1070のすべてのモジュールが近接している小さな領域をカバーすることができ、または異なるモジュールが地理的に分散している場合に大きな地理的領域をカバーすることができる。例えば、データ交換1088は、データセンターのキャビネット内に高速ギガビットイーサネット(またはそれより高速)、または大陸間仮想エリアネットワーク(VLAN)を含むことができる。
ユーザ1082は、少なくともCPU、メモリ、ディスプレイ及びI/Oを含む、クライアントデバイス1084を使用してリモートサービスにアクセスする。クライアントデバイスは、PC、携帯電話、ネットブック、タブレット、ゲームシステム、PDAなどとすることができる。一実施形態では、ISP1070は、クライアントによって使用されるデバイスの種類を認識し、採用する通信方法を調整する。他の場合には、クライアントデバイスは、htmlなどの標準的な通信方法を使用して、ISP1070にアクセスする。
本発明の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラマブル民生用電子機器、ミニコンピュータ、メインフレームコンピュータなどを含む様々なコンピュータシステム構成で実施し得る。本発明は、有線ベースまたは無線ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境でも実施することができる。
上記の実施形態を念頭に置いて、本発明は、コンピュータシステムに格納されたデータを含む様々なコンピュータ実装の動作を使用することができることを理解されたい。これらの動作は、物理量の物理的操作を必要とする動作である。本発明の一部を形成する本明細書に記載されているいずれの動作も有用な機械動作である。本発明はまた、これらの動作を実行するためのデバイスまたは装置に関する。装置は、必要とされる目的のために特別に構成することができ、または装置は、コンピュータに格納されたコンピュータプログラムによって選択的に起動または構成された汎用コンピュータとすることができる。特に、本明細書の教示に従って書かれたコンピュータプログラムと共に様々な汎用機械を使用することができ、または必要とされる動作を実行するより特殊化した装置を構築する方がより便利であり得る。
本発明は、コンピュータ可読媒体上のコンピュータ可読コードとして具体化することもできる。あるいは、コンピュータ可読コードは、上述のデータ交換相互接続を使用してサーバからダウンロードされ得る。コンピュータ可読媒体は、データを格納することができる任意のデータストレージデバイスであり、このデータは、その後コンピュータシステムによって読み取ることができる。コンピュータ可読媒体の例には、ハードドライブ、ネットワーク接続ストレージ(NAS)、リードオンリメモリ、ランダムアクセスメモリ、CD−ROM、CD−R、CD−RW、磁気テープならびに他の光学及び非光学データストレージデバイスが含まれる。コンピュータ可読媒体は、コンピュータ可読コードが分散方式で格納され、実行されるように、ネットワーク結合コンピュータシステム上に分散されたコンピュータ可読有形媒体を含むことができる。
方法動作は特定の順序で説明されているが、他のハウスキーピング操作が動作の間に実行され得る、または、動作が、わずかに異なる時間に生じるように調整され得る、または、オーバレイ動作の処理が所望の方法で実行される限り、処理に関連する様々な間隔で処理動作の発生を可能にするシステムに分散され得ること理解されたい。
前述の発明は、理解を明確にするために幾分詳細に説明してきたが、添付の特許請求の範囲内である種の変更及び修正を実施できることは明らかであろう。したがって、本実施形態は例示的であって限定的ではないと見なされるべきであり、本発明は本明細書に記載された詳細に限定されるものではなく、記載された実施形態の範囲及び均等物の範囲内で修正され得る。
図9は、本発明の一実施形態による、アバター制御システムを実装するためのコントローラと互換性のあり得る、Sony(登録商標)Playstation3(登録商標)エンターテイメントデバイスなどのゲームコンソールの全体的なシステムアーキテクチャを概略的に示す。システムユニット1400は、システムユニット1400に接続可能な様々な周辺デバイスを備える。システムユニット1400は、図2のコンピューティングサーバ402−aと同様である。システムユニット1400は、Cellプロセッサ1428と、Rambus(登録商標)ダイナミックランダムアクセスメモリ(XDRAM)ユニット1426と、専用ビデオランダムアクセスメモリ(VRAM)ユニット1432を有するリアリティシンセサイザグラフィックスユニット1430と、I/Oブリッジ1434とを含む。システムユニット1400はまた、I/Oブリッジ1434を介してアクセス可能な、ディスク1440a及び取り外し可能なスロットインハードディスクドライブ(HDD)1436から読み取るためのBlu Ray(登録商標)Disk BD−ROM(登録商標)光学ディスクリーダ1440を含む。オプションとして、システムユニット1400はまた、同様にI/Oブリッジ1434を介してアクセス可能な、コンパクトフラッシュ(登録商標)メモリカード、Memory Stick(登録商標)メモリカードなどを読み取るためのメモリカードリーダ1438を含む。
I/Oブリッジ1434はまた、6つのユニバーサルシリアルバス(USB)2.0ポート1424、ギガビットイーサネット(登録商標)ポート1422、IEEE802.11b/g無線ネットワーク(Wi−Fi)ポート1420、及び最大7つのBluetooth(登録商標)接続をサポートすることができるBluetooth無線リンクポート1418に接続する。
動作に際して、I/Oブリッジ1434は、1つまたは複数のゲームコントローラ1402からのデータを含む、すべての無線データ、USBデータ及びイーサネットデータを処理する。例えば、ユーザがゲームをプレイしているとき、I/Oブリッジ1434は、Bluetoothリンクを介してゲームコントローラ1402からデータを受信し、そのデータをCellプロセッサ1428に送り、Cellプロセッサ1428はそれに応じてゲームの現在の状態を更新する。
無線ポート、USBポート及びイーサネットポートはまた、ゲームコントローラ1402に加えて、リモート制御1404、キーボード1406、マウス1408、Sony Playstation Portable(登録商標)エンターテイメントデバイスなどのポータブルエンターテイメントデバイス1410、EyeToy(登録商標)ビデオカメラ1412などのビデオカメラ、マイクロフォンヘッドセット1414などの他の周辺デバイスに対する接続性も提供する。したがって、そのような周辺デバイスは、原理上、システムユニット1400に無線で接続し得る。例えば、ポータブルエンターテイメントデバイス1410は、Wi−Fiアドホック接続を介して通信し、一方、マイクロフォンヘッドセット1414は、Bluetoothリンクを介して通信し得る。
これらのインターフェースの提供は、Playstation3デバイスが、デジタルビデオレコーダー(DVR)、セットトップボックス、デジタルカメラ、ポータブルメディアプレーヤー、VoIP電話、携帯電話、プリンター及びスキャナなどの他の周辺デバイスとも潜在的に互換性があることを意味する。
さらに、レガシーメモリカードリーダ1416は、USBポート1424を介してシステムユニットに接続され、Playstation(登録商標)またはPlaystation2(登録商標)デバイスによって使用される種類のメモリカード1448の読み取りを可能にし得る。
本実施形態では、ゲームコントローラ1402は、Bluetoothリンクを介してシステムユニット1400と無線で通信するように動作可能である。しかし、代わりに、ゲームコントローラ1402をUSBポートに接続することにより、ゲームコントローラ1402のバッテリを充電するための電力も提供し得る。1つまたは複数のアナログジョイスティック及び従来の制御ボタンに加えて、ゲームコントローラは、各軸の平行移動及び回転に対応する6自由度の動きに敏感である。その結果、ゲームコントローラのユーザによる身振り及び動作は、従来のボタンまたはジョイスティックコマンドに加えて、またはその代わりに、ゲームへの入力として変換され得る。オプションで、Playstation(商標)Portableデバイスなどの他の無線で使用可能な周辺デバイスをコントローラとして使用し得る。Playstation(商標)Portableデバイスの場合、追加のゲームまたは制御情報(例えば、制御命令またはライブの数)は、デバイスの画面上に提供され得る。ダンスマット(図示せず)、ライトガン(図示せず)、ハンドル及びペダル(図示せず)、または即答クイズゲーム(これも図示せず)用の単一または複数の大きなボタンなどの特注のコントローラなどの他の代替的または補足的な制御デバイスを使用し得る。
リモコン1404はまた、Bluetoothリンクを介してシステムユニット1400と無線通信するように動作可能である。リモコン1404は、Blu Ray(商標)Disk BD−ROMリーダ1440の動作及びディスクコンテンツのナビゲーションに適した制御を含む。
Blu Ray(商標)Disk BD−ROMリーダ1440は、従来の記録済み及び記録可能なCD、ならびにいわゆるスーパーオーディオCDに加えて、Playstation及びPlaystation2デバイスと互換性のあるCD−ROMを読み取るように動作可能である。また、リーダ1440は、従来の記録済み及び記録可能なDVDに加えて、Playstation2及びPlaystation3デバイスと互換性のあるDVD−ROMを読み取るように動作可能である。リーダ1440は、Playstation3デバイスと互換性のあるBD−ROM、ならびに従来の記録済み及び記録可能なBlu−Ray Diskを読み取るようにさらに動作可能である。
システムユニット1400は、リアリティシンセサイザグラフィックスユニット1430を介してPlaystation3デバイスによって生成または復号化されたオーディオ及びビデオを、オーディオ及びビデオコネクタを介して、ディスプレイ1444及び1つまたは複数のラウドスピーカ1446を有するモニタまたはテレビジョンセットなどのディスプレイ及びサウンド出力デバイス1442に供給するように動作可能である。オーディオコネクタ1450は、従来のアナログ及びデジタル出力を含み得て、ビデオコネクタ1452は、コンポーネントビデオ、Sビデオ、コンポジットビデオ、及び1つまたは複数の高精度マルチメディアインターフェース(HDMI(登録商標))出力を様々に含み得る。その結果、ビデオ出力は、PALもしくはNTSC、または720p、1080iもしくは1080pの高精細度のフォーマットであり得る。
オーディオ処理(生成、復号など)は、Cellプロセッサ1428によって実行される。Playstation3デバイスのオペレーティングシステムは、Dolby(登録商標)5.1サラウンドサウンド、Dolby(登録商標)シアターサラウンド(DTS)、及びBlu−Ray(登録商標)ディスクからの7.1サラウンドサウンドの復号化をサポートする。
本実施形態では、ビデオカメラ1412は、圧縮されたビデオデータを、システムユニット1400で復号化するために、画像ベースのMPEG(motion picture expert group)規格などの適切なフォーマットで転送され得るように、単一の電荷結合素子(CCD)、LEDインジケータ、及びハードウェアベースのリアルタイムデータ圧縮符号化デバイスを含む。カメラLEDインジケータは、例えば、不利な照明条件を示すために、システムユニット1400からの適切な制御データに応答して点灯するように配置される。ビデオカメラ1412の実施形態は、USB、BluetoothまたはWi−Fi通信ポートを介してシステムユニット1400に様々に接続し得る。ビデオカメラの実施形態は、1つまたは複数の関連するマイクロフォンを含み、オーディオデータを転送することも可能であり得る。ビデオカメラの実施形態では、CCDは、高精度ビデオキャプチャに適した解像度を有し得る。使用時には、ビデオカメラによってキャプチャされた画像は、例えば、ゲーム内に取り込まれ得て、ゲーム制御入力として解釈され得る。
一般に、システムユニット1400の通信ポートの1つを介してビデオカメラまたはリモコンなどの周辺デバイスとの間でデータ通信が成功するためには、デバイスドライバなどの適切なソフトウェアが提供されるべきである。デバイスドライバ技術は周知であり、本明細書で詳細に説明しないが、説明されている本実施形態では、デバイスドライバまたは同様のソフトウェアインターフェースが必要とされ得ることを当業者は気付くであろうと言うにとどめる。
次に図10を参照すると、Cellプロセッサ1428は、4つの基本コンポーネント、すなわち、メモリコントローラ1560及びデュアルバスインターフェースコントローラ1570A、Bを含む外部入力及び出力構造と、パワープロセシングエレメント1550と呼ばれるメインプロセッサと、シナジスティックプロセシングエレメント(SPE)1510A〜Hと呼ばれる8個のコプロセッサと、エレメントインターコネクトバス1580と呼ばれる上記のコンポーネントを接続する循環データバスとを含むアーキテクチャを有する。Cellプロセッサの合計浮動小数点性能は、Playstation2デバイスのEmotion Engineの6.2GFLOPSと比較して、218GFLOPSである。
パワープロセッシングエレメント(PPE)1550は、3.2GHzの内部クロックで動作する双方向同時マルチスレッドPower1470準拠PowerPCコア(PPU)1555に基づいている。これは、512kBレベル2(L2)キャッシュ及び32kBレベル1(L1)キャッシュを含む。PPE1550はクロックサイクルごとに8つの単一位置演算が可能で、3.2GHzでは25.6GFLOPSになる。PPE1550の主な役割は、計算作業負荷の大部分を処理するシナジスティックプロセッシングエレメント1510A〜Hのコントローラとして機能することである。動作中、PPE1550は、ジョブキューを維持し、シナジスティックプロセッシングエレメント1510A〜Hのジョブをスケジュールし、その進行状況を監視する。その結果、各シナジスティックプロセッシングエレメント1510A〜Hは、ジョブをフェッチし、実行し、PPE1550と同期させる役割を果たすカーネルを実行する。
各シナジスティックプロセッシングエレメント(SPE)1510A〜Hは、それぞれのシナジスティックプロセッシングユニット(SPU)1520A〜Hと、それぞれのダイナミックメモリアクセスコントローラ(DMAC)1542A〜H、それぞれのメモリ管理ユニット(MMU)1544A〜H及びバスインターフェース(図示せず)を含むそれぞれのメモリフローコントローラ(MFC)1540A〜Hとを含む。各SPU1520A〜Hは、3.2GHzでクロックされ、原理上4GBまで拡張可能な256kBローカルRAM1530A〜Hを含むRISCプロセッサである。各SPEは理論上25.6GFLOPSの単精度性能を提供する。SPUは、1クロックサイクルで、4つの単精度浮動小数点部、4つの32ビット数、8つの16ビット整数、または16の8ビット整数を動作させることができる。同じクロックサイクルで、メモリ動作を実行することもできる。SPU1520A〜Hは、システムメモリXDRAM1426に直接アクセスにすることはなく、SPU1520A〜Hによって形成された64ビットアドレスが、MFC1540A〜Hに渡され、MFC1540A〜Hは、DMAコントローラ1542A〜Hに、エレメントインターコネクトバス1580及びメモリコントローラ1560を介してメモリにアクセスするように命令する。
エレメントインターコネクトバス(EIB)1580は、上述のプロセッサエレメント、すなわちPPE1550、メモリコントローラ1560、デュアルバスインターフェース1570A、B及び8個のSPE1510A〜Hの合計12個の関係物を接続するCellプロセッサ1428の内部の論理的に循環する通信バスである。関係物は、1クロックサイクルあたり8バイトの速度でバスに同時に読み書きすることができる。前述のように、各SPE1510A〜Hは、より長い読み出しシーケンスまたは書き込みシーケンスをスケジューリングするためのDMAC1542A〜Hを含む。EIBは、2つずつの時計回り方向及び反時計回り方向の4つのチャネルを備える。その結果、12個の関係物に対して、任意の2個の関係物の間の最長の段階的なデータフローは、適切な方向に6段階となる。したがって、12スロットの理論上のピーク瞬間EIB帯域幅は、関係物間の調停を通じて完全に利用された場合、1クロックあたり96Bである。これは、3.2GHzのクロックレートで307.2GB/s(ギガバイト/秒)という理論上のピーク帯域幅に相当する。
メモリコントローラ1560は、Rambus Incorporatedによって開発されたXDRAMインターフェース1562を含む。メモリコントローラは、理論上のピーク帯域幅が25.6GB/sのRambus XDRAM 1426とインターフェースする。
デュアルバスインターフェース1570A、Bは、Rambus FlexIO(登録商標)システムインターフェース1572A、Bを含む。インターフェースは、それぞれ8ビット幅の12チャネルで構成され、5つのパスはインバウンドで、7つのパスはアウトバウンドである。これにより、コントローラ170Aを介するCellプロセッサ及びI/Oブリッジ700と、コントローラ170Bを介するリアリティシミュレータグラフィックスユニット200との間の62.4GB/s(36.4GB/sアウトバウンド、26GB/sインバウンド)の理論的ピーク帯域幅が提供される。
Cellプロセッサ1428によってリアリティシミュレータグラフィックスユニット1430に送られるデータは、通常、頂点を描画し、ポリゴンにテクスチャを適用し、照明条件を指定する、などのコマンドのシーケンスである、ディスプレイリストを含む。
実施形態は、現実世界のユーザをより正確に特定し、アバターまたはシーンのアクティビティを案内するための深度データをキャプチャすることを含み得る。オブジェクトは、人物が保持している物体とすることも、人物の手とすることもできる。本明細書では、「深度カメラ」及び「三次元カメラ」という用語は、二次元のピクセル情報のほか、距離情報すなわち深度情報を取得することができる任意のカメラを指す。例えば、深度カメラは、制御された赤外線照明を利用して、距離情報を取得することができる。他の例示的な深度カメラに、立体カメラ対があり、これは2台の基準カメラを使用して距離情報を三角測量によって求める。同様に、「深度検知デバイス」という用語は、距離情報ならびに二次元のピクセル情報を取得することができる任意の種類のデバイスを指す。
三次元像の最近の進歩により、リアルタイムのインタラクティブなコンピュータアニメーションの可能性が広がっている。特に、新しい「深度カメラ」は、通常の二次元のビデオ像に加えて、三次元をキャプチャ及びマップする機能を提供することができる。新しい深さデータにより、本発明の実施形態は、リアルタイムで、他のオブジェクトの背後を含むビデオシーン内の様々な位置にコンピュータ生成オブジェクトを配置することを可能にする。
さらに、本発明の実施形態は、ユーザに対してリアルタイムのインタラクティブなゲーム体験を提供する。例えば、ユーザは、様々なコンピュータ生成オブジェクトとリアルタイムで対話することができる。さらに、ビデオシーンをリアルタイムで変更して、ユーザのゲーム体験を向上させることができる。例えば、コンピュータ生成の衣装をユーザの衣服の上にはめ込んだり、コンピュータ生成の光源を利用して、ビデオシーン内に仮想の陰影を投影したりすることができる。したがって、本発明の実施形態及び深度カメラを使用して、ユーザは、自分のリビングルーム内でインタラクティブなゲーム環境を体験することができる。通常のカメラと同様に、深度カメラは、ビデオ画像を構成する複数のピクセルの二次元データをキャプチャする。これらの値は、ピクセルの色の値であり、通常は、各ピクセルの赤、緑、青(RGB)の値である。このようにして、カメラによってキャプチャされたオブジェクトは、二次元オブジェクトとしてモニタ上に表示される。
本発明の実施形態はまた、分散型の画像処理構成も考慮している。例えば、本発明は、CPUまたはCPU及び他の1つの素子など、1つまたは2つの場所で行われる、キャプチャされた画像及び表示画像処理に限定されない。例えば、入力画像処理は、処理を実行することができる関連するCPU、プロセッサまたはデバイスで容易に行うことができ、基本的には、すべての画像処理を、相互接続されたシステム全体に分散させることができる。したがって、本発明は、特定の画像処理ハードウェア回路及び/またはソフトウェアに限定されない。本明細書に記載された実施形態はまた、一般的なハードウェア回路及び/またはソフトウェアの特定の組み合わせにも、コンポーネントを処理することによって実行される命令のいかなる特定のソースにも限定されない。
上記の実施形態を念頭に置いて、本発明は、コンピュータシステムに格納されたデータを含む様々なコンピュータ実装の動作を使用し得ることを理解されたい。これらの動作は、物理量の物理的操作を必要とする動作が含まれる。通常、必ずではないが、これらの量は、格納、転送、結合、比較、及びその他の操作が可能な電気信号または磁気信号の形式をとる。さらに、実行される操作は、生成、識別、決定、または比較などの用語で呼ばれることが多い。
上述の発明は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラマブル民生用電子機器、ミニコンピュータ、メインフレームコンピュータなどを含む他のコンピュータシステム構成で実施し得る。本発明は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境でも実施し得る。
本発明は、コンピュータ可読媒体上のコンピュータ可読コードとして具体化することもできる。コンピュータ可読媒体は、データを格納することができる任意のデータストレージデバイスであり、このデータは、その後、電磁搬送波を含むコンピュータシステムによって読み取ることができる。コンピュータ可読媒体の例には、ハードドライブ、ネットワーク接続ストレージ(NAS)、リードオンリメモリ、ランダムアクセスメモリ、CD−ROM、CD−R、CD−RW、磁気テープ、ならびに他の光学及び非光学データストレージデバイスが含まれる。コンピュータ可読媒体は、コンピュータ可読コードが分散方式で格納され、実行されるように、ネットワーク結合コンピュータシステム上に分散することもできる。
前述の発明は、理解を明確にするために幾分詳細に説明してきたが、添付の特許請求の範囲内で、ある種の変更及び修正を実施し得ることは明らかであろう。したがって、本実施形態は例示的であって限定的ではないと見なされるべきであり、本発明は本明細書に記載された詳細に限定されるものではなく、添付の特許請求の範囲及び均等物の範囲内で修正され得る。

Claims (20)

  1. クラウドビデオゲームのゲームプレイをストリーミングする方法であって、
    前記クラウドビデオゲームを実行してゲームプレイビデオを生成するステップと、
    ネットワーク上でクライアントデバイスに前記ゲームプレイビデオをストリーミングするステップであって、前記ゲームプレイビデオは前記でクライアントデバイスによってディスプレイに提示される、ステップと、
    前記ゲームプレイビデオのストリーミング中、前記ネットワーク上で前記クライアントデバイスに1つまたは複数のビジュアルアセットを送信するステップであって、前記ビジュアルアセットは前記クライアントデバイスによってキャッシュされる、ステップとを含み、
    前記キャッシュされたビジュアルアセットは前記クライアントデバイスによって処理され、前記ディスプレイに提示される前に前記ゲームプレイビデオに結合される、方法。
  2. ストリームされる前記ゲームプレイビデオは、前記クラウドビデオゲームの1つまたは複数のビジュアルコンポーネントを除外するように構成され、前記除外された1つまたは複数のビジュアルコンポーネントは、前記キャッシュされたビジュアルアセットを前記クライアントデバイスにおいて前記ゲームプレイビデオに結合することによって提供される、請求項1に記載の方法。
  3. 前記クラウドビデオゲームの前記1つまたは複数のビジュアルコンポーネントを除外することは、ストリームされる前記ゲームプレイビデオのデータサイズを削減する、請求項2に記載の方法。
  4. 前記ゲームプレイビデオをストリーミングすることは、前記ゲームプレイビデオにおいていつ所与のキャッシュされたビジュアルアセットを結合すべきかを示す識別子の送信を含む、請求項1に記載の方法。
  5. 前記識別子はさらに、前記ゲームプレイビデオの画像フレームにおいてどこに前記所与のキャッシュされたビジュアルアセットを結合すべきかを示す、請求項4に記載の方法。
  6. 前記識別子はさらに、前記ゲームプレイビデオに結合された時、前記所与のキャッシュされたビジュアルアセットのビジュアルな外観を制御する1つまたは複数のパラメータを含む、請求項4に記載の方法。
  7. 前記所与のキャッシュされたビジュアルアセットの前記ビジュアルな外観を制御する前記パラメータは、色、サイズ、向き、透明度、明るさ、またはコントラストのうち1つまたは複数を含む、請求項6に記載の方法。
  8. 前記1つまたは複数のビジュアルアセットは、前記クラウドビデオゲームの現在のゲーム状態にもとづいて選択される、請求項1に記載の方法。
  9. 前記1つまたは複数のビジュアルアセットは、前記クラウドビデオゲームの前記現在のゲーム状態にもとづく予測された将来のゲーム状態にもとづいて選択される、請求項8に記載の方法。
  10. 前記1つまたは複数のビジュアルアセットは、前記クラウドビデオゲームにおける位置へのプレーヤー制御キャラクタの近接度にもとづいて選択される、請求項8に記載の方法。
  11. 前記1つまたは複数のビジュアルアセットの送信のタイミングは、監視された帯域幅使用量またはネットワーク状態にもとづいて選択される、請求項1に記載の方法。
  12. クラウドビデオゲームのゲームプレイをストリーミングする方法であって、
    前記クラウドビデオゲームを実行してゲームプレイビデオを生成するステップと、
    ネットワーク上でクライアントデバイスに前記ゲームプレイビデオをストリーミングするステップであって、前記ゲームプレイビデオは前記でクライアントデバイスによってディスプレイに提示される、ステップと、
    前記ゲームプレイビデオのストリーミング中、前記ネットワーク上で前記クライアントデバイスに1つまたは複数のビジュアルアセットを送信するステップであって、前記ビジュアルアセットは前記クライアントデバイスによってキャッシュされる、ステップとを含み、
    前記キャッシュされたビジュアルアセットは前記クライアントデバイスによって処理され、前記ディスプレイに提示される前に前記ゲームプレイビデオに結合され、前記ゲームプレイビデオをストリーミングすることは、前記ゲームプレイビデオにおいていつ所与のキャッシュされたビジュアルアセットを結合すべきかを示す識別子の送信を含み、
    ストリームされる前記ゲームプレイビデオは、前記クラウドビデオゲームの1つまたは複数のビジュアルコンポーネントを除外するように構成され、前記除外された1つまたは複数のビジュアルコンポーネントは、前記キャッシュされたビジュアルアセットを前記クライアントデバイスにおいて前記ゲームプレイビデオに結合することによって提供される、方法。
  13. 前記クラウドビデオゲームの前記1つまたは複数のビジュアルコンポーネントを除外することは、ストリームされる前記ゲームプレイビデオのデータサイズを削減する、請求項12に記載の方法。
  14. 前記識別子はさらに、前記ゲームプレイビデオの画像フレームにおいてどこに前記所与のキャッシュされたビジュアルアセットを結合すべきかを示す、請求項12に記載の方法。
  15. 前記識別子はさらに、前記ゲームプレイビデオに結合された時、前記所与のキャッシュされたビジュアルアセットのビジュアルな外観を制御する1つまたは複数のパラメータを含む、請求項12に記載の方法。
  16. 前記所与のキャッシュされたビジュアルアセットの前記ビジュアルな外観を制御する前記パラメータは、色、サイズ、向き、透明度、明るさ、またはコントラストのうち1つまたは複数を含む、請求項15に記載の方法。
  17. 前記1つまたは複数のビジュアルアセットは、前記クラウドビデオゲームの現在のゲーム状態にもとづいて選択される、請求項12に記載の方法。
  18. 前記1つまたは複数のビジュアルアセットは、前記クラウドビデオゲームの前記現在のゲーム状態にもとづく予測された将来のゲーム状態にもとづいて選択される、請求項17に記載の方法。
  19. 前記1つまたは複数のビジュアルアセットは、前記クラウドビデオゲームにおける位置へのプレーヤー制御キャラクタの近接度にもとづいて選択される、請求項17に記載の方法。
  20. 前記1つまたは複数のビジュアルアセットの送信のタイミングは、監視された帯域幅使用量またはネットワーク状態にもとづいて選択される、請求項12に記載の方法。
JP2020094313A 2015-08-19 2020-05-29 クライアント側のアセット統合を用いたクラウドゲームストリーミング Active JP7157099B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562207285P 2015-08-19 2015-08-19
US62/207,285 2015-08-19
US14/845,104 2015-09-03
US14/845,104 US10315108B2 (en) 2015-08-19 2015-09-03 Local application quick start with cloud transitioning

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018508684A Division JP6712310B2 (ja) 2015-08-19 2016-07-29 クラウド移行によるローカルアプリケーションのクイックスタート

Publications (2)

Publication Number Publication Date
JP2020151494A true JP2020151494A (ja) 2020-09-24
JP7157099B2 JP7157099B2 (ja) 2022-10-19

Family

ID=56618276

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2018508684A Active JP6712310B2 (ja) 2015-08-19 2016-07-29 クラウド移行によるローカルアプリケーションのクイックスタート
JP2020094313A Active JP7157099B2 (ja) 2015-08-19 2020-05-29 クライアント側のアセット統合を用いたクラウドゲームストリーミング

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2018508684A Active JP6712310B2 (ja) 2015-08-19 2016-07-29 クラウド移行によるローカルアプリケーションのクイックスタート

Country Status (4)

Country Link
US (3) US10315108B2 (ja)
JP (2) JP6712310B2 (ja)
CN (3) CN111467793B (ja)
WO (1) WO2017030771A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023547287A (ja) * 2021-09-30 2023-11-10 17Live株式会社 ストリーミングをレンダリングするためのシステム、方法、及びコンピュータ可読媒体

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9795879B2 (en) * 2014-12-31 2017-10-24 Sony Interactive Entertainment America Llc Game state save, transfer and resume for cloud gaming
US10742767B2 (en) * 2016-02-02 2020-08-11 Sony Interactive Entertainment LLC Systems and methods for downloading and updating save data to a data center
US10046236B2 (en) * 2016-06-13 2018-08-14 Sony Interactive Entertainment America, LLC Browser-based cloud gaming
US20180250588A1 (en) * 2017-03-02 2018-09-06 Jayme Winick Universal game controller/console
US10491666B2 (en) * 2017-04-03 2019-11-26 Sony Interactive Entertainment America Llc Systems and methods for using a distributed game engine
US11069258B2 (en) * 2017-06-14 2021-07-20 Ifwizard Coprporation System for behavioral conditioning through gamification
EP3673354A4 (en) 2017-10-26 2021-04-07 Hewlett-Packard Development Company, L.P. ACTIVE PROCESSING FROM PERSISTENT MEMORY
CN108171783A (zh) * 2018-03-20 2018-06-15 联想(北京)有限公司 图像渲染方法、系统以及电子设备
US11161038B2 (en) * 2018-08-06 2021-11-02 Amazon Technologies, Inc. Systems and devices for controlling network applications
KR101950001B1 (ko) * 2018-08-31 2019-02-20 넷마블 주식회사 게임 어플리케이션 이외의 어플리케이션을 통한 제어에 기초하여 게임 서비스를 제공하는 서버 및 방법
CN109151565B (zh) * 2018-09-04 2019-12-20 北京达佳互联信息技术有限公司 播放语音的方法、装置、电子设备及存储介质
US10688390B2 (en) * 2018-11-05 2020-06-23 Sony Interactive Entertainment LLC Crowd-sourced cloud gaming using peer-to-peer streaming
US10708382B2 (en) * 2018-11-08 2020-07-07 Citrix Systems, Inc. Systems and methods for latency masking via prefix caching
US11087591B2 (en) * 2018-12-20 2021-08-10 Sony Interactive Entertainment LLC Anti-fraud cloud gaming blockchain
US11336942B2 (en) * 2018-12-28 2022-05-17 Dish Network L.L.C. Methods and systems for management of a processing offloader
US11938406B2 (en) * 2019-06-07 2024-03-26 Nvidia Corporation Dynamic allocation of compute resources for highlight generation in cloud gaming systems
CN110417785A (zh) * 2019-07-31 2019-11-05 湖南微算互联信息技术有限公司 一种云手机游戏的安装方法、系统和存储介质
US11343354B2 (en) * 2019-10-23 2022-05-24 Nvidia Corporation Increasing user engagement during computing resource allocation queues for cloud services
US11213748B2 (en) * 2019-11-01 2022-01-04 Sony Interactive Entertainment Inc. Content streaming with gameplay launch
US11798118B2 (en) * 2019-12-20 2023-10-24 Intel Corporation Asset caching in cloud rendering computing architectures
US11782833B2 (en) 2020-03-12 2023-10-10 Samsung Electronics Co., Ltd. System and method of determining available bandwidth in disaggregated tiered cache for cloud content storage
US11765235B2 (en) * 2020-03-12 2023-09-19 Samsung Electronics Co., Ltd. System and method of disk sharing for cloud content storage
WO2021200492A1 (ja) * 2020-03-31 2021-10-07 株式会社ソニー・インタラクティブエンタテインメント 送信装置、送信方法及びプログラム
CN111447485A (zh) * 2020-03-31 2020-07-24 广州微算互联信息技术有限公司 一种实时的云游戏录制视频方法、系统、装置及存储介质
US11420130B2 (en) 2020-05-28 2022-08-23 Sony Interactive Entertainment Inc. Media-object binding for dynamic generation and displaying of play data associated with media
CN111773662A (zh) * 2020-06-29 2020-10-16 济南浪潮高新科技投资发展有限公司 一种基于雾计算的云游戏加速方法、系统、装置及介质
CN111966311B (zh) * 2020-07-15 2024-04-26 北京视博云信息技术有限公司 云游戏的显示设置方法、装置、可读存储介质及设备
CN111930328B (zh) * 2020-08-10 2024-03-15 西安万像电子科技有限公司 应用数据的显示方法、装置及系统
CN112023395B (zh) * 2020-08-24 2024-03-01 深圳威尔视觉传媒有限公司 云游戏加载方法、电子设备及计算机可读存储介质
CN112104622A (zh) * 2020-08-31 2020-12-18 北京爱奇艺科技有限公司 云应用启动方法、服务器、云设备及云端通信系统
CN113423018B (zh) * 2021-08-24 2021-11-02 腾讯科技(深圳)有限公司 一种游戏数据处理方法、装置及存储介质
CN113179445B (zh) * 2021-04-15 2023-07-14 腾讯科技(深圳)有限公司 基于互动物品的视频分享方法、互动物品
CN112870711B (zh) * 2021-04-28 2021-07-16 腾讯科技(深圳)有限公司 一种云游戏的处理方法、装置、设备及存储介质
CN113368504B (zh) * 2021-06-09 2023-10-17 咪咕互动娱乐有限公司 云游戏服务系统、交互方法、存储介质
CN113440843B (zh) * 2021-06-25 2023-12-08 咪咕互动娱乐有限公司 云游戏启动控制方法、装置、云服务器和终端设备
CN113713369B (zh) * 2021-08-27 2023-09-15 厦门雅基软件有限公司 多人游戏的功能键映射方法、模拟操控方法、装置及设备
GB2610820A (en) * 2021-09-15 2023-03-22 Sony Interactive Entertainment Inc Content transmission system and method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120004039A1 (en) * 2008-12-15 2012-01-05 David Perry Dual-Mode Program Execution
US20120278439A1 (en) * 2011-04-28 2012-11-01 Approxy Inc., Ltd Adaptive Cloud Based Application Streaming
US20140267429A1 (en) * 2013-03-14 2014-09-18 Microsoft Corporation Client side processing of player movement in a remote gaming environment
JP2015130164A (ja) * 2014-01-02 2015-07-16 ユービッタズ アイエンシーUbitus Inc. ネットワークを通してメディアを伝送するシステム及び方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8689265B2 (en) * 1999-03-30 2014-04-01 Tivo Inc. Multimedia mobile personalization system
US20020144276A1 (en) * 2001-03-30 2002-10-03 Jim Radford Method for streamed data delivery over a communications network
US7729946B2 (en) 2003-01-24 2010-06-01 Massive Incorporated Online game advertising system
JP2006303631A (ja) 2005-04-15 2006-11-02 Sony Corp オンスクリーン表示装置及びオンスクリーンディスプレイ生成方法
US8731000B2 (en) * 2009-09-30 2014-05-20 Cisco Technology, Inc. Decoding earlier frames with DTS/PTS backward extrapolation
KR101956639B1 (ko) * 2010-09-13 2019-03-11 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 비디오 서버 및 게임 서버를 포함하는 컴퓨터 게임 시스템에서 컴퓨터 게임을 제공하는 방법 및 시스템
KR102126910B1 (ko) 2010-09-13 2020-06-25 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 부가기능의 관리
JP5542020B2 (ja) * 2010-09-22 2014-07-09 株式会社ソニー・コンピュータエンタテインメント 情報処理システム、情報処理方法、プログラム及び情報記憶媒体
US8649659B2 (en) 2010-10-06 2014-02-11 Motorola Mobility Llc Method and system for transitioning media output among two or more devices
JP2012128721A (ja) * 2010-12-16 2012-07-05 Sony Computer Entertainment Inc 情報処理装置、情報処理システム、情報処理方法、プログラム及び情報記憶媒体
US8904431B2 (en) * 2010-12-20 2014-12-02 Microsoft Corporation Current device location advertisement distribution
KR101312268B1 (ko) * 2010-12-24 2013-09-25 주식회사 케이티 클라우드 컴퓨팅 환경에서 게임 서비스 제공 방법, 클라우드 컴퓨팅 서버, 및 클라우드 컴퓨팅 시스템
US9317005B2 (en) 2011-04-26 2016-04-19 Canon Kabushiki Kaisha Image forming apparatus for determining remaining amount of developer in developer container
US10778905B2 (en) * 2011-06-01 2020-09-15 ORB Reality LLC Surround video recording
US8898717B1 (en) 2012-01-11 2014-11-25 Cisco Technology, Inc. System and method for obfuscating start-up delay in a linear media service environment
GB201206059D0 (en) * 2012-04-04 2012-05-16 Tangentix Ltd Hybrid client-server graphical content delivery method and apparatus
US9381432B2 (en) * 2012-08-24 2016-07-05 Microsoft Technology Licensing, Llc Game migration
KR101742662B1 (ko) * 2012-12-21 2017-06-01 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 레코딩된 게임플레이에 기반하여 클라우드-게이밍에 대한 제안된 미니-게임의 자동 발생
EP2745893B1 (en) 2012-12-21 2019-03-20 Sony Computer Entertainment America LLC Automatic generation of suggested mini-games for cloud-gaming based on recorded gameplay
CN103902804B (zh) * 2012-12-27 2018-11-16 索尼电脑娱乐美国公司 能够基于先前用户游戏玩法而影子式玩视频游戏的系统和方法
CN104092711A (zh) * 2013-04-01 2014-10-08 云联(北京)信息技术有限公司 一种云游戏实现方法及系统
US20150126282A1 (en) 2013-11-01 2015-05-07 Numecent Holdings Inc. Adaptive application streaming in cloud gaming
US9333433B2 (en) * 2014-02-04 2016-05-10 Sony Computer Entertainment America Llc Online video game service with split clients
US10105593B2 (en) * 2014-04-08 2018-10-23 Razer (Asia-Pacific) Pte. Ltd. File prefetching for gaming applications accessed by electronic devices
JP5815073B2 (ja) * 2014-05-02 2015-11-17 株式会社ソニー・コンピュータエンタテインメント クライアント装置、情報処理方法、プログラム及び情報記憶媒体

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120004039A1 (en) * 2008-12-15 2012-01-05 David Perry Dual-Mode Program Execution
US20120278439A1 (en) * 2011-04-28 2012-11-01 Approxy Inc., Ltd Adaptive Cloud Based Application Streaming
US20140267429A1 (en) * 2013-03-14 2014-09-18 Microsoft Corporation Client side processing of player movement in a remote gaming environment
JP2015130164A (ja) * 2014-01-02 2015-07-16 ユービッタズ アイエンシーUbitus Inc. ネットワークを通してメディアを伝送するシステム及び方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023547287A (ja) * 2021-09-30 2023-11-10 17Live株式会社 ストリーミングをレンダリングするためのシステム、方法、及びコンピュータ可読媒体
JP7406713B2 (ja) 2021-09-30 2023-12-28 17Live株式会社 ストリーミングをレンダリングするためのシステム、方法、及びコンピュータ可読媒体

Also Published As

Publication number Publication date
US20170050110A1 (en) 2017-02-23
US11623141B2 (en) 2023-04-11
WO2017030771A1 (en) 2017-02-23
CN111467793A (zh) 2020-07-31
WO2017030771A8 (en) 2017-08-24
US20190282898A1 (en) 2019-09-19
JP2018532444A (ja) 2018-11-08
JP7157099B2 (ja) 2022-10-19
JP6712310B2 (ja) 2020-06-17
US20210362051A1 (en) 2021-11-25
CN112245900A (zh) 2021-01-22
CN112245900B (zh) 2024-04-30
US10315108B2 (en) 2019-06-11
CN111467793B (zh) 2024-04-09
CN106621326B (zh) 2020-10-27
CN106621326A (zh) 2017-05-10
US11083964B2 (en) 2021-08-10

Similar Documents

Publication Publication Date Title
JP7157099B2 (ja) クライアント側のアセット統合を用いたクラウドゲームストリーミング
US11213744B2 (en) User save data transfer management for fast initiation of cloud video game
JP6695449B2 (ja) ブラウザベースのクラウドゲーム
US11759707B2 (en) Methods and systems for scheduling game play of a video game
US11052313B2 (en) Using connection quality history to optimize user experience
JP6959925B2 (ja) クラウドゲーミングにおけるユーザ保存データ管理方法
US11882188B2 (en) Methods and systems for maintaining smooth frame rate during transmission of streaming video content
CN113226500A (zh) 使用对等流式传输的众包云游戏

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200529

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220414

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220906

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221006

R150 Certificate of patent or registration of utility model

Ref document number: 7157099

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150