以下、図面を参照して、本発明の実施形態によるゲームシステム1について説明する。本明細書においては、説明の便宜上、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成についての重複説明を省略する場合がある。
本発明の一実施形態による電子装置10は、ピンボールゲームの要素を含むゲームアプリケーションがインストールされている。本明細書において、ピンボールゲームは、ピンボール及びフリッパーに相当するオブジェクトを備えているゲームを含むものとする。
ゲームシステム1は、ネットワークを介して複数の電子装置が接続されるシステムによって実現することができるが、一台の電子装置10によっても実現することもできる。例えば、電子装置10にインストールされているアプリケーションは、ネイティブアプリとすることもできるし、ウェブアプリとすることもできる。最初に一台の電子装置10で実現する実施形態について説明し、その後、ネットワークに接続されたシステムで実現する実施形態について説明する。
[電子装置により実現される実施形態]
図1は本発明の一実施形態による電子装置10のハードウェア構成を示すブロック図である。電子装置10は、プロセッサ11、入力装置12、表示装置13、記憶装置14、及び通信装置15を備える。これらの各構成装置はバス16によって接続される。なお、バス16と各構成装置との間には必要に応じてインタフェースが介在しているものとする。本実施形態において、電子装置10はスマートフォンである。ただし、電子装置10は、上記の構成を備えるものであれば、タブレット型コンピュータ、タッチパッド等の接触型入力装置を備えるコンピュータなどの端末とすることができる。
プロセッサ11は、電子装置10全体の動作を制御する。例えばプロセッサ11は、CPUである。なお、プロセッサ11としては、MPU等の電子回路が用いられてもよい。プロセッサ11は、記憶装置14に格納されているプログラムやデータを読み込んで実行することにより、様々な処理を実行する。1つの例では、プロセッサ11は、複数のプロセッサから構成される。
入力装置12は、電子装置10に対するユーザからの入力を受け付けるユーザインタフェースであり、例えば、タッチパネル、タッチパッド、キーボード、又はマウスである。表示装置(ディスプレイ)12は、プロセッサ11の制御に従って、アプリケーション画面などを電子装置10のユーザ(プレイヤ)に表示する。好ましくは液晶ディスプレイであるが、有機ELを用いたディスプレイやプラズマディスプレイ等であってもよい。本実施形態において、スマートフォンである電子装置10は入力装置12としてタッチパネル17を備え、タッチパネル17は表示装置13としても機能し、入力装置12と表示装置13は一体となった構造である。ただし、入力装置12と表示装置13は、別の位置に配置される別個の形態であってもよい。
記憶装置14は、揮発性メモリであるRAM及び不揮発性メモリであるROMを含む、一般的なスマートフォンが備える記憶装置である。記憶装置14は、外部メモリを含むこともできる。例えば記憶装置14は、ゲームアプリケーションを記憶する。ゲームアプリケーションは、ゲームを実行するためのゲームプログラムと該ゲームプログラム実行時に参照する各種データとを含む。ゲームプログラムは、電子装置10に対するユーザの操作に応じて起動され、電子装置10が予め実装するオペレーティングシステム(OS)上で実行される。
他の例では、記憶装置14は、主記憶装置及び補助記憶装置を含む。主記憶装置は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、プロセッサ11が情報を処理する際の記憶領域及び作業領域として用いられる。補助記憶装置は、様々なプログラムや、各プログラムの実行に際してプロセッサ11が使用するデータを格納する。補助記憶装置は、例えばハードディスク装置であるが、情報を格納できるものであればいかなる不揮発性ストレージ又は不揮発性メモリであってもよく、着脱可能なものであっても構わない。補助記憶装置は、例えば、オペレーティングシステム(OS)、ミドルウェア、アプリケーションプログラム、これらのプログラムの実行に伴って参照され得る各種データなどを格納する。
通信装置15は、ネットワークを介してサーバなどの他のコンピュータとの間でデータの授受を行う。例えば通信装置15は、移動体通信や無線LAN等の無線通信を行い、ネットワークへ接続する。1つの例では、電子装置10は、通信装置15によってプログラムをサーバからダウンロードして、記憶装置14に格納する。ただし、通信装置15は、イーサネット(登録商標)ケーブル等を用いた有線通信を行ってもよい。他のコンピュータとの間でデータの送受信を行わない場合、電子装置10は通信装置15を備えなくてもよい。
図2は本発明の一実施形態による電子装置10の機能ブロック図の一例を示す。電子装置10は、入力部31、表示部32、及びゲーム制御部33を備える。ゲーム制御部33は、操作オブジェクト制御部34を備える。本実施形態においては、プロセッサ11がプログラムを実行することによりこれらの機能が実現される。例えば実行されるプログラムは、記憶装置14に記憶されている又は通信装置15を介して受信したゲームプログラムである。このように、各種機能がプログラム読み込みにより実現されるため、1つのパート(機能)の一部又は全部を他のパートが有していてもよい。各機能の一部又は全部を実現するための電子回路等を構成することによりハードウェアによってもこれらの機能は実現してもよい。
入力部31は、入力装置12を用いて構成されるものであり、電子装置10に対するユーザからの入力を受け付ける。電子装置10は、入力部31によりユーザ入力を受け付ける。本実施形態では、タッチパネルを備えるスマートフォンが一般的に有しているタッチ検出機能を用いることができる。
表示部32は、ゲームの進行やユーザ操作に応じたゲーム用画面を表示装置13に表示する。ゲーム制御部33は、本実施形態のゲームを実行するにあたっての基本制御を行う。本実施形態では、スマートフォンである電子装置10はフレームレートが設定され、ゲーム制御部33はフレームレートに対応してゲーム用画面を描画(更新)し、表示部32は描画されたゲーム用画面を表示する。
ゲーム制御部33は、ゲームの進行のための仮想空間としてゲームフィールド50を設定する。図3は、ゲームフィールド50を含むゲーム用画面の一例を示す図である。
図3に示すゲーム用画面は、タッチパネルの画面全体に表示される画面である。ゲームフィールド50は、好ましくは、図3に示すように、タッチパネル17の画面全体の大部分に表示される。タッチパネル17は、縦軸方向及び横軸方向からなる座標平面を用いて、座標により位置が指定される。ゲーム制御部33は、座標を用いてゲームフィールド50内の位置を特定する。ゲーム制御部33は、ゲーム用画面の縦軸方向及び横軸方向の長さを所定の長さ、例えば1920ピクセル及び1080ピクセルに定め、タッチパネルのサイズや画面解像度に関わらず、ゲームフィールド50内の距離や位置を特定する際には該ピクセルの値を用いる。なおゲームフィールド50内の位置の特定は上記に限定されず、ゲーム制御部33は、異なるサイズや画面解像度のタッチパネル上のゲーム用画面の大きさに対応した大きさで表示されるゲームフィールド50内の位置を特定可能な既知の方法を用いることができる。
ゲーム制御部33は、仮想的な壁58で囲まれた仮想空間として構成されるゲームフィールド50を生成し、ゲームの進行に応じて、各種オブジェクトを配置する。図3に示すゲームフィールド50内には、パーティーオブジェクト51、敵オブジェクト54、及び操作オブジェクト55が配置されている。パーティーオブジェクト51は、ゲームフィールド50内を移動するメインオブジェクト52及び該メインオブジェクト52に追従して移動するサブオブジェクト53を含んで構成される。例えば、ゲーム制御部33は、ゲーム開始時におけるゲームフィールド50内には、パーティーオブジェクト51や敵オブジェクト54を配置せず、ゲームの進行に応じて、これらのオブジェクトを配置する。
図4はパーティーオブジェクト51の一例を示し、先頭で移動する1つのメインオブジェクト52と、2番目で先頭に追従して移動する1つのサブオブジェクト53と、3番目で2番目に追従して移動する1つのサブオブジェクト53から構成される。パーティーオブジェクト51を構成するメインオブジェクト52及びサブオブジェクト53は、プレイヤキャラクタに対応するプレイヤオブジェクトから各々選択されたオブジェクトであり、各々がプレイヤオブジェクトのうちの1つである。
プレイヤキャラクタは、ユーザが直接的又は間接的に操作可能なキャラクタである。本実施形態のゲームにおいては、ゲーム管理者などにより、複数のプレイヤキャラクタが予め設定され、各プレイヤキャラクタに、各々対応する個別パラメータが設定される。例えばプレイヤキャラクタに設定される個別パラメータは、レベル、攻撃力、守備力、ヒットポイント、特殊能力などを含む。パーティーオブジェクト51を構成する複数のオブジェクトの各々に対応する複数のキャラクタの一群がRPGゲームにおけるパーティーに対応する。
なお、ゲーム制御部33は、メインオブジェクト52等のオブジェクトに対応付けたプレイヤキャラクタ等にパラメータを設定してもよいし、該オブジェクトにプレイヤキャラクタ等に対応するパラメータを設定してもよい。本実施形態では、ゲーム制御部33のオブジェクトに対するパラメータ設定方法は、いずれの方法でも行うことができる。他のオブジェクトについても同様である。また、特に言及が無い限り、単にパラメータと表現したときは、パラメータは個別パラメータを意味するものとする。
サブオブジェクト53は、メインオブジェクト52とは異なるプレイヤキャラクタに対応付けられ、サブオブジェクト53同士も異なるプレイヤキャラクタに対応付けられる。図3は、パーティーオブジェクト51が2つのサブオブジェクト53を含む様子を示すが、サブオブジェクト53は、1つであってもよいし、3つ以上であってもよい。
1つの例では、ゲーム制御部33は、ユーザ(プレイヤ)により選択可能なプレイヤオブジェクトから1つのメインオブジェクト52をユーザに選択させ、当該選択を受け付ける。ゲーム制御部33は、プレイヤオブジェクトから、選択を受け付けたメインオブジェクト52とは異なるサブオブジェクト53をユーザに選択させ、当該選択を受け付ける。
敵オブジェクト54は、衝突オブジェクトのうちの1つであり、敵キャラクタに対応する。本実施形態のゲームにおいては、ゲーム管理者などにより、衝突オブジェクトに対応付けられたキャラクタ等の各々又は衝突オブジェクトの各々には、対応する個別パラメータが設定される。例えば敵オブジェクト54に対応付けられた敵キャラクタは、プレイヤキャラクタと同様にして、敵キャラクタ各々に対応する個別パラメータが設定される。例えば敵キャラクタに設定される個別パラメータは、攻撃力、守備力、ヒットポイント、特殊能力などを含む。
本実施形態のゲームは、複数のゲームステージに対応する複数のゲームフィールド50を含み、ゲーム制御部33は、ゲームフィールド50ごとに、各オブジェクトを異なる位置に配置することができる。図3に示すゲームフィールド50は、1つの例示である。
ゲーム制御部33は、ゲームフィールド50に、仮想的な重力を設定する。仮想的な重力とは、現実世界の重力と同様の現象を仮想空間にて再現したものである。ゲーム制御部33は、仮想的な重力及び反発係数を含む力学的パラメータを用いた物理演算を行う。物理演算には、既知の物理エンジンを用いることができる。ゲーム制御部33は、プレイヤオブジェクト、衝突オブジェクト、及び操作オブジェクト55の各々について、質量、形状、位置、速度、反発係数などの力学的パラメータを設定する。これらの力学的パラメータは、プレイヤキャラクタに対応する個別パラメータ等とは異なる、物理演算用のパラメータである。質量、形状、反発係数などの力学的パラメータは、ゲーム管理者などにより予め定められる。
メインオブジェクト52は、パーティーオブジェクト51の先頭で移動するオブジェクトであり、ピンボールゲームにおけるボールに相当するオブジェクトである。そのため、メインオブジェクト52は、ボールと同様に移動することが可能なオブジェクトである。ゲーム制御部33は、メインオブジェクト52が仮想的な重力に従ってゲームフィールド50内を移動するように動作を制御し、メインオブジェクト52は、仮想的な重力の影響を受けて重力方向に加速する。図3に示すゲームフィールド50において、重力方向は下方向である。
ゲーム制御部33は、サブオブジェクト53が、ゲームフィールド50内において、メインオブジェクト52に追従して移動するように動作を制御する。ここで、サブオブジェクト53がメインオブジェクト52に追従して移動するように動作を制御するとは、メインオブジェクト52の位置又は軌道に基づいてサブオブジェクト53の位置又は軌道を決定することを意味する。本実施形態では、ゲーム制御部33は、サブオブジェクト53がメインオブジェクト52の軌道を追従して移動するように動作を制御する。この場合、パーティーオブジェクト51は全体として一列で移動する。好ましくは、ゲーム制御部33は、サブオブジェクト53がメインオブジェクト52と一定の間隔を保って追従して移動するように制御する。また好ましくは、ゲーム制御部33は、サブオブジェクト53同士も一定の間隔を保って追従して移動するように制御する。
ゲーム制御部33は、パーティーオブジェクト51のうちのメインオブジェクト52と敵オブジェクト54を含む衝突オブジェクトとの衝突を判定する。衝突判定(当たり判定)は、既知の方法を用いることができる。
ゲーム制御部33は、メインオブジェクト52と敵オブジェクト54が衝突したと判定した場合、各オブジェクトの力学的パラメータを用いて、衝突したときにメインオブジェクト52に作用する物理量を演算する。ゲーム制御部33は、演算結果の物理量を用いてメインオブジェクト52の速度を決定し、メインオブジェクト52を移動させる。このように、ゲーム制御部33は、衝突したときのメインオブジェクト52の跳ね返り動作に関する物理演算を行う。メインオブジェクト52が操作オブジェクト55又は仮想的な壁58と衝突するときも同様である。
ゲーム制御部33は、メインオブジェクト52と敵オブジェクト54が衝突したと判定したとき、メインオブジェクト52及び敵オブジェクト54の少なくとも一方に、物理演算による効果とは異なる追加の効果を与える。
1つの例では、ゲーム制御部33は、メインオブジェクト52と敵オブジェクト54が衝突したと判定した場合、メインオブジェクト52に設定された個別パラメータに基づいて、衝突したと判定した敵オブジェクト54に設定された個別パラメータを変化させる。
1つの例では、ゲーム制御部33は、メインオブジェクト52と敵オブジェクト54が衝突したと判定した場合、メインオブジェクト52に対応付けられたプレイヤキャラクタが敵オブジェクト54に対応付けられた敵キャラクタを攻撃したと判定する。このとき、ゲーム制御部33は、メインオブジェクト52に対応付けられたプレイヤキャラクタに設定された攻撃力などの個別パラメータから当該攻撃により敵キャラクタに与えたダメージ量を算出する。続いてゲーム制御部33は、算出されたダメージ量を用いて、衝突したと判定した敵オブジェクト54に対応付けられた敵キャラクタのヒットポイントを減少させるなど、該敵キャラクタの個別パラメータを変化させる。
図5、図6は、パーティーオブジェクト51の先頭を移動するメインオブジェクト52が敵オブジェクト54と衝突して跳ね返る様子を示す図である。図5は、メインオブジェクト52と敵オブジェクト54が衝突したときの様子、図6は、メインオブジェクト52と敵オブジェクト54が衝突した後にメインオブジェクト52が跳ね返った様子を示す図である。
ゲーム制御部33は、メインオブジェクト52と敵オブジェクト54が衝突したと判定した場合、該衝突したと判定されたときのメインオブジェクト52の位置を衝突点60として設定(記憶)する。ゲーム制御部33は、メインオブジェクト52と敵オブジェクト54が衝突したと判定した場合に設定する衝突点60について、その後の敵オブジェクト54の移動の有無に関わらず、一定の位置(座標)に保持する。サブオブジェクト53は、メインオブジェクト52の軌道を追従して移動するため、メインオブジェクト52が敵オブジェクト54と衝突した後で衝突点60を通過する。ゲーム制御部33は、設定した衝突点60の位置を変更することもできるが、サブオブジェクト53に衝突点60を通過させるため、衝突点60を一定の位置に保持することが好ましい。
1つの例では、ゲーム制御部33は、サブオブジェクト53が衝突点60を通過したときに、通過したサブオブジェクト53に設定された個別パラメータに基づいて、衝突したと判定された敵オブジェクト54に設定された個別パラメータを変化させる。
1つの例では、ゲーム制御部33は、サブオブジェクト53が衝突点60を通過した場合、サブオブジェクト53に対応付けられたプレイヤキャラクタがメインオブジェクト52と衝突したと判定された敵オブジェクト54に対応付けられた敵キャラクタを攻撃したと判定する。このとき、ゲーム制御部33は、サブオブジェクト53に対応付けられたプレイヤキャラクタに設定された攻撃力などの個別パラメータから当該攻撃により敵キャラクタに与えたダメージ量を算出する。ゲーム制御部33は、敵オブジェクト54に対応付けられた敵キャラクタに設定された守備力などの個別パラメータを更に用いてダメージ量を算出してもよい。続いてゲーム制御部33は、算出されたダメージ量を用いて、敵キャラクタのヒットポイントを減少させるなど、該敵キャラクタの個別パラメータを変化させる。この場合、ゲーム制御部33は、メインオブジェクト52に対応付けられたプレイヤキャラクタが敵オブジェクト54に対応付けられた敵キャラクタを攻撃したと判定すると、時間差を置いてサブオブジェクト53に対応付けられたプレイヤキャラクタが該敵キャラクタを攻撃したと判定することになる。
好ましくは、ゲーム制御部33は、衝突点60を設定してから所定時間経過後、該衝突点60の設定を削除する。ただし、ゲーム制御部33は、時間経過によって衝突点60を削除せず、メインオブジェクト52が衝突点60と重なったときに該衝突点60を削除してもよい。
1つの好適な例では、ゲーム制御部33は、敵オブジェクト54を予め定められた条件に基づいてゲームフィールド50内を移動させる。このように構成すると、ゲームの進行に応じて、ユーザは敵オブジェクト54を狙う操作が求められることになるため、ゲームの興趣性を高めることが可能となる。1つの好適な例では、敵オブジェクト54を含む衝突オブジェクトは、仮想的な重力の影響を受けないオブジェクトである。このように構成することにより、ゲーム制御部33は、敵オブジェクト54をゲーム性がより高くなる位置に継続的に配置することが可能となる。衝突オブジェクトは、メインオブジェクト52が衝突可能なものであればよく、例えば仮想的な壁58も衝突オブジェクトである。ただし、衝突オブジェクトは、仮想的な重力の影響を受けるオブジェクトとすることもできる。
1つの例では、衝突オブジェクトは、パーティーオブジェクト51に対する攻撃のための攻撃オブジェクト56を含む。1つの例では、衝突オブジェクトは、パーティーオブジェクト51のうちの一のオブジェクトの代替となる代替オブジェクト57を含む。
操作オブジェクト55は、ユーザにより操作されるオブジェクトであり、ピンボールゲームにおけるフリッパーに相当する打球オブジェクト55である。図3に示すように、操作オブジェクト55は、一対の打球オブジェクト55である。一対の打球オブジェクト55は、外側の一端部55aを中心として他端側55bを上下に変位するように構成される。
1つの例では、ゲーム制御部33は、メインオブジェクト52と打球オブジェクト55が衝突したと判定したとき、衝突したときの跳ね返り動作に関する物理演算を行い、物理演算結果を用いてメインオブジェクト52の速度を決定する。好ましくは、ゲーム制御部33は、ユーザの操作性を考慮して、操作オブジェクト55からメインオブジェクト52に対して加えられる力及び角度を補正する。なお、操作オブジェクト55は、1つの打球オブジェクト55としてもよいし、3以上の打球オブジェクト55としてもよい。
操作オブジェクト制御部34は、タッチパネル17が検出したタッチに基づいて操作オブジェクト55を動作させる。具体的には、タッチパネル17がタッチを受け付けたとき、操作オブジェクト制御部34は、図7に示すように、打球オブジェクト55の各々の他端側55bを、タッチパネル17がタッチを検出していないときに比べて、上側の所定位置に変位させる。操作オブジェクト制御部34は、タッチパネル17がタッチを受け付けている間は、打球オブジェクト55の他端側55bを所定位置に保持する。図3に示す打球オブジェクト55は、タッチパネルがタッチを受け付けていない状態を示すものである。
1つの例では、左側の打球オブジェクト55が、タッチパネルがタッチを受け付けて図3から図7の状態となるとき、操作オブジェクト制御部34は、他端側55bの先端が、一端部55aを中心として、所定距離又は所定角度反時計回りに変位するように制御する。1つの例では、操作オブジェクト制御部34は、タッチパネルによるタッチ受付時間が一定時間経過した場合、打球オブジェクト55の他端側55bを、図3に示す元の位置に戻して保持する。1つの例では、操作オブジェクト制御部34は、タッチパネル17で検出可能なすべての位置のタッチを受け付けて、同様の処理を実行する。操作オブジェクト55は、衝突オブジェクトのうちの1つと考えることもできるが、ユーザの入力により動作する点で、衝突オブジェクトと異なる。
図8は、ゲーム用画面の一例を示す図である。図8に示すゲームフィールド50内には、攻撃オブジェクト56が配置されていることが確認できる。ゲーム制御部33は、ゲームの進行に応じて敵オブジェクト54を動作させるが、例えば敵オブジェクト54の所定の動作に基づいて攻撃オブジェクト56を発生させる。
ゲーム制御部33は、メインオブジェクト52と攻撃オブジェクト56との衝突を判定するとともに、サブオブジェクト53と攻撃オブジェクト56との衝突を判定する。衝突判定は、既知の方法を用いることができる。すなわち、ゲーム制御部33は、パーティーオブジェクト51のうちの一のオブジェクトと攻撃オブジェクト56との衝突を判定する。ゲーム制御部33は、パーティーオブジェクト51のうちの一のオブジェクトと攻撃オブジェクト56が衝突するとき、衝突したときの物理演算を行わず、衝突に起因して当該一のオブジェクトに設定された速度などの力学的パラメータを変化させない。
本実施形態のゲームにおいては、ゲーム管理者などにより、攻撃オブジェクト56の各々又は攻撃オブジェクト56に対応付けられたアイテム(ビームや武器等)の各々には、対応する個別パラメータが設定される。例えば攻撃オブジェクト56に設定される個別パラメータは、攻撃力や属性などを含む。攻撃オブジェクト56に設定される個別パラメータは、該攻撃オブジェクト56を発生させた敵オブジェクト54の個別パラメータに基づいて設定されてもよい。
1つの例では、ゲーム制御部33は、パーティーオブジェクト51のうちの一のオブジェクトと攻撃オブジェクト56が衝突したと判定した場合、攻撃オブジェクト56に設定された個別パラメータに基づいて、該一のオブジェクトに設定された個別パラメータを変化させる。
1つの例では、ゲーム制御部33は、メインオブジェクト52が攻撃オブジェクト56と衝突したと判定した場合、メインオブジェクト52に対応付けられたプレイヤキャラクタは、攻撃オブジェクト56に設定された攻撃力の個別パラメータに対応する攻撃を受けたと判定する。このとき、ゲーム制御部33は、メインオブジェクト52に対応付けられたプレイヤキャラクタのヒットポイントを減少させるなど、該プレイヤキャラクタの個別パラメータを変化させる。なお、当該攻撃によりプレイヤキャラクタが受けるダメージ量は、該プレイヤキャラクタに設定された個別パラメータに更に基づいて決定されてもよい。
1つの好適な例では、ゲーム制御部33は、攻撃オブジェクト56を予め定められた条件に基づいてゲームフィールド50内を移動させる。このように構成すると、ゲームの進行に応じて、ユーザは攻撃オブジェクト56を避ける操作が求められることになるため、ゲームの興趣性を高めることが可能となる。
図9は、ゲーム用画面の一例を示す図である。ゲーム制御部33は、パーティーオブジェクト51のうちの一のオブジェクトに設定された個別パラメータが所定条件を満たす場合、該一のオブジェクトを消滅させる。ゲーム制御部33は、ゲームフィールド50内の所定位置に、消滅させた該一のオブジェクトに対応する代替オブジェクト57を配置する。図9に示すゲームフィールド50内には、サブオブジェクト53が1つ消滅し、代替オブジェクト57が配置されていることが確認できる。
本実施形態のゲームにおいては、ゲーム管理者などにより、代替オブジェクト57の各々又は代替オブジェクト57に対応付けられたアイテム(棺桶等)の各々には、対応する個別パラメータが設定される。例えば代替オブジェクト57に設定される個別パラメータは、代替元のオブジェクトの情報、代替オブジェクト57が配置された回数を示す配置回数、代替オブジェクト57が衝突された回数を示す衝突回数などを含む。
1つの例では、ゲーム制御部33は、メインオブジェクト52が代替オブジェクト57と衝突したと判定した場合、該代替オブジェクト57に設定された個別パラメータを変化させる。ゲーム制御部33は、代替オブジェクト57に設定された個別パラメータに基づいて、パーティーオブジェクト51のうちの1つのオブジェクトとして、代替オブジェクト57に対応するメインオブジェクト52又はサブオブジェクト53を出現させる。
1つの例では、ゲーム制御部33は、パーティーオブジェクト51のうちのサブオブジェクト53に対応付けられたプレイヤキャラクタのヒットポイントがゼロとなった場合、該サブオブジェクト53を消滅させる。ゲーム制御部33は、消滅させたサブオブジェクト53に対応する代替オブジェクト57を、ゲームフィールド50内の所定位置に配置する。このように、代替オブジェクト57は、ヒットポイントがゼロとなったプレイヤキャラクタに対応するオブジェクトの代替となるものであるため、図9に示すように棺桶のような形状のオブジェクトであることが好ましい。なお、本実施形態では、計算上ヒットポイントがゼロより小さくなる場合であっても、ヒットポイントはゼロになるものとする。所定位置は、ゲームフィールド50内のランダムの位置とすることもできるし、消滅したオブジェクトの消滅したときの位置に関連する位置とすることもできる。
1つの例では、ゲーム制御部33は、パーティーオブジェクト51のうちの2番目を移動するサブオブジェクト53を消滅させた場合、3番目を移動するサブオブジェクト53の位置を2番目に配置して、該サブオブジェクト53を移動させる。1つの例では、ゲーム制御部33は、メインオブジェクト52を消滅させた場合、2番目を移動するサブオブジェクト53をメインオブジェクト52として先頭を移動させ、3番目を移動するサブオブジェクト53の位置を2番目に配置する。
1つの例では、ゲーム制御部33は、代替オブジェクト57を配置したとき、該代替オブジェクト57に設定された衝突回数をゼロに設定する。ゲーム制御部33は、メインオブジェクト52が代替オブジェクト57と衝突したと判定した場合、該代替オブジェクト57に設定された衝突回数を1つ増やす。ゲーム制御部33は、衝突回数が所定回数に到達したとき、代替オブジェクト57に対応するメインオブジェクト52又はサブオブジェクト53を、パーティーオブジェクト51のうちの1つのオブジェクトとして出現させる。1つの例では、ゲーム制御部33は、代替オブジェクト57に設定された配置回数に応じて、所定回数を設定する。例えば、ゲーム制御部33は、代替オブジェクト57の配置回数が1の場合、所定回数を2に設定し、代替オブジェクト57の配置回数が2の場合、所定回数を4に設定することができる。
次に、本実施形態のゲームの一例を簡単に説明する。ゲーム制御部33は、ユーザにより選択可能なプレイヤキャラクタから、メインオブジェクト52に対応付けるキャラクタをユーザに選択させ、当該選択を受け付ける。続いてゲーム制御部33は、プレイヤキャラクタから、サブオブジェクト53に対応付けるキャラクタをユーザに選択させ、当該選択を受け付ける。
ゲーム制御部33は、1つのゲームフィールド50を含むゲーム画面をタッチパネルに表示する。ゲームフィールド50には、1つのメインオブジェクト52及び1又は複数のサブオブジェクト53を含んで構成されるパーティーオブジェクト51、1又は複数の敵オブジェクト54、並びに一対の打球オブジェクト55が配置される。パーティーオブジェクト51を構成する各オブジェクトは、選択を受け付けたプレイヤキャラクタに各々対応し、敵オブジェクト54は敵キャラクタに対応する。メインオブジェクト52は、ピンボールゲームのボールのように仮想的な重力に従って、ゲームフィールド50内を移動し、サブオブジェクト53は、メインオブジェクト52の軌道を追従して移動し、パーティーオブジェクト51は全体として一列で移動する。打球オブジェクト55は、落下するメインオブジェクト52を、ユーザ操作に応じて一端部55aを中心にして上下に動作させて弾くことができるように、重力方向下部に配置される。
ゲーム制御部33は、プレイヤキャラクタに対応するメインオブジェクト52が敵キャラクタに対応する敵オブジェクト54に衝突したと判定したとき、該プレイヤキャラクタが該敵キャラクタを攻撃したと判定し、該敵キャラクタのヒットポイントを減少させる。更に、ゲーム制御部33は、プレイヤキャラクタに対応するサブオブジェクト53が衝突点60を通過したとき、該プレイヤキャラクタが当該敵キャラクタを攻撃したと判定し、該敵キャラクタのヒットポイントを減少させる。一方、プレイヤキャラクタに対応するメインオブジェクト52又はサブオブジェクト53が攻撃オブジェクト56に衝突したとき、ゲーム制御部33は、プレイヤキャラクタが攻撃を受けたと判定し、攻撃を受けたプレイヤキャラクタのヒットポイントを減少させる。
またゲームフィールド50には、一対の打球オブジェクト55の間に、メインオブジェクト52が通過できる空隙が形成され、更に重力方向下部には穴59が形成される。ゲーム制御部33は、メインオブジェクト52が穴59に落下したとき、すなわちパーティーオブジェクト51が穴59に落下したとき、各オブジェクトに対応付けられたプレイヤキャラクタのヒットポイントを減少させるなどのマイナスの効果を与える。
プレイヤキャラクタのヒットポイントがゼロになった場合、ゲーム制御部33は、プレイヤキャラクタは死亡したと判定し、ヒットポイントがゼロになったプレイヤキャラクタに対応するメインオブジェクト52又はサブオブジェクト53を消滅させる。ゲーム制御部33は、消滅させたオブジェクトに対応する棺桶の形状の代替オブジェクト57を、ゲームフィールド50内の所定位置に配置する。
ゲーム制御部33は、メインオブジェクト52が代替オブジェクト57に衝突したと判定したとき、代替オブジェクト57への衝突回数をカウントし、所定回数に到達したとき、代替オブジェクトに対応するメインオブジェクト52又はサブオブジェクト53を出現させる。例えば、ゲーム制御部33は、出現させるオブジェクトを、消滅時の位置又はパーティーの最後尾の位置に出現させる。
例えばゲーム制御部33は、パーティーを構成するすべてのプレイヤキャラクタのヒットポイントがゼロとなる前に、ゲームフィールド50内の敵キャラクタのヒットポイントをゼロとすることで、ユーザが当該ゲームフィールド50をクリアしたと判定する。ゲーム制御部33は、各々のステージごとにゲームフィールド50を設定し、一のステージのゲームフィールド50をクリアすると、次のステージに対応するゲームフィールド50をユーザに提示する。
このように、本実施形態のゲームの目的の1つは、パーティーオブジェクト51が攻撃オブジェクト56に当たらないように、かつ穴59に落下しないようにして、メインオブジェクト52を敵オブジェクト54に当てることである。そして、プレイヤキャラクタのヒットポイントがゼロとなる前に敵キャラクタのヒットポイントをゼロとすることである。
次に、本発明の一実施形態による電子装置10において実行されるゲーム開始前の情報処理の一例について図10に示したフローチャートを用いて説明する。
電子装置10の記憶装置14に記憶されたゲームプログラムをプロセッサ11が実行すると、ユーザにより選択可能なプレイヤキャラクタを示すメインキャラクタ選択画面をタッチパネル17に表示する。電子装置10は、メインキャラクタ選択画面を介して、メインオブジェクト52の選択を受け付ける(ステップ101)。例えば、電子装置10は、メインキャラクタ選択画面をタッチパネル17に表示し、各プレイヤキャラクタの位置に対応する位置へのタッチを受け付け、選択を受け付けたプレイヤキャラクタをメインオブジェクト52に対応付ける。
続いて、電子装置10は、ユーザにより選択可能なプレイヤキャラクタを示すサブキャラクタ選択画面をタッチパネル17に表示し、サブキャラクタ選択画面を介して、サブオブジェクト53の選択を受け付ける(ステップ102)。例えば、電子装置10は、サブキャラクタ選択画面をタッチパネル17に表示し、各プレイヤキャラクタの位置に対応する位置へのタッチを受け付け、選択を受け付けたプレイヤキャラクタをサブオブジェクト53に対応付ける。電子装置10は、サブオブジェクト53の数量に応じて、ステップ102の処理を繰り返し実行する。電子装置10は、選択を受け付けると、ゲームを開始する。
次に、本発明の一実施形態による電子装置10において実行される情報処理について図11に示したフローチャートを用いて説明する。なお本実施形態においては電子装置10としてスマートフォンを用いているが、一般的にスマートフォンは30fps、60fpsなどのフレームレートが設定される。電子装置10は、好ましくは、フレームレートに対応させて一定時間ごとに処理を実行する。
電子装置10は、ゲームを開始すると、図3に示すようなゲームフィールド50を含むゲーム用画面を表示する(ステップ111)。
次に電子装置10は、タッチパネル17がタッチを検出したかどうかを判定することにより入力処理を実行する(ステップ112)。例えば、電子装置10は、タッチパネル17がタッチを受け付けたとき、打球オブジェクト55の各々の他端側55bを、タッチパネル17がタッチを検出していないときに比べて、上側の所定位置に変位させる。例えば、電子装置10は、タッチパネル17がタッチを受け付け続けているとき、打球オブジェクト55の各々の他端側55bを所定位置に保持する。
次に電子装置10は、ゲーム状態を更新する(ステップ113)。ゲーム状態は、各種オブジェクトの力学的パラメータ及び個別パラメータ、並びに衝突判定を含む。例えば、電子装置10は、1つ前のフレームにおける力学的パラメータ、前フレームからの経過時間、仮想的な重力、及び1つ前のフレームにおける衝突判定結果などから各種オブジェクトの力学的パラメータを更新することで、各種オブジェクトの位置及び速度を更新する。例えば経過時間は、フレームレートと経過フレーム数から算出される。更に、電子装置10は、更新された各種オブジェクトの力学的パラメータから衝突判定を行う。更に、電子装置10は、当該フレームにおける衝突判定結果及び1つ前のフレームにおける個別パラメータなどから各種オブジェクトの個別パラメータを更新する。なお、ゲーム状態は、ゲームフィールド50に関する情報なども含むが、本明細書では説明を省略する。
次に電子装置10は、更新されたゲーム状態に基づいて、ゲーム用画面を描画することにより、ゲーム用画面を更新する(ステップ114)。例えば、電子装置10は、更新された各種オブジェクトの力学的パラメータ及び個別パラメータから各種オブジェクトの位置及び状態を確定して、ゲーム用画面を描画することにより、更新されたゲーム用画面を表示装置13に表示する。例えば、更新されたサブオブジェクト53の個別パラメータのヒットポイントがゼロのとき、当該サブオブジェクト53は更新されたゲーム用画面が含むゲームフィールド50から消滅し、代替オブジェクト57が代わりにゲームフィールド50に配置される。
ステップ105において、ゲームが終了しない限り、本処理はステップ102へ戻る。本処理は、必要に応じて、他の処理との同期を持たせてもよい。
なお、本フローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて又は代えて別の処理が実行されてもよい。例えば、ステップ112~ステップ114の処理の順序は入れ替えることができる。
図12は、本発明の一実施形態による電子装置10において実行される情報処理の一例を示すフローチャートである。本フローチャートは、ゲーム状態の更新に関する情報処理であり、特にメインオブジェクト52と敵オブジェクト54の衝突判定に関する処理を示す。
電子装置10は、既知の衝突判定方法により、メインオブジェクト52と敵オブジェクト54の力学的パラメータを用いて、メインオブジェクト52と敵オブジェクト54が衝突したかどうかを判定する(ステップ121)。衝突していない場合、本処理は終了する。衝突した場合、電子装置10は、衝突したと判定したときのメインオブジェクト52の位置を衝突点60として設定する(ステップ122)。次に電子装置10は、力学的パラメータを用いた物理演算により、メインオブジェクト52の物理量を演算する(ステップ123)。次に電子装置10は、メインオブジェクト52に設定された個別パラメータに基づいて、衝突したと判定された敵オブジェクト54に設定された個別パラメータを変化させる(ステップ124)。
図13は、本発明の一実施形態による電子装置10において実行される情報処理を示すフローチャートである。本フローチャートは、ゲーム状態の更新に関する情報処理であり、特にサブオブジェクト53と衝突点60に関する処理を示す。
電子装置10は、サブオブジェクト53が衝突点60を通過したかどうかを判定する(ステップ131)。通過していない場合、本処理は終了する。通過した場合、電子装置10は、サブオブジェクト53に設定された個別パラメータに基づいて、衝突したと判定された敵オブジェクト54に設定された個別パラメータを変化させる(ステップ132)。
図14は、本発明の一実施形態による電子装置10において実行される情報処理の一例を示すフローチャートである。本フローチャートは、ゲーム状態の更新に関する情報処理であり、特にパーティーオブジェクト51のうちの一のオブジェクト52(53)と攻撃オブジェクト56の衝突判定に関する処理を示す。
電子装置10は、既知の衝突判定方法により、メインオブジェクト52及びサブオブジェクト53と攻撃オブジェクト56の力学的パラメータを用いて、パーティーオブジェクト51のうちの一のオブジェクトと攻撃オブジェクト56が衝突したかどうかを判定する(ステップ141)。衝突していない場合、本処理は終了する。衝突した場合、電子装置10は、攻撃オブジェクト56に設定された個別パラメータに基づいて、衝突したと判定された該一のオブジェクトに設定された個別パラメータを変化させる(ステップ142)。
図15は、本発明の一実施形態による電子装置10において実行される情報処理の一例を示すフローチャートである。本フローチャートは、ゲーム状態の更新に関する情報処理であり、特にパーティーオブジェクト51のうちの一のオブジェクト52(53)に関する処理を示す。
電子装置10は、パーティーオブジェクト51のうちの一のオブジェクトに設定された個別パラメータが所定条件を満たすかどうかを判定する(ステップ151)。所定条件を満たさない場合、本処理は終了する。所定条件を満たす場合、電子装置は、当該一のオブジェクトを消滅させ、(ステップ152)、ゲームフィールド50内の所定位置に、消滅させた該一のオブジェクトに対応する代替オブジェクト57を配置する(ステップ153)。
図16は、本発明の一実施形態による電子装置10において実行される情報処理の一例を示すフローチャートである。本フローチャートは、ゲーム状態の更新に関する情報処理であり、特に代替オブジェクト57に関する処理を示す。
電子装置10は、既知の衝突判定方法により、メインオブジェクト52と代替オブジェクト57の力学的パラメータを用いて、メインオブジェクト52と攻撃オブジェクト56が衝突したかどうかを判定する(ステップ161)。衝突していない場合、本処理は終了する。衝突した場合、電子装置10は、衝突回数をカウントするなど、衝突したと判定された代替オブジェクト57に設定された個別パラメータを変化させる(ステップ162)。更に電子装置10は、代替オブジェクト57に設定された個別パラメータが所定条件を満たすかどうかを判定する(ステップ163)。所定条件を満たさない場合、本処理は終了する。所定条件を満たす場合、電子装置10は、代替オブジェクト57に対応するメインオブジェクト52又はサブオブジェクト53を、パーティーオブジェクト51のうちの1つのオブジェクトとして出現させる(ステップ164)。
次に、本発明の実施形態による電子装置10の主な作用効果について説明する。本実施形態では、ゲーム制御部33は、メインオブジェクト52が仮想的な重力に従ってゲームフィールド50内を移動し、かつサブオブジェクト53がメインオブジェクト52の軌道を追従して移動するように動作を制御する。メインオブジェクト52は、ピンボールゲームにおけるボールに相当するオブジェクトであり、ゲーム制御部33は、パーティーオブジェクト51のうちのメインオブジェクト52と衝突オブジェクトとの衝突を判定する。衝突オブジェクトは敵オブジェクト54を含み、ゲーム制御部33は、サブオブジェクト53と敵オブジェクト54の衝突判定を行わない。ここで、メインオブジェクト52及びサブオブジェクト53は、プレイヤキャラクタに対応するプレイヤオブジェクトであり、パーティーオブジェクト51を構成する。このパーティーオブジェクト51は、各プレイヤキャラクタに対応するオブジェクトから構成されるものであり、RPGゲームにおけるパーティーに対応するものである。
このような構成とすることにより、本実施形態では、メインオブジェクト52の動作の観点ではピンボールゲームの要素を含みつつ、パーティーオブジェクト51の観点からはRPGゲームの要素を含むゲームを実現している。これにより、ユーザはピンボールゲームに加えてRPGゲームをプレイすることが可能となるため、ゲームの興趣性を高めることが可能となる。
また本実施形態では、ゲーム制御部33は、ユーザにより選択可能なプレイヤオブジェクトからメインオブジェクト52の選択を受け付け、該プレイヤオブジェクトから、選択を受け付けたメインオブジェクト52とは異なるサブオブジェクト53の選択を受け付ける。これにより、ユーザは、各々が異なる個別パラメータが設定されている複数のプレイヤキャラクタからパーティーを構成するキャラクタを選択することが可能となるため、ゲームの興趣性を高めることが可能となる。
また本実施形態では、ゲーム制御部33は、メインオブジェクト52と敵オブジェクト54が衝突したと判定したとき、衝突したときにメインオブジェクト52に作用する物理量を演算し、演算結果の物理量を用いてメインオブジェクト52の速度を決定する。このとき、ゲーム制御部33は、各オブジェクトに設定された個別パラメータから算出されたダメージ量を用いて、衝突したと判定した敵オブジェクト54に対応付けられた敵キャラクタのヒットポイントを減少させるなど、該敵キャラクタの個別パラメータを変化させる。このようにして、本実施形態では、ユーザの操作に応じて、メインオブジェクト52に対応付けられたプレイヤキャラクタが敵オブジェクト54に対応付けられた敵キャラクタへ攻撃することを可能とする。その後、メインオブジェクト52が敵オブジェクト54により跳ね返ったように動作することで、プレイヤキャラクタが敵キャラクタを攻撃したことをユーザに明示することができ、ゲームの興趣性を高めることが可能となる。
またこのとき、ゲーム制御部33は、メインオブジェクト52と敵オブジェクト54が衝突したと判定したときのメインオブジェクト52の位置を衝突点60として設定する。ゲーム制御部33は、サブオブジェクト53が衝突点60を通過したときに、通過したサブオブジェクト53に設定された個別パラメータから算出されたダメージ量を用いて、衝突したと判定した敵オブジェクト54に対応付けられた敵キャラクタのヒットポイントを減少させるなど、該敵キャラクタの個別パラメータを変化させる。このようにして、本実施形態では、サブオブジェクト53に対応付けられたプレイヤキャラクタが敵オブジェクト54に対応付けられた敵キャラクタへ攻撃することを可能とする。サブオブジェクト53がメインオブジェクト52に追従して衝突点60で跳ね返ったように動作することで、サブオブジェクト53に対応付けられたプレイヤキャラクタが敵キャラクタを攻撃したことをユーザに明示することができ、ゲームの興趣性を高めることが可能となる。
例えば、パーティーオブジェクト51が2つのサブオブジェクト53を含む場合、メインオブジェクト52に対応付けられたプレイヤキャラクタに続いて、2つのサブオブジェクト53の各々に対応付けられたプレイヤキャラクタが各々敵オブジェクト54に対応付けられた敵キャラクタにダメージを与えることになる。
また本実施形態では、ゲーム制御部33は、メインオブジェクト52と攻撃オブジェクト56との衝突を判定するとともに、サブオブジェクト53と攻撃オブジェクト56との衝突を判定する。ゲーム制御部33は、パーティーオブジェクト51のうちの一のオブジェクトと攻撃オブジェクト56が衝突するとき、衝突したときの物理演算を行わず、当該一のオブジェクトに設定された速度などの力学的パラメータを変化させない。ゲーム制御部33は、パーティーオブジェクト51のうちの一のオブジェクトと攻撃オブジェクト56が衝突したと判定した場合、該一のオブジェクトに対応付けられたプレイヤキャラクタのヒットポイントを減少させるなど、該プレイヤキャラクタの個別パラメータを変化させる。このように、本実施形態では、メインオブジェクト52に対応付けられたプレイヤキャラクタが攻撃オブジェクト56から攻撃を受ける可能性があるように構成することで、ゲームの興趣性を低下させてしまうことを防止することが可能となる。
また本実施形態では、ゲーム制御部33は、パーティーオブジェクト51のうちの一のオブジェクトに対応付けられたプレイヤキャラクタのヒットポイントがゼロとなった場合、該一のオブジェクトを消滅させる。ゲーム制御部33は、消滅させた一のオブジェクトに対応する代替オブジェクト57を、ゲームフィールド50内の所定位置に配置する。ゲーム制御部33は、メインオブジェクト52が代替オブジェクト57と衝突したと判定した場合、該代替オブジェクト57に設定された衝突回数を1つ増やす。ゲーム制御部33は、衝突回数が所定回数に到達したとき、代替オブジェクト57に対応する一のオブジェクトを、パーティーオブジェクト51のうちの1つのオブジェクトとして出現させる。このように、本実施形態では、死亡してしまったプレイヤキャラクタに対応するオブジェクトを消滅させるだけはなく、代替オブジェクト57として出現させ、ユーザの操作に応じて消滅させたオブジェクトを復活させることができる。これにより、ゲームの興趣性を低下させてしまうことを防止することが可能となる。
上記の作用効果は、特に言及が無い限り、他の実施形態や他の実施例においても同様である。
[システムにより実現される実施形態]
図17は本発明の一実施形態によるゲームシステム1の全体構成の一例を示す。図10に示すように、ゲームシステム1は、複数の電子装置10と、サーバ20と備え、電子装置10及びサーバ20は、インターネットなどのネットワーク2に接続され、互いに通信可能である。なお、本実施形態のゲームシステム1は、サーバ‐クライアントシステムを想定して説明するが、ゲームシステム1は、PtoPのようなサーバ20を備えないシステムとすることもできる。
電子装置10は、図1に示すものと同様のハードウェア構成を備え、本実施形態においてもスマートフォンとする。サーバ20は、電子装置10において実行可能なゲームを提供するサーバ装置であり、1又は複数のコンピュータから構成される。
サーバ20は、オンラインゲームの進行を制御するための制御用プログラム等の様々なプログラムやゲームにおいて用いられる各種データを記憶する。
1つの例では、サーバ20は、電子装置10において実行可能なゲームアプリケーションを、電子装置10に提供できるように構成される。電子装置10は、ダウンロードしたゲームアプリケーションを実行すると、定期的に、又は必要に応じてサーバ20とデータの送受信を行い、ゲームを進行する。例えばサーバ20は、電子装置10において実行されたゲームに必要な各種設定情報及び履歴情報などを記憶する。この場合、電子装置10が、ゲーム制御部33の機能を有する。
1つの例では、サーバ20は、ウェブサーバであり、電子装置10に対してゲームサービスを提供する。電子装置10は、ウェブページを表示するためのHTMLデータをサーバ20から取得し、取得したHTMLデータを解析して、当該ウェブページを表示する。この場合、電子装置10と通信するサーバ20が、ゲーム制御部33の機能を有する。
1つの例では、ゲームシステム1は、1つのゲームフィールド50において複数のユーザがプレイ可能なゲームを提供する。例えば、敵オブジェクト54は、他のユーザが操作するオブジェクトとすることができる。
本発明の他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現するプログラムや該プログラムを格納したコンピュータ読み取り可能な記憶媒体とすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現する方法とすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現するプログラムをコンピュータに供給することができるサーバとすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現する仮想マシンとすることもできる。
以下に本発明の実施形態の変形例について説明する。以下で述べる変形例は、矛盾が生じない限りにおいて、適宜組み合わせて本発明の任意の実施形態に適用することができる。
1つの変形例では、電子装置10の入力装置12は、電子装置10に接続されたコントローラ上のボタン、キーボード、又はマウスなどであり、電子装置10はタッチパネル17を備えていない。この場合、入力部31は、ユーザの操作に応じて入力装置12が受け付ける操作情報を取得する。入力装置12から入力の有無が、電子装置10がタッチパネルを備えている場合のタッチパネルへのタッチ検出の有無に対応する。
1つの変形例では、ゲーム制御部33は、ゲームフィールド50内に、パーティーオブジェクト51の代わりとしてメインオブジェクト52のみを表示する。図18は、ゲーム用画面の一例を示す図である。この場合、ゲーム制御部33は、サブオブジェクト53(又はサブオブジェクト53に対応するプレイヤキャラクタ)の選択を受け付けることができ、メインオブジェクト52に対応付けられたプレイヤキャラクタが死亡したときに、サブオブジェクト53をメインオブジェクト52として出現させることができる。本例示においては、ゲームフィールド50内にパーティーを明示的に表示しないが、本例示においても、ユーザはピンボールゲームに加えてRPGゲームをプレイすることが可能であるため、ゲームの興趣性を高めることが可能となる。
1つの変形例では、ゲーム制御部33は、メインオブジェクト52及びサブオブジェクト53を、例えばゲームフィールド50の内容に応じて、自動的に決定する。1つの変形例では、パーティーオブジェクトを構成する複数のオブジェクトに、同じプレイヤキャラクタを対応付けることができる。
1つの変形例では、ゲーム制御部33は、サブオブジェクト53がメインオブジェクト52と一定の時間間隔を保ってメインオブジェクト52に追従して移動するように制御する。例えばこの場合、ゲーム制御部33は、2番目で先頭に追従して移動するサブオブジェクト53は5つ前のフレームにおけるメインオブジェクト52の位置となるよう、かつ3番目で2番目に追従して移動するサブオブジェクト53は5つ前のフレームにおける2番目で移動するサブオブジェクト53の位置となるように制御する。
1つの変形例では、ゲーム制御部33は、サブオブジェクト53が、メインオブジェクト52の軌道を追従せず、メインオブジェクト52と一定の位置関係を保ちながら移動するように制御する。他の変形例では、ゲーム制御部33は、サブオブジェクト53が、メインオブジェクト52の軌道を追従せず、メインオブジェクト52の軌道と一定の距離関係を保ちながら移動するように制御する。このような場合、例えばサブオブジェクト53はメインオブジェクト52の軌道上にある衝突点60を通過しない場合があることなどから、より難易度の高いゲームを実現し、ゲームの興趣性を高めることが可能となる。
1つの変形例では、ゲーム制御部33は、メインオブジェクト52と敵オブジェクト54が衝突するとき、物理演算に加えて、更に個別パラメータに基づいて、メインオブジェクト52の速度を決定する。1つの変形例では、ゲーム制御部33は、メインオブジェクト52と攻撃オブジェクト56が衝突するときも、衝突したときの跳ね返り動作に関する物理演算を行い、物理演算結果を用いてメインオブジェクト52の速度を決定する。
1つの変形例では、ゲーム制御部33が、プレイヤキャラクタが敵キャラクタを攻撃したと判定したとき、ゲーム制御部33は、プレイヤキャラクタに設定された攻撃力などの個別パラメータに加えて、敵キャラクタに設定された守備力などの個別パラメータを更に用いて当該攻撃により敵キャラクタに与えたダメージ量を算出する。
1つの変形例では、ゲーム制御部33は、メインオブジェクト52と敵オブジェクト54が衝突したと判定した場合、メインオブジェクト52に設定された個別パラメータに加えて、更にサブオブジェクト53に設定された個別パラメータに基づいて、衝突したと判定した敵オブジェクト54に設定された個別パラメータを変化させる。この場合、ゲーム制御部33は、サブオブジェクト53が衝突点60を通過したときに、衝突したと判定された敵オブジェクト54に設定された個別パラメータを変化させない。
1つの変形例では、ゲーム制御部33は、ゲームフィールド50に、仮想的な重力を設定せず、仮想的な重力以外の反発係数を含む力学的パラメータを用いた物理演算を行う。例えば、力学的パラメータとして反発係数1のみを適用した場合、ゲーム制御部33は、メインオブジェクト52を、ブロック崩しゲームにおけるボールと同様に移動させることが可能となる。
以上に説明した処理又は動作において、あるステップにおいて、そのステップではまだ利用することができないはずのデータを利用しているなどの処理又は動作上の矛盾が生じない限りにおいて、処理又は動作を自由に変更することができる。また以上に説明してきた各実施例は、本発明を説明するための例示であり、本発明はこれらの実施例に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。