【課題】操作が容易でライトユーザでも楽しむことができる新規なスクロールタイプのゲームを実現するゲームプログラム、およびこのゲームプログラムを実行するゲームシステムを提供すること。
【解決手段】本発明のゲームプログラムは、コンピュータを、仮想ゲーム空間上にプレイヤオブジェクトと少なくとも一つの衝突オブジェクトとを生成するオブジェクト生成手段、プレイヤオブジェクトと衝突オブジェクトとが表示されるゲーム画面を生成するゲーム画面生成手段、操作部への操作に基づいて少なくとも一つの衝突オブジェクトのうち移動速度を変更する対象である一つ以上の速度変更オブジェクトを指定するオブジェクト指定手段、操作部への操作に基づいて速度変更オブジェクトの移動速度を変化させる速度変更手段、およびプレイヤオブジェクトと衝突オブジェクトとが衝突したか否かを判定する衝突判定手段として機能させる。
【発明を実施するための形態】
【0010】
(実施形態)
図面を参照して本発明の実施形態であるゲームシステムおよびこれを起動させるプログラムについて説明する。なお、本発明の構成および各フローチャートの処理手順については、本実施形態に限定されるものではない。
【0011】
<ゲームシステムの説明>
図1はゲームシステム1の構成を説明する図である。本実施形態のゲームシステム1は、ネットワーク4を介して相互に通信可能なサーバ装置2および携帯端末3で構成される。
【0012】
携帯端末3は、ゲーム画面5が表示されるタッチパネル500を備えたスマートフォンであり、ユーザ情報などに基づいてゲームを実行するゲーム装置に相当する。また、携帯端末3は、携帯通信網である3G/4G通信機能31を備えるとともに、無線LAN(Wi−Fi)通信機能32を備える。これにより、携帯端末3は、アクセスポイント(不図示)を介してネットワーク4に接続することができる。また、この携帯端末3は、
図2に示す機能を備える。
【0013】
図3は、携帯端末のディスプレイ(タッチスクリーン)に表示されたゲーム進行中のゲーム画面5の一例を示す図である。携帯端末3上では、ゲーム画面5がいわゆる横スクロールすることで進行するゲームが実行される。
【0014】
<ゲームの説明>
この実施形態のゲームは、
図3に示すように、横スクロールするゲーム画面5上で、ユーザが操作するプレイヤオブジェクト(以下、「プレイヤキャラクタ」という)51がスクロール方向Aと相対的に反対の方向に進むことで進行する。ゲーム画面5上には、衝突オブジェクト(以下、「敵キャラクタ」という)52が登場する。ユーザは、プレイヤキャラクタ51が敵キャラクタ52と衝突しないように衝突オブジェクト52の移動速度を適宜操作することにより、ゲームを進行させる。ユーザには、それまでのゲームの進行具合(ゲーム時間)に応じて得点が付与される。得点は、ゲーム画面5上の得点表示欄54に表示される。ユーザは、たとえば、ゲームの終了までに付与された得点を他のユーザと競い合ってゲームを楽しむ。
【0015】
本実施形態で実施されるゲームの詳細について、以下に説明する。
図3に示すように、ゲーム画面5の左側に配置されているオブジェクトがプレイヤキャラクタ51である。プレイヤキャラクタ51は、右側から左側に向かってスクロールするゲーム画面5上を右側に向かって進行する。本実施形態では、ユーザの操作によってはプレイヤキャラクタ51のゲーム画面5上の位置座標は変更されない。一方、敵キャラクタ52は、
図3の破線矢印520に示すようにゲーム画面5の上方から下方に向かって落下してくる。本実施形態では、敵キャラクタ52はゲーム画面5の上端部のランダムな位置から落下してくる。
図3においてユーザがタッチパネル500に対してなんらの操作もしない場合、プレイヤキャラクタ51は敵キャラクタ52と衝突してしまう。プレイキャラクタ51と敵キャラクタ52とが衝突した場合、衝突前の状態からゲームが再スタートする。
【0016】
これに対し、たとえば、ユーザがタッチパネル500上に表示されたスライドバー53を操作して敵キャラクタ52の移動速度を速くした場合、
図4の破線矢印520に示すように、移動速度が速くなった敵キャラクタ52はプレイヤキャラクタ51と衝突することなくゲーム画面5の下方へと消えていく。同様に、スライドバー53を操作し、敵キャラクタ52の移動速度を遅くした場合、
図5の破線矢印520に示すように、移動速度が遅くなった敵キャラクタ52はプレイヤキャラクタ51と衝突することなくゲーム画面5の左方へと消えていく。
【0017】
このように、ユーザは、プレイヤキャラクタ51の位置と、敵キャラクタ52の位置および移動速度とを勘案して、スライドバー53を適宜操作する(あるいは、操作しない)ことにより、プレイヤキャラクタ51と敵キャラクタ52とが衝突しないようにしてゲームを進める。プレイヤキャラクタ51が敵キャラクタ52と衝突しない場合、ゲーム画面5はスクロールし続ける。一方、プレイヤキャラクタ51が敵キャラクタ52と衝突した場合、衝突回数iがカウントされ積算される。そして、衝突回数iが3回となったとき、それまでのゲーム進行に応じて得点が付与されたのち、ゲーム終了処理が行われる。
【0018】
前述のとおり、ユーザがタッチパネル500上のスライドバー53を操作することによって、敵キャラクタ52の移動速度を変化させることができる。具体的には、通常の1フレーム(=1/60秒)の敵キャラクタ52の移動量(
図3の破線矢印520の長さ)を1とした場合、敵キャラクタ52の移動速度を変更することで1フレームごとの敵キャラクタ52の移動量を変化させることができる。
【0019】
ユーザが敵キャラクタ52の移動速度を速くするように指示した場合には、
図4に示すように、敵キャラクタ52の移動量を1フレームで2とすることができる。一方、ユーザが敵キャラクタ52の移動速度を遅くするように指示した場合には、
図5に示すように、敵キャラクタ52の移動量を1フレームで0.5とすることができる。このように敵キャラクタ52の移動速度を変更した場合であっても、背景のスクロール速度は変化しない。そのため、ユーザ視点では、敵キャラクタ52の進行方向および移動速度が変化したように見える。なお、本実施形態では、
図3〜
図5に示すように、ユーザは、スライドバー53を「2倍速」、「通常速度」、「0.5倍速」の3段階で操作することができる。
【0020】
<携帯端末のハードウェア構成>
携帯端末3は、上述のゲームを実行するため、
図1に示すようにバス300上に制御部30、3G/4G通信回路31、Wi−Fi通信回路32、および記憶部33を備える。
【0021】
制御部30は、CPU30A、ROM(フラッシュメモリ)30B、画像プロセッサ30C、RAM30D、操作部30E、および音声プロセッサ30Fを備える。
【0022】
CPU30Aは、後述するように、携帯端末で実行されるゲームを制御する。
【0023】
ROM30Bには、ゲームプログラムを実行するための基本プログラムが記憶されている。
【0024】
画像プロセッサ30Cは、ゲーム画面5を生成可能なGPU(Graphics Processing Unit:グラフィックス・プロセッシング・ユニット)を備えている。画像プロセッサ30Cには、ビデオRAM(VRAM)34が接続されている。VRAM34には表示部35が接続されている。表示部35は、ディスプレイ(タッチスクリーン)を備える。画像プロセッサ30Cは、CPU30Aの指示に従ってゲーム空間を生成する。このゲーム空間を仮想のカメラで撮影した画像がゲーム画面5としてVRAM34上に描画される。
【0025】
RAM30Dには、CPU30Aがゲームプログラムを実行する際に使用されるワークエリアが設定される。ワークエリアには、ゲームの進行に伴って発生する各種パラメータなどが含まれる。
【0026】
操作部30Eは、タッチパネル500を含む。操作部30Eは、ユーザによるタッチパネル500への操作内容(タッチ、フリック等)および操作位置を検出する。操作部30Eは、その操作信号(操作情報)をCPU30Aに送信する。
【0027】
音声プロセッサ30Fは、ゲーム音声を生成するDSP(Digital Signal Processor:デジタル・シグナル・プロセッサ)を備える。音声プロセッサ30Fは、生成したゲーム音声をD/Aコンバータを含むアンプ36に送信する。アンプ36は、この音声信号を増幅してスピーカ37およびイヤホン端子38に送信する。
【0028】
3G/4G通信回路31は、携帯電話通信網を介して、音声通話およびデータ通信を行う。データ通信によってゲームプログラムのダウンロードが行われる。また、データ通信によって携帯端末3とサーバ装置2との間で通信が行われることにより、ユーザの得点を携帯端末3からサーバ装置2に送信したり、他のユーザの得点をサーバ装置2から自身の携帯端末3にて受信したりする。なお、ゲームプログラムは、3G/4G通信でダウンロードするのみならず、Wi−Fi通信やUSBなどのインタフェース経由で取得することもできる。
【0029】
Wi−Fi通信回路32は、無線アクセスポイントとの間でIEEE802.11g規格の無線通信を行い、サーバ装置2などのネットワーク4上の機器とデータなどの送受信を行う。
【0030】
記憶部33は、ハードディスクであり、たとえば、サーバ装置2からダウンロードしたゲームプログラムなどが記憶される。このゲームプログラムには、プログラム本体のほか、ゲームの進行に必要なキャラクタ画像、およびユーザの識別情報であるユーザIDなどのゲームデータが含まれうる。
【0031】
図2は、ゲームシステム1に含まれる携帯端末3の機能ブロック図である。携帯端末3は、記憶部33に記憶されたゲームプログラムと制御部30との協働によって同図に示す機能を実現する。すなわち、携帯端末3は、ゲーム画面生成部300A、オブジェクト生成部300B、描画部300C、衝突判定部300D、操作位置検出部300E、速度変更部300F、および得点付与部300Gの機能を備える。
【0032】
<制御部の説明>
ゲーム画面生成部300Aは、制御部30およびゲームプログラムの協働によって実現される。ゲーム画面生成部300Aは、仮想ゲーム空間上で一方から他方へとスクロールして遷移するゲーム画面5、およびスライドバー53などのユーザインターフェース(UI)を、進行するゲームのタイミングごと(フレームごと)に演算・生成する。この演算結果(描画情報)は、描画部300C等に出力される。
【0033】
図3〜
図5に示すように、オブジェクト生成部300Bは、仮想ゲーム空間上に、ゲーム画面5のスクロール方向Aとは反対の方向に進行するプレイヤキャラクタ51と、プレイヤキャラクタ51の進行方向およびスクロール方向Aの双方とは異なる方向に移動する敵キャラクタ52と、を生成する。なお、前述のとおり、本実施形態では、プレイヤキャラクタ51は、プレイヤの操作によっては移動しない(ゲーム画面5上の表示位置が変更されない)よう構成されている。すなわち、プレイヤキャラクタ51および得点表示欄54等のUIはゲーム画面5の定位置から移動することはなく、上記以外の背景50がゲーム画面5左側に向かって移動する。一方、敵キャラクタ52は、たとえば
図3の破線矢印520に示すように、ゲーム画面5上方から下方に向かって移動する。オブジェクト生成部300Bは、オブジェクト情報を生成して、ゲーム画面生成部300Aに送信する。ゲーム画面生成部300Aは、最終的に、受信した情報に基づいてプレイヤキャラクタ51の画像を含むゲーム画面5の描画情報を生成する。
【0034】
描画部300Cは、制御部30、VRAM34、表示部35およびゲームプログラムの協働によって実現される。描画部300Cは、ゲーム画面生成部300Aから入力されるゲーム空間、プレイヤキャラクタ51、敵キャラクタ52、およびスライドバー53などの描画情報に基づいて、タッチパネル500上に表示するためのゲーム画面5を描画する。
【0035】
衝突判定部300Dは、ゲーム画面生成部300Aからの情報を受けて、プレイヤキャラクタ51と敵キャラクタ52とが衝突したか否かを判定する。また、衝突判定部300Dは、プレイヤキャラクタ51と敵キャラクタ52とが衝突したと判定される度に、衝突回数iを1回分カウントし積算する。その後、衝突判定部300Dは、後述する得点付与部300Gを経て衝突に関する情報をゲーム画面生成部300Aに送信する。ゲーム画面生成部300Aは、前記衝突した場合のゲーム画面5を生成するとともに、衝突が生じる数フレーム前のゲーム画面5を再生成する。その後、ゲーム画面生成部300Aは、これらの情報を描画部300Cに送信する。
【0036】
操作位置検出部300Eは、制御部30、操作部30Eおよびゲームプログラムの協働によって実現される。操作位置検出部300Eは、ユーザによるタッチパネル500の操作位置を検出し、速度変更部300Fに操作情報を入力する。本実施形態では、タッチパネル500上のスライドバー53が表示されている部分に対してユーザが操作をした場合、その操作位置に基づいて、ユーザが敵キャラクタ52の移動速度を速く設定したか遅く設定したかが判定される。
【0037】
速度変更部300Fは、前記操作位置検出部300Eにて検出したプレイヤからの操作信号に基づいて、ゲーム画面5上に登場している敵キャラクタ52の移動速度を変化させる。速度変更部300Fは、
図3〜
図5に示すように、ゲーム画面5上に表示されて敵キャラクタ52の移動速度を変化させるスライドバー53へのユーザの操作により機能する。なお、
図3に示すように、スライドバー53の初期位置は敵キャラクタ52の移動速度が通常となる場合の位置530であり、2倍速位置は敵キャラクタ52の移動速度が2倍速となる場合の位置531であり、0.5倍速位置は敵キャラクタ52の移動速度が0.5倍速となる場合の位置532である。速度変更部300Fは、プレイヤからの移動速度変更のための操作を受け付けると、その情報をゲーム画面生成部300Aへと送信する。ゲーム画面生成部300Aは、操作信号に基づいて敵キャラクタ52の移動速度を変更し、その情報を描画部300Cへと送信する。
【0038】
得点付与部300Gは、ゲーム画面生成部300Aおよび衝突判定部300Dからの衝突情報を受け付け、ゲームの進行に応じて得点を付与する。得点付与部300Gは、ゲームが開始されてからプレイヤキャラクタ51と敵キャラクタ52とが衝突するまでの時間(ゲームプレイ時間)を計測し、そのゲームプレイ時間に応じて得点を付与する。また、本実施形態において、得点付与部300Gは、速度変更部300Fによって敵キャラクタ52の移動速度を変更した場合に、通常速度の場合と異なる得点を付与する。すなわち、得点付与部300Gは、敵キャラクタ52の移動速度が通常速度よりも速い2倍速に設定された期間だけ、通常速度の場合に付与される得点の2倍の得点を付与する。一方、敵キャラクタ52の移動速度が通常速度よりも遅くなった場合には、通常速度よりも遅い0.5倍速に設定された期間だけ、通常速度の場合に付与される得点の2倍の得点を付与する。
【0039】
<ゲーム処理のフロー説明>
次に、
図6、
図7を参照して、ゲームの進行処理について説明する。この処理は、ゲームプログラムが起動された後、ユーザがスタートボタン(不図示)を押圧した後に実行が開始される。
【0040】
衝突判定部300Dは、最初に、プレイヤキャラクタ51と敵キャラクタ52との衝突回数iが3回未満であるか否かを判定する(ステップS11)。衝突回数iが3回以上となる場合(S11:NO)、ゲーム画面生成部300Aはゲームを終了させる(ステップS12)。一方、衝突回数iが3回未満である場合(S11:YES)には、ゲーム画面生成部300Aは、ゲーム画面5に敵キャラクタ52が存在しているかを判定する(ステップS13)。敵キャラクタ52が存在していない場合(S13:NO)、得点付与部300Gは、ゲーム開始から現在までのゲーム時間に応じて得点を付与し(ステップS14)、その後、処理はステップS11へと戻る。
【0041】
敵キャラクタ52が存在している場合(S13:YES)、操作位置検出部300Eは、ユーザがスライドバー53を操作したか否かを判断する(ステップS15)。ユーザがスライドバー53を操作していない場合(S15:NO)、処理は
図7に示す衝突判定処理に移動する。そして、衝突判定部300Dはプレイヤキャラクタ51が敵キャラクタ52と衝突したか否かを判定する(ステップS21)。プレイヤキャラクタ51が敵キャラクタ52と衝突した場合(S21:YES)、その時点での得点が付与された(ステップS22)のち、衝突判定部300Dは衝突回数iの値を1増加させる(ステップS23)。その後、ゲーム画面生成部30Aは、プレイヤキャラクタ51と敵キャラクタ52とが衝突する数フレーム前のゲーム画面を再生成する(ステップS24)。その後、処理は、ステップS11へと戻る。
【0042】
一方、プレイキャラクタ51が敵キャラクタ52と衝突していない場合(S21:NO)、得点付与部300Gは、ゲーム開始から現在までのゲーム時間に応じて得点を付与する(ステップS25)。その後、処理はステップS11へと戻る。
【0043】
図6に示すように、ユーザがスライドバー53を操作した場合(S15:YES)、速度変更部300Fは、その操作が敵キャラクタ52の移動速度を速くするものか、あるいは遅くするものかを判定する(ステップS16)。
【0044】
ユーザが敵キャラクタ52の移動速度を速くした場合(S16:YES)、速度変更部300Fは、敵キャラクタ52の移動速度を速くする(ステップS17)。ついで、衝突判定部300Dによってプレイヤキャラクタ51と敵キャラクタ52とが衝突したか否かが判定される(ステップS20)。その後は、プレイヤキャラクタ51が敵キャラクタ52と衝突していない場合(S21:NO)に得点付与部300Gがゲーム開始から現在までのゲーム時間に応じて2倍速用の得点を付与する(ステップS25)以外は、前述の処理と同様の処理が行われる。
【0045】
ユーザが敵キャラクタ52の移動速度を遅くした場合(S16:NO)、速度変更部300Fは、敵キャラクタ52の移動速度を遅くする(ステップS18)。ついで、衝突判定部300Dによってプレイヤキャラクタ51と敵キャラクタ52とが衝突したか否かが判定される(ステップS20)。その後は、プレイヤキャラクタ51と敵キャラクタ52とが衝突していない場合(S21:NO)に得点付与部300Gがゲーム開始から現在までのゲーム時間に応じて0.5倍速用の得点を付与する(ステップS25)以外は、前述の処理と同様の処理が行われる。
【0046】
(変形例)
なお、前記実施形態では、衝突オブジェクトとして敵キャラクタを記載したが、本発明の実施形態はこれには限られない。すなわち、たとえば衝突オブジェクトは、敵キャラクタが発射した弾丸、あるいは、木または岩などの障害物であってもよい。また、前記実施形態とは異なり、衝突オブジェクトはゲーム画面の下方から上方に向かって移動するようにしてもよい。また、衝突オブジェクトは直線的に移動するだけではなく、蛇行したり、回転したり、あるいはランダムな方向に移動したりするなど、種々の移動軌跡を衝突オブジェクトごとに採用することもできる。
【0047】
また、背景オブジェクトとしての橋が所定の周期でかかったり、跳ね上がったりするように構成した場合、橋がかかっている間に(あるいは橋がかかってない場合には、プレイヤオブジェクトが橋を渡ることができるように橋オブジェクトの移動速度を適宜変化させて)プレイヤオブジェクトに橋を渡らせるといったステージを生成することもできる。タイミング良くプレイヤオブジェクトが橋を渡ることができなかった場合には、プレイヤオブジェクトと衝突オブジェクトとの衝突回数を1回分カウントしてもよい。
【0048】
また、プレイヤオブジェクトはゲーム画面上で移動しない(ゲーム画面の背景がスクロールして相対的にプレイヤキャラクタが移動するように構成されているが、プレイヤオブジェクト自体はディスプレイ上の表示位置が変化しない)設定となっているが、ユーザが自由にゲーム画面上で操作できてもよい。具体的には、プレイヤオブジェクトはスクロール方向に対して、若干の角度を持って移動することができるよう制御されてもよい。
【0049】
なお、前記実施形態では、敵キャラクタの移動速度が変化した場合であっても背景のスクロール速度は変化しない例を記載しているが、ユーザによるスライドバーの操作によって背景のスクロール速度も変化させてもよい。
【0050】
また、前記実施形態では、ゲーム画面上の一方から他方にスクロールする例のみを記載しているが、本発明の実施形態はこれに限られない。たとえば、縦スクロールおよび横スクロールを適宜組合せたものを採用することもできる。
【0051】
さらに、前記実施形態では、プレイヤオブジェクトが衝突オブジェクトと計3回衝突した場合にゲームオーバーとなるが、プレイヤオブジェクトが衝突オブジェクトと衝突すると直ちにゲームオーバーとするように構成してもよい。
【0052】
また、本発明が適用されるゲームは、各ユーザが、所定の時間内にどれだけ得点できるか、あるいは所定の時間内にどれだけの距離をプレイヤオブジェクトに進ませることができるかを競い合うゲームであってもよい。
【0053】
また、スライドバーの位置は通常速度を初期値として、ユーザがスライドバーを操作した場合に所定時間経過後にスライドバーの位置を通常の位置に戻すこともできる。具体的には、ユーザが衝突オブジェクトの移動速度を2倍に設定した場合、速度変更部がその設定時間を計測して、たとえば2秒後に強制的に通常速度に戻すようにすることもできる。これは、ユーザが衝突オブジェクトの移動速度を0.5倍速に設定した場合も同様である。
【0054】
なお、前記実施形態では、衝突オブジェクトの移動速度が2倍速となった場合に通常速度の場合の2倍の得点が付与される例を示したが、本発明はこれには限られない。すなわち、衝突オブジェクトの移動速度が2倍速の場合に、ユーザにとって有利な状態となるアイテムを出現させるなど、通常速度あるいは0.5倍速の場合よりも、なんらかの有利な状態をユーザが得られるように構成することもできる。
【0055】
また、本実施形態では、ゲームシステムとして携帯端末の例を記載しているが、いわゆる据置型ゲームで本発明を実施することできる。この場合、たとえば、据置型ゲーム機のコントローラの十字キーの上ボタンで敵キャラクタの移動速度を速くし、下ボタンで敵キャラクタの移動速度を遅くする構成を採用することができる。
【0056】
また、前記実施形態では、ユーザはスライドバーを操作することとしているが、本発明の実施形態はこれには限られない。すなわち、ユーザがタッチパネルに表示されるゲーム画面上のいずれの部分をタッチしても前記スライドバーを操作した場合と同様のゲーム効果が得られるように構成することもできる。この場合、たとえば、ユーザがタッチパネル上の任意の位置をタッチしてゲーム画面上側に向かってフリック操作すると移動速度を速くし、ゲーム画面下側に向かってフリック操作すると移動速度を遅くすることができる。また、スライドバーの当たり判定(タッチ位置検出範囲)を、ゲーム画面に表示されているスライドバーの画像の範囲よりも広く設定することもできる。さらに、ユーザの好みによって、スライドバーの位置をゲーム画面上の左側あるいは上側などに変更することができるように構成してもよい。
【0057】
さらに、前記実施形態ではゲーム画面に登場している敵キャラクタ1体の移動速度を変更できる例を示したが、本発明はこれには限られない。すなわち、複数の敵キャラクタがゲーム画面に登場している場合、操作部を通じて移動速度を変更したい敵キャラクタをタッチ、あるいは複数の敵キャラクタを囲むなどして移動速度を変更する敵キャラクタをユーザ指定することができるよう構成してもよい。この場合、指定された敵キャラクタのみの移動速度を変更することができる。
ユーザによる前記操作部への操作に基づいて、前記少なくとも一つの衝突オブジェクトのうち、移動速度を変更する対象である一つ以上の速度変更オブジェクトを指定するオブジェクト指定手段、