(57)【特許請求の範囲】
【請求項１】
複数の情報端末で発生したデータを収集し、前記情報端末からのリクエストに応じて適宜のデータを当該情報端末に送信するデータ管理装置であって、
情報端末においてユーザの操作に応じて実行されたゲーム処理を再現するためのゴーストデータを、当該ゴーストデータに基づくゲームの巧拙を示す指標であるスコアデータとともに情報端末から受信する受信手段と、
スコアデータの値に応じて複数のスコア区分が規定され、スコア区分毎に共通ないし個別にゴーストデータの登録可能上限数が規定されたデータベースの定義に従って、前記受信したゴーストデータを記憶するデータベース処理手段とを備えたデータ管理装置。
【請求項２】
前記データベース処理手段は、
スコアデータの値に応じて複数のスコア区分が規定されたデータベースを記憶するデータベース記憶手段と、
前記受信手段が或る情報端末からゴーストデータを受信したことを受けて、当該ゴーストデータとともに受信したスコアデータに基づいて、当該受信したゴーストデータがいずれのスコア区分に対応するかを判定するスコア区分判定手段と、
前記スコア区分判定手段によって判定されたスコア区分に対応するデータベースに前記ゴーストデータを登録する登録手段と、
前記登録手段によって前記ゴーストデータが登録されるときに、当該ゴーストデータの登録先のスコア区分の登録可能上限数を超えないように、必要に応じて少なくとも１つの登録済みゴーストデータを削除する削除手段と、を含む、請求項１に記載のデータ管理装置。
【請求項３】
ゴーストデータを要求するゴーストデータ配信リクエストを前記情報端末から受信したときに、当該ゴーストデータ配信リクエストに応じた前記データベースのスコア区分に記憶されている少なくとも１つのゴーストデータを当該情報端末に送信する送信手段をさらに備える、請求項１または請求項２に記載のデータ管理装置。
【請求項４】
前記情報端末からのゴーストデータ配信リクエストには、当該情報端末で行われたゲームのスコアデータが含まれており、
前記送信手段は、前記ゴーストデータ配信リクエストに含まれるスコアデータに対応するスコア区分に登録された少なくとも一つのゴーストデータを前記情報端末に送信する、請求項３に記載のデータ管理装置。
【請求項５】
前記情報端末からのゴーストデータ配信リクエストには、当該情報端末で行われたゲームのスコアデータが含まれており、
前記送信手段は、前記ゴーストデータ配信リクエストに含まれるスコアデータに対応するスコア区分の近辺のスコア区分に登録された少なくとも一つのゴーストデータを前記情報端末に送信する、請求項３に記載のデータ管理装置。
【請求項６】
前記ゴーストデータには当該ゴーストデータが生成された地域情報が含まれ、また前記情報端末からのゴーストデータ配信リクエストには、当該情報端末の設置されている地域情報が含まれており、
前記送信手段は、前記ゴーストデータ配信リクエストに含まれる地域情報と一致する地域情報を含むゴーストデータの中で、最良のスコアデータとともに受信したゴーストデータを前記情報端末に送信する、請求項３に記載のデータ管理装置。
【請求項７】
前記ゴーストデータは、ユーザが操作した情報端末に備えるキーを時系列で記憶したキー操作履歴データを含む、請求項１に記載のデータ管理装置。
【請求項８】
前記ゴーストデータは、情報端末に備えるキーをユーザが操作した際にゲーム空間で動作する操作対象の動作データを含む、請求項１に記載のデータ管理装置。
【請求項９】
前記ゲーム処理はユーザにゲームキャラクタを操作させるレースゲームの処理であって、
前記ゴーストデータは、前記レースゲームのクリア時間もしくはコースの走破時間を競うゲームをプレイさせたときのユーザのゲームキャラクタの動きを再現するデータであり、
前記スコアデータは、前記クリア時間もしくは前記走破時間を示す時間情報である、請求項１〜８のいずれかに記載のデータ管理装置。
【請求項１０】
前記削除手段は、前記登録手段によって前記ゴーストデータが登録されるときに、当該ゴーストデータの登録先のスコア区分の登録可能上限数を超えないように、必要に応じて、当該ゴーストデータの登録先のスコア区分のゴーストデータのうち、前記データベースに最も早く登録されたゴーストデータを削除する、請求項２に記載のデータ管理装置。
【請求項１１】
前記削除手段は、前記登録手段によって前記ゴーストデータが登録されるときに、当該ゴーストデータの登録先のスコア区分の登録可能上限数を超えないように、必要に応じて、当該ゴーストデータの登録先のスコア区分のゴーストデータのうち、前記情報端末で最も早く生成されたゴーストデータを削除する、請求項２に記載のデータ管理装置。
【請求項１２】
複数の情報端末で発生したデータをデータ管理装置が収集し、前記情報端末からのリクエストに応じて適宜のデータを当該データ管理装置が当該情報端末に送信するデータ配信システムであって、
前記情報端末は、
当該情報端末においてユーザの操作に応じて実行されたゲーム処理を再現するためのゴーストデータと、当該ゴーストデータに基づくゲームの巧拙を示す指標であるスコアデータとを生成するデータ生成手段と、
前記データ生成手段で生成されたゴーストデータおよび当該ゴーストデータに基づくスコアデータを前記データ管理装置に送信するデータ送信手段と、
ゴーストデータを要求するゴーストデータ配信リクエストを前記データ管理装置に送信するリクエスト送信手段とを備え、
前記データ管理装置は、
複数の情報端末からゴーストデータおよび当該ゴーストデータに基づくスコアデータを受信するデータ受信手段と、
スコアデータの値に応じて複数のスコア区分が規定され、スコア区分毎に共通ないし個別にゴーストデータの登録可能上限数が規定されたデータベースの定義に従って、前記受信したゴーストデータを記憶するデータベース処理手段と、
前記情報端末から前記ゴーストデータ配信リクエストを受信したときに、前記データベース処理手段によって記憶されたゴーストデータの中から、前記ゴーストデータ配信リクエストに応じた前記データベースのスコア区分に記憶されている少なくとも一つのゴーストデータを当該情報端末に送信するデータ送信手段とを備える、データ配信システム。
【請求項１３】
複数の情報端末で発生したデータを収集し、前記情報端末からのリクエストに応じて適宜のデータを当該情報端末に送信するためのデータ管理プログラムであって、情報処理装置のコンピュータを、
情報端末においてユーザの操作に応じて実行されたゲーム処理を再現するためのゴーストデータを、当該ゴーストデータに基づくゲームの巧拙を示す指標であるスコアデータとともに情報端末から受信する受信手段、および、
スコアデータの値に応じて複数のスコア区分が規定され、スコア区分毎に共通ないし個別にゴーストデータの登録可能上限数が規定されたデータベースの定義に従って、前記受信したゴーストデータを記憶するデータベース処理手段として機能させる、データ管理プログラム。
【請求項１４】
複数の情報端末で発生したデータを収集し、前記情報端末からのリクエストに応じて適宜のデータを当該情報端末に送信するデータ管理システムであって、
情報端末においてユーザの操作に応じて実行されたゲーム処理を再現するためのゴーストデータを、当該ゴーストデータに基づくゲームの巧拙を示す指標であるスコアデータとともに情報端末から受信する受信手段と、
スコアデータの値に応じて複数のスコア区分が規定され、スコア区分毎に共通ないし個別にゴーストデータの登録可能上限数が規定されたデータベースの定義に従って、前記受信したゴーストデータを記憶するデータベース処理手段とを備えたデータ管理システム。
【請求項１５】
複数の情報端末で発生したデータを収集し、前記情報端末からのリクエストに応じて適宜のデータを当該情報端末に送信するデータ管理システムにおいて実行されるデータ管理方法であって、
前記データ管理システムの受信手段によって、情報端末においてユーザの操作に応じて実行されたゲーム処理を再現するためのゴーストデータを、当該ゴーストデータに基づくゲームの巧拙を示す指標であるスコアデータとともに情報端末から受信するステップと、
前記データ管理システムのデータベース処理手段によって、スコアデータの値に応じて複数のスコア区分が規定され、スコア区分毎に共通ないし個別にゴーストデータの登録可能上限数が規定されたデータベースの定義に従って、前記受信したゴーストデータを記憶するステップとを備えたデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ管理装置およびデータ配信システム等に関し、より特定的には、過去に行ったゲームの履歴を元にゴーストデータの表示を行う、データ管理装置およびデータ配信システム等に関する。
【背景技術】
【０００２】
特許文献１に記載のレーシングゲームシステムでは、個々のレーシングゲーム機でプレイされたゲームの三次元画像データ（ゴーストデータ）が、通信回線を通じてデータベースサーバへアップロードされ、データベースサーバの大容量記録装置に記録される。或るレーシングゲーム機のプレイヤが、過去の他のプレイヤによりプレイされたレーシングカー（ゴーストカー）との競争を望むとき、このレーシングゲーム機は、通信回線を通じてデータベースサーバにアクセスし、データベースサーバの大容量記録装置に記録された他のプレイヤによる過去のゲームの中から選ばれた一つのゲームのゴーストデータをダウンロードする。このとき、データベースサーバの管理装置により作成されたランキングリストに基づいて、このレーシングゲーム機のプレイヤの自己記録より一つ上もしくは二つか三つ上のランキングのゴーストデータが自動選択される。これにより、プレイヤの技量に見合った技量の過去のプレイヤのゴーストカーを対戦相手とすることができる。
【特許文献１】特開２００３−３２０１６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１に記載されているレーシングゲームシステムでは、個々のレーシングゲーム機からデータベースサーバにアップロードされた全てのゴーストデータを記録するために大容量記録装置が必要であるという問題がある。また、大容量記録装置であっても、その記録容量は有限であるため、データベースサーバにアップロードされるゴーストデータの数には限界がある。また、個々のレーシングゲーム機からデータベースサーバにアップロードされた全てのゴーストデータに基づいてランキングリストを作成するため、ランキングリストの作成に要する処理負荷が大きいという問題がある。
【０００４】
なお、上記の問題を解消するために、個々のレーシングゲーム機からデータベースサーバにアップロードされた全てのゴーストデータを大容量記録装置に記録するのではなく、ランキングリストにおいて所定の順位よりも上位のゴーストデータ（例えば、上位１０００個のゴーストデータ）だけを記録することも考えられる。しかしながら、この場合には、技量の低いプレイヤの場合、プレイヤの技量に見合った技量の過去のプレイヤのゴーストデータがデータベースサーバの大容量記録装置に記録されていないため、プレイヤの技量に見合った技量の過去のプレイヤのゴーストカーを対戦相手とすることはできない。
【０００５】
それゆえに本発明は、サーバに記録されるデータの容量を想定した範囲内に制限でき、なおかつ全てのプレイヤが自分の技量に応じたゴーストデータを取得することができるようなシステム等を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号、図番号および補足説明は、図面との対応関係の一例を示したものであって、本発明の範囲を何ら限定するものではない。
【０００７】
本発明のデータ管理装置（８）は、複数の情報端末（３）で発生したデータを収集し、前記情報端末からのリクエストに応じて適宜のデータを当該情報端末に送信するデータ管理装置であって、受信手段（８１、８４、Ｓ３０）と、データベース処理手段（８１、８３、Ｓ３４）とを備える。受信手段は、情報端末においてユーザの操作に応じて実行されたゲーム処理を再現するためのゴーストデータ（図１２）を、当該ゴーストデータに基づくゲームの巧拙を示す指標であるスコアデータ（走破タイム）とともに情報端末から受信する。データベース処理手段は、スコアデータの値に応じて複数のスコア区分が規定され、スコア区分毎に共通ないし個別にゴーストデータの登録可能上限数が規定されたデータベースの定義（図１４）に従って、前記受信したゴーストデータを記憶する。
【０００８】
前記データベース処理手段は、データベース記憶手段（８３）と、スコア区分判定手段（８１、Ｓ３１）と、登録手段（８１、Ｓ３４）と、削除手段（８１、Ｓ３３）とを含んでいてもよい。データベース記憶手段は、スコアデータの値に応じて複数のスコア区分が規定されたデータベースを記憶する。は、前記受信手段が或る情報端末からゴーストデータを受信したことを受けて、当該ゴーストデータとともに受信したスコアデータに基づいて、当該受信したゴーストデータがいずれのスコア区分に対応するかを判定する。登録手段は、前記スコア区分判定手段によって判定されたスコア区分に対応するデータベースに前記ゴーストデータを登録する。削除手段は、前記登録手段によって前記ゴーストデータが登録されるときに、当該ゴーストデータの登録先のスコア区分の登録可能上限数を超えないように、必要に応じて少なくとも１つの登録済みゴーストデータを削除する。なお、削除手段は、登録手段によって新たなゴーストデータが登録された後に、必要に応じて登録済みゴーストデータを削除するようにしてもよいし、登録手段によって新たなゴーストデータが登録される前に、必要に応じて登録済みゴーストデータを削除するようにしてもよい。前者の場合は、登録済みゴーストデータの数が登録可能上限数を一時的に超えることになり、後者の場合は、登録済みゴーストデータの数が登録可能上限数を超えることは一切無い。
【０００９】
また、前記データ管理装置は、ゴーストデータを要求するゴーストデータ配信リクエストを前記情報端末から受信したときに、当該ゴーストデータ配信リクエストに応じた前記データベースのスコア区分に記憶されている少なくとも１つのゴーストデータを当該情報端末に送信する送信手段（８１、８４、Ｓ３９）をさらに備えていてもよい。
【００１０】
また、前記情報端末からのゴーストデータ配信リクエストには、当該情報端末で行われたゲームのスコアデータが含まれており、前記送信手段は、前記ゴーストデータ配信リクエストに含まれるスコアデータに対応するスコア区分に登録された少なくとも一つのゴーストデータを前記情報端末に送信してもよい。
【００１１】
また、前記情報端末からのゴーストデータ配信リクエストには、当該情報端末で行われたゲームのスコアデータが含まれており、前記送信手段は、前記ゴーストデータ配信リクエストに含まれるスコアデータに対応するスコア区分の近辺のスコア区分に登録された少なくとも一つのゴーストデータを前記情報端末に送信してもよい。
【００１２】
また、前記ゴーストデータには当該ゴーストデータが生成された地域情報が含まれ、また前記情報端末からのゴーストデータ配信リクエストには、当該情報端末の設置されている地域情報が含まれており、前記送信手段は、前記ゴーストデータ配信リクエストに含まれる地域情報と一致する地域情報を含むゴーストデータの中で、最良のスコアデータとともに受信したゴーストデータを前記情報端末に送信してもよい。
【００１３】
また、前記ゴーストデータは、ユーザが操作した情報端末に備えるキーを時系列で記憶したキー操作履歴データ（図１３）を含んでいてもよい。
【００１４】
また、前記ゴーストデータは、情報端末に備えるキーをユーザが操作した際にゲーム空間で動作する操作対象（Ｏｐ）の動作データを含んでいてもよい。
【００１５】
また、前記ゲーム処理はユーザにゲームキャラクタを操作させるレースゲームの処理であって、前記ゴーストデータは、前記レースゲームのクリア時間もしくはコースの走破時間を競うゲームをプレイさせたときのユーザのゲームキャラクタ（Ｏｐ）の動きを再現するデータであり、前記スコアデータは、前記クリア時間もしくは前記走破時間を示す時間情報であってもよい。
【００１６】
また、前記削除手段は、前記登録手段によって前記ゴーストデータが登録されるときに、当該ゴーストデータの登録先のスコア区分の登録可能上限数を超えないように、必要に応じて、当該ゴーストデータの登録先のスコア区分のゴーストデータのうち、前記データベースに最も早く登録されたゴーストデータを削除してもよい。
【００１７】
また、前記削除手段は、前記登録手段によって前記ゴーストデータが登録されるときに、当該ゴーストデータの登録先のスコア区分の登録可能上限数を超えないように、必要に応じて、当該ゴーストデータの登録先のスコア区分のゴーストデータのうち、前記情報端末で最も早く生成されたゴーストデータを削除してもよい。
【００１８】
本発明のデータ配信システムは、複数の情報端末（３）で発生したデータをデータ管理装置（８）が収集し、前記情報端末からのリクエストに応じて適宜のデータを当該データ管理装置が当該情報端末に送信するデータ配信システムである。前記情報端末は、データ生成手段（１０、Ｓ１１）と、データ送信手段（１０、Ｓ１４）と、リクエスト送信手段（１０、１８、Ｓ１７）とを備える。データ生成手段は、当該情報端末においてユーザの操作に応じて実行されたゲーム処理を再現するためのゴーストデータ（図１２）と、当該ゴーストデータに基づくゲームの巧拙を示す指標であるスコアデータとを生成する。データ送信手段は、前記データ生成手段で生成されたゴーストデータおよび当該ゴーストデータに基づくスコアデータを前記データ管理装置に送信する。リクエスト送信手段は、ゴーストデータを要求するゴーストデータ配信リクエストを前記データ管理装置に送信する。前記データ管理装置は、データ受信手段（８１、８４、Ｓ３０）と、データベース処理手段（８１、８３、Ｓ３４）と、データ送信手段（８１、８４、Ｓ３９）とを備える。データ受信手段は、複数の情報端末からゴーストデータおよび当該ゴーストデータに基づくスコアデータ（走破タイム）を受信する。データベース処理手段は、スコアデータの値に応じて複数のスコア区分が規定され、スコア区分毎に共通ないし個別にゴーストデータの登録可能上限数が規定されたデータベースの定義（図１４）に従って、前記受信したゴーストデータを記憶する。データ送信手段は、前記情報端末から前記ゴーストデータ配信リクエストを受信したときに、前記データベース処理手段によって記憶されたゴーストデータの中から、前記ゴーストデータ配信リクエストに応じた前記データベースのスコア区分に記憶されている少なくとも一つのゴーストデータを当該情報端末に送信する。
【発明の効果】
【００１９】
本発明によれば、サーバに記録されるゴーストデータの総容量を予め決めた範囲内に制限でき、なおかつ全てのプレイヤが自分の技量に応じたゴーストデータを取得することができる。
【発明を実施するための最良の形態】
【００２０】
（ゲームシステムの全体構成）
図１を参照して、本発明の一実施形態に係るゲーム装置を含むゲームシステム１について説明する。図１は、ゲームシステム１の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置およびゲームプログラムについて説明する。図１において、ゲームシステム１は、テレビジョン受像器（以下、単に「テレビ」と記載する）２、ゲーム装置３、光ディスク４、マーカ部６、およびコントローラ７を含む。本システムは、コントローラ７を用いたゲーム操作に基づいてゲーム装置３でゲーム処理を実行するものである。
【００２１】
ゲーム装置３には、当該ゲーム装置３に対して交換可能に用いられる情報記憶媒体の一例である光ディスク４が脱着可能に挿入される。光ディスク４には、ゲーム装置３において実行されるためのゲームプログラムが記憶されている。ゲーム装置３の前面には光ディスク４の挿入口が設けられている。ゲーム装置３は、挿入口に挿入された光ディスク４に記憶されたゲームプログラムを読み出して実行することによってゲーム処理を実行する。
【００２２】
ゲーム装置３には、表示装置の一例であるテレビ２が接続コードを介して接続される。テレビ２は、ゲーム装置３において実行されるゲーム処理の結果得られるゲーム画像を表示する。また、テレビ２の画面の周辺（図１では画面の上側）には、マーカ部６が設置される。マーカ部６は、その両端に２つのマーカ６Ｒおよび６Ｌを備えている。マーカ６Ｒ（マーカ６Ｌも同様）は、具体的には１以上の赤外ＬＥＤであり、テレビ２の前方に向かって赤外光を出力する。マーカ部６はゲーム装置３に接続されており、ゲーム装置３はマーカ部６が備える各赤外ＬＥＤの点灯を制御することが可能である。
【００２３】
コントローラ７は、自機に対して行われた操作の内容を示す操作データをゲーム装置３に与える入力装置である。コントローラ７とゲーム装置３とは無線通信によって接続される。本実施形態では、コントローラ７とゲーム装置３との間の無線通信には例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）の技術が用いられる。なお、他の実施形態においてはコントローラ７とゲーム装置３とは有線で接続されてもよい。
【００２４】
（ゲーム装置３の内部構成）
次に、図２を参照して、ゲーム装置３の内部構成について説明する。図２は、ゲーム装置３の構成を示すブロック図である。ゲーム装置３は、ＣＰＵ１０、システムＬＳＩ１１、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４、およびＡＶ−ＩＣ１５等を有する。
【００２５】
ＣＰＵ１０は、光ディスク４に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。ＣＰＵ１０は、システムＬＳＩ１１に接続される。システムＬＳＩ１１には、ＣＰＵ１０の他、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４およびＡＶ−ＩＣ１５が接続される。システムＬＳＩ１１は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムＬＳＩの内部構成について後述する。揮発性の外部メインメモリ１２は、光ディスク４から読み出されたゲームプログラムや、フラッシュメモリ１７から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、ＣＰＵ１０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ１３は、ゲーム装置３の起動用のプログラムが組み込まれるＲＯＭ（いわゆるブートＲＯＭ）と、時間をカウントするクロック回路（ＲＴＣ：Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）とを有する。ディスクドライブ１４は、光ディスク４からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ１１ｅまたは外部メインメモリ１２に読み出したデータを書き込む。
【００２６】
また、システムＬＳＩ１１には、入出力プロセッサ（Ｉ／Ｏプロセッサ）１１ａ、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）１１ｂ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）１１ｃ、ＶＲＡＭ１１ｄ、および内部メインメモリ１１ｅが設けられる。図示は省略するが、これらの構成要素１１ａ〜１１ｅは内部バスによって互いに接続される。
【００２７】
ＧＰＵ１１ｂは、描画手段の一部を形成し、ＣＰＵ１０からのグラフィクスコマンド（作画命令）に従って画像を生成する。ＶＲＡＭ１１ｄは、ＧＰＵ１１ｂがグラフィクスコマンドを実行するために必要なデータ（ポリゴンデータやテクスチャデータ等のデータ）を記憶する。画像が生成される際には、ＧＰＵ１１ｂは、ＶＲＡＭ１１ｄに記憶されたデータを用いて画像データを作成する。
【００２８】
ＤＳＰ１１ｃは、オーディオプロセッサとして機能し、内部メインメモリ１１ｅや外部メインメモリ１２に記憶されるサウンドデータや音波形（音色）データを用いて、音声データを生成する。
【００２９】
上述のように生成された画像データおよび音声データは、ＡＶ−ＩＣ１５によって読み出される。ＡＶ−ＩＣ１５は、読み出した画像データをＡＶコネクタ１６を介してテレビ２に出力するとともに、読み出した音声データを、テレビ２に内蔵されるスピーカ２ａに出力する。これによって、画像がテレビ２に表示されるとともに音がスピーカ２ａから出力される。
【００３０】
入出力プロセッサ１１ａは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ１１ａは、フラッシュメモリ１７、無線通信モジュール１８、無線コントローラモジュール１９、拡張コネクタ２０、および外部メモリカード用コネクタ２１に接続される。無線通信モジュール１８にはアンテナ２２が接続され、無線コントローラモジュール１９にはアンテナ２３が接続される。
【００３１】
入出力プロセッサ１１ａは、無線通信モジュール１８およびアンテナ２２を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ１１ａは、定期的にフラッシュメモリ１７にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール１８およびアンテナ２２を介してネットワークに送信する。また、入出力プロセッサ１１ａは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ２２および無線通信モジュール１８を介して受信し、受信したデータをフラッシュメモリ１７に記憶する。ＣＰＵ１０はゲームプログラムを実行することにより、フラッシュメモリ１７に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ１７には、ゲーム装置３と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置３を利用してプレイしたゲームのセーブデータ（ゲームの結果データまたは途中データ）が記憶されてもよい。
【００３２】
また、入出力プロセッサ１１ａは、コントローラ７から送信される操作データをアンテナ２３および無線コントローラモジュール１９を介して受信し、内部メインメモリ１１ｅまたは外部メインメモリ１２のバッファ領域に記憶（一時記憶）する。
【００３３】
さらに、入出力プロセッサ１１ａには、拡張コネクタ２０および外部メモリカード用コネクタ２１が接続される。拡張コネクタ２０は、ＵＳＢやＳＣＳＩのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール１８に替えてネットワークとの通信を行ったりすることができる。外部メモリカード用コネクタ２１は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ１１ａは、拡張コネクタ２０や外部メモリカード用コネクタ２１を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【００３４】
ゲーム装置３には、電源ボタン２４、リセットボタン２５、およびイジェクトボタン２６が設けられる。電源ボタン２４およびリセットボタン２５は、システムＬＳＩ１１に接続される。電源ボタン２４がオンにされると、ゲーム装置３の各構成要素に対して、図示しないＡＣアダプタを経て電源が供給される。また、一旦電源がオンにされた状態で、再度電源ボタン２４を押すと、低電力スタンバイモードへの移行が行われる。この状態でも、ゲーム装置３への通電は行われているため、インターネット等のネットワークに常時接続しておくことができる。なお、一旦電源がオンにされた状態で、電源をオフにしたいときは、電源ボタン２４を所定時間以上長押しすることで、電源をオフとすることが可能である。リセットボタン２５が押されると、システムＬＳＩ１１は、ゲーム装置３の起動プログラムを再起動する。イジェクトボタン２６は、ディスクドライブ１４に接続される。イジェクトボタン２６が押されると、ディスクドライブ１４から光ディスク４が排出される。
【００３５】
ここで、本実施形態にかかるゲーム装置３が行う通信の種類について説明する。当該通信の種類は、大きく分けて２種類ある。１つめは、上述の低電力スタンバイモード中においても通信を行い得る、常時接続型のネットワークを利用した通信（以下、常時接続利用型通信と呼ぶ）である。もう１つは、例えば、通信対戦ゲーム等のアプリケーションプログラムに依存し、必要に応じて、その都度接続、通信制御が行われる通信である（以下、随時接続型通信と呼ぶ）。常時接続利用型通信においては、後述するようなゲームプログラム等の各種プログラムに関わらず、上述のように入出力プロセッサ１１ａが独立して上記フラッシュメモリ１７に書き込まれた送信データを送信し、また、受信したデータを当該フラッシュメモリ１７に書き込む。そのため、常時接続利用型通信を利用するアプリケーション（例えばメールアプリケーション等）は、送信したいデータをフラッシュメモリ１７に書込み、受信データをフラッシュメモリ１７から読み出すだけでよい。また、常時接続利用型通信を利用すれば、上記低電力スタンバイモード中であっても、定期的に通信を行うことができ、更に、所定のゲームプログラムが実行中であっても、そのバックグラウンドのプロセスとして通信を行うことが可能である。
【００３６】
図３および図４を参照して、コントローラ７について説明する。なお、図３は、コントローラ７の上面後方から見た斜視図である。図４は、コントローラ７を下面前方から見た斜視図である。
【００３７】
図３および図４において、コントローラ７は、例えばプラスチック成型によって形成されたハウジング７１を有しており、当該ハウジング７１に複数の操作部７２が設けられている。ハウジング７１は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
【００３８】
ハウジング７１上面の中央前面側に、十字キー７２ａが設けられる。この十字キー７２ａは、十字型の４方向プッシュスイッチであり、４つの方向（前後左右）に対応する操作部分が十字の突出片にそれぞれ９０°間隔で配置される。プレイヤが十字キー７２ａのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばプレイヤが十字キー７２ａを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、複数の選択肢から選択指示したりすることができる。
【００３９】
なお、十字キー７２ａは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、十字方向に４つのプッシュスイッチを配設し、プレイヤによって押下されたプッシュスイッチに応じて操作信号を出力する操作部を設けてもかまわない。さらに、上記４つのプッシュスイッチとは別に、上記十字方向が交わる位置にセンタスイッチを配設し、４つのプッシュスイッチとセンタスイッチとを複合した操作部を設けてもかまわない。また、ハウジング７１上面から突出した傾倒可能なスティック（いわゆる、ジョイスティック）を倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー７２ａの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー７２ａの代わりに設けてもかまわない。また、タッチパッドを、上記十字キー７２ａの代わりに設けてもかまわない。
【００４０】
ハウジング７１上面の十字キー７２ａより後面側に、複数の操作ボタン７２ｂ〜７２ｇが設けられる。操作ボタン７２ｂ〜７２ｇは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン７２ｂ〜７２ｇに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン７２ｂ〜７２ｄには、１番ボタン、２番ボタン、およびＡボタン等としての機能が割り当てられる。また、操作ボタン７２ｅ〜７２ｇには、マイナスボタン、ホームボタン、およびプラスボタン等としての機能が割り当てられる。これら操作ボタン７２ａ〜７２ｇは、ゲーム装置３が実行するゲームプログラムに応じてそれぞれの操作機能が割り当てられる。なお、図３に示した配置例では、操作ボタン７２ｂ〜７２ｄは、ハウジング７１上面の中央前後方向に沿って並設されている。また、操作ボタン７２ｅ〜７２ｇは、ハウジング７１上面の左右方向に沿って操作ボタン７２ｂおよび７２ｄの間に並設されている。そして、操作ボタン７２ｆは、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【００４１】
また、ハウジング７１上面の十字キー７２ａより前面側に、操作ボタン７２ｈが設けられる。操作ボタン７２ｈは、遠隔からゲーム装置３の電源をオン／オフする電源スイッチである。この操作ボタン７２ｈも、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【００４２】
また、ハウジング７１上面の操作ボタン７２ｃより後面側に、複数のＬＥＤ７０２が設けられる。ここで、コントローラ７は、他のコントローラ７と区別するためにコントローラ種別（番号）が設けられている。例えば、ＬＥＤ７０２は、コントローラ７に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ７から無線通信モジュール１８へ送信データを送信する際、上記コントローラ種別に応じて複数のＬＥＤ７０２のうち、種別に対応するＬＥＤが点灯する。
【００４３】
また、ハウジング７１上面には、操作ボタン７２ｂおよび操作ボタン７２ｅ〜７２ｇの間に後述するスピーカ（図５のスピーカ７０６）からの音を外部に放出するための音抜き孔が形成されている。
【００４４】
一方、ハウジング７１下面には、凹部が形成されている。ハウジング７１下面の凹部は、プレイヤがコントローラ７の前面をマーカ６Ｌおよび６Ｒに向けて片手で把持したときに、当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の後面側傾斜面には、操作ボタン７２ｉが設けられる。操作ボタン７２ｉは、例えばＢボタンとして機能する操作部である。
【００４５】
また、ハウジング７１前面には、撮像情報演算部７４の一部を構成する撮像素子７４３が設けられる。ここで、撮像情報演算部７４は、コントローラ７が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大２００フレーム／秒程度のサンプリング周期であるため比較的高速なコントローラ７の動きでも追跡して解析することができる。この撮像情報演算部７４の詳細な構成については、後述する。また、ハウジング７１の後面には、コネクタ７３が設けられている。コネクタ７３は、例えばエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。
【００４６】
ここで、以下の説明を具体的にするために、コントローラ７に対して設定する座標系について定義する。図３および図４に示すように、互いに直交するＸＹＺ軸をコントローラ７に対して定義する。具体的には、コントローラ７の前後方向となるハウジング７１の長手方向をＺ軸とし、コントローラ７の前面（撮像情報演算部７４が設けられている面）方向をＺ軸正方向とする。また、コントローラ７の上下方向をＹ軸とし、ハウジング７１の下面（操作ボタン７２ｉが設けられた面）方向をＹ軸正方向とする。さらに、コントローラ７の左右方向をＸ軸とし、ハウジング７１の左側面（図３では表されずに図４で表されている側面）方向をＸ軸正方向とする。
【００４７】
次に、図５および図６を参照して、コントローラ７の内部構造について説明する。なお、図５は、コントローラ７の上筐体（ハウジング７１の一部）を外した状態を後面側から見た斜視図である。図６は、コントローラ７の下筐体（ハウジング７１の一部）を外した状態を前面側から見た斜視図である。ここで、図６に示す基板７００は、図５に示す基板７００の裏面から見た斜視図となっている。
【００４８】
図５において、ハウジング７１の内部には基板７００が固設されており、当該基板７００の上主面上に操作ボタン７２ａ〜７２ｈ、加速度センサ７０１、ＬＥＤ７０２、およびアンテナ７５４等が設けられる。そして、これらは、基板７００等に形成された配線（図示せず）によってマイコン７５１等（図６、図７参照）に接続される。また、無線モジュール７５３（図７参照）およびアンテナ７５４によって、コントローラ７がワイヤレスコントローラとして機能する。なお、ハウジング７１内部には図示しない水晶振動子７０３が設けられており、後述するマイコン７５１の基本クロックを生成する。また、基板７００の上主面上に、スピーカ７０６およびアンプ７０８が設けられる。また、加速度センサ７０１は、操作ボタン７２ｄの左側の基板７００上（つまり、基板７００の中央部ではなく周辺部）に設けられる。したがって、加速度センサ７０１は、コントローラ７の長手方向を軸とした回転に応じて、重力加速度の方向変化に加え、遠心力による成分の含まれる加速度を検出することができるので、所定の演算により、検出される加速度データからコントローラ７の回転を良好な感度でゲーム装置３等が判定することができる。
【００４９】
一方、図６において、基板７００の下主面上の前端縁に撮像情報演算部７４が設けられる。撮像情報演算部７４は、コントローラ７の前方から順に赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４によって構成されており、それぞれ基板７００の下主面に取り付けられる。また、基板７００の下主面上の後端縁にコネクタ７３が取り付けられる。さらに、基板７００の下主面上にサウンドＩＣ７０７およびマイコン７５１が設けられている。サウンドＩＣ７０７は、基板７００等に形成された配線によってマイコン７５１およびアンプ７０８と接続され、ゲーム装置３から送信されたサウンドデータに応じてアンプ７０８を介してスピーカ７０６に音声信号を出力する。
【００５０】
そして、基板７００の下主面上には、バイブレータ７０４が取り付けられる。バイブレータ７０４は、例えば振動モータやソレノイドである。バイブレータ７０４は、基板７００等に形成された配線によってマイコン７５１と接続され、ゲーム装置３から送信された振動データに応じてその作動をオン／オフする。バイブレータ７０４が作動することによってコントローラ７に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。ここで、バイブレータ７０４は、ハウジング７１のやや前方寄りに配置されるため、プレイヤが把持している状態において、ハウジング７１が大きく振動することになり、振動を感じやすくなる。
【００５１】
次に、図７を参照して、コントローラ７の内部構成について説明する。なお、図７は、コントローラ７の構成を示すブロック図である。
【００５２】
図７において、コントローラ７は、上述した操作部７２、撮像情報演算部７４、加速度センサ７０１、バイブレータ７０４、スピーカ７０６、サウンドＩＣ７０７、およびアンプ７０８の他に、その内部に通信部７５を備えている。
【００５３】
撮像情報演算部７４は、赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４を含んでいる。赤外線フィルタ７４１は、コントローラ７の前方から入射する光から赤外線のみを通過させる。レンズ７４２は、赤外線フィルタ７４１を透過した赤外線を集光して撮像素子７４３へ出射する。撮像素子７４３は、例えばＣＭＯＳセンサやあるいはＣＣＤのような固体撮像素子であり、レンズ７４２が集光した赤外線を撮像する。したがって、撮像素子７４３は、赤外線フィルタ７４１を通過した赤外線だけを撮像して画像データを生成する。撮像素子７４３で生成された画像データは、画像処理回路７４４で処理される。具体的には、画像処理回路７４４は、撮像素子７４３から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部７５へ出力する。なお、これらの撮像情報演算部７４は、コントローラ７のハウジング７１に固設されており、ハウジング７１自体の方向を変えることによってその撮像方向を変更することができる。
【００５４】
コントローラ７は、３軸（Ｘ、Ｙ、Ｚ軸）の加速度センサ７０１を備えていることが好ましい。この３軸の加速度センサ７０１は、３方向、すなわち、上下方向（図３に示すＹ軸）、左右方向（図３に示すＸ軸）、および前後方向（図３に示すＺ軸）で直線加速度を検知する。
【００５５】
通信部７５は、マイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）７５１、メモリ７５２、無線モジュール７５３、およびアンテナ７５４を含んでいる。マイコン７５１は、処理の際にメモリ７５２を記憶領域として用いながら、送信データを無線送信する無線モジュール７５３を制御する。また、マイコン７５１は、アンテナ７５４を介して無線モジュール７５３が受信したゲーム装置３からのデータに応じて、サウンドＩＣ７０７およびバイブレータ７０４の動作を制御する。サウンドＩＣ７０７は、通信部７５を介してゲーム装置３から送信されたサウンドデータ等を処理する。また、マイコン７５１は、通信部７５を介してゲーム装置３から送信された振動データ（例えば、バイブレータ７０４をＯＮまたはＯＦＦする信号）等に応じて、バイブレータ７０４を作動させる。
【００５６】
コントローラ７に設けられた操作部７２からの操作信号（キーデータ）、加速度センサ７０１からの３軸方向の加速度信号（Ｘ、Ｙ、およびＺ軸方向加速度データ）、および撮像情報演算部７４からの処理結果データは、マイコン７５１に出力される。マイコン７５１は、入力した各データ（キーデータ、Ｘ、Ｙ、およびＺ軸方向加速度データ、処理結果データ）を無線通信モジュール１８へ送信する送信データとして一時的にメモリ７５２に格納する。ここで、通信部７５から無線通信モジュール１８への無線送信は、所定の周期毎に行われるが、ゲームの処理は１／６０秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は１６．７ｍｓ（１／６０秒）であり、ブルートゥース（登録商標）で構成される通信部７５の送信間隔は５ｍｓである。マイコン７５１は、無線通信モジュール１８への送信タイミングが到来すると、メモリ７５２に格納されている送信データを一連の操作情報として出力し、無線モジュール７５３へ出力する。そして、無線モジュール７５３は、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）の技術を用いて、所定周波数の搬送波を用いて操作情報をその電波信号としてアンテナ７５４から放射する。つまり、コントローラ７に設けられた操作部７２からのキーデータ、加速度センサ７０１からのＸ、Ｙ、およびＺ軸方向加速度データ、および撮像情報演算部７４からの処理結果データがコントローラ７から送信される。そして、ゲーム装置３の無線通信モジュール１８でその電波信号を受信し、ゲーム装置３で当該電波信号を復調や復号することによって、一連の操作情報（キーデータ、Ｘ、Ｙ、およびＺ軸方向加速度データ、および処理結果データ）を取得する。そして、ゲーム装置３のＣＰＵ１０は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、Ｂｌｕｅｔｏｏｔｈ（登録商標）の技術を用いて通信部７５を構成する場合、通信部７５は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【００５７】
なお、上記のようなゲームシステム１の構成は単なる一例に過ぎず、本発明は携帯型ゲーム機や携帯電話機などの任意の情報端末に適用可能である。
【００５８】
本実施形態では、図８に示すように、サーバ装置８と複数（図８の例では３台）のゲーム装置３ａ〜３ｃによってデータ配信システムが構成される。なお、以下の説明では、ゲーム装置３は、例えばインターネットなどの通信ネットワークを通じてサーバ装置８と通信することができる。ゲーム装置３とサーバ装置８との間の通信は、前述の常時接続利用型通信と随時接続型通信のいずれであってもよい。
【００５９】
サーバ装置８は、典型的には図９に示すように、ＣＰＵ８１、ＲＡＭ８２、ＨＤＤ８３、通信部８４を備えた一般的な汎用コンピュータである。
【００６０】
以下、このデータ配信システムにおけるゲーム装置３とサーバ装置８の動作を具体的に説明する。
【００６１】
図１０は、ゲーム装置３において実行されるゲームのゲーム画面例である。本実施形態では、ゲーム装置３においてレースゲームを実行する場合について説明するが、本発明はレースゲームに限定されない。
【００６２】
ゲーム装置３において実行されるレースゲームでは、プレイヤは、コントローラ７を用いてゲーム空間内のプレイヤオブジェクトＯｐを操作する。このレースゲームでは、プレイヤは、プレイヤオブジェクトＯｐだけがレースコースを走行するタイムアタックモードと、ゴーストオブジェクトＯｇと競争するゴースト対戦モードの少なくとも２つのゲームモードを任意に選択してプレイすることができる。図１０は、ゴースト対戦モードをプレイしているときのゲーム画面例である。
【００６３】
ゴーストオブジェクトＯｇとは、現在プレイしているプレイヤ（以下、現在プレイヤと称す）もしくは他のプレイヤが、過去に同じレースコースでプレイしたときのプレイヤオブジェクトＯｐの動きと全く同じ（またはほぼ同じ）動きをするオブジェクトである。ゴーストオブジェクトＯｇの動きは、その過去のプレイ時のプレイヤオブジェクトＯｐの動きを再現するためのゴーストデータ（詳細は後述する）に従ってＣＰＵ１０によって制御される。ゴーストデータは、プレイヤがこのレースゲームをプレイしたときに生成される。
【００６４】
サーバ装置８は、複数のゲーム装置３（ゲーム装置３ａ〜３ｃに限らず、例えば１万台のゲーム装置）からゴーストデータを収集してＨＤＤ８３に記憶しておく。そしてサーバ装置８は、任意のゲーム装置３からの要求に応じて、ＨＤＤ８３に記憶されているゴーストデータの中から適当なゴーストデータを、このゲーム装置３に送信する。これにより、ゲーム装置３のユーザは、サーバ装置８に記憶されている他のゲーム装置３のユーザのゴーストデータを適宜にダウンロードして、このゴーストデータを用いて対戦プレイすることができる。
【００６５】
なお、ゲーム装置３は、他のゲーム装置３において生成されたゴーストデータをサーバ装置８からダウンロードするだけでなく、通信回線や記録媒体を通じて他のゲーム装置３から直接受信してもよい。
【００６６】
図１１は、ゲーム装置３のフラッシュメモリ１７のメモリマップを示している。フラッシュメモリ１７には、自身のゲーム装置３においてレースゲームが実行された時に生成されたゴーストデータ（以下、自己ゴーストデータと称す）と、サーバ装置８からダウンロードすることによって、もしくは他のゲーム装置３から受信することによって入手したゴーストデータ（以下、受信ゴーストデータと称す）が保存される。
【００６７】
本実施形態では、レースゲームには、第１コースから第３２コースの３２個のレースコースが存在しており、フラッシュメモリ１７の自己ゴーストデータ保存領域には、レースコース毎に１つの自己ゴーストデータが保存される。すなわち、フラッシュメモリ１７には、第１コースのゴーストデータＧｓ１〜第２コースのゴーストデータＧｓ３２の合計３２個の自己ゴーストデータが保存される。なお、１台のゲーム装置３を複数のプレイヤが利用する場合には、自己ゴーストデータ保存領域をプレイヤ毎に個別に用意してもよい。
【００６８】
受信ゴーストデータ保存領域には、最大で３２個の受信ゴーストデータＧｃ１〜Ｇｃ３２を保存可能である。
【００６９】
図１２は、ゴーストデータの一具体例である。ゴーストデータには、レースゲームをプレイしたユーザの名前、画面上でユーザを識別するためのユーザアイコンを定義するユーザアイコンＩＤ、ユーザの居住地域（すなわち、ゲーム装置３の設置されている地域）、ユーザがプレイしたレースコースのコース番号、ユーザが操作したレーシングカーの運転手を示すキャラクタ番号、ユーザが操作したレーシングカーの種類を示すマシン種別、ユーザの操作内容を示すプレイデータ、スタートからゴールまでの経過時間を１０００分の１秒の精度で示す走破タイム、レースゲームをプレイした日時を示すプレイ日時（すなわち、このゴーストデータが生成された日時）、等の情報が含まれている。
【００７０】
プレイデータは、図１３に示すように、レースのスタートからゴールまでの期間におけるユーザの入力操作の遷移を示すデータである。例えば、図１３のプレイデータからは、［０分０秒０００］（すなわちスタート時点）から［０分０秒３５４］までの期間はコントローラ７のＡボタン７２ｄと十字キー７２ａの前方操作部分が押された状態であり、［０分０秒３５４］から［０分１秒００２］までの期間はコントローラ７のＡボタン７２ｄだけが押された状態であることが分かる。このようなプレイデータを用いれば、過去に行われたレースゲームにおけるプレイヤオブジェクトＯｐの動きを、任意のゲーム装置３において、必要なときにいつでも再現することができる。
【００７１】
なお、本実施形態では、過去に行われたレースゲームにおけるプレイヤオブジェクトＯｐの動きを再現するためのプレイデータとして、ユーザの入力操作の遷移を示すデータを利用しているが、本発明はこれに限らず、他の例として、過去に行われたレースゲームにおけるプレイヤオブジェクトＯｐの挙動を示す動作データ（例えばプレイヤオブジェクトＯｐの位置を示す座標の遷移を示すデータ）をプレイデータとして利用してもよい。
【００７２】
図１４は、サーバ装置８のＨＤＤ８３に記憶されるゴーストテーブルの一具体例を示す図である。ゴーストテーブルは、複数のゲーム装置３から収集したゴーストデータを、コース番号およびタイム区分番号と関連付けて記憶したデータベースである。コース番号は、前述のように、第１コースから第３２コースまであるレースコースを識別するための番号である。タイム区分番号は、レースコース毎に、走破タイムを１００個のタイム区分にそれぞれ区分したときの各タイム区分を識別するための番号である。各レースコースの各タイム区分の範囲は、図１５に示すタイム区分設定データによって規定されている。タイム区分設定データは、ゴーストテーブルと同じく、サーバ装置８のＨＤＤ８３に記憶されている。
【００７３】
図１５のタイム区分設定データによれば、例えば、コース番号［０１］（すなわち第１コース）のタイム区分［０１］の範囲は、［２分１秒００１］から［２分２秒０００］の範囲と規定されている。また、コース番号［３２］のタイム区分［０２］の範囲は、［４分２秒００１］から［４分３秒０００］の範囲と規定されている。なお、各タイム区分の範囲をレースコース毎に個別に設定している理由は、レースコースの全長や難易度によって走破タイムは大きく変わってくるからである。例えば、コース番号［０１］のレースコースでは、全長が短いため、ほとんどのプレイヤの走破タイムが［２分０秒００１］から［３分４０秒０００］の範囲に収まるが、コース番号［０２］のレースコースでは、全長が長いため、ほとんどのプレイヤの走破タイムが［４分０秒００１］を超える。
【００７４】
なお、本実施形態では上記のようなタイム区分設定データに基づいて各タイム区分の範囲を設定しているが、本発明はこれに限らない。例えば、各タイム区分の範囲は全てのレースコースで共通であってもよい。また、各タイム区分の範囲を、状況に応じてサーバ装置８のＣＰＵ８１が自動的に変化させてもよい。
【００７５】
図１４に示すゴーストテーブルでは、上記のようなタイム区分設定データに基づいて、タイム区分毎にゴーストデータが保存される。具体的には、サーバ装置８のＣＰＵ８１は、ゲーム装置３からゴーストデータを受信すると、受信したゴーストデータに含まれるコース番号と走破タイムを確認し、ゴーストテーブルにおけるどのコース番号のどのタイム区分番号の保存領域にこのゴーストデータを保存すべきかを判断する。例えば、ゲーム装置３から受信したゴーストデータに含まれるコース番号が［０２］であり走破タイムが［５分３５秒１１０１］である場合には、図１５に示すタイム区分設定データから、このゴーストデータに対応するタイム区分番号は［０２］と分かるので、このゴーストデータは、コース番号［０２］のタイム区分番号［０２］に対応するゴーストデータとしてゴーストテーブルに登録される。
【００７６】
なお、本実施形態では、ゴーストテーブルの各レースコースの各タイム区分に登録可能なゴーストデータの上限数が２０個と設定されている。したがって、サーバ装置８のＣＰＵ８１は、同一のコースの同一のタイム区分にすでに登録されているゴーストデータの個数が２０個である状態（すなわち、すでに登録されているゴーストデータの個数がすでに登録可能上限数に達している状態）で、さらにこのタイム区分に対応する新たなゴーストデータを受信した場合には、すでに登録されているゴーストデータの中から最も古いゴーストデータ（生成日が最も古いものであってもよいし、登録日が最も古いものであってもよい）をゴーストテーブルから削除したうえで、新たなゴーストデータをゴーストテーブルに登録する。なお、変形例として、新たなゴーストデータを登録した後で、すでに登録されているゴーストデータの中から最も古いゴーストデータを削除するようにしてもよい。この場合、ゴーストテーブルに登録されているゴーストデータの個数が、ほんの一時的にではあるが、登録可能上限数を超えることになる。
【００７７】
なお、本実施形態では、ゴーストテーブルの各レースコースの各タイム区分に登録可能なゴーストデータの上限数が一律２０個と規定されているが、本発明はこれに限らず、レースコース毎に、もしくはタイム区分毎に、異なる上限数を規定してもよい。さらには、各レースコースの各タイム区分の登録可能上限数を、状況に応じてサーバ装置８のＣＰＵ８１が自動的に変化させてもよい。
【００７８】
サーバ装置８のＨＤＤ８３には、上記のようなゴーストテーブルやタイム区分設定データの他に、ワールドチャンピオンおよびローカルチャンピオン（例えば日本チャンピオンや米国チャンピオンや欧州チャンピオンなど）のゴーストデータが保持される。ワールドチャンピオンとは、全世界のユーザのゴーストデータの中で、最も走破タイムの速いゴーストデータである。ローカルチャンピオンとは、ゴーストデータの居住地域が示す地域において、最も走破タイムの速いゴーストデータである。これらのワールドチャンピオンおよびローカルチャンピオンのゴーストデータは、より速い走破タイムのゴーストデータがゴーストテーブルに登録される毎に、随時更新される。
【００７９】
次に、図１６のフローチャートを参照してゲーム装置３のＣＰＵ１０の動作を説明する。なお、このフローチャートは、ＣＰＵ１０によって実行されるレースゲームプログラムに基づく処理の流れを示している。このレースゲームプログラムは光ディスク４に格納されており、必要に応じて内部メインメモリ１１ｅまたは外部メインメモリ１２にロードされる。
【００８０】
レースゲームプログラムの実行を開始すると、まずステップＳ１０において、ＣＰＵ１０は、コントローラ７から入力されるユーザの指示に基づいて、レースゲームを開始すべきかどうかを判断する。そして、ユーザによってレースゲームの開始が指示された場合にはステップＳ１１に進み、そうでない場合はステップＳ１５に進む。
【００８１】
ステップＳ１１では、ＣＰＵ１０は、ゲーム処理を実行する。具体的には、コントローラ７から入力される操作情報に基づいて、ゲーム世界のプレイヤオブジェクトＯｐを制御し、ゲーム画面を生成する。なお、ゴーストオブジェクトＯｇとの対戦モードでは、さらにゲーム装置３のフラッシュメモリ１７に保存されている任意のゴーストデータ（自己ゴーストデータまたは受信ゴーストデータ）に従ってゲーム世界のゴーストオブジェクトＯｇを制御する。
【００８２】
なおステップＳ１１において、ＣＰＵ１０は、上記のゲーム処理と並行して、レースゲームのプレイ中にコントローラ７から入力される操作情報に基づいて、前述のプレイデータを含むゴーストデータを生成する処理も実行する。
【００８３】
レースゲームが終了すると、ステップＳ１２において、ＣＰＵ１０は、今回のレースゲームにおける走破タイムがプレイヤの自己記録を更新したかどうかを判断し、自己記録を更新した場合はステップＳ１３に進み、そうでない場合はステップＳ１５に進む。
【００８４】
ステップＳ１３では、ＣＰＵ１０は、フラッシュメモリ１７に保存されている同レースコースの自己ゴーストデータを、ステップＳ１１において生成されたゴーストデータを上書きすることによって更新する。
【００８５】
ステップＳ１４では、ＣＰＵ１０は、ステップＳ１１において生成されたゴーストデータを、無線通信モジュール１８および通信ネットワークを通じてサーバ装置８に送信する。こうしてサーバ装置８に送信されたゴーストデータは、サーバ装置８においてゴーストテーブルに登録される。
【００８６】
ステップＳ１５では、ＣＰＵ１０は、コントローラ７から入力されるユーザの指示に基づいて、サーバ装置８にゴーストデータを要求すべきかどうかを判断する。そして、ユーザによってゴーストデータのダウンロードが指示された場合にはステップＳ１６に進み、そうでない場合はステップＳ２０に進む。なお、サーバ装置８からのゴーストデータのダウンロードは、ユーザの指示に基づいて行われるだけでなく、例えば、レースゲームプログラムの実行開始時に行われるようにしてもよいし、前述の常時接続利用型通信を利用して定期的に（例えば１日に１回）行われるようにしてもよい。
【００８７】
ステップＳ１６では、ＣＰＵ１０は、コントローラ７から入力されるユーザの指示に基づいて、サーバ装置８に要求するゴーストデータの種類を決定する。ここで、サーバ装置８に要求することのできるゴーストデータの種類としては、例えば、ユーザの自己記録に近い走破タイムのゴーストデータ（すなわち、ユーザの自己記録とほぼ同じ走破タイムのゴーストデータや、ユーザの自己記録よりも少し速い走破タイムのゴーストデータなど）や、ワールドチャンピオンのゴーストデータや、ローカルチャンピオンのゴーストデータがある。なお、本実施形態では、サーバ装置８に要求するゴーストデータの種類をユーザが指示するが、本発明はこれに限らず、例えば前述の常時接続利用型通信を利用して、ユーザの自己記録に近い走破タイムのゴーストデータを定期的に自動的にサーバ装置８に要求するようにしてもよい。
【００８８】
ステップＳ１７では、ＣＰＵ１０は、無線通信モジュール１８および通信ネットワークを通じてサーバ装置８にゴーストデータ配信リクエストを送信する。このゴーストデータ配信リクエストには、ステップＳ１６で決定されたゴーストデータの種類と、必要に応じてゴーストデータを要求するレースコースのコース番号が含まれている。なお、サーバ装置８に要求するゴーストデータの種類が、ユーザの自己記録に近い走破タイムのゴーストデータである場合には、ＣＰＵ１０は、フラッシュメモリ１７の自己ゴーストデータ保存領域（図１１）に格納されている自己ゴーストデータの走破タイムを読み出して、これをゴーストデータ配信リクエストとともにサーバ装置８に送信する。また、サーバ装置８に要求するゴーストデータの種類が、ローカルチャンピオンのゴーストデータである場合には、ＣＰＵ１０は、ゴーストデータ配信リクエストとともに居住地域をサーバ装置８に送信する。
【００８９】
ステップＳ１８では、ステップＳ１７で送信したゴーストデータ配信リクエストに対応するゴーストデータをサーバ装置８から受信する。
【００９０】
ステップＳ１９では、サーバ装置８から受信したゴーストデータをフラッシュメモリ１７の受信ゴーストデータ保存領域（図１１）に保存する。なお、受信ゴーストデータ保存領域にすでに保存可能上限数である３２個の受信ゴーストデータが保存されている場合には、ユーザの指示に応じて受信ゴーストデータを１つ削除した後、ステップＳ１９で受信したゴーストデータを新たに保存する。なお、サーバ装置８からゴーストデータをダウンロードした後、ＣＰＵ１０は自動的に、このゴーストデータを用いたゴースト対戦モードのゲーム処理を開始するようにしてもよい。
【００９１】
ステップＳ２０では、コントローラ７から入力されるユーザの指示に基づいて、ゲームを終了するかどうか（すなわちレースゲームプログラムの実行を終了するかどうか）を判断し、ゲームを続行する場合はステップＳ１０に戻り、ゲームを終了する場合はゲームプログラムの実行を終了する。
【００９２】
次に、図１７のフローチャートを参照してサーバ装置８のＣＰＵ８１の動作を説明する。なお、このフローチャートは、ＣＰＵ８１によって実行されるデータ管理プログラムに基づく処理の流れを示している。このデータ管理プログラムはＨＤＤ８３に記録されており、必要に応じてＲＡＭ８２にロードされる。
【００９３】
データ管理プログラムの実行を開始すると、まずステップＳ３０において、ＣＰＵ８１は、通信部８４を通じていずれかのゲーム装置３からゴーストデータを受信したかどうかを判断する。そして、いずれかのゲーム装置３からゴーストデータを受信した場合はステップＳ３１に進み、そうでない場合はステップＳ３７に進む。
【００９４】
ステップＳ３１では、ＣＰＵ８１は、ステップＳ３０で受信したゴーストデータに含まれているコース番号および走破タイムと、ＨＤＤ８３に記憶されているタイム区分設定データ（図１５）とに基づいて、受信したゴーストデータがどのスコア区分に対応するかを判断する。
【００９５】
ステップＳ３２では、ＣＰＵ８１は、ゴーストテーブルにおける、ステップＳ３０で受信したゴーストデータに対応するタイム区分の保存領域に、すでに登録可能上限数のゴーストデータがすでに登録されているかどうかを判断する。そして、ステップＳ３０で受信したゴーストデータに対応するタイム区分の保存領域がすでに満杯である場合はステップＳ３３に進み、そうでない場合はステップＳ３４に進む。
【００９６】
ステップＳ３３では、ＣＰＵ８１は、ステップＳ３０で受信したゴーストデータに対応するタイム区分の保存領域に保存されているゴーストデータの中から、プレイ日時が最も古い（すなわち作成日時が最も古い）ゴーストデータを削除する。ところで、ゴーストテーブルに古いゴーストデータが長い間残っていると、ユーザがゴーストデータをダウンロードするときに、過去にダウンロードしたゴーストデータを再度ダウンロードしてしまう可能性が高くなり、新鮮味に欠けるという問題があるが、本実施形態では、各タイム区分に保存されているゴーストデータが古い物から順番に削除されるので、古いゴーストデータがゴーストテーブルに長い間残り続けてしまうことがない。なお、プレイ日時が最も古いゴーストデータを削除する代りに、ゴーストテーブルに登録された日時が最も古いゴーストデータを削除するようにしてもよい。
【００９７】
ステップＳ３４では、ＣＰＵ８１は、ステップＳ３０で受信したゴーストデータを、ゴーストテーブルの対応するタイム区分の保存領域に保存する。なお、ステップＳ３４をステップＳ３２の前に行うことにより、ステップＳ３０で受信したゴーストデータを、ゴーストテーブルの対応するタイム区分の保存領域に保存した後に、受信したゴーストデータに対応するタイム区分の保存領域に登録可能上限数を超える数のゴーストデータが登録されているかどうかを判断して、登録可能上限数を超える数のゴーストデータが登録されている場合には、保存されているゴーストデータの中から、プレイ日時または登録された日時が最も古いゴーストデータを削除するようにしてもよい。
【００９８】
ステップＳ３５では、ＣＰＵ８１は、ステップＳ３０で受信したゴーストデータの走破タイムと、ＨＤＤ８３に保存されている現在のワールドチャンピオンおよびローカルチャンピオンのゴーストデータの走破タイムとを比較し、ステップＳ３０で受信したゴーストデータが新たなチャンピオン（ワールドチャンピオンまたはローカルチャンピオン）となるかどうかを判断する。ローカルチャンピオンの比較に関しては、ローカルチャンピオンとして登録されているゴーストデータのうち、ステップＳ３０で受信したゴーストデータの居住地域と同じ居住地域を含むローカルチャンピオンのゴーストデータの走破タイムと、ステップＳ３０で受信したゴーストデータの走破タイムとを比較する。そして、ステップＳ３０で受信したゴーストデータが新たなチャンピオンとなる場合はステップＳ３６に進み、そうでない場合はステップＳ３７に進む。
【００９９】
ステップＳ３６では、ＣＰＵ８１は、ＨＤＤ８３に保存されているワールドチャンピオンまたはローカルチャンピオンのゴーストデータを更新する。ローカルチャンピオンのゴーストデータの更新は、ステップＳ３０で受信したゴーストデータの居住地域と同じ居住地域を含むローカルチャンピオンのゴーストデータが更新対象となる。
【０１００】
ステップＳ３７では、ＣＰＵ８１は、通信部８４を通じていずれかのゲーム装置３から前述のゴーストデータ配信リクエストを受信したかどうかを判断する。そして、いずれかのゲーム装置３からゴーストデータ配信リクエストを受信した場合はステップＳ３８に進み、そうでない場合はステップＳ３０に戻る。
【０１０１】
ステップＳ３８では、ＣＰＵ８１は、ステップＳ３７で受信したゴーストデータ配信リクエストに応じて、ＨＤＤ８３に保存されている複数のゴーストデータの中から１つのゴーストデータを選択する。具体的に説明すると、例えば、ユーザ（ゴーストデータ配信リクエストを送信したゲーム装置３のユーザ）の自己記録とほぼ同じ走破タイムのゴーストデータを要求された場合には、ＣＰＵ８１は、ゴーストデータ配信リクエストとともに受信したこのユーザの自己記録の走破タイムに基づいて、このユーザの走破タイムに対応するタイム区分に登録されているゴーストデータの中から１つのゴーストデータをランダムに選択する。また例えば、ユーザの自己記録よりも少し速い走破タイムのゴーストデータを要求された場合には、ＣＰＵ８１は、このユーザの走破タイムに対応するタイム区分より１段階だけ速いタイム区分に登録されているゴーストデータの中から１つのゴーストデータをランダムに選択する。また例えば、ワールドチャンピオンのゴーストデータを要求された場合には、ＣＰＵ８１は、ＨＤＤ８３に保存されているワールドチャンピオンのゴーストデータを選択する。また例えば、ローカルチャンピオンのゴーストデータを要求された場合には、ＣＰＵ８１は、ＨＤＤ８３に保存されているローカルチャンピオンのゴーストデータの中から、ユーザの居住地域に対応するゴーストデータを選択する。
【０１０２】
ステップＳ３９では、ＣＰＵ８１は、ステップＳ３８で選択されたゴーストデータをゲーム装置３に返信する。そしてステップＳ３０に戻る。
【０１０３】
以上のように、本実施形態によれば、サーバに記録されるゴーストデータの総容量を予め決めた範囲内に制限でき、なおかつ全てのプレイヤが自分の技量に応じたゴーストデータを取得することができる。
【０１０４】
なお、本実施形態では、ゴーストテーブルにおいて、レースゲームの走破タイムに応じてゴーストテーブルを区分しているが、本発明はこれに限らない。例えば、パズルゲームにおけるステージクリア時間や、アクションゲームにおける獲得得点など、ゲームの巧拙を示す指標（すなわちユーザの技量を示す指標）であれば、走破タイムに限らず任意の指標に応じてゴーストテーブルを区分してもよい。
【図面の簡単な説明】
【０１０５】
【図１】本発明の一実施形態に係るゲームシステム１を説明するための外観図
【図２】ゲーム装置３の機能ブロック図
【図３】コントローラ７の上面後方から見た斜視図
【図４】コントローラ７を下面前方から見た斜視図
【図５】コントローラ７の上ハウジングを外した状態を示す斜視図
【図６】コントローラ７の下ハウジングを外した状態を示す斜視図
【図７】コントローラ７の構成を示すブロック図
【図８】第１の実施形態におけるデータ配信システムの構成を示す図
【図９】サーバ装置８の構成を示すブロック図
【図１０】ゲーム装置３におけるゲーム実行時のゲーム画面例
【図１１】フラッシュメモリ１７のメモリマップの一例
【図１２】ゴーストデータの一例
【図１３】プレイデータの一例
【図１４】ゴーストテーブルの一例
【図１５】タイム区分設定データの一例
【図１６】ゲーム装置３のＣＰＵ１０の処理の流れを示すフローチャート
【図１７】サーバ装置８のＣＰＵ８１の処理の流れを示すフローチャート
【符号の説明】
【０１０６】
１    ゲームシステム
２    モニタ
２ａ    スピーカ
３    ゲーム装置
４    光ディスク
７    コントローラ
１０    ＣＰＵ
１１    システムＬＳＩ
１１ａ    入出力プロセッサ
１１ｂ    ＧＰＵ
１１ｃ    ＤＳＰ
１１ｄ    ＶＲＡＭ
１１ｅ    内部メインメモリ
１２    外部メインメモリ
１３    ＲＯＭ／ＲＴＣ
１４    ディスクドライブ
１５    ＡＶ−ＩＣ
１６    ＡＶコネクタ
１７    フラッシュメモリ
１８    無線通信モジュール
１９    無線コントローラモジュール
２０    拡張コネクタ
２１    外部メモリカード用コネクタ
２２    アンテナ
２３    アンテナ
２４    電源ボタン
２５    リセットボタン
２６    イジェクトボタン
７１    ハウジング
７２    操作部
７３    コネクタ
７４    撮像情報演算部
７４１    赤外線フィルタ
７４２    レンズ
７４３    撮像素子
７４４    画像処理回路
７５    通信部
７５１    マイコン
７５２    メモリ
７５３    無線モジュール
７５４    アンテナ
７００    基板
７０１    加速度センサ
７０２    ＬＥＤ
７０３    水晶振動子
７０４    バイブレータ
７０７    サウンドＩＣ
７０８    アンプ
８    サーバ装置
８１    ＣＰＵ
８２    ＲＡＭ
８３    ＨＤＤ
８４    通信部
【図１】
0005178126.tif 000002
【図２】
0005178126.tif 000003
【図３】
0005178126.tif 000004
【図４】
0005178126.tif 000005
【図５】
0005178126.tif 000006
【図６】
0005178126.tif 000007
【図７】
0005178126.tif 000008
【図８】
0005178126.tif 000009
【図９】
0005178126.tif 000010
【図１０】
0005178126.tif 000011
【図１１】
0005178126.tif 000012
【図１２】
0005178126.tif 000013
【図１３】
0005178126.tif 000014
【図１４】
0005178126.tif 000015
【図１５】
0005178126.tif 000016
【図１６】
0005178126.tif 000017
【図１７】
0005178126.tif 000018