図1を参照して、この発明の実施例であるゲーム装置10は、第1の液晶表示器(LCD)12および第2のLCD14を含む。このLCD12およびLCD14は、所定の配置位置となるようにハウジング16に収納される。この実施例では、ハウジング16は、上側ハウジング16aと下側ハウジング16bとによって構成され、LCD12は上側ハウジング16aに収納され、LCD14は下側ハウジング16bに収納される。したがって、LCD12とLCD14とは縦(上下)に並ぶように近接して配置される。
なお、この実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
図1からも分かるように、上側ハウジング16aは、LCD12の平面形状よりも少し大きな平面形状を有し、一方主面からLCD12の表示面を露出するように開口部が形成される。一方、下側ハウジング16bは、その平面形状が上側ハウジング16aよりも横長に選ばれ、横方向の略中央部にLCD14の表示面を露出するように開口部が形成される。また、下側ハウジング16bには、音抜き孔18が形成されるとともに、操作スイッチ20(20a,20b,20c,20d,20e,20Lおよび20R)が設けられる。
また、上側ハウジング16aと下側ハウジング16bとは、上側ハウジング16aの下辺(下端)と下側ハウジング16bの上辺(上端)の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、LCD12の表示面とLCD14の表示面とが対面するように、上側ハウジング16aを回動させて折りたたんでおけば、LCD12の表示面およびLCD14の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング16aと下側ハウジング16bとは、回動可能に連結せずに、それらを一体的(固定的)に設けたハウジング16を形成するようにしてもよい。
操作スイッチ20は、方向指示スイッチ(十字スイッチ)20a,スタートスイッチ20b、セレクトスイッチ20c、動作スイッチ(Aボタン)20d、動作スイッチ(Bボタン)20e、動作スイッチ(Lボタン)20Lおよび動作スイッチ(Rボタン)20Rを含む。スイッチ20a,20bおよび20cは、下側ハウジング16bの一方主面において、LCD14の左側に配置される。また、スイッチ20dおよび20eは、下側ハウジング16bの一方主面において、LCD14の右側に配置される。さらに、スイッチ20Lおよびスイッチ20Rは、それぞれ、下側ハウジング16bの上端(天面)の一部であり上側ハウジング16aとの連結部以外の部分において、当該連結部を挟むようにして左右に配置される。
方向指示スイッチ20aは、ディジタルジョイスティックとして機能し、4つの押圧部の1つを操作することによって、プレイヤによって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりする等のために用いられる。スタートスイッチ20bは、プッシュボタンで構成され、ゲームを開始(再開)したり、一時停止したりする等のために用いられる。セレクトスイッチ20cは、プッシュボタンで構成され、ゲームモードの選択等のために用いられる。
動作スイッチ20dすなわちAボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプする等の任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ20eすなわちBボタンは、プッシュボタンで構成され、セレクトスイッチ20cで選択したゲームモードの変更やAボタン20dで決定したアクションの取り消し等のために用いられる。
動作スイッチ20L(Lボタン)および動作スイッチ20R(Rボタン)は、プッシュボタンで構成され、Lボタン20LおよびRボタン20Rは、Aボタン20dおよびBボタン20eと同様の操作に用いることができ、また、Aボタン20dおよびBボタン20eの補助的な操作に用いることができる。
また、LCD14の上面には、タッチパネル22が装着される。タッチパネル22としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル22は、その上面をスティック24ないしはペン(スタイラスペン)或いは指(以下、これらを「スティック24等」という場合がある。)で、押圧したり、撫でたり、触れたり(以下、単に「押圧する」という。)することにより操作すると、スティック24等によって操作された(すなわち押圧された)位置の座標を検出して、検出した座標(検出座標)に対応する座標データを出力する。
なお、この実施例では、LCD14(LCD12も同じ、または略同じ。)の表示面の解像度は256dot×192dotであり、タッチパネル22の検出精度(操作面)も表示画面に対応して256dot×192dotとしてある。ただし、図1では、タッチパネル22を分かり易く示すために、タッチパネル22をLCD14と異なる大きさで示してあるが、LCD14の表示画面の大きさとタッチパネル22の操作面の大きさとは同じ大きさである。なお、タッチパネル22の検出精度は、表示画面の解像度よりも低くてもよく、高くてもよい。
LCD12およびLCD14には異なるゲーム画面が表示される。たとえば、レースゲームでは一方のLCDに運転席からの視点による画面を表示し、他方のLCDにレース(コース)全体の画面を表示することができる。また、RPGでは、一方のLCDにマップやプレイヤキャラクタ等のキャラクタを表示し、他方のLCDにプレイヤキャラクタが所有するアイテムを表示することができる。さらに、一方のLCD(この実施例では、LCD12)にゲームのプレイ画面を表示し、他方のLCD(この実施例では、LCD14)に当該ゲームを操作するための文字情報やアイコン等の画像を含むゲーム画面(操作画面)を表示することができる。さらには、2つのLCD12およびLCD14を合わせて1つの画面として用いることにより、プレイヤキャラクタが倒さなければならない巨大な怪物(敵キャラクタ)を表示することもできる。
したがって、プレイヤはスティック24等でタッチパネル22を操作することにより、LCD14の画面に表示されるプレイヤキャラクタ、敵キャラクタ、アイテムキャラクタ、文字情報、アイコン等のキャラクタ画像を指示したり、コマンドを選択したりすることができる。
なお、ゲームの種類によっては、その他各種の入力指示、たとえばLCD14に表示されたアイコンの選択または操作、座標入力指示等に用いることもできる。
このように、ゲーム装置10は、2画面分の表示部となるLCD12およびLCD14を有し、いずれか一方(この実施例では、LCD14)の上面にタッチパネル22が設けられるので、2画面(12,14)と2系統の操作部(20,22)とを有する構成になっている。
また、この実施例では、スティック24は、たとえば上側ハウジング16aの側面(右側面)近傍に設けられる収納部(穴ないし凹部)26に収納することができ、必要に応じて取り出される。ただし、スティック24を設けない場合には、収納部26を設ける必要もない。
さらに、ゲーム装置10はメモリカード(またはゲームカートリッジ)28を含み、このメモリカード28は着脱自在であり、下側ハウジング16bの裏面ないしは底面(下端)に設けられる挿入口30から挿入される。図1では省略するが、挿入口30の奥部には、メモリカード28の挿入方向先端部に設けられるコネクタ(図示せず)と接合するためのコネクタ46(図2参照)が設けられており、したがって、メモリカード28が挿入口30に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア42(図2参照)がメモリカード28にアクセス可能となる。
なお、図1では表現できないが、下側ハウジング16bの音抜き孔18と対応する位置であり、この下側ハウジング16bの内部には、スピーカ32(図2参照)が設けられる。
また、図1では省略するが、たとえば、下側ハウジング16bの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング16bの底面側には、電源スイッチ、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなども設けられる。
図2はゲーム装置10の電気的な構成を示すブロック図である。図2を参照して、ゲーム装置10は電子回路基板40を含み、この電子回路基板40にはCPUコア42等の回路コンポーネントが実装される。CPUコア42は、バス44を介してコネクタ46に接続されるとともに、RAM48、第1のグラフィック処理ユニット(GPU)50、第2のGPU52、入出カインターフェイス回路(以下、「I/F回路」という。)54およびLCDコントローラ60に接続される。
コネコタ46には、上述したように、メモリカード28が着脱自在に接続される。メモリカード28は、ROM28aおよびRAM28bを含み、図示は省略するが、ROM28aおよびRAM28bは、互いにバスで接続され、さらに、コネクタ46と接合されるコネクタ(図示せず)に接続される。したがって、上述したように、CPUコア42は、ROM28aおよびRAM28bにアクセスすることができるのである。
ROM28aは、ゲーム装置10で実行すべきゲーム(仮想ゲーム)のためのゲームプログラム、画像(キャラクタ画像、背景画像、アイテム画像、アイコン(ボタン)画像、メッセージ画像など)データおよびゲームに必要な音(音楽)のデータ(音データ)等を予め記憶する。RAM(バックアップRAM)28bは、そのゲームの途中データやゲームの結果データを記憶(セーブ)する。
RAM48は、バッファメモリないしはワーキングメモリとして使用される。つまり、CPUコア42は、メモリカード28のROM28aに記憶されたゲームプログラム、画像データおよび音データ等をRAM48にロードし、ロードしたゲームプログラムを実行する。また、CPUコア42は、ゲームの進行に応じて一時的に発生するデータ(ゲームデータやフラグデータ)をRAM48に記憶しつつゲーム処理を実行する。
なお、ゲームプログラム、画像データおよび音データ等は、ROM28aから一度に全部または必要に応じて部分的にかつ順次的に読み出され、RAM48に記憶(ロード)される。
ただし、メモリカード28のROM28aには、ゲーム以外の他のアプリケーションについてのプログラムおよび当該アプリケーションの実行に必要な画像データが記憶される。また、必要に応じて、音(音楽)データが記憶されてもよい。かかる場合には、ゲーム装置10では、当該アプリケーションが実行される。
GPU50およびGPU52は、それぞれ、描画手段の一部を形成し、たとえばシングルチップASICで構成され、CPUコア42からのグラフィックスコマンド(graphics command :作画命令)を受け、そのグラフィックスコマンドに従ってゲーム画像データを生成する。ただし、CPUコア42は、グラフィックスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラム(ゲームプログラムに含まれる。)をGPU50およびGPU52のそれぞれに与える。
また、GPU50には、第1のビデオRAM(以下、「VRAM」という。)56が接続され、GPU52には、第2のVRAM58が接続される。GPU50およびGPU52が作画コマンドを実行するにあたって必要なデータ(画像データ:キャラクタデータやテクスチャ等のデータ)は、GPU50およびGPU52が、それぞれ、第1のVRAM56および第2のVRAM58にアクセスして取得する。ただし、CPUコア42は、描画に必要な画像データをRAM48から読み出し、GPU50およびGPU52を介して第1のVRAM56および第2のVRAM58に書き込む。GPU50はVRAM56にアクセスして描画のためのゲーム画像データを作成し、GPU52はVRAM58にアクセスして描画のためのゲーム画像データを作成する。
VRAM56およびVRAM58は、LCDコントローラ60に接続される。LCDコントローラ60はレジスタ62を含み、レジスタ62はたとえば1ビットで構成され、CPUコア42の指示によって「0」または「1」の値(データ値)を記憶する。LCDコントローラ60は、レジスタ62のデータ値が「0」である場合には、GPU50によって作成されたゲーム画像データをLCD12に出力し、GPU52によって作成されたゲーム画像データをLCD14に出力する。一方、レジスタ62のデータ値が「1」である場合には、LCDコントローラ60は、GPU50によって作成されたゲーム画像データをLCD14に出力し、GPU52によって作成されたゲーム画像データをLCD12に出力する。
なお、LCDコントローラ60は、VRAM56およびVRAM58から直接ゲーム画像データを読み出したり、GPU50およびGPU52を介してVRAM56およびVRAM58からゲーム画像データを読み出したりする。
I/F回路54には、操作スイッチ20,タッチパネル22およびスピーカ32が接続される。ここで、操作スイッチ20は、上述したスイッチ20a,20b,20c,20d,20e,20Lおよび20Rであり、操作スイッチ20が操作されると、対応する操作信号(操作データ)がI/F回路54を介してCPUコア42に入力される。また、タッチパネル22から出力される操作データ(座標データ)がI/F回路54を介してCPUコア42に入力される。さらに、CPUコア42は、ゲーム音楽(BGM)、効果音またはゲームキャラクタの音声(擬制音)などのゲームに必要な音データをRAM48から読み出し、I/F回路54を介してスピーカ32からその音を出力する。
さらに、I/F回路54には無線通信部64が接続される。無線通信部64は他のゲーム装置10との間でたとえば近距離無線によってデータを送受信するための通信手段である。無線通信部64は、図示は省略するが、たとえばベースバンド(Base Band)ICおよびRF(Radio Frequency)−IC等を含む。ベースバンドICはROMを含み、ROMにはたとえばOCD(One-Card Download)プログラムやその他のプログラム等が内蔵され、ベースバンドICは、それらのプログラムに従って動作する。
なお、ワンカードダウンロードプログラムとは、OCモード(ワンカードモード:親機にだけメモリカード28が装着されていて、子機はその親機のメモリカード28からの子機用プログラムのダウンロードを受けて動作するモード)において、子機へプログラムをダウンロードするためのプログラムである。つまり、親機がOCモードで動作している場合、子機ではメモリカード28が装着されてなくても、ダウンロードされた子機用プログラムに従って、この通信ゲーム(この実施例では伝言ゲーム)を行うことができる。
たとえば、CPUコア42は、他のゲーム装置10への送信データをRAM48の所定領域に生成し、I/F回路54を介して無線通信部64に出力する。ベースバンドICは、CPUコア42から転送されてくるデータ(プログラムおよびゲームデータ等)をエンコードして、RF(Radio Frequency)−ICに送出する。RF−ICは、そのデータを変調してアンテナから電波を送信する。ただし、その電波強度は、非常に微弱で、電波法においてユーザが無免許で利用できる程度の小さい値に設定されている。このようにして、上記微弱電波による通信可能範囲内に存在する他のゲーム装置10にデータが送信される。また、通信可能範囲内に存在する他のゲーム装置10から送信された電波がアンテナで受信されてRF−ICによって復調され、復調信号がベースバンドICに入力される。したがって、ベースバンドICは、復調信号をデコードして、データを復元し、そのデータをI/F回路54を介してCPUコア42に転送する。この受信データはCPUコア42によってRAM48の所定領域に一時記憶される。
また、CPUコア42には、バス44を介して時計IC66が接続されており、時計IC66で計時された年月日(カレンダ情報)や時分(時刻情報)の情報を含む時間データが与えられる。
この実施例では、複数台の上述のようなゲーム装置10を用いてゲームシステムが構成され、図3に示すように、複数のゲーム装置10間で通信データを送受信しながら通信ゲームが行われる。通信ゲームの前に、各ゲーム装置10は親機か子機になる必要があり、プレイヤは自機が親機になるか子機になるかをたとえば選択画面で選択することができる。ゲーム装置10は、親機として機能する場合、通信可能範囲内に存在する子機を探して接続する。一方、ゲーム装置10は、子機として機能する場合には通信可能範囲内に存在する参加可能な親機を探して接続する。なお、親機を探す場合には、自機がメモリカード28を持っていない場合には、上述のOC(One-card)モードで動作している親機を探す必要がある。
図4を参照して、親機と子機とが無線通信する場合のデータパケットフォーマットについて説明する。データサイクル(1通信サイクル)は、1つの親機スロットと複数の子機スロットとを含む。この実施例では、たとえば4つの子機スロット0−3が設けられ、したがって、この場合親機は一度に最大4つの子機との間で無線通信することができる。たとえば、親機スロットでは図5に示すような親機パケットが送信され、4つの子機スロットでは、各子機によって、図6に示すような子機パケットの送信が行われる。親機は各子機スロットで子機パケットの受信を行うことによって、各子機からの送信データを受信することができる。また、各子機は、親機スロットで親機パケットの受信を行うことによって、親機からの送信データを受信することができる。また、各子機は、他の各子機が使用する子機スロットで子機パケットの受信をそれぞれ行うことによって、他の各子機からの送信データを受信することも可能である。なお、1つの子機に複数のスロットが割り当てられてもよい。また、1サイクル中の各スロットの時間の配分は適宜に設定される。また、上記例では子機スロットが4つ設けられたが、このゲーム装置10では、たとえば最大16の子機スロットを設けることが可能になっていて、つまり、親機は最大16台の子機と接続され得る。
親機パケットは、図5に示すように、同期データを格納しておくためのフィールドsyncをその先頭に有し、その同期データフィールドsyncに後続してその親機の番号(識別コード)PIDを格納するためのフィールドPIDを有する。親機の識別番号は親機でたとえば擬似ランダムに決定される。そのフィールドPIDに続いて、ユーザ名フィールドUserNameおよびゲーム名フィールドGameNameが形成される。ユーザ名フィールドUserNameには、ROM28a等から読み出されたユーザ名(ユーザ識別コード)が登録される。ゲーム名フィールドGameNameには、ROM28a等から読み出されたゲーム名(ゲーム識別コード)が登録される。なお、ROM42から読み出されたユーザ名またはゲーム名がRAM48に記憶され、プレイヤの操作やゲームの進行等に応じてRAM48に記憶されているユーザ名またはゲーム名が変更された場合は、RAM48に記憶されている変更されたユーザ名またはゲーム名が読み出されて登録されるようにしてもよい。また、プレイヤの操作等によって新たに作成されてRAM48に書き込まれたユーザ名またはゲーム名が読み出されて登録されるようにしてもよい。
親機パケットはさらに、フラグOCを含み、このフラグOCは、先に述べたワンカード(OC)モードに対応できるかどうかを示すフラグである。具体的には、このフラグOCがリセットされているとき、すなわちOC=0のときには、そのときの親機のメモリカード28はOCモードに非対応であること、あるいは、OCモードに対応できるが現在は通常モードで動作していることを示す。フラグOCがセットされているとき、すなわち、OC=1のときは、OCモードに対応できかつ現在そのOCモードで動作していることを示す。
親機パケットは、フラグOCに続いて、フィールドESlot,USlotおよびPayloadを順次含む。EスロットフィールドESlotは、エントリ(参加)可能な子機スロットの番号が格納される。つまり、新規に参加しようとする子機が使用できる子機スロット番号が格納される。UスロットフィールドUSlotには、子機スロットの使用状況が格納される。UスロットフィールドUSlotは、この実施例ではたとえば4つの領域を含み、この4つの領域の各々が4つの子機スロットに対応する。そして、それぞれの領域には、該当する子機スロットの割り当てられた子機の番号(識別コード)CIDが格納される。子機識別コードCIDが登録されているときには、その領域に対応する子機スロットが使用されていることがわかる。したがって、親機に接続可能であることを示す親機パケットデータでは、Eスロットフィールドにいずれかの子機スロットが設定されており、または、Uスロットフィールドで子機識別コードの登録されていない領域が存在している。
ペイロードフィールドPayloadは、親機から子機へ送信する実体的なデータを格納する
ためのフィールドである。具体的には、通信順序データ、出題データ、描画データ、選択入力データ、ゲーム終了フラグ、その他必要なゲームデータ、または子機用プログラムなどのデータを送信するためのフィールドである。
図6には、子機からその子機に割り当てられた子機スロットに送出される子機パケットが示される。子機パケットは、子機番号CIDを格納または登録する先頭のフィールドCIDとそれに後続するペイロードフィールドPayloadとを含む。子機の識別番号は子機でたとえば擬似ランダムに決定される。ペイロードフィールドPayloadは子機から親機(または他の子機)へ送信される実体的なデータを格納するためのフィールドである。具体的には、描画データ、選択入力データ、出題データ、ゲーム終了フラグ、その他必要なゲームデータなどのデータを送信するためのフィールドである。
なお、このような親機と子機との無線通信の技術は、本件出願人による特開2004−135778号公報および特開2004−136009号公報などに詳細に開示されるので参照されたい。
図7には、RAM48のメモリマップの一例が示される。メモリマップはゲームプログラム記憶領域70を含み、このゲームプログラム記憶領域70には、メモリカード28のROM28aから読み出されたこの実施例のゲームを実行するための各プログラムが記憶される。
データ送受信プログラム記憶領域72には、他のゲーム装置10との間でのデータの送受信を制御するためのプログラムが記憶される。
通信順序決定プログラム記憶領域74には、親機として機能する場合に、複数のゲーム装置10、すなわち、接続されているすべての子機と自機との間での通信の順序を決定するためのプログラムである。このプログラムによって、通信順序はたとえばランダムで決定され、決定された通信順序を示す通信順序データが生成される。この通信順序に従って、複数のゲーム装置10で順次、ゲームがプレイされることとなる。
画像表示制御プログラム記憶領域76には、第1のLCD12および第2のLCD14への画像の表示を制御するためのプログラムが記憶される。
時間カウント処理プログラム記憶領域78には、時間カウントを処理するためのプログラムが記憶される。このプログラムによって、時計IC66から出力される時間データに基づいて、プレイヤによる操作を受け付けてからの経過時間が計時ないし計測される。
画像描画プログラム記憶領域80には、プレイヤによるタッチパネル22の操作に応じて、画像を描画するためのプログラムが記憶される。この実施例では、プレイヤは、スティック24等をタッチパネル22に触れた状態で移動させることによって、操作位置に対応する第2のLCD14上に線を引いたりするなど、絵を描くことができる。具体的には、第2のLCD14に表示される初期画像の画像データでは、全ての画素がたとえば白色に設定されていて、第2のLCD14がキャンバスとして表現される。そして、プレイヤによるタッチパネル22の操作があったとき、タッチパネル22の出力する座標データに対応する位置の画素の色がたとえば黒等の異なる色に変更される。このようにしてプレイヤの操作位置に対応する位置の画素の色が変更された画像データ(描画データ)が生成され、その画像が第2のLCD14に表示される。
制限時間判別プログラム記憶領域82には、経過時間が所定の制限時間に達したか否かを判定するためのプログラムが記憶される。所定の制限時間は、たとえば、出題データの難易度等に応じて、適宜な値に予め設定される。あるいは、所定の制限時間はたとえばプレイヤのレベル、またはゲームレベル等に応じて変更されるものであってもよい。
操作受付停止プログラム記憶領域84には、プレイヤの操作による入力の受付を停止するためのプログラムが記憶される。操作入力の受付は経過時間が制限時間に達したと判別されたときに停止される。このプログラムによって、たとえば、タッチパネル22の入力を検出するプログラムが終了されたり、あるいは、入力情報を生成するプログラム(画像描画プログラムなど)が終了されたりする。
報知プログラム記憶領域86には、操作の受付が停止されたこと、およびプレイヤの入力情報(描画データ等)が他のゲーム装置10に送信されたことをプレイヤに報知するためのプログラムが記憶される。
結果表示処理プログラム記憶領域88には、ゲームの結果を表示するためのプログラムが記憶される。この実施例の伝言ゲームでは、たとえば、出題画像および各ゲーム装置10での描画画像(または選択入力した文字等の画像)などが一覧で表示される。
また、その他のプログラム記憶領域90には、ゲーム進行に必要なその他のプログラムが記憶される。たとえばゲーム音楽や効果音などの音を出力するためのプログラムが記憶される。また、タッチパネル22の入力を検出するプログラム、タッチパネル22の入力位置座標を検出するプログラムなども記憶される。
RAM48のメモリマップは、さらに、データ記憶領域を含む。データ記憶領域には、メモリカード28のROM28a等から読み出されたデータや、ゲームプログラムの実行によって生成されたデータなどが記憶される。
すなわち、画像データ記憶領域92には、ゲーム画像を生成するための画像データが記憶される。この画像データ記憶領域92には、出題データ記憶領域94、自機描画データ記憶領域96および他機描画データ記憶領域98が含まれる。出題データ記憶領域94には、通信順序が1位となったプレイヤに出題される画像データが記憶される。この実施例では、通信順序が1位のプレイヤは、この出題データに基づいて第1のLCD12に表示された画像を参照し、これを手本にして描画をする。自機描画データ記憶領域96には、画像描画プログラムに従って自機のプレイヤによって描画された画像の画像データが格納される。他機描画データ記憶領域98には、他のゲーム装置10から送信されてきた他のプレイヤによって描画された画像の画像データが格納される。他機描画データのそれぞれは、どのゲーム装置10の描画データであるかを特定可能なように、各識別番号(PIDまたはCID)に関連付けて記憶される。
通信順序データ記憶領域100には、通信順序決定プログラムに従って生成された通信順序データが記憶される。通信順序データでは、各ゲーム装置10の識別番号がその通信順序に関連付けて登録されている。
ゲーム終了フラグ設定記憶領域102には、伝言ゲームが終了したか否かを示すゲーム終了フラグが記憶される。経過時間データ記憶領域104には、時間カウント処理プログラムに従って計測された、プレイヤの操作入力を受け付けてからの経過時間を示す経過時間データが記憶される。
また、その他の記憶領域106には、ゲーム進行に必要なその他のフラグ、変数など種々のデータが記憶される。たとえば、この記憶領域106には、タッチパネル22からの操作データを記憶する領域が設けられる。また、他のゲーム装置10から受信した受信データ等も記憶される。
このゲームシステムでは、複数のゲーム装置10間で、各プレイヤの入力情報を順次伝達していくような伝言ゲームが行われる。この実施例では、プレイヤがタッチパネル22を操作することによって描画した画像データが、入力情報として順次伝達される。伝達は通信順序に従って進められる。
まず、親機および子機を含む複数のゲーム装置10の間での通信順序を設定する処理が行われる。通信順序は親機で決定される。親機は通信順序データを各子機に送信し、各子機はこの通信順序データを受信する。
続いて、親機は、自機の通信順序が1位である場合には、ROM28aから出題データを読み出して出題データ記憶領域94に記憶する。また、親機は、自機の通信順序が1位でない場合には、ROM28aから出題データを読み出し、この出題データに通信順序が1位である子機の識別番号を付加したデータを生成する。そして、この通信順序が1位である子機宛の送信データを親機スロットで送信する。
各子機は、親機スロットで出題データの受信を試みる。出題データを受信した場合には、各子機は、出題データに付加された識別番号と自機の識別番号とが一致するか否かを判定する。識別番号が一致する場合、つまり、自機の通信順序が1位である場合には、受信した出題データを出題データ記憶領域94に格納する。一方、識別番号が一致しない場合には、つまり、自機の通信順序は1位でない場合には、受信した出題データを出題データ記憶領域94には格納せずに破棄する。
このようにして、通信順序が1位であるゲーム装置10の出題データ記憶領域94に出題データが格納されて、通信順序が1位であるゲーム装置10から伝言ゲームが開始される。通信順序が1位であるゲーム装置10では、図8に示すように、第1のLCD12に出題データに基づいて出題イラスト画像が表示されて、プレイヤの操作入力の受付が開始される。プレイヤは、出題画像を参照しながら、スティック24等でタッチパネル22を操作することによって第2のLCD14上に画像を描画する。この実施例の伝言ゲームは、出題された画像を正確に他のゲーム装置10へ伝達していくゲームなので、プレイヤはできる限り出題画像に似た画像を描画して送信する必要がある。
なお、出題画像は図8のようなイラストないし絵で示される画像に限られず、写真、または文字などを含む画像であってもよい。出題画像が文字だけでつまり言葉のみで示される場合には、プレイヤは出題画像を手本に描画をすることができないので、ゲームの難易度を上げることができ、興趣性および娯楽性を高めることができる。
そして、この伝言ゲームでは、プレイヤの操作入力を受け付ける時間に制限が設けられる。このため、操作入力の受付を開始してからの経過時間データの計測が行われる。図8に示すように、第1のLCD12には、操作入力を受け付ける制限時間までの残り時間がカウントダウン式に表示される。
プレイヤの操作入力を受け付けてからの経過時間が所定の制限時間に達したとき、つまり、残り時間が0になったとき、操作入力の受付が停止され、それ以降は、プレイヤはタッチパネル22を操作しても描画をすることができない。したがって、プレイヤは出題画像にできる限り似せた画像を所定の制限時間内に描画することが要求される。
また、このとき、操作入力の受付が停止されたことがプレイヤに報知されるので、プレイヤは入力の受付が停止されたこと、すなわち、経過時間が制限時間に達したことを容易に知ることできる。たとえば、図9に示すように、「入力受付を終了!」のようなメッセージ画像が第1のLCD12に表示される。なお、この報知方法は画像表示に限定されず、たとえば受付終了を示す所定の音をスピーカ24から出力するようにしてもよい。
また、入力受付を終了するまでに描画された画像の画像データ(描画データ)は自機描画データ記憶領域96に格納される。この描画データは、VRAM56(レジスタ62のデータ値が「0」の場合)またはVRAM58(レジスタ62のデータ値が「1」の場合)に記憶されていた画像データである。つまり、図9の例では、第2のLCD14に表示されている未完成の描画画像の画像データがVRAM56(またはVRAM58)から読み出されてRAM48の自機描画データ記憶領域96に格納される。
続いて、自機の通信順序が最後であるか否かの判定が行われる。このゲーム装置10は通信順序が1位であり最後ではないので、次の順位のゲーム装置10に入力情報を伝達する必要がある。そこで、通信順序データを参照して次の順位に相当するゲーム装置10の識別番号を取得し、自機の描画データに次の順位のゲーム装置10の識別番号を付加した送信データを生成する。そして、この次の順位のゲーム装置10宛の送信データを自機のタイムスロットで送信する。
このように、この実施例では、制限時間に達したときに、プレイヤの操作入力の受付が停止され、それまでに入力された描画データが強制的に次の順位のゲーム装置10に送信される。したがって、プレイヤは制限時間内に入力を終えて描画を完成させなければならないので、緊張感のあるゲームを実現できる。
また、自機の描画データを送信したときには、送信したことがプレイヤに報知される。たとえば、図10に示すように、「次の人に送りました!」のようなメッセージ画像が第1のLCD12に表示される。これによって、プレイヤは自己の入力情報(図10では描画データ)が次の通信順位のゲーム装置10に送信されたことを容易に知ることができ、伝言ゲームにおける自己の役割が終了したことを知ることができる。なお、この報知方法は、上述の受付停止の場合と同様に画像表示に限定されず、たとえば送信を示す所定の音をスピーカ24から出力するようにしてもよい。
一方、通信順位が1位でないゲーム装置10のそれぞれは、他のゲーム装置10から描画データが送信されてくるのを待つ。各ゲーム装置10は、自機のタイムスロット以外のタイムスロットで描画データの受信を試みる。描画データを受信した場合には、各子機は、描画データに付加された識別番号と自機の識別番号とが一致するか否かを判定する。識別番号が一致する場合には、つまり、受信データが自機宛のデータである場合には、受信した描画データを他機描画データ記憶領域98に格納する。一方、識別番号が一致しない場合には、つまり、受信データが自機宛のデータでない場合には、受信した描画データを他機描画データ記憶領域98には格納せずに破棄する。
次の順位に相当するゲーム装置10では、他機描画データ記憶領域98に格納された描画データに基づいて、伝言ゲームの続きが開始される。すなわち、このゲーム装置10では、図11に示すように、第1のLCD12に、受信した他機描画データに基づいて受信イラスト画像(すなわち他機で描画された画像)が表示されて、プレイヤの操作入力の受付が開始される。また、上述の通信順序が1位であるゲーム装置10の場合と同様に、操作の受付を開始してからの経過時間が計測され、所定の制限時間に達するまでの残り時間がカウントダウン式に第1のLCD12に表示される。したがって、このプレイヤは、受信画像を参照しながら、受信画像にできる限り似せたあるいは受信画像から連想される画像を制限時間内に描画することが要求される。そして、このゲーム装置10でも、上述の通信順序が1位のゲーム装置10の場合と同様に、経過時間が制限時間に達したとき、操作入力の受付が停止されるとともに、描画された画像の画像データが自機描画データ記憶領域96に格納される。また、入力受付の停止がプレイヤに報知される。
続いて、自機の通信順序が最後であるか否かの判定が行われる。通信順序が最後でない場合には、上述のように、通信順序が次の順位に相当するゲーム装置10宛への入力情報の送信が行われて、次のゲーム装置10で伝言ゲームの続きが行われる。このようにして、通信順序に従って、各ゲーム装置10に入力情報が順次伝達されていく。
そして、通信順序が最後であると判定されたゲーム装置10では、伝言ゲームが終了したことを示すゲーム終了フラグがセットされる。また、通信順序が最後のゲーム装置10は、ゲーム終了フラグを当該ゲーム装置10に割り当てられたタイムスロットで送信する。通信順序が最後でないゲーム装置10は、他のゲーム装置10のタイムスロットでゲーム終了フラグの受信を試みる。そして、ゲーム終了フラグを受信することによって、伝言ゲームが終了したことを把握することができる。
伝言ゲームが終了した後には、その結果を表示するための処理が行われる。たとえば、図12に示すように、第1のLCD12には全経過一覧が表示され、第2のLCD14には正解として出題画像とその内容(名称、種類、意味など)が表示される。LCD12に表示された一覧では、出題画像と各ゲーム装置10における描画画像とが、通信順序の順(ゲーム機A−Dの順)に表示されるので、出題画像から各入力情報(描画画像)の変遷していく様子がよく分かる。
なお、この結果表示処理では、たとえば、ゲーム終了フラグを送信した場合、あるいは、ゲーム終了フラグを受信した場合には、各ゲーム装置10は、自機描画データ記憶領域96に記憶されている自機の描画データを、自機のタイムスロットで送信する。また、出題データ記憶領域94に出題データが記憶されている、すなわち、通信順位が1位であるゲーム装置10は、出題データの送信も行う。したがって、各ゲーム装置10は、自機のタイムスロット以外で受信を試みて、他機から送信された描画データを受信することができる。また、出題データが出題データ記憶領域94に記憶されていないゲーム装置10は、さらに出題データを受信することができる。
図13には、ゲーム装置10のCPUコア42のゲーム処理の動作の一例が示される。ゲーム処理を開始すると、CPUコア42は、ステップS1で初期設定を行い、たとえば、各種変数やフラグに初期値を設定する。
次に、ステップS3で、CPUコア42は通信順序設定処理を実行する。親機における通信順序設定処理の動作の一例が図14に詳細に示され、子機における通信順序設定処理の動作の一例が図15に詳細に示される。
親機における通信順序設定処理においては、図14の最初のステップS21で、親機のCPUコア42は子機サーチ処理を実行する。この親機における子機サーチ処理と子機における親機サーチ処理とによって、親機は通信可能領域内に存在する子機を探索して、該子機との間で接続を確立する。親機は、所定の最大接続可能数(たとえば4台)以下の子機と接続される。この処理で生成された自機の識別番号PID等の情報は、RAM48のその他の記憶領域106に記憶される。
ステップS23で、親機のCPUコア42は、変数Nに初期値「1」を設定する。続いて、ステップS25で、親機のCPUコア42は、無線通信部64を介していずれかの子機スロットでのデータの受信を試みる。親機のCPUコア42は、子機からのIDデータを受信すると、その受信データをRAM48のたとえば作業領域に記憶する。そして、親機のCPUコア42は、当該子機の識別番号(CID)を子機パケットから抽出し、当該子機識別番号データを、受信した子機スロット番号に関連付けてRAM48のその他の記憶領域104に記憶する。
そして、ステップS27で、親機CPUコア42は変数Nの値が、接続している子機の数より小さいかどうかを判断する。接続している子機の数は、ステップS21の子機サーチ処理で獲得される。あるいは、変数Nの値が接続可能な最大子機数より小さいかどうかを判断してもよい。
ステップS27で“YES”であれば、親機のCPUコア42はステップS29で変数Nをインクリメントし、つまり、その値に1を加算して、処理はステップS25に戻る。このようにして、接続している子機(あるいは接続可能な最大数の子機)のすべての識別番号を取得する。
一方、ステップS27で“NO”であれば、つまり、変数Nの値が接続している子機数等に等しくなった場合には、ステップS31で、親機のCPUコア42は、自機および子機を含めた複数のゲーム装置10の間の通信順序をランダムに決定する。そして、複数のゲーム装置10の通信順序を示す通信順序データを生成して通信順序データ記憶領域100に記憶する。
続いて、ステップS33で、親機のCPUコア42は、無線通信部64を介して通信順序データを親機スロットで各子機に送信する。つまり、親機のCPUコア42は、通信順序データをペイロードフィールドに格納した親機パケットを生成して送信する。
そして、ステップS35で、親機のCPUコア42は、通信順序データ記憶領域100に記憶されている通信順序データを参照して自機の識別番号PIDを検索し、自機の通信順序が1位であるか否かを判断する。ステップS35で“YES”であれば、伝言ゲームの出題を自機から開始すべく、親機のCPUコア42は、ステップS37でメモリカード28のROM28aから出題データを読み出して、RAM48の出題データ記憶領域94に書き込む。
一方、ステップS35で“NO”であれば、親機のCPUコア42は、ステップS39で、メモリカード28のROM28aから出題データを読み出してRAM48のたとえば作業領域に一時記憶する。続いて、ステップS41で、親機のCPUコア42は、通信順序データ記憶領域100に記憶されている通信順序データを参照して、通信順序が1位である子機に対応する識別番号(CID)を検索する。そして、ステップS43で、親機のCPUコア42は、無線通信部64を介して、通信順序が1位である子機のID(識別番号)と出題データとを親機スロットで送信する。つまり、親機のCPUコア42は、通信順序が1位である子機の識別番号の付加された出題データをペイロードフィールドに格納した親機パケット、すなわち、通信順序が1位に相当するゲーム装置10宛の送信データを生成して送信する。ステップS37またはステップS43を終了すると、この親機の通信順序設定処理を終了して、処理は図13のステップS5へ進む。
また、子機における通信順序設定処理においては、図15の最初のステップS51で、子機のCPUコア42は親機サーチ処理を実行する。この子機における親機サーチ処理と上述の親機における子機サーチ処理とによって、子機は通信可能領域内に存在する親機を探索して、該親機との間で接続を確立する。生成した自機の識別番号CIDや、受信される親機の識別番号および自機に割り当てられた子機スロット番号などの情報は、RAM48のその他の記憶領域106に記憶される。
次に、ステップS51で、子機のCPUコア42は、無線通信部64を介して、自機に割り当てられた子機スロットでIDデータを親機へ送信する。つまり、子機は、CIDフィールドに自機の識別番号を格納した子機パケットを生成して送信する。
そして、ステップS55で、子機のCPUコア42は、無線通信部64を介して、親機スロットでのデータの受信を試みる。そして、子機のCPUコア42は、親機からのデータを受信すると、その受信データをRAM48のたとえば作業領域に一時記憶する。そして、子機のCPUコア42は、その受信した親機パケットから通信順序データを抽出して、その通信順序データをRAM48の通信順序データ記憶領域100に格納する。
続いて、子機のCPUコア42は、無線通信部64を介して、親機スロットで親機からのデータの受信を試み、親機からのデータを受信すると、受信データをRAM48のたとえば作業領域に一時記憶する。そして、CPUコア42は、ステップS57で、出題データを受信したか否かを判断する。つまり、受信した親機パケットのペイロードフィールドに出題データが含まれているか否かを判断する。
ステップS57で“YES”であれば、子機のCPUコア42は、ステップS59で、出題データに付加されたID(識別番号)を抽出し、その識別番号と自機の識別番号とを照合して、ステップS61で、両者が一致するか否かを判断する。ステップS61で“YES”であれば、つまり、出題データが自機宛に送信されたデータである場合には、CPUコア42は、ステップS63で、受信した出題データをRAM48の出題データ記憶領域94に書き込む。このようにして、通信順位が1位である子機から伝言ゲームを開始すべく出題データが1位の子機に与えられる。
一方、ステップS61で“NO”であれば、つまり、受信したデータが自機宛の送信データでない場合には、子機のCPUコア42は、ステップS65で受信した出題データを出題データ記憶領域94に格納せずに破棄する。
ステップS63またはステップS65を終了すると、あるいは、ステップS57で“NO”である場合、つまり、出題データを受信できかなった場合には、この子機の通信順序設定処理を終了して、処理は図13のステップS5に戻る。
図13のステップS5では、CPUコア42は、伝達ゲーム処理を実行する。この伝達ゲーム処理の動作の一例は図16および図17に詳細に示される。
図16の最初のステップS81で、CPUコア42は、RAM48の出題データ記憶領域94に出題データが存在する(記憶されている)か否かを判断する。ステップS81で“YES”であれば、つまり、自機の通信順序が1位である場合には、ステップS83で、CPUコア42は、出題データを第1のLCD12に表示する。詳しくは、たとえば、CPUコア42は、LCDコントローラ60のレジスタ62に「0」を設定している場合には、GPU50を介して、出題データ記憶領域94に記憶された出題データやその他必要な画像データをVRAM56に書き込む。GPU50は、CPUコア42の指示に従って、VRAM56の出題データ等の画像データを使用して、表示すべきゲーム画像データをVRAM56に生成する。そして、LCDコントローラ60は、VRAM56に描画されたゲーム画像データをLCD12に出力して、その出題イラスト画像を含むゲーム画像をLCD12に表示する。なお、LCDコントローラ60のレジスタ62に「1」を設定している場合には、CPUコア42は、GPU52およびVRAM58を用いて、上述と同様にしてゲーム画像を表示する。このようにして、図8に示したように、LCD12には、出題イラスト画像および残り時間を示す画像を含むゲーム画像が表示される。残り時間の初期値としては所定の制限時間が表示される。ステップS83を終了すると、処理はステップS99へ進む。
一方、ステップS81で“NO”であれば、つまり、自機の通信順序が1位ではない場合には、ステップS85で、CPUコア42は通信待ち処理を実行する。この場合、通信順位が自機よりも上位であるゲーム装置10から先に伝言ゲームが実行され、その結果、描画データが送信されるが、経過時間が制限時間に達するまでは描画データが送信されないので、通信を待機する。
そして、CPUコア42は、待ち処理を終了すると、無線通信部64を介して、自機以外のタイムスロットでデータの受信を試みる。CPUコア42は、データを受信すると、その受信データをRAM48のたとえば作業領域に一時記憶する。そして、ステップS87で、CPUコア42は、他のゲーム装置10から描画データを受信したか否かを判断する。つまり、親機スロットで受信した場合には親機パケットのペイロードフィールドに描画データが含まれているか否かを判断し、子機スロットで受信した場合には子機パケットのペイロードフィールドに描画データが含まれているか否かを判断する。ステップS87で“NO”であれば、つまり、描画データを受信していない場合には、処理はステップS85へ戻る。
ステップS87で“YES”であれば、CPUコア42は、ステップS89で、描画データに付加されたID(識別番号)を抽出して、その識別番号と自機の識別番号とを照合し、ステップS91で両者が一致したか否かを判断する。ステップS91で“NO”であれば、つまり、受信したデータが自機宛の送信データでなかった場合には、CPUコア42は、ステップS93で、受信した描画データをRAM48の他機描画データ記憶領域98には格納せずに破棄して、処理はステップS85に戻る。
一方、ステップS91で“YES”であれば、つまり、受信したデータが自機宛の送信データであった場合には、CPUコア42は、ステップS95で、受信した描画データをRAM48の他機描画データ記憶領域98に書き込む。この描画データは、受信データのPIDフィールドまたはCIDフィールドに格納されている送信元の識別番号に関連付けて、他機描画データ記憶領域98に記憶される。
続いて、ステップS97で、CPUコア42は、描画データをLCD12に表示する。つまり、たとえばステップS83で出題データを表示した場合と同様にして、LCD12に、他機のプレイヤによって描画された画像を表示する。これによって、たとえば図11に示したように、LCD12には、受信イラスト画像および残り時間を示す画像を含むゲーム画像が表示される。
また、図11では、受信イラスト画像がゲーム機Aからのものであると送信元の情報を表示している。この実施例では、通信順序の数とゲーム機を示すアルファベットとは対応していて、たとえば、ゲーム機Aは通信順序が1位のゲーム装置10を意味し、ゲーム機Bは通信順序が2位のゲーム装置10を意味する。したがって、たとえば自機の直前のゲーム装置10の全体における順位を通信順序データに基づいて把握することによって、この送信元情報を表示できる。あるいは、送信元情報としては、ユーザ名を表示するようにしてもよい。この場合には、たとえば、描画データを送信するときに、送信元のユーザ名をさらに付加して送信するようにしておいてもよいし、親機が送信する通信順序データにおいて各ゲーム装置10の識別情報にユーザ名を付加しておいてもよい。
なお、この図16では省略しているが、LCD14は、この実施例ではプレイヤが描画するためのキャンバスのように機能するので、ステップS83およびステップS97では、LCD14には、たとえば全ての画素が白色のような所定の色に設定された画像を表示する。
ステップS83またはステップS97で、出題画像または描画画像、すなわち、プレイヤに対する問題または手本となる画像をLCD12に表示すると、続くステップS99で、CPUコア42は、プレイヤの操作入力の受付を開始する。つまり、たとえば、CPUコア42は、タッチパネル22の入力を所定周期で検出するプログラムを起動して、タッチパネル22から出力された操作データをI/F回路54のバッファ(図示せず)から取得し、RAM48のその他の記憶領域106に設けられた操作データ記憶領域(図示せず)に記憶する。あるいは、操作データを所定周期で常時検出するようにしている場合には、CPUコア42は画像描画プログラムを起動させるようにしてもよい。
続いて、図17のステップS101で、CPUコア42は、時間カウント処理を実行する。つまり、プレイヤの操作入力の受付を開始してからの経過時間を計測する処理を実行する。たとえば、CPUコア42は、まず、受付開始時に時計IC66から出力された時計データをRAM48のその他の記憶領域106に記憶しておく。そして、CPUコア42は、このステップS101の処理を実行するごとに、時計IC66からの時計データを取得してRAM48に記憶する。そして、現時刻と受付開始時の時刻との差分から経過時間を算出し、すなわち、経過時間データを生成して、経過時間データ記憶領域104に記憶する。なお、経過時間はRAM48などにタイマを設けてカウントするようにしてもよい。
ステップS103では、CPUコア42は、時間表示更新処理を実行する。つまり、所定の制限時間の値から経過時間データ記憶領域104に記憶された経過時間の値を差し引くことによって、制限時間までの残り時間を算出して、つまり、残り時間データを生成してRAM48のその他の記憶領域106に記憶する。たとえば図8および図9等に示した残り時間の表示画像は、この残り時間データの値に基づいて表示される。
ステップS105では、CPUコア42は、プレイヤの操作に基づいてLCD14に画像を描画させる。つまり、CPUコア42は、その他の記憶領域106の操作データ記憶領域に記憶されたタッチパネル22の操作データに基づいて、画像の描画を行う。操作データはプレイヤの操作した位置座標を示すものであり、その位置座標は、入力位置座標検出プログラムによって検出される。そして、たとえば、CPUコア42は、GPU52(またはGPU50)を用いて、VRAM58(またはVRAM56)に記憶されたLCD14に表示すべき画像データにおいて、操作位置に対応する位置の画素の色を、キャンバスとして表示されている現在の色(たとえば白色)とは異なる色(たとえば黒色)に変更する。そして、LCDコントローラ60は、VRAM58(またはVRAM56)に記憶された描画データをLCD14に出力し、その描画画像をLCD14に表示する。
そして、ステップS107で、CPUコア42は、経過時間データ記憶領域104に記憶された経過時間データが所定の制限時間に達したか否かを判断する。ステップS107で“NO”であれば、処理はステップS101に戻る。このようにして、ステップS107で経過時間が制限時間に達したと判定されるまで、ステップS101−S105の処理が繰り返されて、プレイヤの操作に応じた画像の描画が行われる。
そして、ステップS107で“YES”であれば、CPUコア42は、ステップS109で、プレイヤの入力の受付を停止する。つまり、たとえば、CPUコア42は、タッチパネル22の入力を検出するプログラムを終了することによって、RAM48のその他の記憶領域106の操作データ記憶領域へのタッチパネル操作データの書き込みを終了したり、あるいは、画像描画プログラムを終了したりする。
続いて、ステップS111で、CPUコア42は入力受付を停止したことを報知する。つまり、たとえば、CPUコア42は、RAM48の画像データ記憶領域92に記憶された受付停止報知用画像データに基づいて、GPU50(またはGPU52)およびLCDコントローラ60を用いて、たとえば図9に示すような受付停止を報知する画像をLCD12に表示する。なお、音を出力する場合には、CPUコア42は、RAM48のその他の記憶領域106に記憶された受付停止報知用サウンドデータをI/F回路54に与えてスピーカ32からその音を出力する。
そして、ステップS113で、CPUコア42は、プレイヤによってLCD14に描画された画像をRAM48の自機描画データ記憶領域96に書き込む。つまり、CPUコア42は、ステップS105の処理で生成されたVRAM58(またはVRAM56)の描画画像の画像データをGPU52(またはGPU50)を介して読み出して、RAM48の自機描画データ記憶領域96に格納する。
続いて、ステップS115で、CPUコア42は、自機の通信順序が最後であるか否かを通信順序データに基づいて判断する。ステップS115で“NO”であれば、ステップS117で、CPUコア42は、通信順序データを参照して、次の順位のゲーム装置10のIDを検索する。そして、ステップS119で、CPUコア42は、無線通信部64を介して、検索されたIDとRAM48の自機描画データ記憶領域96に記憶された自機描画データとを、自機に割り当てられたタイムスロットで各ゲーム装置10に送信する。つまり、CPUコア42は、次の順位の識別番号の付加された自機描画データをペイロードフィールドに格納したパケットデータを生成して送信する。したがって、次の順位に相当するゲーム装置10では、図16のステップS87で描画データを受信したと判断されるので、そのゲーム装置10で伝言ゲームが行われることとなる。
続いて、ステップS121では、CPUコア42は、描画画像を送信したことを報知する。つまり、たとえば、CPUコア42は、RAM48の画像データ記憶領域92に記憶された送信報知用画像データに基づいて、GPU50(またはGPU52)およびLCDコントローラ60を用いて、図10に示すような送信を報知する画像をLCD12に表示する。なお、上述の受付停止の報知の場合と同様にして、送信を報知するための音をスピーカ32から出力してもよい。
一方、ステップS115で“YES”であれば、つまり、自機が伝言ゲームの終点である場合には、CPUコア42は、ステップS123で、ゲーム終了フラグを設定する。つまり、CPUコア42は、ゲーム終了フラグ設定記憶領域102に、伝言ゲームの終了を示すデータを書き込む。そして、ステップS125で、CPUコア42は、無線通信部64を介して、ゲーム終了フラグを自機に割り当てられたタイムスロットで各ゲーム装置10に送信する。つまり、CPUコア42は、ゲーム終了フラグをペイロードフィールドに格納した送信データを生成して送信する。ステップS121またはステップS125を終了すると、この伝達ゲーム処理を終了して、処理は図13のステップS7へ戻る。
図13のステップS7では、CPUコア42は結果表示処理を実行する。この結果表示処理の動作の一例が図18に示される。
図18のステップS141で、CPUコア42は、ゲーム終了フラグを受信(または送信)したか否かを判断する。つまり、通信順位が最後のゲーム装置10では、ゲーム終了フラグを送信したか否かが判断される。一方、通信順位が最後でないゲーム装置10は、自機での描画を終えた後、他のゲーム装置10で伝言ゲームが進行されるので、伝言ゲームが終了するのを待っている。したがって、通信順位が最後でないゲーム装置10では、通信順位が最後のゲーム装置10からゲーム終了フラグを受信した否かが判断される。たとえば、通信順位が最後でないゲーム装置10のCPUコア42は、無線通信部64を介して、自機タイムスロット以外のタイムスロットでデータの受信を試みる。そして、親機スロットでデータを受信した場合には、親機パケットのペイロードフィールドにゲーム終了フラグが含まれているか否かを判断し、子機スロットでデータを受信した場合には、子機パケットのペイロードフィールドにゲーム終了フラグが含まれているか否かを判断する。なお、ゲーム終了フラグが含まれている場合には、ゲーム終了フラグ設定記憶領域102にゲーム終了フラグを設定する。
ステップS141の処理で“YES”と判断されると、CPUコア42は、ステップS143で、無線通信部64を介して、RAM48の自機描画データ記憶領域96に記憶されている自機描画データを、自機に割り当てられたタイムスロットで各ゲーム装置10に送信する。つまり、親機のCPUコア42は、自機描画データをペイロードフィールドに格納した親機パケットを生成して親機スロットで送信する。子機のCPUコア42は、自機描画データをペイロードフィールドに格納した子機パケットを生成して自機に割り当てられた子機スロットで送信する。また、通信順位が1位であるゲーム装置10のRAM48には出題データが記憶されているので、当該ゲーム装置10は、出題データ記憶領域94に記憶されている出題データを、自機に割り当てられたタイムスロットで各ゲーム装置10にさらに送信する。
続いて、ステップS145で、CPUコア42は、無線通信部64を介して、データの受信を試みて、各ゲーム装置10から描画データを受信する。そして、各描画データを各識別番号に関連付けて他機描画データ記憶領域98に記憶する。また、通信順序が1位でないゲーム装置10では、さらに出題データを受信して、出題データ記憶領域94に記憶する。
そして、ステップS147で、CPUコア42は、自機描画データ、各他機描画データおよび出題データを一覧で表示する。つまり、たとえば、CPUコア42は、GPU50(またはGPU52)を用いて、自機描画データ、各他機描画データおよび出題データに基づいて、VRAM56(またはVRAM58)に、出題画像および通信順位に従って並べられた各描画画像を含む全経過一覧画像の画像データを生成する。そして、CPUコア42は、LCDコントローラ60を用いて、図12に示したようにその一覧画像をLCD12に表示する。さらに、CPUコア42は、GPU52(またはGPU50)を用いて、出題データに基づいて正解画像の画像データをVRAM58(またはVRAM56)に生成し、LCDコントローラ60を用いて、図12に示したようにその正解画像をLCD14に表示する。ステップS147を終了すると、処理は図13のステップS9に戻る。
図13のステップS9では、CPUコア42は、ゲーム終了であるか否かを判断する。つまり、たとえば、プレイヤの操作スイッチ20またはタッチパネル22の操作によって、他の伝言ゲームをプレイするかまたはゲームを終了するかのいずれが指示されたかを判断する。ステップS9で“NO”であれば、処理はステップS3に戻って他の伝言ゲームを実行し、“YES”であればこのゲーム処理を終了する。
この実施例によれば、プレイヤの操作入力を受け付けてからの経過時間を計測し、その経過時間が所定の制限時間に達したときに、プレイヤの操作入力の受付を停止し、プレイヤによって描画された画像データを他のゲーム装置10に強制的に送信するようにした。このようにプレイヤの操作入力可能時間に制限を設けて入力情報を強制的に他のゲーム装置に送信するようにしたので、プレイヤが制限時間内に描画を完成させなければならないような緊張感のあるゲームを実現することができ、ゲームの娯楽性や面白みを高めることができる。
なお、上述の実施例では、出題データは、図18に示す結果表示処理において各ゲーム装置10に送信されるようにしていたが、出題データは、たとえば図17のステップS119で自機描画データに続けて次の通信順序のゲーム装置10に送信されるようにしてもよい。ただし、この場合には、図16のステップS81では、出題データが出題データ記憶領域94にあるか否かを判定するのではなく、通信順序データに基づいて自機の通信順位が1位であるか否かを判定する必要がある。あるいは、このように通信順序が1位であるか否かをステップS81で判定するようにした場合には、図15の通信順序設定処理で出題データを受信したときは、すべての子機が出題データを破棄せずに出題データ記憶領域94に格納するようにしてもよい。
また、上述の各実施例では、プレイヤが描画した画像データを、プレイヤによって入力された入力情報として他のゲーム装置10に伝達するようにしていたが、伝達される入力情報は描画データに限られるものではなく適宜変更され得る。たとえば、図19に示す他のゲームでは、操作キー画像の選択によって入力された情報が送信される。
具体的には、図19には、通信順序が1位のゲーム装置10のゲーム画像の一例が示される。このゲームでは、LCD12に出題画像が表示され、LCD14には、操作キー画像が表示される。各操作キー画像には、この例では、たとえば仮名文字や濁点、半濁点記号などが示される。ただし、操作キー画像にはアルファベットなど他の文字ないし記号が示されてもよい。
また、図19の例では、各操作キー画像はランダムな配置で表示される。したがって、プレイヤは操作したいキー画像を探す必要がある。これによって、キー選択の難易度を上げることができ、ゲームの緊張感をより高めることができる。しかし、各操作キー画像は規則的に配列されて表示されてもよい。
このゲームでは、プレイヤはタッチパネル22の押圧操作によって操作キー画像を選択し、出題に対する解答を入力する。図19の例では、出題画像として、「いもむし」が示されているので、プレイヤは、「い」、「も」、「む」および「し」の順に4つの操作キー画像を制限時間内に操作する必要がある。プレイヤの入力受付が開始されると、タッチパネル22の操作データに基づいて、操作位置が検出される。そして、操作キー画像の配置位置データと照合することによって、操作位置に対応する位置の操作キー画像が特定される。そして、プレイヤの入力情報として、選択入力の履歴を示す選択入力データが生成され、RAM48の所定領域に記憶される。選択入力データでは、選択された文字の種類および順序が分かるように、たとえば操作キー画像の示す文字ないし記号の画像の指定データ(画像の識別情報)が、入力された順序に従って記述される。そして、経過時間が制限時間に達したときには、選択入力データが次の通信順序に相当するゲーム装置10宛に送信される。
なお、上述の描画データを伝達するゲームでは、入力情報(描画画像)がLCD14に表示されたが、この図19の例では、プレイヤによって選択入力された情報はLCD14には表示されない。この場合、プレイヤは、操作時には自己の選択入力が確認できないので、選択ミスが許されず、したがって、緊張感をより高めたゲームを実現できる。しかし、選択入力された情報をLCD14に表示するようにしてもよい。この場合には伝達される情報の正確性を高めることが可能である。
次の順序のゲーム装置10では、選択入力データを受信すると、その選択入力データが他機選択入力データとしてRAM48の所定領域に格納される。そして、この他機選択入力データに基づいて、図20に示すように、他のゲーム装置10で入力された順に文字ないし記号の画像が並べられたゲーム画像が生成されて、LCD12に表示される。図20の例では、LCD12には「いもむし」の未完成の文字列「いもむ」が表示されている。通信順序が1位でないゲーム装置10のプレイヤは、このような他のゲーム装置10の入力情報が文字ないし記号等を用いて示された画像を参照して、自機での入力操作を制限時間内に行う必要がある。
また、上述の図19および図20の例では、LCD14に複数の操作キー画像を表示して、その操作キー画像の示す文字ないし記号等を選択させるようにしているが、プレイヤに選択させる画像は適宜変更され得る。たとえば、他のゲームでは、LCD14に複数のキャラクタ画像等を表示して、出題画像に関連する画像を選択させるようにしてもよい。
なお、上述の各実施例では、入力情報(描画データ、選択入力データ)はタッチパネル22の操作データに基づいて生成されたが、場合によっては操作キー20の操作データに基づいて生成されてもよい。
また、上述の各実施例では、子機が子機スロットで送信したデータを、親機ばかりでなく他の子機も直接受信するように説明したが、データの通信方法はこれに限られない。たとえば、子機が送信するデータは親機が一旦受信するようにして、その後、親機が他の子機へ親機スロットで送信するようにしてもよい。
また、上述の各実施例では、各ゲーム装置10は、たとえば時分割多元接続方式をベースにした無線通信をするようにしているが、各ゲーム装置10に無線LANアダプタを設けておいて、各ゲーム装置10が無線LANを介して接続されるようにしてもよい。あるいは、各ゲーム装置10は外部拡張コネクタを介してケーブルで互いに接続されるようにしてもよい。