JP5059263B2 - 通信ゲームシステム - Google Patents
通信ゲームシステム Download PDFInfo
- Publication number
- JP5059263B2 JP5059263B2 JP2001265952A JP2001265952A JP5059263B2 JP 5059263 B2 JP5059263 B2 JP 5059263B2 JP 2001265952 A JP2001265952 A JP 2001265952A JP 2001265952 A JP2001265952 A JP 2001265952A JP 5059263 B2 JP5059263 B2 JP 5059263B2
- Authority
- JP
- Japan
- Prior art keywords
- game
- data
- processing
- communication
- generation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000006854 communication Effects 0.000 title claims description 295
- 238000004891 communication Methods 0.000 title claims description 295
- 238000012545 processing Methods 0.000 claims description 235
- 238000000034 method Methods 0.000 claims description 186
- 239000000872 buffer Substances 0.000 claims description 160
- 230000005540 biological transmission Effects 0.000 claims description 42
- 238000001514 detection method Methods 0.000 claims description 19
- 238000003672 processing method Methods 0.000 claims description 5
- 230000000717 retained effect Effects 0.000 claims 1
- 230000003111 delayed effect Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 8
- 230000002250 progressing effect Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000006378 damage Effects 0.000 description 2
- 230000008034 disappearance Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000010485 coping Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Landscapes
- Multi Processors (AREA)
Description
【発明の属する技術分野】
本発明は、通信ゲームシステムに関し、より特定的には、複数のゲーム装置を接続して同一のゲームを複数のユーザが同時にプレイできるように構成される通信ゲームシステムならびにこの通信ゲームシステムに用いられるゲーム装置、記録媒体、ゲーム処理方法及びプログラムに関する。
【0002】
【従来の技術】
従来、複数のゲーム機を相互に通信可能に接続し、複数のプレイヤがそれぞれのゲーム機を操作して同時に同じ内容のゲーム(例えば対戦ゲームなど)をプレイすることができるようにした通信ゲームシステムがある。
【0003】
このような通信ゲームシステムでは、プレイヤによって操作キーから入力される操作データや、プレイヤが特定のキー操作を行うことによって発生した種々のゲームデータが、通信によって一定の周期で他の全てのゲーム機に送信され、各ゲーム機では、通信により受信した自機を含めた全てのゲーム機におけるゲームデータに基づいてゲーム処理を行う。例えば、あるゲーム機のプレイヤがゲーム中のキャラクタAをジャンプさせるキー操作を行った場合、「キャラクタAがジャンプする」というゲームデータが全てのゲーム機に送信され、全てのゲーム機がその情報に基づいてゲーム処理を行う。このようにして個々のゲーム機におけるプレイヤのキー操作が他のゲーム機のゲーム内容に反映される。
【0004】
ゲーム処理では、次回の通信において他機に送信すべきデータが用意される。そして、次回の通信において、再び、ゲーム機間でゲームデータがやりとりされ、その後、各ゲーム機において、このやりとりしたゲームデータに基づいてゲーム処理を行う。通信ゲームが行われている間、以上の動作が繰り返されることになる。
【0005】
ところで、このような通信ゲームシステムでは、一定の周期でゲーム機間で通信を行い、各ゲーム機において、通信により受信した他のゲーム機および自ゲーム機のゲームデータに基づいてゲーム処理を行う。すなわち、各ゲーム機でゲーム処理に用いられるゲームデータは、全ゲーム機で共通であるため、各ゲーム機におけるゲーム処理の結果は同一となる。こうして各ゲーム機で同一の内容のゲームを楽しむことができる。
【0006】
【発明が解決しようとする課題】
しかしながら、上記の通信ゲームシステムにおいて、各ゲーム機におけるゲーム内容にズレが生じてしまう不具合が発生する場合がある。以下、そのいくつかの原因について説明する。
【0007】
一つの原因としては、ゲーム処理の遅れである。前述したように、各ゲーム機では、ある通信において受信したゲームデータに基づいてゲーム処理を行い、その際に次回の通信において他機に送信すべきゲームデータを用意する。しかしながら、ゲーム処理の負荷が一時的に大きくなってしまった場合などでは、次回の通信までにゲーム処理を完了することができず、送信すべきゲームデータを用意できないことになる。その結果、この処理遅延が発生したゲーム機のゲームデータは、他のゲーム機におけるゲーム処理には反映されず、このゲーム機と他のゲーム機との間でゲーム内容にズレが生じてしまう。
【0008】
別の原因としては、通信の周期と各ゲーム機におけるゲーム処理周期との違いである。ただし、通信周期とゲーム処理周期の違いは、通信とゲーム処理とが完全に同期しているようなゲームシステムにおいては見られず、例えば、各ゲーム機が非同期で個別のタイミングでゲーム処理を行うことを許可しているようなゲームシステムや、通信タイミング自体が一定していないようなシステムにおいて見られる。このような場合、ある通信から次の通信までの期間に、各ゲーム機においてそれぞれゲーム処理が1回行われるということは保証されない。その結果、例えば、あるゲーム機において、ある通信から次の通信までの期間にゲーム処理が全く行われなかった場合には、次の通信で送信すべきゲームデータを用意できないことになり、このゲーム機と他のゲーム機との間でゲーム内容にズレが生じてしまう。また、例えば、あるゲーム機において、ある通信から次の通信までの期間にゲーム処理が2回行われてしまった場合、このゲーム機では、2回目のゲーム処理時に用いるゲームデータは、自ゲーム機のものしかなく、その結果、他ゲーム機のゲームデータが反映されず、このゲーム機と他のゲーム機との間でゲーム内容にズレが生じてしまう。
【0009】
それ故に、本発明の目的は、特に、通信とゲーム処理とが正確に同期していない通信ゲームシステムにおいて、複数のゲーム機間で確実に同一内容のゲームをプレイすることができる通信ゲームシステムを提供することである。
【0010】
【課題を解決するための手段および発明の効果】
第1の発明は、複数のゲーム装置を接続して同一のゲームを複数のユーザが同時にプレイできるように構成される通信ゲームシステムであって、複数のゲーム装置は、それぞれゲーム処理手段と、データ生成手段と、通信手段と、送信バッファ手段と、受信バッファ手段と、処理ずれ検知手段とを備える。ゲーム処理手段は、ゲームを進行させるために一定周期でゲーム処理を繰り返す。データ生成手段は、ゲーム処理手段によるゲーム処理に利用するための生成データの生成処理を、ゲーム処理の周期に応じて繰り返す。通信手段はデータ生成手段によって生成された生成データを全てのゲーム装置との間でやりとりする。送信バッファ手段は未送信の生成データを一時的に保持する。受信バッファ手段は受信した生成データを一時的に保持する。処理ズレ検知手段はゲーム処理手段がある回のゲーム処理を開始するのに先立って自ゲーム装置の処理が通信に対して進んでいることを検知する。そして処理ズレ検知手段によって自ゲーム装置の処理が通信に対して進んでいることが検知された場合に、ゲーム処理手段およびデータ生成手段は当回のゲーム処理および生成処理をパスする。
【0011】
上記のように、第1の発明によれば、各ゲーム装置は、ゲーム処理が通信に対して進んでいることを自ら判断して、適宜、ゲーム処理をパスすることにより、未送信の生成データがどんどん貯まっていく問題が回避され、未送信の生成データを保持しておくために多段のバッファを用意することなく、全ての生成データを確実に送信することができる。よって、より簡素で低コストな通信ゲームシステムを実現することができる。
【0012】
第2の発明は、第1の発明において、処理ズレ検知手段は、受信バッファ手段に受信データが保持されていないことを検知することにより自ゲーム装置の処理が通信に対して進んでいることを検知することを特徴とする。
【0013】
上記のように、第2の発明によれば、各ゲーム装置は、受信バッファ手段に受信データが保持されていないことを確認することにより、自ゲーム装置の処理が通信に対して進んでいることを簡単に検知することができる。
【0014】
第3の発明は、複数のゲーム装置を接続して同一のゲームを複数のユーザが同時にプレイできるように構成される通信ゲームシステムであって、ゲーム処理手段と、データ生成手段と、通信手段と、送信バッファ手段と、受信バッファ手段と、エンドコード生成手段を備える。ゲーム処理手段は、ゲームを進行させるために一定周期でゲーム処理を繰り返す。データ生成手段は、ゲーム処理手段によるゲーム処理に利用するための生成データの生成処理を、ゲーム処理の周期に応じて繰り返す。通信手段は、データ生成手段によって生成された生成データを他のゲーム装置との間でやりとりする。送信バッファ手段は、未送信の生成データを一時的に保持する。受信バッファ手段は、受信した生成データを一時的に保持する。エンドコード生成手段は、所定のタイミングで生成データとしてエンドコードを生成する。エンドコード生成手段がエンドコードを生成してから、互いに接続されている全てのゲーム装置からエンドコードを受信するまでの間、データ生成手段は、新たな生成データの生成処理をパスする。
【0015】
上記のように、第3の発明によれば、ゲーム装置間でのエンドコードのやりとりを通じて、処理の遅れているゲーム装置が遅れを回復することができ、その結果、受信した生成データがどんどん貯まっていく問題が回避され、受信した生成データを保持しておくために多段のバッファを用意することなく、全ての受信した生成データを確実にゲーム処理に利用することができる。よって、より簡素で低コストな通信ゲームシステムを実現することができる。
【0016】
第4の発明は、第3の発明において、所定のタイミングが、ゲーム画面の切り替わりのタイミングを含むことを特徴とする。
【0017】
上記のように、第4の発明によれば、エンドコードのやりとりを通じて、処理の遅れているゲーム装置が遅れを回復している間、他のゲーム装置が新たな生成データを生成しないのであるが、このタイミングを画面の切り替わりのタイミングとすることにより、ユーザに違和感を感じさせることなく、処理の遅れているゲーム装置が遅れを回復することができる。
【0018】
第5の発明は、他のゲーム装置と接続して同一のゲームを複数のユーザが同時にプレイすることのできるゲーム装置であって、ゲーム処理手段と、データ生成手段と、通信手段と、送信バッファ手段と、受信バッファ手段と処理ズレ検知手段とを備える。ゲーム処理手段は、ゲームを進行させるために一定周期でゲーム処理を繰り返す。データ生成手段は、ゲーム処理手段によるゲーム処理に利用するための生成データの生成処理を、ゲーム処理の周期に応じて繰り返す。通信手段は、データ生成手段によって生成された生成データを他のゲーム装置との間でやりとりする。送信バッファ手段は、未送信の生成データを一時的に保持する。受信バッファ手段は、受信した生成データを一時的に保持する。処理ズレ検知手段は、ゲーム処理手段がある回のゲーム処理を開始するのに先立って自ゲーム装置の処理が通信に対して進んでいることを検知する。処理ズレ検知手段によって自ゲーム装置の処理が通信に対して進んでいることが検知された場合に、ゲーム処理手段およびデータ生成手段は、当回のゲーム処理および生成処理をパスすることを特徴とする。
【0019】
上記のように、第5の発明によれば、ゲーム装置は、ゲーム処理が通信に対して進んでいることを自ら判断して、適宜、ゲーム処理をパスすることにより、未送信の生成データがどんどん貯まっていく問題が回避され、未送信の生成データを保持しておくために多段のバッファを用意することなく、全ての生成データを確実に送信することができる。よって、より簡素で低コストなゲーム装置を実現することができる。
【0020】
第6の発明は、第5の発明において、処理ズレ検知手段は、受信バッファ手段に受信データが保持されていないことを検知することにより自ゲーム装置の処理が通信に対して進んでいることを検知することを特徴とする。
【0021】
上記のように、第6の発明によれば、ゲーム装置は、受信バッファ手段に受信データが保持されていないことを確認することにより、自ゲーム装置の処理が通信に対して進んでいることを簡単に検知することができる。
【0022】
第7の発明は、他のゲーム装置と接続して同一のゲームを複数のユーザが同時にプレイすることのできるゲーム装置であって、ゲーム処理手段と、データ生成手段と、通信手段と、送信バッファ手段と、受信バッファ手段と、エンドコード生成手段とを備える。ゲーム処理手段は、ゲームを進行させるために一定周期でゲーム処理を繰り返す。データ生成手段は、ゲーム処理手段によるゲーム処理に利用するための生成データの生成処理を、ゲーム処理の周期に応じて繰り返す。通信手段は、データ生成手段によって生成された生成データを他のゲーム装置との間でやりとりする。送信バッファ手段は、未送信の生成データを一時的に保持する。受信バッファ手段は、受信した生成データを一時的に保持する。エンドコード生成手段は、所定のタイミングで生成データとしてエンドコードを生成する。エンドコード生成手段がエンドコードを生成してから、互いに接続されている全てのゲーム装置からエンドコードを受信するまでの間、データ生成手段は、新たな生成データの生成処理をパスする。
【0023】
上記のように、第7の発明によれば、ゲーム装置は他のゲーム装置との間でのエンドコードのやりとりを通じて、処理の遅れを回復することができ、その結果、受信した生成データがどんどん貯まっていく問題が回避され、受信した生成データを保持しておくために多段のバッファを用意することなく、全ての受信した生成データを確実にゲーム処理に利用することができる。よって、より簡素で低コストなゲーム装置を実現することができる。
【0024】
第8の発明は、第7の発明において、所定のタイミングが、ゲーム画面の切り替わりのタイミングを含むことを特徴とする。
【0025】
上記のように、第8の発明によれば、ゲーム装置は、エンドコードのやりとりを通じて、処理の遅れている他のゲーム装置が遅れを回復している間、新たな生成データを生成しないのであるが、このタイミングを画面の切り替わりのタイミングとすることで、ユーザに違和感を感じさせることなく、処理の遅れているゲーム装置が遅れを回復するのを待つことができる。
【0026】
第9の発明は、コンピュータ読み取り可能な記録媒体であって、他のゲーム装置と接続して同一のゲームを複数のユーザが同時にプレイすることのできるゲーム装置に、ゲーム処理ステップと、データ生成ステップと、通信ステップと、送信バッファステップと、受信バッファステップと、処理ズレ検知ステップとを実行させるプログラムを記憶している。ゲーム処理ステップでは、ゲームを進行させるために一定周期でゲーム処理を繰り返す。データ生成ステップでは、ゲーム処理ステップにおけるゲーム処理に利用するための生成データの生成処理を、ゲーム処理の周期に応じて繰り返す。通信ステップでは、データ生成ステップにおいて生成された生成データを他のゲーム装置との間でやりとりする。送信バッファステップでは、未送信の生成データを一時的に保持する。受信バッファステップでは、受信した生成データを一時的に保持する。処理ズレ検知ステップでは、ゲーム処理ステップにおいてある回のゲーム処理が開始されるのに先立って自ゲーム装置の処理が通信に対して進んでいることを検知する。処理ズレ検知ステップにおいて自ゲーム装置の処理が通信に対して進んでいることが検知された場合に、ゲーム処理ステップおよびデータ生成ステップでは、当回のゲーム処理および生成処理をパスする。
【0027】
上記のように、第9の発明によれば、ゲーム装置は、この記録媒体に記録されたプログラムに従って、ゲーム処理が通信に対して進んでいることを自ら判断して、適宜、ゲーム処理をパスすることにより、未送信の生成データがどんどん貯まっていく問題が回避され、未送信の生成データを保持しておくために多段のバッファを用意することなく、全ての生成データを確実に送信することができる。
【0028】
第10の発明は、第9の発明において、処理ズレ検知ステップでは、受信バッファステップにおいて受信データが保持されていないことを検知することにより自ゲーム装置の処理が通信に対して進んでいることを検知することを特徴とする。
【0029】
上記のように、第10の発明によれば、ゲーム装置は、この記録媒体に記録されたプログラムに従って、受信バッファステップにおいて受信データが保持されていないことを確認することにより、自ゲーム装置の処理が通信に対して進んでいることを簡単に検知することができる。
【0030】
第11の発明は、コンピュータ読み取り可能な記録媒体であって、他のゲーム装置と接続して同一のゲームを複数のユーザが同時にプレイすることのできるゲーム装置に、ゲーム処理ステップと、データ生成ステップと、通信ステップと、送信バッファステップと、受信バッファステップと、エンドコード生成ステップとを実行させるプログラムを記憶している。ゲーム処理ステップでは、ゲームを進行させるために一定周期でゲーム処理を繰り返す。データ生成ステップでは、ゲーム処理ステップにおけるゲーム処理に利用するための生成データの生成処理を、ゲーム処理の周期に応じて繰り返す。通信ステップでは、ゲーム処理ステップによるゲーム処理に利用するための生成データを他のゲーム装置との間でやりとりする。送信バッファステップでは、未送信の生成データを一時的に保持する。受信バッファステップでは、受信した生成データを一時的に保持する。エンドコード生成ステップでは、所定のタイミングで生成データとしてエンドコードを生成する。エンドコード生成ステップにおいてエンドコードを生成してから、互いに接続されている全てのゲーム装置からエンドコードを受信するまでの間、データ生成ステップでは、新たな生成データの生成処理をパスする。
【0031】
上記のように、第11の発明によれば、ゲーム装置は、この記録媒体に記録されたプログラムに従って、他のゲーム装置との間でのエンドコードのやりとりを通じて、処理の遅れを回復することができ、その結果、受信した生成データがどんどん貯まっていく問題が回避され、受信した生成データを保持しておくために多段のバッファを用意することなく、全ての受信した生成データを確実にゲーム処理に利用することができる。
【0032】
第12の発明は、第11の発明において、所定のタイミングが、ゲーム画面の切り替わりのタイミングを含むことを特徴とする。
【0033】
上記のように、第12の発明によれば、ゲーム装置は、この記録媒体に記録されたプログラムに従って、エンドコードのやりとりを通じて、処理の遅れている他のゲーム装置が遅れを回復している間、新たな生成データを生成しないのであるが、このタイミングを画面の切り替わりのタイミングとすることで、ユーザに違和感を感じさせることなく、処理の遅れているゲーム装置が遅れを回復するのを待つことができる。
【0034】
【発明の実施の形態】
以下に、図面を参照して、本発明の実施の形態について説明する。
(全体構成)
図1を参照して、本発明の一実施形態に係る通信ゲームシステムの全体構成について説明する。通信ゲームシステムは、4台のゲーム機100a〜100dと通信ケーブル200とで構成される。ゲーム機100a〜100dは、通信ケーブル200を介して相互に接続される。各ゲーム機100a〜100dは、プレイヤの操作を受けるための操作部10a〜10dを有する。なお、4台のゲーム機100a〜100dは、いずれも同一の構成であるので、以下の説明において、これらゲーム機やその構成要素を特に区別する必要がない場合には、ゲーム機100、操作部10のように符号を付して説明する。また説明を容易にするために、ゲーム機100a〜100dを、それぞれ1号機、2号機、3号機、4号機と称することもある。また本実施形態では、1号機が主動的に通信を開始するため、必要に応じて、1号機を親または親機、2〜4号機をそれぞれ子1、子2、子3、もしくはまとめて子機と称することもある。
【0035】
(各ゲーム機の構成)
図2を参照して、ゲーム機100の構成について説明する。ゲーム機100は、操作部10と、送信データバッファ20と、通信データバッファ30と、通信端子40と、受信データバッファ50と、CPU60と、外部ROMカートリッジ70と、表示部80とを備える。通信データバッファ30は、OUTエリア31およびINエリア32を含む。なお、外部ROMカートリッジ70は、ゲーム機100に対して着脱自在に装着されるゲームプログラム記録媒体であるが、ここでは説明を簡単にするため、ゲーム機100を構成する一要素であると仮定して説明している。
【0036】
(各ゲーム機の動作の概略)
ゲーム機100の各部の動作の概略を説明する。外部ROMカートリッジ70は、ゲームを実行するためのプログラムやゲームで用いるデータを記憶するROM及びSRAMから成り、ゲーム機100は、このゲームプログラムにしたがってゲーム処理やデータ転送処理等を実行する。具体的には、CPU60が、このゲームプログラムにしたがって演算、データ転送等の処理を行うことによってゲームが進行する。
【0037】
ユーザは、操作部10の操作キー等を操作することにより、ゲームをプレイする。CPU60は、この操作部10を通じて入力されたユーザの操作内容等に基づいて、ゲーム処理に利用するためのデータを生成する。ここで、生成データとは、ゲーム処理に利用するためのデータであれば何でもよく、例えば操作キーの状態を示すデータであったり、得点情報に関するデータであったり、キャラクタの動作に係るデータであったり、その他任意のデータであっても構わない。この生成データは、通信に備えて送信データバッファ20に一時的に格納される。
【0038】
送信データバッファ20に一時格納された生成データは、通信処理時に通信データバッファ30のOUTエリア31に転送される。通信データバッファ30は、通信手段として他のゲーム装置に対してゲーム処理に利用するための生成データを送受信するためのバッファであり、通信端子40を介して通信ケーブル200に接続される。
【0039】
通信データバッファ30のOUTエリア31に転送された生成データは、所定の通信タイミングにおいて、通信ケーブル200に接続されている全ゲーム機100a〜100dに送信される。この通信タイミングでは、通信ケーブル200に接続されている全ゲーム機100a〜100dのそれぞれの生成データが上記のように送信され、その結果、これら全ゲーム機100a〜100dの生成データが、通信によって各ゲーム機の通信データバッファ30のINエリア32に一様に格納される。
【0040】
通信データバッファ30のINエリア32に格納された全ゲーム機100a〜100dの生成データは、通信後の割り込み処理により受信データバッファ50に転送される。受信データバッファ50は、FIFOバッファ(先入れ先出し型バッファ)であり、複数のデータを、格納した順番に関連付けて記憶しておくことができ、これら複数のデータを格納された順番に順次読み出すことができる。
【0041】
CPU60は、この受信データバッファ50に転送された全ゲーム機100a〜100dの生成データや、外部ROMカートリッジ70に格納されているプログラム及びデータ等とに基づいてゲーム処理を行い、処理結果に基づいて表示部80にゲーム画面を表示する。
【0042】
図3に、各ゲーム機100a〜100dの生成データが通信を通じて受信データバッファ50a〜50dに至るまでの流れを模式的に示す。図中の各バッファ部に記載されている1〜4の数字は、それぞれのバッファに格納される生成データが何号機の生成データであるかを示している。
【0043】
(通信処理)
各ゲーム機100a〜100dのより具体的な動作を説明する前に、まず、ゲーム機間の通信方法について簡単に説明する。本実施形態では、一例として、親機100aの主動で通信が行われるものとする。具体的には、親機100aの垂直帰線期間(以下、Vブランキング期間と称す)の開始タイミングに合わせて親機100aによって通信が開始される。通信が開始されると、まず、親機100aの通信データバッファ30aのOUTエリア31aに格納されている親機100aの生成データが通信端子40aを通じて通信ケーブル200に出力され、この生成データは、通信ケーブル200に接続されている全ゲーム機100a〜100dのそれぞれの通信データバッファ30a〜30dのINエリア32a〜32dに格納される。
【0044】
親機100aからのデータ送信が完了すると、続いて子機100bからのデータ送信が開始される。親機100aの場合と同様に、子機100bのOUTエリア31bに格納されている子機100bの生成データが、全ゲーム機100a〜100dのそれぞれのINエリア32a〜32dに、先に格納された親機100aの生成データに追加されて格納される。以下同様に、子機100c、子機100dからのデータ送信が順次行われる。こうして全ゲーム機100a〜100dの生成データの送信が完了すると、各ゲーム機100a〜100dのINエリア32a〜32dには全ゲーム機100a〜100dの生成データが揃う。
【0045】
以上のようにして1回のデータ通信が終了すると、各ゲーム機100a〜100dにおいて後述する通信終了後の割り込み処理(以下、SIO割り込み処理と称す)が発生する。SIO割り込み処理では、主に、通信データバッファ30に対する生成データの書き込み及び読み出しが行われる。SIO割り込み処理において、通信データバッファ30のINエリア32に格納されている全ゲーム機100a〜100dの生成データは、FIFOバッファである受信データバッファ50に転送される。受信データバッファ50に転送された生成データは、受信データバッファ50へ格納された順に、ゲーム処理に利用される。
【0046】
ところで、図4に示すように、本実施形態に係る通信ゲームシステムでは、各ゲーム機がそれぞれ独自のタイミングでゲーム処理を行っている、つまり、4台のゲーム機が非同期で動作している。一方、通信処理は、親のVブランク開始タイミングに開始される。通信が開始されると、上述のように、全ゲーム機で、通信データバッファ30内のデータのやりとりが行われる。このとき、子機については、CPU60の処理とは関係なく、ハード的に通信データのやりとりが行われる。したがって、子機は、通信が行われるタイミングを知ることはできない。このような通信システムにおいて、もし仮に子機が好き勝手なタイミングで通信データバッファ30に対する生成データの書き込みまたは読み出しを行うと、その書き込みまたは読み出しタイミングと通信タイミングとが一致してしまう可能性があり、その結果、生成データが破壊または消失してしまう恐れがある。この問題を防ぐために、本実施形態では、ダミー通信およびSIO割り込み処理を利用する。以下、その通信方法について簡単に具体的に説明する。
【0047】
図5に示すように、親機は、Vブランクの開始のタイミングで、まずダミー通信を開始する。このダミー通信は、全ゲーム機において、通信後のSIO割込処理を発生させるためだけに行う通信であって、ここでは意味のあるデータのやり取りは行わない。ダミー通信が終了すると、各ゲーム機においてSIO割込が発生する。SIO割込が発生すると、各ゲーム機はSIO割込処理を行う。このSIO割込処理では、前述のように、通信データバッファ30に対する生成データの書き込みおよび読み出しを行うのであるが、ダミー通信の後のSIO割込処理では、ゲーム処理において生成されて送信データバッファ20に格納されている生成データを、通信データバッファ30のOUTエリア31に転送する。ここで、SIO割込処理は、通信の直後に発生する割込処理であるので、このOUTエリア31への転送タイミングと通信タイミングとが一致してしまう恐れはなく、前述のような生成データの破壊または消失といった問題を生じることなく、生成データを通信データバッファ30に安全に書き込むことができる。
【0048】
親機は、全ゲーム機において、前述の通信データバッファ30への生成データの書き込みが完了するまで待機した後、この書き込まれた生成データをやりとりすべく、2回目の通信を開始する。ここでの待機時間は、全ゲーム機において確実に生成データが書き込まれるまでの時間を考慮して予め所定の時間に設定される。例えば、ダミー通信後、子機においてSIO割込処理に優先する割込処理が行われていたり、SIO割込の発生に遅延が生じる可能性があり、このような可能性を考慮して待機時間は設定される。2回目の通信では、ダミー通信後のSIO割込処理において通信データバッファ30に書き込まれたデータが全ゲーム機間でやりとりされる。その結果、各ゲーム機100a〜100dのそれぞれの通信データバッファ30のINエリア32には、全ゲーム機の生成データが格納されている状態となる。この2回目の通信が完了すると、各ゲーム機100a〜100dにおいて再びSIO割込が発生する。このSIO割込処理において、各ゲーム機100a〜100dは、それぞれINエリア32に格納されている全ゲーム機の生成データを受信データバッファ50に転送する。ここでも、INエリア32からデータを読み出すタイミングと通信タイミングとが一致してしまう恐れはなく、前述のような生成データの破壊または消失といった問題を生じることなく、生成データを通信データバッファ30から安全に読み出すことができる。
【0049】
なお、ダミー通信とその後の通信の間に待機時間を設定することを利用して、他の生成データの通信も考慮可能である。すなわち、この待機時間と同程度の短時間に生成あるいは取得可能なデータ、例えば操作キーのデータなどは、最初のダミー通信のタイミングにおいて取得して送信データバッファ20に格納しておくことができる。このようにすれば、次回の通信におけるダミー通信において確実にこのデータは通信データバッファ30に格納され、当回の2回目の通信で全てのゲーム機の通信データバッファ30のINエリア32において受信される。この手法では送信データバッファ20は1段のみ用意すればよい。
【0050】
本実施形態に係る通信ゲームシステムでは、上記のようにして、SIO割込処理において通信データバッファ30に対するデータの書き込みおよび読み出しを行うため、生成データが破壊されたりといった問題は生じない。なお、上記の説明では、ダミー通信後、2回目の通信を行うことにより生成データをやりとりするとしたが、ダミー通信後の通信を複数回行うことも可能である。この場合、2回目の通信後のSIO割込処理において、生成データの読み出しに加えてさらに3回目の通信で送信すべき生成データを通信データバッファ30に書き込み、この生成データを3回目の通信によってやりとりするようにすればよい。このように、ダミー通信後の通信の回数は任意に設定することが可能であり、それにより、通信データバッファ30の容量に左右されずに大量の生成データを1回のVブランク期間でやりとりすることも可能となる。
【0051】
(処理ズレを吸収する方法)
本実施形態に係る通信ゲームシステムでは、各ゲーム機は、あるゲーム処理において生成データを生成し、この生成データを通信によりやり取りし、次のゲーム処理において、直前の通信により受信した全ゲーム機の生成データに基づいて処理を行い、再び生成データを生成するという処理を繰り返すことにより、ゲームが進行する。しかしながら、本実施形態では、各ゲーム機の処理が同期していないため、ゲーム処理を行おうとしたときに、そのゲーム処理で用いるはずの全ゲーム機の生成データがまだ受信できていないという状況が生じうる。以下に、その場合の対処方法について説明する。
【0052】
図6に、親機および2台の子機における通信タイミングとゲーム処理タイミングの一例を示す。子1は、通信T1において受信した全ゲーム機の生成データに基づいてゲーム処理G1aを行う。同様に、通信T2において受信した全ゲーム機の生成データに基づいてゲーム処理G1bを行い、通信T3において受信した全ゲーム機の生成データに基づいてゲーム処理G1cを行い、通信T4において受信した全ゲーム機の生成データに基づいてゲーム処理G1dを行う。このように、通信の周期とゲーム処理の周期が完全に一致している場合には、特に問題が生じることなくゲームを進行することができる。
【0053】
一方、子2は、親とのクロック周波数の微妙なズレ等によって、図6に示すように、通信の周期に対してゲーム処理の周期が若干短くなっている。子2は、通信T1において受信した全ゲーム機の生成データに基づいてゲーム処理G2aを行う。同様に、通信T2において受信した全ゲーム機の生成データに基づいてゲーム処理G2bを行い、通信T3において受信した全ゲーム機の生成データに基づいてゲーム処理G2cを行う。
【0054】
ところが、子2は、このゲーム処理G2cを行った後、通信T4が行われる前に、ゲーム処理G2dを迎えてしまう。ここでゲーム処理G2dを行うと、そのゲーム処理G2dにおいて新たに生成された生成データを送信データバッファ20に格納することになるが、この送信データバッファ20には、ゲーム処理G2cにおいて生成された生成データがまだ送信されずに格納されたままであり、この生成データが上書きにより消失してしまうことになる。従来から、この問題を解決するために複数段の送信データバッファを用意する方法が知られている。しかしながら、ゲーム周期が若干短いゲーム機(この場合子2)では、限りなく送信データバッファの段数を増やさねばならなる。更に送信データバッファにデータが多く溜まった場合、送信すべきデータが遅れて送信されることとなり、引いてはゲームのレスポンスが悪くなってしまう。このため、本実施形態では、ゲーム処理G2dを行わないことにより、この問題に対処する。これにより、ゲーム処理G2cにおいて生成された生成データは、上書きにより消失することなく通信T4において送信される。その後、子2では、通信T4において受信した全ゲーム機の生成データに基づいてゲーム処理G2eを行う。
【0055】
このように、本実施形態に係る通信ゲームシステムでは、特徴的な処理として、各ゲーム機は、あるゲーム処理を行う際に、前回のゲーム処理以降に通信が行われたか否かを判断し、通信が行われていない場合にはゲーム処理を行わないという処理を行う。これにより、ゲーム処理周期の短いゲーム機が、他のゲーム機に対して処理がどんどん早くなってしまうという問題が回避されるとともに、送信データバッファ20を多数段設けなくともデータ消失が起こらないため、必要なバッファ容量を低減できるという利点がある。
【0056】
なお、あるゲーム処理を行う際に、前回のゲーム処理以降に通信が行われたか否かを判断するための方法としては種々の方法が考えられる。例えば、通信データバッファ30のINエリア32に受信データが存在するか否かにより、これを判断することができる。また例えば、通信データバッファ30のOUTエリア31に送信データが残ったままであるか否かにより判断することもできる。また例えば、フラグ等を用いて、前回のゲーム処理以降に通信が行われたか否かを判断することもできる。
【0057】
以上では、ゲーム処理の周期が通信の周期よりも短い場合について述べたが、逆に、ゲーム処理の周期が通信の周期よりも長い場合や、一時的な処理負荷の増大等によってゲーム処理が通常の処理期間で完了しなかった場合のように、通信に対してゲーム処理が遅れる場合も生じうる。図7に示す子1が前者の様子を示しており、図7に示す子2が後者の様子を示している。
【0058】
図7において、子1は、通信T1において受信した全ゲーム機の生成データに基づいてゲーム処理G1aを行う。同様に、通信T2において受信した全ゲーム機の生成データに基づいてゲーム処理G1bを行う。ところが、通信T3において受信した全ゲーム機の生成データに基づくゲーム処理が行われる前に、通信T4を迎える。しかしながら、通信T3において受信した全ゲーム機の生成データは、通信T3直後のSIO割込処理において受信データバッファ50に格納されており、さらに、通信T4において受信した全ゲーム機の生成データは、通信T4直後のSIO割込処理においてこの受信データバッファ50に追加されるので、受信データが消失することはなく、子1は、ゲーム処理G1cにおいて、通信T3において受信した全ゲーム機の生成データに基づいてゲーム処理を行い、以下、受信データバッファ50に格納された順番で順次ゲーム処理が実行される。
【0059】
一方、図7において、子2は、通信T1において受信した全ゲーム機の生成データに基づいてゲーム処理G2aを行う。同様に、通信T2において受信した全ゲーム機の生成データに基づいてゲーム処理G2bを行う。ところが、子2は、ゲーム処理G2bにおける処理負荷が大きく、通信T4の後までゲーム処理G2cを開始することができない。しかしながら、通信T3において受信した全ゲーム機の生成データは、通信T3直後のSIO割込処理において受信データバッファ50に格納されており、さらに、通信T4において受信した全ゲーム機の生成データは、通信T4直後のSIO割込処理においてこの受信データバッファ50に追加されるので、受信データが消失することはなく、子2は、ゲーム処理G2cにおいて、通信T3において受信した全ゲーム機の生成データに基づいてゲーム処理を行い、以下、受信データバッファ50に格納された順番で順次ゲーム処理が実行される。
【0060】
以上のように、本実施形態に係る通信ゲームシステムでは、受信データバッファ50にFIFOバッファを用いているため、通信終了毎に受信データを受信データバッファ50に追加格納することで、全ての受信データは、消失することなく確実にゲーム処理に利用される。
【0061】
(受信データバッファにデータが貯まり過ぎるのを防ぐ方法)
上記のように、通信に対してゲーム処理が遅れたゲーム機では、受信データバッファ50に、遅れに応じて順次受信データが貯まっていくことになる。これに対応するためには、単に受信データバッファ50のFIFOの段数を増やすことで対応することも可能であるが、もしも用意したFIFOの段数と同じ数の受信データが貯まっている状態でさらなる受信データを格納してしまうと受信データが損失してしまうことになるため、単にFIFOの段数を増やすだけでは確実性に欠ける。そこで、本実施形態に係る通信ゲームシステムでは、このように受信データバッファ50に受信データがどんどん貯まってしまうのを回避するため、ゲーム機間で、適当なタイミングでエンドコードのやりとりを行う。このエンドコードのやり取りを通じて、処理の遅れているゲーム機が、貯まった受信データを用いたゲーム処理を完了するまでの間、他のゲーム機は、新たな生成データを生成することなく、遅れているゲーム機の生成データを用いてゲーム処理のみを続ける。以下、図8を参照して、このエンドコードを用いる処理について具体的に説明する。
【0062】
図8は、1フレームに送るデータを一組とし、各ゲーム機が、仮にゲームがスタートしてから2000組のデータを送った後にエンドコードを送信する場合の、各フレームにおける各ゲーム機の送信データを示している。図8のnフレーム目において、親および子1は、自機の1999組目の生成データを送信しており、子2は、1998組目の生成データを、子3は、1997組目の生成データを送信している。つまり、この段階で、子2は親から1フレーム、子3は親から2フレーム遅れている。親から処理が遅れていない子1は、通信後のSIO割込処理において受信データバッファ50に全ゲーム機の生成データが格納され、次のゲーム処理においてこの生成データが読み出されるといった処理が繰り返される。つまり、子1では、受信データバッファ50には、多くとも1組の生成データしか格納されていない状態である。一方、子2では、受信データバッファ50には、常に1組の生成データが格納されており、最大で2組の生成データが格納されている状態である。また、子3では、受信データバッファ50には、常に2組の生成データが格納されており、最大で3組の生成データが格納されている状態である。
【0063】
図8において、親および子1は、n+1フレーム目において、2000組目の生成データを送信し、続くn+2フレーム目では、エンドコードを送信する。エンドコード送信後は、全てのゲーム機からエンドコードを受信するまでの間、データ「0」を送信し続ける。つまり、この間は、他ゲーム機から送信されてきた生成データに基づくゲーム処理を続けつつ、自ゲーム機の生成データを生成することなく処理を進める。こうして、他の処理が遅れているゲーム機が、受信データバッファ50に貯まったデータを処理し終えるのを待つ。一方、子2および子3は、親および子1が2000組目の生成データを送信し終えた後も、受信データバッファ50に貯まった生成データをもとにゲーム処理を続ける。
【0064】
子2は、n+2フレーム目において2000組目の生成データを送信し終え、n+3フレーム目においてエンドコードを送信し、以降、全ゲーム機からのエンドコードが揃うまで、データ「0」を送信し続ける。子3は、n+3フレーム目において2000組目の生成データを送信し終え、n+4フレーム目においてエンドコードを送信する。この時点で、全てのゲーム機の受信データバッファ50には、生成データが一つも残っていない状態となる。n+4フレーム目において子3がエンドコードを送信したことにより、n+5フレーム目では、全てのゲーム機において、全てのゲーム機からのエンドコードが受信されることになり、その時点で各ゲーム機はゲーム処理を再開する。こうしてn+6フレーム目では、全てのゲーム機が1組目の生成データを送信することになる。
【0065】
このように、適宜のタイミングでエンドコードを用いて処理を揃えることにより、受信データバッファ50に受信データがどんどんたまっていく問題を解消することができる。なお、上記の例では、エンドコードを挿入するタイミングは、2000組の生成データを送信した後としたが、これに限らず、任意のタイミングで挿入しても構わない。ただし、エンドコードによる瞬間的な処理の中断を目立たないようにするためには、例えばゲーム画面の切り替え時やゲーム画面に動きがない時などに挿入するのが好ましい。また、何らかの原因によって、受信データバッファ50に受信データの数が貯まっていく速度が大きい場合には、それに応じてエンドコードの挿入間隔を短くすればよい。
【0066】
(CPUの処理)
以下、フローチャートを参照して、本実施形態に係る通信ゲームシステムにおけるゲーム機100のCPU60の動作について説明する。
【0067】
図9に示すように、ゲームプログラムを開始すると、CPU60は、ステップS100で、初期設定を行い、ステップS200に進む。ステップS200で、受信データバッファ50に受信データが存在するか否かを判定し、受信データが存在する場合にはステップS300に進み、受信データが存在しない場合にはステップS400に進む。ステップS200で、ゲームプログラムや受信データ等に基づいてゲーム処理を行う。ゲーム処理は、基本的には1フレーム(1/60秒)内に実行される処理である。ゲーム処理が終わると、ステップS400で、Vブランク待ち処理を行う。このVブランク待ち処理では、1/60秒の周期で発生するVブランキング期間の開始まで待ってからサウンド処理等の所定の処理を実行する。Vブランク待ち処理が終わると、ステップS500で、ゲーム終了の判断を行い、ゲームが続行する場合にはステップS200に戻り、続行しない場合には処理を終了する。つまり、Vブランキング期間を待ってからVブランク待ち処理における所定の処理を実行し、そしてゲーム処理が行われ、その後、再びVブランキング期間を待つという動作の繰り返しにより、CPU60の処理は進行する。
【0068】
各ゲーム機100a〜100dは、それぞれ図9に示すフローチャートに従って動作するが、Vブランキング期間の開始時およびデータ通信の終了時には、それぞれ後述するVブランク割り込み処理およびSIO割り込み処理が発生する。また、親機では、ダミー通信の次の通信を開始するためのタイマ割込処理がさらに発生する。
【0069】
図10を参照して、Vブランク割り込み処理について説明する。Vブランク割り込み処理では、CPU60は、まずステップS602で、通常のゲーム装置において一般的に実行されるサウンドの処理やVブランクの処理を行い、ステップS604に進む。ステップS604で、自機が親機かどうかを判断し、親機である場合にはステップS606に進み、子機である場合には処理を終了する。ステップS606で、ゲーム機100a〜100d間のデータ通信処理をスタートさせ、その後、処理を終了する。なお、ここでスタートさせる通信は、図5に示したダミー通信である。
【0070】
このように、Vブランク割り込み処理では、親機100aがデータ通信を開始するための処理が実行される。つまり、親機のVブランキング期間の開始タイミングに合わせてデータ通信が実行されることになる。なお、本実施形態では親機100aのVブランキング期間の開始タイミングに合わせて親機100aがデータ通信を開始するとしたが、これは一例であって、その他の任意のタイミングでデータ通信を開始しても構わないし、さらには、データ通信制御機能を有する装置を別途設け、この装置がデータ通信を開始するようにしても構わない。
【0071】
次に、図11を参照して、SIO割り込み処理について説明する。SIO割り込み処理は、親機100aによって開始された通信が完了した時点で各ゲーム機100a〜100dにおいて発生する割り込み処理である。
【0072】
SIO割り込み処理では、CPU60は、ステップS702で、この割込処理の直前の通信がダミー通信であるか否かを判定し、ダミー通信である場合にはステップS704に進み、ダミー通信でない場合、つまりダミー通信に後続する通信である場合にはステップS710に進む。直前の通信がダミー通信であるか否かを判定するための方法としては、種々の方法が考えられる。一例として、通信回数をカウントするための変数を用意しておき、通信が終了する毎にこの変数の値をインクリメントするとともに、ダミー通信に続く通信が完了した時点でリセットするようにし、この変数の値に基づいてダミー通信であるか否かを判定することができる。
【0073】
直前の通信がダミー通信であった場合は、ステップS704で、送信データバッファ20に格納されている生成データを通信データバッファ30のOUTエリア31へ転送し、ステップS706に進む。ステップS706で、自機が親機であるか否かを判断し、親機である場合にはステップS708に進み、子機である場合には処理を終了する。ステップS708で、タイマのカウントをスタートさせ、処理を終了する。このタイマは、親機がダミー通信の次の通信を開始するまでの時間をカウントするためのものである。
【0074】
一方、直前の通信がダミー通信でない場合には、ステップS710で、直前の通信によって通信データバッファ30のINエリア32に格納されている全ゲーム機の生成データを受信データバッファ50に格納し、処理を終了する。
【0075】
次に、図12を参照して、タイマ割込処理について説明する。このタイマ割込処理は、親機にのみ発生する処理であり、図11のフローチャートのステップS708でスタートされたタイマが所定時間をカウントしたときに発生する割込処理である。タイマ割込処理では、CPU60は、ステップS802で、通信をスタートし、ステップS804に進む。ここでスタートする通信は、ダミー通信に後続する通信、つまり図5に示す2回目の通信である。その後、ステップS804で、タイマをリセットし、処理を終了する。
【0076】
なお、本来、通信データバッファ30へのデータの書き込み及び通信データバッファ30からのデータの読み出しは、任意のタイミングで行っても構わない。しかしながら、通信データバッファ30に対するデータの読み書きとデータ通信とが同時に行われることによって生じるハード的なエラーを回避するためには、通信データバッファ30に対するデータの読み書きは、本実施形態のようにデータ通信完了直後に実行されるのが好ましい。
【0077】
以上のように、本実施形態では、親機100aのVブランキング期間の開始のタイミングに親機100aがダミー通信を開始し、ダミー通信の終了後、各ゲーム機100a〜100bは、SIO割込処理において、後続する通信において送信すべき生成データを通信データバッファ20のOUTエリア31に転送する。その後、親機100aは、一定の時間をカウントした後、タイマ割込処理において2回目の通信を開始する。各ゲーム機100a〜100dは、この2回目の通信後のSIO割込処理において、通信データバッファ30のINエリア32に格納されている受信データを受信データバッファ50に転送する。前述したように、受信データバッファ50は、先入れ先出し型のいわゆるFIFOバッファであり、受信されたデータは、受信データバッファ50に順序づけられて記憶され、格納された順番で順次ゲーム処理に利用される。
【0078】
以上のように、本実施形態によれば、各ゲーム機は、受信データバッファ50に受信データが無いことでもって自ゲーム機の処理が進んでいることを自ら察知し、適宜ゲーム処理をパスする。これにより、処理が早いゲーム機、つまりゲーム処理の周期が通信の周期よりも短いゲーム機において、未送信のデータがどんどん貯まってしまうという問題が解消されるため、送信側に多段のバッファを設けることなしに、全ての生成データを確実に送信することができる。よって、必要なバッファ容量が低減するため、ゲーム機の構成を簡素化し、コストを低減することができる。
【0079】
また、ゲーム機間で特定のタイミングでエンドコードをやりとりすることにより、処理が遅いゲーム機、つまりゲーム処理の周期が通信の周期よりも長いゲーム機あるいは処理遅延が生じたゲーム機において、受信データバッファ50に、ゲーム処理にまだ利用していないデータがどんどん貯まってしまうという問題を解消することができる。その結果、受信側に多段のバッファを設けることなしに、全ての受信データを確実にゲーム処理に利用することができる。よって、必要なバッファ容量が低減するため、ゲーム機の構成を簡素化し、コストを低減することができる。
【0080】
また、以上のように、各ゲーム機において生成されたデータは、確実に全ゲーム機に送信され、また送信先の全てのゲーム機は、受信した生成データを、受信した順番で確実にゲーム処理に利用することができるので、ゲーム機間で、ゲーム内容に差が生じることはない。
【0081】
なお、本実施形態では、複数のゲーム機100a〜100dが通信ケーブル200を介して接続される構成としたが、これに限らず、例えば、ゲームプログラムに従って動作する複数のコンピュータ端末をそれぞれネットワークに接続し、ネットワークを介して端末間でデータ通信を行うようにしても構わない。また、ゲーム機間で無線通信するようにしても構わない。
【0082】
また、本実施形態において説明した種々の動作は、外部ROMカートリッジ70内に格納されているゲームプログラムに従ってCPU60が実行するとしたが、これに限らず、例えば、ゲームプログラムをゲーム機自体が格納するようにしても構わないし、一部の動作をハードウェアによって処理するようにしても構わない。また、複数のゲーム機が同時に同じ内容のゲームを処理する場合に、外部ROMカートリッジ70を各々のゲーム機に挿入しても良いし、いずれか一台のゲーム機のみに挿入してゲームをプレイ可能なシステムにおいて使用しても構わない。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る通信ゲームシステムの全体構成図である。
【図2】ゲーム機100の構成を示すブロック図である。
【図3】各ゲーム機の生成データの流れを示す図である。
【図4】各ゲーム機が非同期で動作している場合のシステム全体の動作を説明するための図である。
【図5】通信処理について詳細に説明するための図である。
【図6】ゲーム処理の周期が通信の周期よりも早い場合のゲーム機の動作について説明するための図である。
【図7】ゲーム処理の周期が通信の周期よりも遅い場合、および処理遅延が生じた場合のゲーム機の動作について説明するための図である。
【図8】エンドコードを利用するときの各ゲーム機の動作およびその効果について説明するための図である。
【図9】CPU60のメインの動作を示すフローチャートである。
【図10】Vブランク割り込み処理時のCPU60の動作を示すフローチャートである。
【図11】SIO割り込み処理時のCPU60の動作を示すフローチャートである。
【図12】タイマ割込処理時のCPU60の動作を示すフローチャートである。
【符号の説明】
10 操作部
20 送信データバッファ
30 通信データバッファ
31 OUTエリア
32 INエリア
40 通信端子
50 受信データバッファ
60 CPU
70 外部ROMカートリッジ
80 表示部
100 ゲーム機
200 通信ケーブル
Claims (16)
- 複数のゲーム装置を接続して同一のゲームを複数のユーザが同時にプレイできるように構成される通信ゲームシステムであって、
前記複数のゲーム装置は、それぞれ、
ゲームを進行させるために一定周期でゲーム処理を繰り返すゲーム処理手段と、
前記ゲーム処理手段によるゲーム処理に利用するための生成データの生成処理を、前記ゲーム処理の周期に応じて繰り返すデータ生成手段と、
前記データ生成手段によって生成された生成データを全てのゲーム装置との間でやりとりする通信手段と、
未送信の生成データを一時的に保持する送信バッファ手段と、
受信した生成データを一時的に保持する受信バッファ手段と、
前記ゲーム処理手段がある回のゲーム処理を開始するのに先立って自ゲーム装置の処理が通信に対して進んでいることを検知する処理ズレ検知手段とを備え、
前記ゲーム処理手段および前記データ生成手段は、前記処理ズレ検知手段によって自ゲーム装置の処理が通信に対して進んでいることが検知された場合に、当回のゲーム処理および生成処理をパスすることを特徴とする、通信ゲームシステム。 - 前記処理ズレ検知手段は、前記受信バッファ手段に受信データが保持されていないことを検知することにより自ゲーム装置の処理が通信に対して進んでいることを検知することを特徴とする、請求項1に記載の通信ゲームシステム。
- 複数のゲーム装置を接続して同一のゲームを複数のユーザが同時にプレイできるように構成される通信ゲームシステムであって、
前記複数のゲーム装置は、それぞれ、
ゲームを進行させるために一定周期でゲーム処理を繰り返すゲーム処理手段と、
前記ゲーム処理手段によるゲーム処理に利用するための生成データの生成処理を、前記ゲーム処理の周期に応じて繰り返すデータ生成手段と、
前記データ生成手段によって生成された生成データを全てのゲーム装置との間でやりとりする通信手段と、
未送信の生成データを一時的に保持する送信バッファ手段と、
受信した生成データを一時的に保持する受信バッファ手段と、
所定のタイミングで生成データとしてエンドコードを生成するエンドコード生成手段とを備え、
前記データ生成手段は、前記エンドコード生成手段がエンドコードを生成してから、互いに接続されている全てのゲーム装置からエンドコードを受信するまでの間、新たな生成データの生成処理をパスすることを特徴とする、通信ゲームシステム。 - 前記所定のタイミングが、ゲーム画面の切り替わりのタイミングを含むことを特徴とする、請求項3に記載の通信ゲームシステム。
- 他のゲーム装置と接続して同一のゲームを複数のユーザが同時にプレイすることのできるゲーム装置であって、
ゲームを進行させるために一定周期でゲーム処理を繰り返すゲーム処理手段と、
前記ゲーム処理手段によるゲーム処理に利用するための生成データの生成処理を、前記ゲーム処理の周期に応じて繰り返すデータ生成手段と、
前記データ生成手段によって生成された生成データを全てのゲーム装置との間でやりとりする通信手段と、
未送信の生成データを一時的に保持する送信バッファ手段と、
受信した生成データを一時的に保持する受信バッファ手段と、
前記ゲーム処理手段がある回のゲーム処理を開始するのに先立って自ゲーム装置の処理が通信に対して進んでいることを検知する処理ズレ検知手段とを備え、
前記ゲーム処理手段および前記データ生成手段は、前記処理ズレ検知手段によって自ゲーム装置の処理が通信に対して進んでいることが検知された場合に、当回のゲーム処理および生成処理をパスすることを特徴とする、ゲーム装置。 - 前記処理ズレ検知手段は、前記受信バッファ手段に受信データが保持されていないことを検知することにより自ゲーム装置の処理が通信に対して進んでいることを検知することを特徴とする、請求項5に記載のゲーム装置。
- 他のゲーム装置と接続して同一のゲームを複数のユーザが同時にプレイすることのできるゲーム装置であって、
ゲームを進行させるために一定周期でゲーム処理を繰り返すゲーム処理手段と、
前記ゲーム処理手段によるゲーム処理に利用するための生成データの生成処理を、前記ゲーム処理の周期に応じて繰り返すデータ生成手段と、
前記データ生成手段によって生成された生成データを全てのゲーム装置との間でやりとりする通信手段と、
未送信の生成データを一時的に保持する送信バッファ手段と、
受信した生成データを一時的に保持する受信バッファ手段と、
所定のタイミングで生成データとしてエンドコードを生成するエンドコード生成手段とを備え、
前記データ生成手段は、前記エンドコード生成手段がエンドコードを生成してから、互いに接続されている全てのゲーム装置からエンドコードを受信するまでの間、新たな生成データの生成処理をパスすることを特徴とする、ゲーム装置。 - 前記所定のタイミングが、ゲーム画面の切り替わりのタイミングを含むことを特徴とする、請求項7に記載のゲーム装置。
- コンピュータ読み取り可能な記録媒体であって、他のゲーム装置と接続して同一のゲームを複数のユーザが同時にプレイすることのできるゲーム装置に、
ゲームを進行させるために一定周期でゲーム処理を繰り返すゲーム処理ステップと、
前記ゲーム処理ステップにおけるゲーム処理に利用するための生成データの生成処理を、前記ゲーム処理の周期に応じて繰り返すデータ生成ステップと、
前記データ生成ステップにおいて生成された生成データを全てのゲーム装置との間でやりとりする通信ステップと、
未送信の生成データを一時的に保持する送信バッファステップと、
受信した生成データを一時的に保持する受信バッファステップと、
前記ゲーム処理ステップにおいてある回のゲーム処理が開始されるのに先立って自ゲーム装置の処理が通信に対して進んでいることを検知する処理ズレ検知ステップとを実行させ、
前記ゲーム処理ステップおよび前記データ生成ステップでは、前記処理ズレ検知ステップにおいて自ゲーム装置の処理が通信に対して進んでいることが検知された場合に、当回のゲーム処理および生成処理をパスすることを特徴とするプログラムを記録した記録媒体。 - 前記処理ズレ検知ステップでは、前記受信バッファステップにおいて受信データが保持されていないことを検知することにより自ゲーム装置の処理が通信に対して進んでいることを検知することを特徴とする、請求項9に記載の記録媒体。
- コンピュータ読み取り可能な記録媒体であって、他のゲーム装置と接続して同一のゲームを複数のユーザが同時にプレイすることのできるゲーム装置に、
ゲームを進行させるために一定周期でゲーム処理を繰り返すゲーム処理ステップと、
前記ゲーム処理ステップにおけるゲーム処理に利用するための生成データの生成処理を、前記ゲーム処理の周期に応じて繰り返すデータ生成ステップと、
前記データ生成ステップにおいて生成された生成データを全てのゲーム装置との間でやりとりする通信ステップと、
未送信の生成データを一時的に保持する送信バッファステップと、
受信した生成データを一時的に保持する受信バッファステップと、
所定のタイミングで生成データとしてエンドコードを生成するエンドコード生成ステップとを実行させ、
前記データ生成ステップでは、前記エンドコード生成ステップにおいてエンドコードを生成してから、互いに接続されている全てのゲーム装置からエンドコードを受信するまでの間、新たな生成データの生成処理をパスすることを特徴とするプログラムを記録した記録媒体。 - 前記所定のタイミングが、ゲーム画面の切り替わりのタイミングを含むことを特徴とする、請求項11に記載の記録媒体。
- 他のゲーム装置と接続して同一のゲームを複数のユーザが同時にプレイすることのできるゲーム装置によって実行されるゲーム処理方法であって、
ゲームを進行させるために一定周期でゲーム処理を繰り返すゲーム処理ステップと、
前記ゲーム処理ステップにおけるゲーム処理に利用するための生成データの生成処理を、前記ゲーム処理の周期に応じて繰り返すデータ生成ステップと、
前記データ生成ステップにおいて生成された生成データを全てのゲーム装置との間でやりとりする通信ステップと、
未送信の生成データを一時的に保持する送信バッファステップと、
受信した生成データを一時的に保持する受信バッファステップと、
前記ゲーム処理ステップにおいてある回のゲーム処理が開始されるのに先立って自ゲーム装置の処理が通信に対して進んでいることを検知する処理ズレ検知ステップとを実行させ、
前記ゲーム処理ステップおよび前記データ生成ステップでは、前記処理ズレ検知ステップにおいて自ゲーム装置の処理が通信に対して進んでいることが検知された場合に、当回のゲーム処理および生成処理をパスすることを特徴とする、ゲーム処理方法。 - 他のゲーム装置と接続して同一のゲームを複数のユーザが同時にプレイすることのできるゲーム装置によって実行されるゲーム処理方法であって、
ゲームを進行させるために一定周期でゲーム処理を繰り返すゲーム処理ステップと、
前記ゲーム処理ステップにおけるゲーム処理に利用するための生成データの生成処理を、前記ゲーム処理の周期に応じて繰り返すデータ生成ステップと、
前記データ生成ステップにおいて生成された生成データを全てのゲーム装置との間でやりとりする通信ステップと、
未送信の生成データを一時的に保持する送信バッファステップと、
受信した生成データを一時的に保持する受信バッファステップと、
所定のタイミングで生成データとしてエンドコードを生成するエンドコード生成ステップとを実行させ、
前記データ生成ステップでは、前記エンドコード生成ステップにおいてエンドコードを生成してから、互いに接続されている全てのゲーム装置からエンドコードを受信するまでの間、新たな生成データの生成処理をパスすることを特徴とする、ゲーム処理方法。 - 他のゲーム装置と接続して同一のゲームを複数のユーザが同時にプレイすることのできるゲーム装置に、
ゲームを進行させるために一定周期でゲーム処理を繰り返すゲーム処理ステップと、
前記ゲーム処理ステップにおけるゲーム処理に利用するための生成データの生成処理を、前記ゲーム処理の周期に応じて繰り返すデータ生成ステップと、
前記データ生成ステップにおいて生成された生成データを全てのゲーム装置との間でやりとりする通信ステップと、
未送信の生成データを一時的に保持する送信バッファステップと、
受信した生成データを一時的に保持する受信バッファステップと、
前記ゲーム処理ステップにおいてある回のゲーム処理が開始されるのに先立って自ゲーム装置の処理が通信に対して進んでいることを検知する処理ズレ検知ステップとを実行させ、
前記ゲーム処理ステップおよび前記データ生成ステップでは、前記処理ズレ検知ステップにおいて自ゲーム装置の処理が通信に対して進んでいることが検知された場合に、当回のゲーム処理および生成処理をパスすることを特徴とする、プログラム。 - 他のゲーム装置と接続して同一のゲームを複数のユーザが同時にプレイすることのできるゲーム装置に、
ゲームを進行させるために一定周期でゲーム処理を繰り返すゲーム処理ステップと、
前記ゲーム処理ステップにおけるゲーム処理に利用するための生成データの生成処理を、前記ゲーム処理の周期に応じて繰り返すデータ生成ステップと、
前記データ生成ステップにおいて生成された生成データを全てのゲーム装置との間でやりとりする通信ステップと、
未送信の生成データを一時的に保持する送信バッファステップと、
受信した生成データを一時的に保持する受信バッファステップと、
所定のタイミングで生成データとしてエンドコードを生成するエンドコード生成ステップとを実行させ、
前記データ生成ステップでは、前記エンドコード生成ステップにおいてエンドコードを生成してから、互いに接続されている全てのゲーム装置からエンドコードを受信するまでの間、新たな生成データの生成処理をパスすることを特徴とする、プログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2001265952A JP5059263B2 (ja) | 2001-09-03 | 2001-09-03 | 通信ゲームシステム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2001265952A JP5059263B2 (ja) | 2001-09-03 | 2001-09-03 | 通信ゲームシステム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2003071137A JP2003071137A (ja) | 2003-03-11 |
| JP5059263B2 true JP5059263B2 (ja) | 2012-10-24 |
Family
ID=19092341
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2001265952A Expired - Fee Related JP5059263B2 (ja) | 2001-09-03 | 2001-09-03 | 通信ゲームシステム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP5059263B2 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8316683B2 (en) | 2007-04-04 | 2012-11-27 | Sumitomo Metal Industries, Ltd. | Method of manufacturing a bent product and an apparatus and a continuous line for manufacturing the same |
| US8454079B2 (en) | 2007-04-04 | 2013-06-04 | Nippon Steel & Sumitomo Metal Corporation | Strength member for an automobile body, front side member, and side structure for an automobile body |
Families Citing this family (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4626182B2 (ja) * | 2004-05-14 | 2011-02-02 | 株式会社セガ | 対戦ゲーム処理方法、対戦ゲームシステム、そのプログラム及び記憶媒体 |
| JP2007252856A (ja) * | 2006-03-20 | 2007-10-04 | Takashi Tsukamoto | リアルタイム非同期型ゲーム |
| JP4629006B2 (ja) * | 2006-08-01 | 2011-02-09 | 株式会社タイトー | 通信ゲームシステム及びゲームプログラム |
| JP5111950B2 (ja) * | 2007-06-21 | 2013-01-09 | 株式会社バンダイナムコゲームス | プログラム、情報記憶媒体、ゲーム機及びゲームシステム |
| JP5111951B2 (ja) * | 2007-06-21 | 2013-01-09 | 株式会社バンダイナムコゲームス | プログラム、情報記憶媒体、ゲーム機及びゲームシステム |
| JP5745204B2 (ja) | 2008-07-28 | 2015-07-08 | 株式会社バンダイナムコエンターテインメント | プログラム、情報記憶媒体及びゲーム機 |
| JP6077686B1 (ja) * | 2016-02-03 | 2017-02-08 | 株式会社フォーラムエイト | シミュレーションシステム |
| US11537347B2 (en) * | 2020-09-14 | 2022-12-27 | Apple Inc. | Follower mode video operation |
| JP7791802B2 (ja) | 2022-11-09 | 2025-12-24 | 任天堂株式会社 | 情報処理プログラム、ゲームシステム、ゲーム装置、および情報処理方法 |
| JP7791806B2 (ja) | 2022-11-18 | 2025-12-24 | 任天堂株式会社 | 情報処理プログラム、ゲームシステム、ゲーム装置、および情報処理方法 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2807625B2 (ja) * | 1994-01-27 | 1998-10-08 | 株式会社ナムコ | ゲームシステムおよびマルチプレーヤシステムにおける共通表示体の制御方法 |
| JP3701794B2 (ja) * | 1997-07-10 | 2005-10-05 | 株式会社ソニー・コンピュータエンタテインメント | エンタテインメントシステム、画像表示装置、情報処理装置、及び同期制御方法 |
| JPH11347254A (ja) * | 1998-06-12 | 1999-12-21 | Sega Enterp Ltd | 通信ゲームシステム及びそれにおけるゲーム実行方法 |
| JP3966489B2 (ja) * | 1998-10-05 | 2007-08-29 | 株式会社バンダイナムコゲームス | ゲーム装置 |
| JP3794668B2 (ja) * | 1999-02-04 | 2006-07-05 | 株式会社バンダイナムコゲームス | ゲームシステム、ゲーム装置、ゲームデータ配信装置、ネットワークシステムおよび情報記憶媒体 |
| JP2001198363A (ja) * | 1999-09-14 | 2001-07-24 | Sega Corp | データ処理方法 |
-
2001
- 2001-09-03 JP JP2001265952A patent/JP5059263B2/ja not_active Expired - Fee Related
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8316683B2 (en) | 2007-04-04 | 2012-11-27 | Sumitomo Metal Industries, Ltd. | Method of manufacturing a bent product and an apparatus and a continuous line for manufacturing the same |
| US8454079B2 (en) | 2007-04-04 | 2013-06-04 | Nippon Steel & Sumitomo Metal Corporation | Strength member for an automobile body, front side member, and side structure for an automobile body |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2003071137A (ja) | 2003-03-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5059263B2 (ja) | 通信ゲームシステム | |
| JP3506671B2 (ja) | 通信ゲームシステム | |
| JP3529429B2 (ja) | データ送信装置、データ受信装置、データ伝送装置及びデータ伝送方法 | |
| JPS60500195A (ja) | デイジタル通信リンクに円滑に割込む方法と装置 | |
| US6763413B2 (en) | Method for the serial transfer of data between two electronic bus stations and bus station for use in said method | |
| JPH10303993A (ja) | デジタル信号処理プロセッサーの非同期式直列データの送受信方法 | |
| KR0156921B1 (ko) | 집적된 서비스 디지탈 네트워크의 스피드적용 처리 및 스피드 적용을 위한 모노리드식 집적장치 | |
| JP3793835B2 (ja) | パチンコ機 | |
| JP2568458B2 (ja) | データ長さ検出装置 | |
| JP3447586B2 (ja) | クロック同期化方法及びその装置 | |
| US5721891A (en) | Detection of N length bit serial communication stream | |
| JP2002318783A (ja) | マルチプロトコル型シリアル通信装置及びマイクロコンピュータ | |
| JP3392643B2 (ja) | リング状ネットワークにおける信号伝送方式 | |
| JPH02502780A (ja) | 変通性バッファに差し迫ったオーバーフロー及び/又はアンダーランを探知する方法と装置 | |
| EP0837398A2 (en) | Host interface circuit for image forming apparatus | |
| JP3559272B2 (ja) | 3段通信バッファを利用した通信装置 | |
| KR100398854B1 (ko) | 통신시스템및통신용중계기 | |
| JP6221498B2 (ja) | 情報処理システム及び情報処理システムの制御方法 | |
| JPH11504741A (ja) | 送信パケットを重ねることによりインタフェース上の待ち時間を短縮するための方法および装置 | |
| JP5089225B2 (ja) | 中継処理方法及び中継ノード装置 | |
| JP2002223263A (ja) | 通信プロトコル解析装置および解析方法 | |
| JPH11163958A (ja) | 通信制御装置 | |
| JPH0461539B2 (ja) | ||
| JPH09190515A (ja) | Icカードシステムおよびそのデータ伝送方法 | |
| JPS622744A (ja) | 伝送制御回路 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080806 |
|
| A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20080821 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20080821 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110609 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110805 |
|
| RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20110902 |
|
| RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20120713 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120731 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120802 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150810 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5059263 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |