(57)【要約】 【課題】不揮発に記憶されるプログラムやデータ等のゲーム情報を、通信ゲームの対戦相手と協調して適切に更新するゲーム装置等を提供する。【解決手段】ゲーム装置２０１の記憶部５０１には、ゲーム情報が記憶される。進行部５０２は、他のゲーム装置との通信を確立し、ゲーム情報に基づいて、通信ゲームを進行させる。ゲーム情報の更新が必要であると判定部５０３が判定すると、決定部５０４が、差分情報の取得を自身で行うか他のゲーム装置に行わせるか決定する。自分で行う場合、更新部５０６は、所定の情報提供装置から差分情報を取得して記憶部５０１を更新し、提供部５０７は他のゲーム装置に差分情報を提供する。他のゲーム装置に行わせる場合、依頼部５０５は、その旨を依頼し、更新部５０６は、提供された差分情報を取得して記憶部５０１を更新する。【選択図】図５
2011160836.tif 000002
【特許請求の範囲】
【請求項１】
プレイヤーに通信ゲームを提供するゲーム装置であって、
前記通信ゲームに必要なプログラムもしくはデータを含むゲーム情報が記憶される記憶部、
他のゲーム装置との通信を確立し、前記記憶されたゲーム情報に基づいて、前記通信ゲームを進行させる進行部、
前記ゲーム情報の更新が必要であるか否かを定期的もしくは不定期に判定する判定部、
前記ゲーム情報の更新が必要であると判定されると、当該更新に係る差分情報の取得を自身で行うか、前記他のゲーム装置に行わせるか、を決定する決定部、
前記更新に係る差分情報の取得を前記他のゲーム装置に行わせると決定されると、当該他のゲーム装置に前記記憶部に記憶されるゲーム情報のバージョンを指定して、当該差分情報の生成を依頼する依頼部、
前記更新に係る差分情報の取得を自身で行うと決定され、もしくは、前記他のゲーム装置から差分情報の生成が依頼されると、所定の情報提供装置へ、前記記憶部に記憶されるゲーム情報のバージョンを指定して、当該情報提供装置から最新のゲーム情報との差分情報を取得し、当該差分情報に基づいて、前記記憶部に記憶されるゲーム情報を更新する更新部、
前記他のゲーム装置から差分情報の生成が依頼され、前記記憶部に記憶されるゲーム情報が最新のゲーム情報に更新されると、前記依頼に指定されたゲーム情報のバージョンから、前記記憶部に記憶されるゲーム情報との差分情報を生成して、当該他のゲーム装置へ当該差分情報を提供する提供部
を備え、
前記更新部は、前記更新に係る差分情報の取得を前記他のゲーム装置に行わせると決定され、前記他のゲーム装置から差分情報が提供されると、当該差分情報に基づいて、前記記憶部に記憶されるゲーム情報を更新する
ことを特徴とするゲーム装置。
【請求項２】
請求項１に記載のゲーム装置であって、
前記通信ゲームが提供されている間、当該ゲーム装置と、前記他のゲーム装置と、は、計算負荷もしくは前記情報提供装置との間の通信性能を測定して、前記進行部は、前記通信ゲームを提供するための通信の際に、当該測定結果を交換し、
前記決定部は、前記測定された自身の測定結果と、前記交換により得られた前記他のゲーム装置の測定結果と、を比較して、前記差分情報の取得を自身で行うか、当該他のゲーム装置に行わせるか、を決定する
ことを特徴とするゲーム装置。
【請求項３】
請求項１または２に記載のゲーム装置であって、
前記判定部は、少なくとも、前記他のゲーム装置との通信が確立されると、前記ゲーム情報の更新が必要であるか否かを判定する
ことを特徴とするゲーム装置。
【請求項４】
請求項１または２に記載のゲーム装置であって、
前記進行部が、映像の再生中に前記プレイヤーからの操作入力があっても当該操作入力を無視するような映像の再生を開始すると、前記判定部は、前記ゲーム情報の更新が必要であるか否かを判定する
ことを特徴とするゲーム装置。
【請求項５】
請求項１から４のいずれか１項に記載のゲーム装置であって、
前記ゲーム装置と、前記他のゲーム装置と、のいずれか一方は親機として、他方は子機として機能し、
前記ゲーム装置が子機である場合、前記進行部は、前記プレイヤーからの操作入力を前記他のゲーム装置に送信し、前記他のゲーム装置からの指示に基づいて、前記プレイヤーに提供すべき映像を再生し、
前記ゲーム装置が親機である場合、前記進行部は、前記プレイヤーからの操作入力と、前記他のゲーム装置から送信された操作入力と、に基づいて、前記プレイヤーに提供すべき映像を決定し、前記決定された映像を再生し、前記決定された映像を再生すべき旨の指示を、前記他のゲーム装置に送信し、
前記判定部は、前記ゲーム装置が親機である場合にのみ、前記ゲーム情報の更新が必要であるか否かを判定する
ことを特徴とするゲーム装置。
【請求項６】
請求項５に記載のゲーム装置であって、
前記ゲーム装置に記憶されるゲーム情報のバージョンと、前記他のゲーム装置に記憶されるゲーム情報のバージョンと、が、異なる場合、新しいバージョンのゲーム情報を記憶する側が前記親機として機能し、古いバージョンのゲーム情報を記憶する側が前記子機として機能する
ことを特徴とするゲーム装置。
【請求項７】
請求項５または６に記載のゲーム装置であって、
前記情報提供装置と、前記親機と、前記子機と、は、通信ネットワークを形成する木構造のノードとして機能し、
当該通信ネットワークにおいて、前記情報提供装置は、前記親機の親ノードであり、前記親機は、前記子機の親ノードである
ことを特徴とするゲーム装置。
【請求項８】
請求項１から７のいずれか１項に記載のゲーム装置であって、
前記判定部は、前記記憶部に記憶されるゲーム情報のバージョン情報と、前記他のゲーム装置に記憶されるゲーム情報のバージョン情報と、を比較して、両者が異なる場合、前記ゲーム情報の更新が必要である、と判定する
ことを特徴とするゲーム装置。
【請求項９】
プレイヤーに通信ゲームを提供するゲーム装置が実行するゲーム制御方法であって、当該ゲーム装置は、前記通信ゲームに必要なプログラムもしくはデータを含むゲーム情報が記憶される記憶部、進行部、判定部、決定部、依頼部、更新部、提供部を備え、
前記進行部が、他のゲーム装置との通信を確立し、前記記憶されたゲーム情報に基づいて、前記通信ゲームを進行させる進行工程、
前記判定部が、前記ゲーム情報の更新が必要であるか否かを定期的もしくは不定期に判定する判定工程、
前記ゲーム情報の更新が必要であると判定されると、前記決定部が、当該更新に係る差分情報の取得を自身で行うか、前記他のゲーム装置に行わせるか、を決定する決定工程、
前記更新に係る差分情報の取得を前記他のゲーム装置に行わせると決定されると、前記依頼部が、当該他のゲーム装置に前記記憶部に記憶されるゲーム情報のバージョンを指定して、当該差分情報の生成を依頼する依頼工程、
前記更新に係る差分情報の取得を自身で行うと決定され、もしくは、前記他のゲーム装置から差分情報の生成が依頼されると、前記更新部が、所定の情報提供装置へ、前記記憶部に記憶されるゲーム情報のバージョンを指定して、当該情報提供装置から最新のゲーム情報との差分情報を取得し、当該差分情報に基づいて、前記記憶部に記憶されるゲーム情報を更新する更新工程、
前記他のゲーム装置から差分情報の生成が依頼され、前記記憶部に記憶されるゲーム情報が最新のゲーム情報に更新されると、前記提供部が、前記依頼に指定されたゲーム情報のバージョンから、前記記憶部に記憶されるゲーム情報との差分情報を生成して、当該他のゲーム装置へ当該差分情報を提供する提供工程
を備え、
前記更新工程では、前記更新に係る差分情報の取得を前記他のゲーム装置に行わせると決定され、前記他のゲーム装置から差分情報が提供されると、当該差分情報に基づいて、前記記憶部に記憶されるゲーム情報を更新する
ことを特徴とするゲーム制御方法。
【請求項１０】
コンピュータに、プレイヤーに通信ゲームを提供させるプログラムであって、当該プログラムは、当該コンピュータを、
前記通信ゲームに必要なプログラムもしくはデータを含むゲーム情報が記憶される記憶部、
他のゲーム装置との通信を確立し、前記記憶されたゲーム情報に基づいて、前記通信ゲームを進行させる進行部、
前記ゲーム情報の更新が必要であるか否かを定期的もしくは不定期に判定する判定部、
前記ゲーム情報の更新が必要であると判定されると、当該更新に係る差分情報の取得を自身で行うか、前記他のゲーム装置に行わせるか、を決定する決定部、
前記更新に係る差分情報の取得を前記他のゲーム装置に行わせると決定されると、当該他のゲーム装置に前記記憶部に記憶されるゲーム情報のバージョンを指定して、当該差分情報の生成を依頼する依頼部、
前記更新に係る差分情報の取得を自身で行うと決定され、もしくは、前記他のゲーム装置から差分情報の生成が依頼されると、所定の情報提供装置へ、前記記憶部に記憶されるゲーム情報のバージョンを指定して、当該情報提供装置から最新のゲーム情報との差分情報を取得し、当該差分情報に基づいて、前記記憶部に記憶されるゲーム情報を更新する更新部、
前記他のゲーム装置から差分情報の生成が依頼され、前記記憶部に記憶されるゲーム情報が最新のゲーム情報に更新されると、前記依頼に指定されたゲーム情報のバージョンから、前記記憶部に記憶されるゲーム情報との差分情報を生成して、当該他のゲーム装置へ当該差分情報を提供する提供部
として機能させ、
前記更新部は、前記更新に係る差分情報の取得を前記他のゲーム装置に行わせると決定され、前記他のゲーム装置から差分情報が提供されると、当該差分情報に基づいて、前記記憶部に記憶されるゲーム情報を更新する
ように機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲーム装置に記憶されるプログラムやデータ等のゲーム情報を、通信ゲームの対戦相手と協調して適切に更新するのに好適なゲーム装置、ゲーム制御方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【０００２】
従来から、ネットワーク通信機能を持ったゲーム装置などを用いた通信ゲームを提供する技術が提案されている。
【０００３】
たとえば、以下に掲げる特許文献１には、サーバ装置によって紹介された端末装置同士がピアツーピアで通信することによって、通信対戦ゲームを実現する技術が開示されている。
【０００４】
一方で特許文献２には、ツリー状の木構造を用いてあるノードが他のノードの資源を利用するような通信を行う技術が開示されている。
【０００５】
このような通信ゲームは、ゲーム装置においてプログラムが実行され、ゲーム用の地図、画像、音声、各種パラメータ等がデータとして、当該プログラムの実行の際に参照されることによって、実現される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１８９６２２号公報
【特許文献２】特許第３８４２２５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記のような通信ゲームを実現するためのプログラムやデータといったゲーム情報は、ゲームの趣向性をさらに高めたり、不具合を修正したりするために、バージョンアップをしなければならないことがある。
【０００８】
一方で、ゲーム情報のバージョンアップ時に、特定のサーバにゲーム情報をダウンロードするためのアクセスが集中し、結果としてバージョンアップができないことは好ましくない。
【０００９】
さらに、通信ゲームを行うにあたって、対戦相手とゲーム情報のバージョンを揃えた方が良い場合も多い。
【００１０】
本発明は、上記のような課題を解決するもので、ゲーム装置に記憶されるプログラムやデータ等のゲーム情報を、通信ゲームの対戦相手と協調して適切に更新するのに好適なゲーム装置、ゲーム制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【００１２】
本発明の第１の観点に係るゲーム装置は、プレイヤーに通信ゲームを提供し、記憶部、進行部、判定部、決定部、依頼部、更新部、提供部を備え、以下のように構成する。
【００１３】
ここで、当該ゲーム装置は、同じ構成を有する２台が対となって、通信ゲームを行う。
【００１４】
さて、記憶部には、通信ゲームに必要なプログラムもしくはデータを含むゲーム情報が記憶される。
【００１５】
ゲーム情報は、典型的には、通信ゲームを実現するためのプログラムそのものや、そのプログラムで利用されるライブラリのコード断片、通信ゲームに登場するキャラクターの各種パラメータ、通信ゲームのシナリオが進行する際に表示・出力等される画像情報、音声情報、文字情報などである。これらの情報は、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）やハードディスク等の不揮発性記憶装置や、バッテリバックアップ機能が用意されたＲＡＭ（Random Access memory）等に記憶される。このため、ゲーム情報は、ゲーム装置本体の電源が切られても、消去されず、そのまま維持される。
【００１６】
一方、進行部は、他のゲーム装置との通信を確立し、記憶されたゲーム情報に基づいて、通信ゲームを進行させる。
【００１７】
進行部が実行する処理は、通常の通信ゲームを実現する場合と同様であり、その際に、上記のゲーム情報を参照する。ゲーム情報がプログラムの場合には、ゲーム装置のＣＰＵ（Central Processing Unit）が、当該プログラムを実行することにより、進行部が実現される。ゲーム情報が各種のデータである場合には、進行部が処理を進める際に、適宜当該データが参照される。
【００１８】
さらに、判定部は、ゲーム情報の更新が必要であるか否かを定期的もしくは不定期に判定する。
【００１９】
判定部が判定を行うタイミングや判定の基準は、後述するように、種々の態様が可能である。たとえば、電源投入時や、プレイヤーからの指示入力にかかわらず所定の処理を続行する期間などが、判定を行うタイミングとして採用できる。また、判定基準としては、当該ゲーム装置と他のゲーム装置とで、ゲーム情報のバージョンが異なるか否かを採用するのが典型的である。
【００２０】
また、２台のゲーム装置が、通信ゲームを行っている場合に、いずれのゲーム装置がこの判定を行うか、についても、種々の態様がある。
【００２１】
たとえば、２台のゲーム装置の一方が親機として機能し、他方が子機として機能するような態様を考える。ここで親機は、ゲームを直接進行させる計算を行う。一方子機は、プレイヤーからの入力を親機に伝え、親機から指示された情報に基づいてプレイヤーに情報を伝達する役割を果たす。
【００２２】
このような態様では、親機が判定を行うのが典型的である。
【００２３】
このほか、複数のゲーム装置が木構造の通信ネットワークを構成することによって、通信ゲームを実現する場合もある。この木構造において、直接エッジで結ばれている２つのノードは、それぞれ、親ノード、子ノードと呼ばれる。親ノードは、木構造の根ノードに近い方のノードであり、子ノードは、木構造の根ノードから遠い方のノードである。
【００２４】
このような態様では、親ノードが判定を行うのが典型的である。
【００２５】
以下、混乱のない限り、これらの２つの態様をまとめて説明し、親機と親ノードをまとめて「親機」と呼び、子機と子ノードをまとめて「子機」と呼ぶこととする。
【００２６】
そして、決定部は、ゲーム情報の更新が必要であると判定されると、当該更新に係る差分情報の取得を自身で行うか、他のゲーム装置に行わせるか、を決定する。
【００２７】
当該決定に係る基準については、後述するように種々の態様が考えられる。たとえば、常に親機が行うとする手法、常に子機が行うとする手法、親機と子機のいずれかをランダムに選択する手法、親機と子機の計算負荷や通信状態を考慮する手法等である。
【００２８】
さらに、依頼部は、更新に係る差分情報の取得を他のゲーム装置に行わせると決定されると、当該他のゲーム装置に記憶部に記憶されるゲーム情報のバージョンを指定して、当該差分情報の生成を依頼する。
【００２９】
すなわち、差分情報の取得を行わない側のゲーム装置において、依頼部が動作する。この依頼には、通信ゲームの進行の際に利用されるのと同じ通信経路が利用される。また、依頼には、自身が現在持っているゲーム情報のバージョン番号等が指定される。
【００３０】
一方、更新部は、更新に係る差分情報の取得を自身で行うと決定され、もしくは、他のゲーム装置から差分情報の生成が依頼されると、所定の情報提供装置へ、記憶部に記憶されるゲーム情報のバージョンを指定して、当該情報提供装置から最新のゲーム情報との差分情報を取得し、当該差分情報に基づいて、記憶部に記憶されるゲーム情報を更新する。
【００３１】
すなわち、差分情報の取得を行う側のゲーム装置において、更新部が上記の処理を実行する。ここで、所定の情報提供装置とは、ゲーム情報の差分情報を提供する所定のサーバ装置等とするのが典型的であるが、木構造の通信ネットワークを採用する場合には、親機と子機のいずれよりも、木構造において、根ノードに近い上位のノードとするのが典型的である。
【００３２】
さらに、提供部は、他のゲーム装置から差分情報の生成が依頼され、記憶部に記憶されるゲーム情報が最新のゲーム情報に更新されると、依頼に指定されたゲーム情報のバージョンから、記憶部に記憶されるゲーム情報との差分情報を生成して、当該他のゲーム装置へ当該差分情報を提供する。
【００３３】
すなわち、差分情報の取得を行う側のゲーム装置において、提供部が動作する。この提供には、通信ゲームの進行の際に利用されるのと同じ通信経路が利用される。
【００３４】
提供部は、提供の際の通信量を減らすため、依頼に指定されたバージョン情報と、最新版のバージョン情報と、を対比することで、相手方の更新に必要なゲーム情報の差分のみを抽出することとしている。
【００３５】
そして、更新部は、更新に係る差分情報の取得を他のゲーム装置に行わせると決定され、他のゲーム装置から差分情報が提供されると、当該差分情報に基づいて、記憶部に記憶されるゲーム情報を更新する。
【００３６】
すなわち、差分情報の取得を行わない側のゲーム装置において、更新部が上記の処理を実行する。
【００３７】
本発明によれば、通信ゲームの対戦相手と、ゲーム情報のバージョンを揃えることができるとともに、ゲーム情報を提供する情報提供装置へのアクセスをできるだけ抑制することができるようになる。
【００３８】
また、本発明のゲーム装置は、以下のように構成することができる。
【００３９】
すなわち、通信ゲームが提供されている間、当該ゲーム装置と、他のゲーム装置と、は、計算負荷もしくは情報提供装置との間の通信性能を測定して、進行部は、通信ゲームを提供するための通信の際に、当該測定結果を交換する。
【００４０】
計算負荷の測定手法としては、プレイヤーからの入力待ち、通信相手との間の通信待ち、あるいは、タイマ割込待ちなどの待機状態となっている期間と、ＣＰＵが計算処理を行っている期間との比を利用することができる。
【００４１】
一方、通信性能については、両ゲーム装置が過去に情報提供装置に通信をした際の通信速度などのログ情報を利用することができる。
【００４２】
さらに、決定部は、測定された自身の測定結果と、交換により得られた他のゲーム装置の測定結果と、を比較して、差分情報の取得を自身で行うか、当該他のゲーム装置に行わせるか、を決定する。
【００４３】
上記の例では、計算負荷がより低い方、ならびに、通信速度がより速い方のゲーム装置に、差分情報の取得を行わせるように決定するのが典型的である。
【００４４】
本発明によれば、計算負荷や通信性能を考慮して差分情報の取得を行うゲーム装置を決定することにより、差分情報の取得を待たなければならない時間をできるだけ短くすることができるようになる。
【００４５】
また、本発明のゲーム装置において、判定部は、少なくとも、他のゲーム装置との通信が確立されると、ゲーム情報の更新が必要であるか否かを判定するように構成することができる。
【００４６】
進行部による通信ゲームの提供は、２つのゲーム装置の間で通信が確立されることを契機に始まる。そこで、本発明では、通信が確立されると、２つのゲーム装置のゲーム情報のバージョン情報を対比して、ゲーム情報の更新の必要性の有無を判定する。
【００４７】
なお、本発明の場合には、２つのゲーム装置のゲーム情報のバージョンが同じであれば、ゲーム情報の更新はひとまず不要である、と判定することが可能である。
【００４８】
また、本発明では、両者のゲーム情報のバージョン情報に相違がある場合に、新しいバージョンの方から古いバージョンの方に差分情報を直ちに与えるのではない。本発明では、これら２つのバージョンに相違があることを根拠に、より新しいのバージョンが提供されている可能性がある、と考えて、情報提供装置に問い合わせを行う。
【００４９】
したがって、複数のゲーム装置におけるゲーム情報のバージョンアップは、時間をかけて行われることになる。
【００５０】
本発明によれば、通信ゲームを開始するにあたって、２つのゲーム装置に記憶されるゲーム情報のバージョンを揃えることによって、通信ゲームの進行に不具合が生じることをできるだけ防止するとともに、情報提供装置への特定期間内のアクセスが集中してしまう事態を、できるだけ抑制することができるようになる。
【００５１】
また、本発明のゲーム装置において、進行部が、映像の再生中にプレイヤーからの操作入力があっても当該操作入力を無視するような映像の再生を開始すると、判定部は、ゲーム情報の更新が必要であるか否かを判定するように構成することができる。
【００５２】
たとえば、複数のステージからなる通信ゲームにおいては、ゲームのステージがクリアされるごとに、次のステージへとストーリーを繋ぐためのムービーが再生されることが多い。
【００５３】
また、あるステージにおいて最も強力な敵キャラクターであるボスキャラクターを倒した場合には、そのボスキャラクターが倒れていくさまを表すアニメーションが画面表示される場合もある。
【００５４】
本発明では、プレイヤーがムービーやアニメーションを見ている間に、裏側の処理として、ゲーム情報のバージョンを更新する必要があるか否かを調査するのである。
【００５５】
更新の必要性についての判定条件は、上記の発明と同様の基準を採用することができるが、２つのゲーム装置が同じバージョン情報を持つ場合であっても、何回に１回かは、更新が必要である、と判定することとしても良い。
【００５６】
本発明によれば、プレイヤーがムービーやアニメーションを見ている間に、ゲーム情報の更新を行うことができるので、プレイヤーが更新を待つような状況をできるだけ避けることができるようになる。
【００５７】
また、本発明のゲーム装置において、ゲーム装置と、他のゲーム装置と、のいずれか一方は親機として、他方は子機として機能し、ゲーム装置が子機である場合、進行部は、プレイヤーからの操作入力を他のゲーム装置に送信し、他のゲーム装置からの指示に基づいて、プレイヤーに提供すべき映像を再生し、ゲーム装置が親機である場合、進行部は、プレイヤーからの操作入力と、他のゲーム装置から送信された操作入力と、に基づいて、プレイヤーに提供すべき映像を決定し、決定された映像を再生し、決定された映像を再生すべき旨の指示を、他のゲーム装置に送信し、判定部は、ゲーム装置が親機である場合にのみ、ゲーム情報の更新が必要であるか否かを判定するように構成することができる。
【００５８】
本発明は、アドホック通信やインターネットを介したピアツーピア通信を用いて２台のゲーム装置が通信している場合に好適である。
【００５９】
上述のように、本発明では、親機が更新の必要性を判定し、２台のゲーム装置のうち、いずれが差分情報を取得するか、を決定する。したがって、差分情報の取得そのものを親機と子機のいずれが行うか、は、固定されておらず、状況に応じて変化する。
【００６０】
本発明は、上記発明の好適実施形態に係るもので、２台のゲーム装置の親機と子機を区別することによって、更新の必要性の判定や差分情報を取得する側の決定が重複しないようにすることができる。
【００６１】
また、本発明のゲーム装置において、ゲーム装置に記憶されるゲーム情報のバージョンと、他のゲーム装置に記憶されるゲーム情報のバージョンと、が、異なる場合、新しいバージョンのゲーム情報を記憶する側が親機として機能し、古いバージョンのゲーム情報を記憶する側が子機として機能するように構成することができる。
【００６２】
本発明は、特に、通信ゲームの開始時にゲーム情報の更新が必要か否かを調べる場合に好適である。すなわち、新しいバージョンのゲーム情報を持つ側は、更新の必要性の判定や差分情報を取得する側の決定についても、より一層適切な判断ができると考えられるからである。
【００６３】
また、ゲーム進行に必要な計算処理は、新しいバージョンのゲーム情報を用いて親機で行われることになり、子機は親機に操作入力を伝え画像表示の指示をもらうだけであるから、直ちに更新をしなくて良い場合も多い。
【００６４】
本発明は、上記発明の好適実施形態に係るもので、２台のゲーム装置の親機と子機を区別することによって、更新の必要性の判定や差分情報を取得する側の決定において、適切に判断することができるようになる。
【００６５】
また、本発明のゲーム装置において、情報提供装置と、親機と、子機と、は、通信ネットワークを形成する木構造のノードとして機能し、当該通信ネットワークにおいて、情報提供装置は、親機の親ノードであり、親機は、子機の親ノードであるように構成することができる。
【００６６】
本発明は、上記発明の好適実施形態に係るもので、木構造に沿って根ノードから中間ノードを経由して葉ノードへゲームの情報が伝達される場合等に好適である。
【００６７】
本発明によれば、親機と子機を適切に決定することができるようになる。
【００６８】
また、本発明のゲーム装置において、判定部は、記憶部に記憶されるゲーム情報のバージョン情報と、他のゲーム装置に記憶されるゲーム情報のバージョン情報と、を比較して、両者が異なる場合、ゲーム情報の更新が必要である、と判定するように構成することができる。
【００６９】
すなわち、本発明では、２つのゲーム装置のゲーム情報が同じバージョン情報であれば、たとえ両者が最新のバージョンでなくとも、ゲーム情報の更新は不要である、と判定するのである。
【００７０】
本発明によれば、ゲーム情報のバージョンに差がある場合にのみ、ゲーム情報の最新版への更新が行われるため、更新情報を取得するために情報提供装置へアクセスが集中してしまうような事態をできるだけ抑制することができるようになる。
【００７１】
本発明のその他の観点に係るゲーム制御方法は、プレイヤーに通信ゲームを提供するゲーム装置が実行し、当該ゲーム装置は、記憶部、進行部、判定部、決定部、依頼部、更新部、提供部を備え、当該ゲーム制御方法は、進行工程、判定工程、決定工程、依頼工程、更新工程、提供工程を備え、以下のように構成する。
【００７２】
すなわち、記憶部には、通信ゲームに必要なプログラムもしくはデータを含むゲーム情報が記憶される。
【００７３】
一方、進行工程では、進行部が、他のゲーム装置との通信を確立し、記憶されたゲーム情報に基づいて、通信ゲームを進行させる。
【００７４】
さらに、判定工程では、判定部が、ゲーム情報の更新が必要であるか否かを定期的もしくは不定期に判定する。
【００７５】
そして、ゲーム情報の更新が必要であると判定されると、決定工程では、決定部が、当該更新に係る差分情報の取得を自身で行うか、他のゲーム装置に行わせるか、を決定する。
【００７６】
一方、更新に係る差分情報の取得を他のゲーム装置に行わせると決定されると、依頼工程では、依頼部が、当該他のゲーム装置に記憶部に記憶されるゲーム情報のバージョンを指定して、当該差分情報の生成を依頼する。
【００７７】
さらに、更新に係る差分情報の取得を自身で行うと決定され、もしくは、他のゲーム装置から差分情報の生成が依頼されると、更新工程では、更新部が、所定の情報提供装置へ、記憶部に記憶されるゲーム情報のバージョンを指定して、当該情報提供装置から最新のゲーム情報との差分情報を取得し、当該差分情報に基づいて、記憶部に記憶されるゲーム情報を更新する。
【００７８】
そして、他のゲーム装置から差分情報の生成が依頼され、記憶部に記憶されるゲーム情報が最新のゲーム情報に更新されると、提供工程では、提供部が、依頼に指定されたゲーム情報のバージョンから、記憶部に記憶されるゲーム情報との差分情報を生成して、当該他のゲーム装置へ当該差分情報を提供する。
【００７９】
一方、更新工程では、更新に係る差分情報の取得を他のゲーム装置に行わせると決定され、他のゲーム装置から差分情報が提供されると、当該差分情報に基づいて、記憶部に記憶されるゲーム情報を更新する。
【００８０】
本発明のその他の観点に係るプログラムは、コンピュータを、上記のゲーム装置の各部として機能させるように構成する。
【００８１】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【００８２】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００８３】
本発明によれば、ゲーム装置に記憶されるプログラムやデータ等のゲーム情報を、通信ゲームの対戦相手と協調して適切に更新するのに好適なゲーム装置、ゲーム制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【００８４】
【図１】典型的な情報処理装置の概要構成を示す模式図である。
【図２】本実施形態に係るゲーム装置の通信の態様の一つを示す説明図である。
【図３】本実施形態に係るゲーム装置の通信の態様の一つを示す説明図である。
【図４】本実施形態に係るゲーム装置の通信の態様の一つを示す説明図である。
【図５】本実施形態に係るゲーム装置の概要構成を示す説明図である。
【図６】本実施形態に係るゲーム装置において実行されるゲーム制御処理の流れを示すフローチャートである。
【図７】本実施形態に係るゲーム装置において実行されるゲーム制御処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００８５】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。
【００８６】
したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【００８７】
（情報処理装置）
図１は、プログラムを実行することにより、本実施形態のゲーム装置として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００８８】
本図に示す情報処理装置１０１は、携帯可能なマルチメディア端末であり、ＣＰＵ（Central Processing Unit）１０２、ＲＡＭ（Random Access Memory）１０３、ＲＯＭ（Read Only Memory）１０４、入力装置１０５、画像処理部１０６、液晶ディスプレイ１０７、音声処理部１０８、ヘッドホン１０９、カセットリーダ１１０、ＲＯＭカセット１１１、外部メモリ１１２、ＲＴＣ（Real Time Clock）１１３、無線ＬＡＮ（Local Area Network）インターフェース１１４、カメラ１１５を備える。
【００８９】
本実施形態に係るプログラムが記録されたＲＯＭカセット１１１を、情報処理装置１０１に装着することによって、本実施形態に係るゲーム装置が実現される。
【００９０】
ここで、ＣＰＵ  １０２は、情報処理装置１０１の各部を制御するとともに、各種の演算処理や判断処理を行う。
【００９１】
情報処理装置１０１に電源が投入されると、ＣＰＵ  １０２は、ＲＯＭ  １０４に記録されたＩＰＬ（Initial Program Loader）を実行し、その処理の過程で、カセットリーダ１１０を介して接続されたＲＯＭカセット１１１に記録されたプログラムに処理を移行する。
【００９２】
情報処理装置１０１で実行されるゲームプログラムやマルチメディア情報再生プログラムは、ＲＯＭカセット１１１によって提供されるのが一般的であるが、ＲＯＭ  １０４内にあらかじめ用意しておくことも可能である。
【００９３】
また、ＲＯＭ  １０４内には、ＢＩＯＳ（Basic Input Output System）と呼ばれるプログラム群が用意されており、入力装置１０５や画像処理部１０６、音声処理部１０８の制御を行うことができる。
【００９４】
ＲＡＭ  １０３は、一時的な情報を記憶するための領域であり、外部メモリ１１２は、不揮発な情報を記憶するための領域である。外部メモリ１１２としては、ハードディスクなど、主として情報処理装置１０１に内蔵されるもののほか、各種のメモリカードなど、情報処理装置１０１に抜挿されるものを利用しても良い。
【００９５】
入力装置１０５は、各種のボタンやキーボード、マウス、ジョイスティック等により実現されるのが一般的であるが、液晶ディスプレイ１０７と一体に形成されたタッチスクリーンを入力装置１０５として利用することも可能である。
【００９６】
画像処理部１０６は、ＣＰＵ  １０２の制御の下、各種の文字情報や画像情報を液晶ディスプレイ１０７に表示させるものであり、一般には、垂直同期割込周期（典型的には、３０分の１秒や６０分の１秒程度である。）ごとに、ＲＡＭ  １０３内に用意されたフレームバッファに記憶された画素情報を液晶ディスプレイ１０７の各画素に反映させる。
【００９７】
ユーザからの指示入力は、液晶ディスプレイ１０７に表示されたカーソルを入力装置１０５の移動ボタン操作により移動して、所望のメニュー項目にカーソルを合わせ、決定ボタン操作によって当該メニュー項目を選択するのが一般的であるが、タッチスクリーンを利用する場合にはカーソルは不要である。また、入力装置１０５の各ボタンに割り当てられる機能があらかじめ決まっている場合には、液晶ディスプレイ１０７に対する表示は、必ずしも必要ない。
【００９８】
音声処理部１０８は、ＲＡＭ  １０３やＲＯＭ  １０４、ＲＯＭカセット１１１、外部メモリ１１２に用意された音声データをヘッドホン１０９に出力する。音声データとしては、音声の波形データをディジタル化したＰＣＭ（Pulse Code Modulation）データや、ＰＣＭデータを圧縮してサイズを小さくしたＭＰ３（MPeg audio layer-3）データ等を利用することが可能であるほか、ＭＩＤＩ（Music Instruction Data Interface）データのように、音高、音長、音量、音色の種類を定義するデータを用意し、これにしたがって、あらかじめ用意された音源波形データを適宜選択・変形して再生する手法を採用しても良い。
【００９９】
ＲＴＣ  １１３は、現在の日時を計測するもので、情報処理装置１０１を初めて利用する際に時刻合わせを行うのが一般的であるが、無線ＬＡＮインターフェース１１４を介してＮＴＰ（Network Time Protocol）サーバに接続することで、自動的に時刻合わせを行うような態様を採用することも可能である。
【０１００】
また、アラーム割込を発生させる機能を持つＲＴＣ  １１３もある。設定された時刻になるとアラーム割込が発生して、ＣＰＵ  １０２は、現在実行中のプログラムを一時中断し、あらかじめ設定された割込ハンドラを実行してから、中断したプログラムを再開する。
【０１０１】
無線ＬＡＮインターフェース１１４は、自宅や会社、街角に用意された無線ＬＡＮアクセスポイントを介してインターネットに接続したり、近傍に配置された他の情報処理装置１０１と、アドホックに通信路を確立し、１対１で通信を行うなどが可能である。
【０１０２】
カメラ１１５は、情報処理装置１０１によってディジタルカメラの機能を実現するものであり、ＣＣＤ（Charge Coupled Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）撮像素子などの技術を適用することが可能である。撮影された画像は、一時的にＲＡＭ  １０３に展開された後、外部メモリ１１２等に保存される。
【０１０３】
このほか、ビジネス用コンピュータ、携帯電話、ＰＤＡ（Personal Data Assistant）、携帯ゲーム装置、多機能テレビジョン装置、ＤＶＤ（Digital Versatile Disc）プレイヤー、携帯音楽プレイヤーなどを、本発明のゲーム装置が実現される情報処理装置として採用することもできる。
【０１０４】
（通信の形態）
本実施形態に係るゲーム装置は、２台が相互に通信可能に接続して、通信ゲームを進める。以下では、その通信の形態について説明する。
【０１０５】
図２は、本実施形態に係るゲーム装置の通信の態様の一つを示す説明図である。以下、本図を参照して説明する。
【０１０６】
本図に示す２つのゲーム装置２０１は、いわゆるアドホック通信により、相互に通信し合う。ゲーム装置２０１に電源が投入され、近傍の他のゲーム装置２０１を検索する旨がプレイヤーから指示等されると、以下のような処理を繰り返す。
【０１０７】
すなわち、ゲーム装置２０１は、アドホック通信用のビーコン信号の受信を一定の時間試行し、受信できれば、その旨をビーコン信号送信側のゲーム装置２０１に通知することによって、アドホック通信が確立する。一方、受信できなければ、アドホック通信用のビーコン信号を送信し、他のゲーム装置２０１から、当該ビーコン信号を受信した旨の通知が到着するのを、一定期間待機する。
【０１０８】
このようにしてアドホック通信が確立される場合、ビーコン信号を送信した側のゲーム装置２０１が親機となり、このビーコン信号を検知した旨を親機に通知した側のゲーム装置２０１が子機となる。
【０１０９】
なお、プレイヤーの指示に基づいて、親機として機能するか、子機として機能するかを指定する態様を採用しても良い。この場合、親機に指定されたゲーム装置２０１は、ビーコン信号の送信と通知の待機を行い、子機に指定されたゲーム装置２０１は、ビーコン信号の検知とその旨の通知を行うことになる。
【０１１０】
図３は、本実施形態に係るゲーム装置の通信の態様の一つを示す説明図である。以下、本図を参照して説明する。
【０１１１】
図３に示す２つのゲーム装置２０１は、インターネット２０３を介して通信し合うもので、いわゆるインフラストラクチャ通信を行う。この際に、ゲーム装置２０１は、まず、ロビーサーバ２０４に自身の存在を登録する。
【０１１２】
ロビーサーバ２０４は、通信相手を求めているゲーム装置２０１がある程度集まったら、適切な対戦相手を選択して、ゲーム装置２０１に紹介する。
【０１１３】
ゲーム装置２０１は、ロビーサーバ２０４から紹介されたゲーム装置２０１のＩＰ（Internet Protocol）アドレス等の情報に基づいてピアツーピア通信を開始することによって、通信を行う。
【０１１４】
この態様では、ゲーム装置２０１のいずれが親機となりいずれが子機となるかは、ロビーサーバ２０４の紹介の際に、ロビーサーバ２０４が定めることとしても良い。このほか、アドホック通信の場合と同様に、紹介の後の通信を開始するタイミングに基づいて、親機となるか子機となるかがランダムに定まるような態様を採用することもできる。
【０１１５】
図４は、本実施形態に係るゲーム装置の通信の態様を示す説明図である。以下、本図を参照して説明する。
【０１１６】
本図に示す複数のゲーム装置２０１は、インターネット（本図では図示せず。）を介して互いに通信し合う。これは、図３の場合と同様である。ただし、複数のゲーム装置２０１が、全体として、木構造をなしている点が異なる。
【０１１７】
このような木構造状のネットワークでは、根ノード４０１がロビーサーバ２０４に相当し、各ノードがゲーム装置２０１に相当する。ノード同士は、通信路を表すエッジ４０２によって連結されている。
【０１１８】
１つのエッジ４０２によって連結されている２つのゲーム装置２０１のうち、根ノード４０１に近い側を親ノード、遠い側を子ノードと呼ぶ。
【０１１９】
木構造の通信ネットワークを採用した場合、根ノード４０１から各エッジ４０２を介して順に、各ゲーム装置２０１に各種のゲームに関する情報が伝達される。このような態様を採用することで、根ノード４０１に対するアクセスの集中を防止するのである。
【０１２０】
また、ゲーム装置２０１同士は、特許文献２に開示されるような技術を用いて通信することも可能である。
【０１２１】
ここで、一般に、親機や親ノードは、以下のように、通信ゲームの主たる制御を行う。
【０１２２】
すなわち、親機や親ノードは、当該ゲーム装置２０１を利用するプレイヤーからの操作入力を受け付ける。
【０１２３】
また、子機や子ノードは、当該ゲーム装置２０１を利用するプレイヤーからの操作入力を受け付けて、これを親機や親ノードに送信する。
【０１２４】
すると、親機や親ノードは、これらの操作入力に基づいて、ゲームを進行させ、両プレイヤーに提示すべき情報を生成する。
【０１２５】
そして、親機や親ノードは、当該情報に基づいた画像を生成して画面に表示し、当該ゲーム装置２０１を利用するプレイヤーに提示する。
【０１２６】
また、親機や親ノードは、当該情報を子機や子ノードに送信する。
【０１２７】
すると、子機や子ノードは、当該情報に基づいた画像を生成して画面に表示し、当該ゲーム装置２０１を利用するプレイヤーに提示する。
【０１２８】
以下、混乱のない限り、親機と親ノードをまとめて「親機」と呼び、子機と子ノードをまとめて「子機」と呼ぶこととする。以下では、ゲーム装置２０１の概要構成について、さらに説明する。
【０１２９】
（ゲーム装置）
図５は、本実施形態に係るゲーム装置２０１の概要構成を示す説明図である。
【０１３０】
以下、本図を参照して、各部の機能と、当該機能が情報処理装置１０１のいずれの要素によって実現されるかについて、簡単に説明する。
【０１３１】
本実施形態に係るゲーム装置２０１は、同じ構成を有する２台が対となって、通信ゲームを行う。ゲーム装置２０１は、記憶部５０１、進行部５０２、判定部５０３、決定部５０４、依頼部５０５、更新部５０６、提供部５０７を備える。
【０１３２】
ここで、記憶部５０１には、通信ゲームに必要なプログラムもしくはデータを含むゲーム情報が記憶される。
【０１３３】
本実施形態では、記憶部５０１は、外部メモリ１１２によって実現される。ＣＰＵ  １０２がＲＯＭカセット１１１に記録されたプログラムを実行するが、必要に応じて、外部メモリ１１２に記録されているプログラムやデータがＲＡＭ  １０３に読み出される。そして、ＣＰＵ  １０２はＲＡＭ  １０３に読み出されたプログラムを実行したり、データを処理したりして、通信ゲームを進行させる。
【０１３４】
ゲーム情報は、典型的には、通信ゲームを実現するためのプログラムそのものやそのプログラムで利用されるライブラリのコード断片、通信ゲームに登場するキャラクターの各種パラメータ、通信ゲームのシナリオが進行する際に表示・出力等される画像情報、音声情報、文字情報などである。
【０１３５】
これらの情報は、外部メモリ１１２やＥＥＰＲＯＭやハードディスク等の不揮発性記憶装置や、バッテリバックアップ機能が用意されたＲＡＭ等により実現される。このため、ゲーム情報は、ゲーム装置２０１本体の電源が切られても、消去されず、そのまま維持される。
【０１３６】
一方、進行部５０２は、他のゲーム装置２０１との通信を確立し、記憶されたゲーム情報に基づいて、通信ゲームを進行させる。
【０１３７】
進行部５０２は、ＣＰＵ  １０２が無線ＬＡＮインターフェース１１４やＲＡＭ  １０３、外部メモリ１１２、入力装置１０５、画像処理部１０６、液晶ディスプレイ１０７、音声処理部１０８、ヘッドホン１０９等と共働することによって実現される。
【０１３８】
実際に進行部５０２が実行する処理は、通常の通信ゲームを実現する場合と同様であり、当該ゲーム装置２０１が親機か子機かによって、実行する処理は異なるが、その処理の中で、上記のゲーム情報を参照する。
【０１３９】
ゲーム情報がプログラムの場合には、ゲーム装置２０１のＣＰＵ  １０２が、当該プログラムを実行することにより、進行部５０２が実現される。ゲーム情報が各種のデータである場合には、進行部５０２が処理を進める際に、適宜当該データが参照される。
【０１４０】
さらに、判定部５０３は、ゲーム情報の更新が必要であるか否かを定期的もしくは不定期に判定する。
【０１４１】
判定部５０３は、ＣＰＵ  １０２が外部メモリ１１２や無線ＬＡＮインターフェース１１４等と共働することによって実現され、これが判定を行うタイミングや判定の基準は、後述するように、種々の態様が可能である。
【０１４２】
たとえば、電源投入時や、プレイヤーからの指示入力にかかわらず所定の処理を続行する期間などが、判定を行うタイミングとして採用できる。また、判定基準としては、当該ゲーム装置２０１と他のゲーム装置２０１とで、ゲーム情報のバージョンが異なるか否かを採用するのが典型的である。
【０１４３】
また、２台のゲーム装置２０１が、通信ゲームを行っている場合に、いずれのゲーム装置２０１がこの判定を行うか、についても、種々の態様があるが、典型的には、親機が判定を行うのが一般的である。
【０１４４】
そして、決定部５０４は、ゲーム情報の更新が必要であると判定されると、当該更新に係る差分情報の取得を自身で行うか、他のゲーム装置２０１に行わせるか、を決定する。
【０１４５】
決定部５０４は、ＣＰＵ  １０２によって実現され、これが決定の際に用いる基準については、種々の態様が考えられる。たとえば、常に親機が行うとする手法、常に子機が行うとする手法、親機と子機のいずれかをランダムに選択する手法、親機と子機の計算負荷や通信状態を考慮する手法等である。
【０１４６】
さらに、依頼部５０５は、更新に係る差分情報の取得を他のゲーム装置２０１に行わせると決定されると、当該他のゲーム装置２０１に対して、記憶部５０１に記憶されるゲーム情報のバージョンを指定して、当該差分情報の生成を依頼する。
【０１４７】
すなわち、依頼部５０５は、ＣＰＵ  １０２が、無線ＬＡＮインターフェース１１４等と共働することによって実現され、差分情報の取得を行わない側のゲーム装置２０１において、依頼部５０５が動作する。この依頼には、通信ゲームの進行の際に利用されるのと同じ通信経路が利用される。また、依頼には、自身が現在持っているゲーム情報のバージョン番号等が指定される。
【０１４８】
一方、更新部５０６は、更新に係る差分情報の取得を自身で行うと決定され、もしくは、他のゲーム装置２０１から差分情報の生成が依頼されると、所定の情報提供装置へ、記憶部５０１に記憶されるゲーム情報のバージョンを指定して、当該情報提供装置から最新のゲーム情報との差分情報を取得し、当該差分情報に基づいて、記憶部５０１に記憶されるゲーム情報を更新する。
【０１４９】
すなわち、差分情報の取得を行う側のゲーム装置２０１において、更新部５０６が上記の処理を実行する。したがって、更新部５０６は、ＣＰＵ  １０２が、無線ＬＡＮインターフェース１１４や外部メモリ１１２、ＲＡＭ  １０３と共働することによって実現される。
【０１５０】
ここで、所定の情報提供装置としては、ロビーサーバ２０４や、木構造における親機の親ノードとするのが典型的であり、これらの基本構成は、上記の情報処理装置１０１と同様とすることができる。
【０１５１】
さらに、提供部５０７は、他のゲーム装置２０１から差分情報の生成が依頼され、記憶部５０１に記憶されるゲーム情報が最新のゲーム情報に更新されると、依頼に指定されたゲーム情報のバージョンから、記憶部５０１に記憶されるゲーム情報との差分情報を生成して、当該他のゲーム装置２０１へ当該差分情報を提供する。
【０１５２】
すなわち、差分情報の取得を行う側のゲーム装置２０１において、提供部５０７が動作し、ＣＰＵ  １０２が、無線ＬＡＮインターフェース１１４や外部メモリ１１２、ＲＡＭ  １０３と共働することによって実現される。この提供には、通信ゲームの進行の際に利用されるのと同じ通信経路が利用される。
【０１５３】
提供部５０７は、提供の際の通信量を減らすため、依頼に指定されたバージョン情報と、最新版のバージョン情報と、を対比することで、相手方の更新に必要なゲーム情報の差分のみを抽出することとしている。
【０１５４】
そして、更新部５０６は、更新に係る差分情報の取得を他のゲーム装置２０１に行わせると決定され、他のゲーム装置２０１から差分情報が提供されると、当該差分情報に基づいて、記憶部５０１に記憶されるゲーム情報を更新する。
【０１５５】
すなわち、差分情報の取得を行わない側のゲーム装置２０１において、更新部５０６が上記の処理を実行する。
【０１５６】
以下では、記憶部５０１に記憶されるゲーム情報の態様について説明する。
【０１５７】
本実施形態に係るゲーム情報は、複数の断片情報の集合体である。各断片情報は、ファイルにより管理され、ファイルごとにバージョンアップがなされる。各ファイルは、以下のような情報からなる。
（ａ）断片情報本体。プログラムやライブラリであれば、それらのコードを表すバイナリデータであり、データであれば、そのデータを表すバイナリデータである。
（ｂ）当該断片情報が作成された作成日時。いわゆるバージョン情報に相当する。
【０１５８】
このほか、断片情報や作成日時を合わせたバイナリデータのチェックサムやＣＲＣ（Cyclic Redundancy Check）、ＭＤ５（Message Digest algorithm 5）値などを含めることとして、ファイルの内容が壊れていないことを確認できるようにしても良い。
【０１５９】
また、巨大なデータなどは、複数のファイルに分割することによって、バージョンアップ時における差分情報の大きさを減らすことも可能である。
【０１６０】
また、ゲーム情報全体には、当該ゲーム装置２０１に記憶されているゲーム情報の最新版が確認された確認日時が対応付けられて、記憶部５０１に記憶される。
【０１６１】
ここで、確認日時は、ゲーム装置２０１のＲＴＣ  １１３によるものではなく、ロビーサーバ２０４等によって指定された値が、伝搬していくものである。確認日時は、ロビーサーバ２０４等への問い合わせによって更新がなされた場合には、更新がなされた日時であり、この日時は、ロビーサーバ２０４等により指定される。
【０１６２】
このような構成を採用すると、ある断片情報の内容は、その作成日時から確認日時までの間は、変更がなされていないことになる。また、作成日時も確認日時もロビーサーバ２０４等によって設定される情報であるので、各種の改造行為を抑制することが可能となる。
【０１６３】
以下では、ゲーム装置２０１において実行されるゲーム制御処理の流れについて、詳細に説明する。
【０１６４】
なお、本実施形態では、通信ゲームの開始時に、ゲーム情報の更新の必要性を判定することとしているが、その他のタイミングで更新を行う態様については、実施例２以降で説明する。
【０１６５】
図６、図７は、ゲーム装置２０１において実行されるゲーム制御処理の流れを示すフローチャートである。以下、本図を参照して説明する。
【０１６６】
本処理は、ＣＰＵ  １０２が、ＲＯＭカセット１１１に記録されたプログラムを実行することによって開始される。本処理が一旦開始された後は、必要に応じて、外部メモリ１１２にゲーム情報として記録されているプログラムをＲＡＭ  １０３に動的にロードして実行することによって、処理が進められる。
【０１６７】
本処理が開始されると、ＣＰＵ  １０２は、まず、各種の初期化を行う（ステップＳ６０１）。この初期化では、通信ゲームに登場するキャラクターの各種のパラメータや、キャラクターが配置される仮想世界の設定等が定められる。
【０１６８】
ついで、ＣＰＵ  １０２は、無線ＬＡＮインターフェース１１４を起動して、近傍に配置された他のゲーム装置２０１とのアドホック通信の確立を、前述のように試行する（ステップＳ６０２）。
【０１６９】
ステップＳ６０２の試行の結果、アドホック通信が確立した場合（ステップＳ６０３；Ｙｅｓ）ＣＰＵ  １０２は、外部メモリ１１２に記録されたゲーム情報の確認日時、ならびに、各ファイルの作成日時を指定するバージョン情報を、無線ＬＡＮインターフェース１１４を介して相手のゲーム装置２０１に送信し（ステップＳ６０４）、相手のゲーム装置２０１が送信したバージョン情報を受信する（ステップＳ６０５）。
【０１７０】
そして、自身のバージョン情報と、相手のバージョン情報を比較する（ステップＳ６０６）。本実施形態では、２つのゲーム装置２０１において、各ファイルの作成日時は、以下のいずれかとなる。
（ａ）全ファイルの作成日時が、互いに等しい。
（ｂ）全ファイルの作成日時のうち、一方が他方より新しいものはあるが、その逆はない。
【０１７１】
上記（ａ）の場合（ステップＳ６０６；同）、ＣＰＵ  １０２は、アドホック通信の確立の際の状況に応じて、自身を親機とするか子機とするかを既定の条件に基づいて設定する（ステップＳ６０７）。すなわち、前述の通り、ビーコン信号を送信した側が親機となり、ビーコン信号を検知した側が子機となる。
【０１７２】
ついで、ＣＰＵ  １０２は、外部メモリ１１２に記録されている確認日時と、受信したバージョン情報に指定されている確認日時と、のうち、新しい方を、外部メモリ１１２に記録して（ステップＳ６０８）、ステップＳ６５１に進む。
【０１７３】
この処理によって、２つのゲーム装置２０１のバージョン情報は、完全に一致することになる。
【０１７４】
一方、上記（ｂ）で、自身が新しい作成日時のファイルを持っている場合（ステップＳ６０６；新）、ＣＰＵ  １０２は、自身を親機に設定する（ステップＳ６１０）。
【０１７５】
そして、ＣＰＵ  １０２は、当該新しい作成日時のファイルを外部メモリ１１２から読み出して、無線ＬＡＮインターフェース１１４を介して相手のゲーム装置２０１に送信し（ステップＳ６１１）、ステップＳ６０８に進む。なお、この際には、外部メモリ１１２に記憶されている確認日時とファイルを一体にして、「差分情報」として送信するのが典型的である。
【０１７６】
このようにすると、差分情報を受信してステップＳ６０８に至った場合には、受信された差分情報に指定されている確認日時で外部メモリ１１２を更新すれば良いし、差分情報を送信する側である場合には、確認日時の書き込みは不要となる。
【０１７７】
一方、上記（ｂ）で、自身が新しい作成日時のファイルを持っていない場合（ステップＳ６０６；旧）、ＣＰＵ  １０２は、自身を子機に設定する（ステップＳ６１２）。
【０１７８】
そして、ＣＰＵ  １０２は、親機のゲーム装置２０１から送信されたファイルを、無線ＬＡＮインターフェース１１４を介して受信して（ステップＳ６１３）、当該ファイルの中身をその作成日時とともに外部メモリ１１２に上書き保存し（ステップＳ６１４）、ステップＳ６０８に進む。
【０１７９】
このように、ステップＳ６１０〜ステップＳ６１４の処理によって、ゲーム情報の差分として必要最小限のファイルのみが送受され、できるだけ短時間で両ゲーム装置２０１のゲーム情報のバージョンを揃えることができるようになるのである。
【０１８０】
なお、本実施形態では、アドホック通信が確立した状況では、２つのゲーム装置２０１の間でゲーム情報のバージョンを揃えるのみであり、ロビーサーバ２０４等への最新バージョンの問い合わせ等は行わない。これにより、アクセスの集中を抑制することができる。
【０１８１】
一方、ステップＳ６０２の試行の結果、アドホック通信が確立しなかった場合（ステップＳ６０３；Ｎｏ）、ゲーム装置２０１のＣＰＵ  １０２は、無線ＬＡＮインターフェース１１４を介してインフラストラクチャ通信により所定のロビーサーバ２０４に接続し、対戦相手の紹介を求める（ステップＳ６２１）。
【０１８２】
すると、ロビーサーバ２０４は、対戦相手のＩＰアドレス等の情報のほか、ゲーム情報をダウンロードする際に利用すべき情報提供装置のＩＰアドレス等の情報を、ゲーム装置２０１に対して紹介する。木構造状の通信ネットワークを採用する場合には、上位のノードを情報提供装置として指定するのが典型的である。
【０１８３】
そこで、ＣＰＵ  １０２は、ロビーサーバ２０４から送信された紹介を、無線ＬＡＮインターフェース１１４を介して受信し（ステップＳ６２２）、対戦相手とのインフラストラクチャ通信による通信を確立する（ステップＳ６２３）。
【０１８４】
通信が確立したら、ＣＰＵ  １０２は、ステップＳ６０４〜Ｓ６０６と同様に、バージョン情報の送信（ステップＳ６２４）と受信（ステップＳ６２５）を行い、バージョン情報を比較する（ステップＳ６２６）。
【０１８５】
そして、全ファイルの作成日時が、互いに等しい場合（ステップＳ６２６；同）、ＣＰＵ  １０２は、ロビーサーバ２０４から受信した紹介に指定される順序等、既定の手法に基づいて、自身を親機とするか子機とするかを設定する（ステップＳ６２７）。
【０１８６】
なお、木構造状の通信ネットワークを採用する場合には、子機に設定されたゲーム装置２０１は、親機を親ノードとし、親機に設定されたゲーム装置２０１は、紹介に指定された情報提供装置を親ノードとすることになる。
【０１８７】
ついで、ＣＰＵ  １０２は、外部メモリ１１２に記録されている確認日時と、受信したバージョン情報に指定されている確認日時と、のうち、新しい方を、外部メモリ１１２に記録して（ステップＳ６２８）、ステップＳ６５１に進む。
【０１８８】
この処理によって、２つのゲーム装置２０１のバージョン情報は、完全に一致することになる。
【０１８９】
一方、自身が新しい作成日時のファイルを持っている場合（ステップＳ６２６；新）、ＣＰＵ  １０２は、自身を親機に設定する（ステップＳ６３０）。
【０１９０】
さらに、ＣＰＵ  １０２は、外部メモリ１１２に記録されている確認日時と、受信したバージョン情報に指定されている確認日時と、のうち、新しい方を選択し（ステップＳ６３１）、当該選択された日時と、ＲＴＣ  １１３から得られる現在の日時との差が所定の閾期間より短いか否かを調べる（ステップＳ６３２）。
【０１９１】
短い場合（ステップＳ６３２；短）、自身が保持しているゲーム情報は最新である可能性が高いと判断されるので、新しい作成日時のファイルを外部メモリ１１２から読み出して、無線ＬＡＮインターフェース１１４を介して相手のゲーム装置２０１に送信し（ステップＳ６３３）、ステップＳ６２８に進む。
【０１９２】
この際にも、確認日時をともに送信して、全体として「差分情報」としても良い。この場合、ステップＳ６２８では、差分情報の送信側の場合には、確認日時の上書きは不要となるし、差分情報の受信側では、受信された差分情報に含まれる確認日時で、外部メモリ１１２を更新すれば良いことになる。
【０１９３】
一方、選択された確認日時と、現在の日時と、が一定以上離れている場合、すなわち、両者の差がある程度長い場合（ステップＳ６３２；長）、ＣＰＵ  １０２は、自身のバージョン情報を、情報提供装置に送信する（ステップＳ６３４）。
【０１９４】
すると、情報提供装置は、ステップＳ６１１と同様に、新しい作成日時のファイルが存在すれば、それを送信してくる。また、情報提供装置は、当該情報提供装置が有しているゲーム情報の確認日時も合わせて送信してくる。これらは、親機として機能するゲーム装置２０１のゲーム情報を更新するための差分情報に相当する。
【０１９５】
ここで、情報提供装置がロビーサーバ２０４等である場合には、確認日時は、当該情報提供装置が有するＲＴＣにより得られる現在の日時を使用するが、他のゲーム装置２０１が情報提供装置として機能する場合には、そのゲーム装置２０１が差分情報を得た場合に付随していた確認日時を使用する。
【０１９６】
このような態様を採用することにより、確認日時は、『通信ゲームの運営者が「ゲーム装置２０１に記憶されているゲーム情報が最新である」と、確認した日時』を表すことになる。
【０１９７】
そして、ＣＰＵ  １０２は、無線ＬＡＮインターフェース１１４を介して、情報提供装置から送信された差分情報を受信する（ステップＳ６３５）。
【０１９８】
そして、ＣＰＵ  １０２は、差分情報に指定されているファイルの中身をその作成日時とともに外部メモリ１１２に上書き保存する（ステップＳ６３６）。
【０１９９】
さらに、ＣＰＵ  １０２は、受信した差分情報に指定されている確認日時を外部メモリ１１２に上書き記録する（ステップＳ６３７）。
【０２００】
さらに、ＣＰＵ  １０２は、子機のバージョン情報を参照して、外部メモリ１１２に記録されているファイルのうち、作成日時が新しいファイルと、最新の確認日時と、を、差分情報として子機に送信し（ステップＳ６３８）、ステップＳ６５１に進む。
【０２０１】
一方、自身が新しい作成日時のファイルを持っていない場合（ステップＳ６２６；旧）、ＣＰＵ  １０２は、自身を子機に設定する（ステップＳ６３９）。
【０２０２】
そして、ＣＰＵ  １０２は、無線ＬＡＮインターフェース１１４を介して、親機から送信された差分情報を受信し（ステップＳ６４０）、当該ファイルの中身をその作成日時とともに外部メモリ１１２に上書き保存し（ステップＳ６４１）、差分情報に指定される確認日時を外部メモリ１１２に書き込んで（ステップＳ６４２）、ステップＳ６５１に進む。
【０２０３】
これらの処理によって、ゲーム情報の更新のためのアクセスが集中することを防止するとともに、必要最小限のファイルのみが送受され、できるだけ短時間で両ゲーム装置２０１のゲーム情報のバージョンを揃えることができるようになるのである。
【０２０４】
さらに、確認日時の情報は、当該ゲーム情報を提供しているロビーサーバ２０４等から伝搬してくるものであり、ゲーム装置２０１のＲＴＣ  １１３に依存するものではない。このため、ＲＴＣ  １１３が現実の時刻とずれている場合であっても、ゲーム情報そのものの信頼性が損われることはない。
【０２０５】
このように、確認日時の情報を用いることで、ゲーム装置２０１は、適切なタイミングでゲーム情報のバージョンの更新ができるようになる。
【０２０６】
また、上記のように、バージョン情報を相互に交換することにより、古いバージョンを持っている側のゲーム装置２０１は、新しいバージョンを持っている側のゲーム装置２０１に、差分情報の取得を依頼していることになる。
【０２０７】
さて、このようにして、ゲーム装置２０１同士でゲーム情報のバージョンが揃ったら、通信ゲームが開始され、通信ゲームが進行されることになる（ステップＳ６５１）。ＣＰＵ  １０２は、適宜外部メモリ１１２に記憶されたゲーム情報を参照しながら、通信ゲームを進行させる。
【０２０８】
通信ゲームの進行においては、上記のように、以下の処理が繰り返される。
【０２０９】
すなわち、子機は、プレイヤーからの操作入力を受け付けてこれに基づいて親機に操作情報を親機に送信する。親機は、自身のプレイヤーからの操作入力と子機から送信された操作情報を参照して、ゲームの状態を更新し、自身のプレイヤーにゲーム状態を提示するとともに、画面表示に必要な情報を子機に伝達する。子機は、この情報を受信して、自身のプレイヤーにゲーム状態を提示する。
【０２１０】
なお、操作情報として送信される情報は、プレイヤーからの操作入力そのものであっても良いが、子機側では子機側のプレイヤーのキャラクターの位置移動などを行う態様を採用した場合には、位置移動後の子機側キャラクターの位置や入力された各種コマンドなどを操作情報としても良い。
【０２１１】
また、ゲーム状態として送信される情報には、各キャラクターの位置や各種のパラメータなどが含まれる。親機と子機は、これらの情報を参照して、同じ仮想世界を画面に表示することになる。
【０２１２】
このように、本実施形態によれば、通信ゲームの対戦相手と、ゲーム情報のバージョンを揃えることができるとともに、ゲーム情報を提供する情報提供装置へのアクセスをできるだけ抑制することができるようになる。
【実施例２】
【０２１３】
上記実施形態では、通信ゲームを開始する前に、ゲーム情報のバージョンを揃える処理を行っていたが、ゲーム情報に下位互換性がある場合には、必ずしもバージョンを揃える必要はない。また、ゲーム開始時にゲーム情報の更新で時間をとられると、プレイヤーの興味をそぐことになる場合もある。
【０２１４】
そこで、本実施形態では、通信ゲームを行っている最中にゲーム情報の更新を行うこととする。
【０２１５】
ここで、ゲーム情報の更新を行う際にプレイヤーを待たせないタイミングとして、ムービーやアニメーションの表示がなされている時間が考えられる。
【０２１６】
たとえば、複数のステージからなる通信ゲームにおいては、ゲームのステージがクリアされるごとに、次のステージへとストーリーを繋ぐためのムービーが再生されることが多い。
【０２１７】
また、あるステージにおいて最も強力な敵キャラクターであるボスキャラクターを倒した場合には、そのボスキャラクターが倒れていくさまを表すアニメーションが画面表示される場合もある。
【０２１８】
このような表示がされている間は、プレイヤーからの操作入力があっても当該操作入力を無視することとし、プレイヤーがムービーやアニメーションを見ている間に、裏側の処理として、ゲーム情報のバージョンを更新する必要があるか否かを調査するのである。
【０２１９】
バージョン情報の送受、比較、差分情報の送受は、上記実施形態と同様に行われる。また、両ゲーム装置２０１がインフラストラクチャ通信を行っている場合には、情報提供装置への問い合わせ等も上記実施形態と同様に行うこととする。
【０２２０】
また、両者が同じバージョンのゲーム情報を持っている場合であっても、確認日時が古い場合や、何回かムービーを見た後には、情報提供装置への問い合わせを行って、差分情報の送受をし、ゲーム情報を最新版に更新することとしても良い。
【０２２１】
本実施形態によれば、プレイヤーがムービーやアニメーションを見ている間に、ゲーム情報の更新を行うことができるので、プレイヤーが更新を待つような情報をできるだけ避けることができるようになる。
【０２２２】
なお、実施例１、実施例２とも、更新の必要性を判断するタイミングは、不定期となるが、確認日時から一定の期間が経過してから更新の必要性を判定することとすれば、判定は、ほぼ定期的に行われることとなる。
【実施例３】
【０２２３】
上記実施形態では、新しいバージョンのゲーム情報を持っている側のゲーム装置２０１を親機として、親機が情報提供装置に問い合わせを行い、子機は親機から差分情報をもらう形態を採用していた。また、同じバージョンのゲーム情報を持っている場合には、実質的にランダムに親機と子機が決定されていた。
【０２２４】
本実施形態は、実施例２に類似するもので、通信ゲームを実行している間の各ゲーム装置２０１の計算負荷や情報提供装置との間の通信性能に基づいて、差分情報の取得を行う側を決めるものである。
【０２２５】
本実施形態のゲーム装置２０１は、計算負荷、もしくは、情報提供装置との間の通信性能を計測して、その測定結果を交換する。
【０２２６】
計算負荷の測定手法としては、プレイヤーからの入力待ち、通信相手との間の通信待ち、あるいは、タイマ割込待ちなどの待機状態となっている期間と、ＣＰＵが計算処理を行っている期間との比を利用することができる。
【０２２７】
一方、通信性能については、両ゲーム装置２０１がロビーサーバ２０４から紹介を受けた際の通信速度の情報や、過去に情報提供装置に通信をした際の通信速度のログ情報等を利用することができる。
【０２２８】
そして、計算負荷が低い側、あるいは、通信性能が高い側のゲーム装置２０１が、情報提供装置からの差分情報の取得を行うものとする。
【０２２９】
たとえば、子機の方が計算負荷や通信負荷が低いと判定された場合には、子機が差分情報の取得を行い、これを親機に伝達する。逆に、親機の方が計算負荷や通信負荷が低いと判定された場合には、親機が差分情報の取得を行い、これを子機に伝達する。このようにして、両ゲーム装置２０１のゲーム装置のバージョンが揃うことになる。
【０２３０】
両ゲーム装置２０１は、互いの計算負荷や通信性能を交換し合うので、その情報を自身の情報を対比するだけで、自身が情報提供装置からの差分情報の取得を行うべき側か否かを決定することができる。
【０２３１】
したがって、本実施形態では、計算負荷が低い側、通信速度が速い側が差分情報を取得するので、ゲーム情報の更新に要する時間をできるだけ短くすることができるようになる。
【実施例４】
【０２３２】
上記実施例では、新しいバージョンのゲーム情報を保持している側のゲーム装置２０１を親機、古いバージョンのゲーム情報を保持している側のゲーム装置２０１を子機としていたが、親子の関係は、必ずしもこれに固定されるものではない。
【０２３３】
たとえば、ゲーム開始時には、従来の通信ゲームの場合と同様に、ランダムあるいはロビーサーバ２０４等の指示に基づいて親機と子機が定まるものとしても良い。
【０２３４】
この場合でも、上記の実施形態と同様に、親機と子機とのいずれが情報提供装置から差分情報を取得すべきか、は、親機と子機の両方で決定することとしても良いが、親機の側で決定して、その結果を子機に伝達するような態様を採用することも可能である。
【産業上の利用可能性】
【０２３５】
以上説明したように、本発明によれば、ゲーム装置に記憶されるプログラムやデータ等のゲーム情報を、通信ゲームの対戦相手と協調して適切に更新するのに好適なゲーム装置、ゲーム制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【符号の説明】
【０２３６】
１０１  情報処理装置
１０２  ＣＰＵ
１０３  ＲＡＭ
１０４  ＲＯＭ
１０５  入力装置
１０６  画像処理部
１０７  液晶ディスプレイ
１０８  音声処理部
１０９  ヘッドホン
１１０  カセットリーダ
１１１  ＲＯＭカセット
１１２  外部メモリ
１１３  ＲＴＣ
１１４  無線ＬＡＮインターフェース
１１５  カメラ
１２１  ＨＤ
２０１  ゲーム装置
２０３  インターネット
２０４  ロビーサーバ
４０１  根ノード
４０２  エッジ
５０１  記憶部
５０２  進行部
５０３  判定部
５０４  決定部
５０５  依頼部
５０６  更新部
５０７  提供部
【図１】
2011160836.tif 000003
【図２】
2011160836.tif 000004
【図３】
2011160836.tif 000005
【図４】
2011160836.tif 000006
【図５】
2011160836.tif 000007
【図６】
2011160836.tif 000008
【図７】
2011160836.tif 000009