(57)【要約】【課題】ネットワークを介して他のゲーム装置において操作されるオブジェクトの位置の予測を、別のゲーム装置上でより確実に行うことができる通信ゲームシステムおよび通信ゲームプログラムを提供する。【解決手段】ゲーム装置は、予測用データをネットワークを介して他のゲーム装置から受信する。予測用データは、他のゲーム装置によって操作されるオブジェクトのゲーム空間における位置を示す位置データと、当該オブジェクトが当該位置に存在する時点における時刻を示す時刻データとを少なくとも含む。ゲーム装置は、受信した予測用データに含まれる位置データと時刻データとに基づいて、当該予測用データを受信した時点における前記オブジェクトの予測位置を算出する。さらに、予測用データを受信した時点における前記オブジェクトのゲーム空間内における位置を前記予測位置に基づいて決定する。【選択図】図７
2007097836.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して複数のゲーム装置を接続してなる通信ゲームシステムに含まれるゲーム装置のコンピュータにおいて実行される通信ゲームプログラムであって、
他のゲーム装置によって操作されるオブジェクトのゲーム空間における位置を示す位置データと、当該オブジェクトが当該位置に存在する時点における時刻を示す時刻データとを少なくとも含む予測用データを当該他のゲーム装置から受信する受信ステップと、
前記受信ステップで受信した予測用データに含まれる位置データと時刻データとに基づいて、当該予測用データを受信した時点に基づいて決められる当該時点以降の所定の時点における前記オブジェクトの予測位置を算出する予測位置算出ステップと、
前記受信ステップで予測用データを受信した時点における前記オブジェクトのゲーム空間内における位置を前記予測位置に基づいて決定する位置決定ステップとを前記コンピュータに実行させる、通信ゲームプログラム。
【請求項２】
前記予測位置算出ステップは、前記受信ステップで予測用データが受信される度に実行され、
前記位置決定ステップは、所定時間毎に繰り返し実行され、
前記位置決定ステップにおいては、前記予測位置算出ステップで算出された最新の予測位置と、前回に実行された前記位置決定ステップで決定された前記オブジェクトの位置とに基づいて当該オブジェクトの位置が決定される、請求項１に記載の通信ゲームプログラム。
【請求項３】
前記位置決定ステップにおいては、前記受信ステップで予測用データを受信した時点における当該オブジェクトの位置は、当該オブジェクトの直前の位置と前記予測位置との間の位置に決定される、請求項１に記載の通信ゲームプログラム。
【請求項４】
前記位置決定ステップにおいては、前記受信ステップで予測用データを受信した時点における当該オブジェクトの位置は前記予測位置に決定される、請求項１に記載の通信ゲームプログラム。
【請求項５】
前記予測位置算出ステップにおいては、前記受信ステップで受信した予測用データに含まれる時刻データにより示される時刻と、当該予測用データを受信した時刻との時間差が算出され、当該予測用データを受信した時点における予測位置が当該時間差に基づいて算出される、請求項１に記載の通信ゲームプログラム。
【請求項６】
前記予測用データは、それに含まれる位置データにより示される位置に前記オブジェクトが存在する時点における当該オブジェクトの位置の変化度を示す変化度データをさらに含み、
前記予測位置算出ステップにおいては、前記受信ステップで受信した予測用データに含まれる位置データと時刻データと変化度データとに基づいて、前記所定の時点における前記オブジェクトの予測位置が算出される、請求項１に記載の通信ゲームプログラム。
【請求項７】
前記予測用データは、それに含まれる位置データにより示される位置に前記オブジェクトが存在する時点において行われたゲーム操作を示す操作データをさらに含み、
前記予測位置算出ステップにおいては、前記受信ステップで受信した予測用データに含まれる位置データと時刻データと操作データとに基づいて、前記所定の時点における前記オブジェクトの予測位置が算出される、請求項１に記載の通信ゲームプログラム。
【請求項８】
前記予測用データは、それに含まれる位置データにより示される位置に前記オブジェクトが存在する時点における当該オブジェクトの姿勢を示す姿勢データをさらに含み、
前記受信ステップで受信した予測用データに含まれる姿勢データに基づいて、前記所定の時点における前記オブジェクトの姿勢を算出する姿勢算出ステップを前記コンピュータにさらに実行させる、請求項１に記載の通信ゲームプログラム。
【請求項９】
前記ゲームシステムに含まれる各ゲーム装置間で開始タイミングをそろえて所定のイベントを開始するイベント開始ステップをさらに実行させ、
前記時刻データは、前記所定のイベントが開始された時点からの経過時間を示す、請求項１に記載の通信ゲームプログラム。
【請求項１０】
ネットワークを介して第１および第２のゲーム装置を接続してなる通信ゲームシステムであって、
前記第１のゲーム装置は、第１のゲーム装置によって操作されるオブジェクトのゲーム空間における位置を示す位置データと、当該オブジェクトが当該位置に存在する時点における時刻を示す時刻データとを少なくとも含む予測用データを前記第２のゲーム装置へ送信する送信手段を備え、
前記第２のゲーム装置は、
前記第１のゲーム装置から送信されてくる予測用データを受信する受信手段と、
前記受信手段によって受信された予測用データに含まれる位置データと時刻データとに基づいて、当該予測用データを受信した時点に基づいて決められる当該時点以降の所定の時点における前記オブジェクトの予測位置を算出する予測位置算出手段と、
前記受信手段によって予測用データを受信した時点における前記オブジェクトのゲーム空間内における位置を前記予測位置に基づいて決定する位置決定手段とを備える、通信ゲームシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ゲームプログラムおよび通信ゲームシステムに関し、より特定的には、各ゲーム装置を用いてそれぞれ操作される複数のオブジェクトが登場するゲームを実行するための通信ゲームプログラムおよび通信ゲームシステムに関する。
【背景技術】
【０００２】
従来、複数のゲーム装置をネットワークを介して接続することによって、同じ内容のゲームを複数人のプレイヤでプレイするゲームシステムがよく知られている。特に、昨今ではネットワークロールプレイングゲーム（以下ネットワークＲＰＧとする）が広くプレイされるようになっている。ネットワークＲＰＧでは、サーバを介して、あるいはピア・ツー・ピアで、複数のプレイヤが同じ内容のゲームをプレイすることができる。
【０００３】
このようなネットワークゲームにおいて、各プレイヤが１つずつのゲーム装置を用いてそれぞれのオブジェクトを操作する場合、各ゲーム装置は、自機を用いて操作されるオブジェクトに関するデータを他のゲーム装置に対して送信する。オブジェクトに関するデータは、例えば、オブジェクトのゲーム空間における位置を示す位置データ等である。当該他のゲーム装置は、受信したオブジェクトデータに基づいて各オブジェクトの位置や動作等を決定する。ここで、ネットワークを介したゲームシステムにおいては、ゲーム装置間での通信に遅延が生じることが常である。つまり、ある時点において位置データが送信側から送信されても、その位置データが受信側で受信されるときには、ネットワークを介することにより生じる遅延によって、その位置データにより示される位置からオブジェクトの位置が変化していることがある。受信された位置データにより示される情報が古い情報となるのである。
【０００４】
ネットワークＲＰＧでは、最終的に同じ結果が得られれば、ゲームの進行状況、すなわち、ある時点において各ゲーム装置において表示される画像の内容が多少違っていても支障はきたさない。したがって、ネットワークのトラフィックの増減や（無線ＬＡＮの場合では）ノイズの影響等によって、データの送受信に要する時間にばらつきが出ても、大きな影響をきたすことはない。
【０００５】
一方、レースゲームやアクションゲームのようなゲームをネットワークを介した通信システムで実行する場合には、他のゲーム装置からのデータを単に用いてオブジェクトの動作を決定するだけでは、ゲームの進行状況を正確に表現することができない。例えばレースゲームを例とし、送信されるデータがレースカーの位置を示す位置データである場合を考える。この場合、送信側のゲーム装置を用いて操作されるレースカーの位置データが受信側のゲーム装置で受信された時点では、当該レースカーは、その位置データにより示される位置に実際には存在しない。そのため、位置データにより示される位置にあるレースカーを表示すると、実際のゲーム状況を正確に反映することができないことになる。レースゲームやアクションゲームのようなゲームにおいては、正確なタイミングでゲーム操作を行うことや、より迅速にゲーム操作を行うことがプレイヤに要求される。そのため、このようなゲームにおいて実際のゲーム状況を正確に反映することができないことになると、各ゲーム装置間でゲームの処理内容が異なってしまい、ゲームが成立しなくなるという課題がある。
【０００６】
特許文献１では、クライアント−サーバ型のネットワークを用いて上記課題を解決しようとしたゲームシステムが開示されている。このゲームシステムでは、各クライアントは、自機を用いて操作されるレースカーの所定時間後の将来の位置を予測する。そして、レースカーの現在位置の情報に加えて、上記所定時間後の時刻（将来時刻）の情報と、上記所定時間後におけるレースカーの予測位置の情報とをサーバに対して送信する。また、各クライアントは、自機以外の他のクライアントからサーバに送信された情報をサーバから受信する。そして、自機以外のクライアントを用いて操作されるレースカーの現在の位置を、上記予測位置および将来時刻に基づいて算出する。このように、レースカーの位置を予測することによって、通信による遅延による課題を解決することが考えられている。
【特許文献１】特開２００４−１０５６７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１のゲームシステムでは、受信側のゲーム装置は、送信側から送信されてくる予測位置および将来時刻等のデータを用いて、送信側のゲーム装置を用いて操作されるレースカーの位置を特定する。しかし、このデータが送信側から受信側へ送信される際に要する実際の時間を正確に検知することは困難である。例えば、通信に要する時間を予め測定しておいたとしても、ネットワークの接続環境（通信速度やノイズ）は時々刻々変化するので、実際には、測定した時間で送信側から受信側へデータが必ず送信されるとは限らない。そのため、上記データを送信側から受信側へ送信する場合、当該データにより示される将来時刻よりも遅い時刻に当該データが受信される可能性がある。このとき、受信側ではレースカーの位置を特定することができなくなってしまうという問題がある。以上のように、従来のゲームシステムでは、送信側のゲーム装置で予測を行うことから、予測結果を受信側へ送信する間に予測結果自体が古くなってしまい、予測結果が受信側で受信される時点では予測結果が意味をなさないものとなる可能性があった。なお、上記問題を防止するためには、現在時刻から将来時刻までの時間をできるだけ長くすることが考えられる。しかし、この時間を長くすると、予測の精度が悪くなり、正確な予測が行えなくなる。
【０００８】
それ故、本発明の目的は、他のゲーム装置を用いて操作されるオブジェクトの予測をできる限り確実に行うとともに、正確な予測を行うことができる通信ゲームシステムおよび通信ゲームプログラムを提供することである。
【課題を解決するための手段】
【０００９】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【００１０】
第１の発明は、ネットワーク（１）を介して複数のゲーム装置（ゲーム装置１０ａ〜１０ｃ）を接続してなる通信ゲームシステムに含まれるゲーム装置（１０）のコンピュータ（ＣＰＵコア２１等）において実行される通信ゲームプログラム（ゲームプログラム５１）である。通信ゲームプログラムは、受信ステップ（Ｓ７）と、予測位置算出ステップ（Ｓ４３，Ｓ４４）と、位置決定ステップ（Ｓ４５）とをコンピュータに実行させる。受信ステップは、他のゲーム装置によって操作されるオブジェクト（カート４１〜４３）のゲーム空間における位置を示す位置データ（６４ａ）と、当該オブジェクトが当該位置に存在する時点における時刻を示す時刻データ（６４ｃ）とを少なくとも含む予測用データを当該他のゲーム装置から受信する。予測位置算出ステップは、受信ステップで受信した予測用データに含まれる位置データと時刻データとに基づいて、当該予測用データを受信した時点に基づいて決められる当該時点以降の所定の時点におけるオブジェクトの予測位置（図７に示す位置Ｑｎ＋３）を算出する。位置決定ステップは、受信ステップで予測用データを受信した時点におけるオブジェクトのゲーム空間内における位置（図７に示す位置Ｒｎ＋３）を予測位置に基づいて決定する。
【００１１】
第２の発明においては、予測位置算出ステップは、受信ステップで予測用データが受信される度に実行されてもよい。このとき、位置決定ステップは、所定時間毎（１フレーム毎）に繰り返し実行される。位置決定ステップにおいては、予測位置算出ステップで算出された最新の予測位置（図７に示す位置Ｑｎ＋３）と、前回に実行された位置決定ステップで決定されたオブジェクトの位置（図７に示す位置Ｒｎ＋２）とに基づいて当該オブジェクトの位置（図７に示す位置Ｒｎ＋３）が決定される。
【００１２】
第３の発明においては、位置決定ステップにおいて、受信ステップで予測用データを受信した時点における当該オブジェクトの位置は、当該オブジェクトの直前の位置と予測位置との間の位置に決定されてもよい。
【００１３】
第４の発明においては、位置決定ステップにおいて、受信ステップで予測用データを受信した時点における当該オブジェクトの位置は予測位置に決定されてもよい。
【００１４】
第５の発明においては、予測位置算出ステップにおいて、受信ステップで受信した予測用データに含まれる時刻データにより示される時刻と、当該予測用データを受信した時刻との時間差（Δｔ）が算出され、当該予測用データを受信した時点における予測位置が当該時間差に基づいて算出されてもよい。
【００１５】
第６の発明においては、予測用データは、それに含まれる位置データにより示される位置にオブジェクトが存在する時点における当該オブジェクトの位置の変化度を示す変化度データ（速度データ６４ｂ）をさらに含んでいてもよい。このとき、予測位置算出ステップにおいては、受信ステップで受信した予測用データに含まれる位置データと時刻データと変化度データとに基づいて、所定の時点におけるオブジェクトの予測位置が算出される。
【００１６】
第７の発明においては、予測用データは、それに含まれる位置データにより示される位置にオブジェクトが存在する時点において行われたゲーム操作を示す操作データ（６４ｄ）をさらに含んでいてもよい。このとき、予測位置算出ステップにおいては、受信ステップで受信した予測用データに含まれる位置データと時刻データと操作データとに基づいて、所定の時点におけるオブジェクトの予測位置が算出される。
【００１７】
第８の発明においては、予測用データは、それに含まれる位置データにより示される位置にオブジェクトが存在する時点における当該オブジェクトの姿勢を示す姿勢データをさらに含んでいてもよい。このとき、受信ステップで受信した予測用データに含まれる姿勢データに基づいて、所定の時点におけるオブジェクトの姿勢を算出する姿勢算出ステップをコンピュータにさらに実行させる。
【００１８】
第９の発明においては、通信ゲームプログラムは、ゲームシステムに含まれる各ゲーム装置間で開始タイミングをそろえて所定のイベント（レースゲーム）を開始するイベント開始ステップをさらに実行させてもよい。このとき、時刻データは、所定のイベントが開始された時点からの経過時間を示す。
【００１９】
第１０の発明は、ネットワーク（１）を介して第１および第２のゲーム装置を接続してなる通信ゲームシステムである。第１のゲーム装置（図５に示す第２ゲーム装置１０ｂ）は、第１のゲーム装置によって操作されるオブジェクトのゲーム空間における位置を示す位置データと、当該オブジェクトが当該位置に存在する時点における時刻を示す時刻データとを少なくとも含む予測用データを第２のゲーム装置（図５に示す第１ゲーム装置１０ａ）へ送信する送信手段（ＣＰＵコア２１、データ送信プログラム５３）を備えている。第２のゲーム装置は、受信手段（ＣＰＵコア２１、）と、予測位置算出手段と（ＣＰＵコア２１、予測位置算出プログラム５５）、位置決定手段（ＣＰＵコア２１、位置決定プログラム５６）とを備えている。受信手段は、第１のゲーム装置から送信されてくる予測用データを受信する。予測位置算出手段は、受信手段によって受信された予測用データに含まれる位置データと時刻データとに基づいて、当該予測用データを受信した時点に基づいて決められる当該時点以降の所定の時点におけるオブジェクトの予測位置を算出する。位置決定手段は、受信手段によって予測用データを受信した時点におけるオブジェクトのゲーム空間内における位置を予測位置に基づいて決定する。
【発明の効果】
【００２０】
第１の発明によれば、送信側のゲーム装置（他のゲーム装置）からは予測用データが送信され、受信側のゲーム装置において予測位置算出ステップが実行されることによって受信側のゲーム装置で予測位置が算出される。送信側で予測を行う場合には、予測結果が受信側に届いた時点で古くなり、予測結果を用いることができなくなる可能性があったのに対して、第１の発明では、受信側で予測を行うようにするので、予測結果が無駄になることがなく、確実に予測を行うことができる。
【００２１】
第２の発明によれば、オブジェクトの位置は、予測位置と前回におけるオブジェクトの位置とに基づいて決定される。つまり、予測位置がそのままオブジェクトの新たな位置に決定されるわけではない。ここで、予測位置がそのままオブジェクトの新たな位置に決定される場合には、予測用データが送信されてきたときにのみオブジェクトの位置が変更されることとなる。オブジェクトは、所定時間毎に移動するのではなく、予測用データが送信されてきたときにのみ移動するように表示されるので、オブジェクトの移動が滑らかでなくなり、オブジェクトが移動する様子が不自然に見えてしまう。これに対して、第２の発明によれば、予測用データが所定時間毎に受信されない場合であっても、オブジェクトの位置を所定時間毎に変化させることができるので、オブジェクトが移動する様子を自然に表現することができる。
【００２２】
第３の発明によれば、オブジェクトの新たな位置は、予測位置とオブジェクトの直前の位置との間となる。したがって、予測位置が急激に変化した場合であっても、その変化を緩和することができ、オブジェクトの移動を滑らかにすることができる。
【００２３】
第４の発明によれば、オブジェクトの新たな位置を予測位置のみから容易に決定することができるので、オブジェクトの位置を決定する処理を簡易にすることができ、ゲーム装置のコンピュータの処理負担を軽減することができる。
【００２４】
第５の発明によれば、予測用データに含まれる時刻データにより示される時刻と、当該予測用データを受信した時刻との時間差が算出される。そして、当該時間差に基づいて予測位置が算出される。これによれば、予測用データの送信に要した実際の遅延時間を考慮して予測位置が算出されるので、予測位置をより正確に算出することができる。また、上記時間差は実際の遅延時間であり、予め測定しておいた遅延時間を用いて予測位置を算出するよりも予測位置を正確に算出することができる。
【００２５】
第６の発明によれば、オブジェクトの速度データを用いて予測位置を算出することによって、予測位置をより正確に算出することができる。
【００２６】
第７の発明によれば、オブジェクトに対するゲーム操作を考慮して予測位置を算出することができるので、予測位置をより正確に算出することができる。
【００２７】
第８の発明によれば、オブジェクトの位置のみならず、オブジェクトの姿勢についても予測を行うことによって、オブジェクトの姿勢を実際の姿勢に近いものにすることができる。
【００２８】
第９の発明によれば、各ゲーム装置間でほぼ一致した時点を基準として経過時間を表すことができるので、時刻データに基づいて算出される予測位置の算出処理をより正確に行うことができる。
【発明を実施するための最良の形態】
【００２９】
以下、図面を参照して、本発明の一実施形態に係るゲームシステムに含まれるゲーム装置の構成について説明する。図１は、本実施形態に係るゲームシステムの構成を示すブロック図である。図１に示すように、本ゲームシステムは、複数の携帯ゲーム装置（以下、単に「ゲーム装置」と呼ぶ。）１０ａ〜１０ｃがインターネット等のネットワーク１を介して接続される構成である。本実施形態では、例えば３つのゲーム装置１０ａ〜１０ｃによってゲームシステムが構成され、３人のプレイヤがゲーム装置を１つずつ使用するものとする。各ゲーム装置１０ａ〜１０ｃは、無線でネットワーク１に接続可能であるが、有線で接続されるものであってもよい。また各ゲーム装置は携帯ゲーム装置ではなく、据置型ゲーム装置であってももちろん構わない。以下においては、３つのゲーム装置１０ａ〜１０ｃを、第１ゲーム装置１０ａ、第２ゲーム装置１０ｂ、および第３ゲーム装置１０ｃと呼ぶ。なお、３つのゲーム装置を特に区別する必要がない場合は、第１〜第３ゲーム装置１０ａ〜１０ｃを単にゲーム装置１０と記載することもある。
【００３０】
まず、ゲーム装置の構成について説明する。図２は、ゲームシステムに含まれるゲーム装置１０の外観図である。本実施形態では、第１〜第３ゲーム装置１０ａ〜１０ｃは全て同じ構成であり、全て図１に示す構成である。
【００３１】
以下、ゲーム装置の構成および動作を説明する。図２は、本実施形態に係るゲームシステムに含まれるゲーム装置の外観図である。図２において、ゲーム装置１０は、第１ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１１および第２ＬＣＤ１２を含む。ハウジング１３は上側ハウジング１３ａと下側ハウジング１３ｂとによって構成されており、第１ＬＣＤ１１は上側ハウジング１３ａに収納され、第２ＬＣＤ１２は下側ハウジング１３ｂに収納される。第１ＬＣＤ１１および第２ＬＣＤ１２の解像度はいずれも２５６ｄｏｔ×１９２ｄｏｔである。なお、本実施形態では表示装置としてＬＣＤを用いているが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置など、他の任意の表示装置を利用することができる。また任意の解像度のものを利用することができる。
【００３２】
上側ハウジング１３ａには、後述する１対のスピーカ（図３の３０ａ、３０ｂ）からの音を外部に放出するための音抜き孔１８ａ、１８ｂが形成されている。
【００３３】
下側ハウジング１３ｂには、入力装置として、十字スイッチ１４ａ、スタートスイッチ１４ｂ、セレクトスイッチ１４ｃ、Ａボタン１４ｄ、Ｂボタン１４ｅ、Ｘボタン１４ｆ、Ｙボタン１４ｇ、Ｌボタン１４ＬおよびＲボタン１４Ｒが設けられている。また、さらなる入力装置として、第２ＬＣＤ１２の画面上にタッチパネル１５が装着されている。また、下側ハウジング１３ｂには、電源スイッチ１９や、メモリカード１７やスティック１６を収納するための挿入口も設けられている。
【００３４】
タッチパネル１５としては、例えば抵抗膜方式や光学式（赤外線方式）や静電容量結合式など、任意の方式のものを利用することができる。タッチパネル１５は、その表面をスティック１６で触れると、その接触位置に対応する座標データを出力する機能を有している。なお、以下ではプレイヤがタッチパネル１５をスティック１６で操作するものとして説明を行うが、スティック１６の代わりにペン（スタイラスペン）や指でタッチパネル１５を操作することももちろん可能である。本実施形態では、タッチパネル１５として、第２ＬＣＤ１２の解像度と同じく２５６ｄｏｔ×１９２ｄｏｔの解像度（検出精度）のものを利用する。ただし、必ずしもタッチパネル１５の解像度と第２ＬＣＤ１２の解像度が一致している必要はない。
【００３５】
メモリカード１７はゲームプログラムを記録した記録媒体であり、下部ハウジング１３ｂに設けられた挿入口に着脱自在に装着される。
【００３６】
次に、図３を参照してゲーム装置１０の内部構成を説明する。図３において、ハウジング１３に収納される電子回路基板２０には、ＣＰＵコア２１が実装される。ＣＰＵコア２１には、バス２２を介して、コネクタ２３が接続されるとともに、入出力インターフェース回路（図面ではＩ／Ｆ回路と記す）２５、第１ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２６、第２ＧＰＵ２７、ＲＡＭ２４、およびＬＣＤコントローラ３１が接続される。コネクタ２３には、メモリカード１７が着脱自在に接続される。メモリカード１７は、ゲームプログラムを記憶するＲＯＭ１７ａと、バックアップデータを書き換え可能に記憶するＲＡＭ１７ｂを搭載する。メモリカード１７のＲＯＭ１７ａに記憶されたゲームプログラムはＲＡＭ２４にロードされ、ＲＡＭ２４にロードされたゲームプログラムがＣＰＵコア２１によって実行される。ＲＡＭ２４には、ゲームプログラムの他にも、ＣＰＵコア２１がゲームプログラムを実行して得られる一時的なデータや、ゲーム画像を生成するためのデータが記憶される。Ｉ／Ｆ回路２５には、タッチパネル１５、右スピーカ３０ａ、左スピーカ３０ｂ、無線通信部３３、および図２の十字スイッチ１４ａやＡボタン１４ｄ等からなる操作スイッチ部１４が接続される。右スピーカ３０ａと左スピーカ３０ｂは、音抜き孔１８ａ、１８ｂの内側にそれぞれ配置される。
【００３７】
第１ＧＰＵ２６には、第１ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）２８が接続され、第２ＧＰＵ２７には、第２ＶＲＡＭ２９が接続される。第１ＧＰＵ２６は、ＣＰＵコア２１からの指示に応じて、ＲＡＭ２４に記憶されているゲーム画像を生成するためのデータに基づいて第１のゲーム画像を生成し、第１ＶＲＡＭ２８に描画する。第２ＧＰＵ２７は、同様にＣＰＵコア２１からの指示に応じて第２のゲーム画像を生成し、第２ＶＲＡＭ２９に描画する。第１ＶＲＡＭ２８および第２ＶＲＡＭ２９はＬＣＤコントローラ３１に接続されている。
【００３８】
ＬＣＤコントローラ３１はレジスタ３２を含む。レジスタ３２はＣＰＵコア２１からの指示に応じて０または１の値を記憶する。ＬＣＤコントローラ３１は、レジスタ３２の値が０の場合は、第１ＶＲＡＭ２８に描画された第１のゲーム画像を第１ＬＣＤ１１に出力し、第２ＶＲＡＭ２９に描画された第２のゲーム画像を第２ＬＣＤ１２に出力する。また、レジスタ３２の値が１の場合は、第１ＶＲＡＭ２８に描画された第１のゲーム画像を第２ＬＣＤ１２に出力し、第２ＶＲＡＭ２９に描画された第２のゲーム画像を第１ＬＣＤ１１に出力する。
【００３９】
無線通信部３３は、Ｉ／Ｆ回路２５と接続されている。無線通信部３３は、他のゲーム装置の無線通信部３３との間で、ゲーム処理に利用されるデータやその他のデータを送受信する機能を有しており、一例としてＩＥＥＥ８０２．１１の無線ＬＡＮ規格に則った無線通信機能を提供する。無線通信部３３は、受信したデータをＣＰＵコア２１に出力する。また、無線通信部３３は、ＣＰＵコア２１から指示されたデータを他のゲーム装置へ送信する。なお、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）等のプロトコルや所定のブラウザを無線通信部３３やゲーム装置１０内の記憶部に実装することによって、ゲーム装置１０は、無線通信部３３を介してインターネット等のネットワークとの接続が可能となる。そして、ゲーム装置１０は、ネットワークを介して他のゲーム装置と通信を行うことによって、複数のゲーム装置で同じゲームを実行することが可能となる。また、ゲーム装置１０は、ネットワーク上で公開されている文書や画像等のデータを第１ＬＣＤ１１および第２ＬＣＤ１２で閲覧したり、ネットワーク上で公開されているゲームデータを用いてゲーム処理を実行したりすることもできる。
【００４０】
なお、上記のようなゲーム装置１０の構成は単なる一例に過ぎず、本発明は、ネットワークを介して他の装置と通信可能な任意のコンピュータシステムに適用することができる。また、本発明のゲームプログラムは、メモリカード１７などの外部記憶媒体を通じてコンピュータシステムに供給されるだけでなく、有線または無線の通信回線を通じてコンピュータシステムに供給されてもよいし、さらにはコンピュータシステム内部の不揮発性記憶装置に予め記録されていてもよい。
【００４１】
以下、本実施形態においてゲーム装置１０を用いて行われるゲームについて説明する。図４は、本実施形態におけるゲームのゲーム画面を示す図である。ゲーム装置１０の第２ＬＣＤ１２の画面には、当該ゲーム装置のプレイヤによって操作されるオブジェクトであるカート（レースカー）４１の他、他のゲーム装置のプレイヤによって操作されるオブジェクトであるカート４２および４３が表示される。本ゲームはレースゲームであり、各プレイヤは操作ゲームオブジェクトとしてのカートを操作してカートがゴールする順位を競って遊ぶ。以下では、第１ゲーム装置１０ａを用いて操作されるカート４１を「第１カート」と呼び、第２ゲーム装置１０ｂを用いて操作されるカート４２を「第２カート」と呼び、第３ゲーム装置１０ｃを用いて操作されるカート４３を「第３カート」と呼ぶ。なお、ゲーム装置を用いて操作されるカートとは、そのゲーム装置に設けられた操作スイッチ部１４に対する操作に応じて動作が制御されるカートのことである。
【００４２】
図４に示したようなレースゲームでは、カートがゴールする順位を競うというゲームの性質上、各ゲーム装置１０ａ〜１０ｃを用いて操作される各カートの現在位置をできるだけ正確に表示する必要がある。ここで、ゲーム装置１０は、自機を用いて操作されるカート（自機カート）については正確な現在位置を算出することができるものの、自機以外の他のゲーム装置を用いて操作されるカート（他機カート）の現在位置については、自機と他のゲーム装置との間で通信の遅延があるために、現在位置のデータをリアルタイムに取得することはできない。そのため、ゲーム装置１０は、他機カートの現在位置を正確に予測する必要がある。以下では、他機カートの現在位置を予測する処理について主に説明する。
【００４３】
まず、本実施形態に係るゲームシステムにおいて実行される予測処理の概要を、図５〜図８を用いて説明する。図５〜図８においては、第２ゲーム装置１０ｂを用いて操作されるカート（第２カート）の位置を、第１ゲーム装置１０ａにおいて予測する場合を例として説明する。なお、第１ゲーム装置１０ａが第３カートの位置を予測する場合、および、第２ゲーム装置１０ｂおよび第３ゲーム装置１０ｃが自機以外の他のゲーム装置のカートの位置を予測する場合の予測処理は、図５〜図８に示す場合と同様である。
【００４４】
まず、予測用データの送信方法について図５を用いて説明する。予測用データとは、受信側のゲーム装置が送信側のゲーム装置を用いて操作されるカートの位置を予測するために用いるデータである。予測用データの詳細な内容については後述する。図５は、第２ゲーム装置１０ｂが他のゲーム装置へ予測用データを送信する処理を示す図である。なお、図５においては、第２ゲーム装置１０ｂが他のゲーム装置１０ａおよび１０ｃに予測用データを送信する場合のみを示し、他のゲーム装置１０ａおよび１０ｃから予測用データが送信される場合については図示していない。
【００４５】
また、本実施形態においては、各ゲーム装置１０ａ〜１０ｃは、レースゲームが開始されてからの経過時間を計測し、ゲーム中における時刻をこの経過時間によって表す。また、経過時間は、フレーム時間（１／６０秒）を単位として計測される。すなわち、各ゲーム装置１０ａ〜１０ｃは、１／６０秒単位で時間をカウントするタイマーを内蔵し、このタイマーの値を用いて経過時間を測定する。図５は、ｎフレーム時間（ｎは任意の自然数）からｎ＋５フレーム時間までの間において第２ゲーム装置１０ｂが送信する予測用データが送受信されるタイミングを示している。
【００４６】
図５に示すように、第２のゲーム装置１０ｂは１フレーム毎に予測用データを送信する。第２のゲーム装置１０ｂは、時刻ｔ＝ｎ、ｎ＋２、ｎ＋４の時点で第１ゲーム装置１０ａへ予測用データを送信し、時刻ｔ＝ｎ＋１、ｎ＋３、ｎ＋５の時点で第３ゲーム装置１０ｃへ予測用データを送信する。このように、第２ゲーム装置１０ｂは、１フレームにつき１つのゲーム装置へ予測用データを送信し、かつ、他のゲーム装置へ順番に予測用データを送信する。なお、他の実施形態においては、ゲーム装置は、１フレームにつき他の全てのゲーム装置へ予測用データを送信するようにしてもよい。
【００４７】
図５において、時刻ｔ＝ｎの時点において第２ゲーム装置１０ｂから送信された予測用データは、３フレーム時間後、すなわち、時刻ｔ＝ｎ＋３の時点において第１ゲーム装置１０ａで受信される。予測用データには、それが送信された時点におけるカートの状態（位置や速度等）、および、当該時点を示すデータ等が含まれている。つまり、第１ゲーム装置１０ａは、時刻ｔ＝ｎ＋３の時点において予測用データを受信することによって、３フレーム前、すなわち、時刻ｔ＝ｎの時点における第２カートの状態を知ることができる。第１ゲーム装置１０ａは、この予測用データを用いて、時刻ｔ＝ｎ＋３の時点における第２カートの位置を予測する。このときの予測処理については図７を用いて後述する。
【００４８】
なお、時刻ｔ＝ｎ＋２の時点において第２ゲーム装置１０ｂから送信された予測用データは、４フレーム時間後、すなわち、時刻ｔ＝ｎ＋６の時点において第１ゲーム装置１０ａで受信される。時刻ｔ＝ｎ＋４の時点において第２ゲーム装置１０ｂから送信された予測用データは、３フレーム時間後、すなわち、時刻ｔ＝ｎ＋７の時点において第１ゲーム装置１０ａで受信される。このように、予測用データが送信されてから受信側で受信されるまでの時間は、必ずしも一定とはならない。また、時刻ｔ＝ｎ＋１の時点において第２ゲーム装置１０ｂから送信された予測用データは、５フレーム時間後、すなわち、時刻ｔ＝ｎ＋６の時点において第３ゲーム装置１０ｃで受信される。このように、予測用データが送信されてから受信側で受信されるまでの時間は、データを送受信するゲーム装置によっても異なり、一定とはならない。
【００４９】
次に、図６〜図８を用いて、予測処理の詳細について説明する。ここでは、図５に示すタイミングで予測用データが送信された場合における予測処理を説明する。図６〜図８は、予測処理を説明するための図である。図６〜図８において、縦軸は時刻ｔ（経過時間）を示し、横軸は第２カートの位置を示す。なお、図６〜図８では、説明を簡単にする目的で、第２カートの位置を１次元（例えばレースゲームのゲーム空間ｘｙｚ軸におけるｘ軸上の位置）として説明するが、２次元（例えばｘｙ軸上の位置など）および３次元の場合も１次元の場合と同様に考えることができる。また、図６〜図８において、丸で示される位置は、第２カートの実際の位置、すなわち、第２ゲーム装置１０ｂで算出された第２カートの位置である。四角で示される位置は、予測用データから第１ゲーム装置１０ａによって算出される予測位置である。三角で示される位置は、第１ゲーム装置１０ａにおいて決定される第２カートの位置である。また、図６は、第２カートが実際に移動する様子を示す図である。以下では、図６に示すように第２カートが移動した場合において第１ゲーム装置１０ａで実行される予測処理を、図７および図８を用いて説明する。
【００５０】
図７は、時刻ｔ＝ｎ＋３の時点で実行される予測処理を説明するための図である。図７では、時刻ｔ＝ｎ＋２の時点においては第２カートの位置が位置Ｒｎ＋２と決定されたものとする。図５に示したように、第１ゲーム装置１０ａは、時刻ｔ＝ｎの時点における第２カートの位置を示すデータを含む予測用データを時刻ｔ＝ｎ＋３の時点において受信する。このとき、第１ゲーム装置１０ａは、時刻ｔ＝ｎ＋３の時点における第２カートの予測位置Ｑｎ＋３を予測用データを用いて算出する。なお、本実施形態における予測位置の算出方法の詳細は後述するが、予測位置の算出方法はどのような方法であってもよい。
【００５１】
予測位置Ｑｎ＋３を算出すると、第１ゲーム装置１０ａは、直前のフレームにおける第２カートの位置（時刻ｔ＝ｎ＋２における位置）Ｒｎ＋２と予測位置Ｑｎ＋３とに基づいて、時刻ｔ＝ｎ＋３の時点における第２カートの位置Ｒｎ＋３を決定する。具体的には、位置Ｒｎ＋３は、直前の位置Ｒｎ＋２と予測位置Ｑｎ＋３とをｋ：１−ｋ（ｋは０＜ｋ＜１）に内分する位置に決定される。なお、このｋの値は、各ゲーム装置間における通信の遅延の度合等に応じて適宜設定されることが好ましい。このように、本実施形態においては、第２カートの新たな位置は前回のフレームにおける位置と予測位置との間の位置に決定される。
【００５２】
図８は、時刻ｔ＝ｎ〜ｎ＋６の間における第２カートの移動の様子を示す図である。なお、図８において、時刻ｔ＝ｎからｎ＋２までの第２カートの位置Ｒｎ、Ｒｎ＋１、Ｒｎ＋２は、位置Ｒｎ＋３〜位置Ｒｎ＋６を決定する方法（後述する）と同様の方法で予め決定されているものとする。図８において、時刻ｔ＝ｎ＋３の時点における第２カートの位置Ｒｎ＋３の決定方法は、図７に示した通りである。
【００５３】
次に、時刻ｔ＝ｎ＋４の時点における第２カートの位置Ｒｎ＋４の決定方法について説明する。図５に示したように、時刻ｔ＝ｎ＋４の時点においては第１ゲーム装置１０ａでは予測用データが受信されない。このとき、第１ゲーム装置１０ａは、それまでに受信した予測用データのうちで最新の予測データを用いて算出された予測位置に基づいて現在位置を決定する。具体的には、時刻ｔ＝ｎ＋４の時点における第２カートの位置Ｒｎ＋４は、直前のフレームにおける第２カートの位置Ｒｎ＋３と、最新の予測データを用いて算出された予測位置Ｑｎ＋３とをｋ：１−ｋ（ｋは０＜ｋ＜１）に内分する位置に決定される。
【００５４】
時刻ｔ＝ｎ＋５の時点においては、第２ゲーム装置１０ｂからの新たな予測用データが第１ゲーム装置１０ａで受信される。この予測用データは、時刻ｔ＝ｎ＋２の時点における第２カートの実際の位置Ｐｎ＋２である。第１ゲーム装置１０ａは、予測用データに基づいて新たな予測位置Ｑｎ＋５を算出する。さらに、時刻ｔ＝ｎ＋３の場合と同様の方法で、時刻ｔ＝ｎ＋５の時点における第２カートの位置Ｒｎ＋５を、前回のフレームの位置Ｒｎ＋４と上記予測位置Ｑｎ＋５とをｋ：１−ｋ（ｋは０＜ｋ＜１）に内分する位置に決定する。
【００５５】
時刻ｔ＝ｎ＋６の時点においても時刻ｔ＝ｎ＋５の場合と同様、第２ゲーム装置１０ｂからの新たな予測用データが第１ゲーム装置１０ａで受信される。したがって、第１ゲーム装置１０ａは、時刻ｔ＝ｎ＋５の場合と同様の処理を実行することによって時刻ｔ＝ｎ＋６の時点における第２カートの位置Ｒｎ＋６を決定する。すなわち、新たに受信した予測用データに基づいて予測位置Ｑｎ＋６を算出し、当該予測位置Ｑｎ＋６と前回のフレームの位置Ｒｎ＋５とに基づいて位置Ｒｎ＋６を決定する。
【００５６】
なお、時刻ｔ＝ｎ〜ｎ＋２の時点においても、時刻ｔ＝ｎ＋３〜ｎ＋６の場合と同様に第２カートの位置が決定される。すなわち、時刻ｔ＝ｎ〜ｎ＋２の時点においては、予測位置が算出されているものとし、当該予測位置と前回のフレームにおける位置とに基づいて今回のフレームにおける位置が決定される。
【００５７】
以上のように、本実施形態によれば、送信側のゲーム装置は、自機のカートの位置等を示すデータを送信し、当該データを受信した受信側のゲーム装置で予測を行う。ここで、送信側で予測を行う場合には、予測結果が受信側に届いた時点で古くなり、予測結果を用いることができなくなるという問題があった。これに対して、本実施形態によれば、受信側で予測を行うようにしたことによって、送信側で予測を行う場合の問題点を解消することができ、確実に予測を行うことができる。
【００５８】
また、本実施形態によれば、予測位置と前回のフレームにおける位置とに基づいてカートの現在位置を決定している。すなわち、予測位置と前回のフレームにおける位置との間の位置を現在位置に決定するのである。ここで、予測位置をそのまま現在位置とする場合を考える。この場合、予測用データが受信されなかったフレームにおいては、新たな予測位置が算出されないため、予測位置が前回のフレームと同じになることから現在位置も前回のフレームと同じ位置になってしまう。予測用データを受信しなかったフレームでは他機カートが移動しないので、他機カートは数フレームに１回しか移動しないこととなり、他機カートの移動が滑らかに表示されない。これによって、他機カートが移動する様子が不自然に表示されてしまうことになる。
【００５９】
そこで、本実施形態では、予測用データに基づいて算出される予測位置をそのままカートの現在位置とするのではなく、予測位置と前回のフレームにおける位置とに基づいて現在位置を決定している（図８における時刻ｔ＝ｎ＋４の場合を参照）。これによって、予測用データが受信されなかったフレームにおいてもカートの現在位置が前のフレームの位置と異なるので、予測用データの受信の有無とは無関係にカートは毎フレーム移動する。したがって、カートの移動の様子を自然に表現することができる。
【００６０】
次に、本実施形態に係るゲームプログラムを実行することによってゲーム装置１０において行われるゲーム処理の詳細を説明する。まず、ゲーム処理において用いられる主なデータについて図９を用いて説明する。図９は、ゲーム装置１０のＲＡＭ２４に記憶される主なデータを示す図である。図９に示すように、ＲＡＭ２４には、ゲームプログラム５１およびゲームデータ６１が記憶される。
【００６１】
ゲームプログラム５１には、経過時間カウントプログラム５２、データ送信プログラム５３、データ受信プログラム５４、予測位置算出プログラム５５、位置決定プログラム５６、および開始タイミング決定プログラム５７が含まれる。経過時間カウントプログラム５２は、ゲーム中における所定のイベントが開始されてからの経過時間を測定する処理を実行するためのプログラムである。本実施形態においては、所定のイベントとは、レースゲームをスタートすることである。データ送信プログラム５３は、上記予測用データを他のゲーム装置へ送信する処理を実行するためのプログラムである。データ受信プログラム５４は、他のゲーム装置からの予測用データを受信して自機に記憶させる処理を実行するためのプログラムである。予測位置算出プログラム５５は、受信された予測用データに含まれるデータのうち、少なくとも位置データと時刻データとに基づいて、当該予測用データを受信した時点におけるオブジェクト（カート）の予測位置を算出する処理を実行するためのプログラムである。位置決定プログラム５６は、予測用データを受信した時点におけるオブジェクト（カート）のゲーム空間内における位置を予測位置に基づいて決定する処理を実行するためのプログラムである。開始タイミング決定プログラム５７は、各ゲーム装置１０ａ〜１０ｃの間で開始タイミングをそろえて上記所定のイベントを開始する処理を実行するためのプログラムである。なお、ゲームプログラム５１には、上記の他、レースゲームを実行するために必要な種々のプログラム等が含まれる。
【００６２】
一方、ゲームデータ６１には、操作データ６２、時刻データ６３、送信予測用データ６４、受信予測用データ６５、オブジェクトデータ６６、および予測位置データ７０が含まれる。なお、ＲＡＭ２４には、図９に示すデータの他、後述するカウンタｉの値や、レースコースの地形データや画像データ等、レースゲームに必要なデータが記憶される。なお、図９では、第１ゲーム装置１０ａのＲＡＭ２４に記憶されるデータを例として説明するが、他のゲーム装置１０ｂおよび１０ｃにおいても同様のデータがＲＡＭ２４に記憶される。
【００６３】
操作データ６２は、ゲーム装置１０の操作スイッチ部１４に対して行われたゲーム操作に関する情報を示すデータである。操作データ６２は、例えば、操作スイッチ部１４の各スイッチの操作状態（各スイッチが押下されたか否か）を示すデータである。ここでは、操作データ６２は、カートを加速するためのボタン（例えばＡボタン１４ｄ）が押下されたか否かを示すデータであるとする。なお、他の実施形態においては、操作データ６２には、カートの進行方向を変化させるボタン（例えば十字キー１４ａ）の操作状態を示すデータが含まれていてもよい。
【００６４】
時刻データ６３は、ゲーム中における時刻を示すデータである。本実施形態では、時刻データ６３は、レースが開始されてからの経過時間をフレーム時間単位で示すデータである。時刻データ６３は、レースが開始されてから１フレーム経過する度に更新される。
【００６５】
送信予測用データ６４は、予測用データとしてゲーム装置１０から他のゲーム装置へ送信されるデータである。送信予測用データ６４には、位置データ６４ａ、速度データ６４ｂ、時刻データ６４ｃ、および操作データ６４ｃが含まれる。位置データ６４ａは、ゲーム装置１０を用いて操作されるカート（自機カート）の位置を示すデータである。速度データ６４ｂは、自機カートの速度を示すデータである。本実施形態では、カートの速度は、速度の大きさ（速さ）を示すスカラー値と、速度の方向を示す角度（ゲーム空間における所定方向を基準とした角度）の値とで表されるものとする。すなわち、速度データは、速さを示すスカラー値のデータと、速度の方向を示す角度のデータとからなる。時刻データ６４ｃは、その送信予測用データ６４が作成された時刻を示すデータである。操作データ６４ｄは、時刻データ６４ｃにより示される時刻における操作データ６２である。つまり、送信予測用データ６４が生成された時点では操作データ６４ｄと操作データ６２とは同じ内容である。
【００６６】
受信予測用データ６５は、他のゲーム装置からゲーム装置１０へ送信されてきた予測用データである。ゲーム装置１０は、受信予測用データ６５を用いて他機カートの予測位置を算出する。受信予測用データ６５は、他のゲーム装置の数と同数の予測用データを含む。本実施形態では、ゲームシステムは３つのゲーム装置で構成されるので、受信予測用データ６５には、第１予測用データ６５ａおよび第２予測用データ６５ｂが含まれる。第１ゲーム装置１０ａにおいては、第１予測用データ６５ａは、第２ゲーム装置１０ｂから送信されてくる予測用データであり、第２予測用データ６５ｂは、第３ゲーム装置１０ｃから送信されてくる予測用データである。受信予測用データ６５の内容は、他のゲーム装置から予測用データを受信する度に更新される。
【００６７】
オブジェクトデータ６６は、レースゲームに登場するオブジェクト（カート）に関する情報を示すデータである。オブジェクトデータ６６には、プレイヤオブジェクトデータ６７、第１他オブジェクトデータ６８、および第２他オブジェクトデータ６９が含まれる。
【００６８】
プレイヤオブジェクトデータ６７は、ゲーム装置１０を用いて操作されるオブジェクトであるカート（自機カート）に関する情報を示すデータである。プレイヤオブジェクトデータ６７には、位置データ６７ａおよび速度データ６７ｂが含まれる。位置データ６７ａは、自機カートの位置を示すデータである。速度データ６７ｂは、自機カートの速度を示すデータである。位置データ６７ａおよび速度データ６７ｂは、送信予測用データに含まれて他のゲーム装置へ送信される。
【００６９】
第１他オブジェクトデータ６８および第２他オブジェクトデータ６９は、ゲーム装置１０以外の他のゲーム装置を用いて操作されるオブジェクトであるカート（他機カート）に関する情報を示すデータである。第１ゲーム装置１０ａにおいては、第１他オブジェクトデータ６８は、第２カートに関する情報を示すデータであり、第２他オブジェクトデータ６９は、第３カートに関する情報を示すデータである。第１他オブジェクトデータ６８には、位置データ６８ａが含まれる。位置データ６８ａは、第１他オブジェクト（第１ゲーム装置１０ａにおいては第２カート）の位置を示すデータである。なお、図示していないが、第２他オブジェクトデータ６９には第１他オブジェクトデータ６８と同様、第２他オブジェクト（第１ゲーム装置１０ａにおいては第３カート）の位置を示す位置データが含まれる。
【００７０】
予測位置データ７０は、予測用データを用いて算出される上記予測位置を示すデータである。予測位置データ７０には、第１予測位置データ７０ａおよび第２予測位置データ７０ｂが含まれる。第１予測位置データ７０ａは、第１他オブジェクトの予測位置を示すデータであり、第２予測位置データ７０ｂは、第２他オブジェクトの予測位置を示すデータである。
【００７１】
次に、ゲームプログラムを実行することによってゲーム装置１０において行われるゲーム処理の詳細を、図１０〜図１３を用いて説明する。図１０は、ゲーム装置１０において実行されるゲーム処理の流れを示すメインフローチャートである。ゲーム装置１０の電源が投入されると、ゲーム装置１０のＣＰＵコア２１は、図示しないブートＲＯＭに記憶されている起動プログラムを実行し、ＲＡＭ２４等の各ユニットが初期化される。そして、メモリカード１７に格納されたゲームプログラムがＲＡＭ２４に読み込まれ、ＣＰＵコア２１によって当該ゲームプログラムの実行が開始される。図１０に示すフローチャートは、以上の処理が完了した後に行われるゲーム処理を示すフローチャートである。なお、図１０〜図１３においては、ゲーム処理のうち、他機カートの現在位置を決定する処理について詳細に示し、本願発明と関連しない他のゲーム処理については詳細な説明を省略する。
【００７２】
図１０のステップＳ１において、まず、初期設定処理が実行される。初期設定処理においては、ＣＰＵコア２１は、ゲームシステムに含まれるゲーム装置を用いて操作されるカートの数を設定したり、各ゲーム装置に対して固有のＩＤを設定したりする。また、自機以外の他のゲーム装置に対して番号を設定する。ここでは、第１ゲーム装置１０ａを例として説明するものとすると、第１ゲーム装置１０ａにおいて、第２ゲーム装置１０ｂは上記番号が“Ｇ１”に設定され、第３ゲーム装置１０ｃは上記番号が“Ｇ２”に設定される。また、初期設定処理においては、上記番号を示すカウンタｉ（ｉは自然数）の値として“１”がＲＡＭ２４に記憶され、他のゲーム装置の台数ｊ（本実施形態ではｊ＝２）がＲＡＭ２４に記憶される。また、初期設定処理において、レースゲームのゲーム空間が構築され、自機カートおよび他機カートがレースコース内の初期位置に配置される。
【００７３】
続くステップＳ２において、開始タイミング決定プログラム５７が実行されることによって、開始タイミング決定処理が実行される。開始タイミング決定処理は、レースを開始するタイミングを各ゲーム装置間で一致させるための処理である。この処理は、レースを開始するタイミングを各ゲーム装置間である程度一致させることができる方法であればどのような方法であってもよい。例えば、各ゲーム装置間の通信における遅延時間を測定し、測定した遅延時間を考慮して所定のゲーム装置から他のゲーム装置に対してレース開始までの残り時間を通知する。なお、ステップＳ２の最後に、ＣＰＵコア２１は、ＲＡＭ２４に記憶されている時刻データ６３の内容を“０フレーム時間”に設定する。
【００７４】
上記ステップＳ２によって各ゲーム装置においてほぼ一斉にレースが開始される、すなわち、ステップＳ３〜Ｓ１１の処理ループの実行が開始される。ステップＳ３〜Ｓ１１の処理が繰り返されることによって、プレイヤの操作に応じてカートが移動し、レースゲームが進行する。なお、ステップＳ３〜Ｓ１１の処理ループは、１フレームにつき１回実行される。
【００７５】
ステップＳ３においては、経過時間カウントプログラム５２が実行されることによって、経過時間がカウントされる。すなわち、ＣＰＵコア２１は、時刻データ６３により示される値を、その値に１を加算した値に更新する。続くステップＳ４において、操作データが取得される。ＣＰＵコア２１は、操作スイッチ部１４の各スイッチの操作状態を示すデータを操作スイッチ部１４から取得する。このとき、本実施形態では、カートを加速するためのボタン（例えばＡボタン１４ｄ）が押下されたか否かを示すデータが操作データ６２としてＲＡＭ２４に記憶される。
【００７６】
ステップＳ５において、予測用データを生成するための予測用データ生成処理が実行される。以下、図１１を用いて予測用データ生成処理の詳細を説明する。
【００７７】
図１１は、図１０に示すステップＳ５の詳細な処理の流れを示すフローチャートである。予測用データ生成処理においては、まずステップＳ２１において、ステップＳ４で取得された操作データに基づいてプレイヤオブジェクト（自機カート）の加速度が算出される。加速度は、カートを加速するためのボタン（例えばＡボタン１４ｄ）の押下状態に基づいて算出される。例えば、ＣＰＵコア２１は、当該ボタンが押下されていれば加速度の値を予め定められた所定値に設定し、当該ボタンが押下されていなければ加速度の値を０に設定する。また、他の例では、当該ボタンが押下されている長さに応じて加速度の値を算出するようにしてもよいし、当該ボタンがアナログ量を検知することが可能であれば、検知されたアナログ量に応じて加速度の値を算出してもよい。
【００７８】
続くステップＳ２２において、ステップＳ２１で算出された加速度に基づいて自機カートの速度が算出される。なお、速度の算出方法はどのような方法であってもよいが、本実施形態では例えば以下の方法で算出する。まず、本実施形態では、上述のように、自機カートの速度は、速度の大きさ（速さ）を示すスカラー値と、速度の方向を示す角度の値とで表される。今回のフレームにおける速さは、前回のフレームにおける速さと上記加速度（スカラー値）とを加算することによって得られる。また、今回のフレームにおける速度の方向は、前回のフレームにおける方向と、十字キー１４ａの左右方向のキーの押下状態とに基づいて算出される。ステップＳ２２で算出された自機カートの速度を示すデータは、速度データ６７ｂとしてＲＡＭ２４に記憶される。
【００７９】
続くステップＳ２３において、自機カートの新たな位置が算出される。自機カートの位置は、ステップＳ２２で算出された速度と、前回のフレームにおける位置とに基づいて算出される。すなわち、前回のフレームにおける位置から、当該速度の方向に当該速度の大きさだけ離れた位置が自機カートの新たな位置となる。ステップＳ２３において算出された位置のデータは位置データ６７ａとしてＲＡＭ２４に記憶される。
【００８０】
続くステップＳ２４において、予測用データが生成される。すなわち、ＣＰＵコア２１は、ステップＳ２２で得られた速度データ６７ｂと、ステップＳ２３で得られた位置データ６７ａと、現時点でＲＡＭ２４に記憶されている時刻データ６３と、操作データ６２とを送信予測用データ６４としてＲＡＭ２４に記憶する。ＲＡＭ２４に記憶された送信予測用データ６４は、以降のステップＳ６において他のゲーム装置へ送信されることとなる。以上のステップＳ２４の後、ＣＰＵコア２１は予測用データ生成処理を終了する。
【００８１】
図１０の説明に戻り、ステップＳ６において、データ送信プログラム５３が実行されることによってデータ送信処理が実行される。データ送信処理は、ステップＳ５で生成された予測用データを他のゲーム装置へ送信するための処理である。以下、図１２を用いてデータ送信処理の詳細を説明する。
【００８２】
図１２は、図１０に示すステップＳ５の詳細な処理の流れを示すフローチャートである。データ送信処理においては、まずステップＳ３１において、ステップＳ２４で生成された予測用データがゲーム装置Ｇｉへ送信される。ここで、ゲーム装置Ｇｉとは、他のゲーム装置に対して設定される番号が“ｉ”であるゲーム装置のことである。また、ｉは、上述したカウンタｉの値である。例えば、ＲＡＭ２４に現在記憶されているカウンタｉの値が“１”であれば、予測用データはゲーム装置Ｇ１に送信され、カウンタｉの値が“２”であれば、予測用データはゲーム装置Ｇ２に送信される。
【００８３】
ステップＳ３２においては、ＣＰＵコア２１は、ＲＡＭ２４に記憶されているカウンタｉの値が、他のゲーム装置の台数ｊ（本実施形態ではｊ＝２）と等しいか否かを判定する。判定の結果、カウンタｉの値がｊと等しい場合、ステップＳ３３の処理が実行される。すなわち、ステップＳ３３において、カウンタｉの値が“１”に設定される。一方、カウンタｉの値がｊと等しくない場合、ステップＳ３４の処理が実行される。すなわち、ステップＳ３４において、カウンタｉの値が１だけインクリメントされる。ステップＳ３３またはＳ３４の後、ＣＰＵコア２１はデータ送信処理を終了する。
【００８４】
以上のステップＳ３２〜Ｓ３４の処理によって、次のフレームにおいては、今回のフレームで予測用データが送信されたゲーム装置とは異なるゲーム装置に予測用データが送信される。ステップＳ３２〜Ｓ３４の処理は、自機以外の他のゲーム装置が複数存在する場合に他のゲーム装置のそれぞれへ順番に予測用データを送信するための処理である。
【００８５】
図１０の説明に戻り、ステップＳ７において、データ受信プログラム５４が実行されることによって、データ受信処理が実行される。具体的には、ＣＰＵコア２１は、他のゲーム装置から予測用データを受信しているか否かをチェックする。そして、予測用データを受信した場合、受信した予測用データを受信データ６５としてＲＡＭ２４に記憶する。なお、予測用データは、送信元のゲーム装置毎に区別して記憶される。すなわち、第１ゲーム装置１０ａにおいては、第２ゲーム装置１０ｂからの予測用データは、第１予測用データ６５ａとしてＲＡＭ２４に更新して記憶され、第３ゲーム装置１０ｃからの予測用データは、第２予測用データ６５ｂとしてＲＡＭ２４に更新して記憶される。なお、他のゲーム装置からの予測用データは、自機から送信する予測用データと同様、位置データ６４ａ、速度データ６４ｂ、時刻データ６４ｃ、および操作データ６４ｄを含む。
【００８６】
ステップＳ８においては、他機カートの現在位置を算出するための位置算出処理が実行される。以下、図１３を用いて位置算出処理の詳細を説明する。
【００８７】
図１３は、図１０に示すステップＳ８の詳細な処理の流れを示すフローチャートである。位置算出処理においては、まずステップＳ４１において、カウンタｍの値が１に設定される。このカウンタｍの値はＲＡＭ２４に記憶される。続くステップＳ４２において、ＣＰＵコア２１は、今回のフレームにおけるステップＳ７においてゲーム装置Ｇｍの予測用データが更新されたか否かを判定する。ここで、ゲーム装置Ｇｍとは、他のゲーム装置に対して設定される番号が“ｍ”であるゲーム装置のことである。また、ｍは、上述したカウンタｍの値である。ステップＳ８において、例えば、ＲＡＭ２４に現在記憶されているカウンタｍの値が“１”であれば、ゲーム装置Ｇ１の予測用データ（第１予測用データ）が更新されたか否かが判定され、カウンタｍの値が“２”であれば、ゲーム装置Ｇ２の予測用データ（第２予測用データ）が更新されたか否かが判定される。判定の結果、ゲーム装置Ｇｍの予測用データが更新されたと判定される場合、ステップＳ４３の処理が実行される。一方、ゲーム装置Ｇｍの予測用データが更新されたと判定される場合、ステップＳ４３およびＳ４４の処理が実行される。ゲーム装置Ｇｍの予測用データが更新されていないと判定される場合、ステップＳ４３およびＳ４４の処理がスキップされ、ステップＳ４５の処理が実行される。ステップＳ４３およびＳ４４の処理は、予測位置算出プログラム５５によって実行される処理であり、予測用データに基づいて予測位置を算出する処理である。
【００８８】
ステップＳ４３においては、予測用データにより示される時刻と現在の時刻との時間差Δｔが算出される。この予測用データは、ステップＳ８で新たに受信されたゲーム装置Ｇｍからの予測用データである。具体的には、ＣＰＵコア２１は、ＲＡＭ２４に記憶されている受信予測用データ６５に含まれる時刻データにより示される時刻と、ＲＡＭ２４に記憶されている時刻データ６３により示される時刻との差の時間を算出する。
【００８９】
続くステップＳ４４においては、ゲーム装置Ｇｍを用いて操作されるカートの予測位置が算出される。カートの予測位置は、ステップＳ４３で算出された時間差Δｔと、予測用データに含まれる各データとを用いて算出される。なお、この予測用データは、ステップＳ８で新たに受信されたゲーム装置Ｇｍからの予測用データである。本実施形態において、予測位置は、予測距離と予測方向とによって表される。予測距離とは、予測用データに含まれる位置データにより示される位置（基準位置。例えば図７に示す位置Ｐｎ）から予測位置（例えば図７に示す位置Ｑｎ＋３）までの距離である。予測方向とは、基準位置から予測位置への方向である。
【００９０】
予測距離Ｐｅは、予測用データに含まれる速度データにより示される速度の大きさＶと、予測用データに含まれる操作データから算出される加速度ａと、上記時間差Δｔとに基づいて算出される。すなわち、ＣＰＵコア２１は、次の式に従って距離Ｐｅを算出する。
Ｐｅ＝Ｖ×Δｔ＋（１／２）×ａ×（Δｔ）2 
ここで、上式におけるａは、カートの加速度を表し、予測用データに含まれる操作データから算出される。加速度ａの算出方法はステップＳ２１の方法と同様である。一方、上記予測方向は、予測用データに含まれる速度データにより示される速度の方向に決定される。以上のように算出された予測距離および予測方向によって予測位置を決定することができる。すなわち、予測位置は、基準位置から予測方向へ予測距離だけ離れた位置に決定される。決定された予測位置のデータは予測位置データ７０としてＲＡＭ２４に記憶される。ステップＳ４４の次にステップＳ４５の処理が実行される。
【００９１】
ステップＳ４５においては、位置決定プログラム５６が実行されることによって、ゲーム装置Ｇｍを用いて操作されるカートの現在位置が決定される。現在位置（例えば図７に示す位置Ｒｎ＋３）は、ステップＳ４４で算出された予測位置（例えば図７に示す予測位置Ｑｎ＋３）と、前回のフレームにおけるカートの位置（例えば図７に示す位置Ｒｎ＋２）とに基づいて決定される。具体的には、現在位置は、前回のフレームにおけるカートの位置と予測位置とをｋ：１−ｋ（ｋは０＜ｋ＜１）に内分する位置に決定される。決定された現在位置のデータは、ゲーム装置Ｇｍを用いて操作されるカートに対応するオブジェクトデータ６８または６９に含まれる位置データ６８ａまたは６９ａとしてＲＡＭ２４に記憶される。
【００９２】
位置算出処理においては、以上のステップＳ４２〜Ｓ４５の処理が他のゲーム装置毎に実行される。すなわち、ステップＳ４６において、カウンタｍの値が、他のゲーム装置の台数ｊ（本実施形態ではｊ＝２）と等しいか否かが判定される。判定の結果、カウンタｍの値がｊと等しくない場合、ステップＳ４７の処理が実行される。すなわち、ステップＳ４７において、カウンタｍの値が１だけインクリメントされる。そして、ステップＳ４７の次に再度ステップＳ４２の処理が実行される。以降、カウンタｍの値がｊと等しくなるまでステップＳ４２〜Ｓ４５の処理が繰り返される。一方、ステップＳ４６の判定においてカウンタｍの値がｊと等しい場合、ＣＰＵコア２１は、位置算出処理を終了する。
【００９３】
図１０の説明に戻り、ステップＳ８の次のステップＳ９において、ゲーム進行処理が実行される。ゲーム進行処理においては、レースゲームの進行において必要となる処理が実行される。例えば、各カートがアイテムを用いた場合にはアイテムに関する処理が実行されたり、ゲーム装置１０が動作を制御するカートが存在する場合には当該カートの位置を決定する処理が実行されたりする。
【００９４】
続くステップＳ１０において、ステップＳ５〜Ｓ９の処理結果に従ってゲーム画像が生成され、第２ＬＣＤ１２に表示される。続くステップＳ１１において、レースゲームを終了するか否かが判定される。ＣＰＵコア２１は、例えば、レースに参加した全てのカートがゴールしたか否かや、レース開始から予め定められた所定時間が経過したか否かによって、レースゲームを終了するか否かを判定する。判定の結果、レースゲームを終了すると判定される場合、ＣＰＵコア２１は図１０に示すゲーム処理を終了する。一方、レースゲームを終了しないと判定される場合、ステップＳ３の処理が再度実行される。以降、レースゲームを終了すると判定されるまで、ステップＳ３〜Ｓ１１の処理が繰り返し実行されることによってレースゲームが進行する。以上で、本実施形態におけるゲーム処理の説明を終了する。
【００９５】
なお、上記実施形態においては、予測位置は、他機カートの位置、他機カートが当該位置に存在する時点における時刻の他、他機カートの速度や他機カートに関する操作データに基づいて算出された。ここで、予測位置は、他機カートの過去の位置の履歴を用いれば、他機カートの位置とそのとき時刻とに基づいて算出することも可能である。したがって、ゲーム装置は、他機カートの速度や操作データを用いずに予測位置を算出してもよい。
【００９６】
また、上記実施形態においては、予測位置と前回のフレームにおける位置とに基づいてカートの現在位置を決定するようにしたが、他の実施形態においては、予測位置をそのまま現在位置にするようにしてもよい。これによって、現在位置を算出するための処理量を軽減することができる。ただし、予測位置をそのまま現在位置にする場合、上述したように、予測用データが受信されなかったフレームにおいては現在位置が前回のフレームと同じ位置になり、他機カートが移動する様子が不自然に表示されてしまうおそれがある点に留意する。
【００９７】
また、上記実施形態においては、予測用データに基づいて算出される予測位置は、当該予測用データが受信された時点における予測位置であった。ここで、他の実施形態においては、予測用データに基づいて算出される予測位置は、当該予測用データが受信された時点以降の所定の時点における予測位置であってもよい。例えば、図７を例にとって説明すると、時刻ｔ＝ｎの時点において、ゲーム装置は、時刻ｔ＝ｎ＋ｘの時点における予測位置Ｑｎ＋ｘを算出するようにしてもよい。具体的には、ステップＳ４３で算出された時間差Δｔに上記ｘを加算してステップＳ４４の処理を実行すればよい。なお、所定の時点は、予測用データが受信された時点以降の時点であって、予測用データが受信された時点に基づいて決められる時点であればよい。また、ｘの値は予め決められていてもよい。さらに、ｘの値は、他のゲーム装置毎に異なる値に設定されてもよい。例えば、自機と他のゲーム装置との通信に係る遅延時間が測定される場合には、当該遅延時間を考慮して他のゲーム装置毎にｘの値を決定してもよい。なお、予測用データが受信された時点以降に上記所定の時点を設定する場合でも、ステップＳ４５の処理は同様に行うことができる。
【００９８】
また、上記実施形態においては、オブジェクト（カート）のゲーム空間における位置について予測を行うようにしたが、他の実施形態では、オブジェクトの位置に加えてオブジェクトの姿勢についても予測を行うようにしてもよい。このとき、ゲーム装置は、オブジェクトの姿勢を示す姿勢データを予測用データに含めて他のゲーム装置へ送信する。受信側のゲーム装置では、受信した予測用データに含まれている姿勢データを用いて、予測用データを受信した時点におけるオブジェクトの予測姿勢を算出する。なお、予測姿勢の算出方法としては、例えば、今回受信された予測用データとその前に受信された予測用データとを用いて姿勢の変化度合を算出し、当該変化度合と、今回受信した予測用データに含まれる姿勢データとに基づいて予測姿勢を算出する方法が考えられる。その他、送信側のゲーム装置が、姿勢の変化度合を示すデータを予測用データに含ませて送信するようにし、受信側のゲーム装置が、当該変化度合を示すデータと姿勢を示すデータとを用いて予測姿勢を算出する方法も考えられる。また、予測姿勢を算出したゲーム装置は、予測姿勢をそのまま現在の姿勢として決定してもよいし、１フレーム前の姿勢と予測姿勢とに基づいて現在の姿勢を決定するようにしてもよい。なお、オブジェクトの姿勢は、例えば、ワールド座標系における基準方向を０°とした角度で表現することができる。
【００９９】
また、上記実施形態においては、本発明をレースゲームに適用した場合を例として説明したが、本発明は、ネットワークを介して接続される複数のゲーム装置のそれぞれを用いて操作される複数のオブジェクトが登場する任意のゲームに適用することが可能である。例えば、本発明は、ゲーム空間内を複数のキャラクタが移動するようなアクションゲーム等に対しても適用することが可能である。
【産業上の利用可能性】
【０１００】
本発明は、他のゲーム装置を用いて操作されるオブジェクトの予測を確実に行うとともに、正確な予測を行うこと等を目的として、通信ゲームシステムや通信ゲームプログラム等として利用することが可能である。
【図面の簡単な説明】
【０１０１】
【図１】本実施形態に係るゲームシステムの構成を示すブロック図
【図２】本実施形態に係るゲームシステムに含まれるゲーム装置の外観図
【図３】ゲーム装置の内部構成図
【図４】本実施形態におけるゲームのゲーム画面を示す図
【図５】第２ゲーム装置１０ｂが他のゲーム装置へ予測用データを送信する処理を示す図
【図６】第２カートの実際の移動の様子を示す図
【図７】ｎ＋３フレーム時間における時点で実行される予測処理を説明するための図
【図８】ｎフレーム時間からｎ＋６フレーム時間の間における第２カートの移動の様子を示す図
【図９】ゲーム装置１０のＲＡＭ２４に記憶される主なデータを示す図
【図１０】ゲーム装置１０において実行されるゲーム処理の流れを示すメインフローチャート
【図１１】図１０に示すステップＳ５の詳細な処理の流れを示すフローチャート
【図１２】図１０に示すステップＳ５の詳細な処理の流れを示すフローチャート
【図１３】図１０に示すステップＳ８の詳細な処理の流れを示すフローチャート
【符号の説明】
【０１０２】
１  ネットワーク
１０  ゲーム装置
１２  第２ＬＣＤ
１７  メモリカード
２１  ＣＰＵコア
２４  ＲＡＭ
３３  無線通信部
５１  ゲームプログラム
５２  経過時間カウントプログラム
５３  データ送信プログラム
５４  データ受信プログラム
５５  予測位置算出プログラム
５６  位置決定プログラム
５７  開始タイミング決定プログラム
【図１】
2007097836.tif 000003
【図２】
2007097836.tif 000004
【図３】
2007097836.tif 000005
【図４】
2007097836.tif 000006
【図５】
2007097836.tif 000007
【図６】
2007097836.tif 000008
【図７】
2007097836.tif 000009
【図８】
2007097836.tif 000010
【図９】
2007097836.tif 000011
【図１０】
2007097836.tif 000012
【図１１】
2007097836.tif 000013
【図１２】
2007097836.tif 000014
【図１３】
2007097836.tif 000015
【手続補正書】
【提出日】平成19年1月30日(2007.1.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークを介して複数のゲーム装置を接続してなる通信ゲームシステムに含まれるゲーム装置のコンピュータにおいて実行される通信ゲームプログラムであって、
他のゲーム装置によって操作されるオブジェクトのゲーム空間における位置を示す位置データと、当該オブジェクトが当該位置に存在する時点における時刻を示す時刻データとを少なくとも含む予測用データを当該他のゲーム装置から受信する受信ステップと、
前記受信ステップで受信した予測用データに含まれる位置データと時刻データとに基づいて、当該予測用データを受信した時点に基づいて決められる当該時点以降の所定の時点における前記オブジェクトの予測位置を算出する予測位置算出ステップと、
前記オブジェクトのゲーム空間内における位置を所定時間毎に繰り返し決定する位置決定ステップとを前記コンピュータに実行させ、
前記予測位置算出ステップは、前記受信ステップで予測用データが受信されるときにのみ実行され、
前記位置決定ステップにおいては、前記オブジェクトの位置は、前記予測位置算出ステップで算出された最新の予測位置と、前回に実行された前記位置決定ステップで決定された前記オブジェクトの位置との間の位置に決定される、通信ゲームプログラム。
【請求項２】
前記予測位置算出ステップにおいては、前記受信ステップで受信した予測用データに含まれる時刻データにより示される時刻と、当該予測用データを受信した時刻との時間差が算出され、当該予測用データを受信した時点における予測位置が当該時間差に基づいて算出される、請求項１に記載の通信ゲームプログラム。
【請求項３】
前記予測用データは、それに含まれる位置データにより示される位置に前記オブジェクトが存在する時点における当該オブジェクトの位置の変化度を示す変化度データをさらに含み、
前記予測位置算出ステップにおいては、前記受信ステップで受信した予測用データに含まれる位置データと時刻データと変化度データとに基づいて、前記所定の時点における前記オブジェクトの予測位置が算出される、請求項１に記載の通信ゲームプログラム。
【請求項４】
前記予測用データは、それに含まれる位置データにより示される位置に前記オブジェクトが存在する時点において行われたゲーム操作を示す操作データをさらに含み、
前記予測位置算出ステップにおいては、前記受信ステップで受信した予測用データに含まれる位置データと時刻データと操作データとに基づいて、前記所定の時点における前記オブジェクトの予測位置が算出される、請求項１に記載の通信ゲームプログラム。
【請求項５】
前記予測用データは、それに含まれる位置データにより示される位置に前記オブジェクトが存在する時点における当該オブジェクトの姿勢を示す姿勢データをさらに含み、
前記受信ステップで受信した予測用データに含まれる姿勢データに基づいて、前記所定の時点における前記オブジェクトの姿勢を算出する姿勢算出ステップを前記コンピュータにさらに実行させる、請求項１に記載の通信ゲームプログラム。
【請求項６】
前記ゲームシステムに含まれる各ゲーム装置間で開始タイミングをそろえて所定のイベントを開始するイベント開始ステップをさらに実行させ、
前記時刻データは、前記所定のイベントが開始された時点からの経過時間を示す、請求項１に記載の通信ゲームプログラム。
【請求項７】
ネットワークを介して第１および第２のゲーム装置を接続してなる通信ゲームシステムであって、
前記第１のゲーム装置は、第１のゲーム装置によって操作されるオブジェクトのゲーム空間における位置を示す位置データと、当該オブジェクトが当該位置に存在する時点における時刻を示す時刻データとを少なくとも含む予測用データを前記第２のゲーム装置へ送信する送信手段を備え、
前記第２のゲーム装置は、
前記第１のゲーム装置から送信されてくる予測用データを受信する受信手段と、
前記受信手段によって受信された予測用データに含まれる位置データと時刻データとに基づいて、当該予測用データを受信した時点に基づいて決められる当該時点以降の所定の時点における前記オブジェクトの予測位置を算出する予測位置算出手段と、
前記オブジェクトのゲーム空間内における位置を所定時間毎に繰り返し決定する位置決定手段とを備え、
前記予測位置算出手段は、前記受信手段によって予測用データが受信されるときにのみ予測位置を算出し、
前記位置決定手段は、前記オブジェクトの位置を、前記予測位置算出手段において算出された最新の予測位置と、前回に決定された前記オブジェクトの位置との間の位置に決定する、通信ゲームシステム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
第１の発明は、ネットワーク（１）を介して複数のゲーム装置（ゲーム装置１０ａ〜１０ｃ）を接続してなる通信ゲームシステムに含まれるゲーム装置（１０）のコンピュータ（ＣＰＵコア２１等）において実行される通信ゲームプログラム（ゲームプログラム５１）である。通信ゲームプログラムは、受信ステップ（Ｓ７）と、予測位置算出ステップ（Ｓ４３，Ｓ４４）と、位置決定ステップ（Ｓ４５）とをコンピュータに実行させる。受信ステップは、他のゲーム装置によって操作されるオブジェクト（カート４１〜４３）のゲーム空間における位置を示す位置データ（６４ａ）と、当該オブジェクトが当該位置に存在する時点における時刻を示す時刻データ（６４ｃ）とを少なくとも含む予測用データを当該他のゲーム装置から受信する。予測位置算出ステップは、受信ステップで受信した予測用データに含まれる位置データと時刻データとに基づいて、当該予測用データを受信した時点に基づいて決められる当該時点以降の所定の時点におけるオブジェクトの予測位置（図７に示す位置Ｑｎ＋３）を算出する。位置決定ステップは、オブジェクトのゲーム空間内における位置（図７に示す位置Ｒｎ＋３）を所定時間毎に繰り返し決定する。また、予測位置算出ステップは、受信ステップで予測用データが受信されるときにのみ実行される。位置決定ステップにおいては、オブジェクトの位置は、予測位置算出ステップで算出された最新の予測位置と、前回に実行された位置決定ステップで決定されたオブジェクトの位置との間の位置に決定される。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】削除
【補正の内容】
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】削除
【補正の内容】
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】削除
【補正の内容】
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
第２の発明においては、予測位置算出ステップにおいて、受信ステップで受信した予測用データに含まれる時刻データにより示される時刻と、当該予測用データを受信した時刻との時間差（Δｔ）が算出され、当該予測用データを受信した時点における予測位置が当該時間差に基づいて算出されてもよい。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
第３の発明においては、予測用データは、それに含まれる位置データにより示される位置にオブジェクトが存在する時点における当該オブジェクトの位置の変化度を示す変化度データ（速度データ６４ｂ）をさらに含んでいてもよい。このとき、予測位置算出ステップにおいては、受信ステップで受信した予測用データに含まれる位置データと時刻データと変化度データとに基づいて、所定の時点におけるオブジェクトの予測位置が算出される。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
第４の発明においては、予測用データは、それに含まれる位置データにより示される位置にオブジェクトが存在する時点において行われたゲーム操作を示す操作データ（６４ｄ）をさらに含んでいてもよい。このとき、予測位置算出ステップにおいては、受信ステップで受信した予測用データに含まれる位置データと時刻データと操作データとに基づいて、所定の時点におけるオブジェクトの予測位置が算出される。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
第５の発明においては、予測用データは、それに含まれる位置データにより示される位置にオブジェクトが存在する時点における当該オブジェクトの姿勢を示す姿勢データをさらに含んでいてもよい。このとき、受信ステップで受信した予測用データに含まれる姿勢データに基づいて、所定の時点におけるオブジェクトの姿勢を算出する姿勢算出ステップをコンピュータにさらに実行させる。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
第６の発明においては、通信ゲームプログラムは、ゲームシステムに含まれる各ゲーム装置間で開始タイミングをそろえて所定のイベント（レースゲーム）を開始するイベント開始ステップをさらに実行させてもよい。このとき、時刻データは、所定のイベントが開始された時点からの経過時間を示す。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】変更
【補正の内容】
【００１９】
第７の発明は、ネットワーク（１）を介して第１および第２のゲーム装置を接続してなる通信ゲームシステムである。第１のゲーム装置（図５に示す第２ゲーム装置１０ｂ）は、第１のゲーム装置によって操作されるオブジェクトのゲーム空間における位置を示す位置データと、当該オブジェクトが当該位置に存在する時点における時刻を示す時刻データとを少なくとも含む予測用データを第２のゲーム装置（図５に示す第１ゲーム装置１０ａ）へ送信する送信手段（ＣＰＵコア２１、データ送信プログラム５３）を備えている。第２のゲーム装置は、受信手段（ＣＰＵコア２１、）と、予測位置算出手段と（ＣＰＵコア２１、予測位置算出プログラム５５）、位置決定手段（ＣＰＵコア２１、位置決定プログラム５６）とを備えている。受信手段は、第１のゲーム装置から送信されてくる予測用データを受信する。予測位置算出手段は、受信手段によって受信された予測用データに含まれる位置データと時刻データとに基づいて、当該予測用データを受信した時点に基づいて決められる当該時点以降の所定の時点におけるオブジェクトの予測位置を算出する。位置決定手段は、オブジェクトのゲーム空間内における位置を所定時間毎に繰り返し決定する。また、予測位置算出手段は、受信手段によって予測用データが受信されるときにのみ予測位置を算出する。位置決定手段は、オブジェクトの位置を、予測位置算出手段において算出された最新の予測位置と、前回に決定されたオブジェクトの位置との間の位置に決定する。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００２１
【補正方法】変更
【補正の内容】
【００２１】
さらに、第１の発明によれば、オブジェクトの位置は、予測位置と前回におけるオブジェクトの位置とに基づいて決定される。つまり、予測位置がそのままオブジェクトの新たな位置に決定されるわけではない。ここで、予測位置がそのままオブジェクトの新たな位置に決定される場合には、予測用データが送信されてきたときにのみオブジェクトの位置が変更されることとなる。オブジェクトは、所定時間毎に移動するのではなく、予測用データが送信されてきたときにのみ移動するように表示されるので、オブジェクトの移動が滑らかでなくなり、オブジェクトが移動する様子が不自然に見えてしまう。これに対して、第２の発明によれば、予測用データが所定時間毎に受信されない場合であっても、オブジェクトの位置を所定時間毎に変化させることができるので、オブジェクトが移動する様子を自然に表現することができる。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】変更
【補正の内容】
【００２２】
さらに、第１の発明によれば、オブジェクトの新たな位置は、予測位置とオブジェクトの直前の位置との間となる。したがって、予測位置が急激に変化した場合であっても、その変化を緩和することができ、オブジェクトの移動を滑らかにすることができる。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】削除
【補正の内容】
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００２４
【補正方法】変更
【補正の内容】
【００２４】
第２の発明によれば、予測用データに含まれる時刻データにより示される時刻と、当該予測用データを受信した時刻との時間差が算出される。そして、当該時間差に基づいて予測位置が算出される。これによれば、予測用データの送信に要した実際の遅延時間を考慮して予測位置が算出されるので、予測位置をより正確に算出することができる。また、上記時間差は実際の遅延時間であり、予め測定しておいた遅延時間を用いて予測位置を算出するよりも予測位置を正確に算出することができる。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００２５
【補正方法】変更
【補正の内容】
【００２５】
第３の発明によれば、オブジェクトの速度データを用いて予測位置を算出することによって、予測位置をより正確に算出することができる。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】変更
【補正の内容】
【００２６】
第４の発明によれば、オブジェクトに対するゲーム操作を考慮して予測位置を算出することができるので、予測位置をより正確に算出することができる。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】変更
【補正の内容】
【００２７】
第５の発明によれば、オブジェクトの位置のみならず、オブジェクトの姿勢についても予測を行うことによって、オブジェクトの姿勢を実際の姿勢に近いものにすることができる。
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】００２８
【補正方法】変更
【補正の内容】
【００２８】
第６の発明によれば、各ゲーム装置間でほぼ一致した時点を基準として経過時間を表すことができるので、時刻データに基づいて算出される予測位置の算出処理をより正確に行うことができる。