以下の詳細な説明において、本明細書の一部をなす添付の図面に対する参照がなされる。図面において、概して、同様の符号は、文脈がそうでないことを示さない限り、同様の構成要素を特定する。詳細な説明、図面、および特許請求の範囲に記載の例示的実施形態は、限定的であるように意図されていない。本明細書で示される対象の精神または範囲を逸脱することなしに、その他の実施形態が利用される可能性があり、その他の変更がなされる可能性がある。本明細書において全体的に説明され、図に示される本開示の態様は、多種多様な異なる構成で配置され、置き換えられ、組み合わされ、分割され、設計されることが可能であり、それらの構成のすべては、本明細書において想定されている。
「一部の実施形態」、「実施形態」、「例示的な実施形態」などの本明細書における言及は、説明された実施形態が特定の特徴、構造、または特性を含む可能性があるが、あらゆる実施形態が必ずしも特定の特徴、構造、または特性を含むとは限らない可能性があることを示す。その上、そのような語句は、必ずしも同じ実施形態への言及であるとは限らない。さらに、特定の特徴、構造、または特性が実施形態に関連して説明されるとき、そのような特徴、構造、または特性は、明示的に説明されているか否かにかかわらずその他の実施形態に関連して実現される可能性がある。
オンラインゲーミングプラットフォーム(「ユーザ生成コンテンツプラットフォーム」または「ユーザ生成コンテンツシステム」とも呼ばれる)は、ユーザが互いにインタラクションするための様々な方法を提供する。たとえば、オンラインゲーミングプラットフォームのユーザは、共通のゴールに向かって一緒に働く、様々な仮想ゲーミングアイテムを共有する、互いに電子メッセージを送信するなどする可能性がある。オンラインゲーミングプラットフォームのユーザは、ゲームに固有の役割を演じる仮想的なキャラクタとしてゲームに加わる可能性がある。たとえば、仮想的なキャラクタは、各キャラクタが特定の役割を割り振られ、役割に対応する関連するパラメータ、たとえば、衣類、鎧、武器、スキルなどを有するチームまたはマルチプレイヤー環境の一部である可能性がある。別の例においては、たとえば、単一のプレイヤーがゲームの一部であるとき、仮想的なキャラクタに、コンピュータによって生成されたキャラクタが加わる可能性がある。
オンラインゲーミングプラットフォームは、プラットフォームのユーザ(開発者)が新しいゲームおよび/またはキャラクタを作成することを可能にする可能性もある。たとえば、オンラインゲーミングプラットフォームのユーザは、新しいキャラクタ(アバター)、新しいアニメーションパッケージを作成、デザイン、および/またはカスタマイズし、それらをその他のユーザが利用し得るようにすることを可能にされる可能性がある。
ユーザは、単独の参加者としておよび/またはグループでゲームプレイセッションにおいてゲームをプレイする可能性がある。ゲームのゲームプレイセッションの複数のインスタンスが、プレイヤーまたはプレイヤーのグループによって同時におよび異なる時間に開始される可能性がある。ユーザは、同じゲームの複数のゲームプレイセッションに参加するかまたは異なるゲームのゲームプレイセッションに同時に参加する可能性がある。ユーザは、プレイする参加者および観察者(視聴者)の参加者を含む可能性がある。ゲームプレイセッション中、参加者は、テキストメッセージ、グループチャット(たとえば、公開チャット)、ボイスメッセージなどの様々なコミュニケーションチャネル(方法)を介して互いにコミュニケーションする可能性がある。
コミュニケーションチャネルは、ゲームプラットフォームによって提供されるチャネルであるプラットフォーム対応チャットを含み得る。そのようなチャネルにおいて、参加者の間のすべてのコミュニケーションは、概してプラットフォームを通じて、たとえば、ゲーミングサーバを介してルーティングされる。
コミュニケーションチャネルは、プラットフォーム対応オーディオコミュニケーションも含み得る。ゲームプラットフォームは、スピーチトゥテキスト、字幕、手話サポートなどのサービスを提供することによって音声コミュニケーションをさらにサポートする可能性がある。ユーザのコミュニケーションのすべてまたは一部の記録は、ゲームプラットフォームに関連するストレージデバイスおよび/または媒体に記憶され得る。
ゲームは、ゲームの種類および/またはゲームプレイのスタイルに基づいてカテゴリ分けされる可能性がある。一部の実装において、ゲームは、ゲームプレイの特性、(ゲームの)目的の種類、および主題の種類(たとえば、スポーツ、チャレンジ(challenge)、アクション、もしくはレース)のうちの1つまたは複数によって系統立てられ得る。カテゴリは、ゲームに関連する1つまたは複数のテキストタグによってラベル付けされる可能性がある。
その他のユーザ(プレイヤー)は、閲覧することによってまたは検索に基づいてプレイするゲームを発見する可能性がある。検索は、名前またはカテゴリによって実行される可能性があり、ユーザは、表示されたゲームのリストに基づいてユーザがプレイしたいゲームを選択する可能性がある。一部の実装において、プレイヤーが関心がある可能性が高いゲームは、たとえば、プレイヤーによるゲームプラットフォームへのログインまたはゲームプラットフォームにおけるセッションの再開時に明らかにされ、ユーザに対して表示される。
ゲームのプレイヤーおよびゲームプラットフォームの所有者は、好適なテキストタグを様々なゲームに関連付けることから恩恵を受ける。テキストタグを利用することによるゲームのラベル付けは、ユーザによるゲームの効率的な発見を可能にし、したがって、ゲームプラットフォームにおいてより良いユーザエクスペリエンスを提供することができる。テキストタグは、ゲームプラットフォームにおけるゲームのランク付けのために、および/またはゲームプラットフォーム上で利用される推薦人モデル(recommender model)、たとえば、機械学習モデルへの入力として利用され得る。たとえば、推薦人モデルは、ゲームに関連するテキストタグに基づいてユーザのためのゲームの推薦を生成することができる。
一部の実装において、テキストタグのうちの1つまたは複数は、ゲームのソーシャルレベル(social level)に関連する可能性がある。ゲームのソーシャルレベルに関連するタグは、ユーザが通常プレイするゲームのソーシャルレベルの内容および種類などに基づいてユーザにゲームを推薦するために利用される可能性がある。たとえば、ソーシャルインタラクション(social interaction)がほとんどないシングルプレイヤーゲームを主にプレイするユーザは、その他のシングルプレイヤーゲームまたはインタラクションの少ないゲームを推薦されることが可能であり、一方、他者との交流(socialization)が多いゲーム、たとえば、複数のゲームプレイヤーの間のチャットインタラクションが存在するゲームを通常プレイするユーザは、その他のソーシャルゲームを推薦されることが可能である。ソーシャルレベルを示すテキストタグは、ユーザにゲームの推薦を提供する機械学習モデル(たとえば、ニューラルネットワークに基づくモデル)に与えられる可能性がある。ゲームプラットフォームのオペレータにとっての技術的な問題は、ゲームプラットフォーム中のゲームの正確なラベル付けおよび見つけやすさである。
ゲーミングの認識されている利点は、複数の土地(geography)にまたがってその他のプレイヤーおよび参加者とインタラクションし、コミュニケーションすることをゲームセッション(ゲームプレイセッション)を介して可能にされるプレイヤーにゲーミングが提供する他者との交流である。一部のゲームは、友達が一緒にプレイし、プラットフォーム内でソーシャルインタラクションする機会を提供する可能性がある。ゲームプラットフォームは、参加者の間のソーシャルインタラクションの頻度および性質に基づいて各ゲームに関するソーシャル測定基準または交友測定基準(friendship metric)を追跡することができる。
ゲームがユーザによって生成され、プラットフォームが多くのユーザ生成環境を含むとき、ゲームプラットフォームは、ゲームについて限られた情報を有する可能性がある。ゲームプレイセッションの性質は、ゲームプレイデータがゲームのデザインに基づいて変わるために、ゲームイベントを自動的に観測し、社交性およびソーシャルインタラクションの性質を決定することが容易でない可能性があるので、それらのゲームプレイセッションの可観測性(observability)に課題をもたらす。
一部のユーザ(ゲーム開発者)は、それらのユーザがプラットフォームを介して利用できるようにするゲームに関するタグを提供しない可能性があり、またはゲームプラットフォームを使用するプレイヤーによるゲームの発見を十分に助けないタグを提供する可能性がある。場合によっては、ユーザは、それらのユーザのゲームへのプレイヤーのトラフィックを増やす目的でゲームにわざと誤ったラベル付けをする可能性がある。(たとえば、開発者によって)ゲームに手動で割り振られるタグは、誤ったまたは関連のない手動で割り振られたタグを判定するためにゲームに関する生成されたテキストタグとの比較によって評価され得る。そのような評価をすると、誤ったまたは関連のないタグが、抑制される、たとえば、ゲームとの関連付けから隠されるおよび/または削除される可能性がある。このようにして手動で割り振られたタグを抑制することは、ゲームの品質およびプレイヤーの関心とのゲームの関連性に基づいてゲームへのプレイヤーのトラフィックが本物であることを保証するのに役立ち得る。これは、プレイヤーが楽しむゲームプレイセッションの割合をより高めることにつながり、誤ったまたは関連のないラベルが原因で発生する可能性がある短い(たとえば、1分未満)または不満足なセッションの数を削減することができる。
本明細書において開示される一部の実施形態は、ゲームプラットフォーム上の様々なゲームに関連付けられる可能性があるテキストタグを自動的に決定する。そのように決定されたテキストタグは、ゲームに関連付けられ得る。
図1は、本開示の一部の実装による例示的なシステムアーキテクチャ100を示す。図1およびその他の図は、同様の要素を特定するために同様の参照番号を使用する。「110」などの参照番号の後の文字は、テキストが特にその特定の参照番号を有する要素を指すことを示す。「110」などの後に続く文字がないテキスト内の参照番号は、その参照番号を持つ図内の要素のいずれかまたはすべてを指す(たとえば、テキスト内の「110」は、図内の参照番号「110a」、「110b」、および/または「110n」を指す)。
システムアーキテクチャ100(本明細書においては「システム」とも呼ばれる)は、オンラインゲーミングサーバ102、データストア120、クライアントデバイス110a、110b、および110n(本明細書においては全体的に「クライアントデバイス110」と呼ばれる)、ならびに開発者デバイス130aおよび130n(本明細書においては全体的に「開発者デバイス130」と呼ばれる)を含む。ゲーミングサーバ102、データストア120、クライアントデバイス110、および開発者デバイス130は、ネットワーク122を介して結合される。一部の実装において、クライアントデバイス110および開発者デバイス130は、同じデバイスまたは同じ種類のデバイスを指す可能性がある。
オンラインゲーミングサーバ102は、とりわけ、ゲームエンジン104、1つまたは複数のゲーム106、およびグラフィックスエンジン108を含み得る。クライアントデバイス110は、ゲームアプリケーション112および入力/出力(I/O)インターフェース114(たとえば、入力/出力デバイス)を含み得る。入力/出力デバイスは、マイクロフォン、スピーカ、ヘッドフォン、ディスプレイデバイス、マウス、キーボード、ゲームコントローラ、タッチスクリーン、仮想現実コンソールなどのうちの1つまたは複数を含み得る。
開発者デバイス130は、ゲームアプリケーション132および入力/出力(I/O)インターフェース134(たとえば、入力/出力デバイス)を含み得る。入力/出力デバイスは、マイクロフォン、スピーカ、ヘッドフォン、ディスプレイデバイス、マウス、キーボード、ゲームコントローラ、タッチスクリーン、仮想現実コンソールなどのうちの1つまたは複数を含み得る。
システムアーキテクチャ100は、説明のために提供される。異なる実装において、システムアーキテクチャ100は、図1に示されたのと同じまたは異なる方法で構成された同じ、より少ない、より多い、または異なる要素を含む可能性がある。
一部の実装において、ネットワーク122は、パブリックネットワーク(たとえば、インターネット)、プライベートネットワーク(たとえば、ローカルエリアネットワーク(LAN)もしくは広域ネットワーク(WAN))、有線ネットワーク(たとえば、イーサネットネットワーク)、ワイヤレスネットワーク(たとえば、802.11ネットワーク、Wi-Fi(登録商標)ネットワーク、もしくはワイヤレスLAN(WLAN))、セルラネットワーク(たとえば、5Gネットワーク、ロングタームエボリューション(LTE)ネットワークなど)、ルータ、ハブ、スイッチ、サーバコンピュータ、またはこれらの組合せを含む可能性がある。
一部の実装において、データストア120は、非一時的コンピュータ可読メモリ(たとえば、ランダムアクセスメモリ)、キャッシュ、ドライブ(たとえば、ハードドライブ)、フラッシュドライブ、データベースシステム、またはデータを記憶することができる別の種類の構成要素もしくはデバイスである可能性がある。また、データストア120は、複数のコンピューティングデバイス(たとえば、複数のサーバコンピュータ)に広がる可能性もある複数のストレージ構成要素(たとえば、複数のドライブまたは複数のデータベース)を含む可能性がある。一部の実装において、データストア120は、クラウドに基づくストレージを含む可能性がある。
一部の実装において、オンラインゲーミングサーバ102は、1つまたは複数のコンピューティングデバイスを有するサーバ(たとえば、クラウドコンピューティングシステム、ラックマウントサーバ、サーバコンピュータ、物理サーバのクラスタなど)を含み得る。一部の実装において、オンラインゲーミングサーバ102は、独立したシステムである可能性があり、複数のサーバを含むか、または別のシステムもしくはサーバの一部である可能性がある。
一部の実装において、オンラインゲーミングサーバ102は、オンラインゲーミングサーバ102上で動作を実行し、ユーザにオンラインゲーミングサーバ102へのアクセスを提供するために使用される可能性がある(ラックマウントサーバ、ルータコンピュータ、サーバコンピュータ、パーソナルコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータなどの)1つもしくは複数のコンピューティングデバイス、データストア(たとえば、ハードディスク、メモリ、データベース)、ネットワーク、ソフトウェア構成要素、および/またはハードウェア構成要素を含む可能性がある。オンラインゲーミングサーバ102は、ユーザにオンラインゲーミングサーバ102によって提供されるコンテンツへのアクセスを提供するために使用される可能性があるウェブサイト(たとえば、ウェブページ)またはアプリケーションバックエンドソフトウェアを含む可能性もある。たとえば、ユーザは、クライアントデバイス110上のゲームアプリケーション112を使用してオンラインゲーミングサーバ102にアクセスする可能性がある。
一部の実装において、オンラインゲーミングサーバ102は、ユーザ間のつながりを提供するある種のソーシャルネットワーク、またはユーザ(たとえば、エンドユーザもしくはコンシューマ)がオンラインゲーミングサーバ102上でその他のユーザとコミュニケーションすることを可能にするある種のユーザ生成コンテンツシステムである可能性があり、コミュニケーションは、音声チャット(たとえば、同期および/もしくは非同期音声コミュニケーション)、ビデオチャット(たとえば、同期および/もしくは非同期ビデオコミュニケーション)、またはテキストチャット(たとえば、1:1および/もしくはN:Nの同期および/もしくは非同期のテキストに基づくコミュニケーション)を含む可能性がある。ユーザの許可を得て、一部のまたはすべてのユーザのコミュニケーションの記録が、データストア120またはゲーム106内に記憶される可能性がある。データストア120は、プレイヤー間でやりとりされたチャットの写し(テキスト、オーディオ、画像など)を記憶するために利用される可能性がある。
一部の実装において、チャットの写しは、ゲームアプリケーション112および/もしくはゲームアプリケーション132によって生成され、データストア120に記憶される。ユーザがチャットの写しの記憶を許可するとき、チャットの写しは、チャットの内容および関連するメタデータ、たとえば、各メッセージが対応する送信者および受信者を有するチャットのテキストの内容、メッセージのフォーマット(たとえば、太字、イタリック体、大きな音量(loud)など)、メッセージのタイムスタンプ、仮想ゲーム環境内の参加者のアバターの相対的位置、ゲームの参加者によって利用されたアクセサリなどを含む可能性がある。一部の実装において、チャットの写しは、多言語の内容を含む可能性があり、ゲームの異なるゲームプレイセッションからの異なる言語のメッセージが、データストア120に記憶される可能性がある。
ユーザは、どのチャット情報が記憶されるのかおよびいつまで情報が記憶されるのかを決定するための制御を提供される。たとえば、ユーザは、特定の時間に、たとえば、ゲームセッションの終わり、ゲームプラットフォームからログアウトしたとき、24時間毎、1週間毎などに失効するようにチャット情報の記憶を設定することを選択し得る。一部の実装においては、たとえば、ユーザが許可を拒否するときまたはチャットが暗号化されているとき、チャットデータは記憶されない可能性がある。これらの実装においては、開始時間および終了時間、参加者のカウント、参加者の識別子、ゲームの識別子およびゲームセッションの識別子などのチャットメタデータが、ユーザによって許可された通りに記憶される可能性がある。
一部の実装において、チャットの写しは、タイムスタンプに基づいて参加者の間の会話の形態で記憶される可能性がある。一部の実装において、チャットの写しは、メッセージの発信元に基づいて記憶される可能性がある。
本開示の一部の実装において、「ユーザ」は、1人の個人として表される可能性がある。しかし、本開示のその他の実装は、「ユーザ」(たとえば、作成ユーザ)が1組のユーザによって制御されるエンティティ(entity)または自動化されたソースであることを包含する。たとえば、ユーザ生成コンテンツシステム内のコミュニティまたはグループとして連合した1組の個人ユーザが、「ユーザ」とみなされる可能性がある。
一部の実装において、オンラインゲーミングサーバ102は、仮想ゲーミングサーバである可能性がある。たとえば、ゲーミングサーバは、ネットワーク122を介してクライアントデバイス110を使用してゲームにアクセスするかまたはゲームとインタラクションする可能性があるユーザのコミュニティにシングルプレイヤーゲームまたはマルチプレイヤーゲームを提供する可能性がある。一部の実装において、ゲーム(本明細書においては「ビデオゲーム」、「オンラインゲーム」、または「仮想ゲーム」とも呼ばれる)は、たとえば、2次元(2D)ゲーム、3次元(3D)ゲーム(たとえば、3Dユーザ生成ゲーム)、仮想現実(VR)ゲーム、または拡張現実(AR)ゲームである可能性がある。一部の実装において、ユーザは、その他のユーザとともにゲームプレイに参加する可能性がある。一部の実装において、ゲームは、ゲームのその他のユーザとリアルタイムでプレイされる可能性がある。
一部の実装において、ゲームプレイは、ゲーム(たとえば、106)内のクライアントデバイス(たとえば、110)を使用する1人もしくは複数のプレイヤーのインタラクション、またはクライアントデバイス110のディスプレイもしくはその他の出力デバイス(たとえば、114)上のインタラクションの表現を指す可能性がある。
一部の実装において、ゲーム106は、エンティティにゲームコンテンツ(たとえば、デジタルメディアアイテム)を提示するように構成されたソフトウェア、ファームウェア、またはハードウェアを使用して実行またはロードされることが可能である電子ファイルを含み得る。一部の実装において、ゲームアプリケーション112が、ゲームエンジン104に関連して実行される可能性があり、ゲーム106が、ゲームエンジン104に関連してレンダリングされる可能性がある。一部の実装において、ゲーム106は、規則の共通の組または共通の目的を有する可能性があり、ゲーム106の環境は、規則の共通の組または共通の目的を共有する。一部の実装において、異なるゲームは、互いに異なる規則または目的を有する可能性がある。
一部の実装において、ゲームは、(本明細書においては「ゲーミング環境」または「仮想環境」とも呼ばれる)1つまたは複数の環境を有する可能性があり、複数の環境が、リンクされる可能性がある。環境の例は、3次元(3D)環境である可能性がある。ゲーム106の1つまたは複数の環境は、本明細書においては集合的に「世界」または「ゲーム世界」または「仮想世界」または「ユニバース」と呼ばれる可能性がある。世界の例は、ゲーム106の3D世界である可能性がある。たとえば、ユーザは、別のユーザによって作成された別の仮想環境にリンクされる仮想環境を構築する可能性がある。仮想ゲームのキャラクタは、隣接する仮想環境に入るために仮想的な境界を越える可能性がある。
3D環境または3D世界は、ゲームコンテンツを表す幾何学データの3次元表現を使用する(または少なくとも、幾何学データの3D表現が使用されるか否かにかかわらず3Dコンテンツに見えるようにゲームコンテンツを提示する)グラフィックスを使用することが留意される可能性がある。2D環境または2D世界は、ゲームコンテンツを表す幾何学データの2次元表現を使用するグラフィックスを使用する。
一部の実装において、オンラインゲーミングサーバ102は、1つまたは複数のゲーム106をホストすることができ、クライアントデバイス110のゲームアプリケーション112を使用してユーザがゲーム106とインタラクションすることを許可し得る。オンラインゲーミングサーバ102のユーザは、ゲーム106をプレイするか、ゲーム106を作成するか、ゲーム106とインタラクションするか、もしくはゲーム106を構築する、その他のユーザとコミュニケーションする、および/またはゲーム106のオブジェクト(たとえば、本明細書においては「アイテム」もしくは「ゲームオブジェクト」もしくは「仮想ゲームアイテム」とも呼ばれる)を作成し、構築する可能性がある。
たとえば、ユーザ生成仮想アイテムを生成する際、ユーザは、とりわけ、キャラクタ、キャラクタのための装飾、インタラクティブゲームのための1つもしくは複数の仮想環境を作成するか、またはゲーム106内で使用される構造物を構築する可能性がある。一部の実装において、ユーザは、プラットフォーム内通貨(たとえば、仮想的な通貨)などの仮想ゲームオブジェクトを買うか、売るか、またはオンラインゲーミングサーバ102のその他のユーザと取引する可能性がある。一部の実装において、オンラインゲーミングサーバ102は、ゲームアプリケーション(たとえば、112)にゲームコンテンツを送信する可能性がある。一部の実装において、ゲームコンテンツ(本明細書においては「コンテンツ」とも呼ばれる)は、オンラインゲーミングサーバ102またはゲームアプリケーションに関連する任意のデータまたはソフトウェア命令(たとえば、ゲームオブジェクト、ゲーム、ユーザ情報、ビデオ、画像、コマンド、メディアアイテムなど)を指す可能性がある。一部の実装において、ゲームオブジェクト(たとえば、本明細書においては「アイテム」、「オブジェクト」、「仮想オブジェクト」、または「仮想ゲームアイテム」とも呼ばれる)は、オンラインゲーミングサーバ102のゲームアプリケーション106またはクライアントデバイス110のゲームアプリケーション112において使用されるか、作成されるか、共有されるか、またはそうでなければ示されるオブジェクトを指す可能性がある。たとえば、ゲームオブジェクトは、パーツ、モデル、キャラクタ、アクセサリ、ツール、武器、衣類、建物、乗り物、通貨、植物相、動物相、上述のものの構成要素(たとえば、建物の窓)などを含む可能性がある。
ゲーム106をホストするオンラインゲーミングサーバ102は、説明を目的として与えられることが留意される可能性がある。一部の実装において、オンラインゲーミングサーバ102は、1人のユーザから1人または複数のその他のユーザへのコミュニケーションメッセージを含み得る1つまたは複数のメディアアイテムをホストする可能性がある。ユーザの許可および明確なユーザの同意を得て、オンラインゲーミングサーバ102は、ゲームプラットフォームを改善するためにチャットの写しのデータを分析する可能性がある。メディアアイテムは、デジタルビデオ、デジタルムービー、デジタル写真、デジタルミュージック、オーディオコンテンツ、メロディー、ウェブサイトコンテンツ、ソーシャルメディアの最新記事、電子ブック、電子雑誌、デジタル新聞、デジタルオーディオブック、電子ジャーナル、ウェブブログ、リアルシンプルシンジケーション(RSS: real simple syndication)フィード、電子漫画、ソフトウェアアプリケーションなどを含み得るがこれらに限定されない。一部の実装において、メディアアイテムは、エンティティにデジタルメディアアイテムを提示するように構成されたソフトウェア、ファームウェア、またはハードウェアを使用して実行またはロードされることが可能である電子ファイルである可能性がある。
一部の実装において、ゲーム106は、特定のユーザもしくはユーザの特定のグループに関連付けられる可能性があり(たとえば、非公開のゲーム)、またはオンラインゲーミングサーバ102にアクセスすることができるユーザに広く利用され得るようにされる可能性がある(たとえば、公開されたゲーム)。オンラインゲーミングサーバ102が1つまたは複数のゲーム106を特定のユーザまたはユーザのグループに関連付ける一部の実装において、オンラインゲーミングサーバ102は、ユーザアカウント情報(たとえば、ユーザ名およびパスワードなどのユーザアカウント識別子)を使用して特定のユーザをゲーム106に関連付ける可能性がある。
一部の実装において、オンラインゲーミングサーバ102またはクライアントデバイス110は、ゲームエンジン104またはゲームアプリケーション112を含む可能性がある。一部の実装において、ゲームエンジン104は、ゲーム106の展開または実行のために使用される可能性がある。たとえば、ゲームエンジン104は、特徴の中でもとりわけ、2D、3D、VR、もしくはARグラフィックスのためのレンダリングエンジン(「レンダラ」)、物理エンジン、衝突検出エンジン(および衝突応答(collision response))、サウンドエンジン、スクリプティング機能、アニメーションエンジン、人工知能エンジン、ネットワーキング機能、ストリーミング機能、メモリ管理機能、スレッディング機能、シーングラフ機能、または映画製作技術(cinematics)のためのビデオサポートを含む可能性がある。ゲームエンジン104の構成要素は、ゲームを計算し、レンダリングするのを助けるコマンド(たとえば、レンダリングコマンド、衝突コマンド、物理コマンドなど)を生成する可能性がある。一部の実装において、クライアントデバイス110/116のゲームアプリケーション112は、それぞれ、独立して、オンラインゲーミングサーバ102のゲームエンジン104と協力して、またはそれら両方の組合せで働く可能性がある。
一部の実装においては、オンラインゲーミングサーバ102とクライアントデバイス110との両方が、ゲームエンジン(104および112それぞれ)を実行する可能性がある。ゲームエンジン104を使用するオンラインゲーミングサーバ102は、一部のもしくはすべてのゲームエンジンの機能を実行する(たとえば、物理コマンド、レンダリングコマンドなどを生成する)か、または一部のもしくはすべてのゲームエンジンの機能をクライアントデバイス110のゲームエンジン104にオフロードする可能性がある。一部の実装において、各ゲーム106は、オンラインゲーミング102において実行されるゲームエンジンの機能とクライアントデバイス110において実行されるゲームエンジンの機能との間の異なる比率を有する可能性がある。たとえば、オンラインゲーミングサーバ102のゲームエンジン104が、少なくとも2つのゲームオブジェクトの間の衝突が存在する場合に物理コマンドを生成するために使用される可能性がある一方、さらなるゲームエンジンの機能(たとえば、レンダリングコマンドの生成)はクライアントデバイス110にオフロードされる可能性がある。一部の実装において、オンラインゲーミングサーバ102において実行されるゲームエンジンの機能とクライアントデバイス110において実行されるゲームエンジンの機能との比率は、ゲームプレイの条件に基づいて(たとえば、動的に)変更される可能性がある。たとえば、特定のゲーム106のゲームプレイに参加するユーザの数が閾値の数を超える場合、オンラインゲーミングサーバ102は、クライアントデバイス110によって既に実行された1つまたは複数のゲームエンジンの機能を実行する可能性がある。
たとえば、ユーザは、クライアントデバイス110上でゲーム106をプレイしている可能性があり、オンラインゲーミングサーバ102に制御命令(たとえば、右、左、上、下、ユーザ選択などの、ユーザ入力、またはキャラクタ位置および速度情報)を送信する可能性がある。クライアントデバイス110から制御命令を受信した後、オンラインゲーミングサーバ102は、制御命令に基づいてクライアントデバイス110にゲームプレイ命令(たとえば、グループゲームプレイに参加するキャラクタの位置および速度情報、またはレンダリングコマンド、衝突コマンドなどのコマンド)を送信する可能性がある。たとえば、オンラインゲーミングサーバ102は、クライアントデバイス110のためのゲームプレイ命令を生成するために制御命令に関して(たとえば、ゲームエンジン104を使用して)1つまたは複数の論理的な動作を実行する可能性がある。その他の場合、オンラインゲーミングサーバ102は、1つのクライアントデバイス110からゲーム106に参加するその他のクライアントデバイスに(たとえば、クライアントデバイス110aからクライアントデバイス110bに)制御命令のうちの1つまたは複数を渡す可能性がある。クライアントデバイス110は、ゲームプレイ命令を使用し、クライアントデバイス110のディスプレイ上に提示するためにゲームプレイをレンダリングする可能性がある。
一部の実装において、制御命令は、ユーザのキャラクタのゲーム内アクションを示す命令を指す可能性がある。たとえば、制御命令は、右、左、上、下、ユーザ選択、ジャイロスコープの位置および向きデータ、力センサデータなどの、ゲーム内アクションを制御するためのユーザ入力を含む可能性がある。制御命令は、キャラクタ位置および速度情報を含む可能性がある。一部の実装において、制御命令は、オンラインゲーミングサーバ102に直接送信される。その他の実装において、制御命令は、クライアントデバイス110から別のクライアントデバイスに(たとえば、クライアントデバイス110bからクライアントデバイス110nに)送信される可能性があり、その他のクライアントデバイスが、ローカルのゲームエンジン104を使用してゲームプレイ命令を生成する。制御命令は、オーディオデバイス(たとえば、スピーカ、ヘッドフォンなど)で別のユーザからの音声コミュニケーションメッセージまたはその他の音、たとえば、本明細書において説明されるようにオーディオ空間化(audio spatialization)技術を使用して生成された音声コミュニケーションまたはその他の音を再生するための命令を含む可能性がある。
一部の実装において、ゲームプレイ命令は、クライアントデバイス110がマルチプレイヤーゲームなどのゲームのゲームプレイをレンダリングすることを可能にする命令を指す可能性がある。ゲームプレイ命令は、ユーザ入力(たとえば、制御命令)、キャラクタ位置および速度情報、またはコマンド(たとえば、物理コマンド、レンダリングコマンド、衝突コマンドなど)のうちの1つまたは複数を含む可能性がある。
一部の実装において、オンラインゲーミングサーバ102は、ユーザによって作成されたキャラクタをデータストア120に記憶する可能性がある。一部の実装において、オンラインゲーミングサーバ102は、ユーザに提示される可能性があるキャラクタカタログおよびゲームカタログを保持する。一部の実装において、ゲームカタログは、オンラインゲーミングサーバ102に記憶されたゲームの画像を含む。加えて、ユーザは、選択されたゲームに参加するためにキャラクタカタログからキャラクタ(たとえば、ユーザまたはその他のユーザによって作成されたキャラクタ)を選択する可能性がある。キャラクタカタログは、オンラインゲーミングサーバ102に記憶されたキャラクタの画像を含む。一部の実装において、キャラクタカタログ内のキャラクタのうちの1つまたは複数は、ユーザによって作成されたかまたはカスタマイズされた可能性がある。一部の実装において、選択されたキャラクタは、キャラクタの構成要素のうちの1つまたは複数を定義するキャラクタ設定を有する可能性がある。
一部の実装において、ユーザのキャラクタは、構成要素の構成を含むことが可能であり、構成要素の構成および外観ならびにより広くキャラクタの外観は、キャラクタ設定によって定義される可能性がある。一部の実装において、ユーザのキャラクタのキャラクタ設定は、少なくとも部分的にユーザによって選択される可能性がある。その他の実装において、ユーザは、デフォルトキャラクタ設定またはその他のユーザによって選択されたキャラクタ設定を有するキャラクタを選択する可能性がある。たとえば、ユーザは、予め定義されたキャラクタ設定を有するデフォルトキャラクタをキャラクタカタログから選択する可能性があり、さらに、ユーザは、キャラクタ設定の一部を変更すること(たとえば、カスタマイズされたロゴを有するシャツを追加すること)によってデフォルトキャラクタをカスタマイズする可能性がある。キャラクタ設定は、オンラインゲーミングサーバ102によって特定のキャラクタに関連付けられる可能性がある。
一部の実装において、クライアントデバイス110は、パーソナルコンピュータ(PC)、モバイルデバイス(たとえば、ラップトップ、モバイル電話、スマートフォン、タブレットコンピュータ、またはネットブックコンピュータ)、ネットワークに接続されたテレビ、ゲームコンソールなどのコンピューティングデバイスをそれぞれ含む可能性がある。一部の実装において、クライアントデバイス110は、「ユーザデバイス」とも呼ばれる可能性がある。一部の実装において、1つまたは複数のクライアントデバイス110は、いつでもオンラインゲーミングサーバ102に接続する可能性がある。クライアントデバイス110の数は、例示として与えられることが留意される可能性がある。一部の実装においては、任意の数のクライアントデバイス110が使用される可能性がある。
一部の実装において、各クライアントデバイス110は、ゲームアプリケーション112のインスタンスをそれぞれ含む可能性がある。1つの実装において、ゲームアプリケーション112は、オンラインゲーミングサーバ102によってホストされる仮想ゲームの仮想的なキャラクタを制御するか、またはゲーム106、画像、ビデオアイテム、ウェブページ、ドキュメントなどのコンテンツを見るもしくはアップロードするなど、ユーザがオンラインゲーミングサーバ102を使用し、オンラインゲーミングサーバ102とインタラクションすることを許す可能性がある。一例において、ゲームアプリケーションは、ウェブサーバによって提供されるコンテンツ(たとえば、仮想環境内の仮想的なキャラクタなど)にアクセスするか、そのようなコンテンツを取り出すか、提示するか、またはナビゲートすることができるウェブアプリケーション(たとえば、ウェブブラウザと連携して動作するアプリケーション)である可能性がある。別の例において、ゲームアプリケーションは、クライアントデバイス110のローカルにインストールされ、実行され、ユーザがオンラインゲーミングサーバ102とインタラクションすることを可能にするネイティブアプリケーション(たとえば、モバイルアプリケーション、アプリ、またはゲーミングプログラム)である可能性がある。ゲームアプリケーションは、ユーザに対してコンテンツ(たとえば、ウェブページ、メディアビュワー)をレンダリングするか、表示するか、または提示する可能性がある。実装において、ゲームアプリケーションは、ウェブページに埋め込まれる埋め込みメディアプレイヤー(たとえば、Flash(登録商標)プレイヤー)も含む可能性がある。
本開示の態様によれば、ゲームアプリケーションは、ユーザがコンテンツを構築し、作成し、編集し、オンラインゲーミングサーバ102にアップロードし、オンラインゲーミングサーバ102とインタラクションする(たとえば、オンラインゲーミングサーバ102によってホストされるゲーム106をプレイする)ためのオンラインゲーミングサーバアプリケーションである可能性がある。したがって、ゲームアプリケーションは、オンラインゲーミングサーバ102によってクライアントデバイス110に提供される可能性がある。別の例において、ゲームアプリケーションは、サーバからダウンロードされるアプリケーションである可能性がある。
一部の実装において、各開発者デバイス130は、ゲームアプリケーション132のインスタンスをそれぞれ含む可能性がある。1つの実装において、ゲームアプリケーション122は、オンラインゲーミングサーバ102によってホストされる仮想ゲームの仮想的なキャラクタを制御するか、またはゲーム106、画像、ビデオアイテム、ウェブページ、ドキュメントなどのコンテンツを見るもしくはアップロードするなど、開発者ユーザがオンラインゲーミングサーバ102を使用し、オンラインゲーミングサーバ102とインタラクションすることを許す可能性がある。一例において、ゲームアプリケーションは、ウェブサーバによって提供されるコンテンツ(たとえば、仮想環境内の仮想的なキャラクタなど)にアクセスするか、そのようなコンテンツを取り出すか、提示するか、またはナビゲートすることができるウェブアプリケーション(たとえば、ウェブブラウザと連携して動作するアプリケーション)である可能性がある。別の例において、ゲームアプリケーションは、クライアントデバイス130のローカルにインストールされ、実行され、ユーザがオンラインゲーミングサーバ102とインタラクションすることを可能にするネイティブアプリケーション(たとえば、モバイルアプリケーション、アプリ、またはゲーミングプログラム)である可能性がある。ゲームアプリケーションは、ユーザに対してコンテンツ(たとえば、ウェブページ、メディアビュワー)をレンダリングするか、表示するか、または提示する可能性がある。実装において、ゲームアプリケーションは、ウェブページに埋め込まれる埋め込みメディアプレイヤー(たとえば、Flash(登録商標)プレイヤー)も含む可能性がある。
本開示の態様によれば、ゲームアプリケーション132は、ユーザがコンテンツを構築し、作成し、編集し、オンラインゲーミングサーバ102にアップロードし、オンラインゲーミングサーバ102とインタラクションする(たとえば、オンラインゲーミングサーバ102によってホストされるゲーム106を提供するおよび/またはプレイする)ためのオンラインゲーミングサーバアプリケーションである可能性がある。したがって、ゲームアプリケーションは、オンラインゲーミングサーバ102によってクライアントデバイス130に提供される可能性がある。別の例において、ゲームアプリケーション132は、サーバからダウンロードされるアプリケーションである可能性がある。ゲームアプリケーション132は、オンラインゲーミングサーバ102とインタラクションし、ゲーム開発者によって開発されるか、ホストされるか、または提供される1つまたは複数のゲーム106のためのユーザの資格証明情報(credential)、ユーザの通貨などにアクセスできるように構成される可能性がある。
一部の実装において、ユーザは、ゲームアプリケーションを介してオンラインゲーミングサーバ102にログインする可能性がある。ユーザは、ユーザアカウント情報(たとえば、ユーザ名およびパスワード)を提供することによってユーザアカウントにアクセスする可能性があり、ユーザアカウントは、オンラインゲーミングサーバ102の1つまたは複数のゲーム106に参加するために利用可能な1つまたは複数のキャラクタに関連付けられる。一部の実装においては、適切な資格証明情報を用いて、ゲーム開発者が、その他のユーザによって所有されるまたはその他のユーザに関連付けられるプラットフォーム内通貨(たとえば、仮想的な通貨)、アバター、特別な能力、アクセサリなどのゲームの仮想ゲームオブジェクトにアクセスできる可能性がある。
概して、オンラインゲーミングサーバ102によって実行されるものとして1つの実装において説明される機能は、その他の実装において、適宜、クライアントデバイス110またはサーバによって実行されることも可能である。加えて、特定の構成要素に帰せられる機能が、一緒に動作する異なるまたは複数の構成要素によって実行されることが可能である。オンラインゲーミングサーバ102は、適切なアプリケーションプログラミングインターフェース(API)を通じてその他のシステムまたはデバイスに提供されるサービスとしてアクセスされる可能性もあり、したがって、ウェブサイトにおける使用に限定されない。
図2Aは、一部の実装によるテキストタグを用いてアノテーションされたゲームの例示的なリストを示す。リストは、ゲームプラットフォーム上で利用可能な異なるゲームを含むユーザインターフェース(UI)を介してユーザに対して表示される。
ゲームのリストは、ユーザによるゲームの選択を可能にするためにゲームプラットフォーム上の利用可能なゲームから(たとえば、オンラインゲーミングサーバ102によって)生成される可能性がある。ゲームプレイの統計、異なるゲームをプレイするユーザの数、ユーザのエンゲージメント(engagement)レベル、ゲームの種類などが、ゲームの人気を判定するために利用される可能性がある。
一部の実装においては、ゲームのカテゴリ(220)が、ユーザに対して売り込まれる(強調される)可能性がある。例示的なカテゴリは、図2に示されるように人気のゲーム(220)を含む可能性がある。その他の例は、最上位のソーシャルゲーム、最上位のアドベンチャーゲーム、およびユーザに推薦されるゲームなどを含む可能性がある。各カテゴリは、個々のゲーム(たとえば、230)のリストを含む可能性がある。個々のゲームは、ゲームに関連するアイコンまたはその他の表示と一緒に表示される可能性があるタグ(240)を用いてアノテーションされる可能性もある。一部の実装において、ゲームのリストは、ユーザインターフェースを介してユーザデバイスの初期表示において提供される可能性がある。
ゲームは、ゲームに関連し、ゲームに含まれる特徴を示すタグに関連付けられる可能性もある。たとえば、ゲームは、ユーザがゲームの種類についての追加的な情報を取得することを可能にし得る、タイクーンゲーム、障害物コースゲーム、一人称シューティングゲーム、協力ゲーム、ソーシャルゲームなどのタグに関連付けられる可能性がある。複数のタグが、第1のカテゴリに関連付けられゲームに関連付けられる可能性があり、第2のタグを有するゲームが、複数のカテゴリに関連付けられ得る。たとえば、「Racing Games」というタイトルのゲームのカテゴリは、例示的なタグ「シティレース」、「ジャングルレース」、「砂漠レース」、「ラクダレース」などを有するゲームを含む可能性がある。
一部の実装において、ゲームは、それらのゲームのジャンルまたはゲームに関連するタグ(アドベンチャーゲーム、ソーシャルゲームなど)に基づいて様々なゲームカテゴリにカテゴリ分けされる可能性がある。複数のテキストタグまたはカテゴリが、ゲームに割り振られる可能性がある。一部の実装においては、ゲームプレイのインタラクションの性質が、ゲームをカテゴリ分けするために利用される可能性がある。一部の実装において、ゲームに関する例示的なカテゴリは、アクション、アドベンチャー、格闘、プラットフォーム、パズル、レース、ロールプレイング、シューティング、シミュレーション、スポーツストラテジーなどを含む可能性がある。一部の実装において、ゲームに関連するカテゴリは、ゲームのソーシャルレベルに基づく可能性がある。ゲームのソーシャルレベルは、チャットに基づくゲーム(たとえば、ゲームプレイがゲームプレイヤー間のチャットを含むゲーム)、シングルプレイヤー/マルチプレイヤーゲーム、またはチャット対応ゲーム(たとえば、ゲームプレイがチャットとはっきり分かれているが、プレイヤーがゲームをプレイする間に互いにチャットすることを可能にされるゲーム)などのタグを生成するために使用される可能性がある。一部の実装において、ゲームは、ソーシャルレベルと、ゲームプレイと、テーマに基づくタグとの組合せに関連付けられる可能性がある。
ゲームを強調することは、ユーザが利用可能なゲームを容易に閲覧し、それらのユーザが関心のあるゲームを発見し、プラットフォーム上のすべての利用可能なゲームからそれらのユーザの好ましいゲームの選択を行うことを可能にする可能性がある。
一部の実装において、ゲームは、それらのゲームのジャンルまたはゲームに関連するタグ(アドベンチャーゲーム、ソーシャルゲームなど)に基づいて様々なゲームカテゴリにカテゴリ分けされる可能性がある。複数のテキストタグまたはカテゴリが、各ゲームに割り振られる可能性がある。
一部の実装において、テキストタグは、ゲームに関連するソーシャルインタラクションの度合いを示すソーシャル測定基準を含む可能性がある。一部の実装において、ソーシャル測定基準は、ゲームに関連するソーシャルインタラクションの度合いを示す数である可能性がある。たとえば、一部の実装において、ソーシャル測定基準は、0から1までの間の数である可能性があり、ソーシャル測定基準の値0は、ゲームが非ソーシャルであることを示し、ソーシャル測定基準の値1は、ゲームが非常にソーシャルであることを示す。
一部の実装において、ソーシャル測定基準は、ゲームに関連するソーシャルインタラクションの度合いを示す記述子である可能性がある。たとえば、一部の実装において、ソーシャル測定基準の記述子は、「非ソーシャル」、「幾分ソーシャル」、「非常にソーシャル」、「競争的ソーシャル(competitive-social)」、「協力的ソーシャル(collaborative-social)」などの語である可能性がある。
ゲームプラットフォームは、それらのゲームプラットフォームの提供物の一部として多くの種類のゲームを含み、異なるゲームが、異なるユーザにおよび異なる時間に所与のユーザに訴求する可能性がある。テキストタグおよびソーシャル測定基準は、ユーザが以前プレイしたゲームに基づく予測されたユーザの好みに基づいて参加者にゲームを提案するために利用される可能性がある。ユーザがゲームを閲覧するかまたは検索することを可能にし、複数のゲームおよび対応するテキストタグを含むユーザインターフェースが、提供される可能性がある。
一部の実装においては、ゲームプレイのインタラクションの性質が、ゲームをカテゴリ分けするために利用される可能性がある。一部の実装において、ゲームに関する例示的なカテゴリは、アクション、アドベンチャー、格闘、プラットフォーム、パズル、レース、ロールプレイング、シューティング、シミュレーション、スポーツストラテジーなどを含む可能性がある。
一部の実装において、ゲームカテゴリは、ゲームの舞台設定、ジャンル、および/またはテーマ、たとえば、ウェスタン、都会と田舎(town and country)、都市、ダウンタウン、宇宙などを含む可能性がある。
一部の実装において、ゲームの例示的なカテゴリは、ゲームをプレイするのによく適するデバイスの種類を含む可能性がある。たとえば、ゲームは、デスクトップ、モバイル、仮想現実(VR)などに好適であるものとしてラベル付けされる可能性がある。
一部の実装において、テキストタグは、ゲームに関連付けられ、ユーザインターフェース内に表示される。一部の実装において、テキストタグは、同様のテキストタグを有するゲームをグループにまとめるために利用される。一部の実装において、テキストタグは、ゲームに関連付けられ、ユーザが特定の種類のゲームを検索しているときにユーザによって検索され得る。
図2Bは、一部の実装による例示的なタグの観点でのリストを示す。この説明のための例において、ユーザインターフェース(UI)は、ゲームまたはゲームのアイコンをすべてのその関連するタグと一緒に表示する。このUIビューによって、参加者は、ゲームの詳細を閲覧し、ゲームに関連するすべてのタグについての情報を取得する可能性がある。
図2Cは、一部の実装によるタグの観点でのリストの別の例を示す。この説明のための例において、ユーザインターフェースは、所与のタグに関連付けられるすべてのまたは複数のゲーム(またはゲームのアイコン)のリストを表示する。このUIビューは、参加者が関心のあるタグに関連付けられるゲームに関する閲覧を参加者がすることを可能にし得る。
図3は、一部の実装によるチャットの写しの例示的なデータベースおよびテーブルを示す図である。
図3は、チャットの写し320を記憶するために利用される例示的なデータベース310を示す。チャットの写し320は、図1を参照して説明されたようにゲームの参加者の間のコミュニケーションのチャットの写しを含む可能性がある。チャットの写し320は、チャットの会話の参加者からの特定のユーザの許可を得て記憶され、アクセスされる。
データベース310は、データストア120の一部である可能性があり、または別個のデータベースである可能性がある。一部の実装において、ゲーミングプラットフォームは、ユーザ間のつながりを提供するある種のソーシャルネットワーク、またはユーザ(たとえば、エンドユーザもしくはコンシューマ)がゲーミングプラットフォーム上でその他のユーザとコミュニケーションすることを可能にするある種のユーザ生成コンテンツシステムである可能性があり、コミュニケーションは、音声チャット(たとえば、同期および/もしくは非同期音声コミュニケーション)、ビデオチャット(たとえば、同期および/もしくは非同期ビデオコミュニケーション)、またはテキストチャット(たとえば、同期および/もしくは非同期のテキストに基づくコミュニケーション)を含む可能性がある。
チャットの写しは、明確なユーザの同意および/または許可を得て取得され、分析される様々なユーザのコミュニケーションの写し、たとえば、ゲームの参加者の間のプライベートメッセージ(1:1のメッセージ)の写し、ゲームの参加者のグループの間のグループチャットメッセージ(N:Nのメッセージ)の写し、ゲームの参加者の間の音声コミュニケーションメッセージの写しなどを含み得る。たとえば、ユーザは、特定のチャットデータ(たとえば、1:1のメッセージ)の使用を拒否し、その他のチャットデータ(たとえば、1:1のチャットのチャットメタデータ、N:Nのチャットのチャットデータ)などへのアクセスを許すことを選択し得る。さらに、チャットの写しは、記憶および/または使用する前に、個人を特定可能な情報、たとえば、userIDまたはユーザ名などを削除するために処理され得る。たとえば、図3は個々のユーザ識別子(たとえば、Ed、Paul、Steve、Tomなど)を示すが、そのような識別子が削除され、ランダムに生成された識別子によって置き換えられ得る。さらに、ランダムに生成された識別子は、同じユーザが異なるゲームセッションまたはゲーム内のチャットの活動に関して異なる識別子を割り振られるように生成され得る。データベース(たとえば、図1に関して説明されたデータストア120)が、プラットフォーム上の複数のゲームの各ゲームセッションのチャットの写しを記憶するために使用され得る。それぞれの写しは、対応するゲームおよびゲームセッションに関連付けられる。
図3は、写しを含むデータベース310の例示的なレコード330も示す。チャットの写しは、ゲーム識別子(ゲームID)、セッション識別子(ID)、ならびに異なる参加者から生じるメッセージ、参加者名および/または識別子、メッセージタイムスタンプ、メッセージメタデータ(たとえば、フォーマット、重要性のレベルなど)などを含む詳細なチャットの写しなどのフィールドを含み得る。
この説明のための例においては、ゲームA、B、およびCに関連するチャットの写しが示される。ゲームの各々に関連する異なるゲームプレイセッションの写しも、示される。たとえば、写しは、ゲームAのセッションID 1および2を有するゲームプレイセッションからの写し、ゲームBのセッションID 1、2、および3からの写し、ならびにゲームCのセッションID 1および2を有するゲームプレイセッションからの写しを含む。
この説明のための例において、ゲームAのゲームプレイセッションからのチャットの写しは、「あなたのドレス好き」、「ありがとうAさん。あなたの髪に付いている花、いいですね」、および「そのドレス、アバターショップのどこで手に入りますか」などのユーザのコミュニケーションを含み、「協力的ソーシャル」であるゲームを示す可能性がある。ゲームBのゲームプレイセッションからのチャットの写しは、「気をつけろ。あいつらは近くにいる」、「ありがとう、友よ」、「あいつら私達を見つけたみたいだ」、および「そうだな。他のことをやってみる必要がありそうだ」などのユーザのコミュニケーションを含み、「競争的ソーシャル」であるゲームを示す可能性がある。この説明のための例において、ゲームCからのゲームプレイセッションは、ユーザのコミュニケーションを含まず、「非ソーシャル」ゲームを示す可能性がある。
一部の実装において、チャットの写しは、ユーザのコミュニケーションに関連する追加的な情報、たとえば、参加者のアバター、ユーザのコミュニケーションによるタイムスタンプ時の仮想ゲーム環境内の参加者の位置、参加者によって身につけられたアクセサリ、様々なユーザのコミュニケーションに関連するタイムスタンプなども含む可能性がある。そのような情報は、ユーザが許可を与える場合に記憶され得るおよび/またはアクセスされ得る。チャットの写しのデータベースは、そのレコードの一部として予測された/提案されたカテゴリタグも含む可能性がある。
一部の実装においては、チャットの写しの各組に関連するソーシャル測定基準が、決定される可能性がある。ソーシャル測定基準は、チャットの写しの分析から決定される、ゲームの参加者の間のソーシャルインタラクションの度合いを示す数である可能性がある。
一部の実装においては、ゲームにおける競争のレベルおよび協力のレベルが、決定される可能性がある。たとえば、「団体戦」タイプのゲームにおいては、複数のチームが、1人または複数の勝者を決定するために目標に到達しようとそれらのチーム間で競い合う可能性がある。別の例では、「個人戦」タイプのゲームにおいて、ゲームの個々のプレイヤーが、目標に到達しようとそれらのプレイヤーの個々の能力内で競い合う可能性がある。「団体協力」タイプのゲームにおいては、複数のチームが、共通の目標を目指して協力する(協力して一緒に働く)可能性がある。別の例では、「個人協力」タイプのゲームにおいて、複数の個人が、ゲーム内で共通の目標を達成するために協力する可能性がある。
一部の実装において、他者との交流および交友に基づいて構築されたゲームは、「ソーシャルチャット」ゲームとラベル付けされる可能性がある。一部の実装において、テキストタグは、ゲームに関連する言語を示し、たとえば、ロシア語ゲーム、スペイン語ゲームなどである可能性がある。チャットの言語は、認識され、タグを生成するために利用され得る。
図4は、一部の実装による、チャットの写しからテキストタグを生成するための例示的な方法400を示す流れ図である。
一部の実装において、方法400は、たとえば、図1を参照して説明されたゲーミングサーバ102に実装され得る。一部の実装において、方法400の一部またはすべては、図1に示された1つもしくは複数のクライアントデバイス110に、1つもしくは複数の開発者デバイス130に、または1つもしくは複数のサーバデバイス102に、および/または開発者デバイスと、サーバデバイスと、クライアントデバイスとの組合せに実装され得る。説明される例において、実装するシステムは、1つまたは複数のデジタルプロセッサまたは処理回路(「プロセッサ」)および1つまたは複数のストレージデバイス(たとえば、データストア120またはその他のストレージ)を含む。一部の実装においては、1つまたは複数のサーバおよび/またはクライアントの異なる構成要素が、方法400の異なるブロックまたはその他の部分を実行し得る。一部の例においては、第1のデバイスが、方法400のブロックを実行するものとして説明される。一部の実装は、方法400の1つまたは複数のブロックを、第1のデバイスに結果またはデータを送信することができる1つまたは複数のその他のデバイス(たとえば、その他のクライアントデバイスまたはサーバデバイス)によって実行させ得る。
方法400は、ブロック410において始まる可能性がある。ブロック410において、複数のチャットの写しが取得される。それぞれのチャットの写しは、それぞれのゲームのそれぞれのゲームプレイセッションに関連付けられる可能性があり、ゲームプレイセッションの参加者によって与えられた内容を含む。ユーザが許可を与えたそのようなチャットの写しのみが、取得される。さらに、チャットの写しは、使用する前に、個人を特定可能な情報(たとえば、userID、アバターなど)を削除するために処理される。さらに、特定の単語または語句が、分析する前にチャットの写しの内容から削除され得る。一部の実装において、チャットの写しを取得することは、チャットメタデータ(たとえば、特定のチャットに参加するユーザ、チャットに関連するタイムスタンプ、チャット内のメッセージの数などのうちの1つまたは複数)を取得することに制限され得る。一部の実装においては、たとえば、参加するユーザがすべての視聴者のための許可を示した場合、特定のチャットの写しが「公開チャット」として設定される可能性がある。
一部の実装においては、ユーザの許可に基づいて、チャットの写しが、1:1のチャットの写し、たとえば、2人のユーザの間のプライベートチャットメッセージの写し、N:Nのチャットの写し、たとえば、ゲームプレイセッションのすべての参加者の間のグループチャットメッセージ、ゲームプレイセッション内で形成されたチームのすべての参加者の間のグループチャットメッセージ、および参加者の間の音声会話の写しのうちの1つまたは複数を含む可能性がある。
チャットの写しは、同じゲームの複数の言語のバージョンからのチャットの写しを含む可能性がある。たとえば、同じ基準となるゲームのフランス語、ドイツ語、ヒンディー語、およびロシア語のバージョンが存在する場合、すべての言語のバージョンからのチャットの写しが、チャットの参加者のユーザによって許可された通りに揃えられ、一緒に分析される可能性がある。
一部の実装においては、ユーザの許可を得て、口頭のコミュニケーションのストリームをテキストの写しに変換するためにスピーチトゥテキストテクノロジーが利用される可能性がある。一部の実装においては、既に文字に起こされた音声コミュニケーションの写しが、利用される可能性がある。一部の実装においては、実質的にリアルタイムの文字起こし技術が、ゲームプレイセッションからの音声録音を分析するために利用される可能性がある。
一部の実装においては、ユーザの許可を得て、テキストの写しが、ユーザ毎に正規化される(normalized)可能性がある。たとえば、チャットの量の多いユーザに関連するチャットの内容は、チャットの量の少ない別のユーザよりも重要性が低い可能性がある。一部の実装においては、すべてのゲームの種類によく見られ、ゲームについての特定の合図を与えないメッセージの種類、たとえば、「こんにちは」、「さようなら」などのあいさつ、「どうやって」、「どうして」などの疑問、「rofl」、「lol」などの感情の表現などをフィルタリングするために前置フィルタが利用される可能性がある。一部の実装において、(ゲームセッションが人間のゲームプレイヤーをまねる1つまたは複数の自動化されたプレイヤーまたはボットを含む)ボット化されたゲームセッションからのチャットの写しは、除外される可能性があり、たとえば、特定されたボットのテーブルが、疑わしいボット化されたセッションからのチャットの写しをチャットの写しから削除するために利用される可能性がある。一部の実装において、ボット化されたセッションは、完全に除外される可能性があり(セッションからのチャットの写しのデータがタグの生成から除外される)、または部分的に除外される可能性がある(たとえば、ボットからのおよびボットへのチャットの内容がタグの生成のための分析から除外される)。
ブロック410は、後にブロック420が続く可能性がある。
ブロック420においては、ユーザの許可を得て、複数のチャットの写しが、各ゲームに関する1つまたは複数の特性を決定するためにプログラムによって分析される。
一部の実装において、チャットの写しは、各ゲームに関連する1つまたは複数の数値的な測定基準を決定するためにプログラムによって分析される可能性がある。数値的な測定基準は、ゲームのゲームプレイセッション内のメッセージの量を示す可能性がある。ゲームに関連する数値的な測定基準は、複数のチャットの写しの各々のメッセージの数に基づく測定基準を含む可能性がある。たとえば、チャットメタデータのプログラムによる分析が、時間期間毎の各写しのメッセージの数(たとえば、ゲームプレイの1時間または1秒毎のメッセージの数)、ゲームプレイセッションの各参加者から生じる各写しのメッセージの数を決定するために実行され得る。たとえば、より高いメッセージング率およびより高い参加率を有するゲームからのチャットの写しは、より低いメッセージング率およびより低い参加率を有するゲームのチャットの写しよりもソーシャルなゲームを示す可能性がある。
一部の実装においては、複数のチャットの写しの各々のメッセージの数に基づく統計パラメータが、計算される可能性がある。たとえば、それぞれのゲームの参加者に関連するメッセージの平均、中央値、または最頻値のうちの1つまたは複数が、決定される可能性がある。ゲームの参加者の参加のレベルが、統計パラメータに基づいて決定される可能性がある。
ゲーム特性は、各ゲームに関連するソーシャル測定基準も含み得る。チャットの写しの各メッセージ内の単語数が、ゲームに関連するソーシャル測定基準を決定するために利用される可能性がある。
一部の実装においては、チャットの内容へのアクセスがチャットの参加者によって許可されるとき、ソーシャル測定基準は、チャットの写しの各々の各メッセージのテキスト分析に基づいて決定され得る。テキスト分析は、チャットの写しのテキストの解釈を得るためにチャットの写しを解析するために利用され得るナレッジグラフと連携して実行されることが可能である。テキスト分析は、写しの中で言及した事柄をグラフ内の特定の概念にリンクするセマンティックアノテーション(semantic annotation)を生成する。
一部の実装においては、ユーザの許可を得て、テキスト分析は、ソーシャルインタラクションの程度を示す単語の度数分布を決定することを含み得る。たとえば、チャットの写しに現れる異なる単語の度数のヒストグラムが、ソーシャルインタラクションの程度を示す単語の度数に基づいてソーシャル測定基準を決定するために利用される可能性がある。たとえば、交友ならびに同様の気分および感情を示す単語の高い度数は、交友などを示す単語の度数がより低いゲームよりも高いゲームのソーシャルな性質のレベルを示す可能性がある。
ゲーミングプラットフォームのチャットの特徴の使用の前に、ユーザは、チャットの特徴を選択し、様々なパラメータを設定するオプションを与えられる。たとえば、ユーザは、プライベートテキストチャットにのみ参加することを選択し、チャットデータがセッションの継続時間の間のみ記憶され、その後はアクセス不可能であるようにパラメータを設定する可能性がある。別の例において、ユーザは、そのユーザのチャットの活動のすべてにアクセスする許可を与えることを選択する可能性がある。さらに、チャットデータの記憶および/または使用は、プラットフォームの規則および規制に従って構成され、たとえば、ユーザの所在地の地方自治体の方針に基づいて決定される。そのようなユーザが許可されない場所においては、チャットデータが使用されないか、またはゲーミングプラットフォームのチャットの特徴が完全にオフにされる可能性がある。
ブロック420は、後にブロック430が続く可能性がある。
ブロック430において、複数のゲームのうちの少なくとも1つのゲームに関するテキストタグが、そのゲームの特性(ゲーム特性)に基づいて生成される可能性がある。
異なる実装において、テキストタグは、様々な目的で利用される可能性がある。一部の実装において、テキストタグは、ゲームのゲーム識別子と関連付けてデータベースに記憶され得る。これらの実装においては、記憶されたテキストタグが、ゲームの検索または閲覧をサポートするために利用され得る。たとえば、ユーザの許可を得て、記憶されたタグとのユーザが入力した検索語(たとえば、「ソーシャルチャット」)の意味的比較が、ユーザの検索に合うゲームを特定するために実行される可能性がある。別の例において、記憶されたテキストタグは、ゲームに割り振られたタグによってユーザがゲームを閲覧することを可能にするユーザインターフェースをレンダリングするために使用される可能性がある。
一部の実装において、ゲームに関するテキストタグは、(たとえば、ゲームクリエイターによって)ゲームに手動で割り振られるタグを評価するために利用される可能性がある。評価は、それぞれの手動で割り振られたタグが誤っているまたは関連がないかどうかの判定を含む。そのような評価をすると、誤ったまたは関連のないタグが、抑制される、たとえば、ゲームとの関連付けから隠されるおよび/または削除される可能性がある。このようにして手動で割り振られたタグを抑制することは、ゲームの品質およびプレイヤーの関心とのゲームの関連性に基づいてゲームへのプレイヤーのトラフィックが本物であることを保証するのに役立ち得る。これは、プレイヤーが楽しむゲームプレイセッションの割合をより高めることにつながり、誤ったまたは関連のないラベルが原因で発生する可能性がある短い(たとえば、1分未満)または不満足なセッションの数を削減することができる。
一部の実装において、チャットの写しのプログラムによる分析は、各ゲームに関する特性を決定するために訓練された機械学習モデルを適用することを含む可能性がある。MLモデルは、チャットの写しに基づいて1組の予測されたタグを生成する。
一部の実装において、MLモデルは、単語をベクトルに変換する単語埋め込みアーキテクチャを利用する非構造化MLモデルである可能性がある。たとえば、単語埋め込みアーキテクチャは、チャットの写しに現れる単語または語句を実数のベクトルにマッピングするために利用される可能性がある。
一部の実装において、MLモデルは、チャットの写しの空間の次元を、たとえば、単語毎に多くの次元を有する空間からより低い次元を有する連続したベクトル空間に減らすために数学的な埋め込みを利用する。たとえば、トランスフォーマからの双方向エンコーダ表現(BERT: Bidirectional Encoder Representations from Transformers)モデル、FastTextモデル、または汎用Word2Vecモデルが、予備分析を実行するためにゲームプラットフォームから取得されたチャットの写しのテキストに適用され得る。チャットの写しに含まれるユーザ名は、予備分析中に好適なタグ、たとえば、[user]または[USER]タグによって置き換えられる可能性がある。
一部の実装においては、訓練の前に、1組のチャットの写しが、たとえば、人間の有志から得られたグラウンドトゥルース(groundtruth)タグを用いてタグ付けされるチャットのブロックへと構成される(組み立てられる)可能性がある。チャットの写しのブロックは、たとえば、BERTまたはFastTextなどの分類器を使用することによってMLモデルを訓練するために利用される可能性がある。
たとえば、MLモデルは、チャットの写しに基づく特徴ベクトル(または埋め込み)を決定する可能性がある。特徴ベクトル(または埋め込み)は、チャットの写しに基づいて生成された数学的な多次元表現である可能性がある。異なるゲームは、それらのゲームのそれぞれのチャットの写しに基づく異なる特徴ベクトルを有する可能性がある。訓練されたMLモデルは、似たゲーム(似た種類のチャットの写しに関連付けられるゲーム)に関して似た特徴ベクトルを生成する。
一部の実装において、分析は、チャットの写しの個々の構成要素に基づく。一部の実装において、分析は、全体として考慮されるチャットの写しに基づく。分析の種類の選択は、文脈に応じて決まる可能性があり、たとえば、ゲームが膨大な量のチャットデータを有する場合、個々の構成要素の迅速な分析が、タグを速く生成するために実行される可能性がある。チャットの写し全体の分析が、その後実行される可能性がある。
複数のゲームからの似たゲームプレイは、MLモデルを使用してゲームの特徴を分析することによって明らかにされる特徴空間内の似たチャットの写しを含む。チャットの写しは、MLモデルに入力として与えられ、MLモデルは、特徴ベクトルもしくは埋め込みを導出し、および/または導出された特徴ベクトルもしくは埋め込みに基づいてゲームをクラスタリングし、ゲームに関連する予測されたタグを生成する可能性がある。
一部の実装においては、ソーシャルゲーム閾値が、ゲームがソーシャルゲームであるかどうかを判定するために利用される可能性がある。ゲームは、ゲームに関して計算されたゲーム特性および/またはソーシャル測定基準の組合せがソーシャルゲーム閾値を満たす場合にソーシャルゲームであると判定される/ラベル付けされる可能性がある。
一部の実装においては、ゲームの参加者の間の協力のレベルおよび競争のレベルが、ゲーム特性に基づいて決定される可能性がある。
一部の実装においては、受容レベルが、ゲームに関して決定される可能性がある。受容レベルは、活発に参加している、たとえば、その他の参加者によって送信されたチャットメッセージを見ているゲームの参加者の数(カウント)などに基づく可能性がある。受容レベルは、ゲームの参加者による活発な参加のレベルを示す可能性がある。
受容レベルは、異なる仮想的および/または地理的ゾーン全体で決定される可能性がある。たとえば、受容レベルは、その他の参加者の特定の距離内にいる参加者に関して決定され、局所的な領域(たとえば、特定の州、都市、または国などにいるすべてのゲームの参加者)内の受容のレベルを示す可能性がある。別の例において、受容レベルは、ゲームに関するグローバルな広がりのレベルを推定するために地理的領域全体で決定される可能性がある。一部の実装において、ゲームは、仮想環境(たとえば、架空の惑星上に仮想的に一緒に配置されるすべてのゲームの参加者またはアバターがピザ屋にいるすべてのゲームの参加者)を含む可能性があり、チャットの写しの分析は、仮想環境の同じ領域にいるアバターに関連付けられる参加者のチャットの写しを含む。
カテゴリによって定義される仮想的なゾーン、たとえば、特定の時間の期間を超える期間の間プレイした参加者、プラットフォームの新しい参加者が、決定される可能性がある。たとえば、ゲームのチャットの写しのプログラムによる分析がゲームプラットフォームの新しい参加者の高い参加率を示す場合、それは、ゲームが新しいユーザに優しいゲームであることを示す可能性がある。
一部の実装において、受容レベル(または聴取者数(listenership)/聴取率(listen rate))は、ユーザの異なるカテゴリ、たとえば、新しいユーザ、長期のプレイヤー/経験を積んだプレイヤー、不定期の/たまのプレイヤーなどに関して決定される可能性がある。
一部の実装において、ゲームプレイセッションは、グループにクラスタリングされ、分析は、クラスタリングされたゲームセッションのグループの分析を含む。クラスタリングされたゲームセッションのグループの分析に基づいて、グループに関するテキストタグ、たとえば、ソーシャル協力(social collaborative)、団体戦、単独などが生成される。ゲームに関するタグは、特定のクラスタに入るグループの閾値(セッションの最小数または割合)の数に基づいて生成される可能性がある。一部の実装において、タグまたはソーシャル測定基準は、それがゲームが弁別的な特性を持たないことを示す可能性があるので、閾値が満たされない場合、生成されない可能性がある。
方法400またはその一部は、さらなる入力を使用して任意の回数繰り返される可能性がある。一部の実装において、テキストタグは、所定の頻度で、たとえば、毎日、毎週などで生成される可能性がある。一部の実装において、方法400は、ゲームの更新によってトリガされる可能性がある。
一部の実装において、方法400またはその一部は、ゲームコンテンツの更新、たとえば、ゲームに対するコードベース変更、ゲームのデジタルアセットに対する変更などに基づいて繰り返される可能性がある。一部の実装において、方法400またはその一部は、ゲームのステータスの更新に基づいて、たとえば、特定の時間の期間における特定の数の新しいゲームプレイセッション、チャットの写しの前の分析以後の特定の数の新しいゲームプレイセッションなどに基づいて繰り返される可能性がある。一部の実装において、方法400またはその一部は、ゲームプラットフォーム上のゲームのゲームプレイの統計の変化に基づいて繰り返される可能性がある。
図5は、一部の実装による、訓練された機械学習(ML)モデルに基づくゲームに関するテキストタグの生成の例を示すブロック図である。
一部の実装において、訓練された機械学習モデル530は、ユーザによって許可された通りに、ゲームプレイセッションのチャットの写し510に基づくテキストタグ550の生成のために利用される。タグリポジトリ540が、複数のテキストタグを記憶するために利用される可能性がある。予測されたテキストタグ550が、チャットの写し510に基づいて生成される。
一部の実装において、MLモデルは、非構造化単語埋め込みモデル、たとえば、FastTextまたはWord2Vecモデルである。
一部の実装において、MLモデルは、ニューラルネットワークである。一部の実装において、MLモデルは、2クラス分類、多クラス分類、および回帰のうちの1つまたは複数を含む可能性がある。一部の実装において、MLモデルは、K平均モデル、kNNモデル、線形回帰モデル、ロジスティック回帰モデル、決定木モデル、SVMモデル、単純ベイズモデル、ランダムフォレストモデルなどである可能性がある。
一部の実装においては、異なるMLモデルが、チャットの写しの異なるクラスのために利用される可能性がある。一部の実装においては、同じMLモデルが、すべてのチャットの写しに利用される可能性がある。
一部の実装において、予測されたテキストタグは、異なる種類(クラス)のチャットの写しに基づく予測されたタグの一致に基づいて決定される可能性がある。たとえば、テキストタグは、2つ以上の種類のチャットの写しからの予測が所定の距離以内にあるときに予測される可能性がある。一部の実装において、テキストタグは、3つ以上の種類のチャットの写しからの予測が所定の距離以内にあるときに予測される可能性がある。
一部の実装においては、異なるチャットの写しに基づく予測に重みが割り振られる可能性があり、重み付けされたスコアがMLモデルによって予測されたタグを決定するために利用される可能性がある。
一部の実装においては、ユーザ(開発者)によって与えられたテキストタグが、悪意のある開発者がゲームの特性によってサポートされない誤解を招く恐れがあるテキストタグを与えないことを保証するためにMLモデルによって検証される可能性がある。たとえば、ゲームの特定の種類/カテゴリが非常に人気がある場合、ゲーム開発者は、実際にはゲームが人気のあるゲームカテゴリに対応する特性を含まないときに、ゲームが人気のあるゲームカテゴリに属することを示すタグをそのゲーム開発者のゲームに付ける可能性がある。
図6は、一部の実装による、ユーザが許可したチャットの写しからまたは合成によって生成されたチャットの写しからのテキストタグの生成のために教師あり学習を使用して機械学習モデルを訓練する例を示すブロック図である。
教師あり学習は、1つまたは複数のプロセッサおよびソフトウェア命令を有するメモリを含むコンピュータ上で実施され得る。一部の実装において、1つまたは複数のプロセッサは、汎用中央演算処理装置(CPU)、グラフィックス処理ユニット(GPU)、機械学習プロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または任意のその他の種類のプロセッサのうちの1つまたは複数を含む可能性がある。
この説明のための例において、教師あり学習が、訓練データ610およびフィードバックジェネレータ650に基づいて機械学習(ML)モデル630を訓練するために使用される。MLモデル630は、任意の好適な機械学習技術、たとえば、順伝播型ニューラルネットワーク、畳み込みニューラルネットワーク、または任意のその他の好適な種類のニューラルネットワークを使用して実装される可能性がある。一部の実装において、ベイズモデル、サポートベクタマシン、隠れマルコフモデル(HMM)などのその他の機械学習技術も、MLモデル630を実装するために使用され得る。
訓練データ610は、複数のゲームに関する(ユーザが許可したおよび/または合成によって生成された)チャットの写し615ならびにグラウンドトゥルースタグ625を含む。チャットの写しは、たとえば、図3に関して説明された任意のチャットの写しを含む可能性がある。グラウンドトゥルーステキストタグは、ゲームの開発者、ゲームプレイヤー、またはその他の人間のユーザによって与えられたタグから取得される可能性がある。
この説明のための例において、チャットの写し615は、訓練されている機械学習(ML)モデル630に与えられる。MLモデルは、MLモデルの現在の状態およびチャットの写しに基づいて1組の予測されたタグ640を生成する。たとえば、MLモデルは、チャットの写し615の特徴に基づく特徴ベクトル(または埋め込み)を決定する可能性がある。特徴ベクトル(または埋め込み)は、チャットの写し615に基づいて生成された数学的な多次元表現である可能性がある。異なるゲームは、それぞれのチャットの写しに基づく異なる特徴ベクトルを有する可能性がある。訓練すると、MLモデルは、似たゲーム(似た種類のチャットの写しに関連付けられるゲーム)に関して似た特徴ベクトルを生成する。
チャットの写しの個々の構成要素に基づく分析は、ゲームコンテンツの不正確な判定につながり得る。その代わりに、全体として考慮されるときのチャットの写しの分析は、ゲームコンテンツの正確である可能性が高い判定につながり得る。複数のゲームからの似たゲームプレイは、MLモデルを使用してゲームの特徴を分析することによって明らかにされる特徴空間内の似たチャットの写しのメッセージを含む。それぞれのチャットの写しおよび/またはチャットの写しの組合せが、MLモデルに入力される特徴として使用される可能性がある。特徴は、ゲームをクラスタリングし、ゲームに関連する予測されたタグを生成するためにMLモデルによって利用される。
言い換えると、チャットの写しは、ゲームに関するテキストタグを決定するために使用される可能性があるゲームの特性を決定するために使用される可能性がある。MLモデル630は、ゲームに関するテキストタグを生成するために特徴ベクトルを利用する可能性がある。たとえば、マップ、ターゲット、武器についての参加者(ユーザ)の会話を含むゲームのチャットの写しは、ゲームがサバイバルまたはバトルロイヤルゲームに関連することを示す可能性がある。別の例において、車、スピード、馬力などについてのユーザの会話を含むチャットの写しは、ゲームがレースゲームに関連することを示す可能性がある。
たとえば、第1のゲームが、マップ、ターゲット、武器などへの言及を含み、参加者の2つのグループ(チーム)のメンバーの参加者の間の大量のテキストメッセージを有するチャットの写しを含む可能性がある一方、第2のゲームは、記録されたユーザのコミュニケーションがないチャットの写しを有する可能性がある。MLモデル630は、ゲームが類似性のあるチャットの写しを持たないことに基づいてこれらの2つの例示的なゲームに関して著しく離れた特徴ベクトルを生成する可能性がある。一方、団結心、山、テント、ハイキングなどへのユーザのコミュニケーションの言及があり、参加者の2つのグループ(チーム)のメンバーの参加者の間の大量のテキストメッセージを有するチャットの写しを含む第3のゲームに関して、生成される特徴ベクトルは、第1のゲームの特徴ベクトルに似ている可能性がある。
MLモデル630は、ゲームに関連するチャットの写しに基づいて、たとえば、特徴ベクトルに基づいて、ならびに/またはその他のゲームの特徴ベクトルおよびそれらのその他のゲームに関連するタグとの類似性に基づいてゲームのテキストタグを生成する可能性がある。たとえば、MLモデル630は、第1のゲームおよび第3のゲームに関して「団体協力的」または「ソーシャル協力的」タグを生成し、第2のゲームに関して「非ソーシャル」タグを生成する可能性がある。
MLモデル630によって生成された予測されたタグ640は、フィードバックジェネレータ650に与えられる。
フィードバックジェネレータ650は、ゲームに対応するグラウンドトゥルースタグ625(たとえば、人間が監修したタグ)も与えられる。フィードバック660が、グラウンドトゥルースタグとの予測されたタグの比較に基づいてフィードバックジェネレータ650によって生成される。たとえば、予測されたタグ640がグラウンドトゥルースタグ625に似ている場合、肯定的なフィードバックがフィードバック660として提供される可能性があり、一方、タグが似ていない場合、否定的なフィードバックが訓練されているMLモデルに提供され、訓練されているMLモデルは、強化学習技術を使用して受信されたフィードバックに基づいて更新される可能性がある。
一部の実装において、MLモデルは、浅いWord2Vec/FastTextアーキテクチャまたはBERTアーキテクチャを含む。
一部の実装において、MLモデルは、1つまたは複数のニューラルネットワークを含む。ニューラルネットワークは、複数の層を含む複数の層に編成される可能性がある。各層は、複数のニューラルネットワークのノードを含む可能性がある。特定の層内のノードは、直前の層内のノードおよび直後の層内のノードに接続される可能性がある。一部の実装において、MLモデルは、畳み込みニューラルネットワーク(CNN)である可能性がある。
一部の実装において、チャットの写しは、単一のMLモデルによってすべて同時に処理される。一部の実装においては、特定の種類のチャットの写しが、第1のMLモデルによって処理され、一方、チャットの写しの別のサブセットは、第2のMLモデルによって処理される可能性があり、チャットの写しのさらに別のサブセットは、第3のMLモデルによって処理される可能性がある、などである。たとえば、音声の写しは、第1のMLモデルによって処理される可能性があり、テキストの写しは、第2のMLモデルによって処理される可能性がある、などである。
一部の実装においては、チャットの写しの異なるカテゴリを処理し、チャットの写しの各カテゴリの特性を特定するために異なる種類のMLモデルが利用される可能性がある。それから、特定された特性が、異なるMLモデルによって処理される可能性があり、その異なるMLモデルは、予測されたタグを生成するためのその入力としてこれらの中間出力に対して動作する。
MLモデルの訓練は、指定された感覚で周期的に実行されるかまたはイベントによってトリガされる可能性がある。一部の実装において、訓練は、テキストタグの予測精度の閾値のレベルが達せられるまで繰り返される可能性がある。
一部の実装において、チャットの写しは、MLモデルに提供される前に前処理される可能性がある。たとえば、一部の実装においては、ストップワード、スパムであることが検出されたチャットの写しの内容、ボットから生じたことが検出されたチャットの写しの内容、無関係なテキストなどが、MLモデルに提供される前に削除される可能性がある。一部の実装において、チャットの写しの内容は、BERTモデルに提供される前にチャンクへとグループ化される可能性がある。
図7は、一部の実装による、テキストタグの生成のために機械学習モデルを訓練するための例示的な方法を示す流れ図である。
一部の実装において、方法700は、たとえば、図1を参照して説明されたゲーミングサーバ102に実装され得る。一部の実装において、方法700の一部またはすべては、図1に示された1つもしくは複数のクライアントデバイス110に、1つもしくは複数の開発者デバイス130に、または1つもしくは複数のサーバデバイス102に、および/または開発者デバイスと、サーバデバイスと、クライアントデバイスとの組合せに実装され得る。説明される例において、実装するシステムは、1つまたは複数のデジタルプロセッサまたは処理回路(「プロセッサ」)および1つまたは複数のストレージデバイス(たとえば、データストア120またはその他のストレージ)を含む。一部の実装においては、1つまたは複数のサーバおよび/またはクライアントの異なる構成要素が、方法700の異なるブロックまたはその他の部分を実行し得る。一部の例においては、第1のデバイスが、方法700のブロックを実行するものとして説明される。一部の実装は、方法700の1つまたは複数のブロックを、第1のデバイスに結果またはデータを送信することができる1つまたは複数のその他のデバイス(たとえば、その他のクライアントデバイスまたはサーバデバイス)によって実行させ得る。
一部の実装において、方法700または方法の一部は、システムによって自動的に開始され得る。一部の実装において、実装するシステムは、第1のデバイスである。たとえば、方法(またはその一部)は、周期的に実行され得るか、あるいは1つまたは複数の特定のイベントまたは条件、たとえば、テキストタグの予測の精度が閾値未満になること、方法700の最後の実行から所定の時間の期間が終了したこと、および/または方法によって読まれる設定で指定され得る1つもしくは複数のその他の発生する条件に基づいて実行され得る。ユーザがチャットの写しの使用の許可を拒否する場合、またはチャットの写しがその他の理由で利用不可能である場合、ゲームに関するテキストタグがチャットの情報に基づいて決定されないように、方法700は実行されない。
方法700は、ブロック710において始まる可能性がある。ブロック710において、特定のユーザの許可を得て取得された様々なゲームに関連するチャットの写しが、機械学習モデルに入力として与えられる。ユーザの許可を得て、データは、複数のゲーム識別子と、ゲーム識別子によって特定される各ゲームに関連するチャットの写しのそれぞれの組とを含む。たとえば、ゲームに関連するタイトルまたは英数字のコードおよび1組のチャットの写し、たとえば、テキストメッセージ、ボイスメッセージなどが、MLモデルに入力として与えられる可能性がある。
上述のように、チャットの写しは、ユーザによって許可された通りに、1:1のテキストメッセージ、N:Nのテキストメッセージ、および/またはボイスメッセージを含む可能性がある。ユーザが許可を与えるとき、チャットの写しは、参加者によるアバターの使用、ゲームプレイセッション中の参加者/アバターの位置、タイムスタンプなどの追加的な情報も含む可能性がある。ブロック710は、後にブロック720が続く可能性がある。
ブロック720において、予測されたテキストタグが、ゲーム識別子によって特定されたゲームに関するチャットの写しおよびMLモデルの現在の状態に基づいてMLモデルによって生成される。
ニューラルネットワークを使用する実装においては、それぞれの特徴ベクトルが、チャットの写しのそれぞれの組に基づいて、ゲーム識別子によって特定された各ゲームに関して生成される可能性がある。一部の実装において、機械学習モデルは、1つまたは複数の入力ニューラルネットワークおよび出力ニューラルネットワークを含む。それぞれの特徴ベクトルは、1つまたは複数の入力ニューラルネットワークを使用して生成され、それぞれの特徴ベクトルは、出力ニューラルネットワークに入力として与えられる可能性がある。ブロック720は、後にブロック730が続く可能性がある。
ブロック730において、予測されたテキストタグが、グラウンドトゥルースタグと比較される。たとえば、ゲーム識別子によって特定されたゲームに関する1つまたは複数の予測されたテキストタグが、ゲームに関連するそれぞれのグラウンドトゥルースタグと比較される。テキストタグの予測の精度が、各ゲームに関して決定され、たとえば、MLモデルが与えられたチャットの写しに基づいて各ゲーム関するテキストタグを成功裏に予測したかどうかが、評価される。損失値が、テキストタグの予測の精度に基づいて決定される。ブロック730は、後にブロック740が続く可能性がある。
ブロック740において、MLモデルが、予測されたタグとグラウンドトゥルースタグとの比較から生成されたフィードバックに基づいて更新される。たとえば、損失値が、MLモデルの1つまたは複数のパラメータを調整するために利用される。たとえば、MLモデルがニューラルネットワークを使用して実装されるとき、ニューラルネットワークの1つもしくは複数のノードに関連する重みおよび/またはニューラルネットワークのノードの1つもしくは複数のペアの間の接続が、損失値に基づいて調整される可能性がある。一部の実装においては、ニューラルネットワークのノードのペアの間のリンクに関連する重みが、調整される可能性がある。ブロック740は、後にブロック750が続く可能性がある。
ブロック750において、MLモデルの精度が、累積的な結果に基づいて決定され、閾値と比較される。たとえば、MLモデルによって生成されたタグが、精度を決定するためにグラウンドトゥルースタグと比較される可能性がある。別の例においては、MLモデルによって生成されたタグが、ゲームプラットフォームのユーザに対してユーザインターフェースを表示するために使用される可能性があり、タグの有効性が、(たとえば、タグに関するクリックスルーレート、A/Bテスト構成におけるMLモデルによって生成されたタグを含むユーザインターフェースによって生成されたゲームプレイ対その他の方法で取得されたタグを含むユーザインターフェースによって生成されたゲームプレイ、人による評価などに基づいて)測定される可能性がある。精度が閾値を満たす場合、訓練されたMLモデルは、配備に適すると判定され、処理は、ブロック770に進み、そうでない場合、MLモデルの訓練が、継続され、処理は、710に戻る。
一部の実装において、MLモデルは、異なる種類/クラスの写し、たとえば、グループチャットメッセージ、ボイスメッセージなどを利用することによって一緒に訓練される。一部の実装において、異なるクラス/種類の写しは、MLモデルに一緒に与えられる前に別々にブロック化される(チャンク化される)可能性がある。
ブロック770において、訓練されたMLモデルが、ゲームに関するテキストタグの生成のために配備される可能性がある。
方法700またはその一部は、さらなる入力を使用して任意の回数繰り返される可能性がある。たとえば、ブロック720および730は、グラウンドトゥルーステキストタグの複数の組を用いて繰り返される可能性がある。別の例において、ブロック710〜750は、さらなるゲームを用いて繰り返される可能性がある。方法700は、テキストタグの予測精度の閾値のレベルが達せられるまで繰り返される可能性がある。
一部の実装において、方法700またはその一部は、周期的に繰り返される可能性がある。たとえば、方法700またはその一部は、毎日、毎週、毎月などでMLモデルを再訓練するために繰り返される可能性がある。一部の実装において、方法700またはその一部は、ゲームの格付けの変化、たとえば、ゲームプラットフォームにおける上位/人気ゲームの格付けの変化に基づいて、またはゲームのコードベースの変更、ゲームのデジタルアセットの変更などに基づいて繰り返される可能性がある。一部の実装において、方法700は、新しいテキストタグの追加に基づいて繰り返される可能性がある。
図8は、本明細書において説明される1つまたは複数の特徴を実装するために使用される可能性がある例示的なコンピューティングデバイス800のブロック図である。一例において、デバイス800は、コンピュータデバイス(たとえば、図1の102および/または110)を実装し、本明細書において説明される適切な方法の実装を実行するために使用される可能性がある。コンピューティングデバイス800は、任意の好適なコンピュータシステム、サーバ、またはその他の電子もしくはハードウェアデバイスであることが可能である。たとえば、コンピューティングデバイス800は、メインフレームコンピュータ、デスクトップコンピュータ、ワークステーション、ポータブルコンピュータ、または電子デバイス(ポータブルデバイス、モバイルデバイス、セル電話、スマートフォン、タブレットコンピュータ、テレビ、TVセットトップボックス、携帯情報端末(PDA)、メディアプレイヤー、ゲームデバイス、ウェアラブルデバイスなど)であることが可能である。一部の実装において、デバイス800は、プロセッサ802、メモリ804、入力/出力(I/O)インターフェース806、およびオーディオ/ビデオ入力/出力デバイス814を含む。
プロセッサ802は、プログラムコードを実行し、デバイス800の基本動作を制御するための1つまたは複数のプロセッサおよび/または処理回路であることが可能である。「プロセッサ」は、データ、信号、またはその他の情報を処理する任意の好適なハードウェアおよび/またはソフトウェアシステム、メカニズム、または構成要素を含む。プロセッサは、汎用中央演算処理装置(CPU)、複数の処理ユニット、機能を実現するための専用回路を有するシステム、またはその他のシステムを含む可能性がある。処理は、特定の地理的位置に限定されるまたは時間的な制限を有するとは限らない。たとえば、プロセッサは、「リアルタイム」、「オフライン」、「バッチモード」などでそのプロセッサの機能を実行する可能性がある。処理の一部は、異なる(または同じ)処理システムによって異なる時間に異なる場所において実行される可能性がある。コンピュータは、メモリと通信する任意のプロセッサである可能性がある。
メモリ804は、プロセッサ802によるアクセスのために概してデバイス800内に設けられ、プロセッサによる実行のために命令を記憶するのに好適であり、プロセッサ802と分けて配置されたおよび/またはプロセッサ802と統合された任意の好適なプロセッサ可読ストレージ媒体、たとえば、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能読み出し専用メモリ(EEPROM)、フラッシュメモリなどである可能性がある。メモリ804は、オペレーティングシステム808、1つまたは複数のアプリケーション810、たとえば、オーディオ空間化アプリケーション、およびアプリケーションデータ812を含む、プロセッサ802によってサーバデバイス800上で動作するソフトウェアを記憶することができる。一部の実装において、アプリケーション810は、プロセッサ802が本明細書において説明される機能、たとえば、図4および図7に関して説明された方法の一部もしくはすべてを実行する(または機能を制御する)ことを可能にする命令を含み得る。
たとえば、アプリケーション810は、本明細書において説明されるようにオンラインゲーミングサーバ(たとえば、102)内でオーディオ空間化を提供することができるオーディオ空間化モジュール812を含み得る。メモリ804内のソフトウェアの要素は、代替的に、任意のその他の好適な記憶場所またはコンピュータ可読媒体に記憶され得る。さらに、メモリ804(および/またはその他の接続されたストレージデバイス)は、本明細書において説明される特徴において使用される命令およびデータを記憶し得る。メモリ804および任意のその他の種類のストレージ(磁気ディスク、光ディスク、磁気テープ、またはその他の有形の媒体)は、「ストレージ」または「ストレージデバイス」とみなされ得る。
I/Oインターフェース806は、サーバデバイス800とその他のシステムおよびデバイスとのインターフェースを取ることを可能にするための機能を提供することができる。たとえば、ネットワーク通信デバイス、ストレージデバイス(たとえば、メモリおよび/またはデータストア120)、ならびに入力/出力デバイスは、インターフェース806を介して通信することができる。一部の実装において、I/Oインターフェースは、入力デバイス(キーボード、ポインティングデバイス、タッチスクリーン、マイクロフォン、カメラ、スキャナなど)および/または出力デバイス(ディスプレイデバイス、スピーカデバイス、プリンタ、モニタなど)を含むインターフェースデバイスに接続し得る。
オーディオ/ビデオ入力/出力デバイス814は、ユーザ入力を受信するために使用され得るユーザ入力デバイス(たとえば、マウスなど)、グラフィカルなならびに/または視覚的な出力を提供するために使用され得るディスプレイデバイス(たとえば、スクリーン、モニタなど)ならびに/または組み合わされた入力およびディスプレイデバイスを含み得る。
図示を容易にするために、図8は、プロセッサ802、メモリ804、I/Oインターフェース806、ならびにソフトウェアブロック808および810の各々に関して1つのブロックを示す。これらのブロックは、1つまたは複数のプロセッサもしくは処理回路、オペレーティングシステム、メモリ、I/Oインターフェース、アプリケーション、および/またはソフトウェアエンジンを表す可能性がある。その他の実装において、デバイス800は、示された構成要素のすべてを有するわけではない可能性があり、および/または本明細書に示された要素の代わりにもしくは本明細書に示された要素に加えてその他の種類の要素を含むその他の要素を有する可能性がある。オンラインゲーミングサーバ102が本明細書の一部の実装において説明されたように動作を実行するものとして説明されているが、オンラインゲーミングサーバ102もしくは同様のシステムの任意の好適な構成要素もしくは構成要素の組合せまたはそのようなシステムに関連する任意の好適な1つのプロセッサもしくは複数のプロセッサが、説明された動作を実行する可能性がある。
ユーザデバイスが、本明細書において説明される特徴を実装するおよび/または本明細書において説明される特徴とともに使用されることも可能である。例示的なユーザデバイスは、デバイス800と同様のいくつかの構成要素、たとえば、プロセッサ802、メモリ804、およびI/Oインターフェース806を含むコンピュータデバイスであることが可能である。クライアントデバイスに適するオペレーティングシステム、ソフトウェア、およびアプリケーションが、メモリに備えられ、プロセッサによって使用され得る。クライアントデバイスのためのI/Oインターフェースは、ネットワーク通信デバイスならびに入力および出力デバイス、たとえば、音をキャプチャするためのマイクロフォン、画像もしくはビデオをキャプチャするためのカメラ、ユーザ入力をキャプチャするためのマウス、ユーザのジェスチャを認識するためのジェスチャデバイス、ユーザ入力を検出するためのタッチスクリーン、音を出力するためのオーディオスピーカデバイス、画像もしくはビデオを出力するためのディスプレイデバイス、またはその他の出力デバイスに接続され得る。たとえば、オーディオ/ビデオ入力/出力デバイス814内のディスプレイデバイスは、本明細書において説明されるように画像の前および後処理を表示するためにデバイス800に接続される(または含まれる)ことが可能であり、そのようなディスプレイデバイスは、任意の好適なディスプレイデバイス、たとえば、LCD、LED、またはプラズマディスプレイスクリーン、CRT、テレビ、モニタ、タッチスクリーン、3-Dディスプレイスクリーン、プロジェクタ、またはその他の視覚表示デバイスを含み得る。一部の実装は、オーディオ出力デバイス、たとえば、テキストを話す音声出力または合成を提供し得る。
本明細書において説明された1つまたは複数の方法(たとえば、方法400および700)は、コンピュータ上で実行され得るコンピュータプログラム命令またはコードによって実装されることが可能である。たとえば、コードは、1つまたは複数のデジタルプロセッサ(たとえば、マイクロプロセッサまたはその他の処理回路)によって実装されることが可能であり、非一時的コンピュータ可読媒体(たとえば、ストレージ媒体)、たとえば、半導体またはソリッドステートメモリ、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、硬質磁気ディスク、光ディスク、ソリッドステートメモリドライブなどを含む磁気式、光学式、電磁式、または半導体ストレージ媒体を含むコンピュータプログラム製品に記憶されることが可能である。プログラム命令は、たとえば、サーバ(たとえば、分散型システムおよび/またはクラウドコンピューティングシステム)から配信されるサービスとしてのソフトウェア(SaaS)の形態で電子信号に含まれ、電子信号として提供されることも可能である。代替的に、1つまたは複数の方法は、ハードウェア(論理ゲートなど)に、またはハードウェアとソフトウェアとの組合せに実装され得る。例示的なハードウェアは、プログラミング可能なプロセッサ(たとえば、フィールドプログラマブルゲートアレイ(FPGA)、複合プログラマブルロジックデバイス)、汎用プロセッサ、グラフィックスプロセッサ、特定用途向け集積回路(ASIC)などであることが可能である。1つまたは複数の方法は、システム上で実行されるアプリケーションの一部もしくは構成要素として、またはその他のアプリケーションおよびオペレーティングシステムと連携して実行されるアプリケーションもしくはソフトウェアとして実行され得る。
本明細書において説明された1つまたは複数の方法は、任意の種類のコンピューティングデバイス上で実行され得るスタンドアロンのプログラム、ウェブブラウザ上で実行されるプログラム、モバイルコンピューティングデバイス(たとえば、セル電話、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス(腕時計、腕章、装身具、帽子、ゴーグル、眼鏡など)、ラップトップコンピュータなど)上で実行されるモバイルアプリケーション(「アプリ」)内で実行され得る。一例においては、クライアント/サーバアーキテクチャが、使用されることが可能であり、たとえば、(クライアントデバイスとしての)モバイルコンピューティングデバイスが、サーバデバイスにユーザ入力データを送信し、出力するための(たとえば、表示するための)最終出力データをサーバから受信する。別の例においては、すべての計算が、モバイルコンピューティングデバイス上のモバイルアプリ(および/またはその他のアプリ)内で実行され得る。別の例においては、計算が、モバイルコンピューティングデバイスと1つまたは複数のサーバデバイスとの間に分けられ得る。
説明がその特定の実装に関して説明されたが、これらの特定の実装は例示的であるに過ぎず、限定的でない。例において示された概念は、その他の例および実装に適用される可能性がある。
本開示において説明された機能ブロック、動作、特徴、方法、デバイス、およびシステムは、当業者に知られているようにシステム、デバイス、および機能ブロックの異なる組合せに統合されるかまたは分けられる可能性がある。任意の好適なプログラミング言語およびプログラミング技術が、特定の実装のルーチンを実装するために使用される可能性がある。異なるプログラミング技術、たとえば、手続き型またはオブジェクト指向プログラミング技術が、使用される可能性がある。ルーチンは、単一の処理デバイスまたは複数のプロセッサ上で実行される可能性がある。ステップ、動作、または計算が特定の順序で提示される可能性があるが、順序は異なる特定の実装において変更される可能性がある。一部の実装では、本明細書において逐次的であるものとして示された複数のステップまたは動作が、同時に実行される可能性がある。
上述の説明に加えて、ゲームプラットフォームのユーザは、本明細書において説明されたシステム、プログラム、または特徴がユーザ情報、たとえば、ユーザデバイスのデバイスのセンサから取得された情報、ユーザのチャットデータ、ユーザの好み、ユーザの現在位置の収集を可能にする可能性があるかどうかおよびいつ可能にする可能性があるかをユーザが選択することを可能にする制御を提供される。ユーザは、様々な種類のユーザデータに関する許可を選択的に拒否することができる。ユーザデータは、ユーザによって許可された通りにのみ使用される。さらに、ユーザデータは、そのユーザデータが記憶されるおよび/または使用される前に処理される可能性がある。たとえば、そのような処理は、個人を特定可能な情報がユーザデータから削除されることを保証することができる。たとえば、ユーザのアイデンティティ(identity)が、個人を特定可能な情報がユーザに関して決定され得ないように処理される可能性がある。別の例においては、特定の位置が決定され得ないように、位置情報が取得される場合に地理的位置が(都市、郵便番号、または州のレベルになど)一般化される。したがって、ユーザは、どの情報がユーザについて収集されるか、その情報がどのように使用されるのか、およびどの情報がユーザに提供されるのかの制御を提供される。