説明

ゲームプログラムおよびゲーム装置

【課題】 構築されるゲームエリアの長さにバリエーションを持たせてゲームエリアを構築する。
【解決手段】 ゲーム装置は、ゲームエリア部品と、エリア構築データとを含んでいる。ゲームエリア部品は、複数含まれており、それぞれ同じサイズである。エリア構築データは、1以上のゲームエリア部品をブロックとして定義する。また、エリア構築データは、それぞれ1以上のブロックを含む複数のコンテナを示す。ゲーム装置は、エリア構築データにより示されるコンテナを所定の順番に指定する。また、指定手段によって指定されたコンテナに含まれる1以上のブロックから1つを選択する。さらに、選択手段によって選択されたブロックによって定義されるゲームエリア部品を、指定手段によって指定されたコンテナの順にブロック単位で所定方向に接続することによってゲームエリアを構築する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームプログラムおよびゲーム装置に関し、より特定的には、ゲームエリアを構築するための部品を複数接続することによってゲームエリアを構築するゲームプログラムおよびゲーム装置に関する。
【背景技術】
【0002】
従来、ゲームエリアを構築するための部品を複数接続することによってゲームエリアを構築する技術として、特許文献1に記載の遊戯装置がある。この遊戯装置は、ドライブゲームにおいて、予め用意された複数のコース部品データを一定の制限または法則の下にランダムに選択して接続することによってドライブコース(ゲームエリア)を作成するものである。具体的には、各コース部品と他のコース部品とが接続可能であるか否か、および、接続可能である場合には当該他のコースが接続される確率を示すテーブルが用意される(特許文献1の図9参照)。上記遊戯装置は、このテーブルを参照しながらコース部品をランダムに接続していくことによって、ランダムに変化するドライブコースを構築することができるものである。
【特許文献1】特開平9−131465号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ここで、所定方向に画面がスクロールしていくゲームのように、ゲームエリアの部品を所定方向に接続していくことによってゲームエリアが構築されていくゲームを考える。このようなゲームにおいては、ゲーム処理における取り扱いやすさやメモリの制限等の理由から、予め用意される複数の部品は、一定のサイズで作成されることが好ましい。
【0004】
一方、上記特許文献1においては、次に接続すべきコース部品を選択する際、1つのコース部品が選択される。つまり、特許文献1に記載のゲームエリア構築方法では、途中でどのようなコース部品が選択されたとしても、選択されたコース部品の数は同じである。したがって、ゲームエリアの部品のサイズを一定としたゲームについて、特許文献1に記載のゲームエリア構築方法を用いたとすれば、最終的に構築されるゲームエリアの長さは常に一定になってしまう。それ故、従来のゲームエリア構築方法では、ゲームエリアの長さにバリエーションを持たすことができず、ゲームエリアの長さという意味では、作成されたゲームエリアが単調になっていた。
【0005】
それ故、本発明の目的は、構築されるゲームエリアの長さにバリエーションを持たせてゲームエリアを構築することができるゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【0006】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、この欄における括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述の実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
第1の発明は、ゲームエリアを構築する処理をゲーム装置(10)のコンピュータ(CPUコア21)に実行させるためのゲームプログラムである。ゲームプログラムには、ゲームエリア部品(背景データ43、オブジェクトファイル44、およびエリアテーブル45)と、エリア構築データ(42)とが含まれている。ゲームエリア部品は、複数含まれており、それぞれ同じサイズ(例えば、512×512dot)である。エリア構築データは、1以上のゲームエリア部品をブロックとして定義する。また、エリア構築データは、それぞれ1以上のブロックを含む複数のコンテナを示す(図4参照)。ゲームプログラムは、指定手段(ステップS1,S34,S36またはS41を実行するCPUコア21等。以下、単にステップ番号のみを示す。)と、選択手段(S2)と、構築手段(S4)としてコンピュータを機能させる。指定手段は、エリア構築データにより示されるコンテナを所定の順番に指定する。選択手段は、指定手段によって指定されたコンテナに含まれる1以上のブロックから1つを選択する。構築手段は、選択手段によって選択されたブロックによって定義されるゲームエリア部品を、指定手段によって指定されたコンテナの順にブロック単位で所定方向(右方向)に接続することによってゲームエリアを構築する。
【0007】
また、第2の発明においては、エリア構築データには、そのブロックが選択されるための選択条件が各ブロックに対して関連付けられていてもよい。このとき、選択手段は、指定手段によって指定されたコンテナに含まれる1以上のブロックのうちで選択条件が満たされているブロックを選択する。
【0008】
また、第3の発明においては、選択条件は、所定のパラメータ(フラグまたはカウンタ)の値に関する条件(パラメータ条件)であってもよい。このとき、エリア構築データにおいて定義されるブロックには、所定のパラメータの値を変化させる第1命令(パラメータ命令)が関連付けられる。また、ゲームプログラムは、命令実行手段としてコンピュータをさらに機能させる。命令実行手段は、選択手段によってブロックが選択されたとき、当該選択されたブロックに関連付けられている第1命令を実行する。
【0009】
また、第4の発明においては、エリア構築データは、コンテナの接続順をさらに示すものであってもよい。このとき、指定手段は、エリア構築データにより示される接続順にコンテナを指定する。
【0010】
また、第5の発明は、エリア構築データにおいて定義されるブロックには、1つのコンテナを指定する第2命令(ジャンプ命令)が関連付けられていてもよい。このとき、指定手段は、前回指定したコンテナに含まれる1以上のブロックから選択手段が選択したブロックに関連付けられている第2命令に従って次に指定するコンテナを決定する。
【0011】
また、第6の発明においては、エリア構築データにより示されるコンテナは、1以上のゲームエリア部品によって定義されるブロックと0個のゲームエリア部品によって定義される仮想ブロックとを含んでいてもよい。
【0012】
また、第7の発明においては、ゲームプログラムは、背景データ(43)と、オブジェクトファイル(44)と、エリアテーブル(45)とを含んでいてもよい。背景データは、一定のサイズの背景を示すデータである。オブジェクトファイルは、背景の上に配置すべきオブジェクトを示すデータである。エリアテーブルは、各ゲームエリア部品に対して、ゲームエリア部品を構成するための背景データおよびオブジェクトファイルを関連付けたテーブルである。また、構築手段は、生成手段(S24)と、表示制御手段(S25)とを含んでいる。生成手段は、選択手段によって選択されたブロックによって定義されるゲームエリア部品に関連付けられている背景データおよびオブジェクトファイルからゲームエリアの画像を生成する。表示制御手段は、生成手段によって生成されたゲームエリアの画像をゲーム装置の表示装置(第1のLCD11、および第2のLCD12)に表示させる。
【0013】
また、第8の発明は、ゲームエリアを構築する処理を行うゲーム装置である。ゲーム装置は、データ格納手段(RAM24)と、指定手段(ステップS1,S34,S36またはS41)と、選択手段(S2)と、構築手段(S4)とを備えている。データ格納手段は、それぞれ同じサイズである複数のゲームエリア部品(背景データ43、オブジェクトファイル44、およびエリアテーブル45)と、エリア構築データ(42)とを格納する。エリア構築データは、1以上のゲームエリア部品をブロックとして定義し、それぞれ1以上のブロックを含む複数のコンテナを示す(図4参照)。指定手段は、エリア構築データにより示されるコンテナを所定の順番に指定する。選択手段は、指定手段によって指定されたコンテナに含まれる1以上のブロックから1つを選択する。構築手段は、選択手段によって選択されたブロックによって定義されるゲームエリア部品を、指定手段によって指定されたコンテナの順にブロック単位で所定方向(右方向)に接続することによってゲームエリアを構築する。
【発明の効果】
【0014】
第1および第8の発明によれば、1以上のゲームエリア部品が1つのブロックとして定義されるので、複数のゲームエリア部品を1つのブロックとして定義し、1つのブロックとして取り扱うことが可能である。また、ゲームエリアが構築される際には、コンテナの中に含まれる複数のブロックから1つが選択される。したがって、各ブロックについてそれぞれ異なる数のゲームエリア部品を含めて定義することによって、異なる長さのゲームエリア部品をそれぞれ含む複数のブロックから1つを選択してゲームエリアを構築することができる。それ故、第1の発明によれば、選択されるブロックに応じてゲームエリアの長さが変化させることができるので、ゲームエリアの長さにバリエーションを持たせてゲームエリアを構築することができる。
【0015】
第2の発明によれば、所望の内容の選択条件を設定することによって、ゲーム製作者は、ブロックの選択について自己の意図を反映することができる。また、ゲーム製作者は、ひとまとまりとして扱いたいゲームエリア部品群を1つのブロックとして定義することができ、当該ブロックに関連付けて選択条件を設定することができる。したがって、ゲーム製作者にとってゲームエリア部品の管理が非常に容易なエリア構築データを作成することができる。
【0016】
第3の発明によれば、指定されたコンテナにおけるブロックの選択内容を、その後に指定されるコンテナにおけるブロックの選択に反映させることができる。つまり、それまでに構築されたゲームエリアの内容を、その後のゲームエリアの構築に反映させることができる。
【0017】
第4の発明によれば、コンテナの接続順が予め定められているので、その接続順に基づいて次に指定すべきコンテナを容易に決定することができる。
【0018】
第5の発明によれば、次に指定すべきコンテナを所定の順番にコンテナ単位ではなく、ブロック単位で次に指定すべきコンテナを指定することができる。このようにブロック単位で次に指定すべきコンテナを指定することにより、ゲームの進行(選択されるブロック)に応じて、次に指定されるコンテナを変化させることができる。
【0019】
第6の発明によれば、ゲームエリアを構築する際に、あるゲームエリア部品を接続するか、または、ゲームエリアを何も接続しないかという選択を、仮想ブロックを用いることによって容易に表現することができる。
【0020】
第7の発明によれば、背景とオブジェクトとを別個のデータとして格納し、背景データとオブジェクトファイルとを組み合わせてゲームエリア部品を作成することによって、ゲームエリア部品のバリエーションを増やすことができる。
【発明を実施するための最良の形態】
【0021】
以下、本発明の一実施形態に係るゲーム装置の構成および動作を説明する。
【0022】
図1は、本発明の一実施形態に係るゲーム装置の外観図である。図1において、ゲーム装置10は、第1のLCD(Liquid Crystal Display:液晶表示装置)11および第2のLCD12を含む。ハウジング13は上側ハウジング13aと下側ハウジング13bとによって構成されており、第1のLCD11は上側ハウジング13aに収納され、第2のLCD12は下側ハウジング13bに収納される。第1のLCD11および第2のLCD12の解像度はいずれも256dot×192dotである。なお、第1の実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用することができる。また任意の解像度のものを利用することができる。
【0023】
上側ハウジング13aには、後述する1対のスピーカ(図2の30)からの音を外部に放出するための音抜き孔18aおよび18bが形成されている。
【0024】
下側ハウジング13bには、入力装置として、十字スイッチ14a、スタートスイッチ14b、セレクトスイッチ14c、Aボタン14d、Bボタン14e、Xボタン14f、Yボタン14g、Lボタン14LおよびRボタン14Rが設けられている。また、さらなる入力装置として、第2のLCD12の画面上にタッチパネル15(図1に示す2点鎖線)が装着されている。また、下側ハウジング13bには、電源スイッチ19や、メモリカード17やスティック16を収納するための挿入口(図1に示す一点鎖線)も設けられている。
【0025】
タッチパネル15としては、例えば抵抗膜方式や光学式(赤外線方式)や静電容量結合式など、任意の方式のものを利用することができる。タッチパネル15は、その表面をスティック16で触れると、その接触位置に対応する座標データを出力する機能を有している。なお、以下ではプレイヤがタッチパネル15をスティック16で操作するものとして説明を行うが、スティック16の代わりにペン(スタイラスペン)や指でタッチパネル15を操作することももちろん可能である。第1の実施形態では、タッチパネル15として、第2のLCD12の解像度と同じく256dot×192dotの解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル15の解像度と第2のLCD12の解像度が一致している必要はない。
【0026】
メモリカード17はゲームプログラムを記録した記録媒体であり、下部ハウジング13bに設けられた挿入口に着脱自在に装着される。
【0027】
次に、図2を参照してゲーム装置10の内部構成を説明する。図2において、ハウジング13に収納される電子回路基板20には、CPUコア21が実装される。CPUコア21には、バス22を介して、コネクタ23が接続されるとともに、入出力インターフェース回路(図面ではI/F回路と記す)25、第1GPU(Graphics Processing Unit)26、第2GPU27、RAM24およびLCDコントローラ31が接続される。コネクタ23には、メモリカード17が着脱自在に接続される。メモリカード17は、ゲームプログラムを記憶するROM171と、バックアップデータを書き換え可能に記憶するRAM172を搭載する。メモリカード17のROM171に記憶されたゲームプログラムはRAM24にロードされ、RAM24にロードされたゲームプログラムがCPUコア21によって実行される。RAM24には、ゲームプログラムの他にも、CPUコア21がゲームプログラムを実行して得られる一時的なデータや、ゲーム画像を生成するためのデータが記憶される。I/F回路25には、タッチパネル15と、スピーカ30と、図1の十字スイッチ14aやAボタン14d等からなる操作スイッチ部14とが接続される。スピーカ30は、音抜き孔18aおよび18bの内側に配置される。
【0028】
第1GPU26には、第1VRAM(Video RAM)28が接続され、第2GPU27には、第2VRAM29が接続される。第1GPU26は、CPUコア21からの指示に応じて、RAM24に記憶されているゲーム画像を生成するためのデータに基づいて第1のゲーム画像を生成し、第1VRAM28に描画する。第2GPU27は、同様にCPUコア21からの指示に応じて第2のゲーム画像を生成し、第2VRAM29に描画する。第1VRAM28および第2VRAM29はLCDコントローラ31に接続されている。
【0029】
LCDコントローラ31はレジスタ32を含む。レジスタ32はCPUコア21からの指示に応じて0または1の値を記憶する。LCDコントローラ31は、レジスタ32の値が0の場合は、第1VRAM28に描画された第1のゲーム画像を第1のLCD11に出力し、第2VRAM29に描画された第2のゲーム画像を第2のLCD12に出力する。また、レジスタ32の値が1の場合は、第1VRAM28に描画された第1のゲーム画像を第2のLCD12に出力し、第2VRAM29に描画された第2のゲーム画像を第1のLCD11に出力する。
【0030】
なお、上記のようなゲーム装置10の構成は単なる一例に過ぎず、本発明は、少なくとも1つの表示装置を有する任意のコンピュータシステムに適用することができる。また、本発明のゲームプログラムは、メモリカード17などの外部記憶媒体を通じてコンピュータシステムに供給されるだけでなく、有線または無線の通信回線を通じてコンピュータシステムに供給されてもよいし、さらにはコンピュータシステム内部の不揮発性記憶装置に予め記録されていてもよい。
【0031】
以下、ゲーム装置10においてゲームプログラムを実行することによって行われるゲームの詳細について説明する。本ゲームは、プレイヤによって操作されるプレイヤキャラクタやオブジェクト(敵キャラクタやアイテム)がゲームエリアに登場するゲームである。プレイヤは、プレイヤキャラクタを操作して敵キャラクタを倒したりアイテムを取得したりしながら、ゲームエリアの最後(ゴール)を目指して遊ぶ。ここで、ゲームエリアは、予め用意された所定のサイズのゲームエリア部品(図6に示す背景データにオブジェクトデータを重ねたもの)を所定方向に順に接続することによって構築される。ここでは、ゲームエリア部品が右方向に順に接続されて、横長のゲームエリアが構築されるものとするが、ゲームエリア部品が接続される方向は予め定められた方向であればどの方向であってもよい。ゲームエリア部品は、複数種類が予め用意されている。画面に表示すべきゲームエリアの画像データを作成する際のデータ処理等における扱いやすさを考慮して、各ゲームエリア部品は全て同じサイズ(例えば、512×512dot)で作成される。
【0032】
まず、ゲーム装置10におけるゲーム処理において用いられるデータについて説明する。図3は、メモリカード17のROM171に記憶されているゲームプログラムのデータ構成を示す図である。ゲームプログラムには、ゲーム処理をCPUコア21に実行させるための各種プログラム41、および、当該ゲーム処理が実行される際に用いられる各種データ42〜46が含まれている。上述したように、ROM171に記憶されたゲームプログラムはゲーム装置10のRAM24に適宜ロードされ、ゲーム処理のために用いられる。
【0033】
ゲームプログラムには、エリア構築データ42、背景データ43、オブジェクトファイル44、エリアテーブル45、およびその他のデータ(プレイヤキャラクタの画像データ等)46が含まれている。まず、図4および図5を参照して、エリア構築データ42について説明する。
【0034】
図4は、エリア構築データ42の一例を示す概念図である。エリア構築データ42は、ゲームエリアを構築するために用いられ、ゲーム中においてゲーム装置は、エリア構築データ42に基づいてゲームエリアを構築していく。エリア構築データ42は、ゲーム中に構築されるゲームエリアがどのような構成になるかを決定する元になるデータであり、ゲーム中に構築されるゲームエリアの設計図と言える。ゲーム制作者は、ゲーム中に構築されるゲームエリアが所望の構成となるように(ゲーム制作者の意図を反映させたゲームエリアが構築されるように)、エリア構築データ42を予め作成する。
【0035】
エリア構築データ42においては、ゲームエリア部品、ブロック、コンテナという3つの概念が定義されている。図4において、その内側に数字のみが記載された正方形はゲームエリア部品を示し、その内側左上に“ブロック:N(Nは整数)”と記載された四角形はブロックを示し、その内側左上に「コンテナ:N(Nは整数)」と記載された四角形はコンテナを示している。したがって、図4においては、4個のコンテナ、11個のブロック(後述する仮想ブロックを含む)、および16個のゲームエリア部品が示されている。また、図4において、ゲームエリア部品を示す正方形の内側に記載された数字は、各ゲームエリア部品を識別するために付される部品番号を示す。ブロックを示す正方形の内側に記載された数字は、同じコンテナ内に含まれる各ブロックを識別するために付されるブロック番号を示す。コンテナを示す正方形の内側に記載された数字は、各コンテナを識別するために付されるコンテナ番号を示す。
【0036】
ゲームエリア部品は、上述したように、ゲームエリアを構築するために予め用意される部品であり、ゲームエリアを構築する処理において扱われる最小の単位である。ブロックは、1以上のゲームエリア部品として定義される。コンテナは、1以上のブロックとして定義される。また、コンテナは、コンテナ番号の順に接続されている。
【0037】
ゲームエリアを構築する際には、ゲーム装置は、(1)接続されている順にコンテナを指定し、(2)指定したコンテナ内に含まれているブロックから1つを選択する。そして、(3)選択されたブロック内に含まれているゲームエリア部品を、すでに構築されているゲームエリアの次に接続する。以上の(1)〜(3)の処理を繰り返すことによって、ゲームエリアが順次構築されていく。
【0038】
また、エリア構築データ42においては、各ブロックに対して選択条件および実行命令が関連付けられている。図4においては、ブロックを示す四角形の左下側に接続されている四角形が選択条件を示し、ブロックを示す四角形の右下側に接続されている四角形が実行命令を示す。
【0039】
選択条件は、それが関連付けられたブロックが選択されるための条件を示す。例えば、図4の“コンテナ:1”に含まれる“ブロック:1”には、“random 50”という選択条件が関連付けられている。この選択条件は、「50%の確率でランダムにブロックが選択される」ことを意味している。つまり、“コンテナ:1”が指定された場合、“ブロック:1”は、50%の確率でランダムに選択される。また、図4の“コンテナ:3”に含まれる“ブロック:1”には、“Event_or 1”という選択条件が関連付けられている。この選択条件は、「フラグ1が立っていればそのブロックが選択される」ことを意味している。つまり、“コンテナ:3”が指定された場合、“ブロック:1”は、その時点でフラグ1が立っていれば選択される。
【0040】
本実施形態では、選択条件として、パラメータ条件およびランダム条件という2種類の条件を用いる。ランダム条件とは、上記“random 50”のように、ブロックがランダムに選択される選択条件である。一方、パラメータ条件とは、指定されたパラメータ(フラグやカウンタを含む)の値に関する条件である。パラメータ条件は、例えば、上記“Event_or 1”のように、指定されたフラグの値に応じて条件が満たされるものである。また、予めカウンタが用意される場合、指定されたカウンタ値に応じて条件が満たされるものもパラメータ条件である。本実施形態においては、指定されたフラグの値に応じて条件が満たされるようなパラメータ条件を「イベント条件」と呼び、指定されたカウンタの値に応じて条件が満たされるようなパラメータ条件を「カウント条件」と呼ぶ。カウント条件としては「カウンタの値が指定された値であればそのブロックを選択する」といった条件が考えられる。
【0041】
実行命令は、それが関連付けられたブロックが選択されたときに実行される命令を示す。例えば、図4の“コンテナ:1”に含まれる“ブロック:1”には、“Loop 2”という実行命令が関連付けられている。この実行命令は、「そのブロックを2回接続する」ことを意味している。また、図4の“コンテナ:1”に含まれる“ブロック:2”には、“Event_up 1”という実行命令が関連付けられている。この実行命令は、「フラグ1を立てる」ことを意味している。
【0042】
本実施形態では、実行命令として、ループ命令、ジャンプ命令、パラメータ命令という3種類の命令を用いる。ループ命令とは、上記“Loop 2”のようにそのブロックを繰り返して接続する回数を設定する命令である。なお、ループ命令以外の実行命令が設定される場合は、接続回数は1回(Loop 1)と判断される。また、ジャンプ命令とは、例えば、“Jump 3(コンテナ3を次に指定することを示す命令)”のように、次に指定するコンテナを決定する命令である。また、パラメータ命令とは、上記“Event_up 1”のように、ゲーム処理において用いるパラメータ(フラグやカウンタを含む)の値を変化させる命令である。本実施形態においては、フラグの値を変化させるパラメータ命令を「イベント命令」と呼び、カウンタの値を変化させるパラメータ命令を「カウント命令」と呼ぶ。
【0043】
また、本実施形態においては、コンテナには、上記ブロックの他に仮想ブロックが含まれていてもよい。仮想ブロックは、ブロックと同様コンテナに含まれるものであるが、ゲームエリア部品を持たない。図4においては、“コンテナ:3”に含まれる“ブロック:3”が仮想ブロックである。ゲームエリアを構築する際においてこのブロックが選択された場合、実際にはゲームエリア部品が接続されない。なお、仮想ブロックについてもブロックと同様、選択条件および実行命令が関連付けられる。
【0044】
図5は、エリア構築データ42の一例を示す図である。なお、図4と図5とは同じ内容を示している。図5に示すように、エリア構築データ42は、コンテナ番号と、ブロック番号と、部品番号と、選択条件と、実行命令とを関連付けたテーブルとして表される。
【0045】
図3の説明に戻り、背景データ43は、ゲームエリアの背景となる画像のデータである。図6は、背景データの例を示す図である。図6では、背景データ43a〜43gという7種類の背景データを示している。背景データは、ゲームエリア部品のサイズを決めるものであるので、各背景データ43a〜43gのサイズは一定である。また、オブジェクトファイル44は、ゲームエリアに配置されるオブジェクト(敵キャラクタやアイテム等)の設定データ(例えば、オブジェクトの数、配置位置および画像を示すデータ等)である。このオブジェクトファイルのデータは、オブジェクトファイル毎にそれぞれ異なる。なお、オブジェクトの画像を示すデータはオブジェクトファイルとは別の領域(例えば、ROM171のその他のデータ46)に記憶するようにしてもよい。
【0046】
エリアテーブル45は、背景データ43およびオブジェクトファイル44からゲームエリア部品を作成するために用いられるテーブルである。図7は、エリアテーブルの一例を示す図である。図7に示すように、エリアテーブルは、部品番号と、背景データと、オブジェクトファイルの個数と、オブジェクトファイルとを関連付けたテーブルである。部品番号は、エリア構築データにおいて定義されているゲームエリア部品の部品番号である。図7に示すエリアテーブルは、例えば、部品番号が1であるゲームエリア部品は、「背景1」という背景データと、「オブジェクトファイル1」または「オブジェクトファイル2」というオブジェクトファイルとを合成することによって作成されることを示している。ここで、オブジェクトファイル1とオブジェクトファイル2とは、それぞれ異なる設定データである。例えば、オブジェクトファイル1が、オブジェクトの数3で、各オブジェクトの配置位置と画像を示す設定データであれば、オブジェクトファイル2は、オブジェクトの数5であり、各オブジェクトの配置位置や画像がオブジェクトファイル1のものとは異なる設定データである。上記のように、1つのゲームエリア部品に対して2以上のオブジェクトファイルが関連付けられている場合には、いずれかのオブジェクトファイルがランダムに選択されて設定される。このように、本実施形態においては、ゲームエリア部品は、1つの背景データと選択された1つのオブジェクトファイルとを合成することによって作成される。
【0047】
次に、ゲーム装置10がメモリカード17のゲームプログラムを実行することによって行われるゲーム処理の詳細について説明する。ゲーム装置10の電源が投入されると、ゲーム装置10のCPUコア21はメモリカード17に格納されているゲームプログラムを実行し、それによってゲーム処理が開始される。以下、図8〜図11を参照してゲーム処理の詳細について説明する。
【0048】
図8は、ゲーム装置10において実行されるゲーム処理の流れを示すメインフローチャートである。ゲーム処理が開始されると、まず、ステップS1において、変数CNおよび変数LAの値が初期化される。変数CNは、指定すべきコンテナのコンテナ番号を示す変数である。変数LAは、1つのブロックに含まれるゲームエリア部品をループした回数(1つのブロックに含まれるゲームエリア部品を接続した回数)を示す変数である。具体的には、RAM24に記憶されている変数CNおよび変数LAの値が、CN=0、LA=0に設定される。したがって、ステップS1においてコンテナ番号が0のコンテナが指定されたこととなり、当該コンテナに含まれるブロック内のゲームエリア部品が最初のゲームエリアとして構築されることになる。
【0049】
ステップS1の次のステップS2において、ブロック選択処理が行われる。ブロック選択処理は、その時点で指定されているコンテナ(変数CNにより示される番号のコンテナ)に含まれる1以上のブロックから、ゲームエリアを構築するために用いる1つのブロックを選択する処理である。
【0050】
図9は、図8に示すステップS2のブロック選択処理の詳細を示すフローチャートである。ブロック選択処理では、まずステップS11において、その時点で指定されているコンテナに含まれている各ブロックについて、それに関連付けられているイベント条件を満たすブロックがあるか否かが判定される。すなわち、CPUコア21は、エリア構築データを参照することによって、その時点で指定されているコンテナに含まれている各ブロックに関連付けられている選択条件のうち、イベント条件を特定する。そして、特定されたイベント条件が満たされるか否かを、RAM24に記憶されているフラグの状態(立っているか否か)に基づいて判断する。ステップS11の判定において、イベント条件が満たされているブロックがある場合、ステップS13の処理が行われる。一方、イベント条件が満たされているブロックがない場合、ステップS12の処理が行われる。なお、その時点で指定されているコンテナに含まれている各ブロックに関連付けられている選択条件の中にイベント条件がない場合は、イベント条件が満たされているブロックがないと判断し、ステップS12の処理が行われる。
【0051】
ステップS12においては、その時点で指定されているコンテナに含まれている各ブロックについて、それに関連付けられているカウント条件を満たすブロックがあるか否かが判定される。すなわち、CPUコア21は、エリア構築データを参照することによって、その時点で指定されているコンテナに含まれている各ブロックに関連付けられている選択条件のうち、カウント条件を特定する。そして、特定されたカウント条件が満たされるか否かを、RAM24に記憶されているカウンタの値を参照して判断する。ステップS12の判定において、カウント条件が満たされているブロックがある場合、ステップS13の処理が行われる。一方、カウント条件が満たされているブロックがない場合、ステップS14の処理が行われる。なお、その時点で指定されているコンテナに含まれている各ブロックに関連付けられている選択条件の中にカウント条件がない場合は、カウント条件が満たされているブロックがないと判断し、ステップS14の処理が行われる。
【0052】
ステップS13においては、ステップS11またはS12で満たされたと判断された選択条件に関連付けられているブロックが選択される。一方、ステップS14においては、CPUコア21は、ランダム条件で示される確率に基づいてランダムにブロックを選択する。すなわち、その時点で指定されているコンテナに含まれている各ブロックに関連付けられている選択条件のうち、ランダム条件を特定する。そして、ランダム条件が関連付けられているブロックの中から、ランダム条件において示されている確率に基づいてランダムに1つを選択する。ステップS13またはステップS14の後、CPUコア21はブロック選択処理を終了する。
【0053】
なお、図9に示したブロック選択処理においては、イベント条件を満たすブロックがカウント条件を満たすブロックよりも優先して選択されるものとしたが、他の実施形態においては、カウント条件を満たすブロックが優先して選択されてもよい。また、イベント条件を満たすブロックとカウント条件を満たすブロックとの両方が存在する場合には、さらに他の条件(例えば、ゲームの進行状況に関する条件)を考慮していずれを選択するかを決定するようにしてもよい。
【0054】
図8の説明に戻り、ステップS2の次のステップS3において、ステップS2で選択されたブロックは仮想ブロックか否かが判定される。この判定は、エリア構築データを参照することによって、ステップS2で選択されたブロックに関連付けられているゲームエリア部品がNULLであるか否かによって行われる。すなわち、当該ゲームエリア部品がNULLでない場合、ステップS2で選択されたブロックは仮想ブロックでないと判定され、ステップS4の処理が行われる。一方、当該ゲームエリア部品がNULLである場合、ステップS2で選択されたブロックは仮想ブロックであると判定され、ステップS4の処理がスキップされてステップS5の処理が行われる。
【0055】
ステップS4においては、エリア構築処理が行われる。エリア構築処理は、ステップS2で選択されたブロックに関連付けられているゲームエリア部品を用いて新たなゲームエリアを構築する処理である。
【0056】
図10は、図8に示すステップS4のエリア構築処理の詳細を示すフローチャートである。エリア構築処理では、まずステップS21において、変数ANが初期化される。変数ANは、次に表示されるべきゲームエリア部品の部品番号を示す変数である。具体的には、ステップS21においては、変数ANの値は、ステップS2で選択されたブロックに含まれる最初のゲームエリア部品を示す部品番号の値に設定される。図4を例にとって説明すると、“コンテナ:2”の“ブロック:2”がステップS2で選択された場合、当該ブロックに含まれる最初のゲームエリア部品の部品番号、すなわち“8”が変数ANの値として設定される。ステップS21において設定すべき部品番号の値は、エリア構築データを参照することによって知ることができる。
【0057】
ステップS22においては、変数ANで示されるゲームエリア部品を構成するための背景データが読み込まれる。この背景データは、エリアテーブルを参照することによって特定することができる。続くステップS23においては、変数ANで示されるゲームエリア部品を構成するためのオブジェクトファイルが選択されて読み込まれる。このオブジェクトファイルは、エリアテーブルを参照することによって特定することができる。図7を例にとって説明すると、部品番号“1”のゲームエリア部品には、オブジェクトファイル1とオブジェクトファイル2の2つのオブジェクトファイルが設定されているので、いずれかのオブジェクトファイルがランダムに選択されて読み込まれる。続くステップS24においては、ステップS22で読み込まれた背景データとステップS23で読み込まれたオブジェクトファイルとに基づいてゲームエリア部品が生成される。すなわち、当該オブジェクトファイルに示される設定データに基づいて、当該背景データに当該オブジェクトを重ねてゲームエリア部品の画像データを生成する。
【0058】
なお、オブジェクトファイルに設定されているオブジェクトに対して当該オブジェクトを出現させる条件(出現条件)をオブジェクト毎に関連付けておくようにしてもよい。そして、上記ステップS24においては、出現条件を満たすオブジェクトデータのみをオブジェクトファイルから読み出して配置するようにしてもよい。ここで、出現条件は、例えば、ゲーム進行やゲームレベル等に関する条件である。これによって、ゲームエリアに出現するオブジェクトをゲーム進行やゲームレベル等に応じて変化させることができる。また、出現条件は、上記パラメータ命令によって設定されるパラメータに関する条件であってもよい。これによって、ゲームエリアに出現するオブジェクトを、それまでに構築されたゲームエリアの内容に応じて変化させることができる。
【0059】
ステップS25においては、前回のエリア構築処理で構築されたゲームエリアに接続するように、ステップS24で生成されたゲームエリア部品が第1のLCD11および第2のLCD12に表示される。すなわち、ゲームエリア部品の上半分が第1のLCD11に表示され、ゲームエリア部品の下半分が第2のLCD12に表示される。具体的には、ゲームエリア部品のエリアサイズは、縦512dot×横512dotであり、第1のLCD11および第2のLCD12の表示サイズは、それぞれ縦192dot×横256dotである。また、第1のLCD11と第2のLCD12の間には、縦方向に32dot分の間隔が空けられている。従って、ゲームエリア部品の上から数えて縦方向に97dot目から288dot目までのエリアが第1のLCD11に表示され、ゲームエリア部品の上から数えて縦方向に321dot目から512dot目までのエリアが第2のLCD12に表示される。なお、ゲームエリア部品の上から数えて縦方向に1dot目から96dot目までのエリアは、表示範囲外となるので表示されない。同様に、ゲームエリア部品の上から数えて縦方向に289dot目から320dot目までのエリアは、第1のLCD11と第2のLCD12の間に位置するため、表示範囲外となり表示されない。なお、この実施例では、ゲームエリア部品は右方向に順に接続されるので、画面は右方向にスクロール(背景は左方向に移動)していく。これによって、ゲームエリア部品の横方向については、スクロールによって順次表示されていく。このとき、ゲームエリアの表示処理としては、前回のエリア構築処理で構築されたゲームエリアからステップS24で生成されたゲームエリア部品へ画面を次第にスクロールさせてもよいし、前回のエリア構築処理で構築されたゲームエリアからステップS24で生成されたゲームエリア部品へ画面を一度に切り替えるようにしてもよい。なお、最初のエリア構築処理においては、すでに構築されているゲームエリアがないので、ステップS24で生成されたゲームエリア部品が単に画面に表示される。
【0060】
ステップS26においては、ゲームの進行処理が行われる。具体的には、プレイヤによる操作に従ってプレイヤキャラクタを移動させる処理や、敵キャラクタのオブジェクトを移動させる処理や、得点を計算する処理等が行われる。さらに、予め定められた所定の条件を満たした場合には当該条件に対応するフラグやカウンタの値を変更する処理が行われる。フラグは、例えば、プレイヤキャラクタが鍵等のアイテムを取得したときや、プレイヤキャラクタが特定の敵キャラクタを倒したときに立ち上げられる。さらに、当該フラグが立っていることを選択条件とするブロックを設定しておくことによって、プレイヤキャラクタがアイテムを取得しなければ進めないゲームエリアや、特定の敵キャラクタを倒さなければ進めないゲームエリアを設定することができる。
【0061】
なお、ステップS26の処理は、次にゲームエリアを構築すべきタイミングになるまで続けられ、当該タイミングが到来したときにステップS27以降の処理が行われる。例えば、プレイヤキャラクタの移動に応じて画面をスクロールさせる場合には、その時点で構築されているゲームエリアの後端からプレイヤキャラクタまでの距離が所定距離以下になったことに応じてステップS27の処理を行う。また、例えば、一定の速度で画面をスクロールさせる場合には、次のゲームエリアを表示すべき所定の時間間隔でステップS27の処理を行う。
【0062】
ステップS27においては、ステップS2で選択したブロックに含まれているゲームエリア部品のうちで次に表示すべきゲームエリア部品が存在するか否かが判定される。すなわち、エリア構築データを参照して、変数ANにより示されるゲームエリア部品が当該ブロックのうちで最後のゲームエリア部品であれば、次に表示すべきゲームエリア部品が存在しないと判断される。逆に、変数ANにより示されるゲームエリア部品が当該ブロックのうちで最後のゲームエリア部品でなければ、次に表示すべきゲームエリア部品が存在すると判断される。
【0063】
ステップS27の判定において、次に表示すべきゲームエリア部品が存在すると判定される場合、ステップS28の処理が行われる。すなわち、ステップS28においては、エリア構築データを参照することによって、次に表示すべきゲームエリア部品の番号に変数ANの値が変更される。ステップS28の後、再びステップS22〜S27の処理が行われる。一方、次に表示すべきゲームエリア部品が存在しないと判定される場合、CPUコア21はエリア構築処理を終了する。
【0064】
以上のエリア構築処理によって、ステップS2で選択されたブロック内の各ゲームエリア部品は、すでに構築されているゲームエリアに連続して接続される。例えば、図4を例にとって説明すると、“コンテナ:2”の“ブロック:2”がステップS2で選択された場合、当該ブロックに含まれる3つのゲームエリア部品(部品番号が8〜10のゲームエリア部品)が連続してゲームエリアに接続される。このように、本実施形態では、すでに構築されているゲームエリアに新たなゲームエリア部品が接続される際には、ブロックを単位としてゲームエリア部品が接続される。
【0065】
図8の説明に戻り、ステップS5において、命令実行処理が行われる。命令実行処理は、ステップS2で選択されたブロックに関連付けられている実行命令を実行する処理である。
【0066】
図11は、図8に示すステップS5の命令実行処理の詳細を示すフローチャートである。命令実行処理では、まずステップS31において、ステップS2で選択されたブロックに関連付けられている実行命令は上記ループ命令であるか否かが判定される。この判定は、エリア構築データを参照することによって行うことができる。ステップS31の判定において、ブロックに関連付けられている実行命令がループ命令である場合、ステップS32の処理が行われる。一方、ブロックに関連付けられている実行命令がループ命令でない場合、後述するステップS35の処理が行われる。
【0067】
ステップS32においては、変数LAの値が1増加(インクリメント)される。続くステップS33において、変数LAが指定ループ回数であるか否かが判定される。ここで、指定ループ回数とは、ループ命令において指定されているループの回数である。例えば、図4に示した“Loop 1”というループ命令のループ指定回数は“1”である。ステップS33は、ループ条件を満たしたか否か、すなわち、ループ条件で指定されている回数分だけブロック内のゲームエリア部品を構築したか否かを判定するための処理である。ステップS33の判定において、変数LAが指定ループ回数未満である場合、図8に示すステップS4のエリア構築処理が再度行われる。一方、変数LAが指定ループ回数である場合、ステップS34の処理が行われる。
【0068】
ステップS34においては、変数CNの値が1増加(インクリメント)される。これによって、エリア構築データにおける順番に関して現在指定されているコンテナの次のコンテナが新たに指定されたこととなる。ステップS34の後、後述するステップS42の処理が行われる。
【0069】
一方、ステップS35においては、ステップS2で選択されたブロックに関連付けられている実行命令は上記ジャンプ命令であるか否かが判定される。この判定は、エリア構築データを参照することによって行うことができる。ステップS35の判定において、ブロックに関連付けられている実行命令がジャンプ命令である場合、ステップS36の処理が行われる。一方、ブロックに関連付けられている実行命令がジャンプ命令でない場合、ステップS37の処理が行われる。
【0070】
ステップS36においては、ジャンプ命令に従って変数CNの値が変更される。具体的には、CPUコア21は、ジャンプ命令において指定されているコンテナ番号の値に変数CNの値を変更する。これによって、エリア構築データにおけるコンテナの順番とは無関係に、ジャンプ命令において指定されているコンテナ番号のコンテナが新たに指定されたこととなる。ステップS36の後、後述するステップS42の処理が行われる。
【0071】
一方、ステップS37においては、ステップS2で選択されたブロックに関連付けられている実行命令は上記イベント命令であるか否かが判定される。この判定は、エリア構築データを参照することによって行うことができる。ステップS37の判定において、ブロックに関連付けられている実行命令がイベント命令である場合、ステップS38の処理が行われる。一方、ブロックに関連付けられている実行命令がイベント命令でない場合、ステップS39の処理が行われる。
【0072】
ステップS38においては、イベント命令に従ってフラグが設定される。具体的には、CPUコア21は、イベント命令において指定されたフラグを立たせる(変化させる)。ステップS38の後、後述するステップS41の処理が行われる。
【0073】
一方、ステップS39においては、ステップS2で選択されたブロックに関連付けられている実行命令は上記カウント命令であるか否かが判定される。この判定は、エリア構築データを参照することによって行うことができる。ステップS39の判定において、ブロックに関連付けられている実行命令がカウント命令である場合、ステップS40の処理が行われる。一方、ブロックに関連付けられている実行命令がカウント命令でない場合、後述するステップS42の処理が行われる。
【0074】
ステップS40においては、カウント命令に従ってカウンタの値が加算される。具体的には、CPUコア21は、カウント命令において指定された値を現在のカウンタの値に加算する。なお、カウント命令において指定される値は、プラスの値だけでなく、マイナスの値であってもよい。ステップS40の後、ステップS41の処理が行われる。
【0075】
ステップS41においては、変数CNの値が1増加(インクリメント)される。ステップS41の処理は、ステップS34の処理と同じである。ステップS41の後、ステップS42の処理が行われる。
【0076】
ステップS42においては、変数LAが0に設定される。ステップS41までの処理によって、ステップS2で選択されたブロックに関する処理は終了している。そこで、ステップS42において変数LAの値を初期値に戻しているのである。ステップS42の後、CPUコア21は命令実行処理を終了する。
【0077】
再び図8の説明に戻り、ステップS5の次のステップS6において、変数CNで示されるコンテナがエリア構築データ内に存在するか否かが判定される。ここで、変数CNで示されるコンテナがエリア構築データ内に存在しない場合とは、エリア構築データにおける最後のコンテナ(コンテナ番号が最大のコンテナ)についてすでにゲームエリアが構築されている場合である。ステップS6の判定において、変数CNで示されるコンテナがエリア構築データ内に存在する場合、ステップS2〜S6の処理が再度行われる。以降、変数CNで示されるコンテナがエリア構築データ内に存在しなくなるまで、ステップS2〜S6の処理が繰り返される。
【0078】
一方、ステップS6の判定において、変数CNで示されるコンテナがエリア構築データ内に存在しない場合、ステップS7の処理が行われる。すなわち、ステップS7においては、ゴール処理が行われる。具体的には、ステップS26のゲーム進行処理と同様、プレイヤキャラクタの移動等の処理が行われる。この処理は、プレイヤキャラクタがゲームエリアの最後に到達するまで(ゴールするまで)行われる。ステップS7の処理の後、CPUコア21はゲーム処理を終了する。
【0079】
なお、図4に示すエリア構築データを用いて上記ゲーム処理を行った場合、ゲームエリアは以下に示すように構築される。すなわち、まず、“コンテナ:0”が指定され(ステップS1)、“ブロック:1”が選択される(ステップS2)。なお、“ブロック:1”に関連付けられる選択条件は“random 100”であるので、必ず“ブロック:1”が選択される。次に、“コンテナ:1”が指定される(ステップS34)。“コンテナ:1”には3つのブロックが含まれており、各ブロックにはランダム条件が関連付けられているので、3つのブロックから1つがランダムに選択される(ステップS14)。このとき、“ブロック:2”が選択された場合、“ブロック:2”には“Event_up 1”という実行命令が関連付けられているので、フラグ1が立てられる(ステップS38)。同様に、“ブロック:3”が選択された場合、フラグ2が立てられる(ステップS38)。
【0080】
ここで、“コンテナ:1”において“ブロック:2”が選択された場合、それまでに構築されるゲームエリアは、部品番号が“1”のゲームエリア部品と“3”のゲームエリア部品という2つのゲームエリア部品で構成される。一方、“コンテナ:1”において“ブロック:3”が選択された場合、それまでに構築されるゲームエリアは、部品番号が“1”のゲームエリア部品と“4”のゲームエリア部品と“5”のゲームエリア部品という3つのゲームエリア部品で構成される。このように、本実施形態では、1以上のゲームエリア部品を1つのブロックとして定義することによって、選択されるブロックに応じて異なる長さのゲームエリアを構築することができる。
【0081】
また、“コンテナ:1”において“ブロック:1”が選択された場合、“ブロック:1”には“Loop 2”という実行命令が関連付けられているので、部品番号が“2”のゲームエリア部品が2回接続されることになる。従って、“コンテナ:1”において“ブロック:1”が選択された場合、それまでに構築されるゲームエリアは、部品番号が“1”のゲームエリア部品と“2”のゲームエリア部品と“2”のゲームエリア部品という3つのゲームエリア部品で構成される。このように、本実施形態では、選択されるブロックに関連付けられている実行命令によって、異なる長さのゲームエリアを構築することができる。
【0082】
また、図4に示す“コンテナ:1”において“ブロック:2”が選択された場合、その後の“コンテナ:3”においては、“ブロック:1”が選択される。“ブロック:1”には、“Event_or 1”というパラメータ条件の選択条件が関連付けられているからである。同様に、“コンテナ:1”において“ブロック:3”が選択された場合、その後の“コンテナ:3”においては、“ブロック:2”が選択される。このように、本実施形態においては、ブロック毎に関連付けられる選択条件および実行命令を用いることによって、それまでに構築されたゲームエリアの内容を、次に構築すべきゲームエリアの内容に反映させることができる。
【0083】
なお、図4に示す“コンテナ:3”における“ブロック:3”は、仮想ブロックである。したがって、“ブロック:3”が選択された場合、ゲームエリアには何も接続されず、次のコンテナが指定されることになる。つまり、“コンテナ:3”においては、(1)部品番号が14および15のゲームエリア部品が接続される、(2)部品番号が16のゲームエリア部品が接続される、または、(3)何も接続されない、という、3つのパターンが考えられる。このように、仮想ブロックを設定することによって、「何も接続されない」状態をエリア構築データにおいて容易に表現することができる。例えば、「ある条件を満たしている場合にのみ、ボーナスエリアが構築される」ことをゲーム製作者が意図してエリア構築データを作成する場合、仮想ブロックを用いれば容易にエリア構築データを作成することができる。すなわち、ボーナスエリアのゲームエリア部品を含むブロックと仮想ブロックとを1つのコンテナとして定義し、当該ブロックにパラメータ条件を関連付ければよい。
【0084】
また、本実施形態によれば、1以上のゲームエリア部品を1つのブロックとして定義し、ブロックを単位としてゲームエリアの構築が行われる。これによって、ゲーム製作者は、ゲームエリア部品を単位としてではなくブロックを単位として、エリア構築データを作成することができる。例えば、ゲーム製作者がエリア構築データを作成する際には、図12に示すように、複数(図12では3つ)のゲームエリア部品51〜53をひとまとまりにして用いることを望む場合がある。このような場合、それら複数のゲームエリア部品51〜53をブロックとして定義することによって、ひとまとまりのゲームエリア部品として用いることができる。また、あるブロックにおいてひとまとまりのゲームエリア部品として用いられた各ゲームエリア部品51〜53を、他のコンテナにおいては個別に用いることもできる。したがって、本実施形態によれば、1以上のゲームエリア部品を1つのブロックとして定義することによって、ゲーム制作者がエリア構築データを作成する際におけるゲームエリア部品の管理および取り扱いが容易になる。さらに、ひとまとまりにして用いることを望むゲームエリア部品を効率よくブロックとして定義すれば、ブロックという概念を用いない場合と比べて、エリア構築データのデータ量を削減することが可能である。
【0085】
なお、選択条件および実行命令は、上記に限らず種々の条件が考えられる。例えば、選択条件は、複数のフラグを指定し、指定される全てのフラグが立っていればそのブロックを選択することを示すものや、指定されるフラグの少なくとも1つが立っていればそのブロックを選択することを示すものであってもよい。また、実行命令は、既に立っているフラグを下げる命令を示すものや、カウンタの値を減算する命令を示すものであってもよい。また、実行命令は、ゲームエリアの構築を終了する命令を示すものであってもよい。すなわち、この命令が関連付けられたブロックがゴールとなる。また、実行命令は、複数の命令を複合したものであってもよい。例えば、ループ命令とジャンプ命令を複合して「そのブロックを3回ループすれば次にコンテナ3を指定する」といった命令が考えられる。さらに、1つのブロックにつき複数の実行命令が関連付けられるようにしてもよい。
【0086】
なお、上記実施形態においては、ゲームプログラムには、エリア構築データが1つのみ含まれていたが、複数のエリア構築データが含まれていてもよい。このとき、1つのエリア構築データが、1つのステージに相当する。典型的には、あるエリア構築データによって構築されるゲームエリアをクリアすれば、他のエリア構築データによって構築されるゲームエリアに進むことができるようにする。また、複数のエリア構築データが含まれている場合には、上記ジャンプ命令は、他のエリア構築データに含まれているコンテナを指定するものであってもよい。これによって、異なるエリア構築データ同士を接続することも可能である。
【産業上の利用可能性】
【0087】
本発明は、構築されるゲームエリアの長さにバリエーションを持たせてゲームエリアを構築すること等を目的としたゲームプログラムまたはゲーム装置に利用することが可能である。
【図面の簡単な説明】
【0088】
【図1】本発明の一実施形態に係るゲーム装置の外観図
【図2】ゲーム装置の内部構成図
【図3】メモリカード17のROM171に記憶されているゲームプログラムのデータ構成を示す図
【図4】エリア構築データ42の一例を示す概念図
【図5】エリア構築データ42の一例を示す図
【図6】背景データの例を示す図
【図7】エリアテーブルの一例を示す図
【図8】ゲーム装置10において実行されるゲーム処理の流れを示すメインフローチャート
【図9】図8に示すステップS2のブロック選択処理の詳細を示すフローチャート
【図10】図8に示すステップS4のエリア構築処理の詳細を示すフローチャート
【図11】図8に示すステップS5の命令実行処理の詳細を示すフローチャート
【図12】エリア部品データを接続した例を示す図
【符号の説明】
【0089】
10 ゲーム装置
11,12 LCD
21 CPUコア
24 RAM
42 エリア構築データ
43 背景データ
44 オブジェクトファイル
45 エリアテーブル


