図1を参照して、この発明の一実施例である通信ゲームシステム100は複数のゲーム装置10を含む。この実施例では、観戦モード(ゲームには参加していないゲーム装置で、ゲームに参加しているゲーム装置と同じようにゲーム画面を見ることができるモード)が実行できるので、原則的に3台以上のゲーム装置10で構成される。
ただし、ゲーム装置10内のコンピュータ(後述のCPUコア42)がバーチャルプレイヤ(実施例では、「ロボ」と呼ぶ。)の機能を果たす場合には、そのコンピュータも1台のゲーム装置とみなすことができるので、観戦モードを実行するためには、少なくとも2台以上のゲーム装置10があればよい。たとえば、1台のゲーム装置によって第1のプレイヤがそのゲーム装置内のコンピュータと対戦ゲームをプレイしているとき、他のゲーム装置を操作している第2のプレイヤがその第1のプレイヤとコンピュータとの対戦ゲームを観戦することを想定できる。
また、通信ゲームシステム100では、複数のゲーム装置10の各々は、通信(この実施例では、無線通信)可能に接続されており、1つのゲーム装置10が親機となり、それ以外の他のゲーム装置10は子機となる。
図2は図1に示すゲーム装置10の外観を示す図解図である。この図2を参照して、ゲーム装置10は、第1の液晶表示器(LCD)12および第2のLCD14を含む。このLCD12およびLCD14は、所定の配置位置となるようにハウジング16に収納される。この実施例では、ハウジング16は、上側ハウジング16aと下側ハウジング16bとによって構成され、LCD12は上側ハウジング16aに収納され、LCD14は下側ハウジング16bに収納される。したがって、LCD12とLCD14とは縦(上下)に並ぶように近接して配置される。
なお、この実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
図2からも分かるように、上側ハウジング16aは、LCD12の平面形状よりも大きな平面形状を有し、一方主面からLCD12の表示面を露出するように開口部が形成される。また、上側ハウジング16aには、音抜き孔18が形成される。一方、下側ハウジング16bは、その平面形状が上側ハウジング16aと同じ或いは略同じに選ばれ、横方向の略中央部にLCD14の表示面を露出するように開口部が形成される。また、下側ハウジング16bには、操作スイッチ20(20a,20b,20c,20d,20e,20Lおよび20R)が設けられる。
また、上側ハウジング16aと下側ハウジング16bとは、上側ハウジング16aの下辺(下端)と下側ハウジング16bの上辺(上端)の一部とが連結部15によって回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、LCD12の表示面とLCD14の表示面とが対面するように、上側ハウジング16aを回動させて折りたたんでおけば、つまりハウジング16(16a,16b)を閉じれば、LCD12の表示面およびLCD14の表示面に傷がつくなどの破損を防止することができる。
なお、図1および図2では、ハウジング16(16a,16b)を開いた状態を示しており、このとき、プレイヤはゲーム装置10を用いてゲームをプレイすることができる。
操作スイッチ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は、プッシュボタンで構成され、ゲームを開始(再開)したり、一時停止(Pause)したりする等に用いられる。セレクトスイッチ20cは、プッシュボタンで構成され、ゲームモードの選択等に用いられる。
動作スイッチ20dすなわちAボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。さらに、ゲームに関するメニューを決定することもできる。動作スイッチ20eすなわちBボタンは、プッシュボタンで構成され、セレクトスイッチ20cで選択したゲームモードの変更やAボタン20dで決定したアクションの取り消し等のために用いられる。
動作スイッチ(左押しボタン)20Lおよび動作スイッチ(右押しボタン)20Rは、プッシュボタンで構成され、左押しボタン(Lボタン)20Lおよび右押しボタン(Rボタン)20Rは、Aボタン20dおよびBボタン20eと同様の操作に用いることができ、また、Aボタン20dおよびBボタン20eの補助的な操作に用いることができる。
また、LCD14の上面には、タッチパネル22が装着される。タッチパネル22としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル22は、その上面(検出面)をスティック24ないしはペン(スタイラスペン)或いは指(以下、これらを「スティック24等」という場合がある。)で、押圧したり、撫でたり、触れたりすることにより操作すると、スティック24等の操作位置の座標を検出して、検出した座標(検出座標)に対応する座標データを出力する。このようなタッチパネル22は、ポインティングデバイスの一例であり、たとえばマウスなどの他の形式のポインティングデバイスが用いられてもよい。
実施例では、LCD14(LCD12も同じ、または略同じ。)の表示面の解像度は256dot×192dotであり、タッチパネル22の検出面の検出精度もその解像度に対応して256dot×192dotとしてある。ただし、タッチパネル22の検出面の検出精度は、LCD14の表示面の解像度よりも低くてもよく、高くてもよい。
LCD12およびLCD14には異なるゲーム画像(ゲーム画面)を表示することができる。たとえば、一方のLCD(たとえば、LCD12)にゲームをプレイするためのゲーム画面を表示し、他方のLCD(たとえば、LCD14)に当該ゲームを操作するための文字情報を入力したり、アイコンを指示したりするためのゲーム画面(操作画面)を表示することができる。したがって、プレイヤはスティック24等でタッチパネル22を操作することにより、LCD14の画面上で、文字情報(コマンド)を入力したり、アイコン(或いは所定の画像)を指示したりすることができる。
このように、ゲーム装置10は、2画面分の表示部となるLCD12およびLCD14を有し、いずれか一方(この実施例では、LCD14)の上面にタッチパネル22が設けられるので、2画面(12,14)と2系統の操作部(20,22)とを有する構成になっている。
また、この実施例では、スティック24は、たとえば上側ハウジング16aの側面(右側面)近傍に設けられる収納部(収納穴)26に収納することができ、必要に応じて取り出される。ただし、スティック24を設けない場合には、収納部26を設ける必要もない。
さらに、ゲーム装置10はメモリカード(またはゲームカートリッジ)28を含み、このメモリカード28は着脱自在であり、下側ハウジング16bの裏面ないしは下端(底面)に設けられる挿入口30から挿入される。図2では省略するが、挿入口30の奥部には、メモリカード28の挿入方向先端部に設けられるコネクタ(図示せず)と接合するためのコネクタ46(図3参照)が設けられており、したがって、メモリカード28が挿入口30に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア42(図3参照)がメモリカード28にアクセス可能となる。
さらにまた、ゲーム装置10はアンテナ32を含み、たとえば、このアンテナ32によって微弱電波を送受信することにより、他のゲーム装置10との間で無線通信が可能である。詳細な説明は省略するが、この実施例で示すゲーム装置10が送受信する微弱電波は、電波法による規制のかからない強度に設定されている。
また、図2では表現できないが、上側ハウジング16aの音抜き孔18と対応する位置であり、この上側ハウジング16aの内部にはスピーカ34(図3参照)が設けられる。
なお、図2では省略するが、たとえば、下側ハウジング16bの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング16bの底面側には、電源スイッチ、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなどが設けられる。
図3はゲーム装置10の電気的な構成を示すブロック図である。図3を参照して、ゲーム装置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に記憶(ロード)される。
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は、描画に必要な画像データを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に出力する。また、LCDコントローラ60は、レジスタ62のデータ値が「1」である場合には、GPU50によって作成されたゲーム画像データをLCD14に出力し、GPU52によって作成されたゲーム画像データをLCD12に出力する。
なお、LCDコントローラ60は、VRAM56およびVRAM58から直接ゲーム画像データを読み出したり、GPU50およびGPU52を介してVRAM56およびVRAM58からゲーム画像データを読み出したりする。
I/F回路54には、操作スイッチ20,タッチパネル22、スピーカ32およびホール素子36が接続される。ここで、操作スイッチ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から出力する。
また、図2に示したように、ゲーム装置10には、アンテナ32が接続されており、このアンテナ32は無線通信ユニット64に接続される。無線通信ユニット64は、バス44を介してCPUコア42に接続される。CPUコア42がゲームデータやコマンドを無線通信ユニット64に与えると、無線通信ユニット64はゲームデータ等をアナログ信号に変換して、微弱電波でアンテナ32から送信(発信)する。一方、無線通信ユニット64は、他のゲーム装置10から送信された微弱電波を、アンテナ32を介して受信し、受信した微弱電波からアナログ信号を分離し、ディジタル変換した後、CPUコア42に与える。このようにして、他のゲーム装置10との間で無線通信が行われる。したがって、システム100では、各々のゲーム装置10で通信して同一の仮想ゲーム(通信ゲーム)を行うことができる。
図4はRAM48のメモリマップである。この図4を参照して、RAM48はゲームプログラム記憶領域480およびデータ記憶領域482を含む。ゲームプログラム記憶領域480にはゲームプログラムが記憶され、このゲームプログラムは、ゲームメイン処理プログラム480a、ゲーム画像生成プログラム480b、ゲーム画像表示プログラム480c、通信処理プログラム480d、データ送受信プログラム480e、ロボ制御プログラム480fなどによって構成される。
この実施例では、通信対戦ゲームをプレイする各ゲーム装置にはすべて同じゲームプログラムが記憶され、親機から転送または送信される各ゲーム装置の操作データ(キーセットとも呼ばれる)を受信して各ゲーム装置のコンピュータ(CPUコア)42が独自にそのゲームプログラムを実行する。つまり、各ゲーム装置では同じキーセットで同じゲームプログラムを実行するので、各自ゲーム画像を生成して表示することができる。したがって、親機となるゲーム装置から各子機にゲーム画像を送信する必要がなく、親機と子機との間の通信データ量を大幅に削減できる。
ただし、一般的な通信ゲームのように、すべて親機が画像やデータを生成し、各子機毎にその子機独自のデータとして配分するような方式の通信対戦ゲームも排除するものではない。
ゲームメイン処理プログラム480aは、ゲーム装置10で実行される通信ゲーム(対戦ゲーム)のメインルーチンを処理するためのプログラムである。ゲーム画像生成プログラム480bは、通信対戦ゲームに登場するゲームオブジェクトを含むゲーム画像を、後述する画像データ482aを用いて生成するためのプログラムである。ここで、ゲームオブジェクトとしては、プレイヤの操作(指示)に従って動作等が指示されたプレイヤオブジェクト、プレイヤの操作によらないでコンピュータ(CPUコア42)の指示に従って動作等が指示されるノンプレイヤオブジェクト(敵オブジェクトなど)、アイテムオブジェクトおよび背景オブジェクトなどが該当する。ゲーム画像表示プログラム480cは、ゲーム画像生成プログラム480bに従って生成されたゲーム画像をLCD12またはLCD14に表示するためのプログラムである。
また、このゲーム画像生成プログラム480bはさらに、各ゲーム装置のゲームプレイヤに入力や選択を促すGUI(Graphical User Interface)画面、たとえばゲームセレクト画面70(図9,図10)、ゲームかくにん(確認)画面80(図11)、ゲームせってい(設定)画面90(図12)、メンバーせってい(設定)画面110(図13)、ロボ追加画面120(図14)、結果画面160(図22)(いずれも後述)なども生成する。ただし、「ロボ」とは、リアルプレイヤと対戦するコンピュータすなわちバーチャルプレイヤのことである。
ゲーム画像表示プログラム480dはそのようにして生成したゲーム画像を図2に示すLCD12および/または14に表示するためのプログラムである。
通信処理プログラム480dは、通信機能(無線通信ユニット64)をオン/オフするとともに、通信機能がオンである場合に、他のゲーム装置10との間で、データ通信を実行するための通信プロトコルなどを含むプログラムである。ただし、通信機能をオン/オフする処理に代えて、CPUコア42がこの通信処理プログラム480dの実行を開始/停止するようにしてもよい。
データ送受信プログラム480eは、ゲーム装置10の各操作手段20(20a-20e,20L,20R)を操作したときの操作データ(これはキーセットとも呼ばれる)を生成し、さらには、自分が親機のゲーム装置として機能するときは、各子機のゲーム装置からの操作データ(キーセット)を受信し、それを自分の操作データ(キーセット)と一緒にすべての子機ゲーム装置にブロードキャスト(送信)する。ただし、自分が子機のゲーム装置として機能しているときには、自分のキーセット(操作データ)を親機として機能するゲーム装置に送信する必要がある。
なお、本実施例では、子機の操作データを親機に一旦集めて、親機から各子機にキーセットを送信するようにしたが、各機間で直接通信することによりキーセットを生成してもよい。
ロボ制御プログラム480fは、コンピュータ(CPUコア)42が上述したロボとして対戦ゲームを戦うときの操作または制御を司るプログラムであり、1台のゲーム装置で制御できるロボの数は、対戦ゲームが2−8人でプレイできることを考えると、2−7であり、このロボ制御プログラム480fは2−7人のロボをそれぞれ別々に制御できるようにしている。
なお、図示は省略するが、ゲームプログラム記憶領域480には、音楽(BGM)、効果音、プレイヤオブジェクトなどの声(擬声音)などのゲームに必要な音を出力するためのプログラムも記憶される。
データ記憶領域482には、画像データ482aおよびゲームデータ482bなどのデータが記憶される。画像データ482aは、上述したゲームオブジェクトなどのゲーム画像を生成するためのデータ(ポリゴンデータ、テクスチャデータなど)である。ゲームデータ482bは、ゲームの進行に従って発生し、ゲームメイン処理プログラム480aの実行に必要なデータを含む。たとえば、ゲーム装置10の操作手段20(20a-20e,20L,20R)を操作したときの操作データ(キーセット)を生成し、そのキーセットをゲームデータ482bとして記憶するとともに、自分が子機のゲーム装置として機能するときは、親機から一斉に各子機に送信される他のゲーム装置からの操作データ(キーセット)を受信し、それをこのゲームデータ482bとして記憶する。
また、データ記憶領域482には、メンバーテーブル482cが設定される。このメンバーテーブル482cは、そのとき通信対戦ゲームを実行するメンバー(プレイヤやロボ)のID(識別番号)、ユーザ名またはプレイヤ名、マーク(各ユーザが個別に設定した、動物や植物などを図案化したシンボル画像)などを保持しているテーブルであり、このメンバーテーブル482cも、上述のように各ゲーム装置が各子機のキーセットを受けて同じゲームプログラムを実行するのであるから、当然、各ゲーム装置で同じテーブルである必要がある。したがって、この実施例では、メンバーテーブル482cは親機として動作するゲーム装置が一元的に作成したり更新したりして、それをすべての子機として動作するゲーム装置に送信する。そのため、ここでのメンバーテーブル482cは親機が作成(更新)したもので、各ゲーム装置が同じメンバーテーブルを保持することになる。
また、データ記憶領域482にはさらにフラグ482dが設定されている。このフラグ482dは先のゲームデータ482bとして記憶されてもよい。この実施例では、このフラグ482dとして、自分が親機として機能するのかどうかを表す「親フラグ」および自分はゲームに参加するのか観戦するだけなのかを示す「観戦フラグ」などが利用される。親フラグは、親機として動作するときには「1」に設定され、子機のときには「0」に設定される。観戦フラグは、ゲームに参加するとき「0」として、ゲーム参加せずに観戦するだけのとき、「1」としてそれぞれ設定され得る。さらに、「自分フラグ」は、自分のゲーム装置のLCD14で表示するゲーム画面(後述)において、見えるように表示してもよい画像を区別するためのフラグである。
なお、図示は省略するが、データ記憶領域482には、音(音楽)データのような他のデータも記憶され、また、ゲームメイン処理プログラム480aの実行(ゲームの進行)に必要な他のフラグやレジスタなども設けられる。
図1の実施例の通信ゲームシステム100において、各ゲーム装置10は、図5−図7に示すゲーム処理を実行する。ただし、これらの図に示す動作例は、主としてゲーム装置が親機として機能するときの動作を示していることを予め指摘しておく。
自分が親になるためには、この通信対戦ゲームのゲームプログラムを記憶しているメモリカード28(図3)を自分のゲーム装置10のコネクタ46に装着し、そのゲームプログラムを起動することによって、他のメンバーの参加を受け付けるようにすればよい。したがって、まず、図5のステップS1で、メンバー受付処理を実行する。
メンバー受付処理では、ゲーム装置10のCPUコア42は、たとえば、「プレイルームを開く」および「プレイルームを探す」の2つの選択ボタンのあるメニュー画面(図示せず)を第2のLCD14に表示する。前者は親機になることを意味し、後者は子機として参加することを意味している。ユーザないしプレイヤは、タッチパネル22の、そのメニュー画面の「プレイルームを開く」の選択ボタンに相当する位置にタッチする。
そして、CPUコア42は、その親機の情報、たとえばID、ゲーム名、ユーザ(プレイヤ)名などを通信ユニット64(図3)を使ってブロードキャストして、子機の参加を促す。この呼びかけに参加する子機は、その子機の情報、たとえばID、ユーザ(プレイヤ)名などを親機に宛てて送信する。ただし、上述のように、この実施例での各ゲーム装置10間の通信は、微弱電波を利用した無線(Radio)通信である。親機のたるゲーム装置のプレイヤは、応募してきた子機の参加を認めるかどうかを決める権利を有していて、その親機プレイヤが参加を許可した子機の情報だけが登録される。ゲームによって参加できる人数が決まっているので、親機プレイヤはその人数に達するとメンバーを確定する。
ステップS3で参加者が決定されると、次に、ステップS5において、親機のCPUコア42は、通信ユニット64を用いて、登録した各子機のゲーム装置との間で通信接続を確立する。実施例では、無線電波を利用するので、有線におけるケーブルなどを用いた接続形態とはならないが、ゲーム装置相互間において通信ができる状態を、便宜上、「通信接続」と表現する。
そして、次のステップS7で、カートリッジ(メモリカード)28を挿入していない子機のゲーム装置に対して、ゲームプログラムをダウンロードする。そのことによって、すべてのゲーム装置10のRAM48のゲームプログラム記憶領域480(図4)に同じゲームプログラムを設定し、各ゲーム装置のCPUコア42が同じゲームプログラムを実行することができる。
その後、親機のゲーム装置10のCPUコア42は、ステップS9において、図8に示すようなメンバーテーブル482cを生成する。メンバーテーブル482cは、そのときの通信対戦ゲームに登場する各キャラクタをどのプレイヤが操作するかを割り付けたテーブルである。
たとえば、このメンバーテーブル482cにおいて、「操作するキャラクタ」とは、その通信対戦ゲームに登場するプレイヤキャラクタ(プレイヤが操作手段20(図2)を操作したり、タッチパネル22をタッチしたりすることによって所要の動作をさせることができるキャラクタのこと)のことであり、ここでは便宜上、「キャラクタ1」,「キャラクタ2」,「キャラクタ3」および「キャラクタ4」と表記する。
「プレイヤ名」とは、各ゲーム装置を操作するプレイヤの名称であり、ここでは、4人のリアルプレイヤ「あきら」,「へんりー」,「かみとば」および「キャンセル」が例示される。つまり、図8の例では、「あきら」が「キャラクタ1」を操作でき、「へんりー」が「キャラクタ2」を操作でき、「かみとば」が「キャラクタ3」を操作でき、「キャンセル」が「キャラクタ4」を操作できることが示される。
「マーク」とは、そのプレイヤが選択した、自分を示すシンボルのことであり、図示しないマーク設定処理において各自が適宜のマークを選択的に設定する。なお、この「マーク」にはいくつかのジャンル「乗り物」,「動物」,「果物」,「漢字」などがあり、そのマークジャンルから自分用に1つのマークを選択する。このマークはいわば、プレイヤのシンボルまたはニックネームである。
IDは各ゲーム装置に固有に割り当てられているIDで、1台1台のゲーム装置に異なるIDが設定されている。この例示では、「あきら」のゲーム装置にID「1aabbbc1」が設定され、「へんりー」のゲーム装置にID「1aabbbc2」が、「かみとば」のゲーム装置にID「aaabbb11」が、そして「キャンセル」のゲーム装置にID「aaabbb12」が設定されている。
図8のようなメンバーテーブル482cを作成した親機ゲーム装置のCPUコア42は、次のステップS11において、そのメンバーテーブル482cをすべての子機ゲーム装置に送信する。したがって、通信対戦ゲームに参加しているすべてのゲーム装置10に対して同じメンバーテーブル482cが設定される。
続いて、ステップS13でマーク設定処理が実行される。このマーク設定処理では、各ゲーム装置がマック設定画面(図示せず)を表示し、上で説明したマークを設定する。図8ではすべて項目画登録されているメンバーテーブル482cを図示したが、実際には、このマーク設定処理のステップS13が実行されるまでは図8のメンバーテーブル482cのマーク欄には何も登録されていない。そこで、CPUコア42は、ステップS15でメンバーテーブル482cを、マークを登録するように更新し、その更新したメンバーテーブル482cをステップS17で再び各ゲーム装置に送信する。したがって、各ゲーム装置10のRAM48のメンバーテーブル482cはこの時点ですべての必要項目が登録または設定されたものとなる。
次のステップS19で、親機ゲーム装置のCPUコア42は、図10に示すようなゲームセレクト画面70を表示して、親機プレイヤにゲームの選択を行わせる。ただし、子機のプレイヤにゲーム選択をさせることも可能であるが、この実施例では、説明を簡単にするために、親機のプレイヤのみがゲーム選択できるもみのとして説明する。
ゲームセレクト画面70の上部には、そのときメンバーテーブル482c登録してある参加者を示す参加者表示部72が形成される。図この例では、図8のようなメンバーテーブル482cを前提にしているため、参加者表示部72には、プレイヤ名「あきら」,「へんりー」,「かみとば」および「キャンセル」が、そのマークとともに表示される。参加者表示部72の下方には、複数(実施例では7個の)のジャンルボタン74が表示される。このジャンルボタン74はゲームジャンル、たとえば「おてがるトランプ」、「おとなのトランプ」、「トリックテイキング」、「和風ゲーム」、「ボードゲーム」、「バラエティゲーム」、「アクションゲーム」などのゲームジャンルを選択するためのボタンであり、プレイヤまたはユーザがタッチパネル22で該当のジャンルボタンにタッチすることによって、ゲームジャンルを選択できる。選択したゲームジャンルのボタンはたとえば色を違えたりすることによって、他のボタンと区別できる。そして、選択したゲームジャンルはボタン74の下のジャンル表示部76に表示される。図9の例は、「おとなのトランプ」というゲームジャンルが選択されたことを示している。
ゲームジャンルボタン74の下方に、複数の(実施例では8個の)ゲームボタン78が配置される。このゲームボタン78にはそれぞれのゲーム名が付記されている。図9の例では、ゲームジャンルとして「おとなのトランプ」が選択されているのであるから、そのジャンルに含まれる個別のゲーム名、たとえば「セブンブリッジ」、「ポーカー」などが表記される。したがって、プレイヤまたはユーザは、タッチパネル22で該当のゲームボタンにタッチすることによって、ゲーム名を選択できる。選択したゲーム名のゲームボタンは、たとえば色を違えたりすることによって、他のボタンと区別する。
なお、図10のゲームセレクト画面の例では、ジャンルボタン74で「ボードゲーム」が選択され、そのジャンルに包含されるゲームたとえば「リバーシ」、「バックギャモン」、「チャイニーズチェッカー」などを示すゲームボタン78が配置されている。
そして、ステップS21では、親機ゲームそのCPUコア42は、図9または図10のようなゲームセレクト画面によって1つのゲームの選択が確定したかどうか判断する。そして、このステップS21で“YES”が判断されたとき、CPUコア42は、次のステップS23で、図11に示すようなゲームかくにん画面80を第2LCD14に表示し、各プレイヤにゲームスタート前の最終確認を行わせる。
ゲームかくにん画面80には、決定ゲーム表示部82が形成され、その決定ゲーム表示部82には、図示の例でいえば「セブンブリッジ」を表わすゲーム名パネル82aが、そのゲームの概要を説明する説明文82bおよびそれに参加できる人数の表記82cとともに表示される。この決定ゲーム表示部82の下方には、参加者表示部84が形成される。参加者表示部84には参加者表示84aおよびマーク表示84bが設けられる。参加者表示84aには、この図示の例では、メンバーが4人参加することが示され、マーク表示84bには、そのメンバー「あきら」,「へんりー」,「かみとば」および「キャンセル」のそれぞれのマークが表示される。したがって、各レイヤは、そのときプレイしようとしているゲームが「セブンブリッジ」であり、「きつね」、「ひこうき」「勝」および「ばなな」をシンボルとしている4人のメンバーが対戦することがわかる。ただし、図示の例では、「ひこうき」のマークのマーク表示に「×(ばつ)」印が上書きされている。この「×(ばつ)」印は、そのとき「ひこうき」のマークを持ったプレイヤ「あきら」はゲームに参加せず、観戦するだけであることを明示する意味がある。
参加者表示84の下には、ゲームスタートボタン86と、設定へんこうボタン88とが設けられる。ゲームスタートボタン86は、設定やその変更が終了した後に、ゲームを開始させるためのボタンであり、親機ゲーム装置のプレイヤがタッチパネル22で操作することによって、ゲームが開始され、図7に示すゲームルーチンに進む。
設定へんこうボタン88は、各設定を変更したい場合にプレイヤが操作するためのボタンで、この設定へんこうボタン88が、親機ゲーム装置のプレイヤにタッチパネル22で操作されたとき、ステップS25で“YES”が判断され、プロセスは次のステップS27に進む。
ステップS25で“YES”が判断されると、次のステップS27において、親機ゲーム装置のCPUコア42は、次のステップS27において、図12に示すゲームせってい画面90を第2LCD14に表示する。
ゲームせってい画面90には、どの設定を変更するかを指定するためのボタン92,94および96を表示する。メンバー設定ボタン92は、メンバーの人数やロボ(コンピュータ)の強さが変更できるとともに、メンバーがゲームに参加するのか、ゲームを観戦するのかを設定することができる。
そして、CPUコア42は、ステップS29において、タッチパネル22の該当の位置がタッチされたかどうか、つまりメンバー設定ボタン92が操作されたかどうか判断する。
“YES”の場合、CPUコア42は、次のステップS31で、図13に示すメンバーせってい画面110を第2LCD14に表示する。このメンバーせってい画面110においては、プレイヤボタン112が表示される。この例の場合には、メンバーテーブル482cに4人のゲーム参加者が登録されているので、4つのプレイヤボタン112a,112b,112cおよび122dが表示される。これらのプレイヤボタン112a−112dのいずれも、ゲームに参加するか、観戦するかをトグル的に切り替えることができる。つまり、このプレイヤボタン122をタッチすると「ゲーム参加」となり、続いて同じボタンをタッチすると「観戦」を設定することができる。
メンバー設定が終了すると、ステップS33で“YES”が判断された後、CPUコア42は、次のステップS35において、先のメンバー設定処理によって観戦者が設定されたかどうか判断する。もし、観戦者として設定した場合、そのプレイヤのゲーム装置のRAM48のフラグ領域482cの観戦フラグが「1」に設定される(ステップS37)。
その後、ステップS39でロボ(ゲームに参加するコンピュータのこと)を追加するかどうか判断する。たとえば、多人数でプレイしたほうが面白いゲームなどで、参加人数がたとえば2人だったような場合、「ロボ」を増やしてゲームの面白さを増すことが考えられる。そのような場合には、次のステップS41で図14に示すようなロボ追加画面120を表示する。
図14のロボ追加画面120において、上部には参加者表示部122が形成され、この図示の例では、そこに4人のプレイヤ「あきら」,「へんりー」,「かみとば」および「キャンセル」と1つのロボ(ロボ1)が表示されている。したがって、この例では4人のリアルプレイヤの他に、1人のバーチャルプレイヤがゲームに参加することになる。そして、このロボ追加画面120のさらに下部にはロボ増加ボタン124aとロボ減少ボタン124bとが上下に並んで配置され、それらの下方には参加させることにしたロボの強さを3段階で設定できる強さ設定ボタン126が設けられる。したがって、親機(子機でもよい)のプレイヤは、リアルプレイヤも含めて遊べる人数の上限まで、任意の強さレベルのロボ(バーチャルプレイヤ)を追加することができる。
ロボ追加処理が終了すると、ゲーム確認が終了したことになり、ステップS43で“YES”が判断され、先のステップS23に戻る。ゲーム確認が終了しているので、次のステップS25では、“NO”が判断されるはずで、この場合には、ゲームスタートとなる。
ゲームスタートとなれば、各ゲーム装置のCPUコア42(図3)は図7に示すフロー図に従って動作する。
図7の最初に示すステップS51では、入力情報共有化処理が実行される。この入力情報共有化処理とは、通信対戦ゲームに参加するすべてのゲーム装置で入力情報(キーセット)を共有しようとする処理で、この入力情報共有化処理は他の処理と並列的に実行される。この入力情報共有化処理によって全ゲーム装置10の入力情報が全ゲーム装置10で共有される。各ゲーム装置10は基本的には共有化入力情報(キーセット)を使用してすべてのゲーム処理を実行する。入力情報共有化処理の一例が図15に詳細に示される。この入力情報共有化処理の各ステップは、ゲーム処理が終了するまで一定時間ごと(たとえば1フレームごと)に繰り返し実行される。
具体的には、図15の最初のステップS71で、CPUコア42は、操作入力データを図3に示すI/F回路54を介して取得し、RAM48の記憶領域482bに記憶する。次にステップS73でCPUコア42はフラグ領域482dの親フラグに「1」が記憶されているか否か、つまり、そのゲーム装置10が親機か子機かを判断する。親機の場合にはステップS75からS81の処理が実行され、子機の場合にはステップS83からS89の処理が実行される。
ステップS73で“YES”であれば、つまり、このゲーム装置10が親機である場合には、CPUコア42は、ステップS75で、無線通信ユニット64を介して各子機から操作入力データを受信したか否かを判断する。後述するように、子機は一定時間ごとに操作入力データを親機に送信するので、通信状態が安定している限り、親機は全ての子機から操作入力データを受信できる。ステップS75で“YES”であれば、CPUコア42は、ステップS77で、受信データから各子機の操作入力データを取得する。ステップS75で“NO”であれば、つまり、通信エラーなどで子機から操作入力データを受信できなかった場合には、処理はそのままステップS79へ進む。
ステップS79で、CPUコア42は、ステップS71で取得した自分の操作入力データと、ステップS77で取得した各子機の操作入力データとから、キーセットデータを生成して、RAM48の記憶領域482bに記憶する。キーセットデータは、各ゲーム装置10のIDに対応付けられた各ゲーム装置10の操作入力データを含む。なお、受信できなかった子機の操作入力データとしてはたとえば操作なしを示すデータを記憶する。そして、ステップS81で、CPUコア42は、入力セットデータを各子機に無線通信ユニット64を介して送信する。ステップS81を終了すると処理はステップS71へ戻る。
一方、ステップS73で“NO”であれば、つまり、このゲーム装置10が子機である場合には、CPUコア42は、ステップS83で操作入力データを親機に無線通信ユニット64を介して送信する。
また、ステップS85で、CPUコア42は、無線通信ユニット64を介して親機から入力セットデータを受信したか否かを判断する。上述のように、親機は一定時間ごとに入力セットデータを全子機に送信するので、通信状態が安定している限り、子機は親機から入力セットデータを受信できる。
ステップS85で“YES”であれば、CPUコア42は、ステップS87で、受信データからキーセットデータを取得して、RAM48の記憶領域482bに記憶する。一方、ステップS85で“NO”であれば、つまり、通信エラーなどで親機から入力セットデータを受信できなかった場合には、CPUコア42は、ステップS89でキーセットデータを初期化して、各ゲーム装置10の操作入力データとしてたとえば操作なしを示すデータを記憶する。ステップS87またはS89を終了すると処理はステップS71へ戻る。
このように、図7のステップS51で入力情報共有化処理が実行されることによって、全ゲーム装置10に同じキーセットデータが記憶され、各ゲーム装置では、ステップS53において、そのキーセットデータに基づいて、自分のゲームプログラム領域480に設定されているゲームプログラムを実行する。したがって、各ゲーム装置は、親機か子機かの違いはあるものの、基本的には同じゲームプログラムを同じキーセットで処理することになり、各ゲーム装置で同じゲーム処理が実行され、同じ状態データが生成される。
なお、本実施例ではすべてのゲーム装置の入力情報を共有化したが、観戦するゲーム装置の入力情報は共有化する必要はなく、参戦するゲーム装置のみの入力情報を共有化するようにしてもよい。
このようにして、各ゲーム装置で同じキーセットで同じゲーム処理が実行されることにより同じゲーム状態データ(例えば、各プレイヤの手持ちトランプカードの種類データなど)が生成されるが、この状態データに基いて各ゲーム装置で異なるゲーム画像が生成される。以下に詳細に説明する。
各ゲーム装置では、キーセットのうち参加ゲーム機Aの操作入力データを用いてゲームデータA(参加ゲーム機A用のゲームデータ)を変化させ(典型的にはゲームオブジェクトAを動作させたり状態を変化させ)、キーセットのうち参加ゲーム機Bの操作入力データを用いてゲームデータB(参加ゲーム機B用のゲームデータ)を変化させ(典型的にはゲームオブジェクトBを動作させたり状態を変化させ)、キーセットのうち参加ゲーム機Cの操作入力データを用いてゲームデータC(参加ゲーム機C用のゲームデータ)を変化させる(典型的にはゲームオブジェクトCを動作させたり状態を変化させる)。参加ゲーム機が4台以上の場合も同様である。このようにして各ゲーム装置で同一の状態データ(ゲームデータAとゲームデータBとゲームデータCの総合データ)が生成される。例えば、例1として、参加ゲーム機A,B,Cごとに手持ちカードデータA,B,Cが設定され、各参加ゲーム装置の操作入力データに基づいて当該ゲーム装置に対応する手持ちカードデータを変化させる。また、例2として、参加ゲーム装置A,B,Cごとに仮想世界を移動するゲームオブジェクトA,B,Cが設定され、各参加ゲーム装置の操作入力データに基づいて当該ゲーム機に対応するゲームオブジェクトを移動させる(仮想空間内の位置データA,B,Cを変更する)。
そして、参加ゲーム機は自機に対応するゲームデータに基いて自機用のゲーム画像を生成する。他機に対応するゲームデータは補助的に利用される。例えば、前述の例1の場合、各参加ゲーム機では、自機用の手持ちカードデータに基いて、自機用の手持ちカードの内容を表したゲーム画像を生成して表示する(本実施例において下画面14に表示される自分の手持ちカード画像)。ここで、他機用の手持ちカードデータに基く情報を補助的に表示してもよい(例えば裏返して枚数のみ表示したり一部の情報のみを表示したりする;本実施例において上画面12に表示される他人の手持ちカード画像)。
また、前述の例2の場合、参加ゲーム装置では、自機に対応するゲームオブジェクトの位置データに基づいて仮想カメラの位置を設定する。
以上を概念的に言い換えれば、各参加ゲーム機ごとにゲームデータが存在し、参加ゲーム機の操作入力データに基づいて対応するゲームデータを変化させる。そして、各参加ゲーム機では、自機に対応するゲームデータに基いてゲーム画像を生成する共通の処理(カードの内容を表示する処理、仮想カメラの位置を決定する処理)が実行される。
また、観戦ゲーム装置では、参加ゲーム装置のうちのいずれか1つを選択可能であり、選択された参加ゲーム装置に対応するゲームデータに基いて自機用のゲーム画像を生成する。
図16には、3人のリアルプレイヤ「かみとば」、「キャンセル」および「へんりー」と1人のバーチャルプレイヤ「ロボ1」とが、ゲームジャンル「おとなのトランプ」に含まれる1つの対戦ゲーム「セブンブリッジ」をプレイしているときのゲーム画面130が例示される。
リアルプレイヤである「あきら」が図13のメンバーせってい画面110で「あそばない」つまり観戦モードを設定したため、図14で示すロボ追加画面120の例では4人のリアルプレイヤ「あきら」、「かみとば」、「キャンセル」および「へんりー」のうち「あきら」がプレイヤ表示部122で「あそばない」と表示され、その代わりに、「ロボ1」というバーチャルプレイヤが参加することになっている。したがって、この図16では、「あそばない」(観戦モード)を設定した「あきら」を除く4人の手札が第1個別画像表示部132に表示されている。
そして、そのうちの1人「へんりー」の手札だけが表になって見えるようにされている。したがって、図16の表示例はリアルプレイヤ「へんりー」のものであることがわかる。なぜなら、この第1個別画像表示部132に表示される手札のようなものは、プレイ中のゲーム「セブンブリッジ」のような対戦ゲームにおいては、他のプレイヤには秘匿すべき個人ごとの個別ゲーム画像である。したがって、第1個別画像表示部132に手札が見えるように表示されているゲーム装置は、明らかに、そのリアルプレイヤが操作しているゲーム装置である。
なお、ここでは、対戦ゲームのうち、他のプレイヤに秘匿すべき個別ゲーム画像があるゲームをAタイプゲームと呼び、秘匿すべき個別画像がない非Aタイプゲームと区別する。Aタイプゲームには、たとえば、トランプのような札を使うゲームであれば、「ばばぬき」,「ページワン」,「7ならべ」,「セブンブリッジ」,「麻雀」などがそれに該当する。非Aタイプゲームには、たとえば「チャイニーズチェッカ」,「すごろく」,「大富豪」などの殆どのボードゲームが含まれ、さらには、「ボウリング」,「ダーツ」なども非Aタイプゲームに該当する。
このように、この第1個別画像表示部132には主としてAタイプゲームに参加している各プレイヤの手札のような個別画像が表示されるが、その下方の全体画像表示部134には、場札のように参加プレイヤが同じように見えなければならない全体ゲーム画像が表示される。図16の例では、全体画像表示部134の左側に「セブンブリッジ」のゲーム中に「ポン」や「カン」された札が表向きで表示され、右側には公開した(場に曝した)「役」の札が表示される。
そして、それらの間に、山札(これから各プレイヤに順次配られていく札)表示部136が設定される。この山札表示部136も個別画像表示部である。なぜなら、或るゲーム装置に表示されているゲーム画面のなかで山札の一番上に裏向きになっている札は、次のプレイヤに配られるものであり、当然他人には秘匿すべき画像である。したがって、この図16の表示例では、他のプレイヤに配られる札の画像も個別画像とみなして、他のプレイヤからは秘匿すべく、裏向きに表示することにしている。つまり、山札表示部136は、いわば、第2個別画像表示部である。
なお、ゲーム画面130の最下位には、第3個別画像表示部138が設定される。この第3個別画像表示部138には、第1個別画像表示部132と同じく、各プレイヤの、図16の例では「へんりー」の、手札を含むドローの様子が表示される。これも当然、他人には秘匿すべき個別ゲーム画像に相当する。したがって、各プレイヤのゲーム画面のこの第3個別画像表示部138には自分だけの手札およびドローの様子が表示される。
このようにして、図7のステップS53でゲーム処理が実行される結果、その段階で図16に例示したようなゲーム画面130がそれぞれのゲーム装置10で生成される。
そして、CPUコア42は、次のステップS55で、RAM48の所定領域を参照して、観戦フラグが「1」に設定されているかどうか判断する。観戦フラグが「1」になっているということは、たとえば図13で「あそばない」を選択したリアルプレイヤであるので、この観戦フラグが「1」のゲーム装置のLCD14には、上で説明したようなゲーム画面130は表示しない。観戦フラグが「0」のゲーム装置においてのみ、ゲーム画面130をステップS57で表示する。なお、観戦フラグが「1」のゲーム装置では、後述の観戦画面140(図17-図20)を表示する。
先に説明したように、各ゲーム装置のRAM48には同じゲームプログラムが展開されていて、しかも、各ゲーム装置は、親機ゲーム装置から先に説明したステップS51で送信される同じキーセット(操作データ)を用いてそのゲームプログラムを処理するので、ステップS53では、すべてのゲーム装置で図16に示したような同じゲーム画面130が生成される。したがって、何も処理しなければ、ステップS57で、すべてのゲーム装置で同じゲーム画面130が表示される結果、他のプレイヤの個別ゲーム画像も見えてしまう。そこで、この実施例では、自分の個別ゲーム画像以外は見えないように、「自分フラグ」を利用する。たとえば、RAM48のフラグ領域482dに「自分フラグ」を設定できるようにしておき、その自分フラグを目印として、その目印が付けられている個別画像だけをゲーム画面130において「見えるように」表示する。「見えるように表示する」ということは、存在がわかるというだけではなく、その内容も確認または視認できる状態で表示することを意味している。たとえば、図16のゲーム画面130の表示例で、裏向きのトランプは「見えるように表示」されているとはいえない。存在や枚数は確認できるが、具体的なトランプとしてのマークや数値のような中身は確認できないからである。その意味で、図16のゲーム画面130で表向きのトランプは「見えるように表示」されているといえる。
また、下画面14の下部中央には、参戦ゲーム装置では自機の手持ちカードデータに基いて自分の手持ちトランプが表示され、観戦ゲーム装置では選択した参戦ゲーム装置の手持ちカードデータに基いて当該参戦ゲーム装置の手持ちトランプが表示される。これは、 具体的には以下のような処理としてもよい。
各ゲーム装置(参戦ゲーム装置と観戦ゲーム装置の両方を含む)は、参戦ゲーム装置のうちいずれかを指定するデータを記憶する。具体的には、参戦ゲーム装置は自機を指定するデータを記憶し、観戦ゲーム装置は、選択された参戦ゲーム装置を指定するデータを記憶する。そして、各ゲーム装置は、当該指定するデータに基づいて、手持ちカードデータのうちいずれかを選択し(当該指定するデータが参戦ゲーム装置Aを指定している場合、手持ちカードデータAを選択する)、当該選択された手持ちカードデータに基いて下画面下部中央にトランプを表示する。
なお、図16ではリアルプレイヤ「へんりー」のゲーム画面の例だけが示されているが、他のリアルプレイヤのゲーム画面においても、全体ゲーム画像表示部134ではすべてのトランプが見えるように表示され、第1個別画像表示部132および第3個別画像表示部138には自分の個別ゲーム画像だけが見えるように表示される。
そして、先のステップS55で“YES”が判断されると、そのゲーム装置のCPUコア42は、次のステップS59において、現在プレイしているゲームがAタイプゲームかどうか判断する。Aタイプゲームであれば、それは秘匿すべき個別画像を含むということであり、ステップS61で、図17に示すプレイヤ切り替えボタン付の観戦ゲーム画面140を表示する。非Aタイプゲームである場合には、ステップS63で、たとえば図21に示すプレイヤ切り替えボタンなしの観戦画面150を表示する。
ステップS61で表示する、プレイヤ切り替えボタン付観戦画面140は、基本的なレイアウトなどは先のゲーム画面130(図16)と同じで、第1個別画像表示部142,第2個別画像表示部146および第3個別画像表示部148を有する。ただし、この実施例の観戦画面140においては、観戦フラグ(モード)を設定しているゲーム装置のプレイヤすなわち観戦者は、これら個別ゲーム画像表示部142,146および148をすべて、見ることができる。
図16のゲーム画面130では、第1個別画像表示部132では、自分の手札だけを見ることができた。しかしながら、図17の観戦者画面140では、すべてのプレイヤ「かみとば」、「キャンセル」、「へんりー」および「ロボ1」の手札が表向きに表示され、観戦者、この実施例では「あきら」はすべてのプレイヤの手札を見ることができる。ただし、この第1個別画像表示部142は、観戦画面140においては特に必要なものではなく、なくてもよい。
さらに、この実施例の観戦画面140では、全体画像表示部144では、図16の全体画像表示部134と同様に、「ポン」および/または「カン」された札が左側に、公開した「役」が右側に表示される。
さらに、それらの間の第2個別画像表示部すなわち山札表示部146の山札において、一番上の、リアルプレイヤには秘匿されるべき札も、この観戦画面140では見えるように表示される。
そして、全体画像表示部144の右端には、複数のプレイヤ切り替えボタン147(147a−147d)が縦並びに表示される。この切り替えボタン147はそのときゲームに参加しているプレイヤ(リアルプレイヤおよびバーチャルプレイヤの両方)の数だけ形成される。実施例では、いま、「セブンブリッジ」を4人のプレイヤでプレイしているので、4つのプレイヤ切り替えボタン147a−147dが設けられる。プレイヤ切り替えボタン147は、観戦者がどのプレイヤの手札などの個別画像を見たいか(観戦したいか)を切り替えるためのボタンであり、実施例では、各プレイヤが登録しているマーク(シンボル)を各切り替えボタン147a−147dの中に表示することによって、プレイヤとボタンとを対応付けている。たとえば、1番上のプレイヤ切り替えボタン147aには「きつね」のマークが表示されているので、このボタン147aはそのマークを設定しているリアルプレイヤ「へんりー」の個別画像を見たいときに操作される。2番目のプレイヤ切り替えボタン147bには「勝」マークが表示されているので、ボタン147bはリアルプレイヤ「キャンセル」の個別画像を見たいときに操作される。3番目のプレイヤ切り替えボタン147cには「ばなな」マークが表示されているので、ボタン147cはリアルプレイヤ「かみとば」の個別画像を見たいときに操作される。4番目のプレイヤ切り替えボタン147dには「ロボ」マークが表示されているので、このボタン147dはバーチャルプレイヤ「ロボ1」の個別画像を見たいときに操作される。
このように、Aタイプゲームの観戦モードでは、図17に示すような、プレイヤ切り替えボタン147(147a−147d)付観戦画面140が表示される。したがって、このステップS61において、観戦者は任意のプレイヤの個別画像を見ることができるようになる。実施例では、すべてのゲーム装置が同じゲーム画像を生成しているので、プレイヤ切り替えボタン147を押せば、個別画像表示部142,146および148などの他人には秘匿すべき個別画像であっても、自由に、見ることができる。
また、各ゲーム装置でゲーム状態データを保持しているため、プレイヤ切り替えボタンを押したときに、自機のゲーム状態データに基いて画像を生成することができるので、高速かつシステム全体として負荷の少ない処理で個別画像の切り替えを実現できる。なお、本発明は、各ゲーム装置でゲーム状態データを保持することは必須ではない。
たとえば、観戦者がタッチパネル22の、プレイヤ切り替えボタン147aの位置にタッチしたとすると、CPUコア42は、プレイヤ「へんりー」のそのときのすべての個別画像を表示する。特に、図16の第3個別画像表示部138では、自分の手札だけが見えるように表示されるが、観戦画面140のそれに対応する第3個別画像表示部148では、切り替えボタン147で指定されたプレイヤ、この場合には、「へんりー」の1枚の手札「ハートの9」が見えるように表示される。つまり、1番上のボタン147aが操作されると、観戦すべきプレイヤは「へんりー」であるので、CPUコア42は「へんりー」のゲーム画面130と同じ個別画像を選択することによって、第3個別画像表示部148には「ハートの9」がゲーム画面130(図16)同じように表向きに表示される。
たとえば、観戦者がタッチパネル22の、2番目のプレイヤ切り替えボタン147bの位置にタッチしたとすると、CPUコア42は、図18に示すように、特に第3個別画像表示部148に、指定されたプレイヤ「キャンセル」の2枚の手札「スペードの3」および「クラブの3」を表向きにした観戦画面140を表示する。この2枚が「キャンセル」の手札であることは、図17や図18の第1個別画像表示部142を見れば明らかである。
観戦者が3番目のプレイヤ切り替えボタン147cにタッチしたとすると、CPUコア42は、図19に示すように、第3個別画像表示部148に指定プレイヤ「かみとば」の1枚の手札「ハートの13」を表向きにした観戦画面140を表示する。これが「かみとば」の手札であることは、第1個別画像表示部142を見れば明らかである。
同じように、観戦者が4番目のプレイヤ切り替えボタン147dにタッチしたとすると、CPUコア42は、図20に示すように、第3個別画像表示部148にプレイヤ「ロボ1」の6枚の手札「ダイヤの1」、「スベードの2」、「ダイヤの8」、「ダイヤの10」、「スペードの11」および「ダイヤの13」をすべて表向きにした観戦画面140を表示する。これらが「ロボ1」の手札であることは、第1個別画像表示部142を見れば明らかである。
このようにして、観戦者は、切り替えボタン147で観戦したいプレイヤを指定することによって、任意のプレイヤの手札のような、秘匿すべき個別プレイヤのゲーム画像であっても簡単に見ることができる。このような観戦を、指定したプレイヤになりきって観戦するという意味で、「なりきり観戦」とでも呼ぶことができる。このような「なりきり観戦」を可能にすることによって、今までになかったゲームの局面を想定することができる。たとえば、リアルプレイヤとそのリアルプレイヤの個別画像を含めた観戦画面140を観戦している観戦者とが協働して作戦を考えたり、あるいはリアルプレイヤがゲーム経験が少ないたとえば子供であった場合、観戦者として大人がゲームを教えながらプレイできたりする。
なお、ステップS59で“NO”が判断されたとき、すなわちプレイ中のゲームが非Aタイプゲームであったとき、その観戦者が操作しているゲーム装置のCPUコア42は、ステップS63で、図21に示すような、プレイヤ切り替えボタンなしの観戦画面150を表示する。
この図21は非Aタイプゲーム「チャイニーズチェッカー」の観戦画面150を例示するが、この観戦画面150では、その上部にプレイヤ表示部151が形成され、そこに現在プレイ中のプレイヤ(リアルプレイヤおよびバーチャルプレイヤの両方)がそれらのマークとともに表示される。ただし、ゲームがAタイプゲームではないので、他のプレイヤに対して秘匿すべき個別画像は何もないため、このプレイヤ表示部151は、Aタイプゲームの観戦画面140の第1特定画像表示部142と配置が似ているが、個別画像を表示することはない。さらに、観戦画面150の下半分に全体画像表示部154が形成される。この全体画像表示部154には、その非Aタイプゲーム「チャイニーズチェッカー」の全体ゲーム画像が表示されている。この観戦画面150には個別画像表示部は何も形成されない。
このように、この実施例では、観戦モードであっても、ゲームのタイプによって異なる観戦画面140または150が表示される。ただし、Aタイプゲームであるのか非Aタイプゲームであるかの識別は、ゲームプログラムに含まれる識別子をチェックすれば容易に判別できる。
次に、ステップS57の後、ステップS65において、CPUコア42は、そのゲーム装置のプレイヤが「抜ける」かどうか判断する。自分がそのゲームを成功裏に終了したとき(ゲームクリア)とき、または自分がゲームクリアに失敗したとき、そのプレイヤはというゲームから「抜ける」ことになる。このような勝ち抜けまたは負け抜けの可能性があるゲームとしては、たとえば「ばばぬき」、「ページワン」、「7ならべ」、「スピード」、「大富豪」、「すごろく」、「チャイニーズチェッカー」などの多くのゲームが考えられる。したがって、ステップS65では、そのプレイヤが勝ち抜けかまたは負け抜けの状態になったかどうか判断することになる。
ステップS65で“YES”が判断されると、続いてステップS67で、CPUコア42は、当該プレイヤが勝ち抜けた(または負け抜けた)のが最後かどうか、判断する。最後でなければ、そのゲーム装置のCPUコア42は、ステップS69において、自分のRAM48内のフラグ領域482dの観戦フラグに「1」を設定する。したがって、そのゲーム装置では次のフレーム以降、上で説明したような観戦画面140または150を見ることができる。つまり、最後の以外のプレイヤであるということは、他にゲームを続行しているプレイヤがいることを意味しているため、この実施例では、その後のゲーム内容を見せるために、ステップS63で強制的に観戦フラグを設定することにしている。そのような観戦を「勝ち抜け(負け抜け)観戦」と呼ぶことができる。
なお、勝ち抜けプレイヤや負け抜けプレイヤにこのように強制的に観戦モードを設定する方法の他、ステップS65で“YES”を判断したとき、観戦するかどうかをプレイヤに選択させるように画面を提示する方法も考えられる。この方法では、その選択画面で観戦モードの選択を行なったプレイヤのみに観戦モードを設定することになる。
ただし、最後になったプレイヤがゲームを終えたときには他のプレイヤはすべてゲームを終えているのであるから、その最後のプレイヤに「観戦モード」を実行させる必要はない。したがって、ステップS67で“YES”が判断されたときには、そのまま、ステップS69を実行した後と同様に、ステップS71において、CPUコア42は、ゲームが終了したかどうか判断する。“NO”ならそのまま終了し、“YES”なら、ステップS73において、CPUコア42は図22に示す結果画面160を表示させる。この結果画面160も各ゲーム装置で個別に生成することができるが、親機ゲーム装置だけが結果画面160を生成し、それを子機ゲーム装置に送信するようにしてもよい。
上述の実施例では、表示器が一体的に形成されたゲーム装置を用いてシステムを構成する場合について示したが、表示器が別に設けられたゲーム装置によってシステムを構成する場合にも適用できる。
さらに、この実施例では、各ゲーム装置を無線接続するようにしたが、これに限定される必要はなく、有線接続するようにしてもよいし、インターネット網等を用いて接続するようにしてもよい。
さらにまた、ゲーム装置の構成は、上述の実施例の構成に限定されるべきでない。たと
えば、LCDは1つでもよく、タッチパネルは2つのLCDのそれぞれに設けるようにしてもよい。