(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-18
(45)【発行日】2024-01-26
(54)【発明の名称】検索における改善された発見可能性
(51)【国際特許分類】
A63F 13/35 20140101AFI20240119BHJP
A63F 13/20 20140101ALI20240119BHJP
A63F 13/533 20140101ALI20240119BHJP
A63F 13/77 20140101ALI20240119BHJP
A63F 13/798 20140101ALI20240119BHJP
【FI】
A63F13/35
A63F13/20
A63F13/533
A63F13/77
A63F13/798
(21)【出願番号】P 2021564582
(86)(22)【出願日】2019-09-24
(86)【国際出願番号】 US2019052807
(87)【国際公開番号】W WO2020222861
(87)【国際公開日】2020-11-05
【審査請求日】2021-12-27
(32)【優先日】2019-05-01
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】520317055
【氏名又は名称】ロブロックス・コーポレーション
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】アスワス・マノハラン
(72)【発明者】
【氏名】ニコラウス・ゾンターク
(72)【発明者】
【氏名】シャイレンドラ・ラトール
【審査官】西村 民男
(56)【参考文献】
【文献】特許第6077083(JP,B1)
【文献】特開2018-089531(JP,A)
【文献】特開2016-144640(JP,A)
【文献】特開2015-016104(JP,A)
【文献】米国特許出願公開第2015/0120689(US,A1)
【文献】米国特許出願公開第2012/0149470(US,A1)
【文献】米国特許出願公開第2012/0221566(US,A1)
【文献】米国特許出願公開第2012/0016906(US,A1)
【文献】米国特許出願公開第2017/0087464(US,A1)
【文献】米国特許出願公開第2016/0371388(US,A1)
【文献】知って得する!3つの検索テクニック!,世界のウェブアーカイブ|国立国会図書館インターネット資料収集保存事業[online],2017年12月28日,https://web.archive.org/web/20171228012846/https://www.sony.jp/support/vaio/beginner/school/internet/05.html,[2022年01月13日検索]
(58)【調査した分野】(Int.Cl.,DB名)
A63F 9/24,13/00-13/98
G06F 16/00-16/958,
17/00-17/18
G06Q 50/10
(57)【特許請求の範囲】
【請求項1】
コンピュータにより実行される、
オンラインゲームに関するコンテンツデータの検索方法であって、
サーバにおいて、デバイスから検索クエリを受信するステップと、
第1の基準および第2の基準の中から検索基準を選択するステップと、
前記検索基準を使用してデータストアに対して前記検索クエリを実行するステップと、
前記検索クエリを実行したことに応答して前記データストアから検索結果を受信するステップと、
前記デバイスに少なくとも前記検索結果の一部分および前記検索基準に対応する状態指示を送信するステップと
を含み、
前記検索基準を選択するステップが、
ランダム値と合計された前記検索クエリにおける1つまたは複数の検索語のハッシュの
剰余結果を計算することと、
前記剰余結果を検索基準選択閾値と比較することと、
前記剰余結果が前記検索基準選択閾値を超えれば、前記第1の基準を選択することと、
前記剰余結果が前記検索基準選択閾値を超えなければ、前記第2の基準を選択すること
とを含む、
オンラインゲームに関するコンテンツデータの検索方法。
【請求項2】
前記検索結果からの追加の結果の要求を受信するステップであって、前記要求が前記要求される追加の結果の指示および前記状態指示を含む、ステップと、
前記状態指示に従って追加の検索結果を提供するステップと
を更に含む、請求項1に記載の
オンラインゲームに関するコンテンツデータの検索方法。
【請求項3】
前記データストアが、1つまたは複数のゲームおよび各ゲームと関連した情報を含み、各ゲームと関連した前記情報が、ゲームタイトル、ゲーム種類、ゲーム開発者名、ゲーム初稼働時、ゲーム最新版稼働時またはゲーム人気の1つまたは複数を含み、前記検索基準を使用してデータストアに対して前記検索クエリを実行するステップが、各ゲームと関連した前記情報に対して前記検索基準を照合することを含む、請求項1に記載の
オンラインゲームに関するコンテンツデータの検索方法。
【請求項4】
前記検索基準が前記第1の基準であり、前記検索結果が、各検索結果のそれぞれの人気によってランク付けされる検索結果から成る、請求項1に記載の
オンラインゲームに関するコンテンツデータの検索方法。
【請求項5】
前記検索基準が前記第2の基準であり、
前記検索クエリと一致する各項目と関連した新しさに基づいて前記検索結果をランク付けするステップを更に含む、請求項1に記載の
オンラインゲームに関するコンテンツデータの検索方法。
【請求項6】
前記検索結果が、前記検索基準に関わらず前記検索クエリに基づいて決定され、前記検索基準が、前記検索結果の順位付けを決定するために使用される、請求項5に記載の
オンラインゲームに関するコンテンツデータの検索方法。
【請求項7】
前記検索クエリが複数の語を含み、前記検索基準を選択するステップが、他の検索語に対してなされる検索基準選択から独立して検索語ごとに行われる、請求項1に記載の
オンラインゲームに関するコンテンツデータの検索方法。
【請求項8】
クライアントデバイスのプロセッサによって実行されると、前記プロセッサに
オンラインゲームに関するコンテンツデータを検索するための動作を行わせるソフトウェア命令を記憶した非一時的コンピュータ可読媒体であって、前記動作が、
検索クエリを受信することと、
第1の基準および第2の基準の中から検索基準を選択することと、
前記検索クエリおよび前記検索基準を送信することと、
前記検索クエリの実行に応答してデータストアから検索結果を受信することと、
前記検索基準に対応する状態指示を記憶することとを含み、
前記検索基準を選択することが、
ランダム値と合計された前記検索クエリにおける1つまたは複数の検索語のハッシュの
剰余結果を計算することと、
前記剰余結果を検索基準選択閾値と比較することと、
前記剰余結果が前記検索基準選択閾値を超えれば、前記第1の基準を選択することと、
前記剰余結果が前記検索基準選択閾値を超えなければ、前記第2の基準を選択すること
とを含む、非一時的コンピュータ可読媒体。
【請求項9】
前記検索結果からの追加の結果の要求を受信することであって、前記要求が前記要求される追加の結果の指示および前記状態指示を含む、受信することと、
前記状態指示に従って追加の検索結果を提供することと
を更に含む、請求項8に記載の非一時的コンピュータ可読媒体。
【請求項10】
前記データストアが、1つまたは複数のゲームおよび各ゲームと関連した情報を含み、各ゲームと関連した前記情報が、ゲームタイトル、ゲーム種類、ゲーム開発者名、ゲーム初稼働時、ゲーム最新版稼働時またはゲーム人気の1つまたは複数を含み、前記検索基準を使用してデータストアに対して前記検索クエリを実行することが、各ゲームと関連した前記情報に対して前記検索基準を照合することを含む、請求項8に記載の非一時的コンピュータ可読媒体。
【請求項11】
検索基準選択が、設定可能な閾値に基づく、請求項10に記載の非一時的コンピュータ可読媒体。
【請求項12】
検索基準選択が、1つまたは複数の具体的な検索語に対して独立して設定可能である閾値に基づく、請求項10に記載の非一時的コンピュータ可読媒体。
【請求項13】
前記検索基準が前記第2の基準であり、前記検索結果が、それぞれの検索結果に対応する各項目と関連した新しさに基づいてランク付けされる検索結果から成る、請求項8に記載の非一時的コンピュータ可読媒体。
【請求項14】
前記検索結果が、前記検索基準に関わらず前記検索クエリに基づいて決定され、前記検索基準が、前記検索結果の順位付けを決定するために使用される、請求項13に記載の非一時的コンピュータ可読媒体。
【請求項15】
1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに
オンラインゲームに関するコンテンツデータを検索するための動作を行わせるソフトウェア命令を記憶した非一時的コンピュータ可読媒体に結合される1つまたは複数のプロセッサを備え、前記動作が、
サーバにおいて検索クエリを受信することと、
第1の基準および第2の基準の中から検索基準を選択することと、
前記検索基準を使用してデータストアに対して前記検索クエリを実行することと、
前記検索クエリを実行したことに応答して前記データストアから検索結果を受信することと、
前記検索クエリが受信されたデバイスに前記検索結果の一部分を送信することと、
前記検索クエリが受信された前記デバイスに前記検索基準に対応する状態指示を送信することとを含み、
前記検索基準を選択することが、
ランダム値と合計された前記検索クエリにおける1つまたは複数の検索語のハッシュの
剰余結果を計算することと、
前記剰余結果を検索基準選択閾値と比較することと、
前記剰余結果が前記検索基準選択閾値を超えれば、前記第1の基準を選択することと、
前記剰余結果が前記検索基準選択閾値を超えなければ、前記第2の基準を選択すること
とを含む、システム。
【請求項16】
前記検索結果からの追加の結果の要求を受信することであって、前記要求が前記要求される追加の結果の指示および前記状態指示を含む、受信することと、
前記状態指示に従って追加の検索結果を提供することと
を更に含む、請求項15に記載のシステム。
【請求項17】
前記第1の基準が、検索エンジンに、各クエリ結果のそれぞれの人気によってランク付けされる検索結果を返すように指示する、請求項15に記載のシステム。
【請求項18】
前記第2の基準が、検索エンジンに、それぞれの検索結果に対応する各項目と関連した新しさに基づいてランク付けされる検索結果を返すように指示する、請求項15に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュータ化データ検索の分野に関し、特に、オンラインゲーミングプラットフォームデータを改善された発見可能性で検索するための方法、システムおよびコンピュータ可読媒体に関する。
【背景技術】
【0002】
一部のオンラインゲーミングプラットフォームは、インターネットを介してユーザがコンテンツを作成し、互いに接続し、互いに(例えば、ゲーム内で)対話し、そして互いに情報を共有できるようにする。オンラインゲーミングプラットフォームのユーザは、ゲームまたはゲームの一部が他のユーザによって作成されたマルチプレイヤゲーミング環境に参加し得る。
【0003】
ユーザがユーザ生成コンテンツ(例えば、ゲーム、ゲームのためのアイテム等)または他のコンテンツを検索すると、検索エンジンが、ダウンロード数、ユーザによる評価等の観点からの人気などの履歴データに基づいて結果を返し得る。しかしながら、新しいコンテンツは古いコンテンツが有し得る履歴データを有し得ないので、そのような検索エンジンは、そのようなコンテンツを見落し得るまたは強調し得ない。したがって、新しいコンテンツは古いコンテンツほど容易には発見され得ない。それに応じて、オンラインゲーミングプラットフォーム(または他のシステム)のコンテンツ(例えば、ユーザ生成コンテンツ等)検索エンジン内の新しいコンテンツの改善された発見可能性の必要性が存在し得る。
【0004】
一部の実装例は、とりわけ上述の必要性を考慮して考えられた。
【発明の概要】
【課題を解決するための手段】
【0005】
一部の実装例は、ユーザによって行われる検索における新しく追加されたコンテンツの発見可能性を改善する。
【0006】
一部の実装例は、方法を含むことができる。上記方法は、サーバにおいてデバイスから検索クエリを受信するステップと、第1の基準および第2の基準の中から検索基準を選択するステップとを含むことができる。上記方法は、検索基準を使用してデータストアに対して検索クエリを実行するステップと、検索クエリを実行したことに応答してデータストアから検索結果を受信するステップとを同様に含むことができる。上記方法は、デバイスに少なくとも検索結果の一部分および検索基準に対応する状態指示を送信するステップを更に含むことができる。
【0007】
上記方法は、検索結果からの追加の結果の要求を受信するステップであって、要求が要求される追加の結果の指示および状態指示を含む、ステップと、状態指示に従って追加の検索結果を提供するステップとを同様に含むことができる。一部の実装例において、データストアは、1つまたは複数のゲームおよび各ゲームと関連した情報を含み、各ゲームと関連した情報は、ゲームタイトル、ゲーム種類、ゲーム開発者名、ゲーム初稼働時、ゲーム最新版稼働時またはゲーム人気の1つまたは複数を含み、検索基準を使用してデータストアに対して検索クエリを実行するステップは、各ゲームと関連した情報に対して検索基準を照合することを含む。
【0008】
一部の実装例において、検索基準は第1の基準であり、検索結果は、各検索結果のそれぞれの人気によってランク付けされる検索結果から成る。一部の実装例において、検索基準は第2の基準であり、上記方法は、検索クエリと一致する各項目と関連した新しさに基づいて検索結果をランク付けするステップを更に含む。
【0009】
一部の実装例において、検索結果は、検索基準に関わらず検索クエリに基づいて決定でき、かつ検索基準は、検索結果の順位付けを決定するために使用される。一部の実装例において、検索クエリは複数の語を含むことができ、かつ検索基準を選択するステップは、他の検索語に対してなされる検索基準選択から独立して検索語ごとに行われる。
【0010】
上記方法は、ランダム値が加算された検索クエリにおける1つまたは複数の検索語のハッシュの剰余結果を計算することと、剰余結果を検索基準選択閾値と比較することとを同様に含むことができる。上記方法は、剰余結果が検索基準選択閾値を超えれば、第1の基準を選択することと、剰余結果が検索基準選択閾値を超えなければ、第2の基準を選択することとを更に含むことができる。
【0011】
一部の実装例は、クライアントデバイスのプロセッサによって実行されると、プロセッサに動作を行わせるソフトウェア命令を記憶した非一時的コンピュータ可読媒体を含むことができる。上記動作は、検索クエリを受信することと、第1の基準および第2の基準の中から検索基準を選択することとを含むことができる。上記動作は、検索クエリおよび検索基準を送信することと、検索クエリの実行に応答してデータストアから検索結果を受信することとを同様に含むことができる。上記動作は、検索基準に対応する状態指示を記憶することを更に含むことができる。
【0012】
上記動作は、検索結果からの追加の結果の要求を受信することであって、要求が要求される追加の結果の指示および状態指示を含む、受信することと、状態指示に従って追加の検索結果を提供することとを同様に含むことができる。
【0013】
一部の実装例において、データストアは、1つまたは複数のゲームおよび各ゲームと関連した情報を含み、各ゲームと関連した情報は、ゲームタイトル、ゲーム種類、ゲーム開発者名、ゲーム初稼働時、ゲーム最新版稼働時またはゲーム人気の1つまたは複数を含み、検索基準を使用してデータストアに対して検索クエリを実行することは、各ゲームと関連した情報に対して検索基準を照合することを含む。一部の実装例において、検索基準選択は、設定可能な閾値に基づく。一部の実装例において、検索基準選択は、1つまたは複数の具体的な検索語に対して独立して設定可能である閾値に基づく。
【0014】
一部の実装例において、検索基準は第2の基準であり、検索結果は、それぞれの検索結果に対応する各項目と関連した新しさに基づいてランク付けされる検索結果から成る。一部の実装例において、検索結果は、検索基準に関わらず検索クエリに基づいて決定でき、かつ検索基準は、検索結果の順位付けを決定するために使用される。
【0015】
一部の実装例において、検索基準を選択することは、ランダム値と合計される1つまたは複数の検索語キーワードのハッシュの剰余結果を評価することに基づき、ここで評価することは、剰余結果を検索基準選択閾値と比較することを含み、結果として検索の第1の割合が第1の基準を使用して行われ、検索の残りの割合が第2の基準を使用して行われる。
【0016】
一部の実装例は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに動作を行わせるソフトウェア命令を記憶した非一時的コンピュータ可読媒体に結合される1つまたは複数のプロセッサを備えるシステムを含むことができる。上記動作は、サーバにおいて検索クエリを受信することと、第1の基準および第2の基準の中から検索基準を選択することであって、検索基準を選択することが、剰余結果を評価することに基づき、評価することが、剰余結果を検索基準選択閾値と比較することを含み、結果として検索の第1の割合が第1の基準を使用して行われ、検索の残りの割合が第2の基準を使用して行われる、選択することを含むことができる。上記動作は、検索基準を使用してデータストアに対して検索クエリを実行することと、検索クエリを実行したことに応答してデータストアから検索結果を受信することとを同様に含むことができる。上記動作は、その検索クエリが受信されたデバイスに検索結果の一部分を送信することと、その検索クエリが受信されたデバイスに検索基準に対応する状態指示を送信することとを更に含むことができる。
【0017】
上記動作は、検索結果からの追加の結果の要求を受信することであって、要求が要求される追加の結果の指示および状態指示を含む、受信することと、状態指示に従って追加の検索結果を提供することとを同様に含むことができる。
【0018】
一部の実装例において、第1の基準は、検索エンジンに、各クエリ結果のそれぞれの人気によってランク付けされる検索結果を返すように指示する。一部の実装例において、第2の基準は、検索エンジンに、それぞれの検索結果に対応する各項目と関連した新しさに基づいてランク付けされる検索結果を返すように指示する。
【0019】
本開示の様々な実装例は、以下に与えられる詳細な説明からおよび本開示の様々な実装例の添付の図面からより完全に理解されるであろう。
【図面の簡単な説明】
【0020】
【
図1】一部の実装例に従う発見可能性が改善された検索のための環境例の図である。
【
図2】一部の実装例に従う発見可能性が改善された検索の方法例のフローチャートである。
【
図3】一部の実装例に従う発見可能性が改善された検索の方法例のフローチャートである。
【
図4】一部の実装例に従う例証的なコンピューティングデバイスを例示するブロック図である。
【
図5】一部の実装例に従う検索結果を表示するグラフィカルユーザインタフェース例である。
【
図6】一部の実装例に従う検索結果を表示するグラフィカルユーザインタフェース例である。
【発明を実施するための形態】
【0021】
オンラインゲーミングプラットフォーム(「ユーザ生成コンテンツプラットフォーム」または「ユーザ生成コンテンツシステム」とも称される)は、ユーザが互いに対話する各種の手段を提供する。例えば、オンラインゲーミングプラットフォームのユーザは、オンラインゲーミングプラットフォーム内でゲームまたは他のコンテンツもしくはリソース(例えば、仮想世界内でのゲームプレイのためのキャラクタ、グラフィック、アイテム等)を作成し得る。オンラインゲーミングプラットフォームのユーザは、ゲームまたは他のコンテンツを求めて検索もし得る。
【0022】
オンラインゲーミングプラットフォームのユーザは、共通の目的に向かって協働、様々な仮想ゲーミングアイテムを共有、互いに電子メッセージを送る等し得る。オンラインゲーミングプラットフォームのユーザは、キャラクタを使用してゲームをプレイし得る。オンラインゲーミングプラットフォームは、プラットフォームのユーザが互いに通信できるようにもし得る。例えば、オンラインゲーミングプラットフォームのユーザは、音声メッセージ(例えば、音声「チャット」を介する)、テキストメッセージング、ビデオメッセージング、または以上の組合せを使用して互いに通信し得る。オンラインゲーミングプラットフォームは、ユーザがオンラインゲームをプレイできる仮想3次元環境を提供できる。オンラインゲームの娯楽価値を高めるのを促進するために、オンラインゲーミングプラットフォームは、ゲーム、ゲームコンテンツまたは他のゲーム関連リソースのための検索エンジンを提供でき、ここで検索エンジンは、最近追加されたゲーム、コンテンツまたはリソースの改善された発見可能性を提供する。
【0023】
図1は、本開示の一部の実装例に従う、システムアーキテクチャ例100を例示する。システムアーキテクチャ100(本明細書において「システム」とも称される)は、オンラインゲーミングプラットフォーム102、第1のクライアントデバイス110(本明細書において全般的に「クライアントデバイス110/116」と称される)、ネットワーク122および第2のクライアントデバイス116を含む。オンラインゲーミングプラットフォーム102は、とりわけ、ゲームエンジン104、1つまたは複数のゲーム105、検索エンジン106およびデータストア108を含むことができる。クライアントデバイス110はゲームアプリケーション112を含むことができる。クライアントシステム116はゲームアプリケーション118を含むことができる。ユーザ114および120が、それぞれクライアントデバイス110および116を使用してオンラインゲーミングプラットフォーム102と対話できる。
【0024】
システムアーキテクチャ100は、限定よりむしろ例示のために提供される。一部の実装例において、システムアーキテクチャ100は、
図1に図示されるものと同じまたは異なる方式で構成される同じ、より少ない、より多くのまたは異なる要素を含み得る。
【0025】
1つの実装例において、ネットワーク122は、パブリックネットワーク(例えば、インターネット)、プライベートネットワーク(例えば、ローカルエリアネットワーク(LAN)もしくはワイドエリアネットワーク(WAN))、有線ネットワーク(例えば、イーサネットネットワーク)、無線ネットワーク(例えば、802.11ネットワーク、Wi-Fi(登録商標)ネットワークもしくは無線LAN(WLAN))、セルラネットワーク(例えば、ロングタームエボリューション(LTE)ネットワーク)、ルータ、ハブ、スイッチ、サーバコンピュータ、またはその組合せを含んでよい。
【0026】
1つの実装例において、データストア108は、非一時的コンピュータ可読メモリ(例えば、ランダムアクセスメモリ)、キャッシュ、ドライブ(例えば、ハードドライブ)、フラッシュドライブ、データベースシステム、またはデータを記憶することが可能な別の種類のコンポーネントもしくはデバイスでよい。データストア108は、複数コンピューティングデバイス(例えば、複数サーバコンピュータ)にもまたがり得る複数記憶コンポーネント(例えば、複数ドライブまたは複数データベース)を含んでもよい。
【0027】
一部の実装例において、オンラインゲーミングプラットフォーム102は、1つまたは複数のコンピューティングデバイス(例えば、クラウドコンピューティングシステム、ラックマウントサーバ、サーバコンピュータ、物理サーバのクラスタ等)を有するサーバを含むことができる。一部の実装例において、サーバは、オンラインゲーミングプラットフォーム102に含まれても、独立システムでも、または別のシステムもしくはプラットフォームの一部でもよい。
【0028】
一部の実装例において、オンラインゲーミングプラットフォーム102は、オンラインゲーミングプラットフォーム102上で動作を行うために、およびオンラインゲーミングプラットフォーム102へのアクセスをユーザに提供するために使用され得る、1つまたは複数のコンピューティングデバイス(ラックマウントサーバ、ルータコンピュータ、サーバコンピュータ、パーソナルコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ等など)、データストア(例えば、ハードディスク、メモリ、データベース)、ネットワーク、ソフトウェアコンポーネントおよび/またはハードウェアコンポーネントを含んでよい。オンラインゲーミングプラットフォーム102は、オンラインゲーミングプラットフォーム102によって提供されるコンテンツへのアクセスをユーザに提供するために使用され得るウェブサイト(例えば、ウェブページ)またはアプリケーションバックエンドソフトウェアも含んでよい。例えば、ユーザは、それぞれクライアントデバイス110/116上のゲームアプリケーション112/118を使用してオンラインゲーミングプラットフォーム102にアクセスし得る。
【0029】
一部の実装例において、オンラインゲーミングプラットフォーム102は、ユーザ間の接続を提供する一種のソーシャルネットワークまたはユーザ(例えば、エンドユーザもしくはコンシューマ)がオンラインゲーミングプラットフォーム102上で他のユーザと通信できるようにする一種のユーザ生成コンテンツシステムでよく、ここで通信は、音声チャット(例えば、同期および/もしくは非同期音声通信)、ビデオチャット(例えば、同期および/もしくは非同期ビデオ通信)またはテキストチャット(例えば、同期および/もしくは非同期テキストベースの通信)を含んでよい。本開示の一部の実装例において、「ユーザ」は一個人として表されてよい。しかしながら、本開示の他の実装例は、一組のユーザまたは自動源によって制御される実体である「ユーザ」(例えば、作成ユーザ)を包含する。例えば、ユーザ生成コンテンツシステムにおいてコミュニティまたはグループとして連合される一組の個人ユーザが「ユーザ」と考えられてよい。
【0030】
一部の実装例において、オンラインゲーミングプラットフォーム102は仮想ゲーミングプラットフォームでよい。例えば、ゲーミングプラットフォームは、ネットワーク122を介してクライアントデバイス110/116を使用してゲーム(例えば、ユーザ生成ゲームまたは他のゲーム)にアクセスまたは対話し得るユーザのコミュニティにシングルプレイヤまたはマルチプレイヤゲームを提供してよい。一部の実装例において、ゲーム(本明細書において「ビデオゲーム」、「オンラインゲーム」または「仮想ゲーム」とも称される)は、例えば2次元(2D)ゲーム、3次元(3D)ゲーム(例えば、3Dユーザ生成ゲーム)、仮想現実感(VR)ゲームまたは拡張現実感(AR)ゲームでよい。一部の実装例において、ユーザは、ゲームを求めて検索し、そして検索の結果から選択される1つまたは複数のゲームにおける他のユーザとのゲームプレイに参加し得る。一部の実装例において、検索の結果から選択されるゲームは、ゲームの他のユーザとリアルタイムでプレイされてよい。
【0031】
一部の実装例において、ゲームプレイとは、ゲーム(例えば、105)内でのクライアントデバイス(例えば、110および/もしくは116)を使用する1人もしくは複数のプレイヤの対話またはクライアントデバイス110もしくは116のディスプレイもしくは他の出力デバイス(例えば、118/132)上での対話の提示を指し得る。
【0032】
一部の実装例において、ゲーム105は、実体にゲームコンテンツ(例えば、デジタルメディアアイテム)を提示するように構成されるソフトウェア、ファームウェアまたはハードウェアを使用して実行またはロードできる電子ファイルを含むことができる。一部の実装例において、ゲームアプリケーション112/118が実行され、そしてゲームエンジン104と関連してゲーム105がレンダリングされてよい。一部の実装例において、ゲーム105は共通の一組のルールまたは共通目的を有してよく、そしてゲーム105の環境は共通の一組のルールまたは共通目的を共有する。一部の実装例において、異なるゲームが、互いと異なるルールまたは目的を有してよい。
【0033】
一部の実装例において、ゲームは、複数環境がリンクされ得る1つまたは複数の環境(本明細書において「ゲーミング環境」または「仮想環境」とも称される)を有してよい。環境の一例は3次元(3D)環境でよい。ゲーム105の1つまたは複数の環境は、本明細書において総称的に「世界」または「ゲーミング世界」または「仮想世界」または「宇宙」と称され得る。世界の一例はゲーム105の3D世界でよい。例えば、ユーザは、別のユーザによって作成される別の仮想環境にリンクされる仮想環境を構築してよい。仮想ゲームのキャラクタが仮想境界を越えて、隣接する仮想環境に入ってよい。
【0034】
3D環境または3D世界が、ゲームコンテンツ(または幾何データの3D表現が使用されるか否かに関わらず3Dコンテンツとして出現する少なくとも現在のゲームコンテンツ)を表す幾何データの3次元表現を使用するグラフィックを使用することが留意され得る。2D環境または2D世界は、ゲームコンテンツを表す幾何データの2次元表現を使用するグラフィックを使用する。
【0035】
一部の実装例において、オンラインゲーミングプラットフォーム102は、1つまたは複数のゲーム105をホストでき、かつユーザがクライアントデバイス110/116のゲームアプリケーション112/118を使用してゲーム105と対話する(例えば、ゲーム、ゲーム関連コンテンツまたは他のコンテンツを求めて検索する)のを可能にすることができる。オンラインゲーミングプラットフォーム102のユーザ(例えば、114および/または120)は、ゲーム105をプレイ、作成、対話もしくは構築し、ゲーム105を求めて検索し、他のユーザと通信し、ゲーム105のオブジェクト(例えば、本明細書において「アイテム」もしくは「ゲームオブジェクト」もしくは「仮想ゲームアイテム」とも称される)を作成および構築し、かつ/またはオブジェクトを求めて検索し得る。例えば、ユーザ生成仮想アイテムを生成する際に、ユーザは、とりわけ、キャラクタ、キャラクタのための装飾、対話型ゲームのための1つもしくは複数の仮想環境を作成しても、またはゲーム105に使用される構造物を構築してもよい。一部の実装例において、ユーザは、オンラインゲーミングプラットフォーム102の他のユーザと、プラットフォーム内通貨(例えば、仮想通貨)などのゲーム仮想ゲームオブジェクトを購入、販売または売買してよい。一部の実装例において、オンラインゲーミングプラットフォーム102は、ゲームアプリケーション(例えば、112)にゲームコンテンツを送信してよい。一部の実装例において、ゲームコンテンツ(本明細書において「コンテンツ」とも称される)とは、オンラインゲーミングプラットフォーム102またはゲームアプリケーションと関連した任意のデータまたはソフトウェア命令(例えば、ゲームオブジェクト、ゲーム、ユーザ情報、ビデオ、画像、コマンド、メディアアイテム等)を指し得る。一部の実装例において、ゲームオブジェクト(例えば、本明細書において「アイテム」または「オブジェクト」または「仮想ゲームアイテム」とも称される)とは、オンラインゲーミングプラットフォーム102のゲーム105またはクライアントデバイス110/116のゲームアプリケーション112もしくは118において使用、作成、共有またはその他描写されるオブジェクトを指し得る。例えば、ゲームオブジェクトは、部品、モデル、キャラクタ、道具、武器、被服、建物、車両、通貨、植物相、動物相、上述のコンポーネント(例えば、建物の窓)等を含んでよい。
【0036】
ゲーム105をホストするオンラインゲーミングプラットフォーム102が、限定よりむしろ例示の目的で提供されることが留意され得る。一部の実装例において、オンラインゲーミングプラットフォーム102は、1人のユーザから1人または複数の他のユーザへの通信メッセージを含むことができる1つまたは複数のメディアアイテムをホストしてよい。メディアアイテムは、デジタルビデオ、デジタル映画、デジタル写真、デジタル音楽、オーディオコンテンツ、メロディ、ウェブサイトコンテンツ、ソーシャルメディア更新、電子ブック、電子マガジン、デジタル新聞、デジタルオーディオブック、電子ジャーナル、ウェブブログ、リアルシンプルシンジケーション(RSS)フィード、電子コミックブック、ソフトウェアアプリケーション等を含むことができるが、これらに限定されない。一部の実装例において、メディアアイテムは、実体にデジタルメディアアイテムを提示するように構成されるソフトウェア、ファームウェアまたはハードウェアを使用して実行またはロードできる電子ファイルでよい。
【0037】
一部の実装例において、ゲーム105は、特定のユーザもしくは特定のユーザのグループと関連付けられても(例えば、プライベートゲーム)、またはオンラインゲーミングプラットフォーム102のユーザに広く利用可能にされても(例えば、パブリックゲーム)よい。一部の実装例において、オンラインゲーミングプラットフォーム102が1つまたは複数のゲーム105を具体的なユーザまたはユーザのグループと関連付ける場合、オンラインゲーミングプラットフォーム102は、ユーザアカウント情報(例えば、ユーザ名およびパスワードなどのユーザアカウント識別子)を使用して具体的なユーザをゲーム105と関連付けてよい。
【0038】
一部の実装例において、オンラインゲーミングプラットフォーム102またはクライアントデバイス110/116はゲームエンジン104またはゲームアプリケーション112/118を含んでよい。ゲームエンジン104は、ゲームアプリケーション112/118と類似のゲームアプリケーションを含むことができる。一部の実装例において、ゲームエンジン104はゲーム105の開発または実行のために使用されてよい。例えば、ゲームエンジン104は、とりわけ、2D、3D、VRもしくはARグラフィックのためのレンダリングエンジン(「レンダラ」)、物理エンジン、衝突検出エンジン(および衝突応答)、音響エンジン、スクリプティング機能性、アニメーションエンジン、人工知能エンジン、ネットワーキング機能性、ストリーミング機能性、メモリ管理機能性、スレッディング機能性、シーングラフ機能性、または映画製作のためのビデオサポートを含んでよい。ゲームエンジン104のコンポーネントは、ゲームを算出およびレンダリングするのを促進するコマンド(例えば、レンダリングコマンド、衝突コマンド、物理コマンド等)を生成し得る。一部の実装例において、クライアントデバイス110/116のゲームアプリケーション112/118は、それぞれ、独立して、オンラインゲーミングプラットフォーム102のゲームエンジン104と協力して、または両方の組合せで働いてよい。
【0039】
一部の実装例において、オンラインゲーミングプラットフォーム102もクライアントデバイス110/116もゲームエンジン(それぞれ104、112および118)を実行する。ゲームエンジン104を使用するオンラインゲーミングプラットフォーム102は、一部もしくは全部のゲームエンジン機能(例えば、物理コマンド、レンダリングコマンド等を生成する)を行っても、またはクライアントデバイス110のゲームエンジン112に一部もしくは全部のゲームエンジン機能をオフロードしてもよい。一部の実装例において、各ゲーム105は、オンラインゲーミングプラットフォーム102上で行われるゲームエンジン機能とクライアントデバイス110および116上で行われるゲームエンジン機能との間の異なる比率を有してよい。例えば、オンラインゲーミングプラットフォーム102のゲームエンジン104は、少なくとも2つのゲームオブジェクト間の衝突がある場合に物理コマンドを生成するために使用されてよい一方で、追加のゲームエンジン機能性(例えば、レンダリングコマンドを生成する)はクライアントデバイス110にオフロードされてよい。一部の実装例において、オンラインゲーミングプラットフォーム102およびクライアントデバイス110上で行われるゲームエンジン機能の比率はゲームプレイ条件に基づいて(例えば、動的に)変化され得る。例えば、特定のゲーム105のゲームプレイに参加しているユーザ数が閾値数を超えれば、オンラインゲーミングプラットフォーム102は、クライアントデバイス110または116によって以前に行われた1つまたは複数のゲームエンジン機能を行ってよい。
【0040】
例えば、ユーザは、クライアントデバイス110および116上でゲーム105をプレイしていてよく、そしてオンラインゲーミングプラットフォーム102に制御命令(例えば、右、左、上、下などのユーザ入力、ユーザ選択、またはキャラクタ位置および速度情報等)を送ってよい。クライアントデバイス110および116から制御命令を受信した後に、オンラインゲーミングプラットフォーム102は、制御命令に基づいてクライアントデバイス110および116にゲームプレイ命令(例えば、グループゲームプレイに参加しているキャラクタの位置および速度情報または、レンダリングコマンド、衝突コマンドなどのコマンド等)を送ってよい。例えば、オンラインゲーミングプラットフォーム102は、制御命令に(例えば、ゲームエンジン104を使用して)1つまたは複数の論理演算を行って、クライアントデバイス110および116のためのゲームプレイ命令を生成してよい。他の例では、オンラインゲーミングプラットフォーム102は、ゲーム105に参加している1つのクライアントデバイス110から他のクライアントデバイス(例えば、116)に制御命令の1つまたは複数を渡してよい。クライアントデバイス110および116は、ゲームプレイ命令を使用して、クライアントデバイス110および116のディスプレイ上での提示のためにゲームプレイをレンダリングしてよい。
【0041】
一部の実装例において、制御命令は、ユーザのキャラクタのゲーム内アクションを示す命令を指し得る。例えば、制御命令は、右、左、上、下などのゲーム内アクションを制御するユーザ入力、ユーザ選択、ジャイロスコープ位置および方位データ、力センサデータ等を含んでよい。制御命令はキャラクタ位置および速度情報を含んでよい。一部の実装例において、制御命令はオンラインゲーミングプラットフォーム102に直接送られる。他の実装例において、制御命令はクライアントデバイス110から別のクライアントデバイス(例えば、116)に送られてよく、ここで他方のクライアントデバイスがローカルゲームエンジン118を使用してゲームプレイ命令を生成する。制御命令は、オーディオデバイス(例えば、スピーカ、ヘッドホン等)で別のユーザからの音声通信メッセージまたは他の音を再生する命令を含んでよい。
【0042】
一部の実装例において、ゲームプレイ命令は、クライアントデバイス110(または116)が、マルチプレイヤゲームなどのゲームのゲームプレイをレンダリングできるようにする命令を指し得る。ゲームプレイ命令は、ユーザ入力(例えば、制御命令)、キャラクタ位置および速度情報、またはコマンド(例えば、物理コマンド、レンダリングコマンド、衝突コマンド等)の1つまたは複数を含んでよい。
【0043】
一部の実装例において、キャラクタ(またはゲームオブジェクト全般)は、自動的に結合し合ってユーザの編集を補助する、1つまたは複数がユーザによって選択され得るコンポーネントから構築される。1つまたは複数のキャラクタ(本明細書において「アバタ」または「モデル」とも称される)がユーザと関連付けられてよく、ここでユーザはキャラクタを制御してユーザのゲーム105との対話を容易にし得る。一部の実装例において、キャラクタは、身体部分(例えば、毛髪、腕、脚等)および付属品(例えば、Tシャツ、眼鏡、装飾画像、道具等)などのコンポーネントを含んでよい。一部の実装例において、カスタマイズ可能であるキャラクタの身体部分には、とりわけ、頭部型、身体部分型(腕、脚、胴および手)、顔型、毛髪型ならびに皮膚型を含む。一部の実装例において、カスタマイズ可能である付属品には、被服(例えば、シャツ、ズボン、帽子、靴、眼鏡等)、武器または他の道具を含む。一部の実装例において、ユーザはキャラクタのスケール(例えば、高さ、幅もしくは奥行き)またはキャラクタのコンポーネントのスケールも制御し得る。一部の実装例において、ユーザは、キャラクタのプロポーション(例えば、ずんぐり、骸骨等)を制御し得る。一部の実装例において、キャラクタはキャラクタゲームオブジェクト(例えば、身体部分等)を含まなくてよいが、ユーザがキャラクタ(キャラクタゲームオブジェクトなし)を制御してユーザのゲームとの対話を容易にし得ること(例えば、レンダリングされるキャラクタゲームオブジェクトはないが、ユーザが依然キャラクタを制御してゲーム内アクションを制御するパズルゲーム)が留意され得る。
【0044】
一部の実装例において、身体部分などのコンポーネントは、ブロック、シリンダ、球等などのプリミティブ幾何形状、またはウェッジ、トーラス、チューブ、チャネル等などの何らかの他のプリミティブ形状でよい。一部の実装例において、作成者モジュールが、オンラインゲーミングプラットフォーム102の他のユーザによる閲覧または使用のためにユーザのキャラクタを公開し得る。一部の実装例において、キャラクタ、他のゲームオブジェクト、ゲーム105またはゲーム環境を作成、変更またはカスタマイズすることが、ユーザによってユーザインタフェース(例えば、開発者インタフェース)を使用してかつスクリプティングの有無に関わらず(またはアプリケーションプログラミングインタフェース(API)の有無に関わらず)行われ得る。限定よりむしろ例示の目的で、キャラクタがヒューマノイド形状を有するとして記載されることが留意され得る。キャラクタが車両、動物、無生物または他の創造的形状などの任意の形状を有し得ることが更に留意され得る。
【0045】
一部の実装例において、オンラインゲーミングプラットフォーム102は、ユーザによって作成されるキャラクタをデータストア108に記憶してよい。一部の実装例において、オンラインゲーミングプラットフォーム102は、ユーザに提示され得るキャラクタカタログおよびゲームカタログを維持する。一部の実装例において、ゲームカタログは、オンラインゲーミングプラットフォーム102上に記憶されるゲームの画像を含む。加えて、ユーザは、キャラクタカタログからキャラクタ(例えば、ユーザまたは他のユーザによって作成されたキャラクタ)を選択して、選ばれたゲームに参加し得る。キャラクタカタログは、オンラインゲーミングプラットフォーム102上に記憶されるキャラクタの画像を含む。一部の実装例において、キャラクタカタログにおけるキャラクタの1つまたは複数がユーザによって作成またはカスタマイズされていてよい。一部の実装例において、選ばれたキャラクタは、キャラクタのコンポーネントの1つまたは複数を定めるキャラクタ設定を有してよい。
【0046】
一部の実装例において、ユーザのキャラクタはコンポーネントの構成を含むことができ、ここでコンポーネントの構成および外観ならびに、より一般にキャラクタの外観はキャラクタ設定によって定められてよい。一部の実装例において、ユーザのキャラクタのキャラクタ設定は、ユーザによって少なくとも部分的に選ばれてよい。他の実装例において、ユーザは、デフォルトキャラクタ設定または他のユーザによって選ばれたキャラクタ設定のキャラクタを選んでよい。例えば、ユーザは、既定のキャラクタ設定を有するキャラクタカタログからのデフォルトキャラクタを選んでよく、そしてユーザは、キャラクタ設定の一部を変更する(例えば、カスタマイズされたロゴを伴うシャツを追加する)ことによってデフォルトキャラクタを更にカスタマイズしてよい。キャラクタ設定は、オンラインゲーミングプラットフォーム102によって特定のキャラクタと関連付けられてよい。
【0047】
一部の実装例において、クライアントデバイス110または116は各々、パーソナルコンピュータ(PC)、モバイルデバイス(例えば、ラップトップ、移動電話、スマートフォン、タブレットコンピュータまたはネットブックコンピュータ)、ネットワーク接続テレビジョン、ゲーミングコンソール等などのコンピューティングデバイスを含んでよい。一部の実装例において、クライアントデバイス110または116は「ユーザデバイス」とも称され得る。一部の実装例において、1つまたは複数のクライアントデバイス110または116は任意の所与の瞬間にオンラインゲーミングプラットフォーム102に接続してよい。クライアントデバイス110または116の数が、限定よりむしろ例示として提供されることが留意され得る。一部の実装例において、任意の数のクライアントデバイス110または116が使用され得る。
【0048】
一部の実装例において、各クライアントデバイス110または116は、それぞれゲームアプリケーション112または118のインスタンスを含んでよい。1つの実装例において、ゲームアプリケーション112または118は、ユーザが、ゲームもしくは他のコンテンツを求めて検索する、オンラインゲーミングプラットフォーム102によってホストされる仮想ゲームにおける仮想キャラクタを制御する、またはゲーム105、画像、ビデオアイテム、ウェブページ、文書等などのコンテンツを閲覧もしくはアップロードするなど、オンラインゲーミングプラットフォーム102を使用して対話するのを可能にし得る。1つの例では、ゲームアプリケーションは、ウェブサーバによって供給されるコンテンツ(例えば、仮想環境における仮想キャラクタ等)にアクセスして、読み出し、提示またはナビゲートできるウェブアプリケーション(例えば、ウェブブラウザと連動して動作するアプリケーション)でよい。別の例では、ゲームアプリケーションは、クライアントデバイス110または116にローカルにインストールされて実行し、ユーザがオンラインゲーミングプラットフォーム102と対話できるようにするネイティブアプリケーション(例えば、モバイルアプリケーション、アプリまたはゲーミングプログラム)でよい。ゲームアプリケーションは、ユーザにコンテンツ(例えば、ウェブページ、メディアビューア)をレンダリング、表示または提示してよい。一実装例において、ゲームアプリケーションは、ウェブページに埋め込まれる埋込みメディアプレイヤ(例えば、Flash(登録商標)プレイヤ)も含んでよい。
【0049】
本開示の態様によれば、ゲームアプリケーション112/118は、ユーザがコンテンツを構築、作成、編集、オンラインゲーミングプラットフォーム102にアップロードする他に、オンラインゲーミングプラットフォーム102と対話する(例えば、オンラインゲーミングプラットフォーム102によってホストされるゲーム105をプレイする)オンラインゲーミングプラットフォームアプリケーションでよい。そのため、ゲームアプリケーション112/118は、オンラインゲーミングプラットフォーム102によってクライアントデバイス110または116に提供されてよい。別の例では、ゲームアプリケーション112/118は、サーバからダウンロードされるアプリケーションでよい。
【0050】
一部の実装例において、ユーザは、ゲームアプリケーションを介してオンラインゲーミングプラットフォーム102にログインしてよい。ユーザは、ユーザアカウント情報(例えば、ユーザ名およびパスワード)を提供することによってユーザアカウントにアクセスしてよく、ここでユーザアカウントは、オンラインゲーミングプラットフォーム102の1つまたは複数のゲーム105に参加するために利用可能な1つまたは複数のキャラクタと関連付けられる。
【0051】
通常、オンラインゲーミングプラットフォーム102によって行われるとして1つの実装例に記載される機能は、適切であれば他の実装例において、クライアントデバイス110もしくは116、またはサーバによって行うこともできる。加えて、特定のコンポーネントに起因する機能性は、共に動作する、異なるまたは複数コンポーネントによって行うことができる。オンラインゲーミングプラットフォーム102は、適切なアプリケーションプログラミングインタフェース(API)を通じて他のシステムまたはデバイスに提供されるサービスとしてアクセスすることもでき、したがってウェブサイトにおける使用に限定されない。
【0052】
一部の実装例において、オンラインゲーミングプラットフォーム102は検索エンジン106を含んでよい。一部の実装例において、検索エンジン106は、オンラインゲーミングプラットフォーム102がユーザに検索機能性を提供するのを可能にするシステム、アプリケーションまたはモジュールでよく、ここで検索機能性は、ユーザがオンラインゲーミングプラットフォーム102内のゲーム、ゲーム関連コンテンツまたは他のコンテンツを求めて検索するのを可能にする。一部の実装例において、検索エンジン106は、
図2および
図3に図示されるフローチャートに関連して下記される動作の1つまたは複数を行い得る。
【0053】
図2は、一部の実装例に従う発見可能性が改善された検索の方法例200のフローチャートである。処理は202から始まり、サーバにおいて検索クエリが受信される。例えば、クライアントデバイス110上で実行しているゲームアプリケーション112へユーザ(例えば、114)が検索クエリを入力し得るが、これによりサーバ(例えば、102)に検索クエリを送り、結果としてサーバにおいて検索クエリを受信する。検索クエリは、ユーザがオンラインゲーミングプラットフォーム(例えば、102)または他のシステム内のゲームまたはゲーム関連コンテンツにおいて検索している1つまたは複数の語またはキーワードを含むことができる。処理は204に続く。
【0054】
204で、第1の基準および第2の基準の中から検索基準が選択される。例えば、第1の基準は、ゲームまたはゲーム関連コンテンツと関連した履歴データ(例えば、ダウンロード数、ユーザ評価、プレイ回数等)を含み得るが、第2の基準は新しさ(例えば、ゲームまたはゲーム関連コンテンツがどれくらい最近にオンラインゲーミングプラットフォームにアップロードされたか)を含むことができる。履歴データは、ユーザが何回キーワード(例えば、「タイクーン」)で検索してゲーム結果(例えば、ゲーム「A」)をクリックしたかなどのデータを含むことができる。例示目的で2つの基準が本明細書に記載されるが、3つ以上の基準が使用されて選択され得る。
【0055】
第1の基準と第2の基準との間で選択することは、クエリの特定の割合(例えば、90パーセント)に対して第1の基準が選択され、そしてクエリの残りの割合(例えば、残りの10パーセント)に対して第2の基準が選択されるように、検索クエリ(例えば、1つもしくは複数の語もしくはキーワード)および/または数値関数に基づいて値を決定することを含むことができる。第1の基準および第2の基準に割り当てられる割合は手動か自動かで調整できる。異なる検索基準に割り当てられる割合の自動調整は、提示される検索結果へのユーザ応答(例えば、ユーザが検索結果の中から選択している率)または他の要因に基づくことができる。また、違う検索基準に割り当てられる割合は、オンラインゲーミングプラットフォームユーザ負荷、時刻、曜日、日付等に基づいて調整されてよい。また、違う検索基準に割り当てられる割合は定期的に調整されてよい(例えば、1日おきまたは週に1回など定期的に、および1時間または1日など所与の期間の間、より大きな発見可能性を導くように調整される等)。第1の基準と第2の基準との間で選択することの詳細は、
図3に関連して以下に更に詳細に記載される。処理は206に続く。
【0056】
206で、検索基準を使用してデータストアに対して検索クエリが実行される。例えば、検索クエリは、選択された検索基準(例えば、204で選択された第1の基準または第2の基準)を使用するデータストア(例えば108)内の検索である。データストアが、ゲームおよびゲーム関連コンテンツ(例えば、ゲームに使用するためのアバタ、オブジェクト等)などのユーザ生成コンテンツ、ならびにゲームおよびゲーム関連コンテンツなどの非ユーザ生成コンテンツを含む場合。データストアは、コンテンツ、またはゲームタイトル、ゲーム種類、ゲーム開発者名、ゲーム初稼働時、ゲーム最新版稼働時もしくはゲーム人気の1つもしくは複数など、ゲームと関連した情報も含むことができる。データストアは、キーワード、新しさタイムスタンプまたは他のフィールドによって項目にインデックスを付けることができる。クエリ処理は、(a)第1の基準が選択されたとき、キーワードに基づいて照合し、人気によって順位付けられる最善の一致を返すこと、または(b)第2の基準が選択されると、キーワードに基づいて照合し、検索結果を最近の第1の順に順位付けることを含むことができる。一部の実装例において、閾値は手動で調整できる。
【0057】
例えば、履歴検索結果順位付けが、ユーザに検索結果を表示するために最高頻度で使用される大基準と考えられ、かつ新しさ基準が小基準と考えられて、検索結果を示すために低頻度で使用される場合、閾値は、小検索基準が大検索基準に影響する範囲に基づいて定めることができる。例えば、最近のゲームが履歴基準に迅速に含まれることが非常に重要であれば、最近のゲームほど高頻度で検索結果に現れるように閾値が上げられるべきである。
【0058】
別の例では、検索基準が第1の基準であれば、検索結果は、各クエリ結果のそれぞれの人気によってランク付けされる検索結果から成ることができる。別の例では、検索基準が第2の基準であれば、検索結果は、それぞれの検索結果に対応する各項目と関連した新しさに基づいてランク付けされる結果から成ることができる。一部の実装例において、それぞれの検索結果に対応する各項目と関連した新しさに基づくランク付けは、追加される最新の項目を第1にランク付けすることを含むことができる。
【0059】
検索クエリおよび検索基準に加えて、検索クエリと共に受信されるパラメータなど、検索を行うために他の検索パラメータが使用され得る。パラメータは、検索が要求されるときにユーザによってなされる選択(例えば、検索するコンテンツの種類、結果にユーザ生成もしくは非ユーザ生成コンテンツを含める、および/または検索から返される結果の範囲を狭めるのを助けるのに適切な他のパラメータ)を含むことができる。パラメータは、検索インタフェースとして提供されるグラフィカルユーザインタフェースと関連付けられてよい。処理は208に続く。
【0060】
208で、その検索クエリが受信されたデバイスに初期検索結果が提供される。例えば、検索クエリを実行したことに応答してデータストアから1つまたは複数の検索結果を受信することができ、そして検索結果の初期部分を、その検索クエリが受信されたデバイスに送信できる。検索結果に加えて、検索基準に対応する状態指示を、その検索クエリが受信されたデバイスに送信できる。状態指示についての詳細は、
図3に関連して以下に述べられる。処理は210に続く。
【0061】
210で、任意選択で、検索結果からの追加の結果の要求が受信される。例えば、検索結果の第2のページまたは群の要求を受信できる。処理は212に続く。
【0062】
212で、任意選択で、検索状態値が得られる。例えば、210で受信した追加の検索結果の要求は状態指示を含むことができる。代替的に、状態指示は、サーバに結合されるデータストアから読み出すことができる。状態指示は、追加の結果を読み出すときに、検索エンジンが同じ種類のクエリを行うことができるため、ユーザが一貫した結果(例えば、履歴データベースまたは新しさベース)を経験するように検索のために使用される状態基準を含むことができる。処理は214に続く。
【0063】
214で、追加の検索結果が提供される。例えば、検索クエリおよび検索状態指示に基づいて検索結果の後のページまたは群を生成できる。追加の検索結果の後のページまたは群を次いで、その検索クエリが受信されたデバイスに送信できる。ユーザによって追加の結果が要求される度に、210~214を繰り返すことができる。
【0064】
ステップ202~214は、上記とは異なる順に行う(もしくは繰り返す)ことができ、かつ/または1つもしくは複数のステップを省略できる。
【0065】
図3は、一部の実装例に従う発見可能性が改善された検索の方法例300のフローチャートである。処理は302から始まり、剰余結果(または論理決定目的で使用される他の値)が決定される。例えば、一部の実装例において、剰余結果は、ランダム値と合計された1つまたは複数の検索語キーワードのハッシュの剰余結果を含むことができ、公式例によって示されるように:剰余結果=(キーワードハッシュ+乱数(1~100)) mod 100。304に下記されるように検索機能を分割する適切な結果を達成する他の公式または技術を使用できる。
【0066】
304で、302において決定した剰余結果が評価される。評価することは、剰余結果を検索基準選択閾値と比較することを含み、結果として検索の第1の割合が第1の基準を使用して行われ、検索の残りの割合が第2の基準を使用して行われる。例えば、所与の実装例が、検索の90パーセントが第1の基準を使用して行われ、10パーセントが第2の基準を使用して行われることを目指す場合、剰余結果が10より大きければ第1の基準検索が行われ、剰余結果が10以下であれば第2の基準検索が行われるように、検索基準選択閾値は10に設定できる。検索基準選択閾値は、検索クエリの異なる百分率がそれぞれの基準を使用して行われることに備えるために調節可能(例えば、上述したように、手動または自動)であることができる。
【0067】
1つが履歴データに基づき1つが新しさに基づく、2つの検索基準を提供することによって、一実装例では、クエリの大部分(例えばクエリの90パーセント)でユーザが期待する信頼できる検索結果を提供できる一方で、クエリの残りのパーセント(例えば、10パーセント)の新しさベースの結果の発見可能性も改善する。そのような手法は、新しいコンテンツ(例えば、ゲームまたはゲーム関連コンテンツ)に、新しいコンテンツが履歴データベースの検索手法において典型的に現れるであろうよりも高いランクで検索結果に現れることによって発見される機会を可能にすることができる。
【0068】
検索基準選択閾値は、全ての検索語もしくはキーワードに適用される単一値であることができ、または或るキーワードもしくは語に対する個別値および個別値と関連付けられていない任意の検索語もしくはキーワードに対する汎用値であるように構成できる。したがって、検索基準選択値は、具体的なキーワードまたは語に対して各個に構成できる。例えば、一部の実装例において、剰余結果決定および評価は、入力された各検索語に対して独立して行われる(すなわち、検索基準を選択するために各検索語に対して以前の状態または他の情報が記憶される必要はない)。しかしながら、一部の実装例において、所与の検索語に対して剰余結果がその検索語に対する閾値に基づいて評価されるように、或る検索語に対して個別の閾値を使用できる。他の実装例において、全ての検索語に対して剰余結果を評価するために単一の閾値を使用できる。更に他の実装例において、或る検索語に対して個別の閾値が使用され、かつ入力された検索語の残りに対して大域的閾値が使用されるように、個別の閾値および大域的閾値の組合せを使用できる。
【0069】
剰余結果が検索基準選択閾値より大きければ、処理は306に続き、そうでなければ処理は312に続く。
【0070】
306で、上述したように、第1の基準を使用して(例えば、履歴データに基づいて)検索が行われる。処理は308に続く。
【0071】
308で、検索が第1の基準で行われたことを示すように検索状態変数が設定される。検索状態は、サーバ側に保持するまたはクライアントデバイスに送ることができる。例えば、検索状態は、javascriptまたは他の適切な状態保持技術を使用してクライアントデバイスに維持できる。処理は310に続く。
【0072】
310で、検索を要求したクライアントデバイスに検索結果および/または検索状態が提供される。
【0073】
312で、上述したように、第2の基準(例えば、新しさ)を使用して検索が行われる。処理は314に続く。
【0074】
314で、検索が第2の基準で行われたことを示すように検索状態変数が設定される。検索状態は、サーバ側に保持するまたはクライアントデバイスに送ることができる。例えば、検索状態は、javascriptまたは他の適切な状態保持技術を使用してクライアントデバイスに維持できる。処理は316に続く。
【0075】
316で、検索を要求したクライアントデバイスに検索結果および/または検索状態が提供される。
【0076】
ステップ302~316は、上記とは異なる順に行う(もしくは繰り返す)ことができ、かつ/または1つもしくは複数のステップを省略できる。
【0077】
方法200および/または300は、サーバ(例えば、102)および/またはクライアントデバイス(例えば、110もしくは116)上で行うことができる。
【0078】
開示された発見可能性が改善された検索の実装例は、他のコンテンツと関連した強い履歴データの存在下で新しいコンテンツをユーザに見えるようにすることによってユーザ体験を改善できる。一部の実装例において、検索の一部分が新しさ(または他の、人気、プレイヤ数等などの履歴データとは異なる基準)に基づくように検索エンジンが備えると、新しいコンテンツをより迅速に発見できる。一部の実装例は、クライアントおよび/またはサーバにおいて状態保持を提供でき、検索結果のページ1と後にロードされる検索結果の後のページとの間の一貫性に備える。また、一部の実装例は、他のゲーム、例えば新しいゲームを代わりに提案することによって人気または高ランキングのゲームへの「サーバ負荷」を軽減できる。一部の実装例において、ゲーム負荷(例えば、ゲームをプレイまたはダウンロードしているユーザ数)は、第1および第2の検索手法間で選択するための閾値を調整する基準として使用できる。
【0079】
一部の実装例において、新しさ基準は、特に新しさに限定され得るのではなく、最近である良質な結果を提供し得る1つもしくは複数の他の要因を含んでも、または種々のパラメータを使用して新しさを表してもよい。例えば、ゲーム文書の検索関連性に加えてお気に入りカウントを、最近作成されたゲームが浮上できるようにする基準として使用できる。例えば、システムは、お気に入りの複合スコア(例えば、ユーザのお気に入りにゲームが追加された回数または所与の期間内にお気に入りにゲームが追加された回数)および各ゲームの検索関連性に基づいて検索結果をソートしてよい。類似して、新しさ(例えば、ゲームまたは他のコンテンツがどれくらい前にアップロードされたか)が他のパラメータ(お気に入り数、ダウンロード数、プレイヤ評価等)のスコア/カウントと組み合わされて、良質なコンテンツが最初に返されることを保証するのを促進し得る。評価されているパラメータ、スコアまたはカウントは、所与の期間(例えば、前1時間、前日等)にわたる合計値または値を含み得る。
【0080】
一部の実装例において、検索基準の選択は検索語ごとに行われ(例えば、各検索クエリが受信される度に独立して行われ)、他の検索語に対してなされる検索基準選択から独立している。したがって、一部の実装例は、サーバ上で検索を計数または検索についてのデータを維持する必要なく種々の基準の検索を提供することができる。
【0081】
図4は、本明細書に記載される1つまたは複数の特徴を実装するために使用され得るコンピューティングデバイス例400のブロック図である。1つの例では、デバイス400は、コンピュータデバイス(例えば、
図1の102、110および/または116)を実装し、そして本明細書に記載される適切な方法実装例を行うために使用され得る。コンピューティングデバイス400は、任意の適切なコンピュータシステム、サーバまたは他の電子もしくはハードウェアデバイスであることができる。例えば、コンピューティングデバイス400は、メインフレームコンピュータ、デスクトップコンピュータ、ワークステーション、ポータブルコンピュータ、または電子デバイス(ポータブルデバイス、モバイルデバイス、携帯電話、スマートフォン、タブレットコンピュータ、テレビジョン、TVセットトップボックス、携帯情報端末(PDA)、メディアプレイヤ、ゲームデバイス、ウェアラブルデバイス等)であることができる。一部の実装例において、デバイス400は、プロセッサ402、メモリ404、入出力(I/O)インタフェース406およびオーディオ/ビデオ入出力デバイス414を含む。
【0082】
プロセッサ402は、プログラムコードを実行しかつデバイス400の基本動作を制御する1つまたは複数のプロセッサおよび/または処理回路であることができる。「プロセッサ」は、データ、信号または他の情報を処理する任意の適切なハードウェアおよび/またはソフトウェアシステム、メカニズムまたはコンポーネントを含む。プロセッサは、汎用中央処理ユニット(CPU)を持つシステム、複数処理ユニット、機能性を達成するための専用回路網、または他のシステムを含み得る。処理は、特定の地理的位置に限定されるまたは時間的制限を有する必要はない。例えば、プロセッサは、その機能を「リアルタイム」で、「オフラインで」、「バッチモード」で等行い得る。処理の部分は、異なる(または同じ)処理システムによって、異なる時間におよび異なる位置で行われてよい。コンピュータは、メモリと通信する任意のプロセッサでよい。
【0083】
メモリ404は、典型的にプロセッサ402によるアクセスのためにデバイス400に設けられ、かつプロセッサによる実行のための命令を記憶するために適切な、かつプロセッサ402とは別に設けられかつ/またはそれと一体化される任意の適切なプロセッサ可読記憶媒体、例えばランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、電気的消去可能リードオンリメモリ(EEPROM)、フラッシュメモリ等でよい。メモリ404は、オペレーティングシステム408、検索エンジンアプリケーション410および関連データ412を含め、プロセッサ402によってサーバデバイス400上で動作するソフトウェアを記憶できる。一部の実装例において、検索エンジンアプリケーション410は、プロセッサ402が本明細書に記載される機能、例えば
図2および
図3の方法の一部または全部を行うことを可能にする命令を含むことができる。
【0084】
例えば、メモリ404は、オンラインゲーミングプラットフォーム(例えば、102)内の発見可能性が改善された検索を提供できる検索エンジン410のためのソフトウェア命令を含むことができる。メモリ404におけるソフトウェアのいずれも、任意の他の適切な記憶位置またはコンピュータ可読媒体に代替的に記憶できる。加えて、メモリ404(および/または他の接続された記憶デバイス)は、本明細書に記載される特徴に使用される命令およびデータを記憶できる。メモリ404および任意の他の種類のストレージ(磁気ディスク、光ディスク、磁気テープまたは他の有形媒体)は「ストレージ」または「記憶デバイス」と考えることができる。
【0085】
I/Oインタフェース406は、サーバデバイス400を他のシステムおよびデバイスとインタフェースさせることを可能にする機能を提供できる。例えば、ネットワーク通信デバイス、記憶デバイス(例えば、メモリおよび/またはデータストア108)ならびに入出力デバイスがインタフェース406を介して通信できる。一部の実装例において、I/Oインタフェースは、入力デバイス(キーボード、ポインティングデバイス、タッチスクリーン、マイクロホン、カメラ、スキャナ等)および/または出力デバイス(ディスプレイデバイス、スピーカデバイス、プリンタ、モータ等)を含むインタフェースデバイスに接続できる。
【0086】
例示を容易にするために、
図4は、プロセッサ402、メモリ404、I/Oインタフェース406、ソフトウェアブロック408および410、ならびにデータベース412の各々のために1つのブロックを図示する。これらのブロックは、1つまたは複数のプロセッサもしくは処理回路網、オペレーティングシステム、メモリ、I/Oインタフェース、アプリケーションおよび/またはソフトウェアモジュールを表し得る。他の実装例において、デバイス400は、図示されるコンポーネントの全てを有するわけではなくてよく、かつ/または本明細書に図示されるものの代わりに、もしくはそれらに加えて他の種類の要素を含む他の要素を有してよい。オンラインゲーミングプラットフォーム102が本明細書における一部の実装例に記載されるような動作を行うと記載されるのに対して、オンラインゲーミングプラットフォーム102もしくは類似のシステムの任意の適切なコンポーネントもしくはコンポーネントの組合せ、またはそのようなシステムと関連した任意の適切な1つもしくは複数のプロセッサが、記載された動作を行い得る。
【0087】
ユーザデバイスが、本明細書に記載される特徴を実装するかつ/またはそれらと共に使用することもできる。ユーザデバイス例は、一部のデバイス400と類似のコンポーネント、例えばプロセッサ402、メモリ404およびI/Oインタフェース406を含むコンピュータデバイスであることができる。クライアントデバイスのために適切なオペレーティングシステム、ソフトウェアおよびアプリケーションをメモリに設けてプロセッサによって使用できる。クライアントデバイスのためのI/Oインタフェースは、ネットワーク通信デバイスの他に、入出力デバイス、例えば音を取り込むためのマイクロホン、画像もしくはビデオを取り込むためのカメラ、音を出力するためのオーディオスピーカデバイス、画像もしくはビデオを出力するためのディスプレイデバイスまたは他の出力デバイスに接続できる。オーディオ/ビデオ入出力デバイス414内のディスプレイデバイスを、例えば、デバイス400に接続して(または含めて)、本明細書に記載されるような処理前後の画像を表示でき、ここでそのようなディスプレイデバイスは、任意の適切なディスプレイデバイス、例えばLCD、LEDもしくはプラズマディスプレイスクリーン、CRT、テレビジョン、モニタ、タッチスクリーン、3-Dディスプレイスクリーン、プロジェクタまたは他のビジュアルディスプレイデバイスを含むことができる。一部の実装例は、オーディオ出力デバイス、例えばテキストを話す音声出力または合成を提供できる。
【0088】
図5は、一部の実装例に従う履歴データに従って順位付けられた検索結果502を表示するグラフィカルユーザインタフェース(GUI)例500である。GUI500は、検索クエリ「タイクーン」と一致して履歴データ(例えば、プレイ中のプレイヤ数)に従って順位付けられた検索結果の第1の部分(例えば、ページ1)の表示を含む。GUI500は、選択されると、次の一組の結果(例えば、ページ2等)を読み出せとの要求が送られるようにする要素504を含む。要素504が選択されると、システムは、次の一組が何であるか(例えば、ページ2等)の指示および使用されている検索基準(例えば、基準1-履歴または基準2-新しさ)を含む次の一組の結果の要求を送ることができる。
【0089】
図6は、一部の実装例に従う新しさに従って順位付けられた検索結果602を表示するグラフィカルユーザインタフェース(GUI)例600である。GUI600は、検索クエリ(例えば、「タイクーン」)と一致して新しさに従って(例えば、最新アップロードから最古アップロードの順に)順位付けられた検索結果の第1の部分(例えば、ページ1)の表示を含む。GUI600は、選択されると次の一組の結果(例えば、ページ2等)を読み出せとの要求が送られるようにする要素604を含む。要素604が選択されると、システムは、次の一組が何であるか(例えば、ページ2等)の指示および使用されている検索基準(例えば、基準1-履歴または基準2-新しさ)を含む次の一組の結果の要求を送ることができる。
【0090】
本明細書に記載される1つまたは複数の方法(例えば、方法200および/または300)は、コンピュータ上で実行できるコンピュータプログラム命令またはコードによって実装できる。例えば、コードは、1つまたは複数のデジタルプロセッサ(例えば、マイクロプロセッサまたは他の処理回路網)によって実装でき、かつ非一時的コンピュータ可読媒体(例えば、記憶媒体)、例えば半導体またはソリッドステートメモリ、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、フラッシュメモリ、リジッド磁気ディスク、光ディスク、ソリッドステートメモリドライブ等を含め、磁気、光、電磁または半導体記憶媒体を含むコンピュータプログラム製品上に記憶できる。プログラム命令は、例えばサーバ(例えば、分散システムおよび/またはクラウドコンピューティングシステム)から配信されるサービスとしてのソフトウェア(SaaS)の形態で、電子信号に含める、かつそれとして提供することもできる。代替的に、1つまたは複数の方法は、ハードウェア(論理ゲート等)で、またはハードウェアおよびソフトウェアの組合せで実装できる。ハードウェア例は、プログラマブルプロセッサ(例えばフィールドプログラマブルゲートアレイ(FPGA)、複合プログラマブルロジックデバイス)、汎用プロセッサ、グラフィックプロセッサ、特定用途向け集積回路(ASIC)等であることができる。1つまたは複数の方法を、システム上で走るアプリケーションの一部もしくはコンポーネントとして、または他のアプリケーションおよびオペレーティングシステムと併せて走るアプリケーションもしくはソフトウェアとして行うことができる。
【0091】
本明細書に記載される1つまたは複数の方法は、任意の種類のコンピューティングデバイス上で走らせることができるスタンドアロンプログラム、ウェブブラウザ上で走らされるプログラム、モバイルコンピューティングデバイス(例えば、携帯電話、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス(腕時計、アームバンド、宝飾、帽子、ゴーグル、眼鏡等)、ラップトップコンピュータ等)上で走らされるモバイルアプリケーション(「アプリ」)で走らせることができる。1つの例では、クライアント/サーバアーキテクチャを使用でき、例えば、モバイルコンピューティングデバイス(クライアントデバイスとして)がサーバデバイスにユーザ入力データを送り、そして出力のために(例えば、表示のために)最終出力データをサーバから受信する。別の例では、全ての計算は、モバイルコンピューティングデバイス上のモバイルアプリ(および/または他のアプリ)内で行うことができる。別の例では、計算は、モバイルコンピューティングデバイスと1つまたは複数のサーバデバイスとの間で分割できる。
【0092】
説明がその特定の実装例に関して記載されたが、これらの特定の実装例は単に例示であり、限定ではない。例において例示される概念は他の例および実装例に適用され得る。
【0093】
本開示に記載される機能ブロック、動作、特徴、方法、デバイスおよびシステムが当業者に公知であろうシステム、デバイスおよび機能ブロックの種々の組合せへ統合または分割され得ることに留意されたい。特定の実装例のルーチンを実装するために任意の適切なプログラミング言語およびプログラミング技術が使用され得る。種々のプログラミング技術、例えば手続き型またはオブジェクト指向型が利用され得る。ルーチンは単一の処理デバイスまたは複数プロセッサ上で実行し得る。ステップ、動作または計算が具体的な順に提示され得るが、その順は種々の特定の実装例において変更され得る。一部の実装例において、本明細書に順次として図示される複数ステップまたは動作は同時に行われ得る。
【符号の説明】
【0094】
100 システムアーキテクチャ
102 オンラインゲーミングプラットフォーム
104 ゲームエンジン
105 ゲーム
106 検索エンジン
108 データストア
110、116 クライアントデバイス
112、118 ゲームアプリケーション
114、120 ユーザ
122 ネットワーク
400 コンピューティングデバイス
402 プロセッサ
404 メモリ
406 入出力(I/O)インタフェース
408 オペレーティングシステム
410 検索エンジンアプリケーション
412 データベース
414 オーディオ/ビデオ入出力デバイス
500 グラフィカルユーザインタフェース(GUI)
502 検索結果
504 要素
600 グラフィカルユーザインタフェース(GUI)
602 検索結果
604 要素