JP2004041719A - オンラインのコンソールベースのゲーム用の統計システム - Google Patents

オンラインのコンソールベースのゲーム用の統計システム Download PDF

Info

Publication number
JP2004041719A
JP2004041719A JP2003165714A JP2003165714A JP2004041719A JP 2004041719 A JP2004041719 A JP 2004041719A JP 2003165714 A JP2003165714 A JP 2003165714A JP 2003165714 A JP2003165714 A JP 2003165714A JP 2004041719 A JP2004041719 A JP 2004041719A
Authority
JP
Japan
Prior art keywords
user
group
assigned
rating
users
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.)
Granted
Application number
JP2003165714A
Other languages
English (en)
Other versions
JP4309180B2 (ja
Inventor
Daniel Caiafa
ダニエル カイアファ
Mark D Vanantwerp
マーク ディー.バンアントワープ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2004041719A publication Critical patent/JP2004041719A/ja
Application granted granted Critical
Publication of JP4309180B2 publication Critical patent/JP4309180B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • A63F13/798Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for assessing skills or for ranking players, e.g. for generating a hall of fame
    • A63F13/12
    • 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
    • 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/33Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
    • A63F13/335Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5546Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history
    • A63F2300/558Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history by assessing the players' skills or ranking

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】オンラインのコンソールベースのゲームの統計システムを開示すること。
【解決手段】ユーザは、レーティングテーブル上の複数のレーティンググループの1つに割り当てられる。ユーザのランキングは、複数のレーティンググループのうちでそのユーザが割り当てられるレーティンググループを識別し、ユーザのグループより高いレーティング範囲を有するグループに割り当てられるユーザのカウントを生成することによって取り出される。その後、ユーザのグループ内のユーザの相対位置をカウントに加算して、ユーザのランキングを生成する。
【選択図】    図1

Description

【0001】
【発明の属する技術分野】
本発明は、コンピュータおよびオンラインシステムに関し、具体的には、オンラインのコンソールベースのゲームの統計システムに関する。
【0002】
【従来の技術】
従来、専用コンソールを有するゲームシステムは、制限された数のプレーヤ(たとえば2〜4人)に対応する独立の機械であった。パーソナルコンピュータベースのゲームの人気が、部分的にはインターネットを介して多数のリモートプレーヤと共にオンラインでゲームをプレイする能力のゆえに、高まった。したがって、専用ゲームシステムに関する傾向の1つが、インターネットベースのオンラインゲームなどのネットワークを介するゲームを容易にする能力を提供することである。
【0003】
多くのユーザにとって重要な、そのような機能の1つが、プレーヤランキングを保持する能力である。そのようなランキングを用いると、プレーヤが、最速時間、最高得点、最多アイテム収集など、さまざまなゲーム依存の属性に基づいて他のプレーヤに対して自分をランキングできるようになる。プレーヤが、どのプレーヤがトップ10またはトップ100にランク入りしているか、特定のプレーヤのランキングは何か、次の順位のプレーヤのスコアはいくつか(たとえば、ランキングを上げるために何点とる必要があるかをユーザに知らせる)など、これらのランキングに関連するさまざまな情報を提示されることを望むと予想される。
【0004】
【発明が解決しようとする課題】
しかし、プレーヤの数が増えるにつれて、そのようなランキングを保持するシステムを設計する際に直面する複雑さおよび難しさも、高まる。インターネットを用いると、世界中の個人の間での比較的簡単な通信が可能になり、したがって、ランキングを保持する必要がある可能性があるプレーヤの数が、数百万とは言わないまでも、簡単に数万程度になる可能性がある。現在、システムは、そのような多数のプレーヤと共に提示される時にプレーヤランキングに関するそのような情報を提供できない。
【0005】
下で説明するオンラインのコンソールベースのゲームの統計システムによって、これらの問題が解決される。
【0006】
【課題を解決するための手段】
オンラインのコンソールベースのゲームの統計システムをここで説明する。
【0007】
ある実施形態によれば、ユーザのスコアが、ゲーム機から受信され、スコアテーブル内の、ユーザの識別子が挿入される場所が識別される。ユーザは、複数のスコアグループの1つに割り当てられ、そのスコアグループに関連するユーザ数のカウントが、それ相応に修正される。割り当てられたスコアグループ内のユーザの相対位置も、ユーザに関連付けられ、同一のスコアグループに割り当てられ、そのユーザより低いスコアを有する他のすべてのユーザの相対位置も、それ相応に修正される。
【0008】
ある他の実施形態によれば、ランキングを取り出すためのユーザ識別子が受信され、このランキングは、識別されたユーザに関連するレーティング(格付け)を他のユーザに関連する他のレーティングとどのように比較するかを示す。ユーザ識別子が複数のレーティンググループのどれに割り当てられるかが識別され、ツリーの葉ノードも識別される。この葉ノードは、ユーザ識別子が割り当てられるレーティンググループに対応する。ツリー内のパスを、葉ノードからツリーのルートノードまで追跡(トラバース)し、パスに沿って選択されたユーザカウントを合計する。ユーザ識別子が割り当てられたレーティンググループ内のユーザ識別子の相対位置が識別され、相対位置と、パスに沿った選択されたユーザカウントの合計との合計としてランキングが生成される。
【0009】
【発明の実施の形態】
同一の符号は、本明細書全体を通じて、同様のコンポーネントおよび/または特徴を示すのに使用される。
【0010】
図1は、例示的環境100のブロック図である。複数のクライアントデバイス102(1)、...、102(n)が、統計システム104に結合される。デバイス102およびシステム104の間の結合は、システム104およびデバイス102のそれぞれの間の通信を可能にするさまざまな結合のいずれかとすることができる。一実施形態では、結合に、インターネットが含まれ、任意選択として、1つまたは複数の他のネットワーク(たとえば、ローカルエリアネットワーク(LAN)または広域ネットワーク(WAN))も含めることができる。
【0011】
ゲーム機102は、専用ゲーム機とすることができ、その代わりに、追加の機能性を含めることができる。たとえば、ゲーム機に、ディジタルVCRとして動作できるようにディジタルビデオ録画機能性を含めることができ、ゲーム機に、テレビジョン信号(放送信号、ケーブル信号、衛星信号など)に同調し、これを復号化できるようにチャネル同調機能性を含めることができるなどである。さらに、異なるタイプのゲーム機102が、統計システム104を同時に使用することができる。たとえば、2つの異なるゲーム機プラットフォーム(たとえば、2つの異なる製造業者によって製造された専用ゲーム機)の両方が、同一のおよび/または異なるゲームタイトルについてレーティング、属性、および/またはランキングを送信し、受信することができる。
【0012】
統計システム104には、システムメモリ106および永続ストア108が含まれる。統計システム104は、単一のサーバデバイスまたはその代わりに複数のサーバデバイスを使用して実施することができる。複数のサーバデバイスが使用される場合には、複数のデバイスが一緒に働いて、システム104の機能性を提供する。システム104内のさまざまなサーバデバイスの作業負荷は、さまざまな形のいずれかでさまざまなサーバデバイスの間で分割することができる。たとえば、ランキングの異なる部分を、異なるデバイスによって処理することができ(たとえば、上側のほぼ半分をあるデバイスが処理し、下側のほぼ半分を別のデバイスが処理する)、異なるゲームタイトルまたはゲームタイトル製造業者のランキングを、異なるデバイスによって処理することができ、同一のゲームタイトルの異なる属性を、異なるデバイスによって処理することができるなどである。
【0013】
システム104には、1つまたは複数のレーティングテーブル110、1つまたは複数のグループテーブル112、属性ストア114、および1つまたは複数のメモリツリー116が含まれる。メモリツリー116は、システムメモリ106(たとえば、ランダムアクセスメモリ)内で保持される。メモリツリー116は、下で詳細に説明するように、テーブル110および112の内容に基づいて、必要に応じて(たとえばシステム104がブートされる場合)再構築し、システムメモリ106にロードすることができる。その代わりに、メモリツリー116(ツリー116だけの構造またはツリー116のデータを伴うツリー116の構造)を、永続ストア108内で保持することもできる。
【0014】
さらに、テーブル110および112ならびに属性ストア114が、永続ストア108内で保持されるものとして図示されている。さまざまな時に、テーブル110および112ならびに属性ストア114のすべてまたは一部を、システムメモリ106に格納することもできる。テーブル110または112あるいはストア114のどの部分が所与の時点でシステムメモリ106に含むかは、変更することができ、システム104内で使用可能なシステムメモリの量に依存する。
【0015】
システム104では、さまざまな形のいずれかで、テーブル110および112と属性ストア114と(任意選択としてメモリツリー116と)を、永続的に保存することができる。1つの例示的実施形態では、システム104で、SQL(構造化照会言語)データベースを実施して、テーブル110および112と属性ストア114の属性と(任意選択としてメモリツリー116と)を保存する。1つまたは複数のSQL拡張ストアドプロシージャを、テーブル110および112のデータと属性ストア114の属性と(任意選択としてメモリツリー116と)を保存する際に、任意選択として使用することもできる。
【0016】
動作中に、ゲーム機102は、そのゲーム機のユーザによってプレイされるゲームの異なる属性に基づくレーティングを生成する。これらのレーティングが生成される正確な形ならびにレーティングが何を表すかは、ゲームタイトルおよびゲーム設計者の望みによって変化する可能性がある。ユーザについて生成されるレーティングは、プレーヤのランキングを生成するのに使用される。これらのランキングを一緒にして、スコアボードとも称する。スコアボードは、全世界に分散した多数のプレーヤのランキングを有することができ、たとえば、1万個または10万個あるいはそれ以上のユーザランキングを含めることができる。
【0017】
異なる属性を使用して、レーティングを生成することができる。特定のレーティングを生成するのに使用される属性は、ゲーム設計者またはゲーム製造業者によって定義される。そのような属性の例に、勝ったゲームの数、負けたゲームの数、引き分けのゲームの数、ゲームで得たポイントの総計、ある行動をどれほど速く実行したか、作業を完了するのにどれほどの助けを受けたか、ある時間期間内にユーザが得たアイテムまたはオブジェクトの数、ゲームをプレイした時間などが含まれる。属性は、ゲーム設計者またはゲーム製造業者が望む任意の形で組み合わせることができ、属性が組み合わされる形は、ゲーム設計者またはゲーム製造業者によって定義される(通常は、そのような組合せが、実行中にゲームタイトルによって実行される)。
【0018】
各ゲームタイトルが、1つまたは複数のレーティングを有する可能性がある。したがって、各レーティングの意味は、変化する可能性がある。たとえば、特定のゲームタイトルが、ユーザのスコアだけである1つのレーティングと、ユーザの最速時間だけであるもう1つのレーティングと、複数の上の属性の組合せであるもう1つのレーティングを有する場合がある。
【0019】
一実施形態では、システム104によってゲームタイトルについて処理されるレーティングのそれぞれについて、異なるスコアボードが保持される。統計システム104は、スコアボードごとにレーティングテーブル110、グループテーブル112、およびメモリツリー116を保持する。
【0020】
さらに、一実施形態では、統計システム104が、ゲームタイトルごとに、それが処理する異なるレーティングの数に対する制限を課す。そのような制限の例示的な範囲が、15〜20であるが、これより高い限度を使用することもできる。
【0021】
統計システム104を用いると、ゲーム機102が、保存のためにシステム104にデータを送信し、システム104によって保存されたデータを取り出し、システム104からランキングを取り出すことができるようになる。ゲーム機は、特定のユーザに関するレーティングならびにこれらのレーティングを生成するのに使用された属性データの両方をシステム104に送信することができる。統計システム104が、レーティングが生成される形に関係する必要はない。しかし、統計システム104は、ゲーム機102のストレージデバイスとして動作し、ゲーム機から受信した個々の属性の値を属性ストア114に保存する。これらの属性値は、ユーザ識別子によって保存され、ゲーム機が後にユーザに関する情報を取り出すできるようになっている。たとえば、最近のゲームプレイに鑑みてユーザのレーティングを再計算するゲーム機102が、システム104によって保存された前の属性を取り出し、これらの属性をユーザの新しいレーティングの計算に使用することができる。
【0022】
動作中に、統計システム104が、ユーザのレーティングを受信する時に、システム104は、レーティングがどのゲームタイトルに対応するか、ならびにレーティングがゲームタイトルのどのスコアボードに対応するかを識別する。スコアボードを与えられて、統計システム104は、適当なレーティングテーブル110にアクセスする。システム104は、システム104によってサポートされる各ゲームタイトルのスコアボードごとに異なるレーティングテーブル110を保持する。特定のスコアボードのレーティングテーブルでは、レーティングがテーブルに含まれるユーザのユーザ識別子、ユーザのレーティング、ユーザに割り当てられたグループ(本明細書ではバケットとも称する)、およびそのグループでのユーザの相対位置が識別される。1つの例示的実施形態では、システム104を用いると、各レーティングテーブルで、ユーザ識別子ごとに、1つのレーティング、1つのグループ、および1つの相対位置だけを保持できるようになる。代替実施形態では、ユーザ識別子ごとに、複数のそのようなレーティング、グループ、および相対位置を保持することができる。
【0023】
ユーザ識別子およびレーティングの両方が、システム104によって、ゲーム機102から受信される。システム104は、受信したレーティングに基づいて、特定のグループをユーザ識別子に(したがって、ユーザに)割り当てる。ユーザ識別子が割り当てられる特定のグループは、下で詳細に説明するように、ユーザのレーティングの変化またはグループの分割に起因するなどにより、経時的に変更することができる。
【0024】
ユーザの相対位置は、システム104によって生成される。相対位置は、そのユーザと同一のバケットに割り当てられた他のユーザに対するユーザの相対的なランクを指す。相対位置は、特定のグループ内のさまざまなユーザをそのレーティングに基づいてランキングすることによって生成される。
【0025】
システム104では、スコアボードごとに、レーティンググループテーブル112も保持される。グループテーブル112では、ユーザ識別子を割り当てることができる異なるグループまたはバケット、各グループが対応するレーティングの範囲、各グループに現在割り当てられているユーザ識別子のカウント、および閾値の個数のユーザ識別子がそのグループに割り当てられているかどうかを示す値(「フルインデックス」または「グループフルインデックス」と称する)が識別される。ユーザ識別子のこの閾値の値は、システム性能に基づいて経験的に、ゲームタイトルの挙動の観察に基づいて、などのさまざまな異なる形で判定することができる。1つの例示的実施形態では、この閾値の値が、60〜80程度であるが、他の値をその代わりに使用することができる。
【0026】
代替案では、現在各グループに割り当てられているユーザ識別子のカウントを、グループテーブル112で保持する必要がない。このカウントは、グループテーブル112のカウントの代わりにまたはグループテーブル112のカウントに加えて、スコアボードについてメモリツリー116で保持することができる。
【0027】
グループテーブル112およびレーティングテーブル110を、それぞれ、本明細書ではスコアボードごとの単一のテーブルとして説明するが、その代わりに、特定のスコアボードに関するレーティングテーブルを、複数のテーブルに分割することができ、特定のスコアボードに関するグループテーブルも、複数のテーブルに分割することができる。
【0028】
図2に、例示的なレーティングテーブル150を示し、図3に、例示的なグループテーブル160を示す。図からわかるように、レーティングテーブル150では、グループ識別子、レーティング、および相対位置を含む、ユーザ識別子ごとの情報が保持される。レーティングテーブル150のグループ識別子によって、図3のテーブル160内のグループが識別される。グループテーブル160では、グループが対応するレーティングの範囲(下および上の値として示されている)、現在各グループに割り当てられているユーザ識別子の数のカウント、およびフルインデックスを含む各グループに関する情報が保持される。代替案では、現在各グループに割り当てられているユーザ識別子の数のカウントを、テーブル160内ではなく、テーブル150および160に対応するメモリツリーで保持することができる。
【0029】
たとえば、図2および3のテーブル150および160を見ると、グループ2が、80から89までの範囲のレーティングに対応し、現在3つのユーザ識別子を割り当てられている(テーブル150にあるユーザ識別子12、67、および57)。グループ2に割り当てられたユーザ識別子について、ユーザ識別子12は、最高のレーティング(89)を有し、したがって1の相対位置を有し、ユーザ識別子67は、第2位のレーティング(87)を有し、したがって2の相対位置を有し、ユーザ識別子57は、第3位のランキング(81)を有し、したがって3の相対位置を有する。
【0030】
図1に戻ると、システム104では、レーティングをレーティングテーブル110に追加し、除去することができる。特定のユーザのレーティングが初めて特定のスコアボードについてシステム104にサブミットされる時に、新しいレーティングがテーブル110に追加される。ユーザが、任意選択として、スコアボードから自分を削除できるようにすることができ、これによって、ユーザの情報が対応するレーティングテーブル110から除去される。さらに、ユーザが新しいレーティングを有する(たとえば、ユーザによるゲームプレイの継続によって、ゲームタイトルが新しいレーティングを生成する結果になり、このレーティングがユーザの前のレーティングより高いか低い(または同一である)場合がある)場合に、ユーザの前のレーティングが、レーティングテーブル110から削除され、ユーザの新しいレーティングが、レーティングテーブル110に追加される。代替案では、ユーザの新しいレーティングが、そのユーザの前のレーティングと同一である場合に、そのような追加および削除を行う必要がない。
【0031】
図4は、レーティングテーブル110にエントリを追加し、レーティングテーブル110からエントリを削除する例示的処理200を示す流れ図である。図4の処理は、統計システム104によって実施され、ソフトウェア、ファームウェア、ハードウェア、またはその組合せによって実行することができる。図4の処理を、図1のコンポーネントに関して説明する。
【0032】
まず、レーティングテーブルエントリを追加または削除する要求を受信する(動作202)。追加要求または削除要求は、ゲーム機102によって明示的に発行することができ、その代わりに、暗黙(たとえば、ユーザのレーティングを更新または修正する要求(前の項目の削除要求およびシステム104による新しいエントリの追加要求に変換される)の発行によって)とすることができる。要求が追加要求である場合には、レーティングテーブル110内でユーザを追加する位置を識別する(動作204)。ユーザが、ユーザのレーティングに基づいてグループを割り当てられる(動作206)。ユーザが割り当てられるグループのカウントを、グループテーブル112および/またはメモリツリー116内で1つインクリメント(増分)し(動作208)、ユーザに、ユーザのグループ内の相対位置を割り当てる(動作210)。ユーザと同一のグループに割り当てられ、ユーザより低いレーティングを有する他のすべてのユーザの相対位置を、インクリメントする(動作212)。
【0033】
レーティングテーブルエントリの追加の例を、図2、3、5、および6を参照して見ることができる。88のレーティングを有する新しいユーザ(ユーザ識別子76)が、図2のレーティングテーブル150に対応するスコアボードに追加されたと仮定する。図5に、ユーザ識別子76のエントリが追加されている点を除いて図2のレーティングテーブル150に類似するレーティングテーブル250を示す。ユーザ識別子76は、88のレーティングを有し、したがって、バケット2に割り当てられる(図3からわかるように、バケット2は80〜89のレーティング範囲を有する)。ユーザ識別子(76)、バケット識別子(2)、およびレーティング(88)が、図5のテーブル250に追加されている。ユーザ識別子76を有するユーザは、バケット2に割り当てられたユーザのうちで第2位のスコアを有し、したがって、2の相対位置を割り当てられる。バケット2に割り当てられ、ユーザ識別子76のレーティングより低いレーティングを有する他のユーザ(すなわち、ユーザ識別子67および57)のそれぞれが、相対位置をインクリメントされている。したがって、図5からわかるように、ユーザ識別子67は、現在は、3の相対位置を有し、ユーザ識別子67は、4の相対位置を有する。さらに、グループ2にもう1人のユーザが追加されるので、図6のテーブル260からわかるように、グループ2のカウントが、4にインクリメントされている(さらにまたはその代わりに、スコアボードに関するメモリツリーのカウントがインクリメントされる)。
【0034】
図示の例では、レーティングテーブルが、レーティングに基づいてソートされる。したがって、テーブルに新しいエントリを追加する位置は、新しいエントリのレーティングに依存する。レーティングによってレーティングテーブルをソートすることによって、同一バケット内の他のユーザの相対位置を、すばやく識別し、新しいエントリに応答して必要に応じてインクリメントすることができる。代替案では、レーティングテーブルを、他のフィールド(たとえば、ユーザ識別子またはバケット)に基づいてソートすることができる。
【0035】
一実施形態では、テーブルを保存する形が、データベースサービス(たとえばSQLデータベース)次第である。データベースサービスは、レーティングのグループ全体にアクセスするかそれを取り出し(グループフィールドに対するクラスタ化されたインデックスを使用して)、ユーザ識別子に対するレーティングの高速取り出すをもたらす(通常のインデックスを使用して)のに効率的な形でレーティングのグループを一緒に保つように構成される。エントリがテーブルに追加される(またはそれから削除される)場合に、エントリのデータおよび/または識別子が、データベースサービスに渡され、このデータベースサービスが、特定の挿入または削除を処理する。
【0036】
システム104は、「引き分け」(すなわち、複数のユーザが同一のレーティングを有する状況)を処理するようにも構成される。例示的実施形態では、システム104が、レーティングテーブルに既に保存されている別のユーザのレーティングと同一のユーザレーティングに関する追加要求を受信する場合に、新しいユーザエントリが、同一のレーティングを有する他のエントリの下に追加され、前のエントリより大きい相対位置を割り当てられる。したがって、本質的に、「引き分けは先頭に」ということができる。代替案では、他の引き分け処理ポリシを実施することができる(たとえば、ユーザの識別子、ユーザがゲーム機を購入した時刻また日付、ユーザ識別子に関連するユーザ名のアルファベット順に基づくなど)。
【0037】
図4の動作202に戻ると、受信された要求が、削除要求である場合には、適当なレーティングテーブルの削除されるエントリを識別する(動作214)。エントリをレーティングテーブルから削除し(動作216)、グループテーブル112および/またはメモリツリー116内の、ユーザが割り当てられたグループのカウントを1つデクリメント(減分)する(動作218)。ユーザが割り当てられたのと同一のグループに割り当てられ、ユーザより低いレーティングを有する他のすべてのユーザの相対位置を、1つデクリメントする(動作220)。
【0038】
テーブルエントリの追加および削除の例を、図2、3、7、および8を参照して見ることができる。ゲーム機が、ユーザ(ユーザ識別子57)の新しいレーティングをサブミットしたと仮定する。このユーザの前のレーティングは、81であり、新しいレーティングは、92である。レーティングテーブル150内のユーザの前のエントリが削除され、新しいエントリが追加される(これは、異なる順序で行うことができる。前のエントリを削除し、その後、新しいエントリを追加することができ、あるいは、新しいエントリを追加し、その後、前のエントリを削除することができ、あるいは、この2つを実質的に同時に行うことができる)。追加および削除が行われた後の、ユーザに新しいレーティングを反映したレーティングテーブル270を、図7に示す。図7からわかるように、グループ2は、現在2人のユーザだけを割り当てられており、ユーザ識別子67の相対位置が、3から2にデクリメントされている。ユーザ識別子57の新しいエントリが追加されており、新しいレーティングおよびそのユーザが割り当てられる新しいグループ(グループ1)が示されている。グループ1に割り当てられる唯一のユーザなので、ユーザ識別子57の相対位置は、1である。さらに、図8からわかるように、図3のグループ化テーブル160が、図8のグループ化テーブル280に変更され、グループ1のカウントが、0から1にインクリメントされ、グループ2のカウントが、3から2にデクリメントされている(さらにまたはその代わりに、スコアボードのメモリツリーのカウントがインクリメントされる)。
【0039】
少なくとも部分的に複数のグループに起因して、システム104で、レーティングを挿入/削除するための物理的書込の量が減ることに留意されたい。レーティングの挿入/削除は、平均してグループの半分に影響し、最悪の場合にグループ全体に影響するが、この影響される量は、スコアボードの総サイズと比較して、まだ小さい。
【0040】
図1に戻ると、グループに余りに多数のユーザが割り当てられている(たとえば、グループのカウントが閾値に達した)場合に、グループが、複数のグループに分割される。図9は、グループを分割する例示的処理300を示す流れ図である。図9の処理は、統計システム104によって実施され、ソフトウェア、ファームウェア、ハードウェア、またはその組合せによって実行することができる。図9の処理を、図1のコンポーネントに関して説明する。
【0041】
システム104は、グループカウントが閾値に達するまで待つ(動作302)。システム104が、待っている間に他のタスクおよび動作を実行していることができることを諒解されたい。グループのカウントが閾値に達したならば、グループの適当な中央を判定する(動作304)。この中央は、グループに割り当てられたユーザの数またはグループに対応するレーティング範囲に基づくなど、異なる形で判定することができる。たとえば、レーティング範囲を、単純にほぼ半分に分割することができる(たとえば、範囲が80〜89の場合に、適当な中央は84または85になる)。もう1つの例として、ユーザの数をほぼ半分に分割することができる(たとえば、グループのカウントが70であり、グループのレーティング範囲が80〜89であり、グループに割り当てられたユーザのうちの34人が、レーティング80または81を有し、グループに割り当てられた他の36人のユーザが、82〜89の範囲のレーティングを有する場合に、適当な中央は、81または82になる)。
【0042】
その後、新しいグループを生成し(動作306)、グループに対応するレーティング範囲を、グループと新しいグループの間で分割する(動作308)。新しいグループのエントリを、新しいグループのレーティング範囲に基づいて、グループテーブルの適当な位置に追加する。例示的実施形態では、グループテーブルが、レーティング範囲に基づいてソートされる(既に示したように)が、その代わりに他のフィールドをソートの基礎として使用することができる。
【0043】
レーティング範囲を分割する形を、変更することができる(たとえば、上で動作304に関して説明したように、グループのほぼ中央がどのように識別されるかに基づいて)。グループテーブルおよび/またはメモリツリー内のこれらのグループの両方のグループカウントを更新し(動作310)、グループ識別子およびグループ内のユーザの相対位置を適当に更新する(動作312)。
【0044】
グループ分割の例を、図10および11を参照して見ることができる。カウント閾値が3である(通常は小さすぎる数であるが、説明には有用である)と仮定する。3のカウントを有するグループ2(図3のテーブル160を参照されたい)が、その閾値に達し、分割されようとしている。適当な中央は、84または85であると判定され、したがって、80から84までのレーティング範囲を有する新しいグループ(グループ11)が生成され、グループ2のレーティング範囲が、85〜89に変更される。グループ(2および11)のそれぞれのカウントが、図11のグループテーブル330でそれ相応に更新されている。さらに、図10のレーティングテーブル340で、ユーザ識別子57が、現在はグループ11に割り当てられ、その結果、テーブル340のユーザ識別子57のグループ識別子および相対位置が、それ相応に修正されている。
【0045】
1つの例示的な実施形態では、グループが分割される場合に、分割されるグループが残され、1つの新しいグループが作成される。その代わりに、分割されるグループを除去し、2つの新しいグループを作成することができる。
【0046】
もう1つの例示的実施形態では、グループが分割される場合に、分割されるグループが残され、グループの最も高いレーティングを有するユーザがそのグループに割り当てられる。新しいグループが作成され、最も低いレーティングを有するユーザが新しいグループに割り当てられる。2つのグループの間でこの形でユーザを分割することによって、レーティングテーブル内で更新される必要がある相対位置の数が減る。
【0047】
図9の処理300、および本明細書の他所で、2つのグループへのグループの分割に言及する。その代わりに、この分割を、xウェイ分割とすることができ、このxは、2以上の任意の値である。たとえば、グループを2つのグループに分割するのではなく、あるグループを、3つのグループ、4つのグループ、5つのグループなどに分割することができる。
【0048】
グループの分割に似て、グループを組み合わせることもできることに留意されたい。たとえば、連続したレーティング範囲を有する2つのグループを、それらに関連するカウントが十分に少ない場合に、単一のグループに組み合わせることができる。もう1つの例として、空になったグループを削除し、別のグループ(隣接するレーティング範囲を有する)のレーティング範囲を、削除されたグループのレーティング範囲を含むように修正することができる。
【0049】
図1に戻ると、グループ分割によって、1つの値の範囲(たとえば、上と下の値が同一である)グループがもたらされ、そのグループの閾値カウント値に達する状況が、システム104で生じる可能性がある。そのような状況では、同一の範囲を有する追加のグループが生成され、その範囲を有する前のグループが、そのフルインデックス値をセットされる(たとえば0から1に変更される)。
【0050】
この状況の例を、図12に示す。グループテーブル350が示されており、グループ識別子15が、1〜1のレーティング範囲を有し、それに割り振られるユーザのカウントが、閾値(限界)である。新しいグループ(グループ識別子34)が追加され、やはり1〜1のレーティング範囲を有する。グループ識別子15のフルインデックスが、セットされて(たとえば図示のように1の値)、これがその限界に達したことが示され、グループ識別子34のフルインデックスが、セットされず(たとえば図示のように0の値)、1のレーティングを有する新しいエントリが、前のグループ(15)ではなく新しいグループ(34)に追加されることが示されている。
【0051】
ユーザのエントリが、レーティングテーブルに追加されるかレーティングテーブルから除去される場合に、ユーザが割り当てられるグループが、追加処理または削除処理の持続時間中に一時的にロックされる。グループの一時的ロックによって、システム104が、ロックが解放されるまでそのグループへの他の追加または削除を一切行えなくなる。したがって、たとえば、システム104が、新しいエントリをグループ2に追加している間には、新しいエントリが追加されるまで(この時点でロックが解放される)、他のエントリをグループ2に追加するかグループ2から削除することはできない。しかし、他のグループがロックされないことに留意されたい。したがって、グループ2がロックされている場合であっても、そのロックによって、システム104が、グループ5にエントリを追加するかグループ5からエントリを削除できなくなることはない。
【0052】
さらに、グループテーブルおよびレーティングテーブルならびにメモリツリー116を使用することによって、システム104によってランク情報をすぐに取り出すできるようになる。たとえば、ゲーム機が、特定のユーザに関するランクを要求し(たとえば、ユーザ識別子によって)、システム104が、要求されたランクをすぐにゲーム機に返すことができる。特定のユーザのランクを判定するために、メモリツリー116が使用される。システム104がブートされる場合に、メモリツリー116が、システムメモリ106にコピーされ、下で説明するように移植される。メモリツリー116を永続ストア108に保存することによって、システム104がリブートされるたびにツリー全体を再生成する必要がなくなる。代替案では、メモリツリー116を永続ストア108に保存せずに、システム104がブートされる場合に再構築することができる(永続ストア108に保存されたグループ数および各グループに含まれるレーティングの数を与えられれば)。1つの例示的な実施形態では、メモリツリー116が、バイナリツリーであるが、異なる実施形態で、異なるタイプのツリーをその代わりに使用することができる。
【0053】
メモリツリー116は、その最下レベルで、複数の葉ノードを有する。各葉ノードは、特定のグループに対応し、そのグループに割り当てられたユーザのカウントを関連付けられる。葉ノードは、左から右へ、対応するグループがグループテーブルに現れるのと同一の順序で配置される(左端の葉ノードが、最高のレーティング範囲を有するグループに対応する)。各葉ノードは、親ノードを有し、親ノードは、子ノードのそれぞれのカウントの合計を関連付けられる。この親/子関係は、単一のノード(ツリーのルートノード)を有するレベルに達するまで継続される。
【0054】
図13に、例示的なメモリツリー360を示す。メモリツリー360は、図3のグループテーブル160で識別される10個のグループに対応する。葉ノード(レベル(1)364内)とグループの間の関係を示すために、グループ識別子362の行が示されている。レベル(1)364内の各葉ノードは、対応するグループに割り当てられたユーザのカウントが関連付けられている。レベル(2)366のノードは、葉ノードに対する親ノードであり、子ノードのカウントの合計を関連付けられている。同様に、レベル(3)368のノードは、レベル(2)366のノードに対する親ノードであり、レベル(4)370のノードは、レベル(3)368のノードに対する親ノードである。レベル(5)372のルートノードは、レベル(4)370のノードに対する親ノードである。
【0055】
1つの例示的な実施形態では、メモリツリー内のノードに関連するカウント値が、図1の永続ストア108に保存されないが、メモリツリーの構造(さまざまなノードの親/子関係)は永続ストア108に保存される。その代わりに、メモリツリー内のノードに関連するカウント値も、永続ストア108に保存することができる。
【0056】
図14は、メモリツリーのユーザカウントを増減する例示的処理390を示す流れ図である。図14の処理は、図1の統計システム104によって実施され、ソフトウェア、ファームウェア、ハードウェア、またはその組合せによって実行することができる。図14の処理を、図13をさらに参照して説明する。
【0057】
まず、ユーザカウントをインクリメントまたはデクリメントされなければならないグループに対応する、メモリツリーの葉ノードを識別する(動作392)。処理390は、その後、グループのカウントをインクリメントするかデクリメントするかに基づいて進行する(動作394)。カウントをインクリメントする場合には、葉ノードのユーザカウントをインクリメントし(動作396)、その葉ノードからツリーのルートノードまでのパスに沿った各親ノードのユーザカウントもインクリメントする(動作398)。しかし、カウントをデクリメントする場合には、葉ノードのユーザカウントをデクリメントし(動作400)、その葉ノードからツリーのルートノードまでのパスに沿った各親ノードのユーザカウントもデクリメントする(動作402)。
【0058】
図15は、メモリツリーに基づいてユーザランキングを取り出す例示的処理410を示す流れ図である。図15の処理は、図1の統計システム104によって実施され、ソフトウェア、ファームウェア、ハードウェア、またはその組合せによって実行することができる。図15の処理を、図13をさらに参照して説明する。
【0059】
まず、そのランクが望まれるユーザ識別子を受信する(動作412)。識別されたユーザが割り当てられるグループに対応するノードを識別し、現在のノードとしてセットする(動作414)。小計値に0をセットし(動作416)、現在のノードが左兄弟を有するかどうかを検査する(動作418)。ノードが左兄弟を有するのは、ノードが、そのノードの左側に配置されたもう1つの子ノードを有する親ノードを有する場合である。たとえば、図13で、葉ノード374が、左兄弟を有する(ノード376すなわち親ノード378のもう1つの子)が、葉ノード376は、左兄弟を有しない。
【0060】
現在のノードが左兄弟を有する場合には、左兄弟ノードに関連する値を、小計値に加算する(動作420)。しかし、現在のノードが左兄弟を有しない場合に、または左兄弟ノードの値を小計値に加算した後に、現在のノードが親ノードを有するかどうかに関して検査を行う(動作422)。現在のノードが親ノードを有する場合には、親ノードを現在のノードとしてセットし(動作424)、処理は動作418に戻る。しかし、現在のノードが親ノードを有しない場合には、処理がルートノードに達しており、ユーザのランクを、この処理によって生成された小計値と、レーティングテーブルから得られるユーザの相対位置との合計と等しくなるようにセットする(動作426)。
【0061】
図15の例の処理を、図13のメモリツリー360および図2のテーブル150を参照して見ることができる。ユーザID29を有するユーザのランキングの要求を受信したと仮定する。このユーザは、バケット6(テーブル150に示されている)に割り当てられ、このバケットは図13のノード374に対応する。ノード374は、左兄弟(ノード376)を有し、したがって、左兄弟(ノード376)の値(1)が、小計値に加算され、小計値が1になる。ノード374は、親すなわちノード378を有し、ノード378は左兄弟を有しない。ノード378も、親すなわちノード380を有し、ノード380は、左兄弟(ノード382)を有する。したがって、左兄弟(ノード382)の値(3)が、小計値に加算され、小計値は4になる。ノード380は、親すなわちノード384を有し、ノード384は、左兄弟を有しない。ノード384も、親すなわちノード386を有し、ノード386は、親を有しておらず、したがって、ルートノードである。小計(4)が、ユーザの相対位置(テーブル150からわかるように2)に加算され、6というユーザのランクがもたらされる。
【0062】
図15の処理が、例示的な処理であり、メモリツリーの構造に基づいて変更できることに留意されたい。たとえば、その代わりに、メモリツリーを、右端の葉ノードが最高のレーティング範囲を有するグループに対応するように構成することができ、その場合に、図15の処理で、左兄弟ではなく右兄弟を参照しなければならない(動作418および420で)。
【0063】
さらに、1つの例示的な実施形態では、メモリツリーが、均一の深さのツリーとして実施され、ルートノードからすべての葉ノードへのパスが同一の長さを有する。これによって、この均一の深さという特性を利用するデータ構造(たとえば周知のヒープデータ構造)を使用できるようになり、メモリツリーの情報のより高速の取り出すをもたらすことができる。しかし、均一の深さという特性を保持するために、グループが分割されるたびにメモリツリー構造が再生成される(および、図1の永続ストア108に保存される)。代替実施形態では、他のデータ構造が使用され、メモリツリーは、均一の深さでない。これらの代替実施形態では、ツリーの異なる部分を、異なる深さに延ばすことができ、グループが分割される場合にメモリツリーを再生成する必要がない。
【0064】
メモリツリーを使用し、特定のグループにユーザを割り当てることによって、特定のユーザのランキングをすぐに判定できるようになる。これは、異なるゲーム機から受信するさまざまなユーザランキング要求にあてはまる。たとえば、ユーザが、特定のスコアボードについてトップ10またはトップ100のユーザおよびレーティングを見ることに関心を持つ場合がある。そのような要求には、スコアボードのレーティングテーブルからトップ10またはトップ100のユーザおよびレーティングを入手することによって、システム104によってすぐに応答することができる。
【0065】
もう1つの例として、ユーザが、自分のランクならびに友人のランクのグループを見ることに興味を持つ場合がある。そのような友人のリストを、ユーザのゲーム機でおよび/またはユーザのゲーム機からアクセス可能なサービス(たとえば、プレゼンスおよび通知システム(presence and notification system))によってリモートに、保持することができる。そのような友人のリストに、そのような友人のそれぞれのユーザ識別子が含まれる。ユーザ識別子のリストをシステム104に通信することができ、システム104は、ユーザおよび友人のそれぞれのランクを取り出し、ユーザへの表示のためにユーザのゲーム機にランクを返す。もう1つの例として、ユーザが、友人に対する相対的な自分のランクを見ることに関心を持つ場合に、ユーザ識別子のリストをシステム104に送信し、ランキングを入手するか、その代わりにレーティングだけを入手することができる。システム104(またはその代わりにゲーム機)は、入手したランキングまたはレーティングに基づいて、お互いに関して友人にランクを付けることができる。
【0066】
さらに、ユーザが、ランキングのウィンドウを取り出すことに関心を持つ場合がある。このウィンドウは、トップyランキングまたはボトムyランキング(yは事実上すべての数である)とすることができ、あるいは、その代わりに、特定のユーザ識別子の周囲に配置することができる(たとえば、ユーザ識別子、ユーザの友人の1人のユーザ識別子、ユーザにゲームをプレイするように求めている別のユーザのユーザ識別子など)。
【0067】
図16は、ランキングのウィンドウを取り出す例示的処理440を示す流れ図である。図16の処理は、図1の統計システム104によって実施され、ソフトウェア、ファームウェア、ハードウェア、またはその組合せによって実行することができる。
【0068】
まず、ランキングのウィンドウを識別する要求を、ウィンドウの基準の指示と共に受信する(動作442)。基準の指示は、たとえば、特定のランキングまたはユーザ識別子とすることができる。処理440は、基準の指示がランキングであるかどうかに基づいて進行する(動作444)。基準の指示がランキングである場合には、適当なより高いランキングを識別することができ(動作446)、適当なより低いランキングを識別することができる(動作448)。適当なより高いランキングおよびより低いランキングは、取り出されるウィンドウのサイズすなわち、どれほどの数のランキングが要求されたかを指す。動作442で受信される要求には、ウィンドウのサイズの表示が含まれる(たとえば、要求されるランキングの総数、より高いランキングの数およびより低いランキングの数などによって)。たとえば、ウィンドウが、10個のランキングになる場合には、適当なより高いランキングを、スコアボード上で基準の指示の真上の5つのランキングとすることができ、適当なより低いランキングを、スコアボード上で基準の指示の真下の5つのランキングとすることができる。スコアボード上の真下および真上のランキングは、レーティングテーブル150からすぐに判定することができる。その後、識別されたランキングを、要求されたウィンドウとして要求元のゲーム機に返す(動作450)。
【0069】
動作444に戻って、基準の指示がランキングでない(たとえば、ユーザ識別子である)場合には、レーティングテーブルにアクセスして、参照されたユーザが割り当てられるグループおよびそのユーザのグループ内の相対位置を識別する(動作452)。ユーザのグループより上位のグループのカウントの合計を識別し(動作454)、ユーザの相対位置(レーティングテーブルからの)を、カウントの合計に加算して、ランクを生成する(動作456)。動作454は、たとえば、図15の処理410を使用することによって実行することができる。動作456で生成されたランキングに基づいて、適当なより高いランキングおよびより低いランキングを識別し(動作446および4448)、識別されたランキングをウィンドウとして要求元に返す(動作450)。
【0070】
図1に戻ると、ゲーム機102と統計システム104の間の通信は、さまざまなプロトコルのいずれかに従って実行することができる。1つの例示的な実施形態では、アプリケーションプログラミングインターフェース(API)の組が、統計システム104によってゲーム機102に公開されて、要求をシステム104にサブミットできるようになる。下の表I〜VIに、XOnlineStatSetインターフェース、XOnlineStatGetインターフェース、XOnlineStatLeaderEnumerateインターフェース、XOnlineStatLeaderEnumerateGetResultsインターフェース、およびXOnlineStatResetインターフェースを含むAPIの例示的な組を示す。
【0071】
表Iに、APIによって使用される例示的な構造体および定数を示す。
【0072】
Figure 2004041719
Figure 2004041719
【0073】
表IIに、ゲーム機102によって、1人または複数のユーザについて1つまたは複数の属性および/またはレーティングを設定するのに使用されるXOnlineStatSetインターフェースを示す。
【0074】
Figure 2004041719
【0075】
XOnlineStatSetインターフェースでは、dwNumStatSpecsパラメータに、pStatSpecsによってポイントされる配列の要素数が格納される。pStatSpecsパラメータは、新しい属性およびレーティングを含むXONLINE_STAT_SPECの配列をポイントする。hWorkEventパラメータは、phTaskで返されるタスクがより多く作業する準備ができていることを知らせるのに使用される、Windows NT(登録商標)オペレーティングシステムイベントハンドルである。phTaskパラメータは、この動作のタスクハンドルを受け取る変数へのポインタである。
【0076】
XOnlineStatSet関数は、動作が成功する場合にS_OKの値を返し、phTaskが有効なタスクをポイントする。動作に失敗する場合には、この関数は、HRESULTエラーのフレーバーを返す。
【0077】
表IIIに、ゲーム機102によって、1人または複数のユーザの1つまたは複数の属性、レーティング、および/またはランクを取り出すのに使用されるXOnlineStatGetインターフェースを示す。
【0078】
Figure 2004041719
【0079】
XOnlineStatGetインターフェースでは、dwNumStatSpecsパラメータに、pStatSpecsによってポイントされる配列の要素数が格納される。pStatSpecsパラメータは、要求されたデータを受け取るXONLINE_STAT_SPECの配列をポイントする。XONLINE_STAT_SPEC構造体の値部分には、要求されたデータのIDだけが格納される。hWorkEventパラメータは、phTaskで返されるタスクが作業する準備ができていることを知らせるのに使用される、WindowsNT(登録商標)オペレーティングシステムイベントハンドルである。phTaskパラメータは、この動作のタスクハンドルを受け取る変数へのポインタである。
【0080】
XOnlineStatGet関数は、動作が成功する場合にS_OKの値を返し、phTaskが有効なタスクをポイントする。動作に失敗する場合には、この関数は、HRESULTエラーのフレーバーを返す。
【0081】
表IVに、ゲーム機102によって、スコアボードから、1ページのユーザおよび属性、レーティング、および/またはランクを取り出すのに使用されるXOnlineStatLeaderEnumerateインターフェースを示す。
【0082】
Figure 2004041719
【0083】
XOnlineStatLeaderEnumerateインターフェースのパラメータは次の通りである。
【0084】
pxuidPagePivot このパラメータは、NULLでない場合に、ページのピボットとして使用されるユーザをポイントする。統計サーバは、そのユーザが中央にあるランキングのウィンドウを有するページの取り出すを試みる。
【0085】
dwPageStart 開始ランク。0は、スコアボードの先頭であり、XOnlineStatLeaderEnumerate関数は、「dwPageSize」個のエントリを返す。dwPageStartパラメータは、pxuidPagePivotがNULLでない場合には無視される。
【0086】
dwPageSize ページ内のエントリの所望の個数。
【0087】
dwNumStatsPerUser pStatsPerUserによってポイントされる配列に保存される統計の数。
【0088】
pStatsPerUser ページ内でユーザごとに取り出しなければならない属性のタイトル固有統計IDの配列。
【0089】
pUsers ユーザ情報を受け取る配列。少なくともdwPageSizeユーザを保存できるスペースが必要である。
【0090】
pStats pStatsPerUserで要求されたユーザのデータを受け取る配列。少なくともdwNumStatsPerUser×dwPageSizeエントリを保存するのに十分なスペースが必要である。
【0091】
hWorkEvent phTaskで返されるタスクが作業する準備ができていることを知らせるのに使用される、Windows NT(登録商標)オペレーティングシステムイベントハンドルである。
【0092】
phTask この動作のタスクハンドルを受け取る変数へのポインタ。
【0093】
XOnlineStatLeaderEnumerate関数は、動作が成功する場合にS_OKの値を返し、phTaskが有効なタスクをポイントする。動作に失敗する場合には、この関数は、HRESULTエラーのフレーバーを返す。
【0094】
表Vに、ゲーム機102によって、XOnlineStatLeaderEnumerateによって返されるタスクによって取り出されるエントリの数を取り出すのに使用されるXOnlineStatLeaderEnumerateGetResultsインターフェースを示す。
【0095】
Figure 2004041719
【0096】
XOnlineStatLeaderEnumerateGetResultsインターフェースでは、hTaskパラメータが、XOnlineStatLeaderEnumerateによって返されるタスクであり、pdwReturnedResultsパラメータが、このタスクによって実際に取り出されるエントリの数を受け取る変数へのポインタである。
【0097】
XOnlineStatLeaderEnumerateGetResults関数は、動作が成功する場合にS_OKの値を返し、動作に失敗する場合には、HRESULTエラーのフレーバーを返す。
【0098】
表VIに、ゲーム機102によって、特定のゲームタイトルに関するユーザのすべてのデータ(そのタイトルについて保持されるすべてのスコアボードのすべての属性、レーティング、およびランクを含む)をリセットするのに使用されるXOnlineStatResetインターフェースを示す。
【0099】
Figure 2004041719
【0100】
XOnlineStatResetインターフェースでは、xUserパラメータが、その状態をリセットされるユーザの識別子(XUID)である。統計システムは、任意選択として、そのユーザがログインしているユーザでなければならないという制限を課すことができる。hWorkEventパラメータは、phTaskで返されるタスクが作業する準備ができていることを知らせるのに使用される、Windows NT(登録商標)オペレーティングシステムイベントハンドルである。phTaskパラメータは、この動作のタスクハンドルを受け取る変数へのポインタである。
【0101】
XOnlineStatReset関数は、動作が成功する場合にS_OKの値を返し、phTaskが有効なタスクをポイントする。動作に失敗する場合には、この関数は、HRESULTエラーのフレーバーを返す。
【0102】
図17は、例示的オンラインゲーム環境500のブロック図である。複数のゲーム機502(1)、502(2)、502(n)が、ネットワーク506を介してセキュリティゲートウェイ504に結合される。各ゲーム機502は、たとえば、図1のゲーム機102とすることができる。ネットワーク506は、1つまたは複数のさまざまな普通のデータ通信ネットワークを表す。ネットワーク506に、通常は、パケット交換網が含まれるが、回路交換網も含めることができる。ネットワーク506に、有線部分および/または無線部分を含めることができる。1つの例示的な実施形態では、ネットワーク506に、インターネットが含まれ、任意選択として、1つまたは複数のローカルエリアネットワーク(LAN)および/または広域ネットワーク(WAN)を含めることができる。ネットワーク506の少なくとも一部が、公衆網であり、これは、公にアクセス可能なネットワークを指す。事実上だれもが、公衆網にアクセスすることができる。
【0103】
いくつかの状況で、ネットワーク506にLAN(たとえばホームネットワーク)が含まれ、ルーティングデバイスが、各ゲーム機502とセキュリティゲートウェイ504の間に配置される。このルーティングデバイスは、ネットワークアドレス変換(NAT)を実行して、LANの複数のデバイスがインターネット上の同一のIPアドレスを共用できるようにすることができ、また、悪意があるか有害なユーザによるインターネットを介するアクセスからLANのデバイスを保護するファイヤウォールとしても動作することができる。
【0104】
セキュリティゲートウェイ504は、公衆網506と私有網508の間のゲートウェイとして動作する。私有網508は、ローカルエリアネットワークなど、さまざまな普通のネットワークのいずれかとすることができる。私有網508ならびに下で詳細に説明する他のデバイスは、セキュアゾーンとして動作するデータセンタ510内にある。データセンタ510は、信頼される通信を介して通信する信頼されるデバイスから構成される。したがって、セキュアゾーン510内での暗号化および認証は不要である。ネットワーク508の私有という性質は、ネットワーク508の制限されたアクセス可能性を指す。ネットワーク508へのアクセスは、ある個人だけに制限される(たとえば、データセンタ510の所有者またはオペレータによって制限される)。
【0105】
セキュリティゲートウェイ504は、1つまたは複数のセキュリティゲートウェイコンピューティングデバイスのクラスタである。これらのセキュリティゲートウェイコンピューティングデバイスによって、集合的にセキュリティゲートウェイ504が実施される。セキュリティゲートウェイ504には、任意選択として、セキュリティゲートウェイコンピューティングデバイスによって処理される要求を、これらのコンピューティングデバイスの適当な1つに向けるように動作する1つまたは複数の普通のロードバランシングデバイスを含めることができる。この向けることまたはロードバランシングは、さまざまなセキュリティゲートウェイコンピューティングデバイスの負荷をほぼ同一に平衡化することを試みる形で(または、その代わりに、ある他の判断基準に従って)実行される。
【0106】
やはりデータセンタ510内にあるのが、1つまたは複数のモニタリングサーバ512と、1つまたは複数のプレゼンスおよび通知フロントドア514、1つまたは複数のプレゼンスサーバ516、1つまたは複数の通知サーバ518、およびプロファイルストア528’(集合的にプレゼンスおよび通知サーバまたはシステム530を実施する)と、1つまたは複数のマッチフロントドア520および1つまたは複数のマッチサーバ522(集合的にマッチサービスを実施する)と、1つまたは複数の統計フロントドア524および1つまたは複数の統計サーバ526(集合的に統計サービスを実施する)である。サーバ516、518、522、および526は、ゲーム機502にサービスを提供し、したがって、サービスデバイスと呼ぶことができる。他のサービスデバイスも、1つまたは複数のサービスデバイス516、518、522、および526に加えておよび/またはその代わりに含めることができる。さらに、図17には1つのデータセンタだけが図示されているが、その代わりに、ゲーム機502と通信できる複数のデータセンタが存在することができる。これらのデータセンタは、独立に動作することができ、その代わりに、集合的に動作することができる(たとえば、1つの大きいデータセンタをゲーム機502から使用可能にするために)。
【0107】
ゲーム機502は、データセンタ510から離れて置かれ、ネットワーク506を介してデータセンタ510にアクセスする。データセンタの1つまたは複数のデバイスと通信することを望むゲーム機502は、データセンタにログインし、コンソール502とセキュリティゲートウェイ504の間のセキュア通信チャネルを確立する。ゲーム機502およびセキュリティゲートウェイ504は、やりとりされるデータパケットを暗号化し、認証し、これによって、暗号を破らずにデータパケットを取り込むかコピーする他のデバイスによって理解されることなく、データパケットをそれらの間で安全に伝送できるようにする。ゲーム機502からセキュリティゲートウェイ504に、またはセキュリティゲートウェイ504からゲーム機502に通信される各データパケットは、その中にデータを埋め込まれることができる。この埋め込まれたデータを、パケットの内容またはデータ内容と称する。追加情報を、パケットのタイプに基づいて、パケット内に固有の形で含めることもできる。
【0108】
コンソール502とセキュリティゲートウェイ504の間のセキュア通信チャネルは、セキュリティチケットに基づく。コンソール502は、鍵配布センタ528に対してそれ自体およびコンソール502の現在のユーザを認証し、鍵配布センタ528からセキュリティチケットを入手する。その後、コンソール502は、このセキュリティチケットを使用して、セキュリティゲートウェイ504とのセキュア通信チャネルを確立する。セキュリティゲートウェイ504とのセキュア通信チャネルを確立する際に、ゲーム機502およびセキュリティゲートウェイ504は、お互いに対してそれ自体を認証し、その特定のゲーム機502およびセキュリティゲートウェイ504だけに既知のセッションセキュリティ鍵を確立する。このセッションセキュリティ鍵は、ゲーム機502とセキュリティゲートウェイクラスタ504の間で転送されるデータを暗号化し、他のデバイス(他のゲーム機502を含む)がそのデータを読み取れなくするのに使用される。セッションセキュリティ鍵は、そのデータパケットがそこから来たと主張されるセキュリティゲートウェイ504またはゲーム機502からのものとしてデータパケットを認証するのにも使用される。したがって、そのようなセッションセキュリティ鍵を使用することによって、セキュア通信チャネルを、セキュリティゲートウェイ504とさまざまなゲーム機502の間で確立することができる。
【0109】
セキュア通信チャネルがゲーム機502とセキュリティゲートウェイ504の間で確立されたならば、暗号化されたデータパケットを、この2つの間で安全に伝送することができる。ゲーム機502が、データセンタ510内の特定のサービスデバイスにデータを送信することを望む場合に、ゲーム機502は、データを暗号化し、セキュリティゲートウェイ504に送信して、そのデータパケットによって目標とされる特定のサービスデバイスに転送するように要求する。セキュリティゲートウェイ504は、データパケットを受信し、データパケットの認証および暗号化解除の後に、パケットのデータ内容を、私有網508を介して適当なサービスに送信される別のメッセージにカプセル化する。セキュリティゲートウェイ504は、データパケットによって目標とされる要求されたサービスに基づいて、メッセージに適当なサービスを判定する。
【0110】
同様に、データセンタ510のサービスデバイスがデータをゲーム機502に通信することを望む場合には、データセンタが、ゲーム機502に送信されるデータ内容ならびにそのデータ内容が送信される特定のゲーム機502の表示を含むメッセージを、私有網508を介してセキュリティゲートウェイ504に送信する。セキュリティゲートウェイ504は、データ内容をデータパケットに埋め込み、その後、特定のゲーム機502によってのみ暗号化解除できるようにデータパケットを暗号化し、セキュリティゲートウェイ504からのものとしてデータパケットを認証する。
【0111】
本明細書では、主に、セキュリティゲートウェイ504とゲーム機502の間の暗号化されたデータパケットの通信として説明するが、その代わりに、あるデータパケットを部分的に暗号化することができる(データパケットのある部分が暗号化され、他の部分が暗号化されない)。データパケットのどの部分が暗号化され、どの部分が暗号化されないかは、データセンタ510および/またはゲーム機502の設計者の望みに基づいて変更することができる。たとえば、設計者は、ゲーム機502のユーザが互いに話すことができるようにゲーム機502の間で音声データを通信できるようにすることを選択する場合があり、その設計者が、さらに、パケット内の他のすべてのデータを暗号化するが、音声データを暗号化しないことを選択することができる。さらに、もう1つの代替案では、一部のデータパケットを、暗号化される部分を有しない(データパケット全体が暗号化されない)ものとすることができる。データパケットが暗号化されないか部分的に暗号化される場合であっても、そのデータパケットが認証されることに留意されたい。
【0112】
セキュリティゲートウェイ504内の各セキュリティゲートウェイデバイスは、通常は1つまたは複数のゲーム機502とのセキュア通信チャネルに関する責任を負い、したがって、各セキュリティゲートウェイデバイスを、1つまたは複数のゲーム機を管理または処理する責任を負うとみなすことができる。さまざまなセキュリティゲートウェイデバイスは、互いに通信し、互いにメッセージを通信することができる。たとえば、管理の責任を負わないゲーム機にデータパケットを送信する必要があるセキュリティゲートウェイデバイスは、そのゲーム機に送らなければならないデータと共に、メッセージを、他のすべてのセキュリティゲートウェイデバイスに送信することができる。このメッセージが、そのゲーム機を管理する責任を負うセキュリティゲートウェイデバイスによって受信され、そのデバイスが適当なデータをそのゲーム機に送信する。その代わりに、セキュリティゲートウェイデバイスが、どのゲーム機がどのセキュリティゲートウェイデバイスによって処理されているかを知ることができ、これは、各セキュリティゲートウェイデバイスが他のセキュリティゲートウェイデバイスによって処理されるゲーム機のテーブルを保持するなど、明示的とするか、その代わりに、ゲーム機の識別子に基づいてどのセキュリティゲートウェイデバイスが特定のゲーム機に関する責任を負うかを判定するなど、暗黙とすることができる。
【0113】
モニタリングサーバ512は、データセンタ510内のデバイスに、使用不能なゲーム機502またはセキュリティゲートウェイ504の使用不能なセキュリティゲートウェイデバイスについて知らせるように動作する。ゲーム機502は、ハードウェア障害またはソフトウェア障害、コンソールがデータセンタ510からログアウトせずに電源を切られた、コンソール502へのネットワーク接続ケーブルがコンソール502から切り離された、他のネットワーク問題(たとえば、コンソール502があるLANが誤動作しているなど)など、さまざまな異なる理由から使用不能になる可能性がある。同様に、セキュリティゲートウェイ504のセキュリティゲートウェイデバイスは、ハードウェア障害またはソフトウェア障害、デバイスの電源が切られている、デバイスへのネットワーク接続ケーブルがデバイスから切り離された、他のネットワーク問題など、さまざまな異なる理由から使用不能になる可能性がある。
【0114】
セキュリティゲートウェイ504内のセキュリティゲートウェイデバイスのそれぞれが、1つまたは複数のモニタリングサーバ512によって監視され、このモニタリングサーバ512は、セキュリティゲートウェイデバイスの1つが使用不能になる場合を検出する。セキュリティゲートウェイデバイスが使用不能になった場合には、モニタリングサーバ512が、データセンタ510内の他のデバイスのそれぞれ(サーバ、フロントドアなど)に、セキュリティゲートウェイデバイスがもはや使用可能でないとのメッセージを送信する。他のデバイスのそれぞれは、それに適すると思われる形でこの情報に基づいて動作する(たとえば、そのセキュリティゲートウェイデバイスによって管理されている特定のゲーム機が、もはやデータセンタ510と通信しないと仮定し、それ相応にさまざまなクリーンアップ動作を実行することができる)。その代わりに、あるデバイスだけが、そのようなメッセージをモニタリングサーバ512から受信することができる(たとえば、セキュリティゲートウェイデバイスが使用可能であるかどうかに関係するデバイスだけ)。
【0115】
セキュリティゲートウェイ504は、個々のゲーム機502を監視し、ゲーム機502の1つが使用不能になる場合を検出する。セキュリティゲートウェイ504が、ゲーム機がもはや使用不能であることを検出する場合に、セキュリティゲートウェイ504は、使用不能なゲーム機を識別するメッセージをモニタリングサーバ512に送信する。それに応答して、モニタリングサーバ512は、データセンタ510内の他のデバイスのそれぞれに(またはその代わりに選択されたデバイスだけに)ゲーム機がもはや使用不能であるとのメッセージを送信する。他のデバイスのそれぞれは、それに適すると思われる形でこの情報に基づいて動作することができる。
【0116】
プレゼンスサーバ516は、オンラインゲームに関してデータセンタ510にログインした所与のユーザの状況または存在に関するデータを保持し、処理する。通知サーバ518は、データセンタ510にログインしたプレーヤに宛てられた発信メッセージの複数の通知キューを保持する。プレゼンスおよび通知フロントドア514は、セキュリティゲートウェイ504とサーバ516および518の間の仲介物として動作する1つまたは複数のサーバデバイスである。1つまたは複数のロードバランシングデバイス(図示せず)をプレゼンスおよび通知フロントドア514に含めて、フロントドア514として動作する複数のサーバデバイスの間で負荷を平衡化することができる。セキュリティゲートウェイ504は、サーバ516および518に関するメッセージをフロントドア514に通信し、フロントドア514は、そのメッセージが通信される特定のサーバ516または特定のサーバ518を識別する。フロントドア514を使用することによって、どのサーバがどのユーザに関するデータを管理する責任を負うかなど、サーバ516および518の実際の実施形態が、セキュリティゲートウェイ504から抽出される。セキュリティゲートウェイ504は、プレゼンスおよび通知サービスを目標とするメッセージを単純にプレゼンスおよび通知フロントドア514に転送することができ、フロントドア514に頼って、サーバ516およびサーバ518の適当な1つにメッセージをルーティングすることができる。
【0117】
マッチサーバ522は、オンラインプレーヤのお互いへのマッチングに関するデータを保持し、処理する。オンラインユーザは、ゲームのさまざまな特性と共に、プレイに使用可能なゲームを広告することができる(たとえば、フットボールゲームがプレイされる場所、日中または夜間にあるゲームをプレイできるかどうか、ユーザのスキルレベルなど)。これらのさまざまな特性を、一緒にゲームをプレイするために異なるオンラインユーザをマッチングさせる基礎として使用することができる。マッチフロントドア520に、1つまたは複数のサーバデバイス(および、任意選択としてロードバランシングデバイス)が含まれ、マッチフロントドア520は、サーバ516およびサーバ518から抽出するフロントドア514に類似する形で、セキュリティゲートウェイ504からマッチサーバ522を抽出するように働く。
【0118】
統計サーバ526は、オンラインゲームのさまざまな統計に関するデータを保持し、処理する。統計サーバ526は、たとえば、図1の統計システム104のサーバデバイスとすることができる。使用される特定の統計は、ゲーム設計者の望みに基づいて変更することができる。統計フロントドア524には、1つまたは複数のサーバデバイス(および、任意選択としてロードバランシングデバイス)が含まれ、統計フロントドア524は、サーバ516およびサーバ518から抽出するフロントドア514に類似する形で、セキュリティゲートウェイ504から統計サーバ526を抽出するように働く。
【0119】
したがって、セキュリティゲートウェイ504が、データセンタ510のセキュアゾーン内のデバイスを、信頼されない公衆網506から遮蔽するように動作する。データセンタ510のセキュアゾーン内の通信は、データセンタ510内のすべてのデバイスが信頼されるので、暗号化する必要がない。しかし、データセンタ510内のデバイスからゲーム機502に通信される情報は、セキュリティゲートウェイクラスタ504を介して渡され、ここで、その情報の目標であるゲーム機502だけによって暗号化解除できる形で暗号化される。
【0120】
図18に、本明細書で説明する技法を実施するのに使用することができる、汎用コンピュータ環境600を示す。コンピュータ環境600は、コンピューティング環境の1つの例にすぎず、コンピュータアーキテクチャおよびネットワークアーキテクチャの使用の範囲または機能性に対する制限を暗示することを意図されたものではない。また、コンピュータ環境600を、例示的なコンピュータ環境600に示されたコンポーネントの任意の1つまたは組合せに関する依存性または要件を有するものと解釈してはならない。
【0121】
コンピュータ環境600には、コンピュータ602の形の汎用コンピューティングデバイスが含まれる。コンピュータ602は、たとえば、図1のシステム104、図17のセキュリティゲートウェイ504、図17のサーバ512、516、518、522、および/または526、あるいは図17のフロントドア514、520、または524の少なくとも一部を実施するサーバデバイスとすることができる。コンピュータ602のコンポーネントには、1つまたは複数のプロセッサまたは処理ユニット604(任意選択として暗号プロセッサまたは暗号コプロセッサを含む)、システムメモリ606、およびプロセッサ604を含むさまざまなシステムコンポーネントをシステムメモリ606に結合するシステムバス608を含めることができるが、これらに制限はされない。
【0122】
システムバス608は、メモリバスまたはメモリコントローラ、周辺バス、accelerated graphics port、およびさまざまなバスアーキテクチャのいずれかを使用するプロセッサバスまたはローカルバスを含む、複数のタイプのバスアーキテクチャのいずれかの1つまたは複数を表す。たとえば、そのようなアーキテクチャに、Industry Standard Architecture(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカルバス、および、メザニンバスとも称するPeripheral Component Interconnects(PCI)バスを含めることができる。
【0123】
コンピュータ602には、通常は、さまざまなコンピュータ可読媒体が含まれる。そのような媒体は、コンピュータ602によってアクセス可能な任意の使用可能な媒体とすることができ、そのような媒体には、揮発性媒体および不揮発性媒体、取外し可能媒体および取外し不能媒体の両方が含まれる。
【0124】
システムメモリ606には、ランダムアクセスメモリ(RAM)610などの揮発性メモリ、および/または読取専用メモリ(ROM)612などの不揮発性メモリの形のコンピュータ可読媒体が含まれる。起動中などにコンピュータ602内の要素の間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム(BIOS)614が、ROM612に保存される。RAM610には、通常は、プロセッサ604から即座にアクセス可能および/または処理ユニット604によって現在操作されるデータおよび/またはプログラムモジュールが含まれる。
【0125】
コンピュータ602には、他の取外し可能/取外し不能、揮発性/不揮発性のコンピュータ記憶媒体も含めることができる。たとえば、図7に、取外し不能不揮発性磁気媒体(図示せず)から読み取り、それに書き込むハードディスクドライブ616、取外し可能不揮発性磁気ディスク620(たとえば「フロッピディスク」)から読み取り、それに書き込む磁気ディスクドライブ618、およびCD−ROM、DVD−ROM、または他の光学媒体などの取外し可能不揮発性光ディスク624から読み取り、および/またはそれに書き込む光ディスクドライブ622が示されている。ハードディスクドライブ616、磁気ディスクドライブ618、および光ディスクドライブ622は、それぞれ、1つまたは複数のデータ媒体インターフェース626’によってシステムバス608に接続される。その代わりに、ハードディスクドライブ616、磁気ディスクドライブ618、および光ディスクドライブ622を、1つまたは複数のインターフェース(図示せず)によってシステムバス608に接続することができる。
【0126】
ディスクドライブおよびそれに関連するコンピュータ可読媒体によって、コンピュータ602の、コンピュータ可読命令、データ構造体、プログラムモジュール、および他のデータの不揮発性ストレージが提供される。この例には、ハードディスク616、取外し可能磁気ディスク620、および取外し可能光ディスク624が示されているが、磁気カセットまたは他の磁気記憶装置、フラッシュメモリカード、CD−ROM、ディジタル多用途ディスク(DVD)または他の光ストレージ、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、電気消去可能プログラマブル読取専用メモリ(EEPROM)、および類似物などの、コンピュータによってアクセス可能なデータを保存できる他のタイプのコンピュータ可読媒体を使用して、例示的なコンピューティングシステムおよび環境を実施することもできることを諒解されたい。
【0127】
たとえばオペレーティングシステム626、1つまたは複数のアプリケーションプログラム628、他のプログラムモジュール630、およびプログラムデータ632を含む、任意の数のプログラムモジュールを、ハードディスク616、磁気ディスク620、光ディスク624、ROM612、および/またはRAM610に保存することができる。そのようなオペレーティングシステム626、1つまたは複数のアプリケーションプログラム628、他のプログラムモジュール630、およびプログラムデータ632のそれぞれ(またはこれらのある組合せ)によって、分散ファイルシステムをサポートする常駐コンポーネントのすべてまたは一部を実施することができる。
【0128】
ユーザは、キーボード634およびポインティングデバイス636(たとえば「マウス」)などの入力装置を介してコンピュータ602にコマンドおよび情報を入力することができる。他の入力装置638(具体的には図示せず)に、マイクロホン、ジョイスティック、ゲームパッド、衛星放送送受信用パラボラアンテナ、シリアルポート、スキャナ、および/または類似物を含めることができる。これらおよび他の入力装置は、システムバス608に結合される入出力インターフェース640を介して処理ユニット604に接続されるが、パラレルポート、ゲームポート、またはuniversal serial bus(USB)などの他のインターフェースおよびバス構造によって接続することもできる。
【0129】
モニタ642または他のタイプの表示装置も、ビデオアダプタ644などのインターフェースを介してシステムバス608に接続することができる。モニタ642に加えて、他の出力周辺装置に、スピーカ(図示せず)およびプリンタ646など、入出力インターフェース640を介してコンピュータ602に接続することができるコンポーネントを含めることができる。
【0130】
コンピュータ602は、リモートコンピューティングデバイス648などの1つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境で動作することができる。たとえば、リモートコンピューティングデバイス648を、パーソナルコンピュータ、ポータブルコンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピアデバイスまたは他の一般的なネットワークノード、ゲーム機、および類似物とすることができる。リモートコンピューティングデバイス648は、コンピュータ602に関して本明細書で説明する要素および特徴の多くまたはすべてを含めることができるポータブルコンピュータとして図示されている。
【0131】
コンピュータ602とリモートコンピュータ648の間の論理接続は、ローカルエリアネットワーク(LAN)650および一般的な広域ネットワーク(WAN)652として図示されている。そのようなネットワーキング環境は、オフィス、会社全体のコンピュータネットワーク、イントラネット、およびインターネットでありふれたものである。
【0132】
LANネットワーキング環境で実施される場合に、コンピュータ602は、ネットワークインターフェースまたはネットワークアダプタ654を介してローカルネットワーク650に接続される。WANネットワーキング環境で実施される場合に、コンピュータ602に、通常は、広域ネットワーク652を介する通信を確立するための、モデム656または他の手段が含まれる。モデム656は、コンピュータ602の内蔵または外付けとすることができるが、入出力インターフェース640または他の適当な機構を介してシステムバス608に接続することができる。図示されたネットワーク接続が、例示的であることと、コンピュータ602および648の間で通信リンクを確立する他の手段を使用できることを諒解されたい。
【0133】
コンピューティング環境600と共に図示されたものなどのネットワーク化された環境では、コンピュータ602に関して図示されたプログラムモジュールまたはその一部を、リモートメモリストレージデバイスに保存することができる。例として、リモートアプリケーションプログラム658が、リモートコンピュータ648の記憶装置に常駐する。例示のために、アプリケーションプログラムおよび、オペレーティングシステムなどの他の実行可能プログラムコンポーネントが、この図では別個のブロックとして図示されているが、そのようなプログラムおよびコンポーネントが、さまざまな時にコンピューティング装置602の異なるストレージコンポーネントに常駐し、コンピュータのデータプロセッサによって実行されることを理解されたい。
【0134】
さまざまなモジュールおよび技法を、プログラムモジュールなど、1つまたは複数のコンピュータまたは他の装置によって実行されるコンピュータ実行可能命令の全般的な文脈で本明細書で説明することができる。一般に、プログラムモジュールには、特定の作業を実行するか特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。通常、プログラムモジュールの機能性は、さまざまな実施形態で望みに応じて組み合わせるか分散させることができる。
【0135】
これらのモジュールおよび技法の実施形態を、なんらかの形のコンピュータ可読媒体に保存するか、それを介して伝送することができる。コンピュータ可読媒体は、コンピュータによってアクセス可能なすべての使用可能な媒体とすることができる。制限ではなく例として、コンピュータ可読媒体に、「コンピュータ記憶媒体」および「通信媒体」を含めることができる。
【0136】
「コンピュータ記憶媒体」には、コンピュータ可読命令、データ構造体、プログラムモジュール、または他のデータなどの情報の記憶のためのあらゆる方法または技術で実施される、揮発性および不揮発性の、取外し可能および取外し不能の媒体が含まれる。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、ディジタル多用途ディスク(DVD)または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、または、所望の情報を保存するのに使用でき、コンピュータによってアクセスすることができる他の媒体が含まれるが、これに制限はされない。
【0137】
「通信媒体」は、通常は、搬送波または他のトランスポート機構など、変調されたデータ信号内でコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを実施する。通信媒体に、情報配送媒体も含まれる。用語「変調されたデータ信号」は、信号内に情報を符号化する形でその特性の1つまたは複数を設定または変更される信号を意味する。制限ではなく例として、通信媒体に、有線ネットワークまたは直接配線接続などの有線媒体と、音響、RF、赤外線、および他の無線媒体などの無線媒体が含まれる。上記の任意の組合せも、コンピュータ可読媒体の範囲に含まれる。
【0138】
図19に、ゲーム機701の機能コンポーネントを詳細に示す。ゲーム機701は、たとえば、図1のゲーム機102とすることができる。ゲーム機701は、中央処理装置(CPU)700およびメモリコントローラ702を有し、メモリコントローラ702は、フラッシュROM(読取専用メモリ)704、RAM(ランダムアクセスメモリ)706、ハードディスクドライブ708、およびポータブルメディアドライブ709を含むさまざまなタイプのメモリへのプロセッサアクセスを容易にする。CPU700は、一時的にデータを保存し、したがってメモリアクセスサイクルの数を減らすレベル1キャッシュ710およびレベル2キャッシュ712を備え、これによって、処理速度およびスループットが改善される。
【0139】
CPU700、メモリコントローラ702、およびさまざまなメモリデバイスは、さまざまなバスアーキテクチャのいずれかを使用する、シリアルバス、パラレルバス、メモリバス、周辺バス、およびプロセッサバスまたはローカルバスを含む1つまたは複数のバスを介して相互接続される。たとえば、そのようなアーキテクチャに、Industry Standard Architecture(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカルバス、および、メザニンバスとも称するPeripheral Component Interconnects(PCI)バスを含めることができる。
【0140】
1つの適切な実施形態として、CPU700、メモリコントローラ702、ROM704、およびRAM706が、共通のモジュール714に集積される。この実施形態では、ROM704が、PCI(Peripheral Component Interconnect)バスおよびROMバス(どちらも図示せず)を介してメモリコントローラ702に接続されるフラッシュROMとして構成される。RAM706は、別のバス(図示せず)を介してメモリコントローラ702によって独立に制御される複数のDDR SDRAM(Double Data Rate Synchronous Dynamic RAM)として構成される。ハードディスクドライブ708およびポータブルメディアドライブ709は、PCIバスおよびATA(AT Attachment)バス716を介してメモリコントローラに接続される。
【0141】
3Dグラフィックス処理ユニット720およびビデオ符号化器722が、高速高解像度グラフィックス処理用のビデオ処理パイプラインを形成する。データは、グラフィックス処理ユニット720からディジタルビデオバス(図示せず)を介してビデオ符号化器722に運ばれる。オーディオ処理ユニット724およびオーディオコーデック(コード化器/復号化器)726が、高忠実度ステレオ処理に関する対応するオーディオ処理パイプラインを形成する。オーディオデータは、オーディオ処理ユニット724とオーディオコーデック726の間で、通信リンク(図示せず)を介して運ばれる。ビデオ処理パイプラインおよびオーディオ処理パイプラインは、テレビジョンまたは他のディスプレイへの伝送のためにA/V(オーディオ/ビデオ)ポート728にデータを出力する。図示の実施形態では、ビデオおよびオーディオの処理コンポーネント720〜728が、モジュール714に取り付けられる。
【0142】
やはりモジュール714上で実施されるのが、USBホストコントローラ730およびネットワークインターフェース732である。USBホストコントローラ730は、バス(たとえばPCIバス)を介してCPU700およびメモリコントローラ702に結合され、周辺コントローラ736(1)〜736(4)のホストとして働く。ネットワークインターフェース732は、ネットワーク(たとえば、インターネット、ホームネットワークなど)へのアクセスを提供し、イーサネット(登録商標)カード、モデム、ブルートゥースモジュール、ケーブルモデム、および類似物を含むさまざまな有線または無線のインターフェースコンポーネントのいずれかとすることができる。
【0143】
ゲーム機701は、2つのデュアルコントローラサポートサブアセンブリ740(1)および740(2)を有し、このサブアセンブリのそれぞれが、2つのゲームコントローラ736(1)〜736(4)をサポートする。前面パネル入出力サブアセンブリ742が、電源ボタン731およびメディアドライブイジェクトボタン733ならびにすべてのLED(発光ダイオード)またはゲーム機の外表面に露出された他のインジケータの機能性をサポートする。サブアセンブリ740(1)、740(2)、および742は、1つまたは複数のケーブルアセンブリ744を介してモジュール714に結合される。
【0144】
8つのメモリユニット734(1)〜734(8)が、4つのコントローラ736(1)〜736(4)に接続可能として、すなわち、コントローラごとに2つのメモリユニットが図示されている。各メモリユニット734は、ゲーム、ゲームパラメータ、および他のデータを保存できる追加ストレージを提供する。コントローラに挿入された場合に、メモリユニット734に、メモリコントローラ702によってアクセスすることができる。
【0145】
システム電源モジュール750が、ゲーム機701のコンポーネントに電力を供給する。ファン752が、ゲーム機701内の回路を冷却する。
【0146】
コンソールユーザインターフェース(UI)アプリケーション760が、ハードディスクドライブ708に保存される。ゲーム機の電源が入れられた場合に、コンソールアプリケーション760のさまざまな部分が、RAM706および/またはキャッシュ710および712にロードされ、CPU700で実行される。コンソールアプリケーション760は、ゲーム機で使用可能な異なるメディアタイプにナビゲートする場合に、一貫したユーザ経験を提供するグラフィカルユーザインターフェースを提示する。
【0147】
ゲーム機701では、暗号化、暗号化解除、認証、ディジタル署名、ハッシュ化、および類似物などの、一般的な暗号機能を実行するために暗号エンジンが実施される。暗号エンジンは、CPU700の一部として実施するか、CPUで実行され、その結果、CPUが暗号機能を実行するように構成されるようになる、ハードディスクドライブ708に保存されたソフトウェアとして実施することができる。その代わりに、暗号機能を実行するように設計された暗号プロセッサまたは暗号コプロセッサを、ゲーム機701に含めることができる。
【0148】
ゲーム機701は、そのシステムを単純にテレビジョンまたは他のディスプレイに接続することによって、独立システムとして作動させることができる。この独立モードでは、ゲーム機701によって、1人または複数のプレーヤが、ゲームをプレイするか、映画を観るか、音楽を聞くことができるようになる。しかし、ネットワークインターフェース732を介して使用可能にされるブロードバンド接続性を統合することによって、ゲーム機701を、さらに、上で述べたようにオンラインゲームの参加者として作動させることができる。
【0149】
本明細書で説明したグループ識別子が、識別子およびそれに符号化されない追加情報であることに留意されたい。たとえば、連続する番号のグループが、連続するレーティング範囲を有するという保証はない(たとえば、グループ2が87〜89の範囲を有し、グループ64が90〜92の範囲を有する場合がある)。その代わりに、グループ識別子を、追加の情報または関係を符号化するか暗示する形で実施することができる。
【0150】
上の説明では、構造的特徴および/または方法論的動作に固有の言語を使用したが、請求項で定義される本発明が、開示された特定の特徴または動作に制限されないことを理解されたい。そうではなく、特定の特徴および動作は、本発明を実施する例示的な形態として開示されたものである。
【図面の簡単な説明】
【図1】統計システムを含む例示的環境のブロック図である。
【図2】例示的レーティングテーブルを示す図である。
【図3】例示的グループテーブルを示す図である。
【図4】レーティングテーブルにエントリを追加し、レーティングテーブルからエントリを削除する例示的処理を示す流れ図である。
【図5】もう1つの例示的レーティングテーブルを示す図である。
【図6】もう1つの例示的グループテーブルを示す図である。
【図7】もう1つの例示的レーティングテーブルを示す図である。
【図8】もう1つの例示的グループテーブルを示す図である。
【図9】グループを分割する例示的処理を示す流れ図である。
【図10】もう1つの例示的レーティングテーブルを示す図である。
【図11】もう1つの例示的グループテーブルを示す図である。
【図12】もう1つの例示的グループテーブルを示す図である。
【図13】例示的メモリツリーを示す図である。
【図14】メモリツリーのユーザカウントを増減する例示的処理を示す流れ図である。
【図15】メモリツリーに基づいてユーザランキングを取り出す例示的処理を示す流れ図である。
【図16】ランキングのウィンドウを取り出す例示的処理を示す流れ図である。
【図17】例示的オンラインゲーム環境のブロック図である。
【図18】本明細書に記載の技法を実施するのに使用することができる一般的なコンピュータ環境を示す図である。
【図19】例示的ゲーム機の機能コンポーネントを詳細に示す図である。
【符号の説明】
100 例示的環境
102(1) クライアントデバイス
102(n) クライアントデバイス
104 統計システム
106 システムメモリ
108 永続ストア
110 レーティングテーブル
112 グループテーブル
114 属性ストア
116 メモリツリー
150 レーティングテーブル
160 グループテーブル

Claims (57)

  1. ゲーム機からユーザのスコアを受信するステップと、
    少なくとも部分的にスコアに基づいて、ユーザの識別子が挿入されるスコアテーブル内の位置を識別するステップと、
    ユーザに複数のグループの1つを割り当てるステップと、
    ユーザが割り当てられたグループに関連するユーザのカウントを修正するステップと、
    ユーザの識別子に、割り当てられたグループ内でのユーザの相対位置を関連付けるステップであって、関連付けは、少なくとも部分的にユーザのスコアに関連する、ステップと、
    ユーザより低いスコアを有し、割り当てられたグループ内のユーザのそれぞれについて、各ユーザに関連する相対位置を修正するステップと
    を含むことを特徴とする方法。
  2. ユーザのカウントを修正するステップは、ユーザのカウントを1つインクリメントするステップを含むことを特徴とする請求項1に記載の方法。
  3. 各ユーザに関連する相対位置を修正するステップは、各ユーザの相対位置を1つインクリメントするステップを含むことを特徴とする請求項1に記載の方法。
  4. スコアテーブルは、スコアが受信される複数のユーザのそれぞれについて、
    ユーザの識別子と、
    ユーザが割り当てられる、複数のグループのうちの1つの識別子と、
    ユーザのスコアと、
    ユーザが割り当てられたグループ内でのユーザの相対位置であって、そこでは相対位置は、ユーザのスコアおよびグループ内の他のユーザのスコアの両方に依存する、相対位置と
    を含むことを特徴とする請求項1に記載の方法。
  5. ユーザのスコアは、ユーザによってプレイされるゲームに関連し、さらに、
    ユーザによってプレイされるゲームに基づいて、複数のスコアテーブルのうちの1つのスコアテーブルでユーザの識別子が挿入されるスコアテーブルを識別するステップ
    を含むことを特徴とする請求項1に記載の方法。
  6. 複数のスコアテーブルを保持するステップであって、各スコアテーブルは、複数のゲームタイトルの異なる1つに関連する、ステップと、
    複数のゲームタイトルのどれがユーザのスコアに関連するかに少なくとも部分的に基づいて、複数のスコアテーブルのどれにユーザの識別子が挿入されるかを識別するステップと
    をさらに含むことを特徴とする請求項1に記載の方法。
  7. 複数のグループのそれぞれは、関連するスコアの範囲を有し、グループに割り当てられる各ユーザは、グループに関連するスコアの範囲内のスコアを有することを特徴とする請求項1に記載の方法。
  8. 複数のグループの1つにユーザを割り当てるステップは、
    単一のグループはユーザのスコアを含む関連するスコアの範囲を有する、または、複数のグループはユーザのスコアを含む関連するスコアの範囲を有するのいずれであるかを判定するステップと、
    単一のグループが存在する場合に、ユーザを単一のグループに割り当てるステップと、
    複数のグループが存在する場合に、複数のグループのうちの1つのグループであり、閾値量より少なく、それに割り当てられたユーザの量を有するグループを識別し、ユーザを当該複数のグループの1つのグループに割り当てるステップと
    を含むことを特徴とする請求項1に記載の方法。
  9. ユーザが割り当てられるグループに関連するツリー構造のノードを識別するステップであって、ツリー構造が、ユーザランキングを生成するのを支援するのに使用される、ステップと、
    ノードに関連するカウントを1つインクリメントするステップと、
    ノードからツリーのルートノードまでのパスに配置されたツリーの各ノードに関連するカウントを1つインクリメントするステップと
    をさらに含むことを特徴とする請求項1に記載の方法。
  10. ツリー構造を永続ストアに保存するステップをさらに含むことを特徴とする請求項9に記載の方法。
  11. ユーザが割り当てられるグループに関連するユーザの量は、閾値量であるかどうかを検査するステップと、
    量は閾値量である場合に、グループを複数のグループに分割し、グループに関連するユーザのそれぞれを複数のグループの1つに割り当てるステップと
    をさらに含むことを特徴とする請求項1に記載の方法。
  12. 複数のグループのそれぞれは、複数のエントリを有するグループテーブルを有し、各エントリは、
    グループの識別子と、
    グループに関連するスコアの範囲と、
    カウントが閾値に等しいかどうかを示す値と
    を含むことを特徴とする請求項1に記載の方法。
  13. 各エントリは、さらに、グループに割り当てられたユーザの数のカウントを含むことを特徴とする請求項12に記載の方法。
  14. ゲーム機からユーザの識別子を受信するステップと、
    レーティングテーブル内で、識別子を含むエントリを識別するステップと、
    複数のレーティンググループのうちでユーザが割り当てられる1つのレーティンググループを識別するステップと、
    ユーザが割り当てられるレーティンググループに関連するユーザのカウントを修正するステップと、
    ユーザが割り当てられるレーティンググループ内の、ユーザより低いレーティングを有する他のユーザのそれぞれについて、各ユーザに関連する相対位置を修正するステップと
    を含むことを特徴とする方法。
  15. ユーザのカウントを修正するステップは、ユーザのカウントを1つデクリメントするステップを含むことを特徴とする請求項14に記載の方法。
  16. 各ユーザに関連する相対位置を修正するステップは、各ユーザに関連する相対位置を1つインクリメントするステップを含むことを特徴とする請求項14に記載の方法。
  17. レーティングテーブルは、レーティングが保存される複数のユーザのそれぞれについて、
    ユーザの識別子と、
    複数のレーティンググループのうちでユーザが割り当てられる1つの識別子と、
    ユーザのレーティングと、
    ユーザが割り当てられるレーティンググループ内でのユーザの相対位置であって、相対位置は、ユーザのレーティングおよびレーティンググループに割り当てられた他のユーザのレーティングの両方に依存する、相対位置と
    を含むことを特徴とする請求項14に記載の方法。
  18. ユーザが割り当てられるレーティンググループに関連するツリー構造のノードを識別するステップであって、ツリー構造が、ユーザランキングを生成するのを支援するのに使用される、ステップと、
    ノードに関連するカウントを1つデクリメントするステップと、
    ノードからツリーのルートノードまでのパスに配置されたツリーの各ノードに関連するカウントを1つデクリメントするステップと
    をさらに含むことを特徴とする請求項14に記載の方法。
  19. 複数の命令をその上に保存した1つまたは複数のコンピュータ可読媒体であって、前記複数の命令は、1つまたは複数のプロセッサによって実行される場合に、1つまたは複数のプロセッサに、
    ゲーム機から、ユーザの識別子およびユーザの新しいレーティングを受信するステップと、
    レーティングテーブル内で、識別子を含むエントリを識別するステップと、
    複数のグループのうちでユーザが前に割り当てられた1つのグループを識別するステップと、
    ユーザが前に割り当てられたグループに関連するユーザのカウントをデクリメントするステップと、
    ユーザが前に割り当てられたグループ内の、ユーザより低いレーティングを有する他のユーザのそれぞれについて、各ユーザに関連する相対位置をインクリメントするステップと、
    少なくとも部分的に新しいレーティングに基づいて、ユーザの識別子が挿入されるレーティングテーブル内の新しい位置を識別するステップと、
    複数のグループの新しいグループにユーザを割り当てるステップと、
    新しいグループに関連するユーザのカウントをインクリメントするステップと、
    ユーザの識別子に、新しいグループ内のユーザの相対位置を関連付けるステップであって、関連付けが、少なくとも部分的にユーザのレーティングに基づく、ステップと、
    ユーザより低いレーティングを有する新しいグループ内の他のユーザのそれぞれについて、各ユーザに関連する相対位置をデクリメントするステップと
    を行わせることを特徴とする1つまたは複数のコンピュータ可読媒体。
  20. レーティングテーブルは、レーティングが保存される複数のユーザのそれぞれについて、
    ユーザの識別子と、
    複数のグループのうちでユーザが割り当てられる1つの識別子と、
    ユーザのレーティングと、
    ユーザが割り当てられるグループ内でのユーザの相対位置であって、ユーザのレーティングおよびグループに割り当てられる他のユーザのレーティングの両方に依存する、相対位置と
    を含むことを特徴とする請求項19に記載の1つまたは複数のコンピュータ可読媒体。
  21. 複数の命令は、さらに、1つまたは複数のプロセッサに、
    新しいグループに関連するツリー構造のノードを識別するステップであって、ツリー構造が、ユーザランキングを生成するのを支援するのに使用される、ステップと、
    ノードに関連するカウントを1つインクリメントするステップと、
    ノードからツリーのルートノードまでのパスに配置されたツリーの各ノードに関連するカウントを1つインクリメントするステップと
    を行わせることを特徴とする請求項19に記載の1つまたは複数のコンピュータ可読媒体。
  22. 複数のグループのそれぞれは、複数のエントリを有するグループテーブルを有し、各エントリは、
    グループの識別子と、
    グループに関連するレーティングの範囲と、
    カウントが閾値に等しいかどうかを示す値と
    を含むことを特徴とする請求項19に記載の1つまたは複数のコンピュータ可読媒体。
  23. 各エントリが、さらに、グループに割り当てられたユーザの数のカウントを含むことを特徴とする請求項22に記載の1つまたは複数のコンピュータ可読媒体。
  24. 複数の命令は、1つまたは複数のプロセッサに、
    ユーザのランキングを取り出す要求を受信するステップであって、ランキングが、ユーザに関連するレーティングを他のユーザに関連する他のレーティングと比較する方法を示す、ステップと、
    ツリーの葉ノードを識別するステップであって、葉ノードが、新しいグループに対応する、ステップと、
    葉ノードからツリーのルートノードまでのツリー内のパスを、パスに沿った選択されたカウントを合計しながら追跡するステップと、
    新しいグループ内のユーザの識別子の相対位置を識別するステップと、
    要求されたランキングとして、相対位置とパスに沿った選択されたカウントの合計との合計を生成するステップと
    を行わせることを特徴とする請求項19に記載の1つまたは複数のコンピュータ可読媒体。
  25. 複数の命令をその上に保存した1つまたは複数のコンピュータ可読媒体であって、前記複数の命令は、1つまたは複数のプロセッサによって実行される場合に、1つまたは複数のプロセッサに、
    ランキングを取り出すためのユーザ識別子を受信するステップであって、ランキングは、識別されたユーザに関連するレーティングを他のユーザに関連する他のレーティングとどのように比較するかを示す、ステップと、
    複数のグループのどれにユーザ識別子が割り当てられるかを識別するステップと、
    ツリーの葉ノードを識別するステップであって、葉ノードは、ユーザ識別子が割り当てられるグループに対応する、ステップと、
    葉ノードからツリーのルートノードまでのツリー内のパスを、パスに沿った選択されたユーザカウントを合計しながら追跡するステップと、
    ユーザ識別子が割り当てられるグループ内のユーザ識別子の相対位置を識別するステップと、
    ランキングとして、相対位置とパスに沿った選択されたユーザカウントの合計との合計を生成するステップと
    を行わせることを特徴とする1つまたは複数のコンピュータ可読媒体。
  26. レーティングは、ゲームスコアを含むことを特徴とする請求項25に記載の1つまたは複数のコンピュータ可読媒体。
  27. レーティングは、異なるゲーム機プラットフォームで同一のゲームタイトルをプレイする異なるユーザからのゲームスコアを含むことを特徴とする請求項25に記載の1つまたは複数のコンピュータ可読媒体。
  28. 1つまたは複数のプロセッサに、パスに沿った選択されたユーザカウントの合計を実行させる命令が、1つまたは複数のプロセッサに、
    初期総カウント値に0をセットするステップと、
    葉ノードのそれぞれおよび葉ノードとルートノードとの間のパスに沿ったすべてのノードについて、
    ノードが左兄弟(sibling)を有するかどうかを検査するステップと、
    左兄弟に関連するカウント値を総カウント値に加算するステップと
    を行わせることを特徴とする請求項25に記載の1つまたは複数のコンピュータ可読媒体。
  29. ツリーは、複数の葉ノードを含み、各葉ノードは、複数のグループの1つに対応し、各葉ノードは、対応するグループに割り当てられたユーザのカウントを識別する関連カウント値を有し、ノードの複数のレベルは、ツリー内で複数の葉ノードとツリーのルートノードとの間に存在し、ノードの複数のレベルの各ノードは、ノードの子のユーザのカウントの合計であるユーザの関連カウントを有することを特徴とする請求項25に記載の1つまたは複数のコンピュータ可読媒体。
  30. ツリーは、バイナリツリーを含むことを特徴とする請求項25に記載の1つまたは複数のコンピュータ可読媒体。
  31. ユーザ識別子は、ランキングを取り出す要求を開始するユーザの友人の識別子であることを特徴とする請求項25に記載の1つまたは複数のコンピュータ可読媒体。
  32. 複数の命令をその上に保存した1つまたは複数のコンピュータ可読媒体であって、前記複数の命令は、ゲーム機の1つまたは複数のプロセッサによって実行される場合に、1つまたは複数のプロセッサに、
    ゲーム機のユーザの複数の友人を識別するステップと、
    複数の友人のそれぞれについて、複数の友人およびユーザがゲームタイトルについて互いに比較してどのようにランキングされるかの指示を取り出すためにサーバにアクセスするステップと、
    ユーザに、複数の友人およびユーザがゲームタイトルについて互いに比較してどれほどよくランキングされるかを表示するステップと
    を行わせることを特徴とする1つまたは複数のコンピュータ可読媒体。
  33. 複数の友人およびゲームタイトルのランクが互いにどのように比較されるかの指示は、統計サーバによって生成されるランキングを含むことを特徴とする請求項32に記載の1つまたは複数のコンピュータ可読媒体。
  34. 複数の友人およびゲームタイトルのランクが互いにどのように比較されるかの指示は、複数の友人およびユーザのそれぞれについて、友人またはユーザに関連するスコアを含むことを特徴とする請求項32に記載の1つまたは複数のコンピュータ可読媒体。
  35. 複数の命令をその上に保存した1つまたは複数のコンピュータ可読媒体であって、前記複数の命令は、1つまたは複数のプロセッサによって実行される場合に、1つまたは複数のプロセッサに、
    取り出すユーザランキングのウィンドウを識別する要求を受信するステップであって、要求は、ウィンドウが配置される場所の基準の指示を含む、ステップと、
    基準の指示に関連するユーザランキングより低い1つまたは複数のユーザラインキングを取り出すステップと、
    基準の指示に関連するユーザランキングより高い1つまたは複数のユーザラインキングを取り出すステップと、
    ユーザランキングのウィンドウの少なくとも一部として、取り出されたランキングを返すステップと
    を行わせることを特徴とする1つまたは複数のコンピュータ可読媒体。
  36. 基準の指示は、ユーザランキングを含むことを特徴とする請求項35に記載の1つまたは複数のコンピュータ可読媒体。
  37. 基準の指示は、ユーザ識別子を含み、命令は、さらに、1つまたは複数のプロセッサに、基準の指示に関連するユーザランキングを取り出し、ユーザランキングのウィンドウの少なくとも一部として、取り出されたユーザランキングを返すステップを行わせることを特徴とする請求項35に記載の1つまたは複数のコンピュータ可読媒体。
  38. 要求は、さらに、ユーザランキングのウィンドウに含めるために基準の指示に関連するユーザランキングより低いユーザランキングの数の指示と、ユーザランキングのウィンドウに含めるために基準の指示に関連するユーザランキングより高いユーザランキングの数の指示とを含むことを特徴とする請求項35に記載の1つまたは複数のコンピュータ可読媒体。
  39. 1つまたは複数のプロセッサに、ユーザランキングを取り出すステップを行わせる命令は、さらに、1つまたは複数のプロセッサに、
    ランキングを取り出すためのユーザ識別子を受信するステップと、
    複数のレーティンググループのどれにユーザ識別子が割り当てられるかを識別するステップと、
    ツリーの葉ノードを識別するステップであって、葉ノードは、ユーザ識別子が割り当てられるレーティンググループに対応する、ステップと、
    葉ノードからツリーのルートノードまでのツリー内のパスを、パスに沿った選択されたユーザカウントを合計しながら追跡するステップと、
    ユーザ識別子が割り当てられるレーティンググループ内のユーザ識別子の相対位置を識別するステップと、
    ランキングとして、相対位置とパスに沿った選択されたユーザカウントの合計との合計を生成するステップと
    を行わせることを特徴とする請求項35に記載の1つまたは複数のコンピュータ可読媒体。
  40. 1つまたは複数のプロセッサに、パスに沿った選択されたユーザカウントを合計させる命令が、1つまたは複数のプロセッサに、
    初期総カウント値に0をセットするステップと、
    葉ノードのそれぞれおよび葉ノードとルートノードとの間のパスに沿ったすべてのノードについて、
    ノードが左兄弟を有するかどうかを検査するステップと、
    左兄弟に関連するカウント値を総カウント値に加算するステップと
    を行わせることを特徴とする請求項39に記載の1つまたは複数のコンピュータ可読媒体。
  41. 複数の命令をその上に保存した1つまたは複数のコンピュータ可読媒体であって、前記複数の命令は、1つまたは複数のプロセッサによって実行される場合に、1つまたは複数のプロセッサに、
    複数のレーティンググループを確立するステップと、
    各ユーザに、ユーザのレーティングに基づいて、複数のレーティンググループの1つを割り当てるステップと、
    割り当てられたグループ内の各ユーザの相対位置を生成するステップであって、ユーザのそれぞれについて、相対位置が、少なくとも部分的にユーザのレーティングおよび同一のグループに割り当てられた他のユーザのレーティングに基づいて生成される、ステップと、
    グループ内のユーザの数が閾値量に達した時に、グループを複数のグループに分割するステップであって、複数のグループのそれぞれが、前にグループに割り当てられた1人または複数のユーザを含む、ステップと、
    ユーザが割り当てられるグループ内の特定のユーザの相対位置と、ユーザに割り当てられるグループより高いランクを有する1つまたは複数のグループのそれぞれのユーザの数との両方に少なくとも部分的に基づいて特定のユーザのランキングを判定するためにデータ構造を使用するステップと
    を行わせることを特徴とする1つまたは複数のコンピュータ可読媒体。
  42. データ構造は、木構造を含むことを特徴とする請求項41に記載の1つまたは複数のコンピュータ可読媒体。
  43. レーティングは、リモートゲーム機のユーザによってプレイされるゲームのスコアを含むことを特徴とする請求項41に記載の1つまたは複数のコンピュータ可読媒体。
  44. ユーザのそれぞれについて、相対位置が、さらに、複数のレーティンググループの他のグループに割り当てられたすべての他のユーザに割り当てられるレーティングと独立に生成されることを特徴とする請求項41に記載の1つまたは複数のコンピュータ可読媒体。
  45. 複数のグループは、2つのグループを含むことを特徴とする請求項41に記載の1つまたは複数のコンピュータ可読媒体。
  46. 複数のグループのそれぞれは、複数のグループの他のグループのそれぞれのユーザの数とほぼ等しいユーザの数を含むことを特徴とする請求項41に記載の1つまたは複数のコンピュータ可読媒体。
  47. 複数のグループの1つは、分割されたグループを含むことを特徴とする請求項41に記載の1つまたは複数のコンピュータ可読媒体。
  48. データ構造は、複数の葉ノードを有する均一な深さのツリーを含み、複数の葉ノードのそれぞれは、複数のレーティンググループの1グループに対応することを特徴とする請求項41に記載の1つまたは複数のコンピュータ可読媒体。
  49. データ構造が、ランダムアクセスメモリ内で保持されることを特徴とする請求項41に記載の1つまたは複数のコンピュータ可読媒体。
  50. 命令は、さらに、1つまたは複数のプロセッサに、複数のエントリを有するレーティングテーブルを保持するステップを行わせ、各エントリは、特定のユーザに関連し、
    特定のユーザの識別子と、
    複数のレーティンググループのうちで特定のユーザが割り当てられる1つの識別子と、
    特定のユーザのレーティングと、
    特定のユーザが割り当てられるレーティンググループ内の特定のユーザの相対位置であって、相対位置は、特定のユーザのレーティングとレーティンググループ内の他のユーザのレーティングとの両方に依存する、相対位置と
    を含むことを特徴とする請求項41に記載の1つまたは複数のコンピュータ可読媒体。
  51. 命令は、さらに、1つまたは複数のプロセッサに、複数のエントリを有するグループテーブルを保持するステップを行わせ、各エントリは、特定のグループに関連し、
    グループの識別子と、
    グループに関連するレーティングの範囲と、
    カウントが閾値と等しいかどうかを示す値と
    を含むことを特徴とする請求項41に記載の1つまたは複数のコンピュータ可読媒体。
  52. 各エントリは、さらに、グループに割り当てられたユーザの数のカウントを含むことを特徴とする請求項51に記載の1つまたは複数のコンピュータ可読媒体。
  53. データ構造は、ツリーを含み、命令は、さらに、1つまたは複数のプロセッサに
    ランキングを取り出すためのユーザ識別子を受信するステップであって、ランキングは、識別されたユーザに関連するレーティングを他のユーザに関連する他のレーティングと比較する方法を示す、ステップと、
    複数のグループのどれにユーザ識別子が割り当てられるかを識別するステップと、
    ツリーの葉ノードを識別するステップであって、葉ノードは、ユーザ識別子が割り当てられるグループに対応する、ステップと、
    葉ノードからツリーのルートノードまでのツリー内のパスを、パスに沿った選択されたユーザカウントを合計しながら追跡するステップと、
    ユーザ識別子が割り当てられるグループ内のユーザ識別子の相対位置を識別するステップと、
    ランキングとして、相対位置とパスに沿った選択されたユーザカウントの合計との合計を生成するステップと
    を行わせることを特徴とする請求項41に記載の1つまたは複数のコンピュータ可読媒体。
  54. 1つまたは複数のプロセッサに、パスに沿った選択されたユーザカウントの合計を実行させる命令は、1つまたは複数のプロセッサに、
    初期総カウント値に0をセットするステップと、
    葉ノードのそれぞれおよび葉ノードとルートノードとの間のパスに沿ったすべてのノードについて、
    ノードが左兄弟を有するかどうかを検査するステップと、
    左兄弟に関連するカウント値を総カウント値に加算するステップと
    を行わせることを特徴とする請求項53に記載の1つまたは複数のコンピュータ可読媒体。
  55. 命令は、さらに、1つまたは複数のプロセッサに、
    取り出すユーザランキングのウィンドウを識別する要求を受信するステップであって、要求は、ウィンドウが配置される場所の基準の指示を含む、ステップと、
    基準の指示に関連するユーザランキングより低い1つまたは複数のユーザラインキングを取り出すステップと、
    基準の指示に関連するユーザランキングより高い1つまたは複数のユーザラインキングを取り出すステップと、
    ユーザランキングのウィンドウの少なくとも一部として、取り出されたランキングを返すステップと
    を行わせることを特徴とする請求項41に記載の1つまたは複数のコンピュータ可読媒体。
  56. ユーザ識別子をバケット識別子に割り当て、さらに、ユーザ識別子に関するレーティングおよびユーザ識別子に関する相対位置の両方を保存するレーティングテーブルを保持するステップであって、相対位置が、ユーザ識別子に関するレーティングおよび同一のバスケットに割り当てられた他のユーザ識別子に関するレーティングに少なくとも部分的に基づく、ステップと、
    複数のバケットのそれぞれについて、バケットに割り当てられたユーザ識別子に関するレーティングの範囲およびバケットに割り当てられたユーザ識別子のカウントを保存するバケットテーブルを保持するステップと
    を行うように構成された永続ストアデバイスと、
    永続ストアデバイスに結合された統計サーバデバイスであって、
    バケットに割り当てられたユーザの数が閾値量に達するかそれを超える場合に、バケットを複数のバケットに分割するステップであって、複数のバケットのそれぞれは、前にバケットに割り当てられた1人または複数のユーザを含む、ステップと、
    ユーザが割り当てられるバケット内の特定のユーザの相対位置と、ユーザが割り当てられるバケットより高いランクを有する1つまたは複数のバケットのそれぞれのユーザの数との両方に少なくとも部分的に基づいて特定のユーザのランキングを判定するためにツリー構造を使用するステップと
    を行うように構成された統計サーバデバイスと
    を含むことを特徴とするシステム。
  57. セキュアでないネットワークを介してゲーム機から要求を受信し、セキュアネットワークを介して要求を他のデバイスに通信するように構成されたゲートウェイデバイスと、
    セキュアネットワークを介してセキュリティゲートウェイから要求を受信し、統計サーバデバイスによって期待されれるフォーマットに要求を変換するように構成されたフロントドアデバイスと、
    ユーザ識別子をバケット識別子に割り当て、さらに、ユーザ識別子に関するレーティングとユーザ識別子に関する相対位置との両方を保存するレーティングテーブルを保持するステップであって、相対位置は、ユーザ識別子に関するレーティングおよび同一のバケットに割り当てられた他のユーザ識別子のレーティングとに少なくとも部分的に基づく、ステップと、
    複数のバケットのそれぞれについて、バケットに割り当てられたユーザ識別子のレーティングの範囲と、バケットに割り当てられたユーザ識別子のカウントとを保存するバケットテーブルを保持するステップと
    を行うように構成された永続ストアデバイスと
    を含み、
    統計サーバデバイスが、
    バケットに割り当てられたユーザの数が閾値量に達する場合に、バケットを複数のバケットに分割するステップであって、複数のバケットのそれぞれが、前にバケットに割り当てられた1人または複数のユーザを含む、ステップと、
    ユーザが割り当てられるバケット内の特定のユーザの相対位置と、ユーザが割り当てられるバケットより高いランクを有する1つまたは複数のバケットのそれぞれのユーザの数との両方に少なくとも部分的に基づいて特定のユーザのランキングを判定するためにツリー構造を使用するステップと
    を行うように構成されることを特徴とするシステム。
JP2003165714A 2002-06-10 2003-06-10 ゲームシステムのランキング決定方法、ゲームシステムの統計システムおよび記録媒体 Expired - Fee Related JP4309180B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/170,001 US20030228908A1 (en) 2002-06-10 2002-06-10 Statistics system for online console-based gaming

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008103953A Division JP2008173518A (ja) 2002-06-10 2008-04-11 ゲームのランキング表示のための命令を記録したコンピュータ可読媒体

Publications (2)

Publication Number Publication Date
JP2004041719A true JP2004041719A (ja) 2004-02-12
JP4309180B2 JP4309180B2 (ja) 2009-08-05

Family

ID=29583821

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2003165714A Expired - Fee Related JP4309180B2 (ja) 2002-06-10 2003-06-10 ゲームシステムのランキング決定方法、ゲームシステムの統計システムおよび記録媒体
JP2008103953A Pending JP2008173518A (ja) 2002-06-10 2008-04-11 ゲームのランキング表示のための命令を記録したコンピュータ可読媒体

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2008103953A Pending JP2008173518A (ja) 2002-06-10 2008-04-11 ゲームのランキング表示のための命令を記録したコンピュータ可読媒体

Country Status (3)

Country Link
US (1) US20030228908A1 (ja)
EP (1) EP1371403A3 (ja)
JP (2) JP4309180B2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008544392A (ja) * 2005-06-22 2008-12-04 エヌエイチエヌ コーポレーション メッセージ状態点検方法及びシステム
JP2009525807A (ja) * 2006-02-10 2009-07-16 マイクロソフト コーポレーション プレイヤの相対的スキルの決定
JP2009195686A (ja) * 2008-01-24 2009-09-03 Copcom Co Ltd ゲーム装置、ゲームシステム、プログラムおよび記憶媒体
JP2013524878A (ja) * 2010-04-07 2013-06-20 アップル インコーポレイテッド プレーヤ特有のオプションおよび統計量を有するゲームセンタを実現するための方法およびシステム
US8583266B2 (en) 2005-01-24 2013-11-12 Microsoft Corporation Seeding in a skill scoring framework
JP5421476B1 (ja) * 2013-02-25 2014-02-19 株式会社gloops ゲームサーバ、ゲーム制御方法、ゲームプログラム、ゲームプログラム記録媒体及びゲームシステム
JP2015066422A (ja) * 2014-03-06 2015-04-13 グリー株式会社 ゲームプログラム、ゲーム処理方法および情報処理装置
JP2015126907A (ja) * 2015-02-27 2015-07-09 グリー株式会社 ゲームプログラム、ゲーム処理方法および情報処理装置

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9246975B2 (en) 2000-03-17 2016-01-26 Facebook, Inc. State change alerts mechanism
US7624172B1 (en) 2000-03-17 2009-11-24 Aol Llc State change alerts mechanism
US20030073471A1 (en) * 2001-10-17 2003-04-17 Advantage Partners Llc Method and system for providing an environment for the delivery of interactive gaming services
US7803052B2 (en) * 2002-06-28 2010-09-28 Microsoft Corporation Discovery and distribution of game session information
US7899862B2 (en) * 2002-11-18 2011-03-01 Aol Inc. Dynamic identification of other users to an online user
US8701014B1 (en) 2002-11-18 2014-04-15 Facebook, Inc. Account linking
US8005919B2 (en) 2002-11-18 2011-08-23 Aol Inc. Host-based intelligent results related to a character stream
CA2506585A1 (en) 2002-11-18 2004-06-03 Valerie Kucharewski People lists
US8122137B2 (en) 2002-11-18 2012-02-21 Aol Inc. Dynamic location of a subordinate user
US7590696B1 (en) 2002-11-18 2009-09-15 Aol Llc Enhanced buddy list using mobile device identifiers
US7640306B2 (en) 2002-11-18 2009-12-29 Aol Llc Reconfiguring an electronic message to effect an enhanced notification
US8965964B1 (en) 2002-11-18 2015-02-24 Facebook, Inc. Managing forwarded electronic messages
US7428580B2 (en) 2003-11-26 2008-09-23 Aol Llc Electronic message forwarding
EA007878B1 (ru) * 2003-01-17 2007-02-27 Арузе Корп. Игровая система и игровой сервер
US7613776B1 (en) 2003-03-26 2009-11-03 Aol Llc Identifying and using identities deemed to be known to a user
CA2423989A1 (en) * 2003-03-28 2004-09-28 Jvl Corporation Game system for handheld personal devices
US7549924B2 (en) * 2003-05-09 2009-06-23 Microsoft Corporation Instant messaging embedded games
US7653693B2 (en) 2003-09-05 2010-01-26 Aol Llc Method and system for capturing instant messages
JP2005118543A (ja) * 2003-09-24 2005-05-12 Sega Corp ランキングデータ生成プログラム
US7392482B2 (en) * 2003-12-18 2008-06-24 International Business Machines Corporation Selection accelerator in topology views
US20060055113A1 (en) * 2004-09-14 2006-03-16 Zone4Play, Inc. Multiplayer card tournaments and methods
JP3751969B1 (ja) * 2004-10-21 2006-03-08 コナミ株式会社 ゲームシステム、ゲームサーバ装置及びその制御方法、並びにゲーム装置及びその制御方法
JP3751968B1 (ja) * 2004-10-21 2006-03-08 コナミ株式会社 ゲームシステム、ゲームサーバ装置及びその制御方法、並びに端末装置及びその制御プログラム
JP3811755B2 (ja) 2004-11-25 2006-08-23 株式会社コナミデジタルエンタテインメント ゲームシステム
US7749084B2 (en) * 2004-12-07 2010-07-06 Microsoft Corporation Tool for real-time graphical exploration of interconnected friends and groups
US7887419B2 (en) 2004-12-07 2011-02-15 Microsoft Corporation Game achievements system
US7621813B2 (en) 2004-12-07 2009-11-24 Microsoft Corporation Ubiquitous unified player tracking system
US20060135230A1 (en) * 2004-12-16 2006-06-22 Dhananjay Godse Post-deployment spot creation
US8037139B1 (en) 2004-12-21 2011-10-11 Aol Inc. Multi-modal participant lists
JP3946735B2 (ja) * 2005-09-05 2007-07-18 株式会社コナミデジタルエンタテインメント サーバ装置およびゲームシステム
JP3946736B2 (ja) * 2005-09-05 2007-07-18 株式会社コナミデジタルエンタテインメント ゲームシステム、サーバ装置、端末装置及びプログラム
US20070173324A1 (en) * 2006-01-20 2007-07-26 Microsoft Corporation Computer-based gaming groups
US20080113805A1 (en) * 2006-11-15 2008-05-15 Microsoft Corporation Console based leaderboard rendering
US20080220846A1 (en) * 2007-03-06 2008-09-11 Aruze Gaming America, Inc. Gaming machine having a function of changing the number of free games according to the result of a role playing game
JP5178126B2 (ja) 2007-10-03 2013-04-10 任天堂株式会社 データ管理装置、データ配信システム、データ管理プログラム、データ管理システムおよびデータ管理方法
JP5442947B2 (ja) * 2007-10-23 2014-03-19 任天堂株式会社 分布図表示プログラム、情報処理装置、情報処理システム、および分布図表示方法
US20120246585A9 (en) * 2008-07-14 2012-09-27 Microsoft Corporation System for editing an avatar
US8446414B2 (en) * 2008-07-14 2013-05-21 Microsoft Corporation Programming APIS for an extensible avatar system
US8384719B2 (en) * 2008-08-01 2013-02-26 Microsoft Corporation Avatar items and animations
US8192283B2 (en) * 2009-03-10 2012-06-05 Bally Gaming, Inc. Networked gaming system including a live floor view module
KR101093962B1 (ko) * 2009-09-30 2011-12-15 엔에이치엔(주) 통계를 이용한 순위 결정 시스템 및 방법
CN102844780A (zh) * 2010-04-23 2012-12-26 日本电气株式会社 信息分发系统
US8751563B1 (en) * 2010-06-30 2014-06-10 Allstate Insurance Company Geotribing
GB2492317A (en) * 2011-06-16 2013-01-02 Sony Comp Entertainment Europe Leaderboard system
US8795052B2 (en) * 2011-07-12 2014-08-05 Steven Khajehnouri Shepherd Strategy game systems and methods
JP2013111281A (ja) * 2011-11-29 2013-06-10 Dna:Kk ゲームシステム
US20130217501A1 (en) * 2012-02-16 2013-08-22 Microsoft Corporation Presenting application challenges outside an application execution context
US8845437B2 (en) * 2012-04-30 2014-09-30 Microsoft Corporation Gaming challenges which use leaderboards that rank challenge participants
JP5485438B1 (ja) * 2013-03-12 2014-05-07 株式会社 ディー・エヌ・エー サーバ装置、方法、および、プログラム
US10032244B2 (en) * 2014-08-21 2018-07-24 Intel Corporation Method and apparatus for implementing a nearest neighbor search on a graphics processing unit (GPU)
FR3061600B1 (fr) * 2017-01-03 2020-06-26 Stmicroelectronics (Grenoble 2) Sas Dispositif electronique comprenant une puce rainuree
US10953322B2 (en) 2018-02-28 2021-03-23 Sony Interactive Entertainment LLC Scaled VR engagement and views in an e-sports event
US10953335B2 (en) 2018-02-28 2021-03-23 Sony Interactive Entertainment Inc. Online tournament integration
US11065548B2 (en) * 2018-02-28 2021-07-20 Sony Interactive Entertainment LLC Statistical driven tournaments
JP7330242B2 (ja) * 2021-09-21 2023-08-21 任天堂株式会社 情報処理システム、情報処理装置、情報処理プログラムおよび情報処理方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US39211A (en) * 1863-07-14 Improved skid for discharging and loading vessels
US5768382A (en) * 1995-11-22 1998-06-16 Walker Asset Management Limited Partnership Remote-auditing of computer generated outcomes and authenticated biling and access control system using cryptographic and other protocols
US5779549A (en) * 1996-04-22 1998-07-14 Walker Assest Management Limited Parnership Database driven online distributed tournament system
JP2001526550A (ja) * 1995-11-22 2001-12-18 ウォーカー・アセット・マネージメント・リミテッド・パートナーシップ 暗号その他のプロトコルを使用するコンピュータにより生成された結果の遠隔的な監査
US6128660A (en) * 1996-03-21 2000-10-03 Hearme Network match maker
TW394702B (en) * 1996-10-09 2000-06-21 Sega Enterprises Kk Player, solution and play implementation and play system
JPH11319312A (ja) * 1998-05-18 1999-11-24 Sega Enterp Ltd 電子遊戯装置
US6599194B1 (en) * 1998-09-08 2003-07-29 Darren Smith Home video game system with hard disk drive and internet access capability
US6409602B1 (en) * 1998-11-06 2002-06-25 New Millenium Gaming Limited Slim terminal gaming system
WO2000029084A1 (en) * 1998-11-17 2000-05-25 Sega Enterprises (Usa), Inc. Tournament game system and method
JP3997455B2 (ja) * 1999-02-16 2007-10-24 株式会社セガ 遊戯装置
US6468160B2 (en) * 1999-04-08 2002-10-22 Nintendo Of America, Inc. Security system for video game system with hard disk drive and internet access capability
US6352479B1 (en) * 1999-08-31 2002-03-05 Nvidia U.S. Investment Company Interactive gaming server and online community forum
US6755743B1 (en) * 1999-12-08 2004-06-29 Kabushiki Kaisha Sega Enterprises Communication game system and processing method thereof
US6697820B1 (en) * 2000-01-14 2004-02-24 Martin B. Tarlie System for and method of golf performance recordation and analysis
JP2001282952A (ja) * 2000-03-30 2001-10-12 Namco Ltd クライアント・コンピュータ、サーバ・コンピュータ、ネットワーク・ランキング・システム、ネットワーク・ランキング方法、課題処理方法および記録媒体
JP2002140524A (ja) * 2000-08-20 2002-05-17 Quants Research Kk 証券情報提供システム及び株式運用ゲームシステム
US6735595B2 (en) * 2000-11-29 2004-05-11 Hewlett-Packard Development Company, L.P. Data structure and storage and retrieval method supporting ordinality based searching and data retrieval

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8583266B2 (en) 2005-01-24 2013-11-12 Microsoft Corporation Seeding in a skill scoring framework
JP2008544392A (ja) * 2005-06-22 2008-12-04 エヌエイチエヌ コーポレーション メッセージ状態点検方法及びシステム
JP4718605B2 (ja) * 2005-06-22 2011-07-06 エヌエイチエヌ コーポレーション メッセージ管理方法及びシステム
JP2009525807A (ja) * 2006-02-10 2009-07-16 マイクロソフト コーポレーション プレイヤの相対的スキルの決定
JP2009195686A (ja) * 2008-01-24 2009-09-03 Copcom Co Ltd ゲーム装置、ゲームシステム、プログラムおよび記憶媒体
JP2013524878A (ja) * 2010-04-07 2013-06-20 アップル インコーポレイテッド プレーヤ特有のオプションおよび統計量を有するゲームセンタを実現するための方法およびシステム
JP2015057102A (ja) * 2010-04-07 2015-03-26 アップル インコーポレイテッド プレーヤ特有のオプションおよび統計量を有するゲームセンタを実現するための方法およびシステム
JP5421476B1 (ja) * 2013-02-25 2014-02-19 株式会社gloops ゲームサーバ、ゲーム制御方法、ゲームプログラム、ゲームプログラム記録媒体及びゲームシステム
JP2014161518A (ja) * 2013-02-25 2014-09-08 Gloops Inc ゲームサーバ、ゲーム制御方法、ゲームプログラム、ゲームプログラム記録媒体及びゲームシステム
US8920228B2 (en) 2013-02-25 2014-12-30 gloops, Inc. Multigame ranking with virtual item rewards
JP2015066422A (ja) * 2014-03-06 2015-04-13 グリー株式会社 ゲームプログラム、ゲーム処理方法および情報処理装置
JP2015126907A (ja) * 2015-02-27 2015-07-09 グリー株式会社 ゲームプログラム、ゲーム処理方法および情報処理装置

Also Published As

Publication number Publication date
JP4309180B2 (ja) 2009-08-05
JP2008173518A (ja) 2008-07-31
EP1371403A3 (en) 2005-03-16
US20030228908A1 (en) 2003-12-11
EP1371403A2 (en) 2003-12-17

Similar Documents

Publication Publication Date Title
JP4309180B2 (ja) ゲームシステムのランキング決定方法、ゲームシステムの統計システムおよび記録媒体
AU2004201602B2 (en) Method and apparatus for associating game data
US7803052B2 (en) Discovery and distribution of game session information
US7288027B2 (en) Cheater detection in a multi-player gaming environment
US8719168B2 (en) Silent sign-in for offline games
JP4708688B2 (ja) コンテンツに対するアクセスを管理する方法及びシステム
US7794315B2 (en) Role play system
US7801952B2 (en) Handling failed client responses to server-side challenges
KR100638071B1 (ko) 다중-사용자 애플리케이션 프로그램 인터페이스
US7640300B2 (en) Presence and notification system for maintaining and communicating information
US8245283B2 (en) Region access authorization in a virtual environment
US20100146128A1 (en) Decentralised multi-user online environment
JP2004334887A (ja) セキュア・データに対するwebアクセス
JP2007075606A (ja) ボタン遭遇システム
US20220407703A1 (en) Tokenized encryption system for preserving anonymity while collecting behavioral data in networked systems
US11973874B1 (en) Systems and methods for token metadata management
US20220207161A1 (en) Distributed Data Storage System Providing Enhanced Security
JP2003076597A (ja) データベース処理システム及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081031

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090202

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: 20090407

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090507

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130515

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130515

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees