【文献】
クーニン,"ハングリーフィッシュのレビューと序盤攻略 - スマホゲームならアプリゲット",アプリゲット,日本,アプリゲット株式会社,2011年 3月23日,[2018年2月6日検索],URL,https://appget.com/appli/view/57984/
【文献】
iLuvAndroidGames,"Hungry Fish 2 Gameplay - YouTube",YouTube,日本,YouTube,LLC,2013年 4月14日,[2018年2月6日検索],URL,https://www.youtube.com/watch?v=p823ZeY8uvg
【文献】
"ケータイ国盗り合戦",「電撃ゲームアプリ Vol.9 マックピープル 2013年5月号増刊」,日本,株式会社アスキー・メディアワークス,2013年 4月13日,第9巻,p.156,(特に、「NEW! 鷹狩り」の欄)
(58)【調査した分野】(Int.Cl.,DB名)
前記ノンプレイヤオブジェクト制御手段は、前記ノンプレイヤオブジェクトに基づいて設定される所定範囲内に、当該ノンプレイヤオブジェクトのパラメータ以上である前記プレイヤオブジェクト、および当該ノンプレイヤオブジェクトのパラメータより大きい他のノンプレイヤオブジェクトの少なくともいずれか一つが位置するか否かを判定し、
その結果、前記所定範囲に当該プレイヤオブジェクト、および当該他のノンプレイヤオブジェクトの少なくともいずれか一つが位置すると判定した場合、
所定範囲に位置する当該プレイヤオブジェクトまたは当該他のノンプレイヤオブジェクトから離れる方向に、前記ノンプレイヤオブジェクトが移動するよう制御することを特徴とする請求項1記載のゲームプログラム。
前記ノンプレイヤオブジェクト制御手段は、前記ノンプレイヤオブジェクトに基づいて設定される所定範囲内に、前記ノンプレイヤオブジェクトのパラメータより小さい前記プレイヤオブジェクト、および他のノンプレイヤオブジェクトの少なくともいずれか一つが位置するか否かを判定し、
その結果、前記所定範囲に当該プレイヤオブジェクト、および当該他のノンプレイヤオブジェクトの少なくともいずれか一つが位置すると判定した場合、
前記所定範囲内に位置する当該プレイヤオブジェクトまたは当該他のノンプレイヤオブジェクトに近づく方向に、前記ノンプレイヤオブジェクトが移動するよう制御することを特徴とする請求項1または2に記載のゲームプログラム。
前記プレイヤオブジェクト制御手段は、前記衝突判定手段によって前記プレイヤオブジェクトと前記ノンプレイヤオブジェクトとが衝突したと判定された場合、当該ノンプレイヤオブジェクトのパラメータと当該プレイヤオブジェクトのパラメータとを比較し、
その結果、前記プレイヤオブジェクトのパラメータが前記ノンプレイヤオブジェクトのパラメータ未満であるとき、ユーザにとって不利な所定のペナルティを与えることを特徴とする請求項1〜3のいずれか一つに記載のゲームプログラム。
【発明を実施するための形態】
【0014】
(実施形態)
図面を参照して、本発明の実施形態であるゲームプログラムについて説明する。
【0015】
なお、本発明の構成および各フローチャートの処理手順については、本実施形態に限定されるものではない。
【0016】
<ゲームシステムの説明>
図1は、ゲームシステム1の構成を説明する図である。本実施形態のゲームシステム1は、ネットワーク4を介して相互に通信可能なサーバ装置2、ゲーム装置3で構成される。
【0017】
ゲーム装置3は、インターネット通信などの通信回線31を備える。これにより、ゲーム装置3はネットワーク4に接続することができる。また、このゲーム装置3は、
図1に示す各機能を備える。
【0018】
<ゲーム装置のハードウェア構成>
ゲーム装置3は、
図1に示すようにバス300上に制御部30、通信回線31、および記憶部32を備える。
【0019】
制御部30は、CPU30A、ROM(フラッシュメモリ)30B、画像プロセッサ30C、RAM30D、操作部30E、および音声プロセッサ30Fを備える。
【0020】
CPU30Aは、後述するように、ゲーム装置3で実行されるゲームを制御する。
【0021】
ROM30Bには、ゲームプログラムを実行するための基本プログラムが記憶されている。
【0022】
画像プロセッサ30Cは、ゲーム画面5(
図2〜6参照)を生成可能なGPU(Graphics Processing Unit:グラフィックス・プロセッシング・ユニット)を備えている。画像プロセッサ30Cには、ビデオRAM(VRAM)33が接続されている。VRAM33には表示部34が接続されている。表示部34は、ディスプレイ(タッチパネル500)を備える。画像プロセッサ30Cは、CPU30Aの指示に従って仮想ゲーム空間を生成する。この仮想ゲーム空間を仮想カメラで撮影した画像などがゲーム画面5としてVRAM33上に描画される。
【0023】
RAM30Dには、CPU30Aがゲームプログラムを実行する際に使用されるワークエリアが設定される。ワークエリアには、ゲームの進行に伴って発生する各種パラメータなどが含まれる。
【0024】
操作部30Eは、タッチパネル500を含む。操作部30Eは、ユーザによるタッチパネル500への操作内容(タップ、フリック等)および操作位置などの操作信号を検出する。操作部30Eは、この操作信号をCPU30Aに送信する。
【0025】
音声プロセッサ30Fは、ゲーム音声を生成するDSP(Digital Signal Processor:デジタル・シグナル・プロセッサ)を備える。音声プロセッサ30Fは、生成したゲーム音声をD/Aコンバータを含むアンプ35に送信する。アンプ35は、この音声信号を増幅してスピーカ36に送信する。
【0026】
通信回線31は、インターネット回線などを介してデータ通信を行う。データ通信によってゲーム装置3およびサーバ装置2との間で通信が行われることにより、ゲームプログラムのダウンロードおよび他のゲーム装置3との通信対戦などが行われる。ゲームプログラムは、インターネット回線でダウンロードするのみならず、USBなどのインタフェース経由で取得することもできる。また、通信対戦はインターネット回線で対戦するのみならず、近距離無線通信などで対戦することもできる。
【0027】
また、通信回線31は、ゲームプレイに必要なユーザ情報(ユーザIDなど)、ユーザと他のユーザとの関係情報(フレンド情報など)およびゲームスコアなどをサーバ装置2およびゲーム装置3に送信したり、他のユーザのゲームスコアなどを受信したりする。
【0028】
記憶部32は、ハードディスクであり、たとえば、予め記憶されたゲームプログラムのほか、サーバ装置2からダウンロードしたゲームプログラムなどが記憶される。このゲームプログラムには、プログラム本体のほか、ゲームの進行に必要なキャラクタ画像、背景画像およびステージ画像などの様々なゲームデータが含まれる。
【0029】
<ゲームの説明>
以下、本実施形態におけるゲーム装置3において実行されるゲームプログラムによって提供されるゲームについて説明する。
【0030】
本ゲームは、所定の制限時間内(たとえば、99秒)に、プレイヤが操作部30Eを介して魚型のプレイヤオブジェクト50を操作し、プレイヤオブジェクト50の敵であるノンプレイヤオブジェクト60に衝突することで魚群オブジェクト70を形成し、得点を競うゲームである。
【0031】
(プレイヤオブジェクト50)
プレイヤオブジェクト50は、所定のサイズの魚型オブジェクトであり、所定の速度で移動することができる。また、所定条件(たとえば、10体のノンプレイヤオブジェクト60と衝突)を満たすことにより、プレイヤオブジェクト50は進化し、レベル、大きさおよび最高速度などのパラメータが変化する。以下、レベル(パラメータ)が1〜3と異なるプレイヤオブジェクト50を、それぞれプレイヤオブジェクト50A〜50Cとして説明する。
【0032】
(ノンプレイヤオブジェクト60)
ノンプレイヤオブジェクト60は、所定のサイズの魚型オブジェクトであり、所定の速度で移動することができる。また、予め設定されたレベル、大きさおよび最高速度のパラメータを有し、プレイヤオブジェクト50と敵対する敵オブジェクトである。また、ノンプレイヤオブジェクト60は、プレイヤオブジェクト50と区別して表示される。ノンプレイヤオブジェクト60は、パラメータが異なる複数種類のノンプレイヤオブジェクト60が生成され、仮想ゲーム空間を移動する。以下、レベル(パラメータ)が1〜3と異なるノンプレイヤオブジェクト60を、それぞれノンプレイヤオブジェクト60A〜60Cとして説明する。
【0033】
各ノンプレイヤオブジェクト60は、自身のパラメータ以上の(自身のパラメータより大きい)プレイヤオブジェクト50および他のノンプレイヤオブジェクト60から離れる(逃げる)ように移動する。
【0034】
具体的には、各ノンプレイヤオブジェクト60に、各ノンプレイヤオブジェクト60の所定部位(たとえば、頭)を中心とする所定の範囲を設定し、その範囲に自身のパラメータより大きいプレイヤオブジェクト50または他のノンプレイヤオブジェクト60が位置するか否かを判定する。ここで、所定範囲内に該当するプレイヤオブジェクト50または他のノンプレイヤオブジェクト60がいる場合、そのオブジェクトから離れる(逃げる)ように移動する制御を行う。
【0035】
また、各ノンプレイヤオブジェクト60は、自身のパラメータ未満の(自身のパラメータより小さい)プレイヤオブジェクト50および他のノンプレイヤオブジェクト60に近づく(衝突する)ように移動する。
【0036】
具体的には、各ノンプレイヤオブジェクト60に、各ノンプレイヤオブジェクト60の所定部位(たとえば、頭)を中心とする所定の範囲を設定し、その範囲に自身のパラメータ未満のプレイヤオブジェクト50または他のノンプレイヤオブジェクト60が位置するか否かを判定する。ここで、所定範囲内に該当するプレイヤオブジェクト50または他のノンプレイヤオブジェクト60がいる場合、そのオブジェクトに近づく(衝突する)ように移動する制御を行う。
【0037】
(魚群オブジェクト70)
魚群オブジェクト70は、プレイヤオブジェクト50を先頭に形成される魚群である。プレイヤオブジェクト50が魚群を形成していない状態で、プレイヤオブジェクト50のパラメータ以下(プレイヤオブジェクト50のパラメータより小さいまたは同一)のノンプレイヤオブジェクト60と衝突すると、そのノンプレイヤオブジェクト60に対応した追従オブジェクト700を加えた魚群オブジェクト70を形成することができる。
【0038】
すなわち、プレイヤオブジェクト50のパラメータが、ノンプレイヤオブジェクト60のパラメータ以上である場合、そのノンプレイヤオブジェクト60に対応した追従オブジェクト700加えた魚群オブジェクト70を形成することができる。追従オブジェクト700は、先頭のプレイヤオブジェクト50に追従するように移動制御される。
【0039】
さらに、プレイヤオブジェクト50が魚群を形成している状態で、プレイヤオブジェクト50のパラメータ以下(プレイヤオブジェクト50のパラメータより小さいまたは同一)のノンプレイヤオブジェクト60と衝突すると、そのノンプレイヤオブジェクト60に対応する追従オブジェクト700を魚群オブジェクト70に追加することができる。このように、ユーザは多数のノンプレイヤオブジェクト60に接触することで、魚群オブジェクト70を大きくすることができる(追従オブジェクト700を増やすことができる)。
【0040】
所定数以上の追従オブジェクト700を魚群オブジェクト70に加えると(魚群オブジェクト70が大きくなると)プレイヤオブジェクト50が進化し、このプレイヤオブジェクト50のレベルおよび最高速度などのパラメータが増加する。プレイヤオブジェクト50のパラメータが増加すると、魚群オブジェクト70に加えることができる追従オブジェクト700(ノンプレイヤオブジェクト60)の種類が増加する。
【0041】
一方、プレイヤオブジェクト50が魚群を形成していない状態で、プレイヤオブジェクト50のパラメータ以上の(プレイヤオブジェクト50のパラメータより大きい)ノンプレイヤオブジェクト60と接触すると、ゲームオーバー(ペナルティ)となる。
【0042】
また、プレイヤオブジェクト50が魚群オブジェクト70を形成している状態で、プレイヤオブジェクト50のパラメータより大きいノンプレイヤオブジェクト60と接触した場合も、ゲームオーバーとなる。
【0043】
なお、本実施形態では、プレイヤオブジェクト50がノンプレイヤオブジェクト60と衝突することで、プレイヤオブジェクト50に基づいた魚群オブジェクト70を形成することについて説明する。しかし、これに限らず、ノンプレイヤオブジェクト60が他のノンプレイヤオブジェクト60に衝突することで、ノンプレイヤオブジェクト60に基づいた魚群オブジェクト70を形成するようにしてもよい。
【0044】
(追従オブジェクト700)
追従オブジェクト700は、魚群オブジェクト70の先頭に位置するプレイヤオブジェクト50に追従するように移動するオブジェクトである。すなわち、ユーザは、操作部30Eを介してプレイヤオブジェクト50を操作することで、魚群オブジェクト70全体を移動させることができる。
【0045】
また、プレイヤオブジェクト50のパラメータ以上の(プレイヤオブジェクト50より大きい)ノンプレイヤオブジェクト60と、追従オブジェクト700とが接触することで、この追従オブジェクト700は魚群オブジェクト70から消去される。すなわち、即座にゲーム―オーバーとならないが、魚群オブジェクト70を構成する追従オブジェクト700の数が減少する(魚群オブジェクト70が小さくなる)というペナルティが与えられる。
【0046】
このように本ゲームは、プレイヤオブジェクト50のパラメータ以下の(プレイヤオブジェクト50のパラメータより小さい)ノンプレイヤオブジェクト60を追いかけつつ、プレイヤオブジェクト50のパラメータより大きいノンプレイヤオブジェクト60から逃げるという、刻々と変化するゲーム進行のスリル感を味わうことができる興趣性の高いゲームである。
【0047】
(ゲーム画面5)
図2〜
図6は、ゲーム装置3の表示部34に表示されるゲーム画面5の一例を示す図である。以下、各図に示すゲーム画面5について説明する。なお、各図に示す矢印は、各オブジェクトの攻撃対象を示す。プレイヤオブジェクト50は、自身のパラメータ以下(自身のパラメータより小さいまたは同一)のオブジェクトを攻撃対象とする。また、ノンプレイヤオブジェクト60は、自身のパラメータ未満(自身のパラメータより小さい)オブジェクトを攻撃対象とする。
【0048】
図2に示すゲーム画面5には、プレイヤオブジェクト50(50A)、ノンプレイヤオブジェクト60A、60Bおよび60Cが表示される。ここで、プレイヤオブジェクト50Aのパラメータは1であり、ノンプレイヤオブジェクト60A〜60Cのパラメータはそれぞれ1〜3である。
【0049】
プレイヤオブジェクト50A(パラメータ1)の攻撃対象は、矢先が向いているノンプレイヤオブジェクト60A(パラメータ1)である。プレイヤオブジェクト50Aがノンプレイヤオブジェクト60Aを攻撃(衝突)することにより、魚群オブジェクト70にそのノンプレイヤオブジェクト60Aに対応した追従オブジェクト700を追加することができる。
【0050】
また、衝突したノンプレイヤオブジェクト60の種類等に応じて所定の得点が加算される。たとえば、パラメータが1であるノンプレイヤオブジェクト60Aを魚群オブジェクト70に追加した場合は1点加算され、パラメータが2であるノンプレイヤオブジェクト60Bを魚群オブジェクト70に追加した場合は2点加算される。
【0051】
追従オブジェクト700の数が所定値を超過した場合、プレイヤオブジェクト50が進化し、パラメータが増加する。たとえば、プレイヤオブジェクト50のパラメータが1から2に増加する条件は、追従オブジェクト700の数が10を超過することであり、パラメータが2から3に増加する条件は追従オブジェクト700の数が20を超過することである。なお、加算される得点または進化の条件などはこれに限られず、適宜選択されるものである。
【0052】
ノンプレイヤオブジェクト60B(パラメータ2)の攻撃対象は、矢先が向いているノンプレイヤオブジェクト60A(パラメータ1)およびプレイヤオブジェクト50A(パラメータ1)である。ノンプレイヤオブジェクト60Bがノンプレイヤオブジェクト60Aを攻撃(衝突)することにより、そのノンプレイヤオブジェクト60Aは仮想ゲーム空間から消去される。また、ノンプレイヤオブジェクト60Bがプレイヤオブジェクト50Aを攻撃(衝突)することにより、ゲームオーバーとなる。
【0053】
ノンプレイヤオブジェクト60C(パラメータ3)の攻撃対象は、矢先が向いているノンプレイヤオブジェクト60A(パラメータ2)、ノンプレイヤオブジェクト60B(パラメータ1)およびプレイヤオブジェクト50A(パラメータ1)である。ノンプレイヤオブジェクト60Cがノンプレイヤオブジェクト60Aおよびノンプレイヤオブジェクト60Bを攻撃(衝突)することにより、そのノンプレイヤオブジェクト60Aおよびノンプレイヤオブジェクト60Bは仮想ゲーム空間から消去される。また、ノンプレイヤオブジェクト60Cがプレイヤオブジェクト50Aを攻撃(衝突)することにより、ゲームオーバーとなる。
【0054】
プレイヤオブジェクト50は、自身のパラメータが同一のノンプレイヤオブジェクト60を攻撃できる。しかし、ノンプレイヤオブジェクト60は、パラメータが同一のノンプレイヤオブジェクト60を攻撃することができないよう制御される。すなわち、
図2を例にとれば、ノンプレイヤオブジェクト60A(パラメータ1)は、プレイヤオブジェクト50Aを含むいずれのオブジェクトも攻撃できない。
【0055】
ユーザが操作部30Eを介した操作に基づいて、プレイヤオブジェクト50Aは、ノンプレイヤオブジェクト60Bおよびノンプレイヤオブジェクト60Cから逃げながら、ノンプレイヤオブジェクト60Aを攻撃(衝突)する。
【0056】
ノンプレイヤオブジェクト60Aは、自身のパラメータより大きいプレイヤオブジェクト50A、ノンプレイヤオブジェクト60Bおよびノンプレイヤオブジェクト60Cから離れる(逃げる)ように移動する。
【0057】
ノンプレイヤオブジェクト60Bは、自身のパラメータより大きいノンプレイヤオブジェクト60Cから離れる(逃げる)ように移動する。また、ノンプレイヤオブジェクト60Bは、自身のパラメータ未満の(自身のパラメータより小さい)プレイヤオブジェクト50Aおよびノンプレイヤオブジェクト60Aに近づく(衝突する)ように移動する。
【0058】
ノンプレイヤオブジェクト60Cは、自身のパラメータ未満の(自身のパラメータより小さい)プレイヤオブジェクト50A、ノンプレイヤオブジェクト60Aおよびノンプレイヤオブジェクト60Bに近づく(衝突する)ように移動する。
【0059】
図3は、
図2に示す状況において、プレイヤオブジェクト50Aが、3体のノンプレイヤオブジェクト60Aに衝突した後の状態を示す図である。
【0060】
同図に示すゲーム画面5には、ノンプレイヤオブジェクト60A〜60Cのほか、プレイヤオブジェクト50Aを先頭にした魚群オブジェクト70Aが表示される。プレイヤオブジェクト50Aが3体のノンプレイヤオブジェクト60Aと衝突したことにより、魚群オブジェクト70Aには3体のノンプレイヤオブジェクト60Aに対応した追従オブジェクト700が追加されている。
【0061】
プレイヤオブジェクト50がノンプレイヤオブジェクト60に衝突した場合、両オブジェクトのパラメータを比較する。その結果、プレイヤオブジェクト50のパラメータがノンプレイヤオブジェクト60のパラメータ以上である場合、魚群オブジェクト70にこのノンプレイヤオブジェクト60に対応した追従オブジェクト700が追加される。
【0062】
魚群オブジェクト70A(追従オブジェクト700)は、プレイヤオブジェクト50Aに依存する。そのため、追従オブジェクト700は、プレイヤオブジェクト50Aおよび他のノンプレイヤオブジェクト60との関係に応じて逃げたり、近づいたりといった移動制御は実行されない。追従オブジェクト700は、プレイヤオブジェクト50Aに追従するように移動する。
【0063】
また、追従オブジェクト700は、プレイヤオブジェクト50Aのパラメータより大きいノンプレイヤオブジェクト60Bまたは60Cと衝突した場合に、仮想ゲーム空間から消去される。
【0064】
このように、プレイヤオブジェクト50は、自身のパラメータ以下の(自身のパラメータより小さいまたは同一の)ノンプレイヤオブジェクト60に衝突することを繰り返し、追従オブジェクト700の数を増やすことができる。一方、追従オブジェクト700が、プレイヤオブジェクト50より大きいノンプレイヤオブジェクト60に衝突することで、追従オブジェクト700の数が減少する。
【0065】
また、追従オブジェクト700の数が所定数を超過した場合(たとえば、10を超過した場合)、プレイヤオブジェクト50Aのパラメータは2となり、プレイヤオブジェクト50Bの形状に進化(変化)する。
【0066】
図4は、プレイヤオブジェクト50A(魚群オブジェクト70A)が、プレイヤオブジェクト50Bに進化(変化)した状態を示す図である。同図に示すように、魚群オブジェクト70Aに代わって、プレイヤオブジェクト50Bが表示される。
【0067】
同図に示すゲーム画面5には、ノンプレイヤオブジェクト60A〜60Cのほか、プレイヤオブジェクト50Bが表示される。ここで、プレイヤオブジェクト50Bのパラメータは2であり、ノンプレイヤオブジェクト60A〜60Cのパラメ―タはそれぞれ1〜3である。
【0068】
プレイヤオブジェクト50B(パラメータ2)の攻撃対象は、矢先が向いているノンプレイヤオブジェクト60A(パラメータ1)およびノンプレイヤオブジェクト60B(パラメータ2)である。プレイヤオブジェクト50Bがノンプレイヤオブジェクト60Aおよびノンプレイヤオブジェクト60Bを攻撃(衝突)することにより、魚群オブジェクト70にそのノンプレイヤオブジェクト60Aおよびノンプレイヤオブジェクト60Bに対応した追従オブジェクト700を追加することができる。
【0069】
追従オブジェクト700を魚群オブジェクト70に追加した場合、ノンプレイヤオブジェクト60の種類等に応じて所定の得点が加算される。
【0070】
ノンプレイヤオブジェクト60B(パラメータ2)の攻撃対象は、矢先が向いているノンプレイヤオブジェクト60A(パラメータ1)である。ノンプレイヤオブジェクト60Bがノンプレイヤオブジェクト60Aを攻撃(衝突)することにより、そのノンプレイヤオブジェクト60Aは仮想ゲーム空間から消去される。
【0071】
ノンプレイヤオブジェクト60C(パラメータ3)の攻撃対象は、矢先が向いているノンプレイヤオブジェクト60A(パラメータ1)、ノンプレイヤオブジェクト60B(パラメータ2)およびプレイヤオブジェクト50B(パラメータ2)である。ノンプレイヤオブジェクト60Cがノンプレイヤオブジェクト60Aおよびノンプレイヤオブジェクト60Bを攻撃(衝突)することにより、そのノンプレイヤオブジェクト60Aおよびノンプレイヤオブジェクト60Bは仮想ゲーム空間から消去される。また、ノンプレイヤオブジェクト60Cがプレイヤオブジェクト50Aを攻撃(衝突)することにより、ゲームオーバーとなる。
【0072】
ユーザが操作部30Eを介した操作に基づき、プレイヤオブジェクト50Bは、ノンプレイヤオブジェクト60Cから逃げながら、ノンプレイヤオブジェクト60Aおよびノンプレイヤオブジェクト60Bを攻撃(衝突)する。
【0073】
ノンプレイヤオブジェクト60Aは、自身のパラメータより大きいプレイヤオブジェクト50Bおよびノンプレイヤオブジェクト60Cから離れる(逃げる)ように移動する。
【0074】
ノンプレイヤオブジェクト60Bは、自身のパラメータと同一のプレイヤオブジェクト50Bおよび自身のパラメータより大きいノンプレイヤオブジェクト60Cから離れる(逃げる)ように移動する。また、ノンプレイヤオブジェクト60Bは、自身のパラメータより小さいノンプレイヤオブジェクト60Aに近づく(衝突する)ように移動する。
【0075】
ノンプレイヤオブジェクト60Cは、自身のパラメータより小さいプレイヤオブジェクト50B、ノンプレイヤオブジェクト60Aおよびノンプレイヤオブジェクト60Bに近づく(衝突する)ように移動する。
【0076】
図5は、
図4に示す状況において、プレイヤオブジェクト50Bが、2体のノンプレイヤオブジェクト60Aと1体のノンプレイヤオブジェクト60Bとに衝突した後の状態を示す図である。
【0077】
同図に示すゲーム画面5には、ノンプレイヤオブジェクト60A〜60Cのほか、プレイヤオブジェクト50Bを先頭にした魚群オブジェクト70Bが表示される。プレイヤオブジェクト50Bが2体のノンプレイヤオブジェクト60Aと1体のノンプレイヤオブジェクト60Bと衝突したことにより、魚群オブジェクト70Bには2体のノンプレイヤオブジェクト60Aと1体のノンプレイヤオブジェクト60B(追従オブジェクト700)が追加されている。
【0078】
魚群オブジェクト70B(追従オブジェクト700)は、プレイヤオブジェクト50Bに依存する。そのため、追従オブジェクト700は、プレイヤオブジェクト50Bおよび他のノンプレイヤオブジェクト60との関係に応じて逃げたり、近づいたりといった移動制御は実行されない。追従オブジェクト700は、プレイヤオブジェクト50Bに追従するように移動する。
【0079】
また、追従オブジェクト700は、プレイヤオブジェクト50Bのパラメータより大きいノンプレイヤオブジェクト60Cに衝突した場合に、仮想ゲーム空間から消去される。
【0080】
このように、プレイヤオブジェクト50は、自身のパラメータ以下の(自身のパラメータより小さいまたは同一の)ノンプレイヤオブジェクト60に衝突することを繰り返し、追従オブジェクト700の数を増やすことができる。一方、追従オブジェクト700が、プレイヤオブジェクト50より大きいノンプレイヤオブジェクト60に衝突することで、追従オブジェクト700の数が減少する。
【0081】
また、追従オブジェクト700の数が所定数を超過した場合(たとえば、20を超過した場合)、プレイヤオブジェクト50Bのパラメータが3となり、プレイヤオブジェクト50Cの形状に進化(変化)する。
【0082】
図6は、プレイヤオブジェクト50Bが、プレイヤオブジェクト50Cに進化(変化)した状態を示す図である。
【0083】
同図に示すゲーム画面5には、ノンプレイヤオブジェクト60A〜60Cのほか、プレイヤオブジェクト50Cが表示される。ここで、プレイヤオブジェクト50Cのパラメータは3であり、ノンプレイヤオブジェクト60A〜60Cのパラメータはそれぞれ1〜3である。
【0084】
プレイヤオブジェクト50C(パラメータ3)の攻撃対象は、矢先が向いているノンプレイヤオブジェクト60A(パラメータ1)およびノンプレイヤオブジェクト60B(パラメータ2)およびノンプレイヤオブジェクト60C(パラメータ3)である。プレイヤオブジェクト50Cがノンプレイヤオブジェクト60A〜60Cを攻撃(衝突)することにより、魚群オブジェクト70にそのノンプレイヤオブジェクト60A〜60Cに対応した追従オブジェクト700を追加することができる。
【0085】
ノンプレイヤオブジェクト60B(パラメータ2)の攻撃対象は、矢先が向いているノンプレイヤオブジェクト60A(パラメータ1)である。ノンプレイヤオブジェクト60Bがノンプレイヤオブジェクト60Aを攻撃(衝突)することにより、そのノンプレイヤオブジェクト60Aは仮想ゲーム空間から消去される。
【0086】
ノンプレイヤオブジェクト60C(パラメータ3)の攻撃対象は、矢先が向いているノンプレイヤオブジェクト60A(パラメータ1)、ノンプレイヤオブジェクト60B(パラメータ2)である。ノンプレイヤオブジェクト60Cがノンプレイヤオブジェクト60Aおよびノンプレイヤオブジェクト60Bを攻撃(衝突)することにより、そのノンプレイヤオブジェクト60Aおよびノンプレイヤオブジェクト60Bは仮想ゲーム空間から消去される。
【0087】
また、図示しないが、プレイヤオブジェクト50Cのパラメータより大きいノンプレイヤオブジェクト60を仮想ゲーム空間に生成してもよい。プレイヤオブジェクト50Cは、このノンプレイヤオブジェクト60から攻撃されることにより、ゲームオーバーとなる。
【0088】
ユーザが操作部30Eを介した操作に基づいて、プレイヤオブジェクト50Cは、ノンプレイヤオブジェクト60A〜60Cを攻撃(衝突)する。
【0089】
ノンプレイヤオブジェクト60Aは、自身のパラメータより大きいプレイヤオブジェクト50C、ノンプレイヤオブジェクト60Bおよびノンプレイヤオブジェクト60Cから離れる(逃げる)ように移動する。
【0090】
ノンプレイヤオブジェクト60Bは、自身のパラメータより大きいプレイヤオブジェクト50Cおよびノンプレイヤオブジェクト60Cから離れる(逃げる)ように移動する。また、ノンプレイヤオブジェクト60Bは、自身のパラメータより小さいノンプレイヤオブジェクト60Aに近づく(衝突する)ように移動する。
【0091】
ノンプレイヤオブジェクト60Cは、自身のパラメータと同一のプレイヤオブジェクト50Cから離れる(逃げる)ように移動する。また、ノンプレイヤオブジェクト60Cは、自身のパラメータより小さいノンプレイヤオブジェクト60Aおよびノンプレイヤオブジェクト60Bに近づく(衝突する)ように移動する。
【0092】
ここまで、パラメータ1〜3のオブジェクトについて説明したが、本実施形態はこれに限らない。パラメータが4以上においても、各オブジェクトのパラメータの大小によって攻撃対象が変化する。また、パラメータ∞のノンプレイヤオブジェクト60を仮想ゲーム空間に生成してもよく、このノンプレイヤオブジェクト60は、全てのオブジェクトを攻撃できるようにしてもよい。また、ノンプレイヤオブジェクト60同士は攻撃しないようにしてもよい。
【0093】
なお、追従オブジェクト700とノンプレイヤオブジェクト60とが衝突した場合、このノンプレイヤオブジェクト60のパラメータとプレイヤオブジェクト50のパラメータとを比較するとした。この場合において、ノンプレイヤオブジェクト60のパラメータがプレイヤオブジェクト50のパラメータ未満である場合、追従オブジェクト700を仮想ゲーム空間から消去しない。
【0094】
<制御部の説明>
図7は、ゲーム装置3の機能ブロック図である。
ゲーム装置3は、記憶部32に記憶されたゲームプログラムと制御部30との協働によって同図に示す機能を実現する。また、制御部30は、操作入力部300A、ゲーム画面生成部300B、描画部300C、衝突判定部300D、パラメータ管理部300E、ノンプレイヤオブジェクト制御部300F、プレイヤオブジェクト制御部300G、魚群オブジェクト制御部300Hおよびゲーム進行部300Iを備える。
【0095】
操作入力部300Aは、ユーザが操作する操作部30E(タッチパネル500)からの操作信号を受信する。ユーザは、ゲーム装置3のタッチパネル500に接触することで操作を入力する。操作内容には、タップ、フリック、長押し、スワイプなどがある。操作入力部300Aは、タッチパネル500の接触座標、操作内容などの操作情報を取得して衝突判定部300Dへ送信する。
【0096】
ゲーム画面生成部300Bは、制御部30およびゲームプログラムの協働によって実現される。ゲーム画面生成部300Bは、仮想ゲーム空間上でプレイヤオブジェクト50、ノンプレイヤオブジェクト60および魚群オブジェクト70(追従オブジェクト700)が海などの水中ステージを移動するゲーム画面5、および制限時間やスコアなどのユーザインターフェース(UI)を、進行するゲームのタイミングごと(フレームごと)に演算・生成する。この演算結果(描画情報)は、描画部300C等に出力される。
【0097】
描画部300Cは、制御部30、VRAM33、表示部34およびゲームプログラムの協働によって実現される。描画部300Cは、ゲーム画面生成部300Bから入力される仮想ゲーム空間、プレイヤオブジェクト50、ノンプレイヤオブジェクト60、魚群オブジェクト70(追従オブジェクト700)および制限時間やスコアなどのユーザインターフェース(UI)などの描画情報に基づいて、タッチパネル500上に表示するためのゲーム画面5を描画する。
【0098】
衝突判定部300Dは、ゲーム画面生成部300Bからの情報を受けて、各オブジェクトが衝突したか否かを判定する。また、衝突判定部300Dは、各オブジェクトがいずれのオブジェクトに衝突したかを判定し、その判定結果をゲーム画面生成部300B、パラメータ管理部300Eおよびゲーム進行部300Iに送信する。
【0099】
なお、衝突判定部300Dから判定結果を受信したゲーム画面生成部300Bは、プレイヤオブジェクト50がノンプレイヤオブジェクト60に衝突したゲーム画面5を生成する。その後、ゲーム画面生成部300Bは、これらの情報を描画部300Cに送信する。
【0100】
パラメータ管理部300Eは、衝突判定部300Dの判定結果を受信し、所定条件を満たす場合にはプレイヤオブジェクト50のパラメータおよびモデルを更新する。また、更新したプレイヤオブジェクト50のパラメータに基づいて、プレイヤオブジェクト50とノンプレイヤオブジェクト60との関係性を更新する。
【0101】
パラメータ管理部300Eは、更新した関係性に基づいて、ノンプレイヤオブジェクト60の態様を更新する。すなわち、パラメータ管理部300Eは、ノンプレイヤオブジェクト60がプレイヤオブジェクト50に攻撃される態様のノンプレイヤオブジェクト60であるのか、プレイヤオブジェクト50を攻撃する態様のノンプレイヤオブジェクト60であるのかを判断して管理する。
【0102】
ノンプレイヤオブジェクト制御部300Fは、衝突判定部300Dによってノンプレイヤオブジェクト60(敵オブジェクト)同士が衝突したと判定した場合、衝突したノンプレイヤオブジェクト60同士のパラメータを比較し、パラメータが小さい方のノンプレイヤオブジェクト60を仮想ゲーム空間から消去する。ノンプレイヤオブジェクト制御部300Fは、これらの情報をゲーム画面生成部300Bへ送信する。
【0103】
さらに、ノンプレイヤオブジェクト制御部300Fは、更新した態様に基づいて、各ノンプレイヤオブジェクト60の行動を制御する。すなわち、ノンプレイヤオブジェクト制御部300Fは、ノンプレイヤオブジェクト60を中心とする所定範囲内にプレイヤオブジェクト50または他のノンプレイヤオブジェクト60が存在するか否かを判定する。
【0104】
所定範囲内にプレイヤオブジェクト50または他のノンプレイヤオブジェクト60がいる場合、そのオブジェクトから逃げるように移動するのかまたは近づくように(攻撃するように)移動するのかを決定してノンプレイヤオブジェクト60の行動を制御する。また、ノンプレイヤオブジェクト制御部300Fは、これらの情報をゲーム画面生成部300Bへ送信する。
【0105】
プレイヤオブジェクト制御部300Gは、衝突判定部300Dによってプレイヤオブジェクト50とノンプレイヤオブジェクト60が衝突したと判定した場合、このプレイヤオブジェクト50のパラメータとノンプレイヤオブジェクト60のパラメータを比較する。
【0106】
その比較の結果、プレイヤオブジェクト50のパラメータがノンプレイヤオブジェクト60のパラメータ以上(ノンプレイヤオブジェクト60のパラメータより大きいまたは同一)であるとき、このノンプレイヤオブジェクト60に対応する追従オブジェクト700を魚群オブジェクト70に加える。プレイヤオブジェクト制御部300Gは、これらの情報をゲーム画面生成部300Bへ送信する。
【0107】
魚群オブジェクト制御部300Hは、魚群オブジェクト70に含まれる追従オブジェクト700をプレイヤオブジェクト50に追従するように移動させる。また、魚群オブジェクト制御部300Hは、衝突判定部300Dによって追従オブジェクト700とノンプレイヤオブジェクト60とが衝突したと判定した場合、この追従オブジェクト700のパラメータとノンプレイヤオブジェクト60のパラメータとを比較する。
【0108】
その比較の結果、プレイヤオブジェクト50のパラメータがノンプレイヤオブジェクト60のパラメータ未満である(ノンプレイヤオブジェクト60のパラメータより小さい)とき、この追従オブジェクト700を仮想ゲーム空間(魚群オブジェクト70)から消去する。魚群オブジェクト制御部300Hは、これらの情報をゲーム画面生成部300Bへ送信する。
【0109】
ゲーム進行部300Iは、ゲームの制限時間、得点(ゲーム結果)および所定のアイテムなどを管理する。制限時間は、1回のゲームの制限時間(たとえば、99秒)である。ゲームを開始してからカウントダウンし制限時間が0になるとゲームを終了する。なお、ゲーム進行部300Iは、プレイヤオブジェクト50が自身のパラメータより小さいノンプレイヤオブジェクト60に衝突する毎、または所定期間内に所定回数連続して自身のパラメータより小さいノンプレイヤオブジェクト60に衝突した場合に、制限時間を延長する(たとえば、1.5秒以内に3回衝突すると、制限時間が3秒延長する)。
【0110】
ゲーム進行部300Iは、制限時間および得点などをゲーム画面生成部300Bへ送信する。また、ゲーム進行部300Iは、得点を記憶部32に記憶し、サーバ装置2または他のゲーム装置3に得点情報を送信できるよう管理する。
【0111】
記憶部32は、ゲーム画面5に表示する画像データ、得点および再生する楽曲や効果音などの音声データなどを格納する。
【0112】
<処理の流れ>
次に、上記ゲーム装置3の処理の流れについて説明する。
図8は、本ゲーム装置3のプレイヤオブジェクト50の処理の流れを示すフローチャートである。この処理は、所定の間隔(たとえば60fps間隔)で実行される。なお、ゲームの全体的なフローなどについては省略する。また、各フローの順序は本実施形態に限らず、適宜変更されるものであってもよい。
【0113】
まず、衝突判定部300Dは、プレイヤオブジェクト50がノンプレイヤオブジェクト60と衝突したか否かを判定する(ステップS101)。衝突判定部300Dが、衝突したと判定した場合(ステップS101:YES)、プレイヤオブジェクト制御部300Gはプレイヤオブジェクト50のパラメータとノンプレイヤオブジェクト60のパラメータとを比較する(ステップS102)。
【0114】
そして、プレイヤオブジェクト制御部300Gがプレイヤオブジェクト50のパラメータがノンプレイヤオブジェクト60のパラメータ以上(ノンプレイヤオブジェクト60より大きいまたは同一)であると判定した場合(ステップ103:YES)、魚群オブジェクト70にそのノンプレイヤオブジェクト60に対応した追従オブジェクト700を追加する(ステップS104)。
【0115】
次に、ゲーム進行部300Iは、衝突したノンプレイヤオブジェクト60に基づいた得点および追従オブジェクト700の数を更新する(ステップS105)。
【0116】
パラメータ管理部300Eは、追従オブジェクト700の数が所定値を超えたか否かを判定し(ステップ106)、所定値を超えたと判定した場合は(ステップ106:YES)プレイヤオブジェクト50のパラメータを更新し、プレイヤオブジェクト50を進化(変化)させる(ステップ107)。
【0117】
なお、制御部30は、衝突判定部300DがステップS101にて、プレイヤオブジェクト50がノンプレイヤオブジェクト60と衝突したと判定しない場合は(ステップS101:NO)、このフローの処理を終了する。
【0118】
また、制御部30は、プレイヤオブジェクト制御部300GがステップS103にてプレイヤオブジェクト50のパラメータがノンプレイヤオブジェクト60のパラメータ未満(ノンプレイヤオブジェクト60よりと小さい)であると判定した場合(ステップS103:NO)は、ゲームオーバーとなる処理を実行し(ステップS108)、このフローの処理を終了する。
【0119】
制御部30は、ステップS106にて、パラメータ管理部300Eが追従オブジェクト700の数が所定値を超えていないと判定した場合は(ステップ106:NO)、プレイヤオブジェクト50のパラメータを更新せずにこのフローの処理を終了する。
【0120】
図9は、本ゲーム装置3の各ノンプレイヤオブジェクト60の処理の流れを示すフローチャートである。この処理は、所定の間隔(たとえば60fps間隔)で実行され、各ノンプレイヤオブジェクト60すべてに対してそれぞれ実行される。なお、各フローの順序は本実施形態に限らず、適宜変更されるものであってもよい。
【0121】
まず、ノンプレイヤオブジェクト制御部300Fは、ノンプレイヤオブジェクト60を中心とする所定範囲内にプレイヤオブジェクト50または他のノンプレイヤオブジェクト60(以下、他のオブジェクトという)が位置するか否かを判定する(ステップS201)。なお、所定範囲に位置するか否かの判定は、仮想ゲーム空間内の座標に基づいて判定する。
【0122】
ノンプレイヤオブジェクト制御部300Fは、所定範囲内に他のオブジェクトが位置すると判定した場合(ステップS201:YES)、当該他のオブジェクトのパラメータがノンプレイヤオブジェクト60のパラメータより大きいか否かを判定する(ステップS202)。
【0123】
他のオブジェクトのパラメータがノンプレイヤオブジェクト60のパラメータより大きいと判定した場合(ステップS202:YES)、制御対象であるノンプレイヤオブジェクト60を他のオブジェクトから離れる方向に移動するよう制御する。
【0124】
一方、他のオブジェクトのパラメータが制御対象であるノンプレイヤオブジェクト60のパラメータより小さいと判定した場合(ステップS202:NO)、制御対象であるノンプレイヤオブジェクト60を他のオブジェクトに近づく方向に移動する(衝突する)よう制御する(ステップ204)。
【0125】
次に、衝突判定部300Dは、ノンプレイヤオブジェクト60同士が衝突したか否かを判定する(ステップS205)。すなわち、他のオブジェクトが他のノンプレイヤオブジェクト60であるか否かを判定する。
【0126】
そして、ノンプレイヤオブジェクト60同士が衝突したと判定した場合(ステップS205:YES)、ノンプレイヤオブジェクト制御部300Fは、両ノンプレイヤオブジェクト60のパラメータを比較し(ステップS206)、パラメータが小さい方のノンプレイヤオブジェクト60を仮想ゲーム空間から消去する(ステップS207)。
【0127】
なお、制御部30は、パラメータ管理部300EがステップS205にて、ノンプレイヤオブジェクト60とプレイヤオブジェクト50が衝突したと判定した場合は(ステップS205:NO)、このフローの処理を終了する。なお、プレイヤオブジェクト50とノンプレイヤオブジェクト60が衝突した際の処理は、
図7で説明したプレイヤオブジェクト50のフローにて処理される。
【0128】
<作用効果>
本実施形態によれば、プレイヤオブジェクト50のパラメータ(すなわち、プレイヤオブジェクト50とノンプレイヤオブジェクト60との関係性)がゲームを進める中で刻々と変化する。そのため、プレイヤオブジェクト50の敵となるノンプレイヤオブジェクト60が目まぐるしく変化する。従来のゲームによれば、プレイヤオブジェクト50の敵となるノンプレイヤオブジェクト60は予め固定されており興趣性などを欠くことになっていた。しかし、本実施形態によれば、ゲームのスリル感やゲームの攻略の戦略が豊富になり、興趣性の高いゲームを提供することができる。
【0129】
また、ノンプレイヤオブジェクト60同士の関係性によって、ノンプレイヤオブジェクト60が移動をする。そのため、ユーザはノンプレイヤオブジェクト60の動きが予測できない。従来のゲームによれば、ノンプレイヤオブジェクト60の敵はプレイヤオブジェクト50のみであり、プレイヤオブジェクト50中心でゲームが進行しておりリアルな魚の世界を体験することはできなくなっていた。しかし、本実施形態によれば、プレイヤオブジェクト50が、多数存在するオブジェクトの中の一つとして仮想ゲーム空間内で共存し、弱肉強食というリアル感およびスリル感のある興趣性の高いゲームを提供することができる。
【0130】
<他の実施例>
次に、本実施形態における他の実施例について説明する。これらの他の実施例においても、上記作用効果を奏することができる。
【0131】
本実施形態では、魚型のオブジェクトが登場するゲームに関するゲームプログラムを例にとって説明した。しかし、本件発明は、これに限られない。オブジェクトは魚に限らず、ゲーム性はシューティングゲーム、アクションゲームおよびRPGであってもよい。
【0132】
本実施形態では、プレイヤオブジェクト50とノンプレイヤオブジェクト60とのパラメータ(レベル)を比較することで、各オブジェクトの関係性を変化させていた。
しかし、これに代えてまたはこれに加えて、プレイヤオブジェクト50およびノンプレイヤオブジェクト60に予め定められた大きさ、速さ、攻撃力、防御力および属性などのパラメータを用いても良い。そして、これらのパラメータがゲーム進行中に刻々と変化することで、各オブジェクトの関係性を変化させてもよい。
【0133】
また、ゲーム進行中に所定の条件を満たすことにより、プレイヤオブジェクト50とノンプレイヤオブジェクト60との関係性に変化をもたらしても良い。たとえば、所定の条件として、仮想ゲーム空間上に所定のアイテムなどを設置し、プレイヤオブジェクト50がそのアイテムをとることにより、プレイヤオブジェクト50のパラメータが大きくなったり小さくなったりする。または、ゲーム進行中に、パラメータが大きいオブジェクトが小さいオブジェクトを攻撃する関係性を逆転させ、パラメータが小さいオブジェクトが大きいオブジェクトを攻撃する関係性に変化するようにしてもよい。
【0134】
なお、これらは所定のアイテムをとることに限らず、制限時間の残時間(たとえば残り10秒)によって関係性を変化するようにしてもよい。これらにより、一発逆転的な要素が生れより興趣性が高いゲームを提供することができる。また、プレイヤオブジェクト50が進化する際に、仮想ゲーム空間に所定の大きさの波動を出現させ、その波動に当たったノンプレイヤオブジェクト60はパラメータに関わらず、魚群オブジェクト70に加えられるようにしてもよい。
【0135】
本実施形態では、プレイヤオブジェクト50が、プレイヤオブジェクト50のパラメータより大きいノンプレイヤオブジェクト60と接触するとゲームオーバー(ペナルティ)となるとした。しかし、このペナルティはゲームオーバーに限らない。たとえば、制限時間が短くなる、一定期間プレイヤオブジェクトの移動が不可能になるまたは得点が減少するなど、ユーザにとって不利となるものであればよい。
【0136】
本実施形態では、追従オブジェクト700とノンプレイヤオブジェクト60とが衝突した場合、このノンプレイヤオブジェクト60のパラメータとプレイヤオブジェクト50のパラメータとを比較して、ノンプレイヤオブジェクト60のパラメータがプレイヤオブジェクト未満である場合、追従オブジェクト700を仮想ゲーム空間から消去しないとした。
【0137】
しかし、これに代えて、追従オブジェクト700とノンプレイヤオブジェクト60とが衝突した場合、この追従オブジェクト700のパラメータとこのノンプレイヤオブジェクト60のパラメータとを比較する。そして、ノンプレイヤオブジェクト60のパラメータが追従オブジェクト700のパラメータより大きい場合、この追従オブジェクト700を仮想ゲーム空間から消去してもよい。これにより、より自然な魚型オブジェクト同士の関係が表現できる。
【0138】
(ノンプレイヤオブジェクトによる魚群オブジェクトの形成)
本実施形態では、魚群オブジェクト70はプレイヤオブジェクト50のみが形成可能であり、それに基づいてパラメータが変化するとしていた。
しかし、これに代えてまたはこれに加えて、ノンプレイヤオブジェクト60が魚群オブジェクト70を形成するようにし、ノンプレイヤオブジェクト60のパラメータが変化してもよい。
【0139】
ノンプレイヤオブジェクト60同士が衝突した場合、パラメータが大きい方のノンプレイヤオブジェクト60に基づいて魚群オブジェクト70が形成される。そして、その魚群オブジェクト70に、パラメータが小さい方のノンプレイヤオブジェクト60に対応した追従オブジェクト700が追加される。
【0140】
たとえば、ノンプレイヤオブジェクト60Bが、ノンプレイヤオブジェクト60Aと衝突することで、ノンプレイヤオブジェクト60Bに基づいた魚群オブジェクト70を形成する。そして、その魚群オブジェクト70に、ノンプレイヤオブジェクト60Aに対応した追従オブジェクト700が追加される。また、この追従オブジェクト700が所定数を超過することで、ノンプレイヤオブジェクト60B(パラメータ2)はノンプレイヤオブジェクト60C(パラメータ3)に進化する。
【0141】
また、各オブジェクトは追従オブジェクト700を奪い合うことができる。たとえば、すでにプレイヤオブジェクト50または他のノンプレイヤオブジェクト60(以下、第1ノンプレイヤオブジェクト60)が形成する魚群オブジェクト70(以下、第1魚群オブジェクト70という)の追従オブジェクト700(以下、第1追従オブジェクト700という)と、ノンプレイヤオブジェクト60(以下、第2ノンプレイヤオブジェクト60)とが衝突した場合、このノンプレイヤオブジェクト60に基づいて新たな魚群オブジェクト70(以下、第2魚群オブジェクト70)が形成される。そして、この第1追従オブジェクト700は、第1魚群オブジェクト70から消去され、この第2魚群オブジェクト70の追従オブジェクト(以下、第2追従オブジェクト700)として追加される。
【0142】
この場合、第2ノンプレイヤオブジェクト60がプレイヤオブジェクト50と衝突したときに、第2ノンプレイヤオブジェクト60のパラメータとプレイヤオブジェクト50のパラメータを比較して、第2ノンプレイヤオブジェクト60のパラメータの方が大きければ、第2魚群オブジェクト70に、当該第1追従オブジェクト700に対応した第2追従オブジェクト700を追加する。またこれに限らず、第2ノンプレイヤオブジェクト60のパラメータと当該第1追従オブジェクト700のパラメータを比較して、第2ノンプレイヤオブジェクト60のパラメータが第1追従オブジェクト700のパラメータより大きければ、第2魚群オブジェクト70に、当該第1追従オブジェクト700に基づいた第2追従オブジェクト700を追加してもよい。
【0143】
これにより、プレイヤオブジェクト50およびノンプレイヤオブジェクト60の両方が魚群オブジェクト70を構成することとなり、追従オブジェクト700の数が所定数を超過することで、各オブジェクトのパラメータが更新される。よって、各オブジェクトの関係性がより刻々と変化し、さらにスリル感のある興趣性の高いゲームを提供することができる。
【0144】
(他のプレイヤオブジェクトによる魚群オブジェクトの形成)
本実施形態では、プレイヤオブジェクト50と、プレイヤオブジェクト50に敵対するノンプレイヤオブジェクト60との関係性に基づいてゲーム進行するとした。
しかし、これに代わってまたはこれに加えて、プレイヤオブジェクト50(以下、第1プレイヤオブジェクト50)と、この第1プレイヤオブジェクト50に敵対する他のユーザが操作するプレイヤオブジェクト50(以下、第2プレイヤオブジェクト50)が参加できる、複数人参加型のゲーム進行をするようにしてもよい。
【0145】
これにより、第1プレイヤオブジェクト50および第2プレイヤオブジェクト50の両方がそれぞれの魚群オブジェクト70(第1魚群オブジェクト70および第2魚群オブジェクト70)を形成することができる。また、この第1プレイヤオブジェクト50および第2プレイヤオブジェクト50は、それぞれの追従オブジェクト700(第1追従オブジェクト700および第2追従オブジェクト700)の数が所定数を超過することで、自身のパラメータが変化する。
【0146】
従来、ユーザが操作するプレイヤオブジェクト50以外が敵となるバトルロイヤル戦または複数のチームなどに分かれて対戦を行うチーム戦においては、マッチング時などに敵と味方が決定されゲーム進行中にそれらの関係が変化することがなかった。しかし、この他の実施例によれば、複数人で実行されるゲーム進行中に敵味方が刻々と変化するため、より興趣性が高いゲームを提供することができる。