IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ グーグル インコーポレイテッドの特許一覧

特許7022734ゲームセッションへの参加を容易にするための方法およびシステム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-02-09
(45)【発行日】2022-02-18
(54)【発明の名称】ゲームセッションへの参加を容易にするための方法およびシステム
(51)【国際特許分類】
   A63F 13/335 20140101AFI20220210BHJP
   A63F 13/53 20140101ALI20220210BHJP
   A63F 13/795 20140101ALI20220210BHJP
【FI】
A63F13/335
A63F13/53
A63F13/795
【請求項の数】 13
【外国語出願】
(21)【出願番号】P 2019220516
(22)【出願日】2019-12-05
(62)【分割の表示】P 2018543215の分割
【原出願日】2017-05-19
(65)【公開番号】P2020089734
(43)【公開日】2020-06-11
【審査請求日】2020-05-18
(31)【優先権主張番号】62/339,052
(32)【優先日】2016-05-19
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】15/599,408
(32)【優先日】2017-05-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】チャンピー,アダム
【審査官】大隈 俊哉
(56)【参考文献】
【文献】特許第5808824(JP,B2)
【文献】特表2009-511200(JP,A)
【文献】Google、新「Chromecast」と「Chromecast Audio」を国内発売 4980円[Online],2016年02月18日,https://www.itmedia.co.jp/news/articles/1602/18/news101.html,[2021年4月30日検索]
【文献】Facebookの友達とスコアーを競うスマホゲーム、Angry Birds Friends[Online],2013年05月31日,https://weekly.ascii.jp/elem/000/002/615/2615748/
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00~13/98
A63F 9/24
(57)【特許請求の範囲】
【請求項1】
1つ以上のプロセッサと、前記1つ以上のプロセッサによって実行するための1つ以上のプログラムを格納するメモリとを有する第1の電子クライアントデバイスにおいて、
ゲームアプリケーションを実行するステップと、
前記実行中のゲームアプリケーションと、サーバと、メディアデバイスとの間でゲームセッションを確立するステップを含み、前記メディアデバイスは、前記サーバによってレンダリングされたゲームプレーコンテンツを送信するように構成され、さらに、
前記ゲームアプリケーションが実行中でないおよび/またはインストールされていない1つ以上の第2の電子クライアントデバイスのユーザに対して、前記1つ以上の第2の電子クライアントデバイスの前記ユーザが前記ゲームセッションと対話することを可能にするためのセッション識別子を提示させるステップを含み、
前記セッション識別子は、(i)前記ゲームセッションと、(ii)前記1つ以上の第2の電子クライアントデバイスの各々の上に実装可能なそれぞれのゲームコントローラ構成とを識別し、
前記それぞれのゲームコントローラ構成は、前記1つ以上の第2の電子クライアントデバイスの前記ユーザが前記ゲームセッションと対話することを可能にするように構成される、方法。
【請求項2】
前記セッション識別子は、前記ゲームセッションに対応付けられたURL(Universal Resource Locator)を含む、請求項に記載の方法。
【請求項3】
前記セッション識別子は、前記1つ以上の第2の電子クライアントデバイスにおいて、プロンプトまたは通知の形で表示される、請求項1または2に記載の方法。
【請求項4】
前記ゲームアプリケーションが実行中でないおよび/またはインストールされていない1つ以上の第2の電子クライアントデバイスのユーザに、前記ゲームセッションに対応付けられたセッション識別子を提示するステップは、
前記セッション識別子を前記メディアデバイスに送信するステップを含み、前記メディアデバイスは、前記セッション識別子を出力装置に送信するように構成される、請求項1~のいずれか1項に記載の方法。
【請求項5】
前記ゲームアプリケーションが実行中でないおよび/またはインストールされていない1つ以上の第2の電子クライアントデバイスのユーザに、前記ゲームセッションに対応付けられたセッション識別子を提示するステップは、
前記セッション識別子をメッセージに含めて前記1つ以上の第2の電子クライアントデバイスに送信するステップを含む、請求項1~のいずれか1項に記載の方法。
【請求項6】
前記1つ以上の第2の電子クライアントデバイスは、各々、前記ゲームアプリケーションにゲームプレー入力インタフェースを提供するためのゲームコントローラモジュールを含み、前記セッション識別子によって特定されるゲームコントローラ構成は、仮想コントローラを実現するために前記第2の電子クライアントデバイス上の入力装置および/またはセンサーを利用するために前記ゲームコントローラモジュールの環境設定を行う、請求項のいずれか1項に記載の方法。
【請求項7】
1つ以上のプロセッサと、
前記1つ以上のプロセッサによって実行するための1つ以上のプログラムを格納するメモリとを備え、前記1つ以上のプログラムは、請求項1~のいずれか1項に記載の方法を実行するための命令を含む、第1の電子クライアントデバイス。
【請求項8】
1つ以上のプロセッサを有する第1の電子クライアントデバイスによって実行されると、前記第1の電子クライアントデバイスに、請求項1~のいずれか1項に記載の方法を実行させる、プログラム。
【請求項9】
1つ以上のプロセッサと、前記1つ以上のプロセッサによって実行するための1つ以上のプログラムを格納するメモリとを有する電子メディアデバイスにおいて、
第1の電子クライアントデバイス上で実行中のゲームアプリケーションと、前記ゲームアプリケーションに対応付けられたリモートゲームサーバとのゲームセッションを確立するために、命令を受信するステップを含み、前記第1の電子クライアントデバイスおよび前記電子メディアデバイスは、通信可能に接続され、さらに、
前記受信した命令に応じて、前記ゲームセッションを確立するステップと、
前記ゲームセッションを識別するセッション識別子を受信するステップと、
前記セッション識別子を表示するために出力装置に送信するステップとを含み、
前記セッション識別子は、さらに、1つ以上の第2の電子クライアントデバイスのユーザが前記ゲームセッションと対話することを可能にするために、前記1つ以上の第2の電子クライアントデバイスの各々の上で実装可能なそれぞれのゲームコントローラ構成を識別する、方法。
【請求項10】
前記ゲームセッションからの出力に対応するデータを受信するステップをさらに含み、前記出力は、前記1つ以上の第2の電子クライアントデバイスのユーザによる前記ゲームセッションとの対話から得られる、サーバよってレンダリングされた前記ゲームセッションからのゲームプレーコンテンツを含み、さらに、
表示するために、前記データを前記出力装置に送信するステップを含む、請求項に記載の方法。
【請求項11】
前記セッション識別子は、前記ゲームセッションに対応付けられたURL(Universal Resource Locator)、または、前記ゲームセッションに対応付けられた、前記URLをコード化したバーコードを含み、
前記電子メディアデバイスは、キャスティングデバイスである、請求項10のいずれか1項に記載の方法。
【請求項12】
1つ以上のプロセッサと、
前記1つ以上のプロセッサによって実行するための1つ以上のプログラムを格納するメモリとを備え、前記1つ以上のプログラムは、請求項11のいずれか1項に記載の方法を実行するための命令を含む、電子メディアデバイス。
【請求項13】
電子メディアデバイスの1以上のプロセッサによって実行されると、前記電子メディアデバイスに、請求項11のいずれか1項に記載の方法を実施させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
技術分野
本明細書は、全体的に、コンピュータ技術に関し、ゲームセッションへのユーザの参加を容易にするための方法およびシステムを含むが、これに限定されない。
【背景技術】
【0002】
背景
Google Inc.によるCHROMECAST(登録商標)およびApple Inc.によるAPPLE TV(登録商標)などのメディアプレーヤーデバイスは、いろいろなメディアおよびエンターテイメントアプリケーションをサポートできる。複数のユーザからなるグループは、メディアプレーヤーデバイスが備え付けられた一か所に集まって、これらのアプリケーションから得られるエンターテインメントを一緒に楽しむことができる。
【0003】
メディアプレーヤーデバイスがサポートするアプリケーションの種類の1つに、ゲームアプリケーションがある。多くのゲームは、複数のプレーヤーによってプレーするときが一番楽しいが、メディアプレーヤーデバイス上で実行するゲームアプリケーションまたはメディアプレーヤーデバイスを使用するゲームアプリケーションにおけるマルチプレーヤーサポートは、いくつかの問題を呈する。たとえば、ゲームアプリケーションのファイルサイズがかなり大きくなる傾向があり、プレーヤーになりそうな人の各々に全ゲームアプリケーションファイルをダウンロードさせることは、多くの時間およびデータ許容量を消費し得るため、難しいだろう。別の例として、ユーザは、ゲームの主要なゲームアプリケーションと、ゲームに固有のリモコンまたはコントローラアプリケーションとを別々にダウンロードする必要があることについて混乱してしまうだろう。これらの非能率な点は、マルチプレーヤーゲームをするコストを上げてしまい、たとえば、一か所に集まった複数のユーザによる自発的なゲームプレーには、並外れて高いだろう。
【発明の概要】
【課題を解決するための手段】
【0004】
概要
本明細書に記載の実装形態は、1人のユーザが自身のデバイス(たとえば、スマートフォン)上にゲームアプリケーションを有するが、その他のプレーヤーはそうではない可能性がある場合のマルチプレーヤーゲームセッションを容易にすることを対象とする。
【0005】
いくつかの実装形態において、デバイスを制御できるまたはウェブを介して配布され得、且つ、ウェブブラウザに統合できる、カスタム可能なフレームワークを有する標準コントローラがアプリケーションにおいて提示される。他のプレーヤーがセッション固有のショートリンクに行くまたはメッセージ(たとえば、ショートリンク付きのテキストメッセージ)を受信することのいずれかによって、彼らにゲーム体験を促してもよい。複数のゲーム間で動作するアプリケーションを有するユーザに、ゲーム固有のカスタマイズが適宜なされたコントローラが提示される。コントローラは、標準キーの領域を含んでもよく、両手または片手用の制御部についての標準キーの概念、または、開発者が第2の画面対話モデルを利用するために使用できる領域を有する不可視の制御部についての概念を含んでもよい。
【0006】
記載の実装形態によって、ゲーム開発者用のインフラストラクチャを標準化しつつ、キャスティングデバイスアプリケーションのユーザが、高品質のゲームコントローラを手に
することができる。記載の実装形態は、マルチプレーヤーゲームセッションをセットアップすることをより効率的なものにすることによって、マルチプレーヤーゲームを容易にするという利点がある。
【0007】
いくつかの実装形態によると、1つ以上のプロセッサと、1つ以上のプロセッサによって実行するための1つ以上のプログラムを格納するメモリとを有する電子デバイスにおいて、方法が実行される。方法は、アプリケーションを実行するステップと、実行中のアプリケーションと、アプリケーションに対応付けられたリモートサーバと、セッションからの出力を出力装置に送信するメディアデバイスとの間でセッションを確立するステップを含み、セッションからの出力は、実行中のアプリケーションからの出力を含み、さらに、アプリケーションが実行中でないおよび/またはインストールされていない1つ以上の第2の電子デバイスの第2のユーザに、セッションに対応付けられたセッション識別子を提示するステップを含み、セッション識別子は、第2の電子デバイスがセッションに加わることを容易にし、1つ以上の第2の電子デバイスの第2のユーザがセッションと対話することを可能にするための、1つ以上の第2の電子デバイスの各々の上に実装可能なコントローラ構成を識別する。
【0008】
いくつかの実装形態によると、1つ以上のプロセッサと、1つ以上のプロセッサによって実行するための1つ以上のプログラムを格納するメモリとを有する電子デバイスにおいて、方法が実行される。方法は、第2の電子デバイス上で実行中のアプリケーションと、アプリケーションに対応付けられたリモートサーバとのセッションを確立するために、命令を受信するステップと、受信した命令に応じて、セッションを確立するステップと、セッションに対応付けられたセッション識別子を受信するステップとを含み、セッション識別子は、1つ以上の第3の電子デバイスがセッションに加わることを容易にし、第3の電子デバイスの1人以上のユーザがセッションと対話することを可能にするために、1つ以上の第3の電子デバイスの各々の上で実装可能なコントローラ構成を識別し、さらに、表示するために、セッション識別子を出力装置に送信するステップを含む。
【0009】
いくつかの実装形態によると、電子デバイスは、1つ以上のプロセッサと、1つ以上のプロセッサによって実行される1つ以上のプログラムを格納するメモリとを備える。1つ以上のプログラムは、上述の方法のうちのいずれかを実行するための命令を含む。いくつかの実装形態によると、非一時的なコンピュータ読み取り可能な記憶媒体は、1つ以上のプログラムを格納し、1つ以上のプログラムは、命令を含み、命令は、1つ以上のプロセッサを有する電子デバイスによって実行されると、電子デバイスに、上述の方法のうちのいずれかを実行させる。
【図面の簡単な説明】
【0010】
図1A】いくつかの実装形態に係る、例示的なゲーム環境の図である。
図1B】いくつかの実装形態に係る、別の例示的なゲーム環境の図である。
図2A】いくつかの実装形態に係る、例示的なクライアントデバイスを示すブロック図である。
図2B】いくつかの実装形態に係る、例示的なクライアントデバイスを示すブロック図である。
図3】いくつかの実装形態に係る、例示的なメディアデバイスを示すブロック図である。
図4】いくつかの実装形態に係る、例示的なサーバを示すブロック図である。
図5A】いくつかの実装形態に係る、例示的なユーザインタフェースを示す図である。
図5B】いくつかの実装形態に係る、例示的なユーザインタフェースを示す図である。
図5C】いくつかの実装形態に係る、例示的なゲームコントローラ・インタフェースを示す図である。
図5D】いくつかの実装形態に係る、例示的なゲームコントローラ・インタフェースを示す図である。
図5E】いくつかの実装形態に係る、例示的なゲームコントローラ・インタフェースを示す図である。
図5F】いくつかの実装形態に係る、例示的なゲームコントローラ・インタフェースを示す図である。
図6】いくつかの実装形態に係る、アプリケーションセッションを確立するための例示的な方法を説明するフロー図である。
図7】いくつかの実装形態に係る、セッション識別子を提示するための例示的な方法を説明するフロー図である。
【発明を実施するための形態】
【0011】
図面の全体にわたって、同じ参照番号は、対応する部分を指す。
実装形態の説明
本明細書に記載のさまざまな実装形態において、ゲーム環境は、出力装置に接続されたメディアデバイス(たとえば、キャスティングデバイス)と、メディアデバイスに通信可能に接続された第1のクライアントデバイスとを含む。アプリケーション(たとえば、ゲームアプリケーション)は、第1のクライアントデバイス上で実行される。実行中のアプリケーションと、リモートサーバおよびメディアデバイスとの間でセッションが確立される。セッションの識別子(たとえば、リンク)が、1つ以上の第2のクライアントデバイスのユーザに提示されてもよく、当該ユーザは、セッション識別子を使用してセッションに加わることができる。また、セッションおよびセッション識別子は、第2のクライアントデバイスでのセッションとの対話を容易にするコントローラ構成に対応付けられる。このように、対話型アプリケーションに対応付けられたセッションは、ホストクライアントで開始されてもよく、アプリケーションがインストールされていないクライアントを含む追加のクライアントが、より効率的な方法でセッションに招待または載せられもよい。これに加えて、このように、セッションのための共通の入力インタフェースが、セッション中のホストクライアントおよび追加のクライアントに提供されてもよい。
【0012】
図1Aは、いくつかの実装形態に係る、例示的なゲーム環境100である。ゲーム環境100は、ローカルネットワーク110上に、クライアントデバイス102と、メディアデバイス106とを含む。いくつかの実装形態において、ローカルネットワーク110は、有線(たとえば、イーサネット(登録商標))および/または無線(たとえば、Wi-Fi)通信を使用して、1つ以上のデバイスをネットワーク接続する。たとえば、ローカルネットワーク110は、1つ以上のデバイスをローカルネットワーク110にネットワーク接続するルータ装置を含む。ローカルネットワーク110は、通信ネットワーク112(たとえば、ワイドエリアネットワーク、インターネット)に通信可能に接続される。
【0013】
クライアントデバイス102とメディアデバイス106とは、通信可能に接続される。クライアントデバイス102およびメディアデバイス106は、互いに、ローカルネットワーク110を通して、および/または直接(たとえば、Bluetooth(登録商標)またはその他の無線通信を介して)通信してもよい。いくつかの実装形態において、クライアントデバイス102とメディアデバイス106とは互いにローカルである(たとえば、同じ部屋にある、同じ家にある、など)。メディアデバイス106は、ビジュアルコンテンツおよび/または音声コンテンツを出力できる1つ以上の出力装置108(たとえば、テレビ、ディスプレイモニタ、音響システム、スピーカーなど)に接続される。メディアデバイス106は、出力装置(複数可)108にコンテンツを出力するように構成される。いくつかの実装形態において、メディアデバイス106は、キャスティングデバイ
ス(たとえば、Google Inc.によるCHROMECAST(登録商標))、またはキャスト機能を他の方法で含むデバイスである。
【0014】
クライアントデバイス102は、1つ以上のアプリケーションを含み、それらを実行できるデバイスである。いくつかの実装形態において、クライアントデバイス102は、スマートフォン、タブレットデバイス、ラップトップもしくはノートブックコンピュータ、デスクトップコンピュータ、またはマルチメディアデバイスである。
【0015】
いくつかの実装形態において、クライアントデバイス102は、メディアデバイス106と連動して動作するように構成された1つ以上のアプリケーションを含む。いくつかの実装形態において、アプリケーションは、クライアントデバイス102をメディアデバイス106とペアリングさせ、メディアデバイス106の環境設定を行うためのメディアデバイスアプリケーションを含む。また、アプリケーションは、関連するコンテンツをメディアデバイス106にキャストできる1つ以上のアプリケーションを含む。いくつかの実装形態において、アプリケーションは、メディアデバイス106にデータ/コンテンツを(たとえば、ローカルネットワーク110を介して)直接送ることにより、および/または、メディアデバイス106がデータ/コンテンツをストリーム受信または受信できるリモート・ロケーション(たとえば、Universal Resource Locator(「URL」)または、サーバシステムでのロケーションへの他のリンク)にメディアデバイス106を移動させることによって、メディアデバイス106にデータおよび/またはコンテンツをキャストする。メディアデバイス106は、アプリケーションおよび/またはリモート・ロケーションからデータ/コンテンツを受信し、受信したデータ/コンテンツに対応するビジュアルコンテンツおよび/または音声コンテンツを出力装置108に出力する。
【0016】
ゲーム環境100において、クライアントデバイス102(以下、「ホストクライアント」)のユーザ(以下、「ホストユーザ」)は、ホストクライアント102で実行するためのゲームアプリケーション(たとえば、ゲームアプリケーション228、図2A)を起動することによって、ゲームを開始できる。ゲームアプリケーションを実行することによって、サーバ114と通信し、サーバ114でゲームセッション116を確立する。また、いくつかの実装形態において、ユーザは、出力するためのゲームセッションに対応付けられたデータを受信するようメディアデバイス106に指図するために、ゲームアプリケーションにメディアデバイス106と通信するように指示できる。このように、ゲームアプリケーションと、リモートサーバ114と、メディアデバイス106との間にセッション116が確立される。
【0017】
ホストユーザは、別のプレーヤーをゲームに加わるように招待できる。セッション116の識別子が、1つ以上のクライアントデバイス104(以下、「プレーヤークライアント(複数可)」)のユーザ(以下、「プレーヤーユーザ(複数可)」)に提示されてもよい。いくつかの実装形態において、セッション識別子は、インターネットリンク(たとえば、ショートURL)であるか、インターネットリンクを含む。いくつかの実装形態において、セッション識別子は、メディアデバイス106を通して出力装置108上に出力される。たとえば、セッション識別子は、メディアデバイス106に接続されたディスプレイに表示される。セッション識別子は、メディアデバイス106によって、ホストクライアント102またはサーバ114から受信される。その他のいくつかの実装形態において、セッション識別子は、メッセージに含めて(たとえば、テキストメッセージに含めて)プレーヤークライアント104に送られる。いくつかのさらなる実装形態において、セッション識別子は、通知メッセージ(たとえば、スマートフォンの通知)に含めて、プレーヤークライアント104上に提示される。たとえば、1つ以上のプレーヤークライアント104がホストクライアント102のローカルな場所にある(たとえば、同じ部屋にある
)と判定された場合、これらのプレーヤークライアント104にセッション識別子が送信されてもよい。プレーヤークライアント104は、セッションに加わるための招待をプレーヤーユーザに知らせる通知を表示する。プレーヤーユーザが通知を開いた場合、プレーヤーユーザは、通知からセッション識別子に直接アクセスする、またはセッション識別子を表示するアフォーダンスを実行する(たとえば、別のアプリケーションにおいて)ことができる。
【0018】
セッション識別子は、セッション116に加わるために、プレーヤークライアント104で使用されてもよい。いくつかの実装形態において、セッション識別子は、セッション116のリンク(たとえば、Universal Resource Locator(「URL」))である。リンクまたはリンクをコード化したもの(たとえば、QRコード(登録商標))が出力装置108によって表示されてもよく、または、メッセージに含めてプレーヤーデバイス104に送られてもよい。
【0019】
プレーヤークライアント104でセッション識別子が使用された(たとえば、セッション識別子リンクが実行された)とき、プレーヤークライアント104は、セッション116に加わるために、サーバ114と通信する。プレーヤークライアント104がセッション116に加わった後、プレーヤーユーザは、ホストユーザと一緒にゲームをすることができる、つまり、セッション116の出力に影響を与える入力を行うことができる。
【0020】
いくつかの実装形態において、プレーヤークライアント104がホストクライアント102のローカルネットワーク110上にすでにある(たとえば、接続120を通してローカルネットワークに接続されている)場合、サーバ114とプレーヤークライアント104との間の通信は、ローカルネットワーク110を経由する。プレーヤークライアント104がホストクライアント102のローカルネットワーク110上にない場合、サーバ114とプレーヤークライアント104との間の通信は、別の接続(たとえば、セルラデータネットワークを通した接続118)を経由する。
【0021】
いくつかの実装形態において、プレーヤークライアント104がセッション116に加わる処理の一部として、サーバ114は、プレーヤークライアント104の能力、および/またはサーバ114とプレーヤークライアント104との間の通信可能な接続の品質を評価する。いくつかの実装形態において、サーバ114は、クライアント104とサーバ114との間のネットワークレイテンシを計測する。計測されたレイテンシが閾値を上回り、より低いレイテンシの接続が利用可能である場合、サーバ114は、プレーヤークライアント104がより低いレイテンシの接続に変更することを提案する、または、より低いレイテンシの接続にプレーヤークライアント104を変更するようにプレーヤークライアント104のプレーヤーユーザを招待することができる。たとえば、プレーヤークライアント104がセルラ無線接続118上にあり、ホストユーザのローカルネットワーク110が利用可能である場合、サーバ114は、プレーヤークライアント104はローカルネットワーク110を通じて接続したほうがよいと提案できる。
【0022】
いくつかの実装形態において、レイテンシの閾値要件は、ゲーム間で異なる。たとえば、より低いレイテンシの接続上で体験するのが一番良いゲーム(たとえば、アクションゲーム)もあれば、レイテンシに関する要求があまり厳しくない他のゲーム(たとえば、オンラインのボードゲームまたはカードゲーム)もあり、サーバ114は、これらの異なる要件を考慮して、接続の推奨を行ってもよい。
【0023】
いくつかの実装形態において、サーバ114は、プレーヤークライアント104をより低いレイテンシの接続(たとえば、ローカルネットワーク110)に招待する、または、より低いレイテンシの接続へのプレーヤークライアント104の接続を容易にする。たと
えば、サーバ114は、ローカルネットワーク110へのアクセス認証情報(たとえば、Wi-Fiユーザ名およびローカルネットワーク110のルータのパスワード)を提示できる、または、提示するようにホストクライアント102またはメディアデバイス106に指図できる。いくつかの実装形態において、アクセス認証情報は、期間限定(たとえば、セッション116の期間のみ、当日のみなど)、および/またはセッション限定である。
【0024】
プレーヤークライアント104がセッション116に加わることの一部として、サーバ114は、プレーヤークライアント104と通信し、プレーヤークライアント104上にコントローラをセットアップする。いくつかの実装形態において、これは、プレーヤークライアント104がコントローラ用に必要なリソースを有するかどうかをサーバ114が評価することを含み、評価には、プレーヤークライアント104が仮想コントローラを実現するために必要なアプリケーションを有するかどうか、および/またはプレーヤークライアント104とサーバ114との間の通信可能な接続がゲームセッションにとって適切なレイテンシを有するかどうかを含む(たとえば、上記能力および接続品質評価の一部として)。プレーヤークライアント104で利用可能なリソース、接続品質、およびゲームについての要件によっては、コントローラは、プレーヤークライアント104において違った形で実現されてもよい。
【0025】
いくつかの実装形態において、標準コントローラは、ゲームに固有でないまたはゲームに直接対応付けられていない既定のアプリケーション(たとえば、Google Inc.によるCHROMECAST(登録商標)またはGOOGLE CASTなどのキャスティングデバイスアプリケーション、またはその他のメディアデバイスアプリケーション)において実現される、または、プレーヤークライアント104のオペレーティングシステムにおいて実現される。たとえば、プレーヤークライアント104上のデバイスオペレーティングシステムまたは既定のアプリケーションは、コントローラ・サブモジュールを有してもよい。コントローラ・サブモジュールは、1つ以上の標準コントローラ構成、テンプレートなどを含む。標準コントローラ構成の各々によって、仮想コントローラを実現するためにプレーヤークライアント104上の入力装置および/またはセンサを何らかの方法で利用するためにコントローラ・サブモジュールの環境設定を行う。どの標準コントローラ構成を使用するかは、ゲームによって、および/またはプレーヤークライアント104の種類によって異なり得る。たとえば、プレーヤークライアント104がタッチスクリーンを有するモバイル機器である場合、モバイル機器に表示されてタッチスクリーンを利用する仮想コントローラパッドを実現する、標準コントローラ構成が使用される。仮想コントローラパッドは、仮想ボタン、仮想方向パッド、および/または仮想ジョイスティックを含んでもよい、別の例として、プレーヤークライアント104が、物理キーボードを有するラップトップまたはデスクトップコンピュータである場合、物理キーボードのキーをコントローラ機能にマッピングする標準コントローラ構成が使用されてもよい。さらなる例として、センサー(たとえば、加速度計)を備える、プレーヤークライアント104の動きを入力として使用するゲーム用のプレーヤークライアント104については、タッチスクリーン上に、必要であれば、プレーヤークライアント104を1つ以上の仮想ボタンが表示されたモーションコントローラに変える、標準コントローラ構成が使用される。
【0026】
標準コントローラ構成は、複数のゲームによって使用されてもよく、その標準コントローラ構成を使用する互いに異なるゲーム間で同じである。セッション116に加わる処理の一部として、プレーヤークライアント104は、どの標準コントローラ構成を使用するかについて指示される。さらに、標準コントローラ構成は、ホストクライアント102上で使用されてもよい。
【0027】
いくつかの実装形態において、ゲームは、コントローラ・サブモジュール上で実装され得る固有のコントローラ構成を有する。ホストクライアント102がセッション106を開始し、プレーヤークライアント104がセッション116に加わる処理の一部として、このような構成は、サーバ114に格納され、ホストクライアント102およびプレーヤークライアント104に送信されてもよい。固有の構成は、後で利用するために、ホストクライアント102および/またはプレーヤークライアント104において格納またはキャッシュされてもよい。固有のコントローラ構成は、コントローラ・サブモジュールに適用されてもよく、コントローラ・サブモジュールは、固有のコントローラ構成にとっての空白のキャンバスとして作用する。いくつかの実装形態において、固有のコントローラ構成は、完全にカスタムされたコントローラ、または標準コントローラとカスタムコントローラもしくはカスタム領域との組み合わせとすることができる。
【0028】
いくつかの実装形態において、ゲームは、ゲームに対応付けられた固有のアプリケーションを必要とする。たとえば、ゲームは、特にゲームに対応付けられたコントローラアプリケーションを必要としてもよい。
【0029】
いくつかの実装形態において、プレーヤークライアント104は、セッション116に加わることの一部として、固有のアプリケーションまたは既定のアプリケーションをダウンロードするよう指図されてもよい。たとえば、プレーヤークライアント104が、既定のアプリケーション(コントローラ・サブモジュールを有する)またはゲームに対応付けられた固有のアプリケーションをまだ有しておらず、このようなアプリケーションがプレーに必要である場合、サーバ114は、ダウンロードが必要であるというプロンプトをプレーヤーユーザに示し、続行するための許可をプレーヤーユーザに求めるよう、プレーヤークライアント104に指示する。
【0030】
いくつかの実装形態において、ウェブページベースのコントローラインタフェースを用いてゲームをすることができる。たとえば、ゲーム用のコントローラインタフェースがウェブページに埋め込まれていてもよく、ウェブページがプレーヤークライアント104(および/またはホストクライアント102)上のウェブブラウザにレンダリングされる。次に、プレーヤーユーザは、ウェブページのコントローラインタフェースと対話できる。ウェブページベースの制御インタフェースがセッション116用に最適のコントローラである場合、サーバ114は、プレーヤークライアント104がセッションに加わったときに、制御インタフェースウェブページをプレーヤークライアント104に送信する。
【0031】
いくつかの実装形態において、ゲームセッション116にどのコントローラが使用されるかは、ゲームの仕様および/またはクライアント102/104で利用可能なリソースに基づく。たとえば、ゲーム固有のアプリケーションがダウンロードされることをゲームが必要とする場合、プレーヤークライアント104は、アプリケーションの存在についてチェックされ、アプリケーションが存在しない場合、ダウンロードするよう促すプロンプトが送られる。ゲームがゲーム固有のアプリケーションを必要としない代わりに、コントローラ・サブモジュールの標準コントローラ構成またはコントローラテンプレートを利用する場合、プレーヤークライアント104は、コントローラ・サブモジュールの存在についてチェックされ、コントローラ・サブモジュールが存在しない場合、ダウンロードするよう促すプロンプトが(たとえば、アプリケーションにおいてまたはオペレーティングシステム更新時に)送られる。コントローラ・サブモジュールが存在する場合、コントローラ構成またはテンプレート(たとえば、ゲーム固有のカスタムテンプレート、どの標準コントローラ構成を使用するかについての指示)がプレーヤークライアント104に送信される。さらなる例として、ゲームが、標準コントローラ構成またはウェブページベースのインタフェースのいずれかを使用でき、低レイテンシ制御を必要としない場合、コントローラ・サブモジュールが存在しないのであれば、追加のダウンロードを回避するために、
ウェブページベースのインタフェースを使用してもよい。
【0032】
いくつかの実装形態において、上述したように、プレーヤークライアント104とサーバ114との間の通信可能な接続の品質がチェックされる。たとえば、レイテンシに関する要件がゲームにあり、セルラデータネットワークを介した接続がその要件を満たさない場合、より高品質の接続(たとえば、ローカルエリアネットワーク接続)に切り替えるよう促すプロンプトが送信されてもよい。たとえば、プレーヤークライアント104がセルラデータネットワークを通して接続しており(118)、その接続118がゲームにとって高すぎるレイテンシを有する場合、プレーヤークライアント104をローカルネットワークを通した接続に切り替えるようにプレーヤーユーザを促してもよい。プレーヤークライアント104がホストクライアント102と同じ場所にある(たとえば、同じ部屋にある)場合、プレーヤークライアント104は、ホストクライアント102と同じローカルネットワーク110に接続できる(120)。いくつかの実装形態において、メディアデバイス106またはホストクライアント102、または、ローカルネットワーク110用のルータでさえも、ローカルネットワーク110(たとえば、ローカルネットワーク11のルータのWi-Fi認証情報)に加わるための認証情報をプレーヤークライアント104に定要するよう、サーバ114に指示される。これらの認証情報は、たとえば、出力装置108上に表示され(プレーヤーユーザが、認証情報を手動で入力する、または認証情報をコード化したコードをスキャンする)、または、プレーヤークライアント104に送られてもよい。これらの認証情報は、たとえば、セッションごと、1日、またはセッション限定および/もしくは期間限定など、一時的であってもよい。
【0033】
プレーヤークライアント104がセッション116に加わり、適切なコントローラ構成を受信した後、プレーヤーユーザは、プレーヤークライアント104上でゲームをして、ゲームセッション116からの出力に影響を与えることができる。
【0034】
図1Bは、いくつかの実装形態に係る、別の例示的なゲーム環境130を示す図である。多くの点において、ゲーム環境130は、ゲーム環境100と同様である。クライアント102と同様に、クライアント132は、ホストユーザのホストクライアントである。ゲーム環境130では任意であるメディアデバイス136は、メディアデバイス106と同様である。出力装置138は、出力装置108と同様である。クライアント(複数可)104と同様に、クライアント(複数可)134は、プレーヤーユーザ(複数可)のプレーヤークライアント(複数可)である。サーバ144は、サーバ114と同様であり、ネットワーク112と同様である1つ以上の通信ネットワーク148を通じて、クライアントデバイスおよびその他のデバイスと通信する。セッション146は、セッション116と同様であり、ホストクライアント132が、まず、サーバ144とのセッション146を確立し、プレーヤークライアント134がセッション146に加わる。
【0035】
ゲーム環境130において、ホストクライアント132(および、メディアデバイス136および出力装置138)は、プレーヤークライアント134から離れており、プレーヤーユーザは、ホストユーザから離れている。つまり、プレーヤークライアント134は、ホストクライアント134と同じ場所に(たとえば、同じ部屋、それどころか、同じ建造物に)位置しない。図1Aの場合のように、ホストクライアント132で実行するためのゲームアプリケーション(たとえば、ゲームアプリケーション228、図2A)を起動することによって、ゲームが開始されてもよい。ゲームアプリケーションを実行することによって、サーバ146とのセッション146が確立される。プレーヤークライアント134は、セッション146に加わるようにメッセージによって招待され、セッションに加わるためのリンクが付いたメッセージがプレーヤークライアント134に送られる。セッション146に加わるプレーヤークライアント134に、適切なコントローラ構成が提供される。また、いくつかの実装形態において、サーバ144は、プレーヤークライアント
(複数可)134がホストクライアント132に対してローカルではないと判定し、ホストクライアント132のローカルネットワークに接続するための認証情報のプレーヤークライアント(複数可)134への提供を促すまたは容易にすることを省いて、その代わりに、必要であれば、利用可能なローカルネットワークに接続するようにプレーヤークライアント(複数可)134を促す。
【0036】
図2Aは、いくつかの実装形態に係る、ゲーム環境100の例示的なホストクライアント102を示すブロック図である。クライアントデバイス102として、携帯電話、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、およびウェアラブルパーソナルデバイスなどがあるが、これらに限定されない。クライアントデバイス102は、通常、1つ以上の処理装置(CPU)202と、1つ以上のネットワークインタフェース204と、メモリ206と、これらのコンポーネント(チップセットと呼ばれることがある)を相互に接続するための1つ以上の通信バス208とを備える。クライアントデバイス102は、キーボード、マウス、ボイスコマンド入力部もしくはマイクロホン、タッチスクリーンディスプレイ、タッチ入力パッド、ジェスチャーキャプチャーカメラ、またはその他の入力ボタンもしくは制御部など、ユーザ入力を容易にする1つ以上の入力装置210を含む。さらに、クライアントデバイス102のうちのいくつかは、キーボードを補助または置き換えるために、マイクロホンおよび音声認識、またはカメラおよびジェスチャー認識を使用する。いくつかの実装形態において、クライアントデバイス102は、たとえば、電子デバイス上にプリントされた図形シリーズコードを撮影するための1つ以上のカメラ、スキャナ、または光センサ部を備える。また、クライアントデバイス102は、1つ以上のスピーカーおよび/または1つ以上の表示装置を含む、ユーザインタフェースの提示を可能にし、コンテンツを表示する、1つ以上の出力装置212を備える。必要であれば、クライアントデバイス102は、クライアントデバイス102の位置を特定するための、GPS(Global Positioning Satellite)またはその他の地理的位置受信機など、位置検出デバイス214を備える。また、クライアントデバイス102は、メディアデバイス106の近接度および/またはプレーヤークライアント104の近接度を判定するための近接度検出デバイス215、たとえば、IRセンサを備えてもよい。また、クライアントデバイス102は、入力として使用され得るクライアントデバイス102の動き、向き、およびその他のパラメータを検知するための1つ以上のセンサ213(たとえば、加速度計、ジャイロスコープなど)を備えてもよい。
【0037】
メモリ206は、DRAM、SRAM、DDR RAMなどの高速ランダムアクセスメモリ、またはその他のランダムアクセス固体記憶装置を含み、必要であれば、1つ以上の磁気ディスク記憶装置、1つ以上の光学ディスク記憶装置、1つ以上のフラッシュメモリデバイスなどの不揮発性メモリ、または1つ以上のその他の不揮発性固体記憶装置を含む。メモリ206は、必要であれば、1つ以上の処理装置202から離れて位置する1つ以上の記憶装置を含む。メモリ206、またはメモリ206内の不揮発性メモリは、非一時的なコンピュータ読み取り可能な記憶媒体を含む。いくつかの実装形態において、メモリ206、またはメモリ206の非一時的なコンピュータ読み取り可能な記憶媒体は、以下のプログラム、モジュール、およびデータ構造、またはそれらのサブセットもしくはスーパーセットを格納する。
【0038】
●さまざまな基本のシステムサービスを処理するため、およびハードウェア依存のタスクを実行するためのプロシージャを含むオペレーティングシステム216。
【0039】
●1つ以上のネットワークインタフェース204(有線または無線)およびローカルネットワーク110、ならびに、インターネット、その他のワイドエリアネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの1つ以上のネット
ワーク112を介してクライアントデバイス102をその他のデバイス(たとえば、サーバシステム114、メディアデバイス106、およびプレーヤークライアント104)に接続するためのネットワーク通信モジュール218。
【0040】
●1つ以上の出力装置212(たとえば、ディスプレイ、スピーカーなど)を介してクライアントデバイス102で情報の提示を可能にするためのユーザインタフェースモジュール220(たとえば、アプリケーション、ウィジェット、ウェブサイトおよびそのウェブページ、ならびに/またはゲーム、音声および/もしくは映像コンテンツ、テキストなどを提示するためのグラフィカルユーザインタフェース)。
【0041】
●1つ以上の入力装置210のうちの1つから1つ以上のユーザ入力または対話を検出するための、および検出された入力または対話を解釈するための入力処理モジュール222。
【0042】
●セッション116に加わるためのウェブインタフェースを含む、ウェブサイトおよびそのウェブページを移動、要求(たとえば、HTTPを介して)、および表示するためのウェブブラウザ・モジュール224。
【0043】
●メディアデバイス106と対話するためのメディアデバイスアプリケーション226。対話することは、メディアデバイス106に対応付けられたユーザアカウントにログインすることと、ユーザアカウントに対応付けられている場合、メディアデバイス106を制御することと、メディアデバイス106に対応付けられた設定およびデータを編集および見直すこととを含む。
【0044】
●クライアントデバイス102上にゲーム(複数可)を提供するためのゲームアプリケーション(複数可)228。提供することは、対応するゲームプレーを容易にすることと、別のプレーヤーの招待を容易にすることとを含む。
【0045】
●ゲームアプリケーション(複数可)228にゲームプレー入力インタフェースを提供するためのゲームコントローラモジュール230。
【0046】
●サーバ114、ならびにその他のコンテンツのホストおよびその他のプロバイダからデータ(たとえば、ゲームコントローラ構成438(図4)、ゲームアプリケーション228およびその他のアプリケーション、モジュール、アプリケーション、およびメモリ206内のデータに対するアップデート)をダウンロードするためのデータダウンロードモジュール231。
【0047】
●少なくとも以下を含む、ゲームアプリケーション228およびその他のアプリケーション/モジュールに対応付けられたデータを格納するクライアントデバイスデータ232。
【0048】
○共通のデバイス設定(たとえば、サービス階層、デバイスモデル、記憶容量、処理能力、通信能力など)を含む、クライアントデバイス102自体に対応付けられた情報を格納するためのクライアントデバイス設定234。
【0049】
○アカウントアクセス情報およびデバイス設定に関する情報(たとえば、サービス階層、デバイスモデル、記憶容量、処理能力、通信能力など)のうちの1つ以上を含む、メディアデバイスアプリケーション226のユーザアカウントに対応付けられた情報を格納するためのメディアデバイス設定236。
【0050】
○アカウントアクセス情報、ゲーム内のユーザ設定、ゲームプレー履歴データ、および他のプレーヤーについての情報、のうちの1つ以上を含む、ゲームアプリケーション(複数可)228のユーザアカウントに対応付けられた情報を格納するためのゲームアプリケーション(複数可)設定238。
【0051】
○ゲームアプリケーション(複数可)228用のゲームコントローラモジュール230の構成(たとえば、ゲームコントローラ構成438から受信した構成、図4)に対応付けられた情報を格納するためのゲームコントローラ構成(複数可)240。
【0052】
○クライアントデバイス102、メディアデバイス106、およびプレーヤークライアント(複数可)104のうちのいずれかの存在、近接度、または位置に対応付けられた情報を含む位置/近接度データ242。
【0053】
いくつかの実装形態において、ゲームコントローラモジュール230は、メモリ206内のメディアデバイスアプリケーション226または別のアプリケーションの一部(たとえば、サブモジュール)である。その他のいくつかの実装形態において、ゲームコントローラモジュール230は、オペレーティングシステム216の一部である。いくつかのさらなる実装形態において、ゲームコントローラモジュール230は、別個のモジュールまたはアプリケーションである。
【0054】
上記構成要素の各々は、前述の記憶装置のうちの1つ以上に格納されてもよく、上述の機能を実行するための命令セットに対応する。上記モジュールまたはプログラム(つまり、命令セット)は、別々のソフトウェアプログラム、プロシージャ、モジュール、またはデータ構造として実装される必要がないため、これらのモジュールのさまざまなサブセットは、さまざまな実装形態において、組み合わされるまたは並べ替えられてもよい。いくつかの実装形態において、メモリ206は、必要であれば、上記モジュールおよびデータ構造のサブセットを格納する。さらに、メモリ206は、必要であれば、上に記載されない追加のモジュールおよびデータ構造を格納する。
【0055】
図2Bは、いくつかの実装形態に係る、ゲーム環境100の例示的なプレーヤークライアント104を示すブロック図である。プレーヤークライアント104は、ホストクライアント102と同様であり、プレーヤークライアント104は、ホストクライアント102と同様のコンポ―ネント、モジュール、およびデータを有する。しかしながら、プレーヤークライアント104では、メディアデバイスアプリケーション226(それに応じて、メディアデバイス設定236)およびゲームアプリケーション228(それに応じて、ゲームアプリケーション設定238)は、任意である。プレーヤークライアント104が加わるように招待される特定のゲームによっては、メディアデバイスアプリケーション226およびゲームアプリケーション228は、プレーに必要ではない。これらのアプリケーションのうちのいずれかがゲームをするために必要であり(たとえば、ゲームがメディアデバイスアプリケーション226内のゲームコントローラモジュール230を使用する)、アプリケーションがメモリ206にない場合、プレーヤークライアント104は、アプリケーションをダウンロードするように促されてもよい。
【0056】
図3は、いくつかの実装形態に係る、ゲーム環境100の例示的なメディアデバイス106を示すブロック図である。メディアデバイス106は、通常、1つ以上の処理装置(CPU)302と、1つ以上のネットワークインタフェース304と、メモリ306と、これらのコンポーネント(チップセットと呼ばれることがある)を相互に接続するための1つ以上の通信バス308とを備える。必要であれば、メディアデバイス106は、クライアントデバイス102または104の近接度を判定するための、IRセンサなどの近接度/位置検出部310を備える。
【0057】
メモリ306は、DRAM、SRAM、DDR RAMなどの高速ランダムアクセスメモリ、またはその他のランダムアクセス固体記憶装置を含み、必要であれば、1つ以上の磁気ディスク記憶装置、1つ以上の光学ディスク記憶装置、1つ以上のフラッシュメモリデバイスなどの不揮発性メモリ、または1つ以上のその他の不揮発性固体記憶装置を含む。メモリ306は、必要であれば、1つ以上の処理装置302から離れて位置する1つ以上の記憶装置を含む。メモリ306、またはメモリ306内の不揮発性メモリは、非一時的なコンピュータ読み取り可能な記憶媒体を含む。いくつかの実装形態において、メモリ306、またはメモリ306の非一時的なコンピュータ読み取り可能な記憶媒体は、以下のプログラム、モジュール、およびデータ構造、またはそれらのサブセットもしくはスーパーセットを格納する。
【0058】
●さまざまな基本のシステムサービスを処理するため、およびハードウェア依存のタスクを実行するためのプロシージャを含むオペレーティングシステム316。
【0059】
●1つ以上の処理装置304(有線または無線)、および、インターネット、その他のワイドエリアネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、ケーブルテレビシステム、衛星テレビシステム、IPTVシステムなどの1つ以上のネットワーク112を介してメディアデバイス106をその他のコンピュータまたはシステム(たとえば、サーバシステム114、およびクライアントデバイス102))に接続するためのネットワーク通信モジュール318。
【0060】
●1つ以上のコンテンツソース(たとえば、ゲームセッション116からの出力のためのサーバ114)から受信したコンテンツ信号を復号化し、復号化された信号に含まれるコンテンツを、メディアデバイス106に接続された出力装置108に出力するためのコンテンツ復号化モジュール320。
【0061】
●近接度検出部310によって検出されるまたはサーバシステム114によって提供される近接度関連情報に基づいて、クライアントデバイス102および/または104の近接度を特定するための近接度/位置特定モジュール322。
【0062】
●メディア表示を制御するためのメディア表示モジュール324。
●少なくとも以下を含むデータを格納するメディアデバイスデータ326。
【0063】
○アカウントアクセス情報およびデバイス設定に関する情報(たとえば、サービス階層、デバイスモデル、記憶容量、処理能力、通信能力など)のうちの1つ以上を含む、メディアデバイスアプリケーションのユーザアカウントに対応付けられた情報を格納するためのメディアデバイス設定328。
【0064】
○クライアントデバイス102および/または104、ならびにメディアデバイス106、のうちのいずれかの存在、近接度、または位置に対応付けられた情報を含む位置/近接度データ330。
【0065】
上記構成要素の各々は、前述の記憶装置のうちの1つ以上に格納されてもよく、上述の機能を実行するための命令セットに対応する。上記モジュールまたはプログラム(つまり、命令セット)は、別々のソフトウェアプログラム、プロシージャ、モジュール、またはデータ構造として実装される必要がないため、これらのモジュールのさまざまなサブセットは、さまざまな実装形態において、組み合わされるまたは並べ替えられてもよい。いくつかの実装形態において、メモリ306は、必要であれば、上記モジュールおよびデータ構造のサブセットを格納する。さらに、メモリ306は、必要であれば、上に記載されな
い追加のモジュールおよびデータ構造を格納する。
【0066】
図4は、いくつかの実装形態に係る、ゲーム環境100のサーバシステム114における例示的なサーバを示すブロック図である。サーバ114は、通常、1つ以上の処理装置(CPU)402と、1つ以上のネットワークインタフェース404と、メモリ406と、これらのコンポーネント(チップセットと呼ばれることがある)を相互に接続するための1つ以上の通信バス408とを備える。サーバ114は、必要であれば、キーボード、マウス、ボイスコマンド入力部もしくはマイクロホン、タッチスクリーンディスプレイ、タッチ入力パッド、ジェスチャーキャプチャーカメラ、またはその他の入力ボタンもしくは制御部など、ユーザ入力を容易にする1つ以上の入力装置410を含む。さらに、サーバ114は、キーボードを補助または置き換えるために、マイクロホンおよび音声認識、またはカメラおよびジェスチャー認識を使用してもよい。いくつかの実装形態において、サーバ114は、必要であれば、たとえば、電子デバイス上にプリントされた図形シリーズコードを撮影するための1つ以上のカメラ、スキャナ、または光センサ部を備える。また、サーバ114は、1つ以上のスピーカーおよび/または1つ以上の表示装置を含む、ユーザインタフェースの提示を可能にし、コンテンツを表示する、1つ以上の出力装置412を含んでもよい。
【0067】
メモリ406は、DRAM、SRAM、DDR RAMなどの高速ランダムアクセスメモリ、またはその他のランダムアクセス固体記憶装置を含み、必要であれば、1つ以上の磁気ディスク記憶装置、1つ以上の光学ディスク記憶装置、1つ以上のフラッシュメモリデバイスなどの不揮発性メモリ、または1つ以上のその他の不揮発性固体記憶装置を含む。メモリ406は、必要であれば、1つ以上の処理装置402から離れて位置する1つ以上の記憶装置を含む。メモリ406、またはメモリ406内の不揮発性メモリは、非一時的なコンピュータ読み取り可能な記憶媒体を含む。いくつかの実装形態において、メモリ406、またはメモリ406の非一時的なコンピュータ読み取り可能な記憶媒体は、以下のプログラム、モジュール、およびデータ構造、またはそれらのサブセットもしくはスーパーセットを格納する。
【0068】
●さまざまな基本のシステムサービスを処理するため、およびハードウェア依存のタスクを実行するためのプロシージャを含むオペレーティングシステム416。
【0069】
●1つ以上のネットワークインタフェース404(有線または無線)、および、インターネット、その他のワイドエリアネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの1つ以上のネットワーク112を介してサーバシステム114をその他のデバイス(たとえば、サーバシステム114におけるさまざまなサーバ、クライアントデバイス102および/または104、ならびにメディアデバイス108)に接続するためのネットワーク通信モジュール418。
【0070】
●クライアントデバイス102および/または104で情報の提示を可能にするためのユーザインタフェースモジュール420(たとえば、アプリケーション(複数可)、ウィジェット、ウェブサイトおよびそのウェブページ、ならびに/またはゲーム、音声および/もしくは映像コンテンツ、テキストなどを提示するためのグラフィカルユーザインタフェース)。
【0071】
●デバイスプロビジョニング、デバイス制御、およびメディアデバイス(複数可)106に対応付けられたユーザアカウント管理のためのサーバ側機能を提供するために実行されるメディアデバイスモジュール422(任意)。
【0072】
●クライアントデバイス102および/または104ならびにメディアデバイス106
、のうちのいずれかの位置情報に基づいて、メディアデバイス106に対するクライアントデバイス102および/または104の近接度を特定するための近接度/位置特定モジュール428。
【0073】
●ゲーム(たとえば、ゲームアプリケーション(複数可)228)に対応付けられたサーバ側機能を提供するためのゲームサーバモジュール426。提供することは、ゲームセッション440をセットアップすることと、ゲーム状態データおよびその他のゲーム関連データを格納することと、クライアントデバイス102および104からのゲームプレー入力を処理することと、ゲームプレー出力をレンダリングすることとを含むが、これらに限定されない。
【0074】
●クライアントデバイス102および/または104のデバイス機能およびネットワーク機能を評価するためのデバイス/ネットワーク評価モジュール428。評価することは、クライアントデバイス102/104への接続のネットワーク帯域幅を評価することと、クライアントデバイス102/104がゲームをするのに必要なモジュールまたはアプリケーションを有するかどうかを評価することとを含むが、これらに限定されない。
【0075】
●クライアントデバイス102/104にデータ(たとえば、ゲームコントローラ構成438、ソフトウェア更新など)を提供するためのデータ送信モジュール429。
【0076】
●サーバシステムデータ430は、以下を含む。
○共通のデバイス設定(たとえば、サービス階層、デバイスモデル、記憶容量、処理能力、通信能力など)を含む、クライアントデバイス102および104に対応付けられた情報を格納するためのクライアントデバイス設定432。
【0077】
○アカウントアクセス情報およびデバイス設定に関する情報(たとえば、サービス階層、デバイスモデル、記憶容量、処理能力、通信能力など)のうちの1つ以上を含む、メディアデバイスアプリケーション422のユーザアカウントに対応付けられた情報を格納するためのメディアデバイス設定434(任意)。
【0078】
○クライアントデバイス102および/または104、ならびにメディアデバイス106、のうちのいずれかの存在、近接度、または位置に対応付けられた情報を含む位置/近接度データ436。
【0079】
○さまざまなゲーム用のコントローラ構成を格納するためのゲームコントローラ構成438。
【0080】
○たとえば、第1のゲームセッション用のデータ440-1および第2のゲームセッション用のデータ440-2を含む、ゲームセッションに対応付けられたデータ(たとえば、ゲーム状態データ、その他のゲーム関連データ)を格納するためのゲームセッションデータ440。
【0081】
上記構成要素の各々は、前述の記憶装置のうちの1つ以上に格納されてもよく、上述の機能を実行するための命令セットに対応する。上記モジュールまたはプログラム(つまり、命令セット)は、別々のソフトウェアプログラム、プロシージャ、モジュール、またはデータ構造として実装される必要がないため、これらのモジュールのさまざまなサブセットは、さまざまな実装形態において、組み合わされるまたは並べ替えられてもよい。いくつかの実装形態において、メモリ406は、必要であれば、上記モジュールおよびデータ構造のサブセットを格納する。さらに、メモリ406は、必要であれば、上に記載されない追加のモジュールおよびデータ構造を格納する。
【0082】
図5A図5Bは、いくつかの実装形態に係る、プレーヤーをゲームセッションに招待するための例示的なユーザインタフェースを示す図である。図5Aは、ホストクライアント(たとえば、クライアントデバイス102)に表示されたユーザインタフェース500を示す図である。いくつかの実装形態において、ユーザインタフェース500は、ゲームアプリケーション228のユーザインタフェースである。ユーザインタフェース500は、ホストユーザによる、1つ以上のプレーヤーユーザのゲームセッションへの招待を容易にする。ユーザインタフェース500は、ゲームセッションに対応付けられたリンク(たとえば、ショートリンク512、図5B、ショートリンクをQRコードにコード化したもの)をメディアデバイス(たとえば、メディアデバイス106)に送らせるためのアフォーダンス502を含む。次に、メディアデバイスは、表示するために、リンクを出力装置(たとえば、出力装置108)に出力する。また、ユーザインタフェース500は、ホストユーザがゲームセッションに招待したいプレーヤーユーザのプレーヤークライアント104に、ゲームセッションに対応付けられたリンクをメッセージ(たとえば、テキストメッセージ)に含めて送信するためのアフォーダンス504を含む。ホストユーザは、状況に応じて、プレーヤーユーザを招待するためのアフォーダンス502または504のいずれかを選択してもよい。たとえば、プレーヤーユーザがホストユーザと同じ部屋にいる場合、ホストユーザは、プレーヤーユーザが自身のプレーヤークライアント104に入力(たとえば、仮想キーボードを用いて入力)できるように、ゲームセッションリンクを表示させるためのアフォーダンス502を選択してもよい。プレーヤーユーザがホストユーザから離れている場合、または、リンクを入力することが不便である場合、リンクは、メッセージに含めてプレーヤークライアント(複数可)104に送られてもよい。
【0083】
図5Bは、メディアデバイス106に接続された出力装置108(たとえば、テレビ、コンピュータモニタ)に表示されたユーザインタフェース510を示す図である。ユーザインタフェース510は、表示されるショートリンク512を含む。ユーザインタフェース510(および、ショートリンク512)は、アフォーダンス502の実行に応じて表示され、ショートリンク512は、メディアデバイス106に送信される。メディアデバイス106は、ユーザインタフェース510を生成し、ショートリンク512をユーザインタフェース510に挿入し、ショートリンク512を含むユーザインタフェース510を、表示するために、出力装置108に出力する。ショートリンク512は、(プレーヤーユーザ(複数可)がプレーヤークライアント(複数可)のウェブブラウザ・モジュールに入力する)テキストリンクとして、また、プレーヤークライアント(複数可)がプレーヤーユーザの指図でスキャンし得るバーコードとして表示されてもよい。
【0084】
図5C図5Fは、いくつかの実装形態に係る、例示的なゲームコントローラ構成を示す図である。図5Cは、クライアントデバイス(たとえば、ホストクライアント102、プレーヤークライアント104)に表示されたコントローラインタフェース520を示す図である。コントローラインタフェース520は、標準コントローラ領域522を含む。標準コントローラ領域522は、仮想方向パッド524と、仮想ボタン526とを含む。コントローラインタフェース520では、ユーザは、物理的なゲームコントローラを把持しているかのようにクライアントデバイスを把持し、物理的なゲームコントローラ上の方向パッドおよびボタンを操作しているかのように仮想方向パッド524および仮想ボタン526と対話する。いくつかの実装形態において、コントローラインタフェース520は、ゲームコントローラモジュール230に適用可能なそれぞれのゲームコントローラ構成438に対応付けられており、複数のゲームによって使用できる標準コントローラインタフェースである。
【0085】
図5Dは、クライアントデバイス(たとえば、ホストクライアント102、プレーヤークライアント104)に表示されたコントローラインタフェース530を示す図である。
コントローラインタフェース530は、仮想ボタン532を含む。ユーザは、手の親指で仮想ボタン532を実行させることができ、クライアントデバイスに動きおよび、必要であれば、向きの変化を与える(たとえば、テニスラケットのようにスイングするなど)ことができるように、コントローラインタフェース530を表示しているクライアントデバイスを片手に把持する。センサ(複数可)213によって検出される動きおよび向きの変化は、ゲームにおける入力として使用されてもよい。いくつかの実装形態において、コントローラインタフェース530は、ゲームコントローラモジュール230に適用可能な別のそれぞれのゲームコントローラ構成438に対応付けられており、デバイスの動きおよび/または向きの変化を入力として利用する複数のゲームによって使用できる、標準コントローラインタフェースである。
【0086】
図5Eは、クライアントデバイス(たとえば、ホストクライアント102、プレーヤークライアント104)に表示されたコントローラインタフェース540を示す図である。コントローラインタフェース540は、標準化および/またはカスタマイズされた構成要素を含み得るコントローラ領域542を含む。コントローラ領域542は、仮想方向パッド524および仮想ボタン526など、標準化された構成要素を含んでもよい。また、コントローラインタフェース540は、それぞれのゲームの指定された構成要素用に確保された、カスタム可能なカスタム領域548を含む。いくつかの実装形態において、領域542および548を含む、コントローラインタフェース540の全体は、特定のゲームにカスタム可能である。いくつかの実装形態において、コントローラインタフェース540は、ゲームコントローラモジュール230に適用可能なさらに別のゲームコントローラ構成438にそれぞれ対応付けられており、特定のゲームに固有のカスタムコントローラインタフェースである。サーバ114は、構成438内に複数の構成を格納してもよい。ここで、複数の構成の各々は、それぞれのゲームに固有のカスタマイズされた構成に相当する。
【0087】
図5Fは、クライアントデバイス(たとえば、ホストクライアント102、プレーヤークライアント104)に表示されたコントローラインタフェース560を示す図である。コントローラインタフェース560は、ウェブブラウザ(たとえば、ウェブブラウザ・モジュール224)において表示されるゲームビュー562を含む。ゲームビュー562は、ゲーム制御部566(たとえば、仮想ボタン)および、必要であれば、ゲームからのレンダリングされた出力564またはその他のコンテンツ(たとえば、二次情報)を含む。いくつかの実装形態において、レイテンシがゲームプレーにあまり強い影響を与えないゲーム用にコントローラインタフェース560が使用されてもよい。
【0088】
図6は、いくつかの実装形態に係る、アプリケーションセッションを確立するための方法600のフロー図である。方法600は、1つ以上のプロセッサと、1つ以上のプロセッサによって実行するための1つ以上のプログラムを格納するメモリとを有する電子デバイス(たとえば、ホストクライアント102/132)で実行されてもよい。いくつかの実装形態において、電子デバイスは、1つ以上のプログラムと、1つ以上のプロセッサによって実行するための1つ以上のプログラムを格納するメモリとを備え、1つ以上のプログラムは、方法600を実行するための命令を含む。いくつかの実装形態において、非一時的なコンピュータ読み取り可能な記憶媒体は、命令を含む1つ以上のプログラムを格納する。命令は、1つ以上のプロセッサを有する電子デバイスによって実行されると、電子デバイスに、方法600を実行させる。
【0089】
デバイスは、アプリケーションを実行する(602)。ホストクライアント102/132は、アプリケーション(たとえば、ゲームアプリケーション228)を実行する。ホストユーザは、プレーヤークライアントがセッションに加わるように招待され得るアプリケーションのためのセッションを開始するために、ホストクライアントにアプリケーショ
ンを実行するように指図する。アプリケーションは、対話式のセッション(たとえば、ゲームセッション)内で異なる位置にある複数のクライアントデバイスでの複数のユーザ(たとえば、複数のプレーヤー)による対話(たとえば、ゲームプレー)を容易にするアプリケーション(たとえば、オンラインまたはクラウドベースのマルチプレーヤーゲーム用のアプリケーション)であってもよい。アプリケーション(より具体的には、アプリケーションのそれぞれのセッションに)参加しているデバイスは、ホストクライアント102/132、および1つ以上のプレーヤークライアント104/134を含んでもよい。プレーヤークライアント104/134は、後述するが、セッションに招待されてもよい。
【0090】
デバイスは、実行中のアプリケーションと、アプリケーションに対応付けられたリモートサーバと、実行中のアプリケーションからの出力を含むセッションからの出力を出力装置に送信するメディアデバイスとの間にセッションを確立する(604)。セッションからの出力は、実行中のアプリケーションからの出力を含む。ホストクライアント102/132は、実行中のアプリケーション(たとえば、ゲームアプリケーション228)と、サーバ(たとえば、サーバ114/144)と、メディアデバイス(たとえば、メディアデバイス106/136)との間にセッション(たとえば、セッション116/146)を確立する。メディアデバイス106/136は、セッション内に、アプリケーションからの出力を出力装置108/138に送信する。サーバ114/144は、アプリケーションに対応付けられる(たとえば、サーバ114/144は、ゲームアプリケーション228に対応付けられたゲームサーバである)。たとえば、ゲームアプリケーション228がホストクライアント102/132で実行されたとき、ゲームアプリケーション228は、ゲームセッションを確立するために、サーバ114/144と通信する。また、メディアデバイス106/136をセッションに乗せるために、ゲームアプリケーション228は、メディアデバイス106/136と通信する。メディアデバイス106/136は、(たとえば、出力装置108/138での)出力のために、サーバ114/144がゲームセッションからの出力およびその他のコンテンツを送信する先のデバイスである。
【0091】
デバイスは、アプリケーションが実行中でないおよび/またはインストールされていない1つ以上の第2の電子デバイスのユーザに、セッションに対応付けられたセッション識別子を提示する(606)。セッション識別子は、第2の電子デバイスがセッションに加わることを容易にし、1つ以上の第2の電子デバイスのユーザがセッションと対話することを可能にするための、1つ以上の第2の電子デバイスの各々の上に実装可能なコントローラ構成を識別する。たとえば、ホストクライアント102/132は、アプリケーションがまったくインストールされていないまたはインストールされているが実行中でない1つ以上のプレーヤークライアント104/134に、セッションのセッション識別子を送信するまたは送信させる。セッション識別子は、まだインストールされていない場合、プレーヤークライアントへのアプリケーションのインストールを容易にすることを含む、プレーヤークライアント104/134がセッションに加わることを容易にする。また、セッション識別子は、プレーヤーユーザによるセッションとの対話を容易にするためにプレーヤークライアント104/134が実施するコントローラ構成を含むまたは参照する。たとえば、ホストクライアント102/132は、ゲームセッションのセッション識別子をサーバ114/144から取得し、セッション識別子を、プレーヤークライアント104/134に送信させる、および/またはメディアデバイス106/136を介して出力装置108/138で(たとえば、ユーザインタフェース510において、図5B)出力させる。ホストユーザは、セッション識別子を送信するようにホストクライアント102/132に(たとえば、ユーザインタフェース500を介して、図5A)指図する、またはセッション識別子を送信させる。セッション識別子は、プレーヤークライアント104/134においてデバイス上で開かれてもよく、または、出力されたセッション識別子に応じて、プレーヤークライアント104/134でアプリケーションに入力されてもよい(たとえば、ユーザがセッション識別子をアプリケーションにキー入力する、またはプレ
ーヤークライアント104/134を用いてセッション識別子のバーコードをスキャンする)。このように、プレーヤークライアント104/134は、ゲームセッションに加わってもよい。さらに、セッション識別子および/またはゲームセッションよって指定されるコントローラ構成に応じて、プレーヤークライアント(複数可)104/134は、ゲームセッション用のコントローラインタフェースを実現する。プレーヤークライアント(複数可)104/134がゲームセッションに加わり、コントローラインタフェースがプレーヤークライアントで実現されると、プレーヤークライアントでのプレーヤーユーザは、ホストクライアントでのホストユーザと一緒にゲームをしてもよい。
【0092】
いくつかの実装形態において、アプリケーションは、ゲームアプリケーションである。ホストクライアント102/132上で実行中のアプリケーションは、たとえば、ゲームアプリケーション228であってもよい。セッション116/146は、ゲームセッションであり、セッションからの出力は、ホストクライアントおよびプレーヤークライアント(複数可)でゲームをすることから得られるグラフィック出力を含む。セッションからの出力は、メディアデバイス106/136を介して出力装置108/138で出力されてもよい。
【0093】
いくつかの実装形態において、セッション識別子は、セッション用のURL(Universal Resource Locator)を含む。セッション識別子は、セッションに加わるための処理を開始するためにプレーヤークライアント104/134がウェブブラウザ・モジュール(たとえば、ウェブブラウザ224)において実行し得るURLであってもよい。
【0094】
いくつかの実装形態において、セッション識別子は、セッションに対応付けられたURLをコード化したバーコードを含む。セッション用のURLは、バーコード(たとえば、1次元バーコード、マトリックスバーコード)にコード化されてもよい。プレーヤークライアント104/134は、セッション識別子URLを取得するために、バーコードが表示される間にバーコードをスキャンしてもよい。
【0095】
いくつかの実装形態において、セッション識別子は、プロンプトまたは通知の形で、第2の電子デバイスで表示される。セッション識別子(たとえば、セッション用のURLまたはURLをコード化したバーコード)は、プロンプトまたはアプリ通知の形で表示されてもよい。たとえば、ホストクライアント102/132は、セッション識別子付きのプロンプトまたは通知が表示されるプレーヤークライアント104/134に、セッション識別子を送信するまたは送信させる。
【0096】
いくつかの実装形態において、アプリケーションが実行中でないおよび/またはインストールされていない1つ以上の第2の電子デバイスのユーザに、セッションに対応付けられたセッション識別子を提示するステップは、セッション識別子をメディアデバイスに送信するステップを含み、メディアデバイスは、セッション識別子を出力装置に送信するように構成される。ホストクライアント102/132は、メディアデバイス106/136にセッション識別子を送信するまたは送信させる。これは、セッション116/146の一部でもある。メディアデバイス106/136は、出力のためにセッション識別子を出力装置108/138に送信する。たとえば、出力装置108/138は、プレーヤークライアント104/134が読み取りできるバーコードとして、または、セッションに加わるためにプレーヤークライアント104/134でのウェブブラウザ・モジュール224において開かれ得るURLリンクとして、セッション識別子を表示する。
【0097】
いくつかの実装形態において、アプリケーションが実行中でないおよび/またはインストールされていない1つ以上の第2の電子デバイスのユーザに、セッションに対応付けら
れたセッション識別子を提示するステップは、セッション識別子をメッセージに含めて第2の電子デバイスに送信するステップを含む。ホストクライアント102/132は、セッション識別子をメッセージ(たとえば、テキストメッセージ、インスタントメッセージ、電子メール)に含めてプレーヤークライアント104/134に送信するまたは送信させる。たとえば、プレーヤークライアント104/134は、セッション識別子のURLリンク付きのメッセージを受信し、セッション識別子のURLリンクは、セッションに加わるためにプレーヤークライアント104/134でのウェブブラウザ224において開かれてもよい。
【0098】
図7は、いくつかの実装形態に係る、セッション識別子を提示するための方法700のフロー図である。方法700は、1つ以上のプロセッサと、1つ以上のプロセッサによって実行するための1つ以上のプログラムを格納するメモリとを有する電子デバイス(たとえば、メディアデバイス106/136)で実行されてもよい。いくつかの実装形態において、電子デバイスは、1つ以上のプログラムと、1つ以上のプロセッサによって実行するための1つ以上のプログラムを格納するメモリとを含み、1つ以上のプログラムは、方法700を実行するための命令を含む。いくつかの実装形態において、非一時的なコンピュータ読み取り可能な記憶媒体は、命令を含む1つ以上のプログラムを含み、命令を含むは、1つ以上のプロセッサを有する電子デバイスによって実行されると、電子デバイスに方法700を実行させる。
【0099】
デバイスは、第2の電子デバイス上で実行中のアプリケーション、およびアプリケーションに対応付けられたリモートサーバとのセッションを確立するために、命令を受信する(702)。メディアデバイス106/136は、ホストクライアント102/132上のアプリケーション(たとえば、ゲームアプリケーション228)と、サーバ114/144とのセッション116/146を確立するために、命令を受信する。命令は、ホストクライアント102/132またはサーバ114/144から受信されてもよい。いくつかの実装形態において、ゲームアプリケーション228用のゲームセッションにおいて、ゲームセッションからの出力は、ホストクライアントおよびプレーヤークライアントではなく(たとえば、ホストクライアントおよびプレーヤークライアントでのディスプレイが、ホストユーザおよびプレーヤーユーザがゲームをするコントローラインタフェース(たとえば、図5C図5Fに示すコントローラインタフェース)を表示すること専用になるように)、1つの出力位置(たとえば、メディアデバイス106/136を介して出力装置108/138)で表示される。したがって、メディアデバイス106/136は、ゲームセッションからの出力用のアウトレットとして、ゲームセッションに加わるように招待される。
【0100】
デバイスは、受信した命令に応じて、セッションを確立する(704)。メディアデバイス106/136は、ホストクライアント102/132上のアプリケーション(たとえば、ゲームアプリケーション228)、およびサーバ114/144とのセッション116/146を確立する、またはそれに加わる。
【0101】
デバイスは、セッションに対応付けられたセッション識別子を受信する(706)。セッション識別子は、1つ以上の第3の電子デバイスがセッションに加わることを容易にし、第3の電子デバイスの1人以上のユーザがセッションと対話することを可能にするために、1つ以上の第3の電子デバイスの各々の上に実装可能なコントローラ構成を識別する。メディアデバイス106/136は、ホストクライアント102/132またはサーバ114/144から、セッションのためのセッション識別子を受信する。セッション識別子は、1つ以上のプレーヤークライアント104/134がセッションに加わることを容易にする。また、セッション識別子は、プレーヤークライアント104/134のプレーヤーユーザがセッションと対話することを可能にするために、セッション内にプレーヤー
クライアント104/134で実装されるコントローラ構成を識別または参照する。たとえば、ホストユーザは、セッション識別子をメディアデバイス106/136に送信させる(たとえば、キャストさせる)よう、ホストクライアント102/132を(たとえば、ユーザインタフェース500を介して、図5A)指図してもよい。ホストユーザの指図に応じて、ホストクライアント102/132は、セッション識別子をメディアデバイス106/136に送信させる。
【0102】
デバイスは、表示するために、セッション識別子を出力装置に送信する(708)。メディアデバイス106/136は、セッション識別子を出力装置108/138に送信し、出力装置108/138は、プレーヤークライアント104/134がプレーヤークライアント104/134に入力するまたは認識する(たとえば、スキャンする)ために、セッション識別子を表示する。プレーヤーユーザ(複数可)は、セッション識別子をプレーヤークライアント(複数可)104/134に手動で入力してもよく、または、プレーヤークライアント(複数可)104/134を用いてセッション識別子をスキャン(たとえば、バーコードスキャンまたは文字認識)することによってセッション識別子を入力してもよい。
【0103】
いくつかの実装形態において、デバイスは、セッションからの出力に対応するデータを受信し、出力は、第3の電子デバイスの1人以上のユーザによるセッションとの対話から得られる出力を含み、デバイスは、表示するために、データを出力装置に送信する。メディアデバイス106/136は、プレーヤークライアント104/134によるセッションとの対話から得られた出力をセッションから受信する。メディアデバイス106/136は、セッション出力を出力装置108/138に送信し、出力装置108/138は、セッション出力を表示する。
【0104】
いくつかの実装形態において、セッション識別子は、セッションに対応付けられたURLを含む。セッション識別子は、セッションに加わるためにプレーヤークライアント104/134でのウェブブラウザ・モジュールに入力され得るURLであってもよい。いくつかの実装形態において、表示されたセッション識別子のURLは、文字認識によって入力されてもよい(たとえば、プレーヤークライアント104/134によってURLテキストが撮影され、URLテキストが認識される)。
【0105】
いくつかの実装形態において、セッション識別子は、セッションに対応付けられたURLをコード化したバーコードを含む。セッション識別子のURLは、バーコード(たとえば、1次元バーコード、マトリックスバーコード)にコード化されてもよい。バーコードは、出力装置108/138に送信され、出力装置108/138によって表示される。プレーヤークライアント104/134は、セッション識別子URLを取得するために、バーコードが表示される間にバーコードをスキャンしてもよい。
【0106】
いくつかの実装形態において、電子デバイスは、キャスティングデバイスである。メディアデバイス106/136は、キャスティングデバイス(たとえば、Google Inc.によるCHROMECAST(登録商標))であってもよい。
【0107】
いくつかの実装形態において、アプリケーションは、ゲームアプリケーションである。アプリケーションは、ゲームアプリケーション(たとえば、ゲームアプリケーション228)であってもよい。セッション116/146は、ゲームセッションであり、セッションからの出力は、ホストクライアントおよびプレーヤークライアント(複数可)でゲームをすることから得られるグラフィック出力を含む。
【0108】
さまざまな実装形態を詳細に参照し、その例を添付の図面に示した。上記詳細な説明に
おいて、本発明および記載の実装形態の十分な理解のため、たくさんの具体的な詳細を記載した。しかしながら、これらの具体的な詳細がなくても、本発明を実施することができる。その他の場合、周知の方法、プロシージャ、コンポ―ネント、および回路は、実装形態の態様を不必要にあいまいにしないように、詳細に説明しなかった。
【0109】
さまざまな構成要素を説明するために、用語「第1の」、「第2の」などが本明細書において使用され得るが、これらの構成要素は、これらの用語によって限定されるべきではないと理解されるだろう。これらの用語は、1つの構成要素を別の構成要素と区別するために使用されるにすぎない。たとえば、第1のデバイスの名称がすべて矛盾なく変更され、第2のデバイスの名称がすべて矛盾なく変更される場合に限り、説明の意味を変更することなく、第1のデバイスを第2のデバイスと称することができ、同様に、第2のデバイスを第1のデバイスと称することができる。第1のデバイスおよび第2のデバイスは、両方ともデバイスであるが、同じデバイスではない。
【0110】
本明細書において使用される用語は、特定の実装形態を説明するためだけのものであり、特許請求の範囲を限定することを意図していない。実装形態および添付の請求の範囲の説明において使用される単数形「a」、「an」、および「the」は、文脈が明らかに他を示さない限り、複数形も含むことを意図する。本明細書において使用される用語「および/または(and/or)」は、関連する記載された項目のうちの1つ以上のいずれか、およびすべての考えられる組み合わせを指し、それらを包含すると理解されるだろう。用語「備える/含む(comprises)」および/または「備える/含む(comprising)」は、本明細書において使用されるとき、記載の特徴、整数、ステップ、動作、構成要素、および/またはコンポ―ネントの存在を具体的に挙げるが、1つ以上のその他の特徴、整数、ステップ、動作、構成要素、コンポ―ネント、および/またはそれらの群の存在もしくは追加を排除しないと理解されるだろう。
【0111】
本明細書で使用するとき、用語「~である場合(if)」は、文脈に応じて、記載の先行条件が真である「ときに(when)」、「すると(upon)」、「と判定することに応答して(in response to determining)」、「という判定に応じて(in accordance with a determination)」、または「と検出することに応答して(in response to detecting)」を意味すると解釈され得る。同様に、表現「記載の先行条件が真であると判定された場合(if it is determined[that a stated
condition precedent is true])」、「記載の先行条件が真である場合(if[a stated condition precedent is true])」、「記載の先行条件が真であるとき(when[a stated
condition precedent is true])」は、文脈に応じて、記載の先行条件が真である「と判定すると(upon determining)」、「と判定することに応答して(in response to determining)」、「という判定に応じて(in accordance with a determination)」、「と検出すると(upon detecting)」、または「と検出することに応答して(in response to detecting)」を意味すると解釈され得る。
【0112】
上記の説明は、説明の便宜上、具体的な実装形態を例に記載された。しかしながら、上記例示的説明は、網羅的であったり、開示の厳密な形態に本発明を限定したりすることを意図しない。上記教示に鑑みて、多くの変更例および変形例が可能である。当業者が、考えられる特定の用途に適したさまざまな変更例を用いて、本発明およびさまざまな実装形態を最大限に利用することを可能にするために、実装形態は、本発明の原理およびその実際の適用を最もよく説明するために選択および記載されている。
図1A
図1B
図2A
図2B
図3
図4
図5A
図5B
図5C
図5D
図5E
図5F
図6
図7