従来技術によれば、プレイヤは、他と競争する楽しみを味わえる。しかしながら、他と協力する楽しみを味わうことはできなかった。
それゆえに、この発明の主たる目的は、他と協力する楽しみが味わえる、ボードゲームプログラムおよびボードゲーム装置を提供することである。
第1の発明に従うボードゲームプログラムは、コンピュータ装置を用いてボードゲームをプレイするためのプログラムである。ボードゲームでは、複数のマスで構成されるボードマップ上で、少なくとも1つのプレイヤキャラクタを含む複数のキャラクタがプレイヤの操作入力に応答して決定される数値に従って移動される。ボードゲームプログラムは、コンピュータ装置のプロセサに、グループ分けステップ、マス情報割り当てステップ、操作入力受け付けステップ、数値決定ステップ、合計ステップおよびマス情報更新ステップを実行させる。
グループ分けステップは、少なくとも1つのプレイヤキャラクタを含む複数のキャラクタを複数のグループにグループ分けする。マス情報割り当てステップは、複数のグループの各々に複数のマスのいずれか1つを示すマス情報を割り当てる。操作入力受け付けステップは、操作入力を受け付ける。数値決定ステップは、操作入力に関連してキャラクタ毎に数値を決定する。合計ステップは、数値決定ステップによって決定された数値をグループ毎に合計する。マス情報更新ステップは、マス情報割り当てステップによって複数のグループの各々に割り当てられたマス情報を合計ステップの合計結果に基づいて更新する。
第1の発明では、コンピュータ装置(10:実施例で相当する参照符号;以下同じ)を用いて、複数のマスで構成されるボードマップ(70)上で複数のキャラクタをプレイヤの操作入力に応答して決定される数値に従って移動させるボードゲームをプレイするために、ボードゲームプログラムがコンピュータ装置のプロセサ(36)によって実行される。
この結果、複数のキャラクタは、グループ分けステップ(S9)によって複数のグループにグループ分けされる。なお、存在する全てのキャラクタをグループ分けしてもよいし、一部のキャラクタを選択してグループ分けしてもよい。複数のグループの各々には、複数のマスのいずれか1つを示すマス情報が割り当てステップ(S93)によって割り当てられる。操作入力受け付けステップは、操作入力を受け付ける(S167,S185)。数値決定ステップ(S165,S171,S183,S189)は、操作入力に関連してキャラクタ毎に数値を決定する。決定された数値は、合計ステップ(S205)によってグループ毎に合計される。複数のグループの各々に割り当てられたマス情報は、かかる合計結果に基づいて、更新ステップ(S207,S221)によって更新される。
第1の発明によれば、キャラクタ毎に決定された数値がグループ毎に合計され、複数のキャラクタは、かかる合計数値に基づいてグループ単位でボードマップ上を移動するので、プレイヤは、ボードゲームを他と協力しながらプレイする楽しみを味わえる。
なお、マス情報は、ゲーム空間における位置を示す情報であってもよく、マスを識別する情報であってもよい。
第2の発明に従う移動ゲームプログラムは、第1の発明に従属する。コンピュータ装置は複数のコントローラを備え、複数のコントローラの各々は複数の操作部を含む。数値決定ステップは、グループ分けステップによってグループ分けされた各グループに対して複数のコントローラから1つのコントローラを割り当て、各グループに属する各キャラクタに対して当該グループに割り当てられたコントローラに含まれる複数の操作部から1つの操作部を割り当て、そして各操作部に割り当てられたキャラクタの数値を当該操作部の操作入力に基づいて決定する。
第3の発明に従う移動ゲームプログラムは、第1の発明に従属し、プロセサに、成績情報割り当てステップ、ミニゲーム選択ステップ、ミニゲーム処理ステップおよび成績情報更新ステップをさらに実行させる。
成績情報割り当てステップは、複数のグループの各々に成績情報を割り当てる。ミニゲーム選択ステップは、ミニゲームを実行する条件を満たしたとき複数のミニゲームのいずれか1つを選択する。ミニゲーム処理ステップは、ミニゲーム選択ステップによって選択されたミニゲームを行う。成績情報更新ステップは、成績情報割り当てステップによって複数のグループの各々に割り当てられた成績情報をミニゲーム処理ステップによるミニゲームの結果に基づいて更新する。
第3の発明では、複数のグループの各々に対して、成績情報割り当てステップ(S77)によって成績情報が割り当てられる。ミニゲームを実行する条件を満たしたとき、ミニゲーム選択ステップ(S115,S143)によって、複数のミニゲームのいずれか1つが選択される。ミニゲーム処理ステップ(S121,S149)は、こうして選択されたミニゲームを行う。複数のグループの各々に割り当てられた成績情報は、成績情報更新ステップ(S123,S151)によって、ミニゲームの結果に基づいて更新される。
第3の発明によれば、ボードゲームの途中で適宜ミニゲームが行われるので、プレイヤは、多様なプレイを楽しむことができる。また、ミニゲームの結果はグループ毎の成績情報に反映されるので、協力する楽しみを増大させることができる。
なお、ミニゲームを実行する条件を満たしたときとは、たとえば、更新されたマス情報が特定のマスを示したときである。
第4の発明に従うボードゲームプログラムは、第3の発明に従属する。コンピュータ装置は複数のコントローラを備え、複数のコントローラの各々は複数の操作部を含む。ミニゲーム処理ステップは、グループ分けステップによってグループ分けされた各グループに対して複数のコントローラから1つのコントローラを割り当て、各グループに属する各キャラクタに対して当該グループに割り当てられたコントローラに含まれる複数の操作部から1つの操作部を割り当てる。そして、ミニゲーム選択ステップによって選択されたミニゲームにおいて、各操作部に割り当てられたキャラクタの動作を当該操作部の操作入力に基づいて制御する。
第5の発明に従うボードゲームプログラムは、第3の発明に従属し、プロセサに、付与ステップおよび勝敗ステップをさらに実行させる。
付与ステップは、ボードゲームを終了する条件を満たしたとき、当該条件を満たしたグループに終了順位を付与する。勝敗ステップは、付与ステップによって複数のグループの各々に付与された終了順位と、成績情報割り当てステップによって複数のグループの各々に割り当てられた成績情報との少なくとも一方に基づいて、勝敗処理を行う。
第5の発明では、ボードゲームを終了する条件を満たしたとき、終了順位付与ステップ(S107,S135)によって、当該条件を満たしたグループに終了順位が付与される。勝敗ステップ(S17)による勝敗処理は、付与ステップによって複数のグループの各々に付与された終了順位と、成績情報割り当てステップによって複数のグループの各々に割り当てられた成績情報との少なくとも一方に基づいて行われる。
第5の発明によれば、チームの勝敗は、ボードゲームの終了順位とミニゲームの成績情報との両方またはいずれか一方に基づいて決められるので、勝敗の行方を予想することが難しく、最後までゲームを楽しむことができる。
なお、ボードゲームを終了する条件を満たしたときとは、たとえば、更新されたマス情報が終了マスを示すときである。
第6の発明に従うボードゲームプログラムは、第3または5の発明に従属し、複数のミニゲームの各々は代表者参加モードおよび全員参加モードを選択的にプレイ可能であり、ミニゲーム選択ステップの選択処理は代表者参加モードおよび全員参加モードのいずれかを選択するモード選択処理を含む。
第6の発明によれば、ミニゲームをプレイする際に代表者参加モードおよび全員参加モードのいずれかを選択することで、他から応援を受けてプレイする楽しみと、他を応援する楽しみとを味わうことができる。
第7の発明に従うボードゲームプログラムは、第6の発明に従属し、プロセサに代表キャラクタ決定ステップをさらに実行させる。代表キャラクタ決定ステップは、ミニゲーム選択ステップによって代表者参加型ミニゲームが選択されたとき、複数のグループの各々の代表キャラクタを決定する。
第7の発明では、代表者参加型ミニゲームが選択されると、複数のグループの各々の代表キャラクタが、代表キャラクタ決定ステップ(S119,S147)によって決定される。
第8の発明に従うボードゲームプログラムは、第7の発明に従属し、代表キャラクタ決定ステップは第1決定ステップを含む。第1決定ステップは、1つのグループにただ1つのプレイヤキャラクタが含まれるとき、当該プレイヤキャラクタを代表に決定する。
第8の発明では、1つのグループに含まれるプレイヤキャラクタが1つだけであれば、そのプレイヤキャラクタが第1決定ステップ(S237,S249)によって代表に決定される。
第8の発明によれば、他のプレイヤと協力する楽しみのないプレイヤは、いつもミニゲームに参加することができる。
第9の発明に従うボードゲームは、第6の発明に従属する。コンピュータ装置は各々に一対の方向指示器が形成された複数のコントローラを含み、操作入力受け付けステップは複数のコントローラのいずれか1つに形成された一対の方向指示器を介して第1方向操作入力および第2方向操作入力を受け付ける。
第9の発明では、コンピュータ装置が複数のコントローラ(22)を含んでおり、その各々には、一対の方向指示器(26a,26b)が形成されている。第1方向操作入力および第2方向操作入力は、複数のコントローラのいずれか1つに形成された一対の方向指示器を介して受け付けられる。
第9の発明によれば、同じグループに属する2人のプレイヤが1つのコントローラを利用することで、グループの一体感を高めることができる。
なお、方向指示器は、典型的には十字キーやジョイスティックであるが、タッチパネルやトラックボールでもよく、ボタンやキーを組み合わせることでも実現できる。
第10の発明に従うボードゲームプログラムは、第9の発明に従属し、複数のグループの少なくとも1つには2つのプレイヤキャラクタが含まれる。そしてプロセサに、表示ステップ、キャラクタ移動ステップおよび第1オブジェクト移動ステップをさらに実行させる。
表示ステップは、ミニゲーム選択ステップによって全員参加モードが選択されたとき、2つのプレイヤキャラクタと、当該2つのプレイヤキャラクタが属するグループに割り当てられた第1オブジェクトとを表示する。キャラクタ移動ステップは、表示ステップによって表示された2つのプレイヤキャラクタを第1方向操作入力および第2方向操作入力に応じた向きにそれぞれ移動させる。第1オブジェクト移動ステップは、表示ステップによって表示された第1オブジェクトをキャラクタ移動ステップの移動に関連して移動させる。
第10の発明では、複数のグループの少なくとも1つに2つのプレイヤキャラクタが含まれる。ミニゲーム選択ステップによって全員参加モードが選択されたとき、これら2つのプレイヤキャラクタと、これら2つのプレイヤキャラクタが属するグループに割り当てられた第1オブジェクト(84a)とが、表示ステップ(S263)によって表示される。
表示された2つのプレイヤキャラクタは、キャラクタ移動ステップ(S269,S277;S285,S293)によって、第1方向操作入力および第2方向操作入力に応じた向きにそれぞれ移動される。表示された第1オブジェクトは、かかるキャラクタ移動ステップの移動に関連して、第1オブジェクト移動ステップ(S305)によって移動される。
第10の発明によれば、第1オブジェクトには、2つのプレイヤキャラクタを介して2人のプレイヤによる方向操作入力が作用するため、2人のプレイヤの方向操作がばらばらでは、第1オブジェクトを所望の方向に素早く移動させることはできない。つまり、2人のプレイヤの協力の度合いによってゲームの進行に大差が出るので、協力する楽しみが一層顕著となる。
第11の発明に従うボードゲームプログラムは、第9の発明に従属し、複数のグループの少なくとも1つには2つのプレイヤキャラクタが含まれる。そしてプロセサに、表示ステップ、キャラクタ移動ステップおよび移動変更ステップをさらに実行させる。
表示ステップは、ミニゲーム選択ステップによって全員参加モードが選択されたとき、2つのプレイヤキャラクタと、当該2つのプレイヤキャラクタを互いに関連付ける第2オブジェクトとを表示する。キャラクタ移動ステップは、表示ステップによって表示された2つのプレイヤキャラクタを第1方向操作入力および第2方向操作入力に従う向きにそれぞれ移動させる。移動変更ステップは、2つのプレイヤキャラクタが第2オブジェクトを介して互いに及ぼし合う相互作用に基づいて、キャラクタ移動ステップによる移動に変更を加える。
第11の発明では、ミニゲーム選択ステップによって全員参加型モードが選択されたとき、2つのプレイヤキャラクタと、当該2つのプレイヤキャラクタを互いに関連付ける第2オブジェクト(86)とが、表示ステップ(S263)によって表示される。
表示された2つのプレイヤキャラクタは、キャラクタ移動ステップ(S269,S277;S285,S293)によって、第1方向操作入力および第2方向操作入力に従う向きにそれぞれ移動される。かかるキャラクタ移動ステップによる移動には、移動変更ステップ(S307)によって、2つのプレイヤキャラクタが第2オブジェクトを介して互いに及ぼし合う相互作用に基づく変更が加えられる。
第11の発明によれば、一方のプレイヤの方向操作が、他方のプレイヤに割り当てられたプレイヤキャラクタにも第2オブジェクトを介して作用するため、2人のプレイヤの各々が相手方への影響を考慮しつつ方向操作を行わなければ、2つのプレイヤキャラクタの各々を所望の方向に素早く移動させることはできない。つまり、2人のプレイヤの協力の度合いによってゲームの進行に大差が出るので、協力する楽しみが一層顕著となる。
第12の発明に従うボードゲームプログラムは、第3ないし11のいずれかの発明に従属し、成績情報更新ステップはミニゲーム選択ステップによって特定のミニゲームが選択されたとき増加方向にのみ更新を行う。
第12の発明によれば、成績情報が増加方向にのみ更新されるミニゲームを含めることで、成績の変動を抑制できる。
第13の発明に従うボードゲームプログラムは、第1ないし12のいずれかの発明に従属し、複数のグループの少なくとも1つには2つのプレイヤキャラクタが含まれる。そしてプロセサに、タイミング判別ステップおよび数値変更ステップをさらに実行させる。
タイミング判別ステップは、2つのプレイヤキャラクタの一方に向けられた第1ボタン操作入力が操作入力受け付けステップによって受け付けられたタイミングと、2つのプレイヤキャラクタの他方に向けられた第2ボタン操作入力が操作入力受け付けステップによって受け付けられたタイミングとの差が閾値以下であるか否かを判別する。変更ステップは、タイミング判別ステップの判別結果が肯定的であるとき、2つのプレイヤキャラクタについて数値決定ステップによって決定された2つの数値の各々を増加方向に変更する。
第13の発明では、複数のグループの少なくとも1つには、2つのプレイヤキャラクタが含まれる。この2つのプレイヤキャラクタの一方に向けられた第1ボタン操作入力が操作入力受け付けステップによって受け付けられたタイミングと、この2つのプレイヤキャラクタの他方に向けられた第2ボタン操作入力が操作入力受け付けステップによって受け付けられたタイミングとの差が閾値以下であるか否かは、タイミング判別ステップ(S199)によって判別される。変更ステップ(S201)は、かかる判別結果が肯定的であるとき、2つのプレイヤキャラクタについて数値決定ステップによって決定された2つの数値の各々を、増加方向に変更する。
第13の発明によれば、2人のプレイヤがボタンを押すタイミングを互いに一致させることで各々の数値が増大するので、協力する楽しみがさらに助長される。
第14の発明に従うボードゲームプログラムは、第13の発明に従属する。コンピュータ装置は、各々に一対のボタンが形成された複数のコントローラを含む。操作入力受け付けステップは、複数のコントローラのいずれか1つに形成された一対のボタンを介して第1ボタン操作入力および第2ボタン操作入力を受け付ける。
第14の発明では、コンピュータ装置は複数のコントローラ(22)を含み、その各々には一対のボタン(26A,26B)が形成されている。第1ボタン操作入力および第2ボタン操作入力は、複数のコントローラのいずれか1つに形成された一対のボタンを介して受け付けられる。
第14の発明によれば、同じグループに属する2人のプレイヤが1つのコントローラを利用することで、グループの一体感を高めることができる。
第15の発明に従うボードゲームプログラムは、コンピュータ装置を用いてボードゲームをプレイするためのプログラムである。ボードゲームでは、複数のマスで構成されるボードマップ上で、少なくとも1つのプレイヤキャラクタを含む複数のキャラクタがプレイヤの操作入力に応答して決定される数値に従って移動される。ボードゲームプログラムは、コンピュータ装置のプロセサに、プレイ選択操作入力受け付けステップ、第1ゲーム処理ステップおよび第2ゲーム処理ステップを実行させる。プレイ選択操作入力受け付けステップは、チームプレイおよび個人プレイのいずれかを選択するプレイ選択操作入力を受け付ける。第1ゲーム処理ステップは、プレイ選択操作入力によって個人プレイが選択されたとき第1ゲーム処理を実行する。第2ゲーム処理ステップは、プレイ選択操作入力によってチームプレイが選択されたとき第2ゲーム処理を実行する。
第1ゲーム処理ステップは、キャラクタマス情報割り当てステップ、第1数値決定ステップおよびキャラクタマス情報更新ステップを含む。キャラクタマス情報割り当てステップは、複数のキャラクタの各々に複数のマスのいずれか1つを示すキャラクタマス情報を割り当てる。第1数値決定ステップは、操作入力に関連してキャラクタ毎に数値を決定する。キャラクタマス情報更新ステップは、複数のキャラクタの各々に割り当てられたキャラクタマス情報を第1数値決定ステップの決定結果に基づいて更新する。
第2ゲーム処理ステップは、グループ分けステップ、グループマス情報割り当てステップ、第2数値決定ステップ、合計ステップおよびグループマス情報更新ステップを含む。グループ分けステップは、複数のキャラクタを複数のグループにグループ分けする。グループマス情報割り当てステップは、複数のグループの各々に複数のマスのいずれか1つを示すグループマス情報を割り当てる。第2数値決定ステップは、操作入力に関連してキャラクタ毎に数値を決定する。合計ステップは、第2数値決定ステップによって決定された数値をグループ毎に合計する。グループマス情報更新ステップは、複数のグループの各々に割り当てられたグループマス情報を合計ステップの合計結果に基づいて更新する。
第15の発明では、チームプレイおよび個人プレイのいずれかを選択するプレイ選択操作入力は、プレイ選択操作入力受け付けステップ(S3)によって受け付けられる。プレイ選択操作入力によって個人プレイが選択されると、第1ゲーム処理ステップ(S15)によって第1ゲーム処理が実行される。プレイ選択操作入力によってチームプレイが選択されると、第2ゲーム処理ステップ(S11)によって第2ゲーム処理が実行される。
第1ゲーム処理においては、複数のキャラクタの各々に複数のマスのいずれか1つを示すキャラクタマス情報がキャラクタマス情報割り当てステップ(S393)によって割り当てられる。第1数値決定ステップ(S453,S457)は、操作入力に関連してキャラクタ毎に数値を決定する。複数のキャラクタの各々に割り当てられたキャラクタマス情報は、第1数値決定ステップの決定結果に基づいて、キャラクタマス情報更新ステップ(S463,S473)によって更新される。
一方、第2ゲーム処理においては、複数のキャラクタはグループ分けステップ(S9)によって複数のグループにグループ分けされ、複数のグループの各々に複数のマスのいずれか1つを示すマス情報が割り当てステップ(S93)によって割り当てられる。第2数値決定ステップ(S165,S171,S183,S189)は、操作入力に関連してキャラクタ毎に数値を決定する。決定された数値は、合計ステップ(S205)によってグループ毎に合計される。複数のグループの各々に割り当てられたマス情報は、かかる合計結果に基づいて、更新ステップ(S207,S221)によって更新される。
第15の発明によれば、チームプレイおよび個人プレイのいずれかを選択可能としたことで、ボードゲームを個人でプレイする楽しみと、ボードゲームを他と協力しながらプレイする楽しみとを味わえる。
第16の発明に従うゲームプログラムは、コンピュータ装置を用いてゲームをプレイするためのゲームプログラムであって、コンピュータ装置のプロセサに、選択実行ステップ、グループ分けステップ、ミニゲーム選択ステップ、およびミニゲーム実行ステップを実行させる。
選択実行ステップは、N個のキャラクタが登場する第1ゲームと2N個のキャラクタが登場する第2ゲームとを選択的に実行する。グループ分けステップは、選択実行ステップによって第2ゲームが選択実行されたときに2N個のキャラクタをN個のグループにグループ分けする。ミニゲーム選択ステップは、選択実行ステップによって第1ゲームが選択実行されたときにN個のキャラクタが登場する複数の第1のミニゲームの中から1つのミニゲームを選択し、第2ゲームが選択実行されたときには当該複数の第1のミニゲームまたは2N個のキャラクタが登場する複数の第2のミニゲームの中から1つのミニゲームを選択する。ミニゲーム実行ステップは、ミニゲーム選択ステップによって選択されたミニゲームを実行する。
ミニゲーム実行ステップは、次の(A)〜(C)のようにミニゲームを実行する。(A)選択実行ステップによって第1ゲームが選択実行されたときは、N個のキャラクタを登場させて、ミニゲーム選択ステップによって選択されたミニゲームを実行する。(B)選択実行ステップによって第2ゲームが選択実行され、かつミニゲーム選択ステップによって第2のミニゲームが選択されたときは、2N個のキャラクタを登場させて、ミニゲーム選択ステップによって選択されたミニゲームを実行する。(C)選択実行ステップによって第2ゲームが選択実行され、かつミニゲーム選択ステップによって第1のミニゲームが選択されたときは、グループ分けステップによってグループ分けされた各グループから1つのキャラクタを選択し、当該選択されたN個のキャラクタを登場させて、ミニゲーム選択ステップによって選択されたミニゲームを実行する。
第16の発明では、N個のキャラクタが登場する第1ゲームと、2N個のキャラクタが登場する第2ゲームとが、選択実行ステップ(S7)によって選択的に実行される。選択実行ステップによって第2ゲームが選択実行されたときには、2N個のキャラクタは、グループ分けステップ(S9)によってN個のグループにグループ分けされる。
ミニゲーム選択ステップ(S115,S143,S413,S435)は、選択実行ステップによって第1ゲームが選択実行されたときには、N個のキャラクタが登場する複数の第1のミニゲームの中から1つのミニゲームを選択する。一方、第2ゲームが選択実行されたときには、当該複数の第1のミニゲームまたは2N個のキャラクタが登場する複数の第2のミニゲームの中から1つのミニゲームを選択する。ミニゲーム実行ステップ(S121,S149,S415,S437)は、ミニゲーム選択ステップによって選択されたミニゲームを、上記(A)〜(C)のように実行する。
第16の発明によれば、各プレイヤが独立してゲームを楽しむ第1ゲームと、各キャラクタがチームを組んでゲームを楽しむ第2ゲームとがあって、このうち第2ゲームが選択されると、第1ゲーム用のミニゲームおよび第2ゲーム用のミニゲームがプレイ可能になる、つまりミニゲームに2N個のキャラクタを登場させるかN個のキャラクタを登場させるかを選択することができる。ミニゲームにN個のキャラクタを登場させる場合には、各チームの代表者がミニゲームに参加するため、1人のプレイヤがチームを代表してゲームプレイし、他のプレイヤが応援するという楽しみを提供でき、チームで協力してプレイしているという意識がさらに高まる。
第17の発明に従うボードゲーム装置は、複数のマスで構成されるボードマップ(70)上で少なくとも1つのプレイヤキャラクタを含む複数のキャラクタをプレイヤの操作入力に応答して決定される数値に従って移動させるボードゲーム装置であって、グループ分け手段、マス情報割り当て手段、操作入力受け付け手段、数値決定手段、合計手段およびマス情報更新手段を備える。
グループ分け手段は、複数のキャラクタを複数のグループにグループ分けする。マス情報割り当て手段は、複数のグループの各々に複数のマスのいずれか1つを示すマス情報を割り当てる。操作入力受け付け手段は、操作入力を受け付ける。数値決定手段は、操作入力に関連してキャラクタ毎に数値を決定する。合計手段は、数値決定手段によって決定された数値をグループ毎に合計する。マス情報更新手段は、マス情報割り当て手段によって複数のグループの各々に割り当てられたマス情報を合計手段の合計結果に基づいて更新する。
第17の発明でも、第1の発明と同様に、プレイヤは、ボードゲームを他と協力しながらプレイする楽しみを味わうことができる。
なお、請求項1の発明は、第1の発明に第2の発明を組み込んだものに対応し、請求項2の発明は、第3の発明に対応し、請求項3の発明は、第1の発明に第3の発明および第6の発明を組み込んだものに対応し、請求項4〜13の発明は、第5〜14の発明にそれぞれ対応し、請求項14の発明は、第15の発明に第2の発明を組み込んだものに対応し、請求項15の発明は、第17の発明に第2の発明を組み込んだものに対応し、請求項16の発明は、第15の発明に第3の発明および第6の発明を組み込んだものに対応し、請求項17の発明は、第17の発明に第3の発明および第6の発明を組み込んだものに対応している。
この発明によれば、ボードゲームを他と協力しながらプレイする楽しみが味わえる。
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
図1を参照して、この発明の一実施例であるゲームシステム10は、ビデオゲーム装置12を含む。ビデオゲーム装置12は、略立方体のハウジング14を含み、ハウジング14の上端には光ディスクドライブ16が設けられる。光ディスクドライブ16には、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク18が装着される。ハウジング14の前面には複数の(この実施例では4つの)コネクタ20が設けられる。これらコネクタ20は、ケーブル24によって、コントローラ22をビデオゲーム装置12に接続するためのものであり、この実施例では最大4つのコントローラ22をビデオゲーム装置12に接続することができる。
コントローラ22には、その上面,下面,或いは側面などに、操作部(操作スイッチ)26が設けられる。操作部26は、たとえば2つのアナログジョイスティック(適宜“ジョイスティック26a”および“ジョイスティック26b”と呼ぶ),1つの十字キー,複数のボタンスイッチ(ボタン26Aおよびボタン26Bを含む)等で構成される。1つのアナログジョイスティックは、スティックの傾き量と方向とによって、プレイヤオブジェクト(プレイヤがコントローラ22によって操作可能な動画オブジェクト)の移動方向および/または移動速度ないし移動量などを入力するために用いられる。他のアナログジョイスティックは、傾斜方向によって、仮想カメラの移動を制御する。十字スイッチは、アナログジョイスティックに代えてプレイヤオブジェクトの移動方向を指示するために用いられる。ボタンスイッチは、プレイヤオブジェクトの動作を指示するために利用されたり、3次元画像の仮想カメラの視点を切り換えたり、プレイヤオブジェクトの移動スピード調節等に用いられる。ボタンスイッチは、さらに、たとえばメニュー選択やポインタあるいはカーソル移動を制御する。
なお、この実施例ではコントローラ22がそれと一体的に設けられるケーブル24によってビデオゲーム装置12に接続された。しかしながら、コントローラ22は、他の方法、たとえば電磁波(たとえば電波または赤外線)を介してワイヤレスで、ビデオゲーム装置12に接続されてもよい。また、コントローラ22の操作部26の具体的構成は、もちろんこの実施例の構成に限られるものではなく、任意の変形が可能である。たとえば、アナログジョイスティックは1つだけでもよいし、用いられなくてもよい。十字スイッチは用いられなくてもよい。
ビデオゲーム装置12のハウジング14の前面であり、コネクタ20の下方には、1つまたは複数の(この実施例では2つの)メモリスロット28が設けられる。このメモリスロット28にはメモリカード30が挿入される。メモリカード30は、光ディスク18から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム10を利用してプレイしたゲームのゲームデータ(ゲームの結果データまたは途中データ)を保存(セーブ)しておいたりするために利用される。
ビデオゲーム装置12のハウジング14の後面には、AVケーブルコネクタ(図示せず)が設けられ、そのコネクタを用いて、AVケーブル32を通してビデオゲーム装置12
にモニタ34を接続する。このモニタ34は典型的にはカラーテレビジョン受像機であり、AVケーブル32は、ビデオゲーム装置12からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ(モニタ)34の画面上にたとえば3次元(3D)ビデオゲームのゲーム画像が表示され、左右のスピーカ34aからゲーム音楽や効果音などのステレオゲーム音声が出力される。
このゲームシステム10において、ユーザまたはゲームプレイヤがゲーム(または他のアプリケーション)をプレイするために、ユーザはまずビデオゲーム装置12の電源をオンし、次いで、ユーザはビデオゲーム(もしくはプレイしたいと思う他のアプリケーション)をストアしている適宜の光ディスク18を選択し、その光ディスク18をビデオゲーム装置12のディスクドライブ16にローディングする。応じて、ビデオゲーム装置12がその光ディスク18にストアされているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはビデオゲーム装置12に入力を与えるためにコントローラ22を操作する。たとえば、操作部26のどれかを操作することによってゲームもしくは他のアプリケーションをスタートさせる。操作部26の他のものを動かすことによって、動画オブジェクト(プレイヤオブジェクト)を異なる方向に移動させ、または3次元(3D)のゲーム世界におけるユーザの視点(カメラ位置)を変化させることができる。
図2は図1実施例のビデオゲームシステム10の電気的な構成を示すブロック図である。ビデオゲーム装置12には、中央処理ユニット(以下、「CPU」という。)36が設けられる。このCPU36は、コンピュータ或いはプロセサなどとも呼ばれ、ビデオゲーム装置12の全体的な制御を担当する。CPU36ないしコンピュータは、ゲームプロセサとして機能し、このCPU36には、バスを介して、メモリコントローラ38が接続される。メモリコントローラ38は主として、CPU36の制御の下で、バスを介して接続されるメインメモリ40の書込みや読出しを制御する。このメモリコントローラ38にはGPU(Graphics Processing Unit:グラフィックス処理装置) 42が接続される。
GPU42は、描画手段の一部を形成し、たとえばシングルチップASICで構成され、メモリコントローラ38を介してCPU36からのグラフィクスコマンド(graphics command :作画命令) を受け、そのコマンドに従って、ジオメトリユニット44およびレンダリングユニット46によって3次元(3D)ゲーム画像を生成する。つまり、ジオメトリユニット44は、3次元座標系の各種オブジェクトやオブジェクト(複数のポリゴンで構成されている。そして、ポリゴンとは少なくとも3つの頂点座標によって定義される多角形平面をいう。)の回転,移動,変形等の座標演算処理を行う。レンダリングユニット46は、各種オブジェクトの各ポリゴンにテクスチャ(Texture :模様画像)を貼り付けるなどの画像生成処理を施す。したがって、GPU42によって、ゲーム画面上に表示すべき3D画像データが作成され、その画像データがフレームバッファ48内に記憶される。
なお、GPU42が作画コマンドを実行するにあたって必要なデータ(プリミティブまたはポリゴンやテクスチャ等)は、GPU42がメモリコントローラ38を介して、メインメモリ40から入手する。
フレームバッファ48は、たとえばラスタスキャンモニタ34の1フレーム分の画像データを描画(蓄積)しておくためのメモリであり、GPU42によって1フレーム毎に書き換えられる。具体的には、フレームバッファ48は、1画素(ピクセル)毎に、画像の色情報を順序立てて記憶している。ここで、色情報は、R,G,B,Aについてのデータであり、たとえば、8ビットのR(赤)データ、8ビットのG(緑)データ、8ビットのB(青)データおよび8ビットのA(アルファ)データである。なお、Aデータは、マス
ク(マット画像)についてのデータである。後述のビデオI/F58がメモリコントローラ38を介してフレームバッファ48のデータを読み出すことによって、モニタ34の画面上に3Dゲーム画像が表示される。
また、Zバッファ50は、フレームバッファ48に対応する画素数×1画素当たりの奥行きデータのビット数に相当する記憶容量を有し、フレームバッファ48の各記憶位置に対応するドットの奥行き情報または奥行きデータ(Z値)を記憶するものである。
なお、フレームバッファ48およびZバッファ50は、ともにメインメモリ40の一部を用いて構成されてもよく、また、これらはGPU42の内部に設けられてもよい。
メモリコントローラ38はまた、DSP(Digital Signal Processor)52を介して、オーディオ用のRAM(以下、「ARAM」という。)54に接続される。したがって、メモリコントローラ38は、メインメモリ40だけでなく、サブメモリとしてのARAM54の書込みおよび/または読出しを制御する。
DSP52は、サウンドプロセサとして働き、メインメモリ40に記憶されたサウンドデータ(図示せず)を用いたり、ARAM54に書き込まれている音波形データ(図示せず)を用いたりして、ゲームに必要な音、音声或いは音楽に対応するオーディオデータを生成する。
メモリコントローラ38は、さらに、バスによって、各インタフェース(I/F)56,58,60,62および64に接続される。コントローラI/F56は、ビデオゲーム装置12に接続されるコントローラ22のためのインタフェースであり、コントローラ22の操作部26の操作信号または操作データを、メモリコントローラ38を通してCPU36に与える。ビデオI/F58は、フレームバッファ48にアクセスし、GPU42で作成した画像データを読み出して、画像信号または画像データ(ディジタルRGBAピクセル値)をAVケーブル32(図1)を介してモニタ34に与える。
外部メモリI/F60は、ビデオゲーム装置12の前面に挿入されるメモリカード30(図1)をメモリコントローラ38に連係させる。それによって、メモリコントローラ38を介して、CPU36がこのメモリカード30にデータを書込み、またはメモリカード30からデータを読み出すことができる。オーディオI/F62は、メモリコントローラ38を通してDSP52から与えられるオーディオデータまたは光ディスク18から読み出されたオーディオストリームを受け、それらに応じたオーディオ信号(音声信号)をモニタ34のスピーカ34aに与える。
そして、ディスクI/F64は、ディスクドライブ16をメモリコントローラ38に接続し、したがって、CPU36がディスクドライブ16を制御する。このディスクドライブ16によって光ディスク18から読み出されたプログラムデータやテクスチャデータ等が、CPU36の制御の下で、メインメモリ40に書き込まれる。
さて、この実施例のボードゲームでは、参加者がチームに分かれてプレイするチームプレイと、参加者が個人でプレイする個人プレイとを行うことができる。チームプレイの場合、2ないし4チームがゲームに参加でき、各チームは2つのメンバで構成される。ここでメンバは、プレイヤ(人)またはコンピュータ(COM)である。1つのチームの構成メンバは、両方が「人」でも、一方が「人」で他方が「COM」でも、両方が「COM」でも構わない。ただし、少なくとも1つのチームには「人」が含まれる必要がある。両方のメンバがCOMであるチームを除き、1つのチームに1つのコントローラ22が割り当てられる。
従って、たとえば2台のコントローラ22を用いて3人でチームプレイを行うとすると、2人が1つのチームを作り、残りの1人はコンピュータと組んで別のチームを作ることになる。1台のコントローラ22を2人で共有するチームでは、一方のメンバがジョイスティック26aおよびボタン26A(左系)を操作し、他方のメンバはジョイスティック26bおよびボタン26B(右系)を操作する。
なお、コントローラ22を3台用いれば、3人がそれぞれコンピュータ(COM1〜COM3)と組んで、3チームでチームプレイを行うことも可能である。一方、個人プレイの場合には、1ないし4人がゲームに参加し、1人につき1台のコントローラ22が割り当てられる。
以下では、3人のプレイヤが2台のコントローラ26を利用してチームプレイを行う場合と、2人のプレイヤが2台のコントローラ26を利用して個人プレイを行う場合について説明する。
図3ないし図8にはメインメモリ40のメモリマップが示される。メインメモリ40は、ROM領域402およびRAM領域404を含む。図3を参照して、ROM402領域には、複数のキャラクタA,B,C,…にそれぞれ対応するキャラクタA情報,キャラクタB情報,キャラクタC情報,…と、各々が1つのメインゲームに対応する個人プレイ用メインゲームプログラムおよびチームプレイ用メインゲームプログラムと、各々がミニゲーム1,2,…に対応する個人プレイ用ミニゲーム1,2,…プログラムおよびチームプレイ用ミニゲーム1,2,…プログラムとが格納される。
キャラクタA情報,キャラクタB情報およびキャラクタC情報の各々は、キャラクタID,キャラクタ画像データおよびパラメータで構成される。
一方、RAM領域404には、チームプレイ選択フラグが格納される。個人プレイおよびチームプレイのうち後者が選択されると、チームプレイ選択フラグはオンに設定され、これに伴って図4に示すチーム情報がRAM領域404に生成される。図4を参照して、チーム情報はチーム1メンバ1情報,チーム1メンバ2情報,チーム2メンバ1情報およびチーム2メンバ2情報を含み、各々の情報はキャラクタID,人/COMフラグおよび代表権フラグで構成される。
チームプレイ選択フラグがオンの状態でメインゲームが起動されると、図5に示すメインゲーム情報がRAM領域404にさらに生成される。図5を参照して、メインゲーム情報は、チーム1現マス位置データ,チーム2現マス位置データ,サイコロの目変数,メンバ1出目情報およびメンバ2出目情報を含む。メンバ1出目情報およびメンバ2出目情報の各々は、出目データ,押下時フレーム番号(ボタン押下操作が受け付けられた時点のフレーム番号)および出目決定フラグで構成される。
チームプレイ用メインゲームの過程でミニゲームが起動されると、図6に示すチームプレイ用ミニゲーム情報がRAM領域404にさらに生成される。図6を参照して、チームプレイ用ミニゲーム情報は、全員参加ゲーム情報,代表者参加ゲーム情報,チーム1オブジェクト位置データ,チーム2オブジェクト位置データ,チーム1成績情報,チーム2成績情報およびゴール順位情報を含む。
全員参加ゲーム情報はチーム1メンバ1位置データ,チーム1メンバ2位置データ,チーム2メンバ1位置データおよびチーム2メンバ2位置データで構成され、代表者参加ゲーム情報はチーム1代表キャラクタID,チーム2代表キャラクタID,チーム1代表キャラクタ位置データ,チーム2代表キャラクタ位置データで構成される。
ここでミニゲームには、全員参加型と代表者参加型の2タイプがあり、起動されたミニゲームのタイプに応じて、全員参加ゲーム情報および代表者参加ゲーム情報の一方が有効化される。
代表者参加型ミニゲームは、各チームから選出された代表キャラクタがゲームを行う。一方、全員参加型のミニゲームには、全てのキャラクタがゲームに参加し、個々の成績をチーム毎に集計するもの(図13(A)〜図13(C)参照)や、同じチームに属する2つのキャラクタが互いに協力してゲームを行うもの(図14,図16(A)および図16(B)参照)がある。
いずれのミニゲームでも、勝利チームにはコインが支給される。具体的なコインの支給方法としては、ゲーム開始前に各チームから保有コインの一部を賭け金として徴収し、ゲーム終了後に全コインを勝利チームに払い戻す方法と、賭け金の徴収はせず単に勝者に所定枚数のコインを支給する方法とがある。
チーム1成績情報およびチーム2成績情報には、チーム1およびチーム2の獲得コイン枚数,勝敗などがそれぞれ記述される。ゴール順位情報には、各チームが“ゴール”マスに到着した順位が記述される。
チーム1オブジェクト位置データおよびチーム2オブジェクト位置データは、2つのキャラクタが互いに協力してゲームを行うタイプのミニゲームにおいて、チーム1およびチーム2の各々に割り当てられるオブジェクトの位置を示すデータである。かかるオブジェクトとしては、たとえば、図14に示す玉84aおよび84bや、図16(A)および図16(B)に示す綱86がある。玉84aおよび84bは、同一チームに属する2つのキャラクタを介して移動されるので、“他律オブジェクト”と呼ぶ。綱86は、同一チームに属する2つのキャラクタを互いに関連付ける、換言すれば一方キャラクタの動きを他方キャラクタに伝える働きをするので、“伝達オブジェクト”と呼ぶ。
なお、オブジェクトとしては、上記の他律オブジェクトおよび伝達オブジェクトのほかに、キャラクタとは独立に動く自律オブジェクトがある。図13(A)〜図13(C)に示す縄82がこれに該当する。
個人プレイが選択されると、チームプレイ選択フラグはオフに設定され、これに伴って図7に示すプレイヤ1情報,プレイヤ2情報およびメインゲーム情報がRAM領域404に生成される。図7を参照して、プレイヤ1情報およびプレイヤ2情報の各々は、キャラクタIDおよび人/COMフラグを含む。メインゲーム情報は、プレイヤ1現マス位置データ,プレイヤ2現マス位置データ,サイコロの目変数,プレイヤ1出目データおよびプレイヤ2出目データを含む。
個人プレイ用メインゲームの過程でミニゲームが起動されると、図8に示す個人プレイ用ミニゲーム情報がRAM領域404にさらに生成される。図8を参照して、プレイ用ミニゲーム情報は、プレイヤ1キャラクタ位置データ,プレイヤ2キャラクタ位置データ,プレイヤ1オブジェクト位置データ,プレイヤ2オブジェクト位置データ,プレイヤ1成績情報,プレイヤ2成績情報およびゴール順位情報を含む。
以上のように構成されたゲームシステム10でプレイされるボードゲームの流れについて、図9〜図17により説明する。
ボードゲームが起動されると、図9に示すボードマップ70が表示される。ボードマップ70は、始点から終点に至る経路70aに沿って配置された複数のマスで構成される。複数のマスには、スタート”マス,“ゴール”マスおよび所定数の“ミニゲーム”マスが含まれる。“スタート”マスは経路70aの始点に設けられ、“ゴール”マスは経路70aの終点に設けられ、“ミニゲーム”マスは経路70a上に分散して設けられる。
経路70aには、分岐点72および合流点74が含まれる。複数のマスの各々には、個人プレイではプレイヤが、チームプレイではチームが、そのマスで停止したときに行うべき事項が定義されている。従って、ミニゲームは、停止マスに“ミニゲーム”と書かれているとき実行される。
なお、ミニゲーム以外の実行事項としては、コインの授受や“1回休み”等がある。コインの授受が行われると、チーム1成績情報またはチーム2成績情報(図6参照)が更新される。
この後、個人プレイおよびチームプレイのうち後者を選択する操作が行われると、図示しない編成/設定画面が表示される。画面上の指示に従ってチーム編成およびキャラクタ設定を行う一連の操作が行われると、たとえば図10に示すようなチーム情報が表示される。このチーム情報によれば、(a)参加チームがチーム1およびチーム2の2チームであること、(b)チーム1ではメンバ1およびメンバ2が共に「人」であること、(c)チーム2ではメンバ1が「人」,メンバ2が「COM」であること、(d)チーム1のメンバ1およびメンバ2にキャラクタ“A”およびキャラクタ“B”がそれぞれ割り当てられたこと、(d)チーム2のメンバ1およびメンバ2にキャラクタ“C”およびキャラクタ“D”がそれぞれ割り当てられたこと、(e)チーム1の代表権がキャラクタBに付与されたこと、および(f)チーム2の代表権がキャラクタCに付与されたことがわかる。
なお、代表権は、両メンバが「人」の場合には選択操作によって選択された方の「人」に与えられ、一方のメンバが「人」で他方のメンバが「COM」の場合には「人」に与えられ、両メンバが「COM」の場合には無作為に選択された方の「COM」に付与される。
この後、ゲーム開始操作が行われると、図11(A)に示すように、チーム1に属する2つのキャラクタAおよびBと、これら2つのキャラクタにそれぞれ対応する2つのサイコロ80aおよび80bとが表示される。
キャラクタAに対応するプレイヤは、チーム1に割り当てられたコントローラ22のボタン26Aを押下し、キャラクタBに対応するプレイヤは、同じコントローラ22のボタン26Bを押下する。かかる押下操作に応答して2つのサイコロ80aおよび80bの出目がそれぞれ乱数等を用いて無作為に決定され、決定された2つの出目たとえば“4”および“3”が表示される。
表示された2つの出目は合計され、キャラクタAおよびキャラクタBは、図11(B)に示すように、合計出目と等しいマス数つまり7マスだけ移動される。チーム1は、停止マスつまり第8マスに定義された事項を行う。
2人のプレイヤのボタン押下タイミングの差が閾値以下であれば、各々の出目が増加される。出目をどれだけ増加させるかは、サイコロ毎に無作為に決定される。このため、2人のプレイヤのボタン押下操作は、極力同時に行うのが望ましい。
この後、図12(A)に示すように、チーム2に属する2つのキャラクタCおよびDと、これら2つのキャラクタにそれぞれ対応する2つのサイコロ80aおよび80bとが表示される。キャラクタCに対応するプレイヤは、チーム2に割り当てられたコントローラ22のボタン26Aを押下し、キャラクタDに対応するプレイヤは、同じコントローラ22のボタン26Bを押下する。かかる押下操作に応答して2つのサイコロ80aおよび80bの出目がそれぞれ無作為に決定され、決定された2つの出目たとえば“3”および“2”が表示される。
表示された2つの出目は合計され、キャラクタCおよびキャラクタDは、図12(B)に示すように、合計出目と等しいマス数つまり5マスだけ移動される。チーム2は、停止マスつまり第6マスに定義された事項を行う。
第6マスには、“ミニゲーム”が定義されている。このため、サイコロを用いたメインゲームは中断され、複数のチームプレイ用ミニゲームのいずれか1つが行われる。ミニゲームの選択は、“ミニゲーム”マスで停止したチームの代表権を持つメンバが行う。代表権を持つメンバが「人」であればこれに対応するプレイヤの選択操作が受け付けられ、代表権を持つメンバが「COM」であれば無作為に選択する処理が実行される。従って、図12(B)の例では、キャラクタCに対応するプレイヤの選択操作が、チーム2に割り当てられたコントローラ22を通して受け付けられることになる。
選択可能なチームプレイ用ミニゲームの一例を図13(A)〜図13(C)に示す。これは全員参加型のミニゲームであり、このミニゲームが起動されると、回転運動する縄82と、4つのキャラクタA〜Dとが表示される。キャラクタA〜Cに対応する3人のプレイヤはそれぞれ、キャラクタA〜Cに縄82が引っ掛からないように、コントローラ22を操作してキャラクタA〜Cをジャンプさせる。キャラクタDの動作は、CPU42によって制御される。縄82が引っ掛かったキャラクタは脱落し、最後まで残ったキャラクタが勝者となる。そして、勝者の所属するチームに所定枚のコインが与えられる。
選択可能なチームプレイ用ミニゲームの他の一例を図14に示す。これは全員参加型のミニゲームであり、このミニゲームが起動されると、4つのキャラクタA〜Dと、2つの玉84aおよび84bとが表示される。玉84aはチーム1用であり、キャラクタAおよびBによって転がされる。玉84bはチーム2用であり、キャラクタCおよびDによって転がされる。自チームの玉84aまたは84bを先にゴールまで運んだチームの勝利となる。玉84aまたは84bを所望の向きに早く転がすには、2人のプレイヤが協力して2つのキャラクタの動作を的確にコントロールする必要がある。このミニゲームでは、プレイ開始前に各チームから所定枚のコインが徴収され、徴収されたコインの全部が勝利チームに与えられる。
選択可能なチームプレイ用ミニゲームのその他の一例を図15に示す。これは、代表者参加型のミニゲームである。このミニゲームが起動されると、各チームの代表キャラクタつまりチーム1代表のキャラクタBおよびチーム2代表のキャラクタCが表示される。2つのキャラクタBおよびCは、たとえば乗り物で競争を行い、先にゴールへ到達した方が勝者となる。そして、勝者の所属するチームに所定枚のコインが与えられる。
なお、このミニゲームに参加する代表キャラクタは、メインゲームにおける代表権とは別に、ミニゲームが行われる度に選定される。具体的な選定方法は、メインゲームで代表を選定した方法と同様である。すなわち、両メンバが「人」のチームでは選択操作に従って選出され、一方が「人」,他方が「COM」のチームでは「人」に対応する方のキャラクタが選出され、両方のメンバが「COM」のチームでは無作為に選出される。
こうしてミニゲーム毎に参加メンバを選定することで、応援する楽しみと、応援を受ける楽しみとが味わえる。ただし、ミニゲーム毎の代表選定処理を省略して、メインゲームの代表権を援用するようにしてもよい。
選択可能なチームプレイ用ミニゲームのさらにその他の一例を図16に示す。これは、全員参加型のミニゲームである。このミニゲームが起動されると、4つのキャラクタA〜Dがチーム毎に表示される、つまり最初キャラクタAおよびBのペアが表示され、続いてキャラクタCおよびDのペアが表示される。最初キャラクタAおよびBのペアが、綱86で互いに結ばれた状態で、橋88aおよび88bをそれぞれ渡っていく。続いてキャラクCおよびDのペアが、同じく綱86で互いに結ばれた状態で橋88aおよび88bをそれぞれ渡っていく。
橋88aと橋88bとは平行ではなく、両者の隙間が大きい場所と小さい場所とがある。また、一方のキャラクタは綱86を介して他方のキャラクタの動作の影響を受ける。このため、2人のプレイヤが協力して2つのキャラクタの動作を的確にコントロールしなければ、2つのキャラクタが橋88aおよび88bから一緒に落下する結果となる。なお、このミニゲームでは、橋88aおよび88bを渡りきったチームに所定枚のコインが与えられる。
上記のようなチームプレイ用ミニゲームのいずれかが行われ、これにチーム1が勝利したとする。チーム1には所定枚数たとえば4枚のコインが提供され、その後、メインゲームが再開される。具体的には、図17(A)に示すように、チーム1に属する2つのキャラクタAおよびBと、これら2つのキャラクタにそれぞれ対応する2つのサイコロ80aおよび80bと、チーム1か保有する4枚のコイン90とが表示される。
キャラクタAに対応するプレイヤおよびキャラクタBに対応するプレイヤはボタン26Aおよび26Bをそれぞれ押下し、これに応答して2つのサイコロ80aおよび80bの出目がそれぞれ無作為に決定され、決定された2つの出目たとえば“4”および“1”が表示される。
表示された2つの出目は合計され、キャラクタAおよびキャラクタBは、合計出目と等しいマス数つまり5マスだけ移動されることになる。ただし、図17(B)に示すように、進路上に分岐点72が存在しており、分岐点72で直進するか左折するかを決定しなければならない。決定は、代表権を持つキャラクタが行う。従って、代表権を持つキャラクタが「人」であれば決定操作が受け付けられ、代表権を持つキャラクタが「COM」であれば無作為に(もしくは所定のアルゴリズムに従って)決定される。
この場合、代表権を持つキャラクタBは「人」であるため、キャラクタBに対応するプレイヤの決定操作が受け付けられ、これに応答してキャラクタAおよびキャラクタBは分岐点72を直進し、第“11−2”マスへと移動する。第“11―2”マスには“ミニゲーム”が定義されており、ここで再びミニゲームが実行されることになる。
なお、個人プレイ用メインゲームおよびその過程で行われる個人プレイ用ミニゲームについての詳細な説明は省略する。
ボードゲームをプレイするとき、CPU36は、図18ないし図35に示す一連の処理を実行する。なお、これらのフロー図に対応するプログラムは、メインメモリ40のROM領域402(図3参照)に記憶される。図18を参照して、ゲームがスタートされると、まずステップS1で初期処理を行う。初期処理には、各種フラグのリセット,バッファ類のクリアといった処理が含まれる。
続いて、ステップS3で個人プレイおよびチームプレイのいずれかを選択する選択操作を受け付け、ステップS5でチームプレイ選択フラグの設定を行う。具体的には、個人プレイが選択されるとチームプレイ選択フラグをオフに設定し(図7参照)、チームプレイが選択されるとチームプレイ選択フラグをオンに設定する(図4参照)。フラグ設定後、ステップS7に進む。
ステップS7では、チームプレイ選択フラグを参照して、実行すべきゲームがチームプレイ用か否かを判別する。ここでYESであれば、まずステップS9でチーム編成およびキャラクタ設定(後述)を行い、続いてステップS11でチームプレイ用ゲーム処理(後述)を実行し、そしてステップS17に進む。
ステップS7でNOつまり実行すべきゲームが個人プレイ用であれば、まずステップS13でキャラクタ設定(後述)を行い、続いてステップS15で個人プレイ用ゲーム処理(後述)を実行し、そしてステップS17に進む。ステップS17では、ゴール順位情報,チーム1成績情報およびチーム2成績情報(図6参照)に基づいて勝敗処理を行う。続くステップS19では、ゲームを終了するか否かが判別され、ここでYESであれば処理を終了し、NOであればステップS3に戻る。
ステップS9のチーム編成およびキャラクタ設定は、図19のサブルーチンに従って実行される。図19を参照して、まずS31で、ポート1(チーム1用ポート:図1では“P1”)にコントローラ1(チーム1用のコントローラ22)が接続されているか否かを判別する。ここでYESであれば、ステップS33に移って、チーム1メンバ1の人/COMフラグ(図4参照)を「人」に設定し、かつチーム1メンバ2の人/COMフラグを「COM」に設定する。
続くステップS35では、ポート2(チーム2用ポート:図1では“P2”)にコントローラ2(チーム2用のコントローラ22)が接続されているか否かを判別する。ここでYESであれば、ステップS37に移って、チーム2メンバ1の人/COMフラグを「人」に設定し、かつチーム2メンバ2の人/COMフラグを「COM」に設定する。ステップS35でNOであれば、ステップS39に移って、チーム2メンバ1の人/COMフラグを「COM」に設定し、かつチーム2メンバ2の人/COMフラグを「COM」に設定する。設定後、ステップS41に移る。
ステップS41ではコントローラ1への操作入力の有無を判別し、操作入力があればステップS43ないしS47で操作入力の種類を判別する。ステップS43では確定入力か否かが判別され、ステップS45ではチーム1メンバについての変更入力か否かが判別され、ステップS47ではチーム2メンバについての変更入力か否かが判別される。
ステップS43でYESであれば、ステップS55(図20参照)に移る。ステップS45でYESであれば、ステップS51に移って、チーム1キャラクタ2の人/COMフラグを「人」から「COM」に、または「COM」から「人」に変更する。変更後、ステップS41に戻る。
ステップS47でYESであれば、ステップS49に移って、ポート2にコントローラ2が接続されているか否かを判別し、ここでYESであればステップS53に移る。ステップS53では、チーム2のキャラクタ1およびキャラクタ2に対応する2つの人/COMフラグを「人」・「人」→「人」・「COM」→「COM」・「人」→「COM」・「COM」のように順次変更する。変更後、ステップS41に戻る。
ステップS47でNOまたはステップS49でNOであれば、ステップS41に戻る。
図20を参照して、ステップS55では、コントローラ1への操作入力の有無を判別する。ここで入力ありと判別されれば、ステップS57でコントローラ2がポート2に接続されているか否かを判別し、ここでYESであればステップS59に移って、チーム2の少なくとも一方のメンバが「人」であるか否かを判別する。
ステップS59でYESと判別されると、ステップS61に移って、チーム1メンバ1およびチーム1メンバ2の各々に割り当てるキャラクタを順に選択する。ここでキャラクタAおよびキャラクタBが選択されたとすると、チーム1メンバ1のキャラクタIDとして“A”が、チーム1メンバ2のキャラクタIDとして“B”が、メインメモリ40のRAM領域404(図4参照)にそれぞれ登録される。
ステップS57でNOまたはステップS59でNOであれば、ステップS63に移って、チーム1メンバ1,チーム1メンバ2,チーム2メンバ1およびチーム2メンバ2の各々に割り当てるキャラクタを順に選択する。選択後、ステップS65に進む。
ステップS65では、コントローラ2がポート2に接続されているか否かを判別する。ここでYESであれば、ステップS67でチーム2の少なくとも一方のメンバが「人」であるか否かを判別する。ここでYESであれば、ステップS69でコントローラ2への操作入力の有無を判別する。ここで入力ありと判別されると、ステップS71に移って、チーム2メンバ1およびチーム2メンバ2の各々に割り当てるキャラクタを順に選択し、選択後ステップS73に移る。なお、ステップS65でNO,ステップS67でNOまたはステップS69でNOであれば、ステップS73に移る。
ステップS73では、キャラクタ選択が終了したか否かを判別し、ここでNOであればステップS55に戻る。ステップS73でYESであれば、ステップS75に移って、チーム1のどちらか一方のメンバの代表権フラグをオンし、またチーム2のどちらか一方のメンバの代表権フラグをオンする。続くステップS77ではチーム1成績情報およびチーム2成績情報(図6参照)を初期化し、そして上位層のルーチンに復帰する。なお、両方のメンバが「COM」であれば代表者は無作為に決定され、一方が「人」で他方が「COM」であれば代表者は「人」に決定され、両方が「人」であれば選択操作に従って代表者を決定する。
かかるチーム編成およびキャラクタ設定の結果は、メインメモリ40のRAM領域404に“チーム情報”として記憶される(図4参照)。この結果、たとえば図10に示すような2つのチームが形成される。
ステップS11のチームプレイ用ゲーム処理は、図21のサブルーチンに従って実行される。図21を参照して、まずS91でゲーム開始入力の有無を判別する。ここでYESであれば、ステップS93でチーム1現マス位置データおよびチーム2現マス位置データ(図5参照)を初期化し、そしてステップS95で現マス位置にキャラクタを表示する。
ステップS97では、メンバ1出目決定フラグおよびメンバ2出目決定フラグをオフする。ステップS99では、サイコロの目変数を初期化する。ステップS101では、2個のサイコロ80aおよび80bを表示する。そしてステップS103で、チーム1移動処理(後述)を実行する。なお、チーム1移動処理では、チーム1に属する2つのキャラクタによって2個のサイコロ80aおよび80bが同時に振られ、チーム1は2つの出目の合計に等しいマス数だけ移動される。
ステップS105では、チーム1がゴールしたか否かつまり“ゴール”マスに到達したか否かが判別され、ここでYESであれば、ステップS107でゴール順位情報(図6参照)にチーム1のゴール順位を記述する。続くステップS109では未だゴールしていないチームがあるか否かを判別し、ここでYESであればステップS125(図22参照)に進む。ステップS109でNOであれば、上位層のルーチンに復帰する。
ステップS105でNOであれば、ステップS111で停止マスの定義が“ミニゲーム”であるか否かを判別し、ここでNOであればステップS113で停止マスに応じた処理を実行する。そして、ステップS125に進む。
ステップS111でYESであれば、ステップS115に移って、ミニゲーム1,2,3,…(図3参照)の中から任意の1つを選択する。続くステップS117では、選択されたミニゲームが全員参加型であるか否かを判別する。ここでYESであれば、ステップS121に移る。ステップS117でNOつまり選択されたミニゲームが代表者参加型であれば、ステップS119で代表者選定処理(後述)を行い、その後ステップS121に移る。ステップS121では、選択されたミニゲームが行われる。
ミニゲームが終了すると、ステップS123でチーム1成績情報およびチーム2成績情報(図6参照)を更新し、そしてステップS125に移る。
図22を参照して、ステップS125では、メンバ1出目決定フラグおよびメンバ2出目決定フラグ(図5参照)をオフする。ステップS127ではサイコロの目変数を初期化し、ステップS129では2個のサイコロ80aおよび80bを表示し、そしてステップS131でチーム2移動処理(後述)を実行する。なお、チーム2移動処理では、チーム2に属する2つのキャラクタによって2個のサイコロ80aおよび80bが同時に振られ、チーム2は2つの出目の合計に等しいマス数だけ移動される。
ステップS133では、チーム2がゴールしたか否かが判別され、ここでYESであれば、ステップS135でゴール順位情報(図6参照)にチーム2のゴール順位を記述する。続くステップS137では未だゴールしていないチームがあるか否かを判別し、ここでYESであればステップS97に戻る。ステップS137でNOであれば、上位層のルーチンに復帰する。
ステップS133でNOであれば、ステップS139で停止マスの定義が“ミニゲーム”であるか否かを判別し、ここでNOであればステップS141で停止マスに応じた処理を実行する。そしてステップS97に戻る。
ステップS139でYESであれば、ステップS143に移って、ミニゲーム1,2,3,…(図3参照)の中から任意の1つを選択する。続くステップS145では、選択されたミニゲームが全員参加型であるか否かを判別し、ここでYESであれば、ステップS149に移る。ステップS145でNOつまり選択されたミニゲームが代表者参加型であれば、ステップS147で代表者選定処理(後述)を行い、その後、ステップS149に移る。ステップS149では、選択されたミニゲームが行われる。
ミニゲームが終了すると、ステップS151でチーム1成績情報およびチーム2成績情報(図6参照)を更新し、そしてステップS97に戻る。
ステップS103のチーム1移動処理およびステップS131のチーム2移動処理の各々は、図23のサブルーチンに従って実行される。なお、このサブルーチンは、“チームi”の移動処理として記述されている。図23を参照して、ステップS161では、チームiメンバ1出目決定フラグ(図5参照)がオフであるか否かを判別する。ここでYESであれば、ステップS163ないしS177を実行し、そしてステップS179に移る。ステップS161でNOであれば、直ちにステップS179に進む。
ステップS163では、チームiメンバ1が「人」であるか否かを判別し、ここでNOであればステップS165に移り、サイコロの目変数(図5参照)を乱数で決定する。決定後、ステップS175に進む。
ステップS163でYESであればステップS167に移り、コントローラiのボタンAの押下の有無を判別する。押下が検出されると、ステップS169で、現在のフレーム番号をチームiメンバ1の押下時フレーム番号(図5参照)として記憶する。続くステップS171では、サイコロの目変数を乱数で決定する。決定された変数は、ステップS173でチームiメンバ1出目データとして記憶される。そして、ステップS175に移る。
ステップS175では、チームiメンバ1出目決定フラグをオンする。ステップS177では、メンバ1サイコロ80aの出目を更新表示する。更新後、ステップS179に移る。
図24を参照して、ステップS179では、チームiメンバ2出目決定フラグ(図5参照)がオフであるか否かを判別する。ここでYESであれば、ステップS181ないしS195を実行し、そしてステップS197(図25参照)に移る。ステップS179でNOであれば、直ちにステップS197に進む。
ステップS181では、チームiメンバ2が「人」であるか否かを判別し、ここでNOであればステップS183に移り、サイコロの目変数を乱数で決定する。決定後、ステップS193に進む。
ステップS181でYESであればステップS185に移り、コントローラiのボタンBの押下の有無を判別する。押下が検出されると、ステップS187に移って現在のフレーム番号をチームiメンバ2の押下時フレーム番号として記憶する。続くステップS189では、サイコロの目変数を乱数で決定する。決定された変数は、ステップS191でチームiメンバ2出目データとして記憶される。そして、ステップS193に移る。
ステップS193では、チームiメンバ2出目決定フラグをオンする。ステップS195では、メンバ2サイコロ80bの出目を更新表示する。更新後、ステップS197に移る。
図25を参照して、ステップS197では、チームiの両メンバが共に「人」であるか否かが判別され、ここでNOであればステップS205に進む。ステップS197でYESであれば、ステップS199で、メンバ1の押下時フレーム番号とメンバの押下時フレーム番号との差が閾値以下であるか否かを判別し、ここでNOであればステップS205に進む。
ステップS199でYESであれば、ステップS201に移って、メンバ1出目データおよびメンバ2出目データの各々に乱数で決定された数値を加算する。続くステップS203では、メンバ1出目およびメンバ2出目をそれぞれ更新表示する。そしてステップS205でメンバ1出目データとメンバ2出目データとを互いに加算し、その後ステップS207に進む。
ステップS207では、チームiの現在マス位置を1マス進行させる、つまりチームi現在マス位置データを単位量だけインクリメントする。ステップS209ではチームiに属する両キャラクタを移動表示し、ステップS211ではチームiが出目合計に等しいマス数だけ進行したか否かを判別する。ここでYESであれば、上位層のルーチンに復帰する。
ステップS211でNOであれば、ステップS213に移り、現在マス位置が分岐点72(図9参照)に該当するか否かを判別する。ここでNOであればステップS207に戻り、YESであればステップS215でチームiの代表者が「人」であるか否かを判別する。この判別には、メインメモリ40に記憶された人/COMフラグおよび代表権フラグが参照される。
ステップS215でYESであれば、ステップS219に移って、コントローラiへの方向操作の入力を待つ。方向操作が入力されると、ステップS219でYESと判別され、ステップS221に移る。ステップS215でNOつまり代表者が「COM」であれば、ステップS217で所定のアルゴリズムにより方向を決定し、その後ステップS221に移る。
ステップS221では、現在マス位置を決定方向または操作入力に従う方向に1マス進行させる。そしてステップS223で、チームiが合計出目に等しいマス数だけ進行したか否かを判別し、ここでNOであればステップS207に戻る。ステップS223でYESであれば上位層のルーチンに復帰する。
ステップS147の代表者選定処理は、図26のサブルーチンに従って実行される。図26を参照して、ステップS231では、チーム1の両メンバが共に「人」であるか否かを判別し、ここでYESであればステップS235に移って、チーム1の代表をランダムに決定する。ステップS231でNOであれば、ステップS233に移って、チーム1の一方メンバが「人」であるか否かを判別する。ステップS233でYESであればステップS237で、チーム1の代表を「人」側に決定する。
ステップS233でNOであれば、ステップS239に移ってコントローラ1への操作入力を待つ。コントローラ1への操作入力があると、ステップS241で操作入力に従ってチーム1代表を決定する。コントローラ1への操作入力がなければ、ステップS235に移る。チーム1代表の決定後、ステップS243に移る。
ステップS243では、チーム2の両メンバが共に「人」であるか否かを判別し、ここでYESであればステップS247に移って、チーム2の代表をランダムに決定する。ステップS243でNOであれば、ステップS245に移って、チーム2の一方メンバが「人」であるか否かを判別する。ステップS245でYESであればステップS249で、チーム2の代表を「人」側に決定する。
ステップS245でNOであれば、ステップS251に移ってコントローラ2への操作入力を待つ。コントローラ2への操作入力があると、ステップS253で操作入力に従ってチーム2代表を決定する。コントローラ2への操作入力がなければ、ステップS247に移る。チーム2代表の決定後、上位層のルーチンに復帰する。
ステップS121,S149のチームプレイ用ミニゲーム処理は、図27のサブルーチンに従って実行される。図27を参照して、ステップS261では、選択されたミニゲームが全員参加型か否かを判別し、ここでNOつまり代表者参加型であれば、ステップS311に進む(図29参照)。
ステップS261でYESであれば、ステップS263で、全メンバのキャラクタ画像およびオブジェクトを表示する。ステップS265では、チーム1メンバ1が「人」であるか否かを判別し、ここでYESであればステップS267でコントローラ1の左系(ボタン26Aおよびジョイスティック26a)への操作入力を待つ。操作入力があると、ステップS267からステップS269に移り、チーム1メンバ1に対応するキャラクタを操作入力に従って移動および/または動作制御する。そしてステップS273に移る。
ステップS265でNOであれば、ステップS271でチーム1メンバ1に対応するキャラクタを所定のアルゴリズムに従って移動および/または動作制御し、そしてステップS273に移る。
ステップS273では、チーム1メンバ2が「人」であるか否かを判別し、ここでYESであればステップS275でコントローラ1の右系(ボタン26Bおよびジョイスティック26b)への操作入力を待つ。操作入力があると、ステップS275からステップS277に移り、チーム1メンバ2に対応するキャラクタを操作入力に従って移動および/または動作制御する。そしてステップS281(図28参照)に移る。
ステップS273でNOであれば、ステップS279でチーム1メンバ2に対応するキャラクタを所定のアルゴリズムに従って移動および/または動作制御し、そしてステップS281に移る。
図28を参照して、ステップS281では、チーム2メンバ1が「人」であるか否かを判別し、ここでYESであればステップS283でコントローラ2の左系への操作入力を待つ。操作入力があると、ステップS283からステップS285に移り、チーム2メンバ1に対応するキャラクタを操作入力に従って移動および/または動作制御する。そしてステップS289に移る。
ステップS281でNOであれば、ステップS287でチーム2メンバ1に対応するキャラクタを所定のアルゴリズムに従って移動および/または動作制御し、そしてステップS289に移る。
ステップS289では、チーム2メンバ2が「人」であるか否かを判別し、ここでYESであればステップS291でコントローラ2の右系への操作入力を待つ。操作入力があると、ステップS291からステップS293に移り、チーム2メンバ2に対応するキャラクタを操作入力に従って移動および/または動作制御する。そしてステップS297に移る。
ステップS289でNOであれば、ステップS295でチーム2メンバ2に対応するキャラクタを所定のアルゴリズムに従って移動および/または動作制御し、そしてステップS297に移る。
ステップS297では自律オブジェクトの有無を判別し、ここでYESであればステップS303に移って、自律オブジェクトを所定のアルゴリズムに従って移動制御する。これにより、たとえば図13(A)〜13(C)に示すように、自律オブジェクトである縄82が回転移動される。そしてステップS309に移る。
ステップS297でNOであれば、ステップS299で他律オブジェクトの有無を判別し、ここでYESであればステップS305に移って、他律オブジェクトをキャラクタの移動/動作に従って移動制御する。これにより、たとえば図14に示すように、他律オブジェクトである玉84aがキャラクタAおよびBによって転がされ、同じく他律オブジェクトである玉84bがキャラクタCおよびCによって転がされる。換言すれば、玉84aはキャラクタAおよびキャラクタBの移動/動作に応じて移動し、玉84bはキャラクタCおよびキャラクタDの移動/動作に応じて移動する。この後、ステップS309に移る。
ステップS299でNOであれば、ステップS301で伝達オブジェクトの有無を判別し、ここでYESであればステップS307に移って、一方キャラクタを他方キャラクタの移動/動作に応じて移動制御する。これにより、たとえば図16(A)および図16(B)に示すように、キャラクタBの移動/動作が綱86を介してキャラクタAに伝わり、その結果キャラクタAが橋88aから落下する。キャラクタAが落下すれば、キャラクタAと綱86で連結されたキャラクタBも橋88aから落下する結果となる。この後、ステップS309に移る。
ステップS309では、ミニゲームの結果が終了条件を満足したか否かを判別し、YESであれば上位層のルーチンに復帰する。ステップS309でNOであれば、ステップS265に戻る。
図29を参照して、ステップS311では、代表メンバのキャラクタおよびオブジェクトを表示する。ステップS313では、チーム1代表が「人」であるか否かを判別し、ここでYESであればステップS315でコントローラ1への操作入力を待つ。操作入力があると、ステップS315からステップS317に移り、チーム1代表に対応するキャラクタを操作入力に従って移動および/または動作制御する。そしてステップS321に移る。
ステップS313でNOであれば、ステップS319でチーム1代表に対応するキャラクタを所定のアルゴリズムに従って移動および/または動作制御し、そしてステップS321に移る。
ステップS321では、チーム2代表が「人」であるか否かを判別し、ここでYESであればステップS323でコントローラ2への操作入力を待つ。操作入力があると、ステップS323からステップS325に移り、チーム2代表に対応するキャラクタを操作入力に従って移動および/または動作制御する。そしてステップS329に移る。
ステップS321でNOであれば、ステップS327でチーム2代表に対応するキャラクタを所定のアルゴリズムに従って移動および/または動作制御し、そしてステップS329に移る。
ステップS329では自律オブジェクトの有無を判別し、ここでYESであればステップS333に移って、自律オブジェクトを所定のアルゴリズムに従って移動制御する。そしてステップS337に移る。ステップS329でNOであれば、ステップS331で他律オブジェクトの有無を判別し、ここでYESであればステップS335に移って、他律オブジェクトを所定のアルゴリズムに従って移動制御する。そしてステップS337に移る。ステップS329でNOであれば、ステップS335に進む。
ステップS337では、ミニゲームの結果が終了条件を満足したか否かを判別し、ここでYESであれば上位層のルーチンに復帰する。ステップS337でNOであれば、ステップS265に戻る。
ステップS13のキャラクタ設定は、図30のサブルーチンに従って実行される。図30を参照して、まずS341で、ポート1(プレイヤ1用のポート)にコントローラ1(プレイヤ1用のコントローラ22)が接続されているか否かを判別する。ここでYESであれば、ステップS343に移って、プレイヤ1の人/COMフラグ(図7参照)を「人」に設定する。
続くステップS345では、ポート2(プレイヤ2用のポート)にコントローラ2(プレイヤ2用のコントローラ22)が接続されているか否かを判別する。ここでYESであれば、ステップS347に移って、プレイヤ2の人/COMフラグを「人」に設定する。ステップS345でNOであれば、ステップS349に移って、プレイヤ2の人/COMフラグを「COM」に設定する。設定後、ステップS351に移る。
ステップS351ではコントローラ1への操作入力の有無を判別し、操作入力があればステップS353,S355で操作入力の種類を判別する。ステップS353では確定入力か否かが判別され、ステップS355ではプレイヤ2についての変更入力か否かが判別される。
ステップS353でYESであればステップS361(図31参照)に移り、ステップS355でYESであればステップS351に戻る。ステップS355でNOであれば、ステップS357に移り、ポート2にコントローラ2が接続されているか否かを判別する。ここでYESであればステップS359に移って、プレイヤ2の人/COMフラグを「人」から「COM」に、または「COM」から「人」に変更する。変更後、ステップS351に戻る。
図31を参照して、ステップS361では、コントローラ1への操作入力の有無を判別する。ここで入力ありと判別されれば、ステップS363でコントローラ2がポート2に接続されているか否かを判別し、ここでYESであればステップS365に移って、プレイヤ2が「人」であるか否かを判別する。
ステップS365でYESと判別されると、ステップS367に移って、プレイヤ1に割り当てるキャラクタを選択する。
ステップS363でNOまたはステップS365でNOであれば、ステップS369に移って、プレイヤ1およびプレイヤ2の各々に割り当てるキャラクタを順に選択する。選択後、ステップS371に進む。
ステップS371では、コントローラ2がポート2に接続されているか否かを判別する。ここでYESであれば、ステップS373でプレイヤ2が「人」であるか否かを判別する。ここでYESであれば、ステップS375でコントローラ2への操作入力の有無を判別する。ここで有力ありと判別されると、ステップS377に移って、プレイヤ2に割り当てるキャラクタを選択し、選択後ステップS379に移る。
ステップS371でNO,ステップS373でNOまたはステップS375でNOであれば、ステップS379に移る。ステップS379では、キャラクタ選択が終了したか否かを判別し、ここでNOであればステップS361に戻る。ステップS379でYESであれば、ステップS381でプレイヤ1成績情報およびプレイヤ2成績情報(図8参照)を初期化し、そして上位層のルーチンに復帰する。
かかるキャラクタ設定の結果は、チーム1メンバ1,チーム1メンバ2,チーム2メンバ1およびチーム2メンバ2の各々のキャラクタIDとして、メインメモリ40のRAM領域404(図4参照)に記憶される。
ステップS11の個人プレイ用ゲーム処理は、図32のサブルーチンに従って実行される。図32を参照して、まずS391でゲーム開始入力の有無を判別する。ここでYESであれば、ステップS393でプレイヤ1現マス位置データおよびプレイヤ2現マス位置データ(図7参照)を初期化し、そしてステップS395で現マス位置にキャラクタを表示する。
ステップS397では、サイコロの目変数を初期化する。ステップS399では、1個のサイコロ(図示せず)を表示する。そしてステップS401で、プレイヤ1移動処理(後述)を実行する。なお、プレイヤ1移動処理では、プレイヤ1に対応するキャラクタによってサイコロが振られ、プレイヤ1は出目に等しいマス数だけ移動される。
ステップS403では、プレイヤ1がゴールしたか否かが判別され、ここでYESであれば、ステップS405でゴール順位情報(図8参照)にプレイヤ1のゴール順位を記述する。ステップS407では未だゴールしていないチームがあるか否かを判別し、ここでYESであればステップS419(図33参照)に進む。ステップS407でNOであれば、上位層のルーチンに復帰する。
ステップS403でNOであれば、ステップS409で停止マスの定義が“ミニゲーム”であるか否かを判別し、ここでNOであればステップS411で停止マスに応じた処理を実行する。そして、ステップS419に進む。
ステップS409でYESであれば、ステップS413に移って、ミニゲーム1,2,3,…(図3参照)の中から任意の1つを選択する。続くステップS415では、ミニゲーム処理(後述)を実行する。ミニゲームが終了すると、ステップS417でプレイヤ1成績情報およびプレイヤ2成績情報(図8参照)を更新し、そしてステップS419に移る。
図33を参照して、ステップS419ではサイコロの目変数を初期化し、ステップS421では1個のサイコロを表示し、そしてステップS423でプレイヤ2移動処理(後述)を実行する。プレイヤ2移動処理では、プレイヤ2に対応するキャラクタによってサイコロが振られ、プレイヤ2は出目に等しいマス数だけ移動される。
ステップS425では、プレイヤ2がゴールしたか否かが判別され、ここでYESであれば、ステップS427でゴール順位情報(図8参照)にプレイヤ2のゴール順位を記述する。ステップS429では未だゴールしていないチームがあるか否かを判別し、ここでYESであればステップS397に戻る。ステップS429でNOであれば、上位層のルーチンに復帰する。
ステップS425でNOであれば、ステップS431で停止マスの定義が“ミニゲーム”であるか否かを判別し、ここでNOであればステップS433で停止マスに応じた処理を実行する。そしてステップS397に戻る。
ステップS431でYESであれば、ステップS435に移って、ミニゲーム1,2,3,…(図3参照)の中から任意の1つを選択する。続くステップS437では、ミニゲーム処理(後述)を実行する。ミニゲームが終了すると、ステップS439でプレイヤ1成績情報およびプレイヤ2成績情報(図8参照)を更新し、そしてステップS397に戻る。
ステップS401のプレイヤ1移動処理およびステップS423のプレイヤ2移動処理の各々は、図34のサブルーチンに従って実行される。なお、このサブルーチンは、“プレイヤi”の移動処理として記述されている。図34を参照して、ステップS451では、プレイヤiが「人」であるか否かを判別し、ここでNOであればステップS453に移り、サイコロの目変数(図7参照)を乱数で決定する。決定後、ステップS461に進む。
ステップS451でYESであればステップS455に移り、コントローラiのボタンAの押下の有無を判別する。押下が検出されると、ステップS457に移り、サイコロの目変数を乱数で決定する。決定された変数は、ステップS459でプレイヤ1出目データとして記憶される。そして、ステップS461に移る。
ステップS461では、サイコロの出目を更新表示し、この後、ステップS463に移る。ステップS463では、プレイヤiの現在マス位置を1マス進行させる、つまりプレイヤi現在マス位置データを単位量だけインクリメントする。ステップS465ではプレイヤ1に対応するキャラクタを移動表示し、ステップS467ではプレイヤiが出目に等しいマス数だけ進行したか否かを判別する。ここでYESであれば、上位層のルーチンに復帰する。
ステップS467でNOであれば、ステップS469に移り、現在マス位置が分岐点72(図9参照)に該当するか否かを判別する。ここでNOであればステップS463に戻り、YESであればステップS471でコントローラiへの方向操作入力を待つ。方向操作が入力されると、ステップS471でYESと判別され、ステップS473に移る。
ステップS473では、プレイヤiの現在マス位置を操作入力に従う方向に1マス進行させる。そしてステップS475で、プレイヤiが出目に等しいマス数だけ進行したか否かを判別し、ここでNOであればステップS463に戻る。ステップS475でYESであれば上位層のルーチンに復帰する。
ステップS415,S437のチームプレイ用ミニゲーム処理は、図35のサブルーチンに従って実行される。図35を参照して、ステップS491で、全プレイヤのキャラクタおよびオブジェクトを表示する。ステップS493では、コントローラ1への操作入力を待つ。操作入力があると、ステップS493からステップS495に移り、プレイヤ1に対応するキャラクタを操作入力に従って移動および/または動作制御する。そしてステップS497に移る。
ステップS497では、プレイヤ2が「人」であるか否かを判別し、ここでYESであればステップS499でコントローラ2への操作入力を待つ。操作入力があると、ステップS499からステップS501に移り、プレイヤ2に対応するキャラクタを操作入力に従って移動および/または動作制御する。そしてステップS505に移る。
ステップS505では自律オブジェクトの有無を判別し、ここでYESであればステップS409に移って、自律オブジェクトを所定のアルゴリズムに従って移動制御する。そしてステップS513に移る。ステップS505でNOであれば、ステップS507で他律オブジェクトの有無を判別し、ここでYESであればステップS511に移って、他律オブジェクトを所定のアルゴリズムに従って移動制御する。そしてステップS513に移る。
ステップS513では、ミニゲームの結果が終了条件を満足したか否かを判別し、YESであれば上位層のルーチンに復帰する。ステップS513でNOであれば、ステップS493に戻る。
以上から明らかなように、この実施例では、たとえば4つのキャラクタ(キャラクタA〜D)がゲームに登場する。このうち3つ(キャラクタA〜C)がプレイヤキャラクタつまり「人」であり、残りの1つは非プレイヤキャラクタつまり「COM」である。
CPU36は、4つのキャラクタを2つのグループ(チーム1および2)にグループ分けする(S9)。そして、2つのグループの各々に、ボードマップ(70)を構成する複数のマスのいずれか1つを示すマス情報(現マス位置データ:図5参照)を割り当てる(S93)。
この後、CPU36は、プレイヤキャラクタに向けられたボタン操作を受け付け(S167,S185)、かかるボタン操作に関連してキャラクタ毎に出目を決定する(S165,S171,S183,S189)。次に、決定された出目をグループ毎に合計する(S205)。そして、複数のグループの各々に割り当てられたマス情報を、かかる合計結果に基づいて更新する(S207,S221)。
このように、キャラクタ毎に決定された出目がグループ毎に合計され、複数のキャラクタは、かかる合計出目に基づいてグループ単位でボードマップ上を移動するので、プレイヤは、ボードゲームを他と協力しながらプレイする楽しみを味わえる。
また、複数のグループの各々に対して成績情報を割り当てる(S77)。複数のマスには少なくとも1つの“ミニゲーム”マスが含まれており、CPU36は、更新されたマス情報が“ミニゲーム”マスを示すか否かを判別する(S111,S139)。この判別の結果が肯定的であれば、複数のミニゲームのいずれか1つを選択し(S115,S143)、選択されたミニゲームを行う(S121,S149)。複数ミニゲームには、代表者参加型ミニゲームと全員参加型ミニゲームとが含まれる。この後、CPU36は、複数のグループの各々に割り当てられた成績情報を、ミニゲームの結果に基づいて更新する(S123,S151)。
このように、ボードゲームの途中で適宜ミニゲームが行われるので、プレイヤは、多様なプレイを楽しむことができる。また、ミニゲームの結果はグループ毎の成績情報に反映されるので、協力する楽しみを増大させることができる。さらには、代表者参加型ミニゲームを加えたことで、他から応援を受けてプレイする楽しみと、他を応援する楽しみとを味わうことができる。
なお、この実施例では、3つのプレイヤキャラクタを含む4つのキャラクタが登場したが、一般には、少なくとも1つのプレイヤキャラクタを含む複数のキャラクタを登場させることができる。また、各グループは2つのメンバで構成されたが、一般には、複数のメンバで構成することができる。
プレイヤキャラクタの最大数とグループ当たりのメンバ数とは、ゲームシステムの構成に依存する。図1に示すゲームシステム10では、同時にコントローラを操作できるのは最大8人なので、プレイヤキャラクタの最大数は“8”となる。また、グループ当たりのメンバ数を“2”とすれば、同じグループに属する2人のプレイヤが1台のコントローラ22を操作することで、グループの一体感を高めることができる。
なお、この実施例のボードゲームでは、ボードマップを構成する複数のマスの中に“ゴール”マスおよび“ミニゲーム”マスが含まれており、ゴールへの着順とミニゲームの成績とに基づいて勝敗を決定したが、“ゴール”マスを設けず、つまり同じルートを周回するようにして、ミニゲームの成績だけで勝敗を決定してもよい。さらには、“ミニゲーム”マスも設けず、単に複数のマスの各々に定義された処理たとえばコインの授受を行って、所持コイン数の多寡で勝敗を決めてもよい。