(57)【要約】      （修正有）【課題】通信環境に応じて必要十分な遅延を設定することにより効率的なレスポンスでプレーヤの操作を反映可能なネットワークゲームを実現する。【解決手段】各フレームに対応した識別番号に対応付けられた自機のゲームデータを生成する自機ゲームデータ生成部１１７と、ゲームデータに送受信する通信制御部１１５と、識別番号に基づき自機のゲームデータを第１のバッファに、他機のゲームデータを第２のバッファに記憶させ、第１のバッファと第２のバッファに記憶されているゲームデータを識別番号に基づき同期を取って抽出する同期制御部１１６と、第１のバッファと、第２のバッファから抽出したゲームデータとに基づいて、フレーム毎にゲーム演算を行うゲーム演算部１１０と、テスト通信を行い、結果に基づき通信遅延時間を判定する通信遅延時間判定処理部１１８と、遅延時間以上の入力遅延時間を設定し、他機に送信する入力遅延時間設定部１１９と含む。【選択図】図１
2010029393.tif 000002
【特許請求の範囲】
【請求項１】
複数のゲーム機それぞれが、各ゲーム機への入力情報に基づき生成されたゲームデータをネットワークを介して相互に送受信し、各ゲーム機において複数のゲーム機のゲームデータに基づいてゲーム演算を行うゲーム機のためのプログラムであって、
自機への入力情報に基づき、各フレーム毎に、各フレームに対応した識別番号に対応付けられた自機のゲームデータを生成する自機ゲームデータ生成部と、
生成したゲームデータを所定の間隔で他機にネットワークを介して送信し、他機から送信されたゲームデータを、ネットワークを介して受信する処理とを行うゲームデータ通信制御部と、
自機のゲームデータに対応付けられている識別番号に基づき自機のゲームデータを第１のバッファに記憶し、他機のゲームデータに対応付けられている識別番号に基づき他機のゲームデータを第２のバッファに記憶する処理を行い、第１のバッファに記憶されているゲームデータと第１のバッファに記憶されているゲームデータを各ゲームデータに対応付けられている識別番号に基づき同期を取って抽出する同期制御部と、
第１のバッファから抽出したゲームデータと、第２のバッファから抽出したゲームデータとに基づいて、フレーム毎にゲーム演算を行うゲーム演算部と、
自機と他機の間でテスト通信を行い、テスト通信結果に基づき通信遅延時間を判定する通信遅延時間判定処理部と、
判定した前記通信遅延時間以上の長さの入力遅延時間を設定し、当該入力遅延時間をネットワークを介して他機に送信する入力遅延時間設定処理部と、して、コンピュータを機能させ、
前記同期制御部は、
第１のバッファ及び第２のバッファに記憶されているゲームデータに対応付けられた前記識別番号と前記入力反映時間に基づき、前記入力遅延時間を経過したゲームデータを抽出することを特徴とするプログラム。
【請求項２】
請求項１において、
自機ゲームデータ生成部は、
自機への入力情報を受け付けたフレームと前記入力遅延時間に基づき、前記入力遅延時間を反映させた演算予定フレームに対応する識別番号に対応付けられた自機のゲームデータを生成し、
前記同期制御部は、
前記識別番号に基づき演算予定フレームが到来したゲームデータを抽出することを特徴とするプログラム。
【請求項３】
請求項１乃至２のいずれかにおいて、
前記入力遅延時間設定処理部は、
自機と他機の表示遅延時間情報に基づき自機と他機の表示遅延時間差を求め、表示遅延の短い方の入力遅延時間が表示遅延時間差分だけ長くなるように自機の入力遅延時間と、他機の入力遅延時間を設定し、他機の入力遅延時間情報をネットワークを介して他機に送信することを特徴とするプログラム。
【請求項４】
複数のゲーム機それぞれが、各ゲーム機への入力情報に基づき生成されたゲームデータをネットワークを介して相互に送受信し、各ゲーム機において複数のゲーム機のゲームデータに基づいてゲーム演算を行うゲーム機のためのプログラムであって、
自機への入力情報に基づき、各フレーム毎に、各フレームに対応した識別番号に対応付けられた自機のゲームデータを生成する自機ゲームデータ生成部と、
生成したゲームデータを所定の間隔で他機にネットワークを介して送信し、他機から送信されたゲームデータを、ネットワークを介して受信する処理とを行うゲームデータ通信制御部と、
自機のゲームデータに対応付けられている識別番号に基づき自機のゲームデータを第１のバッファに記憶し、他機のゲームデータに対応付けられている識別番号に基づき他機のゲームデータを第２のバッファに記憶する処理を行い、第１のバッファに記憶されているゲームデータと第１のバッファに記憶されているゲームデータを各ゲームデータに対応付けられている識別番号に基づき同期を取って抽出する同期制御部と、
第１のバッファから抽出したゲームデータと、第２のバッファから抽出したゲームデータとに基づいて、フレーム毎にゲーム演算を行うゲーム演算部と、
自機と他機の表示遅延時間情報に基づき自機と他機の表示遅延時間差を求め、表示遅延の短い方の入力遅延時間が表示遅延時間差分だけ長くなるように自機の入力遅延時間と、他機の入力遅延時間を別個に設定し、他機の入力遅延時間情報をネットワークを介して他機に送信する入力遅延時間設定処理部と、してコンピュータを機能させ、
前記同期制御部は、
第１のバッファ及び第２のバッファに記憶されているゲームデータに対応付けられた前記識別番号と自機の前記入力反映時間に基づき、前記入力遅延時間を経過したゲームデータを抽出することを特徴とするプログラム。
【請求項５】
請求項３乃至４のいずれかにおいて、
自機ゲームデータ生成部は、
自機への入力情報を受け付けたフレームと自機の入力遅延時間に基づき、自機の入力遅延時間を反映させた演算予定フレームに対応する識別番号に対応付けられた自機演算用の自機のゲームデータを生成し、
自機への入力情報を受け付けたフレームと他機の入力遅延時間に基づき、他機の入力遅延時間を反映させた演算予定フレームに対応する識別番号に対応付けられた他機送信用の自機のゲームデータを生成し、
前記ゲームデータ通信制御部は、
生成した他機送信用の自機のゲームデータを所定の間隔で他機にネットワークを介して送信し、他機から送信されたゲームデータを、ネットワークを介して受信する処理とを行い、
前記同期制御部は、
自機演算用の自機のゲームデータに対応付けられている識別番号に基づき自機演算用の自機のゲームデータを第１のバッファに記憶し、他機から受信したゲームデータに対応付けられている識別番号に基づき他機のゲームデータを第２のバッファに記憶する処理を行うことを特徴とするプログラム。
【請求項６】
請求項３乃至５のいずれかにおいて、
ユーザーからの入力情報に基づき自機の表示遅延時間情報を設定する表示遅延時間設定処理部を更に含み、
設定された自機の表示遅延時間情報を他機にネットワークを介して送信するとともに、他機から送信された他機の表示遅延時間情報をネットワークを介して受信する処理とを行う表示遅延時間情報通信制御部と、を含み、
前記入力遅延時間設定処理部は、
設定された自機の表示遅延時間情報及び受信した他機の表示遅延時間情報報に基づき、自機と他機の表示遅延時間差を求めることを特徴とするプログラム。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記通信遅延時間判定処理部は、
自機と対戦相手となる他機の間でパケットの送受信を行うテスト通信を連続して複数回行い、複数回のテスト通信結果に基づき通信遅延時間を判定することを特徴とするプログラム。
【請求項８】
請求項７において、
前記通信遅延時間判定処理部は、
テスト通信開始後の所定期間内のテスト通信状況に基づき通信遅延時間を判定することを特徴とするプログラム。
【請求項９】
請求項１乃至８のいずれかにおいて、
自機への入力操作と各ゲームで共通に使用される動作情報の対応関係を設定する設定入力に基づき、自機への入力操作と前記動作情報の対応関係が定義された入力操作定義情報を生成する入力操作定義情報生成部を含み、
前記自機ゲームデータ生成部は、
入力操作定義情報に基づき、入力情報が示す自機への入力操作を対応する動作情報に変換し、当該動作情報を含むゲームデータを生成することを特徴とするプログラム。
【請求項１０】
請求項１乃至８のいずれかにおいて、
自機への入力操作と各ゲームで共通に使用される動作情報の対応関係を設定する設定入力に基づき、自機への入力操作と前記動作情報の対応関係が定義された入力操作定義情報を生成する入力操作定義情報生成部と、
生成した自機の入力操作定義情報を他機にネットワークを介して送信するとともに、他機から送信された他機の入力操作定義情報を、ネットワークを介して受信する処理とを行う入力操作定義情報通信制御部と、を含み、
前記自機ゲームデータ生成部は、
入力情報が示す自機への入力操作の情報を含むゲームデータを生成し、
前記ゲーム演算部は、
自機の入力操作定義情報に基づき、第１のバッファから抽出したゲームデータに含まれた入力操作の情報を入力操作に対応した自機の動作情報に変換し、
他機の入力操作定義情報に基づき、第２のバッファから抽出したゲームデータに含まれた入力操作の情報を入力操作に対応した他機の動作情報に変換し、
自機の動作情報と他機の動作情報に基づいて、各フレームのゲーム演算を行うことを特徴とするプログラム。
【請求項１１】
請求項１乃至１０のいずれかにおいて、
前記ゲーム演算部は、
抽出されるべき他機のゲームデータを受信していない場合には、ゲーム演算処理を中断し、前フレームと同じ画像を表示することを特徴とするプログラム。
【請求項１２】
請求項１乃至１１のいずれかにおいて、
前記ゲームデータ通信制御部は、
途中でゲームデータが紛失しても再送されないタイプの第１のプロトコルでゲームデータを他機に送信し、前記第１のプロトコルで他機から送信されたゲームデータを受信する処理を行い、
抽出されるべき他機のゲームデータ受信していない場合には、抽出されるべきゲームデータの識別番号を再送データ特定情報として付加してゲームデータ再送要求を行い、
他機からゲームデータ再送要求を受信した場合には、付加された再送データ特定情報に対応する識別番号に対応付けられたゲームデータを他機に送信することを特徴とするプログラム。
【請求項１３】
請求項１乃至１１のいずれかにおいて、
前記ゲームデータ通信制御部は、
途中でゲームデータが紛失しても再送されないタイプの第１のプロトコルでｎ回パケットを送信する毎に、送信の途中でデータが紛失すると再送されるタイプの第２のプロトコルでｎ回分のパケットに含まれたゲームデータを含む１つのパケットを他機に送信し、前記第１のプロトコル及び前記第２のプロトコルで他機から送信されたパケットを受信し、
前記同期制御部は、
所与のフレームのゲームデータに対応したパケットを前記第１のプロトコルで他機から受信出来なかった場合には、前記第２のプロトコルで他機から送信されたパケットに含まれた前記所与のフレームのゲームデータを第２のバッファに記憶する処理を行うことをことを特徴とするプログラム。
【請求項１４】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至１３のいずれかに記載のプログラムを記憶されていることを特徴とする情報記憶媒体。
【請求項１５】
複数のゲーム機それぞれが、各ゲーム機への入力情報に基づき生成されたゲームデータをネットワークを介して相互に送受信し、各ゲーム機において複数のゲーム機のゲームデータに基づいてゲーム演算を行うゲーム機であって、
自機への入力情報に基づき、各フレーム毎に、各フレームに対応した識別番号に対応付けられた自機のゲームデータを生成する自機ゲームデータ生成部と、
生成したゲームデータを所定の間隔で他機にネットワークを介して送信し、他機から送信されたゲームデータを、ネットワークを介して受信する処理とを行うゲームデータ通信制御部と、
自機のゲームデータに対応付けられている識別番号に基づき自機のゲームデータを第１のバッファに記憶し、他機のゲームデータに対応付けられている識別番号に基づき他機のゲームデータを第２のバッファに記憶する処理を行い、第１のバッファに記憶されているゲームデータと第１のバッファに記憶されているゲームデータを各ゲームデータに対応付けられている識別番号に基づき同期を取って抽出する同期制御部と、
第１のバッファから抽出したゲームデータと、第２のバッファから抽出したゲームデータとに基づいて、フレーム毎にゲーム演算を行うゲーム演算部と、
自機と他機の間でテスト通信を行い、テスト通信結果に基づき通信遅延時間を判定する通信遅延時間判定処理部と、
判定した前記通信遅延時間以上の長さの入力遅延時間を設定し、当該入力遅延時間をネットワークを介して他機に送信する入力遅延時間設定処理部と、を含み、
前記同期制御部は、
第１のバッファ及び第２のバッファに記憶されているゲームデータに対応付けられた前記識別番号と前記入力反映時間に基づき、前記入力遅延時間を経過したゲームデータを抽出することを特徴とするゲーム機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及びゲーム機に関する。
【背景技術】
【０００２】
従来から、ネットワークを介して複数のプレーヤが参加してゲームを行うオンラインゲームが知られている。このようなオンラインゲームでは、ゲーム機が、ネットワークを介して他のゲーム機とデータを送受信し、同期をとってゲームを進行させる。例えば、特許文献１、特許文献２、特許文献３に記載されているように、各ゲーム機間において同期をとってゲームを進行させる技術が開示されている。
【特許文献１】特開２００１−１７７３５号公報
【特許文献２】特開２００２−１８６７８５号公報
【特許文献３】特開２００５−６９１３号公報
【特許文献４】特開２００６−３２５０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ネットワークを介してデータのやり取りを行う場合には、通信による遅延があるので、これを考慮して入力を反映させることが必要である。しかし参加するプレーヤの通信環境は時と場合によって異なるため、常に一定の通信遅延を設定していては、プレーヤの操作入力がゲームへ反映されるまで長期間を要することになる問題が発生する。特に、格闘ゲームのようにプレーヤの操作入力のタイミングが重視されるゲームでは、プレーヤの操作入力のレスポンスの悪さが、プレーヤに不快感を与えることになる。
【０００４】
特許文献４においては、他のゲーム機から受信するデータの通信遅延時間に基づいて、他のプレーヤが操作する他キャラクタの移動を予測して、プレーヤキャラクタと他プレーヤキャラクタとの整合性を図り、レスポンスの早いゲームを実現する手法が開示されている。しかし、格闘ゲームのように、操作タイミングの技が重視されるゲームにおいては、他キャラクタの移動を予測する手法は不向きである。例えば、格闘ゲームの場合は、タイミングに応じた各プレーヤからの入力情報が揃った段階で順次ゲーム演算を行い、各キャラクタを動作させている。したがって、各キャラクタの動作を予測する手法は採用し難い。
【０００５】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、通信環境に応じて必要十分な遅延を設定することにより効率的なレスポンスでプレーヤの操作を反映可能なネットワークゲームを実現することができるプログラム、情報記憶媒体及びゲーム機を提供することにある。
【０００６】
また本発明の他の目的は、表示環境に応じて最適な遅延を設定することにより表示同期のとれたネットワークゲームを実現することができるプログラム、情報記憶媒体及びゲーム機を提供することにある。
【課題を解決するための手段】
【０００７】
（１）本発明は、
複数のゲーム機それぞれが、各ゲーム機への入力情報に基づき生成されたゲームデータをネットワークを介して相互に送受信し、各ゲーム機において複数のゲーム機のゲームデータに基づいてゲーム演算を行うゲーム機のためのプログラムであって、
自機への入力情報に基づき、各フレーム毎に、各フレームに対応した識別番号に対応付けられた自機のゲームデータを生成する自機ゲームデータ生成部と、
生成したゲームデータを所定の間隔で他機にネットワークを介して送信し、他機から送信されたゲームデータを、ネットワークを介して受信する処理とを行うゲームデータ通信制御部と、
自機のゲームデータに対応付けられている識別番号に基づき自機のゲームデータを第１のバッファに記憶し、他機のゲームデータに対応付けられている識別番号に基づき他機のゲームデータを第２のバッファに記憶する処理を行い、第１のバッファに記憶されているゲームデータと第１のバッファに記憶されているゲームデータを各ゲームデータに対応付けられている識別番号に基づき同期を取って抽出する同期制御部と、
第１のバッファから抽出したゲームデータと、第２のバッファから抽出したゲームデータとに基づいて、フレーム毎にゲーム演算を行うゲーム演算部と、
自機と他機の間でテスト通信を行い、テスト通信結果に基づき通信遅延時間を判定する通信遅延時間判定処理部と、
判定した前記通信遅延時間以上の長さの入力遅延時間を設定し、当該入力遅延時間をネットワークを介して他機に送信する入力遅延時間設定処理部と、して、コンピュータを機能させ、
前記同期制御部は、
第１のバッファ及び第２のバッファに記憶されているゲームデータに対応付けられた前記識別番号と前記入力反映時間に基づき、前記入力遅延時間を経過したゲームデータを抽出するゲーム機に関する。
【０００８】
また本発明は、上記各部としてコンピュータを機能させるプログラム及びそのようなプログラムを記憶するコンピュータに読み取り可能な情報記憶媒体に関するものである。
【０００９】
通信遅延時間とは各ゲーム機間の通信に要する時間（自機から送信されたゲームデータが何フレーム遅れで他機に受信されるか又は他機から送信されたゲームデータが何フレーム遅れで自機が受信するかを示す時間）であり、単位フレーム数でもよい。
【００１０】
入力遅延時間とは各ゲーム機において入力から何フレーム後に当該入力に基づくゲーム演算を行うのかを示す時間であり、単位はフレーム数でもよい。
【００１１】
前記同期制御部は、各ゲームデータに対応した入力情報が入力されてからの経過フレームが前記入力遅延時間に達したゲームデータを順次抽出することで、入力遅延時間を経過したゲームデータを古いほうから順次抽出してもよい。
【００１２】
また第１のバッファとは自機のゲームデータが記憶される記憶領域であり、第２のバッファとは他機から受信したゲームデータが記憶される記憶領域であって、例えば主記憶の一部に設けられてソフトウエア的によって読み書きの制御が行われる構成でもよい。
【００１３】
本発明によれば、通信環境に応じて必要十分な遅延を設定することにより効率的なレスポンスでプレーヤの操作を反映可能なネットワークゲームを実現することができる。
【００１４】
（２）本発明のゲーム機、プログラム及び情報記憶媒体では、
自機ゲームデータ生成部は、
自機への入力情報を受け付けたフレームと前記入力遅延時間に基づき、前記入力遅延時間を反映させた演算予定フレームに対応する識別番号に対応付けられた自機のゲームデータを生成し、
前記同期制御部は、
前記識別番号に基づき演算予定フレームが到来したゲームデータを抽出してもよい。
【００１５】
自機ゲームデータ生成部は、例えばゲームデータに対応した入力情報入力時のフレーム番号に自機の入力反映時間（フレーム数）を足し込んだフレーム番号を生成し、生成したフレーム番号に対応した識別番号を生成して、ゲームデータに対応付けても良い。
【００１６】
（３）本発明のゲーム機、プログラム及び情報記憶媒体では、
前記入力遅延時間設定処理部は、
自機と他機の表示遅延時間情報に基づき自機と他機の表示遅延時間差を求め、表示遅延の短い方の入力遅延時間が表示遅延時間差分だけ長くなるように自機の入力遅延時間と、他機の入力遅延時間を設定し、他機の入力遅延時間情報をネットワークを介して他機に送信してもよい。
【００１７】
（４）本発明は、
複数のゲーム機それぞれが、各ゲーム機への入力情報に基づき生成されたゲームデータをネットワークを介して相互に送受信し、各ゲーム機において複数のゲーム機のゲームデータに基づいてゲーム演算を行うゲーム機のためのプログラムであって、
自機への入力情報に基づき、各フレーム毎に、各フレームに対応した識別番号に対応付けられた自機のゲームデータを生成する自機ゲームデータ生成部と、
生成したゲームデータを所定の間隔で他機にネットワークを介して送信し、他機から送信されたゲームデータを、ネットワークを介して受信する処理とを行うゲームデータ通信制御部と、
自機のゲームデータに対応付けられている識別番号に基づき自機のゲームデータを第１のバッファに記憶し、他機のゲームデータに対応付けられている識別番号に基づき他機のゲームデータを第２のバッファに記憶する処理を行い、第１のバッファに記憶されているゲームデータと第１のバッファに記憶されているゲームデータを各ゲームデータに対応付けられている識別番号に基づき同期を取って抽出する同期制御部と、
第１のバッファから抽出したゲームデータと、第２のバッファから抽出したゲームデータとに基づいて、フレーム毎にゲーム演算を行うゲーム演算部と、
自機と他機の表示遅延時間情報に基づき自機と他機の表示遅延時間差を求め、表示遅延の短い方の入力遅延時間が表示遅延時間差分だけ長くなるように自機の入力遅延時間と、他機の入力遅延時間を別個に設定し、他機の入力遅延時間情報をネットワークを介して他機に送信する入力遅延時間設定処理部と、してコンピュータを機能させ、
前記同期制御部は、
第１のバッファ及び第２のバッファに記憶されているゲームデータに対応付けられた前記識別番号と自機の前記入力反映時間に基づき、前記入力遅延時間を経過したゲームデータを抽出するゲーム機に関する。
【００１８】
また本発明は、上記各部としてコンピュータを機能させるプログラム及びそのようなプログラムを記憶するコンピュータに読み取り可能な情報記憶媒体に関するものである。
【００１９】
自機の入力遅延時間と他機の入力遅延時間は所定の通信遅延時間より長くなるように設定してもよい。
【００２０】
本発明によれば、表示環境に応じて最適な遅延を設定することにより表示同期のとれたネットワークゲームを実現することができる。
【００２１】
（５）本発明のゲーム機、プログラム及び情報記憶媒体では、
自機ゲームデータ生成部は、
自機への入力情報を受け付けたフレームと自機の入力遅延時間に基づき、自機の入力遅延時間を反映させた演算予定フレームに対応する識別番号に対応付けられた自機演算用の自機のゲームデータを生成し、
自機への入力情報を受け付けたフレームと他機の入力遅延時間に基づき、他機の入力遅延時間を反映させた演算予定フレームに対応する識別番号に対応付けられた他機送信用の自機のゲームデータを生成し、
前記ゲームデータ通信制御部は、
生成した他機送信用の自機のゲームデータを所定の間隔で他機にネットワークを介して送信し、他機から送信されたゲームデータを、ネットワークを介して受信する処理とを行い、
前記同期制御部は、
自機演算用の自機のゲームデータに対応付けられている識別番号に基づき自機演算用の自機のゲームデータを第１のバッファに記憶し、他機から受信したゲームデータに対応付けられている識別番号に基づき他機のゲームデータを第２のバッファに記憶する処理を行ってもよい。
【００２２】
（６）本発明のゲーム機、プログラム及び情報記憶媒体では、
ユーザーからの入力情報に基づき自機の表示遅延時間情報を設定する表示遅延時間設定処理部を更に含み、
設定された自機の表示遅延時間情報を他機にネットワークを介して送信するとともに、他機から送信された他機の表示遅延時間情報をネットワークを介して受信する処理とを行う表示遅延時間情報通信制御部と、を含み、
前記入力遅延時間設定処理部は、
設定された自機の表示遅延時間情報及び受信した他機の表示遅延時間情報報に基づき、自機と他機の表示遅延時間差を求めてもよい。
【００２３】
（７）本発明のゲーム機、プログラム及び情報記憶媒体では、
前記通信遅延時間判定処理部は、
自機と対戦相手となる他機の間でパケットの送受信を行うテスト通信を連続して複数回行い、複数回のテスト通信結果に基づき通信遅延時間を判定してもよい。
【００２４】
（８）本発明のゲーム機、プログラム及び情報記憶媒体では、
前記通信遅延時間判定処理部は、
テスト通信開始後の所定期間内のテスト通信状況に基づき通信遅延時間を判定してもよい。
【００２５】
（９）本発明のゲーム機、プログラム及び情報記憶媒体では、
自機への入力操作と各ゲームで共通に使用される動作情報の対応関係を設定する設定入力に基づき、自機への入力操作と前記動作情報の対応関係が定義された入力操作定義情報を生成する入力操作定義情報生成部を含み、
前記自機ゲームデータ生成部は、
入力操作定義情報に基づき、入力情報が示す自機への入力操作を対応する動作情報に変換し、当該動作情報を含むゲームデータを生成してもよい。
【００２６】
（１０）本発明のゲーム機、プログラム及び情報記憶媒体では、
自機への入力操作と各ゲームで共通に使用される動作情報の対応関係を設定する設定入力に基づき、自機への入力操作と前記動作情報の対応関係が定義された入力操作定義情報を生成する入力操作定義情報生成部と、
生成した自機の入力操作定義情報を他機にネットワークを介して送信するとともに、他機から送信された他機の入力操作定義情報を、ネットワークを介して受信する処理とを行う入力操作定義情報通信制御部と、を含み、
前記自機ゲームデータ生成部は、
入力情報が示す自機への入力操作の情報を含むゲームデータを生成し、
前記ゲーム演算部は、
自機の入力操作定義情報に基づき、第１のバッファから抽出したゲームデータに含まれた入力操作の情報を入力操作に対応した自機の動作情報に変換し、
他機の入力操作定義情報に基づき、第２のバッファから抽出したゲームデータに含まれた入力操作の情報を入力操作に対応した他機の動作情報に変換し、
自機の動作情報と他機の動作情報に基づいて、各フレームのゲーム演算を行ってもよい。
【００２７】
（１１）本発明のゲーム機、プログラム及び情報記憶媒体では、
前記ゲーム演算部は、
抽出されるべき他機のゲームデータを受信していない場合には、ゲーム演算処理を中断し、前フレームと同じ画像を表示してもよい。
【００２８】
（１２）本発明のゲーム機、プログラム及び情報記憶媒体では、
前記ゲームデータ通信制御部は、
途中でゲームデータが紛失しても再送されないタイプの第１のプロトコルでゲームデータを他機に送信し、前記第１のプロトコルで他機から送信されたゲームデータを受信する処理を行い、
抽出されるべき他機のゲームデータ受信していない場合には、抽出されるべきゲームデータの識別番号を再送データ特定情報として付加してゲームデータ再送要求を行い、
他機からゲームデータ再送要求を受信した場合には、付加された再送データ特定情報に対応する識別番号に対応付けられたゲームデータを他機に送信してもよい。
【００２９】
（１３）本発明のゲーム機、プログラム及び情報記憶媒体では、
前記ゲームデータ通信制御部は、
途中でゲームデータが紛失しても再送されないタイプの第１のプロトコルでｎ回パケットを送信する毎に、送信の途中でデータが紛失すると再送されるタイプの第２のプロトコルでｎ回分のパケットに含まれたゲームデータを含む１つのパケットを他機に送信し、前記第１のプロトコル及び前記第２のプロトコルで他機から送信されたパケットを受信し、
前記同期制御部は、
所与のフレームのゲームデータに対応したパケットを前記第１のプロトコルで他機から受信出来なかった場合には、前記第２のプロトコルで他機から送信されたパケットに含まれた前記所与のフレームのゲームデータを第２のバッファに記憶する処理を行ってもよい。
【００３０】
（１４）本発明は、
コンピュータ読み取り可能な情報記憶媒体であって、上記のいずれかに記載のプログラムを記憶されていることを特徴とする情報記憶媒体である。
【００３１】
（１５）本発明は、
複数のゲーム機それぞれが、各ゲーム機への入力情報に基づき生成されたゲームデータをネットワークを介して相互に送受信し、各ゲーム機において複数のゲーム機のゲームデータに基づいてゲーム演算を行うゲーム機であって、
自機への入力情報に基づき、各フレーム毎に、各フレームに対応した識別番号に対応付けられた自機のゲームデータを生成する自機ゲームデータ生成部と、
生成したゲームデータを所定の間隔で他機にネットワークを介して送信し、他機から送信されたゲームデータを、ネットワークを介して受信する処理とを行うゲームデータ通信制御部と、
自機のゲームデータに対応付けられている識別番号に基づき自機のゲームデータを第１のバッファに記憶し、他機のゲームデータに対応付けられている識別番号に基づき他機のゲームデータを第２のバッファに記憶する処理を行い、第１のバッファに記憶されているゲームデータと第１のバッファに記憶されているゲームデータを各ゲームデータに対応付けられている識別番号に基づき同期を取って抽出する同期制御部と、
第１のバッファから抽出したゲームデータと、第２のバッファから抽出したゲームデータとに基づいて、フレーム毎にゲーム演算を行うゲーム演算部と、
自機と他機の間でテスト通信を行い、テスト通信結果に基づき通信遅延時間を判定する通信遅延時間判定処理部と、
判定した前記通信遅延時間以上の長さの入力遅延時間を設定し、当該入力遅延時間をネットワークを介して他機に送信する入力遅延時間設定処理部と、を含み、
前記同期制御部は、
第１のバッファ及び第２のバッファに記憶されているゲームデータに対応付けられた前記識別番号と前記入力反映時間に基づき、前記入力遅延時間を経過したゲームデータを抽出するゲーム機に関する。
【００３２】
また本発明は、上記各部としてコンピュータを機能させるプログラム及びそのようなプログラムを記憶するコンピュータに読み取り可能な情報記憶媒体に関するものである。
【発明を実施するための最良の形態】
【００３３】
１．構成
図１に本実施形態のゲーム機の機能ブロック図を示す。なお本実施形態のゲーム機は図１の構成要素（各部）の一部を省略した構成としてもよい。
【００３４】
操作部１６０は、プレーヤがプレーヤキャラクタ（プレーヤが操作するプレーヤキャラクタ、移動体、プレーヤオブジェクト、ゲームキャラクタを含む）の操作情報を入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
【００３５】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。特に、本実施形態の記憶部１７０は、主記憶部１７２、画像バッファ１７４、第１のバッファ１７６、第２のバッファ１７８、各種制御情報記憶部１７９を有している。
【００３６】
ここで、第１のバッファ１７６には、自機への入力情報に基づき生成されたゲームデータが記憶される。また、第２のバッファ１７８には、受信した他機のゲームデータが記憶される。
【００３７】
第１のバッファとは自機のゲームデータが記憶される記憶領域であり、第２のバッファとは他機から受信したゲームデータが記憶される記憶領域であって、例えば主記憶の一部に設けられてソフトウエア的によって読み書きの制御が行われる構成でもよい。
【００３８】
各種設定御情報記憶部１７９には、自機や他機の入力遅延時間や自機や他機の入力操作定義情報や自機や他機の表示遅延情報が必要に応じて記憶されている。
【００３９】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを入力するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）、メモリカードなどにより実現できる。処理部１００は、情報記憶媒体１８０に入力されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００４０】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００４１】
通信部１９６は外部（例えば、他機、サーバや他のゲームシステム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００４２】
なお、ゲーム機が、本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）を、ネットワークを介してサーバからダウンロードし、情報記憶媒体１８０に記憶するようにしてもよい。このようなサーバに入力されているプログラムの出力も本発明の範囲内に含めることができる。
【００４３】
処理部１００（プロセッサ）は、操作部１６０からの操作情報（入力情報の一例）やプログラムなどに基づいて、ゲーム演算処理、画像生成処理、或いは音生成処理などの処理を行う。この処理部１００は記憶部１７０内の主記憶部１７２をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００４４】
処理部１００は、ゲーム演算部１１０、オブジェクト空間設定部１１１、仮想カメラ制
御部１１２、移動・動作処理部１１３、ネットワーク設定部１１４、通信制御部１１５、同期制御部１１６、自機ゲームデータ生成部１１７、通信遅延時間判定処理部１１８、入力遅延時間設定処理部１１９、表示遅延時間設定処理部１２０、入力操作定義情報生成処理部１２１、描画部１３０、音生成部１４０を含む。なおこれらの一部を省略する構成としてもよい。
【００４５】
ゲーム演算部１１０は、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【００４６】
本実施形態のゲーム演算部１１０は、ゲーム開始時に各プレーヤの体力値を初期値（例えば１００）に設定し、ゲームを開始してからゲームが終了するまでのゲーム期間（例えば、９０秒の間）に、フレーム毎に、各プレーヤからの入力情報に基づいてヒット判定処理を行い、ヒット判定結果に基づいていて、各プレーヤキャラクタの体力値を減算させ、各プレーヤキャラクタの体力値が０になったか否かに基づいてゲーム結果（勝敗、引き分け）を決定する演算処理を行ってもよい。なお、ゲーム演算部１１０は、ゲーム期間経過時点で、いずれのプレーヤキャラクタの体力値が０より大きい値である場合には、一方のプレーヤキャラクタの体力値が、他方のプレーヤキャラクタの体力値よりも大きい値である場合に、一方のプレーヤキャラクタが勝ちと決定し、他方のプレーヤキャラクタが負けと決定し、体力値が双方同じ場合には引き分けと決定してもよい。
【００４７】
本実施形態のゲーム演算部１１０は、第１のバッファ１７６から抽出されたゲームデータと第２のバッファ１７８から抽出されたゲームデータとに基づいて、フレーム毎にゲーム演算を行う。
【００４８】
また、本実施形態のゲーム演算部１１０は、第１のバッファ１７６から抽出されたゲームデータと第２のバッファ１７８から抽出されたゲームデータとに基づいて、自機を使用するプレーヤの操作対象の第１のプレーヤキャラクタと、他機を使用するプレーヤの操作対象の第２のプレーヤキャラクタとを動作させるゲーム演算を行うようにしてもよい。
【００４９】
オブジェクト空間設定部１１１は、プレーヤキャラクタ、移動体、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００５０】
仮想カメラ制御部１１２は、オブジェクト空間内の所与（任意）の仮想カメラ（視点）から見える画像を生成するための仮想カメラの制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置、視線方向あるいは画角を制御する処理）を行う。また、画角を制御するようにしてもよい。
【００５１】
例えば、仮想カメラによりオブジェクト（例えば、プレーヤキャラクタ、ボール、車）を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００５２】
移動・動作処理部１１３は、モデル（キャラクタ、車、電車又は飛行機等）の移動・動作演算（移動・動作シミュレーション）を行う。すなわち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、モデルをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させたりする処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（オブジェクトを構成する各パーツの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００５３】
特に、本実施形態の移動・動作処理部１１３は、プレーヤからの入力情報に基づいて、プレーヤの操作対象のプレーヤキャラクタを移動・動作させる処理を行うことができる。また、後述する通信制御部１１５によって送信されたパケットに含まれる他機のゲームデータに基づいて、他機を使用する第２のプレーヤの操作対象の第２のプレーヤキャラクタを、自機を使用するプレーヤの操作対象となる第１のプレーヤキャラクタと同一のオブジェクト空間において移動・動作させる処理を行うことができる。
【００５４】
本実施形態の移動・動作処理部１１３は、第１のバッファ１７６から出力されたゲームデータに基づいて、自機を使用するプレーヤの操作対象の第１のプレーヤキャラクタを動作させる演算と、第２のバッファ１７８から出力されたゲームデータに基づいて、他機を使用するプレーヤの操作対象の第２のプレーヤキャラクタを動作させる演算を行うことができる。
【００５５】
ネットワーク設定部１１４は、ゲームシステムで必要となるネットワーク情報を取得し、管理する処理等を行う。特に、本実施形態のネットワーク設定部は、各ゲーム機に個別に付与されるゲーム機の識別情報（オンラインゲームに参加できるゲーム機を識別するために個別に付与されたデータ）と、ゲーム機の識別情報に対応付けられたパケットの送信先を指定する宛先情報とを取得し、管理する処理を行う。
【００５６】
また、宛先情報とは、ゲームシステムを構成する各ゲーム機のＩＰアドレス、ポート番号とすることができる。ＩＰアドレスは、インターネット上もしくはＷＡＮで特定のゲーム機を特定するためのグローバルＩＰアドレスとしてもよいし、ＬＡＮで特定のゲーム機を特定するためのプライベートＩＰアドレスとしてもよい。
【００５７】
通信制御部１１５は、他機（第２のゲーム機）に送信するパケットを生成する処理、パケット送信先のゲーム機のＩＰアドレスやポート番号を指定する処理、受信したパケットに含まれるデータを記憶部１７０に保存する処理、受信したパケットを解析する処理、その他のパケットの送受信に関する制御処理等を行う。
【００５８】
パケットとは、ネットワークを介して通信する固まりであり、送信元ＩＰアドレス、送信先ＩＰアドレスを含むネットワークに必要なヘッダーと、送信元において書き込まれたデータがペイロードとからなるデータのことをいう。
【００５９】
また、アプリケーションレベルの通信を実現するためには、使用するＴＣＰやＵＤＰプロトコルに応じたアプリケーションの種類を特定するポート番号を指定してパケットを生成する。例えば、ＴＣＰプロトコルは、データの送受信の信頼性が高く、例えば、確認応答や再送を利用している。また、ＴＣＰプロトコルは、紛失したデータの再送処理を行うことができ、さらにデータの送信順序を確保して送信先のゲーム機にパケットを送信することができる。一方、ＵＤＰプロトコルでは、送信の途中でデータを紛失しても再送されず、順番が入れ替わって伝送されることがある。しかし、ＵＤＰプロトコルは、ＴＣＰプロトコルに比べてオーバヘッドがないので、リアルタイムにデータを送信するオンラインゲームでは適している場合がある。ＵＤＰプロトコルを利用する場合には、バッファに入力するゲームデータが識別番号順（昇順）に入力するようにし、入力対象の識別番号のゲームデータが届いていない場合には、他機に要求するようにしてもよい。本実施形態では、いずれのプロトコルにも対応することができる。なお、ＵＤＰプロトコルを利用する場合には、バッファへのゲームデータの入力順序を識別情報（識別番号）の昇順に入力するように制御するようにしてもよい。
【００６０】
本実施形態の通信制御部１１５は、画像を描画するフレームレートに応じてパケットを生成し、接続先の第２のゲーム機に生成したパケットを送信する処理を行う。具体的に説明すると、例えば、フレームレートが６０ｆｐｓである場合には、１／６０秒毎に、パケットのヘッダーの送信先ＩＰアドレスと送信先ポート番号に、第２のゲーム機のＩＰアドレスと使用するポート番号指定し、ヘッダーの送信元のＩＰアドレスと送信元ポート番号に、第１のゲーム機のＩＰアドレスと使用するポート番号を指定して、ゲームデータを含むデータをパケットのペイロードに入力し、生成したパケットを第２のゲーム機に送信する処理を行う。なお、送信したゲームデータは、後述する同期制御部１１６において、所与の条件下、第１のバッファ１７６に入力される。
【００６１】
ここで、ゲームデータとは、フレーム毎にゲーム機を操作するプレーヤからの入力情報（操作情報も含む）を含むデータである。例えば、ゲームデータは、入力情報の有無や、入力情報が有る場合には入力情報の内容を示したデータとすることができる。例えば、ゲームデータを数値で示す場合には、入力情報が無い場合はゲームデータを「０」とし、入力情報があってその内容がＡボタンの入力である場合にはゲームデータを「１」、入力情報があってその内容がＢボタンの入力である場合にはゲームデータを「２」、また、入力情報があってその内容がＡ及びＢボタンの入力である場合にはゲームデータを「３」としてもよい。
【００６２】
また、ここで、識別情報とは、フレーム毎に付与される複数のゲーム機（第１、第２のゲーム機）において共通のデータである。本実施形態では、第１のゲーム機と第２のゲーム機との接続が確立されたときを基準に、経過時間に応じてフレーム毎に付与される情報とすることができる。例えば、ゲーム機において、フレームレートに応じて取得したゲームデータに対応付けるシーケンシャルな識別番号（１から始まる正の整数）とすることができる。
【００６３】
例えば、フレームレートが６０ｆｐｓである場合を考えると、１／６０毎に取得したゲームデータに、識別情報を対応付ける。例えば、第１のゲーム機と第２のゲーム機それぞれにおいて、接続が確立された時点に取得したゲームデータには、識別番号「１」を対応付けし、接続確立時から１／６０秒後に取得したゲームデータには、識別番号「２」を対応付けし、接続確立時から２／６０秒後に取得したゲームデータには、識別番号「３」を対応付けする。
【００６４】
また、本実施形態の通信制御部１１５は、第２のゲーム機から送信されたパケットを受信する処理を行う。そして、受信したパケットを解析し、パケットのペイロードに含まれるゲームデータを含むデータを取得する。そして、受信したゲームデータは、後述する同期制御部１１６において、第２のバッファ１７８に入力される。
【００６５】
また、本実施形態の通信制御部１１５は、複数のゲーム機間においての接続（第１のゲーム機と第２のゲーム機との接続）が確立されてから接続が切断されるまで、ゲームデータを互いに送受信する処理を行うことができる。
【００６６】
なお、本実施形態のゲームに参加する通信グループに所属する複数のゲーム機のうち、１つのゲーム機を親機として特定することができる。親機は、ゲーム空間を生成したゲーム機としてもよいし、勝者と挑戦者との対戦ゲームである場合には、勝者側のゲーム機としてもよい。
【００６７】
また通信制御部１１５は、生成したゲームデータを所定の間隔で他機にネットワークを介して送信し、他機から送信されたゲームデータを、ネットワークを介して受信する処理とを行うゲームデータ通信制御部として機能する。
【００６８】
また通信制御部１１５は、生成した他機送信用の自機のゲームデータを所定の間隔で他機にネットワークを介して送信し、他機から送信されたゲームデータを、ネットワークを介して受信する処理を行ってもよい。
【００６９】
また通信制御部１１５は、設定された自機の表示遅延時間情報を他機にネットワークを介して送信するとともに、他機から送信された他機の表示遅延時間情報をネットワークを介して受信する処理とを行う表示遅延時間情報通信制御部として機能する。
【００７０】
また通信制御部１１５は、生成した自機の入力操作定義情報を他機にネットワークを介して送信するとともに、他機から送信された他機の入力操作定義情報を、ネットワークを介して受信する処理とを行ってもよい。
【００７１】
同期制御部１１６は、自機のゲームデータに対応付けられている識別番号に基づき自機のゲームデータを第１のバッファに記憶し、他機のゲームデータに対応付けられている識別番号に基づき他機のゲームデータを第２のバッファに記憶する処理を行い、第１のバッファに記憶されているゲームデータと第１のバッファに記憶されているゲームデータを各ゲームデータに対応付けられている識別番号に基づき同期を取って抽出する。ここにおいて第１のバッファ及び第２のバッファに記憶されているゲームデータに対応付けられた前記識別番号と前記入力反映時間に基づき、前記入力遅延時間を経過したゲームデータを抽出する。
【００７２】
同期制御部１１６は、第１のバッファ１７６、第２のバッファ１７８のゲームデータの入出力を制御する処理を行う。ここで、バッファにゲームデータを入力する処理とは、ゲームデータをバッファが確保する記憶領域に記憶させる処理をいい、バッファからゲームデータを出力する処理とは、バッファが確保する記憶領域に記憶されたゲームデータを読み取ると共に、そのゲームデータを記憶領域から抹消することを意味する。
【００７３】
また、本実施形態の同期制御部１１６は、自機のゲームデータを第１のバッファ１７６に入力し、他機のゲームデータを第２のバッファ１７８に入力する処理とを行う。
【００７４】
また、本実施形態の同期制御部１１６は、第１のバッファ１７６に記憶されているゲームデータと第２のバッファ１７８に記憶されているゲームデータに対応した入力情報が入力されてからのゲーム内経過時間が前記入力遅延時間に達したゲームデータを（古いほうから順次）抽出する。
【００７５】
また同期制御部１１６は、識別番号に基づき演算予定フレームが到来したゲームデータを抽出してもよい。
【００７６】
また同期制御部１１６は、自機演算用の自機のゲームデータに対応付けられている識別番号に基づき自機演算用の自機のゲームデータを第１のバッファに記憶し、他機から受信したゲームデータに対応付けられている識別番号に基づき他機のゲームデータを第２のバッファに記憶する処理を行ってもよい。
【００７７】
また同期制御部１１６は、所与のフレームのゲームデータに対応したパケットを前記第１のプロトコルで他機から受信出来なかった場合には、前記第２のプロトコルで他機から送信されたパケットに含まれた前記所与のフレームのゲームデータを第２のバッファに記憶する処理を行ってもよい。
【００７８】
例えばゲームデータの識別番号が演算予定時刻（フレーム）に対応したものであったら演算第１のバッファ１７６及び第２のバッファ１７８から演算予定時刻（フレーム）に対応した識別番号のゲームデータから出力するようにしてもよい。
【００７９】
すなわち、本実施形態の同期制御部１１６は、第１のバッファ１７６に記憶されているゲームデータの識別情報と、第２のバッファ１７８に記憶されているゲームデータの識別情報とが一致していることを条件に、当該識別番号が演算予定時刻に達した場合に識別番号の昇順（小さい順）に出力される。
【００８０】
自機ゲームデータ生成部１１７は、自機への入力情報に基づき、各フレーム毎に、各フレームに対応した識別番号に対応付けられた自機のゲームデータを生成する。
【００８１】
自機ゲームデータ生成部１１７は、自機への入力情報を受け付けたフレームと前記入力遅延時間に基づき、前記入力遅延時間を反映させた演算予定フレームに対応する識別番号に対応付けられた自機のゲームデータを生成してもよい。
【００８２】
自機ゲームデータ生成部１１７は、自機への入力情報を受け付けたフレームと自機の入力遅延時間に基づき、自機の入力遅延時間を反映させた演算予定フレームに対応する識別番号に対応付けられた自機演算用の自機のゲームデータを生成し、自機への入力情報を受け付けたフレームと他機の入力遅延時間に基づき、他機の入力遅延時間を反映させた演算予定フレームに対応する識別番号に対応付けられた他機送信用の自機のゲームデータを生成してもよい。
【００８３】
自機ゲームデータ生成部１１７は、入力操作定義情報に基づき、入力情報が示す自機への入力操作を対応する動作情報に変換し、当該動作情報を含むゲームデータを生成してもよい。
【００８４】
自機ゲームデータ生成部１１７は、入力情報が示す自機への入力操作の情報を含むゲームデータを生成してもよい。
【００８５】
通信遅延時間判定処理部１１８は、自機と他機の間でテスト通信を行い、テスト通信結果に基づき通信遅延時間を判定する。
【００８６】
通信遅延時間判定処理部１１８は、自機と対戦相手となる他機の間でパケットの送受信を行うテスト通信を連続して複数回行い、複数回のテスト通信結果に基づき通信遅延時間を判定してもよい。
【００８７】
通信遅延時間判定処理部１１８は、テスト通信開始後の所定期間内のテスト通信状況に基づき通信遅延時間を判定してもよい。
【００８８】
入力遅延時間設定処理部１１９は、判定した前記通信遅延時間以上の長さの入力遅延時間を設定し、当該入力遅延時間をネットワークを介して他機に送信する。
【００８９】
入力遅延時間設定処理部１１９は、自機と他機の表示遅延時間情報に基づき自機と他機の表示遅延時間差を求め、表示遅延の短い方の入力遅延時間が表示遅延時間差分だけ長くなるように自機の入力遅延時間と、他機の入力遅延時間を設定し、他機の入力遅延時間情報をネットワークを介して他機に送信してもよい。
【００９０】
入力遅延時間設定処理部１１９は、設定された自機の表示遅延時間情報及び受信した他機の表示遅延時間情報報に基づき、自機と他機の表示遅延時間差を求めてもよい。
【００９１】
表示遅延時間設定処理部１２０は、ユーザーからの入力情報に基づき自機の表示遅延時間情報を設定する。
【００９２】
入力操作定義情報生成処理部１２１は、自機への入力操作と各ゲームで共通に使用される動作情報の対応関係を設定する設定入力に基づき、自機への入力操作と前記動作情報の対応関係が定義された入力操作定義情報を生成する。
【００９３】
描画部１３０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずオブジェクト（モデル）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むオブジェクトデータ（モデルデータ）が入力され、入力されたオブジェクトデータ（モデルデータ）に含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。ピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を画像バッファ１７４（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように画像を生成することができる。
【００９４】
なお、頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００９５】
そして、描画部１３０は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００９６】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、図示しないオブジェクトデータ記憶部に保存される。
【００９７】
テクスチャマッピングは、記憶部１７０のテクスチャ記憶部に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いて記憶部１７０のテクスチャ記憶部からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【００９８】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が入力されるＺバッファ（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファに入力されるＺ値を参照する。そして参照されたＺバッファのＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファのＺ値を新たなＺ値に更新する。
【００９９】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。
【０１００】
なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして出力できる。
【０１０１】
音生成部１４０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【０１０２】
２．本実施形態の手法
（１）概要
本実施形態のゲームシステムは、オンライン格闘ゲームのためのゲームシステムである。すなわち、本実施形態のゲームシステムは、プレーヤの操作対象のプレーヤキャラクタが、他のプレーヤの操作対象の相手プレーヤキャラクタに攻撃を加えることによって相手プレーヤキャラクタにダメージを与え相手プレーヤキャラクタの体力値を減算させ、各プレーヤキャラクタの体力値に基づいて勝敗を判定する処理を行う。
【０１０３】
図２は、本実施形態のゲームシステムの一例を示す。本実施形態のゲームシステムでは、オンラインゲームに参加する各ゲーム機が、インターネットを介して相互に直接通信して、データを共有することができるピア・ツー・ピア方式のゲームシステムを採用する。また、本実施形態は、オンラインゲームに参加するプレーヤの操作対象のプレーヤキャラクタが同一のゲーム空間（オブジェクト空間）に存在してゲームが進行されるゲームシステムである。
【０１０４】
つまり、本実施形態では、第１のゲーム機、第２のゲーム機の相互間において、ゲーム機を操作するプレーヤからの入力情報の検出結果を含むゲームデータを送受信する処理を行い、ゲーム演算を行う。
【０１０５】
ここで、ゲームデータとは、フレーム毎に、方向キー、Ａボタン、Ｂボタン等のキー入力によって検出された検出信号等のキー入力情報や、キー入力の検出結果を特定コマンド（動作情報）に変換した情報、入力情報がないという情報（例えば、「キー入力なし」の情報）も含む。
【０１０６】
本実施形態では、例えば、第１のゲーム機は、第１のゲーム機のゲームデータに基づいて、第１のプレーヤキャラクタ（第１のゲーム機を使用する第１のプレーヤの操作対象のプレーヤキャラクタ）の移動・動作演算等のゲーム演算を行い、第１のゲーム機のゲームデータを、ネットワークを介して第２のゲーム機へ送信する処理を行う。そして、第１のゲーム機は、ネットワークを介して受信した第２のゲーム機のゲームデータに基づいて、第２のプレーヤキャラクタ（第２のゲーム機を使用する第２のプレーヤの操作対象のプレーヤキャラクタ）の移動・動作演算等のゲーム演算を行う。また、第２のゲーム機においても、第１のゲーム機と同様にゲーム演算処理を行う。
【０１０７】
（２）同期処理
本実施形態は、同期処理を図るために、第１、第２のゲーム機が、フレーム毎に付与される共通の識別番号を用いて、ゲームデータを送受信する処理を行う。
【０１０８】
より具体的に説明すると、本実施形態では、まず、各ゲーム機において、画像を描画するフレームレートと同じ周期で、ゲームデータを取得する。そして取得したゲームデータに識別番号を対応付ける。すなわち、描画フレームレートが６０ｆｐｓのフレームレートである場合には、第１のゲーム機と第２のゲーム機との接続が確立した時点を基準に、１／６０毎に取得したゲームデータに、「１」、「２」、「３」、「４」・・・と、シーケンシャルに正の整数からなる識別番号を対応付けていく。
【０１０９】
なお、同じタイミングで取得したゲームデータを用いて正確に同期処理を行うために、第１、第２のゲーム機共に、同じ描画フレームレート（例えば、６０ｆｐｓ）に設定することが望ましい。以下の説明では、第１のゲーム機、第２のゲーム機共に、描画のフレームレートを６０ｆｐｓに設定した際の説明である。
【０１１０】
なお、「接続が確立した時点」とは、第１のゲーム機においては、第２のゲーム機に対する接続要求に対する確認応答を得たときであって、第２のゲーム機においても、第１のゲーム機に対する接続要求に対する確認応答を得たときである。なお、絶対時間軸に対して第１のゲームにおける「接続が確立した時点」と、ゲーム機２における「接続が確立した時点」とにおいて僅かな誤差があってもよい。
【０１１１】
本実施形態のゲーム機では、自機のゲームデータを順次記憶して一時的に保持する第１のバッファ１７６と、他機のゲームデータを順次記憶して一時的に保持する第２のバッファ１７８を設け、第１のバッファ１７６に識別番号を対応付けた自機のゲームデータを記憶させ処理を行い、第２のバッファ１７８に識別番号に対応付けられた他機のゲームデータを記憶させる処理を行う。また、自機のゲームデータは、識別番号を対応付けて他機に送信する処理を行う。
【０１１２】
そして、本実施形態では、第１のバッファ１７６に入力されている入力遅延時間を経過した（演算予定時刻がゲーム時刻と一致した）ゲームデータの識別番号と、第２のバッファ１７８に入力されている入力遅延時間を経過した（演算予定時刻がゲーム時刻と一致した）ゲームデータの識別番号とが一致することを条件に、第１のバッファ１７６に入力されているのゲームデータと、第２のバッファ１７８に入力されているゲームデータとを出力する処理を行う。
【０１１３】
そして、本実施形態では、第１のバッファ１７６から演算予定時刻に達したゲームデータを順次出力して、出力されたゲームデータに基づいて第１のプレーヤキャラクタの移動・動作演算等のゲーム演算を行い、第２のバッファ１７８から演算予定時刻に達したゲームデータを順次出力して、出力されたゲームデータに基づいて第２のプレーヤキャラクタの移動・動作演算（モーション演算）等のゲーム演算を行う。
【０１１４】
第１のバッファ１７６、第２のバッファ１７８をＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ，Ｆｉｒｓｔ  Ｏｕｔ）（先入れ先出し）によって入出力処理を行うように構成してもよい。なお第１のバッファ１７６、第２のバッファ１７８をＦＩＦＯ制御はソフトウエアによって実現することが出来る。
【０１１５】
より具体的に、第１ゲーム機において、第１のゲーム機のゲームデータを第１のバッファ１７６に入出力を制御する処理、第２のゲーム機のゲームデータを第２のバッファ１７８に入出力する処理について、図３を用いて具体的に説明する。
【０１１６】
例えば、本実施形態では、第１、第２のゲーム機の接続が確立されるＴ１時点において、識別番号「１」の第１のゲーム機のゲームデータを、第１のバッファ１７６に入力する処理を行う。一方、Ｔ１時点では、まだ第２のゲーム機からゲームデータを受信していないので、第２のバッファ１７８は空の状態である。
【０１１７】
そして、Ｔ２時点〜Ｔ９時点と経過したときに第２のゲーム機から識別番号「１」のゲームデータを受信すると、Ｔ１１時点において、第１のバッファ１７６に、識別番号「１１」のゲームデータを入力し、第２のゲーム機から受信した識別番号「１」のゲームデータを、第２のバッファ１７８に入力する処理を行う。
【０１１８】
すると、Ｔ１２時点において、第１のバッファ１７６、第２のバッファ１７８に入力されている最先のゲームデータの識別番号が一致する（共通の識別番号「１」である）。
【０１１９】
本実施の形態では、後述するように通信の遅延を吸収するために入力遅延時間を設定する。例えば入力遅延時間がｘ（フレーム）である場合にはｎフレーム目に入力された入力情報はｎ＋ｘフレーム目に演算される。従って例えば入力遅延時間が１／６０秒×１１（１１フレーム）である場合には、Ｔ１２の時点で、第１のバッファ及び第２のバッファに格納されている識別番号「１」のゲームデータは入力遅延時間に達している（演算予定時刻に達している）ので、第１のバッファ１７６、第２のバッファ１７８から出力して、出力されたゲームデータに基づいて、ゲーム演算が行われる。
【０１２０】
以上のように、本実施形態では、第１、第２のゲーム機それぞれが、フレーム毎に付与される共通の識別番号を用いて、ゲームデータを送受信する処理を行い、演算予定時刻に達している識別番号に対応する自機のゲームデータと他機のゲームデータに基づいてゲーム演算を行うので、オンラインの格闘ゲームにおいても、通信遅延を吸収して、同一のゲーム結果になるようにゲーム演算処理を行うことができる。
【０１２１】
（３）入力遅延時間設定処理
図４は、入力遅延時間の設定手法について説明するための図である。
【０１２２】
ｎフレーム目に第１のゲーム機で入力情報に基づきゲームデータＤＡｎが発生し（２００参照）、第２のゲーム機で入力情報に基づきゲームデータＤＢｎが発生した（２００’参照）とする。ここでｎフレーム目とは第１のゲーム機と第２のゲーム機において共通して使用されるゲーム内時刻であり、第１のゲーム機と第２のゲーム機の同期が確立した後に共通して使用されるフレームのシーケンス番号でもよい。
【０１２３】
ｎフレーム目に第１のゲーム機において発生したゲームデータＤＡｎは第２のゲーム機に送信される。第１のゲーム機から送信されたゲームデータは所与の時間Ｔ１後に第２のゲーム機に到達する（２１０’参照）。またｎフレーム目に第２のゲーム機において発生したゲームデータＤＢｎは第１のゲーム機に送信される。第２のゲーム機から送信されたゲームデータは所与の時間Ｔ１後に第１のゲーム機に到達する（２１０参照）。
【０１２４】
この所与の時間Ｔ１は通信に要する時間であり、以下通信遅延時間と呼ぶ。通信遅延時間はネットワークの状態や各ゲーム機の状態により変動する。
【０１２５】
このような通信の遅延を吸収するために、入力遅延時間Ｔ２を設定する。入力遅延時間Ｔ２は入力されてから何フレーム（又は何秒）遅れて、その入力のゲーム演算が行われるかを示す値である。すなわちｎフレーム目に入力された入力情報（第１のゲーム機において発生したゲームデータＤＡｎと第２のゲーム機において発生したゲームデータＤＢｎは、第１のゲーム機及び第２のゲーム機においてｎ＋Ｔ２フレーム目に演算される（２２０、２２０’参照）。
【０１２６】
本実施の形態では、所定のタイミング（ゲーム開始前や、対戦相手決定時）に自機と対戦相手となる他機の間でテスト通信を行い、自機と対戦相手となる他機の間の通信遅延時間を測定して、測定した前記通信遅延時間より長い入力遅延時間を設定し、当該入力遅延時間をネットワークを介して他機に送信する。入力遅延時間の設定は、いずれかのゲーム機で行い、他機に送信する。例えば第１のゲーム機で設定した入力遅延時間を第２のゲーム機に送信するようにしてもよい。
【０１２７】
入力遅延時間Ｔ２は測定した通信遅延時間Ｔ１より長くなるように設定すると、通信による遅延を吸収することが出来る。ここで入力遅延時間Ｔ２≧通信遅延時間Ｔ１であれば通信による遅延を吸収することが出来るが、入力遅延時間Ｔ２が大きくなるほど、プレーヤの入力動作のゲームへの反映が遅くなるので、入力遅延時間Ｔ２は入力遅延時間Ｔ２≧通信遅延時間Ｔ１を満たす必要十分な値に設定することが好ましい。
【０１２８】
なおここでは第１のゲーム機と第２のゲーム機の入力遅延時間の値が同じ場合を例にとり説明したが、後述するように第１のゲーム機と第２のゲーム機の自入力遅延時間が異なる場合でもよい。
【０１２９】
図１３は、入力情報に基づき生成されるゲームデータについて説明するための図である。
【０１３０】
本実施の形態では、各フレーム毎（又は所定の描画単位でもよい）に自機への入力情報に基づき、各フレームに対応した識別番号（シーケンスデータ）が付加された自機のゲームデータが生成される。ゲームデータは３００は、識別番号３１０と入力情報を含む。
【０１３１】
ここで識別番号は、入力情報が入力された時点のフレームに対応する番号でもよい。この場合同期制御部が、現在のゲーム内時刻から入力反映時間を減算して演算対象となるフレームの識別番号をもとめ、演算対象となるフレームの識別番号のゲームデータを抽出することにより、各ゲームデータに対応した入力情報が入力されてからのゲーム内経過時間が前記入力遅延時間に達したゲームデータを（古いほうから順次）抽出することができる。
【０１３２】
図５は入力遅延時間時間を反映したゲームデータを生成する例について説明するための図である。
【０１３３】
自機ゲームデータ生成部は、自機への入力情報を受け付けたゲーム内時刻と前記入力遅延時間に基づき、前記入力遅延時間を反映させた演算予定時刻のフレーム対応する識別番号が付加された自機のゲームデータを生成するようにしてもよい。
【０１３４】
ここでは、各ゲーム機において入力があってもなくてもゲームデータが生成され（入力がある場合には入力情報を含むゲームデータが生成され、入力がない場合には入力無しを示すゲームデータが生成される）、所定の間隔で対戦相手に送信される場合について説明する。データが送信される間隔は例えばｎフレーム毎でもよく、その場合ｎフレーム分のゲームデータがまとめて送信されることになるが、ここでは説明を簡単にするために、１フレーム毎に１フレーム分のゲームデータが送信される場合を例にとり説明する。
【０１３５】
入力遅延時間が６フレームであるとすると、例えば第１のゲーム装置において０フレーム目にゲームデータＤＡ０が発生した場合、入力情報が入力された時点のフレーム番号（０フレーム）と入力遅延時間（６フレーム）を加算して演算予定時刻である「６（フレーム）」を求め、識別番号「６」とするゲームデータを生成する。
【０１３６】
同様にして、第１のゲーム装置において１フレーム目にゲームデータＤＡ１が発生した場合識別番号「７」とするゲームデータを生成し、２フレーム目にゲームデータＤＡ２が発生した場合識別番号「８」とするゲームデータを生成し、・・・、ｎフレーム目にゲームデータＤＡｎが発生した場合識別番号「ｎ＋６」とするゲームデータを生成する。
【０１３７】
また例えば第２のゲーム装置において０フレーム目にゲームデータＤＢ０が発生した場合、入力情報が入力された時点のフレーム番号（０フレーム）と入力遅延時間（６フレーム）を加算して演算予定時刻である「６（フレーム）」を求め、識別番号「６」とするゲームデータを生成する。
【０１３８】
同様にして、第１のゲーム装置において１フレーム目にゲームデータＤＢ１が発生した場合識別番号「７」とするゲームデータを生成し、２フレーム目にゲームデータＤＢ２が発生した場合識別番号「８」とするゲームデータを生成し、・・・、ｎフレーム目にゲームデータＤＢｎが発生した場合識別番号「ｎ＋６」とするゲームデータを生成する。
【０１３９】
図６は、第１のゲーム機の第１のバッファ及び第２のバッファにゲームデータが蓄積される様子を模式的に示した図である。
【０１４０】
第１のバッファ及び第２のバッファは識別番号に対応したエリアが用意されており、バッファ内のデータが出力されると順次再使用可能となり、再使用可能となったエリアには順次循環して識別番号が対応付けられる。
【０１４１】
ここでは入力反映時間が６フレームなので、０から５の識別番号に対応したエリアには、「入力なし」のデータが格納される。第１のゲーム機では自機のゲームデータが生成されると、そのフレーム内で第１のバッファに格納される。ここで格納されるエリアは演算予定時刻に対応したエリアである。すなわち第１のゲーム機で０フレーム目に発生したゲームデータＤＡ０は６フレーム目に演算されるので識別番号「６」に対応したエリアに格納される。その後各フレームで発生したゲームデータも発生したフレームにおいて、演算予定時刻に対応したエリアに格納される。
【０１４２】
一方第２のゲーム装置で０フレーム目に発生したゲームデータＤＢ０は４フレーム目に第１のゲームで受信されるので、４フレーム目に第２のバッファに格納される。ここで格納されるエリアは演算予定時刻に対応したエリアである。すなわち第２のゲーム機で０フレーム目に発生したゲームデータＤＡ０は６フレーム目に演算されるので識別番号「６」に対応したエリアに格納される。その後第２のゲームで発生したゲームデータは第１のゲーム機で順次受信されるので受信したフレームにおいて、第２のバッファの演算予定時刻に対応したエリアに格納される。
【０１４３】
図７は、入力遅延時間の設定手法の他の例について説明するための図である。
【０１４４】
図４では通信遅延時間に基づき、第１のゲーム機と第２のゲーム機で同じ入力遅延時間を設定する手法について説明したが、ここでは、通信遅延時間及び各ゲーム機の表示遅延時間に基づき、第１のゲーム機と第２のゲーム機で異なる入力遅延時間を設定する手法について説明する。
【０１４５】
ｎフレーム目に第１のゲーム機で入力情報に基づきゲームデータＤＡｎが発生し（３００参照）、第２のゲーム機で入力情報に基づきゲームデータＤＢｎが発生した（３００’参照）とする。ここでｎフレーム目とは第１のゲーム機と第２のゲーム機において共通して使用されるゲーム内時刻であり、第１のゲーム機と第２のゲーム機の同期が確立した後に共通して使用されるフレームのシーケンス番号でもよい。
【０１４６】
ｎフレーム目に第１のゲーム機において発生したゲームデータＤＡｎは第２のゲーム機に送信される。第１のゲーム機から送信されたゲームデータは通信遅延時間Ｔ１後に第２のゲーム機に到達する（３１０’参照）。またｎフレーム目に第２のゲーム機において発生したゲームデータＤＢｎは第１のゲーム機に送信される。第２のゲーム機から送信されたゲームデータは通信遅延時間Ｔ１後に第１のゲーム機に到達する（３１０参照）。
【０１４７】
ここで第１のゲーム機の表示に要する時間をＴＡ、第２のゲーム機の表示に要する時間をＴＢとする。表示に要する時間とは、ゲーム演算を行ってゲーム演算結果を反映した画像が生成され表示部に出力されるのに要する時間であり、以下表示遅延時間と呼ぶ。
【０１４８】
第１のゲーム機の表示遅延時間ＴＡを１フレーム、第２のゲーム機の表示遅延時間ＴＢを２フレームとすると、同じタイミングでゲーム演算を開始すると、第１のゲーム機では演算結果を反映した画像が１フレーム後に表示され、第２のゲーム機では演算結果を反映した画像が２フレーム後に表示される事になる。
【０１４９】
本実施の形態では、表示遅延時間が小さい方（ここでは第１のゲーム機）の演算開始タイミングを第１のゲーム機と第１のゲーム機の表示遅延時間の差α（２フレーム−１フレーム＝１フレーム）だけ遅らせることで、ゲーム結果を反映した画像を第１のゲーム機と第２のゲーム機で同じタイミングとすることが出来る。
【０１５０】
すなわち表示遅延時間が小さい方のゲーム機の入力遅延時間（ここでは第１のゲーム機の入力遅延時間）を表示遅延時間が大きい方のゲーム機の入力遅延時間（ここでは第２のゲーム機の入力遅延時間）より表示遅延時間の差αだけ長く設定することで、第１のゲーム機と第２のゲーム機でゲーム結果を反映した画像を同じタイミングで表示することが出来る。
【０１５１】
図７に示すように表示遅延時間が小さい方のゲーム機（ここでは第１のゲーム機）について、通信遅延時間に基づき設定した入力遅延時間Ｔ２に表示遅延時間の差αを加算した値を入力遅延時間として設定する。このようにすると第１のゲーム機ではｎ＋Ｔ２＋αフレーム目にＤＡｎとＤＢｎに基づきゲーム演算が開始され（３２０参照）、ｎ＋Ｔ２＋α＋ＴＡフレーム目にＤＡｎとＤＢｎに基づき生成されたゲーム画像が表示される（３３０参照）。また第２のゲーム機ではｎ＋Ｔ２フレーム目にＤＡｎとＤＢｎに基づきゲーム演算が開始され（３２０’参照）、ｎ＋Ｔ２＋ＴＢフレーム目にＤＡｎとＤＢｎに基づき生成されたゲーム画像が表示される（３３０’参照）。ここでｎ＋Ｔ２＋α＋ＴＡ＝ｎ＋Ｔ２＋ＴＢなので、ＤＡｎとＤＢｎに基づき生成されたゲーム画像が第１のゲーム機と第２のゲーム機で同じタイミングで表示されることになる。
【０１５２】
ここで各ゲーム機の表示デバイスの種類情報（例えばメーカや型番の情報）に対応した表示遅延時間の情報を予め有している場合には、各ゲーム機の種類情報を取得してこの種類情報に対応した表示遅延時間の情報に基づき第１のゲーム機と第２のゲーム機の表示遅延時間を決定しても良い。
【０１５３】
またユーザーが自機の表示遅延時間の値を入力出来るような構成にし、ユーザーによって入力された値に基づき第１のゲーム機と第２のゲーム機の表示遅延時間を決定しても良い。
【０１５４】
またユーザーがテスト入力を行うと、テスト入力情報に基づき自機の表示遅延時間を自動的に判定する構成にし、自動的に判定された表示遅延時間に基づき第１のゲーム機と第２のゲーム機の表示遅延時間を決定しても良い。
【０１５５】
例えばテスト入力画面として所定フレーム毎にテスト画像を表示し、テスト画像が表示されたタイミングでユーザーにボタンをおしてもらい、ボタンの押されたタイミングで表示遅延時間を判定するようにしても良い。より具体的には、表示遅延がＴＡ（フレーム）であるとするとｍフレーム目にテスト画像の生成処理が開始されるとｍ＋ＴＡフレーム目に表示される。このタイミングでユーザーがボタンを押下すると、ボタン入力を受け付けたタイミングとテスト画像の生成処理が開始したタイミングの差に基づき表示遅延時間を判定するようにしても良い。
【０１５６】
そして設定された自機の表示遅延時間情報を他機にネットワークを介して送信するとともに、他機から送信された他機の表示遅延時間情報をネットワークを介して受信する処理とを行う。
【０１５７】
図８はゲームによって異なる入力遅延時間時間を反映したゲームデータを生成する例について説明するための図である。
【０１５８】
図８では第１のゲーム機の入力遅延時間は「６」（４５０）、第２のゲーム機の入力遅延時間は「７」（４５２）と第１のゲーム機と第２のゲーム機で異なる入力遅延時間が設定されている場合のゲームデータの生成例について説明する。
【０１５９】
第１のゲーム機の自機ゲームデータ生成部は、第１のゲーム機への入力情報を受け付けたゲーム内時刻４１０と第１のゲーム機の入力遅延時間４５０に基づき、第１のゲーム機の入力遅延時間４５０を反映させた演算予定時刻のフレーム対応する識別番号４３２−１、４３２−２、４３２−３が付加された自機用のゲームデータ４３０を生成する。例えば０フレーム目（ゲーム内時刻）に発生したゲームデータＤＡ０の識別番号４３２−１はゲーム内時刻である０（フレーム）に第１のゲーム機の入力遅延時間４５０である６（フレーム）を加算した値「６」となる。自機用のゲームデータ４３０は、第１のゲーム機の第１のバッファに格納される。
【０１６０】
また第１のゲーム機の自機ゲームデータ生成部は、第１のゲーム機への入力情報を受け付けたゲーム内時刻４１０と第２のゲーム機の入力遅延時間４５２に基づき、第２のゲーム機の入力遅延時間４５２を反映させた演算予定時刻のフレーム対応する識別番号４２２−１、４２２−２、４２２−３が付加された送信用のゲームデータ４２０を生成する。例えば０フレーム目（ゲーム内時刻）に発生したゲームデータＤＡ０の識別番号４２２−１はゲーム内時刻である０（フレーム）に第２のゲーム機の入力遅延時間４５２である７（フレーム）を加算した値「７」となる。送信用のゲームデータ４２０は、第２のゲーム機に送信され、第２のゲーム機の第２のバッファに格納される。
【０１６１】
第２のゲーム機の自機ゲームデータ生成部は、第２のゲーム機への入力情報を受け付けたゲーム内時刻４６０と第２のゲーム機の入力遅延時間４５２に基づき、第２のゲーム機の入力遅延時間４５２を反映させた演算予定時刻のフレーム対応する識別番号４７２−１、４７２−２、４７２−３が付加された自機用のゲームデータ４７０を生成する。例えば０フレーム目（ゲーム内時刻）に発生したゲームデータＤＢ０の識別番号４７２−１はゲーム内時刻である０（フレーム）に第２のゲーム機の入力遅延時間４５２である７（フレーム）を加算した値「７」となる。自機用のゲームデータ４７０は、第２のゲーム機の第１のバッファに格納される。
【０１６２】
また第２のゲーム機の自機ゲームデータ生成部は、第２のゲーム機への入力情報を受け付けたゲーム内時刻４６０と第１のゲーム機の入力遅延時間４５０に基づき、第１のゲーム機の入力遅延時間４５０を反映させた演算予定時刻のフレーム対応する識別番号４８２−１、４８２−２、４８２−３が付加された送信用のゲームデータ４８０を生成する。例えば０フレーム目（ゲーム内時刻）に発生したゲームデータＤＢ０の識別番号４８２−１はゲーム内時刻である０（フレーム）に第１のゲーム機の入力遅延時間４５０である６（フレーム）を加算した値「６」となる。送信用のゲームデータ４８０は、第１のゲーム機に送信され、第１のゲーム機の第２のバッファに格納される。
【０１６３】
（４）通信遅延時間判定処理
図９は本実施の形態の通信遅延時間判定処理について説明するための図である。
【０１６４】
本実施の形態の通信遅延時間判定処理部１１８は、所定のタイミング（ゲーム開始前や、対戦相手決定時）で自機と対戦相手となる他機の間でパケットの送受信を行うテスト通信を連続して複数回行い、前記複数回のテスト通信結果に基づき通信遅延時間を求める。
【０１６５】
テスト通信開始後の所定期間内のテスト通信状況（所定期間内に受信した返信パケットの受信タイミング）に基づき通信遅延時間を求めるようにしてもよい。所定期間内のテスト通信状況とは所定期間内に受信した返信パケットの受信までの経過時間等を意味する。
【０１６６】
テスト通信Ｔは自機から他機に対して返信要求を行うパケットＰの送信と、パケットＰを受信した他機から自機に送信された返信パケットＰ’の受信を１対とする送受信からなる。図９ではＴ１（パケットＰ１の送信と返信パケットＰ’１の受信）からＴ１０（パケットＰ１０の送信と返信パケットＰ’１０の受信）の１０回のテスト通信がおこなわれた様子を示している。テスト通信を連続して複数回行うとは、例えば複数のパケットＰ１〜ＰＮを送信する場合に複数のパケットＰ１〜ＰＮをまとめて送信することや、送信したパケットＰｎに対する返信パケットＰ’ｎの受信を待たずに次のパケットＰｎ＋１を送信することを意味する。
【０１６７】
例えば複数回のテスト通信に要する時間（パケットＰを送信してから対応するパケットＰ’を受信するまでに要する時間）に基づき通信遅延時間を求めても良いし、複数回のテスト通信の最初の通信タイミングテスト（通信開始タイミング５１０）から所定期間内Ｋに受信した返信パケットＰ’の受信タイミングまでの経過時間に基づき通信遅延時間を求めても良い。また複数回のテスト通信のなかで所定の条件を満たすテスト通信に要する時間または経過時間に基づきもとめてもよい。
【０１６８】
図９は、テスト通信開始タイミング５１０において第１のゲーム機から第２のゲーム機に１０個のパケットＰ１〜Ｐ１０が送信された場合の通信状況を示している。通信状況が良い場合には第１のゲーム機から送信されたパケットＰ１からＰ１０は第２のゲーム機で受信され、第２のゲーム機でパケットＰ１〜Ｐ１０に対応した返信パケットＰ１’〜Ｐ’１０が送信され、第１のゲーム機では、返信パケットＰ１’〜Ｐ’１０を受信するが、ここでは第１のゲーム機は、パケットＰ９に対応する返信パケットＰ’９を受信していない。（パケットＰ９が第２のゲーム機に受信されていない場合や、パケットＰ９第２のゲーム機に受信され第２のゲーム機は返信パケットＰ’９を送信したが、第１のゲーム機が返信パケットＰ’９を受信していない場合を含む）。
【０１６９】
たとえば最初の通信タイミング５１０から所定期間内Ｋに受信した返信パケットＰ’８、Ｐ’１、Ｐ’２、Ｐ’４、Ｐ’３、Ｐ’７、Ｐ’１０、Ｐ’５のなかで、テスト通信開始５１０からの返信パケット受信までの経過時間の小さい方からｍ個（例えばｍ＝２とするとＰ’８、Ｐ’１）、経過時間の大きい方からｍ個（例えばｍ＝２とするとＰ’１０、Ｐ’５）の返信パケットをのぞいた残りのパケット（ここではＰ’２、Ｐ’４、Ｐ’３、Ｐ’７）の受信までの経過時間の平均に基づき通信遅延時間を求めてもよい。所定期間経過後に受信した返信パケットＰ’６は平均算出の対象としない。またテスト通信Ｔ９のように返信パケットＰ’９を受信していないケースも平均算出の対象としない。
【０１７０】
このようにすると、テスト通信開始５１０後の所定期間内Ｋの所定時間内に返信のあったテスト通信の通信結果を用いて通信遅延時間を求めることが出来るので、通信状況が良くない場合でも効率よく通信遅延を測定することが出来る。
【０１７１】
図１５は通信遅延時間に基づき入力遅延時間を設定する例について説明するための図である。
【０１７２】
本実施の形態では測定した前記通信遅延時間より長い入力遅延時間を設定する。例えば通信遅延時間Ｔ１、入力遅延時間をＴ２、所定のオフセットをβとしてＴ２＝Ｔ１＋βとなるように入力遅延時間を設定してもよい。
【０１７３】
なおオフセットβは一定でなくてもよい（通信遅延時間Ｔ１に応じて変化してもよい）。例えば通信遅延時間の取り得る値の範囲を複数に分割し、各範囲５２２と設定される入力遅延時間５２４の対応を予め定義しておき、テーブルとして記憶させておいても良いし、アルゴリズムに組み込んでおいても良い。そして測定した通信遅延時間が属する範囲５２２に対応して定義されている入力遅延時間５２４に基づき入力遅延時間を設定してもよい。（表示遅延時間を考慮しない場合には、定義されている入力遅延時間５２４を入力遅延時間として設定してもよい）。
【０１７４】
（５）ゲームデータ生成処理
図１０（Ａ）（Ｂ）は入力操作定義情報について説明する図である。
【０１７５】
本実施の形態のゲーム機は、例えばＡボタン、Ｂボタン、Ｃボタン、Ｄボタン等の所定のキーに対する入力操作に対してプレーヤ所望の動作コマンドを割り付けることが出来る。ここで動作コマンドとは、各ゲームで共通に使用される動作情報である。入力操作定義情報生成部は、例えばキーカスタマイズ画面等を表示して、プレーヤからの設定入力を受け付けるようにしてもよい。そしてプレーヤからの設定入力情報に基づき、自機への入力操作と前記動作情報（動作コマンド）の対応関係が定義された入力操作定義情報を生成する。
【０１７６】
図１０（Ａ）は、第１のゲーム機の入力操作定義情報の一例を示しており、図１０（Ｂ）は、第２のゲーム機の入力操作定義情報の一例を示している。入力操作定義情報５３０−１、５３０−２はキー情報（押されたボタンの種類を示す情報）５３２−１、５３２−２とボタンの種類に対応する動作情報５３４−１、５３４−２の対応関係を示すテーブルやアルゴリズムとして設定することが出来る。ここで、動作情報として例示されている「タテ切り」「ヨコ切り」「けり」「ガード」は第１のゲーム機と第２のゲーム機で共通して同じ意味で解釈、実行される共通の動作コマンドでもよい。
【０１７７】
第１のゲーム機ではＡボタンに「タテ切り」が割り当てられ、Ｂボタンに「ヨコ切り」が割り当てられ、Ｃボタンに「けり」が割り当てられ、Ｄボタンに「ガード」が割り当てられている。
【０１７８】
また第２のゲーム機ではＡボタンに「ガード」が割り当てられ、Ｂボタンに「けり」が割り当てられ、Ｃボタンに「タテ切り」が割り当てられ、Ｄボタンに「ヨコ切り」が割り当てられている。
【０１７９】
例えば自機ゲームデータ生成部は、入力操作定義情報に基づき、入力情報が示す自機への入力操作を対応する動作情報に変換し、図１４（Ａ）に示すように入力情報とて動作情報３２２を含むゲームデータ３００を生成してもよい。この場合第１のゲーム機ではＡボタンが押下されると動作情報「タテ切り」を含むゲームデータが生成され、第２のゲーム機ではＡボタンが押下されると動作情報「ガード」を含むゲームデータが生成されることになる。
【０１８０】
このようにすると他機のゲームデータを動作情報として受け取ること出来るので、他機の入力操作定義情報を意識することなく（入力操作定義情報を受信しなくてもよい）、ゲーム演算を行うことが出来る。
【０１８１】
また例えば自機ゲームデータ生成部は、図１４（Ｂ）に示すように入力情報が示す自機への入力操作の情報（キー情報）３２４を含むゲームデータ３００を生成してもよい。この場合第１のゲーム機ではＡボタンが押下されるとキー情報「Ａ」を含むゲームデータが生成され、第２のゲーム機ではＡボタンが押下されるとキー情報「Ａ」を含むゲームデータを生成されることになる。
【０１８２】
ここで、第１のゲーム機と第２のゲーム機ではキー情報「Ａ」が指示する動作が異なるため、ゲーム演算部は、自機の入力操作定義情報（第１のゲーム機の場合図１０（Ａ）の５３０−１）に基づき、第１のバッファから抽出したゲームデータに含まれた入力操作の情報を入力操作に対応した自機の動作情報に変換し、他機の入力操作定義情報（第１のゲーム機の場合図１０（Ｂ）の５３０−２）に基づき、第２のバッファから抽出したゲームデータに含まれた入力操作の情報を入力操作に対応した他機の動作情報に変換し、自機の動作情報と他機の動作情報に基づいて、各フレームのゲーム演算を行う。例えばゲーム演算部は、第１のバッファから抽出したゲームデータのキー情報が「Ａ」であれば動作情報「タテ切り」に変換し、第２のバッファから抽出したゲームデータのキー情報が「Ａ」であれば動作情報「ガード」に変換してゲーム演算を行う事になる。
【０１８３】
図１４（Ｂ）に示すように入力情報が示す自機への入力操作の情報（キー情報）３２４を含むゲームデータ３００を送受信する場合には、他機の入力操作定義情報を予め受信しておくことで、他機のゲームデータを動作情報に変換してゲーム演算を行うことが出来る。
【０１８４】
（６）入力遅延時間を経過しても他機のゲームデータを受信していない場合の処理
本実施の形態のゲーム演算部は、抽出されるべき他機のゲームデータを受信していない（第２のバッファに記憶されていない）場合には、ゲーム演算処理を中断し、前フレームと同じ画像を表示してもよい。
【０１８５】
例えば図１２において、演算予定フレーム（識別番号）が「１２」である場合には、第１のバッファ及び第２のバッファから識別番号「１２」に対応付けられたゲームデータが抽出されなければならないが、未だ第２のゲーム機から識別番号「１２」に対応付けられたゲームデータを受信していない場合に、第１のゲーム機の第２のバッファの識別番号「１２」に対応付けられたエリアは「データなし」の状態となっている（５５０参照）。例えば第１のバッファ及び第２のバッファは初期設定において「データなし」を設定しておくと、他機から所与の識別番号に対応付けられたゲームデータを受信しないと、第２のバッファの所与の識別番号に対応付けられたエリアは「データなし」の状態となる。
【０１８６】
従って第２のバッファの演算予定フレーム（識別番号）が「１２」に対応付けられたエリアが「データなし」の状態であれば、抽出されるべき他機のゲームデータを受信していないと判断することが出来る。この場合ゲーム演算処理部は、当該フレームのゲーム演算処理を中断し、前フレームと同じ画像を表示する。この場合ゲーム内経過フレームも更新されない。
【０１８７】
そして、抽出されるべき他機のゲームデータを受信した（第２のバッファに記憶された）場合には、ゲーム演算処理を再開することが出来る。この場合ゲーム内経過フレームも更新を開始する。
【０１８８】
（７）ゲームデータ通信制御
本実施の形態のゲームデータの第１の通信形態として、途中でゲームデータが紛失しても再送されないタイプの第１のプロトコル（例えばＵＤＰ）でゲームデータの送受信を行う構成を取ることが出来る。この場合には、抽出されるべき他機のゲームデータ受信していない（第２のバッファに記憶されていない）場合には、抽出されるべきゲームデータの識別番号を再送データ特定情報として付加してゲームデータ再送要求を行い、他機からゲームデータ再送要求を受信した場合には、付加された再送データ特定情報に対応する識別番号に対応付けられたゲームデータを他機に送信する。
【０１８９】
抽出されるべき他機のゲームデータ受信していない（第２のバッファに記憶されていない）場合とは、通信遅延時間経過後、演算予定時刻に達しても他機のゲームデータ受信していない（第２のバッファに記憶されていない）場合である。
【０１９０】
図１６（Ａ）（Ｂ）は本実施の形態のゲームデータの第２の通信形態について説明するための図である。図１６（Ａ）は第１のゲーム機が送信するパケットを示しており、図１６（Ｂ）は第１のゲーム機が受信するパケットを示している。
【０１９１】
第２の通信形態では、図１６（Ａ）に示すように途中でゲームデータが紛失しても再送されないタイプの第１のプロトコル（ＵＤＰ）でｎ回（例えば６１０−１〜６１０−１０の１０回や６１０−１１〜６１０−２０の１０回）パケットを送信する毎に、送信の途中でデータが紛失すると再送されるタイプの第２のプロトコル（ＴＣＰ）でｎ回分のパケットに含まれたゲームデータ（例えばＤＡ１〜ＤＡ１０やＤＡ１１〜ＤＡ２０）を含む１つのパケット６２０−１、６２０−２を他機に送信する。また図１６（Ｂ）に示すように、前記第１のプロトコル及び前記第２のプロトコルで他機から送信されたパケットを受信することが期待されている。
【０１９２】
第２の通信形態では、同期制御部は、所与のフレームのゲームデータに対応したパケットを前記第１のプロトコルで他機から受信出来なかった場合には、前記第２のプロトコルで他機から送信されたパケットに含まれた前記所与のフレームのゲームデータを第２のバッファに蓄積する処理を行うことが出来る。例えば図１６（Ｂ）において、ゲームデータＤＢ３に対応したパケット６３０−３を前記第１のプロトコル（ＵＤＰ）で他機から受信出来なかった場合には、前記第２のプロトコル（ＴＣＰ）で他機から送信されたパケット６４０−１に含まれたＤＢ３のゲームデータを第２のバッファに記憶させる処理を行うことが出来る。
【０１９３】
３．本実施形態の処理の流れ
図１１は、入力遅延設定手法タイミングチャートの一例を示す。
【０１９４】
親機である第１のゲーム機において、所定のタイミング（例えばゲーム開始前の対戦相手が決定された後）２８０で、以下の処理を行う。
【０１９５】
まず各種設定情報の送受信を行う（２８２参照）。ここで各種設定情報とは、図１０で説明した各ゲーム機の入力操作定義情報や、図７で説明した各ゲーム機の表示遅延時間情報である。
【０１９６】
次に例えば図９で説明した手法により、遅延時間を判定する（２８４参照）。次に判定した遅延時間に基づき例えば図９で説明した手法により、自機及び他機の入力遅延時間を設定する（２８６参照）。次に他機の入力遅延時間を送受信する（２８８参照）。すなわち第１のゲーム機が第２のゲーム機の入力遅延時間を送信し、第２のゲーム機がこれを受信する。
【０１９７】
第１のゲーム機のゲーム開始のタイミング２５０と第２のゲーム機のゲーム開始のタイミング２５０’の同期を取ってゲーム演算を開始する。各ゲームでは入力情報を受け付けたフレーム２５０、２５０’において入力情報に基づいてゲームデータを生成し、他機に送信するとともに、自機の第１のバッファに格納する。通信遅延時間がＴ１である場合、フレーム２５０、２５０’において他機から送信されたしたゲームデータはフレーム２６０、２６０’において受信され、第２のバッファに格納される。入力遅延時間がＴ２である場合、フレーム２５０、２５０’において生成されたゲームデータは、各ゲームにおいて入力遅延時間を経過したフレーム２７０、２７０’において第１のバッファ及び第２のバッファから抽出され、ゲーム演算が行われる。
【０１９８】
なお、本発明は本実施の形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【０１９９】
本発明は、実施の形態で説明した構成と実質的に同一の構成（例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成）を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。
【０２００】
上記実施の形態では各フレーム毎にゲームデータが送信される場合を例にとり説明したがこれに限られない。例えばｎフレーム分まとめて１つのパケットとして、ｎフレーム毎に送信される構成でもよい。
【図面の簡単な説明】
【０２０１】
【図１】本実施形態のゲーム機の機能ブロック図。
【図２】本実施形態のネットワーク図。
【図３】同期処理の説明図。
【図４】入力遅延時間の設定手法について説明するための図。
【図５】入力遅延時間時間を反映したゲームデータを生成する例について説明するための図。
【図６】第１のゲーム機の第１のバッファ及び第２のバッファにゲームデータが蓄積される様子を模式的に示した図。
【図７】入力遅延時間の設定手法の他の例について説明するための図。
【図８】ゲームによって異なる入力遅延時間時間を反映したゲームデータを生成する例について説明するための図。
【図９】通信遅延時間判定処理について説明するための図。
【図１０】図１０（Ａ）（Ｂ）は入力操作定義情報について説明する図。
【図１１】入力遅延設定手法タイミングチャートの一例を示す図。
【図１２】入力遅延時間を経過しても他機のゲームデータを受信していない場合の処理について説明するための図。
【図１３】入力情報に基づき生成されるゲームデータについて説明するための図。
【図１４】図１４（Ａ）（Ｂ）はゲームデータの構成について説明する図
【図１５】通信遅延時間に基づき入力遅延時間を設定する例について説明するための図。
【図１６】図１６（Ａ）（Ｂ）は本実施の形態のゲームデータの第２の通信形態について説明するための図。
【符号の説明】
【０２０２】
１００  処理部、１１０  ゲーム演算部、１１１、オブジェクト空間設定部、１１２  仮想カメラ制御部、１１３  移動・動作処理部、１１４  ネットワーク設定部、１１５  通信制御部、１１６  同期制御部、１１７  自機ゲームデータ生成部、１１８  通信遅延時間判定処理部、１１９  入力遅延時間設定処理部、１２０  表示遅延時間設定処理部、１２１、入力操作定義情報生成処理部、１３０  描画部、１４０  音生成部、１６０  操作部、１７０  記憶部、１７２  主記憶部、１７４  描画バッファ、１７６  第１のバッファ、１７８  第２のバッファ、１７９  各種定義情報記憶部、１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、１９６  通信部
【図１】
2010029393.tif 000003
【図２】
2010029393.tif 000004
【図３】
2010029393.tif 000005
【図４】
2010029393.tif 000006
【図５】
2010029393.tif 000007
【図６】
2010029393.tif 000008
【図７】
2010029393.tif 000009
【図８】
2010029393.tif 000010
【図９】
2010029393.tif 000011
【図１０】
2010029393.tif 000012
【図１１】
2010029393.tif 000013
【図１２】
2010029393.tif 000014
【図１３】
2010029393.tif 000015
【図１４】
2010029393.tif 000016
【図１５】
2010029393.tif 000017
【図１６】
2010029393.tif 000018