ゲームプラットフォームなどのコラボレーションプラットフォームは、ユーザが互いに対話するための様々な方法を提供する。たとえば、ゲームプラットフォームのユーザは、共通の目標に向けて協働し、様々な仮想ゲームアイテムを共有し、電子メッセージを互いに送ることなどができる。コラボレーションプラットフォームのユーザは、コラボレーションプラットフォームを介してキャラクターとゲームをプレイすること(たとえば、プレイするユーザ)、または開発ツールを用いてゲームを作成すること(たとえば、作成するユーザ)ができる。
いくつかのシステムにおいて、プレイするユーザは、1人または複数の他のプレイするユーザとオンラインでゲームをプレイすることができ、そのうちの数人は、同じ場所に位置し(たとえば、近接して位置し)得る。たとえば、複数のプレイするユーザは、ゲーム機を使用して、オンライン上でホストされたゲームをプレイすることができ、ゲーム機のネイティブゲームコントローラを使用して、ゲーム内の活動を制御し、ゲームと対話することができる。プレイするユーザは、テレビジョンなどの中央ディスプレイ上でゲームプレイを見て、一緒にゲーム経験を楽しむことができる。プレイするユーザは、ゲーム機のネイティブゲームコントローラを使用して、ゲーム内の活動を制御することができる。ゲームプレイに参加し得るプレイするユーザの数は、ネイティブゲームコントローラの数またはゲーム機の能力(たとえば、処理能力またはネットワークインターフェース能力などの演算能力)によって決定され得る。
いくつかのシステムにおいて、オンラインゲームのプレイするユーザは、ゲームプレイ経験をさらに拡張するために中央の場所に集まることができる。たとえば、プレイするユーザは、参加者がオンラインゲームをプレイする間に近接して位置し得るように、参加者がしばしば自分自身のコンピュータおよび他のハードウェアを持ち込む、俗にLANパーティと呼ばれるローカルエリアネットワークパーティに参加し得る。参加者の数が増えるにつれて、ハードウェアの複雑性が増大し、非常に多くのハードウェアが必要になること、コンピュータを適切にネットワーク接続すること、十分なインターネットアクセス、ならびに、ハードウェアに十分な電源を供給することなどの課題を提示する。
本開示の態様は、近接して位置するユーザが、ゲームプレイを制御するためのゲームコントローラとして、モバイルフォンなどの二次クライアントデバイスを使用してマルチプレーヤーゲームに参加することを可能にする、マルチプレーヤーゲームに対するグループゲームプレイ特徴を実装することによって、上述のおよび他の課題に対処する。実装形態では、ゲームプレイは、ユーザによる消費のために、テレビジョンなどの一次ディスプレイ上でユーザに提示され得る。サーバコンピュータ(たとえば、コラボレーションプラットフォーム)は、ゲーム機などの一次クライアントデバイスを迂回する制御命令を二次クライアントデバイスから受信し、特定の場所においてグループゲームプレイに参加するユーザの数を(たとえば、1人から数百人のプレイするユーザ)にスケーリングすることを可能にし得る。制御命令は、マルチプレーヤーゲームにおいてゲーム内の活動を制御するための二次クライアントデバイスに対するユーザ入力に応答し得る。一次クライアントデバイスを迂回した制御命令の受信に応答して、サーバコンピュータは、第1のゲームプレイ命令を一次クライアントデバイス(たとえば、ゲーム機)に与え得る。いくつかの実装形態では、一次クライアントデバイス(たとえば、ゲーム機)は、二次クライアントデバイス(たとえば、モバイルフォン)または一次クライアントデバイスのネイティブゲームコントローラからの制御命令を使用するよりもむしろ、サーバコンピュータ(たとえば、コラボレーションプラットフォーム)からの第1のゲームプレイ命令を使用して、マルチプレーヤーゲームのゲームプレイの第1のビューの提示を一次ディスプレイ(たとえば、テレビジョン)上にレンダリングし得る。
いくつかの実装形態では、二次クライアントデバイスから受信された制御命令(一次クライアントデバイスを迂回した制御命令)に応答して、サーバコンピュータは、第2のゲームプレイ命令(たとえば、一次クライアントデバイスを迂回する第2のゲームプレイ命令)を二次クライアントデバイスに直接送る。いくつかの実装形態では、二次クライアントデバイスは、一次クライアントデバイスからの命令を使用するよりもむしろ、サーバコンピュータ(たとえば、コラボレーションプラットフォーム)からの第2のゲームプレイ命令を使用して、マルチプレーヤーゲームのゲームプレイの第2のビューの提示を二次クライアントデバイスのディスプレイ上にレンダリングし得る。
実装形態では、一次ディスプレイ(たとえば、テレビジョン)上のゲームプレイの提示は、二次クライアントデバイス上のゲームプレイの提示とは異なり得る。たとえば、一次ディスプレイ上のゲームプレイのビューは、三人称視点からであってよく、グループゲームプレイに参加するすべてのキャラクターを提示し得る。二次クライアントデバイス上のゲームプレイのビューも、三人称視点からであってよいが、一次ディスプレイ上のビューよりもゲーム世界のより小さな部分(たとえば、それぞれのキャラクターおよびごく近い周囲の三人称ビュー)を提示し得る。いくつかの実装形態では、二次クライアントデバイス上のゲームプレイのビューは、互いに異なってよい。たとえば、二次クライアントデバイス上のゲームプレイのビューは、一人称視点からであってよく、それぞれのキャラクターが閲覧しているゲーム世界の部分を提示し得る。
いくつかの実装形態では、異なる場所に位置するユーザの複数のグループは、同じゲームに対して異なるグループゲームプレイセッションに参加することができる。たとえば、ユーザの第1のグループは、合衆国内の近接する場所(たとえば、同じ部屋)に位置してよく、ユーザの別のグループは、ノルウェー内の近接する場所に位置してよい。ユーザの2つのグループは、ユーザの第1のグループの第1のチームがユーザの第2のグループの第2のチームに対抗するマルチプレーヤーゲームをプレイすることができる。ユーザの第1のグループは、(たとえば、チームとして一緒にプレイするために)第1のグループゲームセッションを要求し得る。ユーザの第1のグループは、一次クライアントデバイス、およびコラボレーションプラットフォームに結合された二次クライアントデバイスの第1のグループを有し得る。ユーザの第2のグループは、(たとえば、第1のチームに対抗するチームとして一緒にプレイするために)同じマルチプレーヤーゲームに対する第2のグループゲームプレイセッションを要求することもできる。ユーザの第2のグループは、異なる一次クライアントデバイス(たとえば、異なるゲーム機)およびコラボレーションプラットフォームに結合された二次クライアントデバイスの第2のグループを有し得る。合衆国内に位置し、第1のグループゲームプレイセッションを使用する第1のチームは、第2のグループゲームプレイセッションを使用してノルウェー内の第2のチームと対抗し得る。いくつかの実装形態では、ユーザの第1のグループの一次ディスプレイ上に表示されるゲームプレイのビューは、(たとえば、あるチームまたは別のチームを有利にしないように)ユーザの第2のグループの一次ディスプレイ上に表示されるゲームプレイのビューとは異なってよい。
したがって、本開示の態様は、近接して位置するユーザがゲームコントローラとして二次クライアントデバイスを使用してマルチプレーヤーゲームに参加することを可能にし、ユーザによる消費のために、ゲームプレイを一次ディスプレイ上に提示させるグループゲームプレイ特徴をユーザに提供する。具体的には、前述は、近接して位置するユーザがグループゲームプレイに参加することを可能にする技術的課題に対処する。近接して位置するユーザがグループゲームプレイに参加するために二次クライアントデバイスを使用することを可能にすることは、協同型ゲームの技術的プロセスを改善する。前述のグループゲームプレイは、コンピュータまたはコンピュータネットワークの動作も改善する。たとえば、一次クライアントデバイスを迂回する制御命令を、ゲームをホストするコラボレーションプラットフォームに送ることは、グループゲームプレイに参加するユーザの数をスケーリングすることを可能にする(たとえば、1人から数百人のプレイするユーザがグループゲームプレイセッションに参加し得る)。たとえば、一次クライアントデバイスを迂回する制御命令を送ることによって、制御命令は、より効率的にコラボレーションプラットフォームに送信され、一次クライアントデバイスにおけるボトルネックによって遅延せず、一次クライアントデバイスが、コンピューティングリソース(たとえば、処理リソースまたはネットワーキングリソース)を、コラボレーションプラットフォームとの通信と、ゲームプレイのレンダリングとに集中させることを可能にする。加えて、一次クライアントデバイスを迂回するゲームプレイ命令は、コラボレーションプラットフォームから二次クライアントデバイスに送られてよく、これは、コンピュータまたはコンピュータネットワークの動作を改善する。たとえば、一次クライアントデバイスは、特に、プレイするユーザの数が増えると、他のゲーム機能に加えて、各二次クライアントデバイスに対する複数のゲームプレイ命令を扱うことが可能でないことがある。ゲームプレイ命令を二次クライアントデバイスに直接送ることは、一次クライアントデバイスによって引き起こされるレイテンシを低減させ、一次クライアントデバイスが、二次クライアントデバイス上のリアルタイムゲームプレイのレンダリングを抑圧するボトルネックを引き起こす機会を低減させる。
本明細書でゲームプラットフォームとして説明されるコラボレーションプラットフォームは、限定ではなく、例示のために与えられることに留意されよう。コラボレーションプラットフォームは、ゲームプラットフォーム、ソーシャルネットワーキングプラットフォーム、購入プラットフォーム、メッセージングプラットフォーム、作成プラットフォームなどの、多数のプラットフォームのうちの1つまたは複数であってよい。本開示の態様は、限定ではなく、例示のために、ゲームプラットフォームおよびゲームの一例を使用して示されることにさらに留意されよう。
図1は、本開示の実装形態による、例示的なシステムアーキテクチャ100を示す。システムアーキテクチャ100(本明細書で「システム」とも呼ばれる)は、クライアントデバイス110Aおよび110B(概して、本明細書で「クライアントデバイス110」と呼ばれる)、ネットワーク105、データストア106、コラボレーションプラットフォーム120、およびサーバ130を含む。
一実装形態では、ネットワーク105は、公衆ネットワーク(たとえば、インターネット)、私設ネットワーク(たとえば、ローカルエリアネットワーク(LAN)または広域ネットワーク(WAN))、ワイヤードネットワーク(たとえば、Ethernetネットワーク)、ワイヤレスネットワーク(たとえば、802.11ネットワーク、Wi-Fi(登録商標)ネットワーク、またはワイヤレスLAN(WLAN))、セルラーネットワーク(たとえば、ロングタームエボリューション(LTE)ネットワーク)、ルータ、ハブ、スイッチ、サーバコンピュータ、および/またはそれらの組合せを含み得る。
一実装形態では、データストア106は、メモリ(たとえば、ランダムアクセスメモリ)、キャッシュ、ドライブ(たとえば、ハードドライブ)、フラッシュドライブ、データベースシステム、またはデータを記憶することができる別のタイプの構成要素もしくはデバイスであってよい。データストア106は、複数のコンピューティングデバイス(たとえば、複数のサーバコンピュータ)に及ぶこともある、複数の記憶構成要素(たとえば、複数のドライブまたは複数のデータベース)を含んでもよい。
実装形態では、サーバ130は、1つまたは複数のコンピューティングデバイス(たとえば、ラックマウントサーバ、サーバコンピュータ、物理的サーバのクラスタなど)であってよい。実装形態では、サーバ130は、コラボレーションプラットフォーム120内に含まれてよく、独立したシステムであってよく、または別のシステムもしくはプラットフォームの一部分であってもよい。サーバ130は、グループゲームプレイモジュール140を含み得る。
いくつかの実装形態では、コラボレーションプラットフォーム120は、コラボレーションプラットフォーム120に対するアクセスをユーザに与えるために使用され得る、1つまたは複数のコンピューティングデバイス(ラックマウントサーバ、ルータコンピュータ、サーバコンピュータ、パーソナルコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータなど)、データストア(たとえば、ハードディスク、メモリ、データベース)、ネットワーク、ソフトウェア構成要素、および/またはハードウェア構成要素であってよい。コラボレーションプラットフォーム120は、ウェブサイト(たとえば、ウェブページ)、またはコラボレーションプラットフォーム120によって与えられるコンテンツに対するアクセスをユーザに与えるために使用され得るアプリケーションバックエンドソフトウェアをやはり含み得る。たとえば、ユーザは、クライアントデバイス110上のコラボレーションアプリケーション114を使用してコラボレーションプラットフォーム120にアクセスし得る。コラボレーションアプリケーション114Aおよび114Bは、概して、コラボレーションアプリケーション114と呼ばれ得ることに留意されよう。いくつかの実装形態では、コラボレーションアプリケーション114は、同じアプリケーションの2つのインスタンスであり得る。
実装形態では、コラボレーションプラットフォーム120は、ユーザ同士の間に接続を与えるソーシャルネットワークの一種であり得る。本開示の実装形態では、「ユーザ」は、単一の個人として表されることがある。しかしながら、本開示の他の実装形態は、一組のユーザおよび/または自動化されたソースによって制御されるエンティティである「ユーザ」を包含する。たとえば、ソーシャルネットワーク内のコミュニティとしてフェデレートされる(federated)一組の個人ユーザが「ユーザ」と見なされ得る。
一実装形態では、コラボレーションプラットフォーム120は、オンラインゲームプラットフォームまたは仮想ゲームプラットフォームなどの、ゲームプラットフォームであってよい。たとえば、ゲームプラットフォームは、ネットワーク105を介してクライアントデバイス110を使用してゲーム122A〜122Zにアクセスするかまたはこれらと対話し得るユーザのコミュニティにシングルプレーヤーゲームまたはマルチプレーヤーゲームを提供し得る。実装形態では、ゲーム122(本明細書で「ビデオゲーム」、「オンラインゲーム」、または「仮想ゲーム」とも呼ばれる)は、たとえば、二次元(2D)ゲーム、三次元(3D)ゲーム、仮想現実(VR)ゲーム、または拡張現実(AR)ゲームであってよい。実装形態では、ゲーム122は、ゲーム122の他のユーザとリアルタイムでプレイされ得る。
いくつかの実装形態では、ゲーム122は、ゲームコンテンツ(たとえば、デジタルメディアアイテム)をエンティティに提示するように構成された、ソフトウェア、ファームウェア、またはハードウェアを使用して実行またはロードされ得る電子ファイルを含み得る。いくつかの実装形態では、ゲーム122は、複数のフレームおよびオーディオを含むゲームビデオを生成するためにゲームエンジン124によって実行され得る。ゲームビデオは、コマンドまたはユーザ入力に基づいて、ゲームエンジン124によって生成され(たとえば、レンダリングされ)得る。いくつかの実装形態では、ゲームエンジン124(たとえば、ゲームエンジン124のレンダリングエンジン)は、ユーザ入力を受信し、ユーザ入力に基づいてゲームビデオを生成する。いくつかの実装形態では、(クライアントデバイス110に対してローカルな、またはコラボレーションプラットフォーム120における)ゲームエンジン124は、ユーザ入力を受信し、ユーザ入力に基づいて、コマンド(たとえば、レンダリングコマンド、グラフィックスライブラリコマンドなど)を生成する。いくつかの実装形態では、ゲームエンジン124(たとえば、ゲームエンジン124のレンダリングエンジン)は、生成されたコマンドをコラボレーションプラットフォーム120から受信し、生成されたコマンドに基づいて、ゲームビデオを生成する。ゲームビデオは、クライアントデバイス110のユーザインターフェースを介して表示され得る。
いくつかの実装形態では、コラボレーションプラットフォーム120は、ゲーム122をホストし、ユーザがクライアントデバイス110のコラボレーションアプリケーション114を使用してゲーム122と対話することを可能にする。コラボレーションプラットフォーム120のユーザは、ゲーム122をプレイすること、作成すること、それと対話すること、もしくはそれを構築すること、またはゲーム122のオブジェクト(たとえば、本明細書で、「アイテム」、もしくは「ゲームオブジェクト」、または「仮想ゲームアイテム」とも呼ばれる)を作成および構築することができる。たとえば、ユーザ生成される仮想アイテムを生成する際、ユーザは、中でも、キャラクター、それらのキャラクターの装飾、対話型ゲームに対する1つまたは複数の仮想環境を作成すること、またはゲーム122において使用される構造を構築することができる。実装形態では、ユーザは、プラットフォーム内通貨(たとえば、仮想通貨)などの仮想ゲームオブジェクトを、コラボレーションプラットフォーム120の他のユーザとの間で、購入すること、販売すること、または取引することができる。実装形態では、コラボレーションプラットフォームは、ゲームコンテンツをコラボレーションアプリケーション114に送信し得る。ゲームコンテンツ(本明細書で、「コンテンツ」とも呼ばれる)は、コラボレーションプラットフォーム120またはコラボレーションアプリケーション114に関連付けられる、いずれかのデータまたはソフトウェア命令(たとえば、ゲームオブジェクト、ゲーム、ユーザ情報、ビデオ、画像、コマンド、メディアアイテムなど)を指すことがある。
ゲーム122をホストするコラボレーションプラットフォーム120は、限定ではなく、例示のために与えられることに留意されよう。いくつかの実装形態では、コラボレーションプラットフォーム120は、1つまたは複数のメディアアイテムをホストし得る。メディアアイテムは、デジタルビデオ、デジタルムービー、デジタル写真、デジタル音楽、オーディオコンテンツ、メロディー、ウェブサイトコンテンツ、ソーシャルメディアの更新、電子書籍、電子雑誌、デジタル新聞、デジタルオーディオブック、電子ジャーナル、ウェブブログ、リアルシンプルシンディケーション(RSS: real simple syndication)フィード、電子漫画本、ソフトウェアアプリケーションなどを含み得るが、これらに限定されない。実装形態では、メディアアイテムは、デジタルメディアアイテムをエンティティに提示するように構成された、ソフトウェア、ファームウェア、またはハードウェアを使用して実行またはロードされ得る電子ファイルであり得る。
一実装形態では、コラボレーションプラットフォーム120は、クライアントデバイス110からゲームコンテンツを統合し、マルチプレーヤーゲーム環境において複数のユーザの対話を表示するために、統合されたゲームコンテンツ(たとえば、ゲームビデオ、レンダリングコマンド、ユーザ入力、グラフィックスライブラリコマンド、ゲームのキャラクターの位置および速度情報など)をクライアントデバイス110の各々に送信し得る。別の実装形態では、コラボレーションプラットフォーム120は、他のクライアントデバイスがゲームコンテンツを統合して表示するために、ゲームコンテンツを1つまたは複数のクライアントデバイス110から別のクライアントデバイスに送信し得る。別の実装形態では、コラボレーションプラットフォーム120は、ゲームコンテンツを受信し(たとえば、第1のユーザがクライアントデバイス110Aを介してユーザ入力を送信し、第2のユーザがクライアントデバイス110Bを介してユーザ入力を送信する)、ゲーム結果を生成し(たとえば、第1のユーザが第2のユーザを負かす)、ゲーム結果をクライアントデバイス110に送信し得る。
いくつかの実装形態では、ゲーム122は、特定のユーザまたはユーザの特定のグループ(たとえば、プライベートゲーム)に関連付けられてよく、またはコラボレーションプラットフォーム120のユーザに広く利用可能にされてよい(たとえば、パブリックゲーム)。コラボレーションプラットフォーム120が1つまたは複数のゲーム122を特定のユーザまたはユーザのグループに関連付ける実装形態では、コラボレーションプラットフォーム120は、ユーザアカウント情報(たとえば、ユーザ名およびパスワードなどの、ユーザアカウント識別子)を使用して、特定のユーザをゲーム122に関連付けることができる。
いくつかの実装形態では、コラボレーションプラットフォーム120は、ゲームエンジン124を含み得る。実装形態では、ゲームエンジン124は、ゲーム122の開発または実行のために使用され得る。たとえば、ゲームエンジン124は、特徴の中でも、2D、3D、VR、またはARグラフィックスのためのレンダリングエンジン(「レンダラ(renderer)」)、物理エンジンもしくは衝突検出(および、衝突応答)、音声、スクリプティング、動画、人工知能、ネットワーキング、ストリーミング、メモリ管理、スレッディング、ローカライゼーションサポート、シーングラフ、またはシネマティックス(cinematics)用のビデオサポートを含み得る。いくつかの実装形態では、ゲームエンジン124のインスタンスは、クライアントデバイス110上に含まれてよい。いくつかの実装形態では、クライアントデバイス110のゲームエンジン124は、独立して、コラボレーションプラットフォーム120のゲームエンジン124との協働で、または両方の組合せで作動し得る。
実装形態では、コラボレーションプラットフォーム120は、クリエータモジュール126を含み得る。実装形態では、クリエータモジュール126は、ユーザが作成者になり、既存のゲーム122内で環境を設計もしくは作成すること、またはゲームもしくは環境内で、新しいゲームを作成すること、もしくは新しいゲームオブジェクトを作成することを可能にし得る。いくつかの実装形態では、ゲーム122は、規則の共通セットまたは共通目標を有してよく、ゲーム122の環境は、規則の共通セットまたは共通目標を共有する。実装形態では、異なるゲームは、互いとは異なる規則または目標を有してよい。いくつかの実装形態では、ゲームは、複数の環境がリンクされ得る、1つまたは複数の環境(本明細書で「ゲーム環境」または「仮想環境」とも呼ばれる)を有し得る。環境の一例は、三次元(3D)環境であり得る。ゲーム122の1つまたは複数の環境は、本明細書で、一括して、「世界」もしくは「ゲーム世界」または「仮想世界」あるいは「ユニバース」とも呼ばれることがある。世界の一例は、ゲーム122の3D世界であり得る。たとえば、ユーザは、別のユーザによって作成された別の仮想環境にリンクされた仮想環境を構築し得る。仮想ゲームのキャラクターは、仮想境界を横断して、隣接する仮想環境に入ることができる。実装形態では、ゲームオブジェクト(たとえば、本明細書で「アイテム」もしくは「オブジェクト」または「仮想ゲームアイテム」とも呼ばれる)は、コラボレーションプラットフォーム120のゲーム122内で使用される、作成される、共有される、またはその他の形で描画されるオブジェクトを指すことがある。たとえば、ゲームオブジェクトは、部品、モデル、キャラクター、ツール、武器、衣類、建物、車両、通貨、植物、動物、前述の構成要素(たとえば、建物の窓)などを含み得る。3D環境または3D世界は、ゲームコンテンツを表す(または、幾何学的データの3D表現が使用されるか否かにかかわらず、3Dコンテンツとして出現するゲームコンテンツを少なくとも提示する)幾何学的データの三次元表現を使用するグラフィックスを使用することに留意されよう。2D環境または2D世界は、ゲームコンテンツを表す幾何学的データの2次元表現を使用するグラフィックスを使用する。
実装形態では、クリエータモジュール126は、ユーザが、キャラクターを作成、修正、またはカスタマイズすることを可能にし得る。実装形態では、キャラクター(または、一般に、ゲームオブジェクト)は、そのうちの1つまたは複数がユーザによって選択され得る構成要素から構成され、これらの構成要素は、ユーザが編集を行うのを支援するために自動的に一緒に参加する。1つまたは複数のキャラクター(本明細書で、「アバター」または「モデル」とも呼ばれる)は、ユーザ(本明細書で、「プレイするユーザ」とも呼ばれる)に関連付けられてよく、ここで、ユーザは、キャラクターを制御して、ゲーム122とのユーザの対話を円滑にし得る。実装形態では、キャラクターは、身体の部位(たとえば、髪、腕、脚など)および装身具(たとえば、Tシャツ、眼鏡、装飾画像、ツールなど)などの構成要素を含み得る。実装形態では、カスタマイズ可能なキャラクターの身体の部位は、中でも、頭部のタイプ、身体の部位のタイプ(腕、脚、胴体、および手)、顔のタイプ、髪のタイプ、および肌のタイプを含む。実装形態では、カスタマイズ可能な装身具は、衣類(たとえば、シャツ、パンツ、帽子、靴、眼鏡など)、武器、または他のツールを含む。実装形態では、ユーザは、キャラクターのスケール(たとえば、高さ、幅、または深さ)またはキャラクターの構成要素のスケールを制御することもできる。実装形態では、ユーザは、キャラクターの均整(たとえば、がっしりした、解剖学的に正確など)を制御し得る。いくつかの実装形態では、キャラクターは、キャラクターゲームオブジェクト(たとえば、身体の部位など)を含まないことがあるが、ユーザはゲームとのユーザの対話を円滑にするためにキャラクターを依然として制御し得ることに留意されよう(たとえば、レンダリングされるキャラクターゲームオブジェクトは存在しないが、ユーザがゲーム内活動を制御するためにキャラクターを依然として制御する、パズルゲーム)。
いくつかの実装形態では、身体の部位などの構成要素は、立方体形、円筒形、球体形などの、基本的な幾何学的形状、または楔形、円環形、管形、溝形などの、何らかの他の基本的形状であってよい。実装形態では、クリエータモジュール126は、コラボレーションプラットフォーム120の他のユーザが閲覧するかまたは使用するためにユーザのキャラクターを公開し得る。いくつかの実装形態では、キャラクター、他のゲームオブジェクト、ゲーム122、またはゲーム環境の作成、修正、またはカスタマイズは、スクリプティングの有無にかかわらず(または、アプリケーションプログラミングインターフェース(API)の有無にかかわらず)ユーザインターフェース(たとえば、開発者インターフェース)を使用して、ユーザによって実行され得る。限定ではなく、例示のために、キャラクターは、人間の形状を有するとして説明されることに留意されよう。キャラクターは、車両、動物、無生物オブジェクト、または他の創造的形状などの、いかなる形状をも有し得ることにさらに留意されよう。
実装形態では、コラボレーションプラットフォーム120は、ユーザが作成したキャラクターをデータストア106内に記憶し得る。実装形態では、コラボレーションプラットフォーム120は、コラボレーションアプリケーション114を介してユーザに提示され得るキャラクターカタログおよびゲームカタログを維持する。ユーザは、プレイするゲーム122をゲームカタログから選択し得る。実装形態では、ゲームカタログは、コラボレーションプラットフォーム120上に記憶されたゲームの画像を含む。加えて、ユーザは、選定されたゲームに参加するためにキャラクターカタログから(プレイするユーザまたは他のユーザによって作成された)キャラクターを選択し得る。キャラクターカタログは、コラボレーションプラットフォーム120上に記憶されたキャラクターの画像を含む。実装形態では、キャラクターカタログ内のキャラクターのうちの1つまたは複数は、ユーザによって作成またはカスタマイズされていることがある。実装形態では、選定されたキャラクターは、キャラクターの構成要素のうちの1つまたは複数を定義するキャラクター設定を有し得る。
実装形態では、ユーザのキャラクターは、構成要素の形態を含み、ここで、構成要素の形態および外観、より一般的にはキャラクターの外観は、キャラクター設定によって定義され得る。実装形態では、ユーザのキャラクターのキャラクター設定は、ユーザによって少なくとも部分的に選定され得る。他の実装形態では、ユーザは、デフォルトキャラクター設定または他のユーザによって選定されたキャラクター設定を備えたキャラクターを選定し得る。たとえば、ユーザは、キャラクター設定を事前定義したキャラクターカタログからデフォルトキャラクターを選定することができ、ユーザは、キャラクター設定のうちのいくつかを変更すること(たとえば、カスタマイズされたロゴを備えたシャツを追加すること)によって、デフォルトキャラクターをさらにカスタマイズすることができる。キャラクター設定は、コラボレーションプラットフォーム120によって特定のキャラクターに関連付けられてよい。
実装形態では、クリエータモジュール126は、ユーザ(本明細書で、「作成するユーザ」、「作成者」、「所有者」、または「所有ユーザ」とも呼ばれる)が、たとえば、クラウドを介した演算リソースを使用して、ゲーム122およびゲーム環境を作成、所有、または管理することを可能にする、インターネット上でゲーム122およびゲーム環境を作成および管理するための一意の個人用構造および公開サービスを含む。実装形態では、クリエータモジュール126は、コラボレーションアプリケーション114を介してユーザインターフェース(本明細書で、「開発者インターフェース」とも呼ばれる)を使用して、ユーザがクリエータモジュール126の機能にアクセスすることを可能にし得る。実装形態では、開発者インターフェースは、コラボレーションアプリケーション114の一部分であってよい。たとえば、コラボレーションアプリケーション114の開発者インターフェースは、ユーザが、ゲーム環境を構築するため、またはゲーム122または環境内にゲームオブジェクトを配置するために、ユーザによって選択され得るゲームオブジェクトのライブラリにアクセスすることを可能にし得る。ユーザは、ゲームオブジェクトがゲーム122または環境のプレイするユーザに利用可能となるように、開発者インターフェースを介して、その選択されたゲームオブジェクトを公開することができる。
実装形態では、クリエータモジュール126を実行するコラボレーションプラットフォーム120は、ユーザが、個人的に所有するゲーム122またはゲーム環境を構築し、管理し、編集し、それと対話するために、コラボレーションプラットフォーム120によってホストされるオンライン演算リソースにアクセスし得る、ユーザインターフェースウェブサイトまたはアプリケーション(たとえば、コラボレーションアプリケーション114)を含む。実装形態では、クリエータモジュール126は、三次元仮想ゲームまたは環境を作成してインスタンス化するためにユーザが利用可能なツールを含む。実装形態では、クリエータモジュール126は、自分自身のプライベート仮想ゲーム122を作成および管理することを望むユーザに利用可能である。実装形態では、ユーザは、コラボレーションアプリケーション114を使用して、クリエータモジュール126にアクセスし得る。
実装形態では、クリエータモジュール126は、作成されたゲーム122および環境の制御を所有ユーザに与えることができ、所有ユーザは、作成されたゲーム122または環境との対話を誰が可能にされるか、またゲーム122または環境を修正し、編集し、それと対話する能力を誰が有するかに関して、管理ポリシーを設定し得る。別段の指定がない限り、管理制御を有するユーザは、本明細書で、所有ユーザと呼ばれることもある。いくつかの実装形態では、管理規則は、ゲーム122またはゲーム環境と対話するために起用され得るか、または対話することを所望し得る一定の個人に対する、様々なレベルの対話、修正、または編集能力を指定する程度まで細分化され得る。たとえば、個人は、コラボレーションプラットフォーム120内の友人もしくはソーシャルネットワークからの友人、または他の協働型もしくはグループに関連付けられたオンライン会場において起用され得る。実装形態では、クリエータモジュール126は、ゲーム122またはゲーム環境内で対話するための一般的な規則を含めて、またはそれらに加えて、そのようなポリシーを設定するための管理ツールを有する。
実装形態では、クライアントデバイス110Aから110Bは、各々、パーソナルコンピュータ(PC)、モバイルデバイス(たとえば、ラップトップ、モバイルフォン、スマートフォン、タブレットコンピュータ、またはネットブックコンピュータ)、ネットワーク接続テレビジョン、ゲーム機などの、コンピューティングデバイスを含んでよい。いくつかの実装形態では、クライアントデバイス110Aから110Bは、「ユーザデバイス」と呼ばれることもある。実装形態では、1つまたは複数のクライアントデバイス110は、所与の時点で、コラボレーションアプリケーション114を介してコラボレーションプラットフォーム120に接続し得る。
実装形態では、各クライアントデバイス110は、コラボレーションアプリケーション114のインスタンスを含み得る。一実装形態では、コラボレーションアプリケーション114は、ユーザが、コラボレーションプラットフォーム120によってホストされる仮想ゲーム内の仮想キャラクターを制御すること、または画像、ビデオアイテム、ウェブページ、文書など、コンテンツを閲覧することまたはアップロードすることなど、コラボレーションプラットフォーム120を使用してそれと対話することを可能にするアプリケーションであってよい。一例では、コラボレーションアプリケーション114は、ウェブサーバによってサービスされるコンテンツ(たとえば、仮想環境における仮想キャラクターなど)にアクセスすること、それを検索すること、提示すること、および/またはナビゲートすることができるウェブアプリケーション(たとえば、ウェブブラウザと連携して動作するアプリケーション)であってよい。別の例では、コラボレーションアプリケーション114は、ネイティブアプリケーションであってよい。コラボレーションアプリケーション114は、コンテンツ(たとえば、ウェブページ、メディアビューア)をユーザにレンダリング、表示、および/または提示することができる。ある実装形態では、コラボレーションアプリケーション114は、ウェブページ内に埋め込まれた埋込みメディアプレーヤー(たとえば、Flash(登録商標)プレーヤー)を含んでもよい。別の例では、コラボレーションアプリケーション114は、ユーザがコラボレーションプラットフォーム120と対話することを可能にするスタンドアロンアプリケーション(たとえば、モバイルアプリケーション、アプリ、またはゲームプログラム)であってよい。本開示の態様によれば、コラボレーションアプリケーション114は、ユーザが、コンテンツを構築し、作成し、編集し、コラボレーションプラットフォーム120にアップロードするため、ならびにコラボレーションプラットフォーム120と対話するための、コラボレーションプラットフォームアプリケーションであってよい。したがって、コラボレーションアプリケーション114は、サーバ130またはコラボレーションプラットフォーム120によってクライアントデバイス110Aおよび110Bに与えられ得る。別の例では、コラボ
レーションアプリケーション114は、サーバ130からダウンロードされるアプリケーションであってよい。いくつかの実装形態では、クライアントデバイス110のコラボレーションアプリケーション114は、ゲームエンジン124を含み得る。いくつかの実装形態では、クライアントデバイス110のゲームエンジン124は、コラボレーションアプリケーション114Aとは別個であってよい。
実装形態では、ユーザは、コラボレーションアプリケーション114を介してコラボレーションプラットフォーム120にログインし得る。ユーザは、ユーザアカウント情報(たとえば、ユーザ名およびパスワード)を与えることによって、ユーザアカウントにアクセスすることができ、ここで、ユーザアカウントは、コラボレーションプラットフォーム120の1つまたは複数のゲーム122に参加するために利用可能な1つまたは複数のキャラクターに関連付けられ得る。
一般に、コラボレーションプラットフォーム120によって実行されるとして、一実装形態で説明する機能は、他の実装形態では、適切な場合、クライアントデバイス110Aから110B、またはサーバ130上で実行されてもよい。加えて、特定の構成要素に属する機能は、一緒に動作する、異なるまたは複数の構成要素によって実行されてもよい。コラボレーションプラットフォーム120は、適切なアプリケーションプログラミングインターフェースを通じて他のシステムまたはデバイスに提供されるサービスとしてアクセスされてもよく、したがって、ウェブサイト内での使用に限定されない。
実装形態では、コラボレーションプラットフォーム120は、メッセージングモジュール128を含み得る。実装形態では、メッセージングモジュール128は、ユーザが、ネットワーク105などの通信システムを介して電子メッセージを交換することを可能にする、システム、アプリケーション、またはモジュールであってよい。メッセージングモジュール128は、コラボレーションアプリケーション114に関連付けられ得る(たとえば、コラボレーションアプリケーション114のモジュールであるか、または別個のアプリケーションである)。実装形態では、ユーザは、メッセージングモジュール128と対話し、コラボレーションプラットフォーム120のユーザ間で電子メッセージを交換し得る。メッセージングモジュール128は、たとえば、中でも、インスタントメッセージングアプリケーション、テキストメッセージングアプリケーション、電子メールアプリケーション、音声メッセージングアプリケーション、ビデオメッセージングアプリケーション、または複数のアプリケーションの組合せであってよい。
実装形態では、メッセージングモジュール128は、ユーザ同士の間の電子メッセージの交換を円滑にし得る。たとえば、あるユーザが、クライアントデバイス110A上でメッセージングアプリケーションにログインしてよく、別のユーザが、クライアントデバイス110B上でメッセージングアプリケーションにログインしてよい。2人のユーザは、インスタントメッセージング会話などの会話を開始し得る。メッセージングモジュール128は、コラボレーションプラットフォーム120のユーザ同士の間で電子メッセージを送り受信することによって、メッセージング会話を円滑にするのに役立ち得る。
限定ではなく、例示のために、グループゲームプレイモジュール140は、コラボレーションプラットフォーム120上で実装されるとして説明される。他の実装形態では、グループゲームプレイモジュール140は、サーバ130上で部分的にまたは完全に実装され得る。他の実装形態では、グループゲームプレイモジュール140は、クライアントデバイス110上で部分的にまたは完全に実装され得る。他の実装形態では、クライアントデバイス110、サーバ130、またはコラボレーションプラットフォーム120のうちの1つまたは複数の上で動作するグループゲームプレイモジュール140は、本明細書で説明する動作を実行するために連携して作動し得る。本開示の実装形態はコラボレーションプラットフォームの点で論じられるが、実装形態は、ユーザ同士の間に接続を与えるいずれのタイプのプラットフォームにも一般に適用され得る。グループゲームプレイモジュール140は、図2から図5に関して説明する動作など、本明細書で説明する動作を円滑にするのに役立ち得る。いくつかの実装形態では、グループゲームプレイモジュール140は、プラグインなど、別のアプリケーション(たとえば、コラボレーションアプリケーション114)の一部分であってよい。いくつかの実装形態では、グループゲームプレイモジュール140は、デバイス上で実行する別個のアプリケーションであってよい。
ここで論じるシステムがユーザに関する個人情報を収集する、または個人情報を使用し得る状況では、コラボレーションプラットフォーム120がユーザ情報(たとえば、ユーザのソーシャルネットワーク、社会的な活動またはアクティビティ、職業、ユーザの選好、またはユーザの現在の場所に関する情報)を収集するかどうかを制御する、またはユーザにより関連付けられ得るコンテンツをコンテンツサーバから受信するかどうか、かつ/もしくはどのように受信するかどうかを制御する機会をユーザに与えることができる。加えて、個人的に識別可能な情報が除去されるように、その情報が記憶または使用される前に一定のデータを1つまたは複数の方法で扱うことができる。たとえば、ユーザに関して個人的に識別可能な情報が何も決定され得ないように、または場所情報(街、郵便番号、または州のレベルまで)が取得される場合には、ユーザの特定の場所を決定することができないようにユーザの地理的場所が一般化され得るように、ユーザの識別情報を扱うことができる。このようにして、ユーザは、コラボレーションプラットフォーム120によってユーザに関する情報がどのように収集され、使用されるかに対する制御を有し得る。
図2は、本開示のいくつかの実装形態による、メモリシステムを含む別の例示的なコンピューティング環境200を示す。図2を説明するのを助けるために、図1のコンピューティング環境100の要素が使用され得る。たとえば、コンピューティング環境200は、図1のホストシステム120、コントローラ115、およびメモリデバイス112A〜112Nを含む。コンピューティング環境200は、限定ではなく、例示のために与えられることに留意されよう。実装形態では、システム200は、図1のコンピューティング環境100のいくつかの要素を含んでよく、すべての要素を含んでよく、その要素を全く含まなくてもよく、もしくはより多い要素を含んでよく、または異なる要素を含んでもよい。
いくつかの実装形態では、システム200のユーザは、グループゲームプレイに参加することを望む場合がある。グループゲームプレイは、ゲームの参加者(たとえば、プレイするユーザ)が近接して位置する(たとえば、同じ部屋の)ゲームのゲームプレイ(たとえば、リアルタイムゲームプレイ)を指すことがある。グループゲームプレイに参加するユーザは、一次ディスプレイ250などの、共通ディスプレイ上でゲームプレイを閲覧することができる。
いくつかの実装形態では、システム200は、近接して位置するユーザの1つまたは複数のグループにグループゲームプレイを与えるためのグループゲームプレイ特徴を実装するために使用され得る。ゲーム機などの一次クライアントデバイス245は、サーバ230(本明細書で、「サーバコンピュータ」とも呼ばれる)によってホストされるゲームを選択するために使用され得る。サーバ230は、プレイするユーザが選択されたゲームに対するグループゲームプレイに参加することを可能にするグループゲームプレイ特徴を実装し得る。ゲームを制御するためにゲーム機のゲームコントローラ(たとえば、ゲーム機にとってのネイティブゲームコントローラ)を使用するのではなく、プレイするユーザは、ゲームをプレイするためのゲームコントローラとして、モバイルフォンなど、その二次クライアントデバイス210を使用することができる。二次クライアントデバイス210は、二次クライアントデバイス210がサーバ230によってホストされるゲームを制御するためのゲームコントローラとして使用されることを可能にするアプリケーションまたはプラグインを有し得る。ゲームコントローラとして使用される二次クライアントデバイス210(たとえば、モバイルフォン)は、ゲームに対するユーザ入力を受信し、一次クライアントデバイス245を迂回する制御命令(たとえば、ゲームを制御するためのユーザ入力)をサーバ230に送ることができる。たとえば、モバイルフォンからの制御命令は、LANまたはWLAN(たとえば、ネットワーク205)を介してゲーム機によって受信されて実行されずに、サーバ230に直接送られてよい。いくつかの実装形態では、一次クライアントデバイス245を迂回する制御命令を送る二次クライアントデバイス210は、システム200が多数のプレイするユーザに対してスケーリングすることを可能にする。たとえば、多数のユーザに対してゲーム機を通じて制御命令を送ることは、ゲーム機にボトルネックを引き起こす可能性があり、これは、ゲームプレイの提示にレイテンシを引き起こし得る。二次クライアントデバイス210からの制御命令の受信に続いて、サーバ230は、ゲームプレイ命令(たとえば、グループゲームプレイに参加するキャラクターの位置および速度情報またはコマンド)を一次クライアントデバイス245に送る
ことができる。一次クライアントデバイス245は、ゲームプレイ命令を使用して、一次ディスプレイ250上に提示するためにゲームプレイをレンダリングし得る。ゲームプレイは、すべてのプレイするユーザが、ゲーム上でそのキャラクター活動をリアルタイムで同時に閲覧することができるように、一次ディスプレイ250上の第1のビュー(たとえば、三人称ビュー、分割スクリーン一人称ビュー)内に提示され得る。実装形態では、ゲーム機は、ゲームプレイに対するいずれの制御命令も二次クライアントデバイス210から受信しないことがあり、これは、一次クライアントデバイス245が、コンピューティングリソース(たとえば、処理リソースなど)をサーバ230から受信された命令に集中させ、一次ディスプレイ250上でゲームプレイをレンダリングすることを可能にし得る。
実装形態では、ゲームプレイは、ゲームとの1人または複数のプレーヤーの対話(たとえば、ユーザ入力)、およびディスプレイ上の対話の提示を指すことがある。リアルタイムまたはライブのゲームプレイは、過去のまたは記録されたゲームプレイではなく、ゲームプレイが生じるのと同時のゲームプレイのブロードキャスト、提示、または表示を指すことがある。たとえば、リアルタイムゲームプレイは、ユーザがゲームと対話するのと実質的に同時に一次ディスプレイ250上に表示され得る(少なくともリアルタイム活動の表示の技術的限度内で。たとえば、ゲームとのユーザ対話は、ユーザ入力からミリ秒内に表示可能であり、完全にリアルタイムであるかのようにユーザに見える可能性がある)。
実装形態では、ビュー(本明細書で、「視野」とも呼ばれる)は、ゲームカメラの視点から任意の所与の時点で見られることが可能であり、クライアントデバイスのディスプレイ内に提示される、観測可能なゲーム世界の範囲を指すことがある。たとえば、ゲームカメラのビューは、一人称視点もしくは三人称視点またはそれらの何らかの組合せからであってよい。
実装形態では、システム200は、サーバ230(たとえば、ハードウェアサーバコンピューティングデバイス)を含む。サーバ230は、図1のサーバ130と同様であってよいか、またはそれと同様の要素を含んでよい。実装形態では、サーバ230は、コラボレーションプラットフォーム120の一部分であってよい。他の実装形態では、サーバ230は、コラボレーションプラットフォーム120と別個であってよい。実装形態では、サーバ230は、グループゲームプレイモジュール140を含む。
実装形態では、システム200は、一次クライアントデバイス245を含む。一次クライアントデバイス245は、図1のクライアントデバイス110と同様であってよく、またはそれと同様の要素を含んでよい。いくつかの実装形態では、一次クライアントデバイス245は、コラボレーションアプリケーション114、ゲームエンジン124、またはグループゲームプレイモジュール140(図示せず)のうちの1つまたは複数を含み得る。いくつかの実装形態では、一次クライアントデバイスは、パーソナルコンピュータまたはゲーム機(たとえば、Xbox(商標)またはPlayStation(商標))であってよい。いくつかの実装形態では、一次クライアントデバイス245は、一次クライアントデバイス245と対話し、ユーザ入力を一次クライアントデバイス245に通信する、ネイティブゲームコントローラ(図示せず)などのアクセサリーを有し得る。「ネイティブゲームコントローラ」は、一次クライアントデバイス245と直接対話するゲームコントローラを指すことがある(また、一次クライアントデバイス245との対話専用のデバイスであってよい)。別段の説明がない限り、「ゲームコントローラ」は、本明細書で二次クライアントデバイス210を指すことがあることに留意されよう。
実装形態では、システム200は、一次ディスプレイ250を含む。いくつかの実装形態では、一次ディスプレイ250は、一次クライアントデバイス245に結合され得る。実装形態では、一次ディスプレイ250は、一次クライアントデバイス245から表示命令を受信し、ユーザによる消費のために、マルチプレーヤーゲームなどのゲームのゲームプレイのビューを一次ディスプレイ250上に提示し得る。いくつかの実装形態では、一次ディスプレイ250は、たとえば、テレビジョンまたは投影機であってよい。実装形態では、一次ディスプレイ250から表示されるビューは、近接して位置する(たとえば、同じ部屋の)すべてのプレイするユーザがプレイするユーザのそれぞれのキャラクターのゲーム内の活動を見ることができるような視点(たとえば、三人称視点)からであり得る。
システム200は、一般に、二次クライアントデバイス210(本明細書で、「ゲームコントローラ」とも呼ばれる)と呼ばれる二次クライアントデバイス210Aから210Nを含む。二次クライアントデバイス210は、任意の数のユーザに関連付けられた任意の数のデバイスを含み得る。二次クライアントデバイス210は、図1のクライアントデバイス110と同様であってよいか、またはそれと同様の要素を含んでよい。いくつかの実装形態では、二次クライアントデバイス210は、ディスプレイ212A〜212Nなどのディスプレイを有し得る。実装形態では、二次クライアントデバイス210は、コラボレーションアプリケーション114、ゲームエンジン124、またはグループゲームプレイモジュール140(図示せず)のうちの1つまたは複数を含み得る。いくつかの実装形態では、二次クライアントデバイス210は、たとえば、モバイルデバイス(たとえば、モバイルフォン、タブレットなど)、パーソナルコンピュータ、またはそれらの組合せであってよい。たとえば、プレイするユーザは、一次ディスプレイ250上に表示されている特定のゲーム内のキャラクターを制御するためのゲームコントローラとしてモバイルフォンを使用することができる。いくつかの実装形態では、二次クライアントデバイス210は、一次クライアントデバイス245を迂回して、制御命令(たとえば、右、左、上、下などのユーザ入力、ユーザ選択、またはキャラクターの位置および速度情報など)をサーバ230に直接送ることができる。たとえば、二次クライアントデバイス210は、LANまたはWLANなど、ネットワーク205に接続されてよく、一次クライアントデバイス245を通じてではなく、ネットワーク205を介して制御命令をサーバ230に送る。
いくつかの実装形態では、ゲームプレイのビューは、一次ディスプレイ250上に提示されるビューとは異なる、二次クライアントデバイス210のディスプレイ112上に提示され得る。たとえば、一次ディスプレイ250は、三人称視点からのビュー(たとえば、トップダウンビュー)を提示してよく、二次クライアントデバイス210の各々は、二次クライアントデバイス210に関連付けられたそれぞれのキャラクターの各々に対して一人称視点からのビューを提示し得る。いくつかの実装形態では、ゲームプレイ命令は、それぞれの二次クライアントデバイス210上にゲームプレイのビューをレンダリングするために、ゲームプレイ命令が、それぞれの二次クライアントデバイス210によって使用され得る二次クライアントデバイス210にサーバ230から直接(一次クライアントデバイス245を迂回して)送られ得る。
実装形態では、サーバ230は、ネットワーク205を介して、一次クライアントデバイス245または二次クライアントデバイス210に結合され得る。ネットワーク205は、図1に関して説明したネットワーク105と同様であってよい。いくつかの実装形態では、ネットワーク205は、WLANまたはLANを含み得る。
上述のように、いくつかの実装形態では、異なる場所に位置するユーザの複数のグループが、同じゲームに対する異なるグループゲームプレイセッションに参加することができる。たとえば、ユーザの第1のグループは、合衆国内の近接する位置(たとえば、同じ部屋)に位置してよく、ユーザの別のグループは、ノルウェー内の近接する位置に位置してよい。ユーザの2つのグループは、ユーザの第1のグループの第1のチームがユーザの第2のグループの第2のチームと対抗するマルチプレーヤーゲームをプレイし得る。ユーザのグループの各々は、システム200を使用して、グループゲームプレイセッションを実装し得る。たとえば、ユーザの第1のグループは、一次クライアントデバイス245を使用して、(たとえば、チームとして一緒にプレイするための)第1のグループゲームセッションを要求し得る。ユーザの第1のグループは、一次クライアントデバイス245、およびコラボレーションプラットフォーム(たとえば、サーバ230)に結合された二次クライアントデバイス210の第1のグループを有し得る。ユーザの第2のグループは、異なる一次クライアントデバイスを使用して、(たとえば、第1のチームに対するチームとして一緒にプレイするために)同じマルチプレーヤーゲームに対する第2のグループゲームプレイセッションを要求することもできる。ユーザの第2のグループは、異なる一次クライアントデバイス(たとえば、異なるゲーム機)、およびコラボレーションプラットフォーム(たとえば、サーバ230)に結合された二次クライアントデバイスの第2のグループを有し得る。合衆国内に位置し、第1のグループゲームプレイセッションを使用する第1のチームは、第2のグループゲームプレイセッションを使用する、ノルウェー内の第2のチームと対抗し得る。
図3は、本開示の実装形態による、グループゲームプレイに関する動作の図である。システム300は、図1に関して説明したシステムアーキテクチャ100および図2に関して説明したシステムアーキテクチャ200と同様の要素を含み得る。図1および図2の要素は、本明細書で図3を説明するのを助けるために使用され得ることに留意されよう。いくつかの実装形態では、(グループゲームプレイモジュール140を使用する)コラボレーションプラットフォーム120またはサーバ230は、(それぞれのグループゲームプレイモジュール140を使用する)二次クライアントデバイス210および(グループゲームプレイモジュール140を使用する)一次クライアントデバイス245と対話して、図3に関して説明する動作を実行することができる。他の実装形態では、図1のシステム100または図2のシステム200に関するデバイスのうちのいずれかが、図3に関して説明する動作のうちの1つまたは複数を実行し得る。限定ではなく、例示のために、コラボレーションプラットフォーム120によって実行されるとして説明する動作は、他の説明がない限り、コラボレーションプラットフォーム120の1つまたは複数の要素によって実行され得る。限定ではなく、例示のために、二次クライアントデバイス210によって実行される1つまたは複数の動作は、コラボレーションアプリケーション114、グループゲームプレイモジュール140、またはゲームエンジン124のうちの1つまたは複数によって実行され得る。限定ではなく、例示のために、一次クライアントデバイス245によって実行される1つまたは複数の動作は、コラボレーションアプリケーション114、グループゲームプレイモジュール140、またはゲームエンジン124のうちの1つまたは複数によって実行され得る。限定ではなく、例示のために、単一の二次クライアントデバイス210が示されていることに留意されよう。図3の二次クライアントデバイス210に関して説明したのと同様の方法で、任意の数の二次クライアントデバイス210が実装され得ることにさらに留意されよう。図3に関して説明する動作は、限定ではなく、例示のために連続的に実行されるように示されている。実装形態では、これらの動作は、任意の順序で実行されてよく、複数回実行されてよく、または同じ動作、より少ない動
作、または追加の動作を含んでよいことに留意されよう。
実装形態では、動作310は、ログイン動作を含み得る。たとえば、ユーザは、一次クライアントデバイス245のネイティブゲームコントローラを使用して、コラボレーションプラットフォーム120にアクセスし得る。たとえば、ユーザは、一次クライアントデバイス245を介して、ユーザアカウント情報(たとえば、ユーザ名およびパスワード)など、ログイン情報をコラボレーションプラットフォーム120に供給し得る。実装形態では、コラボレーションプラットフォーム120は、ログイン情報を検証し得る。
実装形態では、検証に応答して、コラボレーションプラットフォーム120は、動作312を実行して、コラボレーションプラットフォーム120、および特定のユーザアカウントに関連付けられたユーザアカウントコンテンツに対するアクセスを一次クライアントデバイス245のユーザに許可することができる。ログイン情報が検証されないことに応答して、コラボレーションプラットフォーム120は、ログイン情報を再提出し、ログイン情報が検証されるまで、コラボレーションプラットフォーム120に対するアクセスを拒否するように一次クライアントデバイス245のユーザに要求し得る。代替実装形態では、ユーザは、二次クライアントデバイス210を使用して、動作310を実行し得る。
実装形態では、動作314において、一次クライアントデバイス245のユーザは、マルチプレーヤーゲームのグループゲームプレイ特徴に対するユーザ要求をコラボレーションプラットフォーム120に提出し得る。一例では、ユーザは、一次クライアントデバイス245のネイティブゲームコントローラを使用して、要求をコラボレーションプラットフォーム120に提出し得る。一例では、一次クライアントデバイス245のユーザは、一次クライアントデバイス245を使用して、コラボレーションプラットフォーム120によってホストされるゲームを選択し得る。ゲームの選択に応答して、一次クライアントデバイス245は、グループゲームプレイに対するユーザ要求を自動的に送ることができる(たとえば、選択されたゲームのみがグループゲームプレイをサポートする)。
別の例では、ユーザは、一次クライアントデバイス245を使用して、コラボレーションプラットフォーム120にアクセスし、「グループゲームプレイ」特徴を含む、コラボレーションプラットフォーム120によってホストされるゲームにアクセスすることができる。ユーザは、ゲームを選択し、グループゲームプレイに対するユーザ要求をコラボレーションプラットフォーム120に送るように一次クライアントデバイス245を開始する、グループゲームプレイ特徴(たとえば、ユーザインターフェース要素)をさらに選択し得る。
いくつかの実装形態では、グループゲームプレイを要求するユーザ入力の受信に続いて、一次クライアントデバイス245に関連付けられたネイティブゲームコントローラは、一次クライアントデバイス245の代わりに、ゲームをやめることまたは終了することを除いて、非アクティブになり得る(たとえば、選択されたゲームにおいてキャラクターの制御に寄与しない)。代替実装形態では、ユーザ要求は、二次クライアントデバイス210からコラボレーションプラットフォーム120に送られてよい(たとえば、動作314は、二次クライアントデバイス210によって実行され得る)。
実装形態では、動作316において、一次クライアントデバイス245からの、ゲームのグループゲームプレイ特徴に対するユーザ要求の受信に応答して、コラボレーションプラットフォーム120は、ゲームに対するグループゲームプレイに含めるユーザを識別する。いくつかの実装形態では、グループゲームプレイに対するユーザ要求は、グループゲームプレイに招待されることになる1人または複数のユーザを特定し得る。たとえば、グループゲームプレイに対するユーザ要求を送ったユーザが、グループゲームプレイに含まれるユーザのグループを選択し得る。ユーザのグループは、コラボレーションプラットフォーム120に送られるグループゲームプレイに対するユーザ要求内に含まれ得る。コラボレーションプラットフォーム120は、グループゲームプレイに対するユーザ要求を解析して、グループゲームプレイに含めるユーザを識別し得る。
他の実装形態では、コラボレーションプラットフォーム120は、コラボレーションプラットフォーム120にログインしており、一次クライアントデバイス245と同じLANまたはWLANにアクセスしているユーザを識別し得る。たとえば、コラボレーションプラットフォーム120は、グループゲームプレイ特徴のユーザ要求に関連付けられたネットワーク識別子を識別し得る。コラボレーションプラットフォーム120は、コラボレーションプラットフォーム120にアクセスし、同じネットワーク識別子を使用するユーザを識別し得る。いくつかの実装形態では、ネットワーク識別子は、二次クライアントデバイス210および一次クライアントデバイス245によってアクセスされているWLANまたはLANを識別する識別子を含んでよい。実装形態では、ネットワーク識別子は、サービスセット識別子(SSID)または他のネットワーク識別子であってよい。
さらに他の実装形態では、グループゲームプレイ特徴に対するユーザ要求に応答して、コラボレーションプラットフォーム120は、グループゲームプレイ識別子を一次クライアントデバイス245に送ることができる。グループゲームプレイ識別子は、たとえば、一次クライアントデバイス245によって一次ディスプレイ250上に表示され得る。二次クライアントデバイス210のユーザは、グループゲームプレイ識別子を各自の二次クライアントデバイス210に入力し、グループゲームプレイに参加する招待に対する要求(グループゲームプレイ識別子を含む)をコラボレーションプラットフォーム120に送ることができる。
動作318において、コラボレーションプラットフォーム120は、ゲームのグループゲームプレイに参加するよう識別されたユーザを招待する招待を二次クライアントデバイス210に送ることができる。ユーザは、動作316において識別されたユーザであってよい。いくつかの実装形態では、招待は、選択に応答して、ユーザ(たとえば、ユーザのキャラクター)を特定のゲームに入れることができるリソースロケータ(たとえば、リンク)を含み得る。招待は、サーバ識別子(たとえば、特定のグループゲームプレイセッションに対する一意の識別子)を含んでもよい。動作322において下記で説明するように、サーバ識別子は、ゲーム用のキャラクターがホストされることになる特定のサーバを識別するために使用され得る。
動作320において、1つまたは複数の二次クライアントデバイス210は、ゲームのグループゲームプレイに参加するための招待に対する応答をコラボレーションプラットフォーム120に送る。いくつかの実装形態では、応答は、ユーザ受諾またはユーザ辞退であってよい。
動作322において、コラボレーションプラットフォーム120は、ゲームのグループゲームプレイに参加する招待を受諾したユーザのキャラクターをホストするサーバ(たとえば、ハードウェアサーバのクラスタ)を識別する。上述のように、招待は、ゲーム用のキャラクターがホストされる特定のサーバを識別するために使用され得るサーバ識別子を含み得る。いくつかの実装形態では、サーバ識別子は、ゲームがホストされるサーバを識別することもできる。いくつかの実装形態では、ゲームのグループゲームプレイに参加する招待に対するユーザ受諾の受信に応答して、コラボレーションプラットフォーム120は、サーバ識別子に基づいて、特定のサーバコンピュータ上でホストされるようにユーザに関連付けられたキャラクターを指示する。
いくつかの実装形態では、サーバ識別子は、一次クライアントデバイス245に対する特定のグループゲームプレイセッションに関連付けられた一意の識別子であり得る。サーバ識別子は、ユーザのキャラクターがホストされることになるサーバ(ゲームがホストされるのと同じサーバであってもそうでなくてもよい)を識別するために使用され得る。いくつかの実装形態では、サーバ識別子は、招待の中で送られるリソースロケータ(たとえば、一意のリンク)であってよい。他の実装形態では、サーバ識別子は、リソースロケータ内に埋め込まれてよく、またはリソースロケータと異なってもよい。
共通サーバ上でキャラクター(または、キャラクターおよびゲーム)をホストすることは、コンピューティングリソースを使用する際により高い効率を可能にし得ることに留意されよう。たとえば、共通サーバ上で実行するゲーム論理は、複数のキャラクター間で共有され得る。たとえば、キャラクターが壁にぶつかり、サーバは、物理エンジンを使用して、キャラクターと壁との物理的相互作用を示す物理コマンドを計算する。別のキャラクターが同じまたは同様の方法で同じ壁にぶつかった場合、前に計算された物理コマンドがキャッシュされ、その壁との他のキャラクターの衝突に対して再使用され得る。他の実装形態では、キャラクターは、共通サーバ上でホストされなくてもよい。
動作324において、二次クライアントデバイス210は、ゲームにおいてゲーム内の活動を制御するための二次クライアントデバイス210に対するユーザ入力に応答して、制御命令をコラボレーションプラットフォーム120に送る。上述のように、二次クライアントデバイス210は、コラボレーションプラットフォーム120によってホストされるゲームを制御するためのゲームコントローラとして使用され得る。制御命令は、ユーザのキャラクターのゲーム内の活動を示す命令を指すことがある。たとえば、制御命令は、右、左、上、下、ユーザ選択、ジャイロスコープの位置および方向データ、力センサーデータなど、ゲーム内の活動を制御するためのユーザ入力を含み得る。制御命令は、キャラクターの位置および速度情報を含んでよい。実装形態では、制御命令は、一次クライアントデバイス245を迂回して、コラボレーションプラットフォームに直接送られる(たとえば、場合によっては、そのいずれもが一次クライアントデバイス245でない中間ノードを通って送られる)。
いくつかの実装形態では、一次クライアントデバイス245は、二次クライアントデバイス210から制御命令を受信する(たとえば、一次クライアントデバイス245はLANに対するルータを含む)ことができるが、制御命令は、依然として一次クライアントデバイス245を迂回し得る。たとえば、一次クライアントデバイス245は、制御命令を実行しなくてよく、または受信された制御命令に基づいて、一次ディスプレイ250上に表示するためにいずれのゲームプレイもレンダリングしなくてよい。受信された制御命令は、送信動作以外の追加処理なしに、コラボレーションプラットフォーム120に経路指定される。
動作326において、コラボレーションプラットフォーム120は、ゲームプレイ命令を生成するために制御命令に対してサーバ側処理を実行する。ゲームプレイ命令は、一次クライアントデバイス245または二次クライアントデバイス210などのクライアントデバイスが、マルチプレーヤーゲームなど、ゲームのゲームプレイをレンダリングすることを可能にする命令であり得る。制御命令は、ユーザ入力(たとえば、制御命令)、キャラクターの位置および速度情報、またはコマンド(たとえば、物理コマンド、レンダリングコマンドなど)のうちの1つまたは複数を含んでよい。いくつかの実装形態では、コラボレーションプラットフォーム120と一次クライアントデバイス245(および、二次クライアントデバイス210)が両方ともゲームエンジン124を実行する。コラボレーションプラットフォーム120は、いくつかもしくはすべてのゲームエンジン機能を実行する(たとえば、物理コマンド、レンダリングコマンドなどを生成する)か、またはいくつかもしくはすべてのゲームエンジン機能を一次クライアントデバイス245にオフロードすることができる。いくつかの実装形態では、各ゲームは、コラボレーションプラットフォーム120上で実行されるゲームエンジン機能と一次クライアントデバイス245(または二次クライアントデバイス210)上で実行されるゲームエンジン機能との間に異なる比率を有し得る。たとえば、追加のゲームエンジン機能(たとえば、レンダリングコマンドの生成)が一次クライアントデバイス245にオフロードされ得ると同時に、少なくとも2つのゲームオブジェクト同士の間に衝突が存在する場合、物理コマンドを生成するためにコラボレーションプラットフォーム120のゲームエンジン124が使用され得る。いくつかの実装形態では、コラボレーションプラットフォーム120および一次クライアントデバイス245上で実行されるゲームエンジン機能の比率は、ゲームプレイ条件に基づいて(たとえば、動的に)変更され得る。たとえば、一次クライアントデバイス245上でグループゲームプレイに参加するユーザの数がしきい値数を超える場合、コラボレーションプラットフォーム120は、一次クライアントデバイス245が酷使されないように、またはレイテンシを改善するように、より多くのゲームエンジン機能を実行する
ことができる。
動作328において、一次クライアントデバイス245を迂回した制御命令の受信(たとえば、動作324)に応答して、コラボレーションプラットフォーム120は、ゲームのゲームプレイの第1のビューを一次ディスプレイ250上に提示させる第1のゲームプレイ命令を一次クライアントデバイス245に与える。たとえば、一次クライアントデバイス245は、ゲームプレイ命令を使用して、一次ディスプレイ250上にリアルタイムのゲームプレイをレンダリングするための表示命令(たとえば、レンダリングコマンド)を生成することができる。いくつかの実装形態では、第1のゲームプレイ命令は、二次クライアントデバイス210を迂回して、コラボレーションプラットフォーム120から一次クライアントデバイス245に直接送られる(たとえば、場合によっては、そのいずれもが二次クライアントデバイス210でない中間ノードを通って送られる)。
上述のように、ゲームプレイは、一次ディスプレイ250上で、すべてのプレイするユーザが各自のキャラクターのゲームプレイを見ることができる視点からのビューに提示され得る。たとえば、一次ディスプレイ250上のビューは、トップダウンビューまたはサイドビューなどの、三人称視点からであってよい。別の例では、一次ディスプレイ250上のビューは、グループゲームプレイに参加するすべてのキャラクターが一人称視点から分割スクリーンのセクション内に示される、分割スクリーンビューなどの一人称視点からであってよい。異なるビューの例が図4A〜図4Cにさらに示されている。
一次クライアントデバイス245は、一次ディスプレイ250上にゲームプレイの第1のビューを与えるためのレンダリングコマンドを実行し得ることに留意されよう。実装形態では、レンダリングコマンドは、ゲームコントローラ(または、一次クライアントデバイス245にとってのネイティブゲームコントローラから)から直接受信された制御情報に基づかない。実装形態では、一次クライアントデバイス245は、コラボレーションプラットフォーム120からのゲームプレイ命令のみに応答し(たとえば、一次クライアントデバイス245は、ゲームエンジン機能を実行しているが、コラボレーションプラットフォーム120からの命令のみによる)、二次クライアントデバイス210からの入力は受信していない。そのようなシステムアーキテクチャ(たとえば、システム200)は、コンピューティングリソースをコラボレーションプラットフォーム120とゲームコントローラ(たとえば、二次クライアントデバイス210またはネイティブゲームコントローラ)の両方から命令を送り、受信し、処理すること専用にするのではなく、コンピューティングリソースをコラボレーションプラットフォーム120からゲームプレイ命令を扱うこと専用にすることによって、一次クライアントデバイス245がより効率的に動作することを可能にする。加えて、コラボレーションプラットフォーム120は、一次クライアントデバイス245の性能を高める(たとえば、一次クライアントデバイス245上の演算負荷を低減させる)ために、コラボレーションプラットフォーム120および一次クライアントデバイス245上で実行されるゲームエンジン機能の比率を変更し得る。
動作330において、コラボレーションプラットフォーム120は、第2のゲームプレイ命令を二次クライアントデバイス210に与える。第2のゲームプレイ命令は、ゲームプレイの提示を二次クライアントデバイス210のディスプレイ上に提示させ得る。実装形態では、二次クライアントデバイス210上のゲームプレイの第2のビューは、一次ディスプレイ250上のゲームプレイの第1のビューとは異なる。たとえば、二次クライアントデバイス210上のビューは、一人称視点からであってよい。一次クライアントデバイス245上のビューは、三人称視点からであってよい。実装形態では、二次クライアントデバイス210上のビューは、互いに異なってよい。たとえば、二次クライアントデバイス210上のビューは、それぞれの二次クライアントデバイス210のユーザに関連付けられたそれぞれのキャラクターの一人称視点からであってよい。いくつかの実装形態では、二次クライアントデバイス210上のビューは、ゲーム内の活動を制御するためのユーザ制御(たとえば、上、下、右、左、「A」および「B」など、ユーザ選択ユーザインターフェース)を含み得る。いくつかの実装形態では、二次クライアントデバイス210上に提示されるビューは、ゲームプレイを含むのではなく、たとえば、ゲームのタイトルまたはユーザ制御など、追加情報を含んでよい。いくつかの実装形態では、第2のゲームプレイ命令は、一次クライアントデバイス245を迂回して、コラボレーションプラットフォーム120から二次クライアントデバイス210に直接送られる(たとえば、場合によっては、そのいずれもが一次クライアントデバイス245でない中間ノードを通って送られる)。
動作332において、二次クライアントデバイス210は、グループゲームプレイに参加する別のユーザ(たとえば、もう1つの二次クライアントデバイス210)にメッセージ(たとえば、インスタントメッセージ)を送ることができる。動作334において、動作332のメッセージは、コラボレーションプラットフォーム120によって受信されてフィルタリングされ得る。たとえば、フィルタは、何らかの不適切な言語または機密情報(たとえば、電話番号、住所、クレジットカード情報)を探索して除去し得る。動作336において、フィルタリングされたメッセージは、一次ディスプレイ250上に表示するために一次クライアントデバイス245に送られる。たとえば、メッセージは、その受信者ユーザのみに関連付けられたチャットエリア内に表示され得る。別の例では、メッセージは、グループゲームプレイのすべてのユーザが議論に参加することができる、一次ディスプレイ250上の提示内のグループチャットエリア内に表示され得る。他の実装形態では、メッセージは、受信者の二次クライアントデバイス内に提示するためにメッセージの受信者の二次クライアントデバイスに送られてよい。
上述のように、ゲームのグループゲームプレイ特徴は、ユーザの第1のグループとは異なる場所に位置するユーザの別のグループに対して実装され得る。実装形態では、ユーザの第2のグループは、上記で説明したのと同様の方法で、グループゲームプレイ特徴を実装し得る。ユーザの第2のグループは、ゲームコントローラとして二次クライアントデバイスの第2のセット、異なる一次クライアントデバイス、および異なる一次ディスプレイを使用して、ゲームのグループゲームプレイセッションに参加し得る。
さらに他の実装形態では、ユーザは、グループゲームプレイセッションの一部ではないゲームに参加し得る。たとえば、あるユーザのグループが、特定のゲームに対するグループゲームプレイセッションに参加することができ、異なる場所にいる別の人物が、同じゲームをプレイしていることがある。グループゲームプレイに参加していない人物は、一次ディスプレイ250上に提示されるビューからグループゲームプレイを閲覧することができないが、たとえば、そのクライアントデバイスからの一人称視点からゲームプレイを閲覧し得る。
図4A〜図4Cは、本開示の実装形態による、一次ディスプレイ上のマルチプレーヤーゲームのゲームプレイのビューおよび二次クライアントデバイスのディスプレイ上のゲームプレイのビューを示す。前の図の要素は、図4A〜図4Cを説明するのを助けるために使用され得ることにさらに留意されよう。
図4Aは、本開示の実装形態による、第1の時点における、一次ディスプレイ250上のマルチプレーヤーゲームのゲームプレイのビュー400および二次クライアントデバイス210のディスプレイ112上の同じマルチプレーヤーゲームのゲームプレイのビュー410を示す。ビュー400は、一次ディスプレイ250上に示すゲームプレイのトップダウンビュー(たとえば、レーストラック上のキャラクターの位置)を示す。たとえば、トップダウンビューは、ゲーム世界の上のカメラの視点からのゲームの世界マップを示し、ゲームのグループゲームプレイに参加するすべてのキャラクター(たとえば、1から5)を示す。ビュー410は、二次クライアントデバイス210のディスプレイ112上に示されたキャラクター1のトップダウンビューを示す。ビュー410は、キャラクター1(たとえば、車両内、すなわち、ゲームオブジェクト417)およびゲーム世界の一部分のみを示す。ビュー410は、ユーザ制御415A(「ジョイスティック」、たとえば、上、下、右、左)および、キャラクター1のゲーム内の活動を制御するために使用されるユーザ制御415B(たとえば、ユーザ選択「A」および「B」)を示す。ビュー400およびビュー410は、同じ時点についての、ただし異なるビューからのゲームプレイを示すことに留意されよう。
図4Bは、本開示の実装形態による、第2の時点における、一次ディスプレイ250上のマルチプレーヤーゲームのゲームプレイのビュー430および二次クライアントデバイス210のディスプレイ112上の同じマルチプレーヤーゲームのゲームプレイのビュー440を示す。ビュー430は、一次ディスプレイ250上に示されるゲームプレイのサイドビューを示す。ビュー430は、すべてのキャラクター1〜5の活動を同時に示す。加えて、ビュー430は、キャラクター1とキャラクター2の間の現在の例示における、すべてのキャラクターの間のチャットメッセージを表示し得るメッセージエリア435を示す。ビュー440は、二次クライアントデバイス210のディスプレイ112上に示されたキャラクター1の一人称視点(たとえば、キャラクター1がキャラクター2を見ている)からのサイドビューを示す。ビュー430およびビュー440は、同じ時点についての、ただし異なるビューからのゲームプレイを示すことに留意されよう。
図4Cは、本開示の実装形態による、第3の時点における、一次ディスプレイ250上のマルチプレーヤーゲームのゲームプレイのビュー460および二次クライアントデバイス210のディスプレイ112上の同じマルチプレーヤーゲームのゲームプレイのビュー470を示す。ビュー460は、一次ディスプレイ250上に示されるゲームプレイの分割スクリーンビューを示す。分割スクリーンのセクションは各々、特定のキャラクターに対する三人称視点からのビューを示す。たとえば、左上の分割スクリーンは、キャラクター1の三人称視点からのビューを示す。他の実装形態では、分割スクリーンビューは、キャラクターの各々の一人称視点からのビューを示し得る。ビュー470は、キャラクター1に対する三人称視点からのビューを示す。ビュー460およびビュー470は、同じ時点についての、ただし異なるビューからのゲームプレイを示すことに留意されよう。
図5は、本開示の実装形態による、近接して位置するユーザに対してマルチプレーヤーゲームのグループゲームプレイ特徴を実装するための方法500を示す流れ図である。方法500は、ハードウェア(たとえば、回路、専用論理、プログラマブル論理、マイクロコード)、ソフトウェア(たとえば、ハードウェアシミュレーションを実行するために処理デバイス上で実行される命令)、またはそれらの組合せを含む処理論理によって実行され得る。いくつかの実装形態では、コラボレーションプラットフォーム120において実行するグループゲームプレイモジュール140は、いくつかのまたはすべての動作を実行し得る。他の実装形態では、コラボレーションプラットフォーム120、クライアントデバイス110A、クライアントデバイス110B、サーバ130、またはそれらの組合せにおいて実行するグループゲームプレイモジュール140が、いくつかのまたはすべての動作を実行し得る。いくつかの実装形態では、コラボレーションプラットフォーム120(または、サーバ230)、二次クライアントデバイス210、一次クライアントデバイス245、またはそれらの組合せにおいて実行するグループゲームプレイモジュール140が、いくつかまたはすべての動作を実行し得る。図1から図4Cの要素は、方法500を説明するのを助けるために使用され得る。いくつかの実装形態では、方法500は、任意の順序で実行される同じ動作、異なる動作、より少ない動作、より多くの動作を含んでよいことに留意されよう。
方法500のブロック505において、方法500を実行する処理論理は、マルチプレーヤーゲームのグループゲームプレイに対するユーザ要求を受信する。グループゲームプレイは、近接して位置するユーザが、ゲームプレイを制御するためのゲームコントローラとして二次クライアントデバイス210を使用してマルチプレーヤーゲームに参加することを可能にし、ユーザによる消費のために、ゲームプレイを一次ディスプレイ250上に提示させる。
ブロック510において、一次クライアントデバイスからのマルチプレーヤーゲームのグループゲームプレイに対するユーザ要求の受信に応答して、処理論理は、マルチプレーヤーゲームのグループゲームプレイの中に含めるユーザを識別する。
ブロック515において、処理論理は、マルチプレーヤーゲームのグループゲームプレイに参加するようユーザを招待するための招待を二次クライアントデバイス210に送る。
ブロック520において、処理論理は、マルチプレーヤーゲームのグループゲームプレイに参加するための招待に対するユーザ受諾を二次クライアントデバイスから受信する。
ブロック525において、マルチプレーヤーゲームのグループゲームプレイに参加するための招待に対するユーザ受諾の受信に応答して、処理論理は、サーバ識別子に基づいて、ユーザに関連付けられたキャラクターが特定のサーバコンピュータ(たとえば、サーバ230)上でホストされるよう、指示する。いくつかの実装形態では、特定のサーバコンピュータは、マルチプレーヤーゲームもホストする。
ブロック530において、処理論理は、一次クライアントデバイス245を迂回した制御命令を二次クライアントデバイス210から受信する。制御命令は、マルチプレーヤーゲーム内の活動(たとえば、ゲーム内の活動)を制御するための、二次クライアントデバイス210に対するユーザ入力に応答する。
ブロック535において、一次クライアントデバイス245を迂回した制御命令の受信に応答して、処理論理は、ユーザによる消費のために、マルチプレーヤーゲームのゲームプレイの第1のビューを一次ディスプレイ250上に提示させる第1のゲームプレイ命令を一次クライアントデバイス245に与える。いくつかの実装形態では、処理論理は、ブロック530に戻り、新しいゲームプレイ命令(図示せず)を生成するために使用される追加の制御命令の受信を待機し得る。
ブロック540において、処理論理は、処理論理によって受信された制御命令に基づいて、第2のゲームプレイ命令を二次クライアントデバイス210に与える。第2のゲームプレイ命令は、マルチプレーヤーゲームに関連付けられた提示を二次クライアントデバイス210のディスプレイ112上に提示させ得る。いくつかの実装形態では、処理論理は、ブロック530に戻り、一次クライアントデバイス245または二次クライアントデバイス210に対する新しいゲームプレイ命令を生成するために使用される追加の制御命令の受信を待機し得る。
図6は、実装形態による、例示的なコンピュータシステム600を示すブロック図である。コンピュータシステム600は、本明細書で論じる方法論のうちのいずれか1つまたは複数をマシンに実行させる1セットまたは複数セットの命令を実行する。命令のセット、命令などは、コンピュータシステム600によって実行されると、コンピュータシステム600にグループゲームプレイモジュール140の1つまたは複数の動作を実行させる命令を指すことがある。マシンは、クライアント-サーバネットワーク環境におけるサーバもしくはクライアントデバイスとして、またはピアツーピア(もしくは、分散型)ネットワーク環境におけるピアマシンとして、動作し得る。マシンは、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、モバイル電話、ウェブアプライアンス、サーバ、ネットワークルータ、スイッチもしくはブリッジ、またはそのマシンによってとられるべき活動を指定する1セットの命令を(連続的にまたは別様に)実行することができる任意のマシンであってよい。さらに、単一のマシンのみが示されているが、「マシン」という用語は、本明細書で論じる方法論のうちのいずれか1つまたは複数を実行するための命令のセットを個々にまたは共に実行するマシンの任意の集まりを含むものとも理解されるものとする。
コンピュータシステム600は、バス608を介して互いに通信する、処理デバイス602、メインメモリ604(たとえば、読取り専用メモリ(ROM)、フラッシュメモリ、同期DRAM(SDRAM)またはランバスDRAM(RDRAM)などのダイナミックランダムアクセスメモリ(DRAM)など)、スタティックメモリ606(たとえば、フラッシュメモリ、スタティックランダムアクセスメモリ(SRAM)など)、およびデータ記憶デバイス616を含む。
処理デバイス602は、マイクロプロセッサ、中央処理装置など、1つまたは複数の汎用処理デバイスを表す。より具体的には、処理デバイス602は、複合命令セットコンピューティング(CISC:complex instruction set computing)マイクロプロセッサ、縮小命令セットコンピューティング(RISC:reduced instruction set computing)マイクロプロセッサ、超長命令語(VLIW:very long instruction word)マイクロプロセッサ、または命令セットの組合せを実装する他の命令セットもしくは処理デバイスを実装する処理デバイスであってよい。処理デバイス602は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサなど、1つまたは複数の専用処理デバイスであってもよい。処理デバイス602は、本明細書で論じる動作を実行するために、システムアーキテクチャ100およびグループゲームプレイモジュール140の命令を実行するように構成される。
コンピュータシステム600は、ローカルエリアネットワーク(LAN)、イントラネット、エクストラネット、またはインターネットなど、ネットワーク618上で他のマシンとの通信を与えるネットワークインターフェースデバイス622をさらに含み得る。コンピュータシステム600は、表示デバイス610(たとえば、液晶ディスプレイ(LCD)または陰極線管(CRT))、英数字入力デバイス612(たとえば、キーボード)、カーソル制御デバイス614(たとえば、マウス)、および信号生成デバイス620(たとえば、スピーカ)を含んでもよい。
データ記憶デバイス616は、システムアーキテクチャ100、および本明細書で説明する方法論または機能のうちのいずれか1つまたは複数を具体化するグループゲームプレイモジュールの命令のセットを記憶した非一時的コンピュータ可読記憶媒体624を含み得る。システムアーキテクチャ100およびグループゲームプレイモジュール140の命令のセットはまた、コンピュータ可読記憶媒体をやはり構成する、コンピュータシステム600、メインメモリ604、および処理デバイス602によるその実行の間、メインメモリ604内に、かつ/または処理デバイス602内に、完全にまたは少なくとも部分的に常駐し得る。命令のセットは、ネットワークインターフェースデバイス622を介してネットワーク618上でさらに送信または受信され得る。
コンピュータ可読記憶媒体624の例は単一の媒体として示されているが、「コンピュータ可読記憶媒体」という用語は、命令のセットを記憶する、単一の媒体または複数の媒体(たとえば、中央もしくは分散データベース、ならびに/または関連付けられたキャッシュおよびサーバ)を含み得る。「コンピュータ可読記憶媒体」という用語は、マシンによる実行のための命令のセットを記憶、符号化、または担持することが可能な、本開示の方法論のうちのいずれか1つまたは複数をマシンに実行させる任意の媒体を含み得る。「コンピュータ可読記憶媒体」という用語は、固体メモリ、光媒体、および磁気媒体を含み得るが、これらに限定されない。
前述の説明では、多数の詳細が記載されている。しかしながら、本開示がこれらの具体的な詳細なしで実践され得ることは、本開示の利益を有する当業者に明らかであろう。場合によっては、周知の構造およびデバイスは、本開示をあいまいにするのを回避するために、詳細ではなく、ブロック図で示されている。
詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する動作のアルゴリズムおよびシンボル表現に関して提示されている。これらのアルゴリズム記述および表現は、データ処理分野の当業者がその作業の実体を他の当業者に最も効果的に伝えるために使用する手段である。アルゴリズムは、ここで、また一般に、所望の結果をもたらす動作の自己矛盾のないシーケンスであると考えられる。動作のシーケンスは、物理量の物理的操作を必要とする動作である。通常、必ずしも必要ではないが、これらの量は、記憶され、転送され、組み合わされ、比較され、さもなければ操作されることが可能な電気または磁気信号の形をとる。主に一般的に使用されているために、これらの信号をビット、値、要素、シンボル、文字、用語、数などと呼ぶことが時には便利であることが分かっている。
しかしながら、これらのおよび同様の用語のすべては、適切な物理量に関連付けられ、これら量に適用される単に便利な標識であることを念頭に置かれたい。別段の記載がない限り、本記述を通して、「受信する」、「与える」、「指示する」、「送る」、「識別する」、「実装する」などの用語を利用する議論は、コンピュータシステムメモリまたはレジスタ内の物理(たとえば、電子)量として表されるデータを操作し、コンピュータシステムメモリもしくはレジスタ、または他のそのような情報記憶、送信、もしくは表示デバイス内の物理量として同様に表される他のデータに変換する、コンピュータシステム、または同様の電子コンピューティングデバイスの活動およびプロセスを指すことを諒解されよう。
本開示はまた、本明細書の動作を実行するための装置に関する。この装置は、必要とされる目的のために具体的に構築されてよく、またはこの装置は、コンピュータ内に記憶されるコンピュータプログラムによって選択的にアクティブ化または再構成される汎用コンピュータを含み得る。そのようなコンピュータプログラムは、限定ではなく、フロッピーディスク、光ディスク、コンパクトディスク読取り専用メモリ(CD-ROM)、光磁気ディスク、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、磁気もしくは光カード、または電子命令を記憶するのに適した任意のタイプの媒体を含めて、任意のタイプのディスクなど、コンピュータ可読記憶媒体内に記憶され得る。
「例」または「例示的な」という語は、本明細書で、例、事例、または例示として働くことを意味するために使用される。本明細書で「例」または「例示的な」として説明する任意の態様または設計は、必ずしも他の態様または設計よりも好ましいまたは有利であると解釈されるとは限らない。むしろ、「例」または「例示的な」という語の使用は、具体的な形で概念を提示することが意図される。本出願で使用される「または」という用語は、排他的な「または」ではなく、包括的な「または」を意味することが意図される。すなわち、別段の規定がない限り、または内容から明らかでない限り、「XはAまたはBを含む」は、自然な包括的置換のうちのいずれかを意味することが意図される。すなわち、XがAを含む場合;XがBを含む場合;またはXがAとBの両方を含む場合、「XがAまたはBを含む」は、前述の事例のうちのいずれの場合にも満たされる。加えて、冠詞「a」および「an」は、別段の規定がない限り、または内容から単数形を指すことが明らかでない限り、本出願および添付の特許請求の範囲において使用される場合、一般に、「1つまたは複数」を意味するように解釈され得る。その上、「ある実装形態」もしくは「一実装形態」または「ある実施形態」もしくは「一実施形態」という用語などの使用は、全体を通して、そういうものとして説明されていない限り、同じ実装形態または実施形態を意味することが意図されない。本明細書で説明した、1つまたは複数の実装形態または実施形態は、特定の実装形態または実施形態の中に組み合わされてよい。本明細書で使用される「第1の」、「第2の」、「第3の」、「第4の」などの用語は、異なる要素を区別するための標識を意味し、必ずしもその数字表示による順序を有するとは限らない場合がある。
上記の説明は、限定的ではなく、例示であることが意図されることを理解されたい。他の実装形態は、上記の説明を読み理解すると、当業者に明らかになるであろう。本開示の範囲は、したがって、添付の特許請求の範囲が権利を有する均等物の完全範囲とともに、これらの特許請求の範囲を参照して決定され得る。
追加の実装形態では、上記で説明した実装形態の動作を実行するための1つまたは複数の処理デバイスが開示される。加えて、本開示の実装形態では、非一時的コンピュータ可読記憶媒体は、説明した実装形態の動作を実行するための命令を記憶する。また、他の実装形態では、説明した実装形態の動作を実行するためのシステムも開示される。