JP2020524066A - ビデオゲームのゲームプレイをスケジューリングする方法及びシステム - Google Patents

ビデオゲームのゲームプレイをスケジューリングする方法及びシステム Download PDF

Info

Publication number
JP2020524066A
JP2020524066A JP2020519662A JP2020519662A JP2020524066A JP 2020524066 A JP2020524066 A JP 2020524066A JP 2020519662 A JP2020519662 A JP 2020519662A JP 2020519662 A JP2020519662 A JP 2020519662A JP 2020524066 A JP2020524066 A JP 2020524066A
Authority
JP
Japan
Prior art keywords
player
game
video game
gameplay
data
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
JP2020519662A
Other languages
English (en)
Other versions
JP6982684B2 (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 JP2020524066A publication Critical patent/JP2020524066A/ja
Application granted granted Critical
Publication of JP6982684B2 publication Critical patent/JP6982684B2/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/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
    • A63F13/795Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for finding other players; for building a team; for providing a buddy list
    • 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
    • A63F13/216Input arrangements for video game devices characterised by their sensors, purposes or types using geographical information, e.g. location of the game device or player using GPS
    • 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/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/70Game security or game management aspects
    • A63F13/73Authorising game programs or game devices, e.g. checking authenticity
    • 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
    • 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/85Providing additional services to players
    • A63F13/87Communicating with other players during game play, e.g. by e-mail or chat
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • 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/55Push-based network services
    • 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/5681Pre-fetching or pre-delivering data based on network characteristics
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • 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/45Controlling the progress of the video game
    • A63F13/49Saving the game status; Pausing or ending the 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/49Saving the game status; Pausing or ending the game
    • A63F13/493Resuming a game, e.g. after pausing, malfunction or power failure
    • 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/54Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Environmental & Geological Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

第2の地理的位置からのユーザアカウントからリクエストを受信することを予期してデータを移動させるために第2の地理的位置におけるデータセンタを割り振る方法及びシステムは、第1の地理的位置から第2の地理的位置へのユーザの地理的位置における変化のインジケーションを受信することを含む。ユーザについての保存データは、第1の地理的位置において識別される。保存データは、複数のゲームに対するユーザの使用傾向を判定するように分析される。保存データの部分は、使用傾向に基づいて識別され、第2の地理的位置における保存データにユーザがアクセスする可能性が高いことを予期して、第2の地理的位置における第2のデータセンタに伝送される。保存データは、ゲームにアクセスするために使用されるユーザのクライアントデバイス上でレンダリングするため1つ以上のゲームのそれぞれについてゲームプレイの現在の状態を提供するように、クラウドゲーミングシステム上で実行されるときに1つ以上のゲームのゲームロジックに対して利用可能にされる。【選択図】図5

Description

本開示は、クラウドシステム上で実行するインタラクティブアプリケーション、特に、クラウドゲーミングシステム上で実行するビデオゲームまたはゲーミングアプリケーションに関連する。より具体的には、本開示は、プレイヤーのグループがグループ内のプレイヤーからのリクエストに基づいて、ビデオゲームをプレイするためのスケジュールされた時間にオンラインで集合することを可能にする方法及びシステムを説明する。
関連技術の説明
ビデオゲーム技術の発展に伴ってビデオゲーミングがますます人気になっている。また、高性能グラフィックプロセッサなどのクラウドベースの処理における発展に伴って、ユーザは、望ましく且つ最適なインタラクティブな経験あるいはインタラクティブ経験(Interactive Experience:IE)が提示される。例えば、クラウドベースのシステムは、ビデオゲームなどのインタラクティブアプリケーションを実行するための無制限の処理能力及びシステムリソース、並びにユーザに利用可能なレガシービデオゲーム及び新たなビデオゲームの圧倒的な広がりを提供し、ユーザが自分のデバイスをアップグレードする必要なく、ビデオゲームにアクセスし、ビデオゲームをプレイすることを可能にする。それらのクラウドベースのシステムは、リモートクライアントへのコンテンツのストリーミングを可能にし、分散されることがあるほとんどの処理がサーバ上で行われる。したがって、ユーザが複雑なハードウェアの制約なしにより多くのビデオゲームタイトルにアクセスすることがより容易であることに気付き、ゲームサプライヤーが集中ロケーションからゲームコードを管理することがより容易であることに気付いたことにより、クラウドベースのゲーミングがますます人気になっている。
ユーザは、ゲームプレイのためにビデオゲームを選択することがあり、選択されたビデオゲームは、リモートサーバ上で実行され、ゲームプレイと関連付けられた情報は、1つまたは複数のデバイスを通じてユーザに提示される。同様に、ユーザは、ゲームプレイのインタラクションを提供する1つのまたは複数のデバイスを選択することがあり、そのようなインタラクションは、選択されたビデオゲームのゲームプレイを進め、またはゲームプレイの間のユーザ経験を高めるためにリモートサーバによって処理される。
あるビデオゲームは、単一のプレイヤーによってプレイされるように構成され、他のビデオゲームは、複数のプレイヤーによってプレイされるように構成されている。マルチプレイヤーゲームでは、ユーザの友達(例えば、ソーシャルコンタクトまたはゲームプレイコンタクト)は、ビデオゲームのゲームプレイの間に関連する複数のデバイスのうち1つを使用して情報を参照し、インタラクションあるいはインタラクションを提供することによって、ユーザと共にゲームプレイに参加することができる。
本開示の実施形態は、このような状況においてなされたものである。
本発明の実施形態は、プレイヤーがいずれかの地理的位置から、ゲームのゲームプレイを始めることを可能にするために、クラウドホスティングシステムによってホストされたゲームへの即時アクセスを提供するために使用される方法及びシステムを開示する。クラウドホスティングシステムは、クラウドホスティングシステムに利用可能なリソースを使用して、ユーザインタラクション(例えば、ビデオゲームアプリケーション及び他のインタラクティブアプリケーション)のための複数のオンライン、インタラクティブ(あるいはインタラクティブ)アプリケーションをホストするように構成されている。クラウドホスティングシステムがゲームアプリケーションをホストする例では、クラウドホスティングシステムは、本明細書で「クラウドゲーミングシステム」とも称される。クラウドゲーミングシステムによってホストされたビデオゲーム(または、単純に「ゲーム」)は、シングルプレイヤーゲーム及びマルチプレイヤーゲームを含んでもよい。
概略的には、ユーザは、クラウドゲーミングシステムにアクセスし、1人以上のプレイヤーとのゲームをプレイするリクエストを開始する。リクエストは、ユーザがゲームをプレイすることを望むスケジュールされた時間を含み、ゲームプレイに加わりたいプレイヤーを識別する。スケジュールされた時間は、将来のある時点の時間であり、リクエストが開始された直後であってもよく、リクエストが開始された後の数分であってもよく、または将来の他の時間もしくは日であってもよい。クラウドゲーミングシステムは、リクエストにおいて識別されたプレイヤーに、ユーザがスケジュールされた時間にビデオゲームをプレイすることを望むことをプレイヤーに知らせる通知を送信することによって、リクエストを処理する。プレイヤーから受信された応答は、どのプレイヤーがスケジュールされた時間にユーザとゲームをプレイすることに関心があるかを判定するように検査される。1人以上のプレイヤーがスケジュールされた時間にゲームを好意的にプレイすることに応答するかに応じて、クラウドゲーミングシステムは、スケジュールされた時間にゲームをゲームプレイのために利用可能とするように、ゲームを予め事前ロードする。リクエストを処理することの一部として、クラウドゲーミングシステムは、ユーザ、及びユーザとゲームをプレイすることに合意した各プレイヤーの現在の地理的位置を判定する。クラウドゲーミングシステムは次いで、プレイヤー及びユーザの各々についての地理的位置(複数可)に近接したデータセンタ(複数可)を識別するように、レイテンシ及び他の品質関連テストを実行する。クラウドゲーミングシステムは、識別されたデータセンタ(複数可)に、スケジュールされた時間にゲームをゲームプレイのために利用可能にする信号を送信する。地理的位置(複数可)内のデータセンタ(複数可)におけるサーバは、予めビデオゲームのゲームコードをロードすることによって信号を処理し、ゲームプレイが開始されるポイントまでゲームプレイを更新し、スケジュールされた時間にユーザ及びプレイヤーがゲームにアクセスし、ゲームプレイを始めることを可能にする。
ゲームプレイの間にユーザ及びプレイヤーによって提供されるインタラクションは、異なるデータセンタにおけるゲームの現在のゲーム状態を更新するために使用される。ゲームに関連するインタラクションも、それぞれのデータセンタ(複数可)においてゲームデータとして維持される。ゲームの現在のゲーム状態は、現在のゲームレベル、ゲームの勝利、トロフィ、ゲームポイント、ゲーム通貨、武器、景品、賞、褒賞、ポイントスコア、ゲームライブなどを含む各々のプレイヤー及びユーザについてのゲームの現在のステータス、ゲームカスタマイズ、利用可能なゲームオプション、ゲームメトリック、ゲームクリップ、ゲームプレイから作成されるミニゲーム、他のプレイヤーとの通信履歴、ゲームレコーディング、及びいずれかの他のゲーム関連またはプレイヤー関連属性を含む。ゲームの現在のゲーム状態は、クラウドゲーミングシステムがいずれかの後続のゲームプレイのためにユーザ及びプレイヤーに対してゲームのためのゲームプレイを再作成することを可能にする。
クラウドゲーミングシステムにおいてゲームを事前ロードし、ユーザによって選択されたスケジュールされた時間の直前にゲームをゲームプレイのために準備させることは、ユーザ及びプレイヤーが、いずれのセットアップルーチンも通る必要なく即時にゲームのゲームプレイにアクセスし、ゲームのゲームプレイを開始することを可能にする。スケジュールされた時間の前のそのような時機を得たゲームの事前ロードは、クラウドゲーミングシステムが、必要とされるときにビデオゲームのためのシステム及びネットワークリソースを提供し、必要とされないときにシステムリソースを不必要にロックすることを回避することを保証する。本明細書で説明される実施形態は、ユーザ及びプレイヤーがゲームプレイのためにゲームにアクセスするとき、ゲームのゲームプレイのストリームに直接「ドロップイン」されるように、ユーザがいずれかのスケジュールされた時間にゲームプレイのためにプレイヤーのグループを呼び集めることを可能にする。ドロップインとは、本出願において使用されるように、ユーザ及びプレイヤーが、ゲームが開始されるポイントからのゲームのゲームプレイへのアクセスを有し、ユーザ及びプレイヤーがゲームから離れなかったように見せることを指す。プレイヤーは、本明細書で言及されるように、友達、またはソーシャルコンタクト、またはゲーム関連コンタクト、またはユーザに関連しもしくは関連しないいずれかの他のユーザを含むことに留意されたい。ゲームプレイのためにプレイヤーを呼び集めることは、「フラッシュモブ」の概念と類似し、ユーザは、イベントについての活動を実行するために人々を呼び集める。
一実施形態では、方法が提供される。方法は、ビデオゲームのゲームプレイのリクエストを受信することを含む。リクエストは、第1プレイヤーのクライアントデバイスから発し、ゲームプレイについてのスケジュールされた時間、及びビデオゲームのゲームプレイに加わるように招待される他のプレイヤーのアイデンティティを識別する。リクエストに応答して、スケジュールされた時間にビデオゲームのゲームプレイに加わるように他のプレイヤーにリクエストする通知が他のプレイヤーに送信される。他のプレイヤーからの通知に対して受信された応答は、スケジュールされた時間にビデオゲームのゲームプレイについて合意した他の特定のプレイヤーを識別するように評価される。評価に基づいて、ビデオゲームは、第1プレイヤー、及びゲームプレイに合意した他の特定のプレイヤーに対し、ビデオゲームのゲームプレイが始まるポイントまで事前ロードされる。ビデオゲームの事前ロードは予め実行され、スケジュールされた時間にビデオゲームにアクセスすることによって、第1プレイヤー、及び他の特定のプレイヤーの各々がビデオゲームのゲームプレイを始めることを可能にする。ビデオゲームは、マルチプレイヤービデオゲームである。
別の実施形態では、クラウドゲーミングシステム上で利用可能なビデオゲームのゲームプレイのための方法が提供される。方法は、第1プレイヤーから受信されたビデオゲームのゲームプレイのリクエストを検出することを含む。リクエストは、ゲームプレイについてのスケジュールされた時間、及びビデオゲームのゲームプレイに加わるように招待される他のプレイヤーのアイデンティティを識別する。他のプレイヤーは、他のアプリケーションと現在オンラインでインタラクションを行っているユーザであり、第1プレイヤーのソーシャルネットワークから識別される。リクエストに応答して、スケジュールされた時間にビデオゲームのゲームプレイに加わるように他のプレイヤーにオンラインでリクエストしている他のプレイヤーに通知が送信される。通知が送信された1人以上の他のプレイヤーから受信された応答は、スケジュールされた時間にビデオゲームのゲームプレイについて合意した他の特定のプレイヤーを識別するように評価される。ビデオゲームは、第1プレイヤー、及びスケジュールされた時間にゲームプレイについて合意した他の特定のプレイヤーに対して事前ロードされ、事前ロードは、ビデオゲームのゲームプレイが始まるポイントまで行われる。ビデオゲームの事前ロードは予め実行され、スケジュールされた時間にビデオゲームにアクセスすることによって、第1プレイヤー、及び他の特定のプレイヤーの各々がビデオゲームのゲームプレイを即時に始めることを可能にする。ビデオゲームは、マルチプレイヤービデオゲームである。
更なる別の実施形態では、クラウドゲーミングシステム上で利用可能なビデオゲームのゲームプレイのための方法が開示される。方法は、第1プレイヤーからのビデオゲームのゲームプレイのリクエストを検出することを含む。リクエストは、他のプレイヤーがゲームプレイに現在関与しているビデオゲームのゲームプレイに加わるためのスケジュールされた時間を識別する。スケジュールされた時間にビデオゲームのゲームプレイに加わるようにリクエストする通知が、ビデオゲームを現在プレイしている他のプレイヤーに送信される。1人以上の他のプレイヤーから受信された通知への応答は、第1プレイヤーがスケジュールされた時間にビデオゲームのゲームプレイに加わることを可能にするように合意した他の特定のプレイヤーを識別するように評価される。ビデオゲームは、他の特定のプレイヤーがビデオゲームのゲームプレイを続けている間、第1プレイヤー対して、現在のゲーム状態まで事前ロードされる。事前ロードは、第1プレイヤーがスケジュールされた時間に、現在のゲーム状態からビデオゲームのゲームプレイに即時に加わることを可能にするように時間内に実行される。
別の実施形態では、クラウドゲーミングシステムが開示される。クラウドゲーミングシステムは、クラウドゲーミングシステムによってホストされた複数のゲームを実行し、スケジュールされた時間にゲームのゲームプレイのリクエストにサービスするように構成されたアプリケーションサーバを含み、リクエストは、第1プレイヤーのクライアントデバイスから発する。アプリケーションサーバは、ゲームプレイスケジューラを含む。ゲームプレイスケジューラは、リクエストを受信し、リクエストを分析して、ゲームプレイがリクエストされるゲームのゲーム識別子、及びゲームプレイのために招待するプレイヤーのアイデンティティを識別するように構成されている。ゲームプレイスケジューラ内のデータセンタマネージャは、各々のプレイヤー(リクエストを開始した第1プレイヤーを含む)についての地理的位置を識別することによってリクエストを処理し、プレイヤーの地理的位置に近接したデータセンタを識別し、識別されたデータセンタ内の1つ以上のサーバ上でゲームをインスタンス化するリクエストを有する、識別されたデータセンタへの信号を生成するように構成されている。ゲームプレイスケジューラ内のゲームデータシンクロナイザは、各々のプレイヤーに対し、識別されたデータセンタ内の1つ以上のサーバへのゲームのゲームデータの事前ロードを同期し、前のゲームプレイが放棄されたポイントからゲームをゲームプレイのために利用可能にするように構成されている。ゲームデータシンクロナイザは、ゲームを事前ロードするための時間ウインドウを識別するようにスケジュールウインドウとインタラクションを行ってもよく、アップロードされる必要がある各々のプレイヤーのゲームデータを識別するようにappスケジューラとインタラクションを行ってもよい。ゲームプレイスケジューラは、クラウドゲーミングシステムに接続する、スケジュールされた時間におけるゲームプレイの招待を受け付けた各々のプレイヤーを検出し、ゲームが中断されたポイントからゲームプレイのためのゲームへのアクセスを提供するように更に構成されている。ゲームプレイスケジューラは、それぞれのクライアントデバイスとのゲームプレイの間にゲームデータを交換し、サーバ上で、及びそれぞれのクライアントデバイスにおいてゲームのゲーム状態を更新するように構成されている。
本発明の他の態様及び利点は、本発明の原理を例として例示する、添付図面を併用して以下の詳細な説明から当業者に対して明らかになる。
本発明は、その更なる利点と共に、添付図面を併用して以下の説明を参照することによって最良に理解されることができる。
本発明の実施形態に従った、第2の地理的位置におけるデータセンタにユーザの保存データを移動させるために、ユーザの地理的位置における変化を検出するために使用される実施例のシステムの簡易ブロック図を例示する。 本発明の一実施形態に従った、スケジュールされた時間における、第1プレイヤー、及び第1プレイヤーとのビデオゲームのゲームプレイについて合意した他の特定のプレイヤーのユーザプロファイルデータを提供する、アプリケーションホスティングシステム内の実施例のユーザアカウントデータ処理エンジンを例示する。 本発明の実施形態に従った、スケジュールされた時間にビデオゲームのゲーム関連データを移動させるための、第1プレイヤー及び他の特定のプレイヤーの地理的位置に基づいて1つ以上のデータセンタを識別する、アプリケーションホスティングシステム内の実施例のデータセンタマネージャモジュールを例示する。 本発明の実施形態に従った、事前ロードされる必要がある、第1プレイヤー及び他の特定のプレイヤー各々のゲームデータを識別する、クラウドゲーミングシステム内の実施例のゲームデータマネージャモジュール(例えば、ゲーム実行エンジン)を例示する。 本発明の実施形態に従った、スケジュールされた時間にビデオゲームのゲームデータを事前ロードするために使用される簡易データフローチャートを例示する。 本発明の実施形態に従った、スケジュールされた時間にゲームプレイのためにスケジュールされたクラウドゲーミングシステムにビデオゲームのゲームデータを事前ロードするために使用される方法の処理動作を例示する。 本発明の他の実施形態に従った、スケジュールされた時間にゲームプレイのためにスケジュールされたクラウドゲーミングシステムにビデオゲームのゲームデータを事前ロードするために使用される方法の処理動作を例示する。 本発明の一実施形態に従った、ネットワークを介して地理的に分散及び接続されたユーザに情報のコンテンツ及びサービスを配信するための例示的な情報サービスプロバイダアーキテクチャを例示する。
以下の説明では、本発明の完全な理解を提供するために、多くの特定の詳細が示される。しかしながら、本発明は、それらの具体的な詳細のいくつかについて、あるいは具体的な詳細の全てについて、それらを用いることなく実施し得ることが当業者にとって明らかである。他の例では、本発明を不明瞭にしないために、周知の処理工程を詳細には説明していない。
本発明の様々な実施形態に従って、ユーザは、ユーザアカウントを通じてクラウドゲーミングシステムにアクセスし、ゲームを選択する。リクエストは、ユーザがゲームプレイのためにスケジュールする時間、及びユーザがゲームのゲームプレイのために招待することを望むプレイヤーのアイデンティティを含む。クラウドゲーミングシステムは、ユーザのクライアントデバイスから発するリクエストを検出し、それに応答して、ユーザによってスケジュールされた時間にゲームのゲームプレイに加わるように、他のプレイヤーに通知を送信する。通知への他のプレイヤーの応答は、他のプレイヤーのうち、どの1人がスケジュールされた時間の間にゲームのゲームプレイへの関心を表したかを判定するように評価される。評価に基づいて、クラウドゲーミングシステムは、クラウドゲーミングシステムと関連付けられた特定のデータセンタにゲームを事前ロードし、ユーザ及び他のプレイヤーがクラウドゲーミングシステムにおいてゲームにアクセスするとゲームをゲームプレイすることを可能にするように、クラウドゲーミングシステムと関連付けられた特定のデータセンタにゲームを事前ロードする。ゲームのロードは予め行われ、ユーザ及び他のプレイヤーがゲームにアクセスし、ゲームをプレイすることを開始することを可能にする。
スケジュールされた時間にゲームのゲームプレイのためにちょうど良いタイミングでゲームの事前ロードを実行することは、クラウドゲーミングシステムが、ネットワーク及びシステムリソースを必要とされる期間の間に賢明に割り当て、ユーザ及び他のプレイヤーがゲームをプレイするためにクラウドゲーミングシステムにアクセスしようとしていない残りの期間の間にリソースを不必要に拘束しないことを可能にする。更に、スケジュールされた時間にゲームをゲームプレイのために準備させることで、ユーザ及び他のプレイヤーが、セットアップルーチンを行うことを必要とせず、ユーザ及び他のプレイヤーがゲームストリームに直接「ドロップイン」することを可能にする。本明細書で説明される様々な実施形態の他の利点が当業者にとって明らかになる。
クラウドゲーミングシステムは、ユーザ及び他のプレイヤーの現在の地理的位置を判定するように、ユーザのユーザプロファイル及び他のプレイヤーのユーザプロファイルをクエリしてもよく、またはユーザ及び他のプレイヤーのクライアントデバイスから生成された信号を使用してもよい。ユーザ及び他のプレイヤーの現在の地理的位置に近接した1つ以上のデータセンタが識別される。データセンタ内のサーバは、サーバがゲームのゲームプレイのために必要とされる十分な処理及び通信リソースを有するかどうかを判定するように評価される。例えば、データセンタ内のサーバは、利用可能な通信プロトコル、利用可能なシステムリソース、接続速度(すなわち、ストリーミング速度)、などに基づいて評価されてもよく、スケジュールされた時間の直前にゲームコード及びゲームデータをアップロードするためのサーバの特定の1つが識別されてもよい。ゲームデータの時機を得たアップロードは、ユーザ、及びゲームをプレイすることに合意した他のプレイヤーと関連付けられたクライアントデバイスが、クラウドゲーミングシステムに接続し、スケジュールされた時間にゲームのゲームプレイを即時に始めることを可能にする。
ゲームプレイの間、識別されたデータセンタにおけるシステムリソース、及び対応するクライアントデバイスと識別されたデータセンタのうちの特定の1つのサーバとの間の接続の接続属性は、ゲームのゲームプレイのための接続要件を満たすことを保証するように監視される。十分なシステムリソースがゲームのゲームプレイの間に利用可能であることを保証するように、周期的なサービス品質テストが行われる。ユーザ及び他のプレイヤーは、データセンタの単一のサーバからゲームにアクセスしていることがある。代わりに、ユーザ及び他のプレイヤーは、単一のデータセンタまたは複数のデータセンタ内の複数のサーバからゲームにアクセスしていることがある。結果として、識別されたデータセンタ(複数可)内のサーバ(複数可)は、ユーザ及び他のプレイヤーが満足するゲームプレイ経験を有することを可能にするように、サーバ(複数可)がリソースを提供できることを保証するように検証されてもよい。
ゲームについてのゲームデータは、ゲーム関連データ及びユーザ関連データを含んでもよい。ゲーム関連データ及び/またはユーザ関連データは、ゲームコード、及びユーザがゲームのゲームプレイを再開することに関心があるポイント(例えば、ゲームのために記録された現在のゲーム状態)までゲームを再作成するのに十分であるゲーム状態情報を含んでもよい。ゲームの再作成は、ユーザ、及びゲームプレイリクエストに応答した他のプレイヤーが、ポイントから前方にゲームプレイを再開し、ゲームのゲームプレイに全体的に没頭することを可能にする。
システムリソース及び接続属性を監視することは、ユーザまたは他のプレイヤーのそれぞれのクライアントデバイスとプレイヤー(すなわち、ユーザまたは他のプレイヤー)に対してゲームデータを提供するために使用されるデータセンタの対応するサーバとの間で確立された通信接続の接続速度、使用される通信プロトコル、サーバ及びデータセンタにおける通信及びシステムリソースの可用性、スケジュールされた時間における予想される通信及びシステムリソースリクエストなどのうちの1つ以上を監視することを含んでもよい。通信接続の監視は、割り当ての前または後にそれぞれのクライアントデバイスと対応するデータセンタとの間でストリーミングデータパケットを交換し、交換を評価することによって実行されてもよい。スケジュールされた時間及びゲームプレイの間のそのような監視は、サービス品質がゲームプレイの間に悪化しないことを保証することである。リソースまたは接続属性が予期される接続要件に満たない場合、次いで、ユーザに対して最適なゲーム体験を提供するように、割り振られたサーバ内で追加のリソースが割り当てられてもよく、またはデータセンタ内のサーバが別のサーバに切り替えられてもよく、または同じ地理的位置内でデータセンタが別のデータセンタに切り替えられてもよい。
ユーザ及び他のプレイヤーが、最小のレイテンシからレイテンシなしで現在のゲームデータが提示されるように、1つ以上のデータセンタ内の1つ以上のサーバにおけるゲームコードの実行及びゲームデータのロードが同期される。ゲームプレイの間に生成されたデータは、ゲームのゲーム状態に影響を与えるように使用され、ゲームデータデータストアにゲームデータとして記憶される。ゲームデータは、割り振られたデータセンタ(複数可)のプロファイル並びにユーザ及び他のプレイヤーのユーザプロファイル内のユーザメトリックを更新するために使用され、必要とされるときにゲームを再作成する十分な詳細を含む。それぞれのデータセンタ(複数可)におけるリソースの現在の状態を判定するために、データセンタプロファイルが使用されてもよい。例えば、データセンタプロファイルは、利用可能である接続属性、ユーザからのリクエストがサービスされたときに使用された接続属性、利用可能なシステムリソース、及びゲームプレイのためのリクエストのサービスの間に消費されたシステムリソースを識別する。識別されたデータセンタが十分なリソースを有すること、及びデータセンタと対応するクライアントデバイス(複数可)との間の接続の接続属性がスケジュールされた時間の間にゲームのグラフィックをストリーミングするための接続の要件を満たし、ユーザ及び他のプレイヤーのクライアントデバイスへのゲームプレイデータの伝送の間のいずれかのレイテンシを回避することを可能にすることを保証するために、データセンタプロファイルが使用される。
クラウドゲーミングシステムは、多数の人々が同時に同一のコンテンツをプレイするようにオンラインで集める方式を提供する。クラウドゲーミングシステムは、オーガナイザ(すなわち、ユーザまたは第1プレイヤー)がゲームのゲームプレイイベントのための時間をスケジュールすることを可能にする。それに応答して、クラウドゲーミングシステムは、オーガナイザによって識別されたプレイヤーに通知を送信する。オーガナイザ及びプレイヤーが、クラウドゲーミングシステムにアクセスすると即時にゲームに接続することができるように、ゲームを事前ロードするために、1つ以上のサーバが使用される。事前ロードは、リクエストをオプトインするプレイヤーがゲームプレイのストリームに即時にドロップインすることを可能にする。クラウドゲーミングシステムは、ユーザ及びプレイヤーを集めて、スケジュールされた時間にイベントを実行するように手を携えて作用するゲームストリーミングサービス及びプッシュ通知サービスの組み合わせを提供する。
本明細書で説明される様々な実施形態は、ビデオゲームのユーザ及びプレイヤーがゲームに直接「ドロップイン」し、ゲームプレイを始めることが可能にできるように、クラウドゲーミングシステムが、ユーザによってスケジュールされた時間にシステム及び通信リソースをスマートに割り当てることを可能にする。プレイヤー及びユーザが即時に接続することができ、ゲームプレイを始めることができるように、ユーザは、ゲームプレイイベントなどのイベントのための時間をスケジュールまたはプログラムし、サーバは、ゲームを事前ロードするために利用可能なリソースを使用する。ユーザは、周期的にゲームプレイイベントをスケジュールしてもよく(例えば、1日に1回、1週間に1回など)、またはランダムにスケジュールしてもよい。様々な実施形態は、人々のグループがゲームアプリケーションのゲームプレイなどのイベントを実行するためのスケジュールされた時間にオンラインで集合することを可能にし、クラウドゲーミングシステムは、スケジュールされた時間にイベントを実行するために適時にリソースを割り当てる。本発明の全体的な理解により、ここでは、様々な図面を参照して特定の実施形態が説明される。
図1は、スケジュールされた時間に、ゲームアプリケーションのゲームプレイなどのアプリケーションとインタラクション(あるいは対話)を行うためのリクエストを検出するために使用されるシステムの簡易ブロック図を例示する。リクエストは、第1プレイヤーのクライアントデバイス100から受信される。第1プレイヤーのクライアントデバイス100は、例えば、地理的位置1と関連付けられてもよい。クライアントデバイス100は、インターネットなどのネットワーク200を通じて、クラウドゲーミングシステム300上でアプリケーションサーバ301などのサーバに通信可能に接続される。サーバは、複数のサーバ、ゲームコンソールなどを含むデータセンタの一部であってもよい。
クライアントデバイス100は、処理モジュール(すなわち、プロセッサ)110、メモリ、並びにサーバ側アプリケーションと通信するようにネットワーク及び適切なアプリケーションプログラミングインタフェース(API)に接続するためのネットワーク接続を含むいずれかのコンピューティングデバイスである。プロセッサは、クライアント側アプリケーションを実行できる。クライアント側アプリケーションは、スタンドアロンで稼働してもよく、またはネットワーク接続を通じてネットワーク200に接続することによってサーバ側アプリケーションとインタラクションを行ってもよく、サーバ側アプリケーションと通信し、もしくはサーバ側アプリケーションにアクセスするためにAPIを使用してもよい。ネットワーク接続は、有線または無線接続とすることができる。クライアントデバイス100は、シンクライアント、汎用コンピュータ、専用コンピュータ、ゲームコンソール、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピューティングデバイス、モバイルコンピューティングデバイス、ポータブルゲーミングデバイス、携帯電話、スマートフォン、セットトップボックス、ストリーミングメディアインタフェース/デバイス、スマートテレビもしくはネットワーク化されたディスプレイ、またはローカルに利用可能でありもしくはクラウドゲーミングシステムのリモートサーバ上で利用可能なアプリケーションにアクセスするために使用することができるいずれかの他のコンピューティングデバイスであってもよい。使用されるネットワーク接続及び通信プロトコルは、クライアントデバイス100がリモートサーバと通信して、クラウドゲーミングシステム300の一部であるアプリケーションサーバ301などのリモートサーバから、マルチメディアコンテンツのビデオフレームのストリームを受信することを含む、コンテンツを受信することを可能にする。リモートサーバによってストリーミングされるビデオフレームは、エンコーダを使用して圧縮を受けている。クライアントデバイス100は、リモートサーバによって伝送されたゲームプレイコンテンツを表すビデオフレームのストリームを解凍し、クライアントデバイス100のディスプレイスクリーン上で画像をレンダリングするデコーダを含んでもよい。レンダリングされた画像は、ゲームの現在のゲーム状態を識別する。
ゲームの現在のゲーム状態は、ゲームサーバまたは他のアプリケーションサーバからの音声/ビデオデータを受信、復号、レンダリングし、ユーザ入力をゲームサーバまたは他のアプリケーションサーバに再度通信するように主に機能するクライアントデバイス100により、リモートサーバ上で実質的に維持及び実行される。クライアントデバイス100は、ディスプレイデバイス上でレンダリングするためのビデオデータを提供するように、ディスプレイデバイスに接続されたスタンドアロンコンピューティングデバイスであってもよい。他の実施形態では、ディスプレイデバイスは、クライアントデバイス100に統合されることができる。一実施形態では、クライアントデバイスは、ディスプレイデバイスのネットワーク接続性を利用したアプリケーションすなわち「app」についてのプラットフォームオペレーティングシステムを提供するネットワーク化されたディスプレイデバイスである、ディスプレイデバイスである。そのような実施形態では、クライアントデバイス100は、ディスプレイデバイスのオペレーティングシステムによって提供されるプラットフォーム上で実行されるアプリケーションによって定義されることができる。
本出願において使用されるアプリケーションサーバ301は、ローカルサーバ、仮想コンピュータ、クラウドゲーミングサーバ、デジタルメディアサーバ、ゲーム開発者/ゲームスポンサのストアフロントを提供するために使用されるサーバ、ウェブサーバ、端末サーバ、コンソールサーバ、リモートサーバ、または使用の間にユーザがアクセス及びインタラクションを行うことができるインタラクティブアプリケーションを実行するための処理リソースを提供することもしくは割り当てることを含む、1つ以上のインタラクティブアプリケーション(例えば、ゲームアプリケーション)をホストできるデータセンタ305において利用可能ないずれかの他のタイプもしくは形式のサーバコンピューティングデバイスである。アプリケーションサーバ301は、特定のタイプの通信プロトコルに従ったアプリケーションプログラミングインタフェース(API)呼び出しを使用して、ビデオフレームにあるデータを圧縮し、圧縮されたビデオフレームをデータストリームにおいてクライアントデバイス100に転送するエンコーダを含んでもよい。
例えば、データセンタ305内の、クラウドゲーミングサーバの形式にあるアプリケーションサーバ301は、ユーザアカウントに対して利用可能な様々なビデオゲームを実行し、ゲームプレイの間に提供されるユーザインタラクションに基づいてその時々で様々なビデオゲームのゲーム状態を定義し、ビデオデータ(画像データ、音声データ、触覚データなどを含む)を特定の地理的位置内でまたは複数の地理的位置にわたって分散された1つ以上のクライアントデバイス100に送信する。所与の地理的位置(複数可)におけるクライアントデバイス100は、ビデオゲーム(複数可)をプレイするユーザ(複数可)からの入力を受信及び処理し、処理された入力データをクラウドゲーミングサーバに伝送し、クラウドゲーミングサーバは、1つ以上のビデオゲームのゲーム状態に影響を与える追加の処理を実行する。クラウドベースのゲーミングは、ネットワーク200を通じて全てのプレイヤーによってアクセス可能な1つ以上のリモートクラウドゲーミングサーバにおける実行のためのビデオゲームのインスタンスを提供することによって、異なる地理的位置に位置するプレイヤーに対してマルチプレイヤーゲーミングを促進する。この方式では、ビデオゲームの実行は、いずれの単一のプレイヤーのハードウェアまたはネットワーク接続性にも依存しないが、それは、その所与のプレイヤーについてのユーザ経験に影響を与えることがある。
本明細書で説明されるクラウドゲーミングアーキテクチャを使用して実行される動作は、データベースへの即時アクセス及びユーザのリモートに位置するクライアントデバイス100への、ゲームプレイコンテンツなどのコンテンツの提示を可能にするために、複数のサーバ及び/または実行プラットフォームを必要とする技術的動作を形成する。クラウドゲーミングサーバはまた、様々な圧縮技術を利用することによって、ゲームデータをクライアントデバイス(複数可)に伝送する前にゲームデータに対して圧縮動作を実行する。圧縮技術は、標準的なエンコーダを使用してもよく、標準的なエンコーダは次いで、クライアントデバイス100上の標準的なデコーダがクライアントデバイス100上の画像、ビデオ、及び音声データにアクセス、復号、及びレンダリングすることを可能にして、ビデオゲームのゲームプレイを可能にする。ビデオゲームの実行の管理及び複数のクライアントデバイスへのゲームデータの分散は、いくつかのデータセンタ(350−1〜305−n)、ダイレクションサーバ(direction server: DS)、サービス品質テスタまたはエンジン、より低レイテンシのデータセンタへのダイレクション及びリダイレクションなどを伴うことができる。それらの動作及びタスクは、ゲームをリモートに実行し、広い地形にわたって分散されたクライアントデバイス100にデータを配信する間の、ストリーミング及び低レイテンシのために設計された専用サーバコンピュータを利用してもよい。
データセンタ305は、一実施形態では、複数のサーバ(例えば、ゲーミングサーバ)301、ゲームコンソール301a、ゲームコード(109)、アプリケーションコード(111)、ユーザ関連データ(304)、及びアプリケーション関連ゲームデータ(107)を記憶し、それらをすぐに利用可能にして複数のユーザからのリクエストの変化に対応することを可能にできる記憶システムを含む。ユーザ及びプレイヤーは、ユーザの前のゲームプレイ、別のユーザの現在もしくは前のゲームプレイを参照するために、またはゲームアプリケーションの結果に影響を与える入力を行うために、ゲームアプリケーションなどのインタラクティブ(対話型)アプリケーションにアクセスする人を指して本出願で交換可能に使用されることに留意されるべきである。データセンタはまた、様々なクライアントデバイスと複数のサーバとの間で通信接続を確立する、ルータ、スイッチなどの電気通信機器を含んでもよい。複数のサーバの各々は、クライアントデバイス100における対応するクライアント側と、またはサードパーティソーシャルメディアもしくはコンテンツプロバイダと関連付けられたサーバ側APIと通信するためのサーバ側API(別個のまたは同様のいずれか)を備えてもよい。いくつかの実施形態では、データセンタ内のサーバは、ゲーミングアプリケーションなどを含む様々なタイプのアプリケーションを実行し、アプリケーションコンテンツをレンダリングのための対応するクライアントデバイス100にストリーミングするように構成されてもよい。サーバは、様々な圧縮技術を使用して、サーバによって生成または提供されるいずれかのデータに対して圧縮の動作を実行し、通信及び/または伝送プロトコルのいずれか1つを使用して、圧縮されたデータをクライアントデバイスに転送するように構成されてもよい。
サーバは、典型的には特定の機能、ゲーム、またはアプリケーションを実行または稼働させるために使用される、端末サーバ、コンソールサーバ、仮想サーバなどを含んでもよい。サーバによって実行される機能、ゲーム、またはアプリケーションのいくつかの例は、データベース管理、ファイル管理、メールサービス、プリントサービス、音声サービス、ビデオサービス、ウェブサービス、ゲーム管理、アプリケーション管理、メディア管理、カタログサービス、通信管理、コンピューティングサービス、及びプロキシ管理などを含んでもよい。いくつかの実施形態では、サーバの列及び/またはストレージラックを含む各々のデータセンタと共に、ラックマウントサーバまたは記憶装置として複数のサーバ及び/または記憶装置が設けられてもよい。各々のサーバは、複数のアプリケーションを実行する能力を有してもよく、及び/または多種多様なサービスを提供してもよい。
スケジュールされた時間におけるビデオゲームのゲームプレイのリクエストは、クラウドゲーミングシステム300などのホスティングシステムにおいてクライアントデバイス100から受信される。ゲームプレイのリクエストは、ビデオゲームのゲーム識別子、及びゲームをプレイするために招待される1人以上のプレイヤーのアイデンティティを含む。アプリケーションサーバ301などのサーバは、リクエストを受信し、ユーザアカウントデータ処理エンジン302に、クライアントデバイス100においてリクエストを開始したユーザを認証するようにユーザ関連情報を取得することに関与させる。ユーザアカウントデータ処理エンジン302は、ユーザアカウントデータベース304をクエリし、ユーザプロファイル及びユーザアカウント情報を受信するように構成されている。ユーザアカウントデータベース304は、クラウドゲーミングシステム300の複数のユーザのユーザプロファイル及び他のユーザアカウント情報を記憶する。ユーザプロファイル及びユーザアカウント情報は、ユーザ及びユーザによって開始されたリクエストを認証するために使用される。リクエストの認証が成功すると、リクエストがサービスするためのゲームプレイスケジューラ311に転送される。
ユーザを認証することの一部として、アプリケーションサーバ301のユーザアカウントデータ処理エンジン302は、ユーザが保有する全てのゲーム及び/またはアプリケーション、自由に利用可能な全てのゲーム及び/またはアプリケーションを判定するようにユーザアカウントデータベース304をクエリし、リクエストにおいて識別されたゲームが、ユーザとのインタラクションを承認されたゲームのうちの1つであることを検証するためにこの情報を使用する。リクエストにおいて識別されたゲームが、ユーザとのインタラクションを承認されたゲームのうちの1つでない場合、ゲーミングサーバ(すなわち、アプリケーションサーバ301)におけるユーザアカウントデータ処理エンジン302は、エラーまたは警告メッセージを生成し、警告メッセージをレンダリングのためのクライアントデバイス100に転送する。リクエストにおいて識別されたゲームが、ユーザがインタラクションを行うことを承認されたゲームのうちの1つである場合、ユーザアカウントデータ処理エンジン302は、リクエストをサービスするためにゲームプレイスケジューラ311にリクエストを転送する。
リクエスト認証の一部として、ユーザアカウントデータ処理エンジン302は、リクエストにおいて識別されたプレイヤーのユーザプロファイル及びユーザアカウント情報を取得するようにユーザアカウントデータベース304をクエリし、リクエストにおいて識別されたプレイヤーの各々がゲームにアクセスし、ゲームをプレイすることを承認されることを保証するためにこの情報を使用する。プレイヤーは、ユーザのソーシャルコンタクトであってもよく、ソーシャルネットワークもしくは他のコンタクトリストから識別されてもよく、またはビデオゲームもしくは他のビデオゲームのゲームプレイの間、もしくはクラウドゲーミングシステムによってホストされた他のアプリケーションとのインタラクションの間に開発されたコンタクトであってもよい。ユーザプロファイル及びユーザアカウントにおいて提供される情報は、例えば、コンタクト情報、各々のプレイヤーがアクセスすることができまたはアクセスを有するゲーム及びアプリケーションのリスト、ユーザ信用情報、ユーザスキル、ユーザの好み、ゲームまたはアプリケーションをセットアップするために使用されるログインルーチンなどを含む。ユーザプロファイルにおける情報に基づいて、リクエストにおいて識別されたプレイヤーのうちの1人以上がゲームをプレイするための承認を有していないと判定される場合がある。そのようなケースでは、リクエストに含まれる招待は、1回に1人以上のプレイヤーにゲームプレイのためのゲームへのアクセスを提供して、それらのプレイヤーがゲームを経験することを可能にするクラウドゲーミングシステムへの信号を含んでもよい。検証されると、ユーザアカウントデータ処理エンジン302は、プレイヤーの取り出されたユーザプロファイル及びユーザアカウント情報をゲームプレイスケジューラ311に転送する。
ゲームプレイスケジューラ311は、リクエストにおいて識別されたプレイヤーの各々に通知を送信するために、プレイヤーのコンタクト情報を使用する。ゲームプレイスケジューラ311内のappスケジューラ351aは、リクエストにおいて識別されたプレイヤーの各々に通知を送信するために使用されてもよい。この通知は、一実施形態では、ゲームのゲームプレイのリクエストを開始するユーザの識別子、ゲームプレイのためのユーザによって指定されたスケジュールされた時間、ゲームのゲーム識別子、通知が送信されるプレイヤーの識別子、及びゲームプレイのために選択されたビデオゲームの他の付属情報を含んでもよい。いくつかの実施形態では、各々のプレイヤーへの通知はまた、ゲームのゲームプレイのためにユーザによって招待された他のプレイヤーの識別子を示してもよい。
通知に応答して、プレイヤーのうちの1人以上は、ゲームプレイの招待を受け付ける可能性がある。各々のプレイヤーから受信された応答は、プレイヤーのうちのどの1人がスケジュールされた時間にビデオゲームをプレイする招待を受け付けたか、及びどの1人が招待を拒否したかを判定するように、appスケジューラ351aによって評価される。応答は、スケジュールされた時間の間、ゲームプレイセッションに対してゲームをセットアップするためのクラウドゲーミングシステムについての認証を含んでもよく、または認証の役割を果たしてもよい。appスケジューラ351aは、一実施形態では、リクエストを開始した第1プレイヤーに招待を受け付けたプレイヤーの詳細を提供してもよい。
appスケジューラ351aは、ゲームプレイの招待を受け付けた各々のプレイヤーのユーザプロファイル情報を取得するように、ユーザアカウントデータ処理エンジン302とインタラクションを行ってもよい。各々のプレイヤーのユーザプロファイル情報は、プレイヤーの地理的位置を識別する地理的位置インジケータを含む。いくつかの実施形態では、プレイヤーの地理的位置は、例えば、招待に応答するようにプレイヤーによって使用されたクライアントデバイス100内で利用可能なグローバルポジショニングシステム(GPS)からの信号に対して検証されてもよい。代わりに、地理的位置インジケータに含まれるプレイヤーの地理的位置は、ウェブブラウジング活動、ソーシャルメディア活動、またはプレイヤーの現在の地理的位置を識別するために使用することができるプレイヤーのいずれかの他のオンライン活動など、プレイヤーから検出されるオンライン活動に対して検証されてもよい。一実施形態では、ゲームプレイスケジューラ311は、スケジュールウインドウ351bに、ゲームプレイのためにユーザによって指定されたスケジュールされた時間の前の時間ウインドウを識別すること、及びクライアントデバイス100のGPSからの信号またはプレイヤーのオンライン活動からの信号を使用して時間ウインドウの開始においてプレイヤーの地理的位置を検証することに関与させてもよい。ゲームプレイスケジューラ311は、各々のプレイヤーの現在の地理的位置をデータセンタ(DC)マネージャ400に提供する。
各々のプレイヤーに対し、DCマネージャ400は、プレイヤーの地理的位置に近接したデータセンタを識別するために、プレイヤーの現在の地理的位置を使用する。1つよりも多いデータセンタがプレイヤーの地理的位置に近接して識別される場合、DCマネージャ400は、プレイヤーが満足するゲームプレイ経験を有することができるように、ゲームの要件に従ってどのデータセンタがゲームのゲームプレイのためのリソースを提供するのに最も向いているかを判定するように、異なるデータセンタの性能メトリックを評価する。DCマネージャ400は、DC性能メトリックエバリュエータ407に、データセンタを評価することに関与させてもよい。1つのデータセンタのみがプレイヤーの地理的位置に近接して識別される場合でさえ、データセンタは、データセンタ内の1つ以上のサーバがゲームのゲームプレイを実施するリソースを提供できるかを確かめるために評価される。DC性能メトリックエバリュエータ407は、データセンタのDC性能メトリックを識別し、データセンタは、スケジュールされた時間におけるゲームのゲームプレイについてのユーザ(すなわち、第1プレイヤー)のリクエストにサービスできるかどうかを判定するための、各々のサーバ上で利用可能なリソースのタイプ、異なる期間においてリソースに関して置かれたリクエスト、各々のサーバの能力、他のリソースの能力などを含む。サービス品質(QOS)エバリュエータ408は、ゲームのゲームプレイのために利用可能なリソースがプレイヤーに対して満足するゲームプレイ経験を提供できると判定するために使用される。
評価に基づいて、各々のプレイヤーに対してゲームプレイリクエストにサービスする、地理的位置におけるデータセンタが識別される。次いで、ゲームのインスタンスを実行するために、データセンタ内の1つ以上のサーバが使用される。一実施形態では、ゲームのインスタンスは、スケジュールされた時間にユーザとのゲームのゲームプレイを始めるように、プレイヤーがクラウドゲーミングシステムに接続するよりも前に実行される。ゲームプレイセッションが開始されると、QoSエバリュエータ408は、ゲームプレイの品質が悪化しないことを保証するために、リソース(システム及び通信)を絶え間なくまたは周期的に管理する。識別されたデータセンタ内のサーバ(複数可)のリソースが他のアプリケーションによって拘束され、またはゲームによって必要とされるレベルにおいて実行していないと判定される場合、QoSエバリュエータ408は、サーバ(複数可)におけるリソースの発行を示すDC性能メトリックエバリュエータ407への信号を生成する。DC性能メトリックエバリュエータ407は、QoSエバリュエータ408からの信号に応答して、ゲームプレイのリクエストにサービスし、サーバまたはデータセンタ識別子をappスケジューラ351aに提供する、異なるサーバまたは異なるデータセンタを識別するように、データセンタまたは地理的位置に近接した他のデータセンタ内の他のサーバを評価してもよい。
appスケジューラ351aは、ビデオゲームのゲーム状態を判定するように、ゲームデータシンクロナイザ500とインタラクションを行ってもよい。ゲームデータシンクロナイザ500は、ビデオゲームのゲーム状態を取得するように、ゲームデータデータストア107をクエリする。ビデオゲームのゲーム状態は、リクエストにおいて識別された各々のプレイヤー及びリクエストを開始したユーザについてのゲーム状態を識別するように分析される。ゲームデータデータストア107は、クラウドゲーミングシステム300において利用可能な複数のゲームのゲーム状態を維持し、各々のゲームのゲームプレイの複数のインスタンスを含んでもよく、ゲームの各々のインスタンスは、ゲームをプレイしたプレイヤーの特定の1人を識別することができることに留意されるべきである。ゲームがユーザ及びリクエストにおいて識別されたプレイヤーによって前にプレイされた場合、現在のリクエストは、ゲームが前のゲームプレイセッションにおいて中断したポイントからゲームのゲームプレイを再開することであってもよい。結果として、ゲームのゲーム状態は、ゲームをプレイした各々のプレイヤーのゲーム状態を識別し、各々のプレイヤーのゲーム状態は、そのゲームでの前のゲームプレイの間における各プレイヤーの性能に基づいている。更に、各々のプレイヤーのゲーム状態は、プレイヤーのゲームプレイ信用情報、プレイヤーのゲームスキルなど、プレイヤーによってゲームで使用またはカスタマイズされたゲームアイコン、ゲームのセットアップの間に使用されるルーチンのセット、ゲームのゲームプレイの間に行われる入力、プレイヤーによって達成されるゲームの勝利及びゲームレベル、ゲームの好みなどを判定する情報を提供してもよい。各々のプレイヤーのゲーム状態において提供される情報は、ゲームが前のゲームプレイの間に中断したポイントまでのゲームにおけるそれぞれのプレイヤーのゲームプレイを再作成するのに十分である。
代わりに、ゲームは、ユーザによって全くプレイされていなかった場合もあり、またはリクエストにおいて識別されたプレイヤーのいずれともプレイされていなかった場合もある。明らかに、そのようなケースでは、ゲームデータデータストア107は、ユーザ、またはリクエストにおいて識別されたプレイヤーを包含するゲームについて、ゲームプレイのいずれの記録も有さない場合がある。結果として、リクエストは、始めからゲームを開始することであってもよい。そのようなケースでは、ゲームデータシンクロナイザ500は、プレイヤー及びユーザがゲームの始めからゲームプレイを開始することを可能にするように、ゲームデータをアップロードするために使用されてもよい。ユーザが他のプレイヤーと前にゲームをプレイしたが、リクエストにおいて識別されたプレイヤーのいずれともプレイしてないケースでは、ゲームデータシンクロナイザ500は、ユーザについてのゲームのゲームプレイ履歴についてゲームデータデータストア107をクエリしてもよく、他のプレイヤーとのゲームのゲームプレイの間にユーザによって提供されるユーザのゲームプレイ信用情報及びカスタマイズのタイプを識別するために履歴からの情報を使用してもよい。同様に、ゲームデータシンクロナイザ500は、異なるゲームにプレイヤーによって一般的に提供されるプレイヤーのゲームプレイ信用情報及び/またはカスタマイズのタイプを識別するように、クラウドゲーミングシステムにおける各々のプレイヤーによってプレイされる複数のゲームのゲームプレイ履歴についてゲームデータデータストア107をクエリしてもよい。ユーザ及び各々のプレイヤーの識別された信用情報、ゲームの好み、及びゲームカスタマイズは、ゲームプレイのためにゲームをセットアップする際に使用される。いくつかの実施形態では、ゲームデータシンクロナイザ500は、現在のゲームについて共通する、または関連する、あるいは互換性を有するカスタマイズ及び/またはプレファランス(好み)のうち特定の1つを識別するように、各々のプレイヤーによってプレイされる複数のゲームの好み及びカスタマイズのタイプを分析してもよく、プレイヤーに対してゲームをセットアップするときにそれらを適用してもよい。各々のプレイヤーの履歴ゲームプレイ情報は、ゲームをプレイしていない識別されたプレイヤー及びユーザに対して、スケジュールされた時間にゲームプレイのためにゲームをセットアップする間にゲームプレイカスタマイズを提供するために使用される。
ゲームデータシンクロナイザ500は、ゲームプレイのためのゲームをセットアップするために、ユーザ及びプレイヤーの各々に対して取得されたゲーム状態情報または履歴ゲームプレイ情報を使用する。ゲームデータシンクロナイザ500は、DCマネージャ400によって識別された1つ以上のデータセンタ内の1つ以上のサーバにおいてゲームをインスタンス化する。ゲームのインスタンス化は、前のゲームプレイのセットアップの間にプレイヤーの各々及びユーザが従うセットアップルーチン(例えば、ログインルーチン、カスタマイズルーチンなど)、並びにセットアップの間及びゲームの前のゲームプレイ間にルーチンの各々についてのユーザ及び各々のプレイヤーによって行われる入力(ある場合)を識別することを含む。ゲームデータシンクロナイザ500は次いで、各々のプレイヤー、ユーザについてのゲームのゲームコードを実行し、初期セットアップの間及びゲームのゲームプレイの間に開始されたルーチンの各々に入力を自動で提供し、入力は、セットアップルーチンの間及びゲームのゲームプレイの間に各々のプレイヤー、ユーザによって行われる入力を模倣する。ゲームの実行は、ユーザ及びリクエストにおいて識別された全てのプレイヤーに対して同期される。
一実施形態では、ゲームデータシンクロナイザ500は、1つ以上のデータセンタ内における1つ以上のサーバにおいてゲームプレイのためのゲームのセットアップを開始するために、スケジュールウインドウ351bによって識別された時間ウインドウを使用し、スケジュールされた時間にゲームプレイを始めるように選択されたプレイヤー及びユーザに対してゲームが準備されるようにする。ユーザは、本出願において使用されるように、スケジュールされた時間にゲームについてのゲームプレイリクエストを開始する人(すなわち、第1プレイヤー)であり、プレイヤーは、ユーザがゲームプレイに加わることを招待した人々(ソーシャルコンタクト、ゲームプレイコンタクトなど)であることに留意されるべきである。ゲームプレイにおける各人の役割の明確な区分を単に提供するために、ユーザ及びプレイヤーについて別個に言及され、実際にユーザは、ゲームのプレイヤーでもあり、第1プレイヤーと称されることがある。リクエストにおいて識別されたプレイヤーは、ゲームでの前のゲームプレイの間にユーザに加わったプレイヤーであった場合もあり、または新たなゲームプレイセッションを開始するように識別された場合もあることに留意されるべきである。
スケジュールされた時間にゲームのゲームプレイのためにユーザに加わる通知がプレイヤーに送信されるとき、前のゲームプレイからのプレイヤーの全てがスケジュールされた時間にゲームプレイに加わる招待を受け付けることができるわけではない。ゲームは、ユーザとプレイヤーとの間の前のゲームプレイ(存在する場合)においてゲームが中断されたポイントまで再作成される。一実施形態では、招待を受け付けるプレイヤーの数が、ゲームの前のゲームプレイに関与したプレイヤーの数未満であるとき、ゲームの再作成は、前のゲームプレイが放棄されたが、ユーザ及び招待を受け付けたそれらのプレイヤーのみが中断ポイントからゲームのゲームプレイを前方に続けることを可能にする適切な観点を提供するように、前のゲームプレイに関与した全てのプレイヤーの状態を有するゲームを再作成することを含む。他の実施形態では、ゲームの再作成は、ユーザのみ及び招待を受け付けたそれらのプレイヤーのゲーム状態を有するゲームを再作成することを含む。
時間ウインドウは、特定の長さの時間のブロックである。いくつかの実施形態では、ウインドウにおいて識別された長さの時間は、ゲームの複雑度及びゲームプレイのためにゲームをセットアップするのに必要な時間の量に依存してもよい。例えば、ゲームがゲームプレイの前に完了される必要がある多くのセットアップルーチンを有する場合、ゲームは、最小のセットアップルーチンを有するゲームに対してセットアップのためのより長い長さの時間を必要とすることがある。同様に、非常に進行した段階(例えば、レベル20の中から18レベルにおいて)において中断したゲームは、より早い段階において中断したゲームよりもセットアップするためにより長い長さの時間を必要とすることがある。よって、ゲーム及びゲームが中断された場所に応じて、時間ウインドウを定義する長さの時間は、数秒から数分まで及ぶことがある。ゲームデータシンクロナイザ500は、一実施形態では、ゲームのタイプ及びゲームをセットアップするために必要とされる時間の量を判定して、分析に基づいて時間ウインドウを定義するように、前のゲームプレイを分析し、または利用可能である場合、ゲームのゲーム情報を分析する。識別された時間ウインドウは、ゲームデータシンクロナイザ500がゲームをセットアップするために十分なバッファ時間を含む。前のゲームプレイがいずれかの段階において中断されることがあるので、時間ウインドウにおいて定義された長さの時間は変化してもよい。例えば、レベル20を有するゲーム及びレベル2において中断した前のゲームプレイについて、時間ウインドウにおいて定義された長さの時間は、例えば、1分であってもよく(バッファ時間を含む)、例えば、同一のゲームが前のゲームプレイの間にレベル18において中断した場合の3分の時間ウインドウよりもはるかに短い。本明細書で言及される時間ウインドウは、例として提供され、限定的であるものと考えられるべきではない。他の実施形態では、ウインドウにおいて識別された長さの時間は、予め定義されてもよい。
ゲームデータシンクロナイザ500は、スケジュールされた時間の前にウインドウにおいて定義された長さの時間を有する、ゲームを再作成することを始める。ゲームデータシンクロナイザ500は、ユーザ、及び招待を受け付けたプレイヤーが、クラウドゲーミングシステムに接続し、ゲームを選択するとすぐにゲームのゲームプレイを始めることが可能であるように、1つ以上のデータセンタ内の1つ以上のサーバにおいてユーザ及び全てのプレイヤーに対してゲームプレイのためのゲームの再作成を同期してもよい。再作成は、ゲームが開始されるポイントまで、全てのプレイヤーに対してゲームのゲームデータをロードすること、ゲームが現在のゲームプレイの間に中断されたかのように見えるようにすることを含むが、実際には、ゲームは、前のゲームプレイから再構築されており、ユーザ及び選択されたプレイヤーがゲームを再開するために時間通りに準備がされ続けている。ゲームプレイのスケジュールされた時間の直前においてゲームを再作成することで、クラウドゲーミングシステムは、ユーザ及び選択されたプレイヤーがゲームを再開するためにスケジュールされた時間の直前にシステムリソース及び通信リソースを割り当てることでそのようなリソースを最適に使用することを可能にする。また、前のゲームプレイの間に中断された時間からスケジュールされた時間にわたって、ロードされたゲームデータを維持するとシステムリソースを不必要に拘束するが、そのような拘束も生じない。更に、スケジュールされた時間にゲームを準備させ続けることは、ユーザ及びプレイヤーがロードするゲームを不必要に待つことを回避し、それによって、ユーザ及びプレイヤーのゲームプレイ経験を高める。
図2は、クラウドホスティングシステムのアプリケーションサーバ301内で利用可能なユーザアカウントデータ処理エンジン302内の様々なモジュールを識別する。クラウドホスティングシステムは、ゲームアプリケーションを含む複数のアプリケーションをホストし、本明細書で「クラウドゲーミングシステム」300とも称される。スケジュールされた時間におけるゲームのゲームプレイのリクエストがユーザ(すなわち、第1プレイヤー)のクライアントデバイスから受信されるとき、ユーザアカウントデータ処理エンジン302は、リクエストを開始するユーザを検証することをトリガされる。ユーザアカウントデータ処理エンジン302は、ユーザアカウントモジュール303に、ユーザアカウントデータベース304に記憶されたユーザのユーザアカウント情報を取り出すこと、及びゲームのゲームプレイのリクエストを開始しているユーザを検証するためにユーザアカウント情報を使用することに関与させる。ユーザの検証は、ユーザがクラウドゲーミングシステムの有効なユーザであること、及びゲームプレイのためにゲームへのアクセスを有することを検証することを含む。ユーザアカウント情報は、参照及びインタラクションのためのユーザアカウントに対して利用可能なゲームアプリケーションなどのアプリケーションのリストを識別する。ユーザアカウントモジュール303はまた、リクエストにおいて識別された1人以上のプレイヤーのユーザアカウントを取り出すために使用される。各々のプレイヤー(すなわち、リクエストを開始するユーザまたはリクエストに応答するプレイヤー)に対し、ユーザアカウントは、識別子、スクリーン名、アイコンまたはアバター、スキル、ランキング、アプリケーションの好み、信用情報、及びプレイヤーを明確に識別するために使用することができる他のデータ(生体データを含む)を含むプレイヤー関連情報を提供する。ユーザアカウント情報は、ユーザプロファイル309に転送される。ユーザプロファイル309は、プレイヤーのユーザプロファイルを判定するように、各々のプレイヤーのユーザアカウント情報を分析する。プレイヤーのユーザプロファイルは、プレイヤーと関連付けられた地理的位置を含む。
ユーザプロファイル309から識別されたプレイヤーの地理的位置は次いで、ユーザプロファイルにおいて識別された地理的位置が現在のプレイヤーの地理的位置であることを保証するように検証される。検証は、ロケーションプロセッサ307を使用して行われてもよい。ロケーションプロセッサ307は、ゲームのゲームプレイに加わる招待に応答するために使用される、プレイヤーのクライアントデバイスから生成された信号を取得することによって、地理的位置を検証してもよい。プレイヤーは、ゲームのゲームプレイのリクエストに応答するための1つのクライアントデバイス、及びゲームプレイのための別のデバイスを使用してもよい。その結果として、プレイヤーの現在の地理的位置を判定することは、ゲームがゲームプレイのために準備されるように、スケジュールされた時間の前にゲームをロードするためのデータセンタを識別する際の支援となる。プレイヤーがウェブサーバとインタラクションを行うためにクライアントデバイスにおいてウェブブラウザを使用し、または対応するサーバ側アプリケーションにアクセスする(例えば、ソーシャルメディアがソーシャルメディアプロバイダに投稿するなど)ためにいずれかの他のクライアント側アプリケーションを使用するときに信号が生成されてもよく、この信号は、クライアントのIPアドレス、クライアントのping情報などを判定するために使用されてもよい。代わりに、信号は、クライアントデバイス内のグローバルポジショニングシステム(GPS)機構から発してもよい。GPS機構からの信号は、現在の地理的位置を取得するために分析されることができるオフネットワーク信号であってもよい。オフネットワーク信号は、クライアントデバイスがネットワークに接続されることを必要とすることなく、クライアントデバイスから生成された信号である。ロケーションプロセッサ307は、方位付けロケーションデータプロセッサ307aに、地理的位置を判定し、プレイヤーの現在の地理的位置を検証するようにクライアントデバイスから生成された信号を解釈することに関与させてもよい。
他の実施形態では、ロケーションプロセッサ307は、ソーシャルメディアシステムサーバに投稿されたソーシャルフィードなど、プレイヤーによって提供されるインタラクションから、そのようなインタラクションが更新されている適切なサーバにAPI呼び出しを行うことによってデータを取り出してもよい。もちろん、そのようなフィードへのアクセスは、プレイヤーによって許可されたパーミッションに基づいて適切なサーバにおいて利用可能である。ロケーションプロセッサ307は次いで、コンテキストロケーションデータプロセッサ307bに、例えば、プレイヤーの地理的位置を判定するようにソーシャルフィードのコンテキストを分析することに関与させてもよい。ロケーションプロセッサ307は次いで、プレイヤーの現在の地理的位置を判定するように、信号またはフィードから取得された地理的位置を有するユーザプロファイルにおいて提供されるプレイヤーの地理的位置を検証する。検証されると、現在の地理的位置は、データセンタマネージャ400に提供され、プレイヤーのユーザプロファイルにおける地理的位置インジケータを更新するためにも使用されてもよい。プレイヤーの地理的位置を検証するための上述した方式は例にすぎず、プレイヤーの地理的位置を検証するために他のタイプの機構、ツール、ロジック、またはインタラクションが使用されてもよい。1人よりも多いプレイヤーまたはプレイヤー及びユーザの全てが同一の地理的位置を有することがあると判定されてもよい。
プレイヤーの使用履歴を識別するためにユーザプロファイル情報も使用され、使用履歴は、プレイヤーがクラウドゲーミングシステム300とインタラクションしたアプリケーション(複数可)、そのようなインタラクションの時間及び頻度、インタラクションの長さ、アプリケーション(複数可)がアクセスされた場所からの地理的位置などを識別する。プレイヤーの使用履歴は、プレイヤーの好み、プレイヤーのログインルーチン、プレイヤーのスキルなどを判定するために使用されてもよい。使用履歴の分析から取得された情報は、プレイヤーに対して、ゲームプレイのためにゲームをロードする間に使用されることができる。
図3は、一実施形態における、プレイヤーの現在の地理的位置についてのデータセンタを識別するために使用されるクラウドゲーミングシステム300のデータセンタマネージャ400内の様々な構成要素を例示する。データセンタ(DC)マネージャ400は、地理的位置インジケータ306a、並びにスケジュールされた時間にゲームをプレイすることに合意した各々のプレイヤーについてのゲーミング及び/またはアプリケーション使用履歴308を、ユーザアカウントデータ処理エンジン302から受信する。DCマネージャ400は、ゲームのゲームデータがプレイヤーに対して識別されたデータセンタ内の1つ以上のサーバにロードされることができるように、地理的位置内のまたは地理的位置に近接した適切なデータセンタを識別するために、地理的位置インジケータ306aにおいて提供される地理的位置を使用する。アプリケーション使用履歴308において提供される情報は、前のゲームプレイ活動がユーザとリクエストにおいて識別されたプレイヤーとの間のゲームに対して記録されていないケースにおいて、ゲームをセットアップするために使用されることができる、プレイヤーの信用情報、プレイヤーの好み、プレイヤーのカスタマイズなどを取得するようにDCマネージャ400によって処理される。
DCマネージャ400は、DC選択エンジン410に、最小レイテンシでスケジュールされた時間におけるゲームのゲームプレイの間にゲームデータを伝送するための十分な処理、ネットワーク、及び通信リソースを提供できるデータセンタを識別することに関与させる。DC選択エンジン410は、プレイヤーの現在の地理的位置を識別し、ゲームプレイのためのゲームのゲームデータを事前ロードするためのデータセンタを識別するように、ユーザアカウントデータ処理エンジン302によって提供される地理的位置インジケータ306aを受信する、複数のサブエンジン(例えば、位置識別子420、DC識別子424)を含む。地理的位置インジケータ306aに加えて、ユーザアカウントデータ処理エンジン302はまた、DC選択エンジン410に使用履歴データ情報を提供してもよい。
DC選択エンジン410は、ゲームのゲームプレイのリクエストにおいて識別されたスケジュールされた時間を識別し、どのデータセンタが各々のプレイヤーに対してゲームプレイリクエストにサービスできるかを判定するためにスケジュールされた時間を使用するように、リクエストをクエリする。DC選択エンジン410における位置識別子420は、地理的位置インジケータ306aを取得し、プレイヤーのユーザプロファイルにおけるプレイヤーと関連付けられた地理的位置を識別するようにそこで提供される情報を分析する。この地理的位置は、使用履歴データ情報において提供される情報を使用して検証される。使用履歴データ情報は、クラウドゲーミングシステムによってホストされた様々なアプリケーションとインタラクションを行う間にプレイヤーが提供するいずれかのインタラクション及び全てのインタラクションに関連する情報を含んでもよい。いくつかの実施形態では、位置識別子420は、プレイヤーのクライアントデバイス内のGPSデバイスから信号を取得してもよく、クライアントデバイスの地理的位置を、したがって、プレイヤーの地理的位置を判定するように信号を分析してもよい。
いくつかの実施形態では、使用履歴データ情報は、プレイヤーのウェブブラウザインタラクション、他のビデオゲームアプリケーションを含むクラウドゲーミングシステムによってホストされた他のアプリケーションに向けられたインタラクション、クライアントデバイス上で実行しているアプリケーションに向けられたインタラクションなどの詳細を提供してもよい。異なるアプリケーションのうちの1つ以上とのプレイヤーのインタラクションから取得された情報は、プレイヤーの地理的位置を判定するように分析される。いくつかの実施形態では、プレイヤーの使用履歴データ情報は、プレイヤーの最新の地理的位置を取得するために、ゲームプレイのスケジュールされた時間に対して定義された時間ウインドウ内に分析される。様々なアプリケーションとのプレイヤーの最近のインタラクションからのプレイヤーに対して識別された地理的位置が、プレイヤーの現在の地理的位置である可能性が非常に高い。位置識別子420は、他のアプリケーションとのプレイヤーのインタラクションから識別されたプレイヤーの地理的位置を、ユーザプロファイルにおける地理的位置と比較する。インタラクションまたは信号から取得されたプレイヤーの地理的位置がプレイヤーのユーザプロファイル内の地理的位置とは異なるとき、様々なアプリケーションとのインタラクションから識別された地理的位置は、プレイヤーの現在の地理的位置であり、プレイヤーのユーザプロファイルは、現在の地理的位置により更新される。位置識別子420は、現在の地理的位置にあり、またはプレイヤーの地理的位置に近接した、選択された1つ以上のデータセンタを判定するように、プレイヤーの現在の地理的位置をデータセンタ(DC)識別子424に提供する。
DC識別子424は、各々のプレイヤーの地理的位置内で、または各々のプレイヤーの地理的位置に近接して利用可能なデータセンタのデータセンタ識別子を取得するように、DCプロファイラ402とインタラクションを行う。DCプロファイラ402内のDCロケーションサブ構成要素404は、各々のプレイヤーに対して現在の地理的位置内にあり、または現在の地理的位置内に近接した1つ以上のデータセンタを識別するように、DCデータストア(図示せず)において維持されたデータセンタのリストをクエリするように構成されている。リストは、地理的位置によって編成されてもよい。クエリに応答して、DCロケーションサブ構成要素404は、選択した1つ以上のデータセンタのデータセンタ識別子をDC選択エンジン410に返す。DCプロファイラ402内のDC App及びサービスサブ構成要素406は、DCプロファイラ402によって返された選択した1つ以上のデータセンタの各々内で利用可能なサーバ及びコンソールのリスト、並びに各々のデータセンタの内の各々のサーバまたはコンソールが実行しており、または実行できるアプリケーション(App)またはサービスのリストを取得するように構成されている。
DCプロファイラ402によって提供される情報に基づいて、DC識別子424は、各々のプレイヤーに対してゲームをセットアップするための地理的位置に対して使用する特定のデータセンタを識別する。各々のプレイヤーに対して選択された特定のデータセンタがスケジュールされた時間に必要とされる通信接続及び処理リソース帯域幅を提供できることを保証するために、DC選択エンジン410は、各々のプレイヤーの地理的位置に対してDCプロファイラ402によって識別されたデータセンタの各々のデータセンタプロファイルを取り出すように、DC性能メトリックエバリュエータ407とインタラクションを行う。データセンタプロファイルは、各々のデータセンタの処理及び通信属性を識別する。
DC性能メトリックエバリュエータ407は、クラウドゲーミングシステム300において利用可能な全てのデータセンタについてのデータセンタプロファイルを維持する。ユーザがゲームプレイセッション(または、アプリケーションセッション)から退出するにつれて、及び1つ以上のゲームまたはアプリケーションをスケジューリングするためのリクエストが受信されるにつれて、これらのプロファイルが1つ以上のアプリケーションについてのリクエストとして絶え間なく更新され、またはゲームがそれぞれのデータセンタによってサービスされる。最新のデータセンタメトリックは、それぞれのデータセンタ内の各々のサーバの現在の状態及びリソース能力と共に、異なる時に実行するようにスケジュールされたゲームまたはアプリケーションからのリソース上に置かれたリクエストを定義する。例えば、最新のデータセンタメトリックは、現在実行され、またはいずれかのときに実行するようにスケジュールされたゲームのゲームインスタンス(または、アプリケーションのアプリケーションインスタンス)のタイプ及び数、現在利用可能であり、またはいずれかのときに利用可能になる可能性が高い処理及び/またはシステムリソースのタイプ、データセンタ内の異なるサーバにおける処理リソースの各々の状態、データセンタにおいて利用可能なサービス及びアプリケーションのタイプなどを識別してよい。DC選択エンジン410は、ゲームのゲームプレイの招待を承認した各々のプレイヤーについてのリクエストにサービスするためのデータセンタを選択するために、これらのデータセンタ属性を使用する。
DC選択エンジン410におけるDC識別子424は、データセンタメトリックを使用し、ゲームに対して予想される性能要件、システム要件、記憶要件、処理リソース要件、ゲームデータを通信するための通信接続要件などにメトリックを一致させる。例えば、性能要件は、ユーザ及びプレイヤーによって希望されるゲームプレイ強度に基づいてもよい。別の実施例では、処理及び通信要件は、ゲームの開発者によって定義されたゲーム仕様から取得されてもよい。
DC識別子424は、ユーザ属性(ゲームプレイ強度、プレイヤー信用情報など)、ゲームの特性、及びデータセンタメトリック情報を受信し、ゲームのゲームプレイに対して指定された要件に合致または上回ることがある地理的位置内のデータセンタを識別するためにこの情報を使用する。いくつかの実施形態では、プレイヤーの地理的位置に近接したデータセンタのいずれもが、プレイヤーについての比較可能なゲームプレイ経験を提供するように、ゲームのゲームプレイセッションをサービスするために必要なリソースの全てを有するわけではないと判定されてもよい。そのような実施形態では、DC識別子424は、ゲームに対して指定されたリソース要件の各々に対して重みを割り振ってもよく、プレイヤーについてのリクエストにサービスするための重み付けされたリソース要件を使用してもよい。例えば、計算集中的なゲームについて、処理及び記憶リソースは、ネットワーキングリソースよりも大きく重み付けされてもよい。結果として、DC識別子424は、リクエストにサービスするための十分な処理及び記憶リソースを有するプレイヤーの地理的位置内のデータセンタを識別してもよい。別の実施例では、速度集中的なゲームについて、通信接続及びネットワークリソースは、処理及び記憶リソースよりも大きく重み付けされてもよい。その結果として、プレイヤーについてのリクエストを処理するための十分な通信接続及びネットワークリソースを有するデータセンタが識別される。
データセンタが各々のプレイヤーの地理的位置に対して識別されると、データセンタ識別子情報426は、ゲームデータシンクロナイザ500に転送される。ゲームデータシンクロナイザ500も、ユーザアカウントデータ処理エンジン302から各々のプレイヤーについてのアプリケーション使用履歴データ情報308を受信する。ゲームデータシンクロナイザ500は、プレイヤーの各々またはユーザがクラウドゲーミングシステムにログインするとすぐにゲームがゲームプレイのために準備されるように、スケジュールされた時間の前にそれぞれのプレイヤー(複数可)に対してゲームのゲームデータをアップロードするように情報を処理し、識別されたデータセンタへの信号を生成する。
ゲームデータシンクロナイザ500は、プレイヤーのゲームプレイ属性を識別して、プレイヤーの信用情報、プレイヤーのカスタマイズ、ゲームをセットアップするためにプレイヤーが従うルーチンのセット、ゲームのゲームプレイの間にプレイヤーによって行われる入力などを識別するように、ゲームの各々のプレイヤーについてのアプリケーション使用履歴データ情報308を分析する。プレイヤーの信用情報は、プレイヤー識別子、ゲーム識別子、日付、日時、ゲームタイプ、ゲームの性能使用、プレイヤーのスキルまたは専門レベル、プレイヤーの現在の地理的位置、費やされる時間の量、アクセスの頻度、ゲームに対して希望される性能要件などの詳細を提供する。
図4は、各々のプレイヤーのゲームプレイ関連属性を識別し、スケジュールされた時間にゲームをゲームプレイのために準備させるために使用されるゲームデータシンクロナイザ500の様々な構成要素を例示する。ゲームデータシンクロナイザ500内のゲーム状態識別子502は、スケジュールされた時間に、ユーザとプレイヤーとの間のゲームプレイのリクエストにおいて識別されたゲームのゲーム状態を識別するように、ゲームデータデータストア107をクエリする。ゲームデータデータストア107は、様々なプレイヤー間で前のゲームプレイセッションの間にプレイされた様々なゲームのゲーム状態を維持する。ゲームのゲーム状態は、各々のプレイヤー(ゲームプレイリクエストを開始したユーザを含む)のゲーム状態、及びゲームプレイがスケジュールされた時間に始まることになるポイントまでゲームを再作成することに関連する他のゲームデータのゲーム状態を識別する。全てのプレイヤーのゲーム状態は、ゲームの全体的なゲーム状態を構成する。ゲームデータデータストア107へのクエリは、リクエストを開始するユーザとゲームプレイの招待を受け付けたプレイヤーとの間の前のゲームプレイからゲームのゲーム状態を定義する記録を識別してもよい。ユーザとプレイヤーとの間の前のゲームプレイセッションでは、ゲームプレイが中断されていることがあり、ユーザからの現在のリクエストは、中断されたポイントから中断されたゲームのゲームプレイを再開することであってもよい。ゲームデータデータストア107へのクエリがゲームについての記録を返さないとき、ゲームデータデータストア107に記録されたユーザとプレイヤーとの間の前のゲームプレイが存在しなかったことを意味する。このケースでは、スケジュールされた時間におけるゲームプレイのリクエストは、始めからゲームのゲームプレイを開始することである。
ゲーム状態及びゲームを再作成するための他の関連する情報は、ゲームデータ送信機504に提供される。ゲームデータ送信機504は、各々のプレイヤー(すなわち、他のプレイヤーまたはユーザ)のゲーム状態を識別するように、ゲーム状態識別子502によって伝送された前のゲームプレイからのゲーム状態情報を処理する。各々のプレイヤーのゲーム状態に関する関連するデータは、ゲーム状態情報から識別され、ゲームデータ更新マネージャ506に提供される。
ゲームデータ更新マネージャ506は、ゲームのセットアップの間及びゲームプレイの間の異なるときにプレイヤーによって行われる入力を含む、各々のプレイヤーについての関連するデータを受信し、それぞれのプレイヤーのゲーム状態に基づいて、各々のプレイヤーについての対応するゲームデータ508を識別する。ゲームデータ更新マネージャ506は、DCマネージャ400によって識別されたそれぞれのデータセンタにおける1つ以上のサーバにゲームデータ508をアップロードすることを始める時間を判定するように、スケジュールウインドウ351bから時間ウインドウを取得する。時間ウインドウは、一実施形態では、スケジュールされた時間の前の静的な予め定義された長さの時間である。別の実施形態では、時間ウインドウは、ゲームのタイプ、ゲームのゲーム状態、アップロードされる必要があるゲームデータの量などに基づいて動的に定義されてもよい。例えば、ゲームがゲームのレベル18において中断されており、ゲームがレベル20を有する場合(すなわち、ゲームがより進行したレベルにおいて前に中断していた)、時間ウインドウは次いで、レベル2において中断された同一のゲームに対してよりも長いことがある。これは、レベル2に対してアップロードされる必要があるゲームデータに対して、レベル18に対してアップロードされる必要があるたくさんのより大きなデータが存在する(すなわち、レベル1からレベル18までのゲームデータ)事実に起因している。同様に、ゲームがアップロードされる必要があるたくさんのグラフィックを有する場合、時間ウインドウは、アップロードするグラフィックをあまり有しないゲームに対してよりも長く定義されてもよい。定義される時間ウインドウは、ゲームデータをアップロードするために必要とされる時間の量を含み、いくつかの実施形態では、各々のプレイヤーに対してゲームデータ508をロードすることを完了するためのビルトインバッファ時間をも含んでもよい。例えば、ゲームプレイのためのスケジュールされた時間が火曜日の午後6時であるように定義され、ゲームデータをアップロードするために約15秒の長さを要する場合、時間ウインドウは次いで、サーバにゲームデータをアップロードするための15秒及び約15分のバッファ時間を含んでもよい。よって、上記実施例では、ゲームデータ更新マネージャ506は、プレイヤー及びユーザがゲームプレイを始めるようにクラウドゲーミングシステムに接続するとき、ゲームが完全にロードされ、プレイヤー及びユーザがゲームプレイを始める準備がされるように、火曜日の午後5時44分頃に開始して、それぞれのデータセンタ内のサーバに各々のプレイヤーについてのゲームデータを事前ロードすることを始めてもよい。上記バッファ時間は、単なる例として提供され、限定することと考えられるべきではない。
時間ウインドウによって定義された時間に到達したとき、ゲームデータ更新マネージャ506は、各々のプレイヤーに対する識別されたデータセンタとの通信接続を確立し、ゲームコード(1つがデータセンタにおいてまだ利用可能でない場合)及びプレイヤーについての関連するゲームデータを識別されたデータセンタ内の1つ以上のサーバに自動でアップロードすることをデータセンタにリクエストする識別されたデータセンタに、プレイヤーについての関連するゲームデータを有する信号を送信する。データセンタ内の1つ以上のサーバは、ゲームデータを受信し、ゲームコードを使用してゲームのインスタンスを実行する。プレイヤーについてのゲームデータのロードは、ゲームのセットアップの間及びゲームプレイの間にサーバが様々なルーチンについての入力を自動で行うことを含み、サーバによって行われる入力は、ゲームの前のゲームプレイの間にプレイヤーによって行われる入力を模倣する。各々のプレイヤーは、ゲームをセットアップするために従う自身のルーチンのセットを有してもよく、ゲームプレイの間に入力を行ってもよく、各々のプレイヤーのそのような入力は、ゲームデータデータストア107に記憶されたゲームのゲームデータにおいて捕捉され、ゲームデータ更新マネージャ506によってサーバに提供され、その結果、サーバは、スケジュールされた時間におけるゲームプレイを可能にするように、時間内にプレイヤーに対してゲームを事前ロードする際に各々のプレイヤーからのそれらの入力を使用してもよい。
いくつかの実施形態では、プレイヤーは、ゲームをプレイしていないことがあり、結果として、ゲームデータデータストア107は、プレイヤーの入力のいずれの記録も有していないことがある。そのような実施形態では、ゲームデータ更新マネージャ506は、プレイヤーの信用情報を判定するために、他のゲームのゲームプレイからの、プレイヤーのカスタマイズ、好み、ゲームスキル、関心、ゲームのセットアップの間及びゲームプレイの間に様々なルーチンに対して行われる入力などを使用してもよい。プレイヤーの信用情報は、プレイヤー及びユーザがゲームのゲームプレイを始めるポイントまでのゲームの事前ロードの間に使用される、識別されたデータセンタ内のサーバに提供される。例えば、ゲームデータデータストア107におけるプレイヤーとユーザとの間のゲームのゲームプレイの記録を有さないゲームについて、ゲームプレイが始まるポイントは、ゲームの始めであってもよい。この例では、事前ロードは、プレイヤー及びユーザがログインルーチンまたはセットアップルーチンを行う必要がないが、ゲームに直接「ドロップ」することができ、ゲームプレイを始めることができるように、ゲームの初めまでゲームについてのゲームデータ(例えば、セットアップルーチン、ログインルーチンなど)をロードすることを含む。
別の例では、ゲームデータデータストアがプレイヤーとユーザとの間のゲームの前のゲームプレイの記録を有するときでさえ、ユーザは、最初から始めるゲームのゲームプレイのリクエストを開始してもよい。そのようなケースでは、ゲームは、ゲームの始めまで事前ロードされ、各々のプレイヤーについてのログインルーチン、セットアップルーチンなどのルーチンのセットは、それぞれのプレイヤーの入力を模倣する入力により実行される。
ゲームデータ更新マネージャ506は、ゲームがスケジュールされた時間に全てのプレイヤー及びユーザに対してゲームプレイのために準備されるように、ユーザ、及び1つ以上のデータセンタにおいてゲームプレイの招待を受け付けた全てのプレイヤーに対してゲームの事前ロードを同期する。ゲームの事前ロードは、ユーザがいずれの他の入力も行う必要なく行われ、1人以上のプレイヤーがユーザによってリクエストされたスケジュールされた時間におけるゲームプレイの招待を受け付けたことに応答して行われる。更に、ゲームの事前ロードは、ゲームデータデータストア107に記憶されたゲームのゲーム状態によって定義されるようにゲームプレイが始まるポイントまで行われる。プレイヤーがゲームプレイを始めるようにクラウドゲーミングシステムに接続する以外にいずれかの他の入力を行う必要がない。ゲームは、各々のプレイヤーの好みに従ってセットアップされ、プレイヤーのカスタマイズなどを含む。地理的位置におけるデータセンタは、サーバ(複数可)が最小のレイテンシを提供し、十分な処理及び通信リソースを提供して、その結果、ユーザ及びプレイヤーが満足するゲームプレイ経験を有するように選択される。
いくつかの実施形態では、プレイヤー及びユーザは、スケジュールされた時間から予め定義された閾値期間内にゲームプレイを始めるように、クラウドゲーミングシステムに接続することが許可される。例えば、スケジュールされた時間が所与の日の午後6時である場合、プレイヤー及びユーザは、午後6時15分までゲームプレイを始めるためにクラウドゲーミングシステムに接続することが可能であってもよい。もちろん、予め定義された閾値期間の上記例は、例にすぎない。
プレイヤーが予め定義された閾値期間内にゲームのゲームプレイに接続することが可能でない場合、プレイヤーなしにゲームプレイが続いてもよい。しかしながら、ゲームデータシンクロナイザ500は、一実施形態では、異なる時間にゲームプレイに加わるオプションをプレイヤーに提供する。例えば、ユーザは、スケジュールされた時間にゲームのゲームプレイのリクエストを開始していることがあり、ゲームプレイに加わるのに約10人のプレイヤーが招待されていることがあり、10人のプレイヤーのうち8人が招待を受け付けていることがある。しかしながら、スケジュールされた時間に、または予め定義された閾値期間内に、招待を受け付けたプレイヤー8は、ゲームプレイに加わることが可能でないことがあった。他の7人のプレイヤー及びゲームプレイをスケジュールしたユーザとのゲームプレイが続く。この実施例では、プレイヤー8は、ゲームのゲームプレイに加わるように自身のリクエストを開始してもよく、ゲームに加わるための現在時間の後のある時点である時間を指定してもよい。いくつかの実施形態では、プレイヤー8は、ゲームプレイがいまだスケジュールされた時間内にある間、及び特定の条件の間(例えば、ずっと特定のレベルにある間)、または特定の条件が満たされ続ける間、ゲームのゲームプレイに加わるリクエストを開始することを許可されてもよい。例えば、プレイヤー8は、ゲームが再開されたレベルに他のプレイヤーがいる間、またはゲームが再開された特定の数のレベル内でなど、ゲームプレイに加わるリクエストを開始することを許可されてもよい。プレイヤー8からのリクエストが特定の条件に適合することを検証するにあたり、リクエストは、スケジュールされた時間にゲームのゲームプレイに加わった全てのプレイヤー(すなわち、7人のプレイヤー及びユーザ)に転送されてもよい。プレイヤー8のリクエストに応答して、7人のプレイヤーまたはユーザのうちのいずれか1人は、プレイヤー8のリクエストを受け付けてもよい。プレイヤー8のリクエストが受け付けられることに応答して、ゲームデータシンクロナイザ500は、プレイヤー8がクラウドゲーミングシステムに接続することができ、ゲームのゲームプレイに加わることができるように、ゲームの現在のゲーム状態を識別してもよく、現在のゲーム状態までのゲームデータをプレイヤー8に対して識別されたデータセンタに転送してもよい。この実施例では、プレイヤー8の地理的位置が既に確立されており、識別されたデータセンタ及びゲームプレイが始まるポイントまでのゲームデータは、プレイヤー8がスケジュールされた時間にまたはおよそスケジュールされた時間にゲームプレイを始めることを予期して、スケジュールされた時間の前に既に提供されている。しかしながら、プレイヤー8がスケジュールされた時間に始めることができず、ゲームプレイが既に再開されているので、ゲームデータシンクロナイザ500は、プレイヤー8がゲームプレイに加わるオプションを提供する。ゲームデータシンクロナイザ500は、プレイヤー8がゲームプレイを再開することを可能にするように、プレイヤー8と関連付けられたデータセンタにおいて、スケジュールされた時間に始まった現在のゲームプレイセッションの間にプレイヤー8が失ったゲームプレイの部分を更新する。
スケジュールされた時間におけるゲームのゲームプレイの間のプレイヤーインタラクションは、1つ以上のデータセンタにおいて追跡され、ゲーム(複数可)のゲーム状態は、クラウドゲーミングシステムにおいて維持されたゲームデータデータストア107に更新される。
前に言及されたように、ユーザによって開始されたゲームプレイのリクエストにおいて識別されたプレイヤーは、ソーシャルネットワークと関連付けられたソーシャルグラフから取得されたユーザのソーシャルコンタクト、またはユーザのゲームプレイコンタクトであってもよい。一実施形態では、リクエストにおいて識別されたプレイヤーは、このリクエストが開示された時間におけるオンライン活動に基づいて識別される。例えば、リクエストにおいて識別されたプレイヤーは、ユーザがリクエストを開始した時間においてオンラインであったソーシャルコンタクトまたはゲームプレイコンタクトであってもよい。プレイヤーは、他のゲーミングアプリケーションを含む他のアプリケーションとオンラインでインタラクションを行っていることがある。この実施例では、リクエストは、プレイヤーがリクエストへの応答をオンラインで探索している間にプレイヤーに転送される。
プレイヤーがスケジュールされた時間にクラウドゲーミングシステム上のユーザアカウントにアクセスするとき、プレイヤーのクライアントデバイスとゲームがプレイヤーに対して事前ロードされた地理的位置におけるデータセンタ内のサーバ(または、ゲームコンソール)との間で直接通信接続が確立され、識別されたデータセンタのゲームサーバまたはゲームコンソールとプレイヤーのクライアントデバイスとの間でのゲームプレイデータの交換を可能にする。選択されたユーザのゲームプレイの間、クラウドゲーミングシステムにおいて利用可能なサービス品質(QoS)エバリュエータ408は、サービス品質がゲームについて予測されるサービスの必要とされるレベルを満たすかどうかを判定するように、データセンタによって提供されるサービス品質をテストすることによって、各々のプレイヤーに対する割り振られたデータセンタによって提供されるサービス品質を監視してもよい。いくつかの実施形態では、サービス品質テストは、定義された期間において実行されてもよく、またはゲームプレイの間に一定間隔においてもしくは絶え間なく実行されてもよい。品質テストに基づいて、QoSエバリュエータ408は、ゲームのゲームプレイの間に割り振られたデータセンタを維持するか、または地理的位置内の異なるデータセンタに切り替えるかのいずれかの信号をクラウドゲーミングシステム内のDCマネージャに送信してもよい。いくつかの実施形態では、品質テストは、接続速度、リソースの最適な割り当て、リソースの各々によって提供されるサービスのレベルなどをチェックし、そのようなテストは、それぞれのクライアントデバイスとゲームデータがクライアントデバイスにストリーミングされている地理的位置内の割り振られたデータセンタとの間で交換される実際のゲームデータにより実行される。
いくつかの実施形態では、プレイヤーがビデオゲームのゲームプレイをスケジュールするためのリクエストを開始する代わりに、リクエストは、サーバ上で利用可能な、または特定の開発者によってもしくはプレイヤーの特定のグループに対して開発された特定のビデオゲームまたは複数のビデオゲームのゲームプレイスケジュールをまさに管理するオーガナイザまたはマネージャから開始されてもよい。この実施形態では、オーガナイザは、特定のビデオゲームもしくは異なるビデオゲームと関与する様々なプレイヤーに基づいて、またはプレイヤーの各々と関連付けられたユーザ属性もしくはゲームプレイ信用情報(例えば、ゲームの好み、スキルセット、関与のレベル、ビデオゲームのプレイの頻度、費やされた時間の量、各々のレベルにおいてなされもしくは特定の課題を克服するためになされた試みの数など)に基づいて、招待するプレイヤーを識別してもよい。
オーガナイザがビデオゲームのゲームプレイをスケジュールすることを可能にすることは、ビデオゲームのゲームプレイをスケジュールしており、ユーザからの不正を回避している者に対する更に制御する。ユーザがビデオゲームのゲームプレイをスケジュールするオプションを与えられえるとき、そのようなオプションは、大きな量のゲームプレイを意図してスケジュールする悪意のあるユーザによって悪用されることがあり、それによって、システムに過度に負荷をかけ、システムリソースに過度に負担をかける。代わりに、ユーザは、ビデオゲームの事前ロードを生じさせ、それによって、システムのリソースを拘束する複数のプレイヤーとのビデオゲームのゲームプレイをスケジュールしてもよい。これは、ユーザ及び/またはゲームプレイに加わる招待を受け付けたプレイヤーのほとんどが実際にスケジュールされた時間にゲームをプレイするために現れるときに有利である。しかしながら、ユーザ及び/またはプレイヤーがスケジュールされた時間に現れることができないとき、システムリソースは、不必要に拘束され、システムのリソースを浪費させる。そのような誤使用または悪用を防止するために、ビデオゲームのゲームプレイをスケジュールする制御を特定のプレイヤーまたはユーザのみに提供することによって、システムリソースが保護されることができ、適切な負荷分散が行われることができる。いくつかの実施形態では、ゲームプレイをスケジュールするオーガナイザは、スケジュールされた時間にビデオゲームをプレイしてもよく、またはしなくてもよい。よって、様々な制御は、プレイヤーが満足するゲームプレイ経験を有することを保証すると共に、システムリソースを誤使用から保護し、及び均等させることを続けるように設置されてもよい。
図5は、一実施形態における簡易データフローチャートを例示する。スケジュールされた時間にビデオゲームをプレイするリクエストが第1プレイヤーのクライアントデバイスから出されると、データフローが開始される。リクエストは、ネットワークを通じてクラウドゲーミングシステムのサーバに転送される。リクエストが有効であることを検証した後、クラウドゲーミングシステムのサーバは、リクエストにおいて識別された複数の他のプレイヤーと関連付けられたクライアントデバイスに通知を転送する。図5では、通知が送信される他のプレイヤーは、プレイヤーn1、プレイヤー2、プレイヤー3、プレイヤー4、プレイヤー5、プレイヤーn2を含む。他のプレイヤーのうち何人かは、通知に応答して、スケジュールされた時間にゲームをプレイする招待を受け付けてもよく、その他は、明確なアクションにより、または通知に応答しないことによって招待を拒否してもよい。図5に示されるように、プレイヤー2、4、5、及びn2は、ゲームプレイリクエストを受け付けることによって招待に応答している。招待を受け付けたプレイヤーからの応答は、クラウドゲーミングシステムのサーバによって評価される。応答は、サーバがゲームを事前ロードし、スケジュールされた時間に対してゲームを準備させる承認としての役割を果たす。サーバは、ゲームを事前ロードするためのスケジュールされた時間の前の時間ウインドウを判定し、プレイヤー(第1プレイヤー、及び招待を受け付けた他の選択されたプレイヤー)がゲームプレイを始めるために利用可能にするように、スケジュールウインドウ351bをクエリする。
ゲームを事前ロードすることの一部として、サーバは、スケジュールされた時間にプレイしようとしているプレイヤーの地理的位置を判定してもよく、ゲームが事前ロードされるプレイヤーの地理的位置に近接したデータセンタ(複数可)を判定してもよく、ネットワークを通じてそれぞれのデータセンタにインスタンス化信号を送信する。インスタンス化信号は、データセンタが事前ロードするためのゲームデータを正確に識別することを可能にする、ゲーム識別子、データセンタ識別子、プレイヤー識別子、前のゲームプレイセッション識別子などを含む。プレイヤーの地理的位置に基づいて、事前ロードするための1つよりも多いデータセンタが識別されてもよい。結果として、識別されたデータセンタの各々は、ゲームのゲームプレイの招待を受け付けた特定のプレイヤーに対してゲームを事前ロードするように指示されてもよい。各々のプレイヤーのゲーム状態が異なることがあるので、適切なデータセンタにおいて正確なゲーム状態を事前ロードすることは、プレイヤーが満足するゲームプレイ経験を有することを可能にするために必須である。ゲームは、スケジュールウインドウ351bによって指定された時間ウインドウにおいて定義された時間に、対応するデータセンタにおいて各々のプレイヤーに対して1つ以上のサーバに事前ロードされ、その結果、システムリソースがゲームプレイのために時間内に、且つあまり早くなく消費される。事前ロードは、前のゲームプレイが放棄されたポイントまでゲームが事前ロードされるように、プレイヤーに対して同期して実行される。
プレイヤー(第1プレイヤー、プレイヤー2、4、5、及びn2)がクラウドゲーミングシステムにアクセスするとき、プレイヤーは、ゲームから離れなかったように見せるように、ゲームプレイのゲームストリームに即時にドロップされる。ゲームプレイからのゲームデータは、識別されたデータセンタの通信及びシステムリソースを使用して、ネットワークを通じてプレイヤーのクライアントデバイスとデータセンタのサーバとの間で交換される。本明細書で説明される実施形態は、第1プレイヤーが、ビデオゲームをプレイするようにスケジュールされた時間に他のプレイヤーをオンラインで集める方式を提供し、システムは、特定のプレイヤーについてのゲームデータを事前ロードし、ゲームをゲームプレイのために準備させる。そのような事前ロードは、システムリソースを最適な使用にさせると共に、全てのプレイヤーが良好なゲームプレイ経験を有することを保証する。周期的なQOSテストも、割り振られたデータセンタが、プレイヤーが満足するゲームプレイ経験のための最小のレイテンシによりインタラクションを行うことが可能であることを保証するように、十分なリソースを提供することが可能であることを保証する。
図6aは、スケジュールされた時間にビデオゲームのゲームプレイを可能にするように、予めビデオゲームを事前ロードするために使用される様々な方法の動作を例示する。方法は、スケジュールされた時間におけるビデオゲームのゲームプレイのリクエストがユーザから検出されるとき、動作610において始まる。ユーザは、リクエストを開始したビデオゲームのプレイヤーである。リクエストは、ビデオゲームの識別子、及びスケジュールされた時間におけるビデオゲームのゲームプレイのために招待された複数のプレイヤーのアイデンティティを含む。動作620において例示されるように、リクエストに応答して、通知は、ゲームのゲームプレイに加わるようにプレイヤーを招待するリクエストにおいて識別された複数のプレイヤーに送信される。リクエストにおいて識別されたプレイヤーのうちの1人以上は、リクエストに応答してもよい。動作630において例示されるように、プレイヤーから受信されたリクエストへの応答は、クラウドゲーミングシステムにおいて評価される。プレイヤーのうちの何人かは、招待を受け付けてもよく、何人かの他のプレイヤーは、招待を拒否してもよい。動作640において例示されるように、クラウドゲーミングシステムが、プレイヤーの何人かがゲームプレイの招待を受け付けたことを検出するとき、クラウドゲーミングシステムは、予めビデオゲームを事前ロードすることを始める。事前ロードは、ゲームプレイが始まることになるポイントまで行われてもよい。例えば、前のゲームプレイの間に中断されたビデオゲームについて、ゲームが中断された場所になるポイントが定義されてもよい。ゲームプレイが始まることになるポイントの前にプレイされていなかったビデオゲームについては、そのゲームの最初からである。いくつかの実施形態では、前のゲームプレイの間に、ユーザのリクエストに基づいて中断されたビデオゲームであっても、スケジュールされた時間にゲームプレイを始めるポイントは、そのゲームの最初からとしてもよい。
図6bは、他の実施形態における、スケジュールされた時間にビデオゲームのゲームプレイを可能にするように、予めビデオゲームを事前ロードするために使用される様々な方法の動作を例示する。方法は、スケジュールされた時間の間にビデオゲームのゲームプレイのリクエストが第1プレイヤーから検出されるとき、動作650において始まる。リクエストは、第1プレイヤーによって開始され、ビデオゲームの識別子、及びビデオゲームが実行しているクラウドゲーミングシステムによってホストされたアプリケーションと現在オンラインでインタラクションを行っている他のプレイヤーのアイデンティティを含む。識別された他のプレイヤーは、第1プレイヤーとのビデオゲームのゲームプレイに現在関与していることがあり、第1プレイヤーは、ビデオゲームを現在プレイしている他のプレイヤーとの次のゲームプレイセッションを編成しようとしていることがある。代わりに、他のプレイヤーは、自分たちの間でビデオゲームをプレイしている他のプレイヤーに基づいて識別されてもよく、第1プレイヤーは、他のプレイヤーとのビデオゲームのゲームプレイに加わることを望む。いくつかの他の実施形態では、他のプレイヤーは、クラウドゲーミングシステム上の別のアプリケーションとの現在の関与に基づいて識別されてもよく、または現在オンラインであるが、別のアプリケーションとの前のインタラクションに基づいてもよい。
動作660において例示されるように、リクエストに応答して、通知は、ゲームのゲームプレイに加わる招待により現在オンラインである他のプレイヤーに送信される。リクエストにおいて識別されたプレイヤーのうちの1人以上は、リクエストに応答してもよい。動作670において例示されるように、プレイヤーから受信されたリクエストへの応答は、クラウドゲーミングシステムにおいて評価される。現在オンラインであるプレイヤーのうちの何人かは、招待を受け付けてもよく、何人かの他のプレイヤーは、招待を拒否してもよい。動作680において例示されるように、クラウドゲーミングシステムが、プレイヤーのうちの何人かがゲームプレイの招待を受け付けたことを検出するとき、クラウドゲーミングシステムは、ビデオゲームについてのゲームデータが事前ロードされる必要があるとき、スケジュールされた時間についての時間ウインドウを判定する。いくつかの実施形態では、時間ウインドウは、第1プレイヤー及び他のプレイヤーがゲームプレイを始めることを可能にするために、ゲームの複雑度に基づいて、及びどの程度ゲームデータが事前ロードされる必要があるかに基づいて、動的に判定されてもよい。他の実施形態では、時間ウインドウは、ビデオゲームに対して予め定義された静的な値であってもよい。
動作690において例示されるように、クラウドゲーミングシステムは、1つ以上のデータセンタ内の1つ以上のサーバを識別し、スケジュールされた時間に対して定義された時間ウインドウ内に開始して、ビデオゲームを事前ロードすることを始めるようにデータセンタを指示する信号をデータセンタに送信する。事前ロードは、ゲームプレイが始まるポイントまで行われ、ポイントは、ゲームが前に中断された場所であってもよく、または開始ポイントであってもよく、またはリクエストにおいて第1プレイヤーによって定義されたポイントであってもよい。ビデオゲームの事前ロードは、第1プレイヤー及び他の特定のプレイヤーがクラウドゲーミングシステムにアクセスし、リクエストにおいて定義されたポイントからビデオゲームのゲームプレイを再開するように時間内に完了される。
本明細書で議論される様々な実施形態は、ユーザ及びプレイヤーがゲームプレイのためにゲームにアクセスするときよりも前にゲームを事前ロードする方式を提供する。ビデオゲームの事前ロードは、ゲームが再開することになるポイントまでゲームをロードすることを待つ必要なく、プレイヤー及びユーザがビデオゲームのゲームプレイを即時に始めることを可能にする。更に、各々のプレイヤー(リクエストを開始したユーザを含む)に対するビデオゲームの事前ロードは、それぞれのプレイヤーがゲームプレイのためにゲームをセットアップするときに、システムがそれぞれのプレイヤーによって行われる入力を模倣した様々なルーチンについての入力を識別及び提供するにつれて、プレイヤーに対して特有である。プレイヤーによって行われる入力は、プレイヤーによって望まれるゲームカスタマイズ、ゲームの好みなどを含んでもよく、プレイヤーのスキルレベル、信用情報、ゲームの親密性などに基づいてもよい。通知の送信、プレイヤーからの応答の評価、及びユーザに対するビデオゲームの事前ロードは、ユーザによるゲームのゲームプレイのリクエストを検出したことに応答してクラウドゲーミングシステムによって自動で行われ、それらの動作の間にユーザからの更なる入力を必要としない。同様に、各々のプレイヤーに対するゲームの事前ロードは、プレイヤーが招待を受け付けたことに応答してシステムによって自動で実行され、それぞれのプレイヤーからの追加の入力を必要としない。スケジュールされた時間の直前に事前ロードを実行することは、クラウドゲーミングシステムが、ゲームがプレイされていないときの時間に処理及び通信リソースを保存することを可能にし、ゲームプレイがスケジュールされるときの時間のみシステムリソースを消費し、クラウドゲーミングシステムのリソースを割り当てる方式をより効率的にすると共に、ゲームプレイのためにゲームに即時にアクセスすることを可能にする。他の利点は、様々な実施形態を読んだ後に当業者にとって明らかになる。
図7は、異なるゲームへのアクセスを提供する際に使用されることができる情報サービスプロバイダアーキテクチャの実施形態を例示する。情報サービスプロバイダ(ISP)1070は、ネットワーク1086を介して地理的に分散及び接続されたユーザ1082に多数の情報サービスを配信する。ゲームへの高速アクセスを提供することに関して様々な実施形態が議論されてきたが、実施形態は、1つ以上のタイプの他のサービスを提供するように拡張されることができる。例えば、ISPは、ゲームなどの1つのタイプのみのサービス、またはゲーム、株価の更新、ブロードキャストメディア、ニュース、スポーツ、ゲームなどの様々なサービスを配信することができる。加えて、各々のISPによって供給されるサービスは動的であってもよく、つまり、任意の時点でサービスが追加または取り除かれることができる。よって、特定の個人に特定のタイプのサービスを提供するISPは、時間の経過と共に変化することができる。例えば、ユーザは、故郷にいる間にユーザの近くのISPによってサービスされてもよく、ユーザは、異なる都市に移動しているときに異なるISPによってサービスされてもよい。故郷のISPは、接続モジュールを通じて、必要な情報及びデータをユーザのゲームまたはアクセスプロファイルから新しいISPに転送し、その結果、ユーザ情報が新しい都市までユーザに「追随」し、データをユーザにより近づけて、よりアクセスしやすくする。別の実施形態では、ユーザについての情報を管理するマスタISPと、マスタISPからの制御の下でユーザと直接的にインタフェースするサーバISPとの間で、マスタ−サーバ関係が確立されてもよい。別の実施形態では、クライアントが世界中を移動するにつれて(すなわち、ユーザに割り当てられたデータセンタの切り替えの間)、データが1つISPから別のISPに転送され、そのような転送は、ユーザにサービスするためにより良好な位置にあるISPを、これらのサービスを配信するISPとするため、それぞれのISPによって提供されるサービスの互換性に基づいてもよい。
ISP1070は、ネットワークを通じて顧客にコンピュータベースのサービスを提供する、アプリケーションサービスプロバイダ(ASP)1072を含む。ASPモデルを使用して提供されるソフトウェアは、オンデマンドソフトウェアまたはソフトウエアアズアサービス(SaaS)と呼ばれることもある。特定のアプリケーションプログラム(顧客関係管理など)へのアクセスを提供する簡単な形式は、HTTPなどの標準プロトコルを使用することである。アプリケーションソフトウェアは、例えば、ベンダーのシステムに常駐し、HTMLを使用するウェブブラウザを通じて、ベンダーによって提供された専用クライアントソフトウェアによって、またはシンクライアントなどの他のリモートインターフェイスを介してユーザによってアクセスされる。
広い地理的地域を通じて配信されるサービスは、クラウドコンピューティングを使用することが多い。クラウドコンピューティングは、動的スケーラブルで、仮想化されたリソースがインターネット上のサービスとしてしばしば提供されるコンピューティングのスタイルである。ユーザは、ユーザをサポートする「クラウド」のテクノロジインフラストラクチャの専門家である必要はない。クラウドコンピューティングは、インフラストラクチャアズアサービス(IaaS)、プラットフォームアズアサービス(PaaS)、及びソフトウエアアズアサービス(SaaS)などの異なるサービスに分けられることができる。クラウドコンピューティングサービスは、ウェブブラウザからアクセスされる共通のビジネスアプリケーションをオンラインでしばしば提供し、ソフトウェア及びデータはサーバに格納される。クラウドという用語は、インターネットがコンピュータネットワーク図にどのように描かれているかに基づいて(例えば、サーバ、ストレージ、及びロジックを使用する)インターネットのメタファとして使用され、メタファが隠す複雑なインフラストラクチャの抽象的概念である。
更に、ISP1070は、シングル及びマルチプレイヤービデオゲームをプレイするためにゲームクライアントによって使用されるゲーム処理サーバ(GaPS)1074を含む。インターネット上でプレイされるほとんどのビデオゲームは、ゲームサーバへの接続を介して動作する。通常、ゲームはプレイヤーからのデータを収集し、それを他のプレイヤーに配布する専用サーバアプリケーションを使用する。これは、ピアツーピア構成よりも効率的かつ効果的であるが、サーバアプリケーションをホストするには別のサーバが必要となる。別の実施形態では、GaPSは、プレイヤーとそれぞれのゲームプレイデバイスとの間の通信を確立し、集中GaPSに頼ることなく情報を交換する。
専用GaPSは、クライアントとは独立して実行されるサーバである。そのようなサーバは、通常、データセンタに配置された専用ハードウェアで実行され、より多くの帯域幅と専用の処理能力を提供する。専用サーバは、ほとんどの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、磁気テープ、並びに他の光学及び非光学データストレージデバイスを含む。コンピュータ可読媒体は、コンピュータ可読コードが分散方式で格納され、実行されるように、ネットワーク結合コンピュータシステム上に分散されるコンピュータ可読有形媒体を含むことができる。
方法動作が特定の順序で説明されているが、他のハウスキーピング操作が動作の間に実行されてもよく、または動作が、わずかに異なる時間に生じるように調整されてもよく、もしくはオーバーレイ動作の処理が所望の方法で実行される限り、処理と関連付けられた様々な間隔において処理動作の発生を可能にするシステムに分散されてもよいことを理解されるべきである。
前述の発明は、理解を明確にするために幾分詳細に説明してきたが、添付の特許請求の範囲内で特定の変更及び修正が実践されることができることが明らかである。したがって、本実施形態は、例示的であり、限定的ではないと見なされるべきであり、本発明は本明細書で与えられた詳細に限定されるものではなく、説明される実施形態の範囲及び均等物内で修正されてもよい。
ゲーミングコンソールの例示的な全体的なシステムアーキテクチャが本明細書で説明される。実施例のゲーミングコンソールは、本発明の実施形態を実装するためのコントローラと互換性を有することができる、Sony(登録商標)Playstation3(登録商標)(PS3)またはPlaystation4(登録商標)(PS4)エンターテインメントデバイスを含んでもよい。PS3ゲーミングコンソールシステムアーキテクチャが詳細に説明されるが、本明細書で説明される様々な実施形態が、異なるゲーミングコンソールまたはコンピューティングデバイスのシステムアーキテクチャに拡張されることができることに留意されるべきである。システムユニットに接続可能な様々な周辺機器デバイスを有するシステムユニットが提供される。システムユニットは、図1のクラウドゲーミングシステム300と同様である。システムユニットは、PS3にあるような8コアプロセッサ、またはPS4にあるようなマルチコアプロセッサとすることができる、プロセッサ、PS3にあるようなRambus(登録商標)ダイナミックランダムアクセスメモリ(XDRAM)ユニット、またはPS4にあるようなGDDR5などのグラフィックダイナミックランダムアクセスメモリ、PS3にあるような専用ビデオランダムアクセスメモリ(VRAM)ユニットを有するReality Synthesizerグラフィックユニット(例えば、550MHz GPU)、またはPS4及びPS4 Proにおける共有グラフィックメモリを有する800もしくは900MHz GPU、並びにI/Oブリッジを含む。システムユニットはまた、I/Oブリッジを通じてアクセス可能な、ディスク及び着脱可能スロットインハードディスクドライブ(HDD)から読み出すためのBluRay(登録商標)ディスクリードオンリメモリ(BD−ROM(登録商標))(光学)ディスクリーダを含む。任意選択で、システムユニットはまた、I/Oブリッジを通じて同様にアクセス可能な、コンパクトフラッシュ(登録商標)メモリカード及びメモリスティック(登録商標)メモリカードなどを読み出すためのメモリカードリーダ、並びに、PS4では、ゲームを記録するためのビルトインDVRを含む。
I/Oブリッジはまた、6個のユニバーサルシリアルバス(USB)2.0ポート、ギガビットイーサネット(登録商標)ポート、IEEE(登録商標)802.11b/g無線ネットワーク(Wi−Fi)ポート、及び最大で7個のBluetooth(登録商標)接続をサポートできるBluetooth(登録商標)無線リンクポートに接続する。
動作中、I/Oブリッジは、1つ以上のゲームコントローラ(PS3にあるようなDualShock3コントローラ、またはPS4にあるようなPS4 DualShock4コントローラなど)からのデータを含む、全ての無線、USB、及びイーサネット(登録商標)データを扱う。例えば、ユーザがゲームをプレイしているとき、I/Oブリッジは、Bluetooth(登録商標)リンクを介してゲームコントローラからデータを受信し、それをプロセッサ(PS3における)またはマルチコアプロセッサ(PS4における)へと送り、プロセッサまたはマルチコアプロセッサは、それに従ってゲームの現在の状態を更新する。更に、他の画像及び動画センサは、ユーザのゲームプレイの間に捕捉されたデータをI/Oブリッジに提供し、I/Oブリッジは、それぞれのプロセッサに送る。ゲームコントローラ(例えば、PS4のゲームコントローラ)は、ゲームを共有するための共有ボタンオプション、クリック可能タッチパッド、再充電可能バッテリ(リチウムイオンまたは他のタイプ)などを含む。
無線、USB、及びイーサネット(登録商標)ポートはまた、リモコン、キーボード、マウス、Sony Playstation Portable(登録商標)エンターテインメントデバイスなどのポータブルエンターテインメントデバイス、EyeToy(登録商標)ビデオカメラなどのビデオカメラ、マイクロフォンヘッドセット、及び着脱可能ハードドライブなど、ゲームコントローラに加えて他の周辺機器デバイスに対して接続性を提供する。したがって、そのような周辺機器デバイスは、原則として、無線でシステムユニットに接続されてもよく、例えば、ポータブルエンターテインメントデバイスは、Wi−Fiアドホック接続を介して通信してもよく、マイクロフォンヘッドセットは、Bluetooth(登録商標)リンクを介して通信してもよい。
それらのインタフェースのプロビジョニングは、Playstation3デバイスも潜在的にはデジタルビデオレコーダ(DVR)、セットトップボックス、デジタルカメラ、ポータブルメディアプレイヤー、ボイスオーバIP電話、携帯電話、プリンタ、及びスキャナなどの他の周辺機器デバイスとの互換性を有することを意味する。
加えて、レガシーメモリカードリーダは、USBポートを介してシステムユニットに接続されてもよく、Playstation(登録商標)またはPlaystation2(登録商標)デバイスによって使用される種類のメモリカードの読み出しを可能にする。
本実施形態では、ゲームコントローラは、Bluetooth(登録商標)リンクを介してシステムユニットと無線で通信するように動作可能である。しかしながら、ゲームコントローラは代わりに、USBポートに接続されることができ、それによって、ゲームコントローラのバッテリを充電する電力も提供する。1つ以上のアナログジョイスティック及び従来の制御ボタンに加えて、ゲームコントローラは、各々の軸における転換及び回転に対応する、6個の自由度における動きに敏感である。その結果として、ゲームコントローラのユーザによるジェスチャ及び移動は、従来のボタンまたはジョイスティックコマンドに加えてまたはそれらの代わりに、ゲームへの入力として転換される。任意選択で、Playstation(商標)ポータブルデバイスなどの他の無線対応可能な周辺機器デバイスがコントローラとして使用されてもよい。Playstation(商標)ポータブルデバイスのケースでは、追加のゲームまたは制御情報(例えば、制御命令またはライブの数)は、デバイスのスクリーン上で提示されてもよい。ダンスマット(図示せず)、ライトガン(図示せず)、ハンドル及びペダル(図示せず)、または即答クイズゲームのための1つまたは複数の大型のボタン(これも図示せず)などの特注品のコントローラなど、他の代替的または補助的制御装置も使用されてもよい。
リモコンも、Bluetooth(登録商標)リンクを介してシステムユニットと無線で通信するように動作可能である。リモコンは、BluRay(商標)ディスクBD−ROMリーダの操作及びディスクの内容閲覧のために適した制御を備える。
BluRay(商標)ディスクBD−ROMリーダは、従来の記録済みコンパクトディスク(CD)、記録可能なCD、及びいわゆるスーパーオーディオCDに加えて、Playstation及びPlayStation2デバイスとの互換性を有するコンパクトディスクリードオンリメモリ(CD−ROM)を読み出すように動作可能である。BluRay(商標)ディスクBD−ROMリーダも、従来の記録済みDVD及び記録可能なDVDに加えて、Playstation2(商標)及びPlayStation3(商標)デバイスとの互換性を有するデジタル多用途ディスクリードオンリメモリ(DVD−ROM)を読み出すように動作可能である。BluRay(商標)ディスクBD−ROMリーダは更に、従来の記録済みブルーレイディスク及び記録可能なブルーレイディスクと共に、Playstation3デバイスとの互換性を有するBD−ROMを読み出すように動作可能である。
システムユニットは、Reality Synthesizerグラフィックユニットを介して、プレイステーション3デバイスまたはPlaystation4デバイスによって生成または復号された音声及びビデオを、音声コネクタ及びビデオコネクタ経由で、ディスプレイ及び1つ以上のスピーカを備えた表示及び音声出力装置(モニタまたはテレビ受像機など)に提供するように動作可能である。音声コネクタは、従来のアナログ及びデジタル出力を含んでもよく、ビデオコネクタは、コンポーネントビデオ、Sビデオ、コンポジットビデオ、及び1つ以上の高解像度マルチメディアインタフェース(HDMI(登録商標))出力を様々に含んでもよい。その結果として、ビデオ出力は、PALもしくはNTSCなどのフォーマットにあってもよく、または720p、1080i、もしくは1080pの高解像度及び4K、HDRにあってもよい。
音声処理(生成及び復号など)は、プロセッサによって実行される。例えば、Playstation3デバイスのオペレーティングシステムは、Dolby(登録商標)5.1サラウンドサウンド、Dolby(登録商標)シアターサラウンド(DTS)、及びBlu−Ray(登録商標)ディスクからの7.1サラウンドサウンドの復号をサポートする。
本実施形態では、ビデオカメラは、(電荷結合素子(CCD)画像センサも使用されてもよいが)CMOS(相補型金属酸化膜半導体)画像センサ、LEDインジケータ、並びにハードウェアベースのリアルタイムデータ圧縮及び符号化装置を含み、圧縮ビデオデータがシステムユニットによる復号のために、イントラ画像ベースのMPEG(motion picture expert group)標準などの適切なフォーマットにおいて送信され得る。カメラLEDインジケータは、例えば、不利な照明条件を示す適切な制御データをシステムユニットから受け取ると、発光するように配置されている。ビデオカメラの実施形態は、USB、Bluetooth(登録商標)、Wi−Fi通信ポートを介してシステムユニットに様々な方法で接続されてもよい。ビデオカメラの実施形態は、1つ以上の関連するマイクロフォンを含んでおり、また、音声データを送信することができる。ビデオカメラの実施形態では、CCDは、高解像度ビデオの捕捉に対して適切な分解能を有してもよい。使用中、ビデオカメラによって捕捉された画像は、例えば、ゲーム内に組み込まれてもよく、ゲーム制御入力として解釈されてもよい。
一般に、システムユニットの通信ポートのうちの1つを介して、ビデオカメラまたはリモコンなどの周辺機器デバイスによりデータ通信がうまく行われるように、デバイスドライバなどの適切なソフトウェアが提供されるべきである。デバイスドライバ技術は公知であり、ここで詳細に説明しないが、デバイスドライバまたは同様のソフトウェアインタフェースが、記載する本実施形態で必要とされ得ることを当業者は理解する。
プロセッサは、メモリコントローラ及びデュアルバスインタフェースコントローラを含む外部入力及び出力構造、電力処理エレメントと称されるメインプロセッサ、シナジスティックプロセッシングエレメント(SPE)と称される8基のコプロセッサ、及びエレメント相互接続バスと称される上記構成要素を接続する環状データバス、の4個の基本構成要素、を備えたアーキテクチャを有する。プロセッサの総浮動小数点性能は、Playstation2デバイスのエモーションエンジンの6.2GFLOPと比較して、218GFLOPSである。
パワープロセッシングエレメント(PPE)は、3.2GHzの内部クロックにより動作する双方向同時マルチスレッディングPower準拠のPCコア(PPU)に基づいている。それは、512kBレベル2(L2)キャッシュ及び32kBレベル1(L1)キャッシュを含む。PPEは、3.2GHzにおいて25.6GFLOPに転換する、クロックサイクルごとに8つの単一位置操作ができる。PPEの主要な役割は、演算作業負荷の大部分を処理するシナジスティックプロセッシングエレメントのコントローラとして機能することにある。動作中、PPEは、ジョブキューを保持し、シナジスティックプロセッシングエレメントのジョブをスケジュールしており、その進捗を監視する。その結果として、各シナジスティックプロセッシングエレメントはカーネルを実行し、その役割は、ジョブを取り出して、これを実行し、PPEと同期することにある。
各々のシナジスティックプロセッシングエレメント(SPE)は、シナジスティックプロセッシングユニット(SPU)及びメモリフローコントローラ(MFC)をそれぞれ含み、MFCは、ダイナミックメモリアクセスコントローラ(DMAC)、メモリ管理ユニット(MMU)、及びバスインタフェース(図示せず)をそれぞれ含む。各々のSPUは、3.2GHzで動作し、原則として4GBに拡張可能な、256kBのローカルRAMを含むRISCプロセッサである。各々のSPEは、単精度性能の理論的な25.6GFLOPSを示す。1つのSPUは、1クロックサイクルに、4つの単精度浮動小数点部、4つの32ビット数、8つの16ビット整数または16の8ビット整数を処理することができる。同一のクロックサイクルにおいて、メモリ操作も実行することができる。SPUは、システムメモリXDRAM1426に直接アクセスせず、SPUによって形成された64ビットアドレスはMFCに渡され、MFCが、自身のDMAコントローラに対して、エレメント相互接続バス及びメモリコントローラを介してメモリにアクセスするように指示する。
エレメント相互接続バス(EIB)は、上記プロセッサ素子、すなわちPPE、メモリコントローラ、デュアルバスインタフェース、及び8基のSPE、合計して12個のパーティシパント(Participant:構成要素)を接続するプロセッサへの内部の論理的には環状の通信バスである。パーティシパントは、クロックサイクルごとに8バイトのレートにおいてバスへの読み出し及び書き込みを同時に行うことができる。前に述べられたように、各々のSPEは、より長い読み出し及び書き込みシーケンスをスケジュールのためのDMACを含む。EIBは、4つのチャネルを備え、そのうち2つは時計回り方向であり、残り2つは反時計回り方向である。その結果として、12のパーティシパントについて、2つのパーティシパント間のステップ方式の最長のデータフローは、適切なディレクションによって6ステップとなる。したがって、パーティシパント間でアービトレーションが行われて完全な利用度が実現されると、12のスロットの理論上のピーク瞬間EIB帯域幅は、1クロックにつき96Bとなる。これは、3.2GHz(ギガヘルツ)のクロックレートにおける307.2GB/s(ギガバイト/秒)の理論上のピーク帯域幅に等しい。
メモリコントローラは、Rambus Incorporatedによって開発されたXDRAMインタフェースを含む。メモリコントローラは、25.6GB/sの理論上のピーク帯域幅を有するRambus XDRAM1426とインタフェースする。
デュアルバスインタフェースは、Rambus FlexIO(登録商標)システムインタフェースを含む。インタフェースは、5の経路が受信用、7つの経路が送信用である、各々が8ビット幅である12個のチャネルに編成される。これにより、プロセッサと、コントローラを介してI/Oブリッジ間、及びコントローラを介してReality Simulatorグラフィックユニット間で、理論上のピーク帯域幅が62.4GB/s(送信36.4GB/s、受信26GB/s)が得られる。
Reality Synthesizerグラフィックユニットにプロセッサによって送信されるデータは通常、表示リストが含まれ、これは、頂点を描画したり、ポリゴンにテクスチャを貼り付けたり、照明条件を指定するなどための一連のコマンドである。
実施形態は、現実世界ユーザをより正確に識別し、アバターまたはシーンの活動を案内するための深度データを捕捉することを含んでもよい。オブジェクトは、人が保持している物体であっても、または人の手であってもよい。この説明では、用語「深度カメラ」及び「三次元カメラ」は、距離情報すなわち深度情報を取得することができる任意のカメラを指す。例えば、深度カメラは、距離情報を取得するために制御された赤外線照明を利用することができる。別の例示的な深度カメラは、立体カメラ対があり、これは2台の基準カメラを使用して距離情報を三角測量によって求める。同様に、用語「深度検知装置」は、距離情報と共に二次元画素情報を取得できるいずれかのタイプのデバイスを指す。
三次元画像における最新の進歩により、リアルタイムのインタラクティブコンピュータのアニメーションの可能性が広がっている。特に、新たな「深度カメラ」は、標準的な二次元ビデオ画像に加えて三次元を捕捉及びマッピングする能力を提供する。新たな深度データにより、本発明の実施形態は、他のオブジェクトの背後を含む、ビデオシーン内の様々な場所にあるコンピュータにより生成されたオブジェクトの配置をリアルタイムで可能にする。
その上、本発明の実施形態は、ユーザに対してリアルタイムのインタラクティブゲーム体験を提供する。例えば、ユーザは、コンピュータにより生成した様々なオブジェクトとリアルタイムでインタラクションを行うことができる。更に、ビデオシーンは、ユーザの経験を高めるようにリアルタイムで変更することができる。例えば、コンピュータにより生成されたコスチュームを、ユーザの服の上にはめ込んだり、コンピュータが生成した光源を利用して、ビデオシーン内に仮想の影を表示させることができる。よって、本発明の実施形態及び深度カメラを使用して、ユーザは、自分のリビングルーム内でインタラクティブ環境を経験することができる。通常のカメラと同様に、深度カメラは、ビデオ画像を含む複数の画素についての二次元データを捕捉する。これらの値は、画素についての色値、通常は、各々の画素についての赤、緑、及び青(RGB)の値である。この方式では、カメラによって捕捉されたオブジェクトは、モニタ上では二次元オブジェクトのように見える。
本発明の実施形態はまた、分散画像処理構成を考慮する。例えば、本発明は、1つの場所(CPUなど)や2つの場所(CPUと他の1つの素子など)で行われる捕捉された画像及び表示画像処理に限定されない。例えば、入力画像処理は、処理を実行することができる関連のCPU、プロセッサまたは装置において容易に行うことができ、基本的には、画像処理の全てを、相互接続システム全体に分散させることができる。よって、本発明は、いずれかの特定の画像処理ハードウェア回路及び/またはソフトウェアに限定されない。本明細書で説明される実施形態は、汎用ハードウェア回路及び/またはソフトウェアのいずれかの特定の組み合わせにも、処理構成要素によって実行される命令についてのいずれの特定のソースにも限定されない。
上記実施形態を考慮して、本発明は、コンピュータシステムに記憶されたデータを伴う様々なコンピュータにより実施される動作を使用してもよいことが理解されるべきである。これらの動作は、物理量の物理操作を必要とする動作を含む。通常、必須ではないが、これらの量は、記憶され、移転され、組み合わされ、比較され、そうでない場合、操作が可能な電気または磁気信号の形式をとる。更に、実行される操作は、作成すること、識別すること、判定すること、または比較することを指すことが多い。
上記説明された発明は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラマブル家庭用電化製品、ミニコンピュータ、及びメインフレームコンピュータなどを含む他のコンピュータシステム構成により実践されてもよい。本発明はまた、通信ネットワークを通じてリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境において実践されてもよい。
発明はまた、コンピュータ可読媒体上のコンピュータ可読コードとして実施されてもよい。コンピュータ可読媒体は、電磁搬送波を含む、後にコンピュータシステムによって読み取ることができるデータを記憶できる任意のデータ記憶装置である。コンピュータ可読媒体の例は、ソリッドステートドライブ(SSD)、ハードディスクドライブ(HDD)、デジタルビデオディスク(DVD)ドライブ、Bluray(登録商標)などのハードドライブ、ネットワークアタッチドストレージ(NAS)、リードオンリメモリ、ランダムアクセスメモリ、CD−ROM、CD−R、CD−RW、磁気テープ、並びに他の光学及び非光学データ記憶装置を含む。コンピュータ可読媒体はまた、コンピュータ可読コードが分散方式で記憶及び実行されるように、ネットワーク結合コンピュータシステム上に分散されることができる。
前述の発明は、理解を明確にするためにある程度詳細に説明されてきたが、変更及び修正が添付の請求項の範囲内で実践されてもよいことが明らかである。したがって、本実施形態は例示的であって限定的ではないと見なされるべきであり、本発明は、本明細書において与えられた詳細に限定されるものではなく、添付の請求項の範囲及び均等物の範囲内で修正されてもよい。

Claims (22)

  1. クラウドゲーミングシステム上で利用可能なビデオゲームのゲームプレイ方法であって、
    前記ビデオゲームのゲームプレイのリクエストを検出し、前記リクエストは、第1プレイヤーのクライアントデバイスから出されると共に、ゲームプレイに対するスケジュールされた時間を識別し、かつ、前記第1プレイヤーとの前記ビデオゲームのゲームプレイに加わるように招待される他のプレイヤーを識別するものであり、
    前記リクエストに応答して、前記スケジュールされた時間に前記ビデオゲームのゲームプレイに加わるように招待をする通知を前記他のプレイヤーに送信し、
    前記スケジュールされた時間に前記第1プレイヤーとの前記ビデオゲームのゲームプレイの前記招待を受け付けた前記他の特定のプレイヤーを識別するように、1人以上の前記他のプレイヤーから受信された前記通知への応答を評価し、
    前記第1プレイヤーとゲームプレイのための前記招待を受け付けた前記他の特定のプレイヤーとに対し、前記ビデオゲームのゲームプレイが始まるポイントまで前記ビデオゲームを事前ロードし、前記事前ロードは、前記スケジュールされた時間に、または前記スケジュールされた時間の後に前記ビデオゲームのゲームプレイを始めるように、前記第1プレイヤー、及び前記他の特定のプレイヤーの各々が前記クラウドゲーミングシステムに接続する前に実行されるものであり、
    前記ビデオゲームは、マルチプレイヤービデオゲームであり、前記方法の動作は、前記クラウドゲーミングシステムにおけるプロセッサによって実行される、
    方法。
  2. 前記送信、前記評価、及び前記事前ロードは、ユーザインタラクションを必要とすることなく、前記リクエストを検出すると前記クラウドゲーミングシステムにおけるサーバによって自動で実行される、
    請求項1に記載の方法。
  3. プレイヤーから受信された前記応答は、前記プレイヤーが前記スケジュールされた時間に前記ビデオゲームのゲームプレイを始めることを可能にするように、前記クラウドゲーミングシステムが前記プレイヤーに対するゲームプレイに対して前記ビデオゲームを事前ロードを始めるための承認を含み、前記サーバによって実行される前記プレイヤーに対する前記ビデオゲームの前記事前ロードでは、
    前記ビデオゲームのセットアップの間に前記プレイヤーが従うルーチンのセットを前記ビデオゲームのゲームデータから取り出し、
    前記ポイントまでの前記ビデオゲームのセットアップの間及び前記ビデオゲームの実行の間、前記ルーチンのセットの各々のルーチンについての前記プレイヤーによって行われる入力を取り出し、
    前記サーバにおいて前記ビデオゲームをインスタンス化し、前記インスタンス化では、前記プレイヤーが従う前記ルーチンのセットを実行し、かつ、前記ルーチンのセットの各々のルーチン及び前記ポイントまでの前記ビデオゲームの実行の間の前記入力を自動で行い、前記ビデオゲームの前記事前ロードによって、前記ビデオゲームのゲームデータが、前記ゲームプレイが始まるポイントまで更新されて、前記プレイヤーが、前記ビデオゲームが中断されるポイントからゲームプレイを再開することが可能になるものであり、
    前記ルーチンのセット及び入力は、前記プレイヤーに対して特有であり、前記ルーチンのセット及び入力は、前記プレイヤーの信用情報、前記プレイヤーによって提供されるゲームカスタマイズ、前記ルーチンのセットにおける各々のルーチンの間に前記プレイヤーによって行われる入力、及び前記プレイヤーのゲーム状態を識別する情報を提供し、前記プレイヤーは、前記第1プレイヤー、または前記スケジュールされた時間に前記ビデオゲームのゲームプレイに加わるための前記招待を受け付けた前記他の特定のプレイヤーのうちのいずれか1人である、
    請求項1に記載の方法。
  4. 前記ビデオゲームの前記事前ロードを実行するための前記スケジュールされた時間に対して定義された時間ウインドウを識別し、
    前記時間ウインドウ内にプレイヤーに対して前記事前ロードを実行し、
    前記プレイヤーは、前記第1プレイヤー、または前記他の特定のプレイヤーのうちのいずれか1人であり、前記時間ウインドウは、前記ゲームデータを事前ロードするために必要な時間及び前記ビデオゲームの事前ロードを完了するためのバッファ時間を含むように定義される、
    請求項1に記載の方法。
  5. プレイヤーに対しての前記ゲームの事前ロードでは、
    前記プレイヤーの現在の地理的位置を判定するように、前記プレイヤーと関連付けられたユーザプロファイルにおける地理的位置インジケータをクエリし、
    前記プレイヤーの前記識別された地理的位置に近接した前記クラウドゲーミングシステムにおけるデータセンタを識別し、
    ゲームプレイのために前記ビデオゲームを事前ロードするための前記識別されたデータセンタ内の1つ以上のサーバを識別し、
    前記プレイヤーは、前記第1プレイヤー、または前記スケジュールされた時間に前記ビデオゲームのゲームプレイに加わるための前記招待を受け付けた前記他の特定のプレイヤーのうちのいずれか1人である、
    請求項1に記載の方法。
  6. 前記ゲームの事前ロードでは、更に、
    前記スケジュールされた時間の前の時間ウインドウの間、前記第1プレイヤーを含む前記他の特定のプレイヤーの地理的位置に対応する1つ以上のデータセンタ内のサーバへの前記ビデオゲームの事前ロードと、前記識別されたデータセンタ内の前記1つ以上のサーバへの前記ビデオゲームの前記事前ロードを同期し、
    前記同期することは、前記第1プレイヤー、及び前記他の特定のプレイヤーの各々が、前記スケジュールされた時間に前記ビデオゲームのゲームプレイを即時に始めることを可能にする、
    請求項5に記載の方法。
  7. 更に、前記第1プレイヤー及び前記他の特定のプレイヤーのそれぞれが前記ビデオゲームのゲームプレイのために前記クラウドゲーミングシステムにアクセスすることを可能にするように、前記スケジュールされた時間からの追加の予め定義された閾値期間を提供する、
    請求項1に記載の方法。
  8. 更に、応答の評価では、前記第1プレイヤーに、前記他の特定のプレイヤーが前記スケジュールされた時間における前記ビデオゲームのゲームプレイのための前記招待を受け付けたことを知らせる確認通知を送信する、
    請求項1に記載の方法。
  9. 前記他のプレイヤーは、前記第1プレイヤーのソーシャルコンタクトであり、前記第1プレイヤーのソーシャルネットワークから識別される、
    請求項1に記載の方法。
  10. 前記他のプレイヤーは、前記第1プレイヤーとの前記ビデオゲームのゲームプレイに前に関与したプレイヤー、または現在オンラインであり、別のアプリケーションとインタラクションを行っている前記第1プレイヤーのソーシャルコンタクトである、
    請求項1に記載の方法。
  11. クラウドゲーミングシステム上で利用可能なビデオゲームのゲームプレイ方法であって、
    第1プレイヤーからの前記ビデオゲームのゲームプレイのリクエストを検出し、前記リクエストは、ゲームプレイについてのスケジュールされた時間、及び前記ビデオゲームのゲームプレイに加わるように招待される他のプレイヤーのアイデンティティを識別し、前記他のプレイヤーは、前記クラウドゲーミングシステムによってホストされた1つ以上のアプリケーションと現在オンラインでインタラクションを行い、
    前記スケジュールされた時間に前記ビデオゲームのゲームプレイに加わる招待をする通知を現在オンラインである前記他のプレイヤーに送信し、
    前記スケジュールされた時間における前記ビデオゲームのゲームプレイの前記招待を受け付けた前記他の特定のプレイヤーを識別するように、1人以上の前記他のプレイヤーから受信された前記通知への応答を評価し、
    前記第1プレイヤー、及びゲームプレイのための前記招待を受け付けた前記他の特定のプレイヤーに対し、前記ビデオゲームのゲームプレイが始まるポイントまで前記ビデオゲームを事前ロードし、前記事前ロードは予め実行され、前記スケジュールされた時間に前記クラウドゲーミングシステムにアクセスすると、前記第1プレイヤー及び前記他の特定のプレイヤーの各々が前記ビデオゲームのゲームプレイを即時に始めることを可能にするものであり、
    前記ビデオゲームは、マルチプレイヤービデオゲームであり、前記方法の動作は、前記クラウドゲーミングシステムにおける1つ以上のプロセッサによって実行される、
    方法。
  12. 前記他のプレイヤーは、前記第1プレイヤーとの前記ビデオゲームのゲームプレイに現在関与している前記他のプレイヤーに基づいて、または前記ビデオゲームのゲームプレイに現在関与している前記他のプレイヤーから、または前記第1プレイヤーとの他のビデオゲームのゲームプレイに関与している前記他のプレイヤーから、または他のビデオゲームのゲームプレイに関与している前記他のプレイヤーから、または他のオンラインアプリケーションとのインタラクションへの現在の関与から、または他のオンラインアプリケーションへの前の関与から識別される、
    請求項11に記載の方法。
  13. プレイヤーに対しての前記ビデオゲームの事前ロードでは、
    前記プレイヤーの地理的位置を識別するように、前記リクエストを開始した前記プレイヤーと関連付けられた地理的位置インジケータをクエリし、
    前記識別されたデータセンタ内のサーバ上でのゲームプレイのための前記ビデオゲームをインスタンス化するための前記プレイヤーの前記識別された地理的位置に近接した前記クラウドゲーミングシステムにおけるデータセンタを識別し、
    前記識別されたデータセンタにおいて前記ビデオゲームをインスタンス化し、前記インスタンス化することによって、前記ビデオゲームのゲームコードが前記識別されたデータセンタにおける1つ以上のサーバ上で実行され、前記プレイヤーのゲームデータが前記ビデオゲームの現在のゲーム状態によって定義された前記プレイヤーのゲーム状態によって定義されたポイントまでアップロードされ、前記プレイヤーは、第1プレイヤー、または、前記ビデオゲームのゲームプレイのための前記招待を受け付けた前記他のプレイヤーのうちの1人である、
    請求項11に記載の方法。
  14. 前記ゲームの事前ロードでは、更に、前記第1プレイヤー及び前記他の特定のプレイヤーが前記現在のゲーム状態によって定義された前記ポイントから前記スケジュールされた時間に前記ビデオゲームのゲームプレイを始めることを可能にするように、前記ビデオゲームのインスタンス化を同期し、及び前記スケジュールされた時間に対して定義された時間ウインドウ内に1つ以上のデータセンタにおいて、前記第1プレイヤー及び前記他の特定のプレイヤーの各々に対して前記ビデオゲームのゲームデータをアップロードする、
    請求項13に記載の方法。
  15. 前記プレイヤーの前記地理的位置は、前記プレイヤーの前記クライアントデバイス内で利用可能なグローバルポジショニングシステムの信号から取得された地理的位置情報に対して、またはウェブブラウジングアプリケーションとの前記プレイヤーのインタラクションから取得された情報から、または前記プレイヤーのソーシャルメディアの投稿から取得された情報から、または前記クライアントデバイス内のアプリケーションとの前記プレイヤーのインタラクションから取得された情報から、またはそれらの2つ以上の組み合わせから検証される、
    請求項13に記載の方法。
  16. クラウドゲーミングシステム上で利用可能なビデオゲームのゲームプレイのために他のプレイヤーを集める方法であって、
    第1プレイヤーからの前記ビデオゲームのゲームプレイのリクエストを検出し、前記リクエストは、前記ビデオゲームのゲームプレイに加わるためのスケジュールされた時間及び前記クラウドゲーミングシステム上のアプリケーションと現在オンラインでのインタラクションを行っている他のプレイヤーのアイデンティティを識別するものであり、
    前記スケジュールされた時間に前記ビデオゲームのゲームプレイに加わる招待をする通知を前記他のプレイヤーに送信し、
    前記スケジュールされた時間に前記ビデオゲームのゲームプレイのための前記招待を受け付けた前記他の特定のプレイヤーを識別するように、1人以上の前記他のプレイヤーから受信された前記通知への応答を評価し、
    前記ビデオゲームの現在のゲーム状態まで前記ビデオゲームを事前ロードし、前記事前ロードは予め実行され、前記スケジュールされた時間に前記クラウドゲーミングシステムにアクセスすると、前記第1プレイヤー及び前記他の特定のプレイヤーが前記現在のゲーム状態から前記ビデオゲームのゲームプレイを即時に始めることを可能にするものであり、
    前記ビデオゲームは、マルチプレイヤービデオゲームであり、前記送信、評価、及び事前ロードの動作は、第1プレイヤーからの追加の入力を必要とすることなく、前記クラウドゲーミングシステムにおける1つ以上のサーバのプロセッサによって実行される、
    方法。
  17. プレイヤーに対して前記ゲームの事前ロードでは、
    前記プレイヤーの現在の地理的位置を判定し、
    ゲームプレイのために前記ビデオゲームをインスタンス化するための前記プレイヤーの前記地理的位置に近接した前記クラウドゲーミングシステムにおける1つ以上のデータセンタを識別し、
    前記プレイヤーの前記地理的位置に対して識別された前記1つ以上のデータセンタのうちの特定の1つにおける1つ以上のサーバ上で前記ビデオゲームをインスタンス化し、前記インスタンス化することによって、前記ビデオゲームのゲームコードが、前記特定のデータセンタにおける1つ以上のサーバ上で実行され、前記プレイヤーのゲームデータが、前記プレイヤーの前記ビデオゲームの現在のゲーム状態によって定義されたポイントまでロードされ、前記プレイヤーは、前記第1プレイヤーまたは前記招待を受け付けた前記他の特定のプレイヤーのうちのいずれか1人である、
    請求項16に記載の方法。
  18. 前記プレイヤー及び前記他の特定のプレイヤーの各々に対する前記ビデオゲームの前記インスタンス化は、前記第1プレイヤー及び前記他の特定のプレイヤーが、前記現在のゲーム状態によって定義された前記ポイントから、前記スケジュールされた時間に前記ビデオゲームのゲームプレイを始めることを可能にするように同期される、
    請求項17に記載の方法。
  19. 前記プレイヤーについての前記地理的位置の判定では、
    前記プレイヤーのユーザプロファイル内の地理的位置インジケータをクエリし、
    前記プレイヤーのクライアントデバイス内で利用可能なグローバルポジショニングシステムによって生成された信号から、または前記クライアントデバイス上で実行しているアプリケーションとの前記プレイヤーのインタラクションから、または前記クラウドゲーミングシステム上での前記アプリケーションとの前記プレイヤーの前記オンラインでのインタラクションから情報を取得し、前記情報は、前記スケジュールされた時間に対して定義された時間ウインドウにおいて取得され、前記プレイヤーの現在の地理的位置を検証するために使用されるものであり、
    前記プレイヤーの前記ユーザプロファイルから取得された前記地理的位置が前記現在の地理的位置に一致することを検証し、
    前記現在の地理的位置が前記プレイヤーの前記ユーザプロファイルにおいて定義された前記地理的位置とは異なるとき、前記ビデオゲームを事前ロードするための前記プレイヤーについての前記現在の地理的位置を使用し、前記プレイヤーの前記ユーザプロファイルにおける前記現在の地理的位置を更新する、
    請求項17に記載の方法。
  20. 前記プレイヤーの前記オンラインインタラクションには、ウェブブラウザを通じて提供されるインタラクションまたはソーシャルメディアアプリケーションに対して提供されるインタラクションが含まれる、
    請求項17に記載の方法。
  21. クラウドゲーミングシステム上で利用可能なビデオゲームのゲームプレイ方法であって、
    オーガナイザからの前記ビデオゲームのゲームプレイのリクエストを検出し、前記リクエストは、ゲームプレイのためのスケジュールされた時間及び前記ビデオゲームのゲームプレイに加わるように招待されたプレイヤーのアイデンティティを識別するものであり、
    前記スケジュールされた時間に前記ビデオゲームのゲームプレイに加わるための招待をする通知を前記プレイヤーの各々に送信し、
    前記スケジュールされた時間における前記ビデオゲームのゲームプレイのための前記招待を受け付けた前記他の特定のプレイヤーを識別するように、前記プレイヤーのうちの1人以上から受信された前記通知への応答を評価し、
    ゲームプレイのための前記招待を受け付けた前記特定のプレイヤーの各々に対し、前記ビデオゲームのゲームプレイが始まるポイントまで前記ビデオゲームを事前ロードし、前記事前ロードは予め実行され、前記スケジュールされた時間に前記クラウドゲーミングシステムにアクセスすると、前記特定のプレイヤーの各々が前記ポイントから前記ビデオゲームのゲームプレイを即時に開始することを可能にし、
    前記オーガナイザは、前記ビデオゲームのゲームプレイをスケジュールするが、前記スケジュールされた時間に前記ビデオゲームのゲームプレイに参加せず、
    前記ビデオゲームは、マルチプレイヤービデオゲームであり、前記クラウドゲーミングシステムの1つ以上のプロセッサによって実行される、
    方法。
  22. 前記プレイヤーの各々は、それぞれの前記プレイヤーと関連付けられたユーザ属性、ゲームプレイ信用情報に基づいて識別され、前記ゲームプレイ信用情報は、前記ビデオゲームのゲームプレイにおける前記それぞれのプレイヤーの関与を識別する、
    請求項21に記載の方法。
JP2020519662A 2017-06-19 2018-06-08 ビデオゲームのゲームプレイをスケジューリングする方法及びシステム Active JP6982684B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762522050P 2017-06-19 2017-06-19
US62/522,050 2017-06-19
US15/715,001 US10610779B2 (en) 2017-06-19 2017-09-25 Methods and systems for scheduling game play of a video game
US15/715,001 2017-09-25
PCT/US2018/036755 WO2018236603A1 (en) 2017-06-19 2018-06-08 METHODS AND SYSTEMS FOR PLANNING GAMING OF A VIDEO GAME

Publications (2)

Publication Number Publication Date
JP2020524066A true JP2020524066A (ja) 2020-08-13
JP6982684B2 JP6982684B2 (ja) 2021-12-17

Family

ID=64656957

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020519662A Active JP6982684B2 (ja) 2017-06-19 2018-06-08 ビデオゲームのゲームプレイをスケジューリングする方法及びシステム

Country Status (5)

Country Link
US (3) US10610779B2 (ja)
EP (1) EP3641900A1 (ja)
JP (1) JP6982684B2 (ja)
CN (1) CN110769907B (ja)
WO (1) WO2018236603A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7413832B2 (ja) 2020-02-27 2024-01-16 セイコーエプソン株式会社 半導体装置

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10238965B2 (en) * 2016-04-28 2019-03-26 Sony Interactive Entertainment America Llc Cloud gaming device handover
US10681120B2 (en) * 2017-07-25 2020-06-09 Uber Technologies, Inc. Load balancing sticky session routing
US11372698B2 (en) 2018-01-12 2022-06-28 Meta Platforms, Inc. Coordinated effects in experiences
US10967259B1 (en) * 2018-05-16 2021-04-06 Amazon Technologies, Inc. Asynchronous event management for hosted sessions
US11457277B2 (en) * 2019-08-28 2022-09-27 Sony Interactive Entertainment Inc. Context-based action suggestions
CN110535966B (zh) * 2019-09-05 2021-06-15 腾讯科技(深圳)有限公司 一种数据处理方法及相关设备
US11736553B1 (en) 2019-09-27 2023-08-22 Amazon Technologies, Inc. Selecting hosting servers for interactive electronic activities
CN111840992B (zh) * 2020-06-19 2021-08-13 杭州学会玩网络技术有限公司 一种游戏触发方法及一种线上线下结合的游戏***
CN111840991A (zh) * 2020-06-19 2020-10-30 杭州学会玩网络技术有限公司 一种游戏***
CN111729293B (zh) * 2020-08-28 2020-12-22 腾讯科技(深圳)有限公司 一种数据处理方法、装置及存储介质
WO2022061114A1 (en) * 2020-09-17 2022-03-24 Bogie Inc. System and method for an interactive controller
US20220129295A1 (en) 2020-10-25 2022-04-28 Meta Platforms, Inc. Server-side hosted environment for a cloud gaming system
US11863616B1 (en) * 2020-10-30 2024-01-02 Amazon Technologies, Inc. Selecting hosting servers for network services
US20220147616A1 (en) * 2020-11-11 2022-05-12 Red Hat, Inc. Implementing trusted clients using secure execution environments
CN112402979B (zh) * 2020-12-02 2023-11-17 网易(杭州)网络有限公司 游戏数据处理方法、装置和电子设备
CN114138740A (zh) * 2020-12-18 2022-03-04 完美世界(重庆)互动科技有限公司 游戏数据迁移方法及装置、存储介质、计算机设备
CN112870711B (zh) * 2021-04-28 2021-07-16 腾讯科技(深圳)有限公司 一种云游戏的处理方法、装置、设备及存储介质
GB202108686D0 (en) * 2021-06-17 2021-08-04 Immersive Group Gaming Ltd Game delivery system
US11658919B2 (en) * 2021-08-04 2023-05-23 Cyborg Phoenix Simulations Llc Device and method for interactive environment processing and communication
US20230085260A1 (en) * 2021-09-16 2023-03-16 Voyetra Turtle Beach Inc. Video game controller with social networking
CN114191810A (zh) * 2021-12-02 2022-03-18 北京蔚领时代科技有限公司 Android云游戏用户数据的分布式存储方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005346705A (ja) * 2004-05-11 2005-12-15 Microsoft Corp 通信システムにおける多感覚エモティコン
JP2007215767A (ja) * 2006-02-16 2007-08-30 Sony Computer Entertainment Inc ゲーム管理サーバ
JP2011503677A (ja) * 2007-09-19 2011-01-27 ソニー コンピュータ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー マルチユーザのオンラインセッションを追跡し、相互に関連づけ、処理する方法
US8808093B1 (en) * 2012-01-23 2014-08-19 Zynga Inc. Asynchronous social events in computer-implemented games
US20160256784A1 (en) * 2015-03-06 2016-09-08 Sony Interactive Entertainment America Llc Predictive Instant Play For An Application Over The Cloud

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030224852A1 (en) * 2002-04-19 2003-12-04 Walker Jay S. Method and apparatus for linked play gaming with combined outcomes and shared indicia
US20030125112A1 (en) * 2001-12-31 2003-07-03 Silvester Kelan C. Method and apparatus for providing a multiplayer gaming environment
US7311608B1 (en) * 2003-10-31 2007-12-25 Microsoft Corporation Online game invitations using friends list
US8033906B2 (en) * 2004-10-21 2011-10-11 Wms Gaming Inc. Wagering game with invitation for playing a wagering game at a subsequent gaming session
CN100415331C (zh) 2005-08-19 2008-09-03 华为技术有限公司 一种用于游戏的邀请比赛方法和***
US8641529B2 (en) * 2008-06-27 2014-02-04 Microsoft Corporation Scheduled programmatic game content
US20100306672A1 (en) * 2009-06-01 2010-12-02 Sony Computer Entertainment America Inc. Method and apparatus for matching users in multi-user computer simulations
US8621585B2 (en) * 2009-06-16 2013-12-31 Z2Live, Inc. Invitation service for multi-device application sessions
US8412833B2 (en) * 2010-04-07 2013-04-02 Apple Inc. Apparatus and method for inviting users to online sessions
KR101754318B1 (ko) 2012-02-06 2017-07-06 핫헤드 게임즈 인크. 가상 경쟁 그룹 관리 시스템 및 방법
US10130872B2 (en) * 2012-03-21 2018-11-20 Sony Interactive Entertainment LLC Apparatus and method for matching groups to users for online communities and computer simulations
US8961302B2 (en) * 2012-07-20 2015-02-24 Microsoft Technology Licensing, Llc Game browsing
EP3511060A1 (en) * 2012-12-21 2019-07-17 Sony Computer Entertainment America LLC Remote control of a first user's gameplay by a second user
US10376792B2 (en) * 2014-07-03 2019-08-13 Activision Publishing, Inc. Group composition matchmaking system and method for multiplayer video games
JP6646319B2 (ja) 2015-09-30 2020-02-14 ソニー・インタラクティブエンタテインメント エルエルシー クラウドゲームのためのマルチユーザデモストリーミングサービス
US10166469B2 (en) * 2016-06-10 2019-01-01 Apple Inc. Persistent game sessions with multiplayer support

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005346705A (ja) * 2004-05-11 2005-12-15 Microsoft Corp 通信システムにおける多感覚エモティコン
JP2007215767A (ja) * 2006-02-16 2007-08-30 Sony Computer Entertainment Inc ゲーム管理サーバ
JP2011503677A (ja) * 2007-09-19 2011-01-27 ソニー コンピュータ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー マルチユーザのオンラインセッションを追跡し、相互に関連づけ、処理する方法
US8808093B1 (en) * 2012-01-23 2014-08-19 Zynga Inc. Asynchronous social events in computer-implemented games
US20160256784A1 (en) * 2015-03-06 2016-09-08 Sony Interactive Entertainment America Llc Predictive Instant Play For An Application Over The Cloud
WO2016144657A1 (en) * 2015-03-06 2016-09-15 Sony Computer Entertainment America Llc Predictive instant play for an application over the cloud

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7413832B2 (ja) 2020-02-27 2024-01-16 セイコーエプソン株式会社 半導体装置

Also Published As

Publication number Publication date
CN110769907A (zh) 2020-02-07
US20200206610A1 (en) 2020-07-02
US20220212098A1 (en) 2022-07-07
WO2018236603A1 (en) 2018-12-27
EP3641900A1 (en) 2020-04-29
US11278799B2 (en) 2022-03-22
CN110769907B (zh) 2023-10-24
JP6982684B2 (ja) 2021-12-17
US11759707B2 (en) 2023-09-19
US10610779B2 (en) 2020-04-07
US20180361235A1 (en) 2018-12-20

Similar Documents

Publication Publication Date Title
JP6982684B2 (ja) ビデオゲームのゲームプレイをスケジューリングする方法及びシステム
US12005355B2 (en) Using connection quality history to optimize user experience
JP6945588B2 (ja) クラウド上のアプリケーションのための予測的なインスタントプレイ技術
JP7157099B2 (ja) クライアント側のアセット統合を用いたクラウドゲームストリーミング
JP7185699B2 (ja) 仮想シーンプリロード方法
CN109152955B (zh) 云游戏中的用户保存数据管理方法
US9908047B2 (en) User save data migration based on location information
CN113226500A (zh) 使用对等流式传输的众包云游戏

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200123

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210105

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210405

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210426

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211119

R150 Certificate of patent or registration of utility model

Ref document number: 6982684

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150