図面を参照して、本発明のゲームプログラムによって提供される具体的なゲームの例を説明する前に、当該ゲームプログラムを実行するゲーム装置および本発明の理解を容易にするために発明の概要について説明する。なお、図1は、本発明のゲームプログラムを実行するゲーム装置1の外観図である。ここでは、ゲーム装置1の一例として、携帯ゲーム装置を示す。
図1において、本実施形態のゲーム装置1は、2つの液晶表示器(LCD)11および12を所定の配置位置となるように、ハウジング18に収納して構成される。具体的には、第1液晶表示器(以下、「LCD」という)11および第2LCD12を互いに上下に配置して収納する場合は、ハウジング18が下部ハウジング18aおよび上部ハウジング18bから構成され、上部ハウジング18bが下部ハウジング18aの上辺の一部で回動自在に支持される。上部ハウジング18bは、第2LCD12の平面形状よりも少し大きな平面形状を有し、一方主面から第2LCD12の表示画面を露出するように開口部が形成される。下部ハウジング18aは、その平面形状が上部ハウジング18bよりも横長に選ばれ、横方向の略中央部に第1LCD11の表示画面を露出する開口部が形成され、第1LCD11を挟む何れか一方にスピーカ15の音抜き孔が形成されるとともに、第1LCD11を挟む左右に操作スイッチ部14が装着される。
操作スイッチ部14は、第1LCD11の右横における下部ハウジング18aの一方主面に装着される装着される動作スイッチ14aおよび14bと、第1LCD11の左横における下部ハウジング18aの一方主面に装着される方向指示スイッチ14c、スタートスイッチ14d、およびセレクトスイッチ14eとを含む。動作スイッチ14aおよび14bは、例えばアクションゲームにおいてはジャンプ、パンチ、武器を動かす等の指示、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいてはアイテムの取得、武器またはコマンドの選択決定等の指示入力に使用される。方向指示スイッチ14cは、プレイヤによって操作可能なプレイヤオブジェクト(またはプレイヤキャラクタ)の移動方向を指示したり、カーソルの移動方向の指示したりする等のゲーム画面における方向指示に用いられる。また、必要に応じて、動作スイッチをさらに追加したり、下部ハウジング18aにおける操作スイッチ14の装着領域の上部面(上部側面)の左右に側面スイッチ14fおよび14gを設けたりしてもかまわない。
また、第1LCD11の上面には、タッチパネル13(図1における破線領域)が装着されてもよい。タッチパネル13は、例えば、抵抗膜方式、光学式(赤外線方式)、静電容量結合式の何れの種類でもよく、その上面をスティック16(または指でも可)で押圧操作、移動操作、または撫でる操作をしたとき、スティック16の座標位置を検出して座標データを出力するものである。
上部ハウジング18bの側面近傍には、必要に応じてタッチパネル13を操作するスティック16を収納するための収納孔(図1における二点破線領域)が形成される。この収納孔には、スティック16が収納される。下部ハウジング18aの側面の一部には、ゲームプログラムを記憶したメモリ(例えば、ROM)を内蔵したゲームカートリッジ17(以下、単にカートリッジ17と記載する)を着脱自在に装着するためのカートリッジ挿入部(図1における一点破線領域)が形成される。カートリッジ17は、ゲームプログラムを記憶する情報記憶媒体であり、例えば、ROMまたはフラッシュメモリのような不揮発性半導体メモリが用いられる。カートリッジ挿入部の内部には、カートリッジ17と電気的に接続するためのコネクタ(図2参照)が内蔵される。さらに、下部ハウジング18a(または上部ハウジング18bでも可)には、CPU等の各種電子部品を実装した電子回路基板が収納される。なお、ゲームプログラムを記憶する情報記憶媒体としては、上記不揮発性半導体メモリに限らず、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体でもよい。
次に、図2を参照して、ゲーム装置1の内部構成について説明する。なお、図2は、ゲーム装置1の内部構成を示すブロック図である。
図2において、ハウジング18に収納される電子回路基板には、CPUコア21が実装される。CPUコア21には、所定のバスを介して、カートリッジ17と接続するためのコネクタ28が接続されるととともに、入出力インターフェース(I/F)回路27、第1のグラフィック処理ユニット(第1GPU)24、第2のグラフィック処理ユニット(第2GPU)26、およびワーキングRAM(WRAM)22が接続される。
コネクタ28には、カートリッジ17が着脱自在に接続される。カートリッジ17は、上述したようにゲームプログラムを格納するための記憶媒体であり、具体的には、ゲームプログラムを記憶するROM171とバックアップデータを書き換え可能に記憶するRAM172とを搭載する。カートリッジ17のROM171に記憶されたゲームプログラムは、WRAM22にロードされ、当該WRAM22にロードされたゲームプログラムがCPUコア21によって実行される。CPUコア21がゲームプログラムを実行して得られる一時的なデータや画像を生成するためのデータがWRAM22に記憶される。
I/F回路27には、タッチパネル13、操作スイッチ部14、およびスピーカ15が接続される。スピーカ15は、上述した音抜き孔の内側位置に配置される。
第1GPU24には、第1ビデオRAM(以下「VRAM」)23が接続され、第2GPU26には、第2のビデオRAM(以下「VRAM」)25が接続される。第1GPU24は、CPUコア21からの指示に応じて、WRAM22に記憶される画像を生成するためのデータに基づいて第1ゲーム画像を生成し、第1VRAM23に描画する。第2GPU26は、CPUコア21からの指示に応じて、WRAM22に記憶される画像を生成するためのデータに基づいて第2ゲーム画像を生成し、第2VRAM25に描画する。
第1GPU24が第1LCD11に接続され、第2GPU26が第2LCD12に接続される。第1GPU24は、CPUコア21からの指示に応じて第1VRAM23に描画された第1ゲーム画像を第1LCD11に出力する。そして、第1LCD11は、第1GPU24から出力された第1ゲーム画像を表示する。第2GPU26は、CPUコア21からの指示に応じて第2VRAM25に描画された第2ゲーム画像を第2LCD12に出力する。そして、第2LCD12は、第2GPU26から出力された第2ゲーム画像を表示する。
I/F回路27は、タッチパネル13、操作スイッチ部14、およびスピーカ15等の外部入出力装置とCPUコア21との間のデータの受け渡しを行う回路である。タッチパネル13(タッチパネル用のデバイスドライバを含む)は、第1VRAM23の座標系に対応する座標系を有し、スティック16等によって入力(指示)された位置に対応する位置座標のデータを出力するものである。例えば、第1LCD11の表示画面の解像度は256dot×192dotであり、タッチパネル13の検出精度も表示画面に対応した256dot×192dotである。なお、タッチパネル13の検出精度は、第1LCD11の表示画面の解像度よりも低いものであってもよいし、高いものであってもよい。
次に、図3〜図5を参照して、本発明の概要を説明する。なお、図3は、本発明のゲームプログラムによってゲーム装置1で実行される概念的なフローチャートであり、後述する第1〜第4の実施形態で説明する処理に共通して含まれる概念的な処理を示している。また、図4は図3のステップS7の詳細な処理を示すサブルーチンであり、図5は図3のフローチャートで用いられるゲームパラメータの一例を示す図である。
まず、本発明では、第1表示画面にゲームパラメータに基づいた第1ゲーム画像が表示され、第2表示画面に上記ゲームパラメータに基づいて所定時間後の状態を仮定した仮ゲームパラメータに基づいた第2ゲーム画像が表示される。つまり、第1表示画面で表示される第1ゲーム画像に対して、第2表示画面には第1ゲーム画像に対してゲーム進行上、時系列的に先行した第2ゲーム画像が表示される。そして、これらのゲーム画像は、ゲームパラメータに基づいて生成される。本実施形態においては、第1表示画面が第1LCD11に相当し、第2表示画面が第2LCD12に相当する。
上記ゲームパラメータには、プレイヤの入力によって変更されるパラメータおよびプレイヤの入力とは別に自律的に変更されるパラメータがある。例えば、上記ゲーム画像に、プレイヤから与えられた入力に応じて行動するプレイヤキャラクタと、当該プレイヤキャラクタ以外の非プレイヤキャラクタとが登場するとする。この場合、上記ゲームパラメータは、プレイヤキャラクタ、非プレイヤキャラクタ、およびそのときのゲーム空間における他の条件(ゲームの状態)を決めるためのパラメータである。例えば、アクションゲームの場合、ゲームパラメータは、プレイヤキャラクタに注目したプレイヤキャラクタの動作の状態(例えば、走行、歩行、ジャンプ)を示し、プレイヤの入力によって変更されるパラメータ(プレイヤパラメータ)と、ゲーム空間においてプレイヤの入力と別に自律的に変化する天気や敵キャラクタの行動等を示すパラメータ(非プレイヤパラメータ)とを含む。これら全てのゲームパラメータに基づいて、それぞれのゲーム画像が生成される。
また、上記ゲーム画像には、プレイヤキャラクタと非プレイヤキャラクタとが明確に区別できないキャラクタが登場する場合もある。例えば、街作り型シミュレーションゲームでは、プレイヤから与えられた入力に応じて建造物等が建設され、その建設時においてはプレイヤキャラクタと定義できるが、その後は街成長プログラムに基づいてコンピュータが自動的に建設された建造物を成長させるため非プレイヤキャラクタとも定義できる。この場合、ゲームパラメータは、建造物等が建設される状態を示し、プレイヤから与えられた入力に応じて変更されるパラメータ(プレイヤパラメータ)と、街成長プログラムに基づいて入力とは別に変更されるパラメータ(非プレイヤパラメータ)とを含む。
これらの処理を実行するためのゲームプログラムは、ROM171に含まれており、ゲーム装置1の電源がオンになったときに、ROM171からWRAM22に読み出されて、CPUコア21によって実行される。なお、これらの処理を実行するためのゲームプログラムをゲーム装置1内の図示しないROMに記憶しておいてもかまわない。以下、ゲーム画像に、プレイヤから与えられた入力に応じて行動するプレイヤキャラクタと、当該プレイヤキャラクタ以外の非プレイヤキャラクタとが登場する一例を用いて、本発明の代表的な処理手順を説明する。
図3において、ゲーム装置1のCPUコア21は、タッチパネル13または操作スイッチ部14からI/F回路27を介してプレイヤからの入力があるか否かを判断する(ステップS1)。そして、CPUコア21は、入力がある場合、処理を次のステップS2に進める。一方、CPUコア21は、入力がない場合、処理を次のステップS4に進める。
ステップS2において、CPUコア21は、プレイヤからの入力に応じてゲーム空間におけるプレイヤキャラクタの位置および/または動作を算出する。そして、CPUコア21は、上記ステップS2で算出対象となったプレイヤキャラクタに対応するプレイヤパラメータを更新し(ステップS3)、処理を次のステップS4に進める。
図5を参照して、アクションゲームにおけるゲームパラメータの一例について説明する。上述したようにアクションゲームの場合、ゲームパラメータは、プレイヤパラメータおよび非プレイヤパラメータ等を含んでおり、WRAM22に記憶される。プレイヤパラメータは、ゲーム空間におけるプレイヤキャラクタの配置位置や動作の形状等を示している。図5で示したプレイヤパラメータの例では、プレイヤキャラクタがゲーム空間上の配置位置(80、30、0)で形状1の状態であることを示している。ステップS3では、このようなプレイヤパラメータが上記ステップS2で算出された位置/動作に応じて更新される。
これに対して、非プレイヤパラメータは、ゲーム空間においてプレイヤの入力と別に自律的に変化する非プレイヤキャラクタに対するパラメータを示している。図5で示した非プレイヤパラメータの例では、例えば、敵キャラクタがゲーム空間上の配置位置(160、150、0)で形状2の状態であることを示している。他の非プレイヤキャラクタとしては、ゲーム空間に配置されるアイテムや背景等がある。
図3に戻り、ステップS4において、CPUコア21は、ゲーム空間においてプレイヤの入力と別に自律的に変化する非プレイヤキャラクタの位置および/または動作を算出する。そして、CPUコア21は、上記ステップS4で算出対象となった非プレイヤキャラクタそれぞれに対応する非プレイヤパラメータを更新し(ステップS5)、処理を次のステップに進める。
次に、CPUコア21は、ゲームパラメータに基づいて第1ゲーム画像を生成し、第1GPU24を介して第1VRAM23に描画する(ステップS6)。第1ゲーム画像を生成するためのゲームパラメータには、先行するステップで更新されたプレイヤパラメータおよび非プレイヤパラメータが含まれている。そして、CPUコア21は、現時点のゲームパラメータに応じて数フレーム先(所定時間後)の仮ゲームパラメータを演算し、当該仮ゲームパラメータに基づいて第2ゲーム画像を生成して、第2GPU26を介して第2VRAM25に描画する(ステップS7)。以下、図4を参照して、ステップS7で行われる詳細な処理について説明する。
図4において、CPUコア21は、現時点のゲームパラメータを仮ゲームパラメータとしてWRAM22に記憶する(ステップS11)。そして、CPUコア21は、上記ステップS1において、プレイヤからの入力があったか否かを判断する(ステップS12)。そして、CPUコア21は、入力があった場合、処理を次のステップS13に進める。一方、CPUコア21は、入力がなかった場合、処理を次のステップS15に進める。
ステップS13において、CPUコア21は、上記ステップS3で更新されたプレイヤパラメータの更新分(差分)を算出する。そして、CPUコア21は、上記ステップS13で算出した更新分に基づいて、仮ゲームパラメータに含まれるプレイヤパラメータを所定フレーム(所定時間)分だけ更新して(ステップS14)、処理を次のステップS15に進める。つまり、ステップS14では、更新されたプレイヤパラメータに基づいて所定時間後の状態を仮定したプレイヤパラメータが算出され、仮ゲームパラメータは仮定されたプレイヤパラメータを含めて更新される。
ステップS15において、CPUコア21は、非プレイヤキャラクタの所定フレーム(所定時間)後の位置および/または動作を算出する。そして、CPUコア21は、上記ステップS4で算出対象となった非プレイヤキャラクタのそれぞれに対応する算出結果に応じて、仮ゲームパラメータに含まれる非プレイヤパラメータを更新し(ステップS16)、処理を次のステップに進める。つまり、ステップS16では、所定時間後が仮定されたプレイヤパラメータおよび現時点の非プレイヤパラメータに基づいて所定時間後の状態を仮定した非プレイヤパラメータが算出され、仮ゲームパラメータは仮定された非プレイヤパラメータを含めて更新される。
次に、CPUコア21は、仮ゲームパラメータに基づいて第2ゲーム画像を生成し、第2GPU26を介して第2VRAM25に描画し(ステップS17)、当該サブルーチンによる処理を終了する。第2ゲーム画像を生成するための仮ゲームパラメータには、先行するステップで所定時間後が仮定されたプレイヤパラメータおよび非プレイヤパラメータが含まれている。
図3に戻り、上記ステップS7の処理の後、CPUコア21は、第1GPU24に指示して第1VRAM23に描画された第1ゲーム画像を第1LCD11に表示出力する。また、CPUコア21は、第2GPU26に指示して第2VRAM25に描画された第2ゲーム画像を第2LCD12に表示出力する(ステップS8)。次に、CPUコア21は、ゲームを終了するか否かを判断する(ステップS9)。そして、CPUコア21は、ゲームを継続する場合、上記ステップS1に戻って処理を継続し、ゲームを終了する場合、当該フローチャートによる処理を終了する。
このように、本発明のゲームプログラムを実行することによって、ゲーム装置1の第1LCD11に現時点のゲームパラメータに基づいた第1ゲーム画像が表示され、第2LCD12に現時点のゲームパラメータに基づいた所定時間後の状態を仮定した第2ゲーム画像が表示される。これらの第1ゲーム画像および第2ゲーム画像を表示する処理は、上述したフローチャートによる手順に限られず、実行するゲームの種類に応じて様々な手順によって実現することが可能となる。このような第1および第2ゲーム画像を表示しながら進行するゲームは、例えば、プレイヤがある行動を起こすことにより進行していくゲームが考えられる。具体的な例としては、アクションゲーム、アドベンチャーゲーム、戦闘型シミュレーションゲーム、および街作り型シミュレーションゲーム等がある。例えば、アクションゲームでは、プレイヤの操作するプレイヤキャラクタを走行させたりジャンプさせたりして、プレイヤキャラクタがゴールに進んで行く。アドベンチャーゲームでは、プレイヤが選択したコマンドによって、次の展開に進んで行く。戦闘型シミュレーションゲームでは、プレイヤのとった行動により、自軍または敵軍のキャラクタの勝敗や運命が決定される。街作り型シミュレーションゲームでは、プレイヤが選択した行動により、未来の街の状態が変化する。以下、各ゲームにおいて表示されるゲーム画像の例を交えながら、本発明のより具体的な実施形態を説明する。なお、これらのゲームを実行するためのゲームプログラムもROM171に含まれており、ゲーム装置1の電源がオンになったときにROM171からWRAM22に読み出されてCPUコア21によって実行される。なお、これらの処理を実行するためのゲームプログラムをゲーム装置1内の図示しないROMに記憶しておいてもかまわない。
(第1の実施形態)
以下、図6〜図9を参照して、本発明の第1の実施形態に係るゲームプログラムによって提供されるゲームについて説明する。第1の実施形態に係るゲームプログラムによって提供されるゲームは、動画によってゲーム画像が構成され、コマンド選択式でプレイヤキャラクタを操作するアクションゲームである。なお、図6は単位時間毎に第1LCD11および第2LCD12に表示されるゲーム画像の一例を示す図であり、図7は単位時間毎に第1LCD11および第2LCD12に表示されるゲーム画像の他の例を示す図であり、図8はシーン番号xに応じて格納されている動画イメージを示す図であり、図9は当該ゲームプログラムによってゲーム装置1で実行されるフローチャートである。
図6および図7では、時間Tが(t−2)〜(t+3)間の単位時間毎に第1LCD11および第2LCD12に表示されるゲーム画像を示しており、それぞれの動画の一場面である。ここで、第1LCD11には、上記単位時間毎における現時点のゲーム画像(第1ゲーム画像)が表示される。一方、第2LCD12には、第1LCD11に表示される第1ゲーム画像の2単位時間後に予測されるゲーム画像(第2ゲーム画像)が表示される。
図8に示すように、第1LCD11および第2LCD12に表示されるゲーム画像は、シーン番号xおよび当該シーン番号x毎に分類されている場面分類に基づいて選択される。例えば、図6および図7で示したゲーム画像は、図8におけるシーン番号1で表示される。具体的には、シーン番号1に対して、「工事現場脇を歩く」(状況Sx)、「傘をさす」(回避操作Rx)、「頭上のペンキが倒れる」(危機Cx)、「ペンキをよける」(回避成功Ax)、および「ペンキをかぶる」(回避失敗Mx)が場面分類として分類され、それら場面分類から適時選択されてそれぞれのゲーム画像が表示される。また、シーン番号xに応じて、ライフ増減値およびシーン番号加算値が設定されている。
図6における第1LCD11に表示される第1ゲーム画像に注目して、ゲーム画像を具体的に説明する。このアクションゲームでは、プレイヤキャラクタがゲームの進行に応じてゲーム画像内を右方向に移動して行く。時間T=tにおいて、第1ゲーム画像には状況Sxが表示されている。ここでは、シーン番号1が表示対象であるので、プレイヤキャラクタが「工事現場脇を歩く」場面が表示されている。なお、時間T=(t−1)以前については、第1ゲーム画像としてシーン番号1が選択される前のゲーム画像が表示されているが、説明を簡単にするために図示を省略する。
次に、時間Tが(t+1)および(t+2)において(つまり、時間T=tから1単位時間および2単位時間後)、プレイヤキャラクタが何もせずに(後述する回避操作を行わずに)そのまま歩行を継続し、第1ゲーム画像に危機Cxが表示される。ここでは、プレイヤキャラクタの「頭上のペンキが倒れる」場面が表示されている。そして、時間T=(t+3)において、第1ゲーム画像に回避失敗Mxが表示される。ここでは、プレイヤキャラクタが「ペンキをかぶる」場面が表示されている。
次に、図6における第2LCD12に表示される第2ゲーム画像に注目する。上述したように第2ゲーム画像は、第1ゲーム画像の2単位時間後に予測されるゲーム画像が表示される。また、プレイヤキャラクタが現時点の状態から何もしない(プレイヤが回避操作を行わない)ことを条件として、2単位時間後を予測している。したがって、第2ゲーム画像では、上述した第1ゲーム画像から2単位時間分先行した場面が表示されている。なお、時間T=(t+2)以後については、第2ゲーム画像としてシーン番号1の次に選択されたゲーム画像が表示されるが、説明を簡単にするために図示を省略する。
ここで、時間T=tにおける第1および第2ゲーム画像に注目する。上述したように第1ゲーム画像には状況Sxが表示され、第2ゲーム画像には危機Cxが表示されている。つまり、状況Sxが現時点のゲーム画像として表示されている時点で、プレイヤが近い将来に危機Cxが発生することが予測できる。具体的には、プレイヤは、シーン番号1においてプレイヤキャラクタが工事現場脇を歩いているときに、頭上にある工事現場のペンキが倒れることが予測できる。したがって、プレイヤが予測される危機Cxを回避する行動をプレイヤキャラクタにとらせれば、予測される危機を回避することができる。
図7は、プレイヤが予測される危機Cxの回避に成功した場合に表示される第1および第2ゲーム画像を示している。図7において、時間T=tまでに表示される第1および第2ゲーム画像は、図6と同様であるため、詳細な説明を省略する。
図7における第1ゲーム画像に注目する。時間T=tにおいて、プレイヤが予測される危機Cxを回避する操作を行った場合、時間T=(t+1)で第1ゲーム画像に回避操作Rxが表示される。ここでは、プレイヤによってプレイヤキャラクタが所持する傘をさす指示が回避操作として行われているため、プレイヤキャラクタが「傘をさす」場面が表示されている。なお、プレイヤが行う回避操作の入力は、タッチパネル13や操作スイッチ部14を用いて行われる。
次に、時間T=(t+2)において、第1ゲーム画像に危機Cxが表示される。ここでは、プレイヤキャラクタが傘をさした状態で「頭上のペンキが倒れる」場面が表示されている。そして、時間T=(t+3)において、第1ゲーム画像に回避成功Axが表示される。ここでは、プレイヤキャラクタが「ペンキをよける」場面が表示されている。そして、時間T=(t+1)における第2ゲーム画像でも、回避成功Axが表示される。
このように、本実施形態のアクションゲームでは、事前にプレイヤキャラクタに対して発生する危機等の予測が第2ゲーム画像に表示される。そして、プレイヤが何もコマンドを実行しない、あるいはコマンドが正しくなければ第1ゲーム画像に表示されたプレイヤキャラクタに確定的な危機が発生する。一方、プレイヤが正しいコマンド入力を実行した場合は、上記危機が回避される。このように、現時点のゲーム進行を示す第1ゲーム画像と共に、所定時間後に予測される第2ゲーム画像をそれぞれ同時に表示することによって、プレイヤキャラクタに降りかかる未来の状況に対応するアクションゲームを実現することができる。以下、図9を参照して、当該アクションゲームの処理について説明する。
図9において、CPUコア21は、当該フローチャートにおける一時変数xを1に設定する(ステップS21)。そして、CPUコア21は、WRAM22等に記憶されているゲーム画像からシーン番号xを参照して(ステップS22)、処理を次のステップに進める。
次に、CPUコア21は、現在選択されているシーン番号xにおける場面分類のうち、状況Sxを選択し、当該状況Sxを第2ゲーム画像として第2LCD12に表示出力する(ステップS23:図6および図7の時間T=(t−2))。そして、CPUコア21は、現在選択されているシーン番号xにおける場面分類のうち、状況Sxより進行した場面(例えば、後述する「回避なし」を示す場面)を選択し、当該場面を第2ゲーム画像として第2LCD12に表示出力する(ステップS24:図6および図7の時間T=(t−1))。さらに、CPUコア21は、現在選択されているシーン番号xにおける場面分類のうち、状況Sxおよび危機Cxを選択し、当該状況Sxを第1ゲーム画像として第1LCD11に表示出力し、当該危機Cxを第2ゲーム画像として第2LCD12に表示出力して(ステップS25:図6および図7の時間T=t)、処理を次のステップに進める。
次に、CPUコア21は、プレイヤによる操作入力を検知し(ステップS26)、回避操作が入力されたか否かを判断する(ステップS27)。そして、CPUコア21は、回避操作が入力された場合、処理を次のステップS28に進める。一方、CPUコア21は、プレイヤからの操作がない、あるいは正しくない回避操作が入力された場合、処理を次のステップS31に進める。
ステップS28において、CPUコア21は、現在選択されているシーン番号xにおける場面分類のうち、回避操作Rxおよび回避成功Axを選択し、当該回避操作Rxを第1ゲーム画像として第1LCD11に表示出力し、当該回避成功Axを第2ゲーム画像として第2LCD12に表示出力する(図7の時間T=t+1)。次に、CPUコア21は、現在選択されているシーン番号xにおける場面分類のうち、危機Cxを選択し、当該危機Cxを第1ゲーム画像として第1LCD11に表示出力する(ステップS29:図7の時間T=(t+2))。そして、CPUコア21は、現在選択されているシーン番号xにおける場面分類のうち、回避成功Axを選択し、当該回避成功Axを第1ゲーム画像として第1LCD11に表示出力して(ステップS30:図7の時間T=(t+3))、処理を次のステップS35に進める。
一方、ステップS31において、CPUコア21は、現在選択されているシーン番号xにおける場面分類のうち、回避なしおよび回避失敗Mxを選択し、当該回避なしを第1ゲーム画像として第1LCD11に表示出力し、当該回避失敗Mxを第2ゲーム画像として第2LCD12に表示出力する(図6の時間T=t+1)。次に、CPUコア21は、現在選択されているシーン番号xにおける場面分類のうち、危機Cxを選択し、当該危機Cxを第1ゲーム画像として第1LCD11に表示出力する(ステップS32:図6の時間T=(t+2))。そして、CPUコア21は、現在選択されているシーン番号xにおける場面分類のうち、回避失敗Mxを選択し、当該回避失敗Mxを第1ゲーム画像として第1LCD11に表示出力する(ステップS33:図6の時間T=(t+3))。そして、CPUコア21は、上記ステップS33における回避失敗Mxに応じたライフを減少させ(ステップS34)、処理を次のステップS35に進める。このステップS34で減少させるライフ増減値はシーン番号xに応じて設定されている。例えば、シーン番号1の場合、ライフ増減値は「−2」となる(図8参照)。
ステップS35において、CPUコア21は、現在選択されているシーン番号xに対する回避成功/失敗に応じて設定されているシーン番号加算値を一時変数xに加算する。例えば、シーン番号1で回避成功の場合、シーン番号加算値は「+1」となり、シーン番号1で回避失敗の場合、シーン番号加算値は「+2」となる(図8参照)。次に、CPUコア21は、ゲームを終了するか否かを判断する(ステップS36)。そして、CPUコア21は、ゲームを継続する場合、上記ステップS22に戻って処理を継続し、ゲームを終了する場合、当該フローチャートによる処理を終了する。なお、継続して処理されるステップS22では、ステップS35で加算された新たなシーン番号xが参照される。
ここで、本実施形態におけるゲームパラメータは、表示するゲーム画像を選択するためのシーン番号xおよび当該シーン番号x毎の状況Sxや危機Cx等の場面分類に相当する。また、プレイヤパラメータは、プレイヤの入力に応じた回避操作でゲーム画像の選択が変更される上記場面分類に相当する。非プレイヤパラメータは、プレイヤが何も入力しない、または入力とは別に自律的に進行するシーン番号xや上記場面分類に相当する。
(第2の実施形態)
以下、図10〜図12を参照して、本発明の第2の実施形態に係るゲームプログラムによって提供されるゲームについて説明する。第2の実施形態に係るゲームプログラムによって提供されるゲームは、コマンド選択式でプレイヤキャラクタを操作するアドベンチャーゲームである。なお、図10は第1LCD11および第2LCD12に表示されるゲーム画像の一例を示す図であり、図11はゲームフラグに応じて設定される未来予測画像を示す図であり、図12は当該ゲームプログラムによってゲーム装置1で実行されるフローチャートである。
図10では、第1LCD11および第2LCD12にそれぞれ表示されるゲーム画像が、プレイヤの選択によって移り変わる一例を示している。当該ゲームでは、プレイヤが第1LCD11に表示されるゲーム画像(第1ゲーム画像)で表現される選択肢の中からコマンドを選択し、それに応じてゲームストーリが進展して行く。第1LCD11の第1ゲーム画像には、ゲームストーリ上の現在の状況が表示され、状況に応じたコマンドが適時表示される。そして、第2LCD12に表示されるゲーム画像(第2ゲーム画像)には、ゲームストーリ上の未来の状況が表示される。第2LCD12の第2ゲーム画像は、プレイヤが実行する上記コマンドに応じて予測される未来の状況(例えば、プレイヤキャラクタの状態)が表示される。
例えば、図10の左図に示される第1ゲーム画像では、現在の状況として落ちているバナナが画像で表現されている。当該状況に応じて第1ゲーム画像には、「バナナの皮が落ちている。どうする?」と記載された現在の状況説明と、「拾う」または「拾わない」と記載された選択肢とが記載されている。そして、図10の左図に示される第2ゲーム画像では、プレイヤキャラクタの未来の状態が画像で表現されている。このような図10の左図に示される第1ゲーム画像および第2ゲーム画像がそれぞれ第1LCD11および第2LCD12に同時に表示され、プレイヤは、これらのゲーム画像を見ながら選択肢を選択してコマンドを実行する。
図10の右図に示される第1ゲーム画像および第2ゲーム画像は、左図に示された状況からプレイヤが「拾わない」を選択した場合に表示される一例である。図10の右図に示される第1ゲーム画像では、現在の状況として落ちているバナナが画像で表現されている。当該状況に応じて第1ゲーム画像には、「皮を拾わなかった!」と記載された現在の状況説明が記載されている。そして、図10の右図に示される第2ゲーム画像では、プレイヤキャラクタの未来の状態としてプレイヤキャラクタが左足を怪我した状態が表示される。つまり、プレイヤは、現時点で「バナナの皮を拾わなかった」ことによって、プレイヤキャラクタが左足を怪我するという好ましくない将来を予測する。そして、プレイヤは、その後提示される選択肢を適切に選択することによって、一度予測されたプレイヤキャラクタの未来の状態を変えることも可能である。
このような未来の状況を示す第2ゲーム画像として表示するために、当該ゲームプログラムではゲームフラグが用いられる。このゲームフラグはプレイヤが実行するコマンドに応じて立てられ、当該ゲームフラグに応じて選択される未来予測画像が第2ゲーム画像に合成されて表示される。図11は、ゲームフラグに対して設定されている未来予測画像の一例である。例えば、図10のゲーム画像で説明したように、ゲームフラグ内容「バナナの皮を拾わない」に対しては、未来予測画像「左足を怪我する」が設定されている。また、ゲームフラグ内容「靴紐を結ばない」に対しては、未来予測画像「左足を怪我する」が設定されている。さらに、ゲームフラグ内容「懸賞に応募する」に対しては、未来予測画像「帽子をかぶっている」が設定されている。
このように、本実施形態のアドベンチャーゲームでは、プレイヤが実行するコマンドに応じて予測されるプレイヤキャラクタの状態が第2ゲーム画像に表示される。そして、ゲームストーリ上、現時点を示す第1ゲーム画像に表示されたプレイヤキャラクタが近い将来に上記状態となる。一方、プレイヤがコマンド入力を適切に行うことによって、一度予測されたプレイヤキャラクタの状態を変更することも可能である。このように、現時点のゲーム進行を示す第1ゲーム画像と共に、所定時間後に予測される第2ゲーム画像をそれぞれ同時に表示することによって、プレイヤキャラクタに対して予測される未来の状況に対応するアドベンチャーゲームを実現することができる。以下、図12を参照して、当該アドベンチャーゲームの処理について説明する。
図12において、CPUコア21は、現在設定されている第2ゲーム画像を第2LCD12に表示出力する(ステップS41)。そして、CPUコア21は、プレイヤが選択可能なコマンドを含んだ第1ゲーム画像を第1LCD11に表示出力する(ステップS42)。例えば、上記ステップS41およびS42を処理することによって、図10の左図に示したような第1ゲーム画像および第2ゲーム画像が、それぞれ第1LCD11および第2LCD12に表示される。そして、CPUコア21は、処理を次のステップに進める。
次に、CPUコア21は、プレイヤのコマンド選択を待ち(ステップS43)、コマンドが選択されるまで上記ステップS42の処理を繰り返す。一方、CPUコア21は、コマンドが選択された場合、処理を次のステップS44に進める。
ステップS44において、CPUコア21は、プレイヤがコマンドを選択したことを示す第1ゲーム画像を第1LCD11に表示出力する。例えば、図10の左図に示したような第1ゲーム画像で示されるコマンドから、プレイヤが「拾わない」を選択した場合、図10の右図に示したような第1ゲーム画像が第1LCD11に表示される。そして、CPUコア21は、プレイヤが選択したコマンドに応じたゲームフラグを立てる(ステップS45)。そして、CPUコア21は、上記ステップS45で立てられたゲームフラグに設定されている未来予測画像を検索する(ステップS46)。例えば、図11に示すように、立てられたゲームフラグが「バナナの皮を拾わない」の場合、未来予測画像「左足を怪我する」を検索する。そして、CPUコア21は、処理を次のステップに進める。
次に、CPUコア21は、現在表示されている第2ゲーム画像に上記ステップS46で検索した未来予測画像を合成して、新たな第2ゲーム画像を生成する(ステップS47)。例えば、未来予測画像が「左足を怪我する」の場合、図10の右図に示すような第2ゲーム画像が生成される。そして、CPUコア21は、ゲームを終了するか否かを判断する(ステップS48)。そして、CPUコア21は、ゲームを継続する場合、上記ステップS41に戻って処理を継続し、ゲームを終了する場合、当該フローチャートによる処理を終了する。
ここで、本実施形態におけるゲームパラメータは、表示する第2ゲーム画像を生成するためのゲームフラグやプレイヤが実行するコマンドに応じて変化してその後自動的に進行するゲームストーリ等に相当する。また、プレイヤパラメータは、プレイヤの入力に応じて実行されるコマンドおよびそのゲームフラグ等に相当する。非プレイヤパラメータは、入力とは別に自律的に進行するゲームストーリ等に相当する。
(第3の実施形態)
以下、図13〜図16を参照して、本発明の第3の実施形態に係るゲームプログラムによって提供されるゲームについて説明する。第3の実施形態に係るゲームプログラムによって提供されるゲームは、戦闘型シミュレーションゲームである。なお、図13および図14は第1LCD11および第2LCD12に表示されるゲーム画像の一例を示す図であり、図15は当該ゲームプログラムによってゲーム装置1で実行されるフローチャートであり、図16は図15のステップS62の詳細な処理を示すサブルーチンである。
当該ゲームでは、プレイヤがゲームマップ上に存在する自軍のキャラクタを選択して移動・攻撃・防御・魔法・アイテム使用等の行動(コマンド)を実行させ、ゲームマップ上に存在する敵軍のキャラクタを倒して行くことを目的としている。ここで、当該ゲームの進行では、プレイヤのターンとCPUのターンとが交互に繰り返される。プレイヤのターンでは、プレイヤが操作する自軍のキャラクタ(典型的には、複数)それぞれに対して、プレイヤが上記行動を実行させる。そして、行動可能な自軍のキャラクタがなくなった時点で、プレイヤのターンが終了する。CPUのターンでは、CPUが操作する敵軍のキャラクタ(典型的には、複数)それぞれに対して、CPUが上記行動を実行させる。そして、行動可能な敵軍のキャラクタがなくなった時点で、CPUのターンが終了する。
図13および図14では、それぞれ第1LCD11および第2LCD12にそれぞれ表示されるゲーム画像が、プレイヤが実行するコマンドに応じて移り変わる一例を示している。当該ゲームでは、第1LCD11に表示されるゲーム画像(第1ゲーム画像)に戦略型シミュレーションゲームのゲームマップにおける現在の戦況が表示される。そして、第2LCD12に表示されるゲーム画像(第2ゲーム画像)には、第1ゲーム画像で表現された現在の戦況のままCPUのターンに移行した場合、当該ターンでCPUが操作する敵軍のキャラクタの予測行動を示すゲームマップの未来の戦況が表示される。
例えば、図13の左図に示される第1ゲーム画像および第2ゲーム画像では、それぞれ現在の戦況として自軍のキャラクタA、B、およびCと敵軍のキャラクタα、β、およびγがゲームマップ上に表示されている。そして、プレイヤは、第1ゲーム画像で表現された自軍のキャラクタA〜Cを逐次操作してプレイヤのターンを進める。プレイヤのターンでは、「現在の戦況のままCPUのターンに移行したらどうなるか?」が、自動的に第2ゲーム画像でシミュレートされる。具体的には、プレイヤのターンにおいてプレイヤが何の操作もしていない時間(すなわちプレイヤの思考時間)に、CPUが行う敵軍のキャラクタの行動が予測され、その結果が第2ゲーム画像に反映される。そして、プレイヤが自軍のキャラクタに対して何らかの操作をした場合、逐次その情報を反映させて、再度シミュレーションが行われる。
図13の右図は、図13の左図で示された戦況のままシミュレートし第2ゲーム画像に反映させた一例である。図13の右図で示された第2ゲーム画像では、自軍のキャラクタAが敵軍のキャラクタαおよびβから攻撃を受け、自軍のキャラクタCが敵軍のキャラクタγから攻撃を受けることが表現されている。つまり、プレイヤは、このままCPUのターンに移行すれば、自軍のキャラクタAが2つの敵軍のキャラクタαおよびβから攻撃を受けるため、不利な戦況になることを予測することができる。
一方、プレイヤが自軍のキャラクタをそれぞれ移動させる場合は、第1ゲーム画像で移動させるキャラクタを選択した後、当該キャラクタを移動させる位置をポイントして、決定を示す操作を行って移動を決定する。その際、常に「ポイントされた位置に自軍のキャラクタが移動した場合、CPUのターンに移行したらどうなるか?」がリアルタイムで計算され、第2ゲーム画像に反映される。
例えば、図14の左図に示される第1ゲーム画像および第2ゲーム画像では、それぞれ現在の戦況として自軍のキャラクタA、B、およびCと敵軍のキャラクタα、β、およびγがゲームマップ上に表示されている。そして、プレイヤは、第1ゲーム画像で自軍のキャラクタAを選択した後、当該キャラクタを移動させる位置(元の位置の左上領域)をポイントしている。なお、図中の斜線で囲まれた領域は、自軍のキャラクタAがプレイヤのターンで移動できる範囲を示している。
図14の右図は、図14の左図で示された自軍のキャラクタAの移動を含めた戦況をシミュレートし第2ゲーム画像に反映させた一例である。図14の右図で示された第2ゲーム画像では、自軍のキャラクタAが敵軍のキャラクタαから攻撃を受け、自軍のキャラクタCが敵軍のキャラクタγから攻撃を受けることが表現されている。つまり、プレイヤは、図13の右図の第2ゲーム画像と比較して、自軍のキャラクタAを左上に移動させれば、CPUのターンで自軍のキャラクタAが敵軍のキャラクタαのみから攻撃を受けて、防御の負荷が軽減されることを予測することができる。
このように、本実施形態の戦略型シミュレーションゲームでは、プレイヤが実行するコマンドに応じて次ターンで予測されるCPUの行動が第2ゲーム画像に表示される。そして、その戦況でCPUのターンに移行した場合、当該CPUのターンにおいて予測された第2ゲーム画像が現時点の戦況として第1ゲーム画像として再現される。一方、プレイヤがコマンド入力を適切に行うことによって行動決定前のプレイヤキャラクタ(自軍のキャラクタ)の行動を変更することも可能である。この場合、その行動変更に応じて予測されるCPUの行動が第2ゲーム画像に表示される。このように、現時点のゲーム進行(戦況)を示す第1ゲーム画像と共に、所定時間(次ターン)後に予測される第2ゲーム画像をそれぞれ同時に表示することによって、プレイヤキャラクタに対して予測される未来の状況に対応する戦略型シミュレーションゲームを実現することができる。以下、図15および図16を参照して、当該戦略型シミュレーションゲームにおけるプレイヤのターンの処理について説明する。
図15において、CPUコア21は、現在設定されている自軍および敵軍のキャラクタをゲームマップに配置した第1ゲーム画像を第1LCD11に表示出力する(ステップS51)。そして、CPUコア21は、上記ステップS51で自軍および敵軍のキャラクタをゲームマップに配置した第1ゲーム画像を第2ゲーム画像にコピーして、当該第2ゲーム画像を第2LCD12に表示出力する(ステップS52)。例えば、上記ステップS51およびS52を処理することによって、図13の左図および図14の左図に示したような第1ゲーム画像および第2ゲーム画像が、それぞれ第1LCD11および第2LCD12に表示される。そして、CPUコア21は、処理を次のステップに進める。
次に、プレイヤによって第1ゲーム画像に表示された自軍のキャラクタが選択され、当該キャラクタの行動が選択される(ステップS53)。そして、CPUコア21は、プレイヤによって行動が選択されたか否かを判断する(ステップS54)。CPUコア21は、プレイヤが選択したキャラクタを移動する行動を選択した場合、処理を次のステップS55に進める。また、CPUコア21は、プレイヤが選択したキャラクタと敵軍のキャラクタとが戦闘する行動を選択した場合、処理を次のステップS57に進める。さらに、CPUコア21は、プレイヤによるキャラクタの選択がない、または選択したキャラクタの行動の選択がない(例えば、プレイヤのターンにおいてプレイヤの操作が中断しているプレイヤの思考時間)場合、処理を次のステップS61に進める。
ステップS55において、プレイヤによって選択された自軍のキャラクタを移動させる位置が第1ゲーム画像に対してポイントされる。そして、CPUコア21は、ポイントされた位置に自軍のキャラクタの移動を決定するか否かを判断する(ステップS56)。このステップS56では、プレイヤが決定を示す操作(例えば、移動を決定する決定ボタンを押す)がされたか否かで判断される。CPUコア21は、移動が決定された場合、処理を次のステップS58に進める。一方、CPUコア21は、移動が未決定である場合、処理を次のステップS61に進める。
ステップS57において、CPUコア21は、プレイヤが選択したキャラクタと敵軍のキャラクタとが戦闘する行動を選択した場合、双方のキャラクタが戦闘を行う戦闘結果ルーチンに基づいて処理を行う。この戦闘結果ルーチンでは、双方のキャラクタの戦闘能力や防衛能力等に基づいて、その戦闘結果が出力されるが詳細な説明を省略する。なお、本実施形態における戦略型シミュレーションゲームでは、プレイヤが自軍のキャラクタと敵軍のキャラクタとの戦略を選択した場合、当該選択が即時に決定となる。したがって、CPUコア21は、処理を次のステップS58に進める。
ステップS58は、プレイヤによって選択された自軍のキャラクタを移動する行動が決定された場合、あるいはプレイヤが選択した自軍のキャラクタと敵軍のキャラクタとが戦闘する行動を決定した場合に処理される。ステップS58において、CPUコア21は、決定された自軍のキャラクタの行動結果を現在設定されているゲームマップに反映させ、当該ゲームマップを表現する第1ゲーム画像を第1LCD11に表示出力する(ステップS58)。そして、CPUコア21は、上記ステップS58で反映させたゲームマップを表現する第1ゲーム画像を第2ゲーム画像にコピーして、当該第2ゲーム画像を第2LCD12に表示出力する(ステップS59)。そして、CPUコア21は、第1ゲーム画像で表現されたゲームマップに行動可能な自軍のキャラクタ(つまり、プレイヤのターンにおいて未行動の自軍のキャラクタ)があるか否かを判断し、行動可能な自軍のキャラクタがないとき、プレイヤのターンを終了する。一方、CPUコア21は、行動可能な自軍のキャラクタがあるとき、上記ステップS53に戻って処理を繰り返す。
ステップS61は、プレイヤによって選択された自軍のキャラクタを移動する位置をポイントされた場合、プレイヤによるキャラクタの選択がない場合、または選択したキャラクタの行動の選択がない場合等、プレイヤの思考時間等に処理される。ステップS61において、CPUコア21は、第1ゲーム画像として配置されている自軍のキャラクタそれぞれの位置を現在の位置に仮定する。次に、CPUコア21は、仮定された自軍のキャラクタの位置に基づいて、CPUのターンで行われる敵軍のキャラクタの行動を予測する(ステップS62:思考ルーチン)。そして、CPUコア21は、ステップS62で予測した結果をゲームマップに反映させ、当該ゲームマップを表現する第2ゲーム画像を第2LCD12に表示出力して(ステップS63)、上記ステップS53に戻って処理を繰り返す。以下、図16を参照して、ステップS62で行う思考ルーチンについて説明する。なお、後述する思考ルーチンの説明においても、上述と同様にプレイヤが操作可能なキャラクタを「自軍のキャラクタ」と記載し、CPUが操作可能なキャラクタを「敵軍のキャラクタ」と記載して、用語の変更は行わない。
図16において、CPUコア21は、上記ステップS61で仮定された自軍のキャラクタそれぞれの位置に基づいて、ゲームマップ内の状況を取得し(ステップS71)、処理を次のステップに進める。ここで、ステップS71では、ゲームマップ内の状況として、ゲームマップ内の自軍および敵軍のキャラクタ位置に基づいて、「次のCPUのターンで戦闘可能な敵軍のキャラクタは?」、「戦略上の目的となる他のキャラクタ(制圧対象の町等)の数は?」、「次のプレイヤのターンにおいて自軍のキャラクタが移動可能な範囲に何があるか?」等が取得される。
次に、CPUコア21は、評価関数を用いて敵軍全体の戦略を決定して(ステップS72)、処理を次のステップに進める。例えば、評価関数は、ゲーム中に敵軍のキャラクタがそれぞれ取り得る様々な行動について、それらが敵軍にとってどれくらい有利なことなのか、対戦相手(プレイヤ)にとってどれくらい不利なことなのかを判断するための関数である。そして、自軍および敵軍のキャラクタがそれぞれ取り得る行動は、予め数値化されている。また、敵軍全体の戦略には、「ゲームマップ上の特定のポイントに自軍のキャラクタを近づかせない」や「戦略上強い敵軍のキャラクタが前線に到着するまで戦闘はしない」等があり、このような戦略が上記評価関数を用いて決定される。
次に、CPUコア21は、敵軍のキャラクタのうち、行動可能な敵軍のキャラクタを選択し(ステップS73)、処理を次のステップに進める。
次に、CPUコア21は、選択された敵軍のキャラクタが取り得る行動について、評価関数にデータ入力し、その行動に対する評価値を得る(ステップS74)。ここで、評価値は、各行動を評価関数に入力することによって得られる数値であり、CPUコア21は、評価値の総和が高くなるように行動する。つまり、評価値が高い行動をとれば、敵軍にとって有利となる。例えば、戦闘対象となる自軍のキャラクタの戦闘レベルに応じて、その自軍のキャラクタを倒せば評価値が高くなる。また、ゲームマップ上の特定のポイントに敵軍のキャラクタが接近すれば評価値が高くなる。さらに、対戦相手(自軍のキャラクタ)に特定ポイントを占領された場合、評価値が低くなる。そして、CPUコア21は、選択された敵軍のキャラクタが取り得る行動について全て評価値を得るまで上記ステップS74を繰り返し、全ての評価値を得た場合、処理を次のステップS76に進める。
ステップS76において、CPUコア21は、最も評価値が高い行動を選択して選択した敵軍のキャラクタを行動させる。そして、CPUコア21は、ゲームマップに行動可能な敵軍のキャラクタがあるか否かを判断し、行動可能な敵軍のキャラクタがないとき、当該サブルーチンによる処理を終了する。一方、CPUコア21は、行動可能な敵軍のキャラクタがあるとき、上記ステップS73に戻って処理を繰り返す。
なお、第2ゲーム画像として表示されるゲームマップの未来の戦況は、確定的なものでなくてもかまわない。例えば、自軍のキャラクタが敵軍のキャラクタに攻撃されて倒されてしまう予測が表示されても、CPUのターンにおける戦闘結果のランダム性(クリティカルヒットや回避等)によって倒されることを免れる場合があってもかまわない。
ここで、本実施形態におけるゲームパラメータは、プレイヤによって選択/決定されるコマンドやCPUが敵軍のキャラクタを行動させるために自律的に思考するパラメータ等に相当する。また、プレイヤパラメータは、プレイヤによって選択/決定されるコマンド等に相当する。非プレイヤパラメータは、CPUが敵軍のキャラクタを行動させるために自律的に思考するパラメータ等に相当する。
(第4の実施形態)
以下、図17〜図19を参照して、本発明の第4の実施形態に係るゲームプログラムによって提供されるゲームについて説明する。第4の実施形態に係るゲームプログラムによって提供されるゲームは、街作り型シミュレーションゲームである。なお、図17および図18は第1LCD11および第2LCD12に表示されるゲーム画像の一例を示す図であり、図19は当該ゲームプログラムによってゲーム装置1で実行されるフローチャートである。
当該ゲームでは、ゲームマップ上に建造物を建てたり道路を整備したりして、街を発展させていくことを目的としている。例えば、第1LCD11に表示されるゲーム画像(第1ゲーム画像)に現在の街状況が表示される(図17および図18参照)。そして、第2LCD12に表示されるゲーム画像(第2ゲーム画像)には、第1ゲーム画像で表現された現在の街状況のまま所定時間経過(例えば、ゲームストーリ上の1年後)した場合を仮定して、未来の街状況が表示される。これらの第1ゲーム画像および第2ゲーム画像は、それぞれ同じ範囲の街状況が表示されており、街を示すゲームマップは、複数の単位区画から構成されている。当該ゲームでは、街に建設される建造物や敷設される道路等は、全て単位区画に属する。以下、単位区画を指定して説明するために、縦区分A、B、C…および横区分1、2、3…の組合せによってそれぞれ区別する。
図17において、第1LCD11に表示される第1ゲーム画像には、複数の単位区画から構成されるゲームマップを用いた現在の街状況の一例が表示されている。例えば、第1ゲーム画像では、単位区画C2およびD2にそれぞれ1軒の家が建設されている。また、第1ゲーム画像の単位区画A3〜F3には道路が敷設されている。そして、プレイヤは、第1ゲーム画像の単位区画E2にコンビニエンスストアを建設するコマンドを実行している。
一方、第2LCD12に表示される第2ゲーム画像には、第1ゲーム画像の単位区画E2にコンビニエンスストアを建設することによって、所定時間後に予測される未来の街状況が表示されている。例えば、第2ゲーム画像では、単位区画C2およびD2にそれぞれ建設されていた家に加えて、単位区画E2にコンビニエンスストアが建設され、さらに単位区画C1およびD1にそれぞれ1軒の家が建設されている。また、第2ゲーム画像では、単位区画A3〜F3に敷設されていた道路は、さらに単位区画F2〜F4に単位区画F3を交差点として直交する道路が敷設されている。そして、第2ゲーム画像では、単位区画E3の道路上に乗用車が走行している。したがって、プレイヤは、第1ゲーム画像の単位区画E2にコンビニエンスストアを建設するコマンドを実行すると、その周囲に家が建ったり車が往来したりするような未来の街の姿を第2ゲーム画像で予測できる。
図18において、第1LCD11に表示される第1ゲーム画像には、複数の単位区画から構成されるゲームマップを用いた現在の街状況の他の例が表示されている。例えば、第1ゲーム画像では、単位区画B2〜D2、F2、C4、およびD4にそれぞれ1軒の家が建設されている。また、第1ゲーム画像では、単位区画E2およびG2にそれぞれ1棟のビルが建設されている。さらに、第1ゲーム画像の単位区画A3〜F3およびF3〜F6には、単位区画F3を曲がり角とする道路が敷設されている。そして、第1ゲーム画像では、単位区画B3の道路上のみに乗用車が走行している。なお、プレイヤは、図18に示す第1ゲーム画像では何のコマンドも実行していない。
一方、第2LCD12に表示される第2ゲーム画像には、第1ゲーム画像で示された現在の街状況のまま放置されることによって、所定時間後に予測される未来の街状況が表示されている。例えば、第2ゲーム画像では、上述した第1ゲーム画像に建設されていた建造物に加えて、その周辺に家、ビル、工場等の建造物が乱立している。また、第2ゲーム画像では、上述した第1ゲーム画像に敷設されていた単位区画A3〜F3およびF3〜F6の道路上全てに乗用車が走行している。したがって、プレイヤは、第1ゲーム画像で示された現在の街状況を放置すると、その周囲に建造物が乱立して交通渋滞を引き起こす未来の街の姿を第2ゲーム画像で予測できる。
このように、本実施形態の街作り型シミュレーションゲームでは、現在の街状況やプレイヤが実行するコマンドに応じて予測される所定時間後の未来の街状況が第2ゲーム画像に表示される。そして、その街状況を継続した場合、所定時間経過後の第1ゲーム画像に予測された第2ゲーム画像が再現される。一方、プレイヤが所定時間経過までにコマンド入力を適切に行うことによって街状況を変更することも可能である。例えば、プレイヤが、図18に示す第1ゲーム画像の単位区画F3〜H3に直線道路を敷設するコマンドを実行して、交通渋滞を解消する効果を期待することも可能である。この場合、さらにそのコマンド入力に応じて予測される未来の街状況が第2ゲーム画像に表示される。このように、現時点のゲーム進行(現在の街状況)を示す第1ゲーム画像と共に、所定時間(ゲームストーリ上の1年)後に予測される第2ゲーム画像をそれぞれ同時に表示することによって、予測される未来の状況に対応する街作り型シミュレーションゲームを実現することができる。以下、図19を参照して、当該街作り型シミュレーションゲームにおけるプレイヤのターンの処理について説明する。
図19において、CPUコア21は、現在の街状況を示す第1ゲーム画像を第1LCD11に表示出力する(ステップS81)。そして、CPUコア21は、第1ゲーム画像で示した現在の街状況から所定時間後を予測した未来の街状況を示す第2ゲーム画像を第2LCD12に表示出力する(ステップS82)。ここで、上述したように第1ゲーム画像および第2ゲーム画像は、それぞれ街を示すゲームマップによって構成されている。ゲームマップは、複数の単位区画から構成されている。当該ゲームでは、街に建設される建造物や敷設される道路等は、全て単位区画に属する。そして、典型的には、第1LCD11および第2LCD12に表示される第1ゲーム画像および第2ゲーム画像は、それぞれ同じ範囲(つまり、同じ単位区画)の街状況が表示される。
上記ステップS81で表示される第1ゲーム画像は、スタート直後に表示される現在の街状況であり、プレイヤがコマンドを実行する前の初期的に設定された街状況や、ゲーム途中で中断しセーブしておいた街状況を示す。また、上記ステップS82で表示される第2ゲーム画像は、ステップS81で表示された第1ゲーム画像で示される現在の街状況から所定時間後を予測した未来の街状況を示す。
ここで、当該ゲームは、ゲームマップに配置されているそれぞれの建造物や単位区画等を評価して、それらが関連しながら街として成長していく従来の街成長プログラムによって街を発展させていくものである。この街成長プログラムは、プレイヤが現在の街状況に対してコマンドを何ら実行しなくとも、設定された時間経過速度に応じて自動的に実行されており、現在の街状況も当該時間経過と共に変化していく。第2ゲーム画像として示される未来の街状況は、第1ゲーム画像として示される現在の街状況のゲームマップに基づいて、上記街成長プログラムを所定時間経過まで先行して実行することによって得られる。この街成長プログラムの詳細な処理については、説明を省略する。
次に、CPUコア21は、上記街成長プログラムによる通常のゲーム処理を行い、その演算結果を第1ゲーム画像として第1LCD11に表示出力する(ステップS83)。ここで、通常のゲーム処理とは、プレイヤがコマンドを何ら実行しない場合、設定された時間経過速度に応じて自動的に進行する街の成長が現在の街状況として演算される。また、プレイヤが現在の街状況に対してコマンドを実行した場合、このコマンドに応じた処理を加えて現在の街状況が演算される。なお、コマンドに応じた処理では、上述した時間経過速度に応じて進行する街の成長が一時的に停止されて現在の街状況が演算される場合もあるし、街の成長コマンドの実行と同時進行させて現在の街状況が演算される場合もある。例えば、プレイヤが現在の街状況に対してコンビニエンスストアを建設するコマンドを実行した場合、図17の第1ゲーム画像が第1LCD11に表示される。また、プレイヤがコマンドを何ら実行しない場合、図18の第1ゲーム画像が第1LCD11に表示される。
次に、CPUコア21は、プレイヤが現在の街状況を変化させたか否かを判断する(ステップS84)。そして、現在の街状況を変化させた場合、処理を次のステップS85に進め、変化させていない場合、処理を次のステップS89に進める。ここで、CPUコア21が判断する「現在の街状況の変化」には、新たな建造物の建設や整備、道路の敷設や整備等が含まれ、プレイヤが実行可能な現在の街状況を変化させるコマンドを実行したか否かによって判断される。
ステップS85において、CPUコア21は、上記ステップS84で変化させた建造物が属する対象区画の区画データXを取得する。ここで、街に建設される建造物は、ある単位区画に属している。区画データは、単位区画のゲームマップ上の位置を規定するためのデータ(例えば、縦区分A、B、C…および横区分1、2、3…の組合せによって規定される位置データ)やその単位区画の環境データ(例えば、海の近く、山、平地等)等を含んでいる。そして、CPUコア21は、上記ステップS84で変化させた建造物が有する建造物データYを取得し(ステップS86)、処理を次のステップに進める。ここで、街に建設される建造物は、その種類に応じて建造物データを持っている。建造物データは、その建造物種類を示すデータ(例えば、家、ビル、道路、工場等)やその建造物の特性データ等を含んでいる。
次に、CPUコア21は、上記ステップS85およびS86で取得した区画データXおよび建造物データYを用いて、対象区画およびその周辺区画における未来の街状況を演算する(ステップS87)。ここで、未来の街状況は、第1ゲーム画像として示されている現在の街状況の対象区画およびその周辺区画を対象に、上記街成長プログラムを所定時間経過まで先行して実行することによって得られる。そして、CPUコア21は、上記ステップS87で演算した未来の街状況を示す第2ゲーム画像を第2LCD12に表示出力し(ステップS88)、処理を次のステップS90に進める。例えば、上記ステップS83においてプレイヤが現在の街状況に対してコンビニエンスストアを建設するコマンドを実行した場合、図17の第2ゲーム画像が第2LCD12に表示される。
一方、ステップS89において、CPUコア21は、ステップS83において第1ゲーム画像で示した現在の街状況から所定時間後を予測した未来の街状況を示す第2ゲーム画像を第2LCD12に表示出力し、処理を次のステップS90に進める。ここで、未来の街状況は、ステップS83において第1ゲーム画像として示されている現在の街状況に基づいて、上記街成長プログラムを所定時間経過まで先行して実行することによって得られる。例えば、上記ステップS83においてプレイヤがコマンドを何ら実行しない場合、図18の第2ゲーム画像が第2LCD12に表示される。
ステップS90において、CPUコア21は、ゲームを終了するか否かを判断する。そして、CPUコア21は、ゲームを継続する場合、上記ステップS83に戻って処理を継続し、ゲームを終了する場合、当該フローチャートによる処理を終了する。
なお、第2ゲーム画像として表示される未来の街状況は、確定的なものでなくてもかまわない。例えば、街成長のランダム性(自然災害の発生や乱数による成長等)によって、第1ゲーム画像で示される現在の街状況は、第2ゲーム画像に表示される未来の街状況とは異なった成長をするようにしてもかまわない。
ここで、本実施形態におけるゲームパラメータは、プレイヤによって選択/決定されるコマンド、コマンドによって指定される区画データおよび建造物データ、街成長プログラムの実行において時間経過速度に応じて用いられる各種パラメータ等に相当する。また、プレイヤパラメータは、プレイヤによって選択/決定されるコマンド、コマンドによって指定される区画データおよび建造物等に相当する。非プレイヤパラメータは、街成長プログラムの実行において時間経過速度に応じて用いられる各種パラメータ等に相当する。
このように、上述した第1〜第4の実施形態で説明したゲームでは、現在の状況を示す第1ゲーム画像に対して、それぞれコマンドが選択された時にコマンドと現在の状況とから未来の状況を演算して第2ゲーム画像に表示し、何もしない時に現在の状況から未来の状況を演算して第2ゲーム画像に表示する。そして、第2ゲーム画像に表示される未来の状況は、そのゲームの特性に合わせて確定的なものを表示してもいいし、ランダム性を考慮した不確定なものを表示してもかまわない。
このように、第1ゲーム画像と共に、ゲームの特性に合わせて当該第1ゲーム画像よりゲーム進行上時系列的に先行する第2ゲーム画像を同時に表示することによって、従来のゲームとは異なった新しい面白さを楽しむことができる。また、第2ゲーム画像には、第1ゲーム画像と同レベルの情報量が表示されており、ゲーム進行上必要な情報量をそれぞれのゲーム画像に含めることによってゲームの遊び方に幅を持たせることができる。例えば、アクションゲームでは、プレイヤが操作するプレイヤキャラクタが穴に落ちている未来を表示すれば、プレイヤは前方に穴が存在するのを感知でき、穴を回避してスムーズにゲームを進行させることができる。アドベンチャーゲームでは、プレイヤの選択したコマンドに対して生じる結果を未来として表示すれば、プレイヤの望んだゲーム展開を進めることができる。戦闘型シミュレーションゲームでは、現状のまま戦っていれば所定ターンの後に自軍のキャラクタが倒されてしまう未来を表示すれば、プレイヤは該キャラクタを別の場所に逃がすことにより不利な未来を回避することができる。街作り型シミュレーションゲームでは、このまま放置しておけば所定時間後に街中に車が溢れ返って大渋滞になる未来を表示すれば、プレイヤは道路等を整備して予め交通問題を回避することができる。また、第2ゲーム画像に表示される画像を確定したものではなく確率的なものにしたり、はっきりした未来の姿ではなく何かのヒントになる程度の未来像にしたりすれば、さらにゲーム的な面白さを楽しむことができる。プレイヤによっては、自身が起こした行動に対してその後のゲーム展開をあれこれ考えながらゲームをするのが煩わしく感じることがある。本来、楽しくプレイさせるのがゲーム目的であるため、第2ゲーム画像を表示してプレイヤの望んだ展開に進め易くする手段は、このような面でも重要となる。
なお、全てのケースにおいて常に第2ゲーム画像を表示しても良いが、ゲームの状況に応じて未表示にしてもかまわない。また、ゲームの難易度に応じて、第2ゲーム画像の表示を変化させてもかまわない。例えば、難易度を上げる場合は、第2ゲーム画像を未表示あるいは相対的に近い未来を表示するようにすることもできる。
なお、上述した実施形態では、2画面分の液晶表示部の一例として、物理的に分離された第1LCD11および第2LCD12を互いに上下に配置した場合(上下2画面の場合)を説明した。しかしながら、2画面分の表示画面の構成は、他の構成でもかまわない。例えば、下部ハウジング18aの一方主面に第1LCD11および第2LCD12を左右に配置してもかまわない。また、第1LCD11と横幅が同じで縦の長さが2倍のサイズからなる縦長サイズのLCD(すなわち、物理的には1つで、表示サイズが縦に2画面分あるLCD)を用いて、第1および第2ゲーム画像を上下に表示(すなわち上下の境界部分無しに隣接して表示)するように構成してもよい。また、第1LCD11と縦幅が同じで横の長さが2倍のサイズからなる横長サイズのLCDを用いて、横方向に第1および第2ゲーム画像を左右に表示(すなわち左右の境界部分無しに隣接して表示)するように構成してもよい。すなわち、物理的に1つの画面を2つに分割して使用することにより第1および第2ゲーム画像を表示してもかまわない。