以下、この実施例の限定しない一例に係るゲームシステムについて説明する。この実施例におけるゲームシステム1の一例は、本体装置(情報処理装置;この実施例ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(図2参照)。以下では、この実施例のゲームシステム1のハードウェア構成について説明し、その後に、この実施例のゲームシステム1の制御について説明する。
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。図1および図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
図3は、本体装置2の一例を示す六面図である。図3に示すように、本体装置2は、略板状のハウジング11を備える。この実施例において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。この実施例においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。この実施例においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、図6に示すスピーカ88)を備えている。図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。この実施例において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、この実施例においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
図4は、左コントローラ3の一例を示す六面図である。図4に示すように、左コントローラ3は、ハウジング31を備える。この実施例においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、図1および図4に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
左コントローラ3は、アナログスティック32を備える。図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、この実施例においては、アナログスティック32を押下する入力が可能である。
左コントローラ3は、各種操作ボタンを備える。左コントローラ3は、ハウジング31の主面上に4つの操作ボタン33〜36(具体的には、右方向ボタン33、下方向ボタン34、上方向ボタン35、および左方向ボタン36)を備える。さらに、左コントローラ3は、録画ボタン37および−(マイナス)ボタン47を備える。左コントローラ3は、ハウジング31の側面の左上にLボタン38およびZLボタン39を備える。また、左コントローラ3は、ハウジング31の側面のうち、本体装置2に装着される際に装着される側の面に、SLボタン43およびSRボタン44を備える。これらの操作ボタンは、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
図5は、右コントローラ4の一例を示す六面図である。図5に示すように、右コントローラ4は、ハウジング51を備える。この実施例においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
右コントローラ4は、左コントローラ3と同様、方向入力部としてアナログスティック52を備える。この実施例においては、アナログスティック52は、左コントローラ3のアナログスティック32と同じ構成である。また、右コントローラ4は、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ4は、左コントローラ3と同様、ハウジング51の主面上に4つの操作ボタン53〜56(具体的には、Aボタン53、Bボタン54、Xボタン55、およびYボタン56)を備える。さらに、右コントローラ4は、+(プラス)ボタン57およびホームボタン58を備える。また、右コントローラ4は、ハウジング51の側面の右上にRボタン60およびZRボタン61を備える。また、右コントローラ4は、左コントローラ3と同様、SLボタン65およびSRボタン66を備える。
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、図3に示す構成の他、図6に示す各構成要素81〜91、97、および98を備える。これらの構成要素81〜91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System−on−a−chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
本体装置2は、スロットインターフェース(以下、「I/F」と略記する)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。この実施例においては、ネットワーク通信部82は、第1の通信態様としてWi−Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、この実施例においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
プロセッサ81は、上述の左側端子17、右側端子21、および下側端子27に接続される。プロセッサ81は、左コントローラ3と有線通信を行う場合、左側端子17を介して左コントローラ3へデータを送信するとともに、左側端子17を介して左コントローラ3から操作データを受信(または、取得)する。また、プロセッサ81は、右コントローラ4と有線通信を行う場合、右側端子21を介して右コントローラ4へデータを送信するとともに、右側端子21を介して右コントローラ4から操作データを受信(または、取得)する。また、プロセッサ81は、クレードルと通信を行う場合、下側端子27を介してクレードルへデータを送信する。このように、この実施例においては、本体装置2は、左コントローラ3および右コントローラ4との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置または本体装置2単体がクレードルに装着された場合、本体装置2は、クレードルを介してデータ(例えば、表示画像データや音声データ)を据置型モニタ等に出力することができる。
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のユーザは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1ユーザが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2ユーザが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
本体装置2は、タッチパネル13の制御を行う回路であるタッチパネルコントローラ86を備える。タッチパネルコントローラ86は、タッチパネル13とプロセッサ81との間に接続される。タッチパネルコントローラ86は、タッチパネル13からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ81へ出力する。
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、図6で示しているため図7では省略している。
左コントローラ3は、本体装置2との間で通信を行う通信制御部101を備える。図7に示すように、通信制御部101は、端子42を含む各構成要素に接続される。この実施例においては、通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行うことが可能である。通信制御部101は、左コントローラ3が本体装置2に対して行う通信方法を制御する。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行う。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行う。コントローラ通信部83と通信制御部101との間の無線通信は、例えばBluetooth(登録商標)の規格に従って行われる。
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
左コントローラ3は、各ボタン103(具体的には、ボタン33〜39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
通信制御部101は、各入力部(具体的には、各ボタン103、アナログスティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判断することができる。
左コントローラ3は、電力供給部108を備える。この実施例において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、アナログスティック52を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
次に、図8−図19を参照して、この実施例のゲームシステム1において実行される仮想のゲームのゲーム処理についての概要を説明する。図8は、この実施例の仮想のゲームのアプリケーションを実行した場合に、表示装置(たとえば、ディスプレイ12)に表示されるゲーム画像の限定しない第1の例を示す図である。
本体装置2は、画像処理装置としても機能し、ゲーム画像などの各種画面に対応する表示画像データを生成および出力(表示)する。プロセッサ81は、3次元の仮想空間に各種のオブジェクトおよびキャラクタを配置し、或る情景または場面(シーン)が生成される。このシーンを仮想のカメラで撮影した(視点から見た)画像がゲーム画像としてディスプレイ12に表示される。
図8は、ゲームステージを作成するための作成画面200の限定しない一例であり、ゲームをプレイするためのゲームステージを作成する領域(以下、「作成領域」という)202と、ゲームステージの元になるパーツ(「ゲームパーツ」に相当する)220を選択する領域(以下、「選択領域」という)204を含む。作成領域202は、パーツ220を配置する領域(以下、「配置領域」という)210を含み、配置領域210は碁盤目状に分割される。配置領域210を構成する各升目210aには、パーツ220を1つ配置することができる。
パーツ220は、3次元仮想空間に形成される仮想の部屋に対応し、2次元の画像で示される。パーツ220は、予めゲームで用意されていたり、ゲームステージでプレイするゲーム(たとえば、ミニゲーム)とは異なるゲーム(たとえば、本編のゲーム)をプレイすることにより取得されたり、場合によっては、インターネットのようなネットワークからダウンロードされたりする。
図9はパーツ220の限定しない一例を示す。図9に示すように、パーツ220の表面には、パーツ220に対応する仮想の部屋を仮想空間の上方から見た場合の2次元の画像の縮小画像220aが描画される。ただし、縮小画像220aは簡略化されていてもよい。仮想の部屋は、3次元の仮想空間において直方体の形状であり、仮想空間を上方から見た場合に、四角形(この実施例では、横長の長方形)の形状である。仮想の部屋を構成する4つの壁の少なくとも1つに通路(または、出入口)が設けられ、他の仮想の部屋と連結(または、接続)することができる。ただし、他の実施例では、パーツ220は、仮想の部屋では無く、単なる通路であってもよい。つまり、パーツ220は、仮想の部屋および通路の少なくとも一方を表すものである。
以下、作成画面200において、方向を用いて説明する場合には、作成画面200を正面から見た場合の上、下、左または右を用いることにする。
この実施例では、仮想の部屋を俯瞰的に見た場合に、上、下、左および右に4つの壁が設けられる。また、仮想の部屋の種類は様々であり、通路は、1つのみならず、2つ、3つまたは4つ設けられる場合もある。通路が4つ設けられる場合を除いて、通路の数と、通路が設けられる壁の位置によって、仮想の部屋を分類することができる。仮想の部屋が通路を1つ有する場合には、上、下、左または右の壁に通路が設けられ、4つの種類に分類することができる。また、仮想の部屋が通路を2つ有する場合には、上と下、左と右、上と左、上と右、下と左、または、下と右の壁に2つの通路が設けられ、仮想の部屋を6つの種類に分類することができる。さらに、仮想の部屋が通路を3つ有する場合には、上と下と左、上と下と右、上と左と右、または、下と左と右の壁に3つの通路が設けられ、仮想の部屋を4つの種類に分類することができる。
詳細な説明等は省略するが、ゲームステージを作成する場合には、複数種類の配置領域210から所望の配置領域210を選択することができる。図8に示した例では、配置領域210は、いずれの升目210aにもパネル212を配置可能であるが、他の例では、一部の升目210aにパネル212を配置できない場合がある。
このとき、隣接する2つのパネル212において通路同士が接触する場合には、通路同士は連結される。また、パネル212において階段が配置される場合には、その階段は他のパネルに配置された階段と連結される。この場合、階段が配置された仮想の部屋同士は隣接していなくてもよい。つまり、階段は、通路を連結することができない仮想の部屋同士を連結することができる特殊移動要素である。たとえば、階段同士は、地下または空中に設けられた通路を介して接続されたり、ワープするように接続されたりする。ただし、階段が配置されたパネル212が3つ以上配置される場合には、作成画面200の配置領域210における2次元の距離が最短となる階段同士が連結される。
この実施例では、配置領域210に配置されたパネル212に、階段の位置情報(たとえば、2次元の位置座標)が紐づけられている。この位置情報は、仮想の部屋における階段の位置(ローカルの位置)に基づいて、この仮想の部屋のパーツ220に対応するパネル212が配置領域210に配置されたときに算出される。ただし、階段の2次元の位置座標は、パネル212の右上に表示される階段の画像212c(図11(B)参照)の位置座標でもよい。
また、階段同士を連結する方法は一例であり、限定される必要は無い。他の例では、ランダムに選択された階段同士またはプレイヤが手動で選択した階段同士が連結されてもよい。
また、縮小画像220aの下方には、仮想の部屋に配置されるオブジェクトの情報が2次元の画像で示される。この実施例では、仮想の部屋に配置されるオブジェクトは、宝箱を模したオブジェクト、仮想の部屋内に設けられる階段を模したオブジェクト、仮想の部屋に設けられ、通路を塞ぐ鍵付きの扉(以下、この明細書では「鍵扉」という)を模したオブジェクトである。
図9に示す例では、仮想の部屋に、宝箱を模したオブジェクトが配置される場合には、縮小画像220aの左下方に、宝箱の画像220bが表示される。また、仮想の部屋内に階段を模したオブジェクトが配置される場合には、縮小画像220aの下方に、階段の画像220cが表示される。さらに、仮想の部屋にその通路を塞ぐ鍵扉を模したオブジェクトが配置される場合には、縮小画像220aの右下方に、鍵穴の画像220dが表示される。ただし、パーツ220では、階段の画像220cは、宝箱の画像220bと鍵穴の画像220dの間に表示される。また、鍵扉が仮想の部屋に複数存在する場合には、その数が鍵穴の画像220dの横(たとえば、右横)に表示される。
図9では、説明の都合上、画像220b、220c、220dが表示されている場合について示してあるが、対応するオブジェクトが仮想の部屋に配置されていない場合には、画像220b、220c、220dは表示されない。
図8に戻って、作成画面200には、指示画像230がさらに表示され、この指示画像230を移動させることにより、パーツ220を指示(または、選択)したり、指示画像230で升目210aを指示(または、選択)したりすることができる。たとえば、指示画像230は、左スティック32を用いて作成画面200上を移動される。ただし、指示画像230は、右方向ボタン33、下方向ボタン34、上方向ボタン35、および左方向ボタン36を用いて作成画面200上を移動させることもできる。
ユーザないしプレイヤ(以下、単に「プレイヤ」という)は、所望のパーツ220を配置領域210に配置する場合、左スティック32で指示画像230を移動させて、選択領域204に表示された所望のパーツ220を指示し、Aボタン53を押下する。すると、指示画像230によって指示されたパーツ220を配置領域210に配置することが決定される。そして、プレイヤは、左スティック32で指示画像230を移動させて、配置領域210の所望の升目210aを指示し、Aボタン53を押下する。すると、配置することが決定されたパーツ220に対応するパネル212が指示された(つまり、配置先の)升目210aに配置(または、表示)される。
ただし、配置するパーツ220を決定する前に、配置先の升目210aが指示(または、決定)されてもよい。かかる場合には、配置するパーツ220が決定されると、決定されたパーツ220に対応するパネル212が先に決定された配置先の升目210aに配置される。
図10は複数のパーツ220が配置領域210の複数の升目210aに配置された状態の限定しない一例を示す。図10に示すように、初期位置を含む仮想の部屋(以下、「スタート部屋S」という)のパーツ220に対応するパネル212と、ボスの敵オブジェクトが存在する特定の位置または場所である仮想の部屋(以下、「ボス部屋B」という)のパーツ220に対応するパネル212が配置領域210に配置され、スタート部屋Sとボス部屋Bの間に、それら以外の1または複数の仮想の部屋についてのパーツ220の各々に対応する複数のパネル212が配置される。図10に示す例では、他の仮想の部屋のパーツ220に対応するパネル212が5つ配置されている。
以下、この明細書においては、「仮想の部屋のパーツ220に対応するパネル212」を、「仮想の部屋に対応するパネル212」ということにする。
図10に示すように、この実施例では、スタート部屋Sに対応するパネル212には、「S」の文字が描画され、ボス部屋Bに対応するパネル212には、「B」の文字が描画される。ただし、これは一例であり、文字に代えて記号が描画されてもよい。また、これ以降では、「それら以外の仮想の部屋」を「通常の部屋」ということにする。スタート部屋S、ボス部屋Bおよび通常の部屋を区別する必要が無い場合には、「仮想の部屋」ということにする。
また、図11(A)に示すように、宝箱が設けられる仮想の部屋に対応するパネル212には、壁および通路を示す枠状の画像212aおよび宝箱の画像212bが表示される。図11(A)に示すように、画像212aは、パネル212の輪郭線に沿って太枠で示される。パネル212の輪郭線は透明であるが、図11(A)では、分かり易く示すために、通路が配置された部分において、パネル212の輪郭線を点線で示してある。このことは、図11(B)および図11(C)も同じである。詳細な説明は省略するが、図11(A)のパネル212と図11(C)のパネル212を比較して分かるように、通路の数および位置に応じて、画像212aの形は変わる。また、図11(A)に示すように、画像212bは、パネル212の中央部分に描画(または、表示)される。
図11(B)に示すように、階段が設けられる仮想の部屋に対応するパネル212には、画像212aおよび階段の画像212cが表示される。画像212cは、パネル212の右上部分に描画(または、表示)される。
図11(C)に示すように、鍵扉が設けられる仮想の部屋に対応するパネル212には、鍵扉が設けられる通路と、隣接する仮想の部屋に対応するパネル212の通路に跨るように、鍵穴の画像212dが描画(または、表示)される。
図10の配置領域210に示したように、ボス部屋Bの通路に設けられる鍵扉は、通常の部屋の通路に設けられる鍵扉(第2禁止要素に相当する)と異なる鍵扉(以下、「ボス鍵扉」ということがある)である。したがって、ボス鍵扉(第1禁止要素に相当する)は通常の部屋の通路に設けられる鍵扉を開ける鍵(第2解除要素に相当する)とは異なる鍵(以下、「ボス鍵(第1解除要素に相当する)」という)で開錠することができる。
図11(D)に示すように、鍵の違いを表現するために、ボス部屋Bの通路に設けられるボス鍵扉に対応する鍵穴の画像212eは、通常の部屋の通路に設けられる鍵扉に対応する鍵穴の画像212dとは異なる図柄にしてある。
以下、ボス鍵扉およびボス鍵を、通常の部屋の通路に設けられる鍵扉および鍵と区別する必要が無い場合には、単に「鍵扉」および「鍵」という。
図示は省略するが、上述したように、仮想の部屋には、宝箱、階段および鍵扉のうちの2つ以上が設けられる場合もあり、その場合には、その仮想の部屋に対応するパネル212に、画像212b、212cおよび212dのうちの2つ以上が表示される。また、仮想の部屋に、鍵扉が2つ以上設けられる場合には、その仮想の部屋に対応するパネル212に、画像212dが2つ以上表示される。ただし、鍵穴の画像212dは、鍵扉が設けられる通路に対応する位置に表示される。
この実施例では、プレイヤが作成したゲームステージを実際にプレイすることができる。ただし、ゲームステージが正しく作成されていない場合には、プレイすることができない。つまり、プレイヤは、ゲームをプレイするためのゲームステージを作成することができる。ゲームステージが正しく作成されていることの条件は、(1)スタート部屋Sに対応するパネル212とボス部屋Bに対応するパネル212が配置されていること、つまり、プレイヤオブジェクトの初期位置と特定の位置が設定されていること、(2)仮想の部屋の通路および階段がすべて繋がっていること、(3)鍵扉の数と同じ数またはそれよりも多い数の宝箱が配置されていることである。(1)−(3)の条件は、ゲームステージが正しく作成されていることの前提条件であって、さらに、これらの前提条件を満たした上で、鍵扉と宝箱の位置を考慮した場合に、ゲームをクリアできるかどうかが判定される。つまり、(4)ゲームをクリアできることの条件も満たす必要がある。
この実施例では、鍵扉を開錠するための鍵が、宝箱に入っている。ただし、鍵と鍵扉は対応づけされておらず、鍵扉はいずれの鍵でも開錠することができる。また、鍵扉の開錠に使われた鍵は消費され、無くなる。したがって、上述したように、前提条件は、(3)の条件を含む。また、この実施例では、ボス部屋Bの鍵も宝箱に入っているが、ボス部屋Bの鍵は最後に入手(または、取得)される。ただし、宝箱の数が鍵扉の数よりも多い場合には、多い分の鍵は不要であるため、鍵以外のアイテムが入手される、または、何も入手されない(すなわち、宝箱は空である)。たとえば、宝箱が2つ余分に配置されている場合には、1つ目と2つ目に開けた宝箱からは鍵は入手されない。
このように、プレイヤオブジェクトが通行することができない禁止要素である鍵扉を開錠して、通行できるようにする解除要素である鍵は宝箱に入っている。宝箱の数が鍵扉の数よりも多い場合には、宝箱に鍵が入っていないこともあるため、宝箱は解除要素である鍵を入手できる可能性のある潜在的な解除要素と言える。
また、(1)−(3)の前提条件を満たす場合であっても、鍵扉が配置された仮想の部屋よりも手前で鍵を入手できるようにゲームステージが作成されていなければ、ゲームをクリアすることができない。
ただし、この実施例では、ゲームをクリアするためには、ボスの敵オブジェクトを倒す必要があり、そのためには、プレイヤオブジェクトはボス部屋Bに到達する必要がある。したがって、ゲームステージにおいて、ゲームをクリアできることの条件は、プレイヤオブジェクトがボス部屋Bに到達できることである。
ゲームステージが正しく作成されているかどうかを判定する必要があるため、この実施例では、仮想の部屋に対応するパーツ220に、仮想の部屋に設定されている情報(以下、「設定情報」という)を紐づけしてある。設定情報は、仮想の部屋を3次元仮想空間に生成(または、描画)するための情報である。ただし、ゲームステージが正しく作成されているかどうかを判定するのに必要な情報は、設定情報に含まれる情報の一部であり、具体的には、部屋の種類、通路毎の位置(および方向)、階段の位置、宝箱の位置、鍵扉毎の位置(および方向)が該当する。ただし、部屋の種類は、スタート部屋S、ボス部屋Bまたは通常の部屋である。階段が仮想の部屋に配置されない場合には、階段の位置は設定情報に含まれない。宝箱が仮想の部屋に配置されない場合には、宝箱の位置は設定情報に含まれない。鍵扉が仮想の部屋に配置されない場合には、鍵扉毎の位置は設定情報に含まれない。
なお、上記の各位置は、仮想の部屋における位置(すなわち、ローカルの位置)であり、3次元仮想空間にゲームステージを生成する場合には、3次元仮想空間における位置に変換される。
配置領域210に配置された複数のパネル212を用いてゲームステージが正しく作成されているかどうかを判定する場合には、各パネル212に対応するパーツ220に紐づけられた設定情報が参照される。また、上述したように、配置領域210における2次元の距離が最短となる階段同士が連結されるため、階段を有する仮想の部屋については、パーツ220に対応するパネル212が配置領域210に配置されたときに、配置領域210における階段の位置(すなわち、2次元の位置座標)が算出され、階段同士の距離が算出される。
また、図10に示すように、配置領域210に配置された複数のパネル212には、それぞれ、配置された位置を示す情報(以下、「位置情報」という)が紐づけられている。この実施例では、配置領域210は、縦方向に8つの升目210aが並ぶとともに、横方向に8つの升目210aが並んであり、升目単位で位置情報は管理される。たとえば、配置領域210の左下の角の升目210aが基準の升目210aに設定され、この基準の升目210aの位置情報は(1,1)に設定される。位置情報は、基準の升目210aから、右に1升ずれると左側の要素が1加算され、上に1升ずれると右側の要素が1加算される。したがって、右上の角の升目210aの位置情報は(8,8)である。また、図10に示す例では、スタート部屋Sに対応するパネル212の位置情報は(3,2)であり、ボス部屋Bに対応するパネル212の位置情報は(3,6)である。説明は省略するが、他のパネル212の位置情報も同様である。
(1)−(3)の前提条件を満たすかどうかを判断する場合には、パネル212の位置情報、パネル212に対応するパーツ220の設定情報に含まれる一部の情報を参照して、通路および階段がすべて繋がっているかどうかと、宝箱の数が鍵扉の数以上であるかどうかが判断される。
また、(1)−(3)の前提条件を満たす場合には、ゲームステージをクリアできるかどうかが判定される。後述するように、クリア可能判定処理(図24参照)が実行される。クリア可能判定処理では、作成したゲームステージにおいて、スタート部屋Sから経路探索処理(図25参照)が実行され、スタート部屋Sから鍵扉を開けずに行ける範囲の経路を探索する。その結果として、すべての宝箱を開けてゲームステージをクリアできる(つまり、経路探索を成功した)か、または、鍵が足りなくなってゲームステージをクリアできない(つまり、経路探索を失敗した)かが調べられる。
ただし、鍵が残っている場合には、1つだけ鍵扉を開けて、鍵扉を開けた先の仮想の部屋から経路探索処理が実行される。また、複数の鍵扉が有る場合には、すべての組み合わせについて経路探索処理が実行される。
経路探索処理では、部屋情報収集処理(図26および図27参照)が実行されることにより、指定された仮想の部屋についての部屋情報が収集される。この実施例では、部屋情報は、経路探索情報の一部の情報であって、部屋の到達チェック情報および鍵扉の発見の情報である。
ここで、経路探索情報とは、部屋の到達チェック情報、鍵扉の発見の情報、開閉情報、開けた宝箱の数、および持っている鍵の数である。ただし、部屋の到着チェック情報は、ゲームステージを構成する各仮想の部屋が到着チェック済みかどうかを示す情報(つまり、TRUE/FALSE)である。鍵扉の発見の情報は、各仮想の部屋の各方向に鍵扉が配置されているかどうかを示す情報(つまり、TRUE/FALSE)である。開閉情報は、鍵扉を開けたかどうかを示す情報(つまり、TRUE/FALSE)である。
部屋情報収集処理では、スタート部屋Sに宝箱があれば、宝箱を開ける。この宝箱から鍵が出る条件であれば、鍵を1つ入手する。ただし、すべての宝箱を開けていたら、成功であり、それ以降の経路探索は不要であるため、クリア可能判定処理は終了する。
部屋情報収集処理では、指定された仮想の部屋の上下左右のそれぞれについて部屋の繋がりを確認し、通路があれば、その先の仮想の部屋についての部屋情報収集処理がさらに実行される。
ここで、図10に示す作成画面200の配置領域210に作成されたゲームステージにおける経路探索処理について簡単に説明する。図10に示すゲームステージでは、スタート部屋Sから鍵扉を開けずに行ける範囲は、(2,3)、(3,3)、(3,4)および(4,3)に配置されたパネル212に対応する仮想の部屋である。このゲームステージにおいて経路探索が行われた結果、(2,3)および(4,3)に配置されたパネル212に対応する仮想の部屋のそれぞれで宝箱を開けることができる。図10に示すゲームステージでは、宝箱は全部で2つであるため、すべての宝箱を開けることができる。すべての宝箱を開けることができることは、すべての鍵を入手できることを意味するため、このゲームステージはクリアすることができる。
図12は作成画面200の限定しない他の例を示す。図12において、斜線を付した升目210aはパネル212を配置できない升目(つまり、配置範囲外の升目)210aである。図12に示す例では、配置領域210は、右上の4つの升目210aを囲むように、L字状に配列された5つの升目210aには、パネル212を配置することができない。つまり、パネル212を配置可能な升目210aが制限される。
このため、配置範囲外の升目210aを挟んで2つの仮想の部屋を連結するためには、これらの2つの仮想の部屋には階段が配置されている必要がある。図12に示す作成画面200の配置領域210において作成されたゲームステージでは、(3,4)に配置されるパネル212に対応する仮想の部屋に設けられる階段と、(7,7)に配置されるパネル212に対応する仮想の部屋に設けられる階段が連結されているものとする。このことは、図13および図14も同じである。
ここで、図12に示すゲームステージにおける経路探索処理について、簡単に説明する。図12に示すゲームステージでは、スタート部屋Sから鍵扉を開けずに行ける範囲は、(2,3)、(3,3)、(3,4)、(4,3)、(5,3)、(6,3)および(7,7)に配置されたパネル212に対応する仮想の部屋である。このゲームスステージにおいて経路探索が行われた結果、(2,3)および(4,3)に配置されたパネル212に対応する仮想の部屋のそれぞれで宝箱を開けることができる。図12に示すゲームステージでは、宝箱は全部で3つであるため、この時点では、ゲームステージをクリアすることができない。
ここで、鍵が残っている場合には、一つだけ鍵扉を開けて、さらに、鍵扉を開けた先の部屋から経路探索処理が実行される。この場合、鍵扉を開けた先の部屋(説明の都合上、「開始部屋」という)から経路探索処理が開始される。この経路探索処理は、開始部屋から鍵扉を開けずに行ける範囲について実行される。
図12に示す例では、上記の経路探索処理において、2つの鍵が入手されている。したがって、(3,4)に配置されたパネル212と(3,5)に配置されたパネル212の間の鍵扉を開けた場合と、(7,7)に配置されたパネル212と(7,8)に配置されたパネル212の間の鍵扉を開けた場合について、それぞれ、経路探索処理が実行される。
図12に示す例では、(3,4)に配置されたパネル212と(3,5)に配置されたパネル212の間の鍵扉を開けた場合には、(3,5)に配置されたパネル212に対応する仮想の部屋に行くことができるが、この仮想の部屋には宝箱が無い。
一方、(7,7)に配置されたパネル212と(7,8)に配置されたパネル212の間の鍵扉を開けた場合には、(7,8)および(8,8)に配置されたパネル212に対応する仮想の部屋に行くことができ、(8,8)に配置されたパネル212に対応する仮想の部屋で宝箱を開けることができる。つまり、すべての宝箱を開けることができるため、ゲームステージをクリアすることができる。
また、クリア可能判定処理が実行されると、その判定結果に基づいて、作成画面200におけるパネル212の背景色が変化される。一例として、ゲームステージの作成を開始した当初では、すべてのパネル212の背景色は灰色である。クリア可能判定処理が実行されると、プレイヤオブジェクト302が到達することができる仮想の部屋に対応するパネル212の背景色は青色にされ、プレイヤオブジェクト302が到達することができない仮想の部屋に対応するパネル212の背景色は赤色にされる。プレイヤオブジェクト302が到達することができる仮想の部屋であるか到達することができない部屋であるかは、経路探索情報に含まれる部屋の到達チェック情報で知ることができる。ただし、ゲームステージをクリアすることができる場合には、部屋の到達チェック情報を参照するまでも無く、すべての仮想の部屋に到達することができる。
図10および図12に示したゲームステージは、上述したように、クリアすることができるため、すべての部屋に到達することができる。したがって、図10および図12に示したゲームステージを構成するすべてのパネル212の背景色は青色にされる。
一度クリア可能判定処理が実行された後では、パネル212が配置されたり、パネル212が取り除かれたり、パネル212が移動されたりした場合に、前提条件を満たすかどうかが判断され、前提条件を満たしている場合に、クリア可能判定処理が実行され、判定結果に基づいて、ゲームステージを構成する各パネル212の背景色が更新される。ただし、前提条件を満たしていない場合には、前回のクリア可能判定処理の判定結果と、満たしていない前提条件に基づいて、ゲームステージを構成する各パネル212の背景色が更新される。
図13は作成画面200のその他の例である。図13に示す作成画面200は、たとえば、図12に示す作成画面200において、(6,3)の位置に配置されているパネル212を(7,3)の位置に移動した画面である。図12に示した作成画面200においては、ゲームステージが正確に作成されているため、ゲームステージを構成するすべてのパネル212の背景色は青色にされる。しかし、上述したように、パネル212を移動した図13の作成画面200では、(5,3)の位置に配置されたパネル212の通路と(7,3)の位置に配置されたパネル212の通路は繋がっていないため、それら2つのパネル212の背景色は赤色にされる。これは直前のクリア可能判定処理の結果と、パネル212の移動により、満たさなくなった前提条件に基づいて各パネル212の背景色が更新(または、決定)された結果である。
図13では、パネル212の背景色が赤色であることを横縞模様で示してある。また、横縞模様を付さないことにより、パネル212の背景色が青色であることを示してある。
この実施例では、パネル212の背景色を変えるようにしたが、単なる一例であり、限定される必要はない。他の実施例では、到達可能な部屋のパネル212については変化させずに、到達できない部屋のパネル212を半透明で表示したり、到達できない部屋のパネル212の輝度を低下したりしてもよい。または、到達できない部屋のパネル212の明度を所定時間毎に変化させるようにしてもよい。ただし、到達できない部屋のパネル212については変化させずに、到達可能な部屋のパネル212の輝度を上昇させたり、到達可能な部屋のパネル212を所定の色(金色)の枠で囲んだりするようにしてもよい。
また、この実施例では、前提条件を満たすかどうかは、所定のボタン(Yボタン56)を押下することにより確認することができる。この場合、図14に示すよう作成画面200がディスプレイ12に表示される。この作成画面200では、作成中のゲームステージにおいて、通路または階段が繋がっている仮想の部屋のパネル212については、背景色が青色にされる。また、繋がっている階段同士は線214で連結される。また、この実施例では、前提条件を満たすかどうかを確認する場合には、図14に示すように、選択領域204に代えて、表示領域206が設けれ、この表示領域206に、満たしていない前提条件を説明するためのメッセージがテキストで表示される。また、このとき、満たしていない前提条件に関係するパネル212の背景色が黄色にされる。ただし、図14では、背景色が黄色であることを縦縞模様で示してある。図14に示す例では、繋がっていない通路があることのメッセージが表示領域206に表示されるとともに、その前提条件を満たしていない仮想の部屋に対応するパネル212すなわち(5,3)に配置されるパネル212の背景色が黄色で示される。
図示は省略するが、階段同士が繋がっていない場合にも、同様に、繋がっていない階段が配置される仮想の部屋に対応するパネル212の背景色が黄色で示される。
また、鍵扉の数に比べて宝箱の数が少ない場合には、宝箱が足りていない旨のメッセージが表示される。
さらに、スタート部屋Sまたは/およびボス部屋Bが配置されていない場合には、スタート部屋Sまたは/およびボス部屋Bを配置すべき旨のメッセージが表示される。
ゲームステージが正しく作成されると、この作成されたゲームステージにおいてゲームをプレイすることが可能となる。たとえば、プレイヤがスタート部屋Sのパネル212を指示画像230で指示して、Aボタン53を押下すると、ゲームステージにおけるゲームのプレイを開始することが指示される。
すると、複数のパネル212を用いて作成された2次元のゲームステージに基づいて、3次元のゲームステージが生成される。このとき、2次元のゲームステージを構成する複数のパネル212のそれぞれに対応するパーツ220の設定情報が参照される。ゲームが開始された当初では、スタート部屋Sについてのゲーム画面300がディスプレイ12に表示される。
図15はスタート部屋Sについてのゲーム画面300の限定しない一例を示す。スタート部屋Sのスタート位置にプレイヤオブジェクト302が配置される。以下、ゲーム画面300について方向を言うときは、図面において、ゲーム画面300を正面から見た場合の上下左右を用いて説明することにする。また、この実施例では、ゲーム画面300は、仮想の部屋を上方から俯瞰的に見た画像が表示される。さらに、この実施例では、ゲーム画面300において、特に必要のない背景オブジェクト、敵オブジェクトおよびアイテムについては省略してある。
なお、この実施例では、仮想の部屋を3次元仮想空間の上方から俯瞰的に見た場合のゲーム画面300をディスプレイ12に表示し、プレイヤオブジェクト302をゲーム画面300に表示するようにしたが、これに限定される必要はない。一人称視点(FPS)でプレイする場合には、プレイヤオブジェクト302は表示されなくてよい。かかる場合には、一人称視点に基づくゲーム画面300がディスプレイ12に表示される。
スタート部屋Sは、背景オブジェクトとしての壁304によって仕切られており、上側の壁304に通路306が形成される。壁304で部屋が仕切られる点は、他の仮想の部屋についても同じである。
プレイヤオブジェクト302は、プレイヤの操作に従って、仮想空間内を移動され、仮想空間内に存在する敵オブジェクトを攻撃し、仮想空間内に配置されるアイテムを入手(または、取得)する。図15のスタート部屋Sにおいては、プレイヤの操作に従って、プレイヤオブジェクト302は通路306を通ってその上側の仮想の部屋に移動される。
図16はスタート部屋Sおよびボス部屋Bとは異なる通常の部屋についてのゲーム画面300の限定しない一例を示す。図16に示すゲーム画面300では、右側の壁304に通路306が形成され、プレイヤオブジェクト302は他の仮想の部屋からこの通路306を通って図16に示す通常の部屋に到達する。
図16に示すように、通常の部屋には、宝箱310が配置され、宝箱310の前にプレイヤオブジェクト302が立っている。宝箱310は、通常の部屋に初めから配置されていてもよいし、通常の部屋に存在するすべての敵オブジェクトを倒したことに応じて配置されてもよいし、通常の部屋で所定のアイテムを使用したことに応じて配置されてもよい。
図16に示すゲーム画面300において、プレイヤの操作に従って、プレイヤオブジェクト302が宝箱310を開けると、この宝箱310から鍵312が出る条件であれば、図17に示すように、宝箱310から鍵312が出現し、プレイヤオブジェクト302によって入手される。上述したように、開けていない宝箱310の数が、ゲームステージに配置された1または複数の鍵扉のうち、開錠されていない鍵扉の数よりも多い場合には、宝箱310から鍵312が出る条件ではない。
図18は他の通常の部屋についてのゲーム画面300の限定しない一例である。図18に示すゲーム画面300では、上側の壁304と下側の壁304の各々に通路306が形成される。上側の壁304に設けられた通路306には、鍵扉320が配置される。一方、下側の壁304に設けられた通路306には、鍵扉320および鍵の付いていない扉は配置されていない。
プレイヤオブジェクト302は、他の仮想の部屋から下側の壁に設けられた通路306を通って図18に示す通常の部屋に到達する。鍵扉320を開くと、上側の仮想の部屋に移動することができる。鍵扉320を開くためには、鍵312で鍵扉320を開錠する必要がある。ただし、鍵312を所持していない場合には、鍵扉320を開錠することができないため、まだ開けていない宝箱310が探される。また、鍵扉320が設けられた通路306がボス部屋Bに通じている場合には、鍵扉320(ボス鍵扉)はボス鍵でのみ開錠される。上述したように、ボス鍵は、ゲームステージをクリアするのに必要な数の鍵において、最後に入手されるため、ボス鍵を所持していない場合には、まだ開けていない宝箱310を探す必要がある。
図18に示すゲーム画面300において、プレイヤの操作に従って、プレイヤオブジェクト302が鍵扉320を開けると、プレイヤオブジェクト302が所持する鍵312の数が1減算される。
鍵扉320が開けられると、図19に示すように、プレイヤの操作に従って、プレイヤオブジェクト302は、鍵扉320が配置された通路を移動することができ、通路が繋がっている他の仮想の部屋に到達(または、移動)することができる。
図示は省略するが、プレイヤの操作に従って、プレイヤオブジェクト302が仮想の部屋に設けられた階段を降りる(または、昇る)と、これに連結された階段を昇る(または、降りる)ことにより、他の仮想の部屋に移動することもできる。
また、図示は省略するが、ボス部屋Bに到達すると、プレイヤの操作に従って、プレイヤオブジェクト302はボスの敵オブジェクトを攻撃する。また、プレイヤオブジェクト302は、ボスの敵オブジェクトに攻撃されたり、プレイヤの操作に従って、その攻撃を防御したりする。プレイヤオブジェクト302がボスの敵オブジェクトを倒すと、ゲームステージがクリアされる。また、プレイヤオブジェクト302がボスの敵オブジェクトに倒されると、ゲームステージのゲームについてゲームオーバーになる。
図20は図6に示したDRAM85のメモリマップ850の限定しない一例を示す図である。図20に示すように、DRAM85は、プログラム記憶領域852およびデータ記憶領域854を含む。プログラム記憶領域852には、情報処理プログラムの一例であるゲームアプリケーションのプログラム(つまり、ゲームプログラム)が記憶される。図20に示すように、ゲームプログラムは、メイン処理プログラム852a、画像生成プログラム852b、操作検出プログラム852c、オブジェクト制御プログラム852d、ゲームステージ作成プログラム852e、前提条件判定プログラム852f、クリア可能判定プログラム852g、経路探索プログラム852h、部屋情報収集プログラム852iおよび画像表示プログラム852jなどを含む。
ただし、生成されたゲーム画像などの画像を表示する機能は本体装置2が備える機能である。したがって、画像表示プログラム852jは、ゲームプログラムに含まれない。
詳細な説明は省略するが、各プログラム852a−852iは、本体装置2に電源が投入された後の適宜のタイミングで、フラッシュメモリ84および/またはスロット23に装着された記憶媒体からその一部または全部が読み込まれてDRAM85に記憶される。ただし、各プログラム852a−852iの一部または全部は、本体装置2と通信可能な他のコンピュータから取得するようにしてもよい。また、画像表示プログラム852jは、本体装置2に電源が投入された後の適宜のタイミングで、フラッシュメモリ84から読み込まれてDRAM85に記憶される。
メイン処理プログラム852aは、この実施例の仮想のゲームの全体的なゲーム処理を実行するためのプログラムである。画像生成プログラム852bは、画像生成データ854bを用いて、ゲーム画像などの各種の画像に対応する表示画像データを生成するためのプログラムである。
操作検出プログラム852cは、左コントローラ3または/および右コントローラ4からの操作データ854aを取得するためのプログラムである。つまり、プレイヤの操作入力に応じた操作データ854aが取得される。オブジェクト制御プログラム852dは、プレイヤの操作入力に基づいて、プレイヤオブジェクト302の動作を制御したり、プレイヤの操作入力に関わらず、ノンプレイヤオブジェクトの動作を制御したりするためのプログラムである。
ゲームステージ作成プログラム852eは、プレイヤの操作に応じて、ゲームステージを作成するためのプログラムである。前提条件判定プログラム852fは、ゲームステージの作成において、クリア可能判定処理を実行するための前提条件を満たすかどうかを判定するためのプログラムである。クリア可能判定プログラム852gは、作成されたゲームステージであって、前提条件を満たしたゲームステージがクリア可能であるかどうかを判定するためのプログラムである。
経路探索プログラム852hは、クリア可能判定処理において、スタート部屋Sから経路探索を行い、すべての宝箱を開けてゲームステージをクリアすることができる(つまり、経路探索に成功した)か、または、鍵が足りなくなってゲームステージをクリアすることができない(つまり、経路探索に失敗した)かを調べるためのプログラムである。部屋情報収集プログラム852iは、指定された仮想の部屋について部屋情報を取得するためのプログラムである。この実施例では、上述したように、部屋情報は、部屋の到達チェック情報および鍵扉の発見の情報である。
画像表示プログラム852jは、画像生成プログラム852bに従って生成した表示画像データを表示装置に出力するためのプログラムである。したがって、表示画像データに対応する画像(つまり、作成画面200およびゲーム画面300など)がディスプレイ12などの表示装置に表示される。
なお、プログラム記憶領域852には、BGM等の音を出力するための音出力プログラム、他の機器と通信するための通信プログラム、データをフラッシュメモリ84などの不揮発性の記憶媒体に記憶するためのバックアッププログラムなども記憶される。
また、データ記憶領域854には、操作データ854a、画像生成データ854b、現在位置データ854c、パーツデータ854d、パネルデータ854e、スタート部屋位置データ854f、クリア判定データ854g、経路探索情報データ854hおよび結果情報データ854iなどが記憶される。
操作データ854aは、左コントローラ3または/および右コントローラ4から受信される操作データである。この実施例においては、本体装置2が左コントローラ3および右コントローラ4の両方から操作データを受信する場合には、本体装置2は、左コントローラ3および右コントローラ4のそれぞれに分類して操作データ854aを記憶する。
画像生成データ854bは、ポリゴンデータおよびテクスチャデータなど、表示画像データを生成するために必要なデータである。また、テクスチャデータは、水の流れをアニメーションで表示するためのデータを含む。
現在位置データ854cは、プレイヤオブジェクト302および敵オブジェクトなどのノンプレイヤオブジェクトのような仮想空間内において移動可能なキャラクタまたはオブジェクトについての現在フレームの位置に対応する位置座標のデータである。
パーツデータ854dは、予め用意されている複数のパーツ220、または、プレイヤまたはプレイヤオブジェクト302が取得している複数のパーツ220についてのデータであり、パーツ220の画像データのみならず、対応する仮想の部屋についての設定情報のデータを含む。
パネルデータ854eは、プレイヤによって作成されたまたは作成中のゲームステージを構成する1または複数のパネル212についてのデータであり、各パネル212に対応するパーツ220の識別情報、各パネル212の画像データおよび各パネル212の位置情報を含む。また、パネル212に対応する仮想の部屋に階段が配置される場合には、このパネル212が配置領域210に配置された場合の階段の位置情報(2次元の位置座標)も含まれる。
スタート部屋位置データ854fは、スタート部屋Sの位置情報についてのデータである。クリア判定データ854gは、作成されたゲームステージがクリア可能であるかどうかを判定した判定結果についてのデータである。この実施例では、クリア不可、クリア出来ない場合あり、または、必ずクリア可能のいずれかの判定結果が示される。
経路探索情報データ854hは、上述した経路探索情報に含まれる各変数についてのデータである。結果情報データ854iは、上述した結果情報に含まれる各変数についてのデータである。
図示は省略するが、データ記憶領域854には、ゲームプログラムの実行に必要な、他のデータが記憶されたり、フラグおよびタイマ(またはカウンタ)が設けられたりする。
図21は、本体装置2のプロセッサ81(またはコンピュータ)のゲームプログラム7処理(ゲーム全体処理)の限定しない一例を示すフロー図である。以下、図21−図27を用いて、ゲーム全体処理、ゲーム制御処理、クリア可能判定処理、経路探索処理および部屋情報収集処理についてそれぞれ説明するが、同じ処理を実行するステップについては、重複する説明を省略することにする。
ただし、図21−図27に示すフロー図の各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、この実施例では、基本的には、図21−図27に示すフロー図の各ステップの処理をプロセッサ81が実行するものとして説明するが、プロセッサ81以外のプロセッサや専用回路が一部のステップを実行するようにしてもよい。
本体装置2の電源が投入されると、ゲーム全体処理の実行に先だって、プロセッサ81は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってDRAM85等の各ユニットが初期化される。本体装置2は、ユーザによって、この実施例のゲームプログラムの実行が指示されると、ゲーム全体処理を開始する。
図21に示すように、プロセッサ81は、ゲーム全体処理を開始すると、ステップS1で、初期処理を実行する。初期処理では、たとえば、プロセッサ81は、ゲームの本編についてのゲーム画像を生成および表示するための仮想空間を構築し、この仮想空間に登場する各キャラクタないし各オブジェクトを初期位置に配置する。また、プロセッサ81は、ゲーム制御処理(S5)に含まれるゲーム本編の処理で使用される各種パラメータの初期値を設定する。
なお、詳細な説明は省略するが、ゲーム全体処理の開始に先立って、左コントローラ3および右コントローラ4が本体装置2に装着されているかどうかが判断され、左コントローラ3および右コントローラ4が本体装置2から分離されている場合には、本体装置2と、左コントローラ3および右コントローラ4との間でペアリング処理が実行される。
続いて、プロセッサ81は、ステップS3で、コントローラ(3,4)から送信されてくる操作データを取得し、ステップS5で、後述するゲーム制御処理(図22−図23参照)を実行する。
次のステップS7では、プロセッサ81は、ディスプレイ12に表示するためのゲーム画像を生成する。簡単に説明すると、プロセッサ81は、ステップS5のゲーム制御処理の結果を表すデータおよび画像生成データ854bをDRAM85から読み出し、ゲーム画像データを生成する。したがって、ゲームステージの作成中においては、図8−図14に示したような作成画面200に対応するゲーム画像データが生成され、ゲームステージのゲームのプレイ中においては、図15−図19に示したようなゲーム画面300に対応するゲーム画像データが生成される。
さらに、ステップS9では、プロセッサ81は、スピーカ88に出力するためのゲーム音声を生成する。簡単に説明すると、プロセッサ81は、ステップS5のゲーム制御処理の結果を表すデータおよび音データをDRAM85から読出し、ゲーム音声データを生成する。
ステップS11では、ステップS7で生成したゲーム画像データをディスプレイ12に出力し、ステップS13では、ステップS9で生成したゲーム音声データを、コーデック回路87を介してスピーカ88に出力する。ただし、ゲーム音声データは、音声入出力端子25に出力される場合もある。
そして、ステップS15では、ゲームを終了するかどうかを判断する。ステップS15の判断は、たとえば、プレイヤがゲームを終了することを指示したかどうかによって行われる。ステップS15で“NO”であれば、つまりゲームを終了しない場合には、ステップS3に戻る。一方、ステップS15で“YES”であれば、つまりゲームを終了する場合には、ゲーム全体処理を終了する。
図22−図23は、図21のステップS5に示した本体装置2のプロセッサ81(またはコンピュータ)のゲーム制御処理の限定しない一例を示すフロー図である。
図22に示すように、プロセッサ81は、ゲーム制御処理を開始すると、ステップS21で、ゲームステージの作成中であるかどうかを判断する。ステップS21で“YES”であれば、つまり、ゲームステージの作成中であれば、図23に示すステップS37に進む。一方、ステップS21で“NO”であれば、つまり、ゲームステージの作成中でなければ、ステップS23で、ゲームステージのプレイ開始かどうかを判断する。プロセッサ81は、ステップS23で、ゲームステージのプレイ開始が指示されたかどうかを判断する。
ステップS23で“YES”であれば、つまり、ゲームステージのプレイ開始であれば、ステップS25で、ゲームステージの初期処理を実行し、ゲーム制御処理を終了して、ゲーム全体処理にリターンする。ステップS25では、ゲームステージについてのゲーム画像を生成および表示するための仮想空間を構築し、この仮想空間に登場する各キャラクタないし各オブジェクトを初期位置に配置する。
一方、ステップS23で“NO”であれば、つまり、ゲームステージのプレイ開始でなければ、ステップS27で、ゲームステージのプレイ中であるかどうかを判断する。ステップS27で“NO”であれば、つまり、ゲームステージのプレイ中でなければ、ステップS29で、ゲームステージ以外の処理を実行して、ゲーム全体処理にリターンする。ステップS29では、プレイするゲームステージが選択されたり、ゲームステージとは異なるゲームの本編のプレイに関する処理が実行されたりする。
一方、ステップS27で“YES”であれば、つまり、ゲームステージのプレイ中であれば、ステップS31で、ステップS3で取得した操作データに応じてプレイヤオブジェクト302の制御を行う。つまり、プロセッサ81は、操作データに応じた動作をプレイヤオブジェクト302に実行させる。したがって、プレイヤオブジェクト302は、ゲームステージを構成する仮想の部屋内を移動したり、宝箱310を開けて鍵312を取得したり、ボスオブジェクトを含む敵オブジェクトを攻撃したり、敵オブジェクトの攻撃を防御したりする。
次のステップS33では、ステップS3で取得した操作データに関係無く、ノンプレイヤオブジェクトの制御を行う。つまり、プロセッサ81は、操作データに関係無く、プログラムに従ってノンプレイヤオブジェクトを動作させる。したがって、敵オブジェクトがゲームステージ内を移動したり、プレイヤオブジェクト302に攻撃したり、プレイヤオブジェクト302に攻撃されたりする。
続くステップS35では、その他の制御を行い、ゲーム制御処理を終了して、ゲーム全体処理にリターンする。ステップS35では、プロセッサ81は、鍵312を含むアイテムを配置したり(または、出現させたり)、アイテムを消滅させたり、鍵扉320などの扉を開いたりする。また、プレイヤオブジェクト302が鍵312を取得した場合には、プロセッサ81は、持っている鍵312の数を1加算する。さらに、プレイヤオブジェクト302が鍵312を用いて鍵扉320を開錠した場合には、プロセッサ81は、持っている鍵312の数を1減算する。
上述したように、ゲームステージの作成中であれば、図23に示すように、ステップS37で、作成中のゲームステージについて前提条件を満たすかどうかの確認であるかどうかを判断する。つまり、プロセッサ81は、ステップS3で検出した操作データがYボタン56の押下であるかどうかを判断する。
ステップS37で“YES”であれば、つまり、作成中のゲームステージについて前提条件を満たすかどうかの確認であれば、ステップS39で、前提条件を満たすかどうかの確認を指示して、ゲーム制御処理を終了し、ゲーム全体処理にリターンする。ステップS39では、前提条件を満たすかどうかの判定結果(つまり、前回の判定結果)が参照され、これに基づいて、図14に示したような作成画面200の表示が指示される。
一方、ステップS37で“NO”であれば、つまり、作成中のゲームステージについて前提条件を満たすかどうかの確認でなければ、ステップS41で、パネル212の配置かどうかを判断する。ここでは、プロセッサ81は、選択領域204で選択されたパーツ220に対応するパネル212を配置領域210に配置するかどうかを判断する。
ステップS41で“YES”であれば、つまり、パネル212の配置であれば、ステップS43で、指定された升目210aに、選択されたパーツ220に対応するパネル212を配置して、ステップS55に進む。
一方、ステップS41で“NO”であれば、つまり、パネル212の配置でなければ、ステップS45で、パネル212の移動かどうかを判断する。プロセッサ81は、配置領域210に配置されているパネル212を指定して、別の升目210aに移動することが指示されたかどうかを判断する。ステップS45で“YES”であれば、つまり、パネル212の移動であれば、ステップS47で、指定されたパネル212を、指示画像230で指示された升目210aに移動して、ステップS55に進む。このとき、指示画像230は、ステップS3で取得された操作データに従って移動される。
一方、ステップS45で“NO”であれば、つまり、パネル212の移動でなければ、ステップS49で、パネル212を外すかどうかを判断する。プロセッサ81は、パネル212が指定された状態で、Xボタン55が押下されたかどうかを判断する。ステップS49で“YES”であれば、つまり、パネル212を外す場合には、ステップS51で、指定されたパネル212を外して、ステップS55に進む。つまり、ステップS51では、プロセッ81は、指定されたパネル212を配置領域210から削除し、当該パネル212に対応するパーツ220を選択領域204で選択可能に表示する。
一方、ステップS49で“NO”であれば、つまり、パネル212を外さない場合には、ステップS53で、その他の処理を実行して、ゲーム制御処理を終了し、ゲーム全体処理にリターンする。ステップS53では、ステップS3で取得した操作データに従って指示画像230を移動し、選択領域204においてパーツ220を選択したり、配置領域210において升目210aまたはパネル212を選択したりする。
ステップS55では、前提条件を満たすかどうかを判断する。ステップS55で“NO”であれば、つまり、前提条件を満たさない場合には、ゲーム制御処理を終了し、ゲーム全体処理にリターンする。一方、ステップS55で“YES”であれば、つまり、前提条件を満たす場合には、ステップS57で、後述するクリア可能判定処理(図24参照)を開始して、ゲーム制御処理を終了し、ゲーム全体処理にリターンする。
図24はクリア可能判定処理の限定しない一例を示すフロー図である。図24に示すように、プロセッサ81は、クリア可能判定処理を開始すると、ステップS81で、経路探索情報および結果情報についての変数をDRAM85に記憶する。
経路探索情報は、上述したように、部屋の到達チェック情報、鍵扉の発見の情報、開閉情報、開けた宝箱の数、および持っている鍵の数である。また、結果情報は、作成したゲームステージを経路探索した結果の情報であり、経路探索に成功した回数(すなわち、成功回数)および経路探索に失敗した回数(すなわち、失敗回数)である。ゲームステージ内のすべての宝箱310を開けることができた場合に、経路探索に成功し、ゲームステージ内のすべての宝箱310を開ける前に、鍵312が無くなった場合(すなわち、鍵312が足りない場合)に、経路探索に失敗する。
次のステップS83では、後述する経路探索処理(図25参照)をスタート部屋Sから開始し、ステップS85で、成功回数が1以上であるかどうかを判断する。ステップS85で“NO”であれば、つまり、成功回数が0であれば、ステップS87で、クリア不可能と判定して、クリア可能判定処理を終了する。
一方、ステップS85で“YES”であれば、つまり、成功回数が1以上であれば、ステップS89で、失敗回数が0であるかどうかを判断する。ステップS89で“NO”であれば、つまり、失敗回数が1以上であれば、ステップS91で、クリアできない場合があると判定して、クリア可能判定処理を終了する。
一方、ステップS89で“YES”であれば、つまり、失敗回数が0であれば、ステップS93で、クリア可能と判定して、クリア可能判定処理を終了する。
ステップS87、S91またはS93の判定結果が、クリア判定データ854gとしてDRAM85のデータ記憶領域854に記憶される。
図25は図24のステップS83に示した経路探索処理の限定しない一例のフロー図である。図25に示すように、ステップS111では、後述する部屋情報収集処理(図26および図27参照)を引数で指定された仮想の部屋から開始する。最初に部屋情報収集処理が実行される場合に引数で指定されるのは、スタート部屋Sである。後述するように、鍵扉320を開けた場合には、ステップS111では、鍵扉320の先の仮想の部屋が指定される。ただし、経路探索処理においては、引数は、経路探索情報、結果情報およびスタート部屋Sの位置である。また、指定された仮想の部屋は、配置領域210において指定されたパネル212に対応する仮想の部屋を意味する。パネル212は、位置情報を用いて指定される。
続くステップS113では、ゲームステージに配置されたすべての宝箱310を開けたかどうかを判断する。ステップS113で“YES”であれば、つまり、ゲームステージに配置されたすべての宝箱310を開けた場合には、ステップS115で、成功回数を1加算して、経路探索処理を終了する。一方、ステップS113で“NO”であれば、つまり、ゲームステージに配置されたすべての宝箱310のうち、開けていない宝箱310が有る場合には、ステップS117で、鍵312を持っているかどうかを判断する。
ステップS117で“NO”であれば、つまり、鍵312を持っていない場合には、鍵312が足りないと判断し、ステップS119で、失敗回数を1加算し、経路探索処理を終了して、クリア可能判定処理にリターンする。一方、ステップS117で“YES”であれば、つまり、鍵312を持っている場合には、ステップS121で、鍵312の数を1減算し、ステップS123で、すべての鍵扉320を試したかどうかを判断する。
ステップS123で“YES”であれば、つまり、すべての鍵扉320を試していれば、経路探索処理を終了して、クリア可能判定処理にリターンする。一方、ステップS123で“NO”であれば、つまり、まだ試していない鍵扉320があれば、ステップS125で、まだ試していない鍵扉320を1つ開けたことにする。
続くステップS127では、経路探索処理を、鍵扉320を開けた先の部屋を指定して開始する。このとき、プロセッサ81は、現在実行中の経路探索処理を一時停止する。ステップS127における経路探索処理を終了すると、ステップS129で、開けたことにした鍵扉320を開けていない状態に戻して、ステップS123に戻る。つまり、ステップS127の経路探索処理を終了し、ステップS129の処理を実行することにより、一時停止した経路探索処理が継続(または、再開)される。
図26および図27は、図25のステップS111に示した部屋情報収集処理の限定しない一例のフロー図である。図26に示すように、プロセッサ81は、部屋情報収集処理を開始すると、ステップS151で、指定された部屋が配置範囲の範囲外であるかどうかを判断する。ここでは、指定された升目210aがパネル212を配置できない升目210aであるかどうかを判断する。
ステップS151で“YES”であれば、つまり、指定された部屋が配置範囲の範囲外であれば、部屋情報収集処理を終了し、図25に示した経路探索処理にリターンする。一方、ステップS151で“NO”であれば、つまり、指定された部屋が配置範囲の範囲内であれば、ステップS153で、指定された部屋がすでにチェック済みであるかどうかを判断する。ここでは、プロセッサ81は、部屋の到達チェック情報を参照して、指定された部屋が既に到達チェック済みになっているかどうかを判断する。
ステップS153で“YES”であれば、つまり、指定され部屋が既にチェック済みであれば、部屋情報収集処理を終了し、経路探索処理にリターンする。一方、ステップS153で“NO”であれば、つまり、指定された部屋がチェック済みでなければ、ステップS155で、指定された部屋をチェック済みにして、ステップS157で、指定された部屋に宝箱310があるかどうかを判断する。ステップS155では、プロセッサ81は、経路探索情報に含まれる部屋の到達チェック情報において、指定された部屋を到達チェック済み(TRUE)にする。
ステップS157で“NO”であれば、つまり、指定された部屋に宝箱310が無ければ、図27に示すステップS165に進む。一方、ステップS157で“YES”であれば、つまり、指定された部屋に宝箱310が有れば、ステップS159で、開けた宝箱310の数が鍵扉320の数未満であるかどうかを判断する。
ステップS159で“NO”であれば、つまり、開けた宝箱310の数が鍵扉320の数未満でなければ、ステップS163に進む。一方、ステップS159で“YES”であれば、開けた宝箱310の数が鍵扉320の数未満であれば、ステップS161で、鍵312を1つ入手して、ステップS163に進む。
ステップS163では、すべての宝箱310を開けたかどうかを判断する。ステップS163で“YES”であれば、つまり、すべての宝箱310を開ければ、部屋情報収集処理を終了し、経路探索処理にリターンする。一方、ステップS163で“NO”であれば、つまり、開けていない宝箱310が有れば、ステップS165に進む。
図27に示すように、ステップS165では、指定した部屋の上下左右の通路306をすべて確認したかどうかを判断する。ステップS165で“NO”であれば、つまり、指定した部屋で確認していない通路306が有れば、ステップS167で、指定した方向に通路306があるかどうかを判断する。詳細な説明は省略するが、基準の方向(たとえば、上方向)から時計周り(または、反時計周り)の順に、方向は指定される。このステップS167では、指定した方向に鍵扉320が有る場合には、通路306が無いと判断される。
ステップS167で“YES”であれば、つまり、指定した方向に通路306が有れば、ステップS169で、部屋情報収集処理を通路306の先の部屋で実行して、ステップS165に戻る。ステップS169の処理が実行されるときに、現在実行中の部屋情報収集処理が一時停止される。このことは、後述するステップS179の処理が実行される場合にも同様である。
一方、ステップS167で“NO”であれば、つまり、指定した方向に通路306が無ければ、ステップS171で、指定した方向に鍵扉320が有るかどうかを判断する。ステップS171で“NO”であれば、つまり、指定した方向に鍵扉320が有れば、ステップS165に戻る。一方、ステップS171で“YES”であれば、つまり、指定した方向に鍵扉320が有れば、ステップS173で、経路探索情報にこの鍵扉320の情報が有るかどうかを判断する。
ステップS173で“YES”であれば、つまり、経路探索情報にこの鍵扉320の情報が有れば、ステップS165に戻る。一方、ステップS173で“NO”であれば、つまり、経路探索情報にこの鍵扉320の情報が無ければ、ステップS175で、経路探索情報の鍵扉の発見の情報に、この鍵扉320の情報を追加して、ステップS165に戻る。
また、ステップS165で“YES”であれば、つまり、指定した部屋の上下左右の通路306をすべて確認すれば、ステップS177で、指定された部屋に階段が有るかどうかを判断する。ステップS177で“NO”であれば、つまり、指定された部屋に階段が無ければ、部屋情報収集処理を終了し、経路探索処理にリターンする。一方、ステップS177で“YES”であれば、つまり、指定された部屋に階段が有れば、ステップS179で、部屋情報収集処理を、階段の先の部屋で実行して、部屋情報収集処理を終了し、経路探索処理にリターンする。
この実施例によれば、単にスタートからゴールまでを繋いでゲームステージを作成するのではなく、通路および階段の連結、宝箱の有無、鍵扉の有無を考慮して、ゲームステージを作成するので、複雑なゲームステージを作成することができる。また、ゲームステージを作成する楽しさを提供することができる。
なお、この実施例では、宝箱を開けると鍵を入手できるようにしたが、これに限定される必要はない。鍵は宝箱以外の入れ物に入っていてもよいし、鍵そのものが仮想の部屋に配置されていてもよい。また、仮想の部屋に存在する敵オブジェクトを倒すなどの所定の条件を満たしたことにより、鍵を出現させるようにしてもよい。
また、この実施例では、接続された他の仮想の部屋に繋がる通路の通行を禁止する禁止要素として鍵扉を通路に配置するようにしたが、禁止要素はこれに限定される必要はい。鍵扉に代えて、岩石オブジェクト、石像オブジェクトまたは敵オブジェクトを配置するようにしてもよい。かかる場合には、禁止要素を解除するための解除要素は、たとえば、岩石オブジェクトまたは石像オブジェクトを壊す爆弾オブジェクトであり、敵オブジェクトを倒す武器のようなアイテムオブジェクトである。また、鍵扉は、解除要素である鍵に代えて、鍵扉が配置された仮想の部屋に設けられたボタンを押下することにより、開錠されてもよい。かかる場合には、所定のアイテムオブジェクトを取得することにより、または、所定の敵オブジェクトを倒すことにより、ボタンが押下可能な状態に変化される。
さらに、この実施例では、配置領域において、パネルを配置できない升目を一部に設けるようにして、パネルの配置に制限を加えるようにしたが、他の制限を加えるようにしてもよい。他の例では、配置領域の一部の升目において、配置されるパネルの種類が制限される。具体的には、スタート部屋に対応するパネル、ボス部屋に対応するパネル、宝箱が配置された仮想の部屋に対応するパネルまたは鍵扉が配置された仮想の部屋に対応するパネルを配置することが、一部の升目に予め指定されるようにしてもよい。この場合には、前提条件として、予め指定された種類のパネルが配置されているかどうかも判断される。
さらにまた、この実施例では、2次元のパーツに対応する2次元のパネルを用いてゲームステージを作成し、3次元のゲームステージを生成してゲームをプレイするようにしたが、3次元のパーツを用いてゲームステージを作成するようにしてもよい。
また、この実施例では、情報処理システムの一例としてゲームシステム1を示したが、その構成は限定される必要は無く、他の構成を採用することが可能である。たとえば、上記「コンピュータ」は、上述の実施例においては、1つのコンピュータ(具体的には、プロセッサ81)であるが、他の実施例においては、複数のコンピュータであってもよい。上記「コンピュータ」は、例えば、複数の装置に設けられる(複数の)コンピュータであってもよく、より具体的には、上記「コンピュータ」は、本体装置2のプロセッサ81と、コントローラが備える通信制御部(マイクロプロセッサ)101、111とによって構成されてもよい。
さらに、他の実施例では、インターネットのようなネットワーク上のサーバで、図21−図27に示したゲーム制御処理、ゲーム画像の生成処理、ゲーム音声の生成処理、クリア可能判定処理、経路探索処理および部屋情報収集処理を実行するようにしてもよい。かかる場合には、本体装置2のプロセッサ81は、左コントローラ3および右コントローラ4から受信した操作データを、ネットワーク通信部82およびネットワークを介して上記のサーバに送信し、サーバでゲーム制御処理、ゲーム画像の生成処理、ゲーム音声の生成処理、クリア可能判定処理、経路探索処理および部屋情報収集処理を実行された結果(つまり、ゲーム画像のデータおよびゲーム音声のデータ)を受信して、ゲーム画像をディスプレイ12に表示するとともに、ゲーム音声をスピーカ88から出力する。つまり、上記の実施例で示したゲームシステム1とネットワーク上のサーバを含む情報処理システムを構成することもできる。
さらにまた、上述の実施例では、ディスプレイ12にゲーム画像を表示する場合について説明したが、これに限定される必要はない。本体装置2を、クレードルを介して据置型モニタ(たとえば、テレビモニタ)に接続することにより、ゲーム画像を据置型モニタに表示することもできる。かかる場合には、ゲームシステム1と据置型モニタを含む情報処理システムを構成することもできる。
また、上述の実施例では、本体装置2に左コントローラ3および右コントローラ4を着脱可能な構成のゲームシステム1を用いた場合について説明したが、これに限定される必要はない。たとえば、左コントローラ3および右コントローラ4と同様の操作ボタンおよびアナログスティックを有する操作部を本体装置2に一体的に設けたゲーム装置またはゲームプログラムを実行可能な他の電子機器のような情報処理装置を用いることもできる。他の電子機器としては、スマートフォンまたはタブレットPCなどが該当する。かかる場合には、操作部はソフトウェアキーで構成することもできる。
さらに、その他の実施例では、連結部材を用いて、左コントローラ3および右コントローラ4を一体的に構成して1つのコントローラとして使用するようにしてもよい。
さらにまた、上述の実施例で示した具体的な数値および画像は一例であり、実際の製品に応じて適宜変更可能である。