(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-19
(45)【発行日】2023-09-27
(54)【発明の名称】悪意のあるゲームの検出
(51)【国際特許分類】
A63F 13/73 20140101AFI20230920BHJP
A63F 13/79 20140101ALI20230920BHJP
G06F 16/907 20190101ALI20230920BHJP
G06F 21/56 20130101ALI20230920BHJP
A63F 13/75 20140101ALI20230920BHJP
【FI】
A63F13/73
A63F13/79
G06F16/907
G06F21/56 320
A63F13/75
(21)【出願番号】P 2022504245
(86)(22)【出願日】2019-09-18
(86)【国際出願番号】 US2019051803
(87)【国際公開番号】W WO2021021222
(87)【国際公開日】2021-02-04
【審査請求日】2022-03-16
(32)【優先日】2019-07-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520317055
【氏名又は名称】ロブロックス・コーポレーション
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】アーサー・レミー・マラン
(72)【発明者】
【氏名】ダイアナ・リー
(72)【発明者】
【氏名】マイケル・マクヘイル
【審査官】井上 香緒梨
(56)【参考文献】
【文献】国際公開第2018/031778(WO,A1)
【文献】特表2006-522382(JP,A)
【文献】米国特許出願公開第2011/0083180(US,A1)
【文献】米国特許出願公開第2007/0226259(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
A63F13/00-13/98
G06F16/00-16/958
(57)【特許請求の範囲】
【請求項1】
ゲームのリストを取得するステップであって、前記リストが複数のゲームを含む、ステップと、
少なくとも1つの悪意のある可能性のあるゲームを識別するために前記複数のゲームを分析するステップであって、分析する前記ステップが、前記複数のゲームのうちの各ゲームに関連付けられる説
明に含まれる単語を、知られている悪意のあるゲームに関連付けられる1つまたは複数のキーワードと比較するステップを備える、ステップと、
特定のゲームのチケットがあらかじめ定められたウィンドウ内に作成されているか否かを決定するステップと、
前記チケットがあらかじめ定められたウィンドウ内に作成されていないと決定した場合にチケットを作成するステップであって、前記チケットが前記悪意のある可能性のあるゲームを識別し、前記悪意のある可能性のあるゲームの1つまたは複数の記述子を含む、ステップと、
を備える、コンピュータ
によって実行される方法。
【請求項2】
前記チケットを作成するステップの前に、前記悪意のある可能性のあるゲームに関連付けられる以前のチケット作成時間から、あらかじめ定められた時間期間が経過したことを確認するステップをさらに備える、請求項1に記載の
、コンピュー
タによって実行される方法。
【請求項3】
ゲームの前記リストから前記悪意のある可能性のあるゲームを削除し、前記削除した後、ゲームの前記リストから1つまたは複数のゲームを含むユーザインターフェースを生成するステップをさらに備える、請求項1に記載の
、コンピュー
タによって実行される方法。
【請求項4】
前記リストを取得するステップが、ゲームプラットフォーム上で現在強調表示されている前記複数のゲームの名前を検索するステップを備える、請求項1に記載の
、コンピュー
タによって実行される方法。
【請求項5】
知られている悪意のあるゲームに関連付けられる前記1つまたは複数のキーワードが、悪意のあるゲームの検出につながった以前のチケットを使用して生成される、請求項1に記載の
、コンピュー
タによって実行される方法。
【請求項6】
前記1つまたは複数の記述子が、前記悪意のある可能性のあるゲームのタイトル、前記悪意のある可能性のあるゲームの所有者、前記悪意のある可能性のあるゲームの前記所有者のアカウントへのリンク、前記悪意のある可能性のあるゲームへのユニフォームリソースロケータ(URL)、前記悪意のある可能性のあるゲームの賛成票または反対票の数、およびゲームの前記リストの生成時に前記悪意のある可能性のあるゲームのプレイヤ数を備える、請求項1に記載の
、コンピュー
タによって実行される方法。
【請求項7】
少なくとも1つの悪意のある可能性のあるゲームを識別するために前記複数のゲームを分析するステップが、前記複数のゲームの各ゲームのプロファイルパラメータをしきい値プロファイルと比較するステップをさらに備え、前記プロファイルパラメータが前記ゲームのゲーム人気の変化率を示す、請求項1に記載の
、コンピュー
タによって実行される方法。
【請求項8】
処理デバイスによる遂行に応答して、前記処理デバイスに、
ゲームのリストを取得することであって、前記リストが複数のゲームを含む、取得することと、
少なくとも1つの悪意のある可能性のあるゲームを識別するために前記複数のゲームを分析することであって、前記分析することが、前記複数のゲームのうちの各ゲームに関連付けられる説
明に含まれる単語を、知られている悪意のあるゲームに関連付けられる1つまたは複数のキーワードと比較することを備える、分析することと、
特定のゲームのチケットがあらかじめ定められたウィンドウ内に作成されているか否かを決定することと、
前記チケットがあらかじめ定められたウィンドウ内に作成されていないと決定した場合にチケットを作成することであって、前記チケットが前記悪意のある可能性のあるゲームを識別し、前記悪意のある可能性のあるゲームの1つまたは複数の記述子を含む、作成することと、
を備える動作を実行させる命令を備える、非一時的コンピュータ可読媒体。
【請求項9】
前記動作が、前記チケットを作成することの前に、前記悪意のある可能性のあるゲームに関連付けられる以前のチケット作成時間から、あらかじめ定められた時間期間が経過したことを確認することをさらに備える、請求項8に記載の非一時的コンピュータ可読媒体。
【請求項10】
前記リストを取得することが、ゲームプラットフォーム上で現在強調表示されている前記複数のゲームの名前を検索することを備える、請求項8に記載の非一時的コンピュータ可読媒体
。
【発明の詳細な説明】
【技術分野】
【0001】
実施形態は、一般に、コンピュータベースのゲームに関し、より詳細には、コンピュータベースのゲームにおける悪意のあるゲームを検出するための方法、システム、およびコンピュータ可読媒体に関する。
【背景技術】
【0002】
いくつかのオンラインゲームプラットフォームでは、ユーザが相互に接続し、相互に相互作用し(たとえば、ゲーム内で)、ゲームを作成し、インターネットを介して相互に情報を共有することができる。オンラインゲームプラットフォームのユーザは、マルチプレイヤゲーム環境(たとえば、仮想3次元環境など)に参加したり、カスタムゲーム環境をデザインしたり、キャラクタおよびアバタをデザインしたり、アバタを装飾したり、他のユーザと仮想アイテムを交換したり、オーディオまたはテキストメッセージングを使用して他のユーザと通信したりし得る。悪意のあるユーザは、プラットフォームの他のユーザに害を及ぼす可能性のあるユーザ生成コンテンツを作成する可能性がある。
【発明の概要】
【課題を解決するための手段】
【0003】
本明細書で説明する実装形態は、悪意のあるゲームの検出に関する。いくつかの実装形態では、コンピュータ実装方法は、ゲームのリストを取得するステップを含む。いくつかの実装形態では、リストは複数のゲームを含む。いくつかの実装形態では、本方法は、少なくとも1つの悪意のある可能性のあるゲームを識別するために複数のゲームを分析するステップを含む。
【0004】
少なくともいくつかの実装形態では、分析するステップは、複数のゲームのうちの各ゲームに関連付けられる説明からの単語を、知られている悪意のあるゲームに関連付けられる1つまたは複数のキーワードと比較するステップを備える。
【0005】
いくつかの実装形態では、本方法はチケットを作成するステップを含む。いくつかの実装形態では、チケットは、悪意のある可能性のあるゲームを識別し、悪意のある可能性のあるゲームの1つまたは複数の記述子を含む。
【0006】
いくつかの実装形態では、本方法は、チケットを作成するステップの前に、悪意のある可能性のあるゲームに関連付けられる以前のチケット作成時間から、あらかじめ定められた時間期間が経過したことを確認するステップを含む。いくつかの実装形態では、本方法は、ゲームのリストから悪意のある可能性のあるゲームを削除し、削除した後、ゲームのリストから1つまたは複数のゲームを含むユーザインターフェースを生成するステップを含む。
【0007】
いくつかの実装形態では、リストを取得するステップは、ゲームプラットフォーム上で現在強調表示されている複数のゲームの名前を検索するステップを備える。いくつかの実装形態では、知られている悪意のあるゲームに関連付けられる1つまたは複数のキーワードは、悪意のあるゲームの検出につながった以前のチケットを使用して生成される。
【0008】
いくつかの実装形態では、1つまたは複数の記述子は、悪意のある可能性のあるゲームのタイトル、悪意のある可能性のあるゲームの所有者、悪意のある可能性のあるゲームの所有者のアカウントへのリンク、悪意のある可能性のあるゲームへのユニフォームリソースロケータ(URL)、悪意のある可能性のあるゲームの賛成票または反対票の数、およびリストの生成時に悪意のある可能性のあるゲームのプレイヤ数を備える。
【0009】
いくつかの実装形態では、少なくとも1つの悪意のある可能性のあるゲームを識別するために複数のゲームを分析するステップは、ゲームのリストの各ゲームのプロファイルパラメータをしきい値プロファイルと比較するステップをさらに備え、プロファイルパラメータはゲーム人気の変化率を示す。
【0010】
いくつかの実装形態は、処理デバイスによる遂行に応答して、処理デバイスに、ゲームのリストを取得することを備える動作を実行させる命令を備える非一時的コンピュータ可読媒体を含む。いくつかの実装形態では、リストは複数のゲームを含む。
【0011】
いくつかの実装形態では、本動作は、少なくとも1つの悪意のある可能性のあるゲームを識別するために複数のゲームを分析することを含む。いくつかの実装形態では、分析することは、複数のゲームのうちの各ゲームに関連付けられる説明からの単語を、知られている悪意のあるゲームに関連付けられる1つまたは複数のキーワードと比較することを備える。いくつかの実装形態では、本動作はチケットを作成することを含み、チケットは、悪意のある可能性のあるゲームを識別し、悪意のある可能性のあるゲームの1つまたは複数の記述子を含む。
【0012】
いくつかの実装形態では、本動作は、チケットを作成することの前に、悪意のある可能性のあるゲームに関連付けられる以前のチケット作成時間から、あらかじめ定められた時間期間が経過したことを確認することをさらに備える。いくつかの実装形態では、リストを取得することは、ゲームプラットフォーム上で現在強調表示されている複数のゲームの名前を検索することを備える。
【0013】
いくつかの実装形態は、ゲームのリストを取得するステップを備えるコンピュータ実装方法を含む。いくつかの実装形態では、リストは複数のゲームを含む。
【0014】
いくつかの実装形態では、本方法は、悪意のある可能性のあるゲームを識別するためにゲームのリストを分析するステップを含む。いくつかの実装形態では、リストを分析するステップは、複数のゲームの各ゲームのプロファイルパラメータをしきい値プロファイルと比較するステップをさらに備える。いくつかの実装形態では、プロファイルパラメータは、ゲーム人気の変化率を示す。いくつかの実装形態では、本方法はチケットを作成するステップを含み、チケットは悪意のある可能性のあるゲームを備える。
【0015】
いくつかの実装形態では、本方法は、チケットを作成するステップの前に、悪意のある可能性のあるゲームに関連付けられる以前のチケット作成時間から、あらかじめ定められた時間期間が経過したことを確認するステップを含む。
【0016】
いくつかの実装形態では、本方法は、ゲームのリストから1つまたは複数のゲームを含むユーザインターフェースを生成するステップの前に、ゲームのリストから悪意のある可能性のあるゲームを削除するステップを含む。いくつかの実装形態では、リストを取得するステップは、ゲームプラットフォーム上で現在強調表示されている複数のゲームの名前を検索するステップを備える。いくつかの実装形態では、プロファイルパラメータは、人気のあるゲームのリスト上でのゲームの突然の出現の測定値を備える。少なくともいくつかの実装形態では、プロファイルパラメータは、人気のあるゲームのリストにゲームが最初に出現した時点でのゲームに関連付けられるプレイヤの数の測定値をさらに備える。
【0017】
いくつかの実装形態では、悪意のある可能性のあるゲームを識別するためにゲームのリストを分析するステップは、複数のゲームのうちの各ゲームに関連付けられる説明からの単語を、知られている悪意のあるゲームに関連付けられる1つまたは複数のキーワードと比較するステップをさらに備える。
【0018】
いくつかの実装形態は、命令が記憶されたメモリと、メモリに結合された処理デバイスとを備えるシステムを含み、処理デバイスは、メモリにアクセスすることと、処理デバイスに、ゲームのリストを取得することを含む動作を実行させる命令を遂行することとを行うように構成される。いくつかの実装形態では、リストは複数のゲームを含む。
【0019】
いくつかの実装形態では、本動作は、悪意のある可能性のあるゲームを識別するためにゲームのリストを分析することを含む。いくつかの実装形態では、リストを分析することは、複数のゲームの各ゲームのプロファイルパラメータをしきい値プロファイルと比較することをさらに備える。いくつかの実装形態では、プロファイルパラメータは、ゲーム人気の変化率を示す。いくつかの実装形態では、本動作は、悪意のある可能性のあるゲームを備えるチケットを作成することを含む。
【0020】
いくつかの実装形態は、複数の有料ユーザから受け取ったそれぞれのフィードバックメトリックに基づいてゲームの第1のスコアを計算するステップと、複数の無料ユーザから受け取ったそれぞれのフィードバックメトリックに基づいて、ゲームの第2のスコアを計算するステップと、第1のスコアと第2のスコアの集計に基づいてゲームの品質基準を計算するステップと、ゲームの品質基準をしきい値と比較するステップと、ゲームの品質基準がしきい値を満たしているときに、ゲームが悪意のある可能性のあるゲームであると決定するステップと、悪意のある可能性のあるゲームを識別するチケットを作成するステップとを備えるコンピュータ実装方法を含む。
【0021】
いくつかの実装形態では、本方法は、第1のスコアを計算するステップの前に、複数の有料ユーザからの各フィードバックメトリックにメトリックの重みを適用するステップをさらに含む。いくつかの実装形態では、本方法は、品質基準を計算するステップの前に、第1のスコアにスコアの重みを適用するステップを含む。
【0022】
いくつかの実装形態では、本方法は、チケットを作成するステップの前に、悪意のある可能性のあるゲームに関連付けられる以前のチケット作成時間から、あらかじめ定められた時間期間が経過したことを確認するステップを含む。いくつかの実装形態では、本方法は、悪意のある可能性のあるゲームを含むゲームのリストを受信するステップと、ゲームの第2のリストを作成するために、ゲームのリストから悪意のある可能性のあるゲームを削除するステップと、ゲームの第2のリストを含むユーザインターフェースを生成するステップとを含む。
【0023】
いくつかの実装形態では、第1のスコアおよび第2のスコアはそれぞれウィルソンスコアである。いくつかの実装形態では、本方法は、複数の有料ユーザと複数の無料ユーザの総数に基づいてゲームのしきい値を計算するステップを含む。
【0024】
少なくともいくつかの実装形態では、フィードバックメトリックは、ゲームのために受け取られた賛成票またはゲームのために受け取られた反対票のうちの少なくとも1つを含む。いくつかの実装形態では、しきい値は、ゲームの複数の有料ユーザおよびゲームの複数の無料ユーザの総数とは無関係の、あらかじめ定められたパラメータである。
【0025】
いくつかの実装形態は、処理デバイスによる遂行に応答して、処理デバイスに、複数の有料ユーザから受け取ったそれぞれのフィードバックメトリックに基づいてゲームの第1のスコアを計算することと、複数の無料ユーザから受け取ったそれぞれのフィードバックメトリックに基づいて、ゲームの第2のスコアを計算することと、第1のスコアと第2のスコアの集計に基づいてゲームの品質基準を計算することと、品質基準をしきい値と比較することと、品質基準がしきい値を満たしているときに、ゲームが悪意のある可能性のあるゲームであると決定することと、チケットを作成することであって、チケットが悪意のある可能性のあるゲームを備える、作成することとを備える動作を実行させる命令を備える非一時的コンピュータ可読媒体を含む。
【0026】
いくつかの実装形態では、本動作は、第1のスコアを計算することの前に、複数の有料ユーザからの各フィードバックメトリックにメトリックの重みを適用することをさらに含む。いくつかの実装形態では、本動作は、品質基準を計算することの前に、第1のスコアにスコアの重みを適用することをさらに備える。いくつかの実装形態では、第1のスコアおよび第2のスコアはそれぞれウィルソンスコアである。
【0027】
いくつかの実装形態では、本動作は、複数の有料ユーザと複数の無料ユーザの総数に基づいてゲームのしきい値を計算することをさらに備える。いくつかの実装形態では、フィードバックメトリックは、ゲームのために受け取られた賛成票またはゲームのために受け取られた反対票のうちの少なくとも1つを含む。
【図面の簡単な説明】
【0028】
【
図1】いくつかの実装形態による、悪意のあるゲームが検出される可能性がある例示的なシステムアーキテクチャを示す図である。
【
図2A】いくつかの実装形態による、ゲームの例示的なリストを示す図である。
【
図2B】いくつかの実装形態による、ゲームのソートに関連付けられるデータ構造を示す図である。
【
図3】いくつかの実装形態による、キーワードに基づいて悪意のあるゲームを検出するための例示的な方法を示すフローチャートである。
【
図4】いくつかの実装形態による、運動量メトリック(momentum metrics)に基づいて悪意のあるゲームを検出するための例示的な方法を示すフローチャートである。
【
図5】いくつかの実装形態による、加重メトリックに基づいて悪意のあるゲームを検出する方法を示すフローチャートである。
【
図6A】いくつかの実装形態による、例示的なコンピューティングデバイスを示すブロック図である。
【
図6B】いくつかの実装形態による、例示的なコンピューティングデバイスを示すブロック図である。
【発明を実施するための形態】
【0029】
オンラインゲームプラットフォーム(「ユーザ生成コンテンツプラットフォーム」、または「ユーザ生成コンテンツシステム」とも呼ばれる)は、ユーザが相互に相互作用するための様々な方法を提供する。たとえば、オンラインゲームプラットフォームのユーザは、共通の目標に向かって協力したり、様々な仮想ゲームアイテムを共有したり、相互に電子メッセージを送信したりすることができる。オンラインゲームプラットフォームのユーザは、仮想キャラクタとしてゲームに参加し、ゲーム固有の役割を演じることができる。たとえば、仮想キャラクタは、各キャラクタに特定の役割が割り当てられ、その役割に対応する衣類、鎧、武器、スキルなどのパラメータが関連付けられているチームまたはマルチプレイヤ環境の一部であってよい。別の例では、たとえば、単一の人間のプレイヤがゲームの一部であり、他のプレイヤがコンピュータによってシミュレートされている場合、仮想キャラクタは、コンピュータで生成されたキャラクタによって結合され得る。
【0030】
オンラインゲームプラットフォームでは、プラットフォームのユーザ(開発者)が新しいゲームおよびキャラクタを作成できる場合もある。たとえば、オンラインゲームプラットフォームのユーザは、新しいゲームを作成、設計、および/またはカスタマイズし、そのようなゲームをオンラインゲームプラットフォームのユーザが利用できるようにすることができる場合がある。
【0031】
作成者がゲームを作成し、他のプレイヤのためにゲームを公開できるようにするゲームプラットフォームにもたらされるリスクは、悪意のあるゲームの作成と入手可能性である。悪意のあるゲームは、悪意のある、または他の不快なゲームを構築するユーザによって作成され得、たとえば、ユーザ名とパスワードを明らかにするようにプレイヤを誘導しようとするゲーム(「フィッシングゲーム」)である。フィッシングゲームにうっかり誘惑されたプレイヤは、ゲームプラットフォームのアカウントが危険にさらされ、それらのアカウントにおいて価値のあるアイテムを失う可能性がある。いくつかの悪意のあるゲームは、ユーザをだましてゲームにおいて仮想通貨を支払わせたり、ゲームプラットフォームから外れた悪意のあるウェブサイトまたはサービスにユーザを誘導したりする可能性がある。
【0032】
悪意のあるゲームは通常、プレイヤからゲームプラットフォームの所有者に報告され、ゲームプラットフォームの所有者はゲームへのアクセスを削除し(消し)、悪意のあるゲームの作成者のアカウントを抹消する。したがって、悪意のある作成者は、悪意のあるゲームの作成における努力の見返りを最大化するために、できるだけ多くのプレイヤに最短時間でゲームをプレイさせる動機を有する。悪意のある作成者は、短時間で多数のプレイヤを引き付けるために、ゲームに誤った人気や他の重要性を生み出そうとする。たとえば、悪意のあるゲームの作成者は、ゲームに接続して人気を博しているように見せるために、ゲームプラットフォーム上に偽のユーザアカウントを作成することによってこれを実現し得る。悪意のあるゲームの作成者は、ゲームの統計を人為的に高めることで人気の認識をさらに高めるために、悪意のあるゲームに肯定的な評価(賛成票)を追加することができる。たとえば、ゲームの統計は、ボットおよび/または偽のアカウントの使用、コンテンツの不実表示、別の人気のあるゲームのなりすましなどによって操作される可能性がある。これにより、悪意のあるゲームが、たとえば、オンラインゲームプラットフォームのユーザにゲームを強調するために使用される、1つまたは複数のシステム全体のランキングに入る可能性がある。
【0033】
たとえば、ゲームプラットフォームは、「現在人気のある」ゲームのリストにおいて、特定の時間に多数のアクティブなプレイヤがいるゲーム、「トレンド」ゲームのリストにおいて最近の時間枠内に参加した多数のプレイヤがいるゲーム、「新鮮な」ゲームのリストにおいてプラットフォーム上で新たに利用可能になったゲーム、「トップ評価」のゲームとしてユーザから高い評価を得ているゲーム、多数のユーザによってお気に入りとしてマークされている「トップお気に入り」のゲームなどを強調し得る。そのようなリストは、プラットフォーム全体および/または地理的な場所に固有のもの、ならびに/あるいは「パズル」、「アクションアドベンチャ」、「ソーシャル」などの個々のゲームカテゴリに固有のものである可能性がある。悪意のあるゲームの作成者が、これらのリストのうちの1つまたは複数に含めるための基準を満たすゲームを作成した場合、またはゲームに参加するボットのユーザなどによって、ゲームのプレイヤ数を人為的に増やすことができる場合、そのような包含は、悪意のあるゲームの人気や重要性の感覚をさらに高めるのに役立つ。
【0034】
ゲームプラットフォームの所有者または管理者の目的は、悪意のあるゲームの作成者によるプラットフォーム上のプレイヤへの危害を防ぐことである。悪意のあるゲームを早期に検出すると、悪意のあるゲームの作成者が悪意のあるゲームを作成して伝播することが困難および/または高額になる可能性がある。悪意のあるゲームをすばやくシャットダウンするゲームプラットフォームは、悪意のあるゲームの作成者を効果的に阻止することができる。
【0035】
したがって、技術的な問題は、悪意のあるゲームによって影響を受ける可能性のあるユーザの数が制限されるように、ゲームプラットフォーム上で悪意のあるゲームを短時間で検出することである。したがって、悪意のあるゲームを検出するための技法の成功の1つのパラメータは、オンラインゲームプラットフォーム上で悪意のあるゲームを起動してから、ゲームが悪意のあるものとして検出され、軽減アクションが実行されるまでの時間である。さらなる技術的な問題は、ユーザがそのようなゲームを発見して楽しむことができるように、有効または合法的なゲームが悪意のあるものとしてタグ付けされていないことを確認することである。悪意のあるゲームを検出するための重要な技術的パラメータは、精度、たとえば、悪意があると検出されたゲームの総数に対する実際に悪意のあるゲームの割合、たとえば、悪意があると検出されず、その後悪意があると報告されたゲームの数、およびリコール、たとえば、オンラインゲームプラットフォームにおける悪意のあるゲームの総数に対する、悪意のあるものとして検出されたゲームの割合を含む。プラットフォームがそのようなゲームを提供するためのコンピューティングリソースを節約することができ、悪意のあるゲームが実質的にないゲーム環境などの、より優れた顧客体験を提供することができ、ユーザを維持するのに役立つことができるので、プラットフォームは、悪意のあるゲームをできるだけ早く見つけることによって恩恵を受ける可能性がある。
【0036】
図1は、本開示のいくつかの実装形態による、例示的なシステムアーキテクチャ100を示している。
図1および他の図面は、同様の要素を識別するために同様の参照番号を使用している。「110」などの参照番号の後の文字は、テキストがその特定の参照番号を有する要素を具体的に参照していることを示す。「110」などの後続の文字のないテキスト中の参照番号は、その参照番号を有する図面中の要素のいずれかまたはすべてを指す(たとえば、テキスト中の「110」は、図面中の参照番号「110a」、「110b」、および/または「110n」を指す)。
【0037】
システムアーキテクチャ100(本明細書では「システム」とも呼ばれる)は、オンラインゲームサーバ102、データストア120、クライアントデバイス110a、110b、および110n(本明細書では一般に「クライアントデバイス110」と呼ばれる)、および開発者デバイス130aおよび130n(本明細書では一般に「開発者デバイス130」と呼ばれる)を含む。ゲームサーバ102、データストア120、クライアントデバイス110、および開発者デバイス130は、ネットワーク122を介して結合されている。いくつかの実装形態では、クライアントデバイス110および開発者デバイス130は、たとえば、オンラインゲームプラットフォームのユーザが、プラットフォーム上の同じまたは異なるゲームについて、プレイヤおよび開発者の両方として参加する場合、同じまたは同じタイプのデバイスを指す場合がある。
【0038】
オンラインゲームサーバ102は、とりわけ、ゲームエンジン104、1つまたは複数のゲーム106、およびグラフィックエンジン108を含むことができる。たとえば、ゲームエンジン104、ゲーム106、およびグラフィックエンジン108は、ゲームサーバ102上に記憶および/または遂行されるソフトウェアとして実装され得る。いくつかの実装形態では、ゲームエンジン104は、複数のクライアントデバイスが参加する1つまたは複数のゲームのゲームプレイを管理するソフトウェアコード、たとえば、ゲーム状態の同期、個々のプレイヤの現在のゲームステータスの記憶、ゲーム参加者(ゲームに参加またはゲームから離脱するユーザなど)の管理などを含み得る。ゲームエンジン104は、データを記憶する、および/あるいは1つまたは複数のゲームのデータを検索するために、データストア120にアクセスし得る。
【0039】
いくつかの実装形態では、ゲームサーバ102は、1つまたは複数のゲーム106を記憶および/または遂行することができる。たとえば、ゲームサーバ102は、ゲーム環境(たとえば、仮想空間の説明または地図、ゲームボードなど)、ゲームキャラクタ、ゲーム資産(たとえば、ゲームプレイ中に使用されるオブジェクトなど)などのゲーム資産をゲーム106に記憶し得る。さらに、いくつかの実装形態では、ゲームサーバ102は、ゲーム106の特定のゲームを遂行し得、たとえば、ユーザデバイス110からクライアント入力を受け取り、ゲームステータスを更新し、更新されたゲームステータスを(たとえば、ステータス更新として、更新されたグラフィックスとしてなど)、特定のゲームに参加するユーザデバイス110に提供する。クライアントデバイス110は、ゲームアプリケーション112、および入力/出力(I/O)インターフェース114(たとえば、入力/出力デバイス)を含むことができる。いくつかの実装形態では、グラフィックエンジン108は、ゲーム106のグラフィックを生成するためのソフトウェアコードおよび/またはハードウェア(たとえば、ASIC、FPGA、GPU、または他の専用プロセッサなど)を含み得る。
【0040】
いくつかの実装形態では、クライアントデバイス110は、ゲームアプリケーション112および1つまたは複数のI/Oインターフェース114を含み得る。たとえば、クライアントデバイス110は、ゲームサーバ102を介してゲームプレイを可能にする任意のタイプのデバイス、たとえば、デスクトップまたはラップトップコンピュータ、タブレット、スマートフォン、ゲームコンソールあるいは他のゲームデバイス、ウェアラブルデバイスなどであり得る。いくつかの実装形態では、クライアントデバイスは、拡張現実デバイスまたは仮想現実デバイスであり得る。ゲームアプリケーション112は、ゲームプレイのためのローカルで遂行可能なコードおよび/またはローカルデータを含み得る。たとえば、いくつかの実装形態では、クライアントデバイスのユーザがゲーム106の特定のゲームに参加するとき、対応するコードおよび/またはデータは、ゲームサーバ102によってユーザのクライアントデバイス110に提供され得る。様々な実装形態では、I/Oインターフェース114は、マイクロフォン、スピーカ、ヘッドホン、ディスプレイデバイス、マウス、キーボード、ゲームコントローラ、タッチスクリーン、仮想現実コンソールなどのうちの1つまたは複数を含むことができる。いくつかの実装形態では、1つまたは複数の他のデバイスは、I/Oインターフェースを介してクライアントデバイスと結合され得、たとえば、ゲームコントローラは、USBインターフェースなどを介してタブレットまたはラップトップに接続され得る。
【0041】
いくつかの実装形態では、開発者デバイス130は、ゲームアプリケーション132および1つまたは複数のI/Oインターフェース134を含み得る。たとえば、開発者デバイス130は、ゲームサーバ102を介してゲームプレイを可能にする任意のタイプのデバイス、たとえば、デスクトップまたはラップトップコンピュータ、タブレット、スマートフォン、ゲームコンソールあるいは他のゲームデバイス、ウェアラブルデバイスなどであり得る。いくつかの実装形態では、クライアントデバイスは、拡張現実デバイスまたは仮想現実デバイスであり得る。ゲームアプリケーション132は、ゲームサーバ102およびクライアントデバイス110に提供され得るゲームプレイのための遂行可能なコードおよび/またはローカルデータを含み得る。たとえば、いくつかの実装形態では、開発者デバイスのユーザは、ゲームサーバ102およびクライアントデバイス110に提供され得る対応するコードおよび/またはデータを(たとえば、ネットワーク122を介してアップロードすることによって)提供し得る。様々な実装形態では、I/Oインターフェース134は、マイクロフォン、スピーカ、ヘッドホン、ディスプレイデバイス、マウス、キーボード、ゲームコントローラ、タッチスクリーン、仮想現実コンソールなどのうちの1つまたは複数を含むことができる。いくつかの実装形態では、1つまたは複数の他のデバイスは、I/Oインターフェースを介してクライアントデバイスと結合され得、たとえば、ゲームコントローラは、USBインターフェースなどを介してタブレットまたはラップトップに接続され得る。
【0042】
いくつかの実装形態では、ゲームアプリケーション132は、ユーザがゲームを発見するために利用され得る、アバタ、衣類、アクセサリなどのゲーム資産、ゲーム環境(カーレースゲームのレーストラックレイアウト、迷路の部屋レイアウト、パズルのボードレイアウトなど)、およびゲーム記述子(タイトル、キーワード、説明)などを含む、ユーザが新しいゲームを生成できるようにするソフトウェアコードを含み得る。
【0043】
いくつかの実装形態では、ネットワーク122は、パブリックネットワーク(たとえば、インターネット)、プライベートネットワーク(たとえば、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN))、ワイヤードネットワーク(たとえば、イーサネットネットワーク)、ワイヤレスネットワーク(たとえば、802.11ネットワーク、Wi-Fi(登録商標)ネットワーク、またはワイヤレスLAN(WLAN))、セルラーネットワーク(たとえば、5Gネットワーク、ロングタームエボリューション(LTE)ネットワークなど)、ルータ、ハブ、スイッチ、サーバコンピュータ、またはそれらの組合せを含み得る。
【0044】
いくつかの実装形態では、データストア120は、非一時的コンピュータ可読メモリ(たとえば、ランダムアクセスメモリ)、キャッシュ、ドライブ(たとえば、ハードドライブ)、フラッシュドライブ、データベースシステム、あるいはデータを記憶することができる別のタイプのコンポーネントまたはデバイスであり得る。データストア120はまた、複数のコンピューティングデバイス(たとえば、複数のサーバコンピュータ)にまたがることができる複数のストレージコンポーネント(たとえば、複数のドライブまたは複数のデータベース)を含み得る。
【0045】
いくつかの実装形態では、オンラインゲームサーバ102は、1つまたは複数のコンピューティングデバイス(たとえば、クラウドコンピューティングシステム、ラックマウントサーバ、サーバコンピュータ、物理サーバのクラスタなど)を有するサーバを含むことができる。いくつかの実装形態では、オンラインゲームサーバ102は、独立したシステムであってもよく、複数のサーバを含んでもよく、別のシステムまたはサーバの一部であってもよい。
【0046】
いくつかの実装形態では、オンラインゲームサーバ102は、1つまたは複数のコンピューティングデバイス(ラックマウントサーバ、ルータコンピュータ、サーバコンピュータ、パーソナルコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータなど)、オンラインゲームサーバ102上で動作を実行し、ユーザにオンラインゲームサーバ102へのアクセスを提供するために使用され得るデータストア(たとえば、ハードディスク、メモリ、データベース)、ネットワーク、ソフトウェアコンポーネント、および/またはハードウェアコンポーネントを含み得る。オンラインゲームサーバ102はまた、オンラインゲームサーバ102によって提供されるコンテンツへのアクセスをユーザに提供するために使用され得るウェブサイト(たとえば、ウェブページ)またはアプリケーションバックエンドソフトウェアを含み得る。たとえば、ユーザは、クライアントデバイス110上でゲームアプリケーション112を使用してオンラインゲームサーバ102にアクセスし得る。
【0047】
いくつかの実装形態では、オンラインゲームサーバ102は、ユーザ間の接続を提供する一種のソーシャルネットワーク、またはユーザ(たとえば、エンドユーザまたは消費者)がオンラインゲームサーバ102上の他のユーザと通信することを可能にする一種のユーザ生成コンテンツシステムであり得、通信は、ボイスチャット(たとえば、同期および/または非同期音声通信)、ビデオチャット(たとえば、同期および/または非同期ビデオ通信)、またはテキストチャット(たとえば、同期および/または非同期テキストベースの通信)を含み得る。本開示のいくつかの実装形態では、「ユーザ」は、単一の個人として表され得る。しかしながら、本開示の他の実装形態は、ユーザのセットまたは自動化されたソースによって制御されるエンティティである「ユーザ」(たとえば、作成ユーザ)を包含する。たとえば、ユーザ生成コンテンツシステムにおいてコミュニティまたはグループとしてフェデレーションされた個々のユーザのセットは、「ユーザ」と見なされる場合がある。
【0048】
いくつかの実装形態では、オンラインゲームサーバ102は、仮想ゲームサーバであり得る。たとえば、ゲームサーバは、ネットワーク122を介してクライアントデバイス110を使用してゲームにアクセスし得る、またはそれと相互作用し得るユーザのコミュニティにシングルプレイヤまたはマルチプレイヤゲームを提供し得る。いくつかの実装形態では、ゲーム(本明細書では「ビデオゲーム」、「オンラインゲーム」、または「仮想ゲーム」とも呼ばれる)は、たとえば、2次元(2D)ゲーム、3次元(3D)ゲーム(たとえば、3Dユーザ生成ゲーム)、仮想現実(VR)ゲーム、または拡張現実(AR)ゲームであり得る。いくつかの実装形態では、ユーザは他のユーザとのゲームプレイに参加し得る。いくつかの実装形態では、ゲームは、ゲームの他のユーザとリアルタイムでプレイされ得る。
【0049】
いくつかの実装形態では、ゲームプレイは、ゲーム(たとえば、106)内でクライアントデバイス(たとえば、110)を使用する1人または複数のプレイヤの相互作用、またはクライアントデバイス110のディスプレイまたは他の出力デバイス(たとえば、114)における相互作用の提示を指す場合がある。
【0050】
いくつかの実装形態では、ゲーム106は、ゲームコンテンツ(たとえば、デジタルメディアアイテム)をエンティティに提示するように構成されたソフトウェア、ファームウェア、またはハードウェアを使用して遂行またはロードすることができる電子ファイルを含むことができる。いくつかの実装形態では、ゲームアプリケーション112が遂行され、ゲーム106がゲームエンジン104に関連してレンダリングされ得る。いくつかの実装形態では、ゲーム106は、共通のルールのセットまたは共通の目標を有し得、ゲーム106の環境は、共通のルールのセットまたは共通の目標を共有する。いくつかの実装形態では、ゲームが異なれば、ルールまたは目標も互いに異なる場合がある。
【0051】
いくつかの実装形態では、ゲームは、複数の環境がリンクされ得る1つまたは複数の環境(本明細書では「ゲーム環境」または「仮想環境」とも呼ばれる)を有し得る。環境の例としては、3次元(3D)環境がある。ゲームアプリケーション106の1つまたは複数の環境は、本明細書では、集合的に「世界」または「ゲーム世界」または「仮想世界」または「宇宙」と呼ばれ得る。世界の例は、ゲーム106の3D世界であり得る。たとえば、ユーザは、別のユーザによって作成された別の仮想環境にリンクされた仮想環境を構築し得る。仮想ゲームのキャラクタは、隣接する仮想環境に入るために仮想境界を越えることができる。
【0052】
3D環境または3D世界は、ゲームコンテンツを表す幾何学的データの3次元表現を使用するグラフィックスを使用する(または、少なくとも、幾何学的データの3D表現が使用されているかどうかに関係なく、ゲームコンテンツを3Dコンテンツとして表示する)ことに留意されたい。2D環境または2D世界は、ゲームコンテンツを表す幾何学的データの2次元表現を使用するグラフィックスを使用する。
【0053】
いくつかの実装形態では、オンラインゲームサーバ102は、1つまたは複数のゲーム106をホストすることができ、ユーザがクライアントデバイス110のゲームアプリケーション112を使用してゲーム106と相互作用することを可能にすることができる。オンラインゲームサーバ102のユーザは、ゲーム106をプレイ、作成、相互作用、または構築し、他のユーザと通信し、ゲームのレビューを提供し(賛成票および/または反対投票)、ならびに/またはゲーム106のオブジェクト(たとえば、本明細書では「アイテム」または「ゲームオブジェクト」または「仮想ゲームアイテム」とも呼ばれる)を作成および構築し得る。たとえば、ユーザ生成仮想アイテムを生成する際に、ユーザは、とりわけ、キャラクタ、キャラクタの装飾、相互作用型ゲームのための1つまたは複数の仮想環境を作成してもよく、ゲーム106において使用される構造を構築してもよい。いくつかの実装形態では、ユーザは、プラットフォーム内通貨(たとえば、仮想通貨)などのゲーム仮想ゲームオブジェクトを、オンラインゲームサーバ102の他のユーザと購入、販売、または交換することができる。いくつかの実装形態では、仮想通貨にゲームプラットフォーム内の一意の名前(たとえば、Robux)を付けることができる。いくつかの実装形態では、オンラインゲームサーバ102は、ゲームコンテンツをゲームアプリケーション(たとえば、112)に送信し得る。いくつかの実装形態では、ゲームコンテンツ(本明細書では「コンテンツ」とも呼ばれる)は、オンラインゲームサーバ102またはゲームアプリケーションに関連付けられる任意のデータまたはソフトウェア命令(たとえば、ゲームオブジェクト、ゲーム、ユーザ情報、ビデオ、画像、コマンド、メディアアイテムなど)を指す場合がある。いくつかの実装形態では、ゲームオブジェクト(たとえば、本明細書では「アイテム」または「オブジェクト」または「仮想ゲームアイテム」とも呼ばれる)は、クライアントデバイス110のオンラインゲームサーバ102またはゲームアプリケーション112のゲームアプリケーション106において使用、作成、共有、または他の方法で描写されるオブジェクトを指し得る。たとえば、ゲームオブジェクトは、パーツ、モデル、キャラクタ、ツール、武器、衣類、建物、車両、通貨、植物相、動物相、前述のコンポーネント(たとえば、建物の窓)などを含み得る。
【0054】
ゲーム106をホストするオンラインゲームサーバ102は、説明の目的で提供されていることに留意されたい。いくつかの実装形態では、オンラインゲームサーバ102は、あるユーザから1人または複数の他のユーザへの通信メッセージを含むことができる1つまたは複数のメディアアイテムをホストし得る。メディアアイテムは、これらに限定されないが、デジタルビデオ、デジタルムービー、デジタル写真、デジタル音楽、オーディオコンテンツ、メロディ、ウェブサイトのコンテンツ、ソーシャルメディアの更新、電子書籍、電子雑誌、デジタル新聞、デジタルオーディオ書籍、電子ジャーナル、ウェブブログ、リアルシンプルシンジケーション(RSS)フィード、電子コミックブック、ソフトウェアアプリケーションなどを含むことができる。いくつかの実装形態では、メディアアイテムは、デジタルメディアアイテムをエンティティに提示するように構成されたソフトウェア、ファームウェア、またはハードウェアを使用して遂行またはロードできる電子ファイルであり得る。
【0055】
いくつかの実装形態では、ゲーム106は、特定のユーザまたは特定のユーザのグループ(たとえば、プライベートゲーム)に関連付けられ得るか、またはオンラインゲームサーバ102(たとえば、パブリックゲーム)にアクセスできるユーザに広く利用可能にされ得る。いくつかの実装形態では、オンラインゲームサーバ102が1つまたは複数のゲーム106を特定のユーザまたはユーザのグループに関連付ける場合、オンラインゲームサーバ102は、ユーザアカウント情報(たとえば、ユーザ名およびパスワードなどのユーザアカウント識別子)を使用して、特定のユーザをゲーム102に関連付けることができる。
【0056】
いくつかの実装形態では、オンラインゲームサーバ102またはクライアントデバイス110は、ゲームエンジン104またはゲームアプリケーション112を含み得る。いくつかの実装形態では、ゲームエンジン104は、ゲーム106の開発または遂行のために使用され得る。たとえば、ゲームエンジン104は、とりわけ、2D、3D、VR、またはARグラフィックスのためのレンダリングエンジン(「レンダラ」)、物理エンジン、衝突検出エンジン(および衝突応答)、サウンドエンジン、スクリプト機能、アニメーションエンジン、人工知能エンジン、ネットワーキング機能、ストリーミング機能、メモリ管理機能、スレッド機能、シーングラフ機能、またはシネマティクスのビデオサポートなどの機能を含み得る。ゲームエンジン104のコンポーネントは、ゲームの計算およびレンダリングを支援するコマンド(たとえば、レンダリングコマンド、衝突コマンド、物理コマンドなど)を生成し得る。いくつかの実装形態では、クライアントデバイス110のゲームアプリケーション112は、それぞれ、オンラインゲームサーバ102のゲームエンジン104、または両方の組合せと連携して、独立して動作し得る。
【0057】
いくつかの実装形態では、オンラインゲームサーバ102およびクライアントデバイス110の両方は、ゲームエンジン(それぞれ、104および112)を遂行し得る。ゲームエンジン104を使用するオンラインゲームサーバ102は、ゲームエンジン機能の一部またはすべてを実行(たとえば、物理コマンド、レンダリングコマンドなどを生成)してもよく、またはゲームエンジン機能の一部またはすべてをクライアントデバイス110のゲームエンジン104にオフロードしてもよい。いくつかの実装形態では、各ゲーム106は、オンラインゲームサーバ102上で実行されるゲームエンジン機能と、クライアントデバイス110上で実行されるゲームエンジン機能との間で異なる比率を有し得る。たとえば、オンラインゲームサーバ102のゲームエンジン104は、少なくとも2つのゲームオブジェクト間に衝突がある場合に物理コマンドを生成するために使用され得、一方、追加のゲームエンジン機能(たとえば、レンダリングコマンドの生成)は、クライアントデバイス110にオフロードされ得る。いくつかの実装形態では、オンラインゲームサーバ102およびクライアントデバイス110上で実行されるゲームエンジン機能の比率は、ゲームプレイ条件に基づいて(たとえば、動的に)変更され得る。たとえば、特定のゲーム106のゲームプレイに参加するユーザの数がしきい値数を超える場合、オンラインゲームサーバ102は、クライアントデバイス110によって以前に実行された1つまたは複数のゲームエンジン機能を実行し得る。
【0058】
たとえば、ユーザは、クライアントデバイス110上でゲーム106をプレイし得、制御命令(たとえば、右、左、上、下、ユーザ選択、またはキャラクタの位置および速度情報などのユーザ入力)をオンラインゲームサーバ102に送信し得る。クライアントデバイス110から制御命令を受信した後、オンラインゲームサーバ102は、制御命令に基づいて、ゲームプレイ命令(たとえば、レンダリングコマンド、衝突コマンドなどの、グループゲームプレイまたはコマンドに参加しているキャラクタの位置および速度情報)をクライアントデバイス110に送信し得る。たとえば、オンラインゲームサーバ102は、クライアントデバイス110のためのゲームプレイ命令を生成するために、制御命令に対して1つまたは複数の論理動作(たとえば、ゲームエンジン104を使用して)を実行し得る。他の例では、オンラインゲームサーバ102は、制御命令のうちの1つまたは複数を、あるクライアントデバイス110から、ゲーム106に参加している他のクライアントデバイス(たとえば、クライアントデバイス110aからクライアントデバイス110b)に渡し得る。クライアントデバイス110は、ゲームプレイ命令を使用して、クライアントデバイス110のディスプレイ上に提示するためにゲームプレイをレンダリングし得る。
【0059】
いくつかの実装形態では、制御命令は、ユーザのキャラクタのゲーム内アクションを示す命令を指す場合がある。たとえば、制御命令は、右、左、上、下、ユーザ選択、ジャイロスコープの位置および方向データ、力センサデータなどのゲーム内アクションを制御するためのユーザ入力を含み得る。制御命令は、キャラクタの位置および速度情報を含み得る。いくつかの実装形態では、制御命令は、オンラインゲームサーバ102に直接送信される。他の実装形態では、制御命令は、クライアントデバイス110から別のクライアントデバイスに(たとえば、クライアントデバイス110bからクライアントデバイス110nに)送信され得、他のクライアントデバイスは、ローカルゲームエンジン104を使用してゲームプレイ命令を生成する。制御命令は、音声通信メッセージまたはオーディオデバイス(たとえば、スピーカ、ヘッドホンなど)上の別のユーザからの他のサウンド、たとえば、本明細書で説明するオーディオ空間化技法を使用して生成される音声通信または他のサウンドを再生するための命令を含み得る。
【0060】
いくつかの実装形態では、ゲームプレイ命令は、クライアントデバイス110がマルチプレイヤゲームなどのゲームのゲームプレイをレンダリングすることを可能にする命令を指す場合がある。ゲームプレイ命令は、ユーザ入力(たとえば、制御命令)、キャラクタの位置および速度情報、またはコマンド(たとえば、物理コマンド、レンダリングコマンド、衝突コマンドなど)のうちの1つまたは複数を含み得る。
【0061】
いくつかの実装形態では、オンラインゲームサーバ102は、ユーザによって作成されたキャラクタをデータストア120に記憶し得る。いくつかの実装形態では、オンラインゲームサーバ102は、ユーザに提示され得るキャラクタカタログおよびゲームカタログを維持する。いくつかの実装形態では、ゲームカタログは、オンラインゲームサーバ102に記憶されたゲームの画像を含む。さらに、ユーザは、選択されたゲームに参加するために、キャラクタカタログからキャラクタ(たとえば、ユーザまたは他のユーザによって作成されたキャラクタ)を選択し得る。キャラクタカタログは、オンラインゲームサーバ102に記憶されたキャラクタの画像を含む。いくつかの実装形態では、キャラクタカタログ内のキャラクタのうちの1つまたは複数は、ユーザによって作成またはカスタマイズされた可能性がある。いくつかの実装形態では、選択されたキャラクタは、キャラクタのコンポーネントのうちの1つまたは複数を定義するキャラクタ設定を有する場合がある。
【0062】
いくつかの実装形態では、ユーザのキャラクタは、コンポーネントの構成を含むことができ、コンポーネントの構成および外観、より一般的にはキャラクタの外観は、キャラクタ設定によって定義され得る。いくつかの実装形態では、ユーザのキャラクタのキャラクタ設定は、少なくとも部分的にユーザによって選択され得る。他の実装形態では、ユーザは、デフォルトのキャラクタ設定または他のユーザによって選択されたキャラクタ設定でキャラクタを選択し得る。たとえば、ユーザは、あらかじめ定義されたキャラクタ設定を有するキャラクタカタログからデフォルトのキャラクタを選択し得、ユーザは、キャラクタ設定の一部を変更する(たとえば、カスタマイズされたロゴのシャツを追加する)ことによってデフォルトのキャラクタをさらにカスタマイズし得る。キャラクタ設定は、オンラインゲームサーバ102によって特定のキャラクタに関連付けられ得る。
【0063】
いくつかの実装形態では、クライアントデバイス110はそれぞれ、パーソナルコンピュータ(PC)、モバイルデバイス(たとえば、ラップトップ、モバイル電話、スマートフォン、タブレットコンピュータ、またはネットブックコンピュータ)、ネットワーク接続されたテレビ、ゲームコンソールなどのようなコンピューティングデバイスを含み得る。いくつかの実装形態では、クライアントデバイス110は、「ユーザデバイス」と呼ばれることもある。いくつかの実装形態では、1つまたは複数のクライアントデバイス110は、任意の時点でオンラインゲームサーバ102に接続し得る。クライアントデバイス110の数は、例示として提供されていることに留意されたい。いくつかの実装形態では、任意の数のクライアントデバイス110が使用され得る。
【0064】
いくつかの実装形態では、各クライアントデバイス110は、それぞれ、ゲームアプリケーション112のインスタンスを含み得る。一実施形態では、ゲームアプリケーション112は、オンラインゲームサーバ102によってホストされる仮想ゲーム内の仮想キャラクタを制御するなど、ユーザがオンラインゲームサーバ102を使用およびそれと相互作用すること、またはゲーム106、画像、ビデオアイテム、ウェブページ、ドキュメントなどのコンテンツを閲覧またはアップロードすることを可能にし得る。一例では、ゲームアプリケーションは、ウェブサーバによって提供されコンテンツ(たとえば、仮想環境内の仮想キャラクタなど)にアクセス、検索、提示、またはナビゲートすることができるウェブアプリケーション(たとえば、ウェブブラウザと連動して動作するアプリケーション)であり得る。別の例では、ゲームアプリケーションは、クライアントデバイス110に対してローカルにインストールおよび遂行され、ユーザがオンラインゲームサーバ102と相互作用することを可能にするネイティブアプリケーション(たとえば、モバイルアプリケーション、アプリ、またはゲームプログラム)であり得る。ゲームアプリケーションは、コンテンツ(たとえば、ウェブページ、メディアビューア)をユーザにレンダリング、表示、または提示し得る。ある実装形態では、ゲームアプリケーションはまた、ウェブページに埋め込まれる埋め込まれたメディアプレイヤ(たとえば、フラッシュ(登録商標)プレイヤ)を含み得る。
【0065】
本開示の態様によれば、ゲームアプリケーションは、ユーザがコンテンツを構築、作成、編集、オンラインゲームサーバ102にアップロードするだけでなく、オンラインゲームサーバ102と相互作用する(たとえば、オンラインゲームサーバ102によってホストされるゲーム106をプレイする)ためのオンラインゲームサーバプリケーションであり得る。したがって、ゲームアプリケーションは、オンラインゲームサーバ102によってクライアントデバイス110に提供され得る。別の例では、ゲームアプリケーションは、サーバからダウンロードされるアプリケーションであり得る。
【0066】
いくつかの実装形態では、各開発者デバイス130は、それぞれ、ゲームアプリケーション132のインスタンスを含み得る。一実施形態では、ゲームアプリケーション132は、オンラインゲームサーバ102によってホストされる仮想ゲーム内の仮想キャラクタを制御するなど、開発者ユーザがオンラインゲームサーバ102を使用およびそれと相互作用すること、またはゲーム106、画像、ビデオアイテム、ウェブページ、ドキュメントなどのコンテンツを閲覧またはアップロードすることを可能にし得る。一例では、ゲームアプリケーションは、ウェブサーバによって提供されコンテンツ(たとえば、仮想環境内の仮想キャラクタなど)にアクセス、検索、提示、またはナビゲートすることができるウェブアプリケーション(たとえば、ウェブブラウザと連動して動作するアプリケーション)であり得る。別の例では、ゲームアプリケーションは、開発者デバイス130に対してローカルにインストールおよび遂行され、ユーザがオンラインゲームサーバ102と相互作用することを可能にするネイティブアプリケーション(たとえば、モバイルアプリケーション、アプリ、またはゲームプログラム)であり得る。ゲームアプリケーションは、コンテンツ(たとえば、ウェブページ、メディアビューア)をユーザにレンダリング、表示、または提示し得る。ある実装形態では、ゲームアプリケーションはまた、ウェブページに埋め込まれる埋め込まれたメディアプレイヤ(たとえば、フラッシュ(登録商標)プレイヤ)を含み得る。
【0067】
本開示の態様によれば、ゲームアプリケーション132は、ユーザがコンテンツを構築、作成、編集、オンラインゲームサーバ102にアップロードするため、ならびにオンラインゲームサーバ102と相互作用する(たとえば、オンラインゲームサーバ102によってホストされるゲーム106を提供および/またはプレイする)ためのオンラインゲームサーバプリケーションであり得る。したがって、ゲームアプリケーションは、オンラインゲームサーバ102によって開発者デバイス130に提供され得る。別の例では、ゲームアプリケーション132は、サーバからダウンロードされるアプリケーションであり得る。ゲームアプリケーション132は、オンラインゲームサーバ102と相互作用し、ゲーム開発者によって開発、ホスト、または提供される1つまたは複数のゲーム106のユーザ資格情報、ユーザ通貨などへのアクセスを取得するように構成され得る。
【0068】
いくつかの実装形態では、ユーザは、ゲームアプリケーションを介してオンラインゲームサーバ102にログインし得る。ユーザは、ユーザアカウント情報(たとえば、ユーザ名およびパスワード)を提供することによってユーザアカウントにアクセスし得、ユーザアカウントは、オンラインゲームサーバ102の1つまたは複数のゲーム106に参加するために利用可能な1つまたは複数のキャラクタに関連付けられる。いくつかの実装形態では、適切な資格情報があれば、ゲーム開発者は、他のユーザによって所有される、または関連付けられているプラットフォーム内通貨(たとえば、仮想通貨)、アバタ、特殊能力、アクセサリなどのゲーム仮想ゲームオブジェクトへのアクセスを取得し得る。
【0069】
一般に、オンラインゲームサーバ102によって実行されるものとして一実装形態で説明される機能はまた、適切な場合、他の実装形態では、クライアントデバイス110またはサーバによっても実行することができる。さらに、特定のコンポーネントに起因する機能は、一緒に動作する異なるコンポーネントまたは複数のコンポーネントによって実行することができる。オンラインゲームサーバ102はまた、適切なアプリケーションプログラミングインターフェース(API)を通じて他のシステムまたはデバイスに提供されるサービスとしてアクセスすることができ、したがって、ウェブサイトにおける使用に限定されない。いくつかの実装形態では、オンラインゲームサーバ102は、
図3、
図4、および
図5に示されるフローチャートに関連して、以下に説明される動作のうちの1つまたは複数を実行し得る。
【0070】
いくつかの実装形態では、オンラインゲームサーバ102は、グラフィックエンジン108を含み得る。いくつかの実装形態では、グラフィックエンジン108は、オンラインゲームサーバ102がグラフィックおよびアニメーション機能を提供することを可能にするシステム、アプリケーション、またはモジュールであり得る。
【0071】
図2Aは、いくつかの実装形態による、ゲームの例示的なリストを示す図である。
【0072】
オンラインゲームサーバ102は、ゲームプラットフォーム上で利用可能なゲームの1つまたは複数のリストを生成し得る。ゲームの1つまたは複数のリストを含むユーザインターフェースがユーザに提供され得る。ゲームの各リストは、リスト固有の基準に基づいてソートされた複数のゲームを含み得る。ゲームのソートされたリストは、ゲームソートと呼ばれ得る。ゲームソート(または、ゲームリスト)は、たとえば、オンラインゲームサーバ102によって、ユーザによるゲーム選択を可能にするために、ゲームプラットフォーム上で利用可能なゲームから生成され得る。
【0073】
いくつかの実装形態では、ゲームソートは、たとえば、現在プレイしているユーザの数が最も多い(「人気のあるゲーム」)、最近参加したユーザの数が最も多い(「トレンドゲーム」)などの人気、たとえば、仮想ゲームアイテムの購入数または購入額が最も多いゲームなどの収益の創出、たとえば、冒険、社会的などの分類法、明示的に示されたユーザ嗜好(たとえば、「アドベンチャゲームが好き」)またはユーザの許可を得たゲームプラットフォーム上のユーザアクティビティから暗黙的に派生したもの(ユーザAはレーシングゲームが好きなど)に基づくパーソナライズされたリストなどに基づいて、様々なゲームカテゴリに分類され得る。
【0074】
いくつかの実装形態では、ゲームのカテゴリ(220)は、ユーザに宣伝(強調表示)され得る。カテゴリの例は、人気のあるゲーム(220a)、トップのソーシャルゲーム(220b)、トップのアドベンチャゲーム(220c)、ユーザに推奨されるゲーム(220n)などを含み得る。各カテゴリは、個々のゲームのリスト(たとえば、230)を含み得る。いくつかの実装形態では、ゲームソートは、ユーザインターフェースを介したユーザの初期表示において宣伝され得る。
【0075】
ゲームを強調表示すると、ユーザは利用可能なゲームを簡単にナビゲートし、興味のあるゲームを発見し、プラットフォーム上で利用可能なすべてのゲームから好みのゲームを選択できるようになる。
【0076】
いくつかの実装形態では、一度に約10個のゲームソートを生成するゲームソート生成システムが利用され得、各ゲームソートは200個のゲームを含み得る。
【0077】
図2Bは、いくつかの実装形態による、ゲームのソートに関連付けられるデータ構造を示す図である。データ構造は、データストア120に記憶され得る。いくつかの実装形態では、データ構造は、ゲームサーバ内に記憶され得る。いくつかの実装形態では、データ構造(または、データ構造のバージョン)は、クラウドまたはクライアントデバイス110に記憶され得る。
【0078】
図2Bに示される例示的な例では、ゲームソートからの結果が示されている。トークン、名前、トークンの有効期間などのフィールドを含む例示的なソート(240)が示されている。
【0079】
いくつかの実装形態では、そのカテゴリにおけるゲームのリストを検索するために、トークン(250a、250b)が使用され得る。
図2Bに示される例示的な例では、トークン「T123456」(250a)は「人気のあるゲーム」のカテゴリに関連付けられており、「ダンジョンと恐竜」、「王位の王国」、および「骨のゲーム」のゲームが含まれている。
【0080】
図2Bには3つのゲームが示されているが、ゲームソートは、より多数のゲーム、たとえば、100、500、1000個などのゲームを含み得、特定のゲームの選択を可能にするユーザインターフェースをユーザに提示するために利用され得る。
【0081】
いくつかの実装形態では、ゲームソートは、ゲームソートを生成するコンピューティングデバイスにクエリを実行することによって利用できる場合がある。いくつかの実装形態では、ゲームソート生成は、
図1に関して説明したゲームエンジン104によって実行され得る。クエリは、ブラウザクエリを介して、またはアプリケーションプログラムインターフェース(API)を介して送信され得る。
【0082】
いくつかの実装形態では、ゲームソートは定期的に更新される。たとえば、新しいゲームソートは、60分ごとに、またはゲームプラットフォームの所有者または管理者によって決定された他の何らかの定期的な間隔で生成され得る。いくつかの実装形態では、ゲームソートは、1秒、10秒、60秒、1日などごとに生成され得る。安全なゲーム環境を提供するために、いくつかの実装形態では、悪意のあるゲームを検出するための技法が、最速のゲームソートカテゴリが更新される時間期間内に悪意のあるゲームの検出を実行できるように実装され得る。いくつかの実装形態では、ゲームのソートは、ユーザからのソート更新要求に基づいて更新され得る。
【0083】
図3は、いくつかの実装形態による、キーワードに基づいて悪意のあるゲームを検出するための例示的な方法300を示す流れ図である。いくつかの実装形態では、方法300は、たとえば、
図1を参照して説明したゲームサーバ102上で実装することができる。
【0084】
処理はブロック310において始まり、そこでゲームソートのリストが取得される。たとえば、ゲームソートのリストは、ゲームプラットフォーム上のゲームソートのうちの1つまたは複数を含み得る。いくつかの実装形態では、ゲームソートのリストは、ゲームソートのリストが生成または記憶されているコンピューティングデバイスまたはデータベースにクエリを実行することによって取得され得る。ブロック310の後にブロック315が続く場合がある。
【0085】
ブロック315において、ゲームソートの特定のゲームソートが選択される。いくつかの実装形態では、ゲームソートのリストは、ゲームソートごとの優先度値を含み得る。たとえば、「トップレート」および「人気のある」ゲームソートには、他のゲームソートよりも高い優先度の値が割り当てられ、他のゲームソートの前に選択され得る。いくつかの実装形態では、ゲームソートは、ユーザ設定または以前のユーザ履歴に基づいて選択される。いくつかの実装形態では、ゲームソートの選択は、ゲームソートのそれぞれの生成時間に基づく。いくつかの実装形態では、ゲームソートの選択は、ゲームソートの生成時間の降順で進行し得、たとえば、以前に生成されたゲームソートは、後で生成されたゲームソートの前に選択され得る。いくつかの実装形態では、ゲームソートの選択は、ゲームソートの生成時間の昇順で進行し得、たとえば、後で生成されたゲームソートは、以前に生成されたゲームソートの前に選択される。
【0086】
たとえば、ゲームのリストは、ゲームプラットフォーム全体で共通のリストである場合がある。別の例では、ゲームのリストは、特定のユーザのためにカスタマイズされた(たとえば、プレイされたゲームの以前のユーザ履歴、ユーザの嗜好などに基づく)リストであり得る。
【0087】
いくつかの実装形態では、API呼出しを介して、プラットフォーム上で現在強調表示(宣伝)されているゲームの名前、たとえば、人気のあるゲームのリスト、収益の高いゲームのリストなどを定期的に検索するスキャンシステムが利用され得る。いくつかの実装形態では、リストには、ゲームプラットフォーム上で現在強調表示(宣伝)されているゲームを含み得る。ブロック315の後にブロック320が続く場合がある。
【0088】
ブロック320において、選択したゲームソートに含まれるゲームのリストが取得される。たとえば、ゲームのリストは、各ゲームソート内で順序付けられたゲームタイトルを含み得る。たとえば、ゲームA、B、およびCが2つの異なるゲームソートにおいて表示される場合、ランク付け基準に基づいて、ゲームソートごとに順序が異なる場合がある。たとえば、ゲームは、「人気のあるゲーム」ゲームソートにおいてはA-B-Cに、「トレンドゲーム」のゲームソートにおいては「B-A-C」に順序付けられてよい。ブロック320の後に、特定のゲームが選択されるブロック325が続く場合がある。いくつかの実装形態では、チケットが特定のゲームのために以前に作成されたかどうかが決定され得る。特定のゲームのためにチケットが以前に作成されている場合、処理はブロック325からブロック370に進むことができ、作成されていない場合、ブロック325の後にブロック330が続く場合がある。
【0089】
ブロック330において、ゲーム名は、知られている悪意のあるゲームに関連付けられるキーワードとゲーム名を比較することによってテストされる。いくつかの実装形態では、比較は正規表現(regexp)を使用したマッチングプロセスを利用する。いくつかの実装形態では、ゲーム名(および/またはその変形)と知られている悪意のあるゲームに関連付けられるキーワードとの一致は、ゲームが悪意のある可能性のあるゲームであることを示している可能性がある。たとえば、キーワードのセットはまた、識別されたキーワードのセットの変形、スペルのバリエーション、大文字/小文字のバリエーション、置換英数字の使用(たとえば、Robuxの代わりに、「R0bucks」、「R0bux」、「Robucks」、「Robuck」、「Roebux」または「Robuck$」)、拡張ISO文字セット(たとえば、英語の文字に似たギリシャ語/ローマ字/キリル文字)の使用などを含み得る。いくつかの実装形態では、キーワードは、不快な言葉や冒とく的な言葉が含むか、たとえば、露骨な内容、暴力などを指す場合がある。
【0090】
いくつかの実装形態では、知られている悪意のあるゲームに関連付けられるキーワードは、ゲームプラットフォーム上で以前に検出された悪意のあるゲームから自動的に派生する場合がある。たとえば、キーワードは、悪意のあるゲームの検出/確認をもたらした以前に生成された(以前の)チケットに基づいて生成されるか、基づいている場合がある。いくつかの実装形態では、キーワードの生成は、悪意のあるものとしてフラグが立てられたプラットフォーム上のゲームから自動的に派生する場合がある。いくつかの実装形態では、キーワードの生成は人間がキュレートする場合がある。たとえば、設定されたキーワードが自動的に生成され得、自動生成されたキーワードに対するユーザの応答を示すユーザ入力が(たとえば、ゲームサーバ102またはゲームエンジン104によって)受信され得る。キーワードは、たとえば、データストア120に記憶され得る。いくつかの実装形態では、キーワードは、人間がキュレートした処理と自動処理の組合せを使用して生成され得る。ブロック330の後にブロック340が続く場合がある。
【0091】
ブロック340において、ゲーム名が知られている悪意のあるゲームに関連付けられるキーワードと一致するかどうかが決定される。いくつかの実装形態では、キーワードは、ゲームが悪意のある可能性がある可能性を示すメトリックに関連付けられている場合がある。たとえば、特定のキーワードは、ゲームが高い確率で悪意のある可能性があることを示している可能性がある。いくつかの実装形態では、ゲーム名における単語が1つ一致すると、悪意のある可能性があるとしてゲームにフラグを立てることをトリガし得るが、ゲーム名に他の特定のキーワードも存在する場合、他のキーワードが悪意のある可能性があるとしてゲームにフラグを立てることをトリガし得る。たとえば、「R0buck$」は、他のキーワードが一致するかどうかに関係なく自動トリガする必要があるが、「素晴らしい車をレースし、Robuxをより早く獲得し、最高のレーサに参加する」は、「素晴らしい車」と「最高のレーサ」の両方がキーワードである場合にのみ一致する可能性がある。
【0092】
ゲーム名とキーワードとの一致がしきい値一致レベルを満たしている場合、ゲームは悪意のある可能性のあるゲームとしてフラグが立てられ、処理はブロック350に進む。それ以外の場合、ブロック340の後にブロック370が続く。
【0093】
ブロック350において、特定のゲームのチケットがあらかじめ定められたウィンドウにおいて作成されたかどうか、および悪意のある可能性のあるゲームの前回のチケット作成時間からあらかじめ定められた時間期間が経過したかどうかがチェックされる。
【0094】
いくつかの実装形態では、同じ悪意のある可能性のあるゲームに繰返しフラグを立てることを回避するために、あらかじめ定められたウィンドウが利用され得る。問題の悪意のある可能性のあるゲームのチケットがすでに作成されているかどうかを確認するために、チケットシステムによってチェックが実行される。いくつかの実装形態では、たとえば、各チケットを評価する人間のサポートスタッフまたはアルゴリズムによってチケットを処理することができるレートを示す処理レートが決定され得、レートは、あらかじめ定められたウィンドウの期間を決定するために考慮される。あらかじめ定められたウィンドウ中にチケットが作成された状況では、同じ悪意のある可能性のあるゲームの追加のチケットは、あらかじめ定められた時間(数分、数時間、または数日であり得る)が経過するまで作成されない。
【0095】
いくつかの実装形態では、悪意のある可能性のあるゲームに関連付けられる前のチケット作成時間からあらかじめ定められた時間期間が経過したことを確認すると、存続時間(TTL)キャッシュが利用される可能性がある。TTLキャッシュは、以前に作成されたチケットが記憶される時間を制限する。いくつかの実装形態では、TTLキャッシュは、以前に作成されたチケットに関連付けられるデータレコードに付加されたカウンタまたはタイムスタンプとして実装され得る。
【0096】
いくつかの実装形態では、あらかじめ定められた時間期間内に悪意のある可能性のあるゲームに対して以前に作成されたチケットは、その後のチェックにおいて悪意のある可能性があるとしてゲームにフラグが立てられたことを示すために拡張または変更される場合がある。いくつかの実装形態では、チケットは、実行されたチェックのタイプのインジケータで拡張され得る。いくつかの実装形態では、作成されたチケットの優先度は、悪意のある可能性があるとしてゲームにフラグを立てたいくつかのチェックに基づいて調整され得る。いくつかの実装形態では、作成されたチケットの優先度は、悪意のある可能性のあるゲームを含むゲームソートの数に基づいて調整され得る。
【0097】
ブロック350において、特定のゲームのチケットがあらかじめ定められたウィンドウ内に作成されていないと決定された場合、ブロック350の後にブロック360が続く。そうでない場合、ブロック350の後にブロック370が続く。
【0098】
悪意のある可能性のあるゲームのチケットは、ブロック360において作成される。いくつかの実装形態では、チケットは、悪意のある可能性のあるゲームを識別し、悪意のある可能性のあるゲームの1つまたは複数の記述子を含む。
【0099】
いくつかの実装形態では、ゲームに関する詳細は、スキャンシステムによって別のチケットシステムに渡され、このシステムは、サポートまたはタスクシステムにおいてチケット(作業項目)を作成し、ゲームプラットフォームに関連付けられるスタッフに、問題の悪意のある可能性のあるゲームを確認して適切なアクションを実行するよう警告する。
【0100】
いくつかの実装形態では、記述子は、悪意のある可能性のあるゲームのタイトル、悪意のある可能性のあるゲームの所有者、悪意のある可能性のあるゲームの所有者のアカウントへのリンク、悪意のある可能性のあるゲームへのユニフォームリソースロケータ(URL)、悪意のある可能性のあるゲームの賛成票または反対票の数、およびリストの生成時に悪意のある可能性のあるゲームのプレイヤ数を含み得る。
【0101】
いくつかの実装形態では、悪意のある可能性のあるゲームは、ゲームのリストを表示するユーザインターフェースを生成する前に、ゲームのリストから削除され得る。いくつかの実装形態では、悪意のある可能性のあるゲームがユーザ選択の対象外になる場合がある。
【0102】
いくつかの実装形態では、悪意のある可能性のあるゲームに、より低い重みが割り当てられ、より低い優先度で表示される可能性がある(たとえば、目立たない、最初に割り当てられたランクが低いなど)。いくつかの実装形態では、悪意のある可能性のあるゲームは、「悪意のある可能性がある」と示される場合がある。いくつかの実装形態では、現在参加している(ゲームをプレイしている)ユーザは、ゲームの悪意がある恐れがある性質について警告を受ける場合がある。ブロック360の後にブロック370が続く場合がある。
【0103】
ブロック370において、テストするゲームソートから追加のゲームがあるかどうかが決定される。追加のゲームがある場合、ブロック370の後にブロック325が続き、追加のゲームがない場合、ブロック370の後にブロック380が続く。
【0104】
ブロック380において、テストのために考慮されるべき追加のゲームソートがあるかどうかが決定される。追加のゲームソートがある場合、ブロック380の後にブロック390が続き、追加のゲームソートがない場合、ブロック380の後にブロック310が続く。
【0105】
テストされる追加のゲームソートがある場合、テストのための次のゲームソートがブロック390において選択される。処理は、選択されたゲームソート内のゲームの選択でブロック320に続く。
【0106】
ブロック310~390は、上記とは異なる順序で実行(または、反復)することができ、および/または1つまたは複数のステップを省略することができる。たとえば、ブロック360が実行され得、ゲームソート内のすべてのゲームがチェックされた後、またはすべてのゲームソートが悪意のある可能性のあるゲームについてチェックされた後に、すべての検出された悪意のある可能性のあるゲームに対してチケットが生成され得る。
【0107】
いくつかの実装形態では、ブロック350は省略されてもよく、ブロック340の後にブロック360が続く場合がある。これらの実装形態では、重複したチケットが作成され得る。
【0108】
いくつかの実装形態では、ブロック315において複数のゲームソートが選択され得、選択したゲームソートごとに、ブロック320~380が並行して実行され得る。いくつかの実装形態では、ブロック325において複数のゲームが選択され得、選択したゲームごとに、ブロック330~370が並行して実行され得る。この方法でいくつかのブロックを並行して実行すると、たとえば、悪意のあるゲームであるかどうかを決定するために複数のゲームが実質的に同時に分析されるため、悪意のあるゲームを検出する時間が短縮され得る。いくつかの実装形態では、方法300のブロックは、
図3に示される順序で実行され得る。たとえば、この方法で本方法を実行すると、たとえ利用可能な計算リソースの量が限られている場合でも、悪意のあるゲームの検出を実行できる可能性がある。
【0109】
いくつかの実装形態では、不快なコンテンツを含む可能性のあるゲームを検出して、そのようなコンテンツへのユーザクセスを軽減するために、ゲームプラットフォーム上のすべてのゲーム(プラットフォーム上で強調表示されているゲームだけでなく)があらかじめ定められた頻度(たとえば、毎日、隔日、毎時など)でスキャンされ得る。
【0110】
図4は、いくつかの実装形態による、運動量メトリックに基づいて悪意のあるゲームを検出するための例示的な方法400を示すフローチャートである。いくつかの実装形態では、方法400は、たとえば、
図1を参照して説明したゲームサーバ102によって実装することができる。
【0111】
処理はブロック410において始まり、そこでゲームソートのリスト(たとえば、ゲームソート240と同様)が取得され、ブロック415においてゲームソートのうちの1つが選択される。いくつかの実装形態では、ゲームソートのリストは、ゲームソートのリストが生成または記憶されるコンピューティングデバイスまたはデータベースにクエリを実行することによって取得され得る。
【0112】
いくつかの実装形態では、ゲームのリストは、ゲームプラットフォーム全体で共通のリストである場合がある。いくつかの実装形態では、ゲームのリストは、特定のユーザのためにカスタマイズされた(たとえば、プレイされたゲームの以前のユーザ履歴、ユーザの嗜好などに基づく)リストであり得る。
【0113】
いくつかの実装形態では、リストには、ゲームプラットフォーム上で現在強調表示(宣伝)されているゲーム(たとえば、
図2に関して説明したリスト220に含まれるゲームと同様)を含み得る。ブロック415の後にブロック420が続く場合がある。
【0114】
ブロック420において、選択されたゲームソートのゲームのリストが取得され、選択されたゲームソートから特定のゲームが425において選択される。
【0115】
いくつかの実装形態では、チケットが特定のゲームのために以前に作成されたかどうかが決定され得る。特定のゲームのためにチケットが以前に作成されている場合、処理はブロック425からブロック470に進むことができ、作成されていない場合、ブロック425の後にブロック430が続く場合がある。
【0116】
ブロック430において、選択されたゲーム(ブロック425において選択されたゲーム)をプレイするユーザのプレイヤ参加プロファイル(ユーザ参加プロファイル)が取得される。プレイヤ参加プロファイルは、ゲームをプレイしているプレイヤの数に関する情報、およびプレイヤの参加時間に関する情報を提供する時間ベースのプロファイルであり得る。いくつかの実装形態では、プレイヤの参加プロファイルには、ゲームのプレイヤの参加率(速度)を示すメトリックを含み得る。いくつかの実装形態では、プレイヤの参加プロファイルは、ゲームのプレイヤに関するデータを含み得る。いくつかの実装形態では、ユーザの地理的分布が取得され得る。たとえば、ユーザに関連付けられる認証の詳細、ユーザに関連付けられるIPアドレス、地理的位置情報などが取得され、プロファイル情報に参加するプレイヤの一部として利用され得る。ブロック430の後にブロック440が続く場合がある。
【0117】
ブロック440において、取得されたプレイヤ参加プロファイルは、悪意のある可能性のあるゲームを示すプレイヤ参加プロファイルのあらかじめ定められた基準と比較される。
【0118】
いくつかの実装形態では、ゲームのプロファイルパラメータがしきい値プロファイルと比較される。いくつかの実装形態では、プロファイルパラメータは、ゲーム人気の変化率を示す。プレイヤの参加プロファイル(ゲームの「速度プロファイル」)は、ゲームの悪意のある可能性のある性質を示している場合があり、たとえば、すぐに人気があるように見えるゲームは、ゲームに参加し、それによって他のユーザをゲームに誘い込むために作成された「偽のアカウント」を使用するなどして操作されたゲームである可能性がある。
【0119】
いくつかの実装形態では、ゲームがリストに突然表示される、および/または、リストに最初に表示されるときにゲーム内に多数のプレイヤがいる場合、プロファイルに参加しているプレイヤと一致するゲームは悪意のある可能性のあるゲームであると考えられる。
【0120】
いくつかの実装形態では、ゲームプラットフォームにおいて最も人気のあるゲーム(たとえば、上位1000ゲーム、上位10,000ゲームなど)のリストが維持され、多数の新規登録を検出するために、ゲームごとの新規ユーザの数において検出された急速な上昇の動きが追跡される。いくつかの実装形態では、以前に記録されたゲームの履歴パターンの範囲外であるサインアップ頻度の変化を検出するために、しきい値が利用され得る。しきい値は、記録および記憶された以前の履歴に基づく場合がある。いくつかの実装形態では、異なるしきい値が異なるゲームソートに利用され得、報告精度のレベルに基づく場合がある。
【0121】
いくつかの実装形態では、人気のあるゲームのリスト上でのゲームの突然の出現の測定値は、プロファイルパラメータとして利用され得る。たとえば、最も人気のある100のゲームのリストが特定の頻度(たとえば、毎時、毎日など)で生成される場合、ゲームがリストの低い位置でリストに入り、後続の各生成においてリスト内を移動するのは正常であり得る。したがって、トップ10のゲームに直接出現するゲームは、人気のあるゲームのリストに突然出現したと決定され得る。他のタイプのリストにおいては、突然の出現を決定するために、リストに固有の他の基準(たとえば、ゲームの収益、アクティブなプレイヤ、ゲーム内のアイテムの購入など)が使用され得る。
【0122】
いくつかの実装形態では、人気のあるゲームのリストにゲームが最初に出現した時点でのゲームに関連付けられるプレイヤの数の測定値は、プロファイルパラメータとして利用され得る。
【0123】
いくつかの実装形態では、複数のプロファイルパラメータが利用され得る。たとえば、いくつかの実装形態では、ゲームの最初の出現時にゲームに関連付けられるプレイヤの数の測定値が、ゲームの突然の出現の測定値と組み合わせて利用され得る。
【0124】
ブロック440において、取得されたプレイヤ参加プロファイルがプレイヤ参加プロファイルのあらかじめ定められた基準を満たしている場合、処理はブロック450に続く。満たしていない場合、ブロック440の後にブロック470が続く。
【0125】
ブロック450において、特定のゲームのチケットがあらかじめ定められたウィンドウにおいて作成されたかどうか、および悪意のある可能性のあるゲームの前回のチケット作成時間からあらかじめ定められた時間期間が経過したかどうかがチェックされる。
【0126】
いくつかの実装形態では、悪意のある可能性のあるゲームに関連付けられる前回のチケット作成時間からあらかじめ定められた時間期間が経過したことを確認すると、TTLキャッシュが利用され得る。
【0127】
ブロック450において、特定のゲームのチケットがあらかじめ定められたウィンドウ内に作成されていないと決定された場合、ブロック450の後に460が続く。それ以外の場合、ブロック450の後に470が続く。
【0128】
悪意のある可能性のあるゲームのチケットは、ブロック460において作成される。いくつかの実装形態では、チケットは、悪意のある可能性のあるゲームを識別し、悪意のある可能性のあるゲームの1つまたは複数の記述子を含む。
【0129】
いくつかの実装形態では、ゲームに関する詳細は、スキャンシステムによって別のチケットシステムに渡され、このシステムは、サポートまたはタスクシステムにおいてチケット(作業項目)を作成し、ゲームプラットフォームに関連付けられるスタッフに、問題の悪意のある可能性のあるゲームを確認して適切なアクションを実行するよう警告する。
【0130】
いくつかの実装形態では、記述子は、悪意のある可能性のあるゲームのタイトル、悪意のある可能性のあるゲームの所有者、悪意のある可能性のあるゲームの所有者のアカウントへのリンク、悪意のある可能性のあるゲームへのユニフォームリソースロケータ(URL)、悪意のある可能性のあるゲームの賛成票または反対票の数、およびリストの生成時に悪意のある可能性のあるゲームのプレイヤ数を含み得る。
【0131】
いくつかの実装形態では、悪意のある可能性のあるゲームは、ゲームのリストを表示するユーザインターフェースを生成する前に、ゲームのリストから削除され得る。いくつかの実装形態では、悪意のある可能性のあるゲームがユーザ選択の対象外になる場合がある。
【0132】
いくつかの実装形態では、悪意のある可能性のあるゲームに、より低い重みが割り当てられ、より低い優先度で表示される可能性がある(たとえば、目立たない、最初に割り当てられたランクが低いなど)。いくつかの実装形態では、悪意のある可能性のあるゲームは、「悪意のある可能性がある」と示される場合がある。いくつかの実装形態では、現在参加している(ゲームをプレイしている)ユーザは、ゲームの悪意がある恐れがある性質について警告を受ける場合がある。ブロック460の後にブロック470が続く場合がある。
【0133】
ブロック470において、テストするゲームソートから追加のゲームがあるかどうかが決定される。追加のゲームがある場合、ブロック470の後にブロック425が続き、追加のゲームがない場合、ブロック470の後にブロック480が続く。
【0134】
ブロック480において、テストのために考慮されるべき追加のゲームソートがあるかどうかが決定される。追加のゲームソートがある場合、ブロック480の後にブロック490が続き、追加のゲームソートがない場合、ブロック480の後にブロック410が続く。
【0135】
テストされる追加のゲームソートがある場合、テストのための次のゲームソートがブロック490において選択される。処理は、選択されたゲームソート内のゲームの選択でブロック420に続く。
【0136】
ブロック410~490は、上記とは異なる順序で実行(または、反復)することができ、および/または1つまたは複数のステップを省略することができる。たとえば、ブロック460が実行され得、ゲームソート内のすべてのゲームがチェックされた後、またはすべてのゲームソートが悪意のある可能性のあるゲームについてチェックされた後に、すべての検出された悪意のある可能性のあるゲームに対してチケットが生成され得る。
【0137】
いくつかの実装形態では、ブロック415において複数のゲームソートが選択され得、選択したゲームソートごとに、ブロック420~480が並行して実行され得る。いくつかの実装形態では、ブロック425において複数のゲームが選択され得、選択したゲームごとに、ブロック430~470が並行して実行され得る。この方法でいくつかのブロックを並行して実行すると、たとえば、悪意のあるゲームであるかどうかを決定するために複数のゲームが実質的に同時に分析されるため、悪意のあるゲームを検出する時間が短縮され得る。いくつかの実装形態では、方法400のブロックは、
図4に示される順序で実行され得る。たとえば、この方法で本方法を実行すると、たとえ利用可能な計算リソースの量が限られている場合でも、悪意のあるゲームの検出を実行できる可能性がある。
【0138】
いくつかの実装形態では、不快なコンテンツを含む可能性のあるゲームを検出して、そのようなコンテンツへのユーザクセスを軽減するために、ゲームプラットフォーム上のすべてのゲーム(プラットフォーム上で強調表示されているゲームだけでなく)があらかじめ定められた頻度(たとえば、毎日、隔日、毎時など)でスキャンされ得る。
【0139】
いくつかの実装形態では、悪意のある可能性のあるゲームは、ゲームのリストから1つまたは複数のゲームを含むユーザインターフェースを生成するステップの前に、ゲームのリストから削除され得る。
【0140】
図5は、いくつかの実装形態による、加重メトリックに基づいて悪意のあるゲームを検出する方法500を示すフローチャートである。
【0141】
重み付けメトリックベースの方法は、自動アカウント(たとえば、ボットアカウント)を採用する悪意のあるゲーム、または悪意のあるゲームの人気を高めるために有利な評価を提供する偽のアカウントの検出に特に効果的である。
【0142】
いくつかの実装形態では、方法500は、たとえば、
図1を参照して説明したゲームサーバ102上で実装することができる。
【0143】
処理はブロック510において始まり、そこでゲームソートのリスト(たとえば、ゲームソート240と同様)が取得される。処理はブロック515に進み、そこでゲームソートが選択される。いくつかの実装形態では、ゲームソートのリストは、ゲームソートのリストを記憶するデータベース、またはゲームソートのリストを生成するコンピューティングデバイスにクエリを実行することによって取得され得る。ブロック515の後にブロック520が続く場合がある。
【0144】
ブロック520において、選択されたゲームソートのゲームのリストが取得される。処理はブロック525に続き、そこで、選択されたゲームソートから特定のゲームが選択される。ブロック525の後にブロック530が続く場合がある。
【0145】
ブロック530において、ゲームの第1のスコアが、有料ユーザから受け取ったフィードバックメトリック(ユーザから受け取った評価、たとえば、いいね(likes)、よくないね(dislikes)、賛成票、反対票など)に基づいて計算される。ゲームプラットフォーム上の以前のユーザ履歴に基づいて、有料または無料としてのユーザのステータスを示すために、データ構造(たとえば、データストア120に記憶されている)が利用され得る。いくつかの実装形態では、第1のスコアは、ユーザがそれぞれのゲームに出入りするときに計算される。
【0146】
いくつかの実装形態では、しきい値支出額は、ユーザが有料ユーザであるかどうかを決定するために使用され得る。いくつかの実装形態では、ユーザが有料ユーザであるかどうかを決定するために、以前のユーザ支出のパターンが利用され得る。いくつかの実装形態では、評価は、フィードバックメトリック(たとえば、ゲームのユーザのうちの1人からゲームに対して受け取った賛成票または反対票)を含み得る。ブロック530の後にブロック535が続く場合がある。
【0147】
ブロック535において、ゲームの第2のスコアが、無料ユーザから受け取ったフィードバックメトリックに基づいて計算される。いくつかの実装形態では、ゲームの第2のスコアは、有料ユーザと無料ユーザを含むすべてのユーザから受け取ったフィードバックメトリックに基づいて計算される。いくつかの実装形態では、有料ユーザと非有料ユーザは、プラットフォームレベルで決定される場合があり、たとえば、ユーザがプラットフォームに支払いを行った場合(たとえば、ゲームアイテム、アバタ、アクセサリなどを購入する場合)、ユーザは有料ユーザとして分類される場合があり、そうでない場合、ユーザは無料ユーザとして分類される場合がある。いくつかの実装形態では、有料ユーザと無料ユーザの分類は、ゲームカテゴリレベル(たとえば、アクションゲームの有料ユーザ)、個々のゲームレベルなどで実行され得る。いくつかの実装形態では、知られている悪意のあるゲームにおいて支払いを行い、他のゲームにおいて支払いを行わなかったユーザからのフィードバックメトリックは、第2のスコアの計算から除外される場合がある。
【0148】
いくつかの実装形態では、第1のスコアと第2のスコアはそれぞれ、受信したフィードバックメトリックに基づいて計算されたウィルソンスコア間隔である可能性がある。いくつかの実装形態では、0.95の信頼レベル値が、有料ユーザから受け取ったフィードバックのために利用され得る。いくつかの実装形態では、信頼レベル値0は、無料ユーザから受け取ったフィードバックのために利用され得る。いくつかの実装形態では、他の値が信頼値のために利用され得る。ブロック535の後にブロック540が続く場合がある。
【0149】
ブロック540において、ゲームの品質基準は、第1のスコアと第2のスコアを集計することによって計算される。いくつかの実装形態では、フィードバックメトリックは、第1のスコアを計算する前に、メトリックの重みによって(たとえば、有料のユーザメトリックの重みによって)重み付けされる場合がある。いくつかの実装形態では、第1のスコアは、品質指標を計算する前に、スコアの重みによって(たとえば、有料のユーザスコアの重みによって)重み付けされる場合がある。
【0150】
いくつかの実装形態では、有料ユーザに適用される重みと無料ユーザに適用される重みの比率(有料ユーザの重みの比率)は、1から1000の間であり得る。いくつかの実装形態では、有料ユーザから受け取った評価に適用される重みは、たとえば、無料ユーザから受け取った評価に適用される重みの2、10、100、100、または1000倍(およびその間にある比率)であり得る。
【0151】
いくつかの実装形態では、重みの比率は設定可能なパラメータである。いくつかの実装形態では、異なるゲームカテゴリに対して異なる重みの比率が利用され得る。いくつかの実装形態では、重みの比率は、受け取った評価の数、有料ユーザからの評価の数、非無料ユーザからの評価の数などに依存する。いくつかの実装形態では、最近の評価は古い評価とは異なる方法で重み付けされる場合がある(たとえば、ゲームに新しいコンテンツがあるか、または更新されたバージョンであるか)。
【0152】
いくつかの実装形態では、ゲームの品質基準は、有料ユーザおよび無料ユーザから受け取った評価のウィルソンスコア信頼間隔に基づく場合がある。ブロック540の後にブロック545が続く場合がある。
【0153】
ブロック545において、ゲームの品質基準が、悪意のある可能性のあるゲームを示すあらかじめ定められたしきい値(たとえば、必要な最小スコア)と比較される。有料ユーザ(プラットフォームにお金を使ったユーザ)と無料ユーザから受け取った評価(投票)に適切な重みを適用することによって、悪意のある可能性のあるゲームを検出することができる。いくつかの実装形態では、有料ユーザにより高い重みを適用することによって、たとえばボットを利用することによって悪意のあるアクターが特定のゲームの投票スコアを歪めるための金銭的コストが高くなり、これは悪意のあるゲームの作成者に対する抑止力として機能する。
【0154】
いくつかの実装形態では、しきい値は、ゲームのアクティブユーザ数の所与の範囲に対するあらかじめ定められたパラメータ(数)である。いくつかの実装形態では、しきい値は、ゲームのユーザ数に関係なく、あらかじめ定められたパラメータである場合がある。いくつかの実装形態では、ゲームのしきい値は、ゲームのアクティブなユーザ(プレイヤ)の数に基づいて計算され得る。
【0155】
いくつかの実装形態では、ゲーム内のアクティブなプレイヤの数は、追加の変数として使用される。いくつかの実装形態では、アクティブなプレイヤの数が多いゲームはゲームプラットフォーム上で強調表示される可能性が高いため、そのゲームのアクティブなプレイヤの数に基づいてゲームに高い基準を適用するために、階層化されたスコア基準または動的スコア基準が確立され得る。
【0156】
いくつかの実装形態では、階層化された基準は、「最小スコア:母集団範囲」の定義されたセットである。たとえば、1000~10,000人のアクティブなプレイヤがいるゲームの場合、最小スコアは0.7に設定されてよく、10,000~1000,000人のアクティブなプレイヤがいるゲームの場合、最小スコアは0.8に設定されてよく、100,000人を超えるアクティブなプレイヤがいるゲームの場合、最小スコアは0.85に設定されてよい、などである。
【0157】
いくつかの実装形態では、動的基準が利用されてよく、所与のユーザ人口カウントの最小スコアを決定(計算)するために、式が使用され得る。
【0158】
ブロック545において、品質基準があらかじめ定められたしきい値を満たしているかどうかが決定される。品質基準があらかじめ定められたしきい値を満たしている場合、処理はブロック550に続く。満たしていない場合、処理はブロック570に続く。
【0159】
ブロック550において、特定のゲームのチケットがあらかじめ定められたウィンドウにおいて作成されたかどうかが決定される(たとえば、TTLキャッシュを使用して)。
【0160】
いくつかの実装形態では、悪意のある可能性のあるゲームに関連付けられる前回のチケット作成時間からあらかじめ定められた時間期間が経過したことを確認すると、TTLキャッシュが利用され得る。
【0161】
ブロック550において、特定のゲームのチケットがあらかじめ定められたウィンドウ内に作成されていないと決定された場合、処理は555に続く。それ以外の場合、処理は560に続く。
【0162】
ブロック555において、悪意のある可能性のあるゲームのチケットが作成される。いくつかの実装形態では、チケットは、悪意のある可能性のあるゲームを識別し、悪意のある可能性のあるゲームの1つまたは複数の記述子を含む。
【0163】
いくつかの実装形態では、ゲームに関する詳細は、スキャンシステムによって別のチケットシステムに渡され、このシステムは、サポートまたはタスクシステムにおいてチケット(作業項目)を作成し、ゲームプラットフォームに関連付けられるスタッフに、問題の悪意のある可能性のあるゲームを確認して適切なアクションを実行するよう警告する。
【0164】
いくつかの実装形態では、記述子は、悪意のある可能性のあるゲームのタイトル、悪意のある可能性のあるゲームの所有者、悪意のある可能性のあるゲームの所有者のアカウントへのリンク、悪意のある可能性のあるゲームへのユニフォームリソースロケータ(URL)、悪意のある可能性のあるゲームの賛成票または反対票の数、およびリストの生成時に悪意のある可能性のあるゲームのプレイヤ数を含み得る。
【0165】
いくつかの実装形態では、悪意のある可能性のあるゲームは、ゲームのリストを表示するユーザインターフェースを生成する前に、ゲームのリストから削除され得る。いくつかの実装形態では、悪意のある可能性のあるゲームがユーザ選択の対象外になる場合がある。
【0166】
いくつかの実装形態では、悪意のある可能性のあるゲームに、より低い重みが割り当てられ、より低い優先度で表示される可能性がある(たとえば、目立たない、最初に割り当てられたランクが低いなど)。いくつかの実装形態では、悪意のある可能性のあるゲームは、「悪意のある可能性がある」と示される場合がある。いくつかの実装形態では、現在参加している(ゲームをプレイしている)ユーザは、ゲームの悪意がある恐れがある性質について警告を受ける場合がある。ブロック555の後にブロック560が続く場合がある。
【0167】
ブロック560において、テストするゲームソートから追加のゲームがあるかどうかが決定される。追加のゲームがある場合、ブロック560の後にブロック525が続き、追加のゲームがない場合、処理はブロック570に続く。
【0168】
ブロック570において、テストのために考慮されるべき追加のゲームソートがあるかどうかが決定される。テストする追加のゲームソートがある場合、処理はブロック575に続き、追加のゲームソートがない場合、処理はブロック510に続く。
【0169】
ブロック575において、テストのための次のゲームソートが選択される。処理はブロック520に続く。
【0170】
ブロック510~575は、上記とは異なる順序で実行(または、反復)することができ、および/または1つまたは複数のステップを省略することができる。
【0171】
たとえば、ブロック555が実行され得、ゲームソート内のすべてのゲームがチェックされた後、またはすべてのゲームソートが悪意のある可能性のあるゲームについてチェックされた後に、すべての検出された悪意のある可能性のあるゲームに対してチケットが生成され得る。
【0172】
いくつかの実装形態では、ブロック550は省略されてもよく、ブロック545の後にブロック555が続く場合がある。これらの実装形態では、重複したチケットが作成され得る。
【0173】
いくつかの実装形態では、ブロック515において複数のゲームソートが選択され得、選択したゲームソートごとに、ブロック520~570が並行して実行され得る。いくつかの実装形態では、ブロック515において複数のゲームが選択され得、選択したゲームごとに、ブロック520~560が並行して実行され得る。この方法でいくつかのブロックを並行して実行すると、たとえば、悪意のあるゲームであるかどうかを決定するために複数のゲームが実質的に同時に分析されるため、悪意のあるゲームを検出する時間が短縮され得る。いくつかの実装形態では、方法500のブロックは、
図5に示される順序で実行され得る。たとえば、この方法で本方法を実行すると、たとえ利用可能な計算リソースの量が限られている場合でも、悪意のあるゲームの検出を実行できる可能性がある。
【0174】
いくつかの実装形態では、チケットが特定のゲームのために以前に作成されたかどうかが決定され得る。特定のゲームのためにチケットが以前に作成されている場合、処理はブロック520からブロック560に進むことができる。ブロック560に進むと、悪意のあるゲームの検出の計算効率が向上する可能性がある。
【0175】
いくつかの実装形態では、不快なコンテンツを含む可能性のあるゲームを検出して、そのようなコンテンツへのユーザクセスを軽減するために、ゲームプラットフォーム上のすべてのゲーム(プラットフォーム上で強調表示されているゲームだけでなく)があらかじめ定められた頻度(たとえば、毎日、隔日、毎時など)でスキャンされ得る。
【0176】
いくつかの実装形態では、方法500は、悪意のある可能性のあるゲームを検出するために、1つまたは複数の追加の方法(たとえば、
図3に関して説明された方法300および/または
図4に関して説明された方法400)と組み合わせられ得る。したがって、例示的な実装形態では、プロファイルに参加するプレイヤは、ゲーム名と知られている悪意のあるゲームに関連付けられるキーワードとの比較と組み合わせて利用され得る。
【0177】
いくつかの実装形態では、悪意のある可能性のあるゲームを検出するために、キーワードベース、メトリックベース、プレイヤ参加プロファイルベースの手法などの組合せに基づくコンセンサスベースの手法が利用され得る。たとえば、候補ゲームをテストするために利用される手法の大部分(たとえば、3つのアプローチのうちの2つ以上)が悪意のある可能性のあるゲームの可能性を示している場合、悪意のある可能性のあるゲームのチケットが作成され得る。
【0178】
いくつかの実装形態では、悪意のある可能性のあるゲームを検出するために、信号の組合せが利用され得る。数値メトリックは、利用されるアルゴリズムに基づいて、悪意のある可能性のあるゲームの検出の確実性を示す各手法によって生成され得る。各手法を使用して生成されたメトリックの加重または非加重の組合せが決定され、悪意のある可能性のあるゲームを検出するためにしきい値と比較され得る。
【0179】
いくつかの実装形態では、悪意のある可能性のあるゲームの将来の検出を改善するために、機械学習技法が利用され得る。たとえば、(i)ゲーム作成者の評判、(ii)ゲームのコンテンツ、(iii)ゲームに参加しているプレイヤの評判、(iv)プレイヤの参加率が高く、サイト上で検索してもゲームが見つからないゲームなどの他の変数をゲームが悪意のある可能性と相関させるために、機械学習技法を使用することができる。
【0180】
図6Aは、本明細書で説明される1つまたは複数の機能を実装するために使用され得る例示的なコンピューティングデバイス600のブロック図である。一例では、コンピュータデバイス(たとえば、
図1の102および/または110)を実装することと、本明細書に記載の適切な方法実装形態を実行することとを行うために、デバイス600が使用され得る。コンピューティングデバイス600は、任意の適切なコンピュータシステム、サーバ、または他の電子またはハードウェアデバイスであり得る。たとえば、コンピューティングデバイス600は、メインフレームコンピュータ、デスクトップコンピュータ、ワークステーション、ポータブルコンピュータ、または電子デバイス(ポータブルデバイス、モバイルデバイス、携帯電話、スマートフォン、タブレットコンピュータ、テレビ、テレビセットトップボックス、携帯情報端末(PDA)、メディアプレイヤ、ゲームデバイス、ウェアラブルデバイスなど)であってよい。いくつかの実装形態では、デバイス600は、プロセッサ602、メモリ604、入力/出力(I/O)インターフェース606、およびオーディオ/ビデオ入力/出力デバイス614を含む。
【0181】
プロセッサ602は、プログラムコードを遂行し、デバイス600の基本的な動作を制御するための1つまたは複数のプロセッサおよび/または処理回路であり得る。「プロセッサ」は、データ、信号、または他の情報を処理する任意の適切なハードウェアおよび/またはソフトウェアシステム、メカニズム、あるいはコンポーネントを含む。プロセッサは、汎用中央処理装置(CPU)、複数の処理装置、機能を達成するための専用回路、または他のシステムを備えたシステムを含み得る。処理は特定の地理的な場所に限定される必要はなく、時間的な制限もない。たとえば、プロセッサは、「リアルタイム」、「オフライン」、「バッチモード」などにおいてその機能を実行し得る。処理の一部は、異なる時間に、異なる場所で、異なる(または、同じ)処理システムによって実行され得る。コンピュータは、メモリと通信する任意のプロセッサであり得る。
【0182】
メモリ604は、通常、プロセッサ602によるアクセスのためにデバイス600において提供され、たとえば、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、電気的消去可能読取り専用メモリ(EEPROM)、フラッシュメモリなどであり得、プロセッサによって遂行するための命令を記憶するために適しており、プロセッサ602とは別に配置され、および/またはプロセッサ602と統合されている、任意の適切なプロセッサ可読ストレージ媒体であり得る。メモリ604は、オペレーティングシステム608、1つまたは複数のアプリケーション610、たとえば、オーディオ空間化アプリケーションおよびアプリケーションデータ612を含む、プロセッサ602によってサーバデバイス600上で動作するソフトウェアを記憶することができる。いくつかの実装形態では、アプリケーション610は、プロセッサ602が本明細書に記載の機能を実行する(または、その機能を制御する)ことを可能にする命令、たとえば、
図3、
図4、および
図5の方法のいくつかまたはすべてを含むことができる。
【0183】
いくつかの実装形態では、ゲームアプリケーション610は、ゲームソートを生成するために利用されるゲームソートジェネレータ(620)を含み得る。ゲームソートジェネレータ620からの出力(ゲームソート、ゲームリストなど)は、キーワードコンストラクタおよびエバリュエータ630に提供され、ゲームソートからのゲーム名は、知られている悪意のあるゲームに関連付けられるキーワードとゲーム名を比較することによってテストされる。クエリ記述子650は、以前に検出された悪意のあるゲームに基づくキーワードを利用することによって構築される。悪意のある可能性のあるゲームが検出されると、悪意のある可能性のあるゲームに関連付けられる1つまたは複数の記述子がチケットコンストラクタ640に提供される。
【0184】
たとえば、アプリケーション610は、オーディオ空間化モジュール612を含むことができ、これは、本明細書で説明されるように、オンラインゲームサーバ(たとえば、102)内にオーディオ空間化を提供することができる。あるいは、メモリ604内の任意のソフトウェアを、任意の他の適切なストレージ場所またはコンピュータ可読媒体に記憶することができる。さらに、メモリ604(および/または他の接続されたストレージデバイス)は、本明細書で説明される機能において使用される命令およびデータを記憶することができる。メモリ604および他のタイプのストレージ(磁気ディスク、光ディスク、磁気テープ、または他の有形媒体)は、「ストレージ」または「ストレージデバイス」と見なすことができる。
【0185】
I/Oインターフェース606は、サーバデバイス600を他のシステムおよびデバイスとインターフェースすることを可能にする機能を提供することができる。たとえば、ネットワーク通信デバイス、ストレージデバイス(たとえば、メモリおよび/またはデータストア120)、および入力/出力デバイスは、インターフェース606を介して通信することができる。いくつかの実装形態では、I/Oインターフェースは、入力デバイス(キーボード、ポインティングデバイス、タッチスクリーン、マイクロフォン、カメラ、スキャナなど)および/または出力デバイス(ディスプレイデバイス、スピーカデバイス、プリンタ、モータなど)を含むインターフェースデバイスに接続することができる。
【0186】
オーディオ/ビデオ入力/出力デバイス614は、ユーザ入力を受信するために使用することができるユーザ入力デバイス(たとえば、マウスなど)、ディスプレイデバイス(たとえば、画面、モニタなど)、および/またはグラフィカルおよび/またはビジュアル出力を提供するために使用できる、入力デバイスとディスプレイデバイスの組合せを含むことができる。
【0187】
説明を容易にするために、
図6Aは、プロセッサ602、メモリ604、I/Oインターフェース606、およびソフトウェアブロック608および610のそれぞれについて1つのブロックを示している。これらのブロックは、1つまたは複数のプロセッサあるいは処理回路、オペレーティングシステム、メモリ、I/Oインターフェース、アプリケーション、および/またはソフトウェアエンジンを表す場合がある。他の実装形態では、デバイス600は、図示されるコンポーネントのすべてを有さない場合があり、および/または本明細書に示されるものの代わりに、またはそれに加えて、他のタイプの要素を含む他の要素を有する場合がある。オンラインゲームサーバ102は、本明細書のいくつかの実装形態において説明されるような動作を実行するものとして説明されるが、オンラインゲームサーバ102または同様のシステムの任意の適切なコンポーネントまたはコンポーネントの組合せ、あるいはそのようなシステムに関連付けられる任意の適切なプロセッサまたは複数のプロセッサは、説明された動作を実行し得る。
【0188】
ユーザデバイスはまた、本明細書に記載の機能を実装および/または使用することができる。例示的なユーザデバイスは、デバイス600と同様の何らかのコンポーネント、たとえば、プロセッサ602、メモリ604、およびI/Oインターフェース606を含むコンピュータデバイスであり得る。クライアントデバイスに適したオペレーティングシステム、ソフトウェア、およびアプリケーションは、メモリにおいて提供され、プロセッサによって使用することができる。クライアントデバイスのI/Oインターフェースは、ネットワーク通信デバイス、ならびに入力デバイスおよび出力デバイス、たとえば、サウンドをキャプチャするためのマイクロフォン、画像またはビデオをキャプチャするためのカメラ、ユーザ入力をキャプチャするためのマウス、ユーザのジェスチャーを認識するためのジェスチャーデバイス、ユーザ入力を検出するためのタッチスクリーン、サウンドを出力するためのオーディオスピーカデバイス、画像またはビデオを出力するためのディスプレイデバイス、あるいは他の出力デバイスに接続することができる。オーディオ/ビデオ入力/出力デバイス614内のディスプレイデバイスは、本明細書で説明されるように前処理および後処理の画像を表示するために、たとえば、デバイス600に接続され(または、含まれ)てよく、そのようなディスプレイデバイスは、任意の適切なディスプレイデバイス、たとえば、LCD、LED、またはプラズマディスプレイスクリーン、CRT、テレビ、モニタ、タッチスクリーン、3Dディスプレイスクリーン、プロジェクタ、または他の視覚的ディスプレイデバイスを含むことができる。いくつかの実装形態は、たとえば、テキストを話す音声出力または合成などのオーディオ出力デバイスを提供することができる。
【0189】
本明細書に記載の1つまたは複数の方法(たとえば、方法300、400、500など)は、コンピュータ上で遂行することができるコンピュータプログラム命令またはコードによって実装することができる。たとえば、コードは、1つまたは複数のデジタルプロセッサ(たとえば、マイクロプロセッサまたは他の処理回路)によって実装することができ、非一時的コンピュータ可読媒体(たとえば、ストレージ媒体)、たとえば、磁気、光学、電磁、あるいは半導体またはソリッドステートメモリを含む半導体ストレージ媒体、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、フラッシュメモリ、リジッドマグネティックディスク、光ディスク、ソリッドステートメモリドライブなどを含むコンピュータプログラム製品に記憶することができる。プログラム命令はまた、たとえば、サーバ(たとえば、分散システムおよび/またはクラウドコンピューティングシステム)から配信されるサービスとしてのソフトウェア(SaaS)の形で、電子信号に含まれ、電子信号として提供され得る。あるいは、1つまたは複数の方法をハードウェア(論理ゲートなど)において実装することも、ハードウェアとソフトウェアの組合せにおいて実装することもできる。ハードウェアの例は、プログラマブルプロセッサ(たとえば、フィールドプログラマブルゲートアレイ(FPGA)、コンプレックスプログラマブルロジックデバイス)、汎用プロセッサ、グラフィックプロセッサ、特定用途向け集積回路(ASIC)などがある。1つまたは複数の方法は、システムで実行されているアプリケーションの一部またはコンポーネントとして、あるいは他のアプリケーションおよびオペレーティングシステムと組み合わせて実行されているアプリケーションまたはソフトウェアとして実行することができる。
【0190】
本明細書で説明する1つまたは複数の方法は、任意のタイプのコンピューティングデバイスにおいて実行できるスタンドアロンプログラム、ウェブブラウザにおいて実行されるプログラム、モバイルコンピューティングデバイス(たとえば、携帯電話、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス(腕時計、アームバンド、ジュエリ、ヘッドウェア、ゴーグル、グラスなど)、ラップトップコンピュータなど)において実行されるモバイルアプリケーション(「アプリ」)で実行することができる。一例では、クライアント/サーバアーキテクチャを使用することができ、たとえば、モバイルコンピューティングデバイス(クライアントデバイスとして)は、ユーザ入力データをサーバデバイスに送信し、サーバから出力用(たとえば、表示用)の最終出力データを受信する。別の例では、すべての計算は、モバイルコンピューティングデバイス上のモバイルアプリ(および/または他のアプリ)内で実行することができる。別の例では、計算は、モバイルコンピューティングデバイスと1つまたは複数のサーバデバイスとの間で分割することができる。
【0191】
図6Bは、本明細書で説明される1つまたは複数の機能を実装するために使用され得る例示的なコンピューティングデバイス600のブロック図である。説明を容易にするために、
図6Aに記載されているものと同様のコンポーネントは、同様に番号が付けられている。
【0192】
いくつかの実装形態では、ゲームアプリケーション610は、異なるパラメータに基づいてゲームの複数のリストを生成するために利用されるゲームソータ(ゲームソートジェネレータ)660を含み得る。ゲームソータ660によって生成されたリスト(たとえば、
図4に関して説明されたブロック410において取得されたリスト)は、リスト内のゲームの各々に関連付けられる統計(たとえば、
図4に関して説明されたブロック430において取得されたプロファイルに参加するプレイヤ)を監視するゲーム統計モニタ670によって分析される。チケットジェネレータ(チケットコンストラクタ)680は、ゲーム統計モニタ670によって提供されるゲーム統計に基づいてチケットを生成する。
【0193】
説明は、特定の実装形態に関して説明されてきたが、これらの特定の実装形態は単なる例示であり、限定的ではない。例に示されている概念は、他の例および実装形態に適用され得る。
【0194】
本開示で説明される機能ブロック、動作、機能、方法、デバイス、およびシステムは、当業者に知られているように、システム、デバイス、および機能ブロックの異なる組合せに統合されてもよく、分割されてもよいことに留意されたい。特定の実装形態のルーチンを実装するために、任意の適切なプログラミング言語およびプログラミング技法が使用され得る。異なるプログラミング技法、たとえば、手続き型またはオブジェクト指向が採用され得る。ルーチンは、単一の処理デバイスまたは複数のプロセッサにおいて遂行され得る。ステップ、操作、または計算は特定の順序で提示される場合があるが、異なる特定の実装形態において順序が変更され得る。いくつかの実装形態では、本明細書においてシーケンシャルとして示されている複数のステップまたは動作が同時に実行されてもよい。
【符号の説明】
【0195】
100 システムアーキテクチャ
102 ゲームサーバ
102 オンラインゲームサーバ
104 ゲームエンジン
106 ゲーム
108 グラフィックエンジン
110 クライアントデバイス
110a、110b、110n クライアントデバイス
112 ゲームアプリケーション
114 入力/出力(I/O)インターフェース
120 データストア
122 ネットワーク
130 開発者デバイス
130a、130n 開発者デバイス
132 ゲームアプリケーション
134 I/Oインターフェース
220 ゲームのカテゴリ
220 リスト
220a 人気のあるゲーム
220b トップのソーシャルゲーム
220c トップのアドベンチャゲーム
220n ユーザに推奨されるゲーム
230 個々のゲームのリスト
250a トークン
250b トークン
300 方法
400 方法
500 方法
600 コンピューティングデバイス
600 サーバデバイス
602 プロセッサ
604 メモリ
606 入力/出力(I/O)インターフェース
608 オペレーティングシステム
608 ソフトウェアブロック
610 アプリケーション
610 ゲームアプリケーション
610 ソフトウェアブロック
612 オーディオ空間化アプリケーションおよびアプリケーションデータ
612 オーディオ空間化モジュール
614 オーディオ/ビデオ入力/出力デバイス
620 ゲームソートジェネレータ
630 キーワードコンストラクタおよびエバリュエータ
640 チケットコンストラクタ
650 クエリ記述子
660 ゲームソータ(ゲームソートジェネレータ)
670 ゲーム統計モニタ
680 チケットジェネレータ(チケットコンストラクタ)