説明

ゲーム装置、ゲーム制御方法、ならびに、プログラム

【課題】不揮発に記憶されるプログラムやデータ等のゲーム情報を、通信ゲームの対戦相手と協調して適切に更新するゲーム装置等を提供する。
【解決手段】ゲーム装置201の記憶部501には、ゲーム情報が記憶される。進行部502は、他のゲーム装置との通信を確立し、ゲーム情報に基づいて、通信ゲームを進行させる。ゲーム情報の更新が必要であると判定部503が判定すると、決定部504が、差分情報の取得を自身で行うか他のゲーム装置に行わせるか決定する。自分で行う場合、更新部506は、所定の情報提供装置から差分情報を取得して記憶部501を更新し、提供部507は他のゲーム装置に差分情報を提供する。他のゲーム装置に行わせる場合、依頼部505は、その旨を依頼し、更新部506は、提供された差分情報を取得して記憶部501を更新する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲーム装置に記憶されるプログラムやデータ等のゲーム情報を、通信ゲームの対戦相手と協調して適切に更新するのに好適なゲーム装置、ゲーム制御方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【0002】
従来から、ネットワーク通信機能を持ったゲーム装置などを用いた通信ゲームを提供する技術が提案されている。
【0003】
たとえば、以下に掲げる特許文献1には、サーバ装置によって紹介された端末装置同士がピアツーピアで通信することによって、通信対戦ゲームを実現する技術が開示されている。
【0004】
一方で特許文献2には、ツリー状の木構造を用いてあるノードが他のノードの資源を利用するような通信を行う技術が開示されている。
【0005】
このような通信ゲームは、ゲーム装置においてプログラムが実行され、ゲーム用の地図、画像、音声、各種パラメータ等がデータとして、当該プログラムの実行の際に参照されることによって、実現される。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2009−189622号公報
【特許文献2】特許第3842251号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記のような通信ゲームを実現するためのプログラムやデータといったゲーム情報は、ゲームの趣向性をさらに高めたり、不具合を修正したりするために、バージョンアップをしなければならないことがある。
【0008】
一方で、ゲーム情報のバージョンアップ時に、特定のサーバにゲーム情報をダウンロードするためのアクセスが集中し、結果としてバージョンアップができないことは好ましくない。
【0009】
さらに、通信ゲームを行うにあたって、対戦相手とゲーム情報のバージョンを揃えた方が良い場合も多い。
【0010】
本発明は、上記のような課題を解決するもので、ゲーム装置に記憶されるプログラムやデータ等のゲーム情報を、通信ゲームの対戦相手と協調して適切に更新するのに好適なゲーム装置、ゲーム制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0012】
本発明の第1の観点に係るゲーム装置は、プレイヤーに通信ゲームを提供し、記憶部、進行部、判定部、決定部、依頼部、更新部、提供部を備え、以下のように構成する。
【0013】
ここで、当該ゲーム装置は、同じ構成を有する2台が対となって、通信ゲームを行う。
【0014】
さて、記憶部には、通信ゲームに必要なプログラムもしくはデータを含むゲーム情報が記憶される。
【0015】
ゲーム情報は、典型的には、通信ゲームを実現するためのプログラムそのものや、そのプログラムで利用されるライブラリのコード断片、通信ゲームに登場するキャラクターの各種パラメータ、通信ゲームのシナリオが進行する際に表示・出力等される画像情報、音声情報、文字情報などである。これらの情報は、EEPROM(Electrically Erasable Programmable Read Only Memory)やハードディスク等の不揮発性記憶装置や、バッテリバックアップ機能が用意されたRAM(Random Access memory)等に記憶される。このため、ゲーム情報は、ゲーム装置本体の電源が切られても、消去されず、そのまま維持される。
【0016】
一方、進行部は、他のゲーム装置との通信を確立し、記憶されたゲーム情報に基づいて、通信ゲームを進行させる。
【0017】
進行部が実行する処理は、通常の通信ゲームを実現する場合と同様であり、その際に、上記のゲーム情報を参照する。ゲーム情報がプログラムの場合には、ゲーム装置のCPU(Central Processing Unit)が、当該プログラムを実行することにより、進行部が実現される。ゲーム情報が各種のデータである場合には、進行部が処理を進める際に、適宜当該データが参照される。
【0018】
さらに、判定部は、ゲーム情報の更新が必要であるか否かを定期的もしくは不定期に判定する。
【0019】
判定部が判定を行うタイミングや判定の基準は、後述するように、種々の態様が可能である。たとえば、電源投入時や、プレイヤーからの指示入力にかかわらず所定の処理を続行する期間などが、判定を行うタイミングとして採用できる。また、判定基準としては、当該ゲーム装置と他のゲーム装置とで、ゲーム情報のバージョンが異なるか否かを採用するのが典型的である。
【0020】
また、2台のゲーム装置が、通信ゲームを行っている場合に、いずれのゲーム装置がこの判定を行うか、についても、種々の態様がある。
【0021】
たとえば、2台のゲーム装置の一方が親機として機能し、他方が子機として機能するような態様を考える。ここで親機は、ゲームを直接進行させる計算を行う。一方子機は、プレイヤーからの入力を親機に伝え、親機から指示された情報に基づいてプレイヤーに情報を伝達する役割を果たす。
【0022】
このような態様では、親機が判定を行うのが典型的である。
【0023】
このほか、複数のゲーム装置が木構造の通信ネットワークを構成することによって、通信ゲームを実現する場合もある。この木構造において、直接エッジで結ばれている2つのノードは、それぞれ、親ノード、子ノードと呼ばれる。親ノードは、木構造の根ノードに近い方のノードであり、子ノードは、木構造の根ノードから遠い方のノードである。
【0024】
このような態様では、親ノードが判定を行うのが典型的である。
【0025】
以下、混乱のない限り、これらの2つの態様をまとめて説明し、親機と親ノードをまとめて「親機」と呼び、子機と子ノードをまとめて「子機」と呼ぶこととする。
【0026】
そして、決定部は、ゲーム情報の更新が必要であると判定されると、当該更新に係る差分情報の取得を自身で行うか、他のゲーム装置に行わせるか、を決定する。
【0027】
当該決定に係る基準については、後述するように種々の態様が考えられる。たとえば、常に親機が行うとする手法、常に子機が行うとする手法、親機と子機のいずれかをランダムに選択する手法、親機と子機の計算負荷や通信状態を考慮する手法等である。
【0028】
さらに、依頼部は、更新に係る差分情報の取得を他のゲーム装置に行わせると決定されると、当該他のゲーム装置に記憶部に記憶されるゲーム情報のバージョンを指定して、当該差分情報の生成を依頼する。
【0029】
すなわち、差分情報の取得を行わない側のゲーム装置において、依頼部が動作する。この依頼には、通信ゲームの進行の際に利用されるのと同じ通信経路が利用される。また、依頼には、自身が現在持っているゲーム情報のバージョン番号等が指定される。
【0030】
一方、更新部は、更新に係る差分情報の取得を自身で行うと決定され、もしくは、他のゲーム装置から差分情報の生成が依頼されると、所定の情報提供装置へ、記憶部に記憶されるゲーム情報のバージョンを指定して、当該情報提供装置から最新のゲーム情報との差分情報を取得し、当該差分情報に基づいて、記憶部に記憶されるゲーム情報を更新する。
【0031】
すなわち、差分情報の取得を行う側のゲーム装置において、更新部が上記の処理を実行する。ここで、所定の情報提供装置とは、ゲーム情報の差分情報を提供する所定のサーバ装置等とするのが典型的であるが、木構造の通信ネットワークを採用する場合には、親機と子機のいずれよりも、木構造において、根ノードに近い上位のノードとするのが典型的である。
【0032】
さらに、提供部は、他のゲーム装置から差分情報の生成が依頼され、記憶部に記憶されるゲーム情報が最新のゲーム情報に更新されると、依頼に指定されたゲーム情報のバージョンから、記憶部に記憶されるゲーム情報との差分情報を生成して、当該他のゲーム装置へ当該差分情報を提供する。
【0033】
すなわち、差分情報の取得を行う側のゲーム装置において、提供部が動作する。この提供には、通信ゲームの進行の際に利用されるのと同じ通信経路が利用される。
【0034】
提供部は、提供の際の通信量を減らすため、依頼に指定されたバージョン情報と、最新版のバージョン情報と、を対比することで、相手方の更新に必要なゲーム情報の差分のみを抽出することとしている。
【0035】
そして、更新部は、更新に係る差分情報の取得を他のゲーム装置に行わせると決定され、他のゲーム装置から差分情報が提供されると、当該差分情報に基づいて、記憶部に記憶されるゲーム情報を更新する。
【0036】
すなわち、差分情報の取得を行わない側のゲーム装置において、更新部が上記の処理を実行する。
【0037】
本発明によれば、通信ゲームの対戦相手と、ゲーム情報のバージョンを揃えることができるとともに、ゲーム情報を提供する情報提供装置へのアクセスをできるだけ抑制することができるようになる。
【0038】
また、本発明のゲーム装置は、以下のように構成することができる。
【0039】
すなわち、通信ゲームが提供されている間、当該ゲーム装置と、他のゲーム装置と、は、計算負荷もしくは情報提供装置との間の通信性能を測定して、進行部は、通信ゲームを提供するための通信の際に、当該測定結果を交換する。
【0040】
計算負荷の測定手法としては、プレイヤーからの入力待ち、通信相手との間の通信待ち、あるいは、タイマ割込待ちなどの待機状態となっている期間と、CPUが計算処理を行っている期間との比を利用することができる。
【0041】
一方、通信性能については、両ゲーム装置が過去に情報提供装置に通信をした際の通信速度などのログ情報を利用することができる。
【0042】
さらに、決定部は、測定された自身の測定結果と、交換により得られた他のゲーム装置の測定結果と、を比較して、差分情報の取得を自身で行うか、当該他のゲーム装置に行わせるか、を決定する。
【0043】
上記の例では、計算負荷がより低い方、ならびに、通信速度がより速い方のゲーム装置に、差分情報の取得を行わせるように決定するのが典型的である。
【0044】
本発明によれば、計算負荷や通信性能を考慮して差分情報の取得を行うゲーム装置を決定することにより、差分情報の取得を待たなければならない時間をできるだけ短くすることができるようになる。
【0045】
また、本発明のゲーム装置において、判定部は、少なくとも、他のゲーム装置との通信が確立されると、ゲーム情報の更新が必要であるか否かを判定するように構成することができる。
【0046】
進行部による通信ゲームの提供は、2つのゲーム装置の間で通信が確立されることを契機に始まる。そこで、本発明では、通信が確立されると、2つのゲーム装置のゲーム情報のバージョン情報を対比して、ゲーム情報の更新の必要性の有無を判定する。
【0047】
なお、本発明の場合には、2つのゲーム装置のゲーム情報のバージョンが同じであれば、ゲーム情報の更新はひとまず不要である、と判定することが可能である。
【0048】
また、本発明では、両者のゲーム情報のバージョン情報に相違がある場合に、新しいバージョンの方から古いバージョンの方に差分情報を直ちに与えるのではない。本発明では、これら2つのバージョンに相違があることを根拠に、より新しいのバージョンが提供されている可能性がある、と考えて、情報提供装置に問い合わせを行う。
【0049】
したがって、複数のゲーム装置におけるゲーム情報のバージョンアップは、時間をかけて行われることになる。
【0050】
本発明によれば、通信ゲームを開始するにあたって、2つのゲーム装置に記憶されるゲーム情報のバージョンを揃えることによって、通信ゲームの進行に不具合が生じることをできるだけ防止するとともに、情報提供装置への特定期間内のアクセスが集中してしまう事態を、できるだけ抑制することができるようになる。
【0051】
また、本発明のゲーム装置において、進行部が、映像の再生中にプレイヤーからの操作入力があっても当該操作入力を無視するような映像の再生を開始すると、判定部は、ゲーム情報の更新が必要であるか否かを判定するように構成することができる。
【0052】
たとえば、複数のステージからなる通信ゲームにおいては、ゲームのステージがクリアされるごとに、次のステージへとストーリーを繋ぐためのムービーが再生されることが多い。
【0053】
また、あるステージにおいて最も強力な敵キャラクターであるボスキャラクターを倒した場合には、そのボスキャラクターが倒れていくさまを表すアニメーションが画面表示される場合もある。
【0054】
本発明では、プレイヤーがムービーやアニメーションを見ている間に、裏側の処理として、ゲーム情報のバージョンを更新する必要があるか否かを調査するのである。
【0055】
更新の必要性についての判定条件は、上記の発明と同様の基準を採用することができるが、2つのゲーム装置が同じバージョン情報を持つ場合であっても、何回に1回かは、更新が必要である、と判定することとしても良い。
【0056】
本発明によれば、プレイヤーがムービーやアニメーションを見ている間に、ゲーム情報の更新を行うことができるので、プレイヤーが更新を待つような状況をできるだけ避けることができるようになる。
【0057】
また、本発明のゲーム装置において、ゲーム装置と、他のゲーム装置と、のいずれか一方は親機として、他方は子機として機能し、ゲーム装置が子機である場合、進行部は、プレイヤーからの操作入力を他のゲーム装置に送信し、他のゲーム装置からの指示に基づいて、プレイヤーに提供すべき映像を再生し、ゲーム装置が親機である場合、進行部は、プレイヤーからの操作入力と、他のゲーム装置から送信された操作入力と、に基づいて、プレイヤーに提供すべき映像を決定し、決定された映像を再生し、決定された映像を再生すべき旨の指示を、他のゲーム装置に送信し、判定部は、ゲーム装置が親機である場合にのみ、ゲーム情報の更新が必要であるか否かを判定するように構成することができる。
【0058】
本発明は、アドホック通信やインターネットを介したピアツーピア通信を用いて2台のゲーム装置が通信している場合に好適である。
【0059】
上述のように、本発明では、親機が更新の必要性を判定し、2台のゲーム装置のうち、いずれが差分情報を取得するか、を決定する。したがって、差分情報の取得そのものを親機と子機のいずれが行うか、は、固定されておらず、状況に応じて変化する。
【0060】
本発明は、上記発明の好適実施形態に係るもので、2台のゲーム装置の親機と子機を区別することによって、更新の必要性の判定や差分情報を取得する側の決定が重複しないようにすることができる。
【0061】
また、本発明のゲーム装置において、ゲーム装置に記憶されるゲーム情報のバージョンと、他のゲーム装置に記憶されるゲーム情報のバージョンと、が、異なる場合、新しいバージョンのゲーム情報を記憶する側が親機として機能し、古いバージョンのゲーム情報を記憶する側が子機として機能するように構成することができる。
【0062】
本発明は、特に、通信ゲームの開始時にゲーム情報の更新が必要か否かを調べる場合に好適である。すなわち、新しいバージョンのゲーム情報を持つ側は、更新の必要性の判定や差分情報を取得する側の決定についても、より一層適切な判断ができると考えられるからである。
【0063】
また、ゲーム進行に必要な計算処理は、新しいバージョンのゲーム情報を用いて親機で行われることになり、子機は親機に操作入力を伝え画像表示の指示をもらうだけであるから、直ちに更新をしなくて良い場合も多い。
【0064】
本発明は、上記発明の好適実施形態に係るもので、2台のゲーム装置の親機と子機を区別することによって、更新の必要性の判定や差分情報を取得する側の決定において、適切に判断することができるようになる。
【0065】
また、本発明のゲーム装置において、情報提供装置と、親機と、子機と、は、通信ネットワークを形成する木構造のノードとして機能し、当該通信ネットワークにおいて、情報提供装置は、親機の親ノードであり、親機は、子機の親ノードであるように構成することができる。
【0066】
本発明は、上記発明の好適実施形態に係るもので、木構造に沿って根ノードから中間ノードを経由して葉ノードへゲームの情報が伝達される場合等に好適である。
【0067】
本発明によれば、親機と子機を適切に決定することができるようになる。
【0068】
また、本発明のゲーム装置において、判定部は、記憶部に記憶されるゲーム情報のバージョン情報と、他のゲーム装置に記憶されるゲーム情報のバージョン情報と、を比較して、両者が異なる場合、ゲーム情報の更新が必要である、と判定するように構成することができる。
【0069】
すなわち、本発明では、2つのゲーム装置のゲーム情報が同じバージョン情報であれば、たとえ両者が最新のバージョンでなくとも、ゲーム情報の更新は不要である、と判定するのである。
【0070】
本発明によれば、ゲーム情報のバージョンに差がある場合にのみ、ゲーム情報の最新版への更新が行われるため、更新情報を取得するために情報提供装置へアクセスが集中してしまうような事態をできるだけ抑制することができるようになる。
【0071】
本発明のその他の観点に係るゲーム制御方法は、プレイヤーに通信ゲームを提供するゲーム装置が実行し、当該ゲーム装置は、記憶部、進行部、判定部、決定部、依頼部、更新部、提供部を備え、当該ゲーム制御方法は、進行工程、判定工程、決定工程、依頼工程、更新工程、提供工程を備え、以下のように構成する。
【0072】
すなわち、記憶部には、通信ゲームに必要なプログラムもしくはデータを含むゲーム情報が記憶される。
【0073】
一方、進行工程では、進行部が、他のゲーム装置との通信を確立し、記憶されたゲーム情報に基づいて、通信ゲームを進行させる。
【0074】
さらに、判定工程では、判定部が、ゲーム情報の更新が必要であるか否かを定期的もしくは不定期に判定する。
【0075】
そして、ゲーム情報の更新が必要であると判定されると、決定工程では、決定部が、当該更新に係る差分情報の取得を自身で行うか、他のゲーム装置に行わせるか、を決定する。
【0076】
一方、更新に係る差分情報の取得を他のゲーム装置に行わせると決定されると、依頼工程では、依頼部が、当該他のゲーム装置に記憶部に記憶されるゲーム情報のバージョンを指定して、当該差分情報の生成を依頼する。
【0077】
さらに、更新に係る差分情報の取得を自身で行うと決定され、もしくは、他のゲーム装置から差分情報の生成が依頼されると、更新工程では、更新部が、所定の情報提供装置へ、記憶部に記憶されるゲーム情報のバージョンを指定して、当該情報提供装置から最新のゲーム情報との差分情報を取得し、当該差分情報に基づいて、記憶部に記憶されるゲーム情報を更新する。
【0078】
そして、他のゲーム装置から差分情報の生成が依頼され、記憶部に記憶されるゲーム情報が最新のゲーム情報に更新されると、提供工程では、提供部が、依頼に指定されたゲーム情報のバージョンから、記憶部に記憶されるゲーム情報との差分情報を生成して、当該他のゲーム装置へ当該差分情報を提供する。
【0079】
一方、更新工程では、更新に係る差分情報の取得を他のゲーム装置に行わせると決定され、他のゲーム装置から差分情報が提供されると、当該差分情報に基づいて、記憶部に記憶されるゲーム情報を更新する。
【0080】
本発明のその他の観点に係るプログラムは、コンピュータを、上記のゲーム装置の各部として機能させるように構成する。
【0081】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【0082】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0083】
本発明によれば、ゲーム装置に記憶されるプログラムやデータ等のゲーム情報を、通信ゲームの対戦相手と協調して適切に更新するのに好適なゲーム装置、ゲーム制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【0084】
【図1】典型的な情報処理装置の概要構成を示す模式図である。
【図2】本実施形態に係るゲーム装置の通信の態様の一つを示す説明図である。
【図3】本実施形態に係るゲーム装置の通信の態様の一つを示す説明図である。
【図4】本実施形態に係るゲーム装置の通信の態様の一つを示す説明図である。
【図5】本実施形態に係るゲーム装置の概要構成を示す説明図である。
【図6】本実施形態に係るゲーム装置において実行されるゲーム制御処理の流れを示すフローチャートである。
【図7】本実施形態に係るゲーム装置において実行されるゲーム制御処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0085】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。
【0086】
したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例1】
【0087】
(情報処理装置)
図1は、プログラムを実行することにより、本実施形態のゲーム装置として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0088】
本図に示す情報処理装置101は、携帯可能なマルチメディア端末であり、CPU(Central Processing Unit)102、RAM(Random Access Memory)103、ROM(Read Only Memory)104、入力装置105、画像処理部106、液晶ディスプレイ107、音声処理部108、ヘッドホン109、カセットリーダ110、ROMカセット111、外部メモリ112、RTC(Real Time Clock)113、無線LAN(Local Area Network)インターフェース114、カメラ115を備える。
【0089】
本実施形態に係るプログラムが記録されたROMカセット111を、情報処理装置101に装着することによって、本実施形態に係るゲーム装置が実現される。
【0090】
ここで、CPU 102は、情報処理装置101の各部を制御するとともに、各種の演算処理や判断処理を行う。
【0091】
情報処理装置101に電源が投入されると、CPU 102は、ROM 104に記録されたIPL(Initial Program Loader)を実行し、その処理の過程で、カセットリーダ110を介して接続されたROMカセット111に記録されたプログラムに処理を移行する。
【0092】
情報処理装置101で実行されるゲームプログラムやマルチメディア情報再生プログラムは、ROMカセット111によって提供されるのが一般的であるが、ROM 104内にあらかじめ用意しておくことも可能である。
【0093】
また、ROM 104内には、BIOS(Basic Input Output System)と呼ばれるプログラム群が用意されており、入力装置105や画像処理部106、音声処理部108の制御を行うことができる。
【0094】
RAM 103は、一時的な情報を記憶するための領域であり、外部メモリ112は、不揮発な情報を記憶するための領域である。外部メモリ112としては、ハードディスクなど、主として情報処理装置101に内蔵されるもののほか、各種のメモリカードなど、情報処理装置101に抜挿されるものを利用しても良い。
【0095】
入力装置105は、各種のボタンやキーボード、マウス、ジョイスティック等により実現されるのが一般的であるが、液晶ディスプレイ107と一体に形成されたタッチスクリーンを入力装置105として利用することも可能である。
【0096】
画像処理部106は、CPU 102の制御の下、各種の文字情報や画像情報を液晶ディスプレイ107に表示させるものであり、一般には、垂直同期割込周期(典型的には、30分の1秒や60分の1秒程度である。)ごとに、RAM 103内に用意されたフレームバッファに記憶された画素情報を液晶ディスプレイ107の各画素に反映させる。
【0097】
ユーザからの指示入力は、液晶ディスプレイ107に表示されたカーソルを入力装置105の移動ボタン操作により移動して、所望のメニュー項目にカーソルを合わせ、決定ボタン操作によって当該メニュー項目を選択するのが一般的であるが、タッチスクリーンを利用する場合にはカーソルは不要である。また、入力装置105の各ボタンに割り当てられる機能があらかじめ決まっている場合には、液晶ディスプレイ107に対する表示は、必ずしも必要ない。
【0098】
音声処理部108は、RAM 103やROM 104、ROMカセット111、外部メモリ112に用意された音声データをヘッドホン109に出力する。音声データとしては、音声の波形データをディジタル化したPCM(Pulse Code Modulation)データや、PCMデータを圧縮してサイズを小さくしたMP3(MPeg audio layer-3)データ等を利用することが可能であるほか、MIDI(Music Instruction Data Interface)データのように、音高、音長、音量、音色の種類を定義するデータを用意し、これにしたがって、あらかじめ用意された音源波形データを適宜選択・変形して再生する手法を採用しても良い。
【0099】
RTC 113は、現在の日時を計測するもので、情報処理装置101を初めて利用する際に時刻合わせを行うのが一般的であるが、無線LANインターフェース114を介してNTP(Network Time Protocol)サーバに接続することで、自動的に時刻合わせを行うような態様を採用することも可能である。
【0100】
また、アラーム割込を発生させる機能を持つRTC 113もある。設定された時刻になるとアラーム割込が発生して、CPU 102は、現在実行中のプログラムを一時中断し、あらかじめ設定された割込ハンドラを実行してから、中断したプログラムを再開する。
【0101】
無線LANインターフェース114は、自宅や会社、街角に用意された無線LANアクセスポイントを介してインターネットに接続したり、近傍に配置された他の情報処理装置101と、アドホックに通信路を確立し、1対1で通信を行うなどが可能である。
【0102】
カメラ115は、情報処理装置101によってディジタルカメラの機能を実現するものであり、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)撮像素子などの技術を適用することが可能である。撮影された画像は、一時的にRAM 103に展開された後、外部メモリ112等に保存される。
【0103】
このほか、ビジネス用コンピュータ、携帯電話、PDA(Personal Data Assistant)、携帯ゲーム装置、多機能テレビジョン装置、DVD(Digital Versatile Disc)プレイヤー、携帯音楽プレイヤーなどを、本発明のゲーム装置が実現される情報処理装置として採用することもできる。
【0104】
(通信の形態)
本実施形態に係るゲーム装置は、2台が相互に通信可能に接続して、通信ゲームを進める。以下では、その通信の形態について説明する。
【0105】
図2は、本実施形態に係るゲーム装置の通信の態様の一つを示す説明図である。以下、本図を参照して説明する。
【0106】
本図に示す2つのゲーム装置201は、いわゆるアドホック通信により、相互に通信し合う。ゲーム装置201に電源が投入され、近傍の他のゲーム装置201を検索する旨がプレイヤーから指示等されると、以下のような処理を繰り返す。
【0107】
すなわち、ゲーム装置201は、アドホック通信用のビーコン信号の受信を一定の時間試行し、受信できれば、その旨をビーコン信号送信側のゲーム装置201に通知することによって、アドホック通信が確立する。一方、受信できなければ、アドホック通信用のビーコン信号を送信し、他のゲーム装置201から、当該ビーコン信号を受信した旨の通知が到着するのを、一定期間待機する。
【0108】
このようにしてアドホック通信が確立される場合、ビーコン信号を送信した側のゲーム装置201が親機となり、このビーコン信号を検知した旨を親機に通知した側のゲーム装置201が子機となる。
【0109】
なお、プレイヤーの指示に基づいて、親機として機能するか、子機として機能するかを指定する態様を採用しても良い。この場合、親機に指定されたゲーム装置201は、ビーコン信号の送信と通知の待機を行い、子機に指定されたゲーム装置201は、ビーコン信号の検知とその旨の通知を行うことになる。
【0110】
図3は、本実施形態に係るゲーム装置の通信の態様の一つを示す説明図である。以下、本図を参照して説明する。
【0111】
図3に示す2つのゲーム装置201は、インターネット203を介して通信し合うもので、いわゆるインフラストラクチャ通信を行う。この際に、ゲーム装置201は、まず、ロビーサーバ204に自身の存在を登録する。
【0112】
ロビーサーバ204は、通信相手を求めているゲーム装置201がある程度集まったら、適切な対戦相手を選択して、ゲーム装置201に紹介する。
【0113】
ゲーム装置201は、ロビーサーバ204から紹介されたゲーム装置201のIP(Internet Protocol)アドレス等の情報に基づいてピアツーピア通信を開始することによって、通信を行う。
【0114】
この態様では、ゲーム装置201のいずれが親機となりいずれが子機となるかは、ロビーサーバ204の紹介の際に、ロビーサーバ204が定めることとしても良い。このほか、アドホック通信の場合と同様に、紹介の後の通信を開始するタイミングに基づいて、親機となるか子機となるかがランダムに定まるような態様を採用することもできる。
【0115】
図4は、本実施形態に係るゲーム装置の通信の態様を示す説明図である。以下、本図を参照して説明する。
【0116】
本図に示す複数のゲーム装置201は、インターネット(本図では図示せず。)を介して互いに通信し合う。これは、図3の場合と同様である。ただし、複数のゲーム装置201が、全体として、木構造をなしている点が異なる。
【0117】
このような木構造状のネットワークでは、根ノード401がロビーサーバ204に相当し、各ノードがゲーム装置201に相当する。ノード同士は、通信路を表すエッジ402によって連結されている。
【0118】
1つのエッジ402によって連結されている2つのゲーム装置201のうち、根ノード401に近い側を親ノード、遠い側を子ノードと呼ぶ。
【0119】
木構造の通信ネットワークを採用した場合、根ノード401から各エッジ402を介して順に、各ゲーム装置201に各種のゲームに関する情報が伝達される。このような態様を採用することで、根ノード401に対するアクセスの集中を防止するのである。
【0120】
また、ゲーム装置201同士は、特許文献2に開示されるような技術を用いて通信することも可能である。
【0121】
ここで、一般に、親機や親ノードは、以下のように、通信ゲームの主たる制御を行う。
【0122】
すなわち、親機や親ノードは、当該ゲーム装置201を利用するプレイヤーからの操作入力を受け付ける。
【0123】
また、子機や子ノードは、当該ゲーム装置201を利用するプレイヤーからの操作入力を受け付けて、これを親機や親ノードに送信する。
【0124】
すると、親機や親ノードは、これらの操作入力に基づいて、ゲームを進行させ、両プレイヤーに提示すべき情報を生成する。
【0125】
そして、親機や親ノードは、当該情報に基づいた画像を生成して画面に表示し、当該ゲーム装置201を利用するプレイヤーに提示する。
【0126】
また、親機や親ノードは、当該情報を子機や子ノードに送信する。
【0127】
すると、子機や子ノードは、当該情報に基づいた画像を生成して画面に表示し、当該ゲーム装置201を利用するプレイヤーに提示する。
【0128】
以下、混乱のない限り、親機と親ノードをまとめて「親機」と呼び、子機と子ノードをまとめて「子機」と呼ぶこととする。以下では、ゲーム装置201の概要構成について、さらに説明する。
【0129】
(ゲーム装置)
図5は、本実施形態に係るゲーム装置201の概要構成を示す説明図である。
【0130】
以下、本図を参照して、各部の機能と、当該機能が情報処理装置101のいずれの要素によって実現されるかについて、簡単に説明する。
【0131】
本実施形態に係るゲーム装置201は、同じ構成を有する2台が対となって、通信ゲームを行う。ゲーム装置201は、記憶部501、進行部502、判定部503、決定部504、依頼部505、更新部506、提供部507を備える。
【0132】
ここで、記憶部501には、通信ゲームに必要なプログラムもしくはデータを含むゲーム情報が記憶される。
【0133】
本実施形態では、記憶部501は、外部メモリ112によって実現される。CPU 102がROMカセット111に記録されたプログラムを実行するが、必要に応じて、外部メモリ112に記録されているプログラムやデータがRAM 103に読み出される。そして、CPU 102はRAM 103に読み出されたプログラムを実行したり、データを処理したりして、通信ゲームを進行させる。
【0134】
ゲーム情報は、典型的には、通信ゲームを実現するためのプログラムそのものやそのプログラムで利用されるライブラリのコード断片、通信ゲームに登場するキャラクターの各種パラメータ、通信ゲームのシナリオが進行する際に表示・出力等される画像情報、音声情報、文字情報などである。
【0135】
これらの情報は、外部メモリ112やEEPROMやハードディスク等の不揮発性記憶装置や、バッテリバックアップ機能が用意されたRAM等により実現される。このため、ゲーム情報は、ゲーム装置201本体の電源が切られても、消去されず、そのまま維持される。
【0136】
一方、進行部502は、他のゲーム装置201との通信を確立し、記憶されたゲーム情報に基づいて、通信ゲームを進行させる。
【0137】
進行部502は、CPU 102が無線LANインターフェース114やRAM 103、外部メモリ112、入力装置105、画像処理部106、液晶ディスプレイ107、音声処理部108、ヘッドホン109等と共働することによって実現される。
【0138】
実際に進行部502が実行する処理は、通常の通信ゲームを実現する場合と同様であり、当該ゲーム装置201が親機か子機かによって、実行する処理は異なるが、その処理の中で、上記のゲーム情報を参照する。
【0139】
ゲーム情報がプログラムの場合には、ゲーム装置201のCPU 102が、当該プログラムを実行することにより、進行部502が実現される。ゲーム情報が各種のデータである場合には、進行部502が処理を進める際に、適宜当該データが参照される。
【0140】
さらに、判定部503は、ゲーム情報の更新が必要であるか否かを定期的もしくは不定期に判定する。
【0141】
判定部503は、CPU 102が外部メモリ112や無線LANインターフェース114等と共働することによって実現され、これが判定を行うタイミングや判定の基準は、後述するように、種々の態様が可能である。
【0142】
たとえば、電源投入時や、プレイヤーからの指示入力にかかわらず所定の処理を続行する期間などが、判定を行うタイミングとして採用できる。また、判定基準としては、当該ゲーム装置201と他のゲーム装置201とで、ゲーム情報のバージョンが異なるか否かを採用するのが典型的である。
【0143】
また、2台のゲーム装置201が、通信ゲームを行っている場合に、いずれのゲーム装置201がこの判定を行うか、についても、種々の態様があるが、典型的には、親機が判定を行うのが一般的である。
【0144】
そして、決定部504は、ゲーム情報の更新が必要であると判定されると、当該更新に係る差分情報の取得を自身で行うか、他のゲーム装置201に行わせるか、を決定する。
【0145】
決定部504は、CPU 102によって実現され、これが決定の際に用いる基準については、種々の態様が考えられる。たとえば、常に親機が行うとする手法、常に子機が行うとする手法、親機と子機のいずれかをランダムに選択する手法、親機と子機の計算負荷や通信状態を考慮する手法等である。
【0146】
さらに、依頼部505は、更新に係る差分情報の取得を他のゲーム装置201に行わせると決定されると、当該他のゲーム装置201に対して、記憶部501に記憶されるゲーム情報のバージョンを指定して、当該差分情報の生成を依頼する。
【0147】
すなわち、依頼部505は、CPU 102が、無線LANインターフェース114等と共働することによって実現され、差分情報の取得を行わない側のゲーム装置201において、依頼部505が動作する。この依頼には、通信ゲームの進行の際に利用されるのと同じ通信経路が利用される。また、依頼には、自身が現在持っているゲーム情報のバージョン番号等が指定される。
【0148】
一方、更新部506は、更新に係る差分情報の取得を自身で行うと決定され、もしくは、他のゲーム装置201から差分情報の生成が依頼されると、所定の情報提供装置へ、記憶部501に記憶されるゲーム情報のバージョンを指定して、当該情報提供装置から最新のゲーム情報との差分情報を取得し、当該差分情報に基づいて、記憶部501に記憶されるゲーム情報を更新する。
【0149】
すなわち、差分情報の取得を行う側のゲーム装置201において、更新部506が上記の処理を実行する。したがって、更新部506は、CPU 102が、無線LANインターフェース114や外部メモリ112、RAM 103と共働することによって実現される。
【0150】
ここで、所定の情報提供装置としては、ロビーサーバ204や、木構造における親機の親ノードとするのが典型的であり、これらの基本構成は、上記の情報処理装置101と同様とすることができる。
【0151】
さらに、提供部507は、他のゲーム装置201から差分情報の生成が依頼され、記憶部501に記憶されるゲーム情報が最新のゲーム情報に更新されると、依頼に指定されたゲーム情報のバージョンから、記憶部501に記憶されるゲーム情報との差分情報を生成して、当該他のゲーム装置201へ当該差分情報を提供する。
【0152】
すなわち、差分情報の取得を行う側のゲーム装置201において、提供部507が動作し、CPU 102が、無線LANインターフェース114や外部メモリ112、RAM 103と共働することによって実現される。この提供には、通信ゲームの進行の際に利用されるのと同じ通信経路が利用される。
【0153】
提供部507は、提供の際の通信量を減らすため、依頼に指定されたバージョン情報と、最新版のバージョン情報と、を対比することで、相手方の更新に必要なゲーム情報の差分のみを抽出することとしている。
【0154】
そして、更新部506は、更新に係る差分情報の取得を他のゲーム装置201に行わせると決定され、他のゲーム装置201から差分情報が提供されると、当該差分情報に基づいて、記憶部501に記憶されるゲーム情報を更新する。
【0155】
すなわち、差分情報の取得を行わない側のゲーム装置201において、更新部506が上記の処理を実行する。
【0156】
以下では、記憶部501に記憶されるゲーム情報の態様について説明する。
【0157】
本実施形態に係るゲーム情報は、複数の断片情報の集合体である。各断片情報は、ファイルにより管理され、ファイルごとにバージョンアップがなされる。各ファイルは、以下のような情報からなる。
(a)断片情報本体。プログラムやライブラリであれば、それらのコードを表すバイナリデータであり、データであれば、そのデータを表すバイナリデータである。
(b)当該断片情報が作成された作成日時。いわゆるバージョン情報に相当する。
【0158】
このほか、断片情報や作成日時を合わせたバイナリデータのチェックサムやCRC(Cyclic Redundancy Check)、MD5(Message Digest algorithm 5)値などを含めることとして、ファイルの内容が壊れていないことを確認できるようにしても良い。
【0159】
また、巨大なデータなどは、複数のファイルに分割することによって、バージョンアップ時における差分情報の大きさを減らすことも可能である。
【0160】
また、ゲーム情報全体には、当該ゲーム装置201に記憶されているゲーム情報の最新版が確認された確認日時が対応付けられて、記憶部501に記憶される。
【0161】
ここで、確認日時は、ゲーム装置201のRTC 113によるものではなく、ロビーサーバ204等によって指定された値が、伝搬していくものである。確認日時は、ロビーサーバ204等への問い合わせによって更新がなされた場合には、更新がなされた日時であり、この日時は、ロビーサーバ204等により指定される。
【0162】
このような構成を採用すると、ある断片情報の内容は、その作成日時から確認日時までの間は、変更がなされていないことになる。また、作成日時も確認日時もロビーサーバ204等によって設定される情報であるので、各種の改造行為を抑制することが可能となる。
【0163】
以下では、ゲーム装置201において実行されるゲーム制御処理の流れについて、詳細に説明する。
【0164】
なお、本実施形態では、通信ゲームの開始時に、ゲーム情報の更新の必要性を判定することとしているが、その他のタイミングで更新を行う態様については、実施例2以降で説明する。
【0165】
図6、図7は、ゲーム装置201において実行されるゲーム制御処理の流れを示すフローチャートである。以下、本図を参照して説明する。
【0166】
本処理は、CPU 102が、ROMカセット111に記録されたプログラムを実行することによって開始される。本処理が一旦開始された後は、必要に応じて、外部メモリ112にゲーム情報として記録されているプログラムをRAM 103に動的にロードして実行することによって、処理が進められる。
【0167】
本処理が開始されると、CPU 102は、まず、各種の初期化を行う(ステップS601)。この初期化では、通信ゲームに登場するキャラクターの各種のパラメータや、キャラクターが配置される仮想世界の設定等が定められる。
【0168】
ついで、CPU 102は、無線LANインターフェース114を起動して、近傍に配置された他のゲーム装置201とのアドホック通信の確立を、前述のように試行する(ステップS602)。
【0169】
ステップS602の試行の結果、アドホック通信が確立した場合(ステップS603;Yes)CPU 102は、外部メモリ112に記録されたゲーム情報の確認日時、ならびに、各ファイルの作成日時を指定するバージョン情報を、無線LANインターフェース114を介して相手のゲーム装置201に送信し(ステップS604)、相手のゲーム装置201が送信したバージョン情報を受信する(ステップS605)。
【0170】
そして、自身のバージョン情報と、相手のバージョン情報を比較する(ステップS606)。本実施形態では、2つのゲーム装置201において、各ファイルの作成日時は、以下のいずれかとなる。
(a)全ファイルの作成日時が、互いに等しい。
(b)全ファイルの作成日時のうち、一方が他方より新しいものはあるが、その逆はない。
【0171】
上記(a)の場合(ステップS606;同)、CPU 102は、アドホック通信の確立の際の状況に応じて、自身を親機とするか子機とするかを既定の条件に基づいて設定する(ステップS607)。すなわち、前述の通り、ビーコン信号を送信した側が親機となり、ビーコン信号を検知した側が子機となる。
【0172】
ついで、CPU 102は、外部メモリ112に記録されている確認日時と、受信したバージョン情報に指定されている確認日時と、のうち、新しい方を、外部メモリ112に記録して(ステップS608)、ステップS651に進む。
【0173】
この処理によって、2つのゲーム装置201のバージョン情報は、完全に一致することになる。
【0174】
一方、上記(b)で、自身が新しい作成日時のファイルを持っている場合(ステップS606;新)、CPU 102は、自身を親機に設定する(ステップS610)。
【0175】
そして、CPU 102は、当該新しい作成日時のファイルを外部メモリ112から読み出して、無線LANインターフェース114を介して相手のゲーム装置201に送信し(ステップS611)、ステップS608に進む。なお、この際には、外部メモリ112に記憶されている確認日時とファイルを一体にして、「差分情報」として送信するのが典型的である。
【0176】
このようにすると、差分情報を受信してステップS608に至った場合には、受信された差分情報に指定されている確認日時で外部メモリ112を更新すれば良いし、差分情報を送信する側である場合には、確認日時の書き込みは不要となる。
【0177】
一方、上記(b)で、自身が新しい作成日時のファイルを持っていない場合(ステップS606;旧)、CPU 102は、自身を子機に設定する(ステップS612)。
【0178】
そして、CPU 102は、親機のゲーム装置201から送信されたファイルを、無線LANインターフェース114を介して受信して(ステップS613)、当該ファイルの中身をその作成日時とともに外部メモリ112に上書き保存し(ステップS614)、ステップS608に進む。
【0179】
このように、ステップS610〜ステップS614の処理によって、ゲーム情報の差分として必要最小限のファイルのみが送受され、できるだけ短時間で両ゲーム装置201のゲーム情報のバージョンを揃えることができるようになるのである。
【0180】
なお、本実施形態では、アドホック通信が確立した状況では、2つのゲーム装置201の間でゲーム情報のバージョンを揃えるのみであり、ロビーサーバ204等への最新バージョンの問い合わせ等は行わない。これにより、アクセスの集中を抑制することができる。
【0181】
一方、ステップS602の試行の結果、アドホック通信が確立しなかった場合(ステップS603;No)、ゲーム装置201のCPU 102は、無線LANインターフェース114を介してインフラストラクチャ通信により所定のロビーサーバ204に接続し、対戦相手の紹介を求める(ステップS621)。
【0182】
すると、ロビーサーバ204は、対戦相手のIPアドレス等の情報のほか、ゲーム情報をダウンロードする際に利用すべき情報提供装置のIPアドレス等の情報を、ゲーム装置201に対して紹介する。木構造状の通信ネットワークを採用する場合には、上位のノードを情報提供装置として指定するのが典型的である。
【0183】
そこで、CPU 102は、ロビーサーバ204から送信された紹介を、無線LANインターフェース114を介して受信し(ステップS622)、対戦相手とのインフラストラクチャ通信による通信を確立する(ステップS623)。
【0184】
通信が確立したら、CPU 102は、ステップS604〜S606と同様に、バージョン情報の送信(ステップS624)と受信(ステップS625)を行い、バージョン情報を比較する(ステップS626)。
【0185】
そして、全ファイルの作成日時が、互いに等しい場合(ステップS626;同)、CPU 102は、ロビーサーバ204から受信した紹介に指定される順序等、既定の手法に基づいて、自身を親機とするか子機とするかを設定する(ステップS627)。
【0186】
なお、木構造状の通信ネットワークを採用する場合には、子機に設定されたゲーム装置201は、親機を親ノードとし、親機に設定されたゲーム装置201は、紹介に指定された情報提供装置を親ノードとすることになる。
【0187】
ついで、CPU 102は、外部メモリ112に記録されている確認日時と、受信したバージョン情報に指定されている確認日時と、のうち、新しい方を、外部メモリ112に記録して(ステップS628)、ステップS651に進む。
【0188】
この処理によって、2つのゲーム装置201のバージョン情報は、完全に一致することになる。
【0189】
一方、自身が新しい作成日時のファイルを持っている場合(ステップS626;新)、CPU 102は、自身を親機に設定する(ステップS630)。
【0190】
さらに、CPU 102は、外部メモリ112に記録されている確認日時と、受信したバージョン情報に指定されている確認日時と、のうち、新しい方を選択し(ステップS631)、当該選択された日時と、RTC 113から得られる現在の日時との差が所定の閾期間より短いか否かを調べる(ステップS632)。
【0191】
短い場合(ステップS632;短)、自身が保持しているゲーム情報は最新である可能性が高いと判断されるので、新しい作成日時のファイルを外部メモリ112から読み出して、無線LANインターフェース114を介して相手のゲーム装置201に送信し(ステップS633)、ステップS628に進む。
【0192】
この際にも、確認日時をともに送信して、全体として「差分情報」としても良い。この場合、ステップS628では、差分情報の送信側の場合には、確認日時の上書きは不要となるし、差分情報の受信側では、受信された差分情報に含まれる確認日時で、外部メモリ112を更新すれば良いことになる。
【0193】
一方、選択された確認日時と、現在の日時と、が一定以上離れている場合、すなわち、両者の差がある程度長い場合(ステップS632;長)、CPU 102は、自身のバージョン情報を、情報提供装置に送信する(ステップS634)。
【0194】
すると、情報提供装置は、ステップS611と同様に、新しい作成日時のファイルが存在すれば、それを送信してくる。また、情報提供装置は、当該情報提供装置が有しているゲーム情報の確認日時も合わせて送信してくる。これらは、親機として機能するゲーム装置201のゲーム情報を更新するための差分情報に相当する。
【0195】
ここで、情報提供装置がロビーサーバ204等である場合には、確認日時は、当該情報提供装置が有するRTCにより得られる現在の日時を使用するが、他のゲーム装置201が情報提供装置として機能する場合には、そのゲーム装置201が差分情報を得た場合に付随していた確認日時を使用する。
【0196】
このような態様を採用することにより、確認日時は、『通信ゲームの運営者が「ゲーム装置201に記憶されているゲーム情報が最新である」と、確認した日時』を表すことになる。
【0197】
そして、CPU 102は、無線LANインターフェース114を介して、情報提供装置から送信された差分情報を受信する(ステップS635)。
【0198】
そして、CPU 102は、差分情報に指定されているファイルの中身をその作成日時とともに外部メモリ112に上書き保存する(ステップS636)。
【0199】
さらに、CPU 102は、受信した差分情報に指定されている確認日時を外部メモリ112に上書き記録する(ステップS637)。
【0200】
さらに、CPU 102は、子機のバージョン情報を参照して、外部メモリ112に記録されているファイルのうち、作成日時が新しいファイルと、最新の確認日時と、を、差分情報として子機に送信し(ステップS638)、ステップS651に進む。
【0201】
一方、自身が新しい作成日時のファイルを持っていない場合(ステップS626;旧)、CPU 102は、自身を子機に設定する(ステップS639)。
【0202】
そして、CPU 102は、無線LANインターフェース114を介して、親機から送信された差分情報を受信し(ステップS640)、当該ファイルの中身をその作成日時とともに外部メモリ112に上書き保存し(ステップS641)、差分情報に指定される確認日時を外部メモリ112に書き込んで(ステップS642)、ステップS651に進む。
【0203】
これらの処理によって、ゲーム情報の更新のためのアクセスが集中することを防止するとともに、必要最小限のファイルのみが送受され、できるだけ短時間で両ゲーム装置201のゲーム情報のバージョンを揃えることができるようになるのである。
【0204】
さらに、確認日時の情報は、当該ゲーム情報を提供しているロビーサーバ204等から伝搬してくるものであり、ゲーム装置201のRTC 113に依存するものではない。このため、RTC 113が現実の時刻とずれている場合であっても、ゲーム情報そのものの信頼性が損われることはない。
【0205】
このように、確認日時の情報を用いることで、ゲーム装置201は、適切なタイミングでゲーム情報のバージョンの更新ができるようになる。
【0206】
また、上記のように、バージョン情報を相互に交換することにより、古いバージョンを持っている側のゲーム装置201は、新しいバージョンを持っている側のゲーム装置201に、差分情報の取得を依頼していることになる。
【0207】
さて、このようにして、ゲーム装置201同士でゲーム情報のバージョンが揃ったら、通信ゲームが開始され、通信ゲームが進行されることになる(ステップS651)。CPU 102は、適宜外部メモリ112に記憶されたゲーム情報を参照しながら、通信ゲームを進行させる。
【0208】
通信ゲームの進行においては、上記のように、以下の処理が繰り返される。
【0209】
すなわち、子機は、プレイヤーからの操作入力を受け付けてこれに基づいて親機に操作情報を親機に送信する。親機は、自身のプレイヤーからの操作入力と子機から送信された操作情報を参照して、ゲームの状態を更新し、自身のプレイヤーにゲーム状態を提示するとともに、画面表示に必要な情報を子機に伝達する。子機は、この情報を受信して、自身のプレイヤーにゲーム状態を提示する。
【0210】
なお、操作情報として送信される情報は、プレイヤーからの操作入力そのものであっても良いが、子機側では子機側のプレイヤーのキャラクターの位置移動などを行う態様を採用した場合には、位置移動後の子機側キャラクターの位置や入力された各種コマンドなどを操作情報としても良い。
【0211】
また、ゲーム状態として送信される情報には、各キャラクターの位置や各種のパラメータなどが含まれる。親機と子機は、これらの情報を参照して、同じ仮想世界を画面に表示することになる。
【0212】
このように、本実施形態によれば、通信ゲームの対戦相手と、ゲーム情報のバージョンを揃えることができるとともに、ゲーム情報を提供する情報提供装置へのアクセスをできるだけ抑制することができるようになる。
【実施例2】
【0213】
上記実施形態では、通信ゲームを開始する前に、ゲーム情報のバージョンを揃える処理を行っていたが、ゲーム情報に下位互換性がある場合には、必ずしもバージョンを揃える必要はない。また、ゲーム開始時にゲーム情報の更新で時間をとられると、プレイヤーの興味をそぐことになる場合もある。
【0214】
そこで、本実施形態では、通信ゲームを行っている最中にゲーム情報の更新を行うこととする。
【0215】
ここで、ゲーム情報の更新を行う際にプレイヤーを待たせないタイミングとして、ムービーやアニメーションの表示がなされている時間が考えられる。
【0216】
たとえば、複数のステージからなる通信ゲームにおいては、ゲームのステージがクリアされるごとに、次のステージへとストーリーを繋ぐためのムービーが再生されることが多い。
【0217】
また、あるステージにおいて最も強力な敵キャラクターであるボスキャラクターを倒した場合には、そのボスキャラクターが倒れていくさまを表すアニメーションが画面表示される場合もある。
【0218】
このような表示がされている間は、プレイヤーからの操作入力があっても当該操作入力を無視することとし、プレイヤーがムービーやアニメーションを見ている間に、裏側の処理として、ゲーム情報のバージョンを更新する必要があるか否かを調査するのである。
【0219】
バージョン情報の送受、比較、差分情報の送受は、上記実施形態と同様に行われる。また、両ゲーム装置201がインフラストラクチャ通信を行っている場合には、情報提供装置への問い合わせ等も上記実施形態と同様に行うこととする。
【0220】
また、両者が同じバージョンのゲーム情報を持っている場合であっても、確認日時が古い場合や、何回かムービーを見た後には、情報提供装置への問い合わせを行って、差分情報の送受をし、ゲーム情報を最新版に更新することとしても良い。
【0221】
本実施形態によれば、プレイヤーがムービーやアニメーションを見ている間に、ゲーム情報の更新を行うことができるので、プレイヤーが更新を待つような情報をできるだけ避けることができるようになる。
【0222】
なお、実施例1、実施例2とも、更新の必要性を判断するタイミングは、不定期となるが、確認日時から一定の期間が経過してから更新の必要性を判定することとすれば、判定は、ほぼ定期的に行われることとなる。
【実施例3】
【0223】
上記実施形態では、新しいバージョンのゲーム情報を持っている側のゲーム装置201を親機として、親機が情報提供装置に問い合わせを行い、子機は親機から差分情報をもらう形態を採用していた。また、同じバージョンのゲーム情報を持っている場合には、実質的にランダムに親機と子機が決定されていた。
【0224】
本実施形態は、実施例2に類似するもので、通信ゲームを実行している間の各ゲーム装置201の計算負荷や情報提供装置との間の通信性能に基づいて、差分情報の取得を行う側を決めるものである。
【0225】
本実施形態のゲーム装置201は、計算負荷、もしくは、情報提供装置との間の通信性能を計測して、その測定結果を交換する。
【0226】
計算負荷の測定手法としては、プレイヤーからの入力待ち、通信相手との間の通信待ち、あるいは、タイマ割込待ちなどの待機状態となっている期間と、CPUが計算処理を行っている期間との比を利用することができる。
【0227】
一方、通信性能については、両ゲーム装置201がロビーサーバ204から紹介を受けた際の通信速度の情報や、過去に情報提供装置に通信をした際の通信速度のログ情報等を利用することができる。
【0228】
そして、計算負荷が低い側、あるいは、通信性能が高い側のゲーム装置201が、情報提供装置からの差分情報の取得を行うものとする。
【0229】
たとえば、子機の方が計算負荷や通信負荷が低いと判定された場合には、子機が差分情報の取得を行い、これを親機に伝達する。逆に、親機の方が計算負荷や通信負荷が低いと判定された場合には、親機が差分情報の取得を行い、これを子機に伝達する。このようにして、両ゲーム装置201のゲーム装置のバージョンが揃うことになる。
【0230】
両ゲーム装置201は、互いの計算負荷や通信性能を交換し合うので、その情報を自身の情報を対比するだけで、自身が情報提供装置からの差分情報の取得を行うべき側か否かを決定することができる。
【0231】
したがって、本実施形態では、計算負荷が低い側、通信速度が速い側が差分情報を取得するので、ゲーム情報の更新に要する時間をできるだけ短くすることができるようになる。
【実施例4】
【0232】
上記実施例では、新しいバージョンのゲーム情報を保持している側のゲーム装置201を親機、古いバージョンのゲーム情報を保持している側のゲーム装置201を子機としていたが、親子の関係は、必ずしもこれに固定されるものではない。
【0233】
たとえば、ゲーム開始時には、従来の通信ゲームの場合と同様に、ランダムあるいはロビーサーバ204等の指示に基づいて親機と子機が定まるものとしても良い。
【0234】
この場合でも、上記の実施形態と同様に、親機と子機とのいずれが情報提供装置から差分情報を取得すべきか、は、親機と子機の両方で決定することとしても良いが、親機の側で決定して、その結果を子機に伝達するような態様を採用することも可能である。
【産業上の利用可能性】
【0235】
以上説明したように、本発明によれば、ゲーム装置に記憶されるプログラムやデータ等のゲーム情報を、通信ゲームの対戦相手と協調して適切に更新するのに好適なゲーム装置、ゲーム制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【符号の説明】
【0236】
101 情報処理装置
102 CPU
103 RAM
104 ROM
105 入力装置
106 画像処理部
107 液晶ディスプレイ
108 音声処理部
109 ヘッドホン
110 カセットリーダ
111 ROMカセット
112 外部メモリ
113 RTC
114 無線LANインターフェース
115 カメラ
121 HD
201 ゲーム装置
203 インターネット
204 ロビーサーバ
401 根ノード
402 エッジ
501 記憶部
502 進行部
503 判定部
504 決定部
505 依頼部
506 更新部
507 提供部

