JP2020501619A - ブラウザベースのクラウドゲーム - Google Patents

ブラウザベースのクラウドゲーム Download PDF

Info

Publication number
JP2020501619A
JP2020501619A JP2018565359A JP2018565359A JP2020501619A JP 2020501619 A JP2020501619 A JP 2020501619A JP 2018565359 A JP2018565359 A JP 2018565359A JP 2018565359 A JP2018565359 A JP 2018565359A JP 2020501619 A JP2020501619 A JP 2020501619A
Authority
JP
Japan
Prior art keywords
game
video
cloud
browser
client device
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
JP2018565359A
Other languages
English (en)
Other versions
JP6695449B2 (ja
Inventor
ポジン、デイヴィッド
Original Assignee
ソニー・インタラクティブエンタテインメント エルエルシー
ソニー・インタラクティブエンタテインメント エルエルシー
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 ソニー・インタラクティブエンタテインメント エルエルシー, ソニー・インタラクティブエンタテインメント エルエルシー filed Critical ソニー・インタラクティブエンタテインメント エルエルシー
Publication of JP2020501619A publication Critical patent/JP2020501619A/ja
Application granted granted Critical
Publication of JP6695449B2 publication Critical patent/JP6695449B2/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/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/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • 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/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/214Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads
    • A63F13/2145Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads the surface being also a display device, e.g. touch screens
    • 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/33Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
    • A63F13/335Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
    • 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/34Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using peer-to-peer connections
    • 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/352Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
    • 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 encoded video 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/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/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/32Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections
    • A63F13/323Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections between game devices with different hardware characteristics, e.g. hand-held game devices connectable to game consoles or arcade machines

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Child & Adolescent Psychology (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【解決手段】方法は、クライアント装置によって実行されるブラウザから、クラウドビデオゲームのゲームプレイを開始する要求を受信すること、要求に応答して、ウェブアプリケーションをクライアント装置に送信し、クラウドゲーム機によるクラウドビデオゲームの実行を開始して、圧縮ビデオフォーマットで符号化され、暗号化されたクラウドビデオゲームのビデオコンテンツを含む第1のビデオストリームを生成すること、クラウドゲーム機からストリーミングサーバへ第1のビデオストリームを送信すること、ストリーミングサーバによって第1のビデオストリームを解読して、符号化ビデオコンテンツを生成すること、ストリーミングサーバによって、符号化ビデオコンテンツを、保護プロトコルを使用してウェブアプリケーションに送信することを含み、それによって第2のビデオストリームを設定し、ウェブアプリケーションが、第2のビデオストリームを受信して処理して、クラウドビデオゲームのビデオコンテンツをディスプレイ装置へのレンダリング用に提供するように構成される。【選択図】図2

Description

本開示は、ブラウザベースのクラウドゲームのためのシステム及び方法に関し、より具体的には、ウェブクライアントアプリケーションとストリーミングサーバとの間のピアツーピア接続の確立、及びビデオゲームを実行するクラウドゲーム機からの暗号化されたビデオストリームの解読を行うストリーミングサーバの使用法に関する。
[関連技術の説明]
現在、急成長している技術領域のひとつに、クラウドゲームの分野がある。ユーザは、インターネットなどのネットワークを通じて、クラウドゲームサイト上の多数のゲームにアクセスし、インタラクション/ゲームプレイを開始することができる。ゲームプレイを求めてゲームを選択するには、ユーザは、クラウドゲームサイト上の自分のアカウントにアクセスし、ゲームプレイ用のユーザアカウントを利用できる複数のゲームのうちの1つを起動する。クラウドビデオゲームから生成される映像は、クライアント装置に伝送される。クラウドゲームシステムの一例として、Playstation(登録商標)Nowクラウドゲームサービスが挙げられる。
こうした背景のもと、本開示の実施形態が生じる。
本開示の実施態様は、ブラウザベースのクラウドゲームを実現するために使用される方法及びシステムを提供する。
概して、本開示の実施態様は、モダンウェブブラウザ内のゲームクライアントを対象にしている。ブラウザクライアントはWebRTC技術を用いて構築することができ、これは、主要ブラウザの全てにわたって同じように機能する、十分にサポートされた技術である(http://www.webrtc.org/)。WebRTCは、エラーチェックまたはパケット保証が行われないという点でTCP伝送とは異なる。UDP伝送と同様に、WebRTCは、オーバーヘッドをほとんどまたは全く伴わずにパケットを送受信することによって高速である。
本開示の実施態様では、WebRTCを使用して、2つのクライアント間を直接接続するピアツーピア接続を作成する。ピアツーピア接続によって、マルチホップを回避し、レイテンシに影響を与えることが可能になる。接続開始は、セッション記述プロトコル(SDP)を使用して実行される。SDPは、2つの装置間の通信契約を作成するために使用され、バッファリング、キーフレーム定義、フォールバックポート、プロトコルなどを制御するためのいくつかのオプションをサポートする。
ブラウザクライアントは、Node.jsサーバによってサポートされ得る。Nodeサーバは、オーバーヘッドが非常に小さく、極めて高性能である。Nodeサーバはコンソールと直接通信する。サーバは現在のデータストリームをそのまま受け入れ、ストリームの解読はサーバ側で行われる。サーバの能力及び動作を制御することができるので、性能が大幅に異なり得るユーザマシンへの依存を最小限に抑えることができる。
解読されたストリームは、全てのブラウザがサポートすることができる標準のウェブ技術で圧縮され得る。サーバは、WebRTCを使用して、ストリームを消費するブラウザとの安全なセッションを作成する。いくつかの実施態様では、映像接続は、VLANストリーミングサーバなどのビデオストリーミングサーバを経由してもよい。いくつかの実施態様では、Nodeサーバと連携してビデオストリーム及びオーディオストリームを送信する別個のストリーミングサーバを備えていると都合が良い。
WebRTCデータチャネルを、サーバとブラウザとの間に起動させることもできる。そのデータチャネルは、実行中のビデオゲームにコマンドを送り返すために使用される。入力装置(例えば、コントローラ、キーボード、マウス、タッチスクリーンなど)を使用することができる。入力装置によって生成されたコマンドは、データチャネルを介してNodeサーバに送信される。そしてNodeサーバは、適切なコマンドをコンソールに送信する。
したがって、連続したゲーム体験を実現する、レイテンシがごく少ない高速の接続が確立される。特定ブラウザに依存しない迅速なストリーム配信のためのWebRTC、大量のデータ操作のためのNodeサーバ、及びサーバ経由でコンソールに伝達し返すためのデータチャネルを使用して、満足感を与えるゲーム体験を作り出すことができる。ゲーム機のコンソールとブラウザとの間の通信媒体としてNode.jsサーバを使用することによって、クライアント用の軽量プロキシが作成され、この軽量プロキシによって、データ送信においてごく少ないレイテンシが生じるが、処理時間が大幅に節約される可能性がある。WebRTCを使用して、ピアツーピア接続を作成する。
いくつかの実施態様によれば、以下の方法動作を含む方法が提供される。すなわち、クライアント装置によって実行されるブラウザからネットワークを介して、クラウドビデオゲームのゲームプレイを開始する要求を受信すること、要求を受信することに応答して、クライアント装置のブラウザによる実行用に構成されたウェブアプリケーションを、ネットワーク経由でクライアント装置に送信し、クラウドゲーム機によるクラウドビデオゲームの実行を開始して、圧縮ビデオフォーマットで符号化され、暗号化方式を用いて暗号化されたクラウドビデオゲームのビデオコンテンツを含む第1のビデオストリームを生成すること、クラウドゲーム機からストリーミングサーバへ第1のビデオストリームを送信すること、ストリーミングサーバによって第1のビデオストリームを解読して、符号化ビデオコンテンツを生成すること、ストリーミングサーバによって、符号化ビデオコンテンツを、保護プロトコルを使用してネットワーク経由でウェブアプリケーションに送信することを含み、符号化ビデオコンテンツの送信が第2のビデオストリームを設定し、ウェブアプリケーションが、第2のビデオストリームを受信して処理して、クラウドビデオゲームのビデオコンテンツをディスプレイ装置へのレンダリング用に提供するように構成される方法である。
いくつかの実施態様では、ウェブアプリケーションは、クライアント装置のブラウザによって実行される際に、ネットワークを通じてストリーミングサーバとピアツーピア接続を確立するように構成され、第2のビデオストリームをウェブアプリケーションに送信することがピアツーピア接続を介して行われる。
いくつかの実施態様では、本方法は、ウェブアプリケーションによるディスプレイ装置へのビデオコンテンツのレンダリングの間中に、1つまたは複数のクライアント入力装置からクライアント装置において受信される対話型入力に由来した、ウェブアプリケーションによって処理された入力データを、ストリーミングサーバによってウェブアプリケーションからピアツーピア接続を介して受信すること、ストリーミングサーバによって入力データを処理して、クラウドビデオゲーム用のコマンドを生成し、クラウドビデオゲームの将来のゲーム状態を決定するために、クラウドビデオゲームの現在のゲーム状態に適用されるようにストリーミングサーバからクラウドゲーム機にコマンドを送信することをさらに含む。
いくつかの実施態様では、1つまたは複数のクライアント入力装置は、キーボード、マウス、タッチパッド、タッチセンシティブディスプレイ、ゲームコントローラ、またはモーションコントローラからなる群から選択される。
いくつかの実施態様では、本方法は、ストリーミングサーバによって、クライアント装置のブラウザの種類を識別すること、ブラウザの種類を識別することに応答して、符号化ビデオコンテンツを第2の圧縮ビデオフォーマットにコード変換することをさらに含み、第2のビデオストリームを送信することが、コード変換されたビデオコンテンツを送信することを含む。
いくつかの実施態様では、第2の圧縮ビデオフォーマットは、ブラウザの識別された種類に基づいて選択され、第2の圧縮ビデオフォーマットが、ブラウザによってサポートされるビデオフォーマットである。
いくつかの実施態様では、ウェブアプリケーションはWebRTCウェブAPIにアクセスする。
いくつかの実施態様では、ストリーミングサーバはNode.jsサーバである。
いくつかの実施態様では、ゲーム機は、ゲームコンソール、ゲームコンソールブレードもしくはゲームコンソールハードウェアボード、またはバーチャルゲームコンソールを実行するように構成されたサーバコンピュータのうちの1つである。
いくつかの実施態様では、保護プロトコルはハイパーテキスト転送プロトコルセキュア(HTTPS)プロトコルである。
いくつかの実施態様では、第1のビデオストリームを生成すること、第1のビデオストリームを送信すること、第1のビデオストリームを解読すること、及び符号化ビデオコンテンツを送信することの動作は、クライアント装置のブラウザを介して、クラウドビデオゲームのリアルタイム対話型ゲームプレイを可能にするように、実質的なリアルタイムで実行される。
いくつかの実施態様では、クラウドビデオゲームのビデオコンテンツは、バーチャル環境のビューを設定する。
いくつかの実施態様によれば、以下の方法動作を含む方法が提供される。すなわち、クライアント装置からネットワークを介して、クラウドビデオゲームのゲームプレイを開始する要求を受信すること、要求を受信することに応答して、クラウドゲーム機によるクラウドビデオゲームの実行を開始して、圧縮ビデオフォーマットで符号化され、暗号化方式を用いて暗号化されたクラウドビデオゲームのビデオコンテンツを含む第1のビデオストリームを生成すること、クライアント装置によって実行されるブラウザから発せられたものとして要求を識別することに応答して、次に、クライアント装置のブラウザによる実行用に構成されたウェブアプリケーションを、ネットワーク経由でクライアント装置に送信し、クラウドゲーム機からストリーミングサーバへ第1のビデオストリームを送信し、
ストリーミングサーバによって第1のビデオストリームを解読して、符号化ビデオコンテンツを生成し、ストリーミングサーバによって、符号化ビデオコンテンツを、保護プロトコルを使用してネットワーク経由でウェブアプリケーションに送信し、符号化ビデオコンテンツの送信が第2のビデオストリームを設定し、ウェブアプリケーションが、第2のビデオストリームを受信して処理して、クラウドビデオゲームのビデオコンテンツをディスプレイ装置へのレンダリング用に提供するように構成されること、クライアント装置を設定するゲームコンソールから発せられたものとして要求を識別することに応答して、次に、ディスプレイ装置へのレンダリング用に、第1のビデオストリームをネットワーク経由でゲームコンソールに送信することを含む方法である。
いくつかの実施態様では、ウェブアプリケーションは、クライアント装置のブラウザによって実行される際に、ネットワークを通じてストリーミングサーバとピアツーピア接続を確立するように構成され、第2のビデオストリームをウェブアプリケーションに送信することがピアツーピア接続を介して行われる。
いくつかの実施態様では、ブラウザから発せられたものとして要求を識別することにさらに応答して、ウェブアプリケーションによるディスプレイ装置へのビデオコンテンツのレンダリングの間中に、1つまたは複数のクライアント入力装置からクライアント装置において受信される対話型入力に由来した、ウェブアプリケーションによって処理された入力データを、ストリーミングサーバによってウェブアプリケーションからピアツーピア接続を介して受信し、ストリーミングサーバによって入力データを処理して、クラウドビデオゲーム用のコマンドを生成し、クラウドビデオゲームの将来のゲーム状態を決定するために、クラウドビデオゲームの現在のゲーム状態に適用されるようにストリーミングサーバからクラウドゲーム機にコマンドを送信する。
いくつかの実施態様では、ブラウザから発せられたものとして要求を識別することにさらに応答して、ストリーミングサーバによって、クライアント装置のブラウザの種類を識別し、ブラウザの種類を識別することに応答して、符号化ビデオコンテンツを第2の圧縮ビデオフォーマットにコード変換し、第2のビデオストリームを送信することが、コード変換されたビデオコンテンツを送信することを含む。
いくつかの実施態様では、第2の圧縮ビデオフォーマットは、ブラウザの識別された種類に基づいて選択され、第2の圧縮ビデオフォーマットが、ブラウザによってサポートされるビデオフォーマットである。
いくつかの実施態様では、ウェブアプリケーションはWebRTCウェブAPIにアクセスする。
いくつかの実施態様では、ストリーミングサーバはNode.jsサーバである。
いくつかの実施態様では、ゲーム機は、ゲームコンソール、ゲームコンソールブレードもしくはゲームコンソールハードウェアボード、またはバーチャルゲームコンソールを実行するように構成されたサーバコンピュータのうちの1つである。
本開示の他の態様及び利点は、添付の図面と併用され、本開示の原理を例として示す、以下の詳細な説明から明らかになるであろう。
本開示は、そのさらなる利点と共に、添付の図面と併用される以下の記述を参照することにより、最もよく理解され得る。
本開示の実施形態による、ゲームコンテンツをクラウドゲームサーバに予めロードするために使用される例示的なシステムの簡略化されたブロック図を示す。
本開示の実施態様に従って、クラウドビデオゲームをクライアント装置にストリーム配信するために実行される様々な動作を概念的に示す流れ図である。
本開示の実施態様に従って、クラウドゲームのためにウェブブラウザ、ストリーミングサーバ、及びクラウドコンソールの間に通信を確立して処理するプロセスを概念的に示す。
本開示の実施態様による、クラウドゲーム用のシステムを示す。ユーザ300は、クラウドゲームサービスにアクセスする構成となっているクライアント装置304とインタラクトする。
本開示の実施態様に従って、クラウドゲームサービスを提供するシステムを示し、データセンタでホストされるゲーム機が、専用ゲーム装置クライアントまたはブラウザクライアント装置のいずれかにサービスを提供することができる。
本開示の実施態様による、クラウドゲーム用のシステムを示し、クライアント装置とストリーミングサーバとの間の通信を確立するために使用されるコンポーネントを示す。
本開示の実施態様による、クラウドビデオゲームのゲームプレイをストリーム配信する方法を示す。
本開示の実施態様に従って、地理的に分散し、ネットワークを介して接続されるユーザに、情報コンテンツ及びサービスを配信するための例示的な情報サービスプロバイダアーキテクチャを示す。
本開示の実施態様に従って、ユーザに提示されるコンテンツを操作するのに使用されるコンピューティング装置の例示的なコンポーネントを示す。
本開示の実施態様によるゲームシステム900のブロック図である。
以下の記述では、本明細書に開示された内容の理解の徹底を期すために、多数の細部にわたる詳細な説明が行われる。しかしながら、本開示が、これらの細部にわたる詳細な内容の一部または全部を欠いたとしても実施できることは、当業者には明らかであろう。他の例において、本開示を不明瞭にしないために、良く知られたプロセスステップについては詳細には説明していない。
クラウドゲームシステムの一例として、Playstation(登録商標)Nowクラウドゲームサービスが挙げられる。現在のところ、そのようなシステムにおいて、クライアント装置は、Playstation(登録商標)4ゲームコンソールなどのゲームコンソールである。ゲームコンソールのリソースは標準化され、知られているので、クラウドで実行されるビデオゲームからゲームコンソールへのゲームプレイビデオのストリーミングを、満足の行く体験を提供するよう最適化することができる。例えば、ゲームコンソールによって実行されるクライアントアプリケーションを、ゲームコンソールのリソースを考慮して、クラウドゲームサービス向けに特別に開発することができる。
しかしながら、ゲームコンソールはプロプライエタリハードウェア装置であり、したがってクラウドゲームサービスへのアクセスを提供するためのより普遍的に利用可能な機構が求められている。1つの解決策は、ウェブブラウザ上にゲームクライアントを実装することである。ただし、ウェブブラウザにはいくつかの異なったものがあり、様々なリソース構成を有したいくつもの異なるクライアント装置が存在する。クライアント装置のリソースを保証することは不可能であり、したがってクライアント装置のリソースに大幅に依存している場合には、満足のゆく品質である安定したゲームストリーミングを提供することが不確実となる。この理由から、既存のクラウドゲームでは、プロプライエタリソフトウェアと組み合わせた専用のクライアント装置の一式が必要とされ得る。
既存のクラウドゲームシステム(例えば、Playstation(登録商標)Now)では、データセンタにクラウドゲーム機(例えば、クラウドコンソール装置)が存在し、サーバがクライアント装置(例えば、Playstation(登録商標)4ゲームコンソール)とクラウドゲーム機との間の接続を構成する。その場合はクラウドゲーム機とクライアントとの間でストリーミングが直接行われ、ストリーミングは、実行可能なサービスとなるように十分に性能が考慮された高速接続を可能にする。しかしながら、ウェブブラウザがサーバからコンテンツを要求するとき、及び従来のシステムを使用してサーバからウェブブラウザへストリーミングを行うとき、クライアント装置とクラウドゲーム機との間に存在するホップが多過ぎ、クライアント装置のリソース不足が起こり得ることが原因で、クラウドゲームにとって性能が不十分になる可能性がある。
次のように、本開示による実施態様は、クライアント装置のウェブブラウザとストリーミングサーバとの間にピアツーピア接続を確立するシステムを提供する。ストリーミングサーバは通常、レイテンシを最小限に抑えるためにクラウドゲーム機のローカルにインストールされ、クラウドゲーム機から受信したビデオストリームの解読を行い、それによってクライアント装置リソースへの依存を減らす。そのようなシステムでは、クラウドゲーム機は、専用のゲームクライアント装置(ゲームコンソールなど)に、またはストリーミングサーバにストリーミングを行うように構成することができ、その場合ストリーミングサーバは、クライアント装置においてウェブブラウザによって実行されるウェブアプリケーションとしてインスタンス化されたウェブクライアントにストリーミングを行うことが理解されよう。したがって、提供されるシステムは、専用のクライアント装置とウェブブラウザベースのクライアントとの両方に対応することにおいて順応性がある。
いくつかの実施態様では、ウェブアプリケーション及びストリーミングサーバとのピアツーピア接続は、WebRTC技術を用いて実装される。いくつかの実施態様では、ストリーミングサーバは、Node.jsサーバとして実装され、最適なストリーミング性能のためにUDPを使ってパブリッシュするように構成することができる。従来、ブラウザではTCP/IPが用いられ、TCP/IPは、パケットが失われると接続が切断されるような連続方式である。また一方、UDPでは、接続を切断することなくパケットを廃棄することが許容され、このことはストリーミングビデオ向けには有利である。
したがって、本開示による実施態様は、中間の接続を削減または排除するために(例えば、WebRTCプロトコルを使用する)ピアツーピア技術を活用し、ストリーミング性能を最適化するためにUDPを使用するウェブクライアントを提供する。ストリーミングサーバは、クラウドゲーム機に対して専用のクライアント装置として機能し、クラウドゲーム機からビデオストリームを受け取ってそれを解読する。いくつかの実施態様では、ストリーミングサーバは、保護プロトコルであるハイパーテキスト転送プロトコルセキュア(HTTPS)を使用して、ビデオコンテンツをブラウザベースのクライアントに送信する。
次のように、本開示による実施態様は、クライアント装置へのプロプライエタリソフトウェアのインストールを必要とせずに、リソース能力を保証することができないクライアント装置上のウェブブラウザを介して、ビデオゲームの満足のゆくストリーミングゲームプレイを可能にするという問題に対する解決策を提供する。ストリーミングサーバは、重大な影響を性能に与えることなく、ブラウザが受け入れてレンダリングすることができるビデオストリームを出力する。
ゲームタイトルに対するユーザ要求を受信した際に、クラウドゲームサイトと関連しているデータセンタ内のサーバ(複数可)によっていくつかの動作が実行される。クラウドゲームサイトがユーザ要求を受信すると、選択されたゲームタイトルに対応付けられたゲームをホストするデータセンタが割り出され、その要求が、割り出されたデータセンタに送信されて、選択されたゲームタイトルのゲームがインスタンス化される。要求に応答して、データセンタのサーバは、ゲームコンテンツをユーザに提示する前処理として、ゲームコードを特定し、特定したゲームコードをロードし、ゲームコードに結び付いているファイルを初期化する。ゲームに対応付けられたゲームデータには、汎用ゲームデータとユーザ固有のゲームデータとが含まれる。そのため、ファイルを初期化することには、汎用ゲームデータ及びユーザ固有ゲームデータを特定し、ロードし、初期化することが含まれる。汎用ゲームデータを初期化することには、グラフィックスエンジンを初期化すること、グラフィックスデータをインストールすること、サウンドファイルを初期化すること、アートワークをインストールすることなどが含まれ得る。ユーザ固有データを初期化することには、ユーザデータ、ユーザ履歴、ゲーム履歴などを検索し、転送し、インストールすることが含まれ得る。汎用ゲームデータ及び/またはユーザ固有データのロードは、ゲームのゲーム/グラフィックスの複雑さに応じて、数秒から数分ほどがかかり得る。
汎用ゲームデータがロードされて初期化されている間に、「スプラッシュ」画面をクライアント装置でレンダリングする目的で提供してもよい。スプラッシュ画面は、ロードされているゲームの代表的な画像を提供するように設計して、ユーザにロードされているゲームの象徴のプレビューを与えるようにしてもよい。汎用ゲームデータがロードされると、オーディオコンテンツが演奏されてもよく、ユーザ選択/ユーザカスタマイズのために選択画面/ナビゲーション画面が提示される。選択画面/ナビゲーション画面で提供されるユーザ選択入力には、ゲームレベル選択、ゲームアイコン(複数可)選択、ゲームモード選択、ゲーム賞品、追加のゲームコンテンツのアップロードを必要とし得る他のユーザ関連データが含まれ得る。ユーザ選択入力のアップロードは、ゲームコンテンツをユーザがゲームプレイで利用できるようになるまでに、さらなる遅延を引き起こす可能性がある。いくつかの実施形態では、ゲームコンテンツは、ゲームクラウドシステムからユーザのコンピューティング装置にゲームコンテンツをストリーミングすることによって、視聴及びインタラクションに利用される。ユーザ固有データをロード後に、ゲームコンテンツがゲームプレイで利用できるようになる。
図1Aは、クラウドゲームサイトを介して利用できるゲームのゲームファイルをロードするために使用される例示的なシステムを示す。本システムは、インターネットなどのネットワーク102を通じてクラウドゲームサイト104に通信可能に接続された複数のクライアント装置100を含む。クラウドゲームサイト104へのアクセス要求をクライアント装置100から受信すると、クラウドゲームサイト104は、ユーザデータストア108に格納されているユーザアカウント情報106にアクセスして、その要求を起こしたクライアント装置に関連付けされるユーザを識別する。いくつかの実施形態では、クラウドゲームサイトは、ユーザが視聴/プレイを許可された全てのゲームを判断するために、識別されたユーザを検証することもできる。ユーザアカウントの識別/検証に続いて、クラウドゲームサイトは、ゲームタイトルデータストア110にアクセスして、要求を起こしたユーザアカウントがゲームクラウドサイトで利用できるゲームタイトルを特定する。次に、ゲームタイトルデータストア110は、ゲームデータベース112とやり取りして、クラウドゲームサイトで利用可能な全てのゲームのゲームタイトルを取得する。新たなゲームが導入されると、そのゲームコードを用いてゲームデータベース112が更新され、新たに導入されたゲームのゲームタイトル情報がゲームタイトルデータストア110に提供される。要求を起こした際に、要求を起こしたクライアント装置は、クラウドゲームサイトに登録されてもされなくてもよい。要求を起こしたクライアント装置のユーザが登録ユーザではない場合、クラウドゲームサイトはそのユーザを新規ユーザとして識別し、新規ユーザに適したゲームタイトル(例えば、デフォルトのゲームタイトルセット)を選択することができる。特定されたゲームタイトルは、図1Aに示すように、表示画面100−a上に提示するためにクライアント装置に送り返される。
クライアント装置上に描画されたゲームタイトルのうちの1つにおけるユーザインタラクションが検出され、信号がクラウドゲームサイトに送信される。この信号には、ユーザインタラクションが検出されたゲームタイトル情報と、そのゲームタイトルに記録されたユーザインタラクションとが含まれる。クラウドゲームサイトは、クライアント装置から受信した信号に応答して、ゲームがホストされているデータセンタを事前に決定し、特定されたデータセンタに信号を送信して、ユーザインタラクションが検出されたゲームタイトルに対応付けされるゲームをロードする。いくつかの実施形態において、2つ以上のデータセンタがゲームをホストしていてもよい。そのような実施形態では、クラウドゲームサイトは、要求を起こしているクライアント装置の地理位置情報を決定して、クライアント装置に地理的に近いデータセンタを特定し、そのデータセンタに信号を送ってゲームを予めロードすることができる。ユーザの地理位置情報は、2〜3例を挙げると、クライアント装置内の全地球測位システム(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で示すように、さらにネットワークパケットにパケット化される。ネットワークパケット符号化プロセスには、データ暗号化プロセスを使用することもでき、それによって強化されたデータ保護を提供する。図示の実施態様では、参照符号140に示すように、オーディオパケット134及びビデオパケット136が、ネットワークを介した伝送のために生成される。
ゲームシステム118は、触覚フィードバックデータ130を付加的に生成し、触覚フィードバックデータ130はまた、ネットワーク送信のためにネットワークパケットにパケット化される。図示の実施態様では、参照符号140でさらに示すように、触覚フィードバックパケット138が、ネットワークを介した伝送のために生成される。
未処理のビデオ及びオーディオならびに触覚フィードバックデータを生成し、ビデオ及びオーディオを符号化し、符号化されたオーディオ/ビデオ及び触覚フィードバックデータを送信のためにパケット化する上記の動作は、クラウドゲームサービス/システムを集合的に設定する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は、本開示の実施態様に従って、クラウドゲームのためにウェブブラウザ、ストリーミングサーバ、及びクラウドコンソールの間に通信を確立して処理するプロセスを概念的に示す。図示の実施態様では、ウェブブラウザ200はクラウドゲームサービスにアクセスするために使用されており、現在、ユーザはクラウドビデオゲームのゲームプレイを開始したいと望んでいる。ウェブブラウザは、ウェブブラウザ内で実行されるように構成されたウェブアプリケーションを受け取り、いくつかの実施態様では、ブラウザによってサポートされるWebRTC APIにアクセスする。ウェブアプリケーションはウェブブラウザによって実行されるので、本実施態様の説明を容易にするために、「ウェブブラウザ」及び「ウェブアプリケーション」という用語は、クラウドビデオゲームのゲームプレイのためにそれらの使用法を説明する際に、互換性があるようにして用いられる。
ピアツーピア接続は、ウェブブラウザ200とストリーミングサーバ202との間に確立される。いくつかの実施態様では、ピアツーピア接続は、RTCPeerConnection APIを使用し、さらにはセッション記述プロトコル(SDP)に従って確立される。大まかに言って、これには、SDPを使用して、オファーとアンサーとをやり取りすることによって、メディア構成情報を交換するためのシグナリングが必要とされる。図示の実施態様では、ウェブブラウザ200はストリーミングサーバ202へのオファーを開始し、ストリーミングサーバ202はセッション管理モジュール206を使用して、参照符号208で示すように、レスポンスのアンサーを生成する。これにより、ウェブブラウザ200とストリーミングサーバ202との間にピアツーピア接続が確立され、ピアツーピア接続により、小さなレイテンシがもたらされて、最適なストリーミングビデオ性能が可能になる。
要求されたクラウドビデオゲームは、クラウドコンソール204によって実行され、クラウドコンソール204はビデオゲームを実行し、第1のビデオストリームを設定する、特定のビデオフォーマットでの符号化、及び暗号化方式を用いた暗号化の両方が施されたビデオデータを生成する。クライアント装置がゲームコンソールなどの専用クライアントゲーム装置である場合、この第1のビデオストリームは、専用クライアントゲーム装置に直接送信することができ、この専用クライアントゲーム装置は、第1のビデオストリームを復号及び解読するように構成される。しかしながら、本実施態様では、クライアントは、そのリソースが満足の行くストリーミングサービスを提供することが保証されない可能性があるクライアント装置上で動作するウェブブラウザであるので、その場合、クライアント装置の機能への依存を制限することが望ましい。したがって、ストリーミングサーバ202は、第1のビデオストリームを受信し、それを解読する(参照符号212)ように構成されたビデオ再混合モジュール210を含む。この解読されたビデオは、ディスプレイ装置にレンダリングするために保護プロトコルを介してウェブブラウザ200に送信され、それによって第2のビデオストリームを設定することができる。保護プロトコルは、ストリーミングサーバ202とウェブブラウザ200との間に確立されたピアツーピア接続(例えば、RTCPeerConnection API)に従ったものであることが理解されよう。いくつかの実施態様では、保護プロトコルは、SRTPなどのWebRTCによって実装されたものである。ストリーミングサーバ202、より具体的にはビデオ再混合モジュール210は、クラウドコンソール204によって適用された暗号化を解消し、ピアツーピア接続のためにウェブブラウザ200によってサポートされる別の暗号化を適用できることが理解されよう。
オプションで他の実施態様において、第1のビデオストリームを解読することに加えて、ビデオ再混合モジュール210は、(解読された)第1のビデオストリームを復号し(参照符号212)、次に結果として生じるビデオコンテンツを、特定の種類のウェブブラウザ200に適しているかまたは好ましいビデオフォーマットで再符号化する(参照符号214)ように構成することもできる。ウェブブラウザの種類の例としては、Internet Explorer、Chrome、Firefox、Safariなどが挙げられる。再符号化されたビデオコンテンツは、保護プロトコルを介してウェブブラウザ200に送信され、したがって現時点で第1のビデオストリームからコード変換されている第2のビデオストリームが設定される。
ストリーミングサーバは、ブラウザ入力機構(キーボード、マウス、タッチパッド、トラックボール、その他のブラウザ入力装置など)を介して受信される入力データを、コンソールコントローラコマンドに変換することが可能なコマンド変換モジュール216をさらに含み(参照符号218)、コンソールコントローラコマンドはクラウドコンソール204に送信される。いくつかの実施態様では、ストリーミングサーバ202によってブラウザから受信された入力データは、RTCDataChannel APIを使用して送信される。ストリーミングサーバ202から受信されると、コンソールコントローラコマンドがクラウドコンソール204によって適用され、実行中のビデオゲームの状態が更新される。
図3は、本開示の実施態様による、クラウドゲーム用のシステムを示す。ユーザ300は、クラウドゲームサービスにアクセスする構成となっているクライアント装置304とインタラクトする。ユーザ300は、入力装置302(例えば、マウス、キーボード、コントローラ装置、タッチパッド、トラックボール、モーションコントローラ、タッチスクリーンなど)を操作して、入力を生成し、入力をクライアント装置304に提供することができる。さらに、クライアント装置304は、表示装置314にコンテンツを表現するように構成することができる。様々な実施態様において、表示装置314は、ヘッドマウントディスプレイ、モニタ、LCD/LEDディスプレイ、タッチスクリーンディスプレイ、テレビ、プロジェクタなどであってもよいことが理解されよう。
クライアント装置は、ネットワーク316を通じてクラウドゲームサーバ318と通信し、クラウドゲームサーバ318はユーザのクラウドゲームアカウントへのアクセスを提供する。クラウドゲームサーバ318は、ユーザアカウント記憶装置322からユーザデータ324を検索する。図示の実施形態では、ユーザデータ324は、そのユーザ300に固有のものである。例として、ユーザデータ324には、ユーザによるゲームプレイの利用が可能なゲームタイトルであるタイトル326などの様々なクラウドゲーム関連データが含まれ得る。これらは、ユーザが購入したゲームタイトル、ユーザが有料で借りたゲームタイトル、ユーザが無料で借りたゲームタイトル、ユーザが授与されたゲームタイトル、またはユーザが別の方法でゲームプレイ用のアクセス権を得たゲームタイトルであり得る。ユーザデータにはまた、ゲームセーブデータ328、トロフィー330、統計332、ソーシャルデータ334(例えばソーシャルグラフデータを含む)、及び履歴データ336(例えばユーザアクセス履歴、ゲームプレイ履歴など)が含まれてもよい。
ユーザ300は、ユーザがアクセス許可を有する所与のクラウドビデオゲームをプレイしたいと望む場合、ユーザは、ウェブブラウザ306を使用して、クラウドゲームサーバ318からのグラフィカルユーザインタフェース(GUI)にアクセスすることができる。GUIはクライアント装置304によってディスプレイ装置314上に提示され、ユーザ300は、GUIを介して、所与のクラウドビデオゲームの選択を指示することができる。ゲームプレイ用のビデオゲームが選択されると、ゲーム要求がクライアント装置304からクラウドゲームサーバ318に送信される。ゲーム要求により、ユーザがプレイを望むゲームタイトルが特定され得る。クラウドゲームサーバ318は、ゲーム要求の受信に応答して、クラウドゲーム機204を起動して、要求されたビデオゲームタイトルをインスタンス化する。すなわち、クラウドゲーム機204は、要求中のクライアント装置304に割り当てられ、要求されたビデオゲームタイトルの実行を開始する。
ゲーム機204は、要求されたゲームタイトルコードをゲームタイトルデータストア320から取得し、実行中のビデオゲームを設定するゲームタイトルコードを実行する。ゲーム機204は、暗号化及び符号化された第1のビデオストリームを出力する。ゲーム機204から出力される第1のビデオストリームはストリーミングサーバ202に供給され、ストリーミングサーバ202が第1のビデオストリームを解読する。次に、結果として生じる符号化ビデオが、安全なネットワーク通信プロトコルに従ってネットワーク316経由でクライアント装置304に送信され、第2のビデオストリームを設定することができる。第2のビデオストリームは、ブラウザ306によって実行されるウェブアプリケーション308によって処理され、対話型ゲームプレイ向けにディスプレイ装置314にレンダリングされる。いくつかの実施態様では、クラウドビデオゲームをプレイするという要求に応答して、ウェブアプリケーション308がクラウドゲームサーバ318からクライアント装置304に提供される。他の実施態様において、ウェブアプリケーション308は、クラウドビデオゲームをプレイするという要求に先立ってクライアント装置304に提供されてもよい。いくつかの実施態様では、ウェブアプリケーションまたはその一部は、ウェブブラウザ306に関連付けられたローカル記憶装置310において、クライアント装置304上でキャッシュに保存することができる。そのような実施態様では、所与のビデオゲームのゲームプレイが要求されたときに、ウェブアプリケーションを、利用可能であれば、実行のためにローカル記憶装置310から読み出すことができる。ウェブアプリケーション308は、ディスプレイ装置314へのレンダリングのためにストリーミングサーバ202から受信される第2のビデオストリームの処理を提供するように構成され、クライアント装置304によって入力装置302から受信される対話型入力を処理することもでき、この対話型入力はストリーミングサーバ202に逆送信するために処理されることが理解されよう。
当業者には理解されるように、実行中のビデオゲームは、入力を受け取り、その入力を処理してビデオゲームのゲーム状態を更新するゲームエンジンを設定することができる。いくつかの実施態様では、初期コンテンツがクライアント装置で提示されている間に、ビデオゲームのゲームエンジンがゲーム機で初期化される。このゲームエンジンは、ゲーム機がゲームエンジンの実行を継続するためのトリガを待つとき、初期化され、次いで休止状態に入ることができる。ユーザ入力から設定され得るトリガを受信すると、休止状態から抜け出て、結果として生じるゲームエンジンの実行によって、ビデオゲームの対話型ゲームプレイの開始が提供される。いくつかの実施態様では、多くの場合、ユーザが、最後に保存した記憶位置からゲームプレイを続けることを通常は望むので、ゲーム機におけるゲームエンジンの初期化は、ユーザが最後に保存したゲームデータをロードするように構成してもよい。
記述の便宜上、ゲーム機204が、ゲームコンソールや同等のハードウェア(例えば、ブレード状ゲームコンソールハードウェア)などの個々の装置として企図される実施態様について記載している。しかしながら、他の実施態様では、ゲーム機によって実行されるものとして記載した機能は、ゲームコンソール(または同等のハードウェア)とさらなるストリーミングプロセッサ/サーバとの組合せなど、複数の装置によって実行できることが理解されよう。そのような実施態様では、ゲームコンソールはビデオゲームを実行し、符号化されていない及び/または暗号化されていない初期ビデオストリームをレンダリングすることができ、次に、この初期ビデオストリームを別個のストリーミングプロセッサ/サーバによって符号化及び/または暗号化して、図示の実施態様ではストリーミングサーバ202によって処理される前述の第1のビデオストリームを生成することができる。初期ビデオストリームは、上記のとおり、初期ビデオストリームを復号して解読することができる専用クライアントゲーム装置に送信され得ることが理解されよう。しかしながら、ウェブブラウザを使うクラウドゲームを、ユーザにとって満足の行く性能で可能にするために、ストリーミングサーバ202が図示のように利用される。このように、ゲーム機204から出力される第1のビデオストリームは、専用のクライアントゲーム装置かそれともクライアント装置上で実行されているウェブブラウザのいずれかにゲームプレイをストリーム配信するのに使用することができる。
いくつかの実施態様では、所与のビデオゲームについて、ゲームデータ312をキャッシュに保存するか、またはローカル記憶装置310に格納してもよい。そのようなコンテンツは、ビデオゲームのゲームプレイのために、記憶し、及び/または読み出すことができる。例えば、様々なアートアセット、オーディオアセット、設定、及び他のデータをゲームデータの一部として格納することができる。
様々な実装態様において、クライアント装置は、汎用コンピュータ、特殊用途のコンピュータ、携帯型ゲームコンソール、パソコン、ラップトップコンピュータ、タブレットコンピュータ、モバイルコンピューティング装置、携帯ゲーム装置、携帯電話、セットトップボックス、ストリーミングメディアインタフェース/装置、多機能テレビもしくはネットワークディスプレイ、または本明細書で定義されるクライアント機能を満たすように構成することができる他の任意のコンピューティング装置とすることができる。いくつかの実施態様では、クラウドゲームシステムは、ユーザによって利用されているクライアント装置の種類を検出し、ユーザのクライアント装置に適したクラウドゲーム体験を提供するように構成される。例えば、画像設定、オーディオ設定、及び他の区分の設定が、ユーザのクライアント装置向けに最適化され得る。
図4は、本開示の実施態様に従って、クラウドゲームサービスを提供するシステムを示し、データセンタでホストされるゲーム機が、専用ゲーム装置クライアントまたはブラウザクライアント装置のいずれかにサービスを提供することができる。図示の実施態様では、クラウドホスティングシステム400は、クラウドゲームサービスを可能にするように、クライアント装置によってネットワーク316を通じてアクセスできる。データセンタ割当てロジック406は、所与のクライアント装置をデータセンタ408などの特定のデータセンタに割り当てるように構成される。データセンタ割当てロジック406は、地理的な近接性、ネットワークの近接性、IPアドレス、データセンタ間の負荷バランス、ネットワークのレイテンシ(例えばクライアント装置とデータセンタとの間のレイテンシ)、所与のデータセンタへの事前割当て、所与のデータセンタにおけるユーザのゲームセーブデータの場所などを含む様々な要因に基づいて、所与のクライアント装置を特定のデータセンタに割り当てることができることが理解されよう。データセンタ割当てロジック406は、例えばネットワーク条件が変化し、クライアント装置を再割当てすることによって、より良好なゲームストリーミング性能が得られると判断した場合、所与のクライアント装置を、新しいデータセンタに再割当てすることもできる。
いくつかの実施態様では、クラウドホスティングシステム400は、クラウドゲームプラットフォームインタフェースを管理し、これをクライアント装置に提供する。クラウドゲームプラットフォームインタフェースは、ユーザが購入及び/またはゲームプレイに利用可能なゲームタイトルを閲覧し、特定のビデオゲームのゲームプレイを開始する要求を起こすことを可能にするグラフィカルユーザインタフェースであり得る。クラウドゲームプラットフォームインタフェースは、クラウドゲームシステムにアクセスしている特定のユーザについてのユーザアカウントデータ322に応じて、カスタマイズできることが理解されよう。ビデオゲームのゲームプレイを選択または開始することに加えて、ゲームプラットフォームインタフェースは、他の機能、例えば、ソーシャルネットワーク(複数可)、ニュース、メディアライブラリ、ビデオコンテンツ、オーディオコンテンツ、画像コンテンツ、ユーザアカウント設定などへのアクセスを提供することができる。いくつかの実施態様では、ビデオゲームのゲームプレイを開始する要求が所与のクライアント装置から受信されると、次にそのビデオゲームのストリーミングゲームプレイのために、クライアント装置が、データセンタ408、より具体的には特定のゲーム機204に割り当てられる。
データセンタ408は、ゲーム機204を含むデータセンタにおける様々なゲーム機の利用を管理するように構成されたゲーム機マネージャ410を含むことができる。例えば、データセンタ408内の特定のゲーム機への所与のクライアントの割当てが、ゲーム機マネージャ410によって決定されてもよい。さらに、ゲーム機には、ビデオゲームに対する需要(または予想される需要)に基づいて特定のビデオゲームを予めロードすることができ、その結果、ビデオゲームのゲームプレイを開始するための待ち時間を減らすことができる。クライアントがゲーム機204に割り当てられると、ゲーム機204は、ゲームセーブデータ記憶装置412から、ユーザの以前に保存したゲームデータをロードすることができる。
図示の実施態様に示すように、ゲーム機204がクラウドビデオゲームを実行する際のゲーム機204からの出力は、コンソールクライアント装置414またはブラウザクライアント装置304のいずれかにサービスを提供するために使用することができる。コンソールクライアント装置(上記のとおり、ブラウザベースのクライアントではなく、専用のクライアントゲーム装置であるクライアント装置)について言えば、ゲーム機204からの出力は、いくつかの実施態様ではHMDであり得るディスプレイ装置416にレンダリングするために、ネットワーク316経由でコンソールクライアント装置414に送信される暗号化及び符号化されたビデオストリームである。
また一方、クライアント装置が、クラウドゲームシステムにアクセスするために利用されるブラウザ(例えば図3に示すブラウザ306)を実行するブラウザクライアント装置304である場合、ゲーム機204からの出力は、ネットワーク316経由でブラウザクライアント装置304に送信される前に、暗号解読と可能なコード変換とのために、最初にストリーミングサーバ202に供給される。いくつかの実施態様では、クライアント装置304のブラウザは、ウェブサーバ402と通信してクラウドゲームプラットフォームインタフェースにアクセスし、要求されたビデオゲームのゲームプレイを開始する。本開示の実施態様によれば、ゲーム機204によって生成される第1のビデオストリームは、適切な符号化方式で符号化され、ネイティブ暗号化方式で暗号化される。一方、ストリーミングサーバ202からクライアント装置304に送信される第2のビデオストリームも同様に符号化することができるが、ストリーミングサーバ202とクライアント装置304との間の伝送に利用される安全な伝送プロトコル(例えばHTTPS)による、別方式の非ネイティブ暗号化方式で暗号化され得る。
前述のコンソールクライアント装置は、専用クライアント装置の一例に過ぎないことが理解されるべきであり、他の実施態様では、他機種の専用クライアント装置で代用できることが理解されよう。本開示の目的のための専用クライアント装置は、ゲーム機204から出力される暗号化されたビデオストリームの解読を行うように構成されたものであり、通常、この目的のためのプロプライエタリソフトウェアの能力を有し、このソフトウェアと共にインストールされている。通常は、特化されたゲームプラットフォームソフトウェアを実行している特殊用途のコンピュータであるゲームコンソールに加えて、携帯ゲーム装置、セットトップボックス、多機能テレビ、または本開示に従って専用クライアント装置の機能を遂行するように構成された他の装置など、他種の装置を専用クライアント装置として構成することができる。そのような専用のクライアント装置と対照的に、ブラウザクライアント装置304は、ゲーム機204からのビデオストリームの解読を行わない。
図5は、本開示の実施態様による、クラウドゲーム用のシステムを示し、クライアント装置とストリーミングサーバとの間の通信を確立するために使用されるコンポーネントを示す。クライアント装置304上のブラウザ306によって実行されるウェブクライアント308とストリーミングサーバ516との間の通信を確立するために、シグナリング手順が実行される。シグナリング手順中に、通信を初期化または終了してエラーを報告するためのセッション制御メッセージ、ネットワーク構成情報(例えばIPアドレス及びポート)、及びメディア機能(例えばブラウザによって処理されるコーデック及び解像度)を含む様々な情報が交換される。
いくつかの実施態様では、シグナリングは、RTCPeerConnection APIを使用して、セッション記述プロトコル(SDP)に従って実行されて、ストリーミング初期設定パラメータを設定する。さらに、Interactive Connectivity Establishment(ICE)フレームワークを利用して、ネットワーク情報の交換を促進し、クライアント装置304とストリーミングサーバ516との間の最良のネットワーク経路を見つけることができる。大まかに言って、これには、先ず、それぞれの装置のオペレーティングシステム及びネットワークカードから得られたホストアドレスを使用して、接続を試みることが必要とされ得る。これが(例えば、ネットワークアドレス変換(NAT)を用いる装置が原因で)失敗した場合、STUNサーバ504を使用して外部アドレスが取得され、それが失敗した場合、トラフィックはTURNリレーサーバ506を介してルーティングされる。いくつかの実施態様では、TURNサーバがSTUNサーバの機能を含み得るので、STUNサーバ及びTURNサーバを同一サーバとすることができる。
ウェブクライアント308は、WebRTC API500にアクセスして、ウェブクライアントとストリーミングサーバ516との間のデータのストリーミングを処理する種々のWebRTCサービス502を利用する。例えば、いくつかの実施態様では、ウェブクライアントによって受信されたビデオストリームは、WebRTCプロトコルを使用して、例えばRTCPeerConnectionコンポーネント及び基礎をなすWebRTCプロトコル/コーデックを使用して消費される。ストリーミングサーバ516は、上述のシグナリング手順に従って、ストリーミングサーバとウェブクライアントとの間のセッションの確立を処理するセッションマネージャ518を含むことができる。
クラウドゲーム機204はクラウドビデオゲームを実行し、それによってビデオゲームロジック510を設定する。ビデオゲームロジック510は、クライアントから提供されたときにビデオゲームをプレイするユーザからの入力を使用して、ビデオゲームのゲーム状態を維持し、ゲーム状態を継続的に更新する。クラウドゲーム機204は、暗号化及び符号化された第1のビデオストリームを生成するビデオレンダラ512を含むことができる。ストリーミングサーバ516(例えば、node.jsサーバ)は、クラウドゲーム機204から受信した第1のビデオストリームを解読するように構成された暗号解読ロジック520を含む。オプションで、トランスコーダ522は、特定型式のブラウザ306用の好ましい符号化フォーマットに最適化するように、解読されたビデオストリームを、ある符号化フォーマットから別の符号化フォーマットにコード変換してもよい。ビットレート制御及び/または圧縮率、色調整、オーディオ処理などの付加的なビデオ処理を実行することができる。上述のように、結果として生じる符号化ビデオコンテンツは、保護プロトコルを介してウェブクライアント308に送信される。
さらに、ウェブクライアント308とストリーミングサーバ516との間にデータチャネルが確立され、それを通じてクライアント装置304で生成された入力データがストリーミングサーバ516に送信される。この入力データは、クライアント装置304の入力装置(例えば入力装置302)から受信した対話型入力に応答して生成することができる。いくつかの実施態様では、データチャネルは、RTCDataChannel APIを使用して確立される。ストリーミングサーバ516は、データチャネルを通じて受信される入力データを、クラウドゲーム機204用の1つまたは複数のコマンドに変換するように構成された入力変換器524を含む。コマンドはクラウドゲーム機204に送信され、クラウドゲーム機204は、受信したコマンドを処理してそれらをビデオゲームロジック510に適用するための入力処理器514を含むことができる。
前述の実施態様に従って説明されたように、ビデオストリームは、ウェブクライアント308による処理及びディスプレイへのレンダリングのために、ストリーミングサーバ516からクライアント装置304に送信される。また一方、いくつかの実施態様では、追加のビデオストリーミングサーバ508(例えば、VideoLANストリーミングサーバ)を利用して、ビデオコンテンツをクライアント装置304にストリーム配信することができる。追加のビデオストリーミングサーバ508は、クライアント装置及び関連するブラウザのストリーミング性能を最適化するために、ビデオコンテンツのコード変換、ビットレート制御、または他の処理を処理するように構成され得る。
図6は、本開示の実施態様による、クラウドビデオゲームのゲームプレイをストリーム配信する方法を示す。方法動作600において、クラウドビデオゲームのゲームプレイを開始するための要求が、クライアントから、クラウドゲームシステムによって、ネットワーク(例えばインターネットを含む)を通じて受信される。方法動作602において、クライアントは、データセンタに割り当てられ、さらに、要求されたビデオゲームを実行するように構成されたデータセンタ内の特定のクラウドゲーム機に割り当てられる。方法動作604において、クライアントの種類が決定される。クライアントが、ビデオゲームの実行の結果、クラウドゲーム機によって生成されたビデオストリームを処理する能力を備えたゲーム装置である場合、動作610において、クラウドゲーム機からのビデオストリームが、直接クライアントにストリーム配信される。
しかし、クライアントが、クライアント装置(前述のゲーム装置クライアントと同様の能力を備えていないクライアント装置)上で実行されるブラウザである場合、動作606において、クラウドゲーム機からのビデオストリームは、クラウドゲーム機に対して「クライアント」の機能を果たすストリーミングサーバに送信される。ストリーミングサーバは、ビデオストリームの解読を行い、さらにビデオストリームをコード変換し、または別の方法で処理することができる。オペレーション608において、次にストリーミングサーバは、この場合はクライアントであるブラウザに第2のビデオストリームを送信する。
したがって、前述の方法は、暗号化されたビデオストリームを生成するクラウドゲーム機を提供し、必要条件を備えたゲーム装置及びブラウザベースクライアント装置の両方にサービスを提供するために利用される。
図7は、情報サービスプロバイダアーキテクチャの実施形態を示す。情報サービスプロバイダ(ISP)770は、地理的に分散してネットワーク786を介して接続されたユーザ782に、多数の情報サービスを配信する。ISPは、株価の更新などのただ1種類だけのサービス、または放送メディア、ニュース、スポーツ、ゲームなどの種類豊富なサービスを配信することができる。さらに、各ISPが提供するサービスは動的であり、つまり、サービスはいつでも追加または削除ができる。すなわち、特定の個人に特定の種類のサービスを提供するISPは、時間と共に変化し得る。例えば、ユーザが自分の地元にいる間、ユーザは、ユーザの近くのISPによってサービスを受けることができ、ユーザが別の都市に赴くとき、ユーザは異なるISPによってサービスを受けることができる。地元のISPは、必要な情報及びデータを新しいISPに転送し、その結果、ユーザ情報が新しい都市までユーザを「追いかけ」、そのデータをユーザに近づけてアクセスし易くする。別の実施形態では、ユーザの情報を管理するマスタISPと、マスタISPからの制御下でユーザと直接インタフェースをとるサーバISPとの間に、マスターサーバ関係を確立することができる。別の実施形態では、クライアントが世界中を移動するとき、データがあるISPから別のISPに転送されて、ユーザの要求に応えるのに適した位置にあるISPを、こうしたサービスを提供するISPにする。
ISP770は、ネットワークを介して顧客にコンピュータベースのサービスを提供するアプリケーションサービスプロバイダ(ASP)772を含む。ASPモデルを使用して提供されるソフトウェアは、オンデマンドソフトウェアまたはサービスとしてのソフトウェア(SaaS)と呼ばれることもある。特定のアプリケーションプログラム(顧客関係管理など)へのアクセスを提供する簡単な様式は、HTTPなどの標準プロトコルを使用することである。アプリケーションソフトウェアは、ベンダのシステム上にあり、HTMLを使用するウェブブラウザを介して、ベンダによって提供される特殊目的クライアントソフトウェア、またはシンクライアントなどの他のリモートインタフェースによって、ユーザによってアクセスされる。
地理的に広い範囲にわたって提供されるサービスでは、クラウドコンピューティングが使用されることが多い。クラウドコンピューティングは、動的にスケーラブルで、多くの場合にバーチャル化されたリソースがインターネット上でサービスとして提供されるコンピューティングスタイルである。ユーザは、ユーザをサポートする「クラウド」の技術基盤のエキスパートになる必要はない。クラウドコンピューティングは、サービスとしてのインフラストラクチャ(IaaS)、サービスとしてのプラットフォーム(PaaS)、及びサービスとしてのソフトウェア(SaaS)など、種々のサービスに分類することができる。クラウドコンピューティングサービスでは、多くの場合、ウェブブラウザからアクセスされる一般的なビジネスアプリケーションがオンラインで提供され、ソフトウェア及びデータはサーバに格納される。クラウドという用語は、インターネットがコンピュータネットワーク図でどのように表現されているかに基づいた、インターネット(例えば、サーバ、記憶装置及びロジックを使用する)のメタファとして使用され、インターネットに隠されている複雑な基盤を抽象化したものである。
さらに、ISP770は、シングルプレイヤビデオゲーム及びマルチプレイヤビデオゲームをプレイするためにゲームクライアントによって使用されるゲーム処理サーバ(GPS)774を含む。インターネットを通じてプレイされるほとんどのビデオゲームは、ゲームサーバへの接続を介して動作する。通常、ゲームでは、プレイヤからデータを収集し、これを他のプレイヤに配布する専用のサーバアプリケーションが使用される。これはピアツーピア構成よりも効率的で効果的であるが、サーバアプリケーションをホストするには別個のサーバが必要になる。別の実施形態では、GPSはプレイヤ間の通信を確立し、プレイヤらのそれぞれのゲームプレイ装置が、集中型のGPSに頼ることなく情報を交換する。
専用GPSは、クライアントとは無関係に動作するサーバである。このようなサーバは通常、データセンタにある専用ハードウェア上で稼働し、より広い帯域幅と専用の処理能力とを提供する。専用サーバは、ほとんどのPCベースのマルチプレイヤゲームで、ゲームサーバをホストするために推奨される方法である。多人数同時参加型オンラインゲームは、通常、ゲームのタイトルを所有するソフトウェア会社がホストする専用サーバ上で進行され、プレイヤらがコンテンツを制御及び更新することを可能にする。
放送処理サーバ(BPS)776は、オーディオ信号またはビデオ信号を視聴者に配信する。非常に狭い範囲の視聴者に放送することは、ナローキャスティングと呼ばれることがある。ブロードキャスト配信の最終段階は、信号がどのようにして聴取者または閲覧者に届くかであり、ラジオ局もしくはテレビ局の場合と同様に、信号が電波に乗ってアンテナ及び受信機に到達する場合があり、あるいは、ケーブルテレビもしくはケーブルラジオ(または「ワイヤレスケーブル」)を経由して、局を介してまたはネットワークから直接、到達する場合がある。インターネットでは、特にマルチキャストにより、信号及び帯域幅を共有させることが可能になり、受益者にラジオかそれともテレビをもたらすこともできる。歴史的に、放送は、全国放送または地域放送などの地理的地域によって区切られている。しかし、高速インターネットの普及に伴い、コンテンツを世界のほぼ全ての国に届けることができるため、放送は地域によって限定されない。
ストレージサービスプロバイダ(SSP)778は、コンピュータストレージスペース及び関連管理サービスを提供する。SSPはまた、定期的なバックアップ及びアーカイブを提供する。サービスとしてストレージを提供することにより、ユーザは必要に応じてより多くのストレージを申し込むことができる。もう1つの大きな利点は、SSPにバックアップサービスが含まれ、ユーザらのコンピュータのハードドライブに障害が発生したとしても、ユーザが全てのデータを失うことがないことである。さらに、複数のSSPがユーザデータの全体または一部のコピーを保持することができ、ユーザが位置する場所またはデータにアクセスするのに使用される装置とは無関係に、ユーザが効率的な方法でデータにアクセスできるようにする。例えば、ユーザは、移動中に、ホームコンピュータ内及び携帯電話内の個人ファイルにアクセスすることができる。
通信プロバイダ780は、ユーザに接続能力を提供する。通信プロバイダの一種には、インターネットへのアクセスを提供するインターネットサービスプロバイダ(ISP)がある。ISPは、ダイヤルアップ、DSL、ケーブルモデム、ファイバ、ワイヤレス、または専用の高速相互接続など、インターネットプロトコルデータグラムを配信するのに適したデータ送信技術を使用して、ISPの顧客を接続する。通信プロバイダは、電子メール、インスタントメッセージ、及びSMSテキストメッセージなどのメッセージサービスを提供することもできる。別種の通信プロバイダには、インターネットへの直接バックボーンアクセスを提供することによって帯域幅またはネットワークアクセスを販売するネットワークサービスプロバイダ(NSP)がある。ネットワークサービスプロバイダは、電気通信会社、データキャリア、無線通信プロバイダ、インターネットサービスプロバイダ、高速インターネットアクセスを提供するケーブルテレビ事業者などで構成され得る。
データ交換788は、ISP770内のいくつかのモジュールを相互接続し、これらのモジュールをネットワーク786を介してユーザ782に接続する。データ交換788は、ISP770の全てのモジュールが近接している狭い領域を範囲に含むことができ、または異なるモジュールが地理的に分散している場合には、広い地理的領域を範囲に含むことができる。たとえば、Data Exchange788には、データセンタのキャビネット内の高速ギガビットイーサネット(登録商標)(またはそれ以上のイーサネット)、または大陸間のバーチャルエリアネットワーク(VLAN)を含めることができる。
ユーザ782は、少なくともCPU、メモリ、ディスプレイ装置及び入出力を含むクライアント装置784を用いてリモートサービスにアクセスする。クライアント装置は、PC、携帯電話、ネットブック、タブレット、ゲームシステム、PDAなどとすることができる。一実施形態では、ISP770は、クライアントによって使用される装置の種類を認識し、使用される通信方法を調整する。他の事例では、クライアント装置は、htmlなどの標準的な通信方法を使用して、ISP770にアクセスする。
本開示の実施形態は、ハンドヘルド装置、マイクロプロセッサシステム、マイクロプロセッサを用いる家庭用電化製品またはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含む様々なコンピュータシステム構成を用いて実施することができる。本開示は、有線または無線のネットワークを介してリンクされたリモート処理装置によってタスクが実行される分散コンピューティング環境において実施することもできる。
上記の実施形態を考慮に入れて、本開示は、コンピュータシステムに格納されたデータを必要とする様々なコンピュータ実行動作を使用できることが理解されるべきである。これらの動作は、物理量の物理的処置を必要とする動作である。本開示の一部を形成する本明細書に記載されている動作のいずれも、有用な機械動作である。本開示はまた、これらの動作を実行するための装置または機器に関する。機器は必要な目的のために特別に構成することができ、または装置は、コンピュータに記憶されたコンピュータプログラムによって選択的に起動されまたは構成される汎用コンピュータとすることができる。特に、本明細書の教示に従って書かれたコンピュータプログラムと共に、様々な汎用機械を使用することができ、または必要な動作を実行するために、より特殊化した機器を構築することによって、さらに便利にすることができる。
本開示は、コンピュータ可読媒体上のコンピュータ可読コードとして具体化することもできる。あるいは、コンピュータ可読コードは、上記のデータ交換相互接続を使用してサーバからダウンロードすることができる。コンピュータ可読媒体は、データを記憶することができ、その後コンピュータシステムによって読み取ることができる任意のデータ記憶装置である。コンピュータ可読媒体の例には、ハードドライブ、ネットワーク接続ストレージ(NAS)、読み取り専用メモリ、ランダムアクセスメモリ、CD−ROM、CD−R、CD−RW、磁気テープ、ならびに他の光学式及び非光学式データ記憶装置が含まれる。コンピュータ可読媒体には、コンピュータ可読コードが分散方式で格納及び実行されるように、ネットワーク結合コンピュータシステム上に分散されたコンピュータ可読有形媒体が含まれ得る。
本方法動作を特定の順序で説明したが、他の維持管理動作が動作間で実行されてもよく、または動作がわずかに異なる時間で行われるように動作が調整されてもよく、またはオーバーレイ動作の処理が所望の方法で実行される限り、処理に関連する様々な間隔で処理操作の発生を可能にするシステムに分散されてもよいことが理解されるべきである。
前述の開示は、理解を明確にするためにある程度詳細に説明したが、添付の特許請求の範囲内で、特定の変更及び修正を実施することができることは明らかであろう。したがって、本実施形態は、限定的ではなく例示的であると見なされるべきであり、本開示は、本明細書に示された詳細に限定されるべきではなく、記載された実施形態の範囲及び均等物の範囲内で変更することができる。
図8は、本開示の一実施形態によるアバタ制御システムを実施するためのコントローラに対応可能な、Sony(登録商標) Playstation 3(登録商標)エンターテイメント装置などのゲームコンソールの全体システムアーキテクチャを概略的に示す。システムユニット800には、システムユニット800に接続可能な様々な周辺装置が設けられている。システムユニット800は、いくつかの実施態様ではコンピューティングサーバとすることができる。システムユニット800は、Cellプロセッサ828、Rambus(登録商標)ダイナミックランダムアクセスメモリ(XDRAM)ユニット826、専用のビデオランダムアクセスメモリ(VRAM)ユニット832を備えたReality Synthesizerグラフィックスユニット830、及び入出力ブリッジ834を含む。システムユニット800はまた、入出力ブリッジ834を介してアクセス可能な、ディスク840aからの読取り用のBlu Ray(登録商標)ディスクBD−ROM(登録商標)光ディスクリーダ840と、取外し可能のスロットインハードディスクドライブ(HDD)836とを含む。オプションで、システムユニット800はまた、入出力ブリッジ834を介して同様にアクセス可能である、コンパクトフラッシュ(登録商標)メモリカード、Memory Stick(登録商標)メモリカードなどを読み取るためのメモリカードリーダ838を含む。
入出力ブリッジ834はまた、6つのユニバーサルシリアルバス(USB)2.0ポート824、ギガビットイーサネットポート822、IEEE 802.11b/g無線ネットワーク(Wi−Fi)ポート820、及び最大7つのBluetooth接続をサポートできるBluetooth(登録商標)ワイヤレスリンクポート818に接続する。
動作中、入出力ブリッジ834は、1つまたは複数のゲームコントローラ802からのデータを含む全ての無線データ、USBデータ及びイーサネットデータを処理する。例えば、ユーザがゲームをプレイしているとき、入出力ブリッジ834は、Bluetoothリンクを介してゲームコントローラ802からデータを受け取って、これをCellプロセッサ828に送り、Cellプロセッサ828は、それに応じてゲームの現在の状態を更新する。
無線ポート、USBポート、及びイーサネットポートはまた、ゲームコントローラ802に加えて、リモコン804、キーボード806、マウス808、Sony Playstation Portable(登録商標)エンターテイメント装置などの携帯型エンターテイメント装置810、EyeToy(登録商標)ビデオカメラ812などのビデオカメラ、及びマイクヘッドセット814など、他の周辺装置への接続性を提供する。したがって、そのような周辺装置は、原則として、システムユニット800に無線で接続することができる。例えば、携帯型エンターテイメント装置810は、Wi−Fiアドホック接続を介して通信することができ、一方マイクヘッドセット814は、Bluetoothリンクを介して通信することができる。
これらのインタフェースを提供することは、Playstation 3装置がデジタルビデオレコーダ(DVR)、セットトップボックス、デジタルカメラ、ポータブルメディアプレーヤ、ボイスオーバーIP電話、携帯電話、プリンタ及びスキャナなど、他の周辺装置と潜在的に互換性もあることを意味する。
さらに、レガシメモリカードリーダ816は、USBポート824を介してシステムユニットに接続されてもよく、これにより、Playstation(登録商標)またはPlaystation 2(登録商標)装置によって使用される種類のメモリカード848の読取りが可能になる。
本実施形態では、ゲームコントローラ802は、Bluetoothリンクを介してシステムユニット800と無線通信するよう機能する。また一方、ゲームコントローラ802は、代わりにUSBポートに接続することができ、それによってゲームコントローラ802のバッテリを充電するための電力を供給することもできる。ゲームコントローラは、1つまたは複数のアナログジョイスティック及び従来の制御ボタンに加えて、各軸の並進及び回転に対応する6つの自由度の動きに敏感である。その結果、ゲームコントローラのユーザによるジェスチャ及び動きは、従来のボタンまたはジョイスティックコマンドに加え、またはその代わりに、ゲームへの入力として変換され得る。オプションで、Playstation(商標) Portable装置などの他の無線対応周辺装置をコントローラとして使用することができる。Playstation(商標) Portable装置の場合、追加のゲームまたは制御情報(例えば、制御命令または寿命数)が装置の画面上に提供され得る。ダンスマット(図示せず)、ライトガン(図示せず)、ハンドル及びペダル(図示せず)、または応答の速さを競うクイズゲーム用の1つまたは複数の大きなボタン(やはり図示せず)などのオーダーメードコントローラなど、他の代替的または補足的な制御装置を使用することもできる。
リモコン804はまた、Bluetoothリンクを介してシステムユニット800と無線通信するよう機能する。リモコン804は、Blu Ray(商標)ディスクBD−ROMリーダ840の動作及びディスクコンテンツのナビゲーションに適した操作パネルを含む。
Blu Ray(商標)ディスクBD−ROMリーダ840は、従来の記録済みCD及び記録可能なCD、ならびにいわゆるスーパーオーディオCDに加えて、Playstation及びPlayStation 2装置と互換性のあるCD−ROMを読み取るよう機能する。リーダ840はまた、従来の記録済みDVD及び記録可能DVDに加えて、Playstation 2及びPlaystation 3装置と互換性のあるDVD−ROMを読み取るよう機能する。さらにリーダ840は、Playstation 3装置と互換性のあるBD−ROM、ならびに従来の記録済みBD−ROM及び記録可能BD−ROMを読み取るよう機能する。
システムユニット800は、Reality Synthesizerグラフィックスユニット830を介してPlaystation 3装置によって生成されるかそれとも復号化されるオーディオ及びビデオを、オーディオコネクタ及びビデオコネクタを介して、ディスプレイ装置844及び1つまたは複数のラウドスピーカ846を有するモニタまたはテレビなどの、ディスプレイ装置及びサウンド出力装置842に供給するよう機能する。オーディオコネクタ850は、従来のアナログ及びデジタル出力を含むことができ、一方ビデオコネクタ852は、コンポーネントビデオ、Sビデオ、コンポジットビデオ、及び1つまたは複数の高解像度マルチメディアインタフェース(HDMI(登録商標))出力を様々に含むことができる。その結果、ビデオ出力は、PALもしくはNTSC、または720p、1080iもしくは1080pといった高精細度などのフォーマットになる。
オーディオ処理(生成、復号など)は、Cellプロセッサ828によって行われる。Playstation 3装置のオペレーティングシステムは、Dolby(登録商標)5.1サラウンドサウンド、Dolby(登録商標) Theatre Surround(DTS)、及びBlu−Ray(登録商標)ディスクからの7.1サラウンドサウンドの復号をサポートしている。
本実施形態では、ビデオカメラ812は、圧縮ビデオデータが適切なフォーマット(システムユニット800による復号化のための、画像内ベースのMPEG(motion picture expert group)規格などのフォーマット)で送信され得るように、単一の電荷結合素子(CCD)、LEDインジケータ、及びハードウェアベースのリアルタイムデータ圧縮及び符号化機器を含む。カメラLEDインジケータは、例えば不都合な照明条件を示すために、システムユニット800からの適切な制御データに応答して点灯するように構成される。ビデオカメラ812の実施形態では、USB、BluetoothまたはWi−Fi通信ポートを介して、システムユニット800に様々に接続することができる。ビデオカメラの実施形態では、1つまたは複数の関連したマイクロフォンを含むことができ、オーディオデータを送信することもできる。ビデオカメラの実施形態では、CCDは高精細度ビデオキャプチャに適した解像度を有し得る。使用中、ビデオカメラによって捕捉された画像は、例えば、ゲーム内に組み込まれてもよく、またはゲーム制御入力として解釈されてもよい。
一般に、システムユニット800の通信ポートのうちの1つを介してビデオカメラまたはリモコンなどの周辺装置とデータ通信を成功させるためには、デバイスドライバなどの適切なソフトウェアが提供されなければならない。デバイスドライバ技術は周知であり、本明細書では詳細には説明しないが、記載された本実施形態において、デバイスドライバまたは同様のソフトウェアインタフェースが必要とされ得ることを、当業者は認識するはずである。
図9は、本開示の実施態様によるゲームシステム900のブロック図である。ゲームシステム900は、ネットワーク915を介して1つまたは複数のクライアント910にビデオストリームを提供するように構成される。ゲームシステム900は、通常は、ビデオサーバシステム920とオプションのゲームサーバ925とを含む。ビデオサーバシステム920は、ビデオストリームを最小限のサービス品質で1つまたは複数のクライアント910に提供するように構成される。例えば、ビデオサーバシステム920は、ビデオゲーム内の状態または視点を変更するゲームコマンドを受信し、この状態の変更を反映する更新されたビデオストリームを最小の遅延時間でクライアント910に提供することができる。ビデオサーバシステム920は、まだ定義されていないフォーマットを含む多種多様な代替ビデオフォーマットでビデオストリームを提供するように構成され得る。さらに、ビデオストリームは、多種多様なフレームレートでユーザに提示するように構成されたビデオフレームを含むことができる。一般的なフレームレートは、毎秒30フレーム、毎秒60フレーム、及び毎秒920フレームである。しかし、本開示の代替の実施形態では、より高いまたはより低いフレームレートが含まれる。
本明細書で個々に910A、910Bなどと呼ばれるクライアント910は、ヘッドマウントディスプレイ、端末、パーソナルコンピュータ、ゲームコンソール、タブレットコンピュータ、電話、セットトップボックス、キオスク、無線装置、デジタルパッド、スタンドアロン装置、ハンドヘルドゲームプレイ装置などを含むことができる。通常、クライアント910は、符号化されたビデオストリームを受信し、そのビデオストリームを復号し、結果として生じるビデオをユーザ、例えばゲームのプレイヤに提示するように構成される。通常、符号化されたビデオストリームを受信すること、及び/またはビデオストリームを復号することのプロセスには、個々のビデオフレームをクライアントの受信バッファに格納することが含まれる。ビデオストリームは、クライアント910に一体化したディスプレイ装置上で、またはモニタもしくはテレビなどの別個の装置上でユーザに提示され得る。クライアント910は、2人以上のゲームプレイヤをサポートするように随意に構成される。例えば、ゲームコンソールは、2人、3人、4人、またはそれ以上の同時プレイヤをサポートするように構成されてもよい。これらのプレイヤの各々は、別々のビデオストリームを受信することができ、あるいは単一のビデオストリームが、各プレイヤのために特別に生成された、例えば各プレイヤの視点に基づいて生成されたフレームの領域を含み得る。クライアント910は、随意に地理的に分散している。ゲームシステム900に含まれるクライアントの数は、1または2から数千、数万、またはそれ以上まで幅広く変わり得る。本明細書で使用される「ゲームプレイヤ」という用語は、ゲームをプレイする人を指すのに使用され、「ゲームプレイ装置」という用語は、ゲームをプレイするのに使用される装置を指すのに使用される。いくつかの実施形態では、ゲームプレイ装置は、ゲーム体験をユーザに提供するために協働する複数のコンピューティング装置を指すことがある。例えば、ゲームコンソール及びHMDは、HMDを通して見たゲームを配信するために、ビデオサーバシステム920と協働してもよい。一実施形態では、ゲームコンソールはビデオサーバシステム920からビデオストリームを受信し、ゲームコンソールは、レンダリングのためにビデオストリームをHMDに転送するか、またはビデオストリームを更新して、レンダリングのためにHMDに転送する。
クライアント910は、ネットワーク915を介してビデオストリームを受信するように構成されている。ネットワーク915は、電話ネットワーク、インターネット、無線ネットワーク、電力線ネットワーク、ローカルエリアネットワーク、広域ネットワーク、プライベートネットワーク、及び/または同種のものを含む任意の種類の通信ネットワークであり得る。典型的な実施形態では、ビデオストリームは、TCP/IPまたはUDP/IPなどの標準プロトコルを介して通信される。あるいは、ビデオストリームは、プロプライエタリな規格を介して通信される。
クライアント910の典型的な例は、プロセッサ、不揮発性メモリ、ディスプレイ装置、復号化ロジック、ネットワーク通信機能、及び入力装置を含むパーソナルコンピュータである。復号化ロジックは、ハードウェア、ファームウェア、及び/またはコンピュータ可読媒体に記憶されたソフトウェアを含み得る。ビデオストリームを復号化(及び符号化)するためのシステムは当技術分野において周知であり、使用される特定の符号化方式に応じて変わる。
クライアント910は、受信したビデオを修正するように構成されたシステムをさらに含むことができるが、必ずしもそうである必要はない。例えば、クライアントは、さらなるレンダリングを実行して、1つのビデオ画像を別のビデオ画像上にオーバーレイするように、ビデオ画像をトリミングするように、及び/または同様のことを行うように、構成され得る。例えば、クライアント910は、Iフレーム、Pフレーム及びBフレームなどの様々な型式のビデオフレームを受信して、これらのフレームがユーザに表示するための画像に処理されるように構成され得る。いくつかの実施形態では、クライアント910のメンバは、ビデオストリームに対してさらなるレンダリング、シェーディング、3Dへの変換、または同様の動作を実行するように構成される。クライアント910のメンバは、複数のオーディオストリームまたはビデオストリームを受信するように随意に構成される。クライアント910の入力装置は、例えば、片手ゲームコントローラ、両手ゲームコントローラ、ジェスチャ認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、ポインティングデバイス、力フィードバック装置、モーション検知装置及び/または位置検知装置、マウス、タッチスクリーン、ニューラルインターフェース、カメラ、未開発の入力装置、及び/または同種のものを含み得る。
クライアント910によって受信されるビデオストリーム(及びオプションでオーディオストリーム)は、ビデオサーバシステム920によって生成されて提供される。本明細書の他の箇所でさらに説明されるように、このビデオストリームはビデオフレームを含む(オーディオストリームはオーディオフレームを含む)。ビデオフレームは、ユーザに表示される画像に有意義に寄与するように構成される(例えば、それらは適切なデータ構造内にピクセル情報を含む)。本明細書で使用される「ビデオフレーム」という用語は、ユーザに示される画像を、例えば効果的にするのに寄与するように構成されている情報を主に含むフレームを指すために使用される。「ビデオフレーム」に関する本明細書の教示のほとんどは、「オーディオフレーム」に適用することもできる。
クライアント910は通常、ユーザから入力を受け取るように構成されている。これらの入力は、ビデオゲームの状態を変更するか、または別の方法でゲームプレイに影響を及ぼすように構成されたゲームコマンドを含み得る。ゲームコマンドは、入力装置を使用して受信することができ、及び/またはクライアント910上で実行される命令をコンピュータで処理することによって自動的に生成することができる。受信したゲームコマンドは、クライアント910からネットワーク915を介して、ビデオサーバシステム920及び/またはゲームサーバ925に伝達される。例えば、いくつかの実施形態では、ゲームコマンドはビデオサーバシステム920を介してゲームサーバ925に伝達される。いくつかの実施形態では、ゲームコマンドの別個のコピーがクライアント910からゲームサーバ925及びビデオサーバシステム920に伝達される。ゲームコマンドの通信は、コマンドの識別に随意に依存する。ゲームコマンドは、オーディオまたはビデオストリームをクライアント910Aに提供するために使用した異なる経路または通信チャネルを通じて、クライアント910Aから随意に通信される。
ゲームサーバ925は、ビデオサーバシステム920とは異なるエンティティによって随意に操作される。例えば、ゲームサーバ925は、多人数参加型ゲームのパブリッシャによって運営され得る。この例では、ビデオサーバシステム920は、ゲームサーバ925によって随意にクライアントとして捉えられ、ゲームサーバ925の視点から見ると、先行技術のゲームエンジンを実行する先行技術のクライアントであるように随意に構成される。ビデオサーバシステム920とゲームサーバ925との間の通信は、ネットワーク915を介して随意に行われる。したがって、ゲームサーバ925は、ゲーム状態情報を複数のクライアントに送信する従来技術のマルチプレイヤゲームサーバであり得、そのうちの1つがゲームサーバシステム920である。ビデオサーバシステム920は、同時にゲームサーバ925の複数のインスタンスと通信するように構成されてもよい。例えば、ビデオサーバシステム920は、複数の異なるビデオゲームを異なるユーザに提供するように構成することができる。これらの異なるビデオゲームのそれぞれは、異なるゲームサーバ925によってサポートされてもよく、及び/または異なるエンティティによって発行されてもよい。いくつかの実施形態において、ビデオサーバシステム920のいくつかの地理的に分散したインスタンスは、ゲームビデオを複数の異なるユーザに提供するように構成される。ビデオサーバシステム920のこれらのインスタンスのそれぞれは、ゲームサーバ925の同じインスタンスと通信することができる。ビデオサーバシステム920と1つまたは複数のゲームサーバ925との間の通信は、専用の通信チャネルを介して随意に行われる。例えば、ビデオサーバシステム920は、これら2つのシステム間の通信専用の高帯域幅チャネルを介して、ゲームサーバ925に接続されてもよい。
ビデオサーバシステム920は、少なくともビデオソース930、入出力装置945、プロセッサ950、及び非一時的記憶装置955を含む。ビデオサーバシステム920は、1つのコンピューティング装置を含むか、または複数のコンピューティング装置の間に分散され得る。これらのコンピューティング装置は、ローカルエリアネットワークなどの通信システムを介して、随意に接続される。
ビデオソース930は、ビデオストリーム、例えばストリーミングビデオまたは動画を形成する一連のビデオフレームを提供するように構成される。いくつかの実施形態では、ビデオソース930はビデオゲームエンジン及びレンダリングロジックを含む。ビデオゲームエンジンは、プレイヤからゲームコマンドを受け取り、受け取ったコマンドに基づいてビデオゲームの状態のコピーを維持するように構成される。このゲーム状態には、ゲーム環境におけるオブジェクトの位置、及び通常は視点が含まれる。またゲーム状態には、オブジェクトの特性、画像、色及び/またはテクスチャが含まれてもよい。ゲーム状態は、通常、ゲームルール、及び移動、ターン、攻撃、フォーカス設定、対話、使用などのゲームコマンドに基づいて維持される。ゲームエンジンの一部は、ゲームサーバ925内に随意に配置される。ゲームサーバ925は、地理的に分散したクライアントを使用して、複数のプレイヤから受信したゲームコマンドに基づき、ゲームの状態のコピーを維持することができる。これらの場合、ゲーム状態は、ゲームサーバ925によってビデオソース930に提供され、そこでゲーム状態のコピーが記憶され、レンダリングが実行される。ゲームサーバ925は、ネットワーク915を介してクライアント910から直接ゲームコマンドを受信してもよく、及び/またはビデオサーバシステム920を経由してゲームコマンドを受信してもよい。
ビデオソース930は、通常、レンダリングロジック、例えば、ハードウェア、ファームウェア、及び/または記憶装置955などのコンピュータ可読媒体に格納されたソフトウェアを含む。このレンダリングロジックは、ゲーム状態に基づいて、ビデオストリームのビデオフレームを作成するように構成される。レンダリングロジックの全部または一部は、グラフィック処理ユニット(GPU)内に随意に配置される。レンダリングロジックは、通常、ゲーム状態及び視点に基づいて、オブジェクト間の三次元空間的関係を決定するため、及び/または適切なテクスチャなどを適用するために構成された処理段階を含む。レンダリングロジックは未処理のビデオを生成し、次いでこのビデオは、通常クライアント910への通信に先立ち、符号化される。例えば、未処理ビデオは、Adobe Flash(登録商標)規格、.wav、H.265、H.264、H.263、On2、VP6、VC−1、WMA、Huffyuv、Lagarith、MPG−x、Xvid、FFmpeg、x264、VP6−8、realvideo、mp3に従って符号化されてもよい。符号化プロセスは、リモート装置上のデコーダへの配信のために随意にパッケージ化されるビデオストリームを生成する。ビデオストリームは、フレームサイズ及びフレームレートによって特徴付けられる。典型的なフレームサイズは、800×600、1280×720(例えば、720p)、1024×768を含むが、他の任意のフレームサイズを使用することができる。フレームレートは、1秒あたりのビデオフレーム数である。ビデオストリームは、様々なタイプのビデオフレームを含み得る。例えば、H.264規格では、「P」フレーム及び「I」フレームを含む。Iフレームは、表示装置上の全てのマクロブロック/ピクセルをリフレッシュするための情報を含み、一方Pフレームはその部分セットをリフレッシュするための情報を含む。通常Pフレームは、Iフレームよりもデータサイズが小さい。本明細書で使用される「フレームサイズ」という用語は、フレーム内のピクセル数を指すことを意味する。「フレームデータサイズ」という用語は、フレームを格納するのに必要なバイト数を指すのに使用される。
代替の実施形態では、ビデオソース930は、カメラなどのビデオ記録装置を含む。このカメラは、コンピュータゲームのビデオストリームに含めることができる遅延ビデオまたはライブビデオを生成するのに使用することができる。結果として生じるビデオストリームは、レンダリングされた画像と、スチルカメラまたはビデオカメラを使用して記録された画像との両方を随意に含む。ビデオソース930はまた、ビデオストリームに含まれる以前に記録されたビデオを記憶するように構成された記憶装置を含んでもよい。ビデオソース930はまた、例えば人などのオブジェクトの動きまたは位置を検出するように構成されたモーション検知装置または位置検知装置と、検出された動き及び/または位置に基づいてゲーム状態を決定またはビデオを生成するように構成されるロジックとを含み得る。
ビデオソース930は、他のビデオ上に配置されるように構成されたオーバーレイを提供するように随意に構成される。例えば、このようなオーバーレイには、コマンドインタフェース、ログイン命令、ゲームプレイヤへのメッセージ、他のゲームプレイヤの画像、他のゲームプレイヤのビデオフィード(例えば、ウェブカメラビデオ)が含まれ得る。タッチスクリーンインタフェースまたは凝視検出インタフェースを含むクライアント910Aの実施形態では、オーバーレイはバーチャルキーボード、ジョイスティック、タッチパッドなどを含み得る。オーバーレイの一例では、プレイヤの声がオーディオストリームにオーバーレイされる。ビデオソース930はオプションで、1つまたは複数のオーディオソースをさらに含む。
ビデオサーバシステム920が2人以上のプレイヤからの入力に基づいてゲーム状態を維持するように構成されている実施形態では、各プレイヤは位置及び視線方向を含む異なる視点を有することができる。ビデオソース930は、プレイヤらの視点に基づいて各プレイヤに別々のビデオストリームを提供するように随意に構成される。さらに、ビデオソース930は、異なるフレームサイズ、フレームデータサイズ、及び/または符号化をクライアント910のそれぞれに提供するように構成してもよい。ビデオソース930は、3Dビデオを供給するように随意に構成される。
入出力装置945は、ビデオサーバシステム920が、ビデオ、コマンド、情報要求、ゲーム状態、凝視情報、装置モーション、装置位置、ユーザモーション、クライアント識別情報、プレイヤ識別情報、ゲームコマンド、セキュリティ情報、オーディオ、及び/または同種のものなどの情報を送信及び/または受信するように構成されている。通常、入出力装置945は、ネットワークカードまたはモデムなどの通信ハードウェアを含む。入出力装置945は、ゲームサーバ925、ネットワーク915、及び/またはクライアント910と通信するように構成される。
プロセッサ950は、本明細書で論じられるビデオサーバシステム920の様々なコンポーネント内に含まれるロジック、例えばソフトウェアを実行するように構成される。例えば、ビデオソース930、ゲームサーバ925、及び/またはクライアント修飾子960の機能を実行するために、プロセッサ950は、ソフトウェア命令でプログラムされてもよい。ビデオサーバシステム920は、プロセッサ950の複数のインスタンスを随意に含む。プロセッサ950はまた、ビデオサーバシステム920によって受信されたコマンドを実行するために、または本明細書で論じられるゲームシステム900の様々な要素の動作を調整するために、ソフトウェア命令でプログラムされてもよい。プロセッサ950は、1つまたは複数のハードウェア装置を含むことができる。プロセッサ950は電子的なプロセッサである。
記憶装置955は、非一時的なアナログ及び/またはデジタルの記憶装置を含む。例えば、記憶装置955は、ビデオフレームを記憶するように構成されたアナログ記憶装置を含むことができる。記憶装置955は、例えば、ハードドライブ、オプティカルドライブ、またはソリッドステートストレージといったコンピュータ可読デジタル記憶装置を含むことができる。記憶装置915は、ビデオフレーム、アーティフィシャルフレーム、ビデオフレーム及びアーティフィシャルフレームの両方を含むビデオストリーム、オーディオフレーム、オーディオストリーム、及び/または同様のものを記憶するように(例えば、適切なデータ構造またはファイルシステムによって)構成される。記憶装置955は、複数の装置の間に随意に分散される。いくつかの実施形態では、記憶装置955は、本明細書の他の箇所で説明されているビデオソース930のソフトウェアコンポーネントを格納するように構成される。これらのコンポーネントは、必要に応じてプロビジョニングできるように準備された形式で格納することができる。
ビデオサーバシステム920は、オプションで、クライアント修飾子960をさらに含む。クライアント修飾子960は、クライアント910Aまたは910Bなどのクライアントの能力をリモートで判断するように構成される。これらの能力には、クライアント910A自体の能力と、クライアント910Aとビデオサーバシステム920との間の1つまたは複数の通信チャネルの能力との両方を含めることができる。例えば、クライアント修飾子960は、ネットワーク915を介して通信チャネルをテストするように構成されてもよい。
クライアント修飾子960は、クライアント910Aの能力を手動または自動で判定する(例えば、発見する)ことができる。手動判定には、クライアント910Aのユーザと通信すること、及びユーザに能力を提供するように求めることが含まれる。例えば、いくつかの実施形態では、クライアント修飾子960は、クライアント910Aのブラウザ内に画像、テキスト、及び/または同様のものを表示する構成となっている。一実施形態では、クライアント910Aはブラウザを含むHMDである。別の実施形態では、クライアント910Aは、ブラウザを有したゲームコンソールであり、ブラウザはHMDに表示させてもよい。表示されたオブジェクトは、ユーザがクライアント910Aのオペレーティングシステム、プロセッサ、ビデオデコーダの種類、ネットワーク接続の種類、表示解像度などの情報を入力することを要求する。ユーザによって入力された情報は、クライアント修飾子960に返信される。
自動判定は、例えば、クライアント910A上でエージェントを実行することによって、及び/またはテストビデオをクライアント910Aに送信することによって、行うことができる。エージェントは、ウェブページに埋め込まれるか、またはアドオンとしてインストールされるJava(登録商標)Scriptなどのコンピューティング関係の命令を含むことができる。エージェントは、クライアント修飾子960によって随意に提供される。様々な実施形態において、エージェントは、クライアント910Aの処理能力、クライアント910Aのデコード能力及び表示能力、クライアント910Aとビデオサーバシステム920との間の通信チャネルの遅延時間の信頼性及び帯域幅、クライアント910Aのディスプレイ装置タイプ、クライアント910A上のファイアウォールの存在、クライアント910Aのハードウェア、クライアント910Aで実行されているソフトウェア、クライアント910A内のレジストリエントリ、及び/または同様のものを見出すことができる。
クライアント修飾子960は、ハードウェア、ファームウェア、及び/またはコンピュータ可読媒体に格納されたソフトウェアを含む。クライアント修飾子960は、ビデオサーバシステム920の1つまたは複数の他の要素とは別のコンピューティング装置上に随意に配置される。例えば、いくつかの実施形態では、クライアント修飾子960は、クライアント910とビデオサーバシステム920の複数のインスタンスとの間の通信チャネルの特性を判定するように構成される。これらの実施形態では、クライアント修飾子によって見い出された情報を使用して、ビデオサーバシステム920のどのインスタンスが、クライアント910のうちの1つへのストリーミングビデオの配信に最も適しているかを判断することができる。
本開示の実施形態は、ハンドヘルド装置、マイクロプロセッサシステム、マイクロプロセッサを用いる家庭用電化製品またはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含む様々なコンピュータシステム構成を用いて実施することができる。本開示は、有線または無線のネットワークを介してリンクされたリモート処理装置によってタスクが実行される分散コンピューティング環境において実施することもできる。
上記の実施形態を考慮に入れて、本開示は、コンピュータシステムに格納されたデータを必要とする様々なコンピュータ実行動作を使用できることが理解されるべきである。これらの動作は、物理量の物理的処置を必要とする動作である。本開示の一部を形成する本明細書に記載されている動作のいずれも、有用な機械動作である。本開示はまた、これらの動作を実行するための装置または機器に関する。機器は必要な目的のために特別に構成することができ、または装置は、コンピュータに記憶されたコンピュータプログラムによって選択的に起動されまたは構成される汎用コンピュータとすることができる。特に、本明細書の教示に従って書かれたコンピュータプログラムと共に、様々な汎用機械を使用することができ、または必要な動作を実行するために、より特殊化した機器を構築することによって、さらに便利にすることができる。
本開示は、コンピュータ可読媒体上のコンピュータ可読コードとして具体化することもできる。コンピュータ可読媒体は、データを記憶することができ、その後コンピュータシステムによって読み取ることができる任意のデータ記憶装置である。コンピュータ可読媒体の例には、ハードドライブ、ネットワーク接続ストレージ(NAS)、読み取り専用メモリ、ランダムアクセスメモリ、CD−ROM、CD−R、CD−RW、磁気テープ、ならびに他の光学式及び非光学式データ記憶装置が含まれる。コンピュータ可読媒体には、コンピュータ可読コードが分散方式で格納及び実行されるように、ネットワーク結合コンピュータシステム上に分散されたコンピュータ可読有形媒体が含まれ得る。
本方法動作を特定の順序で説明したが、他の維持管理動作が動作間で実行されてもよく、または動作がわずかに異なる時間で行われるように動作が調整されてもよく、またはオーバーレイ動作の処理が所望の方法で実行される限り、処理に関連する様々な間隔で処理操作の発生を可能にするシステムに分散されてもよいことが理解されるべきである。
前述の開示は、理解を明確にするためにある程度詳細に説明したが、添付の特許請求の範囲内で、特定の変更及び修正を実施することができることは明らかであろう。したがって、本実施形態は、限定的ではなく例示的であると見なされるべきであり、本開示は、本明細書に示された詳細に限定されるべきではなく、本開示の範囲及び均等物の範囲内で変更することができる。

Claims (20)

  1. クライアント装置によって実行されるブラウザからネットワークを介して、クラウドビデオゲームのゲームプレイを開始する要求を受信すること、
    前記要求を受信することに応答して、前記クライアント装置の前記ブラウザによる実行用に構成されたウェブアプリケーションを、前記ネットワーク経由で前記クライアント装置に送信し、クラウドゲーム機による前記クラウドビデオゲームの実行を開始して、圧縮ビデオフォーマットで符号化され、暗号化方式を用いて暗号化された前記クラウドビデオゲームのビデオコンテンツを含む第1のビデオストリームを生成すること、
    前記クラウドゲーム機からストリーミングサーバへ前記第1のビデオストリームを送信すること、
    前記ストリーミングサーバによって前記第1のビデオストリームを解読して、符号化ビデオコンテンツを生成すること、および
    前記ストリーミングサーバによって、前記符号化ビデオコンテンツを、保護プロトコルを使用して前記ネットワーク経由で前記ウェブアプリケーションに送信することを含み、前記符号化ビデオコンテンツの前記送信が第2のビデオストリームを設定し、前記ウェブアプリケーションが、前記第2のビデオストリームを受信して処理して、前記クラウドビデオゲームの前記ビデオコンテンツをディスプレイ装置へのレンダリング用に提供するように構成される方法。
  2. 前記ウェブアプリケーションが、前記クライアント装置の前記ブラウザによって実行される際に、前記ネットワークを通じて前記ストリーミングサーバとピアツーピア接続を確立するように構成され、
    前記第2のビデオストリームを前記ウェブアプリケーションに送信することが前記ピアツーピア接続を介して行われる、請求項1に記載の方法。
  3. 前記ウェブアプリケーションによる前記ディスプレイ装置への前記ビデオコンテンツの前記レンダリングの間中に、1つまたは複数のクライアント入力装置から前記クライアント装置において受信される対話型入力に由来した、前記ウェブアプリケーションによって処理された入力データを、前記ストリーミングサーバによって前記ウェブアプリケーションから前記ピアツーピア接続を介して受信すること、および
    前記ストリーミングサーバによって前記入力データを処理して、前記クラウドビデオゲーム用のコマンドを生成し、前記クラウドビデオゲームの将来のゲーム状態を決定するために、前記クラウドビデオゲームの現在のゲーム状態に適用されるように前記ストリーミングサーバから前記クラウドゲーム機に前記コマンドを送信することをさらに含む、請求項2に記載の方法。
  4. 前記1つまたは複数のクライアント入力装置が、キーボード、マウス、タッチパッド、タッチセンシティブディスプレイ、ゲームコントローラ、またはモーションコントローラからなる群から選択される、請求項3に記載の方法。
  5. 前記ストリーミングサーバによって、前記クライアント装置の前記ブラウザの種類を識別すること、および
    前記ブラウザの種類を識別することに応答して、前記符号化ビデオコンテンツを第2の圧縮ビデオフォーマットにコード変換することをさらに含み、前記第2のビデオストリームを送信することが、前記コード変換されたビデオコンテンツを送信することをさらに含む、請求項1に記載の方法。
  6. 前記第2の圧縮ビデオフォーマットが、前記ブラウザの前記識別された種類に基づいて選択され、前記第2の圧縮ビデオフォーマットが、前記ブラウザによってサポートされるビデオフォーマットである、請求項5に記載の方法。
  7. 前記ウェブアプリケーションがWebRTCウェブAPIにアクセスする、請求項1に記載の方法。
  8. 前記ストリーミングサーバがNode.jsサーバである、請求項1に記載の方法。
  9. 前記ゲーム機が、ゲームコンソール、ゲームコンソールブレードもしくはゲームコンソールハードウェアボード、またはバーチャルゲームコンソールを実行するように構成されたサーバコンピュータのうちの1つである、請求項1に記載の方法。
  10. 前記保護プロトコルがハイパーテキスト転送プロトコルセキュア(HTTPS)プロトコルである、請求項1に記載の方法。
  11. 前記第1のビデオストリームを生成すること、前記第1のビデオストリームを送信すること、前記第1のビデオストリームを解読すること、及び前記符号化ビデオコンテンツを送信することの動作が、前記クライアント装置の前記ブラウザを介して、前記クラウドビデオゲームのリアルタイム対話型ゲームプレイを可能にするように、実質的なリアルタイムで実行される、請求項1に記載の方法。
  12. 前記クラウドビデオゲームの前記ビデオコンテンツが、バーチャル環境のビューを設定する、請求項1に記載の方法。
  13. クライアント装置からネットワークを介して、クラウドビデオゲームのゲームプレイを開始する要求を受信すること、
    前記要求を受信することに応答して、クラウドゲーム機による前記クラウドビデオゲームの実行を開始して、圧縮ビデオフォーマットで符号化され、暗号化方式を用いて暗号化された前記クラウドビデオゲームのビデオコンテンツを含む第1のビデオストリームを生成すること、
    前記クライアント装置によって実行されるブラウザから発せられたものとして前記要求を識別することに応答して、次に、
    前記クライアント装置の前記ブラウザによる実行用に構成されたウェブアプリケーションを、前記ネットワーク経由で前記クライアント装置に送信し、
    前記クラウドゲーム機からストリーミングサーバへ前記第1のビデオストリームを送信し、
    前記ストリーミングサーバによって前記第1のビデオストリームを解読して、符号化ビデオコンテンツを生成し、
    前記ストリーミングサーバによって、前記符号化ビデオコンテンツを、保護プロトコルを使用して前記ネットワーク経由で前記ウェブアプリケーションに送信し、前記符号化ビデオコンテンツの前記送信が第2のビデオストリームを設定し、前記ウェブアプリケーションが、前記第2のビデオストリームを受信して処理して、前記クラウドビデオゲームの前記ビデオコンテンツをディスプレイ装置へのレンダリング用に提供するように構成されること、および
    前記クライアント装置を設定するゲームコンソールから発せられたものとして前記要求を識別することに応答して、次に、
    ディスプレイ装置へのレンダリング用に、前記第1のビデオストリームを前記ネットワーク経由で前記ゲームコンソールに送信することを含む方法。
  14. 前記ウェブアプリケーションが、前記クライアント装置の前記ブラウザによって実行される際に、前記ネットワークを通じて前記ストリーミングサーバとピアツーピア接続を確立するように構成され、
    前記第2のビデオストリームを前記ウェブアプリケーションに送信することが前記ピアツーピア接続を介して行われる、請求項13に記載の方法。
  15. 前記ブラウザから発せられたものとして前記要求を前記識別することにさらに応答して、
    前記ウェブアプリケーションによる前記ディスプレイ装置への前記ビデオコンテンツの前記レンダリングの間中に、1つまたは複数のクライアント入力装置から前記クライアント装置において受信される対話型入力に由来した、前記ウェブアプリケーションによって処理された入力データを、前記ストリーミングサーバによって前記ウェブアプリケーションから前記ピアツーピア接続を介して受信し、
    前記ストリーミングサーバによって前記入力データを処理して、前記クラウドビデオゲーム用のコマンドを生成し、前記クラウドビデオゲームの将来のゲーム状態を決定するために、前記クラウドビデオゲームの現在のゲーム状態に適用されるように前記ストリーミングサーバから前記クラウドゲーム機に前記コマンドを送信することを含む、請求項14に記載の方法。
  16. 前記ブラウザから発せられたものとして前記要求を前記識別することにさらに応答して、
    前記ストリーミングサーバによって、前記クライアント装置の前記ブラウザの種類を識別し、
    前記ブラウザの種類を識別することに応答して、前記符号化ビデオコンテンツを第2の圧縮ビデオフォーマットにコード変換し、前記第2のビデオストリームを送信することが、前記コード変換されたビデオコンテンツを送信することを含む、請求項13に記載の方法。
  17. 前記第2の圧縮ビデオフォーマットが、前記ブラウザの前記識別された種類に基づいて選択され、前記第2の圧縮ビデオフォーマットが、前記ブラウザによってサポートされるビデオフォーマットである、請求項16に記載の方法。
  18. 前記ウェブアプリケーションがWebRTCウェブAPIにアクセスする、請求項13に記載の方法。
  19. 前記ストリーミングサーバがNode.jsサーバである、請求項13に記載の方法。
  20. 前記ゲーム機が、ゲームコンソール、ゲームコンソールブレードもしくはゲームコンソールハードウェアボード、またはバーチャルゲームコンソールを実行するように構成されたサーバコンピュータのうちの1つである、請求項13に記載の方法。
JP2018565359A 2016-06-13 2017-05-18 ブラウザベースのクラウドゲーム Active JP6695449B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662349585P 2016-06-13 2016-06-13
US62/349,585 2016-06-13
US15/189,520 2016-06-22
US15/189,520 US10046236B2 (en) 2016-06-13 2016-06-22 Browser-based cloud gaming
PCT/US2017/033386 WO2017218136A1 (en) 2016-06-13 2017-05-18 Browser-based cloud gaming

Publications (2)

Publication Number Publication Date
JP2020501619A true JP2020501619A (ja) 2020-01-23
JP6695449B2 JP6695449B2 (ja) 2020-05-20

Family

ID=60573555

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018565359A Active JP6695449B2 (ja) 2016-06-13 2017-05-18 ブラウザベースのクラウドゲーム

Country Status (5)

Country Link
US (4) US10046236B2 (ja)
EP (1) EP3468683B1 (ja)
JP (1) JP6695449B2 (ja)
CN (1) CN109906107B (ja)
WO (1) WO2017218136A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023136516A1 (ko) * 2022-01-12 2023-07-20 삼성전자 주식회사 전자 장치 및 방법

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10127082B2 (en) 2012-04-05 2018-11-13 Electronic Arts Inc. Distributed realization of digital content
US11468728B2 (en) * 2013-11-17 2022-10-11 Softweave Ltd. System and method for remote control of machines
IL229464A (en) * 2013-11-17 2016-06-30 Softweave Ltd Game system and method
US10456672B2 (en) 2016-05-19 2019-10-29 Google Llc Methods and systems for facilitating participation in a game session
GB201703460D0 (en) * 2017-03-03 2017-04-19 Scirra Ltd Methods adn devices for testing appliances
EP4336800A3 (en) 2017-10-10 2024-05-29 Google LLC Distributed sample-based game profiling with game metadata and metrics and gaming api platform supporting third-party content
US11140207B2 (en) 2017-12-21 2021-10-05 Google Llc Network impairment simulation framework for verification of real time interactive media streaming systems
US11064208B2 (en) * 2018-02-20 2021-07-13 Arlo Technologies, Inc. Transcoding in security camera applications
US11076161B2 (en) 2018-02-20 2021-07-27 Arlo Technologies, Inc. Notification priority sequencing for video security
US10742998B2 (en) 2018-02-20 2020-08-11 Netgear, Inc. Transmission rate control of data communications in a wireless camera system
US11272189B2 (en) 2018-02-20 2022-03-08 Netgear, Inc. Adaptive encoding in security camera applications
US11102492B2 (en) 2018-02-20 2021-08-24 Arlo Technologies, Inc. Multi-sensor motion detection
US11756390B2 (en) 2018-02-20 2023-09-12 Arlo Technologies, Inc. Notification priority sequencing for video security
US10805613B2 (en) 2018-02-20 2020-10-13 Netgear, Inc. Systems and methods for optimization and testing of wireless devices
US11558626B2 (en) 2018-02-20 2023-01-17 Netgear, Inc. Battery efficient wireless network connection and registration for a low-power device
CN114968478A (zh) 2018-03-06 2022-08-30 华为技术有限公司 一种数据处理的方法、装置、服务器和系统
JP7005763B2 (ja) 2018-03-22 2022-01-24 グーグル エルエルシー オンラインインタラクティブゲーミングセッションのコンテンツをレンダリングおよび符号化するための方法およびシステム
EP3740292A2 (en) 2018-04-02 2020-11-25 Google LLC Input device for an electronic system
US11077364B2 (en) * 2018-04-02 2021-08-03 Google Llc Resolution-based scaling of real-time interactive graphics
JP7073526B2 (ja) 2018-04-02 2022-05-23 グーグル エルエルシー インタラクティブなクラウドゲームのための方法、デバイス、およびシステム
JP7073494B2 (ja) 2018-04-10 2022-05-23 グーグル エルエルシー ゲームレンダリングにおけるメモリ管理
US10898802B2 (en) 2018-05-31 2021-01-26 Sony Interactive Entertainment LLC Bifurcation of shared controls and passing controls in a video game
SE1850664A1 (en) * 2018-06-01 2019-12-02 Telia Co Ab Methods and apparatuses for providing a service having a service profile
US20190377538A1 (en) 2018-06-08 2019-12-12 Curious Company, LLC Information Presentation Through Ambient Sounds
CN109011569A (zh) * 2018-07-06 2018-12-18 佛山市灏金赢科技有限公司 一种数据传输方法及数据传输装置
US10650600B2 (en) 2018-07-10 2020-05-12 Curious Company, LLC Virtual path display
US10818088B2 (en) 2018-07-10 2020-10-27 Curious Company, LLC Virtual barrier objects
CN108989886A (zh) * 2018-08-07 2018-12-11 福建天泉教育科技有限公司 一种播放加密视频的方法及系统
US10902678B2 (en) * 2018-09-06 2021-01-26 Curious Company, LLC Display of hidden information
US10688390B2 (en) * 2018-11-05 2020-06-23 Sony Interactive Entertainment LLC Crowd-sourced cloud gaming using peer-to-peer streaming
US11662051B2 (en) 2018-11-16 2023-05-30 Google Llc Shadow tracking of real-time interactive simulations for complex system analysis
US11055913B2 (en) 2018-12-04 2021-07-06 Curious Company, LLC Directional instructions in an hybrid reality system
US11087591B2 (en) * 2018-12-20 2021-08-10 Sony Interactive Entertainment LLC Anti-fraud cloud gaming blockchain
US10970935B2 (en) 2018-12-21 2021-04-06 Curious Company, LLC Body pose message system
US11470137B2 (en) 2019-01-08 2022-10-11 Rainway, Inc. Method and system for encoding game video and audio remotely streamed to a remote computer system
US11113270B2 (en) 2019-01-24 2021-09-07 EMC IP Holding Company LLC Storing a non-ordered associative array of pairs using an append-only storage medium
US10872584B2 (en) 2019-03-14 2020-12-22 Curious Company, LLC Providing positional information using beacon devices
US11366823B2 (en) * 2019-03-15 2022-06-21 Unity Technologies Sf Method and system for transforming and delivering digital assets over a network
US10918938B2 (en) * 2019-03-29 2021-02-16 Electronic Arts Inc. Dynamic streaming video game client
GB2583511B (en) * 2019-05-02 2024-01-10 Sony Interactive Entertainment Inc Method of and system for controlling the rendering of a video game instance
US10805246B1 (en) * 2019-06-12 2020-10-13 International Business Machines Corporation Direct communication between a secure application and a local application running on the same device
JP7366760B2 (ja) * 2019-06-24 2023-10-23 株式会社ポケモン ゲームシステム、ゲーム方法、及びゲームプログラム
CN112312146B (zh) * 2019-08-01 2021-10-22 广州虎牙科技有限公司 直播数据处理方法、装置、电子设备及可读存储介质
US10893127B1 (en) * 2019-07-26 2021-01-12 Arkade, Inc. System and method for communicating interactive data between heterogeneous devices
US10946272B2 (en) 2019-07-26 2021-03-16 Arkade, Inc. PC blaster game console
US10773157B1 (en) 2019-07-26 2020-09-15 Arkade, Inc. Interactive computing devices and accessories
CN110302533B (zh) * 2019-08-05 2022-08-19 深圳市瑞云科技有限公司 一种基于微信小程序实时视频能力的云游戏系统及方法
CN110430451B (zh) * 2019-08-20 2021-09-10 北京豆萌信息技术有限公司 视频播放方法、播放器、服务器和系统
JP6624767B1 (ja) * 2019-08-26 2019-12-25 株式会社ブラック 情報処理システム及び情報処理方法
CN110881046A (zh) * 2019-12-06 2020-03-13 广州微算互联信息技术有限公司 一种云手机对接WebRTC协议的方法、装置、介质及终端设备
CN111818348B (zh) * 2019-12-25 2021-08-24 厦门雅基软件有限公司 直播互动方法、装置、电子设备和计算机可读存储介质
CN111327910A (zh) * 2020-01-21 2020-06-23 广州虎牙科技有限公司 应用程序的操作控制方法、装置、设备及存储介质
CN113368492B (zh) * 2020-02-25 2023-06-27 华为技术有限公司 渲染的方法、装置
JP7465960B2 (ja) * 2020-03-13 2024-04-11 グーグル エルエルシー ピアツーピアマルチプレイヤークラウドゲーミングアーキテクチャ
CN111447485A (zh) * 2020-03-31 2020-07-24 广州微算互联信息技术有限公司 一种实时的云游戏录制视频方法、系统、装置及存储介质
JP7419151B2 (ja) * 2020-04-21 2024-01-22 株式会社東芝 サーバ装置、情報処理方法およびプログラム
US11172246B1 (en) * 2020-04-24 2021-11-09 Visualon, Inc. Bitrate adaptation for low latency streaming
CN113556261B (zh) * 2020-04-26 2024-02-13 阿里巴巴集团控股有限公司 数据通信方法、装置、电子设备及计算机可读存储介质
CN113672293B (zh) * 2020-04-30 2024-04-09 华为云计算技术有限公司 一种基于云手机的媒体数据处理方法以及终端设备
US11599546B2 (en) * 2020-05-01 2023-03-07 EMC IP Holding Company LLC Stream browser for data streams
US11604759B2 (en) 2020-05-01 2023-03-14 EMC IP Holding Company LLC Retention management for data streams
US11340834B2 (en) 2020-05-22 2022-05-24 EMC IP Holding Company LLC Scaling of an ordered event stream
CN113727113B (zh) * 2020-05-26 2024-06-21 网易(杭州)网络有限公司 视频解码方法、推流方法及系统
CN111603764B (zh) * 2020-05-28 2021-05-28 腾讯科技(深圳)有限公司 一种云游戏的处理方法及设备
RU2758985C1 (ru) * 2020-06-19 2021-11-08 Общество с ограниченной ответственностью "ЛП Технологии" Алгоритм согласования видеопотока для платформы облачных игр Loudplay
US11360992B2 (en) 2020-06-29 2022-06-14 EMC IP Holding Company LLC Watermarking of events of an ordered event stream
US11599420B2 (en) 2020-07-30 2023-03-07 EMC IP Holding Company LLC Ordered event stream event retention
US11340792B2 (en) 2020-07-30 2022-05-24 EMC IP Holding Company LLC Ordered event stream merging
CN111930328B (zh) * 2020-08-10 2024-03-15 西安万像电子科技有限公司 应用数据的显示方法、装置及系统
US11354444B2 (en) 2020-09-30 2022-06-07 EMC IP Holding Company LLC Access control for an ordered event stream storage system
CN112354177A (zh) * 2020-09-30 2021-02-12 江苏视博云信息技术有限公司 基于webrtc的云游戏即时启动方法、装置及系统
US11513871B2 (en) 2020-09-30 2022-11-29 EMC IP Holding Company LLC Employing triggered retention in an ordered event stream storage system
US11755555B2 (en) 2020-10-06 2023-09-12 EMC IP Holding Company LLC Storing an ordered associative array of pairs using an append-only storage medium
US11599293B2 (en) 2020-10-14 2023-03-07 EMC IP Holding Company LLC Consistent data stream replication and reconstruction in a streaming data storage platform
GB2600916A (en) * 2020-10-19 2022-05-18 Muzaffar Saj Interactive video streaming apparatus and method
US20230393901A1 (en) * 2020-10-27 2023-12-07 Albert Luntsch Method for controlling and regulating data for generating a representation, in particular a virtual representation, via a client, and method for managing data on the internet for generating a representation, in particular a virtual representation, via a client
US11354054B2 (en) 2020-10-28 2022-06-07 EMC IP Holding Company LLC Compaction via an event reference in an ordered event stream storage system
CN112449203A (zh) * 2020-11-24 2021-03-05 广州虎牙科技有限公司 一种游戏直播方法、装置、电子设备和存储介质
US11347568B1 (en) 2020-12-18 2022-05-31 EMC IP Holding Company LLC Conditional appends in an ordered event stream storage system
US11816065B2 (en) 2021-01-11 2023-11-14 EMC IP Holding Company LLC Event level retention management for data streams
US11526297B2 (en) 2021-01-19 2022-12-13 EMC IP Holding Company LLC Framed event access in an ordered event stream storage system
US12099513B2 (en) 2021-01-19 2024-09-24 EMC IP Holding Company LLC Ordered event stream event annulment in an ordered event stream storage system
CN112738644B (zh) * 2021-04-01 2021-07-09 浙江华创视讯科技有限公司 一种基于WebRTC的视频流传输方法和装置
US11740828B2 (en) 2021-04-06 2023-08-29 EMC IP Holding Company LLC Data expiration for stream storages
CN113079216B (zh) * 2021-04-08 2022-07-19 深圳市腾讯网络信息技术有限公司 一种云应用的实现方法、装置、电子设备及可读存储介质
US12001881B2 (en) 2021-04-12 2024-06-04 EMC IP Holding Company LLC Event prioritization for an ordered event stream
US11513714B2 (en) 2021-04-22 2022-11-29 EMC IP Holding Company LLC Migration of legacy data into an ordered event stream
US11954537B2 (en) 2021-04-22 2024-04-09 EMC IP Holding Company LLC Information-unit based scaling of an ordered event stream
US11681460B2 (en) 2021-06-03 2023-06-20 EMC IP Holding Company LLC Scaling of an ordered event stream based on a writer group characteristic
CN113368504B (zh) * 2021-06-09 2023-10-17 咪咕互动娱乐有限公司 云游戏服务系统、交互方法、存储介质
US11735282B2 (en) 2021-07-22 2023-08-22 EMC IP Holding Company LLC Test data verification for an ordered event stream storage system
CN113778599A (zh) * 2021-09-07 2021-12-10 杭州雾联科技有限公司 一种云游戏的操作响应方法、运行方法、系统及相关装置
CN113808231B (zh) * 2021-09-18 2023-04-11 北京百度网讯科技有限公司 信息处理方法及装置、图像渲染方法及装置、电子设备
US11971850B2 (en) 2021-10-15 2024-04-30 EMC IP Holding Company LLC Demoted data retention via a tiered ordered event stream data storage system
CN113709185B (zh) * 2021-10-22 2022-06-28 浙江云针信息科技有限公司 一种实现Android云串流的方法和系统
CN114205351A (zh) * 2021-11-01 2022-03-18 北京中合谷投资有限公司 一种面向家庭客户的云游戏业务系统和方法
CN114338621A (zh) * 2021-11-30 2022-04-12 北京金山云网络技术有限公司 一种云应用程序运行方法、系统及装置
US11997364B2 (en) * 2022-06-29 2024-05-28 Western Digital Technologies, Inc. Peer-to-peer data transfer for video on demand from an edge data storage device to a browser
CN115278301B (zh) * 2022-07-27 2023-12-22 河南昆仑技术有限公司 视频处理方法、系统及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011086293A (ja) * 2009-10-14 2011-04-28 Sony Computer Entertainment America Llc ブラウザベースのゲームを代替コントローラおよびインタフェースでプレイする方法
JP2012521723A (ja) * 2009-03-23 2012-09-13 オンライブ インコーポレイテッド 一時的デコーダ装置及び方法
WO2014029944A1 (fr) * 2012-08-21 2014-02-27 Orange Accès a distance a des contenus a partir d'un client léger
JP2014130589A (ja) * 2012-12-27 2014-07-10 Sony Computer Entertainment America Llc クラウドコンピューティングシステムによってサービス提供されるコンピュータアプリケーションのミニアプリケーション生成および実行のための方法およびシステム
WO2015098165A1 (en) * 2013-12-26 2015-07-02 Square Enix Holdings Co., Ltd. Rendering system, control method and storage medium

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0219509D0 (en) * 2001-12-05 2002-10-02 Delamont Dean Improvements to interactive TV games system
US9849372B2 (en) * 2012-09-28 2017-12-26 Sony Interactive Entertainment Inc. Method and apparatus for improving efficiency without increasing latency in emulation of a legacy application title
US20060097453A1 (en) * 2002-12-04 2006-05-11 Philip Feldman Game controller with force sensing input devices and method of measuring applied forces to game controller input devices to interact with a gaming application
US9108107B2 (en) * 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using streaming interactive video
US20090118019A1 (en) * 2002-12-10 2009-05-07 Onlive, Inc. System for streaming databases serving real-time applications used through streaming interactive video
US7620404B2 (en) * 2005-12-22 2009-11-17 Pascal Chesnais Methods and apparatus for organizing and presenting contact information in a mobile communication system
US7841946B2 (en) * 2006-06-29 2010-11-30 Spawn Labs, Inc. System for remote game access
US9349201B1 (en) 2006-08-03 2016-05-24 Sony Interactive Entertainment America Llc Command sentinel
US9092910B2 (en) 2009-06-01 2015-07-28 Sony Computer Entertainment America Llc Systems and methods for cloud processing and overlaying of content on streaming video frames of remotely processed applications
US8506402B2 (en) * 2009-06-01 2013-08-13 Sony Computer Entertainment America Llc Game execution environments
KR101312268B1 (ko) * 2010-12-24 2013-09-25 주식회사 케이티 클라우드 컴퓨팅 환경에서 게임 서비스 제공 방법, 클라우드 컴퓨팅 서버, 및 클라우드 컴퓨팅 시스템
US8793393B2 (en) * 2011-11-23 2014-07-29 Bluespace Corporation Video processing device, video server, client device, and video client-server system with low latency thereof
KR20130062462A (ko) * 2011-11-25 2013-06-13 한국전자통신연구원 스트리밍 게임 서비스를 위한 분산 서버 시스템 및 방법
TW201838697A (zh) * 2012-02-28 2018-11-01 美商Cfph有限責任公司 提供遊戲服務的方法及裝置
US9037683B1 (en) * 2012-03-05 2015-05-19 Koji Yoden Media asset streaming over network to devices
US9623333B2 (en) * 2012-06-13 2017-04-18 Oracle International Corporation Method and mechanism for implementing a gamification application
WO2014055108A1 (en) * 2012-10-03 2014-04-10 Google Inc. Cloud-based gameplay video rendering and encoding
US9526980B2 (en) 2012-12-21 2016-12-27 Microsoft Technology Licensing, Llc Client side processing of game controller input
JP6576245B2 (ja) * 2013-05-08 2019-09-18 株式会社スクウェア・エニックス・ホールディングス 情報処理装置、制御方法及びプログラム
US20150127774A1 (en) 2013-11-01 2015-05-07 Numecent Holdings Inc. Adaptive cloud-based application streaming
US10974154B2 (en) 2013-12-20 2021-04-13 Electronic Arts Inc. System and method for multiplayer gaming
US10255083B2 (en) * 2014-09-12 2019-04-09 Ubisoft Entertainment Method and system for unified input in cross-platform streaming applications in cloud computing environments
US9769536B2 (en) * 2014-12-26 2017-09-19 System73, Inc. Method and system for adaptive virtual broadcasting of digital content
US10237236B2 (en) 2015-06-25 2019-03-19 Microsoft Technology Licensing, Llc Media Session
US9993729B2 (en) * 2015-08-19 2018-06-12 Sony Interactive Entertainment America Llc User save data management in cloud gaming
US10315108B2 (en) * 2015-08-19 2019-06-11 Sony Interactive Entertainment America Llc Local application quick start with cloud transitioning
US20170142389A1 (en) * 2015-11-18 2017-05-18 Le Holdings (Beijing) Co., Ltd. Method and device for displaying panoramic videos

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012521723A (ja) * 2009-03-23 2012-09-13 オンライブ インコーポレイテッド 一時的デコーダ装置及び方法
JP2011086293A (ja) * 2009-10-14 2011-04-28 Sony Computer Entertainment America Llc ブラウザベースのゲームを代替コントローラおよびインタフェースでプレイする方法
WO2014029944A1 (fr) * 2012-08-21 2014-02-27 Orange Accès a distance a des contenus a partir d'un client léger
JP2014130589A (ja) * 2012-12-27 2014-07-10 Sony Computer Entertainment America Llc クラウドコンピューティングシステムによってサービス提供されるコンピュータアプリケーションのミニアプリケーション生成および実行のための方法およびシステム
WO2015098165A1 (en) * 2013-12-26 2015-07-02 Square Enix Holdings Co., Ltd. Rendering system, control method and storage medium

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023136516A1 (ko) * 2022-01-12 2023-07-20 삼성전자 주식회사 전자 장치 및 방법

Also Published As

Publication number Publication date
US20190282897A1 (en) 2019-09-19
JP6695449B2 (ja) 2020-05-20
WO2017218136A1 (en) 2017-12-21
US20170354878A1 (en) 2017-12-14
US20220226725A1 (en) 2022-07-21
US10046236B2 (en) 2018-08-14
CN109906107B (zh) 2022-10-21
EP3468683A1 (en) 2019-04-17
EP3468683B1 (en) 2020-07-08
US20180345140A1 (en) 2018-12-06
US11130054B2 (en) 2021-09-28
US11298614B2 (en) 2022-04-12
CN109906107A (zh) 2019-06-18

Similar Documents

Publication Publication Date Title
US11298614B2 (en) Browser-based cloud gaming
US11213744B2 (en) User save data transfer management for fast initiation of cloud video game
US11623141B2 (en) Cloud game streaming with client side asset integration
US11052313B2 (en) Using connection quality history to optimize user experience
EP3662980B1 (en) User save data management in cloud gaming
JP7523435B2 (ja) ピアツーピアストリーミングを使用したクラウドソーシングによるクラウドゲーム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190213

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20190221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191129

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: 20200324

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200421

R150 Certificate of patent or registration of utility model

Ref document number: 6695449

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250