(57)【特許請求の範囲】
【請求項１】
コンピュータにより実現される方法であって、
ユーザデバイス内でのゲームイベントの検出に応答して、当該ゲームイベントに関連付けられた識別情報と少なくとも１つのパラメータの値とを含むデータファイルをサーバ側のデバイスにおいて生成するアルゴリズムへの呼び出しをサーバ側のデバイスにおいて受信することと、
前記呼び出しに応答して、前記ゲームイベントに関連付けられた識別情報と少なくとも１つのパラメータの値とを含むデータファイルを前記サーバ側のデバイスにおいて生成することと、
前記データファイルを前記サーバ側のデバイスにおいてデータストアに記憶することとを含み、
前記アルゴリズムは、前記コンピュータにより実現される複数の異なるゲームにより呼び出し可能に構成され、
前記コンピュータにより実現される複数の異なるゲームに、少なくとも一つの共通のゲームイベントを提供し、
前記識別情報は、前記コンピュータにより実現される複数の異なるゲームそれぞれにおいて発生し、前記共通のゲームイベントそれぞれについて同じである、方法。
【請求項２】
前記呼び出しは前記データファイル内の少なくとも１つのパラメータの値を含むものである請求項１に記載の方法。
【請求項３】
前記サーバ側デバイスにおいて少なくとも１つのパラメータの値を提供することを含むものである請求項１又は２に記載の方法。
【請求項４】
コンピュータにより実現される方法であって、
ゲームイベントに関連付けられた識別情報と、該識別情報と共に第２のデータストア内に記憶されるべき１つ又は複数のパラメータとを含む複数のデータファイルのメタデータを記憶する第１のデータストアを、クエリを作成するためにサーバ側デバイスにおいて使用することと、
前記クエリを用いて前記第２のデータストアに対して前記サーバ側デバイスにおいて問い合せをすることであって、該第２のデータストアは複数のデータファイルを記憶し、各データファイルはそれぞれの識別情報及び前記１つ又は複数のパラメータのそれぞれの値を有し前記関連付けられたゲームイベントの発生に応答してサーバにより生成されるものである、問い合せをすることと
を含み、
前記コンピュータにより実現される複数の異なるゲームに、少なくとも一つの共通のゲームイベントを提供し、
前記識別情報は、前記コンピュータにより実現される複数の異なるゲームそれぞれにおいて発生し、前記共通のゲームイベントそれぞれについて同じである、方法。
【請求項５】
前記データファイルはテキストファイルを含む、請求項１〜４のいずれか１項に記載の方法。
【請求項６】
ある方法を記憶及び実行するように構成された装置であって、
ユーザデバイス内でのゲームイベントの検出に応答して当該ゲームイベントに関連付けられた識別情報と少なくとも１つのパラメータの値とを含むデータファイルを生成するアルゴリズムへの呼び出しを受信し、該呼び出しに応答して、前記ゲームイベントに関連付けられた識別情報と少なくとも１つのパラメータの値とを含むデータファイルを生成するものである装置と、
前記データファイルを記憶するように構成されたデータストアと
を備え、
前記アルゴリズムは、コンピュータにより実現される複数の異なるゲームにより呼び出し可能に構成され、
前記コンピュータにより実現される複数の異なるゲームに、少なくとも一つの共通のゲームイベントを提供し、
前記識別情報は、前記コンピュータにより実現される複数の異なるゲームそれぞれにおいて発生し、前記共通のゲームイベントそれぞれについて同じである、システム。
【請求項７】
前記呼び出しは前記データファイル内の少なくとも１つのパラメータの値を含む、請求項６に記載のシステム。
【請求項８】
少なくとも１つのパラメータの値を前記システムによって追加することを含む、請求項６又は７に記載のシステム。
【請求項９】
ゲームイベントに関連付けられた識別情報と、該識別情報と共に第２のデータストア内に記憶されることになる１つ又は複数のパラメータとを含む複数のデータファイルのメタデータを記憶する第１のデータストアと、
関連付けられたゲームイベントの発生に応答してサーバにより生成され、それぞれの識別情報と前記１つ又は複数のパラメータのそれぞれの値とを有する複数のデータファイルを含む前記第２のデータストアと、
前記第１のデータストアを使用してクエリを作成し、該クエリを用いて前記第２のデータストアに対して問い合せをするように構成された装置と
を備え、
コンピュータにより実現される複数の異なるゲームに、少なくとも一つの共通のゲームイベントを提供し、
前記識別情報は、前記コンピュータにより実現される複数の異なるゲームそれぞれにおいて発生し、前記共通のゲームイベントそれぞれについて同じである、システム。
【請求項１０】
前記データファイルはテキストファイルを含むものである請求項６〜９のいずれか１項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
いくつかの実施形態は、オンライン環境におけるコンピュータゲームのデータ及びその他のゲーム又はユーザ関連データに関する。いくつかの実施形態は、当該データを記憶する少なくとも１つのデータベースを備える、通信ネットワーク内で接続されたコンピュータデバイスに関する。
【背景技術】
【０００２】
いくつかのコンピュータゲームは膨大な数のプレーヤを有する場合があり、その各々が、ＩＤ（ユーザ名）、電子メール、スコア、プレイ時間などの関連データや、該プレーヤから提供されうるソーシャルネットワークアカウントや関連する友人などの関連データを有する。
【０００３】
ゲームに関連付けられたデータは、ゲーム分析ツール（game analytics）を使用して分析される。ゲーム分析データは、多数の様々な目的に使用でき、とりわけ、ユーザの挙動や機能強化されたゲームの理解に使用できる。データ分析のために非常に大量のデータを管理することはチャレンジングである。
【発明の概要】
【課題を解決するための手段】
【０００４】
１つの態様によれば、ユーザデバイス内でのゲームイベントの検出に応答して、方法の呼び出しを受信することと、前記呼び出しに応答して、前記ゲームイベントに関連付けられた識別情報と少なくとも１つのパラメータの値とを含むデータファイルを生成することと、前記データファイルをデータストアに記憶することとを含む方法を提供する。
【０００５】
前記方法は、複数の異なるゲームによって呼び出すことができる。
【０００６】
前記呼び出しは、当該データファイル内の少なくとも１つのパラメータの値を含むことができる。
【０００７】
前記方法は、サーバ側で少なくとも１つのパラメータの値を提供することを含むことができる。
【０００８】
別の態様によれば、ゲームイベントに関連付けられた識別情報と、該識別情報と共に第２のデータストア内に記憶されるべき１つ又は複数のパラメータとをそれぞれ含む、複数のデータファイル情報を記憶する第１のデータストアを使用してクエリ（query）を作成（formulate）することと、前記クエリを用いて前記第２のデータストアに対して問い合せをすることであって、該第２のデータストアは複数のデータファイルを含み、各データファイルはそれぞれの識別情報及び前記１つ又は複数のパラメータのそれぞれの値を有し前記関連付けられたゲームイベントの発生に応答して生成されるものである、問い合せをすることとを含む方法を提供する。
【０００９】
データファイルはテキストファイルを含むことができる。
【００１０】
別の態様によれば、ある方法を記憶及び実行するように構成された装置であって、ユーザデバイス内でのゲームイベントの検出に応答して前記方法の呼び出しを受信し、該呼び出しに応答して、前記ゲームイベントに関連付けられた識別情報と少なくとも１つのパラメータの値とを含むデータファイルを生成するものである装置と、前記データファイルを記憶するように構成されたデータストアとを備えたシステムを提供する。
【００１１】
前記方法は、複数の異なるゲームによって呼び出すことができる。
【００１２】
前記呼び出しは、前記データファイル内の少なくとも１つのパラメータの値を含むことができる。
【００１３】
前記システムは、少なくとも１つのパラメータの値を追加することができる。
【００１４】
別の態様によれば、ゲームイベントに関連付けられた識別情報と、該識別情報と共に第２のデータストア内に記憶されることになる１つ又は複数のパラメータとを含む複数のデータファイル情報を記憶する第１のデータストアと、前記関連付けられたゲームイベントの発生に応答して生成されそれぞれの識別情報と前記１つ又は複数のパラメータのそれぞれの値とを有する複数のデータファイルを含む前記第２のデータストアと、前記第１のデータストアを使用してクエリを作成し、該クエリを用いて前記第２のデータストアに対して問い合せるように構成された装置とを備えたシステムを提供する。
【００１５】
前記データファイルはテキストファイルを含むことができる。
【００１６】
プロセッサにロードされたときに前記方法を実行するようにプロセッサを制御するプログラムコード手段を含むコンピュータプログラム製品も提供され得る。
【００１７】
様々な他の態様及び更なる実施形態についても、以下の詳細な説明及び添付の特許請求の範囲で説明する。
【００１８】
次に、いくつかの実施形態を理解するために、単なる例として添付の図面を参照する。
【図面の簡単な説明】
【００１９】
【図１】１つの実施形態におけるコンピューティングデバイスの例を示す図である。
【図２】いくつかの実施形態が提供され得るシステムの例を示す図である。
【図３】１つの実施形態による方法を示すフローチャートである。
【図４】１つの実施形態のシステムを示す概略図である。
【発明を実施するための形態】
【００２０】
ユーザ及びプレーヤという用語は本明細書を通じて互換的に使用され、文脈が特に示唆していない限り、いずれを使用するかについて特別な意味は意図されていない。当業者であれば、実施形態を実現するためのこれらの様々なアプローチが全てではなく、本明細書で説明される内容はいくつかの好ましい実施形態であることを理解されよう。本発明は、その趣旨又は範囲を逸脱しない限り、様々に変形して実施することが可能である。
【００２１】
１つの実施形態によるユーザデバイス１００の概略図を、図１に示す。図示されたすべてのブロックは、好適な回路によって実現される。これらのブロックをハードウェア又はソフトウェア或いはその両方により実現してもよい。ユーザデバイスは制御部１１０を有することができる。制御部１１０は、１つ又は複数のプロセッサ１１５及び１つ又は複数のメモリ１２０を有する。制御部１１０は、グラフィックスコントローラ１２５及びサウンドコントローラ１３０をも有するものとして示されている。当然のことながら、グラフィックスコントローラ１２５及びサウンドコントローラ１３０のうちの一方又は他方、あるいは両方の機能が、１つ又は複数のプロセッサ１１５によって提供され得る。
【００２２】
グラフィックスコントローラ１２５は、ビデオ出力１３５を提供するように構成されている。サウンドコントローラ１３０は、オーディオ出力１４０を提供するように構成されている。コントローラ１１０は、デバイスとインターネット又は他の通信インフラストラクチャなどのネットワーク１５０との通信を可能にするインターフェース１４５を有する。
【００２３】
ビデオ出力１３５はディスプレイ１５５に提供される。オーディオ出力１４０は、スピーカ及び／又はイヤフォンなどのオーディオデバイス１６０に提供される。
【００２４】
デバイス１００は入力デバイス１６５を有する。入力デバイス１６５は任意の好適な形式を取ることが可能であり、キーボード、マウス、タッチスクリーン、ジョイスティック、又はゲームコントローラのうちの１つ又は複数とすることができる。当然のことながら、ディスプレイ１５５は、いくつかの実施形態において、例えば組込みタッチスクリーンなどの入力デバイス１６５の機能も提供することができる。
【００２５】
コントローラ１１０のブロックは、バス又は任意の他の好適な相互接続などの相互接続又は２点間（point to point）通信、或いはその両方によって、互いに通信するように構成される。
【００２６】
当然のことながら、いくつかの実施形態において、コントローラ１１０は、少なくとも部分的に１つ又は複数の集積回路によって実現可能である。
【００２７】
ユーザデバイス１００は、単なる例として示されている。代替の実施形態では、１つ又は複数の部品が省略可能である。代替又は追加として、いくつかの実施形態は１つ又は複数の他の部品を含むことができる。代替又は追加として、１つ又は複数の部品を組み合わせることができる。
【００２８】
図２は、いくつかの実施形態におけるシステム２００を概略的に示す。システム２００は、サーバ２２０を含み、このサーバ２２０は、ゲームプレーヤの詳細、プロフィール、統計値などのデータベース２５０を内蔵するか、又はいくつかの実施形態において、バックエンド・インフラストラクチャ２４０（「ＢＥＮ」）を介してこれと通信することが可能である。実際には、１つ又は複数のデータベース２５０を設けることができる。複数のサーバ２２０を設ける場合、データベース２５０は１つのデータベース２５０内に設けるか、あるいは、２つ又はそれ以上のサーバ２２０、３１０にわたって設けることが可能である。サーバ２２０は、ゲームデータ機能を有してもよい。これは、コンピュータゲームプログラム及びユーザ挙動データを記憶するための１つ又は複数ユニットのメモリと、ゲームプログラムを実行し、ユーザ挙動データを処理するためのプロセッサとを含むことができる。
【００２９】
サーバ２２０は、例えばインターネット２１０を介して、図では例としてユーザデバイス１００ａ、１００ｂ、及び１００ｃとして示されている１つ又は複数のユーザデバイス１００と通信することが可能であり、さらに、ｆａｃｅｂｏｏｋ（登録商標）などのソーシャルネットワーク２３０への接続を提供することが可能である。
【００３０】
図３は、１つの実施形態による方法を示す。ステップＳ１で、クライアントデバイスにおいて、ある特定のゲームイベントが検出される。ゲームイベントは任意の好適なゲームイベントでよく、例えばゲームイベントの終了（end of game event）でもよい。これは、例えば１つ又は複数のプロセッサ１１５によって、クライアントデバイス内で検出又は検知（determine）することができる。
【００３１】
このゲームイベントの検出に応答して、ステップＳ２で、ゲームイベントの終了に関連付けられたある方法（アルゴリズム）の呼び出しが、クライアントデバイスによって実行されることになる。この方法（method）はサーバ側に記憶されている。この方法は、一連のステートメントを含むコードブロックとみなすことができる。プログラムは、方法（アルゴリズム）を呼び出し、任意の必要な方法引数を指定することによって、ステートメントを実行させる。方法を呼び出すとき、この方法で使用するための情報を渡すことができる。これらの実際の引数（actual argument）は、方法名に続く括弧内にある。複数の引数が存在する場合は、分割するためにコンマを使用する。この呼び出しは、このイベントに関連付けることが可能な１つ又は複数のパラメータ値を含むことができる。ゲームイベントに関連付けられたパラメータのうちの１つ又は複数を、代替又は追加として、別々にゲームサーバに提供することができる。
【００３２】
ステップＳ３で、ゲームイベントの終了に関連付けられた方法の呼び出しを行うと、サーバはそのゲームイベントに関するログファイルを生成する。ログファイルは任意の好適な形式とすることが可能であり、いくつかの実施形態では、テキストファイルの形式である。ログファイルは、呼び出された方法によって定義された、所定の形式を有することになる。ログファイルはゲーム終了識別子（特定の数値とすることができる）並びに１つ又は複数のパラメータ値を含むことになる。１つ又は複数のパラメータ値は、クライアントデバイス又はサーバ或いはその両方によって提供可能である。
【００３３】
ステップＳ４で、ログファイルがデータストアに記憶される。
【００３４】
図４は、図３の方法を実行するためのシステムを示す。当然のことながら、図４は概略図であり、サーバ側に提供される機能のうちの一部を示す。これらの機能を提供する物理エンティティは、任意の１つ又は複数の好適なエンティティとすることができる。クライアントデバイス１００（図１に関連して述べたものでもよい）は、ユーザがゲームをプレイできるようにする。クライアントデバイスは、特定のゲームイベントが発生する時点を検知し、サーバ側にある方法２を呼び出すことになる。サーバなどによって提供され得る処理機能（process function）７が、呼び出しを受信することになる。その後、呼び出しはこの処理機能によって方法２に送られる。方法２は、この処理機能と同じサーバ上にあるか、又は処理機能と異なるサーバ上にあってもよい。サーバ側は、進行データ（progress data）などのユーザのデータを記憶するゲームデータストア２５０も有する。ゲームデータストア２５０のためのデータは前記処理機能によって受信され、ゲームデータストアに送られる。方法２の起動に応答してログファイルが生成され、ログファイルストア６に記憶される。任意の好適なデータストア６を使用して、前述のようにテキストファイルの形であり得るログファイルデータ６を記憶することができる。メタデータは、ログファイルストア内のログファイルに記憶されたデータへのキーを提供することになる。これがゲームイベント識別子の各々について、ログファイルに記憶された情報の形式を定義することになる。このメタデータのために別のストア４を設けてもよい。このメタデータストア４は、記憶されたログファイルを如何にして解析するかを決定するために使用できるので、新しいクエリの作成が容易になる。データに関する分析は、メタデータストア内の情報を使用してクエリを形成し、このクエリを使用して、テキストデータファイルを有するデータストアを解析することにより実施可能である。
【００３５】
当然のことながら、ログファイル内のデータはクライアントデバイスによって提供可能である。このデータは、ゲームデータストア内に記憶すべきデータのうちのいくつかでもよく、又はログファイル用に特別に提供されたものであってもよく、或いはその両方でもよい。サーバ側は、例えばタイムスタンプ情報などのデータを提供することができる。
【００３６】
ゲームイベントの終了に関連付けられた同一の方法が、１つ又は複数のゲームによって使用される。これは、複数のゲームにわたって分析が実行できるように、同一のゲーム終了の方法に関連付けられたすべてのログファイルが同一の識別子を有することを意味する。異なるゲームにわたって同一のイベントに同様の比較を実行することができる。
【００３７】
当然のことながら、呼び出し可能な方法の複数のインスタンスが存在し得る。しかしながらこういった複数の方法は、ゲームに関係なく、同一の関連したゲームイベントに対して同一となる。
【００３８】
新しいゲームを作成する場合、どのゲームイベントに応じてログファイルを生成させることになるかに関して決定することができる。これらのゲームイベントの各々について、サーバ側に記憶された方法が起動されるか又は呼び出されることになる。サーバ側に記憶された方法は、ゲームに関係なく同じとなる。したがって、ゲーム開発者は、特定のゲームイベントに関連付けられた報告のために新しいコードを作成する必要がなくなる。ゲーム開発者は、コードが、方法のための例えばパラメータ値などの情報を生成することと、その特定のゲームイベントに応じてクライアントデバイスがサーバを呼び出すこととを確認することになる。ゲーム開発者は、ゲームで使用されるプログラム動作（semantics）がゲームイベントの方法で使用されるプログラム動作に整合することを確認する必要がある。
【００３９】
当然のことながら、各実施形態は任意の好適なゲームイベントで使用可能である。このようなゲームイベントとしては、レベルの完了（completion）、ゲームの終了、特定アイテムの購入、１人又は複数の友人との対話、特定のスコアなどでもよい。
【００４０】
次にログファイル内の情報の例について説明する。
【００４１】
イベントＩＤ情報（１０００）、ユーザＩＤ（１２３４）、スコア（１００）、レベル（５）で、エントリは（１０００、１２３４、１００、５）となる。
【００４２】
イベントＩＤは、任意の好適な形態を取ることが可能であり、数値とすることができる。ログファイル内のパラメータの数は任意の好適な数値、例えば２又はそれ以上とすることができる。ログファイル内のパラメータは、ゲーム、ユーザ、時刻、及びユーザが実行するアクションに関するパラメータなどの、任意の好適なパラメータとすることができる。
【００４３】
イベントＩＤは、（ある特定イベントに関して）定数とみなすことができ、ログファイルストレージ内と共にメタデータストレージ内でも使用される。この情報はデータを分析するために使用可能である。
【００４４】
いくつかの実施形態はＪａｖａ（登録商標）コードを使用することができる。使用されるコードに基づいて、このデータを分析するために使用可能なファイルが生成される。
【００４５】
メタデータストアは、分析対象となるファイル（データログ）内にある数値からのすべてのマッピング（mappings）を含む。イベント識別子としてのＮが何を意味するかを知りたい場合、メタデータストレージ内をチェックすることができる。すなわち、再びＪａｖａ（登録商標）コードであるが、一旦これを開発者として使用すると、そのＪａｖａ（登録商標）コードを使用することになる。使用されたＪａｖａ（登録商標）コードに基づいて、ビジネスインテリジェンス・クラスタ内で、あるいはときにはクライアント内でも使用することが可能なファイルを生成することができる。したがって、Ｊａｖａ（登録商標）をオリジナルとして使用することは、実際に使用されているものが送信（sent out）されるものであることを意味する。Ｊａｖａ（登録商標）コードを読み取るとき、それがコンパイラとして機能している。
【００４６】
いくつかの実施形態は、配布用媒体上に具現化されたコンピュータプログラムであって、電子装置内にロードされたときに装置を前述のように構成するプログラム命令を含むものを提供する。この配布用媒体は持続性媒体とすることができる。
【００４７】
他の実施形態は、コンピュータ可読記憶媒体上に具体具現化されたコンピュータプログラムであって、前述の方法の実施形態を実行するためにプロセッサを制御するように構成されたものを提供する。このコンピュータ可読記憶媒体は持続性媒体とすることができる。
【００４８】
コンピュータプログラムは、ソースコード形式、オブジェクトコード形式、又は何らかの中間形式とすることが可能であり、プログラムを搬送することが可能な任意のエンティティ又はデバイスとすることが可能なある種のキャリア、配布用媒体、又はコンピュータ可読媒体内に、記憶することが可能である。こうしたキャリアとしては、例えば記録媒体、コンピュータメモリ、読み取り専用メモリ、光電及び／又は電気キャリア信号、通信信号、並びにソフトウェア配布パッケージを含む。コンピュータプログラムは、必要な処理電力に応じて、単一の電子デジタルコンピュータ内で実行するか、又は多数のコンピュータで分散処理することができる。コンピュータ可読媒体又はコンピュータ可読記憶媒体は、持続性媒体であってよい。
【００４９】
適切に適合されたコンピュータプログラムコード製品は、適切なデータ処理装置上にロードされた場合、実施形態及び／又は他の制御演算を実現するために使用可能である。演算を提供するためのプログラムコード製品は、適切なキャリア媒体を用いて記憶、提供、及び具現化することができる。適切なコンピュータプログラムは、コンピュータ可読記憶媒体上に具現化することができる。プログラムコード製品はデータネットワークを介してダウンロードしうる。一般に、様々な実施形態が、ハードウェア又は特定用途向け回路、ソフトウェア、論理回路、あるいはそれらの任意の組み合わせで実現可能である。
【００５０】
当業者であれば、方法及び制御モジュールを実現するためのこれらの様々なアプローチが全てではなく、本明細書で説明されるのはいくつかの実施形態であることを理解されよう。上記は、本発明の趣旨又は範囲を逸脱しない限り、様々に変形して実施可能である。
【図１】
0006518649.tif 000002
【図２】
0006518649.tif 000003
【図３】
0006518649.tif 000004
【図４】
0006518649.tif 000005