【特許請求の範囲】
【請求項1】
プレイヤーに通信ゲームを提供するゲーム装置であって、
前記通信ゲームに必要なプログラムもしくはデータを含むゲーム情報が記憶される記憶部、
他のゲーム装置との通信を確立し、前記記憶されたゲーム情報に基づいて、前記通信ゲームを進行させる進行部、
前記ゲーム情報の更新が必要であるか否かを定期的もしくは不定期に判定する判定部、
前記ゲーム情報の更新が必要であると判定されると、当該更新に係る差分情報の取得を自身で行うか、前記他のゲーム装置に行わせるか、を決定する決定部、
前記更新に係る差分情報の取得を前記他のゲーム装置に行わせると決定されると、当該他のゲーム装置に前記記憶部に記憶されるゲーム情報のバージョンを指定して、当該差分情報の生成を依頼する依頼部、
前記更新に係る差分情報の取得を自身で行うと決定され、もしくは、前記他のゲーム装置から差分情報の生成が依頼されると、所定の情報提供装置へ、前記記憶部に記憶されるゲーム情報のバージョンを指定して、当該情報提供装置から最新のゲーム情報との差分情報を取得し、当該差分情報に基づいて、前記記憶部に記憶されるゲーム情報を更新する更新部、
前記他のゲーム装置から差分情報の生成が依頼され、前記記憶部に記憶されるゲーム情報が最新のゲーム情報に更新されると、前記依頼に指定されたゲーム情報のバージョンから、前記記憶部に記憶されるゲーム情報との差分情報を生成して、当該他のゲーム装置へ当該差分情報を提供する提供部
を備え、
前記更新部は、前記更新に係る差分情報の取得を前記他のゲーム装置に行わせると決定され、前記他のゲーム装置から差分情報が提供されると、当該差分情報に基づいて、前記記憶部に記憶されるゲーム情報を更新する
ことを特徴とするゲーム装置。
【請求項2】
請求項1に記載のゲーム装置であって、
前記通信ゲームが提供されている間、当該ゲーム装置と、前記他のゲーム装置と、は、計算負荷もしくは前記情報提供装置との間の通信性能を測定して、前記進行部は、前記通信ゲームを提供するための通信の際に、当該測定結果を交換し、
前記決定部は、前記測定された自身の測定結果と、前記交換により得られた前記他のゲーム装置の測定結果と、を比較して、前記差分情報の取得を自身で行うか、当該他のゲーム装置に行わせるか、を決定する
ことを特徴とするゲーム装置。
【請求項3】
請求項1または2に記載のゲーム装置であって、
前記判定部は、少なくとも、前記他のゲーム装置との通信が確立されると、前記ゲーム情報の更新が必要であるか否かを判定する
ことを特徴とするゲーム装置。
【請求項4】
請求項1または2に記載のゲーム装置であって、
前記進行部が、映像の再生中に前記プレイヤーからの操作入力があっても当該操作入力を無視するような映像の再生を開始すると、前記判定部は、前記ゲーム情報の更新が必要であるか否かを判定する
ことを特徴とするゲーム装置。
【請求項5】
請求項1から4のいずれか1項に記載のゲーム装置であって、
前記ゲーム装置と、前記他のゲーム装置と、のいずれか一方は親機として、他方は子機として機能し、
前記ゲーム装置が子機である場合、前記進行部は、前記プレイヤーからの操作入力を前記他のゲーム装置に送信し、前記他のゲーム装置からの指示に基づいて、前記プレイヤーに提供すべき映像を再生し、
前記ゲーム装置が親機である場合、前記進行部は、前記プレイヤーからの操作入力と、前記他のゲーム装置から送信された操作入力と、に基づいて、前記プレイヤーに提供すべき映像を決定し、前記決定された映像を再生し、前記決定された映像を再生すべき旨の指示を、前記他のゲーム装置に送信し、
前記判定部は、前記ゲーム装置が親機である場合にのみ、前記ゲーム情報の更新が必要であるか否かを判定する
ことを特徴とするゲーム装置。
【請求項6】
請求項5に記載のゲーム装置であって、
前記ゲーム装置に記憶されるゲーム情報のバージョンと、前記他のゲーム装置に記憶されるゲーム情報のバージョンと、が、異なる場合、新しいバージョンのゲーム情報を記憶する側が前記親機として機能し、古いバージョンのゲーム情報を記憶する側が前記子機として機能する
ことを特徴とするゲーム装置。
【請求項7】
請求項5または6に記載のゲーム装置であって、
前記情報提供装置と、前記親機と、前記子機と、は、通信ネットワークを形成する木構造のノードとして機能し、
当該通信ネットワークにおいて、前記情報提供装置は、前記親機の親ノードであり、前記親機は、前記子機の親ノードである
ことを特徴とするゲーム装置。
【請求項8】
請求項1から7のいずれか1項に記載のゲーム装置であって、
前記判定部は、前記記憶部に記憶されるゲーム情報のバージョン情報と、前記他のゲーム装置に記憶されるゲーム情報のバージョン情報と、を比較して、両者が異なる場合、前記ゲーム情報の更新が必要である、と判定する
ことを特徴とするゲーム装置。
【請求項9】
プレイヤーに通信ゲームを提供するゲーム装置が実行するゲーム制御方法であって、当該ゲーム装置は、前記通信ゲームに必要なプログラムもしくはデータを含むゲーム情報が記憶される記憶部、進行部、判定部、決定部、依頼部、更新部、提供部を備え、
前記進行部が、他のゲーム装置との通信を確立し、前記記憶されたゲーム情報に基づいて、前記通信ゲームを進行させる進行工程、
前記判定部が、前記ゲーム情報の更新が必要であるか否かを定期的もしくは不定期に判定する判定工程、
前記ゲーム情報の更新が必要であると判定されると、前記決定部が、当該更新に係る差分情報の取得を自身で行うか、前記他のゲーム装置に行わせるか、を決定する決定工程、
前記更新に係る差分情報の取得を前記他のゲーム装置に行わせると決定されると、前記依頼部が、当該他のゲーム装置に前記記憶部に記憶されるゲーム情報のバージョンを指定して、当該差分情報の生成を依頼する依頼工程、
前記更新に係る差分情報の取得を自身で行うと決定され、もしくは、前記他のゲーム装置から差分情報の生成が依頼されると、前記更新部が、所定の情報提供装置へ、前記記憶部に記憶されるゲーム情報のバージョンを指定して、当該情報提供装置から最新のゲーム情報との差分情報を取得し、当該差分情報に基づいて、前記記憶部に記憶されるゲーム情報を更新する更新工程、
前記他のゲーム装置から差分情報の生成が依頼され、前記記憶部に記憶されるゲーム情報が最新のゲーム情報に更新されると、前記提供部が、前記依頼に指定されたゲーム情報のバージョンから、前記記憶部に記憶されるゲーム情報との差分情報を生成して、当該他のゲーム装置へ当該差分情報を提供する提供工程
を備え、
前記更新工程では、前記更新に係る差分情報の取得を前記他のゲーム装置に行わせると決定され、前記他のゲーム装置から差分情報が提供されると、当該差分情報に基づいて、前記記憶部に記憶されるゲーム情報を更新する
ことを特徴とするゲーム制御方法。
【請求項10】
コンピュータに、プレイヤーに通信ゲームを提供させるプログラムであって、当該プログラムは、当該コンピュータを、
前記通信ゲームに必要なプログラムもしくはデータを含むゲーム情報が記憶される記憶部、
他のゲーム装置との通信を確立し、前記記憶されたゲーム情報に基づいて、前記通信ゲームを進行させる進行部、
前記ゲーム情報の更新が必要であるか否かを定期的もしくは不定期に判定する判定部、
前記ゲーム情報の更新が必要であると判定されると、当該更新に係る差分情報の取得を自身で行うか、前記他のゲーム装置に行わせるか、を決定する決定部、
前記更新に係る差分情報の取得を前記他のゲーム装置に行わせると決定されると、当該他のゲーム装置に前記記憶部に記憶されるゲーム情報のバージョンを指定して、当該差分情報の生成を依頼する依頼部、
前記更新に係る差分情報の取得を自身で行うと決定され、もしくは、前記他のゲーム装置から差分情報の生成が依頼されると、所定の情報提供装置へ、前記記憶部に記憶されるゲーム情報のバージョンを指定して、当該情報提供装置から最新のゲーム情報との差分情報を取得し、当該差分情報に基づいて、前記記憶部に記憶されるゲーム情報を更新する更新部、
前記他のゲーム装置から差分情報の生成が依頼され、前記記憶部に記憶されるゲーム情報が最新のゲーム情報に更新されると、前記依頼に指定されたゲーム情報のバージョンから、前記記憶部に記憶されるゲーム情報との差分情報を生成して、当該他のゲーム装置へ当該差分情報を提供する提供部
として機能させ、
前記更新部は、前記更新に係る差分情報の取得を前記他のゲーム装置に行わせると決定され、前記他のゲーム装置から差分情報が提供されると、当該差分情報に基づいて、前記記憶部に記憶されるゲーム情報を更新する
ように機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate