(57)【特許請求の範囲】
【請求項１】
ネットワーク上でそれぞれ接続可能な第１ゲーム装置および第２ゲーム装置と、少なくとも前記第２ゲーム装置に接続可能な暗号化装置および少なくとも当該第２ゲーム装置に接続可能な復号装置を含むゲームシステムであって、
前記第１ゲーム装置は、
当該第１ゲーム装置でゲームプレイするためのゲームデータを前記暗号化装置で暗号化した暗号化ゲームデータを前記第２ゲーム装置を介して取得し記憶する記憶手段、
前記記憶手段によって記憶された暗号化ゲームデータを第２ゲーム装置に送信する第１暗号化データ送信手段、
ユーザの入力に応じて、当該入力に対応する入力データを前記第２ゲーム装置に送信する入力データ送信手段、および
前記第２ゲーム装置で実行されたゲーム処理の結果データを受信して出力装置に出力させる出力制御手段を備え、
前記第２ゲーム装置は、
前記第１暗号化データ送信手段によって送信された暗号化ゲームデータを前記復号装置に送信する第２暗号化データ送信手段、
前記第２暗号化データ送信手段によって送信された暗号化ゲームデータを前記復号装置で復号したゲームデータを取得するゲームデータ取得手段、
前記入力データ送信手段によって送信された入力データおよび前記ゲームデータ取得手段によって取得されたゲームデータに基づいて、ゲーム処理を実行するゲーム処理実行手段、および
前記ゲーム処理実行手段によって実行されたゲーム処理の結果データを前記第１ゲーム装置に送信する結果データ送信手段を備える、ゲームシステム。
【請求項２】
前記復号装置は、
前記第２暗号化データ送信手段によって送信された暗号化ゲームデータを復号する復号手段、および
前記復号手段によって復号されて得られるゲームデータを前記第２ゲーム装置に送信する第１ゲームデータ送信手段を備え、
前記ゲームデータ取得手段は、前記第１ゲームデータ送信手段によって送信されたゲームデータを受信する、請求項１記載のゲームシステム。
【請求項３】
前記第１暗号化データ送信手段によって暗号化ゲームデータが送信される場合に、少なくとも前記第１ゲーム装置および前記第２ゲーム装置をマッチングする第１マッチング手段をさらに含み、
前記復号手段は、前記第２暗号化データ送信手段によって送信された暗号化ゲームデータに対応するゲームデータでゲームプレイする前記第１ゲーム装置および前記第２ゲーム装置の組み合わせが、前記第１マッチング手段によってマッチングされている場合に、当該暗号化ゲームデータを復号する、請求項２記載のゲームシステム。
【請求項４】
前記第２ゲーム装置は、
前記ゲーム処理実行手段によって実行されるゲーム処理の結果として変化されるゲームデータを前記暗号化装置で暗号化した暗号化ゲームデータを取得する暗号化データ取得手段、および
前記暗号化データ取得手段によって取得された暗号化ゲームデータを前記第１ゲーム装置に送信する第３暗号化データ送信手段をさらに備え、
前記記憶手段は、前記第３暗号化データ送信手段によって送信された暗号化データを記憶する、請求項１ないし３のいずれかに記載のゲームシステム。
【請求項５】
前記第２ゲーム装置は、
前記ゲームデータを前記暗号化装置に送信する第２ゲームデータ送信手段をさらに備え、
前記暗号化装置は、
前記第２ゲームデータ送信手段によって送信されたゲームデータを暗号化する暗号化手段、および
前記暗号化手段によって暗号化された暗号化ゲームデータを前記第２ゲーム装置に送信する第４暗号化データ送信手段を備え、
前記暗号化データ取得手段は、前記第４暗号化データ送信手段によって送信された暗号化ゲームデータを受信する、請求項４記載のゲームシステム。
【請求項６】
前記第１暗号化データ送信手段によって暗号化ゲームデータが送信される場合に、少なくとも前記第１ゲーム装置および前記第２ゲーム装置をマッチングする第２マッチング手段をさらに含み、
前記暗号化手段は、前記第１ゲームデータ送信手段によって送信されたゲームデータでゲームプレイする前記第１ゲーム装置と前記第２ゲーム装置の組み合わせが、前記第２マッチング手段によってマッチングされている場合に、前記ゲームデータを暗号化する、請求項５記載のゲームシステム。
【請求項７】
複数の前記第２ゲーム装置をさらに含み、
前記記憶手段は、前記複数の第２ゲーム装置の前記第４暗号化データ送信手段によって送信された複数の前記暗号化ゲームデータのうち、一致するまたは多数決により決定した前記暗号化ゲームデータを記憶する、請求項５または６記載のゲームシステム。
【請求項８】
ネットワーク上で同種の他のゲーム装置と接続できる、ゲーム装置であって、
ゲームプレイするためのゲームデータを少なくとも前記他のゲーム装置に接続可能な暗号化装置で暗号化した暗号化ゲームデータを当該他のゲーム装置を介して取得し記憶する記憶手段、
前記記憶手段によって記憶された暗号化ゲームデータを前記他のゲーム装置に送信する暗号化データ送信手段、
ユーザの入力に応じて、当該入力に対応する入力データを前記他のゲーム装置に送信する入力データ送信手段、および
前記暗号化ゲームデータを少なくとも前記他のゲーム装置と接続可能な復号装置で復号したゲームデータと前記入力データとに基づいて当該他のゲーム装置で実行されたゲーム処理の結果データを当該他のゲーム装置から取得して出力装置に出力する出力制御手段を備える、ゲーム装置。
【請求項９】
ネットワーク上で同種の他のゲーム装置と接続でき、ゲームプレイするためのゲームデータを少なくとも前記他のゲーム装置に接続可能な暗号化装置で暗号化した暗号化ゲームデータを当該他のゲーム装置を介して取得し記憶する記憶手段を備えるゲーム装置のゲームプログラムであって、
前記ゲーム装置のコンピュータを、
前記記憶手段によって記憶された暗号化ゲームデータを前記他のゲーム装置に送信する暗号化データ送信手段、
ユーザの入力に応じて、当該入力に対応する入力データを前記他のゲーム装置に送信する入力データ送信手段、および
前記暗号化ゲームデータを少なくとも前記他のゲーム装置と接続可能な復号装置で復号したゲームデータと前記入力データとに基づいて当該他のゲーム装置で実行されたゲーム処理の結果データを当該他のゲーム装置から取得して出力装置に出力する出力制御手段として機能させる、ゲームプログラム。
【請求項１０】
ネットワーク上で同種の他のゲーム装置と接続でき、ゲームプレイするためのゲームデータを少なくとも前記他のゲーム装置と接続可能な暗号化装置で暗号化した暗号化ゲームデータを当該他のゲーム装置を介して取得し記憶する記憶手段を備えるゲーム装置のゲーム制御方法であって、
前記ゲーム装置のコンピュータは、
（ａ）前記記憶手段によって記憶された暗号化ゲームデータを前記他のゲーム装置に送信し、
（ｂ）ユーザの入力に応じて、当該入力に対応する入力データを前記他のゲーム装置に送信し、そして
（ｃ）前記暗号化ゲームデータを少なくとも前記他のゲーム装置と接続可能な復号装置で復号したゲームデータと前記入力データとに基づいて当該他のゲーム装置で実行されたゲーム処理の結果データを当該他のゲーム装置から取得して出力装置に出力する、ゲーム制御方法。
【請求項１１】
ネットワーク上でそれぞれ接続可能な第１ゲーム装置、第２ゲーム装置および第３ゲーム装置と、少なくとも前記第３ゲーム装置に接続可能な暗号化装置および少なくとも当該第３ゲーム装置に接続可能な復号装置を含み、当該第１ゲーム装置と当該第２ゲーム装置との間で通信ゲームをプレイする、ゲームシステムであって、
前記第１ゲーム装置は、
前記通信ゲームをプレイするための第１ゲームデータを前記暗号化装置で暗号化した第１暗号化ゲームデータを前記第３ゲーム装置を介して取得し記憶する第１記憶手段、
前記第１記憶手段によって記憶された第１暗号化ゲームデータを前記第３ゲーム装置に送信する第１暗号化データ送信手段、および
前記第１ゲーム装置のユーザの入力に応じて、当該入力に対応する第１入力データを前記第３ゲーム装置に送信する第１入力データ送信手段を備え、
前記第２ゲーム装置は、
前記通信ゲームをプレイするための第２ゲームデータを前記暗号化装置で暗号化した第２暗号化ゲームデータを前記第３ゲーム装置を介して取得し記憶する第２記憶手段、
前記第２記憶手段によって記憶された第２暗号化ゲームデータを前記第３ゲーム装置に送信する第２暗号化データ送信手段、および
前記第２ゲーム装置のユーザの入力に応じて、当該入力に対応する第２入力データを前記第３ゲーム装置に送信する第２入力データ送信手段を備え、
前記第３ゲーム装置は、
前記第１暗号化データ送信手段によって送信された第１暗号化ゲームデータを前記復号装置で復号した第１ゲームデータおよび前記第２暗号化データ送信手段によって送信された第２暗号化ゲームデータを前記復号装置で復号した第２ゲームデータを取得するゲームデータ取得手段、
前記第１入力データ送信手段によって送信された第１入力データ、前記第２入力データ送信手段によって送信された第２入力データ、前記ゲームデータ取得手段によって取得された第１ゲームデータおよび第２ゲームデータに基づいて、ゲーム処理を実行するゲーム処理実行手段、および
前記ゲーム処理実行手段によって実行されたゲーム処理の結果データを前記第１ゲーム装置および前記第２ゲーム装置に送信する結果データ送信手段を備え、
前記第１ゲーム装置および前記第２ゲーム装置の各々は、
前記結果データ送信手段によって送信された結果データを出力装置に出力させる出力制御手段をさらに備える、ゲームシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はゲームシステム、ゲーム装置、ゲームプログラムおよびゲーム制御方法に関し、特にたとえば、通信ゲームをプレイする、ゲームシステム、ゲーム装置、ゲームプログラムおよびゲーム制御方法に関する。
【背景技術】
【０００２】
この種のゲームシステムの一例が特許文献１に開示されている。この特許文献１には、ゲーム装置とゲームサーバとを含むゲームシステムにおいて、ゲーム装置から入力データがゲームサーバに送信され、ゲームサーバでは、入力データに基づいてゲーム処理を実行することが記載されている。
【特許文献１】特開２０１１−７８６３４［A63F 13/12］
【発明の概要】
【発明が解決しようとする課題】
【０００３】
この特許文献１に開示されたゲームシステムでは、ゲームサーバでゲーム処理を実行するため、ゲームで使用されるパラメータ（ゲームポイント等）等のゲームデータを不正に変更するような行為（不正行為）は行われ難いが、ユーザＩＤおよびパスワードのみならず、パラメータ等のゲームデータを管理するＷｅｂサーバやゲームサーバの設置および運用のコストが多くかかってしまうという問題がある。一方、ゲーム装置側でゲーム処理を行う場合には、ゲーム装置がハッキングされてしまうことによって上記のような不正行為が行われてしまう可能性がある。
【０００４】
それゆえに、この発明の主たる目的は、新規な、ゲームシステム、ゲーム装置、ゲームプログラムおよびゲーム制御方法を提供することである。
【０００５】
また、この発明の他の目的は、他の機器でゲームデータを管理することなく、不正行為を出来る限り防止できる、ゲームシステム、ゲーム装置、ゲームプログラムおよびゲーム制御方法を提供することである。
【課題を解決するための手段】
【０００６】
第１の発明は、ネットワーク上でそれぞれ接続可能な第１ゲーム装置および第２ゲーム装置と、少なくとも第２ゲーム装置に接続可能な暗号化装置および少なくとも当該第２ゲーム装置に接続可能な復号装置を含むゲームシステムである。第１ゲーム装置は、当該第１ゲーム装置でゲームプレイするためのゲームデータを暗号化装置で暗号化した暗号化ゲームデータを第２ゲーム装置を介して取得し記憶する記憶手段、記憶手段によって記憶された暗号化ゲームデータを第２ゲーム装置に送信する第１暗号化データ送信手段、ユーザの入力に応じて、当該入力に対応する入力データを前記第２ゲーム装置に送信する入力データ送信手段、および第２ゲーム装置で実行されたゲーム処理の結果データを受信して出力装置に出力させる出力制御手段を備える。第２ゲーム装置は、第１暗号化データ送信手段によって送信された暗号化ゲームデータを復号装置に送信する第２暗号化データ送信手段、第２暗号化データ送信手段によって送信された暗号化ゲームデータを復号装置で復号したゲームデータを取得するゲームデータ取得手段、入力データ送信手段によって送信された入力データおよびゲームデータ取得手段によって取得されたゲームデータに基づいて、ゲーム処理を実行するゲーム処理実行手段、およびゲーム処理実行手段によって実行されたゲーム処理の結果データを第１ゲーム装置に送信する結果データ送信手段を備える。
【０００７】
第１の発明によれば、ゲーム装置でゲームプレイするためのゲームデータを暗号化装置で暗号化した暗号化ゲームデータを記憶するとともに、復号したゲームデータは他のゲーム装置が取得するので、ゲームプレイするゲーム装置が生のゲームデータに直接アクセスすることができない。また、ゲームプレイするゲーム装置以外のゲーム装置でゲーム処理が行われる。したがって、ゲーム装置以外の機器でゲームデータを管理する必要がなく、不正行為を出来る限り防止することができる。
また、第１ゲーム装置のユーザによる入力に従ってゲーム処理が実行されるので、当該ユーザの入力をゲーム処理の結果に反映させることができる。
【００１２】
第２の発明は、第１の発明に従属し、復号装置は、第２暗号化データ送信手段によって送信された暗号化ゲームデータを復号する復号手段、および復号手段によって復号されて得られるゲームデータを第２ゲーム装置に送信する第１ゲームデータ送信手段を備える。ゲームデータ取得手段は、第１ゲームデータ送信手段によって送信されたゲームデータを受信する。つまり、復号装置は、第２ゲーム装置の依頼に応じて、暗号化ゲームデータを復号し、復号したゲームデータを依頼元の第２ゲーム装置に送信する。
【００１３】
第２の発明によれば、ゲームプレイする第１ゲーム装置に暗号化ゲームデータを記憶しておき、たとえば、ゲームの開始に先立って、暗号化ゲームデータを第２ゲーム装置の依頼に応じて復号装置によって復号するので、ゲームデータを記憶する他の機器を用意することなく、ゲームデータの改変（改竄）を出来る限り防止することができる。
【００１４】
第３の発明は、第２の発明に従属し、ゲームシステムは、第１暗号化データ送信手段によって暗号化ゲームデータが送信される場合に、少なくとも第１ゲーム装置および第２ゲーム装置をマッチングする第１マッチング手段をさらに含む。復号手段は、第２暗号化データ送信手段によって送信された暗号化ゲームデータに対応するゲームデータでゲームプレイする第１ゲーム装置および第２ゲーム装置の組み合わせが、第１マッチング手段によってマッチングされている場合に、当該暗号化ゲームデータを復号する。
【００１５】
第３の発明によれば、第１ゲーム装置に対して正しく組み合わされた第２ゲーム装置からの依頼がある場合に、暗号化ゲームデータを復号するので、不正に作成された暗号化ゲームデータが復号されたり、正しい組み合わせでないゲーム装置からの依頼に応じて暗号化ゲームデータが復号されたりするのを防止することができる。
【００１６】
第４の発明は、第１ないし第３の発明のいずれかに従属し、第２ゲーム装置は、ゲーム処理実行手段によって実行されるゲーム処理の結果として変化されるゲームデータを暗号化装置で暗号化した暗号化ゲームデータを取得する暗号化データ取得手段、および暗号化データ取得手段によって取得された暗号化データを第１ゲーム装置に送信する第３暗号化データ送信手段をさらに備える。記憶手段は、第３暗号化データ送信手段によって送信された暗号化ゲームデータを記憶する。つまり、第２ゲーム装置が、第１ゲーム装置のゲームプレイについてのゲーム処理を実行し、これに応じて変化されるゲームデータを暗号化した暗号化ゲームデータを取得し、第１ゲーム装置では、その暗号化ゲームデータをセーブする。
【００１７】
第４の発明によれば、ゲームプレイした場合にも、それによって更新されたゲームデータを暗号化装置で暗号化した暗号化ゲームデータをセーブするので、第１ゲーム装置がゲームデータに直接アクセスするのを防止することができる。
【００１８】
第５の発明は、第４の発明に従属し、第２ゲーム装置は、ゲームデータを暗号化装置に送信する第２ゲームデータ送信手段をさらに備える。つまり、第２ゲーム装置は、暗号化装置のような他の機器に、ゲームデータの暗号化を依頼する。暗号化装置は、第２ゲームデータ送信手段によって送信されたゲームデータを暗号化する暗号化手段、および暗号化手段によって暗号化された暗号化ゲームデータを第２ゲーム装置に送信する第４暗号化データ送信手段を備える。暗号化データ取得手段は、第４暗号化データ送信手段によって送信された暗号化ゲームデータを受信する。暗号化装置は、第２ゲーム装置にからの依頼に応じて、復号装置で復号可能な形式でゲームデータを暗号化し、暗号化した暗号化ゲームデータを第２ゲーム装置に送信する。第１ゲーム装置は、この暗号化ゲームデータを取得して、セーブする。
【００１９】
第５の発明によれば、暗号化装置でゲームデータを暗号化するので、暗号化の形式等を公開しなければ、暗号化ゲームデータを復号したり、改変（改竄）したりするのを出来る限り防止することができる。
【００２０】
第６の発明は、第５の発明に従属し、ゲームシステムは、第１暗号化データ送信手段によって暗号化ゲームデータが送信される場合に、少なくとも第１ゲーム装置および第２ゲーム装置をマッチングする第２マッチング手段をさらに含む。暗号化手段は、第１ゲームデータ送信手段によって送信されたゲームデータでゲームプレイする第１ゲーム装置と第２ゲーム装置の組み合わせが、第２マッチング手段によってマッチングされている場合に、ゲームデータを暗号化する。
【００２１】
第６の発明によれば、暗号化装置は、第１ゲーム装置に対して正しく組み合わされた第２ゲーム装置からの暗号化の依頼がある場合に、ゲームデータを暗号化するので、改変ないし改竄されたゲームデータが暗号化されたり、正しく組み合わされていないゲーム装置からの依頼に応じて、ゲームデータが暗号化されたりすることがほとんどない。したがって、その後にゲームプレイする場合に、不正なゲームデータが使用されるのを出来る限り防止することができる。
【００２２】
第７の発明は、第５または第６の発明に従属し、ゲームシステムは、複数の第２ゲーム装置をさらに含み、記憶手段は、複数の第２ゲーム装置の第４暗号化データ送信手段によって送信された複数の暗号化ゲームデータのうち、一致するまたは多数決により決定した暗号化ゲームデータを記憶（セーブ）する。
【００２３】
第７の発明によれば、一致するまたは多数決により決定した暗号化ゲームデータを適正な暗号化ゲームデータとしてセーブするので、一部の第２ゲーム装置において不正行為が行われたとしても、その後にゲームプレイする場合には、不正行為が行われていないゲームデータを使用することができる。また、多数決のような簡単な手法により、適正な暗号化ゲームデータを決定することができる。
【００２６】
第８の発明は、ネットワーク上で同種の他のゲーム装置と接続できる、ゲーム装置であって、ゲームプレイするためのゲームデータを少なくとも他のゲーム装置に接続可能な暗号化装置で暗号化した暗号化ゲームデータを当該他のゲーム装置を介して取得し記憶する記憶手段、記憶手段によって記憶された暗号化ゲームデータを他のゲーム装置に送信する暗号化データ送信手段、ユーザの入力に応じて、当該入力に対応する入力データを他のゲーム装置に送信する入力データ送信手段、および暗号化ゲームデータを少なくとも他のゲーム装置と接続可能な復号装置で復号したゲームデータと入力データとに基づくゲーム処理の結果データを当該他のゲーム装置から取得して出力装置に出力する出力制御手段を備える、ゲーム装置である。
【００２７】
第９の発明は、ネットワーク上で同種の他のゲーム装置と接続でき、ゲームプレイするためのゲームデータを少なくとも他のゲーム装置に接続可能な暗号化装置で暗号化した暗号化ゲームデータを当該他のゲーム装置を介して取得し記憶する記憶手段を備えるゲーム装置のゲームプログラムであって、ゲーム装置のコンピュータを、記憶手段によって記憶された暗号化ゲームデータを他のゲーム装置に送信する暗号化データ送信手段、ユーザの入力に応じて、当該入力に対応する入力データを他のゲーム装置に送信する入力データ送信手段、および暗号化ゲームデータを少なくとも他のゲーム装置と接続可能な復号装置で復号したゲームデータと前記入力データとに基づいて当該他のゲーム装置で実行されたゲーム処理の結果データを当該他のゲーム装置から取得して出力装置に出力する出力制御手段として機能させる、ゲームプログラムである。
【００２８】
第１０の発明は、ネットワーク上で同種の他のゲーム装置と接続でき、ゲームプレイするためのゲームデータを少なくとも他のゲーム装置と接続可能な暗号化装置で暗号化した暗号化ゲームデータを当該他のゲーム装置を介して取得し記憶する記憶手段を備え、ネットワーク上で同種の他のゲーム装置と接続できるゲーム装置のゲーム制御方法であって、ゲーム装置のコンピュータは、（ａ）記憶手段によって記憶された暗号化ゲームデータを他のゲーム装置に送信し、（ｂ）ユーザの入力に応じて、当該入力に対応する入力データを他のゲーム装置に送信し、そして（ｃ）暗号化ゲームデータを少なくとも他のゲーム装置と接続可能な復号装置で復号したゲームデータと前記入力データとに基づいて当該他のゲーム装置で実行されたゲーム処理の結果データを当該他のゲーム装置から取得して出力装置に出力する、ゲーム制御方法である。
【００２９】
第８−第１０の発明においても、第１の発明と同様に、ゲーム装置以外の機器でゲームデータを管理する必要がなく、不正行為を出来る限り防止することができる。
【００３０】
第１１の発明は、ネットワーク上でそれぞれ接続可能な第１ゲーム装置、第２ゲーム装置および第３ゲーム装置と、少なくとも第３ゲーム装置に接続可能な暗号化装置および少なくとも当該第３ゲーム装置に接続可能な復号装置を含み、当該第１ゲーム装置と当該第２ゲーム装置との間で通信ゲームをプレイする、ゲームシステムである。第１ゲーム装置は、通信ゲームをプレイするための第１ゲームデータを暗号化装置で暗号化した第１暗号化ゲームデータを第３ゲーム装置を介して取得し記憶する第１記憶手段、第１記憶手段によって記憶された第１暗号化ゲームデータを第３ゲーム装置に送信する第１暗号化データ送信手段、および第１ゲーム装置のユーザの入力に応じて、当該入力に対応する第１入力データを第３ゲーム装置に送信する第１入力データ送信手段を備える。第２ゲーム装置は、通信ゲームをプレイするための第２ゲームデータを暗号化装置で暗号化した第２暗号化ゲームデータを第３ゲーム装置を介して取得し記憶する第２記憶手段、第２記憶手段によって記憶された第２暗号化ゲームデータを第３ゲーム装置に送信する第２暗号化データ送信手段、および第２ゲーム装置のユーザの入力に応じて、当該入力に対応する第２入力データを第３ゲーム装置に送信する第２入力データ送信手段を備える。第３ゲーム装置は、第１入力データ送信手段によって送信された第１入力データ、第２入力データ送信手段によって送信された第２入力データ、第１暗号化データ送信手段によって送信された第１暗号化ゲームデータを復号した第１ゲームデータおよび第２暗号化データ送信手段によって送信された第２暗号化ゲームデータを復号した第２ゲームデータを取得するゲームデータ取得手段、ゲームデータ取得手段によって取得された第１ゲームデータおよび第２ゲームデータに基づいて、ゲーム処理を実行するゲーム処理実行手段、およびゲーム処理実行手段によって実行されたゲーム処理の結果データを第１ゲーム装置および第２ゲーム装置に送信する結果データ送信手段を備える。第１ゲーム装置および第２ゲーム装置の各々は、結果データ送信手段によって送信された結果データを出力装置に出力させる出力制御手段をさらに備える。
【００３１】
第１１の発明によれば、第１ゲーム装置と第２ゲームとで通信ゲームをプレイする場合においても、第３ゲーム装置がそれぞれに記憶された暗号化ゲームデータを復号したゲームデータを取得して、ゲーム処理を実行し、その結果データが第１ゲーム装置および第２ゲーム装置に送信されるだけなので、第１ゲーム装置および第２ゲーム装置がそれらの間でゲームプレイされる通信ゲームについてのゲームデータに直接アクセスすることはない。よって、第１１の発明においても、第１の発明と同様に、他の機器でゲームデータを管理する必要がなく、不正行為を出来る限り防止することができる。
【発明の効果】
【００３２】
この発明によれば、暗号化ゲームデータを各ゲーム装置に記憶するので、ゲーム装置以外の機器でゲームデータを管理する必要がなく、不正行為を出来る限り防止することができる。
【００３３】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００３４】
【図１】図１はこの発明のゲームシステムの一例を示す。
【図２】図２は図１に示すゲーム装置の電気的な構成の一例を示すブロック図である。
【図３】図３は通信ゲームをプレイする場合にプレイヤおよびゲームマスタとしてマッチングされたゲーム装置で構成されるピアツーピアネットワークの一例を示す。
【図４】図４はデータロードする場合のプレイヤのゲーム装置、ゲームマスタのゲーム装置、復号サーバおよびマッチングサーバの大まかな処理の流れの一例を示す。
【図５】図５は通信ゲームをプレイする場合のプレイヤのゲーム装置およびゲームマスタのゲーム装置の大まかな処理の流れの一例を示す。
【図６】図６はデータセーブする場合のプレイヤのゲーム装置、ゲームマスタのゲーム装置、暗号化サーバおよびマッチングサーバの大まかな処理の流れの一部を示す。
【図７】図７はデータセーブする場合のプレイヤのゲーム装置、ゲームマスタのゲーム装置、暗号化サーバおよびマッチングサーバの大まかな処理の流れの続きを示す。
【図８】図８はバックアップノードを昇格およびマッチングする場合のプレイヤのゲーム装置、ゲームマスタのゲーム装置、バックアップノードのゲーム装置およびマッチングサーバの大まかな処理の流れの一部を示す。
【図９】図９はバックアップノードを昇格およびマッチングする場合のプレイヤのゲーム装置、ゲームマスタのゲーム装置、バックアップノードのゲーム装置およびマッチングサーバの大まかな処理の流れの続きを示す。
【図１０】図１０は図１に示したマッチングサーバに内蔵されるＲＡＭのメモリマップの一例を示す図である。
【図１１】図１１は図２に示したゲーム装置に内蔵されるＲＡＭのメモリマップの一例を示す図解図である。
【図１２】図１２は図１１に示すデータ記憶領域の具体的な内容を示す図である。
【図１３】図１３はマッチングサーバのプロセッサのマッチング処理の一例を示すフロー図である。
【図１４】図１４はマッチングサーバのプロセッサの正規判定処理の一例を示すフロー図である。
【図１５】図１５はマッチングサーバのプロセッサのバックアップ処理の一例を示すフロー図である。
【図１６】図１６は復号サーバのプロセッサの復号処理の一例を示すフロー図である。
【図１７】図１７は暗号化サーバのプロセッサの暗号化処理の一例を示すフロー図である。
【図１８】図１８はプレイヤのゲーム装置のＣＰＵのゲームプレイ処理の一部を示すフロー図である。
【図１９】図１９はプレイヤのゲーム装置のＣＰＵのゲームプレイ処理の他の一部を示すフロー図である。
【図２０】図２０はプレイヤのゲーム装置のＣＰＵのゲームプレイ処理のその他の一部を示すフロー図である。
【図２１】図２１はプレイヤのゲーム装置のＣＰＵのデータセーブ処理の一例を示すフロー図である。
【図２２】図２２はゲームマスタのゲーム装置のＣＰＵのデータロード処理の一例を示すフロー図である。
【図２３】図２３はゲームマスタのゲーム装置のＣＰＵのゲームプレイ処理の一例を示すフロー図である。
【図２４】図２４はゲームマスタのゲーム装置のＣＰＵの昇格処理を示すフロー図である。
【図２５】図２５はゲーマスタのゲーム装置のＣＰＵのデータセーブ処理の一例を示すフロー図である。
【発明を実施するための形態】
【００３５】
図１を参照して、この発明の一実施例であるゲームシステム１０は複数のゲーム装置１２を含み、複数のゲーム装置１２はネットワーク１４を介してマッチングサーバ１６、復号サーバ１８および暗号化サーバ２０と通信可能に接続される。
【００３６】
図２は、図１に示すゲーム装置１２の電気的な構成を示すブロック図である。図２に示すように、ゲーム装置１２は、ＣＰＵ３０を含み、ＣＰＵ３０には、ＲＡＭ３２、フラッシュメモリ３４、無線通信モジュール３６、入力装置３８、表示ドライバ４０およびＤ／Ａ変換器４４が接続される。また、表示ドライバ４０には、表示装置４２が接続され、Ｄ／Ａ変換器４４には、スピーカ４６が接続される。
【００３７】
ＣＰＵ３０は、ゲーム装置１２の全体制御を司る。ＲＡＭ３２は、ＣＰＵ３０のワークメモリやバッファメモリとして使用される。フラッシュメモリ３４は、ゲームのようなアプリケーションのプログラムを記憶したり、各種のデータを記憶（セーブ）したりするために使用される。
【００３８】
無線通信モジュール３６は、無線ＬＡＮに接続する機能を有する。したがって、ゲーム装置１２は、他のゲーム装置１２やコンピュータ（サーバ１６、１８、２０など）と直接またはネットワーク１４を介して通信することができる。
【００３９】
入力装置３８は、たとえば、ゲーム装置１０に設けられる各種の押しボタンないしスイッチであり、ユーザによって、メニュー選択やゲーム操作などの各種の操作に用いられる。ただし、入力装置３８としては、タッチパネルなどのポインティングデバイス、マイクおよびカメラなどの入力手段が、押しボタンないしスイッチに代えて、または、押しボタンないしスイッチとともに設けられてもよい。
【００４０】
表示ドライバ４０は、ＣＰＵ３０の指示の下、表示装置４２にゲーム画像などの各種画像を表示するために使用される。図示は省略するが、表示ドライバ４０は、ビデオＲＡＭ（ＶＲＡＭ）を内蔵している。
【００４１】
Ｄ／Ａ変換器４４は、ＣＰＵ３０から与えられる音声データをアナログのゲーム音声に変換し、スピーカ４６に出力する。ただし、ゲーム音声は、ゲームキャラクタの擬制音、効果音、音楽（ＢＧＭ）のようなゲームに必要な音を意味する。
【００４２】
なお、図２に示すゲーム装置１２の電気的な構成は単なる一例であり、これに限定される必要はない。
【００４３】
また、図示および詳細な説明は省略するが、図１に示すマッチングサーバ１６、復号サーバ１８および暗号化サーバ２０は、汎用のサーバであり、ＣＰＵのようなプロセッサ、メモリ（ＨＤＤ、ＲＯＭおよびＲＡＭなど）および通信モジュールなどのコンポーネントを備えている。このように、復号サーバ１８および暗号化サーバ２０を設けるのは、ゲーム装置１２以外の装置によって復号や暗号化を行うことにより、後述するように暗号化されたゲームデータがゲーム装置１２で不正に復号されるのを防止するためである。したがって、暗号化方式は任意の方式を採用することができるが、その方式などについては公開されない。
【００４４】
このようなゲームシステム１０においては、マッチングサーバ１６は、各ゲーム装置１２からの参加要求を受け付け、通信ゲームをプレイするプレイヤのゲーム装置１２をマッチングするとともに、その通信ゲームのゲームマスタとしてのゲーム装置１２をマッチングする。ただし、この実施例では、ゲーム装置１２（ＣＰＵ３０等）は、プレイヤとしての処理と、異なる２つの通信ゲーム（グループ）のゲームマスタとしての処理が可能である。したがって、ゲーム装置１２は、或るグループの通信ゲームにプレイヤとして参加するとともに、他のグループの通信ゲームにゲームマスタとして参加することができる。詳細な説明は省略するが、プレイヤとして参加する通信ゲームと、ゲームマスタとして参加する通信ゲームとは、同じ種類でも異なる種類でも構わない。
【００４５】
たとえば、ゲームレベル（経験値）や総プレイ時間が近似するユーザのゲーム装置１２同士がプレイヤのゲーム装置１２としてマッチングされる。ただし、ゲームレベル（経験値）や総プレイ時間については、ユーザ（ゲーム装置１２）毎に、マッチングサーバ１６で管理されている。また、プレイヤとしてマッチングされたゲーム装置１２以外のゲーム装置１２であって、２つのグループのゲームマスタまたは後述するバックアップノードとして割り当てられていないゲーム装置１２がゲームマスタのゲーム装置１２としてマッチングされる。以下、ゲーム装置１２が２つのグループのゲームマスタとして機能する場合には、一方のグループについてのゲームマスタを「第１ゲームマスタ」といい、他方のグループについてのゲームマスタを「第２ゲームマスタ」ということにする。
【００４６】
また、マッチングサーバ１６は、マッチングしたプレイヤのゲーム装置１２とゲームマスタのゲーム装置１２とを１つのグループとして管理される。この実施例では、各グループの端末リストが生成され、メモリに記憶される。端末リストには、ゲーム装置１２の識別情報に対応して、このゲーム装置１２の接続情報およびマッチングされたプレイヤおよびゲームマスタの別（種類）が記述される。以下、この実施例では、ゲーム装置１２の識別情報および接続情報をまとめて端末情報ということがある。
【００４７】
たとえば、ゲーム装置１２の識別情報は、当該ゲーム装置１２に内蔵される無線通信モジュールのＭＡＣアドレス、当該ゲーム装置１２に付された固有の識別記号、当該ゲーム装置１２に付された名称（ユーザ名など）である。また、ゲーム装置１２の接続情報は、当該ゲーム装置１２に割り当てられたＩＰアドレスである。
【００４８】
マッチングサーバ１６では、このようなグループが参加要求のあったゲーム装置１２の数に応じて生成される。以下、この実施例では、１つのグループに着目してゲーム処理などについて説明するが、他のグループについても同様である。
【００４９】
この実施例では、ゲームマスタのゲーム装置１２は、プレイヤのゲーム装置１２と同種のゲーム装置１２であり、主として、自身がプレイヤとして参加していない通信ゲームをプレイするプレイヤのゲーム装置１２からの操作データに従ってゲーム処理を実行するゲーム装置１２を意味する。また、この実施例では、ゲームマスタのゲーム装置１２は、通信ゲームの開始に先立ってプレイヤのゲーム装置１２から送信されたセーブデータ（暗号化ゲームデータ）の復号を復号サーバ１８に依頼したり、プレイヤのゲーム装置１２からの指示に従ってゲーム処理によって生成されたゲームデータの暗号化を暗号化サーバ２０に依頼したりする。
【００５０】
なお、この実施例では、マッチングサーバ１６が、プレイヤのゲーム装置１２とゲームマスタのゲーム装置１２の両方をマッチングするようにしたが、プレイヤのゲーム装置１２とゲームマスタのゲーム装置１２を異なるサーバでマッチングするようにしてもよい。ただし、プレイヤのゲーム装置１２とゲームマスタのゲーム装置１２とを互いに関連付けるなどして、それらを１つのグループとして管理する必要がある。
【００５１】
この実施例では、１つのグループでは、２台のプレイヤのゲーム装置１２がマッチングされ、これらに関連して、３台のゲームマスタのゲーム装置１２がマッチングされる。そして、１つのグループを構成するプレイヤのゲーム装置１２およびゲームマスタのゲーム装置１２によって、図３に示すように、ピアツーピアネットワークが構築される。以下、この実施例では、各ゲーム装置１２を区別する必要がある場合には、２台のプレイヤのゲーム装置１２を、ゲーム装置Ａおよびゲーム装置Ｂと呼び、３台のゲームマスタのゲーム装置１２を、ゲーム装置Ｃ、ゲーム装置Ｄおよびゲーム装置Ｅと呼ぶことにする。
【００５２】
このように、プレイヤのゲーム装置１２およびゲームマスタのゲーム装置１２がマッチングされ、ピアツーピアネットワークが構築されると、ゲームプレイの処理については、マッチングされたゲーム装置１２間で実行される。したがって、ゲームサーバを用意することなく、ゲーム処理の負荷を分散させることができる。
【００５３】
また、ゲームプレイの処理をマッチングされてゲーム装置１２間で実行するため、マッチングサーバ１６は、端末リストを生成すると、グループ内の各ゲーム装置１２に生成した端末リストを送信する。したがって、各ゲーム装置１２に端末リストが記憶される。
【００５４】
この実施例では、ゲーム装置１２は、通信ゲームについてのゲームデータを暗号化した状態で記憶してある。ただし、ゲーム装置１２で復号できない形式で暗号化されたゲームデータ（以下、「暗号化ゲームデータ」）という。）が記憶（セーブ）される。このようにするのは、ゲーム装置１２のユーザによって生（平文）のゲームデータが改変（改竄）されるのを防止するためである。したがって、この実施例では、復号されたゲームデータは、ゲームマスタのゲーム装置１２に記憶され、ゲームマスタのゲーム装置１２のそれぞれが、プレイヤのゲーム装置１２からの操作データに基づいてゲーム処理を実行する。つまり、ゲームマスタのゲーム装置１２のそれぞれは、プレイヤのゲーム装置１２からの操作データに従い、そのゲームデータを用いて、ゲーム処理を実行するようにしてある。そして、処理結果（結果データ）をプレイヤのゲーム装置１２に送信する。
【００５５】
なお、仮に暗号化ゲームデータが改竄されてしまったとしても、復号する機器（この実施例では、復号サーバ１８）で復号することができないため、不正なゲームデータによってゲーム処理が行われることはほとんど無い。
【００５６】
この実施例では、ゲームデータは、プレイヤキャラクタや所持アイテムなどについてのパラメータ（種類、力、強さ、すばやさなど）のデータであり、操作データを含まないデータであるが、これに限定される必要はなく、改変(改竄）されることにより、通信ゲームを有利にまたは不利に進めることが可能なデータである。
【００５７】
したがって、プレイヤのゲーム装置１２に暗号化ゲームデータすなわちセーブデータが記憶されている場合には、通信ゲームの開始に先立って、データロードの処理を実行する。このデータロードの処理は、プレイヤのゲーム装置１２（Ａ、Ｂ）、ゲームマスタのゲーム装置１２（Ｃ−Ｅ）、マッチングサーバ１６および復号サーバ１８によって実行される。
【００５８】
なお、通信ゲームを初めてプレイする場合には、セーブデータは記憶されていないため、データロードの処理は実行されずに、ゲームマスタのゲーム装置１２（Ｃ−Ｅ）に初期値（デフォルト値）に基づくゲームデータが記憶される。
【００５９】
図４に示すように、プレイヤのゲーム装置Ａ、Ｂは、それぞれ、セーブデータ(暗号化ゲームデータ）をゲームマスタのゲーム装置Ｃ−Ｅの各々に送信する。以下、ゲーム装置Ａに記憶されている暗号化ゲームデータを「暗号化ゲームデータＡ」といい、ゲーム装置Ｂに記憶されている暗号化ゲームデータを「暗号化ゲームデータＢ」ということがある。
【００６０】
ただし、暗号化ゲームデータには、それを記憶しているゲーム装置Ａ、Ｂの識別情報がヘッダ情報（メタ情報）として付加されている。
【００６１】
ゲームマスタのゲーム装置Ｃ−Ｅは、それぞれ、暗号化ゲームデータＡを受信し、暗号化ゲームデータＢを受信する。次に、ゲーム装置Ｃ−Ｅは、それぞれ、暗号化ゲームデータＡの復号を依頼し、暗号化ゲームデータＢの復号を依頼する。具体的には、ゲーム装置Ｃ−Ｅは、それぞれ、復号の依頼と暗号化ゲームデータＡを復号サーバ１８に送信し、復号の依頼と暗号化ゲームデータＢを復号サーバ１８に送信する。
【００６２】
ただし、ゲームマスタのゲーム装置Ｃ−Ｅは、暗号化ゲームデータＡおよび暗号化ゲームデータＢを同時に受信したり、同時に復号を依頼したりする必要はない。
【００６３】
復号サーバ１８は、ゲームマスタのゲーム装置Ｃ−Ｅからの依頼が正規の依頼であるかどうかをマッチンングサーバ１６に問い合わせる。ただし、依頼毎に問い合わせを行う。具体的には、復号サーバ１８は、暗号化ゲームデータのメタ情報からプレイヤのゲーム装置１２の端末情報（以下、説明の都合上、「プレイヤ端末情報」という。）を取得するとともに、復号の依頼元の端末情報（以下、説明の都合上、「復号依頼元端末情報」という。）を取得し、プレイヤ端末情報と復号依頼元端末情報とを含む問い合わせをマッチングサーバ１６に送信する。
【００６４】
マッチングサーバ１６は、その問い合わせを受信すると、正規にマッチングされたゲームマスタかどうかを判定する。つまり、プレイヤのゲーム装置１２とゲームマスタのゲーム装置１２との組み合わせが正しいかどうかを判断する。具体的には、マッチングサーバ１６は、プレイヤ端末情報が示すゲーム装置１２と、復号依頼元端末情報が示すゲーム装置１２とが同一グループに属し、プレイヤ端末情報が示すゲーム装置１２がプレイヤとしてマッチングされ、復号依頼元端末情報が示すゲーム装置１２がゲームマスタとしてマッチングされているかどうかを判定する。そして、マッチングサーバ１６は、判定結果を復号サーバ１８に送信する。
【００６５】
復号サーバ１８は、判定結果を受信し、正規にマッチングされたゲームマスタであれば、暗号化ゲームデータを復号し、復号されたゲームデータを復号の依頼元であるゲームマスタのゲーム装置１２に送信する。
【００６６】
したがって、復号の依頼元であるゲームマスタのゲーム装置１２は、復号されたゲームデータを受信し、ＲＡＭ３２に記憶する。これによって、正規にマッチングされたゲームマスタのゲーム装置１２は、プレイヤのゲーム装置Ａおよびゲーム装置Ｂのそれぞれについてのゲームデータを得る。つまり、ゲームマスタのゲーム装置１２は、プレイヤのゲーム装置１２に代り、当該プレイヤのゲーム装置１２から送信された暗号化ゲームデータを復号したゲームデータを取得する。以下、説明の都合上、暗号化ゲームデータＡを復号したゲームデータを「ゲームデータＡ」といい、暗号化ゲームデータＢを復号したゲームデータを「ゲームデータＢ」という。
【００６７】
データロードの処理が終了すると、通信ゲームが開始される。通信ゲームが開始されると、プレイヤのゲーム装置Ａ、Ｂと、ゲームマスタのゲーム装置Ｃ−Ｅとによって、ゲームプレイの処理が実行される。
【００６８】
図５に示すように、ゲームプレイの処理では、プレイヤのゲーム装置Ａへの操作入力に応じた操作データ（以下、説明の都合上、「操作データＡ」という。）は、ゲーム装置Ｃ−Ｅのそれぞれに送信され、プレイヤのゲーム装置Ｂへの操作入力に応じた操作データ（以下、説明の都合上、「操作データＢ」という。）は、ゲーム装置Ｃ−Ｅのそれぞれに送信される。
【００６９】
ゲームマスタのゲーム装置Ｃ−Ｅのそれぞれは、操作データＡおよび操作データＢの両方を受信すると、この操作データＡおよび操作データＢに従うとともに、ゲームデータＡおよびゲームデータＢを用いて、通信ゲームのゲーム処理を実行する。そして、ゲーム処理の結果（結果データ）を、プレイヤのゲーム装置Ａおよびゲーム装置Ｂのそれぞれに送信する。
【００７０】
なお、ゲームマスタのゲーム装置Ｃ−Ｅは、プレイヤのゲーム装置Ａ、Ｂで行われる通信ゲームのゲーム処理を実行するためのゲームプログラムを予め記憶している。たとえば、プレイヤのゲーム装置Ａ、Ｂで行われる通信ゲームのゲーム処理を実行するためのゲームプログラムは、マッチングサーバ１６からダウロードされる。
【００７１】
ゲーム装置Ａおよびゲーム装置Ｂは、それぞれ、結果データを受信し、当該結果データを出力する。たとえば、ゲーム装置Ａおよびゲーム装置Ｂは、結果データに基づいて、ゲーム画像を描画（更新）および出力（表示）したり、ゲーム音声を生成および出力したりする。ただし、上述したように、プレイヤのゲーム装置１２は、全ゲームマスタのゲーム装置１２に操作データを送信し、全ゲームマスタのゲーム装置１２においてゲーム処理が実行され、この全ゲームマスタのゲーム装置１２の各々からの結果データを受信する。このため、プレイヤのゲーム装置１２では、受信したすべての（ここでは、３つの）結果データのうち、適正な結果データを採用して出力する。この実施例では、３つの結果データのうち、等しい結果データが適正な結果データとして採用される。つまり、多数決により、出力する結果データが決定される。
【００７２】
このように、等しい結果データを採用して出力するのは、正規にマッチングされたゲームマスタのゲーム装置１２ではあるものの、ゲームマスタのゲーム装置１２は、ゲーム処理を担当する通信ゲームにおけるプレイヤのゲーム装置１２の生のゲームデータにアクセスすることができ、その改変（改竄）が可能だからである。よって、上記のように、多数決により、１つの結果データを採用することにより、不正なゲームデータに基づくゲーム処理の結果データが通信ゲームに反映されるのを出来るだけ防止しているのである。これにより、他人の通信ゲームを邪魔するような不正行為を回避することができる。また、多数決により、採用する結果データを決定するのは、少数のユーザによって不正行為が行われていることを考慮するためである。これらのことは、後述する暗号化ゲームデータを多数決により決定する場合についても同様である。
【００７３】
ゲームが終了するまでは、上記のような処理が繰り返し実行される。ゲーム中に所定のイベントが発生したり、プレイヤの指示が入力されたりすることに応じて、または、ゲームが終了したことに応じて、データセーブの処理が実行される。データセーブの処理は、プレイヤのゲーム装置ＡおよびＢ、ゲームマスタのゲーム装置Ｃ−Ｅ、マッチングサーバ１６および暗号化サーバ２０によって実行される。
【００７４】
具体的には、図６に示すように、プレイヤのゲーム装置Ａ、Ｂは、データセーブの依頼を、ゲームマスタのゲーム装置Ｃ−Ｅのそれぞれに送信する。
【００７５】
ゲームマスタのゲーム装置Ｃ−Ｅは、それぞれ、データセーブの依頼を受信すると、ゲームデータの暗号化を暗号化サーバ２０に依頼する。具体的には、ゲーム装置Ｃ−Ｅの各々は、暗号化の依頼と、依頼元のプレイヤのゲーム装置１２のゲームデータとを暗号化サーバ２０に送信する。ただし、ゲームデータには、ゲーム装置Ａまたはゲーム装置Ｂの識別情報がヘッダ情報（メタ情報）として付加されている。
【００７６】
暗号化サーバ２０は、暗号化の依頼およびゲームデータを受信すると、正規の依頼かどうかをマッチングサーバ１６に問い合わせる。具体的には、暗号化サーバ２０は、ゲームデータのメタ情報からプレイヤ端末情報を取得するとともに、暗号化の依頼元の端末情報（以下、説明の都合上、「暗号化依頼元端末情報」という。）を取得し、プレイヤ端末情報と暗号化依頼元端末情報とを含む問い合わせをマッチングサーバ１６に送信する。
【００７７】
マッチングサーバ１６は、その問い合わせを受信すると、正規にマッチングされたゲームマスタかどうかを判定する。具体的には、マッチングサーバ１６は、プレイヤ端末情報が示すゲーム装置１２と、暗号化依頼元端末情報が示すゲーム装置１２とが同一グループに属し、プレイヤ端末情報が示すゲーム装置１２がプレイヤとしてマッチングされ、暗号化依頼元端末情報が示すゲーム装置１２がゲームマスタとしてマッチングされているかどうかを判定する。そして、マッチングサーバ１６は、判定結果を暗号化サーバ２０に送信する。
【００７８】
暗号化サーバ２０は、判定結果を受信し、正規にマッチングされたゲームマスタであれば、ゲームデータを暗号化し、図７に示すように、暗号化ゲームデータを暗号化の依頼元であるゲームマスタのゲーム装置１２に送信する。さらに、ゲームマスタのゲーム装置１２は、暗号化ゲームデータを受信すると、データセーブの依頼元であるプレイヤのゲーム装置１２に暗号化ゲームデータを送信する。当然のことではあるが、暗号化サーバ２０では、復号サーバ１８で復号可能な形式で、ゲームデータが暗号化される。
【００７９】
したがって、データセーブを依頼したプレイヤのゲーム装置１２は、暗号化ゲームデータを受信する。ただし、上述したように、プレイヤのゲーム装置１２は、全ゲームマスタのゲーム装置１２にデータセーブの依頼を送信しているため、正規にマッチングされている場合には、全ゲームマスタのゲーム装置１２から暗号化ゲームデータが送信される。このため、プレイヤのゲーム装置１２では、受信したすべての（ここでは、３つの）暗号化ゲームデータのうち、適正な暗号化ゲームデータを採用してセーブする。この実施例では、３つの暗号化ゲームデータのうち、等しい暗号化ゲームデータが適正な暗号化ゲームデータとして採用される。つまり、多数決により、セーブする１つの暗号化ゲームデータが決定される。
【００８０】
また、ゲーム中に、ゲームマスタのゲーム装置１２が接続（通信）を切断することがある。このような場合であっても、通信ゲームを継続するために、控えのゲーム装置１２（以下、「バックアップノード」という。）を用意しておいてもよい。かかる場合には、マッチングサーバ１６は、ゲーム装置１２からの参加要求に応じて、プレイヤのゲーム装置１２とゲームマスタのゲーム装置１２とをマッチングする際に、さらに、バックアップノードのゲーム装置１２をマッチング（決定）する。したがって、マッチングサーバ１６で生成され、各ゲーム装置１２に送信される端末リストには、バックアップノードのゲーム装置１２についての識別情報、接続情報およびその種類（バックアップノード）が含まれる。このバックアップノードのマッチング方法は、ゲームマスタのマッチング方法と同じであるため、重複した説明は省略する。
【００８１】
ゲームマスタのゲーム装置１２の接続が切断されると、バックアップノードのゲーム装置１２がゲームマスタとして昇格され、そして、新たにバックアップノードのゲーム装置１２がマッチングされる。
【００８２】
図８および図９を用いて、バックアップノードの昇格およびマッチングの処理について具体的に説明するが、ここでは、ゲーム装置Ｄが切断されたと仮定する。また、バックアップノードのゲーム装置１２は「ゲーム装置Ｆ」と呼ぶことにする。さらに、新たにマッチングされるバックアップノードのゲーム装置１２は「ゲーム装置Ｇ」と呼ぶことにする。
【００８３】
図８に示すように、プレイヤのゲーム装置Ａ、Ｂは、それぞれ、ゲーム装置Ｄの切断を検知する。この実施例では、プレイヤのゲーム装置１２は、ゲームマスタのゲーム装置１２に操作データを送信してから所定時間（たとえば、１０秒）を経過しても、結果データが得られない場合に、当該結果ゲームを得ることができないゲーム装置１２との接続が切断したことを検知する。
【００８４】
ゲーム装置Ａ、Ｂは、ゲーム装置Ｄの切断を検知すると、その旨を他方のゲーム装置Ｂ、Ａに通知する。したがって、ゲーム装置Ａ、Ｂは、他方のゲーム装置Ｂ、Ａからゲーム装置Ｄが切断した旨の通知を受信する。つまり、プレイヤのゲーム装置Ａ、Ｂ間で、ゲーム装置Ｄの切断が確認される。そして、ゲーム装置Ａ、Ｂは、それぞれ、バックアップノード（ゲーム装置Ｆ）の昇格を、接続が切断されていないゲームマスタのゲーム装置Ｃ、Ｅに通知する。
【００８５】
ゲーム装置Ｃ、Ｅは、バックアップノードの昇格の通知を受けると、それぞれ、ゲームデータをバックアップノードのゲーム装置Ｆに送信する。ゲーム装置Ｆは、バックアップノードとして待機しており、ゲームデータを受信すると、ゲームマスタに昇格する。ただし、実際には、バックアップノードのゲーム装置１２は、後述するように、端末リストが更新されたときに、ゲームマスタに昇格する。
【００８６】
また、プレイヤのゲーム装置Ａ、Ｂは、バックアップノードの昇格を、切断されていないゲームマスタのゲーム装置Ｃ、Ｅに通知すると、図９に示すように、新たなバックアップノードのマッチングをマッチングサーバ１６に依頼する。ただし、この依頼には、ゲーム装置Ｄが切断された旨の通知も含まれている。したがって、マッチングサーバ１６は、ゲーム装置Ｄがゲーム装置Ａおよびゲーム装置Ｂを含むグループから離脱したことを知ることができる。
【００８７】
マッチングサーバ１６は、新たなバックアップノードのマッチングの依頼を受信すると、新たなバックアップノードのゲーム装置１２（ここでは、ゲーム装置Ｇ）をマッチングする。このマッチング方法は、上述したゲームマスタ（バックアップノード）のゲーム装置１２をマッチングする方法と同じである。マッチングサーバ１６は、新たなバックアップノードのゲーム装置Ｇをマッチングすると、端末リストを更新する。ここでは、ゲーム装置Ｄの識別情報、接続情報および種類（ゲームマスタ）を削除し、ゲーム装置Ｆの種類をゲームマスタに変更し、そして、ゲーム装置Ｆの識別情報、接続情報および種類（バックアップノード）を追記する。その後、マッチングサーバ１６は、更新した端末リストをグループの各ゲーム装置１２（ゲーム装置Ａ−Ｃ、Ｅ−Ｇ）に送信する。
【００８８】
ゲーム装置Ａ−Ｃ、Ｅ−Ｇは、当該グループについての端末リストを受信し、当該グループについての端末リストを更新する。したがって、プレイヤのゲーム装置Ａ、Ｂは、ゲームマスタのゲーム装置Ｃ、Ｅ、Ｆと通信することにより、通信ゲームを継続する。つまり、バックアップノードを用意しておければ、ゲームマスタのゲーム装置１２が切断（離脱）したとしても、通信ゲームが終了（強制終了）されたり、再起動されたりすることがない。
【００８９】
図１０はマッチングサーバ１６に内蔵されるＲＡＭのメモリマップ１００の一例を示す。図１０に示すように、マッチングサーバ１６に内蔵されるＲＡＭは、プログラム記憶領域１０２およびデータ記憶領域１０４を含む。プログラム記憶領域１０２には、情報処理プログラムが記憶され、情報処理プログラムは、メイン処理プログラム１０２ａ、通信プログラム１０２ｂ、マッチング処理プログラム１０２ｃおよび判定処理プログラム１０２ｄなどによって構成される。
【００９０】
メイン処理プログラム１０２ａは、マッチングサーバ１６のメインルーチンを処理するためのプログラムである。通信処理プログラム１０２ｂは、ゲーム装置１２、復号サーバ１８および暗号化サーバ２０などの装置やコンピュータと直接またはネットワーク１４を介して通信するためのプログラムである。
【００９１】
マッチング処理プログラム１０２ｃは、プレイヤのゲーム装置１２、ゲームマスタのゲーム装置１２およびバックアップノードのゲーム装置１２をマッチングし、グループ毎の端末リストデータを作成するためのプログラムである。判定処理プログラム１０２ｄは、暗号化ゲームデータの復号やゲームデータの暗号化の依頼元のゲーム装置１２が正規のゲームマスタであるかどうかを判定するためのプログラムである。
【００９２】
図示は省略するが、プログラム記憶領域１０２には、ゲーム装置１２にダウンロードするためのゲームプログラムなども記憶される。
【００９３】
データ記憶領域１０４には、参加者リストデータ１０４ａおよびマッチングデータ１０４ｂなどが記憶される。参加者リストデータ１０４ａは、通信ゲームへの参加を受け付けた全ゲーム装置１２の端末情報（識別情報および接続情報）をリスト（テーブル）で示したデータである。
【００９４】
マッチングデータ１０４ｂは、プレイヤ、ゲームマスタおよびバックアップノードとしてマッチングしたゲーム装置１２の端末リストをグループ単位で記憶したデータである。つまり、マッチングデータ１０４ｂは、第１グループ端末リストデータ１０４０、第２グループ端末リストデータ１０４２、…を含む。各端末リストデータ（１０４０、１０４２、…）は、グループに含まれる各ゲーム装置１２の端末情報が、マッチングされた情報（プレイヤ、ゲームマスタおよびバックアップノードの別）とともに記述されたリスト（テーブル）のデータである。
【００９５】
図示は省略するが、データ記憶領域１０４には、情報処理プログラムの実行に必要な他のデータが記憶されたり、タイマ（カウンタ）やフラグが設けられたりする。
【００９６】
図１１および図１２は図２に示したゲーム装置１２に内蔵されるＲＡＭ３２のメモリマップ２００の一例を示す。図１１に示すように、ＲＡＭ３２は、プログラム記憶領域２０２およびデータ記憶領域２０４を含む。プログラム記憶領域２０２は、ゲームプログラムを記憶し、ゲームプログラムは、メイン処理プログラム２０２ａ、通信プログラム２０２ｂ、プレイヤ用ゲーム処理プログラム２０２ｃ、第１ゲームマスタ用ゲーム処理プログラム２０２ｄ、第２ゲームマスタ用ゲーム処理プログラム２０２ｅ、データロード処理プログラム２０２ｆおよびセーブ処理プログラム２０２ｇなどによって構成される。
【００９７】
なお、ゲームプログラムは、フラッシュメモリ３４からロードされたり、ネットワーク１４を介して接続されるコンピュータないしサーバからダウロードされたり、ゲームカートリッジやＳＤカードのような記憶媒体からロードされたりする。
【００９８】
メイン処理プログラム２０２ａは、通信ゲームのメインルーチンを処理するためのプログラムである。通信プログラム２０２ｂは、他のゲーム装置（１２）やコンピュータと直接またはネットワーク１４を介して通信するためのプログラムである。
【００９９】
プレイヤ用ゲーム処理プログラム２０２ｃは、プレイヤとして機能する場合のゲーム処理プログラムであり、主として、ゲームマスタからの結果データに基づいてゲーム画像を描画および表示したり、ゲーム音声を生成および出力したりして、通信ゲームを進行させる。
【０１００】
第１ゲームマスタ用ゲーム処理プログラム２０２ｄは、第１ゲームマスタとして機能する場合のゲーム処理プログラムであり、主として、第１ゲームマスタとして参加しているグループの各プレイヤのゲーム装置１２からの操作データに従って、ゲームデータ（後述する第１ゲームマスタ用ゲームデータ２１２ｃ）を用いてゲーム処理を実行する。
【０１０１】
第２ゲームマスタ用ゲーム処理プログラム２０２ｅは、第２ゲームマスタとして機能する場合のゲーム処理プログラムであり、主として、第２ゲームマスタとして参加しているグループの各プレイヤのゲーム装置１２からの操作データに従って、ゲームデータ（後述する第２ゲームマスタ用ゲームデータ２１４ｃ）を用いてゲーム処理を実行する。
【０１０２】
データロード処理プログラム２０２ｆは、プレイヤとして機能する場合と、ゲームマスタとして機能する場合のデータロード処理を実行するためのプログラムである。具体的には、当該ゲーム装置１２がプレイヤとして機能する場合には、データロード処理プログラム２０２ｆは、通信ゲームの開始に先立って、ゲームマスタの各ゲーム装置１２にデータロードを依頼する。また、当該ゲーム装置１２がゲームマスタとして機能する場合には、データロード処理プログラム２０２ｆは、プレイヤのゲーム装置１２からのデータロードの依頼に応じて、復号サーバ１８に暗号化ゲームデータの復号を依頼し、これに応じて、復号サーバ１８で復号されたゲームデータ（第１ゲームマスタ用ゲームデータ２１２ｃ、第２ゲームマスタ用ゲームデータ２１４ｃ）をデータ記憶領域２０４に記憶する。
【０１０３】
セーブ処理プログラム２０２ｇは、プレイヤとして機能する場合と、ゲームマスタとして機能する場合のセーブ処理を実行するためのプログラムである。具体的には、当該ゲーム装置１２がプレイヤとして機能する場合には、セーブ処理プログラム２０２ｇは、所定のイベントの発生やプレイヤの指示またはゲーム終了に応じて、データセーブを全ゲームマスタのゲーム装置１２の各々に依頼し、これに応じて、各ゲームマスタのゲーム装置１２から送信される暗号化ゲームデータを受信し、等しい暗号化ゲームデータをフラッシュメモリ３４に記憶（セーブ）する。また、当該ゲーム装置１２がゲームマスタとして機能する場合には、セーブ処理プログラム２０２ｇは、プレイヤのゲーム装置１２からデータセーブの依頼があると、暗号化サーバ２０にゲームデータの暗号化を依頼し、これに応じて、暗号化サーバ２０から送信された暗号化ゲームデータを受信し、データセーブの依頼元のプレイヤのゲーム装置１２に送信する。
【０１０４】
図示は省略するが、プログラム記憶領域２０２には、画像表示プログラムや音声出力プログラムなども記憶される。
【０１０５】
図１２に示すように、データ記憶領域２０４は、さらに、プレイヤ用の記憶領域２１０、第１ゲームマスタ用の記憶領域２１２および第２ゲームマスタ用の記憶領域２１４を含む。
【０１０６】
プレイヤ用の記憶領域２１０には、操作データバッファ２１０ａおよびプレイヤ用送受信データバッファ２１０ｂが設けられる。操作データバッファ２１０ａは、入力装置３８からの操作データを記憶する。プレイヤ用送受信データバッファ２１０ｂは、ゲームマスタのゲーム装置１２やマッチングサーバ１６とやり取りするデータを記憶する。
【０１０７】
また、プレイヤ用の記憶領域２１０には、プレイヤ用端末リストデータ２１０ｃが記憶される。プレイヤ用端末リストデータ２１０ｃは、当該ゲーム装置１２がプレイヤとして参加しているグループの端末リストについてのデータである。
【０１０８】
さらに、プレイヤ用の記憶領域２１０には、タイマ２１０ｄが設けられる。このタイマ２１０ｄは、ゲームマスタのゲーム装置１２との接続が切断されたかどうかを判断するための所定時間（たとえば、１０秒）をカウントするために用いられる。
【０１０９】
図示は省略するが、プレイヤ用の記憶領域２１０には、プレイヤのゲーム装置１２として機能する場合に必要な他のデータが記憶されたり、他のタイマ(カウンタ）やフラグが設けられたりする。
【０１１０】
第１ゲームマスタ用の記憶領域２１２には、第１ゲームマスタ用送受信データバッファ２１２ａが設けられる。この第１ゲームマスタ用送受信データバッファ２１２ａは、当該ゲーム装置１２が第１ゲームマスタとして機能する場合に、プレイヤのゲーム装置１２、マッチングサーバ１６、復号サーバ１８および暗号化サーバ２０との間でやり取りするデータを記憶する。
【０１１１】
また、第１ゲームマスタ用の記憶領域２１２には、第１ゲームマスタ用端末リストデータ２１２ｂおよび第１ゲームマスタ用ゲームデータ２１２ｃが記憶される。第１ゲームマスタ用端末リストデータ２１２ｂは、当該ゲーム装置１２が第１ゲームマスタとしてマッチングされているグループについての端末リストのデータである。第１ゲームマスタ用ゲームデータ２１２ｃは、当該ゲーム装置１２が第１ゲームマスタとしてマッチングされているグループにおける各プレイヤのゲーム装置１２のゲームデータである。この実施例では、プレイヤのゲーム装置１２は２台であるため、第１ゲームマスタ用ゲームデータ２１２ｃには、２種類のゲームデータ（上記のゲームデータＡおよびゲームデータＢに相当する。）が含まれる。後述する第２ゲームマスタ用ゲームデータ２１４ｃも同様である。
【０１１２】
図示は省略するが、第１ゲームマスタ用の記憶領域２１２には、第１ゲームマスタのゲーム装置１２として機能する場合に必要な他のデータが記憶されたり、他のタイマ(カウンタ）やフラグが設けられたりする。
【０１１３】
第２ゲームマスタ用の記憶領域２１４には、第２ゲームマスタ用送受信データバッファ２１４ａが設けられる。この第２ゲームマスタ用送受信データバッファ２１４ａは、当該ゲーム装置１２が第２ゲームマスタとして機能する場合に、プレイヤのゲーム装置１２、マッチングサーバ１６、復号サーバ１８および暗号化サーバ２０との間でやり取りするデータを記憶する。
【０１１４】
また、第２ゲームマスタ用の記憶領域２１４には、第２ゲームマスタ用端末リストデータ２１４ｂおよび第２ゲームマスタ用ゲームデータ２１４ｃが記憶される。第２ゲームマスタ用端末リストデータ２１４ｂは、当該ゲーム装置１２が第２ゲームマスタとしてマッチングされているグループについての端末リストのデータである。第２ゲームマスタ用ゲームデータ２１４ｃは、当該ゲーム装置１２が第２ゲームマスタとしてマッチングされているグループにおける各プレイヤのゲーム装置１２のゲームデータである。
【０１１５】
図示は省略するが、第２ゲームマスタ用の記憶領域２１４には、第２ゲームマスタのゲーム装置１２として機能する場合に必要な他のデータが記憶されたり、他のタイマ(カウンタ）やフラグが設けられたりする。
【０１１６】
以下、ゲーム装置１２、マッチングサーバ１６、復号サーバ１８、暗号化サーバ２０のそれぞれで実行される具体的な処理について説明する。
【０１１７】
図１３、図１４および図１５は、マッチングサーバ１６のプロセッサのマッチング処理、正規判定処理および追加処理をそれぞれ示す。これらの処理は、それぞれ異なるタスクで実行される。図１３に示すマッチング処理は、所定時間（たとえば、１０分）毎に実行され、図１４に示す正規判定処理および図１５に示す追加処理は、ゲーム装置１２からの要求に応じて実行される。したがって、ゲーム装置１２からの要求があれば、要求毎にタスクが起動（実行）される。
【０１１８】
図１３は、マッチングサーバのプロセッサのマッチング処理の一例を示すフロー図である。図１３に示すように、マッチングサーバ１６のプロセッサはマッチング処理を開始すると、ステップＳ１で、ゲーム装置１２からの参加要求を受け付ける。詳細な説明は省略するが、ゲーム装置１２からの参加要求は、当該ゲーム装置１２の識別情報および接続情報を含む。
【０１１９】
次のステップＳ３では、参加要求のあったゲーム装置１２の中から、２台のプレイヤのゲーム装置１２をマッチングする。続いて、ステップＳ５では、３台のゲームマスタのゲーム装置１２をマッチングする。さらに、ステップＳ７で、バックアップノードのゲーム装置１２をマッチングする。
【０１２０】
次のステップＳ９では、端末リストを生成する。つまり、マッチングサーバ１６のプロセッサは、ステップＳ３でマッチングされた２台のプレイヤのゲーム装置１２、ステップＳ５でマッチングされた３台のゲームマスタのゲーム装置１２およびステップＳ７でマッチングされた１台のバックアップノードのゲーム装置１２で構成されるグループについての端末リストを作成する。そして、ステップＳ１１で、マッチングされた全ゲーム装置１２に端末リストを送信して、マッチング処理を終了する。
【０１２１】
また、マッチングサーバ１６のプロセッサは、復号サーバ１８または暗号化サーバ２０から判定処理の依頼があると、図１４に示すように、正規判定の処理を開始し、ステップＳ２１で、データロードを依頼または暗号化ゲームデータを送信したプレイヤのゲーム装置１２の識別情報（プレイヤ端末情報）と、依頼元のゲームマスタのゲーム装置１２の識別情報（復号依頼元端末情報または暗号化依頼元端末情報）を取得する。次のステップＳ２３では、正規にマッチングされているかどうかを判定する。つまり、マッチングサーバ１６のプロセッサは、マッチングデータ１０４ｂを参照して、ステップＳ２１で取得したプレイヤのゲーム装置１２の識別情報と、依頼元のゲームマスタのゲーム装置１２の識別情報とが、同じグループに属し、プレイヤおよびゲームマスタが正しくマッチングされているかどうかを判定する。
【０１２２】
続くステップＳ２５では、正規にマッチングされているかどうかを判断する。ステップＳ２５で“ＹＥＳ”であれば、つまり正規にマッチングされていれば、ステップＳ２７で、正規にマッチングされていることを問い合わせ元の復号サーバ１８または暗号化サーバ２０に通知して、正規判定処理を終了する。一方、ステップＳ２５で“ＮＯ”であれば、つまり正規にマッチングされていなければ、ステップＳ２９で、正規にマッチングされていないことを問い合わせ元の復号サーバ１８または暗号化サーバ２０に通知して、正規判定処理を終了する。
【０１２３】
また、マッチングサーバ１６のプロセッサは、プレイヤのゲーム装置１２からの新たなバックアップノードのマッチングの依頼があると、図１５に示すように、追加処理を開始し、ステップＳ４１で、新たなバックアップノードのゲーム装置１２をマッチングする。
【０１２４】
なお、上述したように、バックアップノードのマッチングの依頼には、接続が切断されたゲーム装置１２の識別情報も含まれる。
【０１２５】
次のステップＳ４３では、当該グループの端末リストを更新する。上述したように、マッチングサーバ１６のプロセッサは、端末リストにおいて、切断されたゲーム装置１２の識別情報、接続情報および種類を削除し、バックアップノードのゲーム装置１２（ゲーム装置Ｆ）の種類をバックアップノードからゲームマスタに変更するとともに、ステップＳ４１でマッチングしたゲーム装置１２（ゲーム装置Ｇ）の識別情報、接続情報および種類（バックアップノード）を追加する。
【０１２６】
そして、ステップＳ４５で、更新した端末リストを当該グループの全ゲーム装置１２に送信する。したがって、後述するゲーム装置１２の処理において、端末リストが更新され、その後は、更新された端末リストに従って、プレイヤのゲーム装置１２とゲームマスタのゲーム装置１２とが通信し、通信ゲームが進行される。
【０１２７】
図１６は、復号サーバ１８のプロセッサの復号処理を示すフロー図である。プレイヤのゲーム装置１２から暗号化ゲームデータとともに復号の依頼を受信すると、復号サーバ１８のプロセッサは、復号処理を開始し、ステップＳ６１で、正規の依頼であるかどうかをマッチングサーバ１６に問い合わせる。
【０１２８】
続くステップＳ６３では、マッチングサーバ１６から判定結果を受信したかどうかを判断する。ステップＳ６３で“ＮＯ”であれば、つまりマッチングサーバ１６からの判定結果を受信していなければ、同じステップＳ６３に戻る。つまり、復号サーバ１８のプロセッサは、判定結果を受信するのを待機する。一方、ステップＳ６３で“ＹＥＳ”であれば、つまりマッチングサーバ１６からの判定結果を受信すれば、ステップＳ６５で、正規の依頼であるかどうかを判断する。つまり、復号サーバ１８のプロセッサは、受信した判定結果が正規の依頼であることを示すかどうかを判断する。
【０１２９】
ステップＳ６５で“ＮＯ”であれば、つまり正規の依頼でなければ、そのまま復号処理を終了する。つまり、暗号化ゲームデータは復号されないため、正規にマッチングされていないゲーム装置１２に、生のゲームデータが送信されることはない。一方、ステップＳ６５で“ＹＥＳ”であれば、つまり正規の依頼であれば、ステップＳ６７で、暗号化ゲームデータを復号して、ステップＳ６９で、ゲームデータを、復号の依頼元であるゲームマスタのゲーム装置１２に送信して、復号処理を終了する。
【０１３０】
上述したように、復号の依頼は、各グループの全ゲームマスタのゲーム装置１２の各々から送信されるため、このような復号処理は、復号の依頼毎に実行される。したがって、同時期に復号の依頼がある場合には、各復号処理が並列的に実行される。
【０１３１】
図１７は、暗号化サーバ２０のプロセッサの暗号化処理を示すフロー図である。ゲームマスタのゲーム装置１２からゲームデータとともに暗号化の依頼を受信すると、暗号化サーバ２０のプロセッサは、暗号化処理を開始し、ステップＳ８１で、正規の依頼であるかどうかをマッチングサーバ１６に問い合わせる。
【０１３２】
続くステップＳ８３では、マッチングサーバ１６から判定結果を受信したかどうかを判断する。ステップＳ８３で“ＮＯ”であれば、つまりマッチングサーバ１６からの判定結果を受信していなければ、同じステップＳ８３に戻る。つまり、暗号化サーバ２０のプロセッサは、判定結果を受信するのを待機する。一方、ステップＳ８３で“ＹＥＳ”であれば、つまりマッチングサーバ１６からの判定結果を受信すれば、ステップＳ８５で、正規の依頼であるかどうかを判断する。つまり、暗号化サーバ２０のプロセッサは、受信した判定結果が正規の依頼であることを示すかどうかを判断する。
【０１３３】
ステップＳ８５で“ＮＯ”であれば、つまり正規の依頼でなければ、そのまま暗号化処理を終了する。つまり、ゲームデータは暗号化されないため、正規にマッチングされていないゲーム装置１２に、暗号化ゲームデータが送信されることはない。一方、ステップＳ８５で“ＹＥＳ”であれば、つまり正規の依頼であれば、ステップＳ８７で、ゲームデータを暗号化して、ステップＳ８９で、暗号化ゲームデータを、暗号化の依頼元であるゲームマスタのゲーム装置１２に送信して、暗号化処理を終了する。
【０１３４】
上述したように、暗号化の依頼は、各グループの全ゲームマスタのゲーム装置１２の各々から送信されるため、このような暗号化処理は、暗号化の依頼毎に実行される。したがって、同時期に暗号化の依頼がある場合には、各暗号化処理が並列的に実行される。
【０１３５】
図１８−図２０は、プレイヤのゲーム装置１２のＣＰＵ３０のゲームプレイ処理を示すフロー図である。図２１は、プレイヤのゲーム装置１２のＣＰＵ３０のデータセーブ処理を示すフロー図である。図２２は、ゲームマスタのゲーム装置１２のＣＰＵ３０のデータロード処理を示すフロー図である。図２３は、ゲームマスタのゲーム装置１２のＣＰＵ３０のゲームプレイ処理を示すフロー図である。図２４は、ゲームマスタのゲーム装置１２のＣＰＵ３０の追加処理を示すフロー図である。図２５は、ゲームマスタのゲーム装置１２のＣＰＵ３０のデータセーブ処理を示すフロー図である。
【０１３６】
以下、１つのグループに含まれるプレイヤのゲーム装置１２のＣＰＵ３０の処理とゲームマスタのゲーム装置１２のＣＰＵ３０の処理として説明する。ただし、上述したように、１台のゲーム装置１２は、或るグループのプレイヤと、他の２つのグループのゲームマスタまたはバックアップノードとして機能する。このため、１台のゲーム装置１２に着目すると、図１８−図２４に示す各処理は、当該ゲーム装置１２で実行される場合がある。また、２つのグループのゲームマスタとして機能する場合には、２つのグループのそれぞれについて、図２２−図２５に示す各処理が実行される。
【０１３７】
なお、図示および詳細な説明は省略するが、上述したように、プレイヤのゲーム装置１２は、通信ゲーム（ゲームプレイ）の開始に先立って、暗号化ゲームデータを各ゲームマスタのゲーム装置１２に送信する、データロードの処理を実行する。
【０１３８】
図１８に示すように、プレイヤのゲーム装置１２のＣＰＵ３０は、ゲームプレイ処理を開始すると、ステップＳ１０１で、操作入力があるかどうかを判断する。ここでは、ＣＰＵ３０は、操作データバッファ２１０ａに、操作データが記憶されているかどうかを判断する。ステップＳ１０１で“ＮＯ”であれば、つまり操作入力が無ければ、ステップＳ１１７に進む。一方、ステップＳ１０１で“ＹＥＳ”であれば、つまり操作入力が有れば、ステップＳ１０３で、操作データを各ゲームマスタのゲーム装置１２に送信し、ステップＳ１０５で、タイマ２１０ｄをリセットおよびスタートする。
【０１３９】
続いて、ステップＳ１０７では、全ゲームマスタのゲーム装置１２から結果データを受信したかどうかを判断する。ステップＳ１０７で“ＮＯ”であれば、つまり結果データが送信されないゲームマスタのゲーム装置１２が存在する場合には、図１９に示すステップＳ１１９に進む。一方、ステップＳ１０７で“ＹＥＳ”であれば、つまり全ゲームマスタのゲーム装置１２から結果データを受信すれば、ステップＳ１０９で、等しい結果データを採用する。そして、ステップＳ１１１で、採用された結果データを反映する。つまり、ＣＰＵ３０は、採用された結果データに基づいてゲーム画像を描画および表示装置４２に出力（表示）したり、ゲーム音声を生成およびスピーカ４６に出力したりして、ゲームを進行させる。
【０１４０】
そして、ステップＳ１１７では、ゲーム終了かどうかを判断する。ＣＰＵ３０は、ステップＳ１１７では、ゲーム終了の指示が入力されたり、ゲームオーバになったりしたかどうかを判断する。ステップＳ１１７で“ＮＯ”であれば、つまりゲーム終了でなければ、そのままステップＳ１０１に戻る。一方、ステップＳ１１７で“ＹＥＳ”であれば、ゲームプレイ処理を終了する。
【０１４１】
上述したように、結果データが送信されないゲームマスタのゲーム装置１２が存在する場合には、図１９に示すステップＳ１１９で、所定時間を経過したかどうかを判断する。つまり、ＣＰＵ３０は、タイマ２１０ｄのカウント値が所定時間を経過したかどうかを判断する。ステップＳ１１９で“ＮＯ”であれば、つまり所定時間を経過していなければ、そのまま図１８に示したステップＳ１０７に戻る。つまり、ＣＰＵ３０は、結果データを受信するのを待機する。
【０１４２】
一方、ステップＳ１１９で“ＹＥＳ”であれば、つまり所定時間を経過すれば、ステップＳ１２１で、結果データが送信されないゲーム装置１２を、切断されたゲーム装置１２として検知する。次のステップＳ１２３で、切断されたゲーム装置１２を他方のプレイヤのゲーム装置１２に通知する。そして、ステップＳ１２５で、他方のプレイヤのゲーム装置１２から切断通知があるかどうかを判断する。ステップＳ１２５で“ＮＯ”であれば、つまり他方のゲーム装置１２からの切断通知が無ければ、そのままステップＳ１２５に戻る。
【０１４３】
なお、この実施例では、他方のゲーム装置１２からの切断通知が無ければ、そのままステップＳ１２５に戻るようにしてあるが、所定時間（たとえば、１０秒）を経過しても、切断通知が無い場合には、誤って切断されたゲーム装置１２を検知した可能性があるため、再度結果データの受信を行うために、ステップＳ１０７に戻るようにしてもよい。もしくは、他方のプレイヤのゲーム装置１２が切断されている可能性があるため、ゲームプレイ処理を強制的に終了するようにしてもよい。
【０１４４】
また、ステップＳ１２５で“ＹＥＳ”であれば、つまり他方のプレイヤのゲーム装置１２からの切断通知が有れば、図２０に示すステップＳ１２７で、切断されていないゲームマスタのゲーム装置１２にバックアップノードの昇格を通知する。次のステップＳ１２９では、マッチングサーバ１６にバックアップノードのマッチングの依頼を送信する。このとき、ＣＰＵ３０は、切断されたゲーム装置１２の識別情報も送信する。
【０１４５】
そして、ステップＳ１３１では、端末リストを受信したかどうかを判断する。ステップＳ１３１で“ＮＯ”であれば、つまり端末リストを受信していなければ、同じステップＳ１３１に戻る。一方、ステップＳ１３１で“ＹＥＳ”であれば、つまり端末リストを受信すれば、ステップＳ１３３で、端末リストを更新して、図１８に示したステップＳ１１７に戻る。ステップＳ１３３では、プレイヤ用端末リストデータ２１０ｃが示す端末リストが、受信した端末リストに置き換えられる。
【０１４６】
図２１は、プレイヤのゲーム装置１２のＣＰＵ３０のデータセーブ処理を示すフロー図である。ゲームプレイ中に所定のイベントが発生したり、ゲームプレイ中にデータセーブの指示が入力されたり、ゲームプレイ処理を終了したりすることに応じて、データセーブ処理が開始される。
【０１４７】
プレイヤのゲーム装置１２のＣＰＵ３０は、データセーブ処理を開始すると、図２１に示すように、ステップＳ１５１で、データセーブの依頼を各ゲームマスタのゲーム装置１２に送信する。次のステップＳ１５３では、全ゲームマスタのゲーム装置１２から暗号化ゲームデータを受信したかどうかを判断する。
【０１４８】
ステップＳ１５３で“ＮＯ”であれば、つまり暗号化ゲームデータを送信していないゲームマスタのゲーム装置１２が存在する場合には、そのままステップＳ１５３に戻る。一方、ステップＳ１５３で“ＹＥＳ”であれば、つまり全ゲームマスタのゲーム装置１２から暗号化ゲームデータを受信すれば、ステップＳ１５５で、等しい暗号化ゲームデータを採用し、ステップＳ１５７で、採用した暗号化ゲームデータをフラッシュメモリ３４にセーブして、データセーブ処理を終了する。
【０１４９】
なお、この実施例では、ステップＳ１５３で“ＮＯ”の場合には、そのまま同じステップＳ１５３の処理を繰り返すようにしたが、これに限定される必要はない。所定時間を経過しても、暗号化ゲームデータを受信しない場合には、データセーブの失敗を通知して、強制的にデータセーブ処理を終了するようにしてもよい。または、ゲームプレイの場合と同様に、所定時間を経過しても、暗号化ゲームデータを受信しない場合には、暗号化ゲームデータを送信しないゲームマスタのゲーム装置１２の切断を検知し、バックアップノードをゲームマスタに昇格させて、データセーブ処理を続行するようにしてもよい。
【０１５０】
図２２は、ゲームマスタのゲーム装置１２のＣＰＵ３０のデータロード処理を示すフロー図である。ただし、ここでは、第１ゲームマスタとして機能する場合について説明するが、第２ゲームマスタとして機能する場合も同様である。後述するゲームプレイ処理およびデータセーブ処理についても同様に、第１ゲームマスタとして機能する場合について説明する。
【０１５１】
プイレヤのゲーム装置１２から暗号化ゲームデータとともにデータロードの依頼を受信すると、ゲームマスタのゲーム装置１２のＣＰＵ３０は、データロード処理を開始し、図２２に示すように、ステップＳ１７１で、暗号化ゲームデータおよび復号の依頼を復号サーバ１８に送信する。
【０１５２】
続くステップＳ１７３では、ゲームデータを受信したかどうかを判断する。ステップＳ１７３で“ＮＯ”であれば、つまりゲームデータを受信していなければ、そのまま同じステップＳ１７３に戻る。一方、ステップＳ１７３で“ＹＥＳ”であれば、つまりゲームデータを受信すれば、ステップＳ１７５で、ゲームデータを記憶して、データロード処理を終了する。つまり、ステップＳ１７５では、ＣＰＵ３０は、第１ゲームマスタ用の記憶領域２１２に設けられた第１ゲームマスタ用送受信データバッファ２１２ａに記憶されたゲームデータを、第１ゲームマスタ用ゲームデータ２１２ｃとして記憶する。ただし、プレイヤのゲーム装置１２は２台であるため、各プレイヤのゲーム装置１２からの依頼に応じて、データロードの処理がそれぞれ実行される。
【０１５３】
図２３は、ゲームマスタのゲーム装置１２のＣＰＵ３０のゲームプレイ処理のフロー図である。ゲームマスタのゲーム装置１２のＣＰＵ３０は、全プレイヤのゲーム装置１２からの操作データを受信すると、ゲームプレイ処理を開始し、ステップＳ１９１で、ゲーム処理を実行する。このとき、第１ゲームマスタ用ゲームデータ２１２ｃに対応するパラメータが用いられる。そして、ステップＳ１９３で、結果データを各プレイヤのゲーム装置１２に送信して、ゲームプレイ処理を終了する。
【０１５４】
図２４は、ゲームマスタのゲーム装置１２のＣＰＵ３０の昇格処理のフロー図である。ゲームマスタのゲーム装置１２のＣＰＵ３０は、プレイヤのゲーム装置１２からバックアップノードの昇格の通知を受信すると、昇格処理を開始し、ステップＳ２１１で、バックアップノードのゲーム装置１２にゲームデータを送信する。ただし、ここで送信されるのは、第１ゲームマスタ用ゲームデータ２１２ｃの複製である。
【０１５５】
次のステップＳ２１３では、端末リストを受信したかどうかを判断する。ステップＳ２１３で“ＮＯ”であれば、つまり端末リストを受信していなければ、そのまま同じステップＳ２１３に戻る。一方、ステップＳ２１３で“ＹＥＳ”であれば、つまり端末リストを受信すれば、ステップＳ２１５で、端末リストを更新して、昇格処理を終了する。ステップＳ２１５では、第１ゲームマスタ用端末リストデータ２１２ｂが示す端末リストが、受信した端末リストに置き換えられる。
【０１５６】
図２５は、ゲームマスタのゲーム装置１２のＣＰＵ３０のデータセーブ処理のフロー図である。ゲームマスタのゲーム装置１２のＣＰＵ３０は、プレイヤのゲーム装置１２からデータセーブの依頼を受信すると、データセーブ処理を開始し、ステップＳ２３１で、ゲームデータおよび暗号化の依頼を暗号化サーバ２０に送信する。
【０１５７】
次のステップＳ２３３では、暗号化ゲームデータを受信したかどうかを判断する。ステップＳ２３３で“ＮＯ”であれば、つまり暗号化ゲームデータを受信していなければ、そのまま同じステップＳ２３３に戻る。一方、ステップＳ２３３で“ＹＥＳ”であれば、つまり暗号化ゲームデータを受信すれば、ステップＳ２３５で、暗号化ゲームデータを、データセーブの依頼元であるプレイヤのゲーム装置１２に送信してデータセーブ処理を終了する。
【０１５８】
この実施例によれば、ゲーム装置にセーブされるのは暗号化ゲームデータであるため、暗号化の方式等が公開されない限りは、暗号化ゲームデータの改変（改竄）は困難である。また、暗号化ゲームデータが改変されたとしても、復号サーバで復号できない。したがって、改変されたゲームデータを用いたゲーム処理が実行されることはほとんどない。つまり、ゲームサーバのような他の機器でゲームデータを管理しなくても、ゲームデータが改変されるなどの不正行為を出来る限り防止することができる。
【０１５９】
なお、この実施例では、２台のプレイヤのゲーム装置が通信ゲームをプレイする場合について示したが、これに限定される必要はない。たとえば、１台のプレイヤのゲーム装置が単独でゲーム（以下、便宜上「ローカルゲーム」という。）をプレイするようにしてもよい。１台のゲーム装置がローカルゲームをプレイする場合には、マッチングサーバにおけるマッチング処理とゲームマスタにおけるゲーム処理が少し異なる以外は、図１３−図２５に示した通信ゲームをプレイする場合の処理と同じである。
【０１６０】
具体的には、マッチングサーバは、ステップＳ１において、ローカルゲームをプレイするゲーム装置からのゲームプレイの要求を受け付ける。一方、ゲーム装置は、ユーザの操作に応じて、ローカルゲームのプレイをマッチングサーバに要求する。すると、マッチングサーバは、ステップＳ３において、当該ゲーム装置をプレイヤのゲーム装置として決定（マッチング）する。つまり、マッチング処理によって、１台のプレイヤのゲーム装置、３台のゲームマスタのゲーム装置および１台のバックアップノードのゲーム装置がマッチングされ、端末リストが生成される。
【０１６１】
また、ゲームプレイの処理では、ゲームマスタのゲーム装置のＣＰＵは、図２３に示したステップＳ１９１において、１台のプレイヤのゲーム装置から送信された操作データ（入力データ）に従って、当該プレイヤのゲーム装置から送信された暗号化ゲームデータを復号したゲームデータを用いてゲーム処理を実行する。
【０１６２】
また、この実施例では、ゲームマスタのゲーム装置が、ゲームデータを用いて、プレイヤのゲーム装置からの操作データに従ってゲーム処理を実行するようにしたが、これに限定される必要はない。ゲームマスタのゲーム装置と通信可能な他の機器（ゲーム装置等の装置やサーバ等のコンピュータ）でゲーム処理が実行されてもよい。かかる場合には、ゲームマスタのゲーム装置は、プレイヤのゲーム装置からの操作データと復号されたゲームデータとを他の機器に送信し、他の機器からゲーム処理の結果データを受信する。このように、他の機器でゲーム処理を実行する場合には、ゲームマスタのゲーム装置は、ゲームデータの暗号化を暗号化サーバに依頼したり、暗号化サーバから受信した暗号化ゲームデータをデータセーブの依頼元であるプレイヤのゲーム装置に送信したり、プレイヤのゲーム装置からの操作データを他の機器に送信したり、上述したように、他の機器で実行されたゲーム処理の結果データをプレイヤのゲーム装置に送信したり、暗号化ゲームデータの復号を復号サーバに依頼したり、上述したように、復号サーバから受信したゲームデータを他の機器に送信したりする。つまり、他の機器でゲーム処理が実行される場合には、ゲームマスタのゲーム装置は、プレイヤのゲーム装置と、暗号化サーバ、復号サーバおよび他の機器とのやり取りを中継する装置として機能する。
【０１６３】
また、この実施例では、プレイヤのゲーム装置がゲームプレイする場合に、ゲームマスタのゲーム装置が、プレイヤのゲーム装置から送信された操作データ（入力データ）と、プレイヤのゲーム装置から送信された暗号化ゲームデータを復号したゲームデータとに基づいて、ゲーム処理を実行するようにしたが、これに限定される必要はない。たとえば、ゲームマスタのゲーム装置は、プレイヤのゲーム装置から送信された暗号化ゲームデータを復号したゲームデータに基づいて、ゲーム処理を実行するようにしてもよい。具体的な例を示すと、ゲームマスタのゲーム装置は、複数のプレイヤのゲーム装置の各々から送信された暗号化ゲームデータを復号したゲームデータが示すパラメータをそれぞれ参照して、ゲームキャラクタの強さについてのランキングを出力（表示）したり、希少なゲームキャラクタの画像およびその所有者（ユーザ）の名称を表示したりする。
【０１６４】
さらに、この実施例では、ゲームマスタとして３台のゲーム装置をマッチングするようにしたが、ゲームマスタのゲーム装置の数は、１台または２台でもよい。または、ゲーム装置の能力があれば、４台以上マッチングすることも可能である。ただし、ゲームマスタのゲーム装置の数が１台の場合には、プレイヤのゲーム装置は、当該ゲームマスタのゲーム装置からの結果データや暗号化ゲームデータを受信するだけである。また、ゲームマスタのゲーム装置の数が２台の場合には、プレイヤのゲーム装置は、それらのゲームマスタのゲーム装置からの結果データや暗号化ゲームデータが一致する場合にのみ、その結果データや暗号化データを採用することになる。さらに、ゲームマスタのゲーム装置の数が４台以上の偶数の場合には、等しいものと等しくないものとの数が同じである場合には、等しいものを採用してもよいし、採用しなくてもよい。
【０１６５】
さらにまた、この実施例では、携帯型のゲーム装置についてのみ説明したが、通信機能を備える他の携帯可能な情報処理装置、たとえばノートＰＣ，ＰＤＡ，携帯電話機に適用することも可能である。また、携帯可能でない情報処理装置、たとえばデスクトップＰＣ，据置型のゲーム装置などにも適用することも可能である。
【０１６６】
また、この実施例では、マッチングサーバ、復号サーバおよび暗号化サーバをそれぞれ別に設けるようにしたが、これらのうちの２つの以上の機能を備える１または２つのサーバを設けるようにしてもよい。
【０１６７】
さらに、この実施例では、ゲームデータの暗号化を暗号化サーバで行い、暗号化ゲームデータの復号を復号サーバで行うようにしたが、ゲームマスタのゲーム装置で暗号化や復号を行うようにしてもよい。ユーザが気付かないうちに当該ユーザのゲーム装置がゲームマスタとなっているため、そのゲーム装置で暗号化や復号が行われたとしても、そのゲーム装置で不正行為が行われる可能性は低くなる。
【符号の説明】
【０１６８】
１０  …ゲームシステム
１２  …ゲーム装置
１６  …マッチングサーバ
１８  …復号サーバ
２０  …暗号化サーバ
３０  …ＣＰＵ
３２  …ＲＡＭ
３４  …フラッシュメモリ
３６  …無線通信モジュール
３８  …入力装置
４２  …表示装置
４６  …スピーカ
【図１】
0005986371.tif 000002
【図２】
0005986371.tif 000003
【図３】
0005986371.tif 000004
【図４】
0005986371.tif 000005
【図５】
0005986371.tif 000006
【図６】
0005986371.tif 000007
【図７】
0005986371.tif 000008
【図８】
0005986371.tif 000009
【図９】
0005986371.tif 000010
【図１０】
0005986371.tif 000011
【図１１】
0005986371.tif 000012
【図１２】
0005986371.tif 000013
【図１３】
0005986371.tif 000014
【図１４】
0005986371.tif 000015
【図１５】
0005986371.tif 000016
【図１６】
0005986371.tif 000017
【図１７】
0005986371.tif 000018
【図１８】
0005986371.tif 000019
【図１９】
0005986371.tif 000020
【図２０】
0005986371.tif 000021
【図２１】
0005986371.tif 000022
【図２２】
0005986371.tif 000023
【図２３】
0005986371.tif 000024
【図２４】
0005986371.tif 000025
【図２５】
0005986371.tif 000026