JP2005261856A - ゲームシステム、ゲーム装置、およびゲームプログラム - Google Patents

ゲームシステム、ゲーム装置、およびゲームプログラム Download PDF

Info

Publication number
JP2005261856A
JP2005261856A JP2004083026A JP2004083026A JP2005261856A JP 2005261856 A JP2005261856 A JP 2005261856A JP 2004083026 A JP2004083026 A JP 2004083026A JP 2004083026 A JP2004083026 A JP 2004083026A JP 2005261856 A JP2005261856 A JP 2005261856A
Authority
JP
Japan
Prior art keywords
game
timing information
timing
game device
processing cycle
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.)
Granted
Application number
JP2004083026A
Other languages
English (en)
Other versions
JP4342356B2 (ja
Inventor
Toru Oe
徹 大江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2004083026A priority Critical patent/JP4342356B2/ja
Priority to US10/942,978 priority patent/US7901293B2/en
Publication of JP2005261856A publication Critical patent/JP2005261856A/ja
Application granted granted Critical
Publication of JP4342356B2 publication Critical patent/JP4342356B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • A63F13/12
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/31Communication aspects specific to video games, e.g. between several handheld game devices at close range
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/32Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections
    • A63F13/327Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections using wireless networks, e.g. Wi-Fi® or piconet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/90Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
    • A63F13/92Video game devices specially adapted to be hand-held while playing
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/402Communication between platforms, i.e. physical link to protocol
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/404Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network characterized by a local network connection
    • A63F2300/405Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network characterized by a local network connection being a wireless ad hoc network, e.g. Bluetooth, Wi-Fi, Pico net
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/406Transmission via wireless network, e.g. pager or GSM
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/531Server assignment

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】 複数のゲーム装置においてゲーム処理に必要な時間を確保しながら、それらゲーム装置間における処理タイミングの同期を適切に調整することができるゲームシステム、ゲーム装置、およびゲームプログラムを提供する。
【解決手段】 本発明のゲームシステムでは、子機がタイミングk1およびk2において、時間j1およびj2だけそれぞれフレーム周期を長くすることによって親機との同期処理を行う。また、親機がタイミングh1において、時間iだけフレーム周期が長くすることによって、子機のフレーム周期よりも遅くなる傾向を作為的に作り出し、子機がタイミングk3において時間j3だけ自機のフレーム周期を長く調整するような処理をする。したがって、各ゲーム装置の個体差を想定しながら処理周期の最低期間を確保しつつ、安定的に同期調整を行うことができる。
【選択図】 図5

Description

本発明は、複数のゲーム装置間で通信するゲームシステム、ゲーム装置、およびゲームプログラムに関し、より特定的には、通信機能を使用して複数のプレイヤ間でゲームを実行させるゲームシステム、ゲーム装置、およびゲームプログラムに関する。
従来、複数のゲーム装置間を通信線で接続した有線通信や近距離無線通信を用いてゲーム進行するゲームシステムが知られている。このようなゲームシステムでは、ネットワークを用いた複数のゲーム装置間でマルチプレイが行われ、各ゲーム装置の処理タイミングを合わせることによりゲーム進行が共通化される(例えば、特許文献1および特許文献2参照)。ゲームシステムでは、各ゲーム装置の処理タイミングの同期を取ることによって、時系列情報がずれて処理されることを防止することができる。例えば、各ゲーム装置は、それぞれが有する動作クロックに基づいて処理が進行するが、それらの動作クロックが同一周波数で動作しても個体差などによって微小なずれが生じる。この動作クロックのずれは、処理が進むにつれて徐々に大きくなり、ゲーム装置の処理に支障をきたすことになる。
上記特許文献1で開示されたゲーム機制御装置システムでは、親機から他の子機にリセット指令を送信する。そして、リセット指令を受信した子機は、当該リセット指令に基づいてゲームの制御周期を司る同期カウンタをリセットする。また、上記特許文献2で開示されたゲームシステムでは、ゲームデータ配信装置から配信されるゲームデータを、ゲームプレーヤにとって目立たない状態のときに再生するようにゲーム装置の再生タイミングが調整される。
特開平8−243255号公報 特開2000−107453号公報
しかしながら、上記特許文献1で開示されたゲーム機制御装置システムでは、親機から送信されたリセット指令を受信した子機が同期カウンタをリセットする。その結果、子機では、必然的にリセットが発生したときの制御周期長さが短くなる。したがって、子機では、親機からリセット指令を受信したときに、当該子機におけるゲーム処理に必要な時間を確保することが困難となる。
また、上記特許文献2で開示されたゲームシステムでは、静止画から動画への切り替えタイミング、動画から静止画への切り替えタイミング、フラッシュシーンのように、各ゲーム装置において再生タイミングを調整することができる機会が限られており、常に処理タイミングの同期を取ることはできるわけではなかった。
それ故に、本発明の目的は、複数のゲーム装置においてゲーム処理に必要な時間を確保しながら、それらゲーム装置間における処理タイミングの同期を適切に調整することができるゲームシステム、ゲーム装置、およびゲームプログラムを提供することである。
上記の目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号、ステップ番号、および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
第1の発明は、所定長さの処理周期(フレーム周期)毎にゲーム処理を行う第1ゲーム装置(ゲーム装置1a)および第2ゲーム装置(ゲーム装置1bあるいはゲーム装置1c)を含み、その第1ゲーム装置とその第2ゲーム装置とが互いに通信してマルチプレイゲームを行うゲームシステムである。第1ゲーム装置は、第1タイミング情報取得手段(S38)および第1タイミング情報送信制御手段(S39)を備える。第1タイミング情報取得手段は、自機の処理周期に基づいて、その処理周期内の所定基準時(フレームの開始時)に対する第1タイミング(V_COUNT値=0に対する親TSF値)を示す第1タイミング情報(親V_TSF値)を取得する。第1タイミング情報送信制御手段は、第1タイミング情報を第2ゲーム装置に送信する(ビーコン)。第2ゲーム装置は、第1タイミング情報受信制御手段(S54〜S56)、第2タイミング情報取得手段(S60)、検出手段(S61)、および第1周期変更手段(S62〜S65、S68〜S71)を備える。第1タイミング情報受信制御手段は、第1ゲーム装置から第1タイミング情報を受信する。第2タイミング情報取得手段は、自機の処理周期に基づいて、その処理周期内の所定基準時に対する第2タイミング(V_COUNT値=0に対する子TSF値)を示す第2タイミング情報(子V_TSF値)を取得する。検出手段は、第2タイミング情報と第1タイミング情報受信制御手段が受信した第1タイミング情報に基づいて、自機の所定基準時と第1ゲーム装置の所定基準時との差を検出する。第1周期変更手段は、検出手段が差を検出したとき自機の処理周期を一時的に長くする(V_COUNT−L)。または、第1周期変更手段は、検出手段が検出した差が所定値以上(Lt以上)のとき、自機の処理周期を一時的に長くする(V_COUNT−L)。
ここで、一時的とは、自機の所定基準時と第1ゲーム装置の所定基準時の差が所定値以下になるまで(または一致するまで)の間であってもよい。また、所定数(1つでもよい)の処理周期の間に限り長くするようにしても良い。例えば、検出手段が差を検出したとき、または、検出手段によって所定値以上の差が検出されたときに、検出があった時点の処理周期のみの長さを長くするようにしても良い。すなわち、第1周期変更手段は、検出手段が差を検出したとき、または、検出手段が所定値以上の差を検出したとき、自機の処理周期を長くし、その後所定条件を満たしたときに処理周期を所定長さ(本来の長さ)に戻すようにする。また、検出手段が自機の所定基準時と第1ゲーム装置の所定基準時との一致を検出するようにし、不一致のときに第1周期変更手段が処理周期を長くする程度(長さ)を決定するようにしてもよい。
また、検出手段は、第1タイミング情報が示す時刻と第2タイミング情報が示す時刻とを用いて、第2ゲーム装置の所定基準時と第1ゲーム装置の所定基準時との差を検出してもよいし、後述する第2の発明のように、第1タイミング情報が示す時刻が第2タイミング情報が示す時刻より遅くなるまで、第1タイミング情報が示す時刻に処理周期の長さ(周期期間)を加算し、その加算後の第1タイミングの時刻と第2タイミングの時刻との差を所定基準時の差として検出してもよい。
第2の発明は、上記第1の発明において、検出手段は、第1タイミングを示す時刻が第2タイミングを示す時刻より早いとき、その第2タイミングの時刻より遅くなるまでその第1タイミングの時刻に処理周期の所定長さを加算し、その加算後の第1タイミングの時刻と第2タイミングの時刻との差を所定基準時の差として検出する。
第3の発明は、上記第1の発明において、第1ゲーム装置および第2ゲーム装置は、それぞれカウンタ(131)およびゲーム処理手段を、さらに備える。カウンタは、カウント値(V_COUNT値)を自動的に更新し、所定範囲で巡回(0〜262)する。ゲーム処理手段は、カウンタのカウント値の一巡を処理周期の1周期としてゲーム処理する。第1周期変更手段は、カウンタのカウント値を減少(V_COUNT−L)させることによって、処理周期を長くする。
第4の発明は、上記第3の発明において、第1ゲーム装置および第2ゲーム装置は、それぞれ表示制御手段(13)をさらに備える。表示制御手段は、カウンタのカウント値に応じて表示位置を指定し、その表示位置に対する画面表示を更新する。処理周期は、カウンタのカウント値に応じて、画面表示が更新される表示期間(0〜191)と画面表示が更新されないブランキング期間(192〜262)とに分割されている。第1周期変更手段は、カウンタがブランキング期間中を示すカウント値(212)を示しているときにそのカウント値を減少させる。
第5の発明は、上記第4の発明において、第1周期変更手段は、減少させた後のカウント値もブランキング期間中を示すカウント値になるように、カウンタのカウント値を減少させる。
第6の発明は、上記第1の発明において、第1タイミング情報取得手段は、所定の時間間隔(500ms間隔)で第1タイミング情報を取得する。第1タイミング情報送信制御手段は、第1タイミング情報の取得に応じてその第1タイミング情報を第2ゲーム装置に送信する。第2タイミング情報取得手段は、第1タイミング情報の受信に応じて第2タイミング情報を取得する。検出手段は、第2タイミング情報の取得に応じて、第2タイミング情報と第1タイミング情報に基づいて、自機の所定基準時と第1ゲーム装置の所定基準時との差を検出する。
第7の発明は、上記第1の発明において、第1ゲーム装置および第2ゲーム装置は、それぞれ計時手段(33)および計時同期手段(S39、S56)を、さらに備えている。計時手段は、計時して計時値(TSF値)を生成する。計時同期手段は、他のゲーム装置との間で計時値を同期させる。第1タイミング情報取得手段は、第1タイミング(V_COUNT=0)における自機の計時手段の計時値(親TSF値)を第1タイミング情報(親V_TSF値)として取得する。第2タイミング情報取得手段は、第2タイミング(V_COUNT=0)における自機の計時手段の計時値(子TSF値)を第2タイミング情報(子V_TSF値)として取得する。
第8の発明は、上記第1の発明において、第1ゲーム装置は、第2周期変更手段(S32〜S36)をさらに備える。第2周期変更手段は、所定タイミングで自機の処理周期を一時的に長くする(S35)。第2周期変更手段は、所定の時間間隔(フレーム数n)で自機の処理周期を一時的に長くしてもよいし、所定の条件を満たしたときに(例えば、第1ゲーム装置の所定基準時が第2ゲーム装置の所定基準時よりも早くなった場合に)、自機の処理周期を一時的に長くしてもよい。なお、後者の場合には、第2ゲーム装置から第1ゲーム装置に対して、第1ゲーム装置の所定基準時が第2ゲーム装置の所定基準時よりも早くなったことを通知する手段を設ける。一時的とは、所定数(1つでもよい)の処理周期に限り長くしても良いし、所定条件を満たすまで(例えば、第1ゲーム装置の所定基準時が第2ゲーム装置の所定基準時と比べて一致するか遅くなるまで)、自機の処理周期を一時的に長くしてもよい。
第9の発明は、上記第8の発明において、第2周期変更手段が自機の処理周期を一時的に長くする所定タイミングは、第1ゲーム装置および第2ゲーム装置に想定されている処理周期の個体差(ppm)に基づいて設定される。
第10の発明は、上記第1の発明において、第1タイミング情報送信制御手段は、第1タイミング情報をブロードキャスト送信する。
第11の発明は、上記第1の発明において、第2ゲーム装置は、同期確立情報送信制御手段(S22、S66)をさらに備える。同期確立情報送信制御手段は、検出手段が検出した差が所定値未満のとき、第1ゲーム装置との同期を確立したことを示す同期確立情報(同期OKフラグが「1」)を第1ゲーム装置に送信する。第1ゲーム装置は、同期確立情報受信制御手段(S13)およびゲーム処理開始手段(S15)をさらに備える。同期確立情報受信制御手段は、第2ゲーム装置から送信された同期確立情報を受信する。ゲーム処理開始手段は、同期確立情報受信制御手段の同期確立情報の受信に応答して、第2ゲーム装置とのマルチプレイゲーム処理を開始する。
第12の発明は、所定長さの処理周期毎にゲーム処理を行う他のゲーム装置(ゲーム装置1a)と互いに通信してマルチプレイゲームを行い、その処理周期毎にゲーム処理を行うゲーム装置(ゲーム装置1bあるいはゲーム装置1c)である。ゲーム装置へは、他のゲーム装置の処理周期に基づいて、その処理周期内の所定基準時に対する第1タイミングを示す第1タイミング情報が他のゲーム装置から送信される。ゲーム装置は、第1タイミング情報受信制御手段、第2タイミング情報取得手段、検出手段、および周期変更手段(S62〜S65、S68〜S71)を備える。第1タイミング情報受信制御手段は、他のゲーム装置から第1タイミング情報を受信する。第2タイミング情報取得手段は、自機の処理周期に基づいて、その処理周期内の所定基準時に対する第2タイミングを示す第2タイミング情報を取得する。検出手段は、第2タイミング情報と第1タイミング情報受信制御手段が受信した第1タイミング情報に基づいて、自機の所定基準時と他のゲーム装置の所定基準時との差を検出する。周期変更手段は、検出手段が差を検出したとき、または、検出手段が検出した差が所定値以上のとき、自機の処理周期を一時的に長くする。
第13の発明は、所定長さの処理周期毎にゲーム処理を行う他のゲーム装置(ゲーム装置1bあるいはゲーム装置1c)と互いに通信してマルチプレイゲームを行い、その処理周期毎にゲーム処理を行うゲーム装置(ゲーム装置1a)である。ゲーム装置は、タイミング情報取得手段(S38)、タイミング情報送信制御手段(S39)、および周期変更手段(S32〜S36)を備える。タイミング情報取得手段は、自機の処理周期に基づいて、その処理周期内の所定基準時に対するタイミング(V_COUNT値=0に対する親TSF値)を示すタイミング情報(親V_TSF値)を取得する。タイミング情報送信制御手段は、タイミング情報を他のゲーム装置に送信する。周期変更手段は、所定タイミング(フレーム数n)で自機の処理周期を一時的に長くする(S35)。
第14の発明は、所定長さの処理周期毎にゲーム処理を行う他のゲーム装置(ゲーム装置1a)と互いに通信してマルチプレイゲームを行い、その処理周期毎にゲーム処理を行うゲーム装置(ゲーム装置1bあるいはゲーム装置1c)のコンピュータ(11)に実行させるゲームプログラムである。他のゲーム装置の処理周期に基づいて、その処理周期内の所定基準時に対する第1タイミングを示す第1タイミング情報が他のゲーム装置からゲーム装置に送信される。ゲームプログラムは、コンピュータを、第1タイミング情報受信制御手段、第2タイミング情報取得手段、検出手段、および周期変更手段(S62〜S65、S68〜S71)として機能させる。第1タイミング情報受信制御手段は、他のゲーム装置から第1タイミング情報を受信する。第2タイミング情報取得手段は、自機の処理周期に基づいて、その処理周期内の所定基準時に対する第2タイミングを示す第2タイミング情報を取得する。検出手段は、第2タイミング情報と第1タイミング情報受信制御手段が受信した第1タイミング情報に基づいて、自機の所定基準時と他のゲーム装置の所定基準時との差を検出する。周期変更手段は、検出手段が差を検出したとき、または、検出手段が検出した差が所定値以上のとき、自機の処理周期を一時的に長くする。
第15の発明は、所定長さの処理周期毎にゲーム処理を行う他のゲーム装置(ゲーム装置1a)と互いに通信してマルチプレイゲームを行い、その処理周期毎にゲーム処理を行うゲーム装置(ゲーム装置1bあるいはゲーム装置1c)のコンピュータに実行させるゲームプログラムである。ゲームプログラムは、コンピュータを、タイミング情報取得手段(S38)、タイミング情報送信制御手段(S39)、および周期変更手段(S32〜S36)として機能させる。タイミング情報取得手段は、自機の処理周期に基づいて、その処理周期内の所定基準時に対するタイミング(V_COUNT値=0に対する親TSF値)を示すタイミング情報(親V_TSF値)を取得する。タイミング情報送信制御手段は、タイミング情報を定期的に他のゲーム装置に送信する。周期変更手段は、所定タイミング(フレーム数n)で自機の処理周期を一時的に長くする(S35)。
第16の発明は、親機および子機のいずれかに設定された複数のゲーム装置が互いに通信してマルチプレイゲームを行い、所定長さの処理周期毎にゲーム処理を行う複数のゲーム装置のコンピュータに実行させるゲームプログラムである。ゲームプログラムは、コンピュータを、親子設定手段(最初に無線通信を行おうとしたゲーム装置1を親機に設定など)として機能させる。親子設定手段は、所定の条件に基づいて親機および子機のいずれか一方に自機を設定する。親子設定手段が自機を親機に設定したとき、ゲームプログラムは、第1タイミング情報取得手段、第1タイミング情報送信制御手段、および第1周期変更手段(S32〜S36)としてコンピュータを機能させる。第1タイミング情報取得手段は、自機の処理周期に基づいて、その処理周期内の所定基準時に対する第1タイミングを示す第1タイミング情報を取得する。第1タイミング情報送信制御手段は、第1タイミング情報を子機に設定されたゲーム装置に定期的に送信する。第1周期変更手段は、所定タイミングで自機の処理周期を一時的に長くする。親子設定手段が自機を子機に設定したとき、ゲームプログラムは、第1タイミング情報受信制御手段、第2タイミング情報取得手段、検出手段、および第2周期変更手段(S62〜S65、S68〜S71)としてコンピュータを機能させる。第1タイミング情報受信制御手段は、親機に設定されたゲーム装置から第1タイミング情報を受信する。第2タイミング情報取得手段は、自機の処理周期に基づいて、その処理周期内の所定基準時に対する第2タイミングを示す第2タイミング情報を取得する。検出手段は、第2タイミング情報と第1タイミング情報受信制御手段が受信した第1タイミング情報に基づいて、自機の所定基準時と親機に設定されたゲーム装置の所定基準時との差を検出する。第2周期変更手段は、検出手段が差を検出したとき、または、検出手段が検出した差が所定値以上のとき、自機の処理周期を一時的に長くする。
上記第1の発明によれば、第2ゲーム装置は、自機の処理周期を長くすることによって第1ゲーム装置との同期処理を行うため、各処理周期において一定の処理時間を確保しつつ第1ゲーム装置間で処理の同期を確保することができる。
上記第2の発明によれば、第1タイミング情報取得手段による第1タイミングの取得時期と、第2タイミング情報取得手段による第2タイミング情報の取得時期にずれがある場合であっても、そのずれを考慮して、対応する処理基準時の差を検出することができる。
上記第3の発明によれば、表示制御に用いるカウンタ機能を使用することによって第1ゲーム装置および第2ゲーム装置とが効率的に同期を確保することができる。
上記第4および第5の発明によれば、第2ゲーム装置の周期変更は、ブランキング期間に行われ、かつ、調整後のカウント値をブランキング期間内のカウント値に更新するため、第2ゲーム装置の画面表示を乱すことなく各ゲーム装置間で処理の同期を確保することができる。
上記第6の発明によれば、第1ゲーム装置から第2ゲーム装置へ定期的に第1タイミング情報が送信されるため、定期的に適切な同期調整を行うことができる。また、ゲーム装置間で処理周期のずれが生じたときにすぐに同期調整を行うことができる。
上記第7の発明によれば、第1ゲーム装置および第2ゲーム装置で基準となる計時値が同期し、この計時値に基づいて処理周期のタイミングが評価されるため、処理周期のずれを正確に検出することができる。
上記第8の発明によれば、第1ゲーム装置は、その処理周期のタイミングが第2ゲーム装置の処理周期のタイミングよりも遅くなる傾向を作為的に作り出し、第2ゲーム装置がそれにあわせて自機の処理周期を長く調整するような処理をすることによって、全体として処理周期を長くする方向で処理周期のタイミングを合わせるので、処理周期の最低期間を確保しつつ、安定的に同期調整を行うことができる。
上記第9の発明によれば、各ゲーム装置の個体差を想定しながら処理周期の最低期間を確保しつつ、安定的に同期調整を行うことができる。
上記第10の発明によれば、第1ゲーム装置は第1タイミング情報をブロードキャストで送信し、第2ゲーム装置は受信した第1タイミング情報を用いて同期処理するため、第1ゲーム装置と複数の第2ゲーム装置とが通信する場合にも、個別に第1タイミング情報を送信することなく、全てのゲーム装置間で同期調整をすることができる。
上記第11の発明によれば、第1ゲーム装置が第2ゲーム装置との同期を確認した後にゲームを開始するため、同期ずれによる処理エラーを軽減することができる。
また、本発明のゲーム装置によれば、上述したゲームシステムに含まれる第1ゲーム装置または第2ゲーム装置と同様の効果を得ることができる。さらに、本発明のゲームプログラムによれば、当該ゲームプログラムを上述したゲームシステムに含まれるゲーム装置のコンピュータに実行させることによって、上述したゲームシステムと同様の効果を得ることができる。
図面を参照して、本発明の一実施形態に係るゲームシステムに含まれるゲーム装置1の構造について説明する。なお、図1は、当該ゲームシステムに含まれる携帯ゲーム装置1の外観図であるが、本発明のゲームシステムの構成は、携帯ゲーム装置1に限定されるものではなく、据置型のゲーム装置にも適用することができる。また、複数のゲーム装置1の間を通信する手段として近距離無線通信を用いて説明するが、当該ゲーム装置1同士を通信ケーブルなどで接続して互いに有線通信を行ってもかまわない。また当該ゲーム装置1同士を遅延の少ない広域ネットワークシステムで接続して通信を行ってもかまわない。
図1において、ゲーム装置1は、ゲーム装置本体10にゲームカートリッジ(以下、単にカートリッジと記載する)4および無線通信ユニット3が装着されて構成される。カートリッジ4は、ゲームプログラム等の情報記憶媒体として用いられ、カートリッジ4をゲーム装置本体10の背面に装着することによって、カートリッジ4に含まれる半導体メモリ等(図2に示すROM41およびバックアップRAM42)とゲーム装置本体10とが電気的に接続される。ゲーム装置本体10の背面上部には、カートリッジ4を着脱自在に装着するためのカートリッジ挿入孔(図示せず)が形成され、この挿入口の底部付近にカートリッジ4と電気的に接続するためのコネクタ18(図示破線領域)が設けられる。無線通信ユニット3は他のゲーム装置との間で無線通信を行い、無線通信ユニット3をゲーム装置本体10の背面に装着することによって、受信した通信データがゲーム装置本体10に出力され、ゲーム装置本体10から出力される通信データを他のゲーム装置へ送信する。ゲーム装置本体10の背面下部には、無線通信ユニット3が有するコネクタ35と電気的に接続するためのコネクタ17(図示破線領域)が設けられる。
ゲーム装置本体10は、ハウジング23を含み、その一方主面(図示の表面)の中央領域に液晶表示器(LCD)21が形成されるとともに、LCD21を挟んだ外側の空き領域やハウジング23の側面にスピーカ20および操作スイッチ22a〜22gがそれぞれ設けられている。これらの操作スイッチ22a〜22gは、ゲーム装置1で処理されるゲームプログラムの内容によって、操作指示を与える内容が異なるが、典型的には、操作スイッチ(十字キー)22aが移動方向指示を与え、操作スイッチ22bおよび22cが「A」および「B」等の動作指示を与え、操作スイッチ22dおよび22eが「START」および「SELECT」等の動作指示を与え、操作スイッチ22fおよび22gが「L」および「R」等の動作指示を与える。
無線通信ユニット3は、その下部に設けられたコネクタ35と、その上部に設けられた1対のつまみ部36aおよび36bと、コネクタ35と同じ下部に設けられた1対の掛止部37aおよび37bとを有している。つまみ部36aおよび36bは、無線通信ユニット3の上部左右に突出しており、プレイヤが双方を外側から内側方向へそれぞれ引き寄せることによって、下部に突出している掛止部37aおよび37bがそれぞれ外側方向へ動く。そして、プレイヤがつまみ部36aおよび36bの操作を止めれば、つまみ部36aおよび36bが共に外側方向へ付勢されているため、掛止部37aおよび37bがそれぞれ内側方向へ動く。一方、ゲーム装置本体10には、掛止部37aおよび37bとそれぞれ嵌合する掛止孔(図示せず)が形成されている。プレイヤは、無線通信ユニット3のコネクタ35とゲーム装置本体10のコネクタ17とを接続すると同時に、掛止部37aおよび37bをそれぞれ上記掛止孔と嵌合することによって、無線通信ユニット3はゲーム装置本体10に装着される。また、無線通信ユニット3が他のゲーム装置と無線通信するためのアンテナは、ハウジング内部の基板上に形成されており、ハウジング外部には露出していない。本実施例における無線通信ユニット3は、無線LANの規格IEEE802.11に基づいて通信を行う。
図2は、ゲーム装置本体10、カートリッジ4、および無線通信ユニット3を有するゲーム装置1の機能ブロック図である。図2において、ゲーム装置本体10は、上述した構成部の他に、中央処理ユニット(CPUコア)11、ブートROM12、LCDコントローラ13、ワーキングRAM(WRAM)14、ビデオRAM(VRAM)15、周辺回路16、およびオーディオアンプ19を含んでいる。また、無線通信ユニット3は、上述した構成部の他に、ベースバンドIC31、電源回路32、TSF(Timing Synchronization Function:IEEE802.11のタイミング同期機能)レジスタ33、およびRF−IC(Radio Frequency−IC)34を含んでいる。また、カートリッジ4は、上述した構成部の他に、ROM41およびバックアップRAM42を含んでいる。
ROM41には、ゲーム装置1でプレイされるゲームの内容が記述されたゲームプログラムとその画像および音声データとが格納されている。CPUコア11は、ROM41に格納されたゲームプログラムに基づいて、ゲーム処理モードで動作する。CPUコア11は、所定のバスを介して各構成要素と接続されており、コネクタ17および18も接続されている。それらコネクタ17および18から入力したデータは、CPUコア11に出力される。また、CPUコア11で処理されたデータは、コネクタ17および18にも出力可能である。
CPUコア11は、ブートROM12に記憶されている立ち上げプログラムを処理するとともに、ROM41に格納されているゲームプログラムに基づいてゲーム処理モードで動作するものであって、カートリッジ4がゲーム装置本体10に装着されていると、コネクタ18を介してROM41にアクセスする。また、CPUコア11は、操作スイッチ22によって入力される操作信号と当該ゲームプログラムとに基づいてゲーム処理を実行し、処理途中のデータをWRAM14に記憶させるとともに、画像データをVRAM15に一時記憶させる。
WRAM14には、CPUコア11がゲーム処理モードで動作するとき、ゲームプログラム、処理データ、および他のゲーム装置と同期を取って無線通信するためのデータなどが格納されて、適時CPUコア11が行う処理に必要な記憶領域として用いられる。また、ゲーム装置1が他のゲーム装置と無線通信する場合、WRAM14に格納された各データが適時用いられ、CPUコア11の指示に基づいてコネクタ17を介して無線通信ユニット3へ出力される。また、他のゲーム装置から無線通信ユニット3を介して受け取った受信データは、CPUコア11で処理されてWRAM14に適時格納される。
オーディオアンプ19は、D/A変換回路および増幅回路を含み、CPUコア11のゲームプログラムの処理結果に基づく音声データを音声信号(アナログ信号)に変換し、かつ適宜増幅してスピーカ20から音声や効果音として出力させる。
CPUコア11は、WRAM14およびVRAM15の記憶領域を用いて画像処理を行う。CPUコア11は、これらを用いてLCD21に表示すべきゲーム画像データを生成し、VRAM15に格納する。LCDコントローラ13は、VRAM15に格納された画像データをLCD21に表示させるための表示制御を行い、LCD21に表示させる。VRAM15は、CPUコア11で処理された画像データが一時格納される。また、LCDコントローラ13は、その内部にV_COUNTレジスタ131を含んでいる。V_COUNTレジスタ131は、LCDコントローラ13がLCD21の走査ライン毎にVRAM15に格納された画像データを表示する表示ライン番号を指定するカウンタであり、所定のクロックタイミングでカウントが更新される。つまり、V_COUNTレジスタ131が示すカウント値(以下、V_COUNT値と記載する)は、LCD21の表示ライン番号を示しており、CPUコア11は、V_COUNTレジスタ131を読むことで表示ライン番号を取得できる。また、CPUコア11は、V_COUNTレジスタ131のカウント値を設定することで、LCDコントローラ13が走査する表示ライン番号を変更することもできる。
周辺回路16は、音声処理、DMA(ダイレクト・メモリ・アクセス)、タイマまたは入出力制御等の処理を行う。
一方、カートリッジ4のROM41には、ゲームプログラム、ゲームプログラムに利用される各種データ、および無線通信のためのデータなどが固定的に記憶される。バックアップRAM42には、ゲームプログラムの実行によって得られたゲームデータがコネクタ18を介して書き換え可能かつ不揮発的に記憶される。バックアップRAM42に記憶されるゲームデータとしては、例えば、ゲームを終了したときの経過を示すバックアップデータが含まれる。なお、バックアップRAM42は、フラッシュメモリ等で構成されることもある。
無線通信ユニット3のベースバンドIC31は、送出すべきデータをゲーム装置本体10からコネクタ17および35を介して受信して、そのデータをエンコードしてRF−IC34に送出する。RF−IC34は、ベースバンドIC31からのデータを変調してアンテナから電波で送信する。また、他のゲーム装置から送信された電波は、アンテナを介して受信してRF−IC34で復調される。そして、RF−IC34で復調された復調信号がベースバンドIC31に出力される。ベースバンドIC31は、復調信号をデコードしてデータを復調し、そのデータをコネクタ35および17を介してゲーム装置本体10に転送する。TSFレジスタ33は、複数のゲーム装置1間でデータを送受信するなど処理の同期を確立するためのカウンタであり、所定の動作クロックに基づいて動作する計時手段である。例えば、TSFレジスタ33は、無線LANの規格IEEE802.11などで用意されている無線通信に用いるタイミング同期機能が用いられる。本実施例では、CPUコア11がコネクタ17および35を介してTSFレジスタ33の値(以下、TSF値と記載する)を読み出すことによって、その瞬間のTSF値(単位はμs(マイクロ秒))を取得することができる。電源回路32は、無線通信ユニット3内の各構成要素への電源を供給する。なお、本実施例では、微弱電波を使った近距離無線によって無線通信が行われる。
次に、図3〜図5を参照して、本実施形態のデータマップのイメージやゲーム装置1で実行されるフローチャートを説明する前に、本発明の理解を容易にするためにゲームシステム全体の動作などを参照して、当該ゲームプログラムを実行するゲーム装置1によって提供される通信同期処理の概要について説明する。なお、図3は、複数のゲーム装置1間で送受信されるゲームデータを説明するための図である。図4は、V_COUNT値、LCD21の走査ライン、およびフレームの関係を示す説明図である。図5は、親機のゲーム装置1aおよび子機のゲーム装置1bが、互いに同期を確立する手順を説明するための図である。
図3は、3台のゲーム装置1が互いに無線通信することによってゲーム進行するゲームシステムの一例である。本実施例では、ゲームシステムに含まれるゲーム装置1のうち、1台のゲーム装置1が親機に設定され、他のゲーム装置1が子機に設定される。なお、親機および子機の決定は、最初に無線通信を行おうとしたゲーム装置1を親機に設定してもかまわないし、操作スイッチ22を操作など任意の方法で親機を設定してもかまわない。本実施例では、ゲームシステムに含まれるゲーム装置1は、親機および子機のいずれにも設定することができる。以下の説明においては、親機および子機を参照符号で区別する場合、親機をゲーム装置1a、子機をゲーム装置1bまたは1cとし、その構成要素も同様の参照符号「a」、「b」、または「c」を付与する。
図3では、後述する同期処理によって同期が確立された状態において、ゲーム装置1が、LCD21にゲーム画像を1画面表示する期間を1周期(1フレーム)として処理を繰り返し、ゲームが進行していく様子を説明する。この1フレームの間に、親機のゲーム装置1aが子機のゲーム装置1bおよび1cにそれぞれゲームデータを送信し(親ゲームデータ)、ゲーム装置1bおよび1cがそれぞれゲーム装置1aにゲームデータを返信する(子ゲームデータ)。これらのゲームデータを送受信することによって、ゲーム装置1a〜1cの処理が同期してゲームが進行する。ここで、ゲームデータは、ゲームの内容に応じてゲーム装置1毎のキーデータ(操作スイッチ22を操作したデータ)やゲームパラメータを含み、本実施例では後述する同期OKフラグが子ゲームデータにさらに付与されている。また、ゲームデータは、ゲームシステムで用いる無線通信で規定される送信フレームに基づいて送信されるが、ここでは詳細な説明を省略する。
図4において、上述した1フレームは、表示期間およびブランキング期間に分けられる。例えば、V_COUNTレジスタ131は、V_COUNT値が0から262までを1周期としてカウントし、このV_COUNT値が0から262までが1フレームに定義される。そして、図4に示すようにLCD21の表示画面の解像度が256dot×192dotであり、図示左右方向に並ぶ1dotを1走査ラインとする場合、V_COUNT値が0から191までが表示期間となる。そして、V_COUNT値が0から191までの表示期間は、LCD21の表示画面がLCDコントローラ13によって1走査ラインずつVRAM15の内容に応じて変更されていく。一方、V_COUNT値が192から262までがブランキング期間となる。このブランキング期間でVRAM15の内容を変更することで、LCD21に表示されるゲーム画像を乱すことなく表示するゲーム画像を変化させていく。本実施例では、1走査ラインの走査に要する時間をLt、1フレームの走査に要する時間をFtとしている。例えば、ゲーム装置1は、1秒間に60フレームを描画する。この場合、1フレームの走査に要する時間Ft≒16.67ms(ミリ秒)となり、1走査ラインの走査に要する時間Lt≒63.37μsとなる。
図5を参照して、親機のゲーム装置1aおよび子機のゲーム装置1b(以下、単に親機および子機とそれぞれ記載するときがある)が、互いに接続を確立した後に同期を確立する手順の概要について説明する。
親機と子機とが接続を確立した後、親機は、自機のV_TSF値を取得する。V_TSF値とは、自機のV_COUNTレジスタ131が示すV_COUNT値が0のときに自機のTSFレジスタ33が示すTSF値であり、親機のV_TSF値を親V_TSF値とし、子機のV_TSF値を子V_TSF値とする。これらの取得方法の詳細については、後述する。
次に、親機は、ビーコン(Beacon)を子機に送信する。このビーコンは、無線ネットワークにおける各ゲーム装置1のデータ送信のタイミングを同期させるために、親機が一定間隔(例えば、500ms間隔)で全ての子機にブロードバンド送信するパケットである。本実施例では、親機は、このパケットに取得した親V_TSF値と、ビーコン送信タイミングにおける当該親機のTSFレジスタ33の値である親TSF値を記述して、ビーコンを子機に送信する。
子機は、親機からビーコンを受信し、子機のTSF値(子TSF値)を当該ビーコンに記述された親TSF値に一致させる。そして、子機は、自機のずれ調節割り込みのタイミング(上記ブランキング期間に設定され、例えばV_COUNT値が212のタイミング)k1において、親機との同期を確認する。具体的には、子機がタイミングk1において自機の子V_TSF値を取得し、ビーコンに記述された親V_TSF値と子V_TSF値との差A1によって、親機との同期ずれを検出する。つまり、子機は、ビーコンに記述された親V_TSF値を用いて、親機のフレーム周期と自機のフレーム周期とのずれを検出する。
そして、子機は、親機との同期ずれの差A1を縮めるために、自機のフレーム周期を当該差A1以下の時間j1だけ長くする。具体的には、子機は、時間j1を走査ライン数(例えば、10以下の自然数)で設定する。そして、子機は、自機のV_COUNTレジスタ131が示すV_COUNT値を上記走査ライン数だけ減算することによって、自機のフレーム周期を長くする。ここで、子機が一度の調整でフレーム周期を長くする走査ライン数の最大値は、ハードウェアの構成に合わせて実現可能な数値に設定すればよい。例えば、図4で説明したフレーム構成の場合、V_COUNT値の減算をブランキング期間に行うためには、V_COUNT値を262から192に減算(つまり調整する走査ライン数が70)することが理論上可能となるが、本実施例では一度の調整でV_COUNT値を212から10以下の数を減算する。
次に、子機は、次のずれ調節割り込みのタイミング(次のV_COUNT値が212のタイミング)k2において、前回の調整で親機との同期が確立したか否かを確認する。そして、子機は、親機との同期ずれが残っている場合、さらに自機のフレーム周期を当該差A1以下の時間j2だけ長くする。具体的には、子機は、時間j2も走査ライン数(例えば、10以下の自然数)で設定する。そして、子機は、自機のV_COUNTレジスタ131が示すV_COUNT値を上記走査ライン数だけ減算することによって、自機のフレーム周期を長くする。このような調整を親機との同期ずれが0となるまで繰り返すことによって、子機と親機との同期が確立する。
一方、親機は、所定時間毎のタイミングh1において、自機のフレーム周期を時間iだけ長くする。具体的には、子機は、時間iを走査ライン数(例えば、1)で設定する。そして、親機は、自機のV_COUNTレジスタ131が示すV_COUNT値を上記走査ライン数だけ減算することによって、自機のフレーム周期を長くする。この親機のフレーム周期調整は、ゲームシステムを構成するゲーム装置1の間における動作クロックの個体差を吸収するためであり、親機が自機のフレーム周期を調整するタイミングh1とその調整ライン数iとは、想定される当該個体差に応じて設定される。これらの設定の詳細については、後述する。
その後、一定間隔で繰り返されるビーコンの送信タイミングが来ると、親機は、新たな親V_TSF値を取得する。そして、親機は、ビーコンパケットに新たな親V_TSF値と現在のTSF値(親TSF値)とを記述して、ビーコンを子機に送信する。
子機は、親機からビーコンを受信し、子機のTSF値(子TSF値)を当該ビーコンに記述された親TSF値に一致させる。そして、子機は、自機のずれ調節割り込みのタイミングにおいて親機との同期を確認し、上述と同様にして親機との同期を確立する。したがって、親機がタイミングh1においてフレーム周期を調整ライン数iだけ長く調整しているが、子機は、親機が調整したフレーム周期との同期を確立する。
例えば、子機の動作クロックの周波数が親機の動作クロックの周波数より若干高い(つまり、子機のフレーム周期が短い)と仮定する。この場合、子機は、上述したように自機のフレーム周期を長く調整することによって容易に親機との同期を確立することができる。一方、親機の動作クロックの周波数が子機の動作クロックの周波数より若干高い(つまり、親機のフレーム周期が短い)と仮定する。この場合、親機のフレーム周期の調整が行われなければ、子機は、自機のフレーム周期を短く調整することによって親機との同期を確立しなければならず、調整時のフレームにおいて自機の処理時間が確保できないことが生じる。ここで、親機がフレーム周期を調整するタイミングh1および調整ライン数iは、上記個体差の想定される最大値に応じて設定されている。つまり、上記個体差を想定しても親機のフレーム周期が子機に対して先行しないようにタイミングh1および調整ライン数iを設定することによって、子機は、上述したように自機のフレーム周期を長く調整することによって容易に親機との同期を確立することができる。つまり、親機および子機におけるフレーム周期の調整は、必ず自機のフレーム周期を長く調整して互いの同期を確立しているため、当該調整時のフレームにおいても自機の処理時間を確保することが可能となる。
このように、ゲームシステムに含まれる複数のゲーム装置は、子機がタイミングk1およびk2において、時間j1およびj2だけそれぞれフレーム周期を長くすることによって親機との同期処理を行う。また、親機がタイミングh1において、時間iだけフレーム周期を長くすることによって、子機のフレーム周期よりも遅くなる傾向を作為的に作り出し、子機がタイミングk3において時間j3だけ自機のフレーム周期を長く調整するような処理をする。したがって、各ゲーム装置の個体差を想定しながら処理周期の最低期間を確保しつつ、安定的に同期調整を行うことができる。
図6は、上記同期確立のためにWRAM14に記憶されるデータのイメージを示す図である。なお、図6では、親機のゲーム装置1aをWRAM14aとし、子機のゲーム装置1bをWRAM14bとして区別している。
図6において、親機のWRAM14aには、親V_TSF値141、同期OKフラグ142、V_COUNT値143、および親TSF値144が記憶される。親V_TSF値141は、親機のCPUコア11aが必要に応じて自機のV_COUNT値が0のときのTSF値を演算することによって取得され、WRAM14aに記憶される。同期OKフラグ142は、子機からゲームデータに付与されて送信され、親機が接続確立した子機に応じてそれぞれWRAM14aに記憶される。V_COUNT値143は、自機のV_COUNTレジスタ131aがカウントしている数値をCPUコア11aが読み出し、当該読み出しに応じて更新してWRAM14aに記憶される。親TSF値144は、TSFレジスタ33aがカウントしている数値をCPUコア11aが読み出し、当該読み出しに応じて更新してWRAM14aに記憶される。
子機のWRAM14bには、親V_TSF値145、親V_TSF_old値146、子V_TSF値147、調整ライン数148、調整ライン残り数149、同期OKフラグ150、V_COUNT値151、および子TSF値152が記憶される。親V_TSF値145は、一定間隔で親機からビーコンに付与されて送信され、WRAM14bに記憶される。そして、親V_TSF値145は、所定の更新条件に基づいて、親V_TSF_old値146としてWRAM14bに記憶される。子V_TSF値147は、子機のCPUコア11bが必要に応じて自機のV_COUNT値が0のときのTSF値を演算することによって取得され、WRAM14bに記憶される。調整ライン数148および調整ライン残り数149は、子機がずれ調節割り込みタイミングにおいて演算される。同期OKフラグ150は、親V_TSF値145と子V_TSF値147との差が所定範囲内となった場合に「1」が代入され、所定範囲外の場合に「0」が代入される。V_COUNT値151は、自機のV_COUNTレジスタ131bがカウントしている数値をCPUコア11bが読み出し、当該読み出しに応じて更新してWRAM14bに記憶される。子TSF値152は、TSFレジスタ33bがカウントしている数値をCPUコア11bが読み出し、当該読み出しに応じて更新してWRAM14bに記憶される。
次に、図7を参照して、ゲームデータ送受信処理について説明する。なお、図7は、ゲームデータ送受信処理を行う親機および子機の動作を示すフローチャートである。なお、ゲームデータ送受信処理は、1フレームを1周期としており、当該1フレームの間に親機が子機にゲームデータを送信し、子機が親機にゲームデータを返信する処理である(図3参照)。
図7において、親機は、自機のV_COUNT値が所定値に到達するのを待つ(ステップS11)。ステップS11では、V_COUNTが所定値になったときに発生するように設定されたハードウェア割り込みが発生したかどうかを判断する。あるいは、CPUコア11aが自機のV_COUNTレジスタ131aがカウントしているV_COUNT値を読み出し、当該V_COUNT値と所定値(例えば、10)とを比較することによって判断してもよい。そして、CPUコア11aは、V_COUNT値が所定値に到達したとき、ゲームデータを子機にそれぞれ送信する(ステップS12)。
一方、子機は、親機から送信されるゲームデータの受信を待っている(ステップS21)。そして、子機は、親機からゲームデータを受信した場合、自機のWRAM14bに記憶されている同期OKフラグ150を付与して、ゲームデータを親機に送信する(ステップS22)。このステップS21およびS22の処理は、子機が送受信処理を終了するまで繰り返される(ステップS23)。
親機は、子機から上記ステップS22で送信されたゲームデータを受信し(ステップS13)、受信したゲームデータに付与された同期OKフラグが「1」であるか否かを判断する(ステップS14)。そして、親機は、同期OKフラグが「1」である場合、その同期OKフラグを送信した子機とのマルチプレイゲームが可能と判断して、当該子機とマルチプレイゲーム開始可能状態に設定し(ステップS15)、処理を次のステップS16に進める。親機は、マルチプレイゲーム開始可能状態に設定されると、同期OKフラグ「1」を送信した子機とのマルチプレイゲームを開始する。一方、親機は、同期OKフラグが「0」である場合、その同期OKフラグを送信した子機とのマルチプレイゲームが不可能と判断して、そのまま処理を次のステップS16に進める。これらステップS11〜S15の処理は、親機が送受信処理を終了するまで繰り返される(ステップS16)。
次に、図8〜図10を参照して、親機および子機が互いに同期を確立する処理について説明する。なお、図8は、親機のゲーム装置1aが行う同期処理を示すフローチャートである。図9は、子機のゲーム装置1bが行う同期処理を示すフローチャートである。図10は、図8のステップS38で処理される親V_TSF値取得処理および図9のステップS60で処理される子V_TSF値取得処理を示すサブルーチンである。
まず、図8を参照して、親機が子機と互いに同期を確立する処理について説明する。図8において、親機は、子機との間の無線通信における接続処理を行って接続を確立し(ステップS31)、自機の定周期タイマのカウントTをスタートさせる(ステップS32)。そして、親機のCPUコア11aは、V_Blank割り込みのタイミングか否かを判断する(ステップS33)。V_Blank割り込みとは、上記表示期間からブランキング期間に移行したときに1フレームに1回のみ発生するV_COUNTの割り込みである。例えば、図4で示した一例では、V_COUNT値が192のとき、CPUコア11aがV_Blank割り込みのタイミングであると判断する。そして、親機のCPUコア11aは、V_Blank割り込みのタイミングである場合、定周期タイマのカウントTが予め設定された所定時間より長いか否かを判断する(ステップS34)。以下、ステップS34の判断で用いられる所定時間の設定方法について説明する。
ここで、ゲームシステムに接続されるゲーム装置1の動作クロックに想定されている個体差(例えば、設計値の公差)の最大幅を考える。この動作クロックの個体差の最大幅がw ppm(parts per million)とする。これは、あるゲーム装置1の100万回動作に対して、他のゲーム装置1が100万回+w回動作する個体差を示している。そして、双方の動作クロックの個体差がw ppmとなる2つのゲーム装置1における処理タイミングが、1走査ラインずれるフレーム数nを、
n=(1000000/w)*{1/(Cmax+1)}
で計算する。ここで、Cmaxは、V_COUNTレジスタ131がカウントするV_COUNT値の最大値(図4の例では262)である。上記ステップS34の判断で用いられる所定時間は、このフレーム数nや当該フレーム数nに相当する時間が設定される。例えば、上記個体差が±30ppm(最大幅w=60)およびCmax=262とすると、フレーム数n≒63となる。このように上記ステップS34の判断で用いられる所定時間は、ゲーム装置1に想定されている動作クロックの個体差およびV_COUNT値の最大値を用いて、予め設定される。
図8に戻り、親機のCPUコア11aは、定周期タイマのカウントTが上記所定時間より長い場合、V_COUNT値から1減算してV_COUNT値を更新する(ステップS35)。このステップS35における更新が、図5のタイミングh1におけるフレーム周期を時間iだけ長くする処理に相当する。つまり、親機は、ステップS35を上記所定時間毎に繰り返すことによって、自機のフレーム周期を1走査ライン分長く調整している。このように、ブランキング期間中にV_COUNT値を調整し、かつ、調整後のV_COUNT値をブランキング期間内のV_COUNT値に更新することによって、親機はLCD21aに表示されるゲーム画像を乱すことなくフレーム周期を調整することができる。そして、親機のCPUコア11aは、自機の定周期タイマのカウントTを初期化してカウントをスタートさせ(ステップS36)、処理を次のステップS37に進める。また、親機のCPUコア11aは、V_Blank割り込みのタイミングでない、あるいは定周期タイマのカウントTが上記所定時間以下の場合、そのまま処理を次のステップS37に進める。
ステップS37において、親機のCPUコア11aは、子機へビーコンを送信するタイミングか否かを判断する。次に、親機のCPUコア11aは、ビーコン送信タイミングである場合、親V_TSF値を取得する(ステップS38)。そして、親機のCPUコア11aは、自機のTSF値(親TSF値)およびステップS38で取得した親V_TSF値をビーコンにのせて子機に送信し(ステップS39)、上記ステップS33に戻って処理を繰り返す。一方、親機のCPUコア11aは、ビーコン送信タイミングでない場合、そのまま上記ステップS33に戻って処理を繰り返す。以下、図10を参照して、親V_TSF値取得処理の詳細な処理について説明する。なお、親機が自機のV_TSF値を取得する処理を親V_TSF値取得処理、子機が自機のV_TSF値を取得する処理を子V_TSF値取得処理として区別している。しかしながら、それぞれV_TSF値を取得する処理は同じであるため、以下の説明では親機および子機の区別なく総称して説明を行う。
図10において、CPUコア11は、自機のTSFレジスタ33がカウントしているTSF値を読み出し、WRAM14に記憶させる(ステップS81)。次に、CPUコア11は、自機のV_COUNTレジスタ131がカウントしているV_COUNT値を読み出し、WRAM14に記憶させる(ステップS82)。そして、CPUコア11は、ステップS81で取得したTSF値およびステップS82で取得したV_COUNT値を用いて、自機のV_TSF値を以下の数式で算出する(ステップS83)。
V_TSF=TSF+(Cmax−V_COUNT+1)*Lt
ここで、Cmaxは、V_COUNTレジスタ131がカウントするV_COUNT値の最大値(図4の例では262)である。Ltは、1走査ラインの走査に要する時間である。この数式によって、自機のV_COUNTレジスタ131が次にV_COUNT値を0とするときに自機のTSFレジスタ33が示すTSF値を、自機のV_TSF値として算出することができる。
次に、図9を参照して、子機が親機と互いに同期を確立する処理について説明する。図9において、子機は、親機との間の無線通信における接続処理を行って接続を確立し(ステップS51)、自機の同期OKフラグを「0」に設定する(ステップS52)。そして、子機のCPUコア11bは、ずれ調節割り込みのタイミングか否かを判断する(ステップS53)。ずれ調節割り込みとは、上記ブランキング期間中に親機との同期を取るために1フレームに1回のみ発生するV_COUNTの割り込みである。例えば、図4で示した一例では、V_COUNT値が212のとき、CPUコア11bがすれ調節割り込みのタイミングであると判断する。なお、後述するV_COUNT値が調整されると、同じフレーム内でV_COUNT値が212を少なくとも2回発生するが、子機のCPUコア11bは、2回目以降をずれ調節割り込みのタイミングでないと判断する。
子機のCPUコア11bは、ずれ調節割り込みのタイミングでない場合、親機からのビーコンを受信したか否かを判断する(ステップS54)。次に、子機のCPUコア11bは、ビーコンを受信した場合、当該ビーコンのパケットに記述されている親V_TSF値をWRAM14bの親V_TSF値145として格納する(ステップS55)。そして、子機のCPUコア11bは、上記ビーコンのパケットに記述されている親TSF値に自機のTSF値(子TSF値)を合わせて(ステップS56)、上記ステップS53に戻って処理を繰り返す。一方、子機のCPUコア11bは、ビーコンを受信していない場合、そのまま上記ステップS53に戻って処理を繰り返す。
上記ステップS53においてずれ調節割り込みのタイミングであると判断された場合、子機のCPUコア11bは、WRAM14bに格納されている親V_TSF値145と親V_TSF_old値146とが等しいか否かを判断する(ステップS57)。後述により明らかとなるが、親機からビーコンを受信してWRAM14bに格納されている親V_TSF値145が更新された場合、親V_TSF値145と親V_TSF_old値146とが異なる値(つまりステップS57でNo)となる。
親V_TSF値145と親V_TSF_old値146とが異なる値の場合、子機のCPUコア11bは、調整ライン残り数Bを0に設定し(ステップS58)、WRAM14bに格納されている親V_TSF_old値146を親V_TSF値145に更新して(ステップS59)、子V_TSF値を取得する(ステップS60)。この子V_TSF値取得処理の詳細な処理については、図10で示すサブルーチンと同様であるため、詳細な説明を省略する。
次に、子機のCPUコア11bは、WRAM14bに格納されている親V_TSF値とステップS60で取得した子V_TSF値とを比較し、親V_TSF値が子V_TSF値以上か否かを判断する(ステップS61)。そして、親V_TSF値が子V_TSF値未満である場合、CPUコア11bは、当該親V_TSF値に1フレームの走査に要する時間Ftを加算して、新たな親V_TSF値に更新する(ステップS62)。このステップS62は、更新された親V_TSF値が子V_TSF値以上となるまで繰り返される。一方、CPUコア11bは、親V_TSF値が子V_TSF値以上である場合、親V_TSF値から子V_TSF値を減算した差Aを演算する(ステップS63)。このステップS61〜S63における差Aの演算が、図5のタイミングk1における差A1を演算する処理に相当し、この処理は親機において親V−TSF値を取得した処理周期と、子機においてずれ調節を行う処理周期がFtの整数倍程度ずれる事が想定されるため、その対処としての処理である。そして、CPUコア11bは、調整ライン数Lを演算する(ステップS64)。CPUコア11bは、調整ライン数LをL=A/Ltで演算し、WRAM14bに格納する。ここで、Ltは、1走査ラインの走査に要する時間である。なお、調整ライン数Lが整数でない場合、小数点以下を切り捨てる。このステップS64によって、子機と親機との同期ずれを1走査ラインの走査時間に換算したライン数Lが導かれる。
次に、CPUコア11bは、WRAM14bに格納されている調整ライン数Lが10より大きいか否かを判断する(ステップS65)。そして、CPUコア11bは、L≦10の場合、同期OKフラグを「1」に設定し(ステップS66)、処理を次のステップS69に進める。つまり、調整ライン数が10以下の場合、子機は、後述するV_COUNT値の調整によって親機との同期が確立するものと判断する。一方、CPUコア11bは、L>10の場合、同期OKフラグを「0」に設定する(ステップS67)。そして、CPUコア11bは、調整ライン数Lから10減算した値を調整ライン残り数Bに設定し、調整ライン数Lを10に設定してそれぞれWRAM14bに格納し(ステップS68)、処理を次のステップS69に進める。
ステップS69において、子機のCPUコア11bは、自機のV_COUNT値から調整ライン数Lを減算してV_COUNT値を更新し、上記ステップS53に戻って処理を継続する。このステップS69における更新が、図5のタイミングk1、k2、およびk3におけるフレーム周期を時間j1、j2、およびj3だけそれぞれ長くする処理に相当する。
一方、上記ステップS57において親V_TSF値145と親V_TSF_old値146とが等しい値の場合、子機のCPUコア11bは、現在設定されている調整ライン残り数Bが0か否かを判断する(ステップS70)。そして、CPUコア11bは、調整ライン残り数Bが0でない場合、調整ライン数Lを調整ライン残り数Bとし、調整ライン残り数B=0としてWRAM14bに格納し(ステップS71)、処理を上記ステップS65に進める。一方、CPUコア11bは、調整ライン残り数Bが0である場合、処理を上記ステップS54に進める。
ここで、ステップS65〜S71の一連の処理は、子機が一度の調整でフレーム周期を長くする走査ライン数の最大値を10に設定している例である。つまり、子機が走査ライン数の最大値10を限度にフレーム周期を調整し、その残りを調整ライン残り数Bとして次のフレームでフレーム周期を調整している。この最大値は、ハードウェアの構成に合わせて実現可能な数値に設定すればよい。例えば、図4で説明したフレーム構成の場合、V_COUNT値の調整をブランキング期間に行うためには、V_COUNT値を262から192に調整(最大値70)することが理論上可能となる。このように、ブランキング期間でV_COUNT値を調整し、かつ、調整後のV_COUNT値をブランキング期間内のV_COUNT値に更新することによって、子機はLCD21aに表示されるゲーム画像を乱すことなくフレーム周期を調整することができる。
このように、本発明の一実施形態に係るゲームシステムによれば、子機に設定されたゲーム装置は、自機のフレーム周期を長くすることによって同期処理を行うため、各フレーム周期において一定の処理時間を確保しつつ親機との処理の同期を確立することができる。また、親機のゲーム装置は、そのフレーム周期が子機のフレーム周期よりも遅くなる傾向を作為的に作り出し、子機が自機のフレーム周期を長く調整するような処理をすることによって、各ゲーム装置の個体差を想定しながら処理周期の最低期間を確保しつつ、安定的に同期調整を行うことができる。また、各ゲーム装置の同期調整では、ゲーム画像の表示更新に用いられるカウンタ機能を使用するため、効率的に同期を行うことができる。また同期を行うことで、データの送受信タイミングが予想可能になることで、通信を行わないゲームにおけるゲーム処理と同じような処理タイミングでゲーム処理を行うことが可能になりゲーム制作の効率アップにつなげることができる。さらに、各ゲーム装置の同期調整は、ブランキング期間に行われ、かつ、調整後のカウント値をブランキング期間内のカウント値に更新するため、ゲーム装置の画面表示を乱すことなく各ゲーム装置間で処理の同期を確保することができる。
なお、本実施例のゲームシステムでは、複数のゲーム装置1間でデータを送受信するなど処理の同期を確立するための計時手段として、無線LANの規格IEEE802.11などで用意されている無線通信に用いるタイミング同期機能(TSF)を用いたが、他の計時手段を用いてもかまわない。例えば、衛星から送信される時刻情報を各ゲーム装置で受信して、各ゲーム装置の計時手段を同期させるようにしてもよい。またネットワークタイムプロトコル(NTP)を用いて各ゲーム装置の計時手段の同期を行っても良い。ゲーム装置1間で無線通信あるいは有線通信を行う規格に応じて他の計時手段を用いても、同様に本発明を適用することができる。
本発明にかかるゲームシステム、ゲーム装置、およびゲームプログラムは、複数のゲーム装置が互いに処理の同期を確立して通信を行って各周期における処理時間を確保しながらゲーム進行することができ、複数のゲーム装置が互いに無線通信あるいは有線通信しながら処理するマルチプレイゲーム等に適用できる。
本発明の一実施形態に係るゲームシステムに含まれるゲーム装置1の外観図 図1のゲーム装置1の機能ブロック図 複数のゲーム装置1間で送受信されるゲームデータを説明するための図 V_COUNT値、LCD21の走査ライン、およびフレームの関係を示す説明図 親機のゲーム装置1aおよび子機のゲーム装置1bが、互いに同期を確立する手順を説明するための図 図2のWRAM14に記憶されるデータのイメージを示す図 ゲームデータ送受信処理を行う親機および子機のゲーム装置1の動作を示すフローチャート 親機のゲーム装置1aが行う同期処理を示すフローチャート 子機のゲーム装置1bが行う同期処理を示すフローチャート 図8のステップS38で処理される親V_TSF値取得処理および図9のステップS60で処理される子V_TSF値取得処理を示すサブルーチン
符号の説明
1…ゲーム装置
10…ゲーム装置本体
11…CPUコア
12…ブートROM
13…LCDコントローラ
131…V_COUNTレジスタ
14…WRAM
15…VRAM
16…周辺回路
17、18、35…コネクタ
19…オーディオアンプ
20…スピーカ
21…LCD
22…操作スイッチ
23…ハウジング
3…無線通信ユニット
31…ベースバンドIC
32…電源回路
33…TSFレジスタ
34…RF−IC
36…つまみ部
37…掛止部
4…カートリッジ
41…ROM
42…バックアップRAM

Claims (16)

  1. 所定長さの処理周期毎にゲーム処理を行う第1ゲーム装置および第2ゲーム装置を含み、当該第1ゲーム装置と当該第2ゲーム装置とが互いに通信してマルチプレイゲームを行うゲームシステムであって、
    前記第1ゲーム装置は、
    自機の前記処理周期に基づいて、当該処理周期内の所定基準時に対する第1タイミングを示す第1タイミング情報を取得する第1タイミング情報取得手段と、
    前記第1タイミング情報を前記第2ゲーム装置に送信する第1タイミング情報送信制御手段とを備え、
    前記第2ゲーム装置は、
    前記第1ゲーム装置から前記第1タイミング情報を受信する第1タイミング情報受信制御手段と、
    自機の前記処理周期に基づいて、当該処理周期内の前記所定基準時に対する第2タイミングを示す第2タイミング情報を取得する第2タイミング情報取得手段と、
    前記第2タイミング情報と前記第1タイミング情報受信制御手段が受信した第1タイミング情報に基づいて、自機の前記所定基準時と前記第1ゲーム装置の前記所定基準時との差を検出する検出手段と、
    前記検出手段が差を検出したとき、または、前記検出手段が検出した差が所定値以上のとき、自機の前記処理周期を一時的に長くする第1周期変更手段とを備えることを特徴とする、ゲームシステム。
  2. 前記検出手段は、前記第1タイミングを示す時刻が前記第2タイミングを示す時刻より早いとき、当該第2タイミングの時刻より遅くなるまで当該第1タイミングの時刻に前記処理周期の所定長さを加算し、当該加算後の第1タイミングの時刻と第2タイミングの時刻との差を前記所定基準時の差として検出することを特徴とする、請求項1に記載のゲーム装置。
  3. 前記第1ゲーム装置および前記第2ゲーム装置は、それぞれ
    カウント値を自動的に更新し、所定範囲で巡回するカウンタと、
    前記カウンタのカウント値の一巡を前記処理周期の1周期としてゲーム処理するゲーム処理手段とを、さらに備え、
    前記第1周期変更手段は、前記カウンタのカウント値を減少させることによって、前記処理周期を長くすることを特徴とする、請求項1に記載のゲームシステム。
  4. 前記第1ゲーム装置および前記第2ゲーム装置は、それぞれ前記カウンタのカウント値に応じて表示位置を指定し、当該表示位置に対する画面表示を更新する表示制御手段を、さらに備え、
    前記処理周期は、前記カウンタのカウント値に応じて、前記画面表示が更新される表示期間と前記画面表示が更新されないブランキング期間とに分割されており、
    前記第1周期変更手段は、前記カウンタがブランキング期間中を示すカウント値を示しているときに当該カウント値を減少させることを特徴とする、請求項3に記載のゲーム装置。
  5. 前記第1周期変更手段は、前記減少させた後のカウント値も前記ブランキング期間中を示すカウント値になるように、前記カウンタのカウント値を減少させることを特徴とする、請求項4に記載のゲームシステム。
  6. 前記第1タイミング情報取得手段は、所定の時間間隔で前記第1タイミング情報を取得し、
    前記第1タイミング情報送信制御手段は、前記第1タイミング情報の取得に応じて当該第1タイミング情報を前記第2ゲーム装置に送信し、
    前記第2タイミング情報取得手段は、前記第1タイミング情報の受信に応じて前記第2タイミング情報を取得し、
    前記検出手段は、前記第2タイミング情報の取得に応じて、前記第2タイミング情報と前記第1タイミング情報に基づいて、自機の前記所定基準時と前記第1ゲーム装置の前記所定基準時との差を検出することを特徴とする、請求項1に記載のゲームシステム。
  7. 前記第1ゲーム装置および前記第2ゲーム装置は、それぞれ
    計時して計時値を生成する計時手段と、
    他のゲーム装置との間で前記計時値を同期させる計時同期手段とを、さらに備えており、
    前記第1タイミング情報取得手段は、前記第1タイミングにおける自機の前記計時手段の計時値を前記第1タイミング情報として取得し、
    前記第2タイミング情報取得手段は、前記第2タイミングにおける自機の前記計時手段の計時値を前記第2タイミング情報として取得することを特徴とする、請求項1に記載のゲームシステム。
  8. 前記第1ゲーム装置は、所定タイミングで自機の前記処理周期を一時的に長くする第2周期変更手段を、さらに備えることを特徴とする、請求項1に記載のゲームシステム。
  9. 前記第2周期変更手段が自機の処理周期を一時的に長くする前記所定タイミングは、前記第1ゲーム装置および前記第2ゲーム装置に想定されている処理周期の個体差に基づいて設定されることを特徴とする、請求項8に記載のゲームシステム。
  10. 前記第1タイミング情報送信制御手段は、前記第1タイミング情報をブロードキャスト送信することを特徴とする、請求項1に記載のゲームシステム。
  11. 前記第2ゲーム装置は、前記検出手段が検出した差が所定値未満のとき、前記第1ゲーム装置との同期を確立したことを示す同期確立情報を前記第1ゲーム装置に送信する同期確立情報送信制御手段を、さらに備え、
    前記第1ゲーム装置は、
    前記第2ゲーム装置から送信された前記同期確立情報を受信する同期確立情報受信制御手段と、
    前記同期確立情報受信制御手段の前記同期確立情報の受信に応答して、前記第2ゲーム装置とのマルチプレイゲーム処理を開始するゲーム処理開始手段とを、さらに備えることを特徴とする、請求項1に記載のゲームシステム
  12. 所定長さの処理周期毎にゲーム処理を行う他のゲーム装置と互いに通信してマルチプレイゲームを行い、当該処理周期毎にゲーム処理を行うゲーム装置であって、
    他のゲーム装置の処理周期に基づいて、当該処理周期内の所定基準時に対する第1タイミングを示す第1タイミング情報が他のゲーム装置から送信され、
    他のゲーム装置から前記第1タイミング情報を受信する第1タイミング情報受信制御手段と、
    自機の前記処理周期に基づいて、当該処理周期内の前記所定基準時に対する第2タイミングを示す第2タイミング情報を取得する第2タイミング情報取得手段と、
    前記第2タイミング情報と前記第1タイミング情報受信制御手段が受信した第1タイミング情報に基づいて、自機の前記所定基準時と他のゲーム装置の前記所定基準時との差を検出する検出手段と、
    前記検出手段が差を検出したとき、または、前記検出手段が検出した差が所定値以上のとき、自機の前記処理周期を一時的に長くする周期変更手段とを備えることを特徴とする、ゲーム装置。
  13. 所定長さの処理周期毎にゲーム処理を行う他のゲーム装置と互いに通信してマルチプレイゲームを行い、当該処理周期毎にゲーム処理を行うゲーム装置であって、
    自機の前記処理周期に基づいて、当該処理周期内の所定基準時に対するタイミングを示すタイミング情報を取得するタイミング情報取得手段と、
    前記タイミング情報を定期的に他のゲーム装置に送信するタイミング情報送信制御手段と、
    所定タイミングで自機の前記処理周期を一時的に長くする周期変更手段とを備えることを特徴とする、ゲーム装置。
  14. 所定長さの処理周期毎にゲーム処理を行う他のゲーム装置と互いに通信してマルチプレイゲームを行い、当該処理周期毎にゲーム処理を行うゲーム装置のコンピュータに実行させるゲームプログラムであって、
    他のゲーム装置の処理周期に基づいて、当該処理周期内の所定基準時に対する第1タイミングを示す第1タイミング情報が他のゲーム装置から送信され、
    前記コンピュータを、
    他のゲーム装置から前記第1タイミング情報を受信する第1タイミング情報受信制御手段、
    自機の前記処理周期に基づいて、当該処理周期内の前記所定基準時に対する第2タイミングを示す第2タイミング情報を取得する第2タイミング情報取得手段、
    前記第2タイミング情報と前記第1タイミング情報受信制御手段が受信した第1タイミング情報に基づいて、自機の前記所定基準時と他のゲーム装置の前記所定基準時との差を検出する検出手段、および
    前記検出手段が差を検出したとき、または、前記検出手段が検出した差が所定値以上のとき、自機の前記処理周期を一時的に長くする周期変更手段、として機能させることを特徴とする、ゲームプログラム。
  15. 所定長さの処理周期毎にゲーム処理を行う他のゲーム装置と互いに通信してマルチプレイゲームを行い、当該処理周期毎にゲーム処理を行うゲーム装置のコンピュータに実行させるゲームプログラムであって、
    前記コンピュータを、
    自機の前記処理周期に基づいて、当該処理周期内の所定基準時に対するタイミングを示すタイミング情報を取得するタイミング情報取得手段、
    前記タイミング情報を定期的に他のゲーム装置に送信するタイミング情報送信制御手段、および
    所定タイミングで自機の前記処理周期を一時的に長くする周期変更手段、として機能させることを特徴とする、ゲームプログラム。
  16. 親機および子機のいずれかに設定された複数のゲーム装置が互いに通信してマルチプレイゲームを行い、所定長さの処理周期毎にゲーム処理を行う複数のゲーム装置のコンピュータに実行させるゲームプログラムであって、
    前記コンピュータを、所定の条件に基づいて親機および子機のいずれか一方に自機を設定する親子設定手段として機能させ、
    前記親子設定手段が自機を親機に設定したとき、前記コンピュータを、
    自機の前記処理周期に基づいて、当該処理周期内の所定基準時に対する第1タイミングを示す第1タイミング情報を取得する第1タイミング情報取得手段、
    前記第1タイミング情報を前記子機に設定されたゲーム装置に定期的に送信する第1タイミング情報送信制御手段、および
    所定タイミングで自機の前記処理周期を一時的に長くする第1周期変更手段として機能させ、
    前記親子設定手段が自機を子機に設定したとき、前記コンピュータを、
    前記親機に設定されたゲーム装置から前記第1タイミング情報を受信する第1タイミング情報受信制御手段、
    自機の前記処理周期に基づいて、当該処理周期内の前記所定基準時に対する第2タイミングを示す第2タイミング情報を取得する第2タイミング情報取得手段、
    前記第2タイミング情報と前記第1タイミング情報受信制御手段が受信した第1タイミング情報に基づいて、自機の前記所定基準時と前記親機に設定されたゲーム装置の前記所定基準時との差を検出する検出手段、および
    前記検出手段が差を検出したとき、または、前記検出手段が検出した差が所定値以上のとき、自機の前記処理周期を一時的に長くする第2周期変更手段として機能させることを特徴とする、ゲームプログラム。

JP2004083026A 2004-03-22 2004-03-22 ゲームシステム、ゲーム装置、およびゲームプログラム Expired - Lifetime JP4342356B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004083026A JP4342356B2 (ja) 2004-03-22 2004-03-22 ゲームシステム、ゲーム装置、およびゲームプログラム
US10/942,978 US7901293B2 (en) 2004-03-22 2004-09-17 Game system, game apparatus, and storage medium having game program stored therein

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004083026A JP4342356B2 (ja) 2004-03-22 2004-03-22 ゲームシステム、ゲーム装置、およびゲームプログラム

Publications (2)

Publication Number Publication Date
JP2005261856A true JP2005261856A (ja) 2005-09-29
JP4342356B2 JP4342356B2 (ja) 2009-10-14

Family

ID=35055075

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004083026A Expired - Lifetime JP4342356B2 (ja) 2004-03-22 2004-03-22 ゲームシステム、ゲーム装置、およびゲームプログラム

Country Status (2)

Country Link
US (1) US7901293B2 (ja)
JP (1) JP4342356B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006254945A (ja) * 2005-03-15 2006-09-28 Namco Bandai Games Inc プログラム、情報記憶媒体及びゲーム装置
JP2008099906A (ja) * 2006-10-19 2008-05-01 Nintendo Co Ltd ゲーム機、無線モジュールおよびゲームシステム
JP2010520772A (ja) * 2007-02-23 2010-06-17 クゥアルコム・インコーポレイテッド 近さに基づいて、ゲームセッションを作成し、または、ゲームセッションに参加するための方法と装置
WO2010110251A1 (ja) * 2009-03-26 2010-09-30 株式会社コナミデジタルエンタテインメント 端末装置、端末装置の制御方法、情報記憶媒体、ならびに、プログラム
JP2011500273A (ja) * 2007-10-22 2011-01-06 マイクロソフト コーポレーション エンターテインメントコンソールの時間ベースのアクセス制御
JP2023540396A (ja) * 2020-09-14 2023-09-22 アップル インコーポレイテッド フォロワモードのビデオ動作

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4324487B2 (ja) * 2004-01-20 2009-09-02 任天堂株式会社 無線通信ゲームシステムおよび無線通信ゲームプログラム
US8619623B2 (en) 2006-08-08 2013-12-31 Marvell World Trade Ltd. Ad-hoc simple configuration
US8233456B1 (en) 2006-10-16 2012-07-31 Marvell International Ltd. Power save mechanisms for dynamic ad-hoc networks
US8732315B2 (en) * 2006-10-16 2014-05-20 Marvell International Ltd. Automatic ad-hoc network creation and coalescing using WiFi protected setup
US9308455B1 (en) * 2006-10-25 2016-04-12 Marvell International Ltd. System and method for gaming in an ad-hoc network
JP4137157B2 (ja) * 2006-12-07 2008-08-20 株式会社スクウェア・エニックス ビデオゲーム処理装置、ビデオゲーム処理方法、およびビデオゲーム処理プログラム
US8401001B2 (en) 2007-03-28 2013-03-19 Intel Corporation Method and apparatus of connectivity recovery in wireless network
US20080254889A1 (en) * 2007-04-12 2008-10-16 Peter Sispoidis Method for correcting impression flow
US8054382B2 (en) * 2007-05-21 2011-11-08 International Business Machines Corporation Apparatus, method and system for synchronizing a common broadcast signal among multiple television units
US8628420B2 (en) 2007-07-03 2014-01-14 Marvell World Trade Ltd. Location aware ad-hoc gaming
JP4871373B2 (ja) 2009-06-19 2012-02-08 任天堂株式会社 情報処理システムおよび情報処理装置
JP5674296B2 (ja) 2009-09-09 2015-02-25 任天堂株式会社 情報処理システムおよび情報処理装置
KR20110053110A (ko) * 2009-11-13 2011-05-19 삼성전자주식회사 디스플레이장치, 클라이언트, 이를 포함하는 영상표시시스템 및 영상표시방법
JP2011250874A (ja) 2010-05-31 2011-12-15 Nintendo Co Ltd 情報処理プログラム、情報処理装置、情報処理システム及び情報処理方法
JP5593566B2 (ja) 2010-06-10 2014-09-24 任天堂株式会社 情報処理システム、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム
JP5677811B2 (ja) 2010-06-11 2015-02-25 任天堂株式会社 携帯型情報端末、携帯情報システム、携帯型情報端末制御プログラム
JP5507350B2 (ja) 2010-06-11 2014-05-28 任天堂株式会社 携帯型情報端末、携帯型情報端末制御プログラム、携帯型情報システム、および、携帯型情報端末制御方法
JP2012018657A (ja) 2010-06-11 2012-01-26 Nintendo Co Ltd 情報処理端末、情報処理システム、情報処理プログラム
JP4999213B2 (ja) 2010-09-17 2012-08-15 任天堂株式会社 情報処理プログラム、携帯端末装置、システム、情報処理方法及び通信システム
JP4882022B1 (ja) 2010-12-28 2012-02-22 任天堂株式会社 通信システム、情報処理プログラム、情報処理方法、情報処理装置、情報処理システム
JP2012178783A (ja) * 2011-02-28 2012-09-13 Sony Corp 画像表示システム、表示装置、並びにシャッター眼鏡
US8469816B2 (en) * 2011-10-11 2013-06-25 Microsoft Corporation Device linking
US10600280B2 (en) * 2016-06-09 2020-03-24 Konami Gaming, Incorporated Gaming machine, system, and method for an associated stage effect
CN110825466B (zh) * 2019-11-11 2021-11-02 腾讯科技(深圳)有限公司 一种程序卡顿的处理方法以及卡顿处理装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04176235A (ja) * 1990-11-08 1992-06-23 Nintendo Co Ltd ゲーム機用通信アダプタ
CN1109695A (zh) * 1993-05-10 1995-10-04 塔里根特公司 多媒体同步系统
US5596696A (en) * 1993-05-10 1997-01-21 Object Technology Licensing Corp. Method and apparatus for synchronizing graphical presentations
US5581270A (en) * 1993-06-24 1996-12-03 Nintendo Of America, Inc. Hotel-based video game and communication system
WO1996014908A1 (en) * 1994-11-14 1996-05-23 Catapult Entertainment, Inc. Method and apparatus for synchronizing the execution of multiple video game systems in a networked environment
US5618045A (en) 1995-02-08 1997-04-08 Kagan; Michael Interactive multiple player game system and method of playing a game between at least two players
JPH08243255A (ja) 1995-03-08 1996-09-24 Nasuka:Kk 通信ゲーム機のゲームの同期の取り方
JPH1133230A (ja) * 1997-07-16 1999-02-09 Sega Enterp Ltd 通信ゲームシステム
US6126548A (en) * 1997-10-08 2000-10-03 Illusion, Inc. Multi-player entertainment system
US6315668B1 (en) 1998-09-24 2001-11-13 Midway Games, Inc. System and method for networking video games
JP3966489B2 (ja) 1998-10-05 2007-08-29 株式会社バンダイナムコゲームス ゲーム装置
WO2004096399A1 (ja) 1999-02-04 2004-11-11 Toru Ogawa ゲームシステム、ゲーム装置、ゲームデータ配信装置、画像データ配信システムおよびコンピュータ利用可能な情報
JP3794668B2 (ja) 1999-02-04 2006-07-05 株式会社バンダイナムコゲームス ゲームシステム、ゲーム装置、ゲームデータ配信装置、ネットワークシステムおよび情報記憶媒体
US6361440B1 (en) 1999-02-04 2002-03-26 Namco Ltd. Game system, game machine, game data distribution machine, network system and information storage medium
JP2001198363A (ja) 1999-09-14 2001-07-24 Sega Corp データ処理方法
US6947761B2 (en) 2000-11-22 2005-09-20 Leap Wireless International Inc. Method and system for improving the efficiency of state information transfer over a wireless communications network
JP2002271307A (ja) 2001-03-09 2002-09-20 Sega Corp 端末同期方法、通信システム及び端末装置
US20030130040A1 (en) 2001-07-17 2003-07-10 Jeffrey Thomas Dripps Distributed video game system and method

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006254945A (ja) * 2005-03-15 2006-09-28 Namco Bandai Games Inc プログラム、情報記憶媒体及びゲーム装置
JP2008099906A (ja) * 2006-10-19 2008-05-01 Nintendo Co Ltd ゲーム機、無線モジュールおよびゲームシステム
JP2010520772A (ja) * 2007-02-23 2010-06-17 クゥアルコム・インコーポレイテッド 近さに基づいて、ゲームセッションを作成し、または、ゲームセッションに参加するための方法と装置
JP2011500273A (ja) * 2007-10-22 2011-01-06 マイクロソフト コーポレーション エンターテインメントコンソールの時間ベースのアクセス制御
WO2010110251A1 (ja) * 2009-03-26 2010-09-30 株式会社コナミデジタルエンタテインメント 端末装置、端末装置の制御方法、情報記憶媒体、ならびに、プログラム
JP2010227201A (ja) * 2009-03-26 2010-10-14 Konami Digital Entertainment Co Ltd 端末装置、端末装置の制御方法、ならびに、プログラム
JP4705179B2 (ja) * 2009-03-26 2011-06-22 株式会社コナミデジタルエンタテインメント 端末装置、端末装置の制御方法、ならびに、プログラム
US8425328B2 (en) 2009-03-26 2013-04-23 Konami Digital Entertainment Co., Ltd. Terminal device, control method for terminal device, information non-transitory storage medium and program
JP2023540396A (ja) * 2020-09-14 2023-09-22 アップル インコーポレイテッド フォロワモードのビデオ動作
JP7454748B2 (ja) 2020-09-14 2024-03-22 アップル インコーポレイテッド フォロワモードのビデオ動作

Also Published As

Publication number Publication date
JP4342356B2 (ja) 2009-10-14
US7901293B2 (en) 2011-03-08
US20050221897A1 (en) 2005-10-06

Similar Documents

Publication Publication Date Title
JP4342356B2 (ja) ゲームシステム、ゲーム装置、およびゲームプログラム
JP5255196B2 (ja) ゲーム機、無線モジュール、ゲームシステムおよびゲーム処理方法
JP4510003B2 (ja) 移動無線端末における同期方法
EP3185621B1 (en) Wireless device
TWI545985B (zh) 透過藍芽之裝置同步
US8089989B2 (en) Synchronization of nodes on a network
WO2014119017A1 (ja) 通信装置及び通信方法
WO2001076089A3 (en) Symbol combiner synchronization after a jump to a new time alignment
RU2619264C2 (ru) Устройство беспроводной связи и система обнаружения
JP6451666B2 (ja) 通信装置、電子時計、通信方法及びプログラム
JP2002368670A (ja) 無線通信装置及びその受信タイミング推定方法
JP2007208333A (ja) 基地局装置
JP2017009366A (ja) 無線通信装置、電子時計、無線通信方法、及びプログラム
JP2010041423A (ja) 無線通信システム、受信機、および送信機
JP2003333022A (ja) 移動無線通信装置及び動作方法
KR20240045033A (ko) 데이터 링크를 스케줄링하기 위한 전자 장치 및 그 동작 방법
JP6819091B2 (ja) 通信装置、電子時計、通信方法及びプログラム
JP6795787B2 (ja) 電話システム
JP7089945B2 (ja) 計時装置、計時システム、及び計時方法
EP3282779B1 (en) Information processing apparatus, method of controlling information processing apparatus, program for information processing apparatus, and information processing system
JP2006186474A (ja) 無線通信システムおよび無線中継機
JP2011044956A (ja) 移動無線端末および基地局探索方法
JP2015177247A (ja) 無線通信ネットワークシステム、無線端末、時刻補正方法、プログラム
TWI802046B (zh) 具模式自動調整功能的主動式觸控系統及主動式觸控筆
WO2023145229A1 (ja) 通信装置、通信装置の制御方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090414

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: 20090609

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: 20090707

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120717

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4342356

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120717

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120717

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120717

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130717

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130717

Year of fee payment: 4

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

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

EXPY Cancellation because of completion of term