(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-04-23
(54)【発明の名称】クライアントアプリケーションのユーザをマッチングさせるためのシステム及び方法
(51)【国際特許分類】
A63F 13/795 20140101AFI20240416BHJP
A63F 13/79 20140101ALI20240416BHJP
【FI】
A63F13/795
A63F13/79
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023569886
(86)(22)【出願日】2022-05-13
(85)【翻訳文提出日】2024-01-05
(86)【国際出願番号】 US2022072309
(87)【国際公開番号】W WO2022241469
(87)【国際公開日】2022-11-17
(32)【優先日】2022-03-24
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-05-13
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】517089798
【氏名又は名称】スキルズ プラットフォーム インコーポレイテッド
(74)【代理人】
【識別番号】100078282
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【氏名又は名称】森下 夏樹
(74)【代理人】
【識別番号】100181674
【氏名又は名称】飯田 貴敏
(74)【代理人】
【識別番号】100181641
【氏名又は名称】石川 大輔
(74)【代理人】
【識別番号】230113332
【氏名又は名称】山本 健策
(72)【発明者】
【氏名】メッケル, アンドリュー レイノルズ
(72)【発明者】
【氏名】パルマー, マシュー
(72)【発明者】
【氏名】ベイカー, サミュエル ヨーク
(72)【発明者】
【氏名】ハラディン, スコット エム.
(72)【発明者】
【氏名】バブ, ケビン
(72)【発明者】
【氏名】グレゴワール, スコット エル.
(57)【要約】
ある態様では、複数のユーザのそれぞれのモバイルデバイス上で実行しているアプリケーションクライアントの複数のユーザのうちの第1のユーザから、第1のユーザによって選択された第1の複数の対話テンプレートに基づいて、アプリケーションクライアント内の複数のユーザのうちの1人以上の他のユーザと対話する要求を受信することができる。第2の対話テンプレートに関連付けられた第2のユーザは、複数のユーザから決定することができ、決定は、第2の対話テンプレートと第1の複数の対話テンプレートからの第1の対話テンプレートとの間のマッチングの識別に基づくことができる。第1のユーザと第2のユーザとの間のアプリケーションクライアント内での対話は、第2のユーザの決定に応答して開始され得る。関連するシステム、装置、技術、及び物品も記載される。
【選択図】
図2A
【特許請求の範囲】
【請求項1】
方法であって、
複数のユーザのそれぞれのモバイルデバイス上で実行しているアプリケーションクライアントの前記複数のユーザのうちの第1のユーザから、前記第1のユーザによって選択された第1の複数の対話テンプレートに基づいて、前記アプリケーションクライアント内の前記複数のユーザのうちの1人以上の他のユーザと対話する要求を受信することと、
前記複数のユーザから第2のユーザを決定することであって、前記第2のユーザは、第2の対話テンプレートに関連付けられ、前記決定することは、前記第2の対話テンプレートと前記第1の複数の対話テンプレートからの第1の対話テンプレートとの間のマッチングの識別に基づいている、決定することと、
前記第2のユーザの前記決定に応答して、前記アプリケーションクライアント内の前記第1のユーザと前記第2のユーザとの間の対話を開始することと、を含む、方法。
【請求項2】
前記第1の複数の対話テンプレートからの別の対話テンプレートと前記第2の対話テンプレートとの間のマッチングが識別されるまで、前記第2のユーザを検索すること、を更に含む、請求項1に記載の方法。
【請求項3】
前記第2の対話テンプレート及び前記第1の複数の対話テンプレートの各々は、前記第1のユーザ及び前記第2のユーザによる登録のための同期電子トーナメントを特徴付ける、請求項1に記載の方法。
【請求項4】
前記決定することは、
前記同期電子トーナメントの動作パラメータに基づいて、前記第1の複数の対話テンプレートから前記第1の対話テンプレートを選択すること、を更に含む、請求項1に記載の方法。
【請求項5】
前記決定することは、
前記第1の対話テンプレートの決定された優先度に基づいて、前記第1の複数の対話テンプレートから前記第1の対話テンプレートを選択すること、を更に含む、請求項1に記載の方法。
【請求項6】
前記第1の複数の対話テンプレートからの第3の対話テンプレートにマッチングする第4の対話テンプレートに関連付けられた前記複数のユーザから第3のユーザを決定することであって、前記第3のユーザを前記決定することは、前記第2のユーザの前記決定のための時間の長さが所定の閾値を超えた場合に発生する、決定すること、を更に含む、請求項1に記載の方法。
【請求項7】
前記第1のユーザの前記モバイルデバイス上に表示するために、前記第2のユーザの前記決定のための時間の長さが所定の閾値を超えた場合に、前記第1の複数の対話テンプレートから第5の対話テンプレートを選択する命令を特徴付けるグラフィカルプロンプトを決定することと、
前記第5の対話テンプレートの前記選択に応答して、前記第5の対話テンプレートとマッチングする第6の対話テンプレートに関連付けられた前記複数のユーザから第4のユーザを決定することと、を更に含む、請求項6に記載の方法。
【請求項8】
前記第1の複数の対話テンプレートは、利用可能な対話テンプレートのセットから前記第1のユーザによって選択され、前記利用可能な対話テンプレートのセットは、前記第1のユーザの特性に基づいて決定される、請求項1に記載の方法。
【請求項9】
前記第2のユーザを前記決定することは、前記第1のユーザの特性に基づいている、請求項1に記載の方法。
【請求項10】
前記第2のユーザを前記決定することは、前記第1の複数の対話テンプレートのうちの1つ以上の特徴に基づいている、請求項1に記載の方法。
【請求項11】
システムであって、
少なくとも1つのデータプロセッサと、命令を格納するメモリとを備え、前記命令は、前記少なくとも1つのデータプロセッサによって実行された場合に、前記少なくとも1つのデータプロセッサに、
複数のユーザのそれぞれのモバイルデバイス上で実行しているアプリケーションクライアントの前記複数のユーザのうちの第1のユーザから、前記第1のユーザによって選択された第1の複数の対話テンプレートに基づいて、前記アプリケーションクライアント内の前記複数のユーザのうちの1人以上の他のユーザと対話する要求を受信することと、
前記複数のユーザから第2のユーザを決定することであって、前記第2のユーザは、第2の対話テンプレートに関連付けられ、前記決定することは、前記第2の対話テンプレートと前記第1の複数の対話テンプレートからの第1の対話テンプレートとの間のマッチングの識別に基づいている、決定することと、
前記第2のユーザの前記決定に応答して、前記アプリケーションクライアント内の前記第1のユーザと前記第2のユーザとの間の対話を開始することと、を含む動作を実施させる、システム。
【請求項12】
前記動作は、
前記第1の複数の対話テンプレートからの別の対話テンプレートと前記第2の対話テンプレートとの間のマッチングが識別されるまで、前記第2のユーザを検索すること、を更に含む、請求項11に記載のシステム。
【請求項13】
前記第2の対話テンプレート及び前記第1の複数の対話テンプレートの各々は、前記第1のユーザ及び前記第2のユーザによる登録のための同期電子トーナメントを特徴付ける、請求項11に記載のシステム。
【請求項14】
前記決定することは、
前記同期電子トーナメントの動作パラメータに基づいて、前記第1の複数の対話テンプレートから前記第1の対話テンプレートを選択すること、を更に含む、請求項11に記載のシステム。
【請求項15】
前記決定することは、
前記第1の対話テンプレートの決定された優先度に基づいて、前記第1の複数の対話テンプレートから前記第1の対話テンプレートを選択すること、を更に含む、請求項11に記載のシステム。
【請求項16】
前記動作は、
前記第1の複数の対話テンプレートからの第3の対話テンプレートにマッチングする第4の対話テンプレートに関連付けられた前記複数のユーザから第3のユーザを決定することであって、前記第3のユーザを前記決定することは、前記第2のユーザの前記決定のための時間の長さが所定の閾値を超えた場合に発生する、決定すること、を更に含む、請求項11に記載のシステム。
【請求項17】
前記動作は、
前記第1のユーザの前記モバイルデバイス上に表示するために、前記第2のユーザの前記決定のための時間の長さが所定の閾値を超えた場合に、前記第1の複数の対話テンプレートから第5の対話テンプレートを選択する命令を特徴付けるグラフィカルプロンプトを決定することと、
前記第5の対話テンプレートの前記選択に応答して、前記第5の対話テンプレートとマッチングする第6の対話テンプレートに関連付けられた前記複数のユーザから第4のユーザを決定することと、を更に含む、請求項16に記載のシステム。
【請求項18】
前記第1の複数の対話テンプレートは、利用可能な対話テンプレートのセットから前記第1のユーザによって選択され、前記利用可能な対話テンプレートのセットは、前記第1のユーザの特性に基づいて決定される、請求項11に記載のシステム。
【請求項19】
前記第2のユーザを前記決定することは、前記第1のユーザの特性に基づいている、請求項11に記載のシステム。
【請求項20】
実行可能命令を格納する非一時的なコンピュータプログラム製品であって、前記実行可能命令は、少なくとも1つのコンピューティングシステムの一部を形成する少なくとも1つのデータプロセッサによって実行されると、
複数のユーザのそれぞれのモバイルデバイス上で実行しているアプリケーションクライアントの複数のユーザのうちの第1のユーザから、前記第1のユーザによって選択された第1の複数の対話テンプレートに基づいて、前記アプリケーションクライアント内の前記複数のユーザのうちの1人以上の他のユーザと対話する要求を受信することと、
前記複数のユーザから第2のユーザを決定することであって、前記第2のユーザは、第2の対話テンプレートに関連付けられ、前記決定することは、前記第2の対話テンプレートと前記第1の複数の対話テンプレートからの第1の対話テンプレートとの間のマッチングの識別に基づいている、決定することと、
前記第2のユーザの前記決定に応答して、前記アプリケーションクライアント内の前記第1のユーザと前記第2のユーザとの間の対話を開始することと、を含む動作を実施する、非一時的なコンピュータプログラム製品。
【発明の詳細な説明】
【背景技術】
【0001】
関連出願の相互参照
本出願は、2021年5月13日に出願された米国仮出願第63/188,004号、及び2022年3月24日に出願された米国仮出願第63/269,843号に対する、米国特許法第119条のもとでの利益及び優先権を主張し、これらのそれぞれの内容は、参照によりその全体が本明細書に組み込まれる。
【0002】
クライアントアプリケーションのユーザは、様々な方法で、それらのクライアントアプリケーションの他のユーザと関わる、又はそうでなければ対話することができる。例えば、ユーザは、クライアントアプリケーション(例えば、モバイルゲーム又は他のコンピュータゲーム)で他のユーザと競技し、賞品又は他の実績を獲得することができる。クライアントアプリケーションにおけるユーザの体験に影響を与え得る要因のうちの1つは、ユーザが競合している、又はそうでなければ対話している対戦相手の質である。それぞれの能力又はスキルレベルなどの対戦相手間の大きな格差は、クライアントアプリケーションにおける各ユーザの経験に悪影響を及ぼす可能性がある。例えば、初心者が競技会で熟練者とペアになっている場合、初心者は勝つチャンスがほとんど又は全くないことにイライラし、熟練者は手ごたえがほとんどないか又は全くない対戦相手と競技することにイライラすることもあるため、初心者も熟練者も競技会が面白くないか、又は公平でさえないと感じる可能性がある。クライアントアプリケーションでのユーザの体験に影響を与える可能性のある別の要因は、対戦相手を見つけるのにかかる時間である。待ち時間が長くなると、ユーザがイライラし、解約につながる可能性がある。
【発明の概要】
【課題を解決するための手段】
【0003】
クライアントアプリケーションのユーザをマッチングさせるためのシステム及び方法が提供される。関連する装置、技術、及び物品も記載される。
【0004】
ある態様では、複数のユーザのそれぞれのモバイルデバイス上で実行しているアプリケーションクライアントの複数のユーザのうちの第1のユーザから、第1のユーザによって選択された第1の複数の対話テンプレートに基づいて、アプリケーションクライアント内の複数のユーザのうちの1人以上の他のユーザと対話する要求を受信することができる。第2の対話テンプレートに関連付けられた第2のユーザは、複数のユーザから決定することができ、その決定は、第2の対話テンプレートと第1の複数の対話テンプレートからの第1の対話テンプレートとの間のマッチングの識別に基づくことができる。第1のユーザと第2のユーザとの間のアプリケーションクライアント内での対話は、第2のユーザの決定に応答して開始され得る。
【0005】
以下の特徴のうちの1つ以上は、任意の実現可能な組み合わせに含めることができる。例えば、第2のユーザは、第1の複数の対話テンプレートからの別の対話テンプレートと第2の対話テンプレートとの間のマッチングが識別されるまで検索され得る。例えば、第2の対話テンプレート及び第1の複数の対話テンプレートの各々は、第1のユーザ及び第2のユーザによる登録のための同期電子トーナメントを特徴付けることができる。例えば、第2のユーザの決定は、同期電子トーナメントの動作パラメータに基づいて、第1の複数の対話テンプレートから第1の対話テンプレートを選択することを更に含むことができる。例えば、第2のユーザの決定は、第1の対話テンプレートの決定された優先度に基づいて、第1の複数の対話テンプレートから第1の対話テンプレートを選択することを更に含むことができる。例えば、第1の複数の対話テンプレートからの第3の対話テンプレートとマッチングする第4の対話テンプレートに関連付けられた複数のユーザからの第3のユーザを決定することができ、第2のユーザの決定のための時間の長さが所定の閾値を超えた場合に、第3のユーザの決定が発生し得る。例えば、第1のユーザのモバイルデバイス上に表示するためのグラフィカルプロンプトを決定することができ、グラフィカルプロンプトは、第2のユーザの決定のための時間の長さが所定の閾値を超えた場合に、第1の複数の対話テンプレートから第5の対話テンプレートを選択する命令を特徴付けることができる。例えば、第5の対話テンプレートの選択に応答して、第5の対話テンプレートにマッチングする第6の対話テンプレートに関連付けられた複数のユーザからの第4のユーザを決定することができる。例えば、第1の複数の対話テンプレートは、利用可能な対話テンプレートのセットから第1のユーザによって選択され得、利用可能な対話テンプレートのセットは、第1のユーザの特性に基づいて決定され得る。例えば、第2のユーザの決定は、第1のユーザの特性に基づくことができる。例えば、第2のユーザの決定は、第1の複数の対話テンプレートのうちの1つ以上の特性に基づくことができる。
【0006】
別の態様では、システムが提供され、システムは、少なくとも1つのデータプロセッサと、少なくとも1つのデータプロセッサに本明細書で説明される動作を実行させるように構成された命令を格納するメモリと、を含むことができる。動作は、複数のユーザのそれぞれのモバイルデバイス上で実行しているアプリケーションクライアントの複数のユーザのうちの第1のユーザから、第1のユーザによって選択された第1の複数の対話テンプレートに基づいて、アプリケーションクライアント内の複数のユーザのうちの1人以上の他のユーザと対話する要求を受信することと、複数のユーザから第2のユーザを決定することであって、第2のユーザは、第2の対話テンプレートに関連付けられ、決定することは、第2の対話テンプレートと第1の複数の対話テンプレートからの第1の対話テンプレートとの間のマッチングの識別に基づいている、決定することと、第2のユーザの決定に応答して、アプリケーションクライアント内の第1のユーザと第2のユーザとの間の対話を開始することと、を含むことができる。
【0007】
以下の特徴のうちの1つ以上は、任意の実現可能な組み合わせに含めることができる。例えば、動作は、第1の複数の対話テンプレートからの別の対話テンプレートと第2の対話テンプレートとの間のマッチングが識別されるまで、第2のユーザを検索することを更に含むことができる。例えば、第2の対話テンプレート及び第1の複数の対話テンプレートの各々は、第1のユーザ及び第2のユーザによる登録のための同期電子トーナメントを特徴付けることができる。例えば、決定することは、同期電子トーナメントの動作パラメータに基づいて、第1の複数の対話テンプレートから第1の対話テンプレートを選択することを更に含むことができる。例えば、決定することは、第1の対話テンプレートの決定された優先度に基づいて、第1の複数の対話テンプレートから第1の対話テンプレートを選択することを更に含むことができる。例えば、動作は、第1の複数の対話テンプレートから第3の対話テンプレートにマッチングする第4の対話テンプレートに関連付けられた複数のユーザから第3のユーザを決定することであって、第3のユーザを決定することは、第2のユーザの決定のための時間の長さが所定の閾値を超えた場合に発生する、決定することを更に含むことができる。例えば、動作は、第1のユーザのモバイルデバイス上に表示するために、第2のユーザの決定のための時間の長さが所定の閾値を超えた場合に、第1の複数の対話テンプレートから第5の対話テンプレートを選択する命令を特徴付けるグラフィカルプロンプトを決定することと、第5の対話テンプレートの選択に応答して、第5の対話テンプレートとマッチングする第6の対話テンプレートに関連付けられた複数のユーザから第4のユーザを決定することと、を更に含むことができる。例えば、第1の複数の対話テンプレートは、利用可能な対話テンプレートのセットから第1のユーザによって選択され得、利用可能な対話テンプレートのセットは、第1のユーザの特性に基づいて決定され得る。例えば、第2のユーザを決定することは、第1のユーザの特性に基づくことができる。
【0008】
1つ以上のコンピューティングシステムのうちの1つ以上のデータプロセッサによって実行される場合、少なくとも1つのデータプロセッサに本明細書の動作を実行させる命令を記憶する非一時的なコンピュータプログラム製品(すなわち、物理的に具現化されたコンピュータプログラム製品)も説明される。同様に、1つ以上のデータプロセッサと、1つ以上のデータプロセッサに結合されたメモリと、を含み得るコンピュータシステムも説明される。メモリは、少なくとも1つのプロセッサに本明細書に記載される動作のうちの1つ以上を実行させる命令を一時的又は恒久的に記憶してもよい。更に、方法は、単一のコンピューティングシステム内の、又は2つ以上のコンピューティングシステム間で分散された1つ以上のデータプロセッサによって実施され得る。そのようなコンピューティングシステムは接続することができ、ネットワーク(例えば、インターネット、無線ワイドエリアネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、有線ネットワークなど)上で、複数のコンピューティングシステムのうちの1つ以上の間の直接接続を介して、などの接続を含む1つ以上の接続を介して、データ及び/又はコマンド又は他の命令などを交換することができる。
【0009】
上述の実施形態は、添付の図面と併せて以下の詳細な説明からより完全に理解されるであろう。添付の図面は、縮尺に合わせて描画されることを意図しない。明確にするために、全ての構成要素が全ての図面にラベル付けされているわけではない。以下の図面である。
【図面の簡単な説明】
【0010】
【
図1】モバイルゲームのユーザのための適切なマッチングを自動的に決定するための例示的なシステムを示すブロック図である。
【
図2A】モバイルゲームのユーザのための適切なマッチングを自動的に決定する例示的なコンピュータ実装方法を示すブロック図である。
【
図2B】モバイルゲームのユーザのための適切なマッチングを自動的に決定する例示的なコンピュータ実装方法を示すブロック図である。
【
図3】複数のゲームモードを有する複数のテンプレートのキューに入るための第1のユーザインターフェースの図である。
【
図4】複数のゲームモードを有する複数のテンプレートのキューに入るための第2のユーザインターフェースの図である。
【
図5】単一のゲームモードで複数のテンプレートのキューに入るための第3のユーザインターフェースの図である。
【
図6】ユーザによって選択された複数の対話テンプレートに基づいて、クライアントアプリケーションのユーザのための適切なマッチングを自動的に決定する例示的なコンピュータ実装方法を示すブロック図である。
【
図7】本実施形態による、本明細書に記載された動作のうちの1つ以上を実施し得る、例としてのコンピューティングデバイスのブロック図である。
【発明を実施するための形態】
【0011】
ここで特定の例示的な実施形態を説明して、本明細書に開示されるデバイス及び方法の構造、機能、製造、及び使用の原理の全体的な理解を提供する。これらの実施形態のうちの1つ以上の例が、添付の図面に図示される。当業者は、本明細書に具体的に記載され、添付の図面に示されるデバイス及び方法が、非限定的な例示的な実施形態であり、本発明の範囲が、特許請求の範囲によってのみ定義されることを理解するであろう。1つの例示的な実施形態に関連して例示又は説明される特徴は、他の実施形態の特徴と組み合わせてもよい。そのような修正及び変形は、本開示の範囲内に含まれることが意図される。更に、本開示では、実施形態の同名のコンポーネントは、一般に、同様の特徴を有し、したがって、特定の実施形態内では、各同名のコンポーネントの各特徴は、必ずしも完全に詳細に説明されていない。
【0012】
本発明のシステム及び方法のいくつかの実装態様は、クライアントアプリケーション内のユーザをそのクライアントアプリケーションの他のユーザと自動的にマッチングさせることを目的とする。本発明は、様々なユーザマッチングモジュールのうちの1つ以上を使用して、ユーザの特性に基づいて各ユーザに対して最も適切なマッチングを自動的に選択することができる。例えば、本発明は、クライアントアプリケーションの個々のユーザを、2人のユーザ間で類似している1つ以上の特性に基づいて、クライアントアプリケーションの別の個々のユーザと自動的にマッチングさせることができる。追加的又は代替的に、本発明のいくつかの実装態様は、第1のユーザ又は第1のユーザグループに類似する1つ以上の特性を集合的に共有する第2のユーザグループと、1つ以上の特性を集合的に共有する第1のユーザ又は第1のユーザグループをマッチングさせることができる。本発明のいくつかの実装態様はまた、ユーザがクライアントアプリケーションの複数のモードを有する複数のテンプレートのキューに入ることを可能にすることによって、ユーザをより迅速にマッチングさせることができる。本発明のいくつかの実装態様は、ユーザがクライアントアプリケーションの複数のモードを有する複数のテンプレートのキューに入ることを可能にすることによって、ユーザをより迅速にマッチングさせることができる。加えて、本発明のいくつかの実装態様は、特に、多数のユーザ(例えば、数十万、数百万、数千万のユーザなど)を有するクライアントアプリケーションに対して、実質的により速いマッチング時間をサポート及び提供することによって、マッチングを識別するコンピュータハードウェアリソース(例えば、コンピュータ処理及びメモリ)の効率及び処理能力を改善することができる。例えば、本発明のいくつかの実装態様は、複数のテンプレート内のマッチングをキューに入れて識別する多数のユーザを同時により効率的に処理することができる。多数のユーザを有するクライアントアプリケーションのマッチング速度及び効率を向上させることによって、コンピュータハードウェアリソースをより迅速に解放し、他のタスク及びプロセスに使用することができ、結果として、コンピュータリソース利用率の大幅な改善をもたらす。
【0013】
限定ではなく説明の目的のためにのみ、本開示は、本発明の様々な態様を例示するための例示的なクライアントアプリケーションとしてモバイルゲームに言及する。しかしながら、本発明のいくつかの実装態様は、1人以上のユーザが、クライアントアプリケーション内でいくつかの目標又は結果を達成する目的で関わるか、又はそうでなければ対話するために、1人以上の他のユーザに対して自動的にマッチングされる任意の適切な種類のクライアントアプリケーション内で、又はクライアントアプリケーションとともに使用され得る。例えば、本発明は、競技会又はトーナメント又は他の適切なアクティビティのマッチングを生成することができ、又はそうでなければ、特定の特性を有するユーザを、同様の特性を有するクライアントアプリケーションの他のユーザとマッチングさせることができる(例えば、クライアントアプリケーション内にチャット又はソーシャル接続を確立する)。
【0014】
図1は、モバイルゲームのユーザのための適切なマッチングを自動的に決定するための例としてのシステム100を示すブロック図である。サーバシステム114は、モバイルゲーム内のプレイヤの特性に関連付けられたデータを収集するための機能を提供することができる。サーバシステム114は、例えば、1つ以上の地理的位置内の1つ以上のデータセンタ112において展開され得るソフトウェアコンポーネント及びデータベースを含むことができる。サーバシステム112のソフトウェアコンポーネントは、第1のプレイヤマッチングモジュール116、第2のプレイヤマッチングモジュール118、・・・、第Nのプレイヤマッチングモジュール120を含む複数のプレイヤマッチングモジュールを含むことができる(ここで、Nは、任意の好適な自然数とすることができる)。ソフトウェアコンポーネントは、同じ又は異なる個々のデータ処理装置上で実行できるサブコンポーネントを含むことができる。サーバシステム114のデータベースは、例えば、プレイヤデータデータベース122及びゲームデータデータベース124を含むことができるが、他のデータベースも可能である。データベースは、1つ以上の物理ストレージシステムに常駐することができ、又はクラウドベースとすることができる。ソフトウェアコンポーネント及びデータを以下に更に説明する。
【0015】
図1に示すように、第1のプレイヤマッチングモジュール116、第2のプレイヤマッチングモジュール118、・・・、第Nのプレイヤマッチングモジュール120は、プレイヤデータデータベース122及びゲームデータデータベース124と通信することができる。プレイヤデータデータベース120は、例えば、モバイルゲームの1つ以上のプレイヤの特性及びそれらのプレイヤとモバイルゲームとの間の相互作用に関連する任意の適切な情報、例えば、プレイヤゲーム履歴(例えば、どのモバイルゲームがプレイされたか、各モバイルゲームで勝利したゲームの数、各モバイルゲームで失われたゲームの数、各モバイルゲームでプレイされたゲームの数、各モバイルゲームでのスコア、各モバイルゲームでプレイされた時間、勝敗のパーセンテージなど)、プレイヤ識別情報(例えば、ユーザ名)、システム100へのプレイヤ接続の履歴、プレイヤの購入、プレイヤの戦績、プレイヤのタスク、他のユーザとのプレイヤの対話(例えば、チャット)、プレイヤの購入、プレイヤの預金/引き出し、プレイヤの仮想アイテムの取得又は使用、モバイルゲームにおける他の条件、及び/又は他の同様のプレイヤの特性及び/又は情報を含むことができる。ゲームデータデータベース124は、例えば、システム100を使用して実装されるモバイルゲームに関連する情報を含むことができる。ゲームデータデータベース124は、例えば、各モバイルゲームの仮想環境、各モバイルゲームの画像、映像、及び/又は音声データ、以前、現在、又は将来のイベントに対応するイベントデータ、各モバイルゲームの現在の状態を定義するゲーム状態データなど、各モバイルゲームに関連する情報を含むことができる。
【0016】
例えば、モバイルゲーム又は他のウェブベース又は適切なクライアントアプリケーションなどのソフトウェアアプリケーションは、エンドユーザクライアントアプリケーションとして提供されて、ユーザがサーバシステム114と対話することを可能にすることができる。ソフトウェアアプリケーションは、例えば、娯楽(例えば、ゲーム、音楽、映像など)、ビジネス(例えば、ワープロ、会計、スプレッドシートなど)、ニュース、天気、金融、スポーツなどを含む、多種多様な機能及び情報に関連し、及び/又はそれらを提供することができる。特定の実施形態では、ソフトウェアアプリケーションは、モバイルゲームを提供することができる。モバイルゲームは、例えば、スポーツゲーム、アドベンチャーゲーム、仮想プレイカードゲーム、仮想ボードゲーム、パズルゲーム、レーシングゲーム、又は任意の他の適切な種類のモバイルゲームであり得るか、又はそれらを含むことができる。一実施形態では、モバイルゲームは、プレイヤがモバイルゲーム内で互いに競技することができるが、同時にモバイルゲームをプレイする必要はない非同期競技スキルベースのゲームであり得る。代替の実施形態では、モバイルゲームは、プレイヤが同時にモバイルゲームをプレイすることができ、リアルタイムにモバイルゲームで互いに競技することができる、同期競技スキルベースのゲームであり得る。他の適切なモバイルゲームも可能である。
【0017】
ソフトウェアアプリケーション又はそのコンポーネントは、クライアントデバイスA102、クライアントデバイスB104、クライアントデバイスC106、・・・、クライアントデバイスM108(ここで、Mは、任意の適切な自然数であり得る)などのクライアントデバイスのユーザによってネットワーク110(例えば、インターネット)を介してアクセスすることができる。クライアントデバイスのそれぞれは、例えば、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップ又はパーソナルコンピュータなど、ソフトウェアアプリケーションを実行し、ネットワーク110を介してサーバシステム114と通信することができる任意の適切な種類の電子デバイスであり得る。他のクライアントデバイス(例えば、ゲームコンソール及び他の同様のコンピューティングデバイス)も可能である。代替の実施形態では、プレイヤデータデータベース122、ゲームデータデータベース124、又はそれらの任意の部分は、1つ以上のクライアントデバイスに格納され得る。追加的又は代替的に、システム100(例えば、第1のプレイヤマッチングモジュール116、第2のプレイヤマッチングモジュール118、・・・、第Nのプレイヤマッチングモジュール120)又はその任意の部分のためのソフトウェアコンポーネントは、1つ以上のクライアントデバイス上に常駐することができ、又はそれを使用して1つ以上のクライアントデバイス上で動作を実施することができる。
【0018】
図2A及び
図2Bは、本開示の実施形態による、モバイルゲームのユーザのための適切なマッチングを自動的に決定する例としてのコンピュータ実装方法200を示すブロック図である。一般に、方法200は、ハードウェア(例えば、処理デバイス、回路、専用ロジック、プログラマブルロジック、マイクロコード、デバイスのハードウェア、集積回路など)、ソフトウェア(例えば、処理デバイス上で作動又は実行される命令)、又はそれらの組み合わせを含み得る(例えば、サーバシステム114の)処理ロジックによって実施することができる。一実施形態では、方法200は、
図1に示され、
図1に関して説明される第1のプレイヤマッチングモジュール116、第2のプレイヤマッチングモジュール118、・・・、第Nのプレイヤマッチングモジュール120のうちのいずれか又は全てと併せて処理ロジックによって実施することができる。方法200は、ブロック204で開始することができ、処理ロジックは、それぞれのクライアントデバイス(例えば、クライアントデバイスA102、クライアントデバイスB104、クライアントデバイスC106、・・・、クライアントデバイスM108)上でプレイされるモバイルゲームにおける各プレイヤの1つ以上の特性を監視することができる。監視されるプレイヤ特性は、モバイルゲームの種類及びユーザがゲームとどのように相互作用するかなどの要因に依存し得、例えば、ゲーム内のプレイヤのスキルレベル又はレーティング、勝ち又は負けたゲームの数、プレイヤが新規か又は熟練しているか、及び他の同様の特性を含むことができ、これは、例えば、プレイヤデータデータベース122に格納され、そこから取得され得る。ブロック206において、処理ロジックは、競技会又はトーナメントに参加するための、又はそうでなければモバイルゲーム内の対話に関わるためのプレイヤからの要求を受信することができ、これにより、本発明のマッチングプロセスを開始することができる。実施形態では、マッチングプロセスは、プレイヤの監視された特性に基づいて、どのプレイヤマッチングモジュール(「マッチャ」とも称される)が、プレイヤがそのプレイヤにとって最良か又は最も適切なマッチングを行うのに最も適しているかを判断するための1つ以上のマッチング基準で構成され得る。限定ではなく例示の目的のためにのみ、
図2A及び
図2Bは、5つのマッチング基準及び6つのプレイヤマッチングモジュールを示している。しかしながら、本発明のいくつかの実装態様は、任意の好適な数の異なるマッチング基準及びプレイヤマッチングモジュールをサポートすることができ、これは、クライアントアプリケーションの種類、マッチングが実行されるアクティビティの種類、クライアントアプリケーションのユーザの特性、及び他の同様の要因に依存し得る。
【0019】
ブロック210において、処理ロジックは、プレイヤが第1のマッチング基準に適格であるかどうかを判断することができる。例えば、最初のマッチング基準は、プレイヤが新規か、又は熟練しているかどうかとすることができる。処理ロジックが、プレイヤが第1のマッチング基準に対して適格である(例えば、プレイヤが新規である)と判断する場合、処理ロジックは、第1のプレイヤマッチングモジュール214を実行することができる。一実施形態では、第1のプレイヤマッチングモジュール214は、新規プレイヤマッチャであり得る。新規プレイヤマッチャを使用して、新規プレイヤとマッチングさせることができる。一実施形態では、新規プレイヤマッチャは、全てのマッチャ又は任意の他のマッチャよりも優先され得るが、マッチャは、任意の好適な様式で優先され得、又は全く優先され得ない。新規プレイヤが競技会やトーナメントへの参加を要求すると、新規プレイヤマッチャは他の新規プレイヤ又は十分に低ランクに確定されたプレイヤとのマッチングを識別することができる。例えば、プレイヤは、彼らが最初にモバイルゲームをプレイし始めたとき、又は彼らが最初にモバイルゲーム内にアカウント又はプロファイルを作成したとき、又はそうでなければモバイルゲームに関連付けられたときに応じて「新規」とみなされ得る。したがって、新規モバイルゲーム(例えば、彼らが以前にプレイしたことがないモバイルゲーム)のプレイを開始する確定されたプレイヤは、新規プレイヤマッチャによってマッチングされ得る。追加的又は代替的に、モバイルゲームの競技会の1つのクラス(例えば、有料エントリ競技会)で競技会することにおいて熟練しており、モバイルゲームの競技会の異なるクラス(例えば、無料エントリ競技会)でプレイを開始するプレイヤは、新規クラスの競技会のために新規プレイヤマッチャによってマッチングされ得る。
【0020】
いくつかの実施形態では、第1のプレイヤマッチングモジュール214は、モジュールの動作を制御することができる1つ以上のパラメータを変更することによって構成することができる。例えば、新規プレイヤマッチャは、新規プレイヤマッチャが有効になっているかどうかを判断する第1のパラメータを有することができる(例えば、マッチャはデフォルトで有効にすることができる)。新規プレイヤマッチャが無効になっている場合、確定されたプレイヤであっても、他の全てのプレイヤと同じロジックを使用して、新規プレイヤがマッチングされ得る。第2のパラメータは、誰が「新規」プレイヤとみなされるかを定義することができる。例えば、プレイヤがプレイしたゲーム数が第1の所定の数より少ない場合、プレイヤは新規プレイヤマッチャによってマッチングされ得、これは任意の好適な数のゲームであり得る。限定ではなく説明の目的で、第2のパラメータが15に設定されている場合、プレイヤは最初の15回の競技会又はトーナメントで新規として扱うことができる。第2のパラメータの他の値も可能である。第3のパラメータは、プレイヤが「確定された」プレイヤとみなされる前にプレイしなければならない競技会又はトーナメントの数を定義することができる。例えば、第3のパラメータが50に設定されている場合、プレイヤは、50回の競技会又はトーナメントをプレイした後で(本モバイルゲーム内であろうと、複数の他のモバイルゲーム又は競技会にわたるプレイの集計であろうと)「確定された」又は「熟練している」とみなされ得る。第3のパラメータの他の値も可能である。一実施形態では、第3のパラメータを使用して、新規プレイヤマッチャは、確定されたプレイヤが、プレイヤ全体の下位5%、10%、15%などの所定の下位パーセンテージでランク付けされている場合、確定されたプレイヤを新規プレイヤとマッチングさせることができる。第1のプレイヤマッチングモジュール214の他の構成が可能である。例えば、新規プレイヤマッチャは、モバイルゲームに全く新規なプレイヤ(例えば、最初の競技会又はトーナメントをプレイする)が、熟練したプレイヤのレーティングに関係なく、より熟練したプレイヤとマッチングされないように構成することができる。
【0021】
いくつかの実施形態では、第1のプレイヤマッチングモジュール214はまた、任意の適切な方法でプレイヤの特性に影響を与える、又はそうでなければそれらを変更することができる。例えば、新規プレイヤがマッチングされる場合、新規プレイヤのスキルレーティングは、マッチングの結果に基づいて調整され得る。したがって、確定されたプレイヤは、新規プレイヤとプレイする場合にレーティングを上げることも下げることもできない。2人の新規プレイヤが互いにマッチングされる場合、両方のプレイヤは、確定された量の所定のパーセンテージ(例えば、50%又は他の適切なパーセンテージ)によって自分のレーティングを調整してもらうことができる。代替の実施形態によれば、そのような特徴は、実際のマッチャではなく、kファクタ機能の一部であり得る。kファクタ機能については、以下で詳しく説明する。新規プレイヤは、確定されたプレイヤよりも高いkファクタを有することができるため、新規プレイヤのレーティングは、確定されたプレイヤのレーティングよりも大幅に速く調整することができる。更に、異なるクラスの競技会又はトーナメント(例えば、有料エントリ競技会と無料エントリ競技会)を有するモバイルゲームの場合、新規プレイヤのレーティングは、別のクラスの競技会よりも、あるクラスの競技会での負けに対してより速く移動することができる。例えば、無料エントリ競技会は、低スキルの確定されたプレイヤとマッチングされる新規プレイヤの頻度が高くなる可能性があり、そのような競技会はまた、新規プレイヤと低スキルの確定されたプレイヤとの間のレーティングに大きな差がある可能性がある。一実施形態では、有料エントリ競技会のために適切な調整を行うことができ、新規プレイヤと低スキルの確定されたプレイヤのレーティングがどれだけ異なるかを制限することができる。確定されたプレイヤに対して新規プレイヤの勝率が低い可能性があることを考慮すると、無料エントリ競技会では、そのようなマッチングがより頻繁に発生する可能性があり、レーティングの差が大きいためにより「ペナルティ」を受ける可能性がある。これにより、有料エントリ競技会の負けと比較して、無料エントリ競技会の負けにおけるレーティングの移動が速くなる可能性がある。
【0022】
ブロック210において、処理ロジックが、プレイヤが第1のマッチング基準に適格でないと判断した場合(例えば、プレイヤがあまりに熟練している、又は確定されている)、処理ロジックは、ブロック218に進むことができる。ブロック218において、処理ロジックは、プレイヤが第2のマッチング基準に適格であるかどうかを判断することができる。例えば、第2のマッチング基準は、プレイヤが多少熟練した対戦相手とのマッチングに適格であるかどうかであり得る(例えば、プレイヤの勝率又は負け率に応じて)。処理ロジックが、プレイヤが第2のマッチング基準に適格であると判断した場合、処理ロジックは、第2のプレイヤマッチングモジュール222を実行することができる。一実施形態では、第2のプレイヤマッチングモジュール222は、ゲームスキルレベルマッチャであり得る。ゲームスキルレベルマッチャを使用して、プレイヤのスキルが高いか低いかのいずれかの対戦相手とプレイヤをマッチングさせることができる。例えば、そのようなマッチングは、プレイヤの勝率又は負け率が高く、又はそうでなければ「バンド外」であり、プレイヤが延長された連勝又は連敗の最中にあり、プレイヤに多少手ごたえがあり競技会経験を向上させることができる対戦相手とマッチングされるべきである場合に発生し得る。したがって、ゲームスキルレベルマッチャは、プレイヤの以前の所定の数のゲーム(例えば、最後の15、20、又は他の数のゲーム)の勝率又は負け率がバンド外にある場合に使用することができる。ゲームスキルレベルマッチャは、プレイヤがより熟練した対戦相手を必要としている場合はより高いレーティング、スキルの低い対戦相手を必要としている場合はより低いレーティングなど、プレイヤにもっと大きな又はもっと小さな手ごたえがあるほうがよいかどうかに基づいて、適切な方向に異なるスキルレーティングを有する対戦相手を検索することができる。実施形態によれば、プレイヤの勝ち又は負け記録がどの程度極端であるか、及びプレイヤの勝率又は負け率に応じて、所定の下限よりも低い(例えば、50未満など)又は所定の上限よりも高い(例えば、800より高いなど)ELO差を使用して、プレイヤを対戦相手とマッチングさせることができる。
【0023】
いくつかの実施形態では、第2のプレイヤマッチングモジュール222は、モジュールの動作を制御できる1つ以上のパラメータを変更することによって構成され得る。例えば、プレイヤが第1のパラメータ以上の連勝又は連敗をしている場合、ゲームスキルレベルマッチャは、必要に応じて、多少熟練した対戦相手とのマッチングを見つけることを試みることができる。第2のパラメータによれば、ゲームスキルレベルマッチャは、プレイヤが第2のパラメータによって設定された所定の数未満のゲームをプレイした場合、多少熟練した対戦相手とのマッチングを識別しようとしないであろう。例えば、第2のパラメータが20に設定されている場合、ゲームスキルレベルマッチャは、プレイヤがプレイしたゲーム(例えば、有料エントリ競技会、無料エントリ競技会、又はそれらの適切な組み合わせ)が20回未満である場合、多少熟練した対戦相手とプレイヤをマッチングさせることはないであろう。第2のパラメータの他の値も可能である。第3のパラメータによれば、ゲームスキルレベルマッチャは、第3のパラメータによって指定された所定の勝率又は負け率に基づいて、プレイヤの異なる難易度の多少熟練した対戦相手とのマッチングを実現しようと試みることができる。限定ではなく例示の目的のために、第3のパラメータが80%に設定されている場合、プレイヤの勝率が80%を超えた場合、ゲームスキルレベルマッチャはより熟練した対戦相手とのマッチングを識別しようと試みることができる。あるいは、第3のパラメータが20%に設定されている場合、プレイヤの勝率が20%未満の場合、ゲームスキルレベルマッチャはスキルの低い対戦相手とのマッチングを識別しようとすることができる。第3のパラメータの他の値及び関連する結果も可能である。
【0024】
本発明のいくつかの実装態様によれば、ゲームスキルレベルマッチャによって、様々な適切な技術を使用して、プレイヤを多少熟練した対戦相手とマッチングさせることができる。例えば、より熟練した対戦相手とのマッチングが望まれる場合、プレイヤの対戦相手のレーティングは、式(1)によって与えることができる。
対戦相手の最小レーティング=プレイヤ_レーティング+オフセット
対戦相手の最大レーティング=プレイヤ_レーティング+オフセット+(2*レーティング_バンド)(1)
スキルの低い対戦相手とのマッチングが望ましい場合、プレイヤの対戦相手のレーティングは方程式(2)で与えることができる。
対戦相手の最小レーティング=プレイヤ_レーティング-オフセット-(2*レーティング_バンド)
対戦相手の最大レーティング=プレイヤ_レーティング-オフセット(2)
【0025】
式(2)では、対戦相手の最小レーティングがゼロ未満の場合、結果を上にシフトするか、又はそうでなければ最小レーティングがゼロに等しくなるように適切な量だけ増加させることができる。一実施形態では、式(1)及び(2)のオフセットは、前述した所望の難易度に基づいて定義することができる。例えば、非常に高いスキル又は非常に低いスキルの対戦相手とのマッチングが望ましい場合、オフセットを第1の値に設定することができる。あるいは、適度に高い又は適度に低い(又はニュートラルな)スキルを持つ対戦相手とのマッチングが望ましい場合は、オフセットをゼロに設定することができる。非常に高い/非常に低いスキルレベルとニュートラルなスキルレベルとの間で対戦相手とのマッチングが望まれる場合、オフセットは非常に高い/非常に低いオフセット値よりも小さいがゼロよりも大きい第3の値に設定できる。一実施形態では、式(1)及び(2)のレーティングバンドは、式(3)のように定義することができる。
レーティングバンド=min[((ELO最小レーティングバンド)+(ELO時間係数*時間))、
(ELO最大レーティングバンド)](3)
ここで、「ELO最小レーティングバンド」は、ゲームスキルレベルマッチャがマッチのオフセットを上回る又は下回るレーティングバンド内で検索できる最小量であり得、「ELO時間係数」は、競技会又はトーナメントがレーティングバンドを決定するために保留されている時間間隔(例えば、分、時間)を乗じた量であり得、「ELO最大レーティングバンド」は、ゲームスキルレベルマッチャがマッチのオフセットを上回る又は下回るレーティングバンド内で検索できる最大量であり得る。前述のパラメータの他の値及び定義も可能である。
【0026】
ブロック218において、処理ロジックは、プレイヤが第2のマッチング基準に適格でないと判断した場合(例えば、プレイヤは、多少熟練している対戦相手とのマッチングを必要としない)、処理ロジックは、ブロック226に進むことができる。ブロック226において、処理ロジックは、プレイヤが第3のマッチング基準に適格であるかどうかを判断することができる。例えば、第3のマッチング基準は、プレイヤのテンプレートオーバーライドがあるかどうかであり得る。処理ロジックが、プレイヤが第3のマッチング基準に適格であると判断した場合、処理ロジックは、第3のプレイヤマッチングモジュール230を実行することができる。一実施形態では、第3のプレイヤマッチングモジュール230は、テンプレートオーバーライドマッチャであり得る。テンプレートは、競技会又はトーナメントであってもよく、テンプレートオプションは、競技会の種類(例えば、有料エントリ対無料エントリ)、有料エントリ競技会の金額(例えば、5ドル、10ドル、20ドルなど)、無料エントリ競技会の金額(例えば、5個の仮想トークン、10個の仮想トークン、20個の仮想トークンなど)などのような、競技会又はトーナメントの特性であり得る。プレイヤのテンプレートオーバーライドがある場合、テンプレートオーバーライドマッチャは、プレイヤに関連付けられた1つ以上のテンプレートオプションをオーバーライドできる。実施形態では、プレイヤに対する後続のマッチングは、オーバーライドされたテンプレートオプションを使用して処理ロジックによって実施され得る。代替の実施形態によれば、テンプレートオーバーライドマッチャは、プレイヤによって指定された第1のテンプレートオプション(例えば、20ドルの有料エントリ競技会)を、第1のテンプレートオプションが成功したマッチングにならない場合にマッチングを容易にする第2のテンプレートオプション(例えば、10ドルの有料エントリトーナメント)でオーバーライドすることができる。第2のテンプレートオプションが予め決定され得(例えば、テンプレートオーバーライドマッチャによって連続して試行されてマッチングを識別できるテンプレートオーバーライドオプションの優先度付けされたリスト)、又は(例えば、異なるテンプレートオプションに対してマッチングするために利用可能なプレイヤの数に基づいて)、テンプレートオーバーライドマッチャによって動的に識別され得る。
【0027】
ブロック226において、処理ロジックが、プレイヤが第3のマッチング基準に適格ではない(例えば、プレイヤのためのテンプレートオーバーライドがない)と判断した場合、処理ロジックは、
図2Bのブロック234に進むことができる。ブロック234において、処理ロジックは、プレイヤにマッチングするプレイヤマッチングモジュールをランダムに選択することができる。一実施形態では、本発明は、プレイヤマッチングモジュールのそれぞれ又はいずれかに適切な重みを割り当てて、どのモジュールをランダムに選択するかを決定することができる。例えば、本発明のいくつかの実装態様は、キー値ペアのマップを使用することができ、キーは、使用されるプレイヤマッチングモジュールの名前であり得、値は、所与のプレイヤマッチングモジュールが選択される可能性の分子であり得る。分母は、全ての値の合計であり得る。各プレイヤマッチングモジュールに所定の数を割り当て、次いで、ランダム又は擬似乱数(適切にスケーリングされた)を生成して、生成された乱数に最も近い所定の数を有するプレイヤマッチングモジュールを選択するなどの、プレイヤマッチングモジュールをランダムに選択するための他の技術が可能である。一実施形態では、利用可能なプレイヤマッチングモジュールのいずれかは、プレイヤをマッチングする際に使用するために、ブロック234の処理ロジックによってランダムに選択することができる。代替の実施形態によれば、利用可能なプレイヤマッチングモジュールのサブセットのいずれかは、プレイヤのマッチングに使用するために、ブロック234の処理ロジックによってランダムに選択することができる。例えば、利用可能なマッチャのサブセットは、それぞれ、第1の、第2の、及び第3のプレイヤマッチングモジュール214、222、及び230であり得、処理ロジックは、ブロック234での使用のために、それらの最初の3つのプレイヤマッチングモジュールのうちのいずれかをランダムに選択することができる。
【0028】
ブロック238において、処理ロジックは、ブロック234からのランダムに選択されたプレイヤマッチングモジュールを使用して、プレイヤのマッチングが識別されたかどうかを判断することができる。処理ロジックが、ランダムに選択されたプレイヤマッチングモジュールを使用してプレイヤのマッチングを決定できない場合、処理ロジックは、ブロック242に進むことができる。ブロック242において、処理ロジックは、プレイヤが第4のマッチング基準に適格であるかどうかを判断することができる。例えば、第4のマッチング基準は、モバイルゲームに対して適切なスコア分布が有効になっているかどうかであり得る。処理ロジックが、プレイヤが第4のマッチング基準に適格であると判断した場合、処理ロジックは、第4のプレイヤマッチングモジュール244を実行することができる。一実施形態では、第4のプレイヤマッチングモジュール244は、フィードバックループマッチャであり得る。例えば、フィードバックループマッチャは、マッチングを探す際にプレイヤのレーティングを考慮しない場合がある。むしろ、フィードバックループマッチャは、スコアが対数正規分布(又は他の適切な分布)に従うという仮定の下で動作することができ、これにより、プレイヤスコアに基づいて勝利確率を計算することを可能にすることができる。いくつかの実施形態では、第4のプレイヤマッチングモジュール244は、モジュールの動作を制御することができる1つ以上のパラメータを変更することによって構成することができる。例えば、フィードバックループマッチャは、プレイヤのマッチングを識別する場合にマッチャが使用できる所定の勝利確率(例えば、25%、35%、又は他の適切な勝利確率)からの逸脱の量を指定する第1のパラメータを有することができる。フィードバックループマッチャで使用するための他の値及びパラメータが可能である。
【0029】
ブロック242において、処理ロジックが、プレイヤが第4のマッチング基準に適格ではない(例えば、適切なスコア分布が有効ではない)と判断した場合、処理ロジックは、ブロック248に進むことができる。ブロック248において、処理ロジックは、プレイヤが第5のマッチング基準に適格であるかどうかを判断することができる。例えば、第5のマッチング基準は、多少熟練した対戦相手とのプレイヤマッチングが有効になっているかどうかであり得る。処理ロジックが、プレイヤが第5のマッチング基準に適格であると判断した場合、処理ロジックは、第5のプレイヤマッチングモジュール252を実行することができる。一実施形態では、第5のプレイヤマッチングモジュール252は、リーニエントマッチャであり得る。例えば、リーニエントマッチャは、モバイルゲームにおけるプレイヤをより甘くマッチングさせるために使用され得る。いくつかの実施形態では、リーニエントマッチャは、確定されたプレイヤに使用することができ、この場合、プレイヤは、プレイヤがマッチングされている競技会又はトーナメントの種類(例えば、有料エントリ競技会又は無料エントリ競技会)のために、所定の数を超えるゲーム(例えば、20ゲーム、30ゲームなど)をプレイした場合に、確定されたとみなされ得る。任意の適切なロジックを使用して、リーニエントマッチャを使用するプレイヤをより甘くマッチングさせることができる。限定ではなく例示の目的のために、リーニエントマッチャは、モバイルゲームにおける上位の所定のパーセンテージ(例えば、上位1%、5%など)のプレイヤ内のプレイヤが、そのモバイルゲームにおける上位の所定のパーセンテージのプレイヤ内の任意の他のプレイヤとマッチングすることを可能にすることができる。上位の所定のパーセンテージのカットオフは、例えば、以前の時間間隔(例えば、最近10日、最近30日、最近60日など)で活動的であり、少なくとも所定の数のゲーム寿命(例えば、20ゲーム、30ゲームなど)をプレイした(有料エントリ競技会又は無料エントリ競技会のいずれか、又はその両方の)全てのプレイヤを識別することによって計算することができる。リーニエントマッチャは、上位の所定のパーセンテージの最小2人のプレイヤを含むことができるが、任意の適切な最小数のプレイヤを使用することができる。限定ではなく例示の目的のために、リーニエントマッチは、モバイルゲームのプレイヤの下位の所定のパーセンテージ(例えば、下位1%、5%など)のプレイヤが、そのモバイルゲームのプレイヤの下位の所定のパーセンテージの任意の他のプレイヤとマッチングすることを可能にすることができる。下位の所定のパーセンテージのカットオフは、例えば、以前の時間間隔(例えば、最近10日、最近30日、最近60日など)で活動的であり、少なくとも所定の数のゲーム寿命(例えば、20ゲーム、30ゲームなど)をプレイした(有料エントリ競技会又は無料エントリ競技会のいずれか、又はその両方の)全てのプレイヤを識別することによって計算することができる。リーニエントマッチャは、下位の所定のパーセンテージの最小2人のプレイヤを含むことができるが、任意の適切な最小数のプレイヤを使用することができる。実施形態によれば、リーニエントマッチャが所定の時間量(例えば、1時間、2時間など)内にマッチングを識別しない場合、リーニエントマッチャは、プレイヤを、同じ又は同様の勝率を有する任意の他のプレイヤとマッチングさせることができる(例えば、両方のプレイヤの勝率は、50%を超えるか、50%以下であり得るが、任意の適切な勝率を使用することができる)。
【0030】
ブロック248において、処理ロジックが、プレイヤが第5のマッチング基準に適格でないと判断する(例えば、多少熟練した対戦相手とのプレイヤマッチングが有効ではない)場合、処理ロジックは、第6のプレイヤマッチングモジュール256を実行することができる。一実施形態では、第6のプレイヤマッチングモジュール256は、レーティングマッチャであり得る。例えば、レーティングマッチャは、利用可能な全ての競技会又はトーナメントを検索して、これらの競技会/トーナメントのいずれかに、参加選手のスキルレーティングに適切に近いスキルレーティングを有するプレイヤが含まれているかどうかを判断することができる。一実施形態では、マッチングが長く保留されているほど、検索することができるレーティングバンドは広くなる。1つ以上の適切なマッチングが特定された場合、レーティングマッチャは、プレイヤを既存の競技会/トーナメントのうちの1つにランダムに割り当てるか、プレイヤに最も近いスキルレーティングを有する既存の競技会/トーナメントのうちの1つに割り当てることができる。いくつかの実施形態では、第6のプレイヤマッチングモジュール256は、モジュールの動作を制御できる1つ以上のパラメータを変更することによって構成することができる。例えば、レーティングマッチャは、レーティングバンドを指定する第1のパラメータを有することができる。第1のパラメータは、キー-値ペアのマップとすることができ、この場合、キーは時間間隔(例えば、分、時間など)とすることができ、値は、マッチングする適格なレーティングバンドとすることができる。例えば、時間間隔が時間単位の場合、1:80のキー-値ペアは、最初の1時間で80のレーティング差にマッチングすることができる。一実施形態では、レーティングマッチャは、第1のパラメータを使用して、競技会又はトーナメントを検索し、以下の方法でマッチングとしてのそれらの適合性を査定することができる。まず、レーティングマッチャは、競技会/トーナメントの最後に更新されたタイムスタンプに基づいて、競技会/トーナメントのレーティングバンドを決定することができる。競技会/トーナメントのレーティングバンドは、競技会/トーナメントが最後に更新されてから経過した時間間隔(例えば、時間数)未満であるキー-値ペアのキーに基づくことができる。限定ではなく例示の目的のために、第1のパラメータは、以下のキー-値ペアを有することができる。すなわち、{1:40、4:60、8:80、48:100、100:120}である。時間間隔が時間単位の場合、トーナメントが2時間前に最後に更新された場合、レーティングバンドは、第1のパラメータで指定されたキー-値に基づいて60になる。トーナメントが4時間経過すると、レーティングバンドは80に拡大し得る。次に、レーティングマッチャは、(例えば、競技会/トーナメントインスタンスを作成したプレイヤに基づいて)参加プレイヤのレーティングを競技会/トーナメントのレーティングと比較することができる。一実施形態では、これらの2つのレーティング間の差の絶対値がレーティングバンド以下である場合、プレイヤはマッチングされ得る。レーティングマッチャで使用するための他の値及びパラメータも可能である。
【0031】
本発明のいくつかの実装態様によれば、任意の適切な数及び種類のプレイヤマッチングモジュールを任意の適切な順序で使用して、クライアントアプリケーションのユーザのマッチングを自動的に識別することができる。例えば、スコアマッチャは、前述のプレイヤマッチングモジュールのいずれかに追加的又は代替的に使用することができる。一実施形態では、スコアマッチャは、第1のプレイヤの平均スコアと第2のプレイヤの正規化された平均スコアとの間の差が、第1のプレイヤの正規化されたスコアの所定のパーセンテージ(例えば、1%、5%、10%など)内にある場合、2人のプレイヤをマッチングさせることができる(ここで、第1のプレイヤは、トーナメントに最初に参加することができる)。追加的又は代替的に、ストリークマッチャを使用して、任意のレーティングに関係なく、同様の履歴を有するプレイヤ(例えば、各々が連続して10ゲームに勝利又は敗北した2人のプレイヤなど)をマッチングさせることができる。一実施形態では、ストリークマッチャは、第1のプレイヤのゲーム連続長と第2のプレイヤのゲーム連続長との間の差の絶対値が所定の連続閾値(例えば、2、3、4など)未満である場合、2人のプレイヤをマッチングさせることができる。追加的又は代替的に、勝敗率マッチャは、高い率で勝利又は敗北しており、競技経験を向上させるために多少手ごたえのある対戦相手とマッチングさせるべきプレイヤに使用することができる。プレイヤの最後の所定の数のゲーム(例えば、10、15、20など)の履歴を維持することができる。プレイヤが、最後の所定の数のゲームで勝ち又は敗けの少なくとも所定のパーセンテージ(例えば、60%、80%など)を有する場合(及び、必要に応じて、直近でプレイされたゲームが勝ち又は敗けであった場合)、勝敗率マッチャは、次のマッチング時間を、将来の所定の時間間隔(例えば、1時間、4時間、6時間、8時間など)、すなわち、最も早いトーナメントがマッチングされ得る最小時間に割り当てることができる。追加的又は代替的に、ボットマッチャを使用して、プレイヤをボットとマッチさせることができる。一実施形態では、プレイヤを人間とマッチングさせる代わりに、ボットマッチャを使用して、モバイルゲームのプレイなどの特定のタスクを実行するようにプログラムされたソフトウェアアプリケーションであるボットとプレイヤをマッチングさせることができる。例えば、プレイヤは、プレイヤがモバイルゲームに新規であり、最初にモバイルゲームのプレイ方法を学習する場合に(例えば、トレーニング又はチュートリアル目的のために)、ボットとマッチングされ得る。追加的又は代替的に、プレイヤは、(例えば、プレイヤプール内の利用可能なプレイヤが少ない、又は全くないモバイルゲーム内で)他の人間のマッチングが見つからない場合、ボットとマッチングされ得る。追加的又は代替的に、プレイヤは、プレイヤが多少熟練した対戦相手とマッチングされるべきである場合に、ボットとマッチングされ得る(例えば、プレイヤは連勝又は連敗中であり、競技経験を向上させるために、それぞれ多少手ごたえのあるボットベースの対戦相手とマッチングされ得る)。追加的又は代替的に、適切な機械学習/人工知能技術を使用して、プレイヤをマッチングさせることができる。例えば、機械学習モデルは、モバイルゲームの全てのプレイヤからのデータに基づいてトレーニングすることができる。次いで、機械学習モデルを使用して、競技会又はトーナメントのプレイヤを動的にマッチングさせることができる。機械学習モデルは、プレイヤの特性が時間の経過とともに進化するにつれて(例えば、勝敗比率及び経験レベルの変化、特定のゲームの嗜好であって他のゲームにはない嗜好など)、更新されるか、又はそうでなければ適合させることができる。本発明のいくつかの実装態様によれば、マッチングモジュールの数、種類、及び順序、並びにそれらのモジュールの各々を選択するために使用される基準は、例えば、ユーザ及びマッチングが行われているクライアントアプリケーションの特性に依存することになる。例えば、マッチングモジュールの数、種類、及び順序、並びにそれらのモジュールの各々を選択するために使用される基準は、プレイヤの特性が時間の経過とともに進化するにつれて、機械学習モデルによって動的かつ自動的に更新され得る。
【0032】
プレイヤマッチングモジュールの各々は、それぞれのプレイヤマッチングモジュールのために確定された基準及び方法論に従って、プレイヤを別のプレイヤとマッチングさせようと試みることができる。一実施形態では、プレイヤマッチングモジュールのそれぞれ又はいずれかによって実行されるマッチングは、マッチングが無期限に継続しないように、所定の時間間隔(例えば、1時間、1日など)に制限することができる。このような実施形態によれば、マッチングが所定の時間間隔内に見つからない場合、プレイヤには、競技会又はトーナメントの勝利が自動的に授与され得る。あるいは、マッチングが所定の時間間隔内に見出されない場合、本発明のいくつかの実装態様は、異なるマッチングモジュールを(例えば、
図2Bのブロック234に関して説明されるように、ランダムに、又は優先度付けされた順序で)選択して、マッチングを識別しようと試みることができる。選択されたマッチングモジュールがマッチングを識別しない場合、別のマッチングモジュールを(例えば、ランダムに)選択することができる。そのようなプロセスは、マッチングが見つかるまで、又はプレイヤが最初に競技会又はトーナメントへの参加を要求したときから適切な時間が経過するまで継続することができ(例えば、勝者を宣言することができる)。
【0033】
以前に説明されたように、本発明のいくつかの実装態様は、例えば、非同期又は同期クライアントアプリケーションなどの任意の好適な種類のクライアントアプリケーションにおいて、及びそれとともに使用され得る。一実施形態では、クライアントアプリケーションは、非同期モバイルゲームであり得る。非同期モバイルゲームでは、プレイヤは同時にプレイする必要はない。例えば、非同期モバイルゲームでは、第1のプレイヤは、競技会又はトーナメントへの参加を要求することができ、これにより、本発明のいくつかの実装態様のプレイヤマッチング技術を開始することができる。第1のプレイヤは、競技会又はトーナメントをプレイすることができ、一方で、本発明のいくつかの実装態様は、第1のプレイヤのために適切なマッチングを検索する。マッチングが見つかると、識別された第2のプレイヤは、競技会又はトーナメントをプレイすることができる(まだそうしていない場合、第1のプレイヤは、第2のプレイヤの後に競技会又はトーナメントに参加してもよい)。対照的に、同期モバイルゲームでは、プレイヤは、プレイヤがリアルタイムで互いに競い合うため(例えば、プールゲームなど)、同時に互いにプレイする必要がある。したがって、同期モバイルゲームは、プレイヤのマッチングが完了するまで開始されるべきではない。
【0034】
本発明のいくつかの実装態様によれば、追加の又は代替のプレイヤマッチングモジュールは、同期モバイルゲームなどのクライアントアプリケーションに使用することができ、これは、ユーザがクライアントアプリケーション内で互いに対話することができる前に、マッチングが完了すること、一般により迅速に完了することが必要である。一実施形態では、ファストマッチマッチャは、同期モバイルゲームに使用することができる。ファストマッチマッチャの場合、プレイヤはファストマッチキューに入り、各プレイヤがプレイに興味のある1つ以上のテンプレートオプションを選択することができる。テンプレートオプションは、競技会の種類(例えば、有料エントリ対無料エントリ)、有料エントリ競技会の金額(例えば、5ドル、10ドル、20ドルなど)、無料エントリ競技会の金額(例えば、5個の仮想トークン、10個の仮想トークン、20個の仮想トークンなど)、賞金プール、競技会モードのルール(例えば、プールゲームにおける5ドルの8ボール対5ドルのトリックショットモードなど)など、プレイヤが同期モバイルゲームでプレイしたい競技会又はトーナメントの特性であり得る。
【0035】
ファストマッチマッチャは、プレイヤが一度に複数のテンプレートのキューに入ることができるため、大幅に迅速なマッチング時間を可能にすることができる。ファストマッチマッチャ拡張技術は、各テンプレートのキューに入れられる(すなわち、エンキューされる)速度及び順序を決定することができる。プレイヤが複数のテンプレートを選択する場合、それらは、例えば、最高値から最低値まで(例えば、エントリ料金ではなく賞金によって決定されるように)降順にテンプレートごとにエンキューされ得る。例えば、ファストマッチマッチャは、最も価値の高い有料エントリテンプレートから始めて、次に全ての有料エントリテンプレートを下りて行き、その後全ての無料エントリテンプレートを降順に処理することができる。限定ではなく例示の目的のために、プレイヤは、以下のテンプレートを選択することができる。すなわち、5ドルの有料エントリ競技会、20ドルの有料エントリ競技会、5個の仮想トークンの無料エントリ競技会、及び20個の仮想トークンの無料エントリ競技会である。ここで、各値は、賞金額を表し得る(但し、代替の実施形態では、この値は、エントリ料金を表し得る)。この例では、プレイヤは、以下の順序でエンキューすることができる。すなわち、20ドルの有料エントリ競技会、次に5ドルの有料エントリ競技会、次に20個の仮想トークンの無料エントリ競技会、次に5個の仮想トークンの無料エントリ競技会である。別の例として、プレイヤは、2つの20ドルの有料エントリ競技会のためのテンプレートを選択することができるが、競技会モードは異なる(例えば、一方は、トリックショットのためのものであり、他方は、プールモバイルゲームの8ボールのためのものである)。そのような実施形態では、各競技会モードは、関連する優先度を有することができ、これを使用して、等価のテンプレート間の「同順位」を崩すことができる。プールゲームのための本図では、トリックショットモードは、例えば、1のより高い優先度を有することができ、一方、8ボールモードは、例えば、2のより低い優先度を有することができる。他の優先度値も可能である。したがって、より高い優先度を有するテンプレート(例えば、1の優先度を有するトリックショットモード)を最初にエンキューすることができ、次に高い優先度を有するテンプレート(例えば、2の優先度を有する8ボールモード)を2番目にエンキューすることができる。そのような優先度付けも使用して、競技会モードがプレイヤのクライアントデバイスの画面上に表示することができる順序を決定することができる(例えば、最高の優先度を有する競技会モードを最優先又は最初に表示することができ、次に高い優先度を有する競技会モードを最優先の下又は2番目に表示することができる、など)。プレイヤが一定の時間内に第1のテンプレートに対してマッチングされていない場合、次に、第2のテンプレートのキューに入れることができ(例えば、第1のテンプレートのキューに残っている間)、それらがマッチングされるまで続く。
【0036】
一実施形態では、ファストマッチマッチャ(及び/又は本明細書で説明及び記載されるマッチャのいずれか)は、アクタデザインパターンに基づくことができる。例えば、各テンプレートは、アクタ(例えば、テンプレートごとに1つのアクタ)を有するか、又はそうでなければアクタに関連付けることができる。アクタデザインパターンは、アクタを計算のプリミティブユニットとして扱う並行計算のモデルである。アクタは、実行するいくつかの動作又はロジックを定義し、他のアクタにその動作を実行するように指示するための適切な通信方法を使用する。アクタで定義された動作は非同期であるため、アクタは応答を待たない。むしろ、アクタは処理を続け、ある後の時点で応答を受け取る。全ての通信はメッセージ受け渡しを介して行われ、メッセージは受信された順序で一度に1つずつ処理される。受信したメッセージに応答して、アクタは、適切な計算を実行するか、又はローカル決定を行う、より多くのアクタを作成する、より多くのメッセージを送信する、及び受信した次のメッセージにどのように応答するかを決定する、などの適切なロジックを実行することができる。アクタは自分のプライベート状態を変更できるが、メッセージングを通じて相互に間接的に影響を与えることしかできない。アクタは互いに隔離されており、メモリを共有しない。ストレージは「共用なし」であり、これは、プライベートデータは隔離されており、所有するアクタのみがアクセスできることを意味する。そのような特性は、大規模かつ効率的なスケーリングを可能にする。例えば、アクタは、アーキテクチャの再設計を必要とせずに、数百又は数千のサーバへの線形スケーリングをサポートすることができる。アクタはまた、ローカル及び非ローカルの両方で計算のアドレッシングユニットを容易にするための位置透過性をサポートすることができるため、アクタは、アーキテクチャの再設計を必要とすることなく、任意のサーバ上に常駐することができる。アクタは、ロックフリーのデータ操作をサポートし、ロックベースの同期の必要性を排除することもできる。一度に1つのメッセージルールのため、データをロックする必要がないため、競合状態が回避される。アクタデザインパターンは、同時に複数のテンプレートにおいてエンキューし、マッチングを識別しようとする多数のユーザを処理することにおいてより効率的であり得る。ファストマッチマッチャ(及び/又は本明細書で説明及び記載される他のマッチャのいずれか)の他の設計パターンも可能である。
【0037】
図3は、本開示の実施形態による、複数のゲームモードを有する複数のテンプレートのキューに入るための第1のユーザインターフェース300を示す。限定ではなく例示の目的のためにのみ、複数のテンプレートのキューに入るためのユーザインターフェース及び関連する技術が、同期モバイルゲームの文脈で説明される。しかしながら、そのようなユーザインターフェース及び関連する技術は、同期又は非同期のモバイルゲームのいずれかに使用され得る。
図3に示されるように、トップバー305は、利用可能なゲームモードのカルーセルを表示することができる。一実施形態では、プレイヤは、全てのゲームモード又は特定のゲームモードのいずれかを選択して、対応するテンプレートを表示することができる。追加の実施形態では、プレイヤは、ゲームモードの組み合わせを選択して、対応するテンプレートを表示することができる。利用可能なゲームモードの種類及び数は、例えば、プレイヤによってプレイされている同期モバイルゲームに依存することになる。トップバー305のカルーセルは、例えば、第1のユーザインターフェース300内に表示することができるよりも多くの利用可能なゲームモードがある場合に、水平にスクロールすることができる。例えば、同期プールモバイルゲームでは、トップバー305は、全ゲームモード310、ロングエイムラインモード315、ショートエイムラインモード320、及び他の同様のゲームモードを含むことができる。トップバー305のデフォルトは、例えば、全ゲームモード310又は他の適切なゲームモードにすることができる。一実施形態では、トップバー305からゲームモードを選択することで、トップバー305から他のゲームモードをフィルタリングで除くことができる。
【0038】
実施形態によれば、第1のユーザインターフェース300は、各ゲームモードのための複数のテンプレート325を含むことができ、これは、有料エントリテンプレート、無料エントリテンプレート、又はその両方の混合を含むことができる。他のテンプレートも可能である。一実施形態では、利用可能なテンプレートは、例えば、ゲームモードによってグループ化することができる。一実施形態によれば、各ゲームモードは、対戦相手のマッチングを識別するためのファストマッチセットとして使用され得る。言い換えると、ファストマッチマッチャは、特定のゲームモードのためにプレイヤによって選択されたテンプレートを使用して、そのゲームモードの対戦相手のマッチングを識別することができる。限定ではなく例示の目的のために、ロングエイムラインモード315で1つ以上のテンプレートを選択したプレイヤは、ロングエイムラインモード315で1つ以上の対応するテンプレートを選択した対戦相手に対してファストマッチマッチャによってマッチングされ得る。ファストマッチセットは、(例えば、ゲームモードのルールを定義するトーナメントパラメータによって決定される)ゲームモード内又はゲームモードに関連付けられたテンプレートの全てから構成することができる。代替の実施形態では、ファストマッチセットは、異なるゲームモードのテンプレートで構成することができる(例えば、セット内の各テンプレートは、賞金プール、エントリ料金などに加えてゲームモードをリスト化することができる)。ゲームモードによってグループ化される場合、複数のテンプレート325は、複数のテンプレート325の上又は近くのバナーに表示されるゲームモード名330によって識別され得る。
図3の例示的な図では、ロングエイムラインモード315のための複数のテンプレート325は、(賞金プール及びエントリ料金に基づいて変化し得る)少なくとも7つの有料エントリテンプレート及び(賞金プールに基づいて変化し得る)2つの無料エントリテンプレートを含むことができる。プレイヤは、例えば垂直にスクロールすることによって、ゲームモードの追加のテンプレート(存在する場合)にアクセスすることができる。他のテンプレート、テンプレートの組み合わせ、及び各ゲームモードの任意の好適な数のテンプレートも可能である。複数のテンプレート325は、優先度、賞金プール又はエントリ料金(昇順、降順、又はランダム順のいずれか)などによる、任意の適切な方法で順序付けることができる。一実施形態では、複数のテンプレート325は、有料エントリ競技会の賞金額の昇順で、次いで、無料エントリ競技会の賞金額の昇順で、などによって順序付けることができる。
【0039】
実施形態によれば、第1のユーザインターフェース300は、テンプレート選択のカルーセルを表示するための第1のボトムバー335を含むことができる。テンプレート選択は、複数のテンプレート325について前述したのと同じ順序で表示することができる。代替の実施形態では、テンプレート選択は、所与のゲームモードのためにプレイヤによって選択された順序で、又はランダムにでも表示され得る。テンプレートが選択されているゲームモード(例えば、ロングエイムラインモード315)の名前350は、第1のボトムバー335の上又は近くに表示することができる。プレイヤが最初に第1のテンプレート340を選択した場合、第1のテンプレート340は、第1のボトムバー335内の第1の空位置345(例えば、最も左の位置)に表示され得る。プレイヤが追加のテンプレート選択を行うと、それらのテンプレート選択は、第1のボトムバー335内の次の連続した空位置に配置され得る。したがって、プレイヤは、プレイヤが参加することを望むテンプレートの優先度付けされたリストを作成することができ、一方の端に最も高い優先度のテンプレート(例えば、第1のボトムバー335の最も左の位置)があり、その後、連続してより低い優先度のテンプレートがリスト化される。プレイヤが所与のゲームモードのために複数のテンプレート325から所望のテンプレートを選択すると、プレイヤは、本明細書に記載の方法で、「対戦相手を見つける」ボタン355を押して、ファストマッチマッチャによって対戦相手とマッチングされ得る。
【0040】
第1のユーザインターフェース300によってサポートされる複数のゲームモードが存在し得るため、プレイヤは、(例えば、垂直に、又は、代替の実施形態では、水平に)スクロールして、選択のための残りのゲームモード及び対応するテンプレートを閲覧することができる。様々なゲームモードからテンプレートを選択するため、追加のボトムバーをゲームモードごとに個別の行として含めることができる。
図4は、本開示の実施形態による、複数のゲームモードを有する複数のテンプレートのキューに入るための第2のユーザインターフェース400を示す。第2のユーザインターフェース400は、
図3の第1のユーザインターフェース300に関して説明されたものと同様の特徴を含むことができる。しかしながら、
図4は、第2のゲームモード(例えば、ショートエイムラインモード320)に対応する第2のボトムバー405を含むことができる。実施形態では、ユーザインターフェースは、最小の1つのボトムバー(例えば、第1のユーザインターフェース300及び400における第1のボトムバー335)を有することができる。追加のボトムバーは、第1のボトムバー335の別個のバー又は延長部(例えば、ラップアラウンド)であり得る。テンプレート選択のカルーセルは、複数のテンプレート325について前述したのと同じ順序で表示され得る。代替の実施形態では、テンプレート選択は、第2のゲームモードのためにプレイヤによって選択された順序で、又はランダムにでも表示され得る。テンプレートが選択されている第2のゲームモード(例えば、ショートエイムラインモード320)の名前410は、第2のボトムバー405の上又は近くに表示され得る。プレイヤが最初に第2のゲームモードのための第1のテンプレートを選択する場合、第1のテンプレートは、第2のボトムバー405内の第1の空位置415(例えば、最も左の位置)に表示され得る。プレイヤが第2のゲームモードのために追加のテンプレート選択を行う場合、それらのテンプレート選択は、第2のボトムバー405内の次の連続した空位置に配置され得る。したがって、プレイヤが第2のゲームモードに参加することを望むテンプレートの優先度付けされたリストを作成して表示することができ、一方の端に最も高い優先度のテンプレート(例えば、第2のボトムバー405の最も左の位置)があり、その後連続してより低い優先度のテンプレートがリスト化される。一実施形態では、そのような優先度付けは、サーバシステム114によって(例えば、システム管理者などによって)作成及び管理され得る。代替の実施形態では、プレイヤは、テンプレートの優先度付けされたリストを作成することができる。任意の適切な数のボトムバーを使用して、サポートされているゲームモードの数に応じて、各ゲームモードのテンプレート選択を表示することができる。このようにして、ゲームモードとテンプレートの両方は、マッチングを見つけるために(例えば、サーバシステム114のシステム管理者によって、又はプレイヤによって)各ゲームモード内で優先度を付けることができる。一実施形態では、プレイヤは、いずれかのボトムバーを開いて全ての選択されたゲームモードを表示するか、又はいずれか又は両方のボトムバーを最小化することができ、その結果、例えば、一番上のゲームモードを表示したまま、残りのゲームモードを非表示にする。
【0041】
一実施形態によれば、プレイヤが「対戦相手を探す」ボタン420を押すと、ファストマッチマッチャは、ゲームモードに関係なく、全ての選択されたテンプレートのコレクションを分析し、例えば、有料エントリ競技会の賞金値の降順に、続いて無料エントリ競技会の賞金値の降順にテンプレートを進めることによって開始することができる。選択されたテンプレートを有する2つの競技会モード間の賞金値が同順位である場合、より高い優先度のテンプレート(例えば、優先度1を有するテンプレート、次いで優先度2を有するテンプレート、次いで優先度3を有するテンプレートなど)を最初にキューに入れることができる。限定ではなく説明の目的で、プールゲーム用に次のテンプレートをプレイヤが選択できる。すなわち、20ドルの8ボール(競技会モード優先度1)、20ドルのトリックショット(競技会モード優先度2)、5ドルの8ボール(競技会モード優先度1)、5ドルのトリックショット(競技会モード優先度2)、1個の仮想トークンのトリックショット(ゲーム競技会優先度1)である。マッチングを見つけるためにキューに入る順序は、20ドルの8ボール、20ドルのトリックショット、5ドルの8ボール、5ドルのトリックショット、及び1個の仮想トークンのトリックショットである。代替の実施形態では、ファストマッチマッチャは、最初の一番下の行335内の最も優先度の高いテンプレートから始まり、その行内のテンプレートのリストを進んで、適切なマッチングを見つけることができる。最初の一番下の行335でマッチングが識別されない場合、ファストマッチマッチャは、第2のボトムバー405に進むことができる。ファストマッチマッチャは、第2のボトムバー405の最も優先度の高いテンプレートから始まるマッチングを識別しようと試み、その行のテンプレートのリストを進んで適切なマッチングを見つけることができる。ファストマッチマッチャは、適切なマッチングが見つかるまで、各ゲームモードの各行を進めることができる。いずれの実施形態でも、プレイヤは、1つ以上の以前のテンプレートのキューに留まることができるとともに、1つ以上の追加のテンプレートに対してエンキューされて、ファストマッチマッチャのマッチングを識別する能力を最大化することができる。ファストマッチマッチャによってテンプレートを横切ってマッチングを識別する他の方法も可能である。
【0042】
一実施形態では、ファストマッチマッチャが選択されたテンプレートに基づいてマッチングを識別することができない場合、ファストマッチマッチャは、代替の同期モバイルゲームテンプレート及び/又は非同期モバイルゲームテンプレートなどの1つ以上の異なるテンプレートをプレイするようにプレイヤに促すことができる。ファストマッチマッチャは、異なる(他の)テンプレートでマッチングしたい場合は、プレイヤに適切な通知をユーザインターフェースに表示したり、又は表示させたりしてプレイヤに促すことができる。例えば、そのようなプロンプトは、ファストマッチマッチャが選択されたテンプレートでプレイヤのマッチングを識別しない(例えば、所定の時間内に識別されたマッチングがない)が、(同じゲーム内であるが、同じ又は異なるゲームモードのいずれかの)異なる選択されたテンプレートで第2のプレイヤを識別する場合に発生し得る。一実施形態では、ファストマッチマッチャは、許容されるフォールバックのために構成され、特定のフォールバックが1つ以上のプレイヤに提供されるのを防ぐことができる(例えば、ボットテンプレートフォールバックなし、同期テンプレートの非同期フォールバックなし、及びその逆など)。追加的又は代替的に、ファストマッチマッチャは、プレイヤにそれらの選択にテンプレートを追加するように促し、(例えば、人気のあるテンプレート又はプレイヤの流動性が高いテンプレートを追加することによって)マッチングの成功の可能性を高めることができる。
【0043】
一実施形態では、ファストマッチマッチャは、様々なプレイヤの流動性閾値が満たされる場合に、複数のテンプレート325に対してテンプレートを動的に追加又は削除することができる。例えば、プレイヤは、
図3又は
図4に示されるテンプレートのセットなどの複数のテンプレート325の第1のセットを提供され得る。ファストマッチマッチャは、各テンプレートでマッチング可能なプレイヤの数、マッチングの平均待ち時間、マッチングの成功率、合計キュー、及びその他の同様の情報をリアルタイムで取得して維持し、プレイヤの流動性をリアルタイムで判断することができる。各テンプレートは、それに関連付けられたプレイヤ流動性閾値を有することができる。限定ではなく例示の目的のために、プレイヤ流動性閾値は、例えば、ファストマッチマッチャがそのテンプレートに対して成功したマッチングを生成するために必要とする最小のプレイヤ数を示すことができるが、プレイヤ流動性閾値は、他の適切な要因又は要因の組み合わせ(例えば、利用可能なプレイヤ、平均待ち時間など)に基づくこともできる。プレイヤ流動性閾値は、テンプレート間で同じであるか、又はテンプレート間で異なり得る。例えば、より少ないエントリ料金(例えば、1.80ドル)のテンプレートは、より多くのプレイヤが一般的に利用可能であり、より少ないエントリ料金でトーナメントでマッチングするための平均待ち時間がより短い場合があるため、より高いプレイヤ流動性閾値を有し得る。しかしながら、より多いエントリ料金(例えば、120ドル)を有するテンプレートは、一般的に利用可能なプレイヤがより少なく、より多いエントリ料金を有するトーナメントでマッチングするための平均待ち時間がより長い場合があるため、より低いプレイヤ流動性閾値を有し得る。テンプレートのセットでは、ファストマッチマッチャは、プレイヤの流動性がそのテンプレートのプレイヤ流動性閾値を下回った場合に、表示されたセット又はプレイヤに提示されたセットからテンプレートを削除することができる。ファストマッチマッチャは、プレイヤの流動性がそのテンプレートのプレイヤの流動性閾値を超えた場合に、表示されたセット又はプレイヤに提示されたセットにテンプレートを追加できる。そのようなダイナミックテンプレートスケーリングでは、プレイヤは(継続的に又は所定の間隔で)マッチングの成功の可能性を最大化することができるテンプレートの更新されたセットで提示され得る。追加的又は代替的に、各テンプレートは、1つ以上の時間又は時間範囲に関連付けることができ、その結果、ファストマッチマッチャは、所定の時間又は所定の時間範囲内でプレイヤのための各セットに対し特定のテンプレートを追加又は削除することができる。
【0044】
一実施形態では、ファストマッチマッチャは、プレイヤの流動性閾値に基づいて、各々又は任意のテンプレートに対するプレイヤのマッチングを動的に修正することができる。例えば、プレイヤの流動性が所定の閾値を超えて増加する(又は所定の閾値範囲内にある)と、マッチングに利用可能なプレイヤが増える可能性があるため、ファストマッチマッチャは、各テンプレート又は任意のテンプレートに対してより接近したマッチングを提供することができる。逆に、プレイヤの流動性が所定の閾値を下回る(又は所定の閾値範囲外にある)と、ファストマッチマッチャは、マッチングのために利用可能なプレイヤが少ない場合があるため、各テンプレート又は任意のテンプレートに対してより幅のあるマッチングを提供することができる。例えば、ファストマッチマッチャは、ELO拡張で使用されるパラメータを適切に更新することによって、より接近した又はより幅のあるマッチングを提供することができ、その結果、ファストマッチマッチャが互いにマッチングすることを可能にする2人のプレイヤ間のELO差のより幅のある又はより接近した最大範囲まで拡張するのに多少時間がかかる可能性がある。そのような方法で、ファストマッチマッチャは、プレイヤの流動性にリアルタイムで応答して、プレイヤのマッチングに成功する確率を最大化することができる。追加的又は代替的に、ファストマッチマッチャは、時刻又は他の適切なパラメータに基づいて、各テンプレート又は任意のテンプレートのプレイヤのマッチングを動的に変更できるため、ファストマッチマッチャが所定の時間又は所定の時間範囲内でプレイヤのマッチングを修正することができる。追加的又は代替的に、適切な機械学習/人工知能技術をファストマッチマッチャが使用して、プレイヤをマッチングさせることができる。例えば、機械学習モデルは、各々又は任意のテンプレートについてのプレイヤの流動性データに基づいて訓練され、例えば、マッチングに成功するまでの時間を最適化することができる。次いで、機械学習モデルを使用して、テンプレートのそれぞれ又はいずれかのプレイヤを動的にマッチングさせることができる。機械学習モデルは、プレイヤの流動性が経時的に変化するにつれて更新又はそうでなければ適合させることができる。
【0045】
一実施形態では、1つ以上のテンプレートのプレイヤの流動性を改善する又はそうでなければ高めるために、ファストマッチマッチャは、ユーザインターフェースに適切なモーダルを表示する、又は表示させ、プレイヤに、それらの同期モバイルゲームで特定の同期モバイルゲーム又は特定のゲームモードをプレイするように促すことができる。追加的又は代替的に、ファストマッチマッチャは、チャットユーザインターフェースにチャットメッセージを表示又は表示させて、プレイヤにそれらの同期モバイルゲームで特定の同期モバイルゲーム又は特定のゲームモードをプレイするよう促すことができる。そのようなプロンプトは、プレイヤの流動性レベル(一般的にゲーム又は1つ以上のテンプレートのいずれか)が適切なプレイヤの流動性閾値を下回ると、ファストマッチマッチャによって自動的に表示され得る。プレイヤプロンプトは、所定の時間間隔などの間、プレイヤの流動性レベルがプレイヤの流動性閾値以上になるまで継続することができる。追加的又は代替的に、ファストマッチマッチャは、所定の時間又は所定の時間範囲内でそのようなプロンプトを表示又は表示させることができる。
【0046】
図5は、本開示の実施形態による、単一のゲームモードで複数のテンプレートのキューに入るための第3のユーザインターフェース500を示す。複数のゲームモードが利用できない実施形態では、第3のユーザインターフェース500は、単一のゲームモード(例えば、ロングエイムラインモード505)を表示することができる。第3のユーザインターフェース500は、
図3の第1のユーザインターフェース300及び
図4の第2のユーザインターフェース400に関して説明されているものと同様の特徴を含むことができる。しかしながら、単一のゲームモードが利用可能であるため、第3のユーザインターフェース500は、トップバーを含まないが、そのような特徴は、必要に応じて含まれ得る。プレイヤは、単一のゲームモードに関連付けられた複数のテンプレート510(そのようなテンプレートが画面上に全て適合することができない場合)を通して垂直にスクロールすることができる。第3のユーザインターフェース500は、
図3に示される第1のボトムバー335と同様の方法で動作することができるボトムバー515を含むことができる。第3のユーザインターフェース500は、そのような実施形態では単一のゲームモードを表示するため、複数の(すなわち、第2又はそれ以上の)ボトムバーをサポートしないであろう。一実施形態では、第3のユーザインターフェース500のボトムバー515は、1つのゲームモードのみが提供されるため、最小化又は非表示にすることができない。ゲームモードの名前は、ボトムバー515の上又は近くに表示することができるが、必要に応じてディスプレイから削除することができる。プレイヤが単一のゲームモードのために複数のテンプレート510から所望のテンプレートを選択すると、プレイヤは、本明細書に記載の方法で、「対戦相手を見つける」ボタン520を押して、ファストマッチマッチャによって対戦相手とマッチングされ得る。
【0047】
プレイヤが各テンプレートにエンキューされる速度は、適切な拡張技術によって決定することができる。一実施形態では、ファストマッチマッチャ拡張技術は、式(4)のような線形アルゴリズムであり得る。
Y=mX+b(4)
式(4)では、変数Yは、第1のキューに入ってからの合計時間であり得、変数Xは、0から始まる拡張インデックスであり得、定数bは、第2の選択されたテンプレートに入る前にファストマッチマッチャが待機する時間の長さの第1の時間間隔(例えば、秒単位)であり得、定数mは、第2の選択されたテンプレートから第3の選択されたテンプレートに、第3の選択されたテンプレートから第4の選択されたテンプレートなどに移動する前にファストマッチマッチャが待機する時間の長さの第2の時間間隔(例えば、秒単位)であり得る。
【0048】
実施形態によれば、変数Xは、第1のキュー以降に入った追加のキューの数を表すことができる。X=0の場合、プレイヤは1つのキューに入り、次のキューに入るまでY(0)時間待機する。X=1の場合、プレイヤは合計2つのキューに入り、第3のキューに入るまでY(1)時間待機する。Y(1)-Y(0)時間は、第2のキューと第3のキューに入る間を経過する。限定ではなく例示の目的のために、m=1及びb=1(すなわち、Y=x+1)で、プレイヤは、上述のテンプレートを選択することができる。限定ではなく例示の目的のために、プレイヤは以下のテンプレートを選択できる。すなわち、5ドルの有料エントリ競技会、20ドルの有料エントリ競技会、5個の仮想トークンの無料エントリ競技会、及び20個の仮想トークンの無料エントリ競技会である。この例では、プレイヤは、以下の順序でエンキューすることができる。すなわち、20ドルの有料エントリ競技会、次に5ドルの有料エントリ競技会、次に20個の仮想トークンの無料エントリ競技会、次に5個の仮想トークンの無料エントリ競技会である。ファストマッチマッチャの式(4)を使用して、プレイヤはすぐに20ドルの有料エントリ競技会のキューに入る。1秒後(Y=1*0+1=1)、プレイヤは、5ドルの有料エントリ競技会のキューに入る。更に1秒(合計2秒、すなわち、Y=1*1+1=2)後、プレイヤは、20個の仮想トークンの無料エントリ競技会のキューに入る。更に1秒(合計3秒、すなわち、Y=1*2+1=3)後、プレイヤは、5個の仮想トークンの無償エントリ競技会のキューに入る。代替の実施形態によれば、m及びbの両方をゼロに設定して、プレイヤが全てのキューに同時に入ることを可能にすることができる。
【0049】
別の実施形態では、ファストマッチマッチャ拡張技術は、式(5)などの対数アルゴリズムであり得る。
Y=ln(mX+b)+c(5)
式(5)では、変数及びパラメータの定義は、式(4)に関して説明されたものと同様であり、定数cは、対数アルゴリズムが後続のテンプレートにどれだけ速く拡張するかを制御するための第3の時間間隔(例えば、秒単位)であり得る。したがって、式(5)の対数アルゴリズムは、第2のテンプレートにゆっくりと拡張し、次いで、他の全てのテンプレートに迅速に拡張することができる。限定ではなく例示の目的のために、m=1、b=1、及びc=5(すなわち、Y=ln(X+1)+5)とし、プレイヤは上述されたテンプレートを選択する。プレイヤは、すぐに第1のテンプレートにキューされる。プレイヤは、Y=ln(1*0+1)+5=5秒後に第2のテンプレートにエンキューされる。次に、ユーザは、Y=ln(1*1+1)+5=~5.7秒後に第3のキューに入る。ユーザは、Y=ln(2*1+1)+5=~6.1秒後に第4のキューに入る。
【0050】
別の実施形態では、高速マッチャ拡張技術は、式(6)のような指数アルゴリズムであり得る。
Y=e^(mX+b)+c(6)
式(6)において、変数及びパラメータの定義は、式(5)に関して説明されたものと同様である。したがって、指数関数アルゴリズムは、第2にすばやく拡張し、次いで、ゆっくりと他の全てのテンプレートに拡張することができる。限定ではなく例示の目的のために、m=1、b=1、及びc=5(すなわち、Y=e^(X+1)+5)とし、プレイヤは上記で説明されたテンプレートを選択する。プレイヤはすぐに第1のテンプレートにキューされる。プレイヤは、Y=e^(1*0+1)+5=~7.7秒後に第2のテンプレートにエンキューされる。その後、ユーザはY=e^(1*1+1)+5=~12.4秒後に第3のキューに入る。ユーザは、Y=e^(2*1+1)+5=~25.1秒後に第4のキューに入る。
【0051】
いくつかの実施形態では、定数m、b、及びcは、カスタマイズ可能であり得、各拡張技術間で異なり得る。拡張技術は、例えば、ゲームごとに、テンプレートグループごとに、個々のテンプレートIDに固有の、エントリ種類レベル(例えば、有料エントリ又は無料エントリ)などで設定することができる。例えば、1つの拡張技術は、第1のモバイルゲームに使用されてもよく、一方、別の拡張技術は、第2のモバイルゲームに使用されてもよいなどである。一実施形態によれば、異なる拡張技術が、その日の異なる時間に、モバイルゲームのためのファストマッチマッチャ構成によって適用され得る。例えば、線形拡張アルゴリズムは、午前6時から午後6時まで使用することができ、対数拡張アルゴリズムが、午後6時から午前12時まで使用することができ、指数関数的アルゴリズムが、午前12時から午前6時まで使用することができる。他の順序と時間で他の拡張技術も可能である。追加的に又は代替的に、拡張技術の各々についての変数及びパラメータは、例えば、時刻に基づいて変更することができる。例えば、ファストマッチマッチャは変数とパラメータを変更して、ピーク時に接近したマッチングを提供することができるが、ファストマッチマッチャは変数とパラメータを変更して、オフ時間に幅のあるマッチングを提供することができる。
【0052】
一実施形態によれば、ELOレーティングマッチャが、同期モバイルゲームに使用され得る。追加的又は代替的に、ELOレーティングマッチャは、非同期モバイルゲームに使用することができる。ELOレーティングマッチャ拡張技術は、マッチングのためのプレイヤの可能なレーティングバンドをどの程度速く拡張するかを決定することができる。一実施形態では、ELOレーティングマッチャは、式(7)のような指数関数的レーティング拡張アルゴリズムを使用することができる。
Y=min(a+b*e^(X/c),d)(7)
【0053】
式(7)において、変数Yは、レーティング差であり、変数Xは、マッチングする前に待機する時間の長さであり、定数aは、インスタントマッチングのための最小レーティングであり、定数b及びcは、スケーリング係数であり、定数dは、最大レーティング差である。一実施形態では、a、b、c、及びdの値は、例えば、テンプレート又はテンプレート種類(例えば、有料エントリ競技会対無料エントリ競技会)に基づいて調整することができる。一実施形態では、ELOレーティングマッチャは、イベントベースの拡張に使用することができる。例えば、プレイヤがキューに入るとき、ELOレーティングマッチャは、キュー内の全てのプレイヤをループし、レーティング差に基づいて所定の秒数でマッチングするようにメッセージをスケジューリングすることができる。それらのメッセージが処理されるまでにプレイヤがすでに他のプレイヤとマッチングされている場合、それ以上のマッチングは必要ない。そのような実施形態では、マッチングがイベントベースであるため、プレイヤがキューに入る場合、ELOレーティングマッチャによって実施されるマッチングは、レーティング差が互恵的であるべきである。限定ではなく例示の目的のために、第1のプレイヤに1200のELOを有するようにさせる。第1のプレイヤは同期競技会を要求して、キューに入る。キューで待機しているのは、以下の3人のプレイヤである。すなわち、400のELOを有する第2のプレイヤ、1400のELOを有する第3のプレイヤ、及び1500のELOを有する第4のプレイヤである。本図では、式(7)について、a=200、b=2、c=2、及びd=800とする。したがって、ELOレーティングマッチャは、200レーティング差を下回るプレイヤと第1のプレイヤをすぐにマッチングさせることができ、10秒間で800ポイントに拡大するであろう(d=800の場合は、800でキャップをすることができ、そうでなければdを変更する必要があるであろう)。本図では、ELOレーティングマッチャは、それらのレーティング差が200及びa=200であるため、第1のプレイヤを第3のプレイヤとすぐにマッチングさせることができ、一方、ELOレーティングマッチャは、第1のプレイヤを第4のプレイヤとマッチングさせるのに約7秒(レーティング差が300)、第1のプレイヤを第2のプレイヤとマッチングさせるのに約12秒(レーティング差が800)かかるであろう。
【0054】
一実施形態では、ELOレーティングマッチャは、拡張アルゴリズムパラメータを動的に調整することができる。例えば、拡張アルゴリズムパラメータは、リアルタイムのプレイヤ流動性に基づいて動的に調整することができる。所定のプレイヤ流動性閾値は、ELOレーティングマッチャが使用して、拡張アルゴリズムパラメータがいつ調整され得るかを判断することができる。例えば、プレイヤの流動性が所定のプレイヤの流動性閾値を下回っている場合、ELOレーティングマッチャは、マッチングに利用可能なプレイヤが少ない場合があるため、拡張アルゴリズムパラメータを調整して、より幅のあるマッチングを提供することができる(例えば、最大レーティング差を増やすことによって)。あるいは、プレイヤの流動性が所定のプレイヤの流動性閾値を上回っている場合、ELOレーティングマッチャは、より多くのプレイヤがマッチングのために利用可能であり得るため、拡張アルゴリズムパラメータを調整して、より接近したマッチングを提供することができる(例えば、最大レーティング差を減少させることによって)。追加的又は代替的に、ELOレーティングマッチャは、例えば、時刻に基づいて拡張アルゴリズムパラメータを修正することができる。例えば、ELOレーティングマッチャは、ピーク時間帯により接近したマッチングを提供するために拡張アルゴリズムパラメータを修正することができ、一方、ELOレーティングマッチャは、オフ時間帯により幅のあるマッチングを提供するために拡張アルゴリズムパラメータを修正することができる。
【0055】
追加的又は代替的に、ELOレーティングマッチャは、ELOレーティングが非対称的に拡張することができるように、拡張アルゴリズムパラメータを調整することができる。このような実施形態では、ELOレーティングマッチャは、異なる上向き及び下向きのELO拡張を使用して、他方よりも一方向により迅速に拡張することができる。したがって、ELOレーティングマッチャは、上向き及び下向きの拡張のために異なる拡張アルゴリズムパラメータを使用することができる。限定ではなく例示の目的のために、下向き拡張アルゴリズムパラメータは、上向き拡張アルゴリズムパラメータよりも速い拡張を提供することができる。本図では、第1の利用可能な対戦相手は、プレイヤの下に100ELOとすることができ、第2の利用可能な対戦相手は、プレイヤの上に75ELOとすることができる。本図では、第1の利用可能な対戦相手がプレイヤから更に離れているにもかかわらず、下向きの拡張がより速くなるため、非対称な拡張により、ELOレーティングマッチャによって、第1の利用可能な対戦相手とのマッチングを行うことができる。このような非対称マッチングは、プレイヤが同じバケット又はプレイヤのグループ内の対戦相手とマッチングすることができるように、バケットベースとすることができる。所定の時間内にバケット内でマッチングが見つからない場合、ELOレーティングマッチャは、異なるバケット内の対戦相手にマッチングを拡大することができる。
【0056】
一実施形態によれば、ファストマッチマッチャ及びELOレーティングマッチャは、例えば、同期モバイルゲーム及び他の同様のクライアントアプリケーションでマッチングを実行するために組み合わせて使用され得るが、ファストマッチマッチャ及びELOレーティングマッチャは、非同期モバイルゲーム及び他の同様のクライアントアプリケーションに使用され得る。上述したように、ファストマッチマッチャは、プレイヤが一度に複数のテンプレートのキューに入ることを可能にすることができる。プレイヤが複数のテンプレートを選択した場合、プレイヤはテンプレートごとに、例えば、降順でエンキューされ得る。プレイヤが各キューに入ると、それぞれのELOレーティングマッチャを使用して、そのプレイヤをそれぞれのキュー内で待機している他のプレイヤとマッチングさせることができる。限定ではなく説明の目的で、プレイヤはファストマッチマッチャによって次の順序でエンキューされ得る。すなわち、20ドルの有料エントリ競技会、5ドルの有料エントリ競技会、20個の仮想トークンの無料エントリ競技会、5個の仮想トークンの無料エントリ競技会である。プレイヤはすぐに20ドルの有料エントリ競技会のキューに入り、20ドルの有料エントリ競技会のELOレーティングマッチャを開始する。1秒後(例えば、m=1及びb=1で式(4)の線形アルゴリズムを使用して)、プレイヤは5ドルの有料エントリ競技会のキューに入り、5ドルの有料エントリ競技会のELOレーティングマッチャを開始する。更に1秒(合計2秒)後、プレイヤは20個の仮想トークンの無料エントリ競技会のキューに入り、20個の仮想トークン競技会のELOレーティングマッチャを開始する。更に1秒(合計3秒)後、プレイヤは5個の仮想トークンの無償エントリ競技会のキューに入り、5個の仮想トークン競技会のELOレーティングマッチャを開始する。しかしながら、ファストマッチマッチャ及びELOレーティングマッチャのいずれか又は両方を、個別に、まとめて、又は前述のプレイヤマッチングモジュールのいずれか又は全てと任意の組み合わせで使用して、可能な限り最短の時間で好ましいマッチングを実現することができる。
【0057】
一実施形態によれば、ファストマッチマッチャ及びELOレーティングマッチャのいずれか又は両方とのマッチングを支援するために、プレイヤは、スキルレーティング、プレイされたゲームの総数、勝利したゲームの総数、プレイされた同期ゲームの数、勝利した同期ゲームの数、プレイされた非同期ゲームの数、勝利した非同期ゲームの数など、又はそれらの任意の組み合わせなど、それらのプレイヤの任意の好適な特徴に基づいて、グループ又は「バケット」に分類することができる。他のプレイヤ特性も可能である。例えば、「新規」であり、所定の数未満のゲームをプレイしたプレイヤは、第1のバケットに分類することができる。他の「熟練した」プレイヤは、例えば、モバイルゲームのスキルレーティングに従ってバケットに分類することができ、各バケットは対応するスキルバンドを有することができる。追加的又は代替的に、熟練のプレイヤは、プレイされたゲームの数(例えば、同期ゲームの場合、非同期ゲームの場合など)、勝利したゲームの数(例えば、同期ゲームの場合、非同期ゲームの場合など)に従ってバケットに分類することができ、各バケットは、プレイされたゲームの対応する数、勝利したゲームの数など、又はそれらの任意の組み合わせを有することができる。バケットの他の特性も可能である。任意の適切な数のそのようなバケットを使用することができ、各バケットは、クライアントアプリケーションの任意の適切な特性に関連付けることができる。追加的又は代替的に、各バケットは、ELO拡張アルゴリズムに関連付けることができる。本発明の実施形態によれば、プレイヤは、同じバケット内のプレイヤとマッチングされ得る。しかしながら、いくつかのプレイヤマッチングモジュールについて、第1の特性に関連付けられたバケット内のプレイヤは、例えば、第2の特性が第1の特性の所定の差内又は範囲内にある場合、第2の特性に関連付けられた別のバケット内のプレイヤとマッチングされ得る。追加的又は代替的に、プレイヤのバケット内のマッチングは、マッチングが他のプレイヤのバケットに拡張する前に、所定の時間継続することができる。言い換えると、バケット内マッチングでは、プレイヤのマッチング集団は、第1の所定の時間(例えば、秒)の間、プレイヤのバケットに制限され得る。プレイヤがその時間内にマッチングされない場合、マッチングは、例えば、それらのそれぞれの時間ウィンドウを過ぎて拡張したものなど、他のバケット(すなわち、バケット間マッチング)からのプレイヤを含むように拡張され得る。追加的又は代替的に、様々な拡張技術に使用される様々な変数及びパラメータは、各バケットに割り当てられるか、そうでなければ関連付けられることができ、変数及びパラメータの各セットは、時刻などに基づいて、動的に(例えば、リアルタイムのプレイヤ流動性に基づいて)など、マッチャによって適切に修正され得る。
【0058】
モバイルゲームのプレイヤなどのクライアントアプリケーションのユーザは、任意の好適な様式でレーティングされるか、又はそうでなければ特徴付けられるか、又は分類され得る。一実施形態では、新規のプレイヤは、第1の所定のレーティングレベルから開始することができる。競技会又はトーナメントが終了すると、全てのプレイヤのレーティングを計算して調整することができる。例えば、各プレイヤのレーティングは、(以下で説明するような)様々な適切な要因を使用して計算することができ、次いで勝者のレーティングを計算することができ、次いで敗者のレーティングを計算することができる。各プレイヤの新規のレーティングは、関連付けられたゲームアカウント又はオンラインプロフィールに保存することができる。一実施形態では、トーナメントの実際の結果が(プレイヤのレーティングに基づいて)非常に可能性が高いと処理ロジックによって判断された場合、参加プレイヤは、レーティングの変化が最小限となり得る。しかしながら、処理ロジックが、低レーティングのプレイヤが高レーティングのプレイヤを打ち負かすなどのありそうもない結果を判断する場合、結果は、レーティングの変化がより大きくなり得る。
【0059】
本発明の一実施形態によれば、競技会又はトーナメントが終了すると、プレイヤの予備レーティングの変化は、例えば、マッチングの結果(勝ち、敗け、又は引き分け)及びプレイヤと最も近い対戦相手との間のレーティングの差に基づいて計算され得る。次いで、そのような予備的な変化(例えば、-1と1の間の値)に「kファクタ」を掛けて、レーティングの実際の変化を決定することができる。所与のマッチングのためのkファクタは、様々な適切なパラメータに依存し得る。一実施形態では、kファクタに関するパラメータは、各ゲームについて同一であることができ、好適なゲーム関連の挙動に基づくことができる。例えば、第1の所定の数(例えば、5、10、15など)又はより少ないゲームをプレイしたプレイヤは、第1のkファクタ(例えば、100、110、120など)を有することができる。第2の所定の数(例えば、20、25、30など)又はより少ないゲームをプレイしたプレイヤは、(例えば、50、60、70など)の第2のkファクタを有することができる。第3の所定の数(例えば、1600、1700、1800など)よりも大きいレーティングを有するプレイヤは、第3のkファクタ(例えば、10、20、30など)を有することができる。第4の所定の数(例えば、1300、1400、1500など)よりも大きいレーティングを有するプレイヤは、第4のkファクタ(例えば、5、10、15など)を有することができる。他の全てのプレイヤは、第5のkファクタ(例えば、20、25、30など)を有することができる。kファクタの他の種類及び値も可能である。いくつかの実施形態では、確定されたプレイヤが新規プレイヤとマッチングされる場合(例えば、新規プレイヤが特定の数未満のゲームをプレイした場合)、確定されたプレイヤのkファクタをゼロに設定することができる。第1の新規プレイヤが第2の新規プレイヤとマッチングされる場合、第1の新規プレイヤのkファクタを、所定の量(例えば、50%、60%など)だけ減少させることができ、これにより、第2の新規プレイヤのkファクタを対応する量だけ減少させることもできる。3人以上のプレイヤがいるゲームでは、次のように計算を進めることができる。まず、プレイヤはスコアで、次にレーティングで並べ替えることができる。勝者(例えば、1位のプレイヤ)は、最もレーティングの高い対戦相手に対するマッチングに勝ったと扱うことができる。敗者(例えば、最下位のプレイヤ)は、それらの真上のプレイヤに負けたとして扱うことができる。他の全てのプレイヤ(例えば、その中間のプレイヤ)は、そのすぐ下のプレイヤに対して勝ち、そのすぐ上のプレイヤに敗けたとして扱うことができる。一実施形態では、マッチングのいずれかに引き分けがある場合、そのような結果は、前述の勝ち/敗けの代わりに考慮に入れることができる。プレイヤレーティングレベルを計算又は決定するための他の技術も可能である。
【0060】
代替の実施形態では、上記で説明された所定の値のいずれか又は全てを動的に決定することができる。代替の実施形態によれば、処理ロジック、並びに第1のプレイヤマッチングモジュール116、第2のプレイヤマッチングモジュール118、・・・、第Nのプレイヤマッチングモジュール120のいずれか又は全ては、適切な機械学習/人工知能技術を使用して、上述した所定の値及び/又はパラメータのいずれか又は全てについて適切な値を動的に選ぶか、又はそうでなければ選択することができる。例えば、1つ以上の機械学習モデルは、プレイヤデータデータベース120及びゲームデータデータベース122のいずれか又は両方からのデータに基づいて訓練することができる。次いで、1つ以上の機械学習モデルを使用して、例えば、プレイヤの特性(例えば、スキルレベル/レーティング、勝ち、敗け、スコア、時間など)、モバイルゲームの特性(例えば、ゲーム又は競技会の種類)、及び他の同様の特性又はデータに基づいて、前述の変数のそれぞれ又はいずれかの適切な値を動的に選択することができる。1つ以上の機械学習モデルは、プレイヤおよびモバイルゲームに関連付けられた特性、結果、及び他の同様のデータが時間の経過とともに進化するにつれて更新されるか、又はそうでなければ適合させることができる。
【0061】
図6は、ユーザによって選択された複数の対話テンプレートに基づいて、クライアントアプリケーションのユーザのための適切なマッチングを自動的に決定する例示的なコンピュータ実装方法600を示すブロック図である。方法600は、ブロック605で開始することができ、複数のユーザのそれぞれのモバイルデバイス上で実行しているアプリケーションクライアントの複数のユーザのうちの第1のユーザから、ユーザによって選択された第1の複数の対話テンプレートに基づいて、アプリケーションクライアント内の複数のユーザのうちの1人以上の他のユーザと対話する要求を受信することができる。ブロック610において、複数のユーザのうちの第2のユーザを決定することができる。第2のユーザは、第2の対話テンプレートに関連付けることができ、第2のユーザの決定は、第2の対話テンプレートと第1の複数の対話テンプレートからの第1の対話テンプレートとの間のマッチングの識別に基づくことができる。ブロック615において、第1のユーザと第2のユーザとの間の対話は、第2のユーザの決定に応答してアプリケーションクライアント内で開始することができる。
【0062】
本発明のいくつかの実装態様によれば、スイッチバックテストのためのシステム及び/又は方法は、本明細書に記載のプレイヤマッチング機能と併せて使用され、事前のポスト測定のバイアスを考慮しながら、機能のテストを可能にすることができる。いくつかの実装態様では、スイッチバックテスト方法論は、例えば、上述のファストマッチマッチャ及びELOレーティングマッチャを含む、本明細書に記載されるプレイヤマッチング技術のうちの1つ以上のテスト処理と制御処理との間で交互に行うことができ、この交互処理は、所定のスイッチバックテストプロトコルに従って発生することができる。いくつかの実装態様では、テスト処理及び制御処理は、ゲームアルゴリズム、通貨アルゴリズム、テンプレートアルゴリズム、及びバケットレベルアルゴリズムを含む、プレイヤマッチング技術の1つ以上の構成パラメータに適用することができる。いくつかの実装態様では、所定のスイッチバックテストプロトコルは、ランダム化されたプロトコルとすることができる。
【0063】
限定ではなく例示の目的のために、例えば、所定のプロトコルは、上記のプレイヤマッチング技術のうちの1つ以上が最初の日に利用され、その後、翌2日目に利用されず、その後、翌3日目に再び利用され、テストプロトコルによって指定された日数の間、利用と非利用との間で交互に継続することを指定することができる。1つ以上のプレイヤマッチング技術が利用される日のプレイヤマッチングの結果を、1つ以上のプレイヤマッチング技術が利用されない日のプレイヤマッチングの結果と比較することができ、それによって、1つ以上のプレイヤマッチング技術の有効性の尺度を提供することができる。本例示は、交互の日を説明するが、本発明の実施形態は、例えば、分、時間、日、週などの任意の適切な期間を使用して交互にすることができる。このスイッチバックテスト方法論を採用することによって、本明細書に記載されるプレイヤマッチング技術に対して行われる最適化を、より効果的にテストすることができる。
【0064】
図7は、本実施形態による、本明細書に記載された動作のうちの1つ以上を実行し得る例示的なコンピューティングデバイス700のブロック図である。コンピューティングデバイス700は、LAN、イントラネット、エクストラネット、及び/又はインターネット内の他のコンピューティングデバイスに接続されてもよい。コンピューティングデバイス700は、クライアントサーバネットワーク環境におけるサーバマシンの能力で、又はピアツーピアネットワーク環境におけるクライアントの能力で動作し得る。コンピューティングデバイス700は、パーソナルコンピュータ(personal computer、PC)、セットトップボックス(set-top box、STB)、サーバ、ネットワークルータ、スイッチ若しくはブリッジ、又はそのマシンによって取られるアクションを指定する命令のセット(逐次、若しくはそれ以外)を実行することができる任意のマシンによって提供されてもよい。更に、単一のコンピューティングデバイス700のみが示されているが、「コンピューティングデバイス」という用語は、本明細書で説明される方法を実行するために命令のセット(又は複数のセット)を個別に又は共同で実行するコンピューティングデバイスの任意の集合も含むと解釈されるべきである。
【0065】
例示的なコンピューティングデバイス700は、コンピュータ処理デバイス602(例えば、汎用プロセッサ、ASICなど)、メインメモリ704、スタティックメモリ706(例えば、フラッシュメモリなど)、及びバス730を介して互いに通信し得るデータストレージデバイス708を含んでもよい。コンピュータ処理デバイス702は、マイクロプロセッサ、中央処理ユニットなどの1つ以上の汎用処理デバイスによって提供されてもよい。例示的な例では、コンピュータ処理デバイス702は、複雑命令セットコンピューティング(complex instruction set computing、CISC)マイクロプロセッサ、縮小命令セットコンピューティング(reduced instruction set computing、RISC)マイクロプロセッサ、超長命令語(very long instruction word、VLIW)マイクロプロセッサ、又は他の命令セットを実装するプロセッサ又は命令セットの組み合わせを実装するプロセッサを含んでもよい。また、コンピュータ処理デバイス702は、特定用途向け集積回路(application specific integrated circuit、ASIC)、フィールドプログラマブルゲートアレイ(field programmable gate array、FPGA)、デジタル信号プロセッサ(digital signal processor、DSP)、ネットワークプロセッサなどの1つ以上の専用処理デバイスを含んでもよい。コンピュータ処理デバイス702は、本明細書で説明される動作及びステップを実行するために、本開示の1つ以上の態様に従って、本明細書で説明される動作を実行するように構成されてもよい。
【0066】
コンピューティングデバイス700は、ネットワーク714と通信し得るネットワークインターフェースデバイス712を更に含んでもよい。データストレージデバイス708は、本開示の1つ以上の態様に従って、1つ以上の命令セット、例えば、本明細書に記載される動作を実行するための命令が記憶されてもよい機械可読記憶媒体728を含んでもよい。また、コア論理命令726を実装する命令718は、コンピューティングデバイス700、メインメモリ704、及びコンピュータ可読媒体も構成するコンピュータ処理デバイス702によるその実行中に、完全に又は少なくとも部分的に、メインメモリ704内、及び/又はコンピュータ処理デバイス702内に常駐し得る。命令は更に、ネットワークインターフェースデバイス612を介してネットワーク714上で送信又は受信され得る。
【0067】
機械可読記憶媒体728は、例示的な例では、単一の媒体であることが示されているが、「コンピュータ可読記憶媒体」という用語は、1つ以上の命令セットを記憶する単一の媒体又は複数の媒体(例えば、集中型又は分散型データベース及び/又は関連するキャッシュ及びサーバ)を含むと解釈されるべきである。「コンピュータ可読記憶媒体」という用語はまた、機械による実行のための一連の命令を格納、符号化、又は搬送することが可能であり、機械に本明細書に記載される方法を実施させる任意の媒体を含むと解釈されるべきである。したがって、「コンピュータ可読記憶媒体」という用語は、固体メモリ、光学媒体、磁気媒体などを含むが、これらに限定されないと解釈されるものとする。
【0068】
本明細書に記載される主題は、多くの技術的利点を提供する。例えば、本発明のいくつかの実装態様は、特に、多数のユーザ(例えば、数十万、数百万、数千万のユーザなど)を有するクライアントアプリケーションに対して、実質的により速いマッチング時間をサポート及び提供することによって、マッチングを識別するコンピュータハードウェアリソース(例えば、コンピュータ処理及びメモリ)の効率及び処理能力を改善することができる。例えば、本発明のいくつかの実装態様は、複数のテンプレート内のマッチングをキューに入れて識別する多数のユーザを同時により効率的に処理することができる。多数のユーザを有するクライアントアプリケーションのマッチング速度及び効率を向上させることによって、コンピュータハードウェアリソースをより迅速に解放し、他のタスク及びプロセスに使用することができ、結果として、コンピュータリソース利用率の大幅な改善をもたらす。
【0069】
本開示に記載する主題及び動作の実施形態は、デジタル電子回路の中に、又は本開示に開示された構造、及びその構造的等価物、若しくはそれらのうちの1つ以上の組み合わせを含むコンピュータソフトウェア、ファームウェア又はハードウェアの中に実装することができる。本開示に記載する主題の実施形態は、1つ以上のコンピュータプログラム、すなわち、データ処理装置による実行、又はデータ処理装置の作動を制御するためにコンピュータ記憶媒体上で符号化されたコンピュータプログラム命令のうちの1つ以上のモジュールとして実装することができる。代替的に又は追加的に、プログラム命令は、人工的に生成された伝搬信号、例えば、データ処理装置による実行のために適切な受信装置に送信するための情報を符号化するために生成された機械生成の電気、光、又は電磁信号上で符号化することができる。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダム又はシリアルアクセスメモリアレイ又はデバイス、又はそれらのうちの1つ以上の組み合わせであり得るか、又はそれらに含まれ得る。更に、コンピュータ記憶媒体は、伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝搬信号に符号化されたコンピュータプログラム命令のソース又は宛先であり得る。コンピュータ記憶媒体はまた、1つ以上の別個の物理的構成要素又は媒体(例えば、複数のCD、ディスク、又は他の記憶デバイス)であってもよく、又は1つ以上の別個の物理的構成要素又は媒体に含まれてもよい。
【0070】
本開示で説明される動作は、1つ以上のコンピュータ可読記憶デバイスに記憶された、又は他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装され得る。
【0071】
「データ処理装置」という用語は、例えば、プログラマブルプロセッサ、コンピュータ処理デバイス、コンピュータ、チップ上のシステム、又は前述の複数のもの、若しくは組み合わせを含む、データを処理するためのあらゆる種類の装置、デバイス、及び機械を包含する。コンピュータ処理装置は、専用論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)、中央処理ユニット(central processing unit、CPU)、マルチコアプロセッサなどを含むことができる1つ以上のプロセッサを含んでもよい。装置は、ハードウェアに加えて、当該コンピュータプログラムの実行環境を構築するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、又はそれらのうちの1つ以上の組み合わせを構成するコード、を更に含むことができる。装置及び実行環境は、ウェブサービス、分散コンピューティング、及びグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【0072】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる)は、コンパイル又は解釈される言語、宣言的又は手続き的又は機能的言語を含む任意の形態のプログラミング言語で記述され得、それは、スタンドアロンプログラムとして、又はモジュール、コンポーネント、サブルーチン、オブジェクト、若しくはコンピューティング環境において使用に好適な他のユニットを含む、任意の形式で展開され得る。コンピュータプログラムは、必要ではないが、ファイルシステムにおけるファイルに対応し得る。プログラムは、他のプログラム若しくはデータ(例えば、マークアップ言語文書に記憶された1つ以上のスクリプト)を保持するファイルの一部分に、当該プログラム専用の単一のファイルに、又は複数のコーディネートされたファイル(例えば、1つ以上のモジュール、サブプログラム、又はコードの一部分を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのサイトに位置するか、又は複数のサイトにわたって分散され、かつ通信ネットワークによって相互接続される1つのコンピュータ又は複数のコンピュータ上で実行されるように展開され得る。
【0073】
本明細書で説明するプロセス及び論理フローは、1つ以上のコンピュータプログラムを実行して、入力データ上で動作して出力を生成することによりアクションを実施する1つ以上のプログラマブルプロセッサによって実施することができる。また、プロセス及び論理フローは、専用論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)によって実施することができ、装置もまた、そのように実装することができる。
【0074】
コンピュータプログラムの実行に適したプロセッサには、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方、並びに任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサが含まれる。一般に、プロセッサは、読み取り専用メモリ、又はランダムアクセスメモリ、又はその両方から命令及びデータを受け取る。コンピュータの最も重要な要素は、命令に従ってアクションを実施するためのプロセッサ、及び命令及びデータを格納するための1つ以上のメモリデバイスである。一般に、コンピュータは更に、データを格納するための1つ以上の大容量記憶デバイス、例えば、磁気ディスク、光磁気ディスク、光ディスク、ソリッドステートドライブなどからデータを受信するため、又はそれらにデータを転送するため、あるいはその両方を行うために、それらを含む、あるいはそれらに動作可能に連結している。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。更に、コンピュータは、他のデバイス、例えば、ごく一部ながら例を挙げれば、スマートフォン、携帯オーディオ又はメディアプレイヤ、ゲーム機、全地球測位システム(Global Positioning System、GPS)受信機、又は携帯記憶デバイス(例えば、ユニバーサルシリアルバス(universal serial bus、USB)フラッシュドライブ)に組み込むことが可能である。コンピュータプログラム命令及びデータを格納するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、例えばEPROM、EEPROM及びフラッシュメモリデバイス;磁気ディスク、例えば内蔵ハードディスク又は取り外し可能ディスク;光磁気ディスク;及びCD-ROM及びDVD-ROMディスクを含む、あらゆる形態の不揮発性メモリ、媒体及びメモリデバイスを含む。プロセッサ及びメモリは、専用論理回路によって補足されるか、又は専用論理回路に組み込まれ得る。
【0075】
ユーザとの対話を提供するために、本明細書に記載の主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、例えば、CRT(カソードレイチューブ)、LCD(液晶ディスプレイ)モニタなど、ユーザがそれによってコンピュータに入力を提供することができるキーボード及びポインティングデバイス、例えば、マウス、トラックボール、タッチパッド、スタイラスなど、を有するコンピュータ上で実装することができる。他の種類のデバイスを使用して、ユーザとの対話を提供することができ、例えば、ユーザに提供されるフィードバックは、視覚フィードバック、聴覚フィードバック、又は触覚フィードバックなどの、任意の形態の感覚フィードバックであり得、ユーザからの入力は、音響、音声、又は触覚入力を含む任意の形態で受信され得る。更に、コンピュータは、ユーザによって使用されるデバイスにリソースを送信し、デバイスからリソースを受信することによって、例えば、ウェブブラウザから受信された要求に応答して、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。
【0076】
本開示に記載する主題の実施形態は、バックエンドコンポーネントを、例えばデータサーバとして含むか、又はミドルウェアコンポーネントを、例えばアプリケーションサーバとして含むか、又はフロントエンドコンポーネント、例えば、ユーザが本開示に記載の主題の実装態様と対話可能なグラフィカルユーザインターフェース若しくはWebブラウザを有するクライアントコンピュータ、若しくは1つ以上のそのようなバックエンド、ミドルウェア、若しくはフロントエンドコンポーネントの任意の組み合わせを含む、コンピューティングシステムに実装することができる。システムのコンポーネントは、デジタルデータ通信の任意の形態又は媒体、例えば、通信ネットワークによって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク(local area network、LAN)及びワイドエリアネットワーク(wide area network、WAN)、インターネットワーク(例えば、インターネット)、ピアツーピアネットワーク(例えば、アドホックピアツーピアネットワーク)などが含まれる。
【0077】
コンピューティングシステムは、クライアント及びサーバを含むことができる。クライアント及びサーバは、一般に、互いに遠隔であり、典型的には、通信ネットワークを介して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、データ(例えば、HTMLページ)をクライアントデバイスに送信する(例えば、データをクライアントデバイスと対話するユーザに表示し、ユーザ入力をクライアントデバイスと対話するユーザから受信する目的で)。クライアントデバイスで生成されたデータ(例えば、ユーザ対話の結果)は、サーバでクライアントデバイスから受信することができる。
【0078】
1つ以上のコンピュータのシステムは、動作中にシステムにアクションを実施させる、ソフトウェア、ファームウェア、ハードウェア、又はそれらの組み合わせをシステムにインストールさせることによって、特定の動作又はアクションを実施するように構成され得る。1つ以上のコンピュータプログラムは、データ処理装置によって実行される場合に、装置にアクションを実施させる命令を含むことによって、特定の動作又はアクションを実施するように構成され得る。
【0079】
本開示を通して「一実施形態」又は「実施形態」への言及は、少なくとも1つの実施形態に含まれる、実施形態に関連して記載された特定の特徴、構造、又は特性を意味する。したがって、本開示を通して様々な場所における「一実施形態において」又は「実施形態において」という語句の出現は、必ずしも全てが同じ実施形態を指すわけではない。更に、「又は」という用語は、排他的な「又は」ではなく包括的な「又は」を意味することが意図される。
【0080】
本明細書には多くの特定の実装態様の詳細が含まれているが、これらは任意の発明又は特許請求の範囲に対する制限として解釈されるべきではなく、むしろ特定の発明の特定の実施形態に固有な特徴の記載として解釈されるべきである。別個の実施形態の文脈で本開示に記載される特定の特徴は、単一の実施形態において組み合わせて実施することもできる。逆に、単一の実施形態の文脈で説明される様々な特徴は、複数の実施形態において別々に、又は任意の適切なサブ組み合わせで実施することもできる。更に、特徴は、特定の組み合わせで作用するものとして上記で説明し、及び当初は更にそのように特許請求の範囲としたが、特許請求の範囲とした組み合わせからの1つ以上の特徴は、場合によっては組み合わせから削除できるとともに、特許請求の範囲とした組み合わせは、サブ組み合わせ又はサブ組み合わせのバリエーションに移されてもよい。
【0081】
同様に、図面には特定の順序で作動が描かれているが、これは、望ましい結果を得るために、そのような作動を示された特定の順序で、又は順次実行すること、あるいは図示された全ての作動を実行することを必要とすると理解すべきではない。特定の状況においては、マルチタスク及び並列処理が有利である場合がある。更に、上述した実施形態における様々なシステムコンポーネントの分離は、全ての実施形態においてそのような分離が必要であると理解されるべきではなく、説明したプログラムコンポーネント及びシステムは、一般に、単一のソフトウェア製品において一緒に統合することができるか、又は複数のソフトウェア製品にパッケージ化することができると理解されるべきである。
【0082】
主題の特定の実施形態を説明してきた。他の実施形態は、以下の特許請求の範囲の範囲内である。場合によっては、特許請求の範囲に列挙したアクションは、異なる順序で実施することができ、かつそれでも望ましい結果を得ることができる。更に、添付の図に描かれたプロセスは、望ましい結果を得るために、必ずしも示した特定の順序、すなわち順次的な順序を必要としない。特定の実装態様では、マルチタスク及び並列処理が有利である場合がある。
【0083】
本発明の図示された実装態様の上記の説明は、網羅的であること、又は本発明を開示された正確な形態に限定することを意図しない。本発明の具体的な実装態様及び例が、例示的な目的のために本明細書に記載されているが、関連技術分野の当業者が認識するように、本発明の範囲内で様々な等価な修正が可能である。「例としての」又は「例示的な」という用語は、本明細書では、例、実例、又は例示として役立つことを意味するために使用される。「例としての」又は「例示的な」として本明細書に記載されるいかなる態様又は設計も、必ずしも他の態様又は設計よりも好ましい又は有利であると解釈されるべきではない。むしろ、「例としての」又は「例示的な」という用語の使用は、具体的な方法で概念を提示することが意図される。本出願で使用される場合、「又は」という用語は、排他的な「又は」ではなく、包括的な「又は」を意味することが意図される。すなわち、特に指定されない限り、又は文脈から明らかでない限り、「XはA又はBを含む」は、自然な包括的順列のいずれかを意味することが意図される。すなわち、XがAを含むか、XがBを含むか、又はXがAとBの両方を含む場合、「XはA又はBを含む」は、前述の例のいずれかの下で満たされる。更に、本出願及び添付の特許請求の範囲で使用される物品「a」及び「an」は、別様に指定されない限り、又は単数形に向けられる文脈から明確でない限り、一般に「1つ以上」を意味すると解釈されるべきである。更に、「実施形態」又は「一実施形態」又は「実装態様」又は「一実装態様」という用語の全体にわたる使用は、そのように説明されない限り、同一の実施形態又は実装態様を意味することを意図しない。更に、本明細書で使用される「第1の」、「第2の」、「第3の」、「第4の」などの用語は、異なる要素を区別するためのラベルとして意味され、必ずしもそれらの数値指定に従って順序的な意味を有し得るわけではない。
【国際調査報告】