(57)【要約】【課題】  構築されるゲームエリアの長さにバリエーションを持たせてゲームエリアを構築する。【解決手段】  ゲーム装置は、ゲームエリア部品と、エリア構築データとを含んでいる。ゲームエリア部品は、複数含まれており、それぞれ同じサイズである。エリア構築データは、１以上のゲームエリア部品をブロックとして定義する。また、エリア構築データは、それぞれ１以上のブロックを含む複数のコンテナを示す。ゲーム装置は、エリア構築データにより示されるコンテナを所定の順番に指定する。また、指定手段によって指定されたコンテナに含まれる１以上のブロックから１つを選択する。さらに、選択手段によって選択されたブロックによって定義されるゲームエリア部品を、指定手段によって指定されたコンテナの順にブロック単位で所定方向に接続することによってゲームエリアを構築する。【選択図】  図４
2006204402.tif 000002
【特許請求の範囲】
【請求項１】
ゲームエリアを構築する処理をゲーム装置のコンピュータに実行させるためのゲームプログラムであって、
前記ゲームプログラムには、
それぞれ同じサイズである複数のゲームエリア部品と、
１以上のゲームエリア部品をブロックとして定義し、それぞれ１以上のブロックを含む複数のコンテナを示すエリア構築データとが含まれており、
前記エリア構築データにより示されるコンテナを所定の順番に指定する指定手段と、
前記指定手段によって指定されたコンテナに含まれる１以上のブロックから１つを選択する選択手段と、
前記選択手段によって選択されたブロックによって定義されるゲームエリア部品を、前記指定手段によって指定されたコンテナの順にブロック単位で所定方向に接続することによってゲームエリアを構築する構築手段として前記コンピュータを機能させる、ゲームプログラム。
【請求項２】
前記エリア構築データには、そのブロックが選択されるための選択条件が各ブロックに対して関連付けられており、
前記選択手段は、前記指定手段によって指定されたコンテナに含まれる１以上のブロックのうちで前記選択条件が満たされているブロックを選択する、請求項１に記載のゲームプログラム。
【請求項３】
前記選択条件は、所定のパラメータの値に関する条件であり、
前記エリア構築データにおいて定義されるブロックには、前記所定のパラメータの値を変化させる第１命令が関連付けられており、
前記ゲームプログラムは、前記選択手段によってブロックが選択されたとき、当該選択されたブロックに関連付けられている第１命令を実行する命令実行手段として前記コンピュータをさらに機能させる、請求項２に記載のゲームプログラム。
【請求項４】
前記エリア構築データは、コンテナの接続順をさらに示し、
前記指定手段は、前記エリア構築データにより示される接続順にコンテナを指定する、請求項１に記載のゲームプログラム。
【請求項５】
前記エリア構築データにおいて定義されるブロックには、１つのコンテナを指定する第２命令が関連付けられており、
前記指定手段は、前回指定したコンテナに含まれる１以上のブロックから前記選択手段が選択したブロックに関連付けられている第２命令に従って次に指定するコンテナを決定する、請求項１に記載のゲームプログラム。
【請求項６】
前記エリア構築データにより示されるコンテナは、１以上のゲームエリア部品によって定義されるブロックと０個のゲームエリア部品によって定義される仮想ブロックとを含む、請求項１に記載のゲームプログラム。
【請求項７】
前記ゲームプログラムは、
一定のサイズの背景を示す背景データと、
背景の上に配置すべきオブジェクトを示すオブジェクトファイルと、
各ゲームエリア部品に対して、ゲームエリア部品を構成するための背景データおよびオブジェクトファイルを関連付けたエリアテーブルとを含み、
前記構築手段は、
前記選択手段によって選択されたブロックによって定義されるゲームエリア部品に関連付けられている背景データおよびオブジェクトファイルからゲームエリアの画像を生成する生成手段と、
前記生成手段によって生成されたゲームエリアの画像を前記ゲーム装置の表示装置に表示させる表示制御手段とを含む、請求項１に記載のゲームプログラム。
【請求項８】
ゲームエリアを構築する処理を行うゲーム装置であって、
それぞれ同じサイズである複数のゲームエリア部品と、１以上のゲームエリア部品をブロックとして定義し、それぞれ１以上のブロックを含む複数のコンテナを示すエリア構築データとを格納するデータ格納手段と、
前記エリア構築データにより示されるコンテナを所定の順番に指定する指定手段と、
前記指定手段によって指定されたコンテナに含まれる１以上のブロックから１つを選択する選択手段と、
前記選択手段によって選択されたブロックによって定義されるゲームエリア部品を、前記指定手段によって指定されたコンテナの順にブロック単位で所定方向に接続することによってゲームエリアを構築する構築手段とを備える、ゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲームプログラムおよびゲーム装置に関し、より特定的には、ゲームエリアを構築するための部品を複数接続することによってゲームエリアを構築するゲームプログラムおよびゲーム装置に関する。
【背景技術】
【０００２】
従来、ゲームエリアを構築するための部品を複数接続することによってゲームエリアを構築する技術として、特許文献１に記載の遊戯装置がある。この遊戯装置は、ドライブゲームにおいて、予め用意された複数のコース部品データを一定の制限または法則の下にランダムに選択して接続することによってドライブコース（ゲームエリア）を作成するものである。具体的には、各コース部品と他のコース部品とが接続可能であるか否か、および、接続可能である場合には当該他のコースが接続される確率を示すテーブルが用意される（特許文献１の図９参照）。上記遊戯装置は、このテーブルを参照しながらコース部品をランダムに接続していくことによって、ランダムに変化するドライブコースを構築することができるものである。
【特許文献１】特開平９−１３１４６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ここで、所定方向に画面がスクロールしていくゲームのように、ゲームエリアの部品を所定方向に接続していくことによってゲームエリアが構築されていくゲームを考える。このようなゲームにおいては、ゲーム処理における取り扱いやすさやメモリの制限等の理由から、予め用意される複数の部品は、一定のサイズで作成されることが好ましい。
【０００４】
一方、上記特許文献１においては、次に接続すべきコース部品を選択する際、１つのコース部品が選択される。つまり、特許文献１に記載のゲームエリア構築方法では、途中でどのようなコース部品が選択されたとしても、選択されたコース部品の数は同じである。したがって、ゲームエリアの部品のサイズを一定としたゲームについて、特許文献１に記載のゲームエリア構築方法を用いたとすれば、最終的に構築されるゲームエリアの長さは常に一定になってしまう。それ故、従来のゲームエリア構築方法では、ゲームエリアの長さにバリエーションを持たすことができず、ゲームエリアの長さという意味では、作成されたゲームエリアが単調になっていた。
【０００５】
それ故、本発明の目的は、構築されるゲームエリアの長さにバリエーションを持たせてゲームエリアを構築することができるゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【０００６】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、この欄における括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述の実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
第１の発明は、ゲームエリアを構築する処理をゲーム装置（１０）のコンピュータ（ＣＰＵコア２１）に実行させるためのゲームプログラムである。ゲームプログラムには、ゲームエリア部品（背景データ４３、オブジェクトファイル４４、およびエリアテーブル４５）と、エリア構築データ（４２）とが含まれている。ゲームエリア部品は、複数含まれており、それぞれ同じサイズ（例えば、５１２×５１２ｄｏｔ）である。エリア構築データは、１以上のゲームエリア部品をブロックとして定義する。また、エリア構築データは、それぞれ１以上のブロックを含む複数のコンテナを示す（図４参照）。ゲームプログラムは、指定手段（ステップＳ１，Ｓ３４，Ｓ３６またはＳ４１を実行するＣＰＵコア２１等。以下、単にステップ番号のみを示す。）と、選択手段（Ｓ２）と、構築手段（Ｓ４）としてコンピュータを機能させる。指定手段は、エリア構築データにより示されるコンテナを所定の順番に指定する。選択手段は、指定手段によって指定されたコンテナに含まれる１以上のブロックから１つを選択する。構築手段は、選択手段によって選択されたブロックによって定義されるゲームエリア部品を、指定手段によって指定されたコンテナの順にブロック単位で所定方向（右方向）に接続することによってゲームエリアを構築する。
【０００７】
また、第２の発明においては、エリア構築データには、そのブロックが選択されるための選択条件が各ブロックに対して関連付けられていてもよい。このとき、選択手段は、指定手段によって指定されたコンテナに含まれる１以上のブロックのうちで選択条件が満たされているブロックを選択する。
【０００８】
また、第３の発明においては、選択条件は、所定のパラメータ（フラグまたはカウンタ）の値に関する条件（パラメータ条件）であってもよい。このとき、エリア構築データにおいて定義されるブロックには、所定のパラメータの値を変化させる第１命令（パラメータ命令）が関連付けられる。また、ゲームプログラムは、命令実行手段としてコンピュータをさらに機能させる。命令実行手段は、選択手段によってブロックが選択されたとき、当該選択されたブロックに関連付けられている第１命令を実行する。
【０００９】
また、第４の発明においては、エリア構築データは、コンテナの接続順をさらに示すものであってもよい。このとき、指定手段は、エリア構築データにより示される接続順にコンテナを指定する。
【００１０】
また、第５の発明は、エリア構築データにおいて定義されるブロックには、１つのコンテナを指定する第２命令（ジャンプ命令）が関連付けられていてもよい。このとき、指定手段は、前回指定したコンテナに含まれる１以上のブロックから選択手段が選択したブロックに関連付けられている第２命令に従って次に指定するコンテナを決定する。
【００１１】
また、第６の発明においては、エリア構築データにより示されるコンテナは、１以上のゲームエリア部品によって定義されるブロックと０個のゲームエリア部品によって定義される仮想ブロックとを含んでいてもよい。
【００１２】
また、第７の発明においては、ゲームプログラムは、背景データ（４３）と、オブジェクトファイル（４４）と、エリアテーブル（４５）とを含んでいてもよい。背景データは、一定のサイズの背景を示すデータである。オブジェクトファイルは、背景の上に配置すべきオブジェクトを示すデータである。エリアテーブルは、各ゲームエリア部品に対して、ゲームエリア部品を構成するための背景データおよびオブジェクトファイルを関連付けたテーブルである。また、構築手段は、生成手段（Ｓ２４）と、表示制御手段（Ｓ２５）とを含んでいる。生成手段は、選択手段によって選択されたブロックによって定義されるゲームエリア部品に関連付けられている背景データおよびオブジェクトファイルからゲームエリアの画像を生成する。表示制御手段は、生成手段によって生成されたゲームエリアの画像をゲーム装置の表示装置（第１のＬＣＤ１１、および第２のＬＣＤ１２）に表示させる。
【００１３】
また、第８の発明は、ゲームエリアを構築する処理を行うゲーム装置である。ゲーム装置は、データ格納手段（ＲＡＭ２４）と、指定手段（ステップＳ１，Ｓ３４，Ｓ３６またはＳ４１）と、選択手段（Ｓ２）と、構築手段（Ｓ４）とを備えている。データ格納手段は、それぞれ同じサイズである複数のゲームエリア部品（背景データ４３、オブジェクトファイル４４、およびエリアテーブル４５）と、エリア構築データ（４２）とを格納する。エリア構築データは、１以上のゲームエリア部品をブロックとして定義し、それぞれ１以上のブロックを含む複数のコンテナを示す（図４参照）。指定手段は、エリア構築データにより示されるコンテナを所定の順番に指定する。選択手段は、指定手段によって指定されたコンテナに含まれる１以上のブロックから１つを選択する。構築手段は、選択手段によって選択されたブロックによって定義されるゲームエリア部品を、指定手段によって指定されたコンテナの順にブロック単位で所定方向（右方向）に接続することによってゲームエリアを構築する。
【発明の効果】
【００１４】
第１および第８の発明によれば、１以上のゲームエリア部品が１つのブロックとして定義されるので、複数のゲームエリア部品を１つのブロックとして定義し、１つのブロックとして取り扱うことが可能である。また、ゲームエリアが構築される際には、コンテナの中に含まれる複数のブロックから１つが選択される。したがって、各ブロックについてそれぞれ異なる数のゲームエリア部品を含めて定義することによって、異なる長さのゲームエリア部品をそれぞれ含む複数のブロックから１つを選択してゲームエリアを構築することができる。それ故、第１の発明によれば、選択されるブロックに応じてゲームエリアの長さが変化させることができるので、ゲームエリアの長さにバリエーションを持たせてゲームエリアを構築することができる。
【００１５】
第２の発明によれば、所望の内容の選択条件を設定することによって、ゲーム製作者は、ブロックの選択について自己の意図を反映することができる。また、ゲーム製作者は、ひとまとまりとして扱いたいゲームエリア部品群を１つのブロックとして定義することができ、当該ブロックに関連付けて選択条件を設定することができる。したがって、ゲーム製作者にとってゲームエリア部品の管理が非常に容易なエリア構築データを作成することができる。
【００１６】
第３の発明によれば、指定されたコンテナにおけるブロックの選択内容を、その後に指定されるコンテナにおけるブロックの選択に反映させることができる。つまり、それまでに構築されたゲームエリアの内容を、その後のゲームエリアの構築に反映させることができる。
【００１７】
第４の発明によれば、コンテナの接続順が予め定められているので、その接続順に基づいて次に指定すべきコンテナを容易に決定することができる。
【００１８】
第５の発明によれば、次に指定すべきコンテナを所定の順番にコンテナ単位ではなく、ブロック単位で次に指定すべきコンテナを指定することができる。このようにブロック単位で次に指定すべきコンテナを指定することにより、ゲームの進行（選択されるブロック）に応じて、次に指定されるコンテナを変化させることができる。
【００１９】
第６の発明によれば、ゲームエリアを構築する際に、あるゲームエリア部品を接続するか、または、ゲームエリアを何も接続しないかという選択を、仮想ブロックを用いることによって容易に表現することができる。
【００２０】
第７の発明によれば、背景とオブジェクトとを別個のデータとして格納し、背景データとオブジェクトファイルとを組み合わせてゲームエリア部品を作成することによって、ゲームエリア部品のバリエーションを増やすことができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の一実施形態に係るゲーム装置の構成および動作を説明する。
【００２２】
図１は、本発明の一実施形態に係るゲーム装置の外観図である。図１において、ゲーム装置１０は、第１のＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１１および第２のＬＣＤ１２を含む。ハウジング１３は上側ハウジング１３ａと下側ハウジング１３ｂとによって構成されており、第１のＬＣＤ１１は上側ハウジング１３ａに収納され、第２のＬＣＤ１２は下側ハウジング１３ｂに収納される。第１のＬＣＤ１１および第２のＬＣＤ１２の解像度はいずれも２５６ｄｏｔ×１９２ｄｏｔである。なお、第１の実施形態では表示装置としてＬＣＤを用いているが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置など、他の任意の表示装置を利用することができる。また任意の解像度のものを利用することができる。
【００２３】
上側ハウジング１３ａには、後述する１対のスピーカ（図２の３０）からの音を外部に放出するための音抜き孔１８ａおよび１８ｂが形成されている。
【００２４】
下側ハウジング１３ｂには、入力装置として、十字スイッチ１４ａ、スタートスイッチ１４ｂ、セレクトスイッチ１４ｃ、Ａボタン１４ｄ、Ｂボタン１４ｅ、Ｘボタン１４ｆ、Ｙボタン１４ｇ、Ｌボタン１４ＬおよびＲボタン１４Ｒが設けられている。また、さらなる入力装置として、第２のＬＣＤ１２の画面上にタッチパネル１５（図１に示す２点鎖線）が装着されている。また、下側ハウジング１３ｂには、電源スイッチ１９や、メモリカード１７やスティック１６を収納するための挿入口（図１に示す一点鎖線）も設けられている。
【００２５】
タッチパネル１５としては、例えば抵抗膜方式や光学式（赤外線方式）や静電容量結合式など、任意の方式のものを利用することができる。タッチパネル１５は、その表面をスティック１６で触れると、その接触位置に対応する座標データを出力する機能を有している。なお、以下ではプレイヤがタッチパネル１５をスティック１６で操作するものとして説明を行うが、スティック１６の代わりにペン（スタイラスペン）や指でタッチパネル１５を操作することももちろん可能である。第１の実施形態では、タッチパネル１５として、第２のＬＣＤ１２の解像度と同じく２５６ｄｏｔ×１９２ｄｏｔの解像度（検出精度）のものを利用する。ただし、必ずしもタッチパネル１５の解像度と第２のＬＣＤ１２の解像度が一致している必要はない。
【００２６】
メモリカード１７はゲームプログラムを記録した記録媒体であり、下部ハウジング１３ｂに設けられた挿入口に着脱自在に装着される。
【００２７】
次に、図２を参照してゲーム装置１０の内部構成を説明する。図２において、ハウジング１３に収納される電子回路基板２０には、ＣＰＵコア２１が実装される。ＣＰＵコア２１には、バス２２を介して、コネクタ２３が接続されるとともに、入出力インターフェース回路（図面ではＩ／Ｆ回路と記す）２５、第１ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２６、第２ＧＰＵ２７、ＲＡＭ２４およびＬＣＤコントローラ３１が接続される。コネクタ２３には、メモリカード１７が着脱自在に接続される。メモリカード１７は、ゲームプログラムを記憶するＲＯＭ１７１と、バックアップデータを書き換え可能に記憶するＲＡＭ１７２を搭載する。メモリカード１７のＲＯＭ１７１に記憶されたゲームプログラムはＲＡＭ２４にロードされ、ＲＡＭ２４にロードされたゲームプログラムがＣＰＵコア２１によって実行される。ＲＡＭ２４には、ゲームプログラムの他にも、ＣＰＵコア２１がゲームプログラムを実行して得られる一時的なデータや、ゲーム画像を生成するためのデータが記憶される。Ｉ／Ｆ回路２５には、タッチパネル１５と、スピーカ３０と、図１の十字スイッチ１４ａやＡボタン１４ｄ等からなる操作スイッチ部１４とが接続される。スピーカ３０は、音抜き孔１８ａおよび１８ｂの内側に配置される。
【００２８】
第１ＧＰＵ２６には、第１ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）２８が接続され、第２ＧＰＵ２７には、第２ＶＲＡＭ２９が接続される。第１ＧＰＵ２６は、ＣＰＵコア２１からの指示に応じて、ＲＡＭ２４に記憶されているゲーム画像を生成するためのデータに基づいて第１のゲーム画像を生成し、第１ＶＲＡＭ２８に描画する。第２ＧＰＵ２７は、同様にＣＰＵコア２１からの指示に応じて第２のゲーム画像を生成し、第２ＶＲＡＭ２９に描画する。第１ＶＲＡＭ２８および第２ＶＲＡＭ２９はＬＣＤコントローラ３１に接続されている。
【００２９】
ＬＣＤコントローラ３１はレジスタ３２を含む。レジスタ３２はＣＰＵコア２１からの指示に応じて０または１の値を記憶する。ＬＣＤコントローラ３１は、レジスタ３２の値が０の場合は、第１ＶＲＡＭ２８に描画された第１のゲーム画像を第１のＬＣＤ１１に出力し、第２ＶＲＡＭ２９に描画された第２のゲーム画像を第２のＬＣＤ１２に出力する。また、レジスタ３２の値が１の場合は、第１ＶＲＡＭ２８に描画された第１のゲーム画像を第２のＬＣＤ１２に出力し、第２ＶＲＡＭ２９に描画された第２のゲーム画像を第１のＬＣＤ１１に出力する。
【００３０】
なお、上記のようなゲーム装置１０の構成は単なる一例に過ぎず、本発明は、少なくとも１つの表示装置を有する任意のコンピュータシステムに適用することができる。また、本発明のゲームプログラムは、メモリカード１７などの外部記憶媒体を通じてコンピュータシステムに供給されるだけでなく、有線または無線の通信回線を通じてコンピュータシステムに供給されてもよいし、さらにはコンピュータシステム内部の不揮発性記憶装置に予め記録されていてもよい。
【００３１】
以下、ゲーム装置１０においてゲームプログラムを実行することによって行われるゲームの詳細について説明する。本ゲームは、プレイヤによって操作されるプレイヤキャラクタやオブジェクト（敵キャラクタやアイテム）がゲームエリアに登場するゲームである。プレイヤは、プレイヤキャラクタを操作して敵キャラクタを倒したりアイテムを取得したりしながら、ゲームエリアの最後（ゴール）を目指して遊ぶ。ここで、ゲームエリアは、予め用意された所定のサイズのゲームエリア部品（図６に示す背景データにオブジェクトデータを重ねたもの）を所定方向に順に接続することによって構築される。ここでは、ゲームエリア部品が右方向に順に接続されて、横長のゲームエリアが構築されるものとするが、ゲームエリア部品が接続される方向は予め定められた方向であればどの方向であってもよい。ゲームエリア部品は、複数種類が予め用意されている。画面に表示すべきゲームエリアの画像データを作成する際のデータ処理等における扱いやすさを考慮して、各ゲームエリア部品は全て同じサイズ（例えば、５１２×５１２ｄｏｔ）で作成される。
【００３２】
まず、ゲーム装置１０におけるゲーム処理において用いられるデータについて説明する。図３は、メモリカード１７のＲＯＭ１７１に記憶されているゲームプログラムのデータ構成を示す図である。ゲームプログラムには、ゲーム処理をＣＰＵコア２１に実行させるための各種プログラム４１、および、当該ゲーム処理が実行される際に用いられる各種データ４２〜４６が含まれている。上述したように、ＲＯＭ１７１に記憶されたゲームプログラムはゲーム装置１０のＲＡＭ２４に適宜ロードされ、ゲーム処理のために用いられる。
【００３３】
ゲームプログラムには、エリア構築データ４２、背景データ４３、オブジェクトファイル４４、エリアテーブル４５、およびその他のデータ（プレイヤキャラクタの画像データ等）４６が含まれている。まず、図４および図５を参照して、エリア構築データ４２について説明する。
【００３４】
図４は、エリア構築データ４２の一例を示す概念図である。エリア構築データ４２は、ゲームエリアを構築するために用いられ、ゲーム中においてゲーム装置は、エリア構築データ４２に基づいてゲームエリアを構築していく。エリア構築データ４２は、ゲーム中に構築されるゲームエリアがどのような構成になるかを決定する元になるデータであり、ゲーム中に構築されるゲームエリアの設計図と言える。ゲーム制作者は、ゲーム中に構築されるゲームエリアが所望の構成となるように（ゲーム制作者の意図を反映させたゲームエリアが構築されるように）、エリア構築データ４２を予め作成する。
【００３５】
エリア構築データ４２においては、ゲームエリア部品、ブロック、コンテナという３つの概念が定義されている。図４において、その内側に数字のみが記載された正方形はゲームエリア部品を示し、その内側左上に“ブロック：Ｎ（Ｎは整数）”と記載された四角形はブロックを示し、その内側左上に「コンテナ：Ｎ（Ｎは整数）」と記載された四角形はコンテナを示している。したがって、図４においては、４個のコンテナ、１１個のブロック（後述する仮想ブロックを含む）、および１６個のゲームエリア部品が示されている。また、図４において、ゲームエリア部品を示す正方形の内側に記載された数字は、各ゲームエリア部品を識別するために付される部品番号を示す。ブロックを示す正方形の内側に記載された数字は、同じコンテナ内に含まれる各ブロックを識別するために付されるブロック番号を示す。コンテナを示す正方形の内側に記載された数字は、各コンテナを識別するために付されるコンテナ番号を示す。
【００３６】
ゲームエリア部品は、上述したように、ゲームエリアを構築するために予め用意される部品であり、ゲームエリアを構築する処理において扱われる最小の単位である。ブロックは、１以上のゲームエリア部品として定義される。コンテナは、１以上のブロックとして定義される。また、コンテナは、コンテナ番号の順に接続されている。
【００３７】
ゲームエリアを構築する際には、ゲーム装置は、（１）接続されている順にコンテナを指定し、（２）指定したコンテナ内に含まれているブロックから１つを選択する。そして、（３）選択されたブロック内に含まれているゲームエリア部品を、すでに構築されているゲームエリアの次に接続する。以上の（１）〜（３）の処理を繰り返すことによって、ゲームエリアが順次構築されていく。
【００３８】
また、エリア構築データ４２においては、各ブロックに対して選択条件および実行命令が関連付けられている。図４においては、ブロックを示す四角形の左下側に接続されている四角形が選択条件を示し、ブロックを示す四角形の右下側に接続されている四角形が実行命令を示す。
【００３９】
選択条件は、それが関連付けられたブロックが選択されるための条件を示す。例えば、図４の“コンテナ：１”に含まれる“ブロック：１”には、“ｒａｎｄｏｍ  ５０”という選択条件が関連付けられている。この選択条件は、「５０％の確率でランダムにブロックが選択される」ことを意味している。つまり、“コンテナ：１”が指定された場合、“ブロック：１”は、５０％の確率でランダムに選択される。また、図４の“コンテナ：３”に含まれる“ブロック：１”には、“Ｅｖｅｎｔ＿ｏｒ  １”という選択条件が関連付けられている。この選択条件は、「フラグ１が立っていればそのブロックが選択される」ことを意味している。つまり、“コンテナ：３”が指定された場合、“ブロック：１”は、その時点でフラグ１が立っていれば選択される。
【００４０】
本実施形態では、選択条件として、パラメータ条件およびランダム条件という２種類の条件を用いる。ランダム条件とは、上記“ｒａｎｄｏｍ  ５０”のように、ブロックがランダムに選択される選択条件である。一方、パラメータ条件とは、指定されたパラメータ（フラグやカウンタを含む）の値に関する条件である。パラメータ条件は、例えば、上記“Ｅｖｅｎｔ＿ｏｒ  １”のように、指定されたフラグの値に応じて条件が満たされるものである。また、予めカウンタが用意される場合、指定されたカウンタ値に応じて条件が満たされるものもパラメータ条件である。本実施形態においては、指定されたフラグの値に応じて条件が満たされるようなパラメータ条件を「イベント条件」と呼び、指定されたカウンタの値に応じて条件が満たされるようなパラメータ条件を「カウント条件」と呼ぶ。カウント条件としては「カウンタの値が指定された値であればそのブロックを選択する」といった条件が考えられる。
【００４１】
実行命令は、それが関連付けられたブロックが選択されたときに実行される命令を示す。例えば、図４の“コンテナ：１”に含まれる“ブロック：１”には、“Ｌｏｏｐ  ２”という実行命令が関連付けられている。この実行命令は、「そのブロックを２回接続する」ことを意味している。また、図４の“コンテナ：１”に含まれる“ブロック：２”には、“Ｅｖｅｎｔ＿ｕｐ  １”という実行命令が関連付けられている。この実行命令は、「フラグ１を立てる」ことを意味している。
【００４２】
本実施形態では、実行命令として、ループ命令、ジャンプ命令、パラメータ命令という３種類の命令を用いる。ループ命令とは、上記“Ｌｏｏｐ  ２”のようにそのブロックを繰り返して接続する回数を設定する命令である。なお、ループ命令以外の実行命令が設定される場合は、接続回数は１回（Ｌｏｏｐ  １）と判断される。また、ジャンプ命令とは、例えば、“Ｊｕｍｐ  ３（コンテナ３を次に指定することを示す命令）”のように、次に指定するコンテナを決定する命令である。また、パラメータ命令とは、上記“Ｅｖｅｎｔ＿ｕｐ  １”のように、ゲーム処理において用いるパラメータ（フラグやカウンタを含む）の値を変化させる命令である。本実施形態においては、フラグの値を変化させるパラメータ命令を「イベント命令」と呼び、カウンタの値を変化させるパラメータ命令を「カウント命令」と呼ぶ。
【００４３】
また、本実施形態においては、コンテナには、上記ブロックの他に仮想ブロックが含まれていてもよい。仮想ブロックは、ブロックと同様コンテナに含まれるものであるが、ゲームエリア部品を持たない。図４においては、“コンテナ：３”に含まれる“ブロック：３”が仮想ブロックである。ゲームエリアを構築する際においてこのブロックが選択された場合、実際にはゲームエリア部品が接続されない。なお、仮想ブロックについてもブロックと同様、選択条件および実行命令が関連付けられる。
【００４４】
図５は、エリア構築データ４２の一例を示す図である。なお、図４と図５とは同じ内容を示している。図５に示すように、エリア構築データ４２は、コンテナ番号と、ブロック番号と、部品番号と、選択条件と、実行命令とを関連付けたテーブルとして表される。
【００４５】
図３の説明に戻り、背景データ４３は、ゲームエリアの背景となる画像のデータである。図６は、背景データの例を示す図である。図６では、背景データ４３ａ〜４３ｇという７種類の背景データを示している。背景データは、ゲームエリア部品のサイズを決めるものであるので、各背景データ４３ａ〜４３ｇのサイズは一定である。また、オブジェクトファイル４４は、ゲームエリアに配置されるオブジェクト（敵キャラクタやアイテム等）の設定データ（例えば、オブジェクトの数、配置位置および画像を示すデータ等）である。このオブジェクトファイルのデータは、オブジェクトファイル毎にそれぞれ異なる。なお、オブジェクトの画像を示すデータはオブジェクトファイルとは別の領域（例えば、ＲＯＭ１７１のその他のデータ４６）に記憶するようにしてもよい。
【００４６】
エリアテーブル４５は、背景データ４３およびオブジェクトファイル４４からゲームエリア部品を作成するために用いられるテーブルである。図７は、エリアテーブルの一例を示す図である。図７に示すように、エリアテーブルは、部品番号と、背景データと、オブジェクトファイルの個数と、オブジェクトファイルとを関連付けたテーブルである。部品番号は、エリア構築データにおいて定義されているゲームエリア部品の部品番号である。図７に示すエリアテーブルは、例えば、部品番号が１であるゲームエリア部品は、「背景１」という背景データと、「オブジェクトファイル１」または「オブジェクトファイル２」というオブジェクトファイルとを合成することによって作成されることを示している。ここで、オブジェクトファイル１とオブジェクトファイル２とは、それぞれ異なる設定データである。例えば、オブジェクトファイル１が、オブジェクトの数３で、各オブジェクトの配置位置と画像を示す設定データであれば、オブジェクトファイル２は、オブジェクトの数５であり、各オブジェクトの配置位置や画像がオブジェクトファイル１のものとは異なる設定データである。上記のように、１つのゲームエリア部品に対して２以上のオブジェクトファイルが関連付けられている場合には、いずれかのオブジェクトファイルがランダムに選択されて設定される。このように、本実施形態においては、ゲームエリア部品は、１つの背景データと選択された１つのオブジェクトファイルとを合成することによって作成される。
【００４７】
次に、ゲーム装置１０がメモリカード１７のゲームプログラムを実行することによって行われるゲーム処理の詳細について説明する。ゲーム装置１０の電源が投入されると、ゲーム装置１０のＣＰＵコア２１はメモリカード１７に格納されているゲームプログラムを実行し、それによってゲーム処理が開始される。以下、図８〜図１１を参照してゲーム処理の詳細について説明する。
【００４８】
図８は、ゲーム装置１０において実行されるゲーム処理の流れを示すメインフローチャートである。ゲーム処理が開始されると、まず、ステップＳ１において、変数ＣＮおよび変数ＬＡの値が初期化される。変数ＣＮは、指定すべきコンテナのコンテナ番号を示す変数である。変数ＬＡは、１つのブロックに含まれるゲームエリア部品をループした回数（１つのブロックに含まれるゲームエリア部品を接続した回数）を示す変数である。具体的には、ＲＡＭ２４に記憶されている変数ＣＮおよび変数ＬＡの値が、ＣＮ＝０、ＬＡ＝０に設定される。したがって、ステップＳ１においてコンテナ番号が０のコンテナが指定されたこととなり、当該コンテナに含まれるブロック内のゲームエリア部品が最初のゲームエリアとして構築されることになる。
【００４９】
ステップＳ１の次のステップＳ２において、ブロック選択処理が行われる。ブロック選択処理は、その時点で指定されているコンテナ（変数ＣＮにより示される番号のコンテナ）に含まれる１以上のブロックから、ゲームエリアを構築するために用いる１つのブロックを選択する処理である。
【００５０】
図９は、図８に示すステップＳ２のブロック選択処理の詳細を示すフローチャートである。ブロック選択処理では、まずステップＳ１１において、その時点で指定されているコンテナに含まれている各ブロックについて、それに関連付けられているイベント条件を満たすブロックがあるか否かが判定される。すなわち、ＣＰＵコア２１は、エリア構築データを参照することによって、その時点で指定されているコンテナに含まれている各ブロックに関連付けられている選択条件のうち、イベント条件を特定する。そして、特定されたイベント条件が満たされるか否かを、ＲＡＭ２４に記憶されているフラグの状態（立っているか否か）に基づいて判断する。ステップＳ１１の判定において、イベント条件が満たされているブロックがある場合、ステップＳ１３の処理が行われる。一方、イベント条件が満たされているブロックがない場合、ステップＳ１２の処理が行われる。なお、その時点で指定されているコンテナに含まれている各ブロックに関連付けられている選択条件の中にイベント条件がない場合は、イベント条件が満たされているブロックがないと判断し、ステップＳ１２の処理が行われる。
【００５１】
ステップＳ１２においては、その時点で指定されているコンテナに含まれている各ブロックについて、それに関連付けられているカウント条件を満たすブロックがあるか否かが判定される。すなわち、ＣＰＵコア２１は、エリア構築データを参照することによって、その時点で指定されているコンテナに含まれている各ブロックに関連付けられている選択条件のうち、カウント条件を特定する。そして、特定されたカウント条件が満たされるか否かを、ＲＡＭ２４に記憶されているカウンタの値を参照して判断する。ステップＳ１２の判定において、カウント条件が満たされているブロックがある場合、ステップＳ１３の処理が行われる。一方、カウント条件が満たされているブロックがない場合、ステップＳ１４の処理が行われる。なお、その時点で指定されているコンテナに含まれている各ブロックに関連付けられている選択条件の中にカウント条件がない場合は、カウント条件が満たされているブロックがないと判断し、ステップＳ１４の処理が行われる。
【００５２】
ステップＳ１３においては、ステップＳ１１またはＳ１２で満たされたと判断された選択条件に関連付けられているブロックが選択される。一方、ステップＳ１４においては、ＣＰＵコア２１は、ランダム条件で示される確率に基づいてランダムにブロックを選択する。すなわち、その時点で指定されているコンテナに含まれている各ブロックに関連付けられている選択条件のうち、ランダム条件を特定する。そして、ランダム条件が関連付けられているブロックの中から、ランダム条件において示されている確率に基づいてランダムに１つを選択する。ステップＳ１３またはステップＳ１４の後、ＣＰＵコア２１はブロック選択処理を終了する。
【００５３】
なお、図９に示したブロック選択処理においては、イベント条件を満たすブロックがカウント条件を満たすブロックよりも優先して選択されるものとしたが、他の実施形態においては、カウント条件を満たすブロックが優先して選択されてもよい。また、イベント条件を満たすブロックとカウント条件を満たすブロックとの両方が存在する場合には、さらに他の条件（例えば、ゲームの進行状況に関する条件）を考慮していずれを選択するかを決定するようにしてもよい。
【００５４】
図８の説明に戻り、ステップＳ２の次のステップＳ３において、ステップＳ２で選択されたブロックは仮想ブロックか否かが判定される。この判定は、エリア構築データを参照することによって、ステップＳ２で選択されたブロックに関連付けられているゲームエリア部品がＮＵＬＬであるか否かによって行われる。すなわち、当該ゲームエリア部品がＮＵＬＬでない場合、ステップＳ２で選択されたブロックは仮想ブロックでないと判定され、ステップＳ４の処理が行われる。一方、当該ゲームエリア部品がＮＵＬＬである場合、ステップＳ２で選択されたブロックは仮想ブロックであると判定され、ステップＳ４の処理がスキップされてステップＳ５の処理が行われる。
【００５５】
ステップＳ４においては、エリア構築処理が行われる。エリア構築処理は、ステップＳ２で選択されたブロックに関連付けられているゲームエリア部品を用いて新たなゲームエリアを構築する処理である。
【００５６】
図１０は、図８に示すステップＳ４のエリア構築処理の詳細を示すフローチャートである。エリア構築処理では、まずステップＳ２１において、変数ＡＮが初期化される。変数ＡＮは、次に表示されるべきゲームエリア部品の部品番号を示す変数である。具体的には、ステップＳ２１においては、変数ＡＮの値は、ステップＳ２で選択されたブロックに含まれる最初のゲームエリア部品を示す部品番号の値に設定される。図４を例にとって説明すると、“コンテナ：２”の“ブロック：２”がステップＳ２で選択された場合、当該ブロックに含まれる最初のゲームエリア部品の部品番号、すなわち“８”が変数ＡＮの値として設定される。ステップＳ２１において設定すべき部品番号の値は、エリア構築データを参照することによって知ることができる。
【００５７】
ステップＳ２２においては、変数ＡＮで示されるゲームエリア部品を構成するための背景データが読み込まれる。この背景データは、エリアテーブルを参照することによって特定することができる。続くステップＳ２３においては、変数ＡＮで示されるゲームエリア部品を構成するためのオブジェクトファイルが選択されて読み込まれる。このオブジェクトファイルは、エリアテーブルを参照することによって特定することができる。図７を例にとって説明すると、部品番号“１”のゲームエリア部品には、オブジェクトファイル１とオブジェクトファイル２の２つのオブジェクトファイルが設定されているので、いずれかのオブジェクトファイルがランダムに選択されて読み込まれる。続くステップＳ２４においては、ステップＳ２２で読み込まれた背景データとステップＳ２３で読み込まれたオブジェクトファイルとに基づいてゲームエリア部品が生成される。すなわち、当該オブジェクトファイルに示される設定データに基づいて、当該背景データに当該オブジェクトを重ねてゲームエリア部品の画像データを生成する。
【００５８】
なお、オブジェクトファイルに設定されているオブジェクトに対して当該オブジェクトを出現させる条件（出現条件）をオブジェクト毎に関連付けておくようにしてもよい。そして、上記ステップＳ２４においては、出現条件を満たすオブジェクトデータのみをオブジェクトファイルから読み出して配置するようにしてもよい。ここで、出現条件は、例えば、ゲーム進行やゲームレベル等に関する条件である。これによって、ゲームエリアに出現するオブジェクトをゲーム進行やゲームレベル等に応じて変化させることができる。また、出現条件は、上記パラメータ命令によって設定されるパラメータに関する条件であってもよい。これによって、ゲームエリアに出現するオブジェクトを、それまでに構築されたゲームエリアの内容に応じて変化させることができる。
【００５９】
ステップＳ２５においては、前回のエリア構築処理で構築されたゲームエリアに接続するように、ステップＳ２４で生成されたゲームエリア部品が第１のＬＣＤ１１および第２のＬＣＤ１２に表示される。すなわち、ゲームエリア部品の上半分が第１のＬＣＤ１１に表示され、ゲームエリア部品の下半分が第２のＬＣＤ１２に表示される。具体的には、ゲームエリア部品のエリアサイズは、縦５１２ｄｏｔ×横５１２ｄｏｔであり、第１のＬＣＤ１１および第２のＬＣＤ１２の表示サイズは、それぞれ縦１９２ｄｏｔ×横２５６ｄｏｔである。また、第１のＬＣＤ１１と第２のＬＣＤ１２の間には、縦方向に３２ｄｏｔ分の間隔が空けられている。従って、ゲームエリア部品の上から数えて縦方向に９７ｄｏｔ目から２８８ｄｏｔ目までのエリアが第１のＬＣＤ１１に表示され、ゲームエリア部品の上から数えて縦方向に３２１ｄｏｔ目から５１２ｄｏｔ目までのエリアが第２のＬＣＤ１２に表示される。なお、ゲームエリア部品の上から数えて縦方向に１ｄｏｔ目から９６ｄｏｔ目までのエリアは、表示範囲外となるので表示されない。同様に、ゲームエリア部品の上から数えて縦方向に２８９ｄｏｔ目から３２０ｄｏｔ目までのエリアは、第１のＬＣＤ１１と第２のＬＣＤ１２の間に位置するため、表示範囲外となり表示されない。なお、この実施例では、ゲームエリア部品は右方向に順に接続されるので、画面は右方向にスクロール（背景は左方向に移動）していく。これによって、ゲームエリア部品の横方向については、スクロールによって順次表示されていく。このとき、ゲームエリアの表示処理としては、前回のエリア構築処理で構築されたゲームエリアからステップＳ２４で生成されたゲームエリア部品へ画面を次第にスクロールさせてもよいし、前回のエリア構築処理で構築されたゲームエリアからステップＳ２４で生成されたゲームエリア部品へ画面を一度に切り替えるようにしてもよい。なお、最初のエリア構築処理においては、すでに構築されているゲームエリアがないので、ステップＳ２４で生成されたゲームエリア部品が単に画面に表示される。
【００６０】
ステップＳ２６においては、ゲームの進行処理が行われる。具体的には、プレイヤによる操作に従ってプレイヤキャラクタを移動させる処理や、敵キャラクタのオブジェクトを移動させる処理や、得点を計算する処理等が行われる。さらに、予め定められた所定の条件を満たした場合には当該条件に対応するフラグやカウンタの値を変更する処理が行われる。フラグは、例えば、プレイヤキャラクタが鍵等のアイテムを取得したときや、プレイヤキャラクタが特定の敵キャラクタを倒したときに立ち上げられる。さらに、当該フラグが立っていることを選択条件とするブロックを設定しておくことによって、プレイヤキャラクタがアイテムを取得しなければ進めないゲームエリアや、特定の敵キャラクタを倒さなければ進めないゲームエリアを設定することができる。
【００６１】
なお、ステップＳ２６の処理は、次にゲームエリアを構築すべきタイミングになるまで続けられ、当該タイミングが到来したときにステップＳ２７以降の処理が行われる。例えば、プレイヤキャラクタの移動に応じて画面をスクロールさせる場合には、その時点で構築されているゲームエリアの後端からプレイヤキャラクタまでの距離が所定距離以下になったことに応じてステップＳ２７の処理を行う。また、例えば、一定の速度で画面をスクロールさせる場合には、次のゲームエリアを表示すべき所定の時間間隔でステップＳ２７の処理を行う。
【００６２】
ステップＳ２７においては、ステップＳ２で選択したブロックに含まれているゲームエリア部品のうちで次に表示すべきゲームエリア部品が存在するか否かが判定される。すなわち、エリア構築データを参照して、変数ＡＮにより示されるゲームエリア部品が当該ブロックのうちで最後のゲームエリア部品であれば、次に表示すべきゲームエリア部品が存在しないと判断される。逆に、変数ＡＮにより示されるゲームエリア部品が当該ブロックのうちで最後のゲームエリア部品でなければ、次に表示すべきゲームエリア部品が存在すると判断される。
【００６３】
ステップＳ２７の判定において、次に表示すべきゲームエリア部品が存在すると判定される場合、ステップＳ２８の処理が行われる。すなわち、ステップＳ２８においては、エリア構築データを参照することによって、次に表示すべきゲームエリア部品の番号に変数ＡＮの値が変更される。ステップＳ２８の後、再びステップＳ２２〜Ｓ２７の処理が行われる。一方、次に表示すべきゲームエリア部品が存在しないと判定される場合、ＣＰＵコア２１はエリア構築処理を終了する。
【００６４】
以上のエリア構築処理によって、ステップＳ２で選択されたブロック内の各ゲームエリア部品は、すでに構築されているゲームエリアに連続して接続される。例えば、図４を例にとって説明すると、“コンテナ：２”の“ブロック：２”がステップＳ２で選択された場合、当該ブロックに含まれる３つのゲームエリア部品（部品番号が８〜１０のゲームエリア部品）が連続してゲームエリアに接続される。このように、本実施形態では、すでに構築されているゲームエリアに新たなゲームエリア部品が接続される際には、ブロックを単位としてゲームエリア部品が接続される。
【００６５】
図８の説明に戻り、ステップＳ５において、命令実行処理が行われる。命令実行処理は、ステップＳ２で選択されたブロックに関連付けられている実行命令を実行する処理である。
【００６６】
図１１は、図８に示すステップＳ５の命令実行処理の詳細を示すフローチャートである。命令実行処理では、まずステップＳ３１において、ステップＳ２で選択されたブロックに関連付けられている実行命令は上記ループ命令であるか否かが判定される。この判定は、エリア構築データを参照することによって行うことができる。ステップＳ３１の判定において、ブロックに関連付けられている実行命令がループ命令である場合、ステップＳ３２の処理が行われる。一方、ブロックに関連付けられている実行命令がループ命令でない場合、後述するステップＳ３５の処理が行われる。
【００６７】
ステップＳ３２においては、変数ＬＡの値が１増加（インクリメント）される。続くステップＳ３３において、変数ＬＡが指定ループ回数であるか否かが判定される。ここで、指定ループ回数とは、ループ命令において指定されているループの回数である。例えば、図４に示した“Ｌｏｏｐ  １”というループ命令のループ指定回数は“１”である。ステップＳ３３は、ループ条件を満たしたか否か、すなわち、ループ条件で指定されている回数分だけブロック内のゲームエリア部品を構築したか否かを判定するための処理である。ステップＳ３３の判定において、変数ＬＡが指定ループ回数未満である場合、図８に示すステップＳ４のエリア構築処理が再度行われる。一方、変数ＬＡが指定ループ回数である場合、ステップＳ３４の処理が行われる。
【００６８】
ステップＳ３４においては、変数ＣＮの値が１増加（インクリメント）される。これによって、エリア構築データにおける順番に関して現在指定されているコンテナの次のコンテナが新たに指定されたこととなる。ステップＳ３４の後、後述するステップＳ４２の処理が行われる。
【００６９】
一方、ステップＳ３５においては、ステップＳ２で選択されたブロックに関連付けられている実行命令は上記ジャンプ命令であるか否かが判定される。この判定は、エリア構築データを参照することによって行うことができる。ステップＳ３５の判定において、ブロックに関連付けられている実行命令がジャンプ命令である場合、ステップＳ３６の処理が行われる。一方、ブロックに関連付けられている実行命令がジャンプ命令でない場合、ステップＳ３７の処理が行われる。
【００７０】
ステップＳ３６においては、ジャンプ命令に従って変数ＣＮの値が変更される。具体的には、ＣＰＵコア２１は、ジャンプ命令において指定されているコンテナ番号の値に変数ＣＮの値を変更する。これによって、エリア構築データにおけるコンテナの順番とは無関係に、ジャンプ命令において指定されているコンテナ番号のコンテナが新たに指定されたこととなる。ステップＳ３６の後、後述するステップＳ４２の処理が行われる。
【００７１】
一方、ステップＳ３７においては、ステップＳ２で選択されたブロックに関連付けられている実行命令は上記イベント命令であるか否かが判定される。この判定は、エリア構築データを参照することによって行うことができる。ステップＳ３７の判定において、ブロックに関連付けられている実行命令がイベント命令である場合、ステップＳ３８の処理が行われる。一方、ブロックに関連付けられている実行命令がイベント命令でない場合、ステップＳ３９の処理が行われる。
【００７２】
ステップＳ３８においては、イベント命令に従ってフラグが設定される。具体的には、ＣＰＵコア２１は、イベント命令において指定されたフラグを立たせる（変化させる）。ステップＳ３８の後、後述するステップＳ４１の処理が行われる。
【００７３】
一方、ステップＳ３９においては、ステップＳ２で選択されたブロックに関連付けられている実行命令は上記カウント命令であるか否かが判定される。この判定は、エリア構築データを参照することによって行うことができる。ステップＳ３９の判定において、ブロックに関連付けられている実行命令がカウント命令である場合、ステップＳ４０の処理が行われる。一方、ブロックに関連付けられている実行命令がカウント命令でない場合、後述するステップＳ４２の処理が行われる。
【００７４】
ステップＳ４０においては、カウント命令に従ってカウンタの値が加算される。具体的には、ＣＰＵコア２１は、カウント命令において指定された値を現在のカウンタの値に加算する。なお、カウント命令において指定される値は、プラスの値だけでなく、マイナスの値であってもよい。ステップＳ４０の後、ステップＳ４１の処理が行われる。
【００７５】
ステップＳ４１においては、変数ＣＮの値が１増加（インクリメント）される。ステップＳ４１の処理は、ステップＳ３４の処理と同じである。ステップＳ４１の後、ステップＳ４２の処理が行われる。
【００７６】
ステップＳ４２においては、変数ＬＡが０に設定される。ステップＳ４１までの処理によって、ステップＳ２で選択されたブロックに関する処理は終了している。そこで、ステップＳ４２において変数ＬＡの値を初期値に戻しているのである。ステップＳ４２の後、ＣＰＵコア２１は命令実行処理を終了する。
【００７７】
再び図８の説明に戻り、ステップＳ５の次のステップＳ６において、変数ＣＮで示されるコンテナがエリア構築データ内に存在するか否かが判定される。ここで、変数ＣＮで示されるコンテナがエリア構築データ内に存在しない場合とは、エリア構築データにおける最後のコンテナ（コンテナ番号が最大のコンテナ）についてすでにゲームエリアが構築されている場合である。ステップＳ６の判定において、変数ＣＮで示されるコンテナがエリア構築データ内に存在する場合、ステップＳ２〜Ｓ６の処理が再度行われる。以降、変数ＣＮで示されるコンテナがエリア構築データ内に存在しなくなるまで、ステップＳ２〜Ｓ６の処理が繰り返される。
【００７８】
一方、ステップＳ６の判定において、変数ＣＮで示されるコンテナがエリア構築データ内に存在しない場合、ステップＳ７の処理が行われる。すなわち、ステップＳ７においては、ゴール処理が行われる。具体的には、ステップＳ２６のゲーム進行処理と同様、プレイヤキャラクタの移動等の処理が行われる。この処理は、プレイヤキャラクタがゲームエリアの最後に到達するまで（ゴールするまで）行われる。ステップＳ７の処理の後、ＣＰＵコア２１はゲーム処理を終了する。
【００７９】
なお、図４に示すエリア構築データを用いて上記ゲーム処理を行った場合、ゲームエリアは以下に示すように構築される。すなわち、まず、“コンテナ：０”が指定され（ステップＳ１）、“ブロック：１”が選択される（ステップＳ２）。なお、“ブロック：１”に関連付けられる選択条件は“ｒａｎｄｏｍ  １００”であるので、必ず“ブロック：１”が選択される。次に、“コンテナ：１”が指定される（ステップＳ３４）。“コンテナ：１”には３つのブロックが含まれており、各ブロックにはランダム条件が関連付けられているので、３つのブロックから１つがランダムに選択される（ステップＳ１４）。このとき、“ブロック：２”が選択された場合、“ブロック：２”には“Ｅｖｅｎｔ＿ｕｐ  １”という実行命令が関連付けられているので、フラグ１が立てられる（ステップＳ３８）。同様に、“ブロック：３”が選択された場合、フラグ２が立てられる（ステップＳ３８）。
【００８０】
ここで、“コンテナ：１”において“ブロック：２”が選択された場合、それまでに構築されるゲームエリアは、部品番号が“１”のゲームエリア部品と“３”のゲームエリア部品という２つのゲームエリア部品で構成される。一方、“コンテナ：１”において“ブロック：３”が選択された場合、それまでに構築されるゲームエリアは、部品番号が“１”のゲームエリア部品と“４”のゲームエリア部品と“５”のゲームエリア部品という３つのゲームエリア部品で構成される。このように、本実施形態では、１以上のゲームエリア部品を１つのブロックとして定義することによって、選択されるブロックに応じて異なる長さのゲームエリアを構築することができる。
【００８１】
また、“コンテナ：１”において“ブロック：１”が選択された場合、“ブロック：１”には“Ｌｏｏｐ  ２”という実行命令が関連付けられているので、部品番号が“２”のゲームエリア部品が２回接続されることになる。従って、“コンテナ：１”において“ブロック：１”が選択された場合、それまでに構築されるゲームエリアは、部品番号が“１”のゲームエリア部品と“２”のゲームエリア部品と“２”のゲームエリア部品という３つのゲームエリア部品で構成される。このように、本実施形態では、選択されるブロックに関連付けられている実行命令によって、異なる長さのゲームエリアを構築することができる。
【００８２】
また、図４に示す“コンテナ：１”において“ブロック：２”が選択された場合、その後の“コンテナ：３”においては、“ブロック：１”が選択される。“ブロック：１”には、“Ｅｖｅｎｔ＿ｏｒ  １”というパラメータ条件の選択条件が関連付けられているからである。同様に、“コンテナ：１”において“ブロック：３”が選択された場合、その後の“コンテナ：３”においては、“ブロック：２”が選択される。このように、本実施形態においては、ブロック毎に関連付けられる選択条件および実行命令を用いることによって、それまでに構築されたゲームエリアの内容を、次に構築すべきゲームエリアの内容に反映させることができる。
【００８３】
なお、図４に示す“コンテナ：３”における“ブロック：３”は、仮想ブロックである。したがって、“ブロック：３”が選択された場合、ゲームエリアには何も接続されず、次のコンテナが指定されることになる。つまり、“コンテナ：３”においては、（１）部品番号が１４および１５のゲームエリア部品が接続される、（２）部品番号が１６のゲームエリア部品が接続される、または、（３）何も接続されない、という、３つのパターンが考えられる。このように、仮想ブロックを設定することによって、「何も接続されない」状態をエリア構築データにおいて容易に表現することができる。例えば、「ある条件を満たしている場合にのみ、ボーナスエリアが構築される」ことをゲーム製作者が意図してエリア構築データを作成する場合、仮想ブロックを用いれば容易にエリア構築データを作成することができる。すなわち、ボーナスエリアのゲームエリア部品を含むブロックと仮想ブロックとを１つのコンテナとして定義し、当該ブロックにパラメータ条件を関連付ければよい。
【００８４】
また、本実施形態によれば、１以上のゲームエリア部品を１つのブロックとして定義し、ブロックを単位としてゲームエリアの構築が行われる。これによって、ゲーム製作者は、ゲームエリア部品を単位としてではなくブロックを単位として、エリア構築データを作成することができる。例えば、ゲーム製作者がエリア構築データを作成する際には、図１２に示すように、複数（図１２では３つ）のゲームエリア部品５１〜５３をひとまとまりにして用いることを望む場合がある。このような場合、それら複数のゲームエリア部品５１〜５３をブロックとして定義することによって、ひとまとまりのゲームエリア部品として用いることができる。また、あるブロックにおいてひとまとまりのゲームエリア部品として用いられた各ゲームエリア部品５１〜５３を、他のコンテナにおいては個別に用いることもできる。したがって、本実施形態によれば、１以上のゲームエリア部品を１つのブロックとして定義することによって、ゲーム制作者がエリア構築データを作成する際におけるゲームエリア部品の管理および取り扱いが容易になる。さらに、ひとまとまりにして用いることを望むゲームエリア部品を効率よくブロックとして定義すれば、ブロックという概念を用いない場合と比べて、エリア構築データのデータ量を削減することが可能である。
【００８５】
なお、選択条件および実行命令は、上記に限らず種々の条件が考えられる。例えば、選択条件は、複数のフラグを指定し、指定される全てのフラグが立っていればそのブロックを選択することを示すものや、指定されるフラグの少なくとも１つが立っていればそのブロックを選択することを示すものであってもよい。また、実行命令は、既に立っているフラグを下げる命令を示すものや、カウンタの値を減算する命令を示すものであってもよい。また、実行命令は、ゲームエリアの構築を終了する命令を示すものであってもよい。すなわち、この命令が関連付けられたブロックがゴールとなる。また、実行命令は、複数の命令を複合したものであってもよい。例えば、ループ命令とジャンプ命令を複合して「そのブロックを３回ループすれば次にコンテナ３を指定する」といった命令が考えられる。さらに、１つのブロックにつき複数の実行命令が関連付けられるようにしてもよい。
【００８６】
なお、上記実施形態においては、ゲームプログラムには、エリア構築データが１つのみ含まれていたが、複数のエリア構築データが含まれていてもよい。このとき、１つのエリア構築データが、１つのステージに相当する。典型的には、あるエリア構築データによって構築されるゲームエリアをクリアすれば、他のエリア構築データによって構築されるゲームエリアに進むことができるようにする。また、複数のエリア構築データが含まれている場合には、上記ジャンプ命令は、他のエリア構築データに含まれているコンテナを指定するものであってもよい。これによって、異なるエリア構築データ同士を接続することも可能である。
【産業上の利用可能性】
【００８７】
本発明は、構築されるゲームエリアの長さにバリエーションを持たせてゲームエリアを構築すること等を目的としたゲームプログラムまたはゲーム装置に利用することが可能である。
【図面の簡単な説明】
【００８８】
【図１】本発明の一実施形態に係るゲーム装置の外観図
【図２】ゲーム装置の内部構成図
【図３】メモリカード１７のＲＯＭ１７１に記憶されているゲームプログラムのデータ構成を示す図
【図４】エリア構築データ４２の一例を示す概念図
【図５】エリア構築データ４２の一例を示す図
【図６】背景データの例を示す図
【図７】エリアテーブルの一例を示す図
【図８】ゲーム装置１０において実行されるゲーム処理の流れを示すメインフローチャート
【図９】図８に示すステップＳ２のブロック選択処理の詳細を示すフローチャート
【図１０】図８に示すステップＳ４のエリア構築処理の詳細を示すフローチャート
【図１１】図８に示すステップＳ５の命令実行処理の詳細を示すフローチャート
【図１２】エリア部品データを接続した例を示す図
【符号の説明】
【００８９】
１０  ゲーム装置
１１，１２  ＬＣＤ
２１  ＣＰＵコア
２４  ＲＡＭ
４２  エリア構築データ
４３  背景データ
４４  オブジェクトファイル
４５  エリアテーブル
【図１】
2006204402.tif 000003
【図２】
2006204402.tif 000004
【図３】
2006204402.tif 000005
【図４】
2006204402.tif 000006
【図５】
2006204402.tif 000007
【図６】
2006204402.tif 000008
【図７】
2006204402.tif 000009
【図８】
2006204402.tif 000010
【図９】
2006204402.tif 000011
【図１０】
2006204402.tif 000012
【図１１】
2006204402.tif 000013
【図１２】
2006204402.tif 000014