【特許請求の範囲】
【請求項1】
ゲームエリアを構築する処理をゲーム装置のコンピュータに実行させるためのゲームプログラムであって、
前記ゲームプログラムには、
それぞれ同じサイズである複数のゲームエリア部品と、
1以上のゲームエリア部品をブロックとして定義し、それぞれ1以上のブロックを含む複数のコンテナを示すエリア構築データとが含まれており、
前記エリア構築データにより示されるコンテナを所定の順番に指定する指定手段と、
前記指定手段によって指定されたコンテナに含まれる1以上のブロックから1つを選択する選択手段と、
前記選択手段によって選択されたブロックによって定義されるゲームエリア部品を、前記指定手段によって指定されたコンテナの順にブロック単位で所定方向に接続することによってゲームエリアを構築する構築手段として前記コンピュータを機能させる、ゲームプログラム。
【請求項2】
前記エリア構築データには、そのブロックが選択されるための選択条件が各ブロックに対して関連付けられており、
前記選択手段は、前記指定手段によって指定されたコンテナに含まれる1以上のブロックのうちで前記選択条件が満たされているブロックを選択する、請求項1に記載のゲームプログラム。
【請求項3】
前記選択条件は、所定のパラメータの値に関する条件であり、
前記エリア構築データにおいて定義されるブロックには、前記所定のパラメータの値を変化させる第1命令が関連付けられており、
前記ゲームプログラムは、前記選択手段によってブロックが選択されたとき、当該選択されたブロックに関連付けられている第1命令を実行する命令実行手段として前記コンピュータをさらに機能させる、請求項2に記載のゲームプログラム。
【請求項4】
前記エリア構築データは、コンテナの接続順をさらに示し、
前記指定手段は、前記エリア構築データにより示される接続順にコンテナを指定する、請求項1に記載のゲームプログラム。
【請求項5】
前記エリア構築データにおいて定義されるブロックには、1つのコンテナを指定する第2命令が関連付けられており、
前記指定手段は、前回指定したコンテナに含まれる1以上のブロックから前記選択手段が選択したブロックに関連付けられている第2命令に従って次に指定するコンテナを決定する、請求項1に記載のゲームプログラム。
【請求項6】
前記エリア構築データにより示されるコンテナは、1以上のゲームエリア部品によって定義されるブロックと0個のゲームエリア部品によって定義される仮想ブロックとを含む、請求項1に記載のゲームプログラム。
【請求項7】
前記ゲームプログラムは、
一定のサイズの背景を示す背景データと、
背景の上に配置すべきオブジェクトを示すオブジェクトファイルと、
各ゲームエリア部品に対して、ゲームエリア部品を構成するための背景データおよびオブジェクトファイルを関連付けたエリアテーブルとを含み、
前記構築手段は、
前記選択手段によって選択されたブロックによって定義されるゲームエリア部品に関連付けられている背景データおよびオブジェクトファイルからゲームエリアの画像を生成する生成手段と、
前記生成手段によって生成されたゲームエリアの画像を前記ゲーム装置の表示装置に表示させる表示制御手段とを含む、請求項1に記載のゲームプログラム。
【請求項8】
ゲームエリアを構築する処理を行うゲーム装置であって、
それぞれ同じサイズである複数のゲームエリア部品と、1以上のゲームエリア部品をブロックとして定義し、それぞれ1以上のブロックを含む複数のコンテナを示すエリア構築データとを格納するデータ格納手段と、
前記エリア構築データにより示されるコンテナを所定の順番に指定する指定手段と、
前記指定手段によって指定されたコンテナに含まれる1以上のブロックから1つを選択する選択手段と、
前記選択手段によって選択されたブロックによって定義されるゲームエリア部品を、前記指定手段によって指定されたコンテナの順にブロック単位で所定方向に接続することによってゲームエリアを構築する構築手段とを備える、ゲーム装置。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate