(57)【要約】【課題】プログラムの複雑度を増加させることなく、容易にネットワークゲームのデータを同期化させることが可能な多者間ネットワークゲームにおけるデータ同期化方法を提供する。【解決手段】 第１クライアントで駆動されるゲームのロジックに従って前記第１クライアント所有の客体のうちその属性が変化したデータを区分して探し出す第１段階と、前記属性が変化したデータのその変化内容を抽出し、その内容をパケット単位で分解して第２クライアントへ伝送する第２段階とを含み、前記第１段階及び前記第２段階は相互独立的に区分されたモジュールで行う。【選択図】図１
2005087418.tif 000002
【特許請求の範囲】
【請求項１】
Ｐ２Ｐネットワークゲームで互いに異なるクライアント間のデータ同期化方法において、
第１クライアントで駆動されるゲームのロジックに従って前記第１クライアント所有の客体のうちその属性が変化したデータを区分して探し出す第１段階と、
前記属性が変化したデータの変化内容を抽出し、その内容をパケット単位で分解して第２クライアントに伝送する第２段階とを含み、
前記第１段階及び前記第２段階は相互独立的に区分されたモジュールで行われることを特徴とする多者間ネットワークゲームにおけるデータ同期化方法。
【請求項２】
前記第１段階は、前記客体を構成するデータのうちその属性が変化したデータを区分することを特徴とする請求項１記載の多者間ネットワークゲームにおけるデータ同期化方法。
【請求項３】
前記第２段階は、推測航法技法、フォワードエラー修正技法、ＮＡＣＫに基づいた信頼伝送技法及びＡＣＫに基づいた信頼伝送技法の中少なくとも一つ或いはそれらの組み合わせを用いてパケットを伝送することを特徴とする請求項１記載の多者間ネットワークゲームにおけるデータ同期化方法。
【請求項４】
前記第２段階は、前記第１クライアント所有の客体情報と前記第２クライアント所有の客体情報を共有させ、前記第１及び第２クライアントのデータを同期化させることを特徴とする請求項３記載の多者間ネットワークゲームにおけるデータ同期化方法。
【請求項５】
Ｐ２Ｐネットワークゲームのための装置において、
ゲーム用アプリケーションが駆動されてゲームのロジックに従って前記Ｐ２Ｐネットワークゲームを行う複数のクライアントと、
前記クライアント間の前記ネットワークゲームを仲介するゲームサーバとを備え、
前記アプリケーションは、
前記ゲームに使用される客体を定義して前記ゲームを進行させ、前記客体の属性変化を管理するゲーム運営モジュールと、
前記ゲームサーバと前記クライアントとの間及び前記クライアント間の通信を担当し、前記客体の属性変化の際に変化した内容を抽出して、前記ゲームに参加した他のクライアントにパケット単位で伝送する通信モジュールとを備えることを特徴とするネットワークゲーム装置。
【請求項６】
前記クライアントは前記客体を構成するデータを格納する客体ＤＢをさらに備え、前記通信モジュールは前記ゲームに参加したクライアントの前記客体ＤＢを共有させて前記クライアント間のデータを同期化させることを特徴とする請求項５記載のネットワークゲーム装置。
【請求項７】
前記通信モジュールは、推測航法技法、フォワードエラー修正技法、ＮＡＣＫに基づいた信頼伝送技法及びＡＣＫに基づいた信頼伝送技法の中少なくとも一つ或いはそれの組み合わせを用いてパケットを伝送することを特徴とする請求項６記載のネットワークゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｐ２Ｐ(Peer to Peer)方式のオンラインゲームに係り、より詳しくは、データ同期化によってネットワークの物理的限界によるデータ伝送の非即刻性と非信頼性を最小化するための多者間ネットワークゲームにおけるデータ同期化方法及びその方法を用いたネットワークゲーム装置に関する。
【背景技術】
【０００２】
最近、インターネットの拡散に伴って、インターネットを用いてオンライン上でゲームするネットワークゲームを楽しむインターネットユーザが爆発的に増加している。このようなネットワークゲームの殆どはゲームサーバに管理者サイトを開設し、このゲームサーバを介してユーザの端末機（以下、「クライアント」という）間のゲームを仲介する方式で行われている。
【０００３】
オンライン上で行われるこのようなネットワークゲームにおいて、遠隔にあるユーザが互いに実時間でゲームを楽しむためには、ゲームに使用される客体の特性変化が各クライアントの画面上で同一にディスプレイされなければならない同期化が必要である。
【０００４】
ところが、ネットワーキングでは、「非信頼性」と「非即刻性」を内包しているため、インターネットでクライアントの間に伝送されるデータパケットが何の断りもなしに損失するおそれがあり、制限された時間内に受信されるという保障はない。しかも、「即刻性」と「信頼性」の相互間には互いに密接した関係をもっているため、いずれか一つを過度に追求すると、もう一つで問題を引き起こすことになる。
【０００５】
このような問題は、ネットワークの物理的限界からくるものなので、完全に除去することは不可能である。但し、このような問題がユーザに感じられる形で現れないように隠すことだけは可能である。このための代表的な技法として、外挿法(extrapolation)を用いた推測航法(Dead Reckoning)技法、フォワードエラー修正(Forward Error Correction；ＦＥＣ)技法などの最適化技法などが使用されている。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
一方、このような技法は、データパケットにのせられる特定のデータフィールド毎にアプリケーションロジックを付けて別途に処理しなければならない。ところが、このためにパケットのフィールド単位でアプリケーションロジックを付加すると、プログラムのバージョンの変化に敏感になり、プログラムの複雑度が過度に増加するおそれがある。
【課題を解決するための手段】
【０００７】
かかる問題を解決するための本発明の多者間ネットワークゲームにおけるデータ同期化方法は、第１クライアントで駆動されるゲームのロジックに従って前記第１クライアント所有の客体のうちその属性が変化したデータを区分して探し出す第１段階と、前記属性が変化したデータのその変化内容を抽出し、その内容をパケット単位で分解して第２クライアントへ伝送する第２段階とを含み、前記第１段階及び前記第２段階は相互独立的に区分されたモジュールで行われる。
【０００８】
本発明において、前記第１段階は、前記客体を構成するデータのうちその属性が変化したデータを区分することを特徴とすることができ、前記第２段階は、推測航法技法、フォワードエラー修正（ＦＥＣ） 技法、ＮＡＣＫ(Negative Acknowledgment)に基づいた信頼伝送技法及びＡＣＫ(Acknowledgment)に基づいた信頼伝送技法の中少なくとも一つ或いはそれらの組み合わせを用いてパケットを伝送することを特徴とすることができる。また、前記第２段階は前記第１クライアント所有の客体情報と前記第２クライアント所有の客体情報を共有させて前記第１及び第２クライアントのデータを同期化させることを特徴とすることができる。
【０００９】
本発明のネットワークゲーム装置は、Ｐ２Ｐネットワークゲームのための装置において、ゲーム用アプリケーションが駆動され、ゲームロジックに従って前記Ｐ２Ｐネットワークゲームを行う複数のクライアントと、前記クライアント間の前記ネットワークゲームを仲介するゲームサーバとを備え、前記アプリケーションは、前記ゲームに使用される客体を定義して前記ゲームを進行させ、前記客体の属性変化を管理するゲーム運用モジュールと、前記ゲームサーバと前記クライアントとの間及び前記クライアント間の通信を担当し、前記客体の属性変化の際に変化した内容を抽出して、前記ゲームに参加した他のクライアントにパケット単位で伝送する通信モジュールとを備える。
【００１０】
本発明において、前記クライアントは、前記客体を構成するデータを格納する客体データベース（ＤＢ）をさらに備え、前記通信モジュールは、前記ゲームに参加したクライアントの前記客体ＤＢを共有させて前記クライアント間のデータを同期化させることを特徴とすることができる。また、前記通信モジュールは推測航法技法、フォワードエラー修正（ＦＥＣ）技法、ＮＡＣＫに基づいた信頼伝送技法及びＡＣＫに基づいた信頼伝送技法の中少なくとも一つ或いはそれらの組み合わせを用いてパケットを伝送することを特徴とすることができる。
【発明の効果】
【００１１】
本発明では、従来のアプリケーションで行っていた機能のうち、客体の変化内容を伝送及び受信する通信機能を別途のモジュールで処理することにより、プログラムの複雑度を増加させることなく容易にネットワークゲームのデータを同期化させることができる。
【発明を実施するための最良の形態】
【００１２】
以下、添付図に基づいて本発明の好適な実施例を詳細に説明する。これらの実施例は単に本発明をより具体的に説明するためのもので、本発明の範囲がこれらの実施例に限定されないことは当業界で通常の知識を有する者には明らかなことである。
【００１３】
図１は本発明に係るＰ２Ｐ方式のネットワークゲームを行うためのシステムの概略的な構成を示す図である。
【００１４】
ゲームサーバ１００は、ゲームに参加したクライアント２００、３００及びそのユーザに対する情報を管理し、クライアント２００、３００間のＰ２Ｐ方式のネットワークゲームを仲介する。たとえば、ゲームサーバ１００は、クライアント２００のＩＰアドレスを記憶していて、このＩＰアドレスをクライアント２００とゲームを希望するクライアント３００に伝達し、クライアント２００をサーバとするＰ２Ｐ方式のネットワークゲームが行われるようにする。
【００１５】
クライアント２００、３００はネットワークゲームのためのプログラムが駆動され、ゲームロジックに従って相対クライアント３００、２００とＰ２Ｐ方式のネットワークゲームを行う。このため、クライアント２００、３００はゲームに使用される客体（たとえば、タンク）を生成及び削除し、客体を構成するデータ（たとえば、タンクの位置、方向、速度、砲身の方向、砲発射時間及び方向、無線交信の内容など）の変化を抽出し、その変化した内容を相対クライアント３００、２００に伝送することにより、データを同期化させる。
【００１６】
このようなクライアント２００、３００間のデータ同期化のために、クライアント２００、３００は、連続性の原理(The Principle of Continuity)に基づいて未来を予測する外挿式予測法(extrapolative forecasting)を用いる推測航法技法、データ情報の他にデータ情報を表現する付加的な情報を共に伝送して、データ受信側でこのような付加情報を用いてデータ上のエラーを発見し、これを修正可能にするフォワードエラー修正（ＦＥＣ）技法、ＮＡＣＫに基づいた信頼伝送技法又はＡＣＫに基づいた信頼伝送技法などの最適化技法を用いてデータパケットを伝送する。
【００１７】
このような最適化技法は既に有無線通信で使用されている方法であって、これについての詳細な説明は略する。
【００１８】
ところが、上述したように、このような最適化技法を使用するには、伝送されるパケットにのせられる特定のデータフィールド毎にアプリケーションロジックを付けて別途に処理しなければならないので、このために、本発明では従来のネットワークゲームのためのアプリケーションの機能を分離させて運営する。
【００１９】
すなわち、本発明では、いずれか一つのクライアント２００で発生した客体の特性変化（たとえば、タンクの移動）をゲームの相対クライアント３００と同期化させるために、客体の特性変化を知らせるためのデータパケットの組立と分解、伝送と再伝送、エラーデータ補正どの通信関連作業を専担するモジュール（階層）を従来のアプリケーションから分離させて別途に運営する。
【００２０】
本発明では、このようにアプリケーションで通信関連作業を専担するモジュールをネクサス(Nexus)と命名して使用する。
【００２１】
図２は本発明に係るクライアントの構成を簡略に示す図である。
【００２２】
本発明において、ネットワークゲームを行うためのゲームアプリケーションは、２つのモジュール（階層）、すなわち各クライアント２００、３００内における当該ゲームプログラムを駆動させるゲーム運営モジュール２２０、３２０、及び客体の変化に対するデータを伝送するための通信モジュールとしてのネクサス２６０、３６０に分離されて運営される。
【００２３】
ゲーム運営モジュール２２０、３２０は、ゲームのロジックに従ってゲームで使用される客体を定義し、その客体の属性変化を管理する。すなわち、ゲーム運営モジュール２２０、３２０は客体を生成及び削除し、必要に応じて客体の属性を修正し或いはその属性値を読み取る。
【００２４】
客体２４０、３４０はゲーム運営モジュール２２０、３２０がネットワークゲームを運営するために必要なデータを格納する。
【００２５】
ネクサス２６０、３６０は、ゲームに参加したクライアント２００、３００所有の客体に対するデータを共有させ、そのデータの変化した内容を実時間で同期化させる。このために、ネクサス２６０は、客体ＤＢ２４０の客体を構成するデータが変更されたことを感知すると、当該客体を構成するデータのどれがどの程度変化したかを抽出し、その変化した内容をパケット単位で分解した後、クライアント３００に伝送する。そして、受信側のネクサス３６０は受信したパケットを組み立ててクライアント３００所有の客体の当該データをアップデートしてクライアント２００と一致（同期化）させる。
【００２６】
これにより、受信側のクライアントでは、変化したデータからなる客体を画面にディスプレイする。
【００２７】
客体ＤＢ２４０、３４０は、ゲームに使用される客体を構成するデータを格納する。各客体は当該客体の特徴を定義する属性（客体の形態、色、位置、方向及び大きさといった変数）からなり、各属性値としては時間依存性(time-dependency)、信頼度水準、時間拘束性(time-constraint)、永続性(persistency)などが明示される。
【００２８】
次に、上述した構成を有するクライアント２００、３００のゲーム進行過程におけるデータ同期化方法を簡略に説明する。
【００２９】
ゲーム進行のための準備過程は、従来のネットワークゲームにおける過程と同一に行われるので、その説明は略する。
【００３０】
遠隔のクライアント２００、３００間のＰ２Ｐネットワークゲーム中に、クライアント２００ユーザが自分のタンク（客体）で砲弾を発射することにより、当該客体（タンク）の属性変化を起こした場合、ゲーム運営モジュール２２０はタンクを構成するデータ（属性）のどれが変化したかを客体ＤＢ２４０に知らせる。
【００３１】
たとえば、砲弾発射の際にタンクが移動しながら砲身の方向を変化させて砲弾を発射し、或いはタンクはそのままでありながら砲身の方向のみを変化させて砲弾を発射することもある。この際、後者の場合、タンクの位置は変化しなかったので、タンクの位置に対するデータはデータ同期化のためにさらに伝送する必要がない。
【００３２】
ネクサス２６０は、当該データがどの程度変化したかを抽出し、その変化した内容をデータの性格に応じて別途のチャネルで受信側のネクサス３６０に伝送する。
【００３３】
たとえば、ネクサス２６０は、タンクの砲身がどの方向にどれほど動いたか、砲弾がどの方向にどれほどの速度で移動しているか等に対するデータを抽出し、そのデータをパケット単位で分解してネクサス３６０に伝送する。
【００３４】
この際、従来ではこのような客体の変化した内容を伝送するためにパケットにのせられる特定のデータフィールド毎にアプリケーションロジックを付けてアプリケーションで行っていた作業を、本発明では別途のネクサス２６０を用いて当該作業を行うようにすることで、プログラムを複雑にせず、上述した最適化技法を用いてパケットを伝送することができる。
【００３５】
受信側のネクサス３６０は、送信側のネクサス２６０から受信したパケットを組み立てて自分の客体ＤＢ３４０をアップデートする。
【００３６】
すなわち、ネクサス２６０、３６０はそれぞれ管理する客体ＤＢ２４０、３４０を相互連結させて一種の共有空間を形成し、これによりクライアント２００、３００は自分所有の客体の変化を互いに同期化させることができる。
【００３７】
ゲーム運営モジュール３２０がネクサス３６０で組み立てられたデータをクライアント３００の画面にディスプレイすることにより、クライアント３００ユーザは変化した、すなわちクライアント２００の画面にディスプレイされる客体と同期化された客体を見ることができる。
【図面の簡単な説明】
【００３８】
【図１】本発明に係るＰ２Ｐ方式のネットワークゲームを行うためのシステムの概略的な構成を示す図である。
【図２】本発明に係るクライアントの構成を簡略に示す図である。
【符号の説明】
【００３９】
１００    ゲームサーバ
２００、３００    クライアント
２２０、３２０    ゲーム運営モジュール
２４０、３４０    客体ＤＢ
２６０、３６０    ネクサス(Nexus)
【図１】
2005087418.tif 000003
【図２】
2005087418.tif 000004