ゲームシステム、ゲーム装置、ゲームプログラムおよびゲーム制御方法
【構成】 ゲームシステム10は、複数のゲーム装置12を含み、マッチングサーバ16は、ゲーム装置12からのリクエストに応じて、プレイヤのゲーム装置(A、B)をマッチングするとともに、ゲームマスタのゲーム装置(C−E)をマッチングする。ゲームプレイ中では、ゲーム装置(A、B)への操作入力に応じた操作データは、ゲーム装置(C−E)に送信され、ゲーム装置(C−E)でゲーム処理が実行される。ゲーム処理の結果データは、ゲーム装置(A、B)に送信される。データセーブするとき、暗号化されたゲームデータが、ゲーム装置(C−E)からゲーム装置(A、B)に送信され、セーブされる。
【効果】 ゲームサーバを設けずに、ゲーム処理の負荷を分散することができる。
【効果】 ゲームサーバを設けずに、ゲーム処理の負荷を分散することができる。
【発明の詳細な説明】
【技術分野】
【0001】
この発明はゲームシステム、ゲーム装置、ゲームプログラムおよびゲーム制御方法に関し、特にたとえば、複数のゲーム装置間でデータのやり取りを行う、ゲームシステム、ゲーム装置、ゲームプログラムおよびゲーム制御方法に関する。
【背景技術】
【0002】
この種のゲームシステムの一例が特許文献1に開示されている。この特許文献1には、複数のゲーム装置とゲームサーバとを含むゲームシステムにおいて、複数のゲーム装置から入力データがゲームサーバに送信され、ゲームサーバでは、入力データに基づいてゲーム処理を実行することが記載されている。
【特許文献1】特開2011−78634[A63F 13/12]
【発明の概要】
【発明が解決しようとする課題】
【0003】
この特許文献1に開示されたゲームシステムでは、ゲームサーバで集中的にゲーム処理を実行するようになっていた。
【0004】
それゆえに、この発明の主たる目的は、新規な、ゲームシステム、ゲーム装置、ゲームプログラムおよびゲーム制御方法を提供することである。
【0005】
また、この発明の他の目的は、ゲームサーバを用意することなく、ゲーム処理の負荷を分散することができる、ゲームシステム、ゲーム装置、ゲームプログラムおよびゲーム制御方法を提供することである。
【課題を解決するための手段】
【0006】
第1の発明は、ネットワーク上でそれぞれ接続可能な同種の第1ゲーム装置、第2ゲーム装置および第3ゲーム装置を含み、第1ゲーム装置と第2ゲーム装置との間で第1通信ゲームをプレイする、ゲームシステムである。第1ゲーム装置は、第1ユーザの入力に応じて、当該入力に対応する第1入力データを第3ゲーム装置に送信する第1入力データ送信手段を備える。第2ゲーム装置は、第2ユーザの入力に応じて、当該入力に対応する第2入力データを第3ゲーム装置に送信する第2入力データ送信手段を備える。第1通信ゲームをプレイしない第3ゲーム装置は、第1入力データ送信手段によって送信された第1入力データおよび第2入力データ送信手段によって送信された第2入力データに基づいてゲーム処理を実行するゲーム処理実行手段を備える。つまり、第1ゲーム装置および第2ゲーム装置は、ユーザの入力に応じた入力データを第3ゲーム装置に送信するだけであり、第1ゲーム装置と第2ゲーム装置との間でプレイされる第1通信ゲームのプレイヤとして参加していない第3ゲーム装置が、第1通信ゲームのゲーム処理を実行する。
【0007】
第1の発明によれば、通信ゲームをプレイする第1ゲーム装置および第2ゲーム装置は、入力データを第3ゲーム装置に送信するだけであり、ゲーム処理は第3ゲーム装置で実行されるため、ゲームサーバを用意することなく、ゲーム処理の負荷を分散させることができる。
【0008】
第2の発明は、第1の発明に従属し、ゲームシステムは、第1マッチング手段をさらに備える。第1マッチング手段は、複数のゲーム装置の中から第1ゲーム装置、第2ゲーム装置および第3ゲーム装置をマッチングする。たとえば、第1ゲーム装置と第2ゲーム装置とは、ゲームレベル(経験値)や総プレイ時間が近似するユーザのゲーム装置同士である。また、第1ゲーム装置および第2ゲーム装置以外のゲーム装置であって、他の2つのグループの通信ゲームの処理を実行するゲーム装置または控えのゲーム装置として割り当てられていないゲーム装置が第3ゲーム装置としてマッチングされる。
【0009】
第2の発明によれば、第1−第3ゲーム装置は、ゲームシステムに含まれるもののうち、当該第1−第3ゲーム装置ではない第1マッチング手段によって、複数のゲーム装置の中から選択的にマッチングされるので、たとえば、通信ゲームをプレイする度に異なる相手と対戦することができ、そのゲーム処理は不特定のゲーム装置によって実行される。したがって、通信ゲームをプレイする度に、対戦相手が異なるため、通信ゲームの面白味を増大させることができる。また、ゲーム処理を実行する第3ゲーム装置も固定されないため、ゲーム処理の実行可能なゲーム装置を割り当てることができ、処理可能な資源を有効に利用することができる。
【0010】
第3の発明は、第2の発明に従属し、ゲームシステムは、少なくとも第3ゲーム装置と接続可能な第4ゲーム装置をさらに含む。第1マッチング手段は、少なくとも第3ゲーム装置および第4ゲーム装置をマッチングする。第3ゲーム装置は、第1ゲーム処理実行手段によってゲーム処理を実行している場合に、第1ゲーム装置および第2ゲーム装置とは異なる第4ゲーム装置との間で第2通信ゲームをプレイする。たとえば、第2通信ゲームは、第1通信ゲームと同じ種類または異なる種類の通信ゲームである。
【0011】
第3の発明によれば、第3ゲーム装置は、第1ゲーム装置と第2ゲーム装置との間で実行される通信ゲームのゲーム処理を実行するとともに、他のゲーム装置との間で通信ゲームをプレイすることができる。
【0012】
第4の発明は、第2または第3の発明に従属し、ゲームシステムは、少なくとも第1ゲーム装置と接続可能な第5ゲーム装置および第6ゲーム装置をさらに含む。第5ゲーム装置と第6ゲーム装置との間で第3通信ゲームがプレイされる。たとえば、第3通信ゲームは、第1通信ゲームまたは第2通信ゲームと同じ種類または異なる種類の通信ゲームである。第5ゲーム装置は、第3ユーザの入力に応じて、当該入力に対応する第3入力データを第1ゲーム装置に送信する第3入力データ送信手段を備える。第6ゲーム装置は、第4ユーザの入力に応じて、当該入力に対応する第4入力データを第1ゲーム装置に送信する第4入力データ送信手段を備える。少なくとも第3通信ゲームをプレイしない第1ゲーム装置は、第3入力データ送信手段によって送信された第3入力データおよび第4入力データ送信手段によって送信された第4入力データに基づいてゲーム処理を実行する第2ゲーム処理実行手段をさらに備える。つまり、第1通信ゲームをプレイする第1通信ゲーム装置は、第4ゲーム装置と第5ゲーム装置との間でプレイされる第3通信ゲームのゲーム処理を実行する。
【0013】
第4の発明によれば、或るグループで実行される第1通信ゲームにプレイヤとして参加するゲーム装置は、他のグループで実行される第3通信ゲームにプレイヤとして参加せずに、当該第3通信ゲームのゲーム処理を実行することができる。
【0014】
第5の発明は、第1ないし第4の発明のいずれかに従属し、ゲームシステムは、複数の第3ゲーム装置をさらに含む。複数の第3ゲーム装置の各々は、第1ゲーム処理実行手段によって実行されたゲーム処理の結果データを第1ゲーム装置および第2ゲーム装置に送信する結果データ送信手段をさらに備える。一方、第1ゲーム装置および第2ゲーム装置の各々は、複数の第3ゲーム装置の結果データ送信手段によって送信された結果データを受信する結果データ受信手段、および結果データ受信手段によって受信された複数の結果データのうち、適正な結果データを出力装置に出力させる出力制御手段をさらに備える。
【0015】
第5の発明によれば、第1ゲーム装置および第2ゲーム装置は、各第3ゲーム装置から得られた結果データのうち、適正な結果データを出力するので、改変されたゲームデータを用いてゲーム処理を行うような不正行為によって得られた結果データが通信ゲームに反映されるのを防止することができる。
【0016】
第6の発明は、第5の発明に従属し、ゲームシステムは、少なくとも3台の第3ゲーム装置を含む。第1ゲーム装置および第2ゲーム装置の出力制御手段は、結果データ受信手段によって受信された複数の結果データを比較し、等しいデータの数が多い結果データを出力させる。つまり、多数決により選択(決定)された結果データが出力される。
【0017】
第6の発明によれば、多数決のような簡単な手法によって不正行為を防止することができる。
【0018】
第7の発明は、第1ないし第6の発明のいずれかに従属し、ゲームシステムは、第3ゲーム装置の控えの第7ゲーム装置をさらに含む。第7ゲーム装置は、第3ゲーム装置の接続が切断された場合に、当該第3ゲーム装置の代わりに、第1入力データ送信手段によって送信された第1入力データおよび第2入力データによって送信された第2入力データに基づいてゲーム処理を実行する代替ゲーム処理実行手段を備える。つまり、代替ゲーム処理実行手段は、少なくとも第1ゲーム処理実行手段と同一の機能を有している。
【0019】
第7の発明によれば、控えのゲーム装置を用意しておくので、第3ゲーム装置が切断されることにより、通信ゲームが中断されるのを防止することができる。
【0020】
第8の発明は、第1の発明に従属し、ゲームシステムは、少なくとも第3ゲーム装置と接続可能な暗号化装置をさらに含む。第3ゲーム装置は、第1ゲーム処理実行手段によって実行されたゲーム処理に応じて変化されるゲームデータを暗号化装置に送信する第1ゲームデータ送信手段をさらに備える。つまり、第3ゲーム装置は、他の機器にゲームデータの暗号化を依頼する。暗号化装置は、第1ゲームデータ送信手段によって送信されたゲームデータを暗号化する暗号化手段、および暗号化手段によって暗号化された暗号化ゲームデータを第3ゲーム装置に送信する第1暗号化データ送信手段を備える。つまり、暗号化装置は、第3ゲーム装置からゲームデータの依頼を受けて、当該ゲームデータを暗号化し、暗号化ゲームデータを依頼元の第3ゲーム装置に送信する。
【0021】
第3ゲーム装置は、第1暗号化データ送信手段によって送信された暗号化ゲームデータを第1ゲーム装置および第2ゲーム装置に送信する第2暗号化データ送信手段をさらに備える。第1ゲーム装置および第2ゲーム装置の各々は、第2暗号化データ送信手段によって送信された暗号化ゲームデータを記憶する記憶手段をさらに備える。つまり、第3ゲーム装置は、暗号化ゲームデータを受信すると、当該暗号化ゲームデータを第1ゲーム装置および第2ゲーム装置に送信する。そして、第1ゲーム装置および第2ゲーム装置は、それぞれ、暗号化ゲームデータを受信して、セーブする。
【0022】
第8の発明によれば、通信ゲームをプレイする場合に使用するゲームデータを暗号化してゲーム装置に記憶するので、当該通信ゲームをプレイするゲーム装置が当該ゲームデータを直接読み取ることができない。したがって、ゲームデータの改変(改竄)を出来る限り防止することができ、通信ゲームにおける不正行為を未然に防止することができる。
【0023】
第9の発明は、第8の発明に従属し、ゲームシステムは、ネットワーク上でそれぞれ接続可能な複数の同種のゲーム装置をマッチングする第2マッチング手段をさらに備える。暗号化手段は、第1ゲームデータ送信手段によって送信されたゲームデータでゲームプレイする第1ゲーム装置、第2ゲーム装置および第3ゲーム装置の組み合わせが、第2マッチング手段によってマッチングされている場合に、当該ゲームデータを暗号化する。つまり、通信ゲームをプレイするゲーム装置と、そのゲーム処理を実行するゲーム装置の組み合わせが正しい場合に、ゲームデータが暗号化される。
【0024】
第9の発明によれば、暗号化の依頼元のゲーム装置が、通信ゲームをプレイするゲーム装置に対して正しく組み合わされている場合に、ゲームデータを暗号化するので、不正な依頼に対して、ゲームデータが暗号化されることはない。よって、その後に、不正なゲームデータを用いて通信ゲームがプレイされることはない。
【0025】
第10の発明は、第8または第9の発明に従属し、ゲームシステムは、少なくとも第3ゲーム装置と接続可能な復号装置をさらに含む。第1ゲーム装置および第2ゲーム装置の各々は、記憶手段によって記憶された暗号化ゲームデータを第3ゲーム装置に送信する第3暗号化データ送信手段をさらに備える。つまり、第1ゲーム装置および第2ゲーム装置は、それぞれ、通信ゲームの開始に先立って、セーブされた暗号化ゲームデータを第3ゲーム装置に送信する。
【0026】
第3ゲーム装置は、第3暗号化データ送信手段によって送信された暗号化ゲームデータを復号装置に送信する第4暗号化データ送信手段をさらに備える。復号装置は、第4暗号化データ送信手段によって送信された暗号化ゲームデータを復号する復号手段、および復号手段によって復号されたゲームデータを第3ゲーム装置に送信する第2ゲームデータ送信手段をさらに備える。つまり、第3ゲーム装置は、暗号化ゲームデータを受信すると、復号装置に暗号化ゲームデータの復号を依頼する。これに応じて、復号装置は、暗号化ゲームデータを復号し、復号したゲームデータを依頼元の第3ゲーム装置に送信する。したがって、第3ゲーム装置では、復号されたゲームデータを用いて、第1ゲーム装置と第2ゲーム装置との間でプレイされる通信ゲームのゲーム処理を実行する。
【0027】
第10の発明によれば、暗号化ゲームデータを第1ゲーム装置および第2ゲーム装置のそれぞれで記憶しておき、通信ゲームをプレイする際に、第3ゲーム装置の依頼に応じて復号装置で暗号化ゲームデータを復号するので、通信ゲームをプレイする相手は固定される必要がなく、様々な相手と通信ゲームをプレイすることができる。
【0028】
第11の発明は、第10の発明に従属し、復号手段は、第4暗号化データ送信手段によって送信された暗号化ゲームデータのゲームデータでゲームプレイする第1ゲーム装置、第2ゲーム装置および第3ゲーム装置の組み合わせが、第2マッチング手段によってマッチングされている場合に当該暗号化ゲームデータを復号する。
【0029】
第11の発明によれば、通信ゲームをプレイするゲーム装置に対して正しく組み合わされている場合に、暗号化ゲームデータを復号するので、不正に作成された暗号化ゲームデータが復号されたり、正しい組み合わせでないゲーム装置からの依頼に応じて暗号化ゲームデータが復号されたりするのを防止することができる。
【0030】
第12の発明は、第10または第11の発明に従属し、第1ゲーム処理実行手段は、第1入力データ送信手段によって送信された第1入力データ、第2入力データ送信手段によって送信された第2入力データおよび第2ゲームデータ送信手段によって送信されたゲームデータに基づいて、ゲーム処理を実行する。
【0031】
第12の発明によれば、第3ゲーム装置は、復号したゲームデータを用いて、第1ゲーム装置および第2ゲーム装置からの入力データに従って、ゲーム処理を実行することができる。したがって、ゲーム処理の負荷を分散させることができる。
【0032】
第13の発明は、ネットワーク上で同種の第1ゲーム装置および第2ゲーム装置とそれぞれ接続可能であり、当該第1ゲーム装置と当該第2ゲーム装置との間でプレイされる通信ゲームのゲーム処理を当該通信ゲームをプレイせずに実行する、ゲーム装置であって、第1ゲーム装置からの第1入力データおよび第2ゲーム装置からの第2入力データに基づいてゲーム処理を実行するゲーム処理実行手段、およびゲーム処理実行手段によって実行されたゲーム処理の結果データを、第1ゲーム装置および第2ゲーム装置に送信する結果データ送信手段を備える、ゲーム装置である。
【0033】
第14の発明は、ネットワーク上で同種の第1ゲーム装置および第2ゲーム装置とそれぞれ接続可能であり、当該第1ゲーム装置と当該第2ゲーム装置との間でプレイされる通信ゲームのゲーム処理を当該通信ゲームをプレイせずに実行する、ゲーム装置のゲームプログラムであって、ゲーム装置のコンピュータを、第1ゲーム装置からの第1入力データおよび第2ゲーム装置からの第2入力データに基づいてゲーム処理を実行するゲーム処理実行手段、およびゲーム処理実行手段によって実行されたゲーム処理の結果データを、第1ゲーム装置および第2ゲーム装置に送信する結果データ送信手段として機能させる、ゲームプログラムである。
【0034】
第15の発明は、ネットワーク上で同種の第1ゲーム装置および第2ゲーム装置とそれぞれ接続可能であり、当該第1ゲーム装置と当該第2ゲーム装置との間でプレイされる通信ゲームのゲーム処理を当該通信ゲームをプレイせずに実行する、ゲーム装置のゲーム制御方法であって、ゲーム装置のコンピュータは、(a)第1ゲーム装置からの第1入力データおよび第2ゲーム装置からの第2入力データに基づいてゲーム処理を実行し、そして(b)ステップ(a)において実行したゲーム処理の結果データを、第1ゲーム装置および第2ゲーム装置に送信する、ゲーム制御方法である。
【0035】
第13ないし第15の発明においても、第1の発明と同様に、ゲームサーバを用意することなく、ゲーム処理の負荷を分散させることができる。
【発明の効果】
【0036】
この発明によれば、ゲームサーバを用意することなく、ゲーム処理の負荷を分散させることができる。
【0037】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0038】
【図1】図1はこの発明のゲームシステムの一例を示す。
【図2】図2は図1に示すゲーム装置の電気的な構成の一例を示すブロック図である。
【図3】図3は通信ゲームをプレイする場合にプレイヤおよびゲームマスタとしてマッチングされたゲーム装置で構成されるピアツーピアネットワークの一例を示す。
【図4】図4はデータロードする場合のプレイヤのゲーム装置、ゲームマスタのゲーム装置、復号サーバおよびマッチングサーバの大まかな処理の流れの一例を示す。
【図5】図5は通信ゲームをプレイする場合のプレイヤのゲーム装置およびゲームマスタのゲーム装置の大まかな処理の流れの一例を示す。
【図6】図6はデータセーブする場合のプレイヤのゲーム装置、ゲームマスタのゲーム装置、暗号化サーバおよびマッチングサーバの大まかな処理の流れの一部を示す。
【図7】図7はデータセーブする場合のプレイヤのゲーム装置、ゲームマスタのゲーム装置、暗号化サーバおよびマッチングサーバの大まかな処理の流れの続きを示す。
【図8】図8はバックアップノードを昇格およびマッチングする場合のプレイヤのゲーム装置、ゲームマスタのゲーム装置、バックアップノードのゲーム装置およびマッチングサーバの大まかな処理の流れの一部を示す。
【図9】図9はバックアップノードを昇格およびマッチングする場合のプレイヤのゲーム装置、ゲームマスタのゲーム装置、バックアップノードのゲーム装置およびマッチングサーバの大まかな処理の流れの続きを示す。
【図10】図10は図1に示したマッチングサーバに内蔵されるRAMのメモリマップの一例を示す図である。
【図11】図11は図2に示したゲーム装置に内蔵されるRAMのメモリマップの一例を示す図解図である。
【図12】図12は図11に示すデータ記憶領域の具体的な内容を示す図である。
【図13】図13はマッチングサーバのプロセッサのマッチング処理の一例を示すフロー図である。
【図14】図14はマッチングサーバのプロセッサの正規判定処理の一例を示すフロー図である。
【図15】図15はマッチングサーバのプロセッサのバックアップ処理の一例を示すフロー図である。
【図16】図16は復号サーバのプロセッサの復号処理の一例を示すフロー図である。
【図17】図17は暗号化サーバのプロセッサの暗号化処理の一例を示すフロー図である。
【図18】図18はプレイヤのゲーム装置のCPUのゲームプレイ処理の一部を示すフロー図である。
【図19】図19はプレイヤのゲーム装置のCPUのゲームプレイ処理の他の一部を示すフロー図である。
【図20】図20はプレイヤのゲーム装置のCPUのゲームプレイ処理のその他の一部を示すフロー図である。
【図21】図21はプレイヤのゲーム装置のCPUのデータセーブ処理の一例を示すフロー図である。
【図22】図22はゲームマスタのゲーム装置のCPUのデータロード処理の一例を示すフロー図である。
【図23】図23はゲームマスタのゲーム装置のCPUのゲームプレイ処理の一例を示すフロー図である。
【図24】図24はゲームマスタのゲーム装置のCPUの昇格処理を示すフロー図である。
【図25】図25はゲーマスタのゲーム装置のCPUのデータセーブ処理の一例を示すフロー図である。
【発明を実施するための形態】
【0039】
図1を参照して、この発明の一実施例であるゲームシステム10は複数のゲーム装置12を含み、複数のゲーム装置12はネットワーク14を介してマッチングサーバ16、復号サーバ18および暗号化サーバ20と通信可能に接続される。
【0040】
図2は、図1に示すゲーム装置12の電気的な構成を示すブロック図である。図2に示すように、ゲーム装置12は、CPU30を含み、CPU30には、RAM32、フラッシュメモリ34、無線通信モジュール36、入力装置38、表示ドライバ40およびD/A変換器44が接続される。また、表示ドライバ40には、表示装置42が接続され、D/A変換器44には、スピーカ46が接続される。
【0041】
CPU30は、ゲーム装置12の全体制御を司る。RAM32は、CPU30のワークメモリやバッファメモリとして使用される。フラッシュメモリ34は、ゲームのようなアプリケーションのプログラムを記憶したり、各種のデータを記憶(セーブ)したりするために使用される。
【0042】
無線通信モジュール36は、無線LANに接続する機能を有する。したがって、ゲーム装置12は、他のゲーム装置12やコンピュータ(サーバ16、18、20など)と直接またはネットワーク14を介して通信することができる。
【0043】
入力装置38は、たとえば、ゲーム装置10に設けられる各種の押しボタンないしスイッチであり、ユーザによって、メニュー選択やゲーム操作などの各種の操作に用いられる。ただし、入力装置38としては、タッチパネルなどのポインティングデバイス、マイクおよびカメラなどの入力手段が、押しボタンないしスイッチに代えて、または、押しボタンないしスイッチとともに設けられてもよい。
【0044】
表示ドライバ40は、CPU30の指示の下、表示装置42にゲーム画像などの各種画像を表示するために使用される。図示は省略するが、表示ドライバ40は、ビデオRAM(VRAM)を内蔵している。
【0045】
D/A変換器44は、CPU30から与えられる音声データをアナログのゲーム音声に変換し、スピーカ46に出力する。ただし、ゲーム音声は、ゲームキャラクタの擬制音、効果音、音楽(BGM)のようなゲームに必要な音を意味する。
【0046】
なお、図2に示すゲーム装置12の電気的な構成は単なる一例であり、これに限定される必要はない。
【0047】
また、図示および詳細な説明は省略するが、図1に示すマッチングサーバ16、復号サーバ18および暗号化サーバ20は、汎用のサーバであり、CPUのようなプロセッサ、メモリ(HDD、ROMおよびRAMなど)および通信モジュールなどのコンポーネントを備えている。このように、復号サーバ18および暗号化サーバ20を設けるのは、ゲーム装置12以外の装置によって復号や暗号化を行うことにより、後述するように暗号化されたゲームデータがゲーム装置12で不正に復号されるのを防止するためである。したがって、暗号化方式は任意の方式を採用することができるが、その方式などについては公開されない。
【0048】
このようなゲームシステム10においては、マッチングサーバ16は、各ゲーム装置12からの参加要求を受け付け、通信ゲームをプレイするプレイヤのゲーム装置12をマッチングするとともに、その通信ゲームのゲームマスタとしてのゲーム装置12をマッチングする。ただし、この実施例では、ゲーム装置12(CPU30等)は、プレイヤとしての処理と、異なる2つの通信ゲーム(グループ)のゲームマスタとしての処理が可能である。したがって、ゲーム装置12は、或るグループの通信ゲームにプレイヤとして参加するとともに、他のグループの通信ゲームにゲームマスタとして参加することができる。詳細な説明は省略するが、プレイヤとして参加する通信ゲームと、ゲームマスタとして参加する通信ゲームとは、同じ種類でも異なる種類でも構わない。
【0049】
たとえば、ゲームレベル(経験値)や総プレイ時間が近似するユーザのゲーム装置12同士がプレイヤのゲーム装置12としてマッチングされる。ただし、ゲームレベル(経験値)や総プレイ時間については、ユーザ(ゲーム装置12)毎に、マッチングサーバ16で管理されている。また、プレイヤとしてマッチングされたゲーム装置12以外のゲーム装置12であって、2つのグループのゲームマスタまたは後述するバックアップノードとして割り当てられていないゲーム装置12がゲームマスタのゲーム装置12としてマッチングされる。以下、ゲーム装置12が2つのグループのゲームマスタとして機能する場合には、一方のグループについてのゲームマスタを「第1ゲームマスタ」といい、他方のグループについてのゲームマスタを「第2ゲームマスタ」ということにする。
【0050】
また、マッチングサーバ16は、マッチングしたプレイヤのゲーム装置12とゲームマスタのゲーム装置12とを1つのグループとして管理される。この実施例では、各グループの端末リストが生成され、メモリに記憶される。端末リストには、ゲーム装置12の識別情報に対応して、このゲーム装置12の接続情報およびマッチングされたプレイヤおよびゲームマスタの別(種類)が記述される。以下、この実施例では、ゲーム装置12の識別情報および接続情報をまとめて端末情報ということがある。
【0051】
たとえば、ゲーム装置12の識別情報は、当該ゲーム装置12に内蔵される無線通信モジュールのMACアドレス、当該ゲーム装置12に付された固有の識別記号、当該ゲーム装置12に付された名称(ユーザ名など)である。また、ゲーム装置12の接続情報は、当該ゲーム装置12に割り当てられたIPアドレスである。
【0052】
マッチングサーバ16では、このようなグループが参加要求のあったゲーム装置12の数に応じて生成される。以下、この実施例では、1つのグループに着目してゲーム処理などについて説明するが、他のグループについても同様である。
【0053】
この実施例では、ゲームマスタのゲーム装置12は、プレイヤのゲーム装置12と同種のゲーム装置12であり、主として、自身がプレイヤとして参加していない通信ゲームをプレイするプレイヤのゲーム装置12からの操作データに従ってゲーム処理を実行するゲーム装置12を意味する。また、この実施例では、ゲームマスタのゲーム装置12は、通信ゲームの開始に先立ってプレイヤのゲーム装置12から送信されたセーブデータ(暗号化ゲームデータ)の復号を復号サーバ18に依頼したり、プレイヤのゲーム装置12からの指示に従ってゲーム処理によって生成されたゲームデータの暗号化を暗号化サーバ20に依頼したりする。
【0054】
なお、この実施例では、マッチングサーバ16が、プレイヤのゲーム装置12とゲームマスタのゲーム装置12の両方をマッチングするようにしたが、プレイヤのゲーム装置12とゲームマスタのゲーム装置12を異なるサーバでマッチングするようにしてもよい。ただし、プレイヤのゲーム装置12とゲームマスタのゲーム装置12とを互いに関連付けるなどして、それらを1つのグループとして管理する必要がある。
【0055】
この実施例では、1つのグループでは、2台のプレイヤのゲーム装置12がマッチングされ、これらに関連して、3台のゲームマスタのゲーム装置12がマッチングされる。そして、1つのグループを構成するプレイヤのゲーム装置12およびゲームマスタのゲーム装置12によって、図3に示すように、ピアツーピアネットワークが構築される。以下、この実施例では、各ゲーム装置12を区別する必要がある場合には、2台のプレイヤのゲーム装置12を、ゲーム装置Aおよびゲーム装置Bと呼び、3台のゲームマスタのゲーム装置12を、ゲーム装置C、ゲーム装置Dおよびゲーム装置Eと呼ぶことにする。
【0056】
このように、プレイヤのゲーム装置12およびゲームマスタのゲーム装置12がマッチングされ、ピアツーピアネットワークが構築されると、ゲームプレイの処理については、マッチングされたゲーム装置12間で実行される。したがって、ゲームサーバを用意することなく、ゲーム処理の負荷を分散させることができる。
【0057】
また、ゲームプレイの処理をマッチングされてゲーム装置12間で実行するため、マッチングサーバ16は、端末リストを生成すると、グループ内の各ゲーム装置12に生成した端末リストを送信する。したがって、各ゲーム装置12に端末リストが記憶される。
【0058】
この実施例では、ゲーム装置12は、通信ゲームについてのゲームデータを暗号化した状態で記憶してある。ただし、ゲーム装置12で復号できない形式で暗号化されたゲームデータ(以下、「暗号化ゲームデータ」)という。)が記憶(セーブ)される。このようにするのは、ゲーム装置12のユーザによって生(平文)のゲームデータが改変(改竄)されるのを防止するためである。したがって、この実施例では、復号されたゲームデータは、ゲームマスタのゲーム装置12に記憶され、ゲームマスタのゲーム装置12のそれぞれが、プレイヤのゲーム装置12からの操作データに基づいてゲーム処理を実行する。つまり、ゲームマスタのゲーム装置12のそれぞれは、プレイヤのゲーム装置12からの操作データに従い、そのゲームデータを用いて、ゲーム処理を実行するようにしてある。そして、処理結果(結果データ)をプレイヤのゲーム装置12に送信する。
【0059】
なお、仮に暗号化ゲームデータが改竄されてしまったとしても、復号する機器(この実施例では、復号サーバ18)で復号することができないため、不正なゲームデータによってゲーム処理が行われることはほとんど無い。
【0060】
この実施例では、ゲームデータは、プレイヤキャラクタや所持アイテムなどについてのパラメータ(種類、力、強さ、すばやさなど)のデータであり、操作データを含まないデータであるが、これに限定される必要はなく、改変(改竄)されることにより、通信ゲームを有利にまたは不利に進めることが可能なデータである。
【0061】
したがって、プレイヤのゲーム装置12に暗号化ゲームデータすなわちセーブデータが記憶されている場合には、通信ゲームの開始に先立って、データロードの処理を実行する。このデータロードの処理は、プレイヤのゲーム装置12(A、B)、ゲームマスタのゲーム装置12(C−E)、マッチングサーバ16および復号サーバ18によって実行される。
【0062】
なお、通信ゲームを初めてプレイする場合には、セーブデータは記憶されていないため、データロードの処理は実行されずに、ゲームマスタのゲーム装置12(C−E)に初期値(デフォルト値)に基づくゲームデータが記憶される。
【0063】
図4に示すように、プレイヤのゲーム装置A、Bは、それぞれ、セーブデータ(暗号化ゲームデータ)をゲームマスタのゲーム装置C−Eの各々に送信する。以下、ゲーム装置Aに記憶されている暗号化ゲームデータを「暗号化ゲームデータA」といい、ゲーム装置Bに記憶されている暗号化ゲームデータを「暗号化ゲームデータB」ということがある。
【0064】
ただし、暗号化ゲームデータには、それを記憶しているゲーム装置A、Bの識別情報がヘッダ情報(メタ情報)として付加されている。
【0065】
ゲームマスタのゲーム装置C−Eは、それぞれ、暗号化ゲームデータAを受信し、暗号化ゲームデータBを受信する。次に、ゲーム装置C−Eは、それぞれ、暗号化ゲームデータAの復号を依頼し、暗号化ゲームデータBの復号を依頼する。具体的には、ゲーム装置C−Eは、それぞれ、復号の依頼と暗号化ゲームデータAを復号サーバ18に送信し、復号の依頼と暗号化ゲームデータBを復号サーバ18に送信する。
【0066】
ただし、ゲームマスタのゲーム装置C−Eは、暗号化ゲームデータAおよび暗号化ゲームデータBを同時に受信したり、同時に復号を依頼したりする必要はない。
【0067】
復号サーバ18は、ゲームマスタのゲーム装置C−Eからの依頼が正規の依頼であるかどうかをマッチンングサーバ16に問い合わせる。ただし、依頼毎に問い合わせを行う。具体的には、復号サーバ18は、暗号化ゲームデータのメタ情報からプレイヤのゲーム装置12の端末情報(以下、説明の都合上、「プレイヤ端末情報」という。)を取得するとともに、復号の依頼元の端末情報(以下、説明の都合上、「復号依頼元端末情報」という。)を取得し、プレイヤ端末情報と復号依頼元端末情報とを含む問い合わせをマッチングサーバ16に送信する。
【0068】
マッチングサーバ16は、その問い合わせを受信すると、正規にマッチングされたゲームマスタかどうかを判定する。つまり、プレイヤのゲーム装置12とゲームマスタのゲーム装置12との組み合わせが正しいかどうかを判断する。具体的には、マッチングサーバ16は、プレイヤ端末情報が示すゲーム装置12と、復号依頼元端末情報が示すゲーム装置12とが同一グループに属し、プレイヤ端末情報が示すゲーム装置12がプレイヤとしてマッチングされ、復号依頼元端末情報が示すゲーム装置12がゲームマスタとしてマッチングされているかどうかを判定する。そして、マッチングサーバ16は、判定結果を復号サーバ18に送信する。
【0069】
復号サーバ18は、判定結果を受信し、正規にマッチングされたゲームマスタであれば、暗号化ゲームデータを復号し、復号されたゲームデータを復号の依頼元であるゲームマスタのゲーム装置12に送信する。
【0070】
したがって、復号の依頼元であるゲームマスタのゲーム装置12は、復号されたゲームデータを受信し、RAM32に記憶する。これによって、正規にマッチングされたゲームマスタのゲーム装置12は、プレイヤのゲーム装置Aおよびゲーム装置Bのそれぞれについてのゲームデータを得る。以下、説明の都合上、暗号化ゲームデータAを復号したゲームデータを「ゲームデータA」といい、暗号化ゲームデータBを復号したゲームデータを「ゲームデータB」という。
【0071】
データロードの処理が終了すると、通信ゲームが開始される。通信ゲームが開始されると、プレイヤのゲーム装置A、Bと、ゲームマスタのゲーム装置C−Eとによって、ゲームプレイの処理が実行される。
【0072】
図5に示すように、ゲームプレイの処理では、プレイヤのゲーム装置Aへの操作入力に応じた操作データ(以下、説明の都合上、「操作データA」という。)は、ゲーム装置C−Eのそれぞれに送信され、プレイヤのゲーム装置Bへの操作入力に応じた操作データ(以下、説明の都合上、「操作データB」という。)は、ゲーム装置C−Eのそれぞれに送信される。
【0073】
ゲームマスタのゲーム装置C−Eのそれぞれは、操作データAおよび操作データBの両方を受信すると、この操作データAおよび操作データBに従うとともに、ゲームデータAおよびゲームデータBを用いて、通信ゲームのゲーム処理を実行する。そして、ゲーム処理の結果(結果データ)を、プレイヤのゲーム装置Aおよびゲーム装置Bのそれぞれに送信する。
【0074】
なお、ゲームマスタのゲーム装置C−Eは、プレイヤのゲーム装置A、Bで行われる通信ゲームのゲーム処理を実行するためのゲームプログラムを予め記憶している。たとえば、プレイヤのゲーム装置A、Bで行われる通信ゲームのゲーム処理を実行するためのゲームプログラムは、マッチングサーバ16からダウロードされる。
【0075】
ゲーム装置Aおよびゲーム装置Bは、それぞれ、結果データを受信し、当該結果データを出力する。たとえば、ゲーム装置Aおよびゲーム装置Bは、結果データに基づいて、ゲーム画像を描画(更新)および出力(表示)したり、ゲーム音声を生成および出力したりする。ただし、上述したように、プレイヤのゲーム装置12は、全ゲームマスタのゲーム装置12に操作データを送信し、全ゲームマスタのゲーム装置12においてゲーム処理が実行され、この全ゲームマスタのゲーム装置12の各々からの結果データを受信する。このため、プレイヤのゲーム装置12では、受信したすべての(ここでは、3つの)結果データのうち、適正な結果データを採用して出力する。この実施例では、3つの結果データのうち、等しい結果データが適正な結果データとして採用される。つまり、多数決により、出力する結果データが決定される。
【0076】
このように、等しい結果データを採用して出力するのは、正規にマッチングされたゲームマスタのゲーム装置12ではあるものの、ゲームマスタのゲーム装置12は、ゲーム処理を担当する通信ゲームにおけるプレイヤのゲーム装置12の生のゲームデータにアクセスすることができ、その改変(改竄)が可能だからである。よって、上記のように、多数決により、1つの結果データを採用することにより、不正なゲームデータに基づくゲーム処理の結果データが通信ゲームに反映されるのを出来るだけ防止しているのである。これにより、他人の通信ゲームを邪魔するような不正行為を回避することができる。また、多数決により、採用する結果データを決定するのは、少数のユーザによって不正行為が行われていることを考慮するためである。これらのことは、後述する暗号化ゲームデータを多数決により決定する場合についても同様である。
【0077】
ゲームが終了するまでは、上記のような処理が繰り返し実行される。ゲーム中に所定のイベントが発生したり、プレイヤの指示が入力されたりすることに応じて、または、ゲームが終了したことに応じて、データセーブの処理が実行される。データセーブの処理は、プレイヤのゲーム装置AおよびB、ゲームマスタのゲーム装置C−E、マッチングサーバ16および暗号化サーバ20によって実行される。
【0078】
具体的には、図6に示すように、プレイヤのゲーム装置A、Bは、データセーブの依頼を、ゲームマスタのゲーム装置C−Eのそれぞれに送信する。
【0079】
ゲームマスタのゲーム装置C−Eは、それぞれ、データセーブの依頼を受信すると、ゲームデータの暗号化を暗号化サーバ20に依頼する。具体的には、ゲーム装置C−Eの各々は、暗号化の依頼と、依頼元のプレイヤのゲーム装置12のゲームデータとを暗号化サーバ20に送信する。ただし、ゲームデータには、ゲーム装置Aまたはゲーム装置Bの識別情報がヘッダ情報(メタ情報)として付加されている。
【0080】
暗号化サーバ20は、暗号化の依頼およびゲームデータを受信すると、正規の依頼かどうかをマッチングサーバ16に問い合わせる。具体的には、暗号化サーバ20は、ゲームデータのメタ情報からプレイヤ端末情報を取得するとともに、暗号化の依頼元の端末情報(以下、説明の都合上、「暗号化依頼元端末情報」という。)を取得し、プレイヤ端末情報と暗号化依頼元端末情報とを含む問い合わせをマッチングサーバ16に送信する。
【0081】
マッチングサーバ16は、その問い合わせを受信すると、正規にマッチングされたゲームマスタかどうかを判定する。具体的には、マッチングサーバ16は、プレイヤ端末情報が示すゲーム装置12と、暗号化依頼元端末情報が示すゲーム装置12とが同一グループに属し、プレイヤ端末情報が示すゲーム装置12がプレイヤとしてマッチングされ、暗号化依頼元端末情報が示すゲーム装置12がゲームマスタとしてマッチングされているかどうかを判定する。そして、マッチングサーバ16は、判定結果を暗号化サーバ20に送信する。
【0082】
暗号化サーバ20は、判定結果を受信し、正規にマッチングされたゲームマスタであれば、ゲームデータを暗号化し、図7に示すように、暗号化ゲームデータを暗号化の依頼元であるゲームマスタのゲーム装置12に送信する。さらに、ゲームマスタのゲーム装置12は、暗号化ゲームデータを受信すると、データセーブの依頼元であるプレイヤのゲーム装置12に暗号化ゲームデータを送信する。当然のことではあるが、暗号化サーバ20では、復号サーバ18で復号可能な形式で、ゲームデータが暗号化される。
【0083】
したがって、データセーブを依頼したプレイヤのゲーム装置12は、暗号化ゲームデータを受信する。ただし、上述したように、プレイヤのゲーム装置12は、全ゲームマスタのゲーム装置12にデータセーブの依頼を送信しているため、正規にマッチングされている場合には、全ゲームマスタのゲーム装置12から暗号化ゲームデータが送信される。このため、プレイヤのゲーム装置12では、受信したすべての(ここでは、3つの)暗号化ゲームデータのうち、適正な暗号化ゲームデータを採用してセーブする。この実施例では、3つの暗号化ゲームデータのうち、等しい暗号化ゲームデータが適正な暗号化ゲームデータとして採用される。つまり、多数決により、セーブする1つの暗号化ゲームデータが決定される。
【0084】
また、ゲーム中に、ゲームマスタのゲーム装置12が接続(通信)を切断することがある。このような場合であっても、通信ゲームを継続するために、控えのゲーム装置12(以下、「バックアップノード」という。)を用意しておいてもよい。かかる場合には、マッチングサーバ16は、ゲーム装置12からの参加要求に応じて、プレイヤのゲーム装置12とゲームマスタのゲーム装置12とをマッチングする際に、さらに、バックアップノードのゲーム装置12をマッチング(決定)する。したがって、マッチングサーバ16で生成され、各ゲーム装置12に送信される端末リストには、バックアップノードのゲーム装置12についての識別情報、接続情報およびその種類(バックアップノード)が含まれる。このバックアップノードのマッチング方法は、ゲームマスタのマッチング方法と同じであるため、重複した説明は省略する。
【0085】
ゲームマスタのゲーム装置12の接続が切断されると、バックアップノードのゲーム装置12がゲームマスタとして昇格され、そして、新たにバックアップノードのゲーム装置12がマッチングされる。
【0086】
図8および図9を用いて、バックアップノードの昇格およびマッチングの処理について具体的に説明するが、ここでは、ゲーム装置Dが切断されたと仮定する。また、バックアップノードのゲーム装置12は「ゲーム装置F」と呼ぶことにする。さらに、新たにマッチングされるバックアップノードのゲーム装置12は「ゲーム装置G」と呼ぶことにする。
【0087】
図8に示すように、プレイヤのゲーム装置A、Bは、それぞれ、ゲーム装置Dの切断を検知する。この実施例では、プレイヤのゲーム装置12は、ゲームマスタのゲーム装置12に操作データを送信してから所定時間(たとえば、10秒)を経過しても、結果データが得られない場合に、当該結果ゲームを得ることができないゲーム装置12との接続が切断したことを検知する。
【0088】
ゲーム装置A、Bは、ゲーム装置Dの切断を検知すると、その旨を他方のゲーム装置B、Aに通知する。したがって、ゲーム装置A、Bは、他方のゲーム装置B、Aからゲーム装置Dが切断した旨の通知を受信する。つまり、プレイヤのゲーム装置A、B間で、ゲーム装置Dの切断が確認される。そして、ゲーム装置A、Bは、それぞれ、バックアップノード(ゲーム装置F)の昇格を、接続が切断されていないゲームマスタのゲーム装置C、Eに通知する。
【0089】
ゲーム装置C、Eは、バックアップノードの昇格の通知を受けると、それぞれ、ゲームデータをバックアップノードのゲーム装置Fに送信する。ゲーム装置Fは、バックアップノードとして待機しており、ゲームデータを受信すると、ゲームマスタに昇格する。ただし、実際には、バックアップノードのゲーム装置12は、後述するように、端末リストが更新されたときに、ゲームマスタに昇格する。
【0090】
また、プレイヤのゲーム装置A、Bは、バックアップノードの昇格を、切断されていないゲームマスタのゲーム装置C、Eに通知すると、図9に示すように、新たなバックアップノードのマッチングをマッチングサーバ16に依頼する。ただし、この依頼には、ゲーム装置Dが切断された旨の通知も含まれている。したがって、マッチングサーバ16は、ゲーム装置Dがゲーム装置Aおよびゲーム装置Bを含むグループから離脱したことを知ることができる。
【0091】
マッチングサーバ16は、新たなバックアップノードのマッチングの依頼を受信すると、新たなバックアップノードのゲーム装置12(ここでは、ゲーム装置G)をマッチングする。このマッチング方法は、上述したゲームマスタ(バックアップノード)のゲーム装置12をマッチングする方法と同じである。マッチングサーバ16は、新たなバックアップノードのゲーム装置Gをマッチングすると、端末リストを更新する。ここでは、ゲーム装置Dの識別情報、接続情報および種類(ゲームマスタ)を削除し、ゲーム装置Fの種類をゲームマスタに変更し、そして、ゲーム装置Fの識別情報、接続情報および種類(バックアップノード)を追記する。その後、マッチングサーバ16は、更新した端末リストをグループの各ゲーム装置12(ゲーム装置A−C、E−G)に送信する。
【0092】
ゲーム装置A−C、E−Gは、当該グループについての端末リストを受信し、当該グループについての端末リストを更新する。したがって、プレイヤのゲーム装置A、Bは、ゲームマスタのゲーム装置C、E、Fと通信することにより、通信ゲームを継続する。つまり、バックアップノードを用意しておければ、ゲームマスタのゲーム装置12が切断(離脱)したとしても、通信ゲームが終了(強制終了)されたり、再起動されたりすることがない。
【0093】
図10はマッチングサーバ16に内蔵されるRAMのメモリマップ100の一例を示す。図10に示すように、マッチングサーバ16に内蔵されるRAMは、プログラム記憶領域102およびデータ記憶領域104を含む。プログラム記憶領域102には、情報処理プログラムが記憶され、情報処理プログラムは、メイン処理プログラム102a、通信プログラム102b、マッチング処理プログラム102cおよび判定処理プログラム102dなどによって構成される。
【0094】
メイン処理プログラム102aは、マッチングサーバ16のメインルーチンを処理するためのプログラムである。通信処理プログラム102bは、ゲーム装置12、復号サーバ18および暗号化サーバ20などの装置やコンピュータと直接またはネットワーク14を介して通信するためのプログラムである。
【0095】
マッチング処理プログラム102cは、プレイヤのゲーム装置12、ゲームマスタのゲーム装置12およびバックアップノードのゲーム装置12をマッチングし、グループ毎の端末リストデータを作成するためのプログラムである。判定処理プログラム102dは、暗号化ゲームデータの復号やゲームデータの暗号化の依頼元のゲーム装置12が正規のゲームマスタであるかどうかを判定するためのプログラムである。
【0096】
図示は省略するが、プログラム記憶領域102には、ゲーム装置12にダウンロードするためのゲームプログラムなども記憶される。
【0097】
データ記憶領域104には、参加者リストデータ104aおよびマッチングデータ104bなどが記憶される。参加者リストデータ104aは、通信ゲームへの参加を受け付けた全ゲーム装置12の端末情報(識別情報および接続情報)をリスト(テーブル)で示したデータである。
【0098】
マッチングデータ104bは、プレイヤ、ゲームマスタおよびバックアップノードとしてマッチングしたゲーム装置12の端末リストをグループ単位で記憶したデータである。つまり、マッチングデータ104bは、第1グループ端末リストデータ1040、第2グループ端末リストデータ1042、…を含む。各端末リストデータ(1040、1042、…)は、グループに含まれる各ゲーム装置12の端末情報が、マッチングされた情報(プレイヤ、ゲームマスタおよびバックアップノードの別)とともに記述されたリスト(テーブル)のデータである。
【0099】
図示は省略するが、データ記憶領域104には、情報処理プログラムの実行に必要な他のデータが記憶されたり、タイマ(カウンタ)やフラグが設けられたりする。
【0100】
図11および図12は図2に示したゲーム装置12に内蔵されるRAM32のメモリマップ200の一例を示す。図11に示すように、RAM32は、プログラム記憶領域202およびデータ記憶領域204を含む。プログラム記憶領域202は、ゲームプログラムを記憶し、ゲームプログラムは、メイン処理プログラム202a、通信プログラム202b、プレイヤ用ゲーム処理プログラム202c、第1ゲームマスタ用ゲーム処理プログラム202d、第2ゲームマスタ用ゲーム処理プログラム202e、データロード処理プログラム202fおよびセーブ処理プログラム202gなどによって構成される。
【0101】
なお、ゲームプログラムは、フラッシュメモリ34からロードされたり、ネットワーク14を介して接続されるコンピュータないしサーバからダウロードされたり、ゲームカートリッジやSDカードのような記憶媒体からロードされたりする。
【0102】
メイン処理プログラム202aは、通信ゲームのメインルーチンを処理するためのプログラムである。通信プログラム202bは、他のゲーム装置(12)やコンピュータと直接またはネットワーク14を介して通信するためのプログラムである。
【0103】
プレイヤ用ゲーム処理プログラム202cは、プレイヤとして機能する場合のゲーム処理プログラムであり、主として、ゲームマスタからの結果データに基づいてゲーム画像を描画および表示したり、ゲーム音声を生成および出力したりして、通信ゲームを進行させる。
【0104】
第1ゲームマスタ用ゲーム処理プログラム202dは、第1ゲームマスタとして機能する場合のゲーム処理プログラムであり、主として、第1ゲームマスタとして参加しているグループの各プレイヤのゲーム装置12からの操作データに従って、ゲームデータ(後述する第1ゲームマスタ用ゲームデータ212c)を用いてゲーム処理を実行する。
【0105】
第2ゲームマスタ用ゲーム処理プログラム202eは、第2ゲームマスタとして機能する場合のゲーム処理プログラムであり、主として、第2ゲームマスタとして参加しているグループの各プレイヤのゲーム装置12からの操作データに従って、ゲームデータ(後述する第2ゲームマスタ用ゲームデータ214c)を用いてゲーム処理を実行する。
【0106】
データロード処理プログラム202fは、プレイヤとして機能する場合と、ゲームマスタとして機能する場合のデータロード処理を実行するためのプログラムである。具体的には、当該ゲーム装置12がプレイヤとして機能する場合には、データロード処理プログラム202fは、通信ゲームの開始に先立って、ゲームマスタの各ゲーム装置12にデータロードを依頼する。また、当該ゲーム装置12がゲームマスタとして機能する場合には、データロード処理プログラム202fは、プレイヤのゲーム装置12からのデータロードの依頼に応じて、復号サーバ18に暗号化ゲームデータの復号を依頼し、これに応じて、復号サーバ18で復号されたゲームデータ(第1ゲームマスタ用ゲームデータ212c、第2ゲームマスタ用ゲームデータ214c)をデータ記憶領域204に記憶する。
【0107】
セーブ処理プログラム202gは、プレイヤとして機能する場合と、ゲームマスタとして機能する場合のセーブ処理を実行するためのプログラムである。具体的には、当該ゲーム装置12がプレイヤとして機能する場合には、セーブ処理プログラム202gは、所定のイベントの発生やプレイヤの指示またはゲーム終了に応じて、データセーブを全ゲームマスタのゲーム装置12の各々に依頼し、これに応じて、各ゲームマスタのゲーム装置12から送信される暗号化ゲームデータを受信し、等しい暗号化ゲームデータをフラッシュメモリ34に記憶(セーブ)する。また、当該ゲーム装置12がゲームマスタとして機能する場合には、セーブ処理プログラム202gは、プレイヤのゲーム装置12からデータセーブの依頼があると、暗号化サーバ20にゲームデータの暗号化を依頼し、これに応じて、暗号化サーバ20から送信された暗号化ゲームデータを受信し、データセーブの依頼元のプレイヤのゲーム装置12に送信する。
【0108】
図示は省略するが、プログラム記憶領域202には、画像表示プログラムや音声出力プログラムなども記憶される。
【0109】
図12に示すように、データ記憶領域204は、さらに、プレイヤ用の記憶領域210、第1ゲームマスタ用の記憶領域212および第2ゲームマスタ用の記憶領域214を含む。
【0110】
プレイヤ用の記憶領域210には、操作データバッファ210aおよびプレイヤ用送受信データバッファ210bが設けられる。操作データバッファ210aは、入力装置38からの操作データを記憶する。プレイヤ用送受信データバッファ210bは、ゲームマスタのゲーム装置12やマッチングサーバ16とやり取りするデータを記憶する。
【0111】
また、プレイヤ用の記憶領域210には、プレイヤ用端末リストデータ210cが記憶される。プレイヤ用端末リストデータ210cは、当該ゲーム装置12がプレイヤとして参加しているグループの端末リストについてのデータである。
【0112】
さらに、プレイヤ用の記憶領域210には、タイマ210dが設けられる。このタイマ210dは、ゲームマスタのゲーム装置12との接続が切断されたかどうかを判断するための所定時間(たとえば、10秒)をカウントするために用いられる。
【0113】
図示は省略するが、プレイヤ用の記憶領域210には、プレイヤのゲーム装置12として機能する場合に必要な他のデータが記憶されたり、他のタイマ(カウンタ)やフラグが設けられたりする。
【0114】
第1ゲームマスタ用の記憶領域212には、第1ゲームマスタ用送受信データバッファ212aが設けられる。この第1ゲームマスタ用送受信データバッファ212aは、当該ゲーム装置12が第1ゲームマスタとして機能する場合に、プレイヤのゲーム装置12、マッチングサーバ16、復号サーバ18および暗号化サーバ20との間でやり取りするデータを記憶する。
【0115】
また、第1ゲームマスタ用の記憶領域212には、第1ゲームマスタ用端末リストデータ212bおよび第1ゲームマスタ用ゲームデータ212cが記憶される。第1ゲームマスタ用端末リストデータ212bは、当該ゲーム装置12が第1ゲームマスタとしてマッチングされているグループについての端末リストのデータである。第1ゲームマスタ用ゲームデータ212cは、当該ゲーム装置12が第1ゲームマスタとしてマッチングされているグループにおける各プレイヤのゲーム装置12のゲームデータである。この実施例では、プレイヤのゲーム装置12は2台であるため、第1ゲームマスタ用ゲームデータ212cには、2種類のゲームデータ(上記のゲームデータAおよびゲームデータBに相当する。)が含まれる。後述する第2ゲームマスタ用ゲームデータ214cも同様である。
【0116】
図示は省略するが、第1ゲームマスタ用の記憶領域212には、第1ゲームマスタのゲーム装置12として機能する場合に必要な他のデータが記憶されたり、他のタイマ(カウンタ)やフラグが設けられたりする。
【0117】
第2ゲームマスタ用の記憶領域214には、第2ゲームマスタ用送受信データバッファ214aが設けられる。この第2ゲームマスタ用送受信データバッファ214aは、当該ゲーム装置12が第2ゲームマスタとして機能する場合に、プレイヤのゲーム装置12、マッチングサーバ16、復号サーバ18および暗号化サーバ20との間でやり取りするデータを記憶する。
【0118】
また、第2ゲームマスタ用の記憶領域214には、第2ゲームマスタ用端末リストデータ214bおよび第2ゲームマスタ用ゲームデータ214cが記憶される。第2ゲームマスタ用端末リストデータ214bは、当該ゲーム装置12が第2ゲームマスタとしてマッチングされているグループについての端末リストのデータである。第2ゲームマスタ用ゲームデータ214cは、当該ゲーム装置12が第2ゲームマスタとしてマッチングされているグループにおける各プレイヤのゲーム装置12のゲームデータである。
【0119】
図示は省略するが、第2ゲームマスタ用の記憶領域214には、第2ゲームマスタのゲーム装置12として機能する場合に必要な他のデータが記憶されたり、他のタイマ(カウンタ)やフラグが設けられたりする。
【0120】
以下、ゲーム装置12、マッチングサーバ16、復号サーバ18、暗号化サーバ20のそれぞれで実行される具体的な処理について説明する。
【0121】
図13、図14および図15は、マッチングサーバ16のプロセッサのマッチング処理、正規判定処理および追加処理をそれぞれ示す。これらの処理は、それぞれ異なるタスクで実行される。図13に示すマッチング処理は、所定時間(たとえば、10分)毎に実行され、図14に示す正規判定処理および図15に示す追加処理は、ゲーム装置12からの要求に応じて実行される。したがって、ゲーム装置12からの要求があれば、要求毎にタスクが起動(実行)される。
【0122】
図13は、マッチングサーバのプロセッサのマッチング処理の一例を示すフロー図である。図13に示すように、マッチングサーバ16のプロセッサはマッチング処理を開始すると、ステップS1で、ゲーム装置12からの参加要求を受け付ける。詳細な説明は省略するが、ゲーム装置12からの参加要求は、当該ゲーム装置12の識別情報および接続情報を含む。
【0123】
次のステップS3では、参加要求のあったゲーム装置12の中から、2台のプレイヤのゲーム装置12をマッチングする。続いて、ステップS5では、3台のゲームマスタのゲーム装置12をマッチングする。さらに、ステップS7で、バックアップノードのゲーム装置12をマッチングする。
【0124】
次のステップS9では、端末リストを生成する。つまり、マッチングサーバ16のプロセッサは、ステップS3でマッチングされた2台のプレイヤのゲーム装置12、ステップS5でマッチングされた3台のゲームマスタのゲーム装置12およびステップS7でマッチングされた1台のバックアップノードのゲーム装置12で構成されるグループについての端末リストを作成する。そして、ステップS11で、マッチングされた全ゲーム装置12に端末リストを送信して、マッチング処理を終了する。
【0125】
また、マッチングサーバ16のプロセッサは、復号サーバ18または暗号化サーバ20から判定処理の依頼があると、図14に示すように、正規判定の処理を開始し、ステップS21で、データロードを依頼または暗号化ゲームデータを送信したプレイヤのゲーム装置12の識別情報(プレイヤ端末情報)と、依頼元のゲームマスタのゲーム装置12の識別情報(復号依頼元端末情報または暗号化依頼元端末情報)を取得する。次のステップS23では、正規にマッチングされているかどうかを判定する。つまり、マッチングサーバ16のプロセッサは、マッチングデータ104bを参照して、ステップS21で取得したプレイヤのゲーム装置12の識別情報と、依頼元のゲームマスタのゲーム装置12の識別情報とが、同じグループに属し、プレイヤおよびゲームマスタが正しくマッチングされているかどうかを判定する。
【0126】
続くステップS25では、正規にマッチングされているかどうかを判断する。ステップS25で“YES”であれば、つまり正規にマッチングされていれば、ステップS27で、正規にマッチングされていることを問い合わせ元の復号サーバ18または暗号化サーバ20に通知して、正規判定処理を終了する。一方、ステップS25で“NO”であれば、つまり正規にマッチングされていなければ、ステップS29で、正規にマッチングされていないことを問い合わせ元の復号サーバ18または暗号化サーバ20に通知して、正規判定処理を終了する。
【0127】
また、マッチングサーバ16のプロセッサは、プレイヤのゲーム装置12からの新たなバックアップノードのマッチングの依頼があると、図15に示すように、追加処理を開始し、ステップS41で、新たなバックアップノードのゲーム装置12をマッチングする。
【0128】
なお、上述したように、バックアップノードのマッチングの依頼には、接続が切断されたゲーム装置12の識別情報も含まれる。
【0129】
次のステップS43では、当該グループの端末リストを更新する。上述したように、マッチングサーバ16のプロセッサは、端末リストにおいて、切断されたゲーム装置12の識別情報、接続情報および種類を削除し、バックアップノードのゲーム装置12(ゲーム装置F)の種類をバックアップノードからゲームマスタに変更するとともに、ステップS41でマッチングしたゲーム装置12(ゲーム装置G)の識別情報、接続情報および種類(バックアップノード)を追加する。
【0130】
そして、ステップS45で、更新した端末リストを当該グループの全ゲーム装置12に送信する。したがって、後述するゲーム装置12の処理において、端末リストが更新され、その後は、更新された端末リストに従って、プレイヤのゲーム装置12とゲームマスタのゲーム装置12とが通信し、通信ゲームが進行される。
【0131】
図16は、復号サーバ18のプロセッサの復号処理を示すフロー図である。プレイヤのゲーム装置12から暗号化ゲームデータとともに復号の依頼を受信すると、復号サーバ18のプロセッサは、復号処理を開始し、ステップS61で、正規の依頼であるかどうかをマッチングサーバ16に問い合わせる。
【0132】
続くステップS63では、マッチングサーバ16から判定結果を受信したかどうかを判断する。ステップS63で“NO”であれば、つまりマッチングサーバ16からの判定結果を受信していなければ、同じステップS63に戻る。つまり、復号サーバ18のプロセッサは、判定結果を受信するのを待機する。一方、ステップS63で“YES”であれば、つまりマッチングサーバ16からの判定結果を受信すれば、ステップS65で、正規の依頼であるかどうかを判断する。つまり、復号サーバ18のプロセッサは、受信した判定結果が正規の依頼であることを示すかどうかを判断する。
【0133】
ステップS65で“NO”であれば、つまり正規の依頼でなければ、そのまま復号処理を終了する。つまり、暗号化ゲームデータは復号されないため、正規にマッチングされていないゲーム装置12に、生のゲームデータが送信されることはない。一方、ステップS65で“YES”であれば、つまり正規の依頼であれば、ステップS67で、暗号化ゲームデータを復号して、ステップS69で、ゲームデータを、復号の依頼元であるゲームマスタのゲーム装置12に送信して、復号処理を終了する。
【0134】
上述したように、復号の依頼は、各グループの全ゲームマスタのゲーム装置12の各々から送信されるため、このような復号処理は、復号の依頼毎に実行される。したがって、同時期に復号の依頼がある場合には、各復号処理が並列的に実行される。
【0135】
図17は、暗号化サーバ20のプロセッサの暗号化処理を示すフロー図である。ゲームマスタのゲーム装置12からゲームデータとともに暗号化の依頼を受信すると、暗号化サーバ20のプロセッサは、暗号化処理を開始し、ステップS81で、正規の依頼であるかどうかをマッチングサーバ16に問い合わせる。
【0136】
続くステップS83では、マッチングサーバ16から判定結果を受信したかどうかを判断する。ステップS83で“NO”であれば、つまりマッチングサーバ16からの判定結果を受信していなければ、同じステップS83に戻る。つまり、暗号化サーバ20のプロセッサは、判定結果を受信するのを待機する。一方、ステップS83で“YES”であれば、つまりマッチングサーバ16からの判定結果を受信すれば、ステップS85で、正規の依頼であるかどうかを判断する。つまり、暗号化サーバ20のプロセッサは、受信した判定結果が正規の依頼であることを示すかどうかを判断する。
【0137】
ステップS85で“NO”であれば、つまり正規の依頼でなければ、そのまま暗号化処理を終了する。つまり、ゲームデータは暗号化されないため、正規にマッチングされていないゲーム装置12に、暗号化ゲームデータが送信されることはない。一方、ステップS85で“YES”であれば、つまり正規の依頼であれば、ステップS87で、ゲームデータを暗号化して、ステップS89で、暗号化ゲームデータを、暗号化の依頼元であるゲームマスタのゲーム装置12に送信して、暗号化処理を終了する。
【0138】
上述したように、暗号化の依頼は、各グループの全ゲームマスタのゲーム装置12の各々から送信されるため、このような暗号化処理は、暗号化の依頼毎に実行される。したがって、同時期に暗号化の依頼がある場合には、各暗号化処理が並列的に実行される。
【0139】
図18−図20は、プレイヤのゲーム装置12のCPU30のゲームプレイ処理を示すフロー図である。図21は、プレイヤのゲーム装置12のCPU30のデータセーブ処理を示すフロー図である。図22は、ゲームマスタのゲーム装置12のCPU30のデータロード処理を示すフロー図である。図23は、ゲームマスタのゲーム装置12のCPU30のゲームプレイ処理を示すフロー図である。図24は、ゲームマスタのゲーム装置12のCPU30の追加処理を示すフロー図である。図25は、ゲームマスタのゲーム装置12のCPU30のデータセーブ処理を示すフロー図である。
【0140】
以下、1つのグループに含まれるプレイヤのゲーム装置12のCPU30の処理とゲームマスタのゲーム装置12のCPU30の処理として説明する。ただし、上述したように、1台のゲーム装置12は、或るグループのプレイヤと、他の2つのグループのゲームマスタまたはバックアップノードとして機能する。このため、1台のゲーム装置12に着目すると、図18−図24に示す各処理は、当該ゲーム装置12で実行される場合がある。また、2つのグループのゲームマスタとして機能する場合には、2つのグループのそれぞれについて、図22−図25に示す各処理が実行される。
【0141】
なお、図示および詳細な説明は省略するが、上述したように、プレイヤのゲーム装置12は、通信ゲーム(ゲームプレイ)の開始に先立って、暗号化ゲームデータを各ゲームマスタのゲーム装置12に送信する、データロードの処理を実行する。
【0142】
図18に示すように、プレイヤのゲーム装置12のCPU30は、ゲームプレイ処理を開始すると、ステップS101で、操作入力があるかどうかを判断する。ここでは、CPU30は、操作データバッファ210aに、操作データが記憶されているかどうかを判断する。ステップS101で“NO”であれば、つまり操作入力が無ければ、ステップS117に進む。一方、ステップS101で“YES”であれば、つまり操作入力が有れば、ステップS103で、操作データを各ゲームマスタのゲーム装置12に送信し、ステップS105で、タイマ210dをリセットおよびスタートする。
【0143】
続いて、ステップS107では、全ゲームマスタのゲーム装置12から結果データを受信したかどうかを判断する。ステップS107で“NO”であれば、つまり結果データが送信されないゲームマスタのゲーム装置12が存在する場合には、図19に示すステップS119に進む。一方、ステップS107で“YES”であれば、つまり全ゲームマスタのゲーム装置12から結果データを受信すれば、ステップS109で、等しい結果データを採用する。そして、ステップS111で、採用された結果データを反映する。つまり、CPU30は、採用された結果データに基づいてゲーム画像を描画および表示装置42に出力(表示)したり、ゲーム音声を生成およびスピーカ46に出力したりして、ゲームを進行させる。
【0144】
そして、ステップS117では、ゲーム終了かどうかを判断する。CPU30は、ステップS117では、ゲーム終了の指示が入力されたり、ゲームオーバになったりしたかどうかを判断する。ステップS117で“NO”であれば、つまりゲーム終了でなければ、そのままステップS101に戻る。一方、ステップS117で“YES”であれば、ゲームプレイ処理を終了する。
【0145】
上述したように、結果データが送信されないゲームマスタのゲーム装置12が存在する場合には、図19に示すステップS119で、所定時間を経過したかどうかを判断する。つまり、CPU30は、タイマ210dのカウント値が所定時間を経過したかどうかを判断する。ステップS119で“NO”であれば、つまり所定時間を経過していなければ、そのまま図18に示したステップS107に戻る。つまり、CPU30は、結果データを受信するのを待機する。
【0146】
一方、ステップS119で“YES”であれば、つまり所定時間を経過すれば、ステップS121で、結果データが送信されないゲーム装置12を、切断されたゲーム装置12として検知する。次のステップS123で、切断されたゲーム装置12を他方のプレイヤのゲーム装置12に通知する。そして、ステップS125で、他方のプレイヤのゲーム装置12から切断通知があるかどうかを判断する。ステップS125で“NO”であれば、つまり他方のゲーム装置12からの切断通知が無ければ、そのままステップS125に戻る。
【0147】
なお、この実施例では、他方のゲーム装置12からの切断通知が無ければ、そのままステップS125に戻るようにしてあるが、所定時間(たとえば、10秒)を経過しても、切断通知が無い場合には、誤って切断されたゲーム装置12を検知した可能性があるため、再度結果データの受信を行うために、ステップS107に戻るようにしてもよい。もしくは、他方のプレイヤのゲーム装置12が切断されている可能性があるため、ゲームプレイ処理を強制的に終了するようにしてもよい。
【0148】
また、ステップS125で“YES”であれば、つまり他方のプレイヤのゲーム装置12からの切断通知が有れば、図20に示すステップS127で、切断されていないゲームマスタのゲーム装置12にバックアップノードの昇格を通知する。次のステップS129では、マッチングサーバ16にバックアップノードのマッチングの依頼を送信する。このとき、CPU30は、切断されたゲーム装置12の識別情報も送信する。
【0149】
そして、ステップS131では、端末リストを受信したかどうかを判断する。ステップS131で“NO”であれば、つまり端末リストを受信していなければ、同じステップS131に戻る。一方、ステップS131で“YES”であれば、つまり端末リストを受信すれば、ステップS133で、端末リストを更新して、図18に示したステップS117に戻る。ステップS133では、プレイヤ用端末リストデータ210cが示す端末リストが、受信した端末リストに置き換えられる。
【0150】
図21は、プレイヤのゲーム装置12のCPU30のデータセーブ処理を示すフロー図である。ゲームプレイ中に所定のイベントが発生したり、ゲームプレイ中にデータセーブの指示が入力されたり、ゲームプレイ処理を終了したりすることに応じて、データセーブ処理が開始される。
【0151】
プレイヤのゲーム装置12のCPU30は、データセーブ処理を開始すると、図21に示すように、ステップS151で、データセーブの依頼を各ゲームマスタのゲーム装置12に送信する。次のステップS153では、全ゲームマスタのゲーム装置12から暗号化ゲームデータを受信したかどうかを判断する。
【0152】
ステップS153で“NO”であれば、つまり暗号化ゲームデータを送信していないゲームマスタのゲーム装置12が存在する場合には、そのままステップS153に戻る。一方、ステップS153で“YES”であれば、つまり全ゲームマスタのゲーム装置12から暗号化ゲームデータを受信すれば、ステップS155で、等しい暗号化ゲームデータを採用し、ステップS157で、採用した暗号化ゲームデータをフラッシュメモリ34にセーブして、データセーブ処理を終了する。
【0153】
なお、この実施例では、ステップS153で“NO”の場合には、そのまま同じステップS153の処理を繰り返すようにしたが、これに限定される必要はない。所定時間を経過しても、暗号化ゲームデータを受信しない場合には、データセーブの失敗を通知して、強制的にデータセーブ処理を終了するようにしてもよい。または、ゲームプレイの場合と同様に、所定時間を経過しても、暗号化ゲームデータを受信しない場合には、暗号化ゲームデータを送信しないゲームマスタのゲーム装置12の切断を検知し、バックアップノードをゲームマスタに昇格させて、データセーブ処理を続行するようにしてもよい。
【0154】
図22は、ゲームマスタのゲーム装置12のCPU30のデータロード処理を示すフロー図である。ただし、ここでは、第1ゲームマスタとして機能する場合について説明するが、第2ゲームマスタとして機能する場合も同様である。後述するゲームプレイ処理およびデータセーブ処理についても同様に、第1ゲームマスタとして機能する場合について説明する。
【0155】
プイレヤのゲーム装置12から暗号化ゲームデータとともにデータロードの依頼を受信すると、ゲームマスタのゲーム装置12のCPU30は、データロード処理を開始し、図22に示すように、ステップS171で、暗号化ゲームデータおよび復号の依頼を復号サーバ18に送信する。
【0156】
続くステップS173では、ゲームデータを受信したかどうかを判断する。ステップS173で“NO”であれば、つまりゲームデータを受信していなければ、そのまま同じステップS173に戻る。一方、ステップS173で“YES”であれば、つまりゲームデータを受信すれば、ステップS175で、ゲームデータを記憶して、データロード処理を終了する。つまり、ステップS175では、CPU30は、第1ゲームマスタ用の記憶領域212に設けられた第1ゲームマスタ用送受信データバッファ212aに記憶されたゲームデータを、第1ゲームマスタ用ゲームデータ212cとして記憶する。ただし、プレイヤのゲーム装置12は2台であるため、各プレイヤのゲーム装置12からの依頼に応じて、データロードの処理がそれぞれ実行される。
【0157】
図23は、ゲームマスタのゲーム装置12のCPU30のゲームプレイ処理のフロー図である。ゲームマスタのゲーム装置12のCPU30は、全プレイヤのゲーム装置12からの操作データを受信すると、ゲームプレイ処理を開始し、ステップS191で、ゲーム処理を実行する。このとき、第1ゲームマスタ用ゲームデータ212cに対応するパラメータが用いられる。そして、ステップS193で、結果データを各プレイヤのゲーム装置12に送信して、ゲームプレイ処理を終了する。
【0158】
図24は、ゲームマスタのゲーム装置12のCPU30の昇格処理のフロー図である。ゲームマスタのゲーム装置12のCPU30は、プレイヤのゲーム装置12からバックアップノードの昇格の通知を受信すると、昇格処理を開始し、ステップS211で、バックアップノードのゲーム装置12にゲームデータを送信する。ただし、ここで送信されるのは、第1ゲームマスタ用ゲームデータ212cの複製である。
【0159】
次のステップS213では、端末リストを受信したかどうかを判断する。ステップS213で“NO”であれば、つまり端末リストを受信していなければ、そのまま同じステップS213に戻る。一方、ステップS213で“YES”であれば、つまり端末リストを受信すれば、ステップS215で、端末リストを更新して、昇格処理を終了する。ステップS215では、第1ゲームマスタ用端末リストデータ212bが示す端末リストが、受信した端末リストに置き換えられる。
【0160】
図25は、ゲームマスタのゲーム装置12のCPU30のデータセーブ処理のフロー図である。ゲームマスタのゲーム装置12のCPU30は、プレイヤのゲーム装置12からデータセーブの依頼を受信すると、データセーブ処理を開始し、ステップS231で、ゲームデータおよび暗号化の依頼を暗号化サーバ20に送信する。
【0161】
次のステップS233では、暗号化ゲームデータを受信したかどうかを判断する。ステップS233で“NO”であれば、つまり暗号化ゲームデータを受信していなければ、そのまま同じステップS233に戻る。一方、ステップS233で“YES”であれば、つまり暗号化ゲームデータを受信すれば、ステップS235で、暗号化ゲームデータを、データセーブの依頼元であるプレイヤのゲーム装置12に送信してデータセーブ処理を終了する。
【0162】
この実施例によれば、ゲーム装置はゲームプレイとして或る通信ゲームに参加するとともに、他の通信ゲームにゲームマスタとして参加することができ、少なくとも、プレイヤのゲーム装置およびゲームマスタのゲーム装置をマッチングし、マッチングされたゲーム装置間でゲームプレイの処理を実行するので、ゲームサーバを用意することなく、処理の負荷を分散させることができる。
【0163】
また、この実施例によれば、プレイヤのゲーム装置とは異なるゲームマスタのゲーム装置にゲームデータが記憶され、ゲームマスタのゲーム装置はプレイヤのゲーム装置から操作データを受信すると、このゲームデータに対応するパラメータを用いてゲーム処理を実行し、その結果をプレイヤのゲーム装置に送信するので、プレイヤのゲーム装置にゲームデータが記憶されないため、ゲームサーバを設けなくても、ゲームデータが改変されるのを出来る限り防止することができる。
【0164】
さらに、この実施例によれば、ゲーム装置にセーブされるのは暗号化ゲームデータであるため、これが改変されたとしても、復号サーバで復号できないため、改変されたゲームデータを用いたゲーム処理が実行されることもない。
【0165】
なお、この実施例では、ゲームマスタとして3台のゲーム装置をマッチングするようにしたが、ゲームマスタのゲーム装置の数は、1台または2台でもよい。または、ゲーム装置の能力があれば、4台以上マッチングすることも可能である。ただし、ゲームマスタのゲーム装置の数が1台の場合には、プレイヤのゲーム装置は、当該ゲームマスタのゲーム装置からの結果データや暗号化ゲームデータを受信するだけである。また、ゲームマスタのゲーム装置の数が2台の場合には、プレイヤのゲーム装置は、それらのゲームマスタのゲーム装置からの結果データや暗号化ゲームデータが一致する場合にのみ、その結果データや暗号化データを採用することになる。さらに、ゲームマスタのゲーム装置の数が4台以上の偶数の場合には、等しいものと等しくないものとの数が同じである場合には、等しいものを採用してもよいし、採用しなくてもよい。
【0166】
また、この実施例では、携帯型のゲーム装置についてのみ説明したが、通信機能を備える他の携帯可能な情報処理装置、たとえばノートPC,PDA,携帯電話機に適用することも可能である。また、携帯可能でない情報処理装置、たとえばデスクトップPC,据置型のゲーム装置などにも適用することも可能である。
【0167】
さらに、この実施例では、マッチングサーバ、復号サーバおよび暗号化サーバをそれぞれ別に設けるようにしたが、これらのうちの2つの以上の機能を備える1または2つのサーバを設けるようにしてもよい。
【0168】
さらにまた、この実施例では、ゲームデータの暗号化を暗号化サーバで行い、暗号化ゲームデータの復号を復号サーバで行うようにしたが、ゲームマスタのゲーム装置で暗号化や復号を行うようにしてもよい。ユーザが気付かないうちに当該ユーザのゲーム装置がゲームマスタとなっているため、そのゲーム装置で暗号化や復号が行われたとしても、そのゲーム装置で不正行為が行われる可能性は低くなる。
【符号の説明】
【0169】
10 …ゲームシステム
12 …ゲーム装置
16 …マッチングサーバ
18 …復号サーバ
20 …暗号化サーバ
30 …CPU
32 …RAM
34 …フラッシュメモリ
36 …無線通信モジュール
38 …入力装置
42 …表示装置
46 …スピーカ
【技術分野】
【0001】
この発明はゲームシステム、ゲーム装置、ゲームプログラムおよびゲーム制御方法に関し、特にたとえば、複数のゲーム装置間でデータのやり取りを行う、ゲームシステム、ゲーム装置、ゲームプログラムおよびゲーム制御方法に関する。
【背景技術】
【0002】
この種のゲームシステムの一例が特許文献1に開示されている。この特許文献1には、複数のゲーム装置とゲームサーバとを含むゲームシステムにおいて、複数のゲーム装置から入力データがゲームサーバに送信され、ゲームサーバでは、入力データに基づいてゲーム処理を実行することが記載されている。
【特許文献1】特開2011−78634[A63F 13/12]
【発明の概要】
【発明が解決しようとする課題】
【0003】
この特許文献1に開示されたゲームシステムでは、ゲームサーバで集中的にゲーム処理を実行するようになっていた。
【0004】
それゆえに、この発明の主たる目的は、新規な、ゲームシステム、ゲーム装置、ゲームプログラムおよびゲーム制御方法を提供することである。
【0005】
また、この発明の他の目的は、ゲームサーバを用意することなく、ゲーム処理の負荷を分散することができる、ゲームシステム、ゲーム装置、ゲームプログラムおよびゲーム制御方法を提供することである。
【課題を解決するための手段】
【0006】
第1の発明は、ネットワーク上でそれぞれ接続可能な同種の第1ゲーム装置、第2ゲーム装置および第3ゲーム装置を含み、第1ゲーム装置と第2ゲーム装置との間で第1通信ゲームをプレイする、ゲームシステムである。第1ゲーム装置は、第1ユーザの入力に応じて、当該入力に対応する第1入力データを第3ゲーム装置に送信する第1入力データ送信手段を備える。第2ゲーム装置は、第2ユーザの入力に応じて、当該入力に対応する第2入力データを第3ゲーム装置に送信する第2入力データ送信手段を備える。第1通信ゲームをプレイしない第3ゲーム装置は、第1入力データ送信手段によって送信された第1入力データおよび第2入力データ送信手段によって送信された第2入力データに基づいてゲーム処理を実行するゲーム処理実行手段を備える。つまり、第1ゲーム装置および第2ゲーム装置は、ユーザの入力に応じた入力データを第3ゲーム装置に送信するだけであり、第1ゲーム装置と第2ゲーム装置との間でプレイされる第1通信ゲームのプレイヤとして参加していない第3ゲーム装置が、第1通信ゲームのゲーム処理を実行する。
【0007】
第1の発明によれば、通信ゲームをプレイする第1ゲーム装置および第2ゲーム装置は、入力データを第3ゲーム装置に送信するだけであり、ゲーム処理は第3ゲーム装置で実行されるため、ゲームサーバを用意することなく、ゲーム処理の負荷を分散させることができる。
【0008】
第2の発明は、第1の発明に従属し、ゲームシステムは、第1マッチング手段をさらに備える。第1マッチング手段は、複数のゲーム装置の中から第1ゲーム装置、第2ゲーム装置および第3ゲーム装置をマッチングする。たとえば、第1ゲーム装置と第2ゲーム装置とは、ゲームレベル(経験値)や総プレイ時間が近似するユーザのゲーム装置同士である。また、第1ゲーム装置および第2ゲーム装置以外のゲーム装置であって、他の2つのグループの通信ゲームの処理を実行するゲーム装置または控えのゲーム装置として割り当てられていないゲーム装置が第3ゲーム装置としてマッチングされる。
【0009】
第2の発明によれば、第1−第3ゲーム装置は、ゲームシステムに含まれるもののうち、当該第1−第3ゲーム装置ではない第1マッチング手段によって、複数のゲーム装置の中から選択的にマッチングされるので、たとえば、通信ゲームをプレイする度に異なる相手と対戦することができ、そのゲーム処理は不特定のゲーム装置によって実行される。したがって、通信ゲームをプレイする度に、対戦相手が異なるため、通信ゲームの面白味を増大させることができる。また、ゲーム処理を実行する第3ゲーム装置も固定されないため、ゲーム処理の実行可能なゲーム装置を割り当てることができ、処理可能な資源を有効に利用することができる。
【0010】
第3の発明は、第2の発明に従属し、ゲームシステムは、少なくとも第3ゲーム装置と接続可能な第4ゲーム装置をさらに含む。第1マッチング手段は、少なくとも第3ゲーム装置および第4ゲーム装置をマッチングする。第3ゲーム装置は、第1ゲーム処理実行手段によってゲーム処理を実行している場合に、第1ゲーム装置および第2ゲーム装置とは異なる第4ゲーム装置との間で第2通信ゲームをプレイする。たとえば、第2通信ゲームは、第1通信ゲームと同じ種類または異なる種類の通信ゲームである。
【0011】
第3の発明によれば、第3ゲーム装置は、第1ゲーム装置と第2ゲーム装置との間で実行される通信ゲームのゲーム処理を実行するとともに、他のゲーム装置との間で通信ゲームをプレイすることができる。
【0012】
第4の発明は、第2または第3の発明に従属し、ゲームシステムは、少なくとも第1ゲーム装置と接続可能な第5ゲーム装置および第6ゲーム装置をさらに含む。第5ゲーム装置と第6ゲーム装置との間で第3通信ゲームがプレイされる。たとえば、第3通信ゲームは、第1通信ゲームまたは第2通信ゲームと同じ種類または異なる種類の通信ゲームである。第5ゲーム装置は、第3ユーザの入力に応じて、当該入力に対応する第3入力データを第1ゲーム装置に送信する第3入力データ送信手段を備える。第6ゲーム装置は、第4ユーザの入力に応じて、当該入力に対応する第4入力データを第1ゲーム装置に送信する第4入力データ送信手段を備える。少なくとも第3通信ゲームをプレイしない第1ゲーム装置は、第3入力データ送信手段によって送信された第3入力データおよび第4入力データ送信手段によって送信された第4入力データに基づいてゲーム処理を実行する第2ゲーム処理実行手段をさらに備える。つまり、第1通信ゲームをプレイする第1通信ゲーム装置は、第4ゲーム装置と第5ゲーム装置との間でプレイされる第3通信ゲームのゲーム処理を実行する。
【0013】
第4の発明によれば、或るグループで実行される第1通信ゲームにプレイヤとして参加するゲーム装置は、他のグループで実行される第3通信ゲームにプレイヤとして参加せずに、当該第3通信ゲームのゲーム処理を実行することができる。
【0014】
第5の発明は、第1ないし第4の発明のいずれかに従属し、ゲームシステムは、複数の第3ゲーム装置をさらに含む。複数の第3ゲーム装置の各々は、第1ゲーム処理実行手段によって実行されたゲーム処理の結果データを第1ゲーム装置および第2ゲーム装置に送信する結果データ送信手段をさらに備える。一方、第1ゲーム装置および第2ゲーム装置の各々は、複数の第3ゲーム装置の結果データ送信手段によって送信された結果データを受信する結果データ受信手段、および結果データ受信手段によって受信された複数の結果データのうち、適正な結果データを出力装置に出力させる出力制御手段をさらに備える。
【0015】
第5の発明によれば、第1ゲーム装置および第2ゲーム装置は、各第3ゲーム装置から得られた結果データのうち、適正な結果データを出力するので、改変されたゲームデータを用いてゲーム処理を行うような不正行為によって得られた結果データが通信ゲームに反映されるのを防止することができる。
【0016】
第6の発明は、第5の発明に従属し、ゲームシステムは、少なくとも3台の第3ゲーム装置を含む。第1ゲーム装置および第2ゲーム装置の出力制御手段は、結果データ受信手段によって受信された複数の結果データを比較し、等しいデータの数が多い結果データを出力させる。つまり、多数決により選択(決定)された結果データが出力される。
【0017】
第6の発明によれば、多数決のような簡単な手法によって不正行為を防止することができる。
【0018】
第7の発明は、第1ないし第6の発明のいずれかに従属し、ゲームシステムは、第3ゲーム装置の控えの第7ゲーム装置をさらに含む。第7ゲーム装置は、第3ゲーム装置の接続が切断された場合に、当該第3ゲーム装置の代わりに、第1入力データ送信手段によって送信された第1入力データおよび第2入力データによって送信された第2入力データに基づいてゲーム処理を実行する代替ゲーム処理実行手段を備える。つまり、代替ゲーム処理実行手段は、少なくとも第1ゲーム処理実行手段と同一の機能を有している。
【0019】
第7の発明によれば、控えのゲーム装置を用意しておくので、第3ゲーム装置が切断されることにより、通信ゲームが中断されるのを防止することができる。
【0020】
第8の発明は、第1の発明に従属し、ゲームシステムは、少なくとも第3ゲーム装置と接続可能な暗号化装置をさらに含む。第3ゲーム装置は、第1ゲーム処理実行手段によって実行されたゲーム処理に応じて変化されるゲームデータを暗号化装置に送信する第1ゲームデータ送信手段をさらに備える。つまり、第3ゲーム装置は、他の機器にゲームデータの暗号化を依頼する。暗号化装置は、第1ゲームデータ送信手段によって送信されたゲームデータを暗号化する暗号化手段、および暗号化手段によって暗号化された暗号化ゲームデータを第3ゲーム装置に送信する第1暗号化データ送信手段を備える。つまり、暗号化装置は、第3ゲーム装置からゲームデータの依頼を受けて、当該ゲームデータを暗号化し、暗号化ゲームデータを依頼元の第3ゲーム装置に送信する。
【0021】
第3ゲーム装置は、第1暗号化データ送信手段によって送信された暗号化ゲームデータを第1ゲーム装置および第2ゲーム装置に送信する第2暗号化データ送信手段をさらに備える。第1ゲーム装置および第2ゲーム装置の各々は、第2暗号化データ送信手段によって送信された暗号化ゲームデータを記憶する記憶手段をさらに備える。つまり、第3ゲーム装置は、暗号化ゲームデータを受信すると、当該暗号化ゲームデータを第1ゲーム装置および第2ゲーム装置に送信する。そして、第1ゲーム装置および第2ゲーム装置は、それぞれ、暗号化ゲームデータを受信して、セーブする。
【0022】
第8の発明によれば、通信ゲームをプレイする場合に使用するゲームデータを暗号化してゲーム装置に記憶するので、当該通信ゲームをプレイするゲーム装置が当該ゲームデータを直接読み取ることができない。したがって、ゲームデータの改変(改竄)を出来る限り防止することができ、通信ゲームにおける不正行為を未然に防止することができる。
【0023】
第9の発明は、第8の発明に従属し、ゲームシステムは、ネットワーク上でそれぞれ接続可能な複数の同種のゲーム装置をマッチングする第2マッチング手段をさらに備える。暗号化手段は、第1ゲームデータ送信手段によって送信されたゲームデータでゲームプレイする第1ゲーム装置、第2ゲーム装置および第3ゲーム装置の組み合わせが、第2マッチング手段によってマッチングされている場合に、当該ゲームデータを暗号化する。つまり、通信ゲームをプレイするゲーム装置と、そのゲーム処理を実行するゲーム装置の組み合わせが正しい場合に、ゲームデータが暗号化される。
【0024】
第9の発明によれば、暗号化の依頼元のゲーム装置が、通信ゲームをプレイするゲーム装置に対して正しく組み合わされている場合に、ゲームデータを暗号化するので、不正な依頼に対して、ゲームデータが暗号化されることはない。よって、その後に、不正なゲームデータを用いて通信ゲームがプレイされることはない。
【0025】
第10の発明は、第8または第9の発明に従属し、ゲームシステムは、少なくとも第3ゲーム装置と接続可能な復号装置をさらに含む。第1ゲーム装置および第2ゲーム装置の各々は、記憶手段によって記憶された暗号化ゲームデータを第3ゲーム装置に送信する第3暗号化データ送信手段をさらに備える。つまり、第1ゲーム装置および第2ゲーム装置は、それぞれ、通信ゲームの開始に先立って、セーブされた暗号化ゲームデータを第3ゲーム装置に送信する。
【0026】
第3ゲーム装置は、第3暗号化データ送信手段によって送信された暗号化ゲームデータを復号装置に送信する第4暗号化データ送信手段をさらに備える。復号装置は、第4暗号化データ送信手段によって送信された暗号化ゲームデータを復号する復号手段、および復号手段によって復号されたゲームデータを第3ゲーム装置に送信する第2ゲームデータ送信手段をさらに備える。つまり、第3ゲーム装置は、暗号化ゲームデータを受信すると、復号装置に暗号化ゲームデータの復号を依頼する。これに応じて、復号装置は、暗号化ゲームデータを復号し、復号したゲームデータを依頼元の第3ゲーム装置に送信する。したがって、第3ゲーム装置では、復号されたゲームデータを用いて、第1ゲーム装置と第2ゲーム装置との間でプレイされる通信ゲームのゲーム処理を実行する。
【0027】
第10の発明によれば、暗号化ゲームデータを第1ゲーム装置および第2ゲーム装置のそれぞれで記憶しておき、通信ゲームをプレイする際に、第3ゲーム装置の依頼に応じて復号装置で暗号化ゲームデータを復号するので、通信ゲームをプレイする相手は固定される必要がなく、様々な相手と通信ゲームをプレイすることができる。
【0028】
第11の発明は、第10の発明に従属し、復号手段は、第4暗号化データ送信手段によって送信された暗号化ゲームデータのゲームデータでゲームプレイする第1ゲーム装置、第2ゲーム装置および第3ゲーム装置の組み合わせが、第2マッチング手段によってマッチングされている場合に当該暗号化ゲームデータを復号する。
【0029】
第11の発明によれば、通信ゲームをプレイするゲーム装置に対して正しく組み合わされている場合に、暗号化ゲームデータを復号するので、不正に作成された暗号化ゲームデータが復号されたり、正しい組み合わせでないゲーム装置からの依頼に応じて暗号化ゲームデータが復号されたりするのを防止することができる。
【0030】
第12の発明は、第10または第11の発明に従属し、第1ゲーム処理実行手段は、第1入力データ送信手段によって送信された第1入力データ、第2入力データ送信手段によって送信された第2入力データおよび第2ゲームデータ送信手段によって送信されたゲームデータに基づいて、ゲーム処理を実行する。
【0031】
第12の発明によれば、第3ゲーム装置は、復号したゲームデータを用いて、第1ゲーム装置および第2ゲーム装置からの入力データに従って、ゲーム処理を実行することができる。したがって、ゲーム処理の負荷を分散させることができる。
【0032】
第13の発明は、ネットワーク上で同種の第1ゲーム装置および第2ゲーム装置とそれぞれ接続可能であり、当該第1ゲーム装置と当該第2ゲーム装置との間でプレイされる通信ゲームのゲーム処理を当該通信ゲームをプレイせずに実行する、ゲーム装置であって、第1ゲーム装置からの第1入力データおよび第2ゲーム装置からの第2入力データに基づいてゲーム処理を実行するゲーム処理実行手段、およびゲーム処理実行手段によって実行されたゲーム処理の結果データを、第1ゲーム装置および第2ゲーム装置に送信する結果データ送信手段を備える、ゲーム装置である。
【0033】
第14の発明は、ネットワーク上で同種の第1ゲーム装置および第2ゲーム装置とそれぞれ接続可能であり、当該第1ゲーム装置と当該第2ゲーム装置との間でプレイされる通信ゲームのゲーム処理を当該通信ゲームをプレイせずに実行する、ゲーム装置のゲームプログラムであって、ゲーム装置のコンピュータを、第1ゲーム装置からの第1入力データおよび第2ゲーム装置からの第2入力データに基づいてゲーム処理を実行するゲーム処理実行手段、およびゲーム処理実行手段によって実行されたゲーム処理の結果データを、第1ゲーム装置および第2ゲーム装置に送信する結果データ送信手段として機能させる、ゲームプログラムである。
【0034】
第15の発明は、ネットワーク上で同種の第1ゲーム装置および第2ゲーム装置とそれぞれ接続可能であり、当該第1ゲーム装置と当該第2ゲーム装置との間でプレイされる通信ゲームのゲーム処理を当該通信ゲームをプレイせずに実行する、ゲーム装置のゲーム制御方法であって、ゲーム装置のコンピュータは、(a)第1ゲーム装置からの第1入力データおよび第2ゲーム装置からの第2入力データに基づいてゲーム処理を実行し、そして(b)ステップ(a)において実行したゲーム処理の結果データを、第1ゲーム装置および第2ゲーム装置に送信する、ゲーム制御方法である。
【0035】
第13ないし第15の発明においても、第1の発明と同様に、ゲームサーバを用意することなく、ゲーム処理の負荷を分散させることができる。
【発明の効果】
【0036】
この発明によれば、ゲームサーバを用意することなく、ゲーム処理の負荷を分散させることができる。
【0037】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0038】
【図1】図1はこの発明のゲームシステムの一例を示す。
【図2】図2は図1に示すゲーム装置の電気的な構成の一例を示すブロック図である。
【図3】図3は通信ゲームをプレイする場合にプレイヤおよびゲームマスタとしてマッチングされたゲーム装置で構成されるピアツーピアネットワークの一例を示す。
【図4】図4はデータロードする場合のプレイヤのゲーム装置、ゲームマスタのゲーム装置、復号サーバおよびマッチングサーバの大まかな処理の流れの一例を示す。
【図5】図5は通信ゲームをプレイする場合のプレイヤのゲーム装置およびゲームマスタのゲーム装置の大まかな処理の流れの一例を示す。
【図6】図6はデータセーブする場合のプレイヤのゲーム装置、ゲームマスタのゲーム装置、暗号化サーバおよびマッチングサーバの大まかな処理の流れの一部を示す。
【図7】図7はデータセーブする場合のプレイヤのゲーム装置、ゲームマスタのゲーム装置、暗号化サーバおよびマッチングサーバの大まかな処理の流れの続きを示す。
【図8】図8はバックアップノードを昇格およびマッチングする場合のプレイヤのゲーム装置、ゲームマスタのゲーム装置、バックアップノードのゲーム装置およびマッチングサーバの大まかな処理の流れの一部を示す。
【図9】図9はバックアップノードを昇格およびマッチングする場合のプレイヤのゲーム装置、ゲームマスタのゲーム装置、バックアップノードのゲーム装置およびマッチングサーバの大まかな処理の流れの続きを示す。
【図10】図10は図1に示したマッチングサーバに内蔵されるRAMのメモリマップの一例を示す図である。
【図11】図11は図2に示したゲーム装置に内蔵されるRAMのメモリマップの一例を示す図解図である。
【図12】図12は図11に示すデータ記憶領域の具体的な内容を示す図である。
【図13】図13はマッチングサーバのプロセッサのマッチング処理の一例を示すフロー図である。
【図14】図14はマッチングサーバのプロセッサの正規判定処理の一例を示すフロー図である。
【図15】図15はマッチングサーバのプロセッサのバックアップ処理の一例を示すフロー図である。
【図16】図16は復号サーバのプロセッサの復号処理の一例を示すフロー図である。
【図17】図17は暗号化サーバのプロセッサの暗号化処理の一例を示すフロー図である。
【図18】図18はプレイヤのゲーム装置のCPUのゲームプレイ処理の一部を示すフロー図である。
【図19】図19はプレイヤのゲーム装置のCPUのゲームプレイ処理の他の一部を示すフロー図である。
【図20】図20はプレイヤのゲーム装置のCPUのゲームプレイ処理のその他の一部を示すフロー図である。
【図21】図21はプレイヤのゲーム装置のCPUのデータセーブ処理の一例を示すフロー図である。
【図22】図22はゲームマスタのゲーム装置のCPUのデータロード処理の一例を示すフロー図である。
【図23】図23はゲームマスタのゲーム装置のCPUのゲームプレイ処理の一例を示すフロー図である。
【図24】図24はゲームマスタのゲーム装置のCPUの昇格処理を示すフロー図である。
【図25】図25はゲーマスタのゲーム装置のCPUのデータセーブ処理の一例を示すフロー図である。
【発明を実施するための形態】
【0039】
図1を参照して、この発明の一実施例であるゲームシステム10は複数のゲーム装置12を含み、複数のゲーム装置12はネットワーク14を介してマッチングサーバ16、復号サーバ18および暗号化サーバ20と通信可能に接続される。
【0040】
図2は、図1に示すゲーム装置12の電気的な構成を示すブロック図である。図2に示すように、ゲーム装置12は、CPU30を含み、CPU30には、RAM32、フラッシュメモリ34、無線通信モジュール36、入力装置38、表示ドライバ40およびD/A変換器44が接続される。また、表示ドライバ40には、表示装置42が接続され、D/A変換器44には、スピーカ46が接続される。
【0041】
CPU30は、ゲーム装置12の全体制御を司る。RAM32は、CPU30のワークメモリやバッファメモリとして使用される。フラッシュメモリ34は、ゲームのようなアプリケーションのプログラムを記憶したり、各種のデータを記憶(セーブ)したりするために使用される。
【0042】
無線通信モジュール36は、無線LANに接続する機能を有する。したがって、ゲーム装置12は、他のゲーム装置12やコンピュータ(サーバ16、18、20など)と直接またはネットワーク14を介して通信することができる。
【0043】
入力装置38は、たとえば、ゲーム装置10に設けられる各種の押しボタンないしスイッチであり、ユーザによって、メニュー選択やゲーム操作などの各種の操作に用いられる。ただし、入力装置38としては、タッチパネルなどのポインティングデバイス、マイクおよびカメラなどの入力手段が、押しボタンないしスイッチに代えて、または、押しボタンないしスイッチとともに設けられてもよい。
【0044】
表示ドライバ40は、CPU30の指示の下、表示装置42にゲーム画像などの各種画像を表示するために使用される。図示は省略するが、表示ドライバ40は、ビデオRAM(VRAM)を内蔵している。
【0045】
D/A変換器44は、CPU30から与えられる音声データをアナログのゲーム音声に変換し、スピーカ46に出力する。ただし、ゲーム音声は、ゲームキャラクタの擬制音、効果音、音楽(BGM)のようなゲームに必要な音を意味する。
【0046】
なお、図2に示すゲーム装置12の電気的な構成は単なる一例であり、これに限定される必要はない。
【0047】
また、図示および詳細な説明は省略するが、図1に示すマッチングサーバ16、復号サーバ18および暗号化サーバ20は、汎用のサーバであり、CPUのようなプロセッサ、メモリ(HDD、ROMおよびRAMなど)および通信モジュールなどのコンポーネントを備えている。このように、復号サーバ18および暗号化サーバ20を設けるのは、ゲーム装置12以外の装置によって復号や暗号化を行うことにより、後述するように暗号化されたゲームデータがゲーム装置12で不正に復号されるのを防止するためである。したがって、暗号化方式は任意の方式を採用することができるが、その方式などについては公開されない。
【0048】
このようなゲームシステム10においては、マッチングサーバ16は、各ゲーム装置12からの参加要求を受け付け、通信ゲームをプレイするプレイヤのゲーム装置12をマッチングするとともに、その通信ゲームのゲームマスタとしてのゲーム装置12をマッチングする。ただし、この実施例では、ゲーム装置12(CPU30等)は、プレイヤとしての処理と、異なる2つの通信ゲーム(グループ)のゲームマスタとしての処理が可能である。したがって、ゲーム装置12は、或るグループの通信ゲームにプレイヤとして参加するとともに、他のグループの通信ゲームにゲームマスタとして参加することができる。詳細な説明は省略するが、プレイヤとして参加する通信ゲームと、ゲームマスタとして参加する通信ゲームとは、同じ種類でも異なる種類でも構わない。
【0049】
たとえば、ゲームレベル(経験値)や総プレイ時間が近似するユーザのゲーム装置12同士がプレイヤのゲーム装置12としてマッチングされる。ただし、ゲームレベル(経験値)や総プレイ時間については、ユーザ(ゲーム装置12)毎に、マッチングサーバ16で管理されている。また、プレイヤとしてマッチングされたゲーム装置12以外のゲーム装置12であって、2つのグループのゲームマスタまたは後述するバックアップノードとして割り当てられていないゲーム装置12がゲームマスタのゲーム装置12としてマッチングされる。以下、ゲーム装置12が2つのグループのゲームマスタとして機能する場合には、一方のグループについてのゲームマスタを「第1ゲームマスタ」といい、他方のグループについてのゲームマスタを「第2ゲームマスタ」ということにする。
【0050】
また、マッチングサーバ16は、マッチングしたプレイヤのゲーム装置12とゲームマスタのゲーム装置12とを1つのグループとして管理される。この実施例では、各グループの端末リストが生成され、メモリに記憶される。端末リストには、ゲーム装置12の識別情報に対応して、このゲーム装置12の接続情報およびマッチングされたプレイヤおよびゲームマスタの別(種類)が記述される。以下、この実施例では、ゲーム装置12の識別情報および接続情報をまとめて端末情報ということがある。
【0051】
たとえば、ゲーム装置12の識別情報は、当該ゲーム装置12に内蔵される無線通信モジュールのMACアドレス、当該ゲーム装置12に付された固有の識別記号、当該ゲーム装置12に付された名称(ユーザ名など)である。また、ゲーム装置12の接続情報は、当該ゲーム装置12に割り当てられたIPアドレスである。
【0052】
マッチングサーバ16では、このようなグループが参加要求のあったゲーム装置12の数に応じて生成される。以下、この実施例では、1つのグループに着目してゲーム処理などについて説明するが、他のグループについても同様である。
【0053】
この実施例では、ゲームマスタのゲーム装置12は、プレイヤのゲーム装置12と同種のゲーム装置12であり、主として、自身がプレイヤとして参加していない通信ゲームをプレイするプレイヤのゲーム装置12からの操作データに従ってゲーム処理を実行するゲーム装置12を意味する。また、この実施例では、ゲームマスタのゲーム装置12は、通信ゲームの開始に先立ってプレイヤのゲーム装置12から送信されたセーブデータ(暗号化ゲームデータ)の復号を復号サーバ18に依頼したり、プレイヤのゲーム装置12からの指示に従ってゲーム処理によって生成されたゲームデータの暗号化を暗号化サーバ20に依頼したりする。
【0054】
なお、この実施例では、マッチングサーバ16が、プレイヤのゲーム装置12とゲームマスタのゲーム装置12の両方をマッチングするようにしたが、プレイヤのゲーム装置12とゲームマスタのゲーム装置12を異なるサーバでマッチングするようにしてもよい。ただし、プレイヤのゲーム装置12とゲームマスタのゲーム装置12とを互いに関連付けるなどして、それらを1つのグループとして管理する必要がある。
【0055】
この実施例では、1つのグループでは、2台のプレイヤのゲーム装置12がマッチングされ、これらに関連して、3台のゲームマスタのゲーム装置12がマッチングされる。そして、1つのグループを構成するプレイヤのゲーム装置12およびゲームマスタのゲーム装置12によって、図3に示すように、ピアツーピアネットワークが構築される。以下、この実施例では、各ゲーム装置12を区別する必要がある場合には、2台のプレイヤのゲーム装置12を、ゲーム装置Aおよびゲーム装置Bと呼び、3台のゲームマスタのゲーム装置12を、ゲーム装置C、ゲーム装置Dおよびゲーム装置Eと呼ぶことにする。
【0056】
このように、プレイヤのゲーム装置12およびゲームマスタのゲーム装置12がマッチングされ、ピアツーピアネットワークが構築されると、ゲームプレイの処理については、マッチングされたゲーム装置12間で実行される。したがって、ゲームサーバを用意することなく、ゲーム処理の負荷を分散させることができる。
【0057】
また、ゲームプレイの処理をマッチングされてゲーム装置12間で実行するため、マッチングサーバ16は、端末リストを生成すると、グループ内の各ゲーム装置12に生成した端末リストを送信する。したがって、各ゲーム装置12に端末リストが記憶される。
【0058】
この実施例では、ゲーム装置12は、通信ゲームについてのゲームデータを暗号化した状態で記憶してある。ただし、ゲーム装置12で復号できない形式で暗号化されたゲームデータ(以下、「暗号化ゲームデータ」)という。)が記憶(セーブ)される。このようにするのは、ゲーム装置12のユーザによって生(平文)のゲームデータが改変(改竄)されるのを防止するためである。したがって、この実施例では、復号されたゲームデータは、ゲームマスタのゲーム装置12に記憶され、ゲームマスタのゲーム装置12のそれぞれが、プレイヤのゲーム装置12からの操作データに基づいてゲーム処理を実行する。つまり、ゲームマスタのゲーム装置12のそれぞれは、プレイヤのゲーム装置12からの操作データに従い、そのゲームデータを用いて、ゲーム処理を実行するようにしてある。そして、処理結果(結果データ)をプレイヤのゲーム装置12に送信する。
【0059】
なお、仮に暗号化ゲームデータが改竄されてしまったとしても、復号する機器(この実施例では、復号サーバ18)で復号することができないため、不正なゲームデータによってゲーム処理が行われることはほとんど無い。
【0060】
この実施例では、ゲームデータは、プレイヤキャラクタや所持アイテムなどについてのパラメータ(種類、力、強さ、すばやさなど)のデータであり、操作データを含まないデータであるが、これに限定される必要はなく、改変(改竄)されることにより、通信ゲームを有利にまたは不利に進めることが可能なデータである。
【0061】
したがって、プレイヤのゲーム装置12に暗号化ゲームデータすなわちセーブデータが記憶されている場合には、通信ゲームの開始に先立って、データロードの処理を実行する。このデータロードの処理は、プレイヤのゲーム装置12(A、B)、ゲームマスタのゲーム装置12(C−E)、マッチングサーバ16および復号サーバ18によって実行される。
【0062】
なお、通信ゲームを初めてプレイする場合には、セーブデータは記憶されていないため、データロードの処理は実行されずに、ゲームマスタのゲーム装置12(C−E)に初期値(デフォルト値)に基づくゲームデータが記憶される。
【0063】
図4に示すように、プレイヤのゲーム装置A、Bは、それぞれ、セーブデータ(暗号化ゲームデータ)をゲームマスタのゲーム装置C−Eの各々に送信する。以下、ゲーム装置Aに記憶されている暗号化ゲームデータを「暗号化ゲームデータA」といい、ゲーム装置Bに記憶されている暗号化ゲームデータを「暗号化ゲームデータB」ということがある。
【0064】
ただし、暗号化ゲームデータには、それを記憶しているゲーム装置A、Bの識別情報がヘッダ情報(メタ情報)として付加されている。
【0065】
ゲームマスタのゲーム装置C−Eは、それぞれ、暗号化ゲームデータAを受信し、暗号化ゲームデータBを受信する。次に、ゲーム装置C−Eは、それぞれ、暗号化ゲームデータAの復号を依頼し、暗号化ゲームデータBの復号を依頼する。具体的には、ゲーム装置C−Eは、それぞれ、復号の依頼と暗号化ゲームデータAを復号サーバ18に送信し、復号の依頼と暗号化ゲームデータBを復号サーバ18に送信する。
【0066】
ただし、ゲームマスタのゲーム装置C−Eは、暗号化ゲームデータAおよび暗号化ゲームデータBを同時に受信したり、同時に復号を依頼したりする必要はない。
【0067】
復号サーバ18は、ゲームマスタのゲーム装置C−Eからの依頼が正規の依頼であるかどうかをマッチンングサーバ16に問い合わせる。ただし、依頼毎に問い合わせを行う。具体的には、復号サーバ18は、暗号化ゲームデータのメタ情報からプレイヤのゲーム装置12の端末情報(以下、説明の都合上、「プレイヤ端末情報」という。)を取得するとともに、復号の依頼元の端末情報(以下、説明の都合上、「復号依頼元端末情報」という。)を取得し、プレイヤ端末情報と復号依頼元端末情報とを含む問い合わせをマッチングサーバ16に送信する。
【0068】
マッチングサーバ16は、その問い合わせを受信すると、正規にマッチングされたゲームマスタかどうかを判定する。つまり、プレイヤのゲーム装置12とゲームマスタのゲーム装置12との組み合わせが正しいかどうかを判断する。具体的には、マッチングサーバ16は、プレイヤ端末情報が示すゲーム装置12と、復号依頼元端末情報が示すゲーム装置12とが同一グループに属し、プレイヤ端末情報が示すゲーム装置12がプレイヤとしてマッチングされ、復号依頼元端末情報が示すゲーム装置12がゲームマスタとしてマッチングされているかどうかを判定する。そして、マッチングサーバ16は、判定結果を復号サーバ18に送信する。
【0069】
復号サーバ18は、判定結果を受信し、正規にマッチングされたゲームマスタであれば、暗号化ゲームデータを復号し、復号されたゲームデータを復号の依頼元であるゲームマスタのゲーム装置12に送信する。
【0070】
したがって、復号の依頼元であるゲームマスタのゲーム装置12は、復号されたゲームデータを受信し、RAM32に記憶する。これによって、正規にマッチングされたゲームマスタのゲーム装置12は、プレイヤのゲーム装置Aおよびゲーム装置Bのそれぞれについてのゲームデータを得る。以下、説明の都合上、暗号化ゲームデータAを復号したゲームデータを「ゲームデータA」といい、暗号化ゲームデータBを復号したゲームデータを「ゲームデータB」という。
【0071】
データロードの処理が終了すると、通信ゲームが開始される。通信ゲームが開始されると、プレイヤのゲーム装置A、Bと、ゲームマスタのゲーム装置C−Eとによって、ゲームプレイの処理が実行される。
【0072】
図5に示すように、ゲームプレイの処理では、プレイヤのゲーム装置Aへの操作入力に応じた操作データ(以下、説明の都合上、「操作データA」という。)は、ゲーム装置C−Eのそれぞれに送信され、プレイヤのゲーム装置Bへの操作入力に応じた操作データ(以下、説明の都合上、「操作データB」という。)は、ゲーム装置C−Eのそれぞれに送信される。
【0073】
ゲームマスタのゲーム装置C−Eのそれぞれは、操作データAおよび操作データBの両方を受信すると、この操作データAおよび操作データBに従うとともに、ゲームデータAおよびゲームデータBを用いて、通信ゲームのゲーム処理を実行する。そして、ゲーム処理の結果(結果データ)を、プレイヤのゲーム装置Aおよびゲーム装置Bのそれぞれに送信する。
【0074】
なお、ゲームマスタのゲーム装置C−Eは、プレイヤのゲーム装置A、Bで行われる通信ゲームのゲーム処理を実行するためのゲームプログラムを予め記憶している。たとえば、プレイヤのゲーム装置A、Bで行われる通信ゲームのゲーム処理を実行するためのゲームプログラムは、マッチングサーバ16からダウロードされる。
【0075】
ゲーム装置Aおよびゲーム装置Bは、それぞれ、結果データを受信し、当該結果データを出力する。たとえば、ゲーム装置Aおよびゲーム装置Bは、結果データに基づいて、ゲーム画像を描画(更新)および出力(表示)したり、ゲーム音声を生成および出力したりする。ただし、上述したように、プレイヤのゲーム装置12は、全ゲームマスタのゲーム装置12に操作データを送信し、全ゲームマスタのゲーム装置12においてゲーム処理が実行され、この全ゲームマスタのゲーム装置12の各々からの結果データを受信する。このため、プレイヤのゲーム装置12では、受信したすべての(ここでは、3つの)結果データのうち、適正な結果データを採用して出力する。この実施例では、3つの結果データのうち、等しい結果データが適正な結果データとして採用される。つまり、多数決により、出力する結果データが決定される。
【0076】
このように、等しい結果データを採用して出力するのは、正規にマッチングされたゲームマスタのゲーム装置12ではあるものの、ゲームマスタのゲーム装置12は、ゲーム処理を担当する通信ゲームにおけるプレイヤのゲーム装置12の生のゲームデータにアクセスすることができ、その改変(改竄)が可能だからである。よって、上記のように、多数決により、1つの結果データを採用することにより、不正なゲームデータに基づくゲーム処理の結果データが通信ゲームに反映されるのを出来るだけ防止しているのである。これにより、他人の通信ゲームを邪魔するような不正行為を回避することができる。また、多数決により、採用する結果データを決定するのは、少数のユーザによって不正行為が行われていることを考慮するためである。これらのことは、後述する暗号化ゲームデータを多数決により決定する場合についても同様である。
【0077】
ゲームが終了するまでは、上記のような処理が繰り返し実行される。ゲーム中に所定のイベントが発生したり、プレイヤの指示が入力されたりすることに応じて、または、ゲームが終了したことに応じて、データセーブの処理が実行される。データセーブの処理は、プレイヤのゲーム装置AおよびB、ゲームマスタのゲーム装置C−E、マッチングサーバ16および暗号化サーバ20によって実行される。
【0078】
具体的には、図6に示すように、プレイヤのゲーム装置A、Bは、データセーブの依頼を、ゲームマスタのゲーム装置C−Eのそれぞれに送信する。
【0079】
ゲームマスタのゲーム装置C−Eは、それぞれ、データセーブの依頼を受信すると、ゲームデータの暗号化を暗号化サーバ20に依頼する。具体的には、ゲーム装置C−Eの各々は、暗号化の依頼と、依頼元のプレイヤのゲーム装置12のゲームデータとを暗号化サーバ20に送信する。ただし、ゲームデータには、ゲーム装置Aまたはゲーム装置Bの識別情報がヘッダ情報(メタ情報)として付加されている。
【0080】
暗号化サーバ20は、暗号化の依頼およびゲームデータを受信すると、正規の依頼かどうかをマッチングサーバ16に問い合わせる。具体的には、暗号化サーバ20は、ゲームデータのメタ情報からプレイヤ端末情報を取得するとともに、暗号化の依頼元の端末情報(以下、説明の都合上、「暗号化依頼元端末情報」という。)を取得し、プレイヤ端末情報と暗号化依頼元端末情報とを含む問い合わせをマッチングサーバ16に送信する。
【0081】
マッチングサーバ16は、その問い合わせを受信すると、正規にマッチングされたゲームマスタかどうかを判定する。具体的には、マッチングサーバ16は、プレイヤ端末情報が示すゲーム装置12と、暗号化依頼元端末情報が示すゲーム装置12とが同一グループに属し、プレイヤ端末情報が示すゲーム装置12がプレイヤとしてマッチングされ、暗号化依頼元端末情報が示すゲーム装置12がゲームマスタとしてマッチングされているかどうかを判定する。そして、マッチングサーバ16は、判定結果を暗号化サーバ20に送信する。
【0082】
暗号化サーバ20は、判定結果を受信し、正規にマッチングされたゲームマスタであれば、ゲームデータを暗号化し、図7に示すように、暗号化ゲームデータを暗号化の依頼元であるゲームマスタのゲーム装置12に送信する。さらに、ゲームマスタのゲーム装置12は、暗号化ゲームデータを受信すると、データセーブの依頼元であるプレイヤのゲーム装置12に暗号化ゲームデータを送信する。当然のことではあるが、暗号化サーバ20では、復号サーバ18で復号可能な形式で、ゲームデータが暗号化される。
【0083】
したがって、データセーブを依頼したプレイヤのゲーム装置12は、暗号化ゲームデータを受信する。ただし、上述したように、プレイヤのゲーム装置12は、全ゲームマスタのゲーム装置12にデータセーブの依頼を送信しているため、正規にマッチングされている場合には、全ゲームマスタのゲーム装置12から暗号化ゲームデータが送信される。このため、プレイヤのゲーム装置12では、受信したすべての(ここでは、3つの)暗号化ゲームデータのうち、適正な暗号化ゲームデータを採用してセーブする。この実施例では、3つの暗号化ゲームデータのうち、等しい暗号化ゲームデータが適正な暗号化ゲームデータとして採用される。つまり、多数決により、セーブする1つの暗号化ゲームデータが決定される。
【0084】
また、ゲーム中に、ゲームマスタのゲーム装置12が接続(通信)を切断することがある。このような場合であっても、通信ゲームを継続するために、控えのゲーム装置12(以下、「バックアップノード」という。)を用意しておいてもよい。かかる場合には、マッチングサーバ16は、ゲーム装置12からの参加要求に応じて、プレイヤのゲーム装置12とゲームマスタのゲーム装置12とをマッチングする際に、さらに、バックアップノードのゲーム装置12をマッチング(決定)する。したがって、マッチングサーバ16で生成され、各ゲーム装置12に送信される端末リストには、バックアップノードのゲーム装置12についての識別情報、接続情報およびその種類(バックアップノード)が含まれる。このバックアップノードのマッチング方法は、ゲームマスタのマッチング方法と同じであるため、重複した説明は省略する。
【0085】
ゲームマスタのゲーム装置12の接続が切断されると、バックアップノードのゲーム装置12がゲームマスタとして昇格され、そして、新たにバックアップノードのゲーム装置12がマッチングされる。
【0086】
図8および図9を用いて、バックアップノードの昇格およびマッチングの処理について具体的に説明するが、ここでは、ゲーム装置Dが切断されたと仮定する。また、バックアップノードのゲーム装置12は「ゲーム装置F」と呼ぶことにする。さらに、新たにマッチングされるバックアップノードのゲーム装置12は「ゲーム装置G」と呼ぶことにする。
【0087】
図8に示すように、プレイヤのゲーム装置A、Bは、それぞれ、ゲーム装置Dの切断を検知する。この実施例では、プレイヤのゲーム装置12は、ゲームマスタのゲーム装置12に操作データを送信してから所定時間(たとえば、10秒)を経過しても、結果データが得られない場合に、当該結果ゲームを得ることができないゲーム装置12との接続が切断したことを検知する。
【0088】
ゲーム装置A、Bは、ゲーム装置Dの切断を検知すると、その旨を他方のゲーム装置B、Aに通知する。したがって、ゲーム装置A、Bは、他方のゲーム装置B、Aからゲーム装置Dが切断した旨の通知を受信する。つまり、プレイヤのゲーム装置A、B間で、ゲーム装置Dの切断が確認される。そして、ゲーム装置A、Bは、それぞれ、バックアップノード(ゲーム装置F)の昇格を、接続が切断されていないゲームマスタのゲーム装置C、Eに通知する。
【0089】
ゲーム装置C、Eは、バックアップノードの昇格の通知を受けると、それぞれ、ゲームデータをバックアップノードのゲーム装置Fに送信する。ゲーム装置Fは、バックアップノードとして待機しており、ゲームデータを受信すると、ゲームマスタに昇格する。ただし、実際には、バックアップノードのゲーム装置12は、後述するように、端末リストが更新されたときに、ゲームマスタに昇格する。
【0090】
また、プレイヤのゲーム装置A、Bは、バックアップノードの昇格を、切断されていないゲームマスタのゲーム装置C、Eに通知すると、図9に示すように、新たなバックアップノードのマッチングをマッチングサーバ16に依頼する。ただし、この依頼には、ゲーム装置Dが切断された旨の通知も含まれている。したがって、マッチングサーバ16は、ゲーム装置Dがゲーム装置Aおよびゲーム装置Bを含むグループから離脱したことを知ることができる。
【0091】
マッチングサーバ16は、新たなバックアップノードのマッチングの依頼を受信すると、新たなバックアップノードのゲーム装置12(ここでは、ゲーム装置G)をマッチングする。このマッチング方法は、上述したゲームマスタ(バックアップノード)のゲーム装置12をマッチングする方法と同じである。マッチングサーバ16は、新たなバックアップノードのゲーム装置Gをマッチングすると、端末リストを更新する。ここでは、ゲーム装置Dの識別情報、接続情報および種類(ゲームマスタ)を削除し、ゲーム装置Fの種類をゲームマスタに変更し、そして、ゲーム装置Fの識別情報、接続情報および種類(バックアップノード)を追記する。その後、マッチングサーバ16は、更新した端末リストをグループの各ゲーム装置12(ゲーム装置A−C、E−G)に送信する。
【0092】
ゲーム装置A−C、E−Gは、当該グループについての端末リストを受信し、当該グループについての端末リストを更新する。したがって、プレイヤのゲーム装置A、Bは、ゲームマスタのゲーム装置C、E、Fと通信することにより、通信ゲームを継続する。つまり、バックアップノードを用意しておければ、ゲームマスタのゲーム装置12が切断(離脱)したとしても、通信ゲームが終了(強制終了)されたり、再起動されたりすることがない。
【0093】
図10はマッチングサーバ16に内蔵されるRAMのメモリマップ100の一例を示す。図10に示すように、マッチングサーバ16に内蔵されるRAMは、プログラム記憶領域102およびデータ記憶領域104を含む。プログラム記憶領域102には、情報処理プログラムが記憶され、情報処理プログラムは、メイン処理プログラム102a、通信プログラム102b、マッチング処理プログラム102cおよび判定処理プログラム102dなどによって構成される。
【0094】
メイン処理プログラム102aは、マッチングサーバ16のメインルーチンを処理するためのプログラムである。通信処理プログラム102bは、ゲーム装置12、復号サーバ18および暗号化サーバ20などの装置やコンピュータと直接またはネットワーク14を介して通信するためのプログラムである。
【0095】
マッチング処理プログラム102cは、プレイヤのゲーム装置12、ゲームマスタのゲーム装置12およびバックアップノードのゲーム装置12をマッチングし、グループ毎の端末リストデータを作成するためのプログラムである。判定処理プログラム102dは、暗号化ゲームデータの復号やゲームデータの暗号化の依頼元のゲーム装置12が正規のゲームマスタであるかどうかを判定するためのプログラムである。
【0096】
図示は省略するが、プログラム記憶領域102には、ゲーム装置12にダウンロードするためのゲームプログラムなども記憶される。
【0097】
データ記憶領域104には、参加者リストデータ104aおよびマッチングデータ104bなどが記憶される。参加者リストデータ104aは、通信ゲームへの参加を受け付けた全ゲーム装置12の端末情報(識別情報および接続情報)をリスト(テーブル)で示したデータである。
【0098】
マッチングデータ104bは、プレイヤ、ゲームマスタおよびバックアップノードとしてマッチングしたゲーム装置12の端末リストをグループ単位で記憶したデータである。つまり、マッチングデータ104bは、第1グループ端末リストデータ1040、第2グループ端末リストデータ1042、…を含む。各端末リストデータ(1040、1042、…)は、グループに含まれる各ゲーム装置12の端末情報が、マッチングされた情報(プレイヤ、ゲームマスタおよびバックアップノードの別)とともに記述されたリスト(テーブル)のデータである。
【0099】
図示は省略するが、データ記憶領域104には、情報処理プログラムの実行に必要な他のデータが記憶されたり、タイマ(カウンタ)やフラグが設けられたりする。
【0100】
図11および図12は図2に示したゲーム装置12に内蔵されるRAM32のメモリマップ200の一例を示す。図11に示すように、RAM32は、プログラム記憶領域202およびデータ記憶領域204を含む。プログラム記憶領域202は、ゲームプログラムを記憶し、ゲームプログラムは、メイン処理プログラム202a、通信プログラム202b、プレイヤ用ゲーム処理プログラム202c、第1ゲームマスタ用ゲーム処理プログラム202d、第2ゲームマスタ用ゲーム処理プログラム202e、データロード処理プログラム202fおよびセーブ処理プログラム202gなどによって構成される。
【0101】
なお、ゲームプログラムは、フラッシュメモリ34からロードされたり、ネットワーク14を介して接続されるコンピュータないしサーバからダウロードされたり、ゲームカートリッジやSDカードのような記憶媒体からロードされたりする。
【0102】
メイン処理プログラム202aは、通信ゲームのメインルーチンを処理するためのプログラムである。通信プログラム202bは、他のゲーム装置(12)やコンピュータと直接またはネットワーク14を介して通信するためのプログラムである。
【0103】
プレイヤ用ゲーム処理プログラム202cは、プレイヤとして機能する場合のゲーム処理プログラムであり、主として、ゲームマスタからの結果データに基づいてゲーム画像を描画および表示したり、ゲーム音声を生成および出力したりして、通信ゲームを進行させる。
【0104】
第1ゲームマスタ用ゲーム処理プログラム202dは、第1ゲームマスタとして機能する場合のゲーム処理プログラムであり、主として、第1ゲームマスタとして参加しているグループの各プレイヤのゲーム装置12からの操作データに従って、ゲームデータ(後述する第1ゲームマスタ用ゲームデータ212c)を用いてゲーム処理を実行する。
【0105】
第2ゲームマスタ用ゲーム処理プログラム202eは、第2ゲームマスタとして機能する場合のゲーム処理プログラムであり、主として、第2ゲームマスタとして参加しているグループの各プレイヤのゲーム装置12からの操作データに従って、ゲームデータ(後述する第2ゲームマスタ用ゲームデータ214c)を用いてゲーム処理を実行する。
【0106】
データロード処理プログラム202fは、プレイヤとして機能する場合と、ゲームマスタとして機能する場合のデータロード処理を実行するためのプログラムである。具体的には、当該ゲーム装置12がプレイヤとして機能する場合には、データロード処理プログラム202fは、通信ゲームの開始に先立って、ゲームマスタの各ゲーム装置12にデータロードを依頼する。また、当該ゲーム装置12がゲームマスタとして機能する場合には、データロード処理プログラム202fは、プレイヤのゲーム装置12からのデータロードの依頼に応じて、復号サーバ18に暗号化ゲームデータの復号を依頼し、これに応じて、復号サーバ18で復号されたゲームデータ(第1ゲームマスタ用ゲームデータ212c、第2ゲームマスタ用ゲームデータ214c)をデータ記憶領域204に記憶する。
【0107】
セーブ処理プログラム202gは、プレイヤとして機能する場合と、ゲームマスタとして機能する場合のセーブ処理を実行するためのプログラムである。具体的には、当該ゲーム装置12がプレイヤとして機能する場合には、セーブ処理プログラム202gは、所定のイベントの発生やプレイヤの指示またはゲーム終了に応じて、データセーブを全ゲームマスタのゲーム装置12の各々に依頼し、これに応じて、各ゲームマスタのゲーム装置12から送信される暗号化ゲームデータを受信し、等しい暗号化ゲームデータをフラッシュメモリ34に記憶(セーブ)する。また、当該ゲーム装置12がゲームマスタとして機能する場合には、セーブ処理プログラム202gは、プレイヤのゲーム装置12からデータセーブの依頼があると、暗号化サーバ20にゲームデータの暗号化を依頼し、これに応じて、暗号化サーバ20から送信された暗号化ゲームデータを受信し、データセーブの依頼元のプレイヤのゲーム装置12に送信する。
【0108】
図示は省略するが、プログラム記憶領域202には、画像表示プログラムや音声出力プログラムなども記憶される。
【0109】
図12に示すように、データ記憶領域204は、さらに、プレイヤ用の記憶領域210、第1ゲームマスタ用の記憶領域212および第2ゲームマスタ用の記憶領域214を含む。
【0110】
プレイヤ用の記憶領域210には、操作データバッファ210aおよびプレイヤ用送受信データバッファ210bが設けられる。操作データバッファ210aは、入力装置38からの操作データを記憶する。プレイヤ用送受信データバッファ210bは、ゲームマスタのゲーム装置12やマッチングサーバ16とやり取りするデータを記憶する。
【0111】
また、プレイヤ用の記憶領域210には、プレイヤ用端末リストデータ210cが記憶される。プレイヤ用端末リストデータ210cは、当該ゲーム装置12がプレイヤとして参加しているグループの端末リストについてのデータである。
【0112】
さらに、プレイヤ用の記憶領域210には、タイマ210dが設けられる。このタイマ210dは、ゲームマスタのゲーム装置12との接続が切断されたかどうかを判断するための所定時間(たとえば、10秒)をカウントするために用いられる。
【0113】
図示は省略するが、プレイヤ用の記憶領域210には、プレイヤのゲーム装置12として機能する場合に必要な他のデータが記憶されたり、他のタイマ(カウンタ)やフラグが設けられたりする。
【0114】
第1ゲームマスタ用の記憶領域212には、第1ゲームマスタ用送受信データバッファ212aが設けられる。この第1ゲームマスタ用送受信データバッファ212aは、当該ゲーム装置12が第1ゲームマスタとして機能する場合に、プレイヤのゲーム装置12、マッチングサーバ16、復号サーバ18および暗号化サーバ20との間でやり取りするデータを記憶する。
【0115】
また、第1ゲームマスタ用の記憶領域212には、第1ゲームマスタ用端末リストデータ212bおよび第1ゲームマスタ用ゲームデータ212cが記憶される。第1ゲームマスタ用端末リストデータ212bは、当該ゲーム装置12が第1ゲームマスタとしてマッチングされているグループについての端末リストのデータである。第1ゲームマスタ用ゲームデータ212cは、当該ゲーム装置12が第1ゲームマスタとしてマッチングされているグループにおける各プレイヤのゲーム装置12のゲームデータである。この実施例では、プレイヤのゲーム装置12は2台であるため、第1ゲームマスタ用ゲームデータ212cには、2種類のゲームデータ(上記のゲームデータAおよびゲームデータBに相当する。)が含まれる。後述する第2ゲームマスタ用ゲームデータ214cも同様である。
【0116】
図示は省略するが、第1ゲームマスタ用の記憶領域212には、第1ゲームマスタのゲーム装置12として機能する場合に必要な他のデータが記憶されたり、他のタイマ(カウンタ)やフラグが設けられたりする。
【0117】
第2ゲームマスタ用の記憶領域214には、第2ゲームマスタ用送受信データバッファ214aが設けられる。この第2ゲームマスタ用送受信データバッファ214aは、当該ゲーム装置12が第2ゲームマスタとして機能する場合に、プレイヤのゲーム装置12、マッチングサーバ16、復号サーバ18および暗号化サーバ20との間でやり取りするデータを記憶する。
【0118】
また、第2ゲームマスタ用の記憶領域214には、第2ゲームマスタ用端末リストデータ214bおよび第2ゲームマスタ用ゲームデータ214cが記憶される。第2ゲームマスタ用端末リストデータ214bは、当該ゲーム装置12が第2ゲームマスタとしてマッチングされているグループについての端末リストのデータである。第2ゲームマスタ用ゲームデータ214cは、当該ゲーム装置12が第2ゲームマスタとしてマッチングされているグループにおける各プレイヤのゲーム装置12のゲームデータである。
【0119】
図示は省略するが、第2ゲームマスタ用の記憶領域214には、第2ゲームマスタのゲーム装置12として機能する場合に必要な他のデータが記憶されたり、他のタイマ(カウンタ)やフラグが設けられたりする。
【0120】
以下、ゲーム装置12、マッチングサーバ16、復号サーバ18、暗号化サーバ20のそれぞれで実行される具体的な処理について説明する。
【0121】
図13、図14および図15は、マッチングサーバ16のプロセッサのマッチング処理、正規判定処理および追加処理をそれぞれ示す。これらの処理は、それぞれ異なるタスクで実行される。図13に示すマッチング処理は、所定時間(たとえば、10分)毎に実行され、図14に示す正規判定処理および図15に示す追加処理は、ゲーム装置12からの要求に応じて実行される。したがって、ゲーム装置12からの要求があれば、要求毎にタスクが起動(実行)される。
【0122】
図13は、マッチングサーバのプロセッサのマッチング処理の一例を示すフロー図である。図13に示すように、マッチングサーバ16のプロセッサはマッチング処理を開始すると、ステップS1で、ゲーム装置12からの参加要求を受け付ける。詳細な説明は省略するが、ゲーム装置12からの参加要求は、当該ゲーム装置12の識別情報および接続情報を含む。
【0123】
次のステップS3では、参加要求のあったゲーム装置12の中から、2台のプレイヤのゲーム装置12をマッチングする。続いて、ステップS5では、3台のゲームマスタのゲーム装置12をマッチングする。さらに、ステップS7で、バックアップノードのゲーム装置12をマッチングする。
【0124】
次のステップS9では、端末リストを生成する。つまり、マッチングサーバ16のプロセッサは、ステップS3でマッチングされた2台のプレイヤのゲーム装置12、ステップS5でマッチングされた3台のゲームマスタのゲーム装置12およびステップS7でマッチングされた1台のバックアップノードのゲーム装置12で構成されるグループについての端末リストを作成する。そして、ステップS11で、マッチングされた全ゲーム装置12に端末リストを送信して、マッチング処理を終了する。
【0125】
また、マッチングサーバ16のプロセッサは、復号サーバ18または暗号化サーバ20から判定処理の依頼があると、図14に示すように、正規判定の処理を開始し、ステップS21で、データロードを依頼または暗号化ゲームデータを送信したプレイヤのゲーム装置12の識別情報(プレイヤ端末情報)と、依頼元のゲームマスタのゲーム装置12の識別情報(復号依頼元端末情報または暗号化依頼元端末情報)を取得する。次のステップS23では、正規にマッチングされているかどうかを判定する。つまり、マッチングサーバ16のプロセッサは、マッチングデータ104bを参照して、ステップS21で取得したプレイヤのゲーム装置12の識別情報と、依頼元のゲームマスタのゲーム装置12の識別情報とが、同じグループに属し、プレイヤおよびゲームマスタが正しくマッチングされているかどうかを判定する。
【0126】
続くステップS25では、正規にマッチングされているかどうかを判断する。ステップS25で“YES”であれば、つまり正規にマッチングされていれば、ステップS27で、正規にマッチングされていることを問い合わせ元の復号サーバ18または暗号化サーバ20に通知して、正規判定処理を終了する。一方、ステップS25で“NO”であれば、つまり正規にマッチングされていなければ、ステップS29で、正規にマッチングされていないことを問い合わせ元の復号サーバ18または暗号化サーバ20に通知して、正規判定処理を終了する。
【0127】
また、マッチングサーバ16のプロセッサは、プレイヤのゲーム装置12からの新たなバックアップノードのマッチングの依頼があると、図15に示すように、追加処理を開始し、ステップS41で、新たなバックアップノードのゲーム装置12をマッチングする。
【0128】
なお、上述したように、バックアップノードのマッチングの依頼には、接続が切断されたゲーム装置12の識別情報も含まれる。
【0129】
次のステップS43では、当該グループの端末リストを更新する。上述したように、マッチングサーバ16のプロセッサは、端末リストにおいて、切断されたゲーム装置12の識別情報、接続情報および種類を削除し、バックアップノードのゲーム装置12(ゲーム装置F)の種類をバックアップノードからゲームマスタに変更するとともに、ステップS41でマッチングしたゲーム装置12(ゲーム装置G)の識別情報、接続情報および種類(バックアップノード)を追加する。
【0130】
そして、ステップS45で、更新した端末リストを当該グループの全ゲーム装置12に送信する。したがって、後述するゲーム装置12の処理において、端末リストが更新され、その後は、更新された端末リストに従って、プレイヤのゲーム装置12とゲームマスタのゲーム装置12とが通信し、通信ゲームが進行される。
【0131】
図16は、復号サーバ18のプロセッサの復号処理を示すフロー図である。プレイヤのゲーム装置12から暗号化ゲームデータとともに復号の依頼を受信すると、復号サーバ18のプロセッサは、復号処理を開始し、ステップS61で、正規の依頼であるかどうかをマッチングサーバ16に問い合わせる。
【0132】
続くステップS63では、マッチングサーバ16から判定結果を受信したかどうかを判断する。ステップS63で“NO”であれば、つまりマッチングサーバ16からの判定結果を受信していなければ、同じステップS63に戻る。つまり、復号サーバ18のプロセッサは、判定結果を受信するのを待機する。一方、ステップS63で“YES”であれば、つまりマッチングサーバ16からの判定結果を受信すれば、ステップS65で、正規の依頼であるかどうかを判断する。つまり、復号サーバ18のプロセッサは、受信した判定結果が正規の依頼であることを示すかどうかを判断する。
【0133】
ステップS65で“NO”であれば、つまり正規の依頼でなければ、そのまま復号処理を終了する。つまり、暗号化ゲームデータは復号されないため、正規にマッチングされていないゲーム装置12に、生のゲームデータが送信されることはない。一方、ステップS65で“YES”であれば、つまり正規の依頼であれば、ステップS67で、暗号化ゲームデータを復号して、ステップS69で、ゲームデータを、復号の依頼元であるゲームマスタのゲーム装置12に送信して、復号処理を終了する。
【0134】
上述したように、復号の依頼は、各グループの全ゲームマスタのゲーム装置12の各々から送信されるため、このような復号処理は、復号の依頼毎に実行される。したがって、同時期に復号の依頼がある場合には、各復号処理が並列的に実行される。
【0135】
図17は、暗号化サーバ20のプロセッサの暗号化処理を示すフロー図である。ゲームマスタのゲーム装置12からゲームデータとともに暗号化の依頼を受信すると、暗号化サーバ20のプロセッサは、暗号化処理を開始し、ステップS81で、正規の依頼であるかどうかをマッチングサーバ16に問い合わせる。
【0136】
続くステップS83では、マッチングサーバ16から判定結果を受信したかどうかを判断する。ステップS83で“NO”であれば、つまりマッチングサーバ16からの判定結果を受信していなければ、同じステップS83に戻る。つまり、暗号化サーバ20のプロセッサは、判定結果を受信するのを待機する。一方、ステップS83で“YES”であれば、つまりマッチングサーバ16からの判定結果を受信すれば、ステップS85で、正規の依頼であるかどうかを判断する。つまり、暗号化サーバ20のプロセッサは、受信した判定結果が正規の依頼であることを示すかどうかを判断する。
【0137】
ステップS85で“NO”であれば、つまり正規の依頼でなければ、そのまま暗号化処理を終了する。つまり、ゲームデータは暗号化されないため、正規にマッチングされていないゲーム装置12に、暗号化ゲームデータが送信されることはない。一方、ステップS85で“YES”であれば、つまり正規の依頼であれば、ステップS87で、ゲームデータを暗号化して、ステップS89で、暗号化ゲームデータを、暗号化の依頼元であるゲームマスタのゲーム装置12に送信して、暗号化処理を終了する。
【0138】
上述したように、暗号化の依頼は、各グループの全ゲームマスタのゲーム装置12の各々から送信されるため、このような暗号化処理は、暗号化の依頼毎に実行される。したがって、同時期に暗号化の依頼がある場合には、各暗号化処理が並列的に実行される。
【0139】
図18−図20は、プレイヤのゲーム装置12のCPU30のゲームプレイ処理を示すフロー図である。図21は、プレイヤのゲーム装置12のCPU30のデータセーブ処理を示すフロー図である。図22は、ゲームマスタのゲーム装置12のCPU30のデータロード処理を示すフロー図である。図23は、ゲームマスタのゲーム装置12のCPU30のゲームプレイ処理を示すフロー図である。図24は、ゲームマスタのゲーム装置12のCPU30の追加処理を示すフロー図である。図25は、ゲームマスタのゲーム装置12のCPU30のデータセーブ処理を示すフロー図である。
【0140】
以下、1つのグループに含まれるプレイヤのゲーム装置12のCPU30の処理とゲームマスタのゲーム装置12のCPU30の処理として説明する。ただし、上述したように、1台のゲーム装置12は、或るグループのプレイヤと、他の2つのグループのゲームマスタまたはバックアップノードとして機能する。このため、1台のゲーム装置12に着目すると、図18−図24に示す各処理は、当該ゲーム装置12で実行される場合がある。また、2つのグループのゲームマスタとして機能する場合には、2つのグループのそれぞれについて、図22−図25に示す各処理が実行される。
【0141】
なお、図示および詳細な説明は省略するが、上述したように、プレイヤのゲーム装置12は、通信ゲーム(ゲームプレイ)の開始に先立って、暗号化ゲームデータを各ゲームマスタのゲーム装置12に送信する、データロードの処理を実行する。
【0142】
図18に示すように、プレイヤのゲーム装置12のCPU30は、ゲームプレイ処理を開始すると、ステップS101で、操作入力があるかどうかを判断する。ここでは、CPU30は、操作データバッファ210aに、操作データが記憶されているかどうかを判断する。ステップS101で“NO”であれば、つまり操作入力が無ければ、ステップS117に進む。一方、ステップS101で“YES”であれば、つまり操作入力が有れば、ステップS103で、操作データを各ゲームマスタのゲーム装置12に送信し、ステップS105で、タイマ210dをリセットおよびスタートする。
【0143】
続いて、ステップS107では、全ゲームマスタのゲーム装置12から結果データを受信したかどうかを判断する。ステップS107で“NO”であれば、つまり結果データが送信されないゲームマスタのゲーム装置12が存在する場合には、図19に示すステップS119に進む。一方、ステップS107で“YES”であれば、つまり全ゲームマスタのゲーム装置12から結果データを受信すれば、ステップS109で、等しい結果データを採用する。そして、ステップS111で、採用された結果データを反映する。つまり、CPU30は、採用された結果データに基づいてゲーム画像を描画および表示装置42に出力(表示)したり、ゲーム音声を生成およびスピーカ46に出力したりして、ゲームを進行させる。
【0144】
そして、ステップS117では、ゲーム終了かどうかを判断する。CPU30は、ステップS117では、ゲーム終了の指示が入力されたり、ゲームオーバになったりしたかどうかを判断する。ステップS117で“NO”であれば、つまりゲーム終了でなければ、そのままステップS101に戻る。一方、ステップS117で“YES”であれば、ゲームプレイ処理を終了する。
【0145】
上述したように、結果データが送信されないゲームマスタのゲーム装置12が存在する場合には、図19に示すステップS119で、所定時間を経過したかどうかを判断する。つまり、CPU30は、タイマ210dのカウント値が所定時間を経過したかどうかを判断する。ステップS119で“NO”であれば、つまり所定時間を経過していなければ、そのまま図18に示したステップS107に戻る。つまり、CPU30は、結果データを受信するのを待機する。
【0146】
一方、ステップS119で“YES”であれば、つまり所定時間を経過すれば、ステップS121で、結果データが送信されないゲーム装置12を、切断されたゲーム装置12として検知する。次のステップS123で、切断されたゲーム装置12を他方のプレイヤのゲーム装置12に通知する。そして、ステップS125で、他方のプレイヤのゲーム装置12から切断通知があるかどうかを判断する。ステップS125で“NO”であれば、つまり他方のゲーム装置12からの切断通知が無ければ、そのままステップS125に戻る。
【0147】
なお、この実施例では、他方のゲーム装置12からの切断通知が無ければ、そのままステップS125に戻るようにしてあるが、所定時間(たとえば、10秒)を経過しても、切断通知が無い場合には、誤って切断されたゲーム装置12を検知した可能性があるため、再度結果データの受信を行うために、ステップS107に戻るようにしてもよい。もしくは、他方のプレイヤのゲーム装置12が切断されている可能性があるため、ゲームプレイ処理を強制的に終了するようにしてもよい。
【0148】
また、ステップS125で“YES”であれば、つまり他方のプレイヤのゲーム装置12からの切断通知が有れば、図20に示すステップS127で、切断されていないゲームマスタのゲーム装置12にバックアップノードの昇格を通知する。次のステップS129では、マッチングサーバ16にバックアップノードのマッチングの依頼を送信する。このとき、CPU30は、切断されたゲーム装置12の識別情報も送信する。
【0149】
そして、ステップS131では、端末リストを受信したかどうかを判断する。ステップS131で“NO”であれば、つまり端末リストを受信していなければ、同じステップS131に戻る。一方、ステップS131で“YES”であれば、つまり端末リストを受信すれば、ステップS133で、端末リストを更新して、図18に示したステップS117に戻る。ステップS133では、プレイヤ用端末リストデータ210cが示す端末リストが、受信した端末リストに置き換えられる。
【0150】
図21は、プレイヤのゲーム装置12のCPU30のデータセーブ処理を示すフロー図である。ゲームプレイ中に所定のイベントが発生したり、ゲームプレイ中にデータセーブの指示が入力されたり、ゲームプレイ処理を終了したりすることに応じて、データセーブ処理が開始される。
【0151】
プレイヤのゲーム装置12のCPU30は、データセーブ処理を開始すると、図21に示すように、ステップS151で、データセーブの依頼を各ゲームマスタのゲーム装置12に送信する。次のステップS153では、全ゲームマスタのゲーム装置12から暗号化ゲームデータを受信したかどうかを判断する。
【0152】
ステップS153で“NO”であれば、つまり暗号化ゲームデータを送信していないゲームマスタのゲーム装置12が存在する場合には、そのままステップS153に戻る。一方、ステップS153で“YES”であれば、つまり全ゲームマスタのゲーム装置12から暗号化ゲームデータを受信すれば、ステップS155で、等しい暗号化ゲームデータを採用し、ステップS157で、採用した暗号化ゲームデータをフラッシュメモリ34にセーブして、データセーブ処理を終了する。
【0153】
なお、この実施例では、ステップS153で“NO”の場合には、そのまま同じステップS153の処理を繰り返すようにしたが、これに限定される必要はない。所定時間を経過しても、暗号化ゲームデータを受信しない場合には、データセーブの失敗を通知して、強制的にデータセーブ処理を終了するようにしてもよい。または、ゲームプレイの場合と同様に、所定時間を経過しても、暗号化ゲームデータを受信しない場合には、暗号化ゲームデータを送信しないゲームマスタのゲーム装置12の切断を検知し、バックアップノードをゲームマスタに昇格させて、データセーブ処理を続行するようにしてもよい。
【0154】
図22は、ゲームマスタのゲーム装置12のCPU30のデータロード処理を示すフロー図である。ただし、ここでは、第1ゲームマスタとして機能する場合について説明するが、第2ゲームマスタとして機能する場合も同様である。後述するゲームプレイ処理およびデータセーブ処理についても同様に、第1ゲームマスタとして機能する場合について説明する。
【0155】
プイレヤのゲーム装置12から暗号化ゲームデータとともにデータロードの依頼を受信すると、ゲームマスタのゲーム装置12のCPU30は、データロード処理を開始し、図22に示すように、ステップS171で、暗号化ゲームデータおよび復号の依頼を復号サーバ18に送信する。
【0156】
続くステップS173では、ゲームデータを受信したかどうかを判断する。ステップS173で“NO”であれば、つまりゲームデータを受信していなければ、そのまま同じステップS173に戻る。一方、ステップS173で“YES”であれば、つまりゲームデータを受信すれば、ステップS175で、ゲームデータを記憶して、データロード処理を終了する。つまり、ステップS175では、CPU30は、第1ゲームマスタ用の記憶領域212に設けられた第1ゲームマスタ用送受信データバッファ212aに記憶されたゲームデータを、第1ゲームマスタ用ゲームデータ212cとして記憶する。ただし、プレイヤのゲーム装置12は2台であるため、各プレイヤのゲーム装置12からの依頼に応じて、データロードの処理がそれぞれ実行される。
【0157】
図23は、ゲームマスタのゲーム装置12のCPU30のゲームプレイ処理のフロー図である。ゲームマスタのゲーム装置12のCPU30は、全プレイヤのゲーム装置12からの操作データを受信すると、ゲームプレイ処理を開始し、ステップS191で、ゲーム処理を実行する。このとき、第1ゲームマスタ用ゲームデータ212cに対応するパラメータが用いられる。そして、ステップS193で、結果データを各プレイヤのゲーム装置12に送信して、ゲームプレイ処理を終了する。
【0158】
図24は、ゲームマスタのゲーム装置12のCPU30の昇格処理のフロー図である。ゲームマスタのゲーム装置12のCPU30は、プレイヤのゲーム装置12からバックアップノードの昇格の通知を受信すると、昇格処理を開始し、ステップS211で、バックアップノードのゲーム装置12にゲームデータを送信する。ただし、ここで送信されるのは、第1ゲームマスタ用ゲームデータ212cの複製である。
【0159】
次のステップS213では、端末リストを受信したかどうかを判断する。ステップS213で“NO”であれば、つまり端末リストを受信していなければ、そのまま同じステップS213に戻る。一方、ステップS213で“YES”であれば、つまり端末リストを受信すれば、ステップS215で、端末リストを更新して、昇格処理を終了する。ステップS215では、第1ゲームマスタ用端末リストデータ212bが示す端末リストが、受信した端末リストに置き換えられる。
【0160】
図25は、ゲームマスタのゲーム装置12のCPU30のデータセーブ処理のフロー図である。ゲームマスタのゲーム装置12のCPU30は、プレイヤのゲーム装置12からデータセーブの依頼を受信すると、データセーブ処理を開始し、ステップS231で、ゲームデータおよび暗号化の依頼を暗号化サーバ20に送信する。
【0161】
次のステップS233では、暗号化ゲームデータを受信したかどうかを判断する。ステップS233で“NO”であれば、つまり暗号化ゲームデータを受信していなければ、そのまま同じステップS233に戻る。一方、ステップS233で“YES”であれば、つまり暗号化ゲームデータを受信すれば、ステップS235で、暗号化ゲームデータを、データセーブの依頼元であるプレイヤのゲーム装置12に送信してデータセーブ処理を終了する。
【0162】
この実施例によれば、ゲーム装置はゲームプレイとして或る通信ゲームに参加するとともに、他の通信ゲームにゲームマスタとして参加することができ、少なくとも、プレイヤのゲーム装置およびゲームマスタのゲーム装置をマッチングし、マッチングされたゲーム装置間でゲームプレイの処理を実行するので、ゲームサーバを用意することなく、処理の負荷を分散させることができる。
【0163】
また、この実施例によれば、プレイヤのゲーム装置とは異なるゲームマスタのゲーム装置にゲームデータが記憶され、ゲームマスタのゲーム装置はプレイヤのゲーム装置から操作データを受信すると、このゲームデータに対応するパラメータを用いてゲーム処理を実行し、その結果をプレイヤのゲーム装置に送信するので、プレイヤのゲーム装置にゲームデータが記憶されないため、ゲームサーバを設けなくても、ゲームデータが改変されるのを出来る限り防止することができる。
【0164】
さらに、この実施例によれば、ゲーム装置にセーブされるのは暗号化ゲームデータであるため、これが改変されたとしても、復号サーバで復号できないため、改変されたゲームデータを用いたゲーム処理が実行されることもない。
【0165】
なお、この実施例では、ゲームマスタとして3台のゲーム装置をマッチングするようにしたが、ゲームマスタのゲーム装置の数は、1台または2台でもよい。または、ゲーム装置の能力があれば、4台以上マッチングすることも可能である。ただし、ゲームマスタのゲーム装置の数が1台の場合には、プレイヤのゲーム装置は、当該ゲームマスタのゲーム装置からの結果データや暗号化ゲームデータを受信するだけである。また、ゲームマスタのゲーム装置の数が2台の場合には、プレイヤのゲーム装置は、それらのゲームマスタのゲーム装置からの結果データや暗号化ゲームデータが一致する場合にのみ、その結果データや暗号化データを採用することになる。さらに、ゲームマスタのゲーム装置の数が4台以上の偶数の場合には、等しいものと等しくないものとの数が同じである場合には、等しいものを採用してもよいし、採用しなくてもよい。
【0166】
また、この実施例では、携帯型のゲーム装置についてのみ説明したが、通信機能を備える他の携帯可能な情報処理装置、たとえばノートPC,PDA,携帯電話機に適用することも可能である。また、携帯可能でない情報処理装置、たとえばデスクトップPC,据置型のゲーム装置などにも適用することも可能である。
【0167】
さらに、この実施例では、マッチングサーバ、復号サーバおよび暗号化サーバをそれぞれ別に設けるようにしたが、これらのうちの2つの以上の機能を備える1または2つのサーバを設けるようにしてもよい。
【0168】
さらにまた、この実施例では、ゲームデータの暗号化を暗号化サーバで行い、暗号化ゲームデータの復号を復号サーバで行うようにしたが、ゲームマスタのゲーム装置で暗号化や復号を行うようにしてもよい。ユーザが気付かないうちに当該ユーザのゲーム装置がゲームマスタとなっているため、そのゲーム装置で暗号化や復号が行われたとしても、そのゲーム装置で不正行為が行われる可能性は低くなる。
【符号の説明】
【0169】
10 …ゲームシステム
12 …ゲーム装置
16 …マッチングサーバ
18 …復号サーバ
20 …暗号化サーバ
30 …CPU
32 …RAM
34 …フラッシュメモリ
36 …無線通信モジュール
38 …入力装置
42 …表示装置
46 …スピーカ
【特許請求の範囲】
【請求項1】
ネットワーク上でそれぞれ接続可能な同種の第1ゲーム装置、第2ゲーム装置および第3ゲーム装置を含み、前記第1ゲーム装置と前記第2ゲーム装置との間で第1通信ゲームをプレイする、ゲームシステムであって、
前記第1ゲーム装置は、
第1ユーザの入力に応じて、当該入力に対応する第1入力データを前記第3ゲーム装置に送信する第1入力データ送信手段を備え、
前記第2ゲーム装置は、
第2ユーザの入力に応じて、当該入力に対応する第2入力データを前記第3ゲーム装置に送信する第2入力データ送信手段を備え、
前記第1通信ゲームをプレイしない前記第3ゲーム装置は、
前記第1入力データ送信手段によって送信された第1入力データおよび前記第2入力データ送信手段によって送信された第2入力データに基づいてゲーム処理を実行する第1ゲーム処理実行手段を備える、ゲームシステム。
【請求項2】
複数のゲーム装置の中から第1ゲーム装置、第2ゲーム装置および第3ゲーム装置をマッチングする第1マッチング手段をさらに備える、請求項1記載のゲームシステム。
【請求項3】
少なくとも前記第3ゲーム装置と接続可能な第4ゲーム装置をさらに含み、
前記第1マッチング手段は、少なくとも前記第3ゲーム装置および第4ゲーム装置をマッチングし、
前記第3ゲーム装置は、前記第1ゲーム処理実行手段によって前記ゲーム処理を実行している場合に、前記第1ゲーム装置および前記第2ゲーム装置とは異なる第4ゲーム装置との間で第2通信ゲームをプレイする、請求項2記載のゲームシステム。
【請求項4】
少なくとも前記第1ゲーム装置と接続可能な第5ゲーム装置および第6ゲーム装置をさらに含み、前記第5ゲーム装置と前記第6ゲーム装置との間で第3通信ゲームをプレイし、
前記第5ゲーム装置は、
第3ユーザの入力に応じて、当該入力に対応する第3入力データを前記第1ゲーム装置に送信する第3入力データ送信手段を備え、
前記第6ゲーム装置は、
第4ユーザの入力に応じて、当該入力に対応する第4入力データを前記第1ゲーム装置に送信する第4入力データ送信手段を備え、
少なくとも前記第3通信ゲームをプレイしない前記第1ゲーム装置は、
前記第3入力データ送信手段によって送信された第3入力データおよび前記第4入力データ送信手段によって送信された第4入力データに基づいてゲーム処理を実行する第2ゲーム処理実行手段をさらに備える、請求項2または3記載のゲームシステム。
【請求項5】
複数の前記第3ゲーム装置をさらに含み、
前記複数の第3ゲーム装置の各々は、
前記第1ゲーム処理実行手段によって実行されたゲーム処理の結果データを前記第1ゲーム装置および前記第2ゲーム装置に送信する結果データ送信手段をさらに備え、
前記第1ゲーム装置および前記第2ゲーム装置の各々は、
前記複数の第3ゲーム装置の前記結果データ送信手段によって送信された結果データを受信する結果データ受信手段、および
前記結果データ受信手段によって受信された複数の前記結果データのうち、適正な前記結果データを出力装置に出力させる出力制御手段をさらに備える、請求項1ないし4のいずれかに記載のゲームシステム。
【請求項6】
少なくとも3台の前記第3ゲーム装置を含み、
前記出力制御手段は、前記結果データ受信手段によって受信された複数の前記結果データを比較し、等しいデータの数が多い前記結果データを出力させる、請求項5記載のゲームシステム。
【請求項7】
前記第3ゲーム装置の控えの第7ゲーム装置をさらに含み、
前記第7ゲーム装置は、
前記第3ゲーム装置の接続が切断された場合に、当該第3ゲーム装置の代わりに、前記第1入力データ送信手段によって送信された第1入力データおよび前記第2入力データによって送信された第2入力データに基づいてゲーム処理を実行する代替ゲーム処理実行手段を備える、請求項1ないし6のいずれかに記載のゲームシステム。
【請求項8】
少なくとも前記第3ゲーム装置と接続可能な暗号化装置をさらに含み、
前記第3ゲーム装置は、
前記第1ゲーム処理実行手段によって実行されたゲーム処理に応じて変化されるゲームデータを前記暗号化装置に送信する第1ゲームデータ送信手段をさらに備え、
前記暗号化装置は、
前記第1ゲームデータ送信手段によって送信されたゲームデータを暗号化する暗号化手段、および
前記暗号化手段によって暗号化された暗号化ゲームデータを前記第3ゲーム装置に送信する第1暗号化データ送信手段を備え、
前記第3ゲーム装置は、
前記第1暗号化データ送信手段によって送信された暗号化ゲームデータを前記第1ゲーム装置および前記第2ゲーム装置に送信する第2暗号化データ送信手段をさらに備え、
前記第1ゲーム装置および前記第2ゲーム装置の各々は、
前記第2暗号化データ送信手段によって送信された暗号化ゲームデータを記憶する記憶手段をさらに備える、請求項1記載のゲームシステム。
【請求項9】
ネットワーク上でそれぞれ接続可能な複数の同種のゲーム装置をマッチングする第2マッチング手段をさらに備え、
前記暗号化手段は、前記第1ゲームデータ送信手段によって送信されたゲームデータでゲームプレイする前記第1ゲーム装置、前記第2ゲーム装置および前記第3ゲーム装置の組み合わせが、前記第2マッチング手段によってマッチングされている場合に、当該ゲームデータを暗号化する、請求項8記載のゲームシステム。
【請求項10】
少なくとも前記第3ゲーム装置と接続可能な復号装置をさらに含み、
前記第1ゲーム装置および前記第2ゲーム装置の各々は、
前記記憶手段によって記憶された暗号化ゲームデータを前記第3ゲーム装置に送信する第3暗号化データ送信手段をさらに備え、
前記第3ゲーム装置は、
前記第3暗号化データ送信手段によって送信された前記暗号化ゲームデータを前記復号装置に送信する第4暗号化データ送信手段をさらに備え、
前記復号装置は、
前記第4暗号化データ送信手段によって送信された前記暗号化ゲームデータを復号する復号手段、および
前記復号手段によって復号されたゲームデータを前記第3ゲーム装置に送信する第2ゲームデータ送信手段をさらに備える、請求項8または9記載のゲームシステム。
【請求項11】
前記復号手段は、前記第4暗号化データ送信手段によって送信された前記暗号化ゲームデータのゲームデータでゲームプレイする前記第1ゲーム装置、前記第2ゲーム装置および前記第3ゲーム装置の組み合わせが、前記第2マッチング手段によってマッチングされている場合に当該暗号化ゲームデータを復号する、請求項10記載のゲームシステム。
【請求項12】
前記第1ゲーム処理実行手段は、前記第1入力データ送信手段によって送信された第1入力データ、前記第2入力データ送信手段によって送信された第2入力データおよび前記第2ゲームデータ送信手段によって送信されたゲームデータに基づいて、前記ゲーム処理を実行する、請求項10または11記載のゲームシステム。
【請求項13】
ネットワーク上で同種の第1ゲーム装置および第2ゲーム装置とそれぞれ接続可能であり、当該第1ゲーム装置と当該第2ゲーム装置との間でプレイされる通信ゲームのゲーム処理を当該通信ゲームをプレイせずに実行する、ゲーム装置であって、
前記第1ゲーム装置からの第1入力データおよび前記第2ゲーム装置からの第2入力データに基づいてゲーム処理を実行するゲーム処理実行手段、および
前記ゲーム処理実行手段によって実行されたゲーム処理の結果データを、前記第1ゲーム装置および前記第2ゲーム装置に送信する結果データ送信手段を備える、ゲーム装置。
【請求項14】
ネットワーク上で同種の第1ゲーム装置および第2ゲーム装置とそれぞれ接続可能であり、当該第1ゲーム装置と当該第2ゲーム装置との間でプレイされる通信ゲームのゲーム処理を当該通信ゲームをプレイせずに実行する、ゲーム装置のゲームプログラムであって、
前記ゲーム装置のコンピュータを、
前記第1ゲーム装置からの第1入力データおよび前記第2ゲーム装置からの第2入力データに基づいてゲーム処理を実行するゲーム処理実行手段、および
前記ゲーム処理実行手段によって実行されたゲーム処理の結果データを、前記第1ゲーム装置および前記第2ゲーム装置に送信する結果データ送信手段として機能させる、ゲームプログラム。
【請求項15】
ネットワーク上で同種の第1ゲーム装置および第2ゲーム装置とそれぞれ接続可能であり、当該第1ゲーム装置と当該第2ゲーム装置との間でプレイされる通信ゲームのゲーム処理を当該通信ゲームをプレイせずに実行する、ゲーム装置のゲーム制御方法であって、
前記ゲーム装置のコンピュータは、
(a)前記第1ゲーム装置からの第1入力データおよび前記第2ゲーム装置からの第2入力データに基づいてゲーム処理を実行し、そして
(b)前記ステップ(a)において実行したゲーム処理の結果データを、前記第1ゲーム装置および前記第2ゲーム装置に送信する、ゲーム制御方法。
【請求項1】
ネットワーク上でそれぞれ接続可能な同種の第1ゲーム装置、第2ゲーム装置および第3ゲーム装置を含み、前記第1ゲーム装置と前記第2ゲーム装置との間で第1通信ゲームをプレイする、ゲームシステムであって、
前記第1ゲーム装置は、
第1ユーザの入力に応じて、当該入力に対応する第1入力データを前記第3ゲーム装置に送信する第1入力データ送信手段を備え、
前記第2ゲーム装置は、
第2ユーザの入力に応じて、当該入力に対応する第2入力データを前記第3ゲーム装置に送信する第2入力データ送信手段を備え、
前記第1通信ゲームをプレイしない前記第3ゲーム装置は、
前記第1入力データ送信手段によって送信された第1入力データおよび前記第2入力データ送信手段によって送信された第2入力データに基づいてゲーム処理を実行する第1ゲーム処理実行手段を備える、ゲームシステム。
【請求項2】
複数のゲーム装置の中から第1ゲーム装置、第2ゲーム装置および第3ゲーム装置をマッチングする第1マッチング手段をさらに備える、請求項1記載のゲームシステム。
【請求項3】
少なくとも前記第3ゲーム装置と接続可能な第4ゲーム装置をさらに含み、
前記第1マッチング手段は、少なくとも前記第3ゲーム装置および第4ゲーム装置をマッチングし、
前記第3ゲーム装置は、前記第1ゲーム処理実行手段によって前記ゲーム処理を実行している場合に、前記第1ゲーム装置および前記第2ゲーム装置とは異なる第4ゲーム装置との間で第2通信ゲームをプレイする、請求項2記載のゲームシステム。
【請求項4】
少なくとも前記第1ゲーム装置と接続可能な第5ゲーム装置および第6ゲーム装置をさらに含み、前記第5ゲーム装置と前記第6ゲーム装置との間で第3通信ゲームをプレイし、
前記第5ゲーム装置は、
第3ユーザの入力に応じて、当該入力に対応する第3入力データを前記第1ゲーム装置に送信する第3入力データ送信手段を備え、
前記第6ゲーム装置は、
第4ユーザの入力に応じて、当該入力に対応する第4入力データを前記第1ゲーム装置に送信する第4入力データ送信手段を備え、
少なくとも前記第3通信ゲームをプレイしない前記第1ゲーム装置は、
前記第3入力データ送信手段によって送信された第3入力データおよび前記第4入力データ送信手段によって送信された第4入力データに基づいてゲーム処理を実行する第2ゲーム処理実行手段をさらに備える、請求項2または3記載のゲームシステム。
【請求項5】
複数の前記第3ゲーム装置をさらに含み、
前記複数の第3ゲーム装置の各々は、
前記第1ゲーム処理実行手段によって実行されたゲーム処理の結果データを前記第1ゲーム装置および前記第2ゲーム装置に送信する結果データ送信手段をさらに備え、
前記第1ゲーム装置および前記第2ゲーム装置の各々は、
前記複数の第3ゲーム装置の前記結果データ送信手段によって送信された結果データを受信する結果データ受信手段、および
前記結果データ受信手段によって受信された複数の前記結果データのうち、適正な前記結果データを出力装置に出力させる出力制御手段をさらに備える、請求項1ないし4のいずれかに記載のゲームシステム。
【請求項6】
少なくとも3台の前記第3ゲーム装置を含み、
前記出力制御手段は、前記結果データ受信手段によって受信された複数の前記結果データを比較し、等しいデータの数が多い前記結果データを出力させる、請求項5記載のゲームシステム。
【請求項7】
前記第3ゲーム装置の控えの第7ゲーム装置をさらに含み、
前記第7ゲーム装置は、
前記第3ゲーム装置の接続が切断された場合に、当該第3ゲーム装置の代わりに、前記第1入力データ送信手段によって送信された第1入力データおよび前記第2入力データによって送信された第2入力データに基づいてゲーム処理を実行する代替ゲーム処理実行手段を備える、請求項1ないし6のいずれかに記載のゲームシステム。
【請求項8】
少なくとも前記第3ゲーム装置と接続可能な暗号化装置をさらに含み、
前記第3ゲーム装置は、
前記第1ゲーム処理実行手段によって実行されたゲーム処理に応じて変化されるゲームデータを前記暗号化装置に送信する第1ゲームデータ送信手段をさらに備え、
前記暗号化装置は、
前記第1ゲームデータ送信手段によって送信されたゲームデータを暗号化する暗号化手段、および
前記暗号化手段によって暗号化された暗号化ゲームデータを前記第3ゲーム装置に送信する第1暗号化データ送信手段を備え、
前記第3ゲーム装置は、
前記第1暗号化データ送信手段によって送信された暗号化ゲームデータを前記第1ゲーム装置および前記第2ゲーム装置に送信する第2暗号化データ送信手段をさらに備え、
前記第1ゲーム装置および前記第2ゲーム装置の各々は、
前記第2暗号化データ送信手段によって送信された暗号化ゲームデータを記憶する記憶手段をさらに備える、請求項1記載のゲームシステム。
【請求項9】
ネットワーク上でそれぞれ接続可能な複数の同種のゲーム装置をマッチングする第2マッチング手段をさらに備え、
前記暗号化手段は、前記第1ゲームデータ送信手段によって送信されたゲームデータでゲームプレイする前記第1ゲーム装置、前記第2ゲーム装置および前記第3ゲーム装置の組み合わせが、前記第2マッチング手段によってマッチングされている場合に、当該ゲームデータを暗号化する、請求項8記載のゲームシステム。
【請求項10】
少なくとも前記第3ゲーム装置と接続可能な復号装置をさらに含み、
前記第1ゲーム装置および前記第2ゲーム装置の各々は、
前記記憶手段によって記憶された暗号化ゲームデータを前記第3ゲーム装置に送信する第3暗号化データ送信手段をさらに備え、
前記第3ゲーム装置は、
前記第3暗号化データ送信手段によって送信された前記暗号化ゲームデータを前記復号装置に送信する第4暗号化データ送信手段をさらに備え、
前記復号装置は、
前記第4暗号化データ送信手段によって送信された前記暗号化ゲームデータを復号する復号手段、および
前記復号手段によって復号されたゲームデータを前記第3ゲーム装置に送信する第2ゲームデータ送信手段をさらに備える、請求項8または9記載のゲームシステム。
【請求項11】
前記復号手段は、前記第4暗号化データ送信手段によって送信された前記暗号化ゲームデータのゲームデータでゲームプレイする前記第1ゲーム装置、前記第2ゲーム装置および前記第3ゲーム装置の組み合わせが、前記第2マッチング手段によってマッチングされている場合に当該暗号化ゲームデータを復号する、請求項10記載のゲームシステム。
【請求項12】
前記第1ゲーム処理実行手段は、前記第1入力データ送信手段によって送信された第1入力データ、前記第2入力データ送信手段によって送信された第2入力データおよび前記第2ゲームデータ送信手段によって送信されたゲームデータに基づいて、前記ゲーム処理を実行する、請求項10または11記載のゲームシステム。
【請求項13】
ネットワーク上で同種の第1ゲーム装置および第2ゲーム装置とそれぞれ接続可能であり、当該第1ゲーム装置と当該第2ゲーム装置との間でプレイされる通信ゲームのゲーム処理を当該通信ゲームをプレイせずに実行する、ゲーム装置であって、
前記第1ゲーム装置からの第1入力データおよび前記第2ゲーム装置からの第2入力データに基づいてゲーム処理を実行するゲーム処理実行手段、および
前記ゲーム処理実行手段によって実行されたゲーム処理の結果データを、前記第1ゲーム装置および前記第2ゲーム装置に送信する結果データ送信手段を備える、ゲーム装置。
【請求項14】
ネットワーク上で同種の第1ゲーム装置および第2ゲーム装置とそれぞれ接続可能であり、当該第1ゲーム装置と当該第2ゲーム装置との間でプレイされる通信ゲームのゲーム処理を当該通信ゲームをプレイせずに実行する、ゲーム装置のゲームプログラムであって、
前記ゲーム装置のコンピュータを、
前記第1ゲーム装置からの第1入力データおよび前記第2ゲーム装置からの第2入力データに基づいてゲーム処理を実行するゲーム処理実行手段、および
前記ゲーム処理実行手段によって実行されたゲーム処理の結果データを、前記第1ゲーム装置および前記第2ゲーム装置に送信する結果データ送信手段として機能させる、ゲームプログラム。
【請求項15】
ネットワーク上で同種の第1ゲーム装置および第2ゲーム装置とそれぞれ接続可能であり、当該第1ゲーム装置と当該第2ゲーム装置との間でプレイされる通信ゲームのゲーム処理を当該通信ゲームをプレイせずに実行する、ゲーム装置のゲーム制御方法であって、
前記ゲーム装置のコンピュータは、
(a)前記第1ゲーム装置からの第1入力データおよび前記第2ゲーム装置からの第2入力データに基づいてゲーム処理を実行し、そして
(b)前記ステップ(a)において実行したゲーム処理の結果データを、前記第1ゲーム装置および前記第2ゲーム装置に送信する、ゲーム制御方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【公開番号】特開2013−111437(P2013−111437A)
【公開日】平成25年6月10日(2013.6.10)
【国際特許分類】
【出願番号】特願2011−263360(P2011−263360)
【出願日】平成23年12月1日(2011.12.1)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成25年6月10日(2013.6.10)
【国際特許分類】
【出願日】平成23年12月1日(2011.12.1)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]