JP7410334B2 - ゲームタグの自動生成 - Google Patents

ゲームタグの自動生成 Download PDF

Info

Publication number
JP7410334B2
JP7410334B2 JP2022572762A JP2022572762A JP7410334B2 JP 7410334 B2 JP7410334 B2 JP 7410334B2 JP 2022572762 A JP2022572762 A JP 2022572762A JP 2022572762 A JP2022572762 A JP 2022572762A JP 7410334 B2 JP7410334 B2 JP 7410334B2
Authority
JP
Japan
Prior art keywords
game
assets
tags
text
implementations
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022572762A
Other languages
English (en)
Other versions
JP2023527403A (ja
Inventor
エリック・ホルムデール
ニコラウス・ゾンターク
アスワス・マノハラン
Original Assignee
ロブロックス・コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ロブロックス・コーポレーション filed Critical ロブロックス・コーポレーション
Publication of JP2023527403A publication Critical patent/JP2023527403A/ja
Application granted granted Critical
Publication of JP7410334B2 publication Critical patent/JP7410334B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/216Input arrangements for video game devices characterised by their sensors, purposes or types using geographical information, e.g. location of the game device or player using GPS
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/32Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections
    • A63F13/323Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections between game devices with different hardware characteristics, e.g. hand-held game devices connectable to game consoles or arcade machines
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/32Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections
    • A63F13/327Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections using wireless networks, e.g. Wi-Fi® or piconet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/48Starting a game, e.g. activating a game device or waiting for other players to join a multiplayer session
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/75Enforcing rules, e.g. detecting foul play or generating lists of cheating players
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Transfer Between Computers (AREA)
  • Processing Or Creating Images (AREA)
  • Stored Programmes (AREA)

Description

関連出願の相互参照
本出願は、2020年5月27日に出願された「AUTOMATED GENERATION OF GAME TAGS」という名称の米国特許出願第16/885,047号に対する優先権の利益を主張し、その全体を参照により本明細書に組み込む。
実施形態は、一般に、コンピュータベースのゲームに関し、より詳細には、ゲーム用のテキストタグを生成するための方法、システム、およびコンピュータ可読媒体に関する。
いくつかのオンラインゲームプラットフォームでは、ユーザが相互に接続し、相互に相互作用し(たとえば、ゲーム内で)、ゲームを作成し、インターネットを介して相互に情報を共有することができる。オンラインゲームプラットフォームのユーザは、マルチプレイヤゲーム環境(たとえば、仮想3次元環境内)に参加したり、カスタムゲーム環境をデザインしたり、キャラクタおよびアバタをデザインしたり、アバタを装飾したり、他のユーザと仮想アイテム/オブジェクトを交換したり、オーディオまたはテキストメッセージングを使用して他のユーザと通信したりし得る。
ユーザは、プレイするのに適したゲームを見つけるために、自分の興味に基づいてゲームを閲覧または検索し得る。たとえば、ユーザはカテゴリ(たとえば、アクション、レーシング、パズル、戦略、人気、トレンド、新しいなど)によってゲームを閲覧してもよく、タグ、キーワード、またはコンセプト(たとえば、「カーチェイス」、「ボードゲーム」など)によってゲームを検索してもよい。
本明細書で説明する実装形態は、ゲーム用のテキストタグの生成に関する。いくつかの実装形態では、トレーニングされた機械学習モデルを使用してゲーム用の1つまたは複数のテキストタグを生成するためのコンピュータ実装方法は、トレーニングされた機械学習モデルへの入力として、ゲームのゲーム識別子と、ゲームに関連付けられるデジタルアセットのセットとを含むデータを提供するステップと、トレーニングされた機械学習モデルを使用して、およびゲームに関連付けられるデジタルアセットのセットに基づいて、複数の予測テキストタグを生成するステップであって、各テキストタグがそれぞれの予測スコアに関連付けられる、ステップと、それぞれの予測スコアに基づいて、複数の予測テキストタグから1つまたは複数のテキストタグを選択するステップとを含む。
いくつかの実装形態では、デジタルアセットのセットは、ゲームのスクリーンショット、ゲームのビデオスニペット、ゲームオブジェクト、メッシュ、アバタ、ゲームのソースコード、ゲームの構成パラメータ、ゲームの照明、ゲームのレベルカウント、アバタの動き、ゲームのテキストコンテンツ、ゲーム内で生成されたチャットコンテンツ、ゲームサウンド、ゲームのバックグラウンドミュージック、コードカバレッジ、あるいはゲームプレイ中のデジタルアセットのそれぞれの使用頻度のうちの1つまたは複数を含む。
いくつかの実装形態では1つまたは複数のテキストタグは、ゲームのタイプまたはゲームプレイのスタイルを示している。いくつかの実装形態では、本方法は、既存のテキストタグを1つまたは複数のテキストタグと比較することによって、ゲームの既存のテキストタグを検証するステップを含む。
いくつかの実装形態では、タグを生成するために機械学習モデルをトレーニングするコンピュータ実装方法は、機械学習モデルへの入力として、複数のゲーム識別子と、ゲーム識別子によって識別される各ゲームに関連付けられるデジタルアセットのそれぞれのセットとを含むデータを提供するステップと、機械学習モデルによって、ゲーム識別子によって識別されるゲームごとに1つまたは複数の予測タグを生成するステップと、1つまたは複数の予測タグを、ゲーム識別子によって識別される各ゲームに関連付けられるそれぞれのタグと比較するステップと、比較に基づいて、機械学習モデルの1つまたは複数のパラメータを調整するステップとを含む。
いくつかの実装形態では、機械学習モデルはニューラルネットワークを含み、機械学習モデルの1つまたは複数のパラメータを調整するステップは、ニューラルネットワークの1つまたは複数のノードに関連付けられる重みを調整するステップ、あるいはニューラルネットワークのノードのペア間のリンクに関連付けられる重みを調整するステップを含む。
いくつかの実装形態では、デジタルアセットは、ゲームのスクリーンショット、ゲームのビデオスニペット、ゲームオブジェクト、メッシュ、アバタ、ゲームのソースコード、ゲームの構成パラメータ、ゲームの照明、ゲームのレベルカウント、アバタの動き、ゲームのテキストコンテンツ、ゲーム内で生成されたチャットコンテンツ、ゲームサウンド、ゲームのバックグラウンドミュージック、コードカバレッジ、またはゲームプレイ中のデジタルアセットの使用頻度のうちの1つまたは複数を含む。
いくつかの実装形態では、本方法は、デジタルアセットのそれぞれのセットに基づいて、ゲーム識別子によって識別されるゲームごとにそれぞれの特徴ベクトルを生成するステップをさらに含む。実装形態のうちの少なくともいくつかでは、機械学習モデルによって1つまたは複数の予測タグを生成するステップは、それぞれの特徴ベクトルに基づく。
いくつかの実装形態では、機械学習モデルは1つまたは複数の入力ニューラルネットワークおよび1つの出力ニューラルネットワークを含み、それぞれの特徴ベクトルを生成するステップは1つまたは複数の入力ニューラルネットワークを使用して実行される。これらの実装形態のうちの少なくともいくつかでは、本方法は、出力ニューラルネットワークへの入力としてそれぞれの特徴ベクトルを提供するステップをさらに含む。
いくつかの実装形態では1つまたは複数の入力ニューラルネットワークは、デジタルアセット内の1つまたは複数の画像アセットに基づいて特徴ベクトルの第1の部分を生成する第1の入力ニューラルネットワークと、デジタルアセット内の1つまたは複数のコードアセットに基づいて特徴ベクトルの第2の部分を生成する第2の入力ニューラルネットワークと、デジタルアセット内の1つまたは複数のテキストアセットに基づいて特徴ベクトルの第3の部分を生成する第3の入力ニューラルネットワークと、デジタルアセット内の1つまたは複数のオーディオアセットに基づいて特徴ベクトルの第4の部分を生成する第4の入力ニューラルネットワークと、1つまたは複数のゲームプレイアセットに基づいて特徴ベクトルの第5の部分を生成する第5の入力ニューラルネットワークとのうちの少なくとも1つを含む。
いくつかの実装形態では、第1の入力ニューラルネットワークは、デジタルアセット内の1つまたは複数の画像アセットに基づいて特徴ベクトルの第1の部分を生成し、1つまたは複数の画像アセットは、ゲームのスクリーンショット、ゲームのビデオスニペット、ゲームオブジェクト、メッシュ、またはアバタのうちの1つまたは複数を含む。
いくつかの実装形態では、第2の入力ニューラルネットワークは、デジタルアセット内の1つまたは複数のコードアセットに基づいて特徴ベクトルの第2の部分を生成し、コードアセットは1つまたは複数のゲームのソースコード、ゲームの構成パラメータ、ゲームの照明、ゲームのレベルカウント、またはアバタの動きのうちの1つまたは複数を含む。
いくつかの実装形態では、第3の入力ニューラルネットワークは、デジタルアセット内の1つまたは複数のテキストアセットに基づいて特徴ベクトルの第3の部分を生成し、テキストアセットは、ゲームのテキストコンテンツまたはゲーム内で生成されたチャットコンテンツのうちの1つまたは複数を含む。
いくつかの実装形態では、第4の入力ニューラルネットワークは、デジタルアセット内の1つまたは複数のオーディオアセットに基づいて特徴ベクトルの第4の部分を生成し、オーディオアセットは、ゲームサウンドまたはゲームのバックグラウンドミュージックのうちの1つまたは複数を含む。
いくつかの実装形態では、第5の入力ニューラルネットワークは1つまたは複数のゲームプレイアセットに基づいて特徴ベクトルの第5の部分を生成し、ゲームプレイアセットは、コードカバレッジ、またはゲームプレイ中のデジタルアセットの使用頻度のうちの1つまたは複数を含む。
いくつかの実装形態は、処理デバイスによる遂行に応答して、処理デバイスに、トレーニングされた機械学習モデルへの入力として、複数のゲーム識別子と、ゲーム識別子によって識別される各ゲームに関連付けられるデジタルアセットのそれぞれのセットとを含むデータを提供することと、トレーニングされた機械学習モデルを使用して、複数の予測テキストタグを生成することであって、各テキストタグが、それぞれの予測スコアに関連付けられる、生成することと、それぞれの予測スコアに基づいて、複数の予測テキストタグから1つまたは複数のテキストタグを選択することとを含む動作を実行させる命令を含む、非一時的コンピュータ可読媒体を含む。
いくつかの実装形態は、命令が記憶されたメモリと、メモリに結合された処理デバイスとを備えるシステムであって、処理デバイスは、メモリにアクセスして命令を遂行するように構成され、命令は、処理デバイスに、トレーニングされた機械学習モデルへの入力として、複数のゲーム識別子と、ゲーム識別子によって識別される各ゲームに関連付けられるデジタルアセットのそれぞれのセットとを含むデータを提供することと、トレーニングされた機械学習モデルを使用して、複数の予測テキストタグを生成することであって、各テキストタグが、それぞれの予測スコアに関連付けられる、生成することと、それぞれの予測スコアに基づいて、複数の予測テキストタグから1つまたは複数のテキストタグを選択することとを含む動作を実行させる、システムを含む。
いくつかの実装形態による、ゲーム用のテキストタグを生成するための例示的なシステムアーキテクチャの図である。 いくつかの実装形態による、カテゴリ別に配置されたゲームの例示的なリストを示す図である。 いくつかの実装形態による、タグごとのリストの例を示す図である。 いくつかの実装形態による、タグごとのリストの別の例を示す図である。 いくつかの実装形態による、ゲームのデジタルアセットに関連付けられる例示的なデータ構造を示す図である。 いくつかの実装形態による、ゲームプレイセッションからの例示的なスクリーンショットを示す図である。 いくつかの実装形態による、テキストタグを生成するための教師あり機械学習(ML)の例を示すブロック図である。 いくつかの実装形態による、テキストタグを生成するために機械学習モデルをトレーニングするための例示的な方法を示すフローチャートである。 いくつかの実装形態による、機械学習モデルを使用してゲーム用のテキストタグを生成するための例示的な方法を示すブロック図である。 いくつかの実装形態による、機械学習モデルを使用してゲーム用のテキストタグを生成するための別の例示的な方法を示すフローチャートである。 いくつかの実装形態による、例示的なコンピューティングデバイスを示すブロック図である。
以下の詳細な説明では、その一部を構成する添付の図面を参照する。図面において、文脈上別段の指示がない限り、通常、類似の記号は類似のコンポーネントを識別する。詳細な説明、図面、および特許請求の範囲に記載されている例示的な実施形態は、限定することを意味するものではない。本明細書に提示される主題の趣旨または範囲から逸脱することなく、他の実施形態が利用されてよく、他の変更を行われてよい。本明細書に一般的に記載され、図面に示される本開示の態様は、多種多様な異なる構成において配置、置換、結合、分離、および設計することができ、これらはすべて本明細書で企図される。
本明細書における「いくつかの実施形態(some embodiments)」、「実施形態(an embodiment)」、「例示的な実施形態(an example embodiment)」などへの言及は、説明された実施形態が特定の機能、構造、または特徴を含み得るが、すべての実施形態が必ずしも特定の機能、構造、または特徴を含み得るとは限らないことを示す。さらに、そのような句は必ずしも同じ実施形態を指しているわけではない。さらに、特定の機能、構造、または特徴が実施形態に関連して説明される場合、そのような機能、構造、または特徴は、明示的に説明されるかどうかにかかわらず、他の実施形態に関連して影響を受ける可能性がある。
オンラインゲームプラットフォーム(「ユーザ生成コンテンツプラットフォーム」、または「ユーザ生成コンテンツシステム」とも呼ばれる)は、ユーザが相互に相互作用するための様々な方法を提供する。たとえば、オンラインゲームプラットフォームのユーザは、共通の目標に向かって協力したり、様々な仮想ゲームアイテムを共有したり、相互に電子メッセージを送信したりすることができる。オンラインゲームプラットフォームのユーザは、仮想キャラクタとしてゲームに参加し、ゲーム固有の役割を演じることができる。たとえば、仮想キャラクタは、各キャラクタに特定の役割が割り当てられ、その役割に対応する衣類、鎧、武器、スキルなどのパラメータが関連付けられているチームまたはマルチプレイヤ環境の一部であってよい。別の例では、仮想キャラクタは、たとえば、単一のプレイヤがゲームの一部である場合、コンピュータで生成されたキャラクタによって結合され得る。
オンラインゲームプラットフォームでは、プラットフォームのユーザ(開発者)が新しいゲームおよび/またはキャラクタを作成できる場合もある。たとえば、オンラインゲームプラットフォームのユーザは、新しいキャラクタ(アバタ)、新しいアニメーションパッケージを作成、設計、および/またはカスタマイズし、他のユーザが利用できるようにすることができる場合がある。
ゲームは、それらのタイプおよび/またはゲームのプレイスタイルに基づいて分類され得る。いくつかの実装形態では、ゲームは、ゲームプレイ特性、(ゲームの)目的のタイプ、および主題のタイプ(たとえば、スポーツ、チャレンジ、アクション、またはレーシング)のうちの1つまたは複数によって編成することができる。カテゴリは、ゲームに関連付けられる1つまたは複数のテキストタグによってラベル付けされ得る。
他のユーザ(プレイヤ)は、閲覧することによって、または検索に基づいて、プレイするゲームを見つけることができる。検索は、名前またはカテゴリによって実行されてよく、ユーザは、表示されたゲームのリストに基づいてプレイしたいゲームを選択し得る。いくつかの実装形態では、たとえば、プレイヤがゲームプラットフォームにログインするとき、またはプレイヤがゲームプラットフォームにおいてセッションを再開するときに、プレイヤが興味がありそうなゲームが浮上してユーザに表示される。
ゲームプレイヤとゲームプラットフォームの所有者は、適切なテキストタグを様々なゲームに関連付けることで利益を得ることができる。テキストタグを利用することによるゲームのラベル付けは、ユーザによるゲームの効率的な発見を可能にし、したがってゲームプラットフォームのより良いユーザエクスペリエンスを提供する。テキストタグは、ゲームプラットフォームのゲームのランキングや、推奨モデル、たとえばゲームプラットフォームにおいて利用される機械学習モデルへの入力として利用することができる。たとえば、推奨モデルは、ゲームに関連付けられるテキストタグに基づいて、ユーザ向けのゲームの推奨を生成することができる。ゲーム推奨モデルはまた、ゲーム推奨を生成する際にランキングを利用し得る。ゲームプラットフォームの運営者にとっての技術的な問題は、ゲームプラットフォーム全体でのゲームの正確なラベル付けと発見可能性である。
一部のユーザは、ゲームプラットフォームを介して利用可能にするゲームのタグを提供しないこともあり、ゲームプラットフォームを使用する、プレイヤによるゲームの発見を十分に支援しないタグを提供することもある。場合によっては、ユーザがゲームへのプレイヤトラフィックを増やす目的で、意図的にゲームに誤ったラベルを付けることがある。(たとえば、開発者によって)ゲームに手動で割り当てられたタグは、手動で割り当てられた不正確または無関係であるタグを決定するために、ゲーム用に生成されたテキストタグと比較することによって評価することができる。そのような評価の際に、不正確または無関係なタグは、たとえば、ゲームとの関連付けから非表示および/または削除されるなど、抑制される場合がある。このように手動で割り当てられたタグを抑制することで、ゲームの品質およびゲームとプレイヤの興味との関連性に基づいて、ゲームへのプレイヤトラフィックが本物であることを確認することができる。これにより、プレイヤが楽しむゲームプレイセッションの割合が高くなり、不正確または無関係なラベルが原因で発生する可能性のある短いセッション(たとえば、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はまた、複数のコンピューティングデバイス(たとえば、複数のサーバコンピュータ)にまたがることができる複数のストレージコンポーネント(たとえば、複数のドライブまたは複数のデータベース)を含み得る。
いくつかの実装形態では、オンラインゲームサーバ102は、1つまたは複数のコンピューティングデバイス(たとえば、クラウドコンピューティングシステム、ラックマウントサーバ、サーバコンピュータ、物理サーバのクラスタなど)を有するサーバを含むことができる。いくつかの実装形態では、オンラインゲームサーバ102は、独立したシステムであってもよく、複数のサーバを含んでもよく、別のシステムまたはサーバの一部であってもよい。
いくつかの実装形態では、オンラインゲームサーバ102は、1つまたは複数のコンピューティングデバイス(ラックマウントサーバ、ルータコンピュータ、サーバコンピュータ、パーソナルコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータなど)、オンラインゲームサーバ102上で動作を実行し、ユーザにオンラインゲームサーバ102へのアクセスを提供するために使用され得るデータストア(たとえば、ハードディスク、メモリ、データベース)、ネットワーク、ソフトウェアコンポーネント、および/またはハードウェアコンポーネントを含み得る。オンラインゲームサーバ102はまた、オンラインゲームサーバ102によって提供されるコンテンツへのアクセスをユーザに提供するために使用され得るウェブサイト(たとえば、ウェブページ)またはアプリケーションバックエンドソフトウェアを含み得る。たとえば、ユーザは、クライアントデバイス110上でゲームアプリケーション112を使用してオンラインゲームサーバ102にアクセスし得る。
いくつかの実装形態では、オンラインゲームサーバ102は、ユーザ間の接続を提供する一種のソーシャルネットワーク、またはユーザ(たとえば、エンドユーザまたは消費者)がオンラインゲームサーバ102上の他のユーザと通信することを可能にする一種のユーザ生成コンテンツシステムであり得、通信は、ボイスチャット(たとえば、同期および/または非同期音声通信)、ビデオチャット(たとえば、同期および/または非同期ビデオ通信)、またはテキストチャット(たとえば、同期および/または非同期テキストベースの通信)を含み得る。本開示のいくつかの実装形態では、「ユーザ」は、単一の個人として表され得る。しかしながら、本開示の他の実装形態は、ユーザのセットまたは自動化されたソースによって制御されるエンティティである「ユーザ」(たとえば、作成ユーザ)を包含する。たとえば、ユーザ生成コンテンツシステムにおいてコミュニティまたはグループとしてフェデレーションされた個々のユーザのセットは、「ユーザ」と見なされる場合がある。
いくつかの実装形態では、オンラインゲームサーバ102は、仮想ゲームサーバであり得る。たとえば、ゲームサーバは、ネットワーク122を介してクライアントデバイス110を使用してゲームにアクセスし得る、またはそれと相互作用し得るユーザのコミュニティにシングルプレイヤまたはマルチプレイヤゲームを提供し得る。いくつかの実装形態では、ゲーム(本明細書では「ビデオゲーム」、「オンラインゲーム」、または「仮想ゲーム」とも呼ばれる)は、たとえば、2次元(2D)ゲーム、3次元(3D)ゲーム(たとえば、3Dユーザ生成ゲーム)、仮想現実(VR)ゲーム、または拡張現実(AR)ゲームであり得る。いくつかの実装形態では、ユーザは他のユーザとのゲームプレイに参加し得る。いくつかの実装形態では、ゲームは、ゲームの他のユーザとリアルタイムでプレイされ得る。
いくつかの実装形態では、ゲームプレイは、ゲーム(たとえば、106)内でクライアントデバイス(たとえば、110)を使用する1人または複数のプレイヤの相互作用、またはクライアントデバイス110のディスプレイまたは他の出力デバイス(たとえば、114)における相互作用の提示を指す場合がある。
いくつかの実装形態では、ゲーム106は、ゲームコンテンツ(たとえば、デジタルメディアアイテム)をエンティティに提示するように構成されたソフトウェア、ファームウェア、またはハードウェアを使用して遂行またはロードすることができる1つまたは複数の電子ファイルを含むことができる。電子ファイルは、アニメーションルーチン、画像ファイル、オーディオファイル、およびゲーム環境の設定に利用される他のコンテンツなど、デジタルゲームのデジタルアセットを含むことができる。ゲームのデジタルアセットは、データストア120および/またはゲーム106に記憶することができる。
ゲームのデジタルアセットは、ゲームオブジェクト、ゲームアイテム、ゲームキャラクタなどを含むことができ、これらはそれぞれ、たとえば2D/3Dスケッチ、ゲームオブジェクトの2D/3Dモデル、テクスチャ、画像、ビデオ、コード、アバタなど、電子表現において記憶され得る。ゲームのデジタルアセットはまた、仮想ゲーム環境を作成するためにランタイム環境において利用される電子ファイルを含むことができる。
いくつかの実装形態では、ゲームアプリケーション112が遂行され、ゲーム106がゲームエンジン104に関連してレンダリングされ得る。いくつかの実装形態では、ゲーム106は、共通のルールのセットまたは共通の目標を有し得、ゲーム106の環境は、共通のルールのセットまたは共通の目標を共有する。いくつかの実装形態では、ゲームが異なれば、ルールまたは目標も互いに異なる場合がある。
いくつかの実装形態では、ゲームは、複数の環境がリンクされ得る1つまたは複数の環境(本明細書では「ゲーム環境」または「仮想環境」とも呼ばれる)を有し得る。環境の例としては、3次元(3D)環境がある。ゲームアプリケーション112の1つまたは複数の環境は、本明細書では、集合的に「世界」または「ゲーム世界」または「仮想世界」または「宇宙」と呼ばれ得る。世界の例は、ゲーム106の3D世界であり得る。たとえば、ユーザは、別のユーザによって作成された別の仮想環境にリンクされた仮想環境を構築し得る。仮想ゲームのキャラクタは、隣接する仮想環境に入るために仮想境界を越えることができる。
3D環境または3D世界は、ゲームコンテンツを表す幾何学的データの3次元表現を使用するグラフィックスを使用する(または、少なくとも、幾何学的データの3D表現が使用されているかどうかに関係なく、ゲームコンテンツを3Dコンテンツとして表示する)ことに留意されたい。2D環境または2D世界は、ゲームコンテンツを表す幾何学的データの2次元表現を使用するグラフィックスを使用する。
いくつかの実装形態では、オンラインゲームサーバ102は、1つまたは複数のゲーム106をホストすることができ、ユーザがクライアントデバイス110のゲームアプリケーション112を使用してゲーム106と相互作用することを可能にすることができる。オンラインゲームサーバ102のユーザは、ゲーム106をプレイ、作成、相互作用、または構築し、他のユーザと通信し、ならびに/またはゲーム106のオブジェクト(たとえば、本明細書では「アイテム」または「ゲームオブジェクト」または「仮想ゲームアイテム」とも呼ばれる)を作成および構築し得る。
たとえば、ユーザ生成仮想アイテムを生成する際に、ユーザは、とりわけ、キャラクタ、キャラクタの装飾、相互作用型ゲームのための1つまたは複数の仮想環境を作成してもよく、ゲーム106において使用される構造を構築してもよい。いくつかの実装形態では、ユーザは、プラットフォーム内通貨(たとえば、仮想通貨)などのゲーム仮想ゲームオブジェクトを、オンラインゲームサーバ102の他のユーザと購入、販売、または交換することができる。いくつかの実装形態では、オンラインゲームサーバ102は、ゲームコンテンツをゲームアプリケーション(たとえば、112)に送信し得る。
いくつかの実装形態では、ゲームコンテンツ(本明細書では「コンテンツ」とも呼ばれる)は、オンラインゲームサーバ102またはゲームアプリケーションに関連付けられる任意のデータまたはソフトウェア命令(たとえば、ゲームのデジタルアセット、ゲームオブジェクト、ゲーム、ユーザ情報、ビデオ、画像、コマンド、メディアアイテムなど)を指す場合がある。いくつかの実装形態では、ゲームオブジェクト(たとえば、本明細書では「アイテム」または「オブジェクト」または「仮想オブジェクト」または「仮想ゲームアイテム」とも呼ばれる)は、オンラインゲームサーバ102のゲームアプリケーション106、あるいはクライアントデバイス110のゲームアプリケーション112において使用、作成、共有、または他の方法で描写されるオブジェクトを指し得る。たとえば、ゲームオブジェクトは、パーツ、モデル、キャラクタ、アクセサリ、ツール、武器、衣類、建物、車両、通貨、植物相、動物相、前述のコンポーネント(たとえば、建物の窓)などを含み得る。
ゲーム106をホストするオンラインゲームサーバ102は、限定ではなく、例示の目的で提供されていることに留意されたい。いくつかの実装形態では、オンラインゲームサーバ102は、あるユーザから1人または複数の他のユーザへの通信メッセージを含むことができる1つまたは複数のメディアアイテムをホストし得る。メディアアイテムは、これらに限定されないが、デジタルビデオ、デジタルムービー、デジタル写真、デジタル音楽、オーディオコンテンツ、メロディ、ウェブサイトのコンテンツ、ソーシャルメディアの更新、電子書籍、電子雑誌、デジタル新聞、デジタルオーディオ書籍、電子ジャーナル、ウェブブログ、リアルシンプルシンジケーション(RSS)フィード、電子コミックブック、ソフトウェアアプリケーションなどを含むことができる。いくつかの実装形態では、メディアアイテムは、デジタルメディアアイテムをエンティティに提示するように構成されたソフトウェア、ファームウェア、またはハードウェアを使用して遂行またはロードできる電子ファイルであり得る。
いくつかの実装形態では、ゲーム106は、特定のユーザまたは特定のユーザのグループ(たとえば、プライベートゲーム)に関連付けられ得るか、またはオンラインゲームサーバ102(たとえば、パブリックゲーム)にアクセスできるユーザに広く利用可能にされ得る。いくつかの実装形態では、オンラインゲームサーバ102が1つまたは複数のゲーム106を特定のユーザまたはユーザのグループに関連付ける場合、オンラインゲームサーバ102は、ユーザアカウント情報(たとえば、ユーザ名およびパスワードなどのユーザアカウント識別子)を使用して、特定のユーザをゲーム106に関連付けることができる。
いくつかの実装形態では、オンラインゲームサーバ102またはクライアントデバイス110は、ゲームエンジン104またはゲームアプリケーション112を含み得る。いくつかの実装形態では、ゲームエンジン104は、ゲーム106の開発または遂行のために使用され得る。たとえば、ゲームエンジン104は、とりわけ、2D、3D、VR、またはARグラフィックスのためのレンダリングエンジン(「レンダラ」)、物理エンジン、衝突検出エンジン(および衝突応答)、サウンドエンジン、スクリプト機能、アニメーションエンジン、人工知能エンジン、ネットワーキング機能、ストリーミング機能、メモリ管理機能、スレッド機能、シーングラフ機能、またはシネマティクスのビデオサポートなどの機能を含み得る。ゲームエンジン104のコンポーネントは、ゲームの計算およびレンダリングを支援するコマンド(たとえば、レンダリングコマンド、衝突コマンド、物理コマンドなど)を生成し得る。いくつかの実装形態では、クライアントデバイス110のゲームアプリケーション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のためのゲームプレイ命令を生成するために、制御命令に対して1つまたは複数の論理動作(たとえば、ゲームエンジン104を使用して)を実行し得る。他の例では、オンラインゲームサーバ102は、制御命令のうちの1つまたは複数を、あるクライアントデバイス110から、ゲーム106に参加している他のクライアントデバイス(たとえば、クライアントデバイス110aからクライアントデバイス110b)に渡し得る。クライアントデバイス110は、ゲームプレイ命令を使用して、クライアントデバイス110のディスプレイ上に提示するためにゲームプレイをレンダリングし得る。
いくつかの実装形態では、制御命令は、ユーザのキャラクタのゲーム内アクションを示す命令を指す場合がある。たとえば、制御命令は、右、左、上、下、ユーザ選択、ジャイロスコープの位置および方向データ、力センサデータなどのゲーム内アクションを制御するためのユーザ入力を含み得る。制御命令は、キャラクタの位置および速度情報を含み得る。いくつかの実装形態では、制御命令は、オンラインゲームサーバ102に直接送信される。他の実装形態では、制御命令は、クライアントデバイス110から別のクライアントデバイスに(たとえば、クライアントデバイス110bからクライアントデバイス110nに)送信され得、他のクライアントデバイスは、ローカルゲームエンジン104を使用してゲームプレイ命令を生成する。制御命令は、音声通信メッセージまたはオーディオデバイス(たとえば、スピーカ、ヘッドホンなど)上の別のユーザからの他のサウンド、たとえば、本明細書で説明するオーディオ空間化技法を使用して生成される音声通信または他のサウンドを再生するための命令を含み得る。
いくつかの実装形態では、ゲームプレイ命令は、クライアントデバイス110がマルチプレイヤゲームなどのゲームのゲームプレイをレンダリングすることを可能にする命令を指す場合がある。ゲームプレイ命令は、ユーザ入力(たとえば、制御命令)、キャラクタの位置および速度情報、またはコマンド(たとえば、物理コマンド、レンダリングコマンド、衝突コマンドなど)のうちの1つまたは複数を含み得る。
いくつかの実装形態では、オンラインゲームサーバ102は、ユーザによって作成されたキャラクタをデータストア120に記憶し得る。いくつかの実装形態では、オンラインゲームサーバ102は、ユーザに提示され得るキャラクタカタログおよびゲームカタログを維持する。いくつかの実装形態では、ゲームカタログは、オンラインゲームサーバ102に記憶されたゲームの画像を含む。さらに、ユーザは、選択されたゲームに参加するために、キャラクタカタログからキャラクタ(たとえば、ユーザまたは他のユーザによって作成されたキャラクタ)を選択し得る。キャラクタカタログは、オンラインゲームサーバ102に記憶されたキャラクタの画像を含む。いくつかの実装形態では、キャラクタカタログ内のキャラクタのうちの1つまたは複数は、ユーザによって作成またはカスタマイズされた可能性がある。いくつかの実装形態では、選択されたキャラクタは、キャラクタのコンポーネントのうちの1つまたは複数を定義するキャラクタ設定を有する場合がある。
いくつかの実装形態では、ユーザのキャラクタは、コンポーネントの構成を含むことができ、コンポーネントの構成および外観、より一般的にはキャラクタの外観は、キャラクタ設定によって定義され得る。いくつかの実装形態では、ユーザのキャラクタのキャラクタ設定は、少なくとも部分的にユーザによって選択され得る。他の実装形態では、ユーザは、デフォルトのキャラクタ設定または他のユーザによって選択されたキャラクタ設定でキャラクタを選択し得る。たとえば、ユーザは、あらかじめ定義されたキャラクタ設定を有するキャラクタカタログからデフォルトのキャラクタを選択し得、ユーザは、キャラクタ設定の一部を変更する(たとえば、カスタマイズされたロゴのシャツを追加する)ことによってデフォルトのキャラクタをさらにカスタマイズし得る。キャラクタ設定は、オンラインゲームサーバ102によって特定のキャラクタに関連付けられ得る。
いくつかの実装形態では、クライアントデバイス110はそれぞれ、パーソナルコンピュータ(PC)、モバイルデバイス(たとえば、ラップトップ、モバイル電話、スマートフォン、タブレットコンピュータ、またはネットブックコンピュータ)、ネットワーク接続されたテレビ、ゲームコンソールなどのようなコンピューティングデバイスを含み得る。いくつかの実装形態では、クライアントデバイス110は、「ユーザデバイス」と呼ばれることもある。いくつかの実装形態では、1つまたは複数のクライアントデバイス110は、任意の時点でオンラインゲームサーバ102に接続し得る。クライアントデバイス110の数は、例示として提供されていることに留意されたい。いくつかの実装形態では、任意の数のクライアントデバイス110が使用され得る。
いくつかの実装形態では、各クライアントデバイス110は、それぞれ、ゲームアプリケーション112のインスタンスを含み得る。一実施形態では、ゲームアプリケーション112は、オンラインゲームサーバ102によってホストされる仮想ゲーム内の仮想キャラクタを制御するなど、ユーザがオンラインゲームサーバ102を使用およびそれと相互作用すること、またはゲーム106、画像、ビデオアイテム、ウェブページ、ドキュメントなどのコンテンツを閲覧またはアップロードすることを可能にし得る。一例では、ゲームアプリケーションは、ウェブサーバによって提供されコンテンツ(たとえば、仮想環境内の仮想キャラクタなど)にアクセス、検索、提示、またはナビゲートすることができるウェブアプリケーション(たとえば、ウェブブラウザと連動して動作するアプリケーション)であり得る。別の例では、ゲームアプリケーションは、クライアントデバイス110に対してローカルにインストールおよび遂行され、ユーザがオンラインゲームサーバ102と相互作用することを可能にするネイティブアプリケーション(たとえば、モバイルアプリケーション、アプリ、またはゲームプログラム)であり得る。ゲームアプリケーションは、コンテンツ(たとえば、ウェブページ、メディアビューア)をユーザにレンダリング、表示、または提示し得る。ある実装形態では、ゲームアプリケーションはまた、ウェブページに埋め込まれる埋め込まれたメディアプレイヤ(たとえば、フラッシュ(登録商標)プレイヤ)を含み得る。
本開示の態様によれば、ゲームアプリケーションは、ユーザがコンテンツを構築、作成、編集、オンラインゲームサーバ102にアップロードするだけでなく、オンラインゲームサーバ102と相互作用する(たとえば、オンラインゲームサーバ102によってホストされるゲーム106をプレイする)ためのオンラインゲームサーバプリケーションであり得る。したがって、ゲームアプリケーションは、オンラインゲームサーバ102によってクライアントデバイス110に提供され得る。別の例では、ゲームアプリケーションは、サーバからダウンロードされるアプリケーションであり得る。
いくつかの実装形態では、各開発者デバイス130は、それぞれ、ゲームアプリケーション132のインスタンスを含み得る。一実施形態では、ゲームアプリケーション132は、オンラインゲームサーバ102によってホストされる仮想ゲーム内の仮想キャラクタを制御するなど、開発者ユーザがオンラインゲームサーバ102を使用およびそれと相互作用すること、またはゲーム106、画像、ビデオアイテム、ウェブページ、ドキュメントなどのコンテンツを閲覧またはアップロードすることを可能にし得る。一例では、ゲームアプリケーションは、ウェブサーバによって提供されコンテンツ(たとえば、仮想環境内の仮想キャラクタなど)にアクセス、検索、提示、またはナビゲートすることができるウェブアプリケーション(たとえば、ウェブブラウザと連動して動作するアプリケーション)であり得る。別の例では、ゲームアプリケーションは、クライアントデバイス110に対してローカルにインストールおよび遂行され、ユーザがオンラインゲームサーバ102と相互作用することを可能にするネイティブアプリケーション(たとえば、モバイルアプリケーション、アプリ、またはゲームプログラム)であり得る。ゲームアプリケーションは、コンテンツ(たとえば、ウェブページ、メディアビューア)をユーザにレンダリング、表示、または提示し得る。ある実装形態では、ゲームアプリケーションはまた、ウェブページに埋め込まれる埋め込まれたメディアプレイヤ(たとえば、フラッシュ(登録商標)プレイヤ)を含み得る。
本開示の態様によれば、ゲームアプリケーション132は、ユーザがコンテンツを構築、作成、編集、オンラインゲームサーバ102にアップロードするため、ならびにオンラインゲームサーバ102と相互作用する(たとえば、オンラインゲームサーバ102によってホストされるゲーム106を提供および/またはプレイする)ためのオンラインゲームサーバプリケーションであり得る。したがって、ゲームアプリケーションは、オンラインゲームサーバ102によってクライアントデバイス110に提供され得る。別の例では、ゲームアプリケーション132は、サーバからダウンロードされるアプリケーションであり得る。ゲームアプリケーション132は、オンラインゲームサーバ102と相互作用し、ゲーム開発者によって開発、ホスト、または提供される1つまたは複数のゲーム106のユーザ資格情報、ユーザ通貨などへのアクセスを取得するように構成され得る。
いくつかの実装形態では、ユーザは、ゲームアプリケーションを介してオンラインゲームサーバ102にログインし得る。ユーザは、ユーザアカウント情報(たとえば、ユーザ名およびパスワード)を提供することによってユーザアカウントにアクセスし得、ユーザアカウントは、オンラインゲームサーバ102の1つまたは複数のゲーム106に参加するために利用可能な1つまたは複数のキャラクタに関連付けられる。いくつかの実装形態では、適切な資格情報があれば、ゲーム開発者は、他のユーザによって所有される、または関連付けられているプラットフォーム内通貨(たとえば、仮想通貨)、アバタ、特殊能力、アクセサリなどのゲーム仮想ゲームオブジェクトへのアクセスを取得し得る。
一般に、オンラインゲームサーバ102によって実行されるものとして一実装形態で説明される機能はまた、適切な場合、他の実装形態では、クライアントデバイス110またはサーバによっても実行することができる。さらに、特定のコンポーネントに起因する機能は、一緒に動作する異なるコンポーネントまたは複数のコンポーネントによって実行することができる。オンラインゲームサーバ102はまた、適切なアプリケーションプログラミングインターフェース(API)を通じて他のシステムまたはデバイスに提供されるサービスとしてアクセスすることができ、したがって、ウェブサイトにおける使用に限定されない。
いくつかの実装形態では、オンラインゲームサーバ102は、グラフィックエンジン108を含み得る。いくつかの実装形態では、グラフィックエンジン108は、オンラインゲームサーバ102がグラフィックおよびアニメーション機能を提供することを可能にするシステム、アプリケーション、またはモジュールであり得る。
図2Aは、いくつかの実装形態による、カテゴリ別に配置されたゲームの例示的なリストを示している。リストは、ゲームプラットフォームにおいてユーザにとって利用可能な様々なゲームを含むユーザインターフェースを介して表示される。
ゲームリストは、ユーザによるゲーム選択を可能にするために、ゲームプラットフォームにおいて利用可能なゲームから(たとえば、オンラインゲームサーバ102によって)生成され得る。ゲームの人気を決定するために、ゲームプレイの統計、様々なゲームをプレイしているユーザの数、ユーザの関与レベル、ゲームのタイプなどが利用され得る。
いくつかの実装形態では、ゲームのカテゴリ(220a~220d)がユーザに宣伝(強調表示)され得る。例示的なカテゴリは、人気のあるゲーム(220a)、トップのソーシャルゲーム(220b)、トップのアドベンチャゲーム(220c)、およびユーザに推奨されるゲーム(220d)などを含み得る。各カテゴリは、個々のゲームのリスト(たとえば、230)を含み得る。個々のゲームはまた、ゲームに関連付けられるアイコンまたは他の表示とともに表示され得るタグ(240)で注釈が付けられ得る。いくつかの実装形態では、ゲームリストは、ユーザインターフェースを介してユーザデバイスの初期ディスプレイにおいて提供され得る。
ゲームはまた、ゲームに関連付けられ、ゲームに含まれる機能を示すタグに関連付けられ得る。たとえば、ゲームは、タイクーンゲーム、障害物コースゲーム、一人称シューティングゲーム、共同ゲーム、ソーシャルゲームなど、タグに関連付けられてよく、ユーザがゲームのタイプに関する追加情報を取得することを可能にする。第1のカテゴリに関連付けられるゲームに複数のタグが関連付けられてよく、第2のタグを備えたゲームを複数のカテゴリに関連付けることができる。たとえば、「レーシングゲーム」というタイトルのゲームのカテゴリは、「シティレース」、「ジャングルレース」、「砂漠のレース」、「ラクダレース」など、例示的なタグが付けられたゲームを含み得る。
いくつかの実装形態では、ゲームは、ゲームに関連付けられるジャンルまたはタグ(アドベンチャゲーム、ソーシャルゲームなど)に基づいて、様々なゲームカテゴリに分類され得る。複数のテキストタグまたはカテゴリが1つのゲームに割り当てられ得る。いくつかの実装形態では、ゲームを分類するために、ゲームプレイの相互作用の性質が利用され得る。いくつかの実装形態では、ゲームのカテゴリの例は、アクション、アドベンチャ、格闘、プラットフォーム、パズル、レーシング、ロールプレイング、シューティング、シミュレーション、スポーツ戦略などを含み得る。いくつかの実装形態では、ゲームのカテゴリの例は、ゲームの位置設定、ジャンル、および/またはゲームのテーマ、たとえば町と田舎、ウエスタン、宇宙などを含み得る。
ゲームを強調表示すると、ユーザは利用可能なゲームを簡単に閲覧することと、興味のあるゲームを見つけることと、プラットフォームにおいて利用可能なすべてのゲームから好みのゲームを選択することとを行うことができるようになる。
いくつかの実装形態では、ゲームのカテゴリの例は、ゲームをプレイするために適したデバイスのタイプを含み得る。たとえば、ゲームは、デスクトップ、モバイル、仮想現実(VR)などに適しているとラベル付けされ得る。
図2Bは、いくつかの実装形態による、タグごとのリストの例を示している。この例示的な例において、ユーザインターフェース(UI)は、ゲームまたはゲームのアイコンを、それに関連付けられているすべてのタグとともに表示している。このUIビューを使用すると、参加者はゲームの詳細を閲覧し、ゲームに関連付けられているすべてのタグに関する情報を取得し得る。
図2Cは、いくつかの実装形態による、タグごとのリストの別の例を示している。この例示的な例において、ユーザインターフェースは、特定のタグに関連付けられているすべてまたは複数のゲーム(または、ゲームアイコン)のリストを表示している。このUIビューにより、参加者は、自分が興味のあるタグに関連付けられているゲームを閲覧することができる。
いくつかの実装形態では、テキストタグはゲームに関連付けられ、ユーザインターフェースにおいて表示される。いくつかの実装形態では、類似のテキストタグを有するゲームをグループ化するために、テキストタグが利用され得る。いくつかの実装形態では、テキストタグはゲームに関連付けられており、ユーザが特定のタイプのゲームを検索しているときに、ユーザによって検索可能である。
図3は、いくつかの実装形態による、ゲームの(デジタル)アセットに関連付けられる例示的なデータ構造を示している。
いくつかの実装形態では、デジタルアセットは、ゲームに関連付けられる様々なアセットを含む。デジタルアセットは、ユーザが生成したデジタルコンテンツ、ユーザがアップロードしたデジタルコンテンツ、および/またはゲームプラットフォームにおいて利用可能なデジタルアセットからユーザによって選択されたデジタルコンテンツを含み得る。
デジタルアセットのタイプの例は、画像ファイル(320)、オーディオクリップ(330)、コードベースアセット(340)、3Dモデルおよび/またはメッシュ(350)、アニメーションルーチン(360)、またはゲームプレイデータ(370)を含む。ゲームのタイプに基づく他のタイプのデジタルアセットが可能である。
画像ファイル(320)は、たとえば、背景画像、壁紙画像、地図、ゲーム内に表示される画像など、ゲームにおいて利用される画像を含み得る。画像ファイルはまた、ゲームに関連付けられるサムネイル画像およびビデオ、たとえば、ゲーム開発者によって提供される画像およびビデオを含み得る。ゲームにおいて利用される画像ファイルは、ゲームのコンテンツを示している可能性がある。たとえば、ゲームが多数の車の画像を有する場合、そのゲームプレイが車に関連していることを示している可能性がある。ゲームがループ状の多数の道路の画像を有する場合、そのゲームプレイがレース場またはレーシングに関連していることを示している場合があり、別のゲームが開けた道路である道路の画像を有する場合、そのゲームが旅行またはツアー関連のゲームであることを示している可能性がある。別の例では、ゲームが多くの自動車部品の画像を有するが、完成した車両がほとんどない場合、そのゲームが部品から車両を組み立てることに関連していることを示している可能性がある。
オーディオクリップ(330)は、ユーザ(開発者)が生成したオーディオクリップおよび/またはゲームプラットフォームにおいて利用可能なオプションのリストから選択されたオーディオクリップを含む。例示的なオーディオクリップには、レーシングカーの音、森の音、足音、キャラクタの音、ゲームオブジェクトに関連付けられる音などを含む。ゲームにおいて使用されるオーディオファイルは、ゲームのコンテンツを示すものであり得る。たとえば、ゲームのデジタルアセットがレーシングカーのノイズを含む多数のオーディオクリップを含む場合、そのゲームがカーレーシングに関連していることを示している可能性がある。ゲームが、剣がぶつかり合う音である多数のオーディオファイルを有する場合、そのゲームが格闘ゲームに関連していることを示している可能性がある。別の例では、ゲームに観客の声援のオーディオファイルを有する場合、そのゲームがスポーツに関連していることを示している可能性がある。
コードベースアセット(340)は、ゲームに利用されるコードベースを含み、初期化ルーチン、プリコンパイル済みコード、機能コードなどを含み得る。コードベース内のテキストおよびコメントも含まれ得る。いくつかの実装形態では、コードベースの変更履歴も含まれ得る。いくつかの実装形態では、コードベースデータは、開発者がコードベース内の様々な機能および/またはデジタルアセットに費やした時間の記録を含むデータを含み得る。たとえば、ゲームのコードベースにおけるコメントがレーシングカーの名前を参照している場合、そのゲームがカーレーシングに関連していることを示している可能性がある。別の例では、コードベースにダンスの動きに関連付けられるサブルーチンを含む場合、そのゲームがダンスに関連していることを示している可能性がある。
3Dモデルデータ(350)は、ゲームに関連付けられるメッシュを含む3Dモデルデータを含むことができる。たとえば、3Dモデルデータは、ゲームにおいて利用される1つまたは複数のアバタおよび/あるいは他のオブジェクトのメッシュデータを含み得る。一例では、3Dモデルデータが、馬に乗った人間に関連付けられるアバタのメッシュデータを有する場合、そのゲームが騎士に関連していることを示している可能性がある。別の例では、3Dモデルデータがジェットコースタおよび/または他の乗り物に関連付けられるメッシュデータを有する場合、そのゲームがテーマパークに関連していることを示している可能性がある。
アニメーションルーチン(360)は、ゲーム内のアバタおよび/またはオブジェクトのアニメーションおよび動きに関連付けられるデータを含むことができる。アニメーションルーチンは、プラットフォーム提供のアニメーションルーチン(カタログアニメーション)、ならびにゲーム開発者によって提供されるカスタムアニメーションを含めることができる。たとえば、ダンスの動き、アバタのジェスチャー、アクションシーケンスなどが含まれ得る。一例では、ゲームに関連付けられるアニメーションルーチンがモーションキャプチャダンス(Mocapダンス)に関連付けられるシミュレータを使用する場合、そのゲームがダンスゲームであることを示している可能性がある。別の例では、アニメーションがランニングアニメーションを含む場合、そのゲームがランニングゲームであること、またはアクティビティとしてランニングを含むゲーム、たとえばフィールドスポーツゲームであることを示している可能性がある。
ゲームプレイデータ(370)は、ゲームプラットフォームにおいて1人または複数のプレイヤによってプレイされたゲームセッションの詳細を含み得る。いくつかの実装形態では、ゲームプレイデータは、様々なゲームのデジタルアセットの使用の詳細を含む。たとえば、ゲームプレイデータは、ゲームのデジタルアセットがゲームセッション中に実際に呼び出されたかどうか、1つまたは複数のゲームのデジタルアセットの使用頻度、1人または複数のプレイヤによるゲームプレイの合計期間、およびゲームのデジタルアセットおよび/またはゲームのデジタルアセットに関連付けられる機能の合計使用期間のデータを含み得る。一例では、ランニングアニメーションがゲームにおいて実質的に使用されるゲームのデジタルアセットである場合、そのゲームがランニングゲームであることを示している可能性がある。別の例では、ゲームのデジタルアセットは、車の画像ならびにピザの画像を含み得、コードベースにおいて車の画像を使用することはできないが、ピザの画像はコードベースにおいて使用され、そのゲームがピザゲームに関連し、カーレーシングゲームには関連していない可能性があることを示している。
いくつかの実装形態では、ゲームプレイデータは1つまたは複数のゲームプレイセッション中のプレイヤのチャットデータを含み得る。
上記の複数のカテゴリからのデジタルアセットは、ゲームの分析に利用される。たとえば、ゲームのデジタルアセットが、車、レース場、紙吹雪、シャンパン、レース旗の画像ファイル、および衝突に関連付けられる物理コード、ならびに移動する車両に関連付けられるアニメーションコードを含むコードベースアセットを含む場合、そのゲームがレーシングゲームであることを示している可能性がある。一例では、車の部品、飛行機の部品、宇宙船の部品、コネクタなどの画像ファイルを含むが、アニメーション/物理コードを含まないゲームは、そのゲームが機械的な組立てゲームに関連していることを示している可能性がある。別の例では、食材の画像ファイルと建物の3Dモデルデータを含むデジタルアセットを有するゲームは、そのゲームがレストランの運営に関連していることを示している可能性がある。
図4は、いくつかの実装形態による、ゲームプレイセッションからの例示的な画像を示す図である。
いくつかの実装形態では、図4に関して説明したデジタルアセットに加えて、ゲームプレイセッションのスクリーンショットも記録され得る。スクリーンショットは、様々なユーザまたはプレイヤのグループによる以前のゲームプレイセッションから取得され得る。いくつかの実装形態では、シミュレーションによってゲームプレイセッションのレンダリングからもスクリーンショットが取得され得る。
たとえば、スクリーンショット410は、家、木々、緩やかになだらかな丘を含むシーンを描写しており、スクリーンショット420は、城を含むシーンを示しており、スクリーンショット430は、船、水辺、家、および森を含むシーンを描写している。
いくつかの実装形態では、スクリーンショットにおいて描かれている可能性のある物理的特徴、地形、オブジェクトなどを決定/識別するために、スクリーンショットに対して画像分析が実行され得る。ゲームのテキストタグの生成に利用され得るゲーム特性を決定するために、決定された物理的特徴、地形、オブジェクトなどが利用され得る。
いくつかの実装形態では、ゲームセッションの選択されたスクリーンショットは、ゲームのデジタルアセットとして記憶される。いくつかの実装形態では、スクリーンショットが処理され、スクリーンショットに基づいて生成されたラベルが記憶される。
図5は、いくつかの実装形態による、テキストタグを生成するための教師あり機械学習(ML)の例を示すブロック図である。
教師あり学習は1つまたは複数のプロセッサと、ソフトウェア命令を備えたメモリとを含むコンピュータにおいて実装することができる。いくつかの実装形態では1つまたは複数のプロセッサは、汎用中央処理装置(CPU)、グラフィック処理装置(GPU)、機械学習プロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他のタイプのプロセッサのうちの1つまたは複数を含み得る。
この例示的な例において、トレーニングデータ510とフィードバックジェネレータ550に基づいて機械学習(ML)モデル530をトレーニングするために、教師あり学習が使用される。MLモデル530は、任意の適切な機械学習技法、たとえば、フィードフォワードニューラルネットワーク、畳み込みニューラルネットワーク、または任意の他の適切なタイプのニューラルネットワークを使用して実装され得る。いくつかの実装形態では、MLモデル530を実装するために、ベイジアンモデル、サポートベクトルマシン、隠れマルコフモデル(HMM)など、他の機械学習技法を使用することができる。
トレーニングデータ510は、ゲームの(デジタル)アセット515と、複数のゲームのグラウンドトゥルースタグ525とを含む。デジタルアセットは、たとえば、図3に関して説明した任意のデジタルアセットを含み得る。グラウンドトゥルーステキストタグは、ゲームの開発者、ゲームプレイヤ、または他の人間のユーザによって提供されるタグから取得され得る。
この例示的な例において、デジタルアセット515は、トレーニング中の機械学習(ML)モデル530に提供される。MLモデルは、MLモデルの現在の状態およびデジタルアセットに基づいて、予測タグ540のセットを生成する。たとえば、MLモデルは、デジタルアセット515の特徴に基づいて特徴ベクトル(または、埋め込み)を決定し得る。特徴ベクトル(または、埋め込み)は、デジタルアセット515に基づいて生成された数学的多次元表現であり得る。異なるゲームは、それぞれのデジタルアセットに基づいて、異なる特徴ベクトルを有し得る。トレーニング時に、MLモデルは類似のゲーム(類似のタイプのデジタルアセットに関連付けられているゲーム)の類似の特徴ベクトルを生成する。
デジタルゲームのデジタルアセットの個々のコンポーネントに基づく分析は、ゲームコンテンツの不正確な決定につながる可能性がある。代わりに、全体として考えられるゲームのデジタルアセットの分析によって、ゲームコンテンツを正確に決定できる可能性がある。複数のゲームからの類似のゲームプレイは、MLモデルを使用してゲーム機能を分析することによって明らかにされる機能空間に類似のアセットを含む。各ゲームのデジタルアセットおよび/またはゲームのデジタルアセットの組合せは、MLモデルに入力される特徴として使用することができる。特徴は、ゲームをクラスタ化し、ゲームに関連付けられる予測タグを生成するためにMLモデルによって利用される。
別の言い方をすれば、MLモデル530を使用してゲームの特徴を決定するために、デジタルアセットが使用され得る。MLモデル530は、ゲームのテキストタグを生成するために、特徴ベクトルを利用し得る。たとえば、第1のゲームは、地図、部屋、壁、木などを含むデジタルアセットと、人間のキャラクタおよびキャラクタの衣服/アクセサリを有し得、第2のゲームは、車、レース場、燃料などを含むデジタルアセット、車を動かすアニメーションコード、およびレース場に沿って複数の車を描写するゲーム画像/スクリーンショットを有し得る。MLモデル530は、類似性を有するデジタルアセットを有しないゲームに基づいて、これらの2つの例示的なゲームについて著しく離れている特徴ベクトルを生成し得る。一方、トラック、道路、紙吹雪など、デジタルアセットと、道路を移動するトラックのビデオとを含む第3のゲームの場合、生成された特徴ベクトルは第2のゲームの特徴ベクトルと類似している場合がある。
MLモデル530は、ゲームに関連付けられるデジタルアセットに基づいて、たとえば、特徴ベクトルに基づいて、および/または他のゲームの特徴ベクトルとの類似性およびそれらの他のゲームに関連付けられるタグに基づいて、ゲームテキストタグを生成し得る。たとえば、MLモデル530は、第2および第3のゲームに対して「レーシング」タグを生成し、第1のゲームに対して「アドベンチャ」タグを生成し得る。
ナビゲーションの物理学とアバタの動きを含むコードベースアセットは、ゲームがナビゲーション可能なゲームであり得るという追加のシグナルを提供する。同様に、ゲーム内のカメラの配置など、コードベースアセットは、ゲームの視点、たとえば、ゲームが一人称ゲームであるかどうかに関するシグナルを提供し得る。
MLモデル530によって生成された予測タグ540は、フィードバックジェネレータ550に提供される。
フィードバックジェネレータ550には、ゲームに対応するグラウンドトゥルースタグ525(たとえば、人間が精選したタグ)も提供される。フィードバック560は、予測タグとグラウンドトゥルースタグとの比較に基づいて、フィードバックジェネレータ550によって生成される。たとえば、予測タグ540がグラウンドトゥルースタグ525に類似している場合、正のフィードバックがフィードバック560として提供され、タグが類似していない場合、トレーニング中のMLモデルに負のフィードバックが提供され、これは強化学習技法を使用して、受信したフィードバックに基づいて更新され得る。
いくつかの実装形態では、MLモデルは1つまたは複数のニューラルネットワークを含む。ニューラルネットワークは、複数の層を含む複数の層に編成されてもよい。各層は、複数のニューラルネットワークノードを備え得る。特定の層におけるノードは、直前の層におけるノードおよび直後の層におけるノードに接続され得る。いくつかの実装形態では、MLモデルは畳み込みニューラルネットワーク(CNN)であり得る。
いくつかの実装形態では、デジタルアセットはすべて、単一のMLモデルによって同時に処理される。いくつかの実装形態では、特定のタイプのデジタルアセットが第1のMLモデルによって処理され、他のタイプのデジタルアセットはアセットのタイプのそれぞれのMLモデルによって処理され得る。たとえば、画像ファイルは第1のMLモデルによって処理され得、オーディオクリップは第2のMLモデルによって処理され得るなどである。これらの実装形態では、MLモデル530の構造は、異なるタイプのデジタルアセットを分析し、それぞれの特徴ベクトルを生成する複数のMLモデルと、個々の特徴ベクトルを入力として取り、それらを組み合わせて、予測タグ540を生成するMLモデルとを含み得る。
いくつかの実装形態では、様々なカテゴリのデジタルアセットを処理して、デジタルアセットの各カテゴリにおける特性を識別するために、様々なタイプのMLモデルが利用され得る。たとえば、画像デジタルアセットの処理には畳み込みニューラルネットワーク(CNN)を利用し得、オーディオデジタルアセットの処理にはディープニューラルネットワーク(DNN)アーキテクチャを利用し得、テキストデジタルアセットの処理にはトランスフォーマからの双方向エンコーダ表現(BERT)モデルなどを利用し得る。次いで、識別された特徴は、予測タグを生成するための入力としてこれらの中間出力に作用する異なるMLモデルによって処理され得る。
MLモデルのトレーニングは、指定された間隔で定期的に実行されてもよく、イベントによってトリガされてもよい。いくつかの実装形態では、トレーニングは、テキストタグ予測精度のしきい値レベルに達するまで繰り返され得る。
図6は、いくつかの実装形態による、テキストタグを生成するために機械学習モデルをトレーニングするための例示的な方法を示すフローチャートである。
いくつかの実装形態では、方法600は、たとえば、図1を参照して説明したゲームサーバ102上で実装することができる。いくつかの実装形態では、方法600の一部または全部は、図1に示されるように1つもしくは複数のクライアントデバイス110、1つもしくは複数の開発者デバイス130、あまたは1つもしくは複数のサーバデバイス102、ならびに/あるいは開発者デバイス、サーバデバイス、およびクライアントデバイスの組合せにおいて実装することができる。説明される例では、実装システムは1つまたは複数のデジタルプロセッサまたは処理回路(「プロセッサ」)、および1つまたは複数のストレージデバイス(たとえば、データストア120または他のストレージ)を含む。いくつかの実装形態では1つまたは複数のサーバおよび/あるいはクライアントの異なるコンポーネントは、方法600の異なるブロックまたは他の部分を実行することができる。いくつかの例では、第1のデバイスは、方法600のブロックを実行するものとして説明される。いくつかの実装形態は、結果またはデータを第1のデバイスに送信することができる1つまたは複数の他のデバイス(たとえば、他のクライアントデバイスまたはサーバデバイス)によって実行される方法600の1つまたは複数のブロックを有することができる。
いくつかの実装形態では、方法600または方法の一部は、システムによって自動的に開始することができる。いくつかの実装形態では、実装システムは第1のデバイスである。たとえば、本方法(または、その一部)は、定期的に実行されるか、1つまたは複数の特定のイベントまたは条件、たとえば、テキストタグ予測の精度がしきい値を下回った場合、方法600の最後の実行から所定の時間期間が経過した場合、および/または本方法によって読み取られる設定において指定することができる1つまたは複数の他の条件が発生した場合に基づいて実行することができる。
方法600は、ブロック610において開始し得る。ブロック610において、様々なゲームに関連付けられるデジタルアセットが、機械学習モデルへの入力として提供される。データは、複数のゲーム識別子と、ゲーム識別子によって識別される各ゲームに関連付けられるデジタルアセットのそれぞれのセットとを含む。たとえば、ゲームに関連付けられるタイトルまたは英数字コード、およびデジタルゲームのデジタルアセットのセット、たとえば、画像ファイル、3DモデルなどがMLモデルへの入力として提供され得る。
前述のとおり、デジタルアセットは、ゲームのスクリーンショット、ゲームのビデオスニペット、ゲームオブジェクト、メッシュ、アバタ、ゲームのソースコード、ゲームの構成パラメータ、ゲームの照明、ゲームのレベルカウント、アバタの動き、ゲームのテキストコンテンツ、ゲーム内で生成されたチャットコンテンツ、ゲームサウンド、ゲームのバックグラウンドミュージック、コードカバレッジ、またはゲームプレイ中のデジタルアセットの使用頻度のうちの1つまたは複数を含み得る。ブロック610の後にブロック620が続き得る。
ブロック620において、ゲーム識別子によって識別されたゲームのデジタルアセットおよびMLモデルの現在の状態に基づいて、MLモデルによって予測テキストタグが生成される。
ニューラルネットワークを使用する実装形態では、デジタルアセットのそれぞれのセットに基づいて、ゲーム識別子によって識別されるゲームごとにそれぞれの特徴ベクトルが生成され得る。特徴ベクトル(または、埋め込み)は、ゲームのデジタルアセットに基づいて生成された数学的多次元表現であり得る。異なるゲームは、それぞれのデジタルアセットに基づいて、異なる特徴ベクトルを有し得る。トレーニング時に、MLモデルは類似のゲーム(類似したタイプの、ゲームのデジタルアセットに関連付けられているゲーム)の類似の特徴ベクトルを生成する。
いくつかの実装形態では、機械学習モデルは1つまたは複数の入力ニューラルネットワークおよび1つの出力ニューラルネットワークを含む。それぞれの特徴ベクトルは1つまたは複数の入力ニューラルネットワークを使用して生成され、それぞれの特徴ベクトルは、出力ニューラルネットワークへの入力として提供され得る。
いくつかの実装形態では、第1のニューラルネットワークは、デジタルアセット内の1つまたは複数の画像アセットに基づいて特徴ベクトルの第1の部分を生成し、第2のニューラルネットワークは、デジタルアセット内の1つまたは複数のコードアセットに基づいて特徴ベクトルの第2の部分を生成し、第3のニューラルネットワークは、デジタルアセット内の1つまたは複数のテキストアセットに基づいて特徴ベクトルの第3の部分を生成し、第4のニューラルネットワークは、デジタルアセット内の1つまたは複数のオーディオアセットに基づいて特徴ベクトルの第4の部分を生成し、第5のニューラルネットワークは1つまたは複数のゲームプレイアセットに基づいて特徴ベクトルの第5の部分を生成する。
いくつかの実装形態では、1つまたは複数の画像アセットは、ゲームのスクリーンショット、ゲームのビデオスニペット、ゲームオブジェクト、メッシュ、またはアバタのうちの1つまたは複数を含み得る。いくつかの実装形態では、コードアセットはゲームのソースコード、ゲームの構成パラメータ、ゲームの照明、ゲームのレベルカウント、またはアバタの動きのうちの1つまたは複数を含み得る。
いくつかの実装形態では、テキストアセットは、ゲームのテキストコンテンツまたはゲーム内で生成されたチャットコンテンツのうちの1つまたは複数を含み得る。いくつかの実装形態では、オーディオアセットは、ゲームサウンドまたはゲームのバックグラウンドミュージックのうちの1つまたは複数を含み得る。いくつかの実装形態では、ゲームプレイアセットは、コードカバレッジ、またはゲームプレイ中のデジタルアセットの使用頻度のうちの1つまたは複数を含み得る。ブロック620の後にブロック630が続き得る。
ブロック630において、予測テキストタグは、グラウンドトゥルースタグと比較される。たとえば、ゲーム識別子によって識別されたゲームの1つまたは複数の予測テキストタグが、ゲームに関連付けられるそれぞれのグラウンドトゥルースタグと比較される。グラウンドトゥルーステキストタグは、ゲームの開発者、ゲームプレイヤ、または他の人間のユーザによって提供されるタグから取得され得る。テキストタグ予測の精度は、ゲームごとに決定され、たとえば、提供されたデジタルアセットに基づいて、MLモデルがゲームごとのテキストタグを正常に予測したかどうかが評価される。損失値は、テキストタグ予測の精度に基づいて決定される。たとえば、マルチクラス分類器のクロスエントロピ損失関数をテキストタグ予測に利用することができる。ブロック630の後にブロック640が続き得る。
ブロック640において、MLモデルは、予測タグとグラウンドトゥルースタグとの比較から生成されたフィードバックに基づいて更新される。たとえば、損失値は、MLモデルの1つまたは複数のパラメータを調整するために利用される。たとえば、ニューラルネットワークを使用してMLモデルが実装される場合、ニューラルネットワークの1つまたは複数のノードおよび/またはニューラルネットワークのノードの1つまたは複数のペア間の接続に関連付けられる重みは、損失値に基づいて調整され得る。いくつかの実装形態では、ニューラルネットワークのノードのペア間のリンクに関連付けられる重みが調整され得る。ブロック640の後にブロック650が続き得る。
ブロック650において、MLモデルの精度は、累積結果に基づいて決定され、しきい値と比較される。たとえば、精度を決定するために、MLモデルによって生成されたタグがグラウンドトゥルースタグと比較され得る。別の例では、ゲームプラットフォームのユーザにユーザインターフェースを表示し、タグの有効性を測定するために(たとえば、タグのクリック率、MLモデルによって生成されたタグを含むユーザインターフェースによって生成されたゲームプレイに対するA/Bテスト構成において他の方法で取得されたタグ、人間によるタグの評価などに基づいて)、MLモデルによって生成されたタグが使用され得る。精度がしきい値を満たす場合、トレーニングされたMLモデルは展開に適していると決定され、処理はブロック660に進み、精度がしきい値を満たさない場合、MLモデルのトレーニングは継続され、処理は610に戻る。
ブロック660において、トレーニングされたMLモデルは、ゲーム用のテキストタグの生成のために展開され得る。
方法600またはその一部は、追加の入力を使用して何度でも繰り返され得る。たとえば、ブロック620および630は、グラウンドトゥルーステキストタグの複数のセットで繰り返され得る。別の例では、ブロック610~650が追加のゲームで繰り返され得る。方法600は、テキストタグ予測精度のしきい値レベルに達するまで繰り返され得る。
いくつかの実装形態では、方法600またはその一部は、ゲームのレーティングにおける変化、たとえば、ゲームプラットフォームのトップ/人気ゲームのレーティングにおける変化に基づいて、またはA/Bテストの結果に基づいて繰り返され得る。いくつかの実装形態では、モデルパラメータが調整されてよく、トリガ要因、たとえば、ゲームのレーティングにおける変化、A/Bテストの結果などに基づいてモデルが再トレーニングされ得る。
図7は、いくつかの実装形態による、機械学習モデルを使用してゲーム用のテキストタグを生成するための例示的な方法を示すブロック図である。いくつかの実装形態では、トレーニングされた機械学習モデル730は、ゲームの(デジタル)アセット710に基づいてテキストタグ750を生成するために利用される。タグレポジトリ740は、複数のテキストタグを記憶するために利用され得る。予測テキストタグ750は、デジタルアセット710に基づいて生成される。
図5に関して前述したように、ゲームのデジタルアセットおよびゲームのデジタルアセットの組合せは、特徴としてMLモデルに提供され、MLモデルは、ゲームをクラスタ化し、ゲームに関連付けられるテキストタグを決定するために、特徴を使用する。
いくつかの実装形態では、MLモデルはニューラルネットワークであり、たとえば、図6に関して説明したニューラルネットワークモデルに類似している。
いくつかの実装形態では、MLモデルは、バイナリ分類、マルチクラス分類、および回帰のうちの1つまたは複数を含み得る。いくつかの実装形態では、MLモデルは、K平均法モデル、kNNモデル、線形回帰モデル、ロジスティック回帰モデル、デシジョンツリーモデル、SVMモデル、ナイーブベイジアンモデル、ランダムフォレストモデルなどであり得る。
いくつかの実装形態では、様々なクラスのデジタルアセットに様々なMLモデルが利用され得る。いくつかの実装形態では、同じMLモデルがすべてのデジタルアセットで利用され得る。
いくつかの実装形態では、予測テキストタグは、様々なタイプ(クラス)のデジタルアセットに基づく予測タグの一致に基づいて決定され得る。たとえば、2つ以上のタイプのデジタルアセットからの予測が同じである場合、テキストタグが予測され得る。いくつかの実装形態では、3つ以上のタイプのデジタルアセットからの予測が同じである場合、テキストタグが予測され得る。
いくつかの実装形態では、異なるデジタルアセットに基づいて予測に重みが割り当てられてよく、MLモデルによって予測タグを決定するために加重スコアが利用され得る。
いくつかの実装形態では、ユーザ(開発者)によって提供されたテキストタグは、悪意のある開発者がゲーム機能によってサポートされていない誤解を招くテキストタグを提供しないように、MLモデルによって検証され得る。たとえば、特定のタイプ/カテゴリのゲームが非常に人気がある場合、ゲーム開発者は、実際には人気のあるそのゲームカテゴリに対応する機能を含んでいない可能性がある場合でも、人気のあるそのゲームカテゴリに属していることを示すタグを自分のゲームに付けることができる。
図8は、いくつかの実装形態による、機械学習モデルを使用してゲーム用のテキストタグを生成するための別の例示的な方法を示すフローチャートである。
たとえば、トレーニングされたMLモデルは、図5を参照して上述した技法を使用してトレーニングした後に取得されるMLモデル530であってもよい。
いくつかの実装形態では、方法800は、たとえば、図1を参照して説明したゲームサーバ102上で実装することができる。いくつかの実装形態では、方法800の一部または全部は、図1に示されるように1つもしくは複数のクライアントデバイス110、1つもしくは複数の開発者デバイス130、または1つもしくは複数のサーバデバイス102、ならびに/あるいは開発者デバイス、サーバデバイス、およびクライアントデバイスの組合せにおいて実装することができる。説明される例では、実装システムは1つまたは複数のデジタルプロセッサまたは処理回路(「プロセッサ」)、および1つまたは複数のストレージデバイス(たとえば、データストア120または他のストレージ)を含む。いくつかの実装形態では、1つまたは複数のサーバおよび/あるいはクライアントの異なるコンポーネントは、方法800の異なるブロックまたは他の部分を実行することができる。いくつかの例では、第1のデバイスは、方法800のブロックを実行するものとして説明される。いくつかの実装形態は、結果またはデータを第1のデバイスに送信することができる1つまたは複数の他のデバイス(たとえば、他のクライアントデバイスまたはサーバデバイス)によって実行される方法800の1つまたは複数のブロックを有することができる。
ブロック810において、ゲームに関連付けられるデジタルアセットに加えて、ゲームのゲーム識別子が受信される。ゲーム識別子およびデジタルアセットは、トレーニングされた機械学習モデルへの入力として提供される。
いくつかの実装形態では、デジタルアセットは、ゲームのスクリーンショット、ゲームのビデオスニペット、ゲームオブジェクト、メッシュ、アバタ、ゲームのソースコード、ゲームの構成パラメータ、ゲームの照明、ゲームのレベルカウント、アバタの動き、ゲームのテキストコンテンツ、ゲーム内で生成されたチャットコンテンツ、ゲームサウンド、ゲームのバックグラウンドミュージック、コードカバレッジ、またはゲームプレイ中のデジタルアセットの使用頻度のうちの1つまたは複数を含み得る。ブロック810の後にブロック820が続き得る。
ブロック820において、予測テキストタグと、予測タグの各々に関連付けられるスコアとが生成される。予測タグは、たとえば、図6において説明されているように、トレーニングされたMLモデルによって生成され得る。トレーニングされた機械学習モデルを使用して、複数の予測テキストタグが生成され得る。各テキストタグは、テキストタグの機械学習モデルを使用して計算された予測信頼度を示すそれぞれの予測スコアに関連付けられ得る。
いくつかの実装形態では、予測テキストタグは、ゲームプラットフォームに固有の単語または語彙のコレクションに制限され得る。たとえば、ユーザ、たとえばゲーム作成者、ゲームプレイヤなどによって手動で提供され、ゲームプラットフォームのゲームに関連付けられるテキストタグからの単語および/または語句が、語彙を形成する場合がある。いくつかの実装形態では、予測テキストタグは制限されていなくてもよく、たとえば、言語辞書など、より大きい単語のコーパスからの任意の単語を含んでもよい。
いくつかの実装形態では1つまたは複数のテキストタグは、ゲームのタイプまたはゲームプレイのスタイルを示している。たとえば、テキストタグは、タイクーンゲーム、障害物コースゲーム、一人称シューティングゲーム、共同ゲーム、ソーシャルゲームなど、タグを含み得る。
いくつかの実装形態では、予測タグのセットを浮上させるために、しきい値が利用され得る。ブロック820の後にブロック830が続き得る。
ブロック830において、しきい値に基づいて、1つまたは複数のタグが選択され得る。それぞれの予測スコアに基づいて、複数の予測テキストタグから1つまたは複数のテキストタグが選択され得る。
異なる実装形態では、選択されたタグが様々な目的で利用され得る。いくつかの実装形態では、選択されたタグのうちの1つまたは複数を、ゲーム識別子に関連付けてデータベースに記憶することができる。これらの実装形態では、ゲームの検索または閲覧をサポートするために、記憶されたタグが利用され得る。たとえば、ユーザ検索に一致するゲームを識別するために、ユーザが入力した検索語(たとえば、「乗馬」)と記憶されたタグとの意味比較が実行され得る。別の例では、ゲームに割り当てられたタグによってユーザがゲームを閲覧できるようにするユーザインターフェースをレンダリングするために、記憶されたタグが使用され得る。
いくつかの実装形態では、ゲーム用に選択されたタグは、(たとえば、ゲーム作成者によって)ゲームに手動で割り当てられたタグを評価するために利用され得る。評価は、手動で割り当てられた各タグが不正確または無関係であるかの決定を含み得る。そのような評価の際に、不正確または無関係なタグは、たとえば、ゲームとの関連付けから非表示および/または削除されるなど、抑制される場合がある。このように手動で割り当てられたタグを抑制することで、ゲームの品質およびゲームとプレイヤの興味との関連性に基づいて、ゲームへのプレイヤトラフィックが本物であることを確認することができる。これにより、プレイヤが楽しむゲームプレイセッションの割合が高くなり、不正確または無関係なラベルが原因で発生する可能性のある短いセッション(たとえば、1分未満)または満足されないセッションの数を減らすことができる。
図9は、本明細書で説明される1つまたは複数の機能を実装するために使用され得る例示的なコンピューティングデバイス900のブロック図である。一例では、コンピュータデバイス(たとえば、図1の102および/または110)を実装することと、本明細書に記載の適切な方法実装形態を実行することとを行うために、デバイス900が使用され得る。コンピューティングデバイス900は、任意の適切なコンピュータシステム、サーバ、または他の電子またはハードウェアデバイスであり得る。たとえば、コンピューティングデバイス900は、メインフレームコンピュータ、デスクトップコンピュータ、ワークステーション、ポータブルコンピュータ、または電子デバイス(ポータブルデバイス、モバイルデバイス、携帯電話、スマートフォン、タブレットコンピュータ、テレビ、テレビセットトップボックス、携帯情報端末(PDA)、メディアプレイヤ、ゲームデバイス、ウェアラブルデバイスなど)であってよい。いくつかの実装形態では、デバイス900は、プロセッサ902、メモリ904、入力/出力(I/O)インターフェース906、およびオーディオ/ビデオ入力/出力デバイス914を含む。
プロセッサ902は、プログラムコードを遂行し、デバイス900の基本的な動作を制御するための1つまたは複数のプロセッサおよび/または処理回路であり得る。「プロセッサ」は、データ、信号、または他の情報を処理する任意の適切なハードウェアおよび/またはソフトウェアシステム、メカニズム、あるいはコンポーネントを含む。プロセッサは、汎用中央処理装置(CPU)、複数の処理装置、機能を達成するための専用回路、または他のシステムを備えたシステムを含み得る。処理は特定の地理的な場所に限定される必要はなく、時間的な制限もない。たとえば、プロセッサは、「リアルタイム」、「オフライン」、「バッチモード」などにおいてその機能を実行し得る。処理の一部は、異なる時間に、異なる場所で、異なる(または、同じ)処理システムによって実行され得る。コンピュータは、メモリと通信する任意のプロセッサであり得る。
メモリ904は、通常、プロセッサ902によるアクセスのためにデバイス900において提供され、たとえば、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、電気的消去可能読取り専用メモリ(EEPROM)、フラッシュメモリなどであり得、プロセッサによって遂行するための命令を記憶するために適しており、プロセッサ902とは別に配置され、および/またはプロセッサ902と統合されている、任意の適切なプロセッサ可読ストレージ媒体であり得る。メモリ904は、オペレーティングシステム908、1つまたは複数のアプリケーション910、たとえば、オーディオ空間化アプリケーションおよびアプリケーションデータ912を含む、プロセッサ902によってサーバデバイス900上で動作するソフトウェアを記憶することができる。いくつかの実装形態では、アプリケーション910は、プロセッサ902が本明細書に記載の機能を実行する(または、その機能を制御する)ことを可能にする命令、たとえば、図6および8に関して説明される方法のいくつかまたはすべてを含むことができる。
たとえば、アプリケーション910は、オーディオ空間化モジュール912を含むことができ、これは、本明細書で説明されるように、オンラインゲームサーバ(たとえば、102)内にオーディオ空間化を提供することができる。あるいは、メモリ904内の任意のソフトウェアを、任意の他の適切なストレージ場所またはコンピュータ可読媒体に記憶することができる。さらに、メモリ904(および/または他の接続されたストレージデバイス)は、本明細書で説明される機能において使用される命令およびデータを記憶することができる。メモリ904および他のタイプのストレージ(磁気ディスク、光ディスク、磁気テープ、または他の有形媒体)は、「ストレージ」または「ストレージデバイス」と見なすことができる。
I/Oインターフェース906は、サーバデバイス900を他のシステムおよびデバイスとインターフェースすることを可能にする機能を提供することができる。たとえば、ネットワーク通信デバイス、ストレージデバイス(たとえば、メモリおよび/またはデータストア120)、および入力/出力デバイスは、インターフェース906を介して通信することができる。いくつかの実装形態では、I/Oインターフェースは、入力デバイス(キーボード、ポインティングデバイス、タッチスクリーン、マイクロフォン、カメラ、スキャナなど)および/または出力デバイス(ディスプレイデバイス、スピーカデバイス、プリンタ、モータなど)を含むインターフェースデバイスに接続することができる。
オーディオ/ビデオ入力/出力デバイス914は、ユーザ入力を受信するために使用することができるユーザ入力デバイス(たとえば、マウスなど)、ディスプレイデバイス(たとえば、画面、モニタなど)、および/またはグラフィカルおよび/またはビジュアル出力を提供するために使用できる、入力デバイスとディスプレイデバイスの組合せを含むことができる。
説明を容易にするために、図9は、プロセッサ902、メモリ904、I/Oインターフェース906、およびソフトウェアブロック908および910のそれぞれについて1つのブロックを示している。これらのブロックは、1つまたは複数のプロセッサあるいは処理回路、オペレーティングシステム、メモリ、I/Oインターフェース、アプリケーション、および/またはソフトウェアエンジンを表す場合がある。他の実装形態では、デバイス900は、図示されるコンポーネントのすべてを有さない場合があり、および/または本明細書に示されるものの代わりに、またはそれに加えて、他のタイプの要素を含む他の要素を有する場合がある。オンラインゲームサーバ102は、本明細書のいくつかの実装形態において説明されるような動作を実行するものとして説明されるが、オンラインゲームサーバ102または同様のシステムの任意の適切なコンポーネントまたはコンポーネントの組合せ、あるいはそのようなシステムに関連付けられる任意の適切なプロセッサまたは複数のプロセッサは、説明された動作を実行し得る。
ユーザデバイスはまた、本明細書に記載の機能を実装および/または使用することができる。例示的なユーザデバイスは、デバイス900と同様の何らかのコンポーネント、たとえば、プロセッサ902、メモリ904、およびI/Oインターフェース906を含むコンピュータデバイスであり得る。クライアントデバイスに適したオペレーティングシステム、ソフトウェア、およびアプリケーションは、メモリにおいて提供され、プロセッサによって使用することができる。クライアントデバイスのI/Oインターフェースは、ネットワーク通信デバイス、ならびに入力デバイスおよび出力デバイス、たとえば、サウンドをキャプチャするためのマイクロフォン、画像またはビデオをキャプチャするためのカメラ、ユーザ入力をキャプチャするためのマウス、ユーザのジェスチャーを認識するためのジェスチャーデバイス、ユーザ入力を検出するためのタッチスクリーン、サウンドを出力するためのオーディオスピーカデバイス、画像またはビデオを出力するためのディスプレイデバイス、あるいは他の出力デバイスに接続することができる。オーディオ/ビデオ入力/出力デバイス914内のディスプレイデバイスは、本明細書で説明されるように前処理および後処理の画像を表示するために、たとえば、デバイス900に接続され(または、含まれ)てよく、そのようなディスプレイデバイスは、任意の適切なディスプレイデバイス、たとえば、LCD、LED、またはプラズマディスプレイスクリーン、CRT、テレビ、モニタ、タッチスクリーン、3Dディスプレイスクリーン、プロジェクタ、または他の視覚的ディスプレイデバイスを含むことができる。いくつかの実装形態は、たとえば、テキストを話す音声出力または合成などのオーディオ出力デバイスを提供することができる。
本明細書に記載の1つまたは複数の方法(たとえば、方法600および800)は、コンピュータ上で遂行することができるコンピュータプログラム命令またはコードによって実装することができる。たとえば、コードは、1つまたは複数のデジタルプロセッサ(たとえば、マイクロプロセッサまたは他の処理回路)によって実装することができ、非一時的コンピュータ可読媒体(たとえば、ストレージ媒体)、たとえば、磁気、光学、電磁、あるいは半導体またはソリッドステートメモリを含む半導体ストレージ媒体、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、フラッシュメモリ、リジッドマグネティックディスク、光ディスク、ソリッドステートメモリドライブなどを含むコンピュータプログラム製品に記憶することができる。プログラム命令はまた、たとえば、サーバ(たとえば、分散システムおよび/またはクラウドコンピューティングシステム)から配信されるサービスとしてのソフトウェア(SaaS)の形で、電子信号に含まれ、電子信号として提供され得る。あるいは、1つまたは複数の方法をハードウェア(論理ゲートなど)において実装することも、ハードウェアとソフトウェアの組合せにおいて実装することもできる。ハードウェアの例は、プログラマブルプロセッサ(たとえば、フィールドプログラマブルゲートアレイ(FPGA)、コンプレックスプログラマブルロジックデバイス)、汎用プロセッサ、グラフィックプロセッサ、特定用途向け集積回路(ASIC)などがある。1つまたは複数の方法は、システムで実行されているアプリケーションの一部またはコンポーネントとして、あるいは他のアプリケーションおよびオペレーティングシステムと組み合わせて実行されているアプリケーションまたはソフトウェアとして実行することができる。
本明細書で説明する1つまたは複数の方法は、任意のタイプのコンピューティングデバイスにおいて実行できるスタンドアロンプログラム、ウェブブラウザにおいて実行されるプログラム、モバイルコンピューティングデバイス(たとえば、携帯電話、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス(腕時計、アームバンド、ジュエリ、ヘッドウェア、ゴーグル、グラスなど)、ラップトップコンピュータなど)において実行されるモバイルアプリケーション(「アプリ」)で実行することができる。一例では、クライアント/サーバアーキテクチャを使用することができ、たとえば、モバイルコンピューティングデバイス(クライアントデバイスとして)は、ユーザ入力データをサーバデバイスに送信し、サーバから出力用(たとえば、表示用)の最終出力データを受信する。別の例では、すべての計算は、モバイルコンピューティングデバイス上のモバイルアプリ(および/または他のアプリ)内で実行することができる。別の例では、計算は、モバイルコンピューティングデバイスと1つまたは複数のサーバデバイスとの間で分割することができる。
説明は、特定の実装形態に関して説明されてきたが、これらの特定の実装形態は単なる例示であり、限定的ではない。例に示されている概念は、他の例および実装形態に適用され得る。
本開示で説明される機能ブロック、動作、機能、方法、デバイス、およびシステムは、当業者に知られているように、システム、デバイス、および機能ブロックの異なる組合せに統合されてもよく、分割されてもよい。特定の実装形態のルーチンを実装するために、任意の適切なプログラミング言語およびプログラミング技法が使用され得る。異なるプログラミング技法、たとえば、手続き型またはオブジェクト指向が採用され得る。ルーチンは、単一の処理デバイスまたは複数のプロセッサにおいて遂行され得る。ステップ、操作、または計算は特定の順序で提示される場合があるが、異なる特定の実装形態において順序が変更され得る。いくつかの実装形態では、本明細書においてシーケンシャルとして示されている複数のステップまたは動作が同時に実行されてもよい。
100 システムアーキテクチャ
102 ゲームサーバ、オンラインゲームサーバ、サーバデバイス
104 ゲームエンジン
106 ゲーム
108 グラフィックエンジン
110 クライアントデバイス
110a、110b、110n クライアントデバイス
112 ゲームアプリケーション
114 入力/出力(I/O)インターフェース
120 データベース、データストア
122 ネットワーク
130 開発者デバイス
130a、130n 開発者デバイス
132 ゲームアプリケーション
134 I/Oインターフェース
220a~220d ゲームのカテゴリ
220a 人気のあるゲーム
220b トップのソーシャルゲーム
220c トップのアドベンチャゲーム
220d ユーザに推奨されるゲーム
240 タグ
320 画像ファイル
340 コードベースアセット
350 3Dモデルおよび/またはメッシュ、3Dモデルデータ
360 アニメーションルーチン
370 ゲームプレイデータ
410 スクリーンショット
420 スクリーンショット
430 スクリーンショット
510 トレーニングデータ
515 ゲーム(デジタル)アセット
525 グラウンドトゥルースタグ
530 機械学習(ML)モデル
540 予測タグ
550 フィードバックジェネレータ
560 フィードバック
600 方法
710 ゲーム(デジタル)アセット
730 トレーニングされた機械学習モデル
740 タグレポジトリ
750 予測テキストタグ
800 方法

Claims (21)

  1. トレーニングされた機械学習モデルを使用してゲーム用の1つまたは複数のテキストタグを生成するためのコンピュータ実装方法であって、
    前記トレーニングされた機械学習モデルへの入力として、前記ゲームのゲーム識別子と、前記ゲームに関連付けられるデジタルアセットのセットとを含むデータを提供するステップと、
    前記トレーニングされた機械学習モデルを使用して、および前記ゲームに関連付けられるデジタルアセットの前記セットに基づいて、複数の予測テキストタグを生成するステップであって、各テキストタグがそれぞれの予測スコアに関連付けられる、ステップと、
    前記それぞれの予測スコアに基づいて、前記複数の予測テキストタグから前記1つまたは複数のテキストタグを選択するステップと
    を備える、コンピュータ実装方法。
  2. 前記デジタルアセットのセットが、ゲームのスクリーンショット、ゲームのビデオスニペット、ゲームオブジェクト、メッシュ、アバタ、ゲームのソースコード、ゲームの構成パラメータ、ゲームの照明、ゲームのレベルカウント、アバタの動き、前記ゲームのテキストコンテンツ、前記ゲーム内で生成されたチャットコンテンツ、ゲームサウンド、ゲームのバックグラウンドミュージック、コードカバレッジ、またはゲームプレイ中のデジタルアセットのそれぞれの使用頻度のうちの1つまたは複数を含む、請求項1に記載のコンピュータ実装方法。
  3. 前記1つまたは複数のテキストタグが、前記ゲームのタイプまたはゲームプレイのスタイルを示している、請求項1に記載のコンピュータ実装方法。
  4. 既存のテキストタグを前記1つまたは複数のテキストタグと比較することによって、前記ゲームの前記既存のテキストタグを検証するステップをさらに備える、請求項1に記載のコンピュータ実装方法。
  5. タグを生成するために機械学習モデルをトレーニングするコンピュータ実装方法であって、
    前記機械学習モデルへの入力として、複数のゲーム識別子と、前記ゲーム識別子によって識別される各ゲームに関連付けられるデジタルアセットのそれぞれのセットとを含むデータを提供するステップと、
    前記機械学習モデルによって、前記ゲーム識別子によって識別されるゲームごとに1つまたは複数の予測タグを生成するステップと、
    前記1つまたは複数の予測タグを、前記ゲーム識別子によって識別される各ゲームに関連付けられるそれぞれのタグと比較するステップと、
    前記比較に基づいて、前記機械学習モデルの1つまたは複数のパラメータを調整するステップと
    を備える、コンピュータ実装方法。
  6. 前記機械学習モデルがニューラルネットワークを備え、前記機械学習モデルの前記1つまたは複数のパラメータを調整するステップが、前記ニューラルネットワークの1つまたは複数のノードに関連付けられる重みを調整するステップ、あるいは前記ニューラルネットワークのノードのペア間のリンクに関連付けられる重みを調整するステップを含む、請求項5に記載のコンピュータ実装方法。
  7. 前記デジタルアセットが、ゲームのスクリーンショット、ゲームのビデオスニペット、ゲームオブジェクト、メッシュ、アバタ、ゲームのソースコード、ゲームの構成パラメータ、ゲームの照明、ゲームのレベルカウント、アバタの動き、前記ゲームのテキストコンテンツ、前記ゲーム内で生成されたチャットコンテンツ、ゲームサウンド、ゲームのバックグラウンドミュージック、コードカバレッジ、またはゲームプレイ中のデジタルアセットの使用頻度のうちの1つまたは複数を含む、請求項5に記載のコンピュータ実装方法。
  8. デジタルアセットの前記それぞれのセットに基づいて、前記ゲーム識別子によって識別されるゲームごとにそれぞれの特徴ベクトルを生成するステップをさらに備え、前記機械学習モデルによって前記1つまたは複数の予測タグを生成する前記ステップが、前記それぞれの特徴ベクトルに基づく、請求項5に記載のコンピュータ実装方法。
  9. 前記機械学習モデルが、1つまたは複数の入力ニューラルネットワークおよび1つの出力ニューラルネットワークを含み、前記それぞれの特徴ベクトルを生成するステップが、前記1つまたは複数の入力ニューラルネットワークを使用して実行され、
    前記出力ニューラルネットワークへの入力として前記それぞれの特徴ベクトルを提供するステップをさらに備える、請求項8に記載のコンピュータ実装方法。
  10. 前記1つまたは複数の入力ニューラルネットワークが、
    前記デジタルアセット内の1つまたは複数の画像アセットに基づいて前記特徴ベクトルの第1の部分を生成する第1の入力ニューラルネットワークと、
    前記デジタルアセット内の1つまたは複数のコードアセットに基づいて前記特徴ベクトルの第2の部分を生成する第2の入力ニューラルネットワークと、
    前記デジタルアセット内の1つまたは複数のテキストアセットに基づいて前記特徴ベクトルの第3の部分を生成する第3の入力ニューラルネットワークと、
    前記デジタルアセット内の1つまたは複数のオーディオアセットに基づいて前記特徴ベクトルの第4の部分を生成する第4の入力ニューラルネットワークと、
    1つまたは複数のゲームプレイアセットに基づいて前記特徴ベクトルの第5の部分を生成する第5の入力ニューラルネットワークと
    のうちの少なくとも1つを含む、請求項9に記載のコンピュータ実装方法。
  11. 前記第1の入力ニューラルネットワークが、前記デジタルアセット内の1つまたは複数の画像アセットに基づいて前記特徴ベクトルの前記第1の部分を生成し、前記1つまたは複数の画像アセットが、ゲームのスクリーンショット、ゲームのビデオスニペット、ゲームオブジェクト、メッシュ、またはアバタのうちの1つまたは複数を含む、請求項10に記載のコンピュータ実装方法。
  12. 前記第2の入力ニューラルネットワークが、前記デジタルアセット内の1つまたは複数のコードアセットに基づいて前記特徴ベクトルの前記第2の部分を生成し、前記コードアセットが、1つまたは複数のゲームのソースコード、ゲームの構成パラメータ、ゲームの照明、ゲームのレベルカウント、またはアバタの動きのうちの1つまたは複数を含む、請求項10に記載のコンピュータ実装方法。
  13. 前記第3の入力ニューラルネットワークが、前記デジタルアセット内の1つまたは複数のテキストアセットに基づいて前記特徴ベクトルの前記第3の部分を生成し、前記テキストアセットが、前記ゲームのテキストコンテンツまたは前記ゲーム内で生成されたチャットコンテンツのうちの1つまたは複数を含む、請求項10に記載のコンピュータ実装方法。
  14. 前記第4の入力ニューラルネットワークが、前記デジタルアセット内の1つまたは複数のオーディオアセットに基づいて前記特徴ベクトルの前記第4の部分を生成し、前記オーディオアセットが、ゲームサウンドまたはゲームのバックグラウンドミュージックのうちの1つまたは複数を含む、請求項10に記載のコンピュータ実装方法。
  15. 前記第5の入力ニューラルネットワークが、1つまたは複数のゲームプレイアセットに基づいて前記特徴ベクトルの前記第5の部分を生成し、前記ゲームプレイアセットが、コードカバレッジ、またはゲームプレイ中のデジタルアセットの使用頻度のうちの1つまたは複数を含む、請求項10に記載のコンピュータ実装方法。
  16. 処理デバイスによる遂行に応答して、前記処理デバイスに
    トレーニングされた機械学習モデルへの入力として、複数のゲーム識別子と、前記ゲーム識別子によって識別される各ゲームに関連付けられるデジタルアセットのそれぞれのセットとを含むデータを提供することと、
    前記トレーニングされた機械学習モデルを使用して、複数の予測テキストタグを生成することであって、各テキストタグが、それぞれの予測スコアに関連付けられる、生成することと、
    前記それぞれの予測スコアに基づいて、前記複数の予測テキストタグから前記1つまたは複数のテキストタグを選択することと
    備える動作を実行させる命令を備える、非一時的コンピュータ可読媒体。
  17. 前記デジタルアセットが、ゲームのスクリーンショット、ゲームのビデオスニペット、ゲームオブジェクト、メッシュ、アバタ、ゲームのソースコード、ゲームの構成パラメータ、ゲームの照明、ゲームのレベルカウント、アバタの動き、前記ゲームのテキストコンテンツ、前記ゲーム内で生成されたチャットコンテンツ、ゲームサウンド、ゲームのバックグラウンドミュージック、コードカバレッジ、またはゲームプレイ中のデジタルアセットの使用頻度のうちの1つまたは複数を含む、請求項16に記載の非一時的コンピュータ可読媒体。
  18. 前記1つまたは複数のテキストタグが、前記ゲームのタイプまたはゲームプレイのスタイルを示している、請求項16に記載の非一時的コンピュータ可読媒体。
  19. 命令が記憶されたメモリと、
    前記メモリに結合された処理デバイスと
    を備えるシステムであって、前記処理デバイスが、前記メモリにアクセスして前記命令を遂行するように構成され、前記命令が、前記処理デバイスに、
    トレーニングされた機械学習モデルへの入力として、複数のゲーム識別子と、前記ゲーム識別子によって識別される各ゲームに関連付けられるデジタルアセットのそれぞれのセットとを含むデータを提供することと、
    前記トレーニングされた機械学習モデルを使用して、複数の予測テキストタグを生成することであって、各テキストタグが、それぞれの予測スコアに関連付けられる、生成することと、
    前記それぞれの予測スコアに基づいて、前記複数の予測テキストタグから前記1つまたは複数のテキストタグを選択することと
    を備える動作を実行させる、システム。
  20. 前記動作が、デジタルアセットの前記それぞれのセットに基づいて、前記ゲーム識別子によって識別されるゲームごとのそれぞれの特徴ベクトルを生成することをさらに備え、前記機械学習モデルによって前記1つまたは複数の予測タグを前記生成することが、前記それぞれの特徴ベクトルに基づく、請求項19に記載のシステム。
  21. 前記デジタルアセットが、ゲームのスクリーンショット、ゲームのビデオスニペット、ゲームオブジェクト、メッシュ、アバタ、ゲームのソースコード、ゲームの構成パラメータ、ゲームの照明、ゲームのレベルカウント、アバタの動き、前記ゲームのテキストコンテンツ、前記ゲーム内で生成されたチャットコンテンツ、ゲームサウンド、ゲームのバックグラウンドミュージック、コードカバレッジ、またはゲームプレイ中のデジタルアセットの使用頻度のうちの1つまたは複数を含む、請求項19に記載のシステム。
JP2022572762A 2020-05-27 2021-05-17 ゲームタグの自動生成 Active JP7410334B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/885,047 2020-05-27
US16/885,047 US11789905B2 (en) 2020-05-27 2020-05-27 Automated generation of game tags
PCT/US2021/032777 WO2021242552A1 (en) 2020-05-27 2021-05-17 Automated generation of game tags

Publications (2)

Publication Number Publication Date
JP2023527403A JP2023527403A (ja) 2023-06-28
JP7410334B2 true JP7410334B2 (ja) 2024-01-09

Family

ID=78706382

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022572762A Active JP7410334B2 (ja) 2020-05-27 2021-05-17 ゲームタグの自動生成

Country Status (6)

Country Link
US (2) US11789905B2 (ja)
EP (1) EP4157473A4 (ja)
JP (1) JP7410334B2 (ja)
KR (1) KR102599975B1 (ja)
CN (1) CN115666743A (ja)
WO (1) WO2021242552A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12093845B2 (en) * 2018-03-23 2024-09-17 Clearblade, Inc. Dynamic inferencing at an IoT edge
US11842367B1 (en) * 2021-07-01 2023-12-12 Alphonso Inc. Apparatus and method for identifying candidate brand names for an ad clip of a query video advertisement using OCR data
US11871151B2 (en) * 2021-09-10 2024-01-09 Zoom Video Communications, Inc. Spatialized display of chat messages
WO2023178205A1 (en) * 2022-03-16 2023-09-21 Aviagames, Inc. Automated computer game application classification based on a mixed effects model
CN116077942B (zh) * 2023-04-06 2023-06-27 深圳尚米网络技术有限公司 一种交互式内容推荐的实现方法
CN116910164A (zh) * 2023-07-21 2023-10-20 北京火山引擎科技有限公司 用于内容推送的标签生成方法、装置、电子设备和介质
CN118468151A (zh) * 2024-06-28 2024-08-09 深圳市广通工程顾问有限公司 一种网络数字虚拟资产分类自动化管理方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014026455A (ja) 2012-07-26 2014-02-06 Nippon Telegr & Teleph Corp <Ntt> メディアデータ解析装置、方法、及びプログラム
WO2018231393A1 (en) 2017-06-12 2018-12-20 Gracenote, Inc. Detecting and responding to rendering of interactive video content
JP2019125119A (ja) 2018-01-16 2019-07-25 株式会社エンライブ 情報処理装置及び情報処理プログラム
KR102010031B1 (ko) 2018-12-12 2019-08-12 넷마블 주식회사 게임 지표 정보 예측 방법 및 장치
WO2020051517A1 (en) 2018-09-07 2020-03-12 Valve Corporation Machine-learned trust scoring for player matchmaking
CN111104512A (zh) 2019-11-21 2020-05-05 腾讯科技(深圳)有限公司 游戏评论的处理方法及相关设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8515253B2 (en) 2008-02-15 2013-08-20 Sony Computer Entertainment America Llc System and method for automated creation of video game highlights
US8719006B2 (en) 2010-08-27 2014-05-06 Apple Inc. Combined statistical and rule-based part-of-speech tagging for text-to-speech synthesis
US8706675B1 (en) * 2011-08-29 2014-04-22 Google Inc. Video content claiming classifier
US20140274354A1 (en) * 2013-03-12 2014-09-18 Big Fish Games, Inc. Intelligent merchandising of games
JP6440732B2 (ja) 2013-11-27 2018-12-19 株式会社Nttドコモ 機械学習に基づく自動タスク分類
US10888788B2 (en) * 2016-06-30 2021-01-12 Sony Interactive Entertainment Inc. Automated artificial intelligence (AI) control mode for playing specific tasks during gaming applications
US10675544B2 (en) * 2017-03-31 2020-06-09 Sony Interactive Entertainment LLC Personalized user interface based on in-application behavior
US11301506B2 (en) 2017-06-29 2022-04-12 Adobe Inc. Automated digital asset tagging using multiple vocabulary sets
US10765944B2 (en) * 2018-09-07 2020-09-08 Electronic Arts Inc. Machine learning models for implementing animation actions
EP3637435A1 (en) * 2018-10-12 2020-04-15 Fujitsu Limited Medical diagnostic aid and method
US10505726B1 (en) 2018-12-07 2019-12-10 Nike, Inc. System and method for providing cryptographically secured digital assets

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014026455A (ja) 2012-07-26 2014-02-06 Nippon Telegr & Teleph Corp <Ntt> メディアデータ解析装置、方法、及びプログラム
WO2018231393A1 (en) 2017-06-12 2018-12-20 Gracenote, Inc. Detecting and responding to rendering of interactive video content
JP2019125119A (ja) 2018-01-16 2019-07-25 株式会社エンライブ 情報処理装置及び情報処理プログラム
WO2020051517A1 (en) 2018-09-07 2020-03-12 Valve Corporation Machine-learned trust scoring for player matchmaking
KR102010031B1 (ko) 2018-12-12 2019-08-12 넷마블 주식회사 게임 지표 정보 예측 방법 및 장치
CN111104512A (zh) 2019-11-21 2020-05-05 腾讯科技(深圳)有限公司 游戏评论的处理方法及相关设备

Also Published As

Publication number Publication date
EP4157473A4 (en) 2024-06-26
JP2023527403A (ja) 2023-06-28
US11789905B2 (en) 2023-10-17
KR102599975B1 (ko) 2023-11-08
KR20230006919A (ko) 2023-01-11
WO2021242552A1 (en) 2021-12-02
CN115666743A (zh) 2023-01-31
EP4157473A1 (en) 2023-04-05
US20210374098A1 (en) 2021-12-02
US20240028562A1 (en) 2024-01-25

Similar Documents

Publication Publication Date Title
JP7410334B2 (ja) ゲームタグの自動生成
KR102615236B1 (ko) 게임 통신 트랜스크립트에서 텍스트 태그의 생성
JP7307204B2 (ja) 予測的データプリローディング
US20220108358A1 (en) Providing personalized recommendations of game items
CN111867692B (zh) 游戏过程的数据涌入检查和改进执行
US11712629B2 (en) Determining game quality based on gameplay duration
US11969649B2 (en) Prominent display of targeted game in search results
CN117643063A (zh) 适合的内容的自动呈现
JP7352009B2 (ja) 悪意のあるゲームの検出

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231031

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231221

R150 Certificate of patent or registration of utility model

Ref document number: 7410334

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150