〔実施形態1〕
本開示に係るゲームシステムは、複数のユーザにゲームを提供するためのシステムである。以下、ゲームシステムについて図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が本発明に含まれることが意図される。以下の説明では、図面の説明において同一の要素には同一の符号を付し、重複する説明を繰り返さない。
<ゲームシステム1のハードウェア構成>
図1は、ゲームシステム1のハードウェア構成を示す図である。ゲームシステム1は図示の通り、複数のユーザ端末100と、サーバ200とを含む。各ユーザ端末100は、サーバ200とネットワーク2を介して接続する。ネットワーク2は、インターネットおよび図示しない無線基地局によって構築される各種移動通信システム等で構成される。この移動通信システムとしては、例えば、所謂3G、4G移動通信システム、LTE(Long Term Evolution)、および所定のアクセスポイントによってインターネットに接続可能な無線ネットワーク(例えばWi-Fi(登録商標))等が挙げられる。
サーバ200(コンピュータ、情報処理装置)は、ワークステーションまたはパーソナルコンピュータ等の汎用コンピュータであってよい。サーバ200は、プロセッサ20と、メモリ21と、ストレージ22と、通信IF23と、入出力IF24とを備える。サーバ200が備えるこれらの構成は、通信バスによって互いに電気的に接続される。
ユーザ端末100(コンピュータ、情報処理装置)は、スマートフォン、フィーチャーフォン、PDA(Personal Digital Assistant)、またはタブレット型コンピュータ等の携帯端末であってよい。ユーザ端末100は、ゲームプレイに適したゲーム装置であってもよい。ユーザ端末100は図示の通り、プロセッサ10と、メモリ11と、ストレージ12と、通信インターフェース(IF)13と、入出力IF14と、タッチスクリーン15(表示部)と、カメラ17と、測距センサ18とを備える。ユーザ端末100が備えるこれらの構成は、通信バスによって互いに電気的に接続される。また、図1に示すように、ユーザ端末100は、1つ以上のコントローラ1020と通信可能に構成されることとしてもよい。コントローラ1020は、例えば、Bluetooth(登録商標)等の通信規格に従って、ユーザ端末100と通信を確立する。コントローラ1020は、1つ以上のボタン等を有していてもよく、該ボタン等に対するユーザの入力操作に基づく出力値をユーザ端末100へ送信する。また、コントローラ1020は、加速度センサ、および、角速度センサ等の各種センサを有していてもよく、該各種センサの出力値をユーザ端末100へ送信する。
なお、ユーザ端末100がカメラ17および測距センサ18を備えることに代えて、または、加えて、コントローラ1020がカメラ17および測距センサ18を有していてもよい。
ユーザ端末100は、例えばゲーム開始時に、コントローラ1020を使用するユーザに、該ユーザの名前またはログインID等のユーザ識別情報を、該コントローラ1020を介して入力させることが望ましい。これにより、ユーザ端末100は、コントローラ1020とユーザとを紐付けることが可能となり、受信した出力値の送信元(コントローラ1020)に基づいて、該出力値がどのユーザのものであるかを特定することができる。
ユーザ端末100が複数のコントローラ1020と通信する場合、各コントローラ1020を各ユーザが把持することで、ネットワーク2を介してサーバ200などの他の装置と通信せずに、該1台のユーザ端末100でマルチプレイを実現することができる。また、各ユーザ端末100が無線LAN(Local Area Network)規格等の無線規格により互いに通信接続する(サーバ200を介さずに通信接続する)ことで、複数台のユーザ端末100によりローカルでマルチプレイを実現することもできる。1台のユーザ端末100によりローカルで上述のマルチプレイを実現する場合、ユーザ端末100は、さらに、サーバ200が備える後述する種々の機能の少なくとも一部を備えていてもよい。また、複数のユーザ端末100によりローカルで上述のマルチプレイを実現する場合、複数のユーザ端末100は、サーバ200が備える後述する種々の機能を分散して備えていてもよい。
なお、ローカルで上述のマルチプレイを実現する場合であっても、ユーザ端末100はサーバ200と通信を行ってもよい。例えば、あるゲームにおけるスコアまたは勝敗等のプレイ結果を示す情報と、ユーザ識別情報とを対応付けてサーバ200に送信してもよい。
また、コントローラ1020は、ユーザ端末100に着脱可能な構成であるとしてもよい。この場合、ユーザ端末100の筐体における少なくともいずれかの面に、コントローラ1020との結合部が設けられていてもよい。該結合部を介して有線によりユーザ端末100とコントローラ1020とが結合している場合は、ユーザ端末100とコントローラ1020とは、有線を介して信号を送受信する。
図1に示すように、ユーザ端末100は、外部のメモリカード等の記憶媒体1030の装着を、入出力IF14を介して受け付けてもよい。これにより、ユーザ端末100は、記憶媒体1030に記録されるプログラム及びデータを読み込むことができる。記憶媒体1030に記録されるプログラムは、例えばゲームプログラムである。
ユーザ端末100は、サーバ200等の外部の装置と通信することにより取得したゲームプログラムをユーザ端末100のメモリ11に記憶してもよいし、記憶媒体1030から読み込むことにより取得したゲームプログラムをメモリ11に記憶してもよい。
以上で説明したとおり、ユーザ端末100は、該ユーザ端末100に対して情報を入力する機構の一例として、通信IF13、入出力IF14、タッチスクリーン15、カメラ17、および、測距センサ18を備える。入力する機構としての上述の各部は、ユーザの入力操作を受け付けるように構成された操作部と捉えることができる。
例えば、操作部が、カメラ17および測距センサ18の少なくともいずれか一方で構成される場合、該操作部が、ユーザ端末100の近傍の物体1010を検出し、当該物体の検出結果から入力操作を特定する。一例として、物体1010としてのユーザの手、予め定められた形状のマーカーなどが検出され、検出結果として得られた物体1010の色、形状、動き、または、種類などに基づいて入力操作が特定される。より具体的には、ユーザ端末100は、カメラ17の撮影画像からユーザの手が検出された場合、該撮影画像に基づき検出されるジェスチャ(ユーザの手の一連の動き)を、ユーザの入力操作として特定し、受け付ける。なお、撮影画像は静止画であっても動画であってもよい。
あるいは、操作部がタッチスクリーン15で構成される場合、ユーザ端末100は、タッチスクリーン15の入力部151に対して実施されたユーザの操作をユーザの入力操作として特定し、受け付ける。あるいは、操作部が通信IF13で構成される場合、ユーザ端末100は、コントローラ1020から送信される信号(例えば、出力値)をユーザの入力操作として特定し、受け付ける。あるいは、操作部が入出力IF14で構成される場合、該入出力IF14と接続されるコントローラ1020とは異なる入力装置(図示せず)から出力される信号をユーザの入力操作として特定し、受け付ける。
<各装置のハードウェア構成要素>
プロセッサ10は、ユーザ端末100全体の動作を制御する。プロセッサ20は、サーバ200全体の動作を制御する。プロセッサ10および20は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、およびGPU(Graphics Processing Unit)を含む。
プロセッサ10は後述するストレージ12からプログラムを読み出し、後述するメモリ11に展開する。プロセッサ20は後述するストレージ22からプログラムを読み出し、後述するメモリ21に展開する。プロセッサ10およびプロセッサ20は展開したプログラムを実行する。
メモリ11および21は主記憶装置である。メモリ11および21は、ROM(Read Only Memory)およびRAM(Random Access Memory)等の記憶装置で構成される。メモリ11は、プロセッサ10が後述するストレージ12から読み出したプログラムおよび各種データを一時的に記憶することにより、プロセッサ10に作業領域を提供する。メモリ11は、プロセッサ10がプログラムに従って動作している間に生成した各種データも一時的に記憶する。メモリ21は、プロセッサ20が後述するストレージ22から読み出した各種プログラムおよびデータを一時的に記憶することにより、プロセッサ20に作業領域を提供する。メモリ21は、プロセッサ20がプログラムに従って動作している間に生成した各種データも一時的に記憶する。
本実施形態においてプログラムとは、ゲームをユーザ端末100により実現するためのゲームプログラムであってもよい。あるいは、該プログラムは、該ゲームをユーザ端末100とサーバ200との協働により実現するためのゲームプログラムであってもよい。あるいは、該プログラムは、該ゲームを複数のユーザ端末100の協働により実現するためのゲームプログラムであってもよい。また、各種データとは、ユーザ情報およびゲーム情報などのゲームに関するデータ、ならびに、ユーザ端末100とサーバ200との間または複数のユーザ端末100間で送受信する指示または通知を含んでいる。
ストレージ12および22は補助記憶装置である。ストレージ12および22は、フラッシュメモリまたはHDD(Hard Disk Drive)等の記憶装置で構成される。ストレージ12およびストレージ22には、ゲームに関する各種データが格納される。
通信IF13は、ユーザ端末100における各種データの送受信を制御する。通信IF23は、サーバ200における各種データの送受信を制御する。通信IF13および23は例えば、無線LAN(Local Area Network)を介する通信、有線LAN、無線LAN、または携帯電話回線網を介したインターネット通信、ならびに近距離無線通信等を用いた通信を制御する。
入出力IF14は、ユーザ端末100がデータの入力を受け付けるためのインターフェースであり、またユーザ端末100がデータを出力するためのインターフェースである。入出力IF14は、USB(Universal Serial Bus)等を介してデータの入出力を行ってもよい。入出力IF14は、例えば、ユーザ端末100の物理ボタン、カメラ、マイク、または、スピーカ等を含み得る。サーバ200の入出力IF24は、サーバ200がデータの入力を受け付けるためのインターフェースであり、またサーバ200がデータを出力するためのインターフェースである。入出力IF24は、例えば、マウスまたはキーボード等の情報入力機器である入力部と、画像を表示出力する機器である表示部とを含み得る。
ユーザ端末100のタッチスクリーン15は、入力部151と表示部152とを組み合わせた電子部品である。入力部151は、例えばタッチセンシティブなデバイスであり、例えばタッチパッドによって構成される。表示部152は、例えば液晶ディスプレイ、または有機EL(Electro-Luminescence)ディスプレイ等によって構成される。
入力部151は、入力面に対しユーザの操作(主にタッチ操作、スライド操作、スワイプ操作、およびタップ操作等の物理的接触操作)が入力された位置を検知して、位置を示す情報を入力信号として送信する機能を備える。入力部151は、図示しないタッチセンシング部を備えていればよい。タッチセンシング部は、静電容量方式または抵抗膜方式等のどのような方式を採用したものであってもよい。
図示していないが、ユーザ端末100は、該ユーザ端末100の保持姿勢を特定するための1以上のセンサを備えていてもよい。このセンサは、例えば、加速度センサ、または、角速度センサ等であってもよい。ユーザ端末100がセンサを備えている場合、プロセッサ10は、センサの出力からユーザ端末100の保持姿勢を特定して、保持姿勢に応じた処理を行うことも可能になる。例えば、プロセッサ10は、ユーザ端末100が縦向きに保持されているときには、縦長の画像を表示部152に表示させる縦画面表示としてもよい。一方、ユーザ端末100が横向きに保持されているときには、横長の画像を表示部に表示させる横画面表示としてもよい。このように、プロセッサ10は、ユーザ端末100の保持姿勢に応じて縦画面表示と横画面表示とを切り替え可能であってもよい。
カメラ17は、イメージセンサ等を含み、レンズから入射する入射光を電気信号に変換することで撮影画像を生成する。
測距センサ18は、測定対象物までの距離を測定するセンサである。測距センサ18は、例えば、パルス変換した光を発する光源と、光を受ける受光素子とを含む。測距センサ18は、光源からの発光タイミングと、該光源から発せられた光が測定対象物にあたって反射されて生じる反射光の受光タイミングとにより、測定対象物までの距離を測定する。測距センサ18は、指向性を有する光を発する光源を有することとしてもよい。
ここで、ユーザ端末100が、カメラ17と測距センサ18とを用いて、ユーザ端末100の近傍の物体1010を検出した検出結果を、ユーザの入力操作として受け付ける例をさらに説明する。カメラ17および測距センサ18は、例えば、ユーザ端末100の筐体の側面に設けられてもよい。カメラ17の近傍に測距センサ18が設けられてもよい。カメラ17としては、例えば赤外線カメラを用いることができる。この場合、赤外線を照射する照明装置および可視光を遮断するフィルタ等が、カメラ17に設けられてもよい。これにより、屋外か屋内かにかかわらず、カメラ17の撮影画像に基づく物体の検出精度をいっそう向上させることができる。
プロセッサ10は、カメラ17の撮影画像に対して、例えば以下の(1)〜(5)に示す処理のうち1つ以上の処理を行ってもよい。(1)プロセッサ10は、カメラ17の撮影画像に対し画像認識処理を行うことで、該撮影画像にユーザの手が含まれているか否かを特定する。プロセッサ10は、上述の画像認識処理において採用する解析技術として、例えばパターンマッチング等の技術を用いてよい。(2)また、プロセッサ10は、ユーザの手の形状から、ユーザのジェスチャを検出する。プロセッサ10は、例えば、撮影画像から検出されるユーザの手の形状から、ユーザの指の本数(伸びている指の本数)を特定する。プロセッサ10はさらに、特定した指の本数から、ユーザが行ったジェスチャを特定する。例えば、プロセッサ10は、指の本数が5本である場合、ユーザが「パー」のジェスチャを行ったと判定する。また、プロセッサ10は、指の本数が0本である(指が検出されなかった)場合、ユーザが「グー」のジェスチャを行ったと判定する。また、プロセッサ10は、指の本数が2本である場合、ユーザが「チョキ」のジェスチャを行ったと判定する。(3)プロセッサ10は、カメラ17の撮影画像に対し、画像認識処理を行うことにより、ユーザの指が人差し指のみ立てた状態であるか、ユーザの指がはじくような動きをしたかを検出する。(4)プロセッサ10は、カメラ17の撮影画像の画像認識結果、および、測距センサ18の出力値等の少なくともいずれか1つに基づいて、ユーザ端末100の近傍の物体1010(ユーザの手など)とユーザ端末100との距離を検出する。例えば、プロセッサ10は、カメラ17の撮影画像から特定されるユーザの手の形状の大小により、ユーザの手がユーザ端末100の近傍(例えば所定値未満の距離)にあるのか、遠く(例えば所定値以上の距離)にあるのかを検出する。なお、撮影画像が動画の場合、プロセッサ10は、ユーザの手がユーザ端末100に接近しているのか遠ざかっているのかを検出してもよい。(5)カメラ17の撮影画像の画像認識結果等に基づいて、ユーザの手が検出されている状態で、ユーザ端末100とユーザの手との距離が変化していることが判明した場合、プロセッサ10は、ユーザが手をカメラ17の撮影方向において振っていると認識する。カメラ17の撮影範囲よりも指向性が強い測距センサ18において、物体が検出されたりされなかったりする場合に、プロセッサ10は、ユーザが手をカメラの撮影方向に直交する方向に振っていると認識する。
このように、プロセッサ10は、カメラ17の撮影画像に対する画像認識により、ユーザが手を握りこんでいるか否か(「グー」のジェスチャであるか、それ以外のジェスチャ(例えば「パー」)であるか)を検出する。また、プロセッサ10は、ユーザの手の形状とともに、ユーザがこの手をどのように移動させているかを検出する。また、プロセッサ10は、ユーザがこの手をユーザ端末100に対して接近させているのか遠ざけているのかを検出する。このような操作は、例えば、マウスまたはタッチパネルなどのポインティングデバイスを用いた操作に対応させることができる。ユーザ端末100は、例えば、ユーザの手の移動に応じて、タッチスクリーン15においてポインタを移動させ、ユーザのジェスチャ「グー」を検出する。この場合、ユーザ端末100は、ユーザが選択操作を継続中であると認識する。選択操作の継続とは、例えば、マウスがクリックされて押し込まれた状態が維持されること、または、タッチパネルに対してタッチダウン操作がなされた後タッチされた状態が維持されることに対応する。また、ユーザ端末100は、ユーザのジェスチャ「グー」が検出されている状態で、さらにユーザが手を移動させると、このような一連のジェスチャを、スワイプ操作(またはドラッグ操作)に対応する操作として認識することもできる。また、ユーザ端末100は、カメラ17の撮影画像によるユーザの手の検出結果に基づいて、ユーザが指をはじくようなジェスチャを検出した場合に、当該ジェスチャを、マウスのクリックまたはタッチパネルへのタップ操作に対応する操作として認識してもよい。
<ゲームシステム1の機能的構成>
図2は、ゲームシステム1に含まれるサーバ200およびユーザ端末100の機能的構成を示すブロック図である。サーバ200およびユーザ端末100のそれぞれは、図示しない、一般的なコンピュータとして機能する場合に必要な機能的構成、および、ゲームにおける公知の機能を実現するために必要な機能的構成を含み得る。
ユーザ端末100は、ユーザの入力操作を受け付ける入力装置としての機能と、ゲームの画像や音声を出力する出力装置としての機能を有する。ユーザ端末100は、プロセッサ10、メモリ11、ストレージ12、通信IF13、および入出力IF14等の協働によって、制御部110および記憶部120として機能する。
サーバ200は、各ユーザ端末100と通信して、ユーザ端末100がゲームを進行させるのを支援する機能を有する。例えば、有価データの販売、サービスの提供などを実行する。ゲームがマルチプレイゲームである場合には、サーバ200は、ゲームに参加する各ユーザ端末100と通信して、ユーザ端末100同士のやりとりを仲介する機能を有していてもよい。サーバ200は、プロセッサ20、メモリ21、ストレージ22、通信IF23、および入出力IF24等の協働によって、制御部210および記憶部220として機能する。
記憶部120および記憶部220は、ゲームプログラム131、ゲーム情報132およびユーザ情報133を格納する。ゲームプログラム131は、ユーザ端末100およびサーバ200で実行するゲームプログラムである。ゲーム情報132は、制御部110および制御部210がゲームプログラム131を実行する際に参照するデータである。ユーザ情報133は、ユーザのアカウントに関するデータである。記憶部220において、ゲーム情報132およびユーザ情報133は、ユーザ端末100ごとに格納されている。
(サーバ200の機能的構成)
制御部210は、記憶部220に格納されたゲームプログラム131を実行することにより、サーバ200を統括的に制御する。例えば、制御部210は、ユーザ端末100に各種データおよびプログラム等を送信する。制御部210は、ゲーム情報もしくはユーザ情報の一部または全部をユーザ端末100から受信する。ゲームがマルチプレイゲームである場合には、制御部210は、ユーザ端末100からマルチプレイの同期の要求を受信して、同期のためのデータをユーザ端末100に送信してもよい。
制御部210は、ゲームプログラム131の記述に応じて、送受信部211、サーバ処理部212、およびデータ管理部213として機能する。制御部210は、実行するゲームの性質に応じて、ユーザ端末100におけるゲームの進行を支援するために、図示しないその他の機能ブロックとしても機能することができる。
送受信部211は各種データを送受信する。例えば、送受信部211は、ユーザ端末100からの各種データおよびプログラムの送信要求、マルチプレイの同期の要求、および同期のためのデータ等を受信する。また例えば、送受信部211は、サーバ処理部212からの指示に従って、ユーザ端末100に各種データおよびプログラムを送信する。
サーバ処理部212は、ゲームを提供するために必要な演算処理を行う。サーバ処理部212は、ユーザ端末100からの要求等に応じて、ゲームプログラム131に記述された演算処理を実行する。また例えば、サーバ処理部212は、ゲームの進行に係る各種判定処理を行う。
例えば、サーバ処理部212は、データ管理部213にゲーム情報132またはユーザ情報133のレコードの追加、更新、または削除を指示する。また例えば、サーバ処理部212は送受信部211に各種データまたはプログラムの送信を指示する。
データ管理部213は、記憶部220に格納されている各種データをサーバ処理部212の指示に従って管理する。例えば、データ管理部213は、サーバ処理部212からの指示に応じてゲーム情報132またはユーザ情報133のレコードを、追加、更新、または削除する。また例えば、データ管理部213は、サーバ処理部212からの指示に従って、ゲーム情報132およびユーザ情報133の少なくとも一方を記憶部220から読み出し、送受信部211を介しユーザ端末100に送信する。また例えば、データ管理部213は、サーバ処理部212からの指示に従って、ゲームプログラム131のうち、あるユーザ端末100で実行する分のプログラムを記憶部220から読み出し、送受信部211を介し該ユーザ端末100に送信する。
なお、制御部210は、ゲームがマルチプレイである場合、マルチプレイに係る同期処理を行ってもよい。制御部210は、送受信部211においてマルチプレイの同期の要求および同期のためのデータを受け取った場合、マルチプレイの同期処理を行う。制御部210は、送受信部211においてあるユーザ端末100から受信した同期のためのデータを、他のユーザのユーザ端末100に同期して送信する。これにより、複数のユーザ端末100の間の、ゲームに係る種々のデータを同期させることができる。なお、制御部210は、同期のタイミングおよび同期すべきデータをサーバ処理部212において判定してもよい。制御部210が以上の処理を行うことにより、サーバ200は、あるユーザ端末100において行われた入力操作によって引き起こされるゲーム内の作用または該作用の結果(スコア等)を、他のユーザ端末100において略リアルタイムで共有させることができる。
(ユーザ端末100の機能的構成)
制御部110は、記憶部120に格納されたゲームプログラム131を実行することにより、ユーザ端末100を統括的に制御する。例えば、制御部110は、ゲームプログラム131およびユーザの操作にしたがって、ゲームを進行させる。また、制御部110は、ゲームを進行させている間、必要に応じて、サーバ200と通信して、情報の送受信を行う。
制御部110は、ゲームプログラム131の記述に応じて、操作受付部111、ゲーム進行部112、キャラクタ管理部113、画像生成部114、および表示制御部115として機能する。制御部110は、実行するゲームの性質に応じて、ゲームを進行させるために、図示しないその他の機能ブロックとしても機能することができる。
操作受付部111は、入力部151に対するユーザの入力操作を検知し受け付ける。操作受付部111は、タッチスクリーン15およびその他の入出力IF14を介したコンソールに対してユーザが及ぼした作用から、いかなる入力操作がなされたかを判別し、その結果を制御部110の各要素に出力する。例えば、操作受付部111は、入力部151に対する入力操作を受け付け、該入力操作の入力位置の座標を検出し、該入力操作の種類を特定する。操作受付部111は、入力操作の種類として、例えばタッチ操作、スライド操作、スワイプ操作、およびタップ操作等を特定する。また、操作受付部111は、連続して検知されていた入力が途切れると、タッチスクリーン15から接触入力が解除されたことを検知する。つまり、操作受付部111は、接触入力の開始、継続、および終了を検知する。換言すると、操作受付部111は、ユーザの入力操作の開始と、該入力操作の完了とを検知することができる。
ゲーム進行部112は、ゲームの進行に係る各種処理を実行する。例えば、ゲーム進行部112は、ゲームの進行に係る種々のパラメータの設定、演算処理、判定処理等の処理を行う。
また、ゲーム進行部112は、画像生成部114にゲーム画面の画像を生成させるよう指示する。特に、ゲームが3Dのゲームである場合、ゲーム進行部112は、3次元の仮想空間であるゲーム空間を構築する。ゲーム進行部112は該ゲーム空間に、ゲームに係る各種オブジェクトと、ゲーム空間のうちユーザに提示する領域を指定するための仮想カメラとを配置する。ゲーム進行部112は、仮想カメラで規定される視野領域および当該視野領域に配置されているオブジェクトを描画した画像を作成するよう、画像生成部114に指示する。
ゲーム進行部112は、より詳しくは、パラメータ管理部1121と、スコア算出部1122とを備える。パラメータ管理部1121は、ゲームで用いる各種パラメータの設定および変更(パラメータの増減)を管理する。パラメータ管理部1121は、ゲームの開始時にゲームプログラム131、ゲーム情報132、およびユーザ情報133の少なくとも1つを参照して、各種パラメータの設定および初期値を決定してもよい。また、パラメータ管理部1121は、各種パラメータの値を初期値から変更した場合、該変更を自己で一時的に記憶していてもよいし、ゲーム情報132またはユーザ情報133に記録してもよい。
スコア算出部1122は、ゲーム進行部112の指示に従って、スコアを算出する。より具体的には、スコア算出部1122は、ゲーム進行部112が、ゲームで特定のアクションが起こったと判定し、さらにその結果を演算処理した場合、該結果に応じたスコアを算出する。スコア算出部1122は、スコア算出の際に、パラメータ管理部1121が管理している特定のパラメータ(第1パラメータ)の値に応じてスコアを算出する。第1パラメータについては後で詳述する。
なお、スコア算出部1122は、スコアの算出ではなく、第1パラメータの値に応じて、ゲーム上の何らかの要素(例えば第1パラメータ以外のパラメータの値、各種オブジェクトの配置や大きさ、形、ならびに、各種オブジェクトのエフェクトまたはアニメーション等)を変更させるか否かと、該変更の度合いとを決定するものであってもよい。この場合、スコア算出部1122は、第1パラメータの値に応じてゲームの有利度合いが変化するように、該変更の度合いを決定する。
画像生成部114は、ゲーム進行部112の指示にしたがって、各種ゲーム画面の画像(以下、単にゲーム画面と称する)を生成する。画像生成部114は、各種オブジェクトを生成して、該オブジェクトを背景となる画像に重畳させたゲーム画面を生成してもよい。例えば、画像生成部114は、ユーザの入力操作を受け付けるためのボタンなどのユーザインターフェース(UI)オブジェクト、および、アイコン画像等を背景画像に重畳したゲーム画面を生成してもよい。また、画像生成部114は、ゲーム進行部112の指示にしたがって、ゲーム画面に配置される各種オブジェクトのアニメーション(動き)を生成してもよい。
表示制御部115は、タッチスクリーン15の表示部152に対して、上述の各部によって実行された処理結果が反映されたゲーム画面を出力する。表示制御部115は、画像生成部114がゲーム進行部112の指示にしたがって生成した各種ゲーム画面を描画する。詳しくは後述するが、ゲーム画面とは、例えば、パズルゲームの場合、ステージのクリア条件をユーザに提示するための条件提示画面、ユーザに選択されたステージに対応する盤面を表示して、該ステージをプレイさせるためのパズル画面、および、プレイされたステージの成績をユーザに提示するための成績提示画面などである。
さらに、ゲームシステム1が後述するパズルゲームを実現する場合、本実施形態に係るユーザ端末100は、キャラクタ管理部113を備えていてもよい。キャラクタ管理部113は、盤面に配置するパズル要素を管理する。本実施形態では、一例として、パズル要素とは、1以上のパラメータが関連付けられたキャラクタを封入した風船のオブジェクトである。キャラクタは、ステージを有利に進行させることに関わるパラメータを有しており、各キャラクタは、該パラメータに基づいて、ステージの進行に作用を及ぼすことができる。本実施形態では、キャラクタを所有する権利は、ユーザが該パズルゲームをプレイ中に所定の条件を満たすことにより、サーバ200によって与えられる。所定の条件を満たすとは、例えば、有償アイテムと交換する、抽選で引き当てる、および、課題をクリアする、などが想定される。
ユーザによって所有されたキャラクタは、ユーザ識別情報と関連付けて、サーバ200によって管理されてもよいし、ユーザ端末100のキャラクタ管理部113によってローカルで管理されてもよいし、その両方でもよい。キャラクタ管理部113は、ゲーム進行部112によって実行されるパズルゲームの進行状況に応じて、キャラクタに係るパラメータなどの各種情報を読み出してゲーム進行部112に供給したり、該各種情報を更新したりする。
なお、図2に示すサーバ200およびユーザ端末100の機能は一例にすぎない。サーバ200は、ユーザ端末100が備える機能の少なくとも一部を備えていてもよい。また、ユーザ端末100は、サーバ200が備える機能の少なくとも一部を備えていてもよい。さらに、ユーザ端末100およびサーバ200以外の他の装置をゲームシステム1の構成要素とし、該他の装置にゲームシステム1における処理の一部を実行させてもよい。すなわち、本実施形態においてゲームプログラムを実行するコンピュータは、ユーザ端末100、サーバ200、および他の装置の何れであってもよいし、これらの複数の装置の組み合わせにより実現されてもよい。
≪ゲームの概要≫
ゲームシステム1が実現するゲームのジャンルは特に限定されない。例えば、ゲームはパズルゲーム、クイズゲーム、RPG(ロールプレイングゲーム)、アドベンチャーゲーム、シューティングゲーム、シミュレーションゲーム、育成ゲーム、ならびに、アクションゲームなどであってもよい。また、ゲームシステム1が実現するゲームの題材も特に限定されない。例えば、ゲームはテニス、卓球、ドッジボール、野球、サッカーおよびホッケーなどのスポーツを題材としたゲームであってもよい。
また、ゲームシステム1は、特定のプレイ形態に限らず、あらゆるプレイ形態のゲームを実行するためのシステムであってもよい。例えば、単一のユーザによるシングルプレイゲーム、および、複数のユーザによるマルチプレイゲーム、また、マルチプレイゲームの中でも、複数のユーザが対戦する対戦ゲーム、および、複数のユーザが協力する協力プレイゲームなどであってもよい。
本実施形態に係るゲームは、少なくとも、ユーザの入力操作によって引き起こされるアクションの結果に応じて、あるパラメータ(第1パラメータ)が増減するゲームである。また、本実施形態に係るゲームは、該第1パラメータの値に応じて、ユーザのゲームにおける有利度合いが変化するゲームである。
入力操作に応じて引き起こされるアクションに関する各種演算処理は、ゲーム進行部112が実行する。アクションの内容は特に限定されない。また、アクションは、ユーザの入力操作によって直接的に引き起こされるものであってもよいし、間接的に引き起こされるものであってもよい。例えば、アクションとは、ユーザのタッチまたはフリック等の操作に応じた、ゲーム画面上のオブジェクトの移動である。また例えば、アクションとは、該オブジェクトの移動に起因して引き起こされる、他のオブジェクトの移動である。
第1パラメータの形式、すなわち第1パラメータのデータの型およびデータの示す内容は、特に限定されない。また、第1パラメータはゲーム画面に表示されるパラメータであっても良いし、ゲーム画面に表示されないマスクデータであってもよい。以降の説明では、ゲームシステム1がパズルゲームを実現する例について述べる。
パズルゲームは、ゲーム画面の少なくとも一部の領域をパズルの盤面として、該盤面に予め配置されたパズル要素(第1オブジェクト)を消去することで進行するゲームである。ユーザの入力操作に応じて、ゲーム進行部112は、盤面に更なるパズル要素(第2オブジェクト)を追加する。パズル要素が追加された際に、追加されたパズル要素が予め配置されていたパズル要素に作用するアクションが引き起こされる。具体的には、追加されたパズル要素によって、予め配置されたパズル要素同士、または該パズル要素と、追加されたパズル要素との位置関係が変わる。
パズル要素同士の位置関係が、特定の条件(第1条件)を満たす場合、ゲーム進行部112は、該条件を満たしたパズル要素を盤面から消去する。また、パズル要素同士が第1条件を満たす場合、ゲーム進行部112のスコア算出部1122は、パズルゲームにおけるスコアを算出する。
本実施形態では、単一のユーザ端末100において実行されるパズルゲーム(シングルプレイ型パズルゲーム)が想定されている。この場合、シングルプレイ型パズルゲームをユーザ端末100において実行するために必要な情報のやりとりがユーザ端末100とサーバ200との間で行われる。
なお、本実施形態では、パズルゲームが2Dゲームである場合について説明する。しかしながら、パズルゲームは3Dゲームであってもよい。パズルゲームが3Dゲームである場合、上述の「盤面」はゲーム空間中の所定の空間領域に相当する。また、上述の「パズル要素」は、ゲーム空間に配置された立体のオブジェクトに相当する。その他の処理は、パズルゲームが3Dゲームである場合も同一であってよい。
<ゲームの主な流れ>
以下、パズルゲームにおけるゲーム画面および処理の流れについて、より具体的に説明する。図3は、パズルゲームのステージの開始から終了までの処理の流れを示すフローチャートである。
1つのステージがユーザによって選択されると、ステップS102において、ゲーム進行部112は、ユーザによって選択されたステージのクリア条件を設定し、表示部152に表示する。具体的には、ゲーム進行部112は、選択されたステージに関連付けられているクリア条件をゲーム情報132から取得し、画像生成部114に、条件提示画面を生成させる。ゲーム進行部112は、クリア条件として、ステージで獲得されるスコア合計を設定してもよいし、特定の種類または種類を問わず、ステージで消去されるキャラクタの数を設定してもよい。さらに、ゲーム進行部112は、クリア条件として、盤面の配置を変更するために新規にパズル要素を追加できる上限回数を設定してもよい。すなわち、ゲーム進行部112は、前記盤面におけるパズル要素の配置を変更するためのユーザの入力操作(後述する、射出操作)について、入力回数に上限を設定してもよい。本実施形態では以降、該入力回数に上限が設けられているものとして説明を行う。また、上記射出操作の入力回数の残り回数を、「残り射出回数」と称する。
図4は、表示部に表示される条件提示画面の具体例を示す図である。図示の例では、1または複数のクリア条件501を含む条件提示画面が生成される。さらに、条件提示画面は、これからプレイされるステージのステージ名502、および、該ステージの盤面に配置されるパズル要素(後述する、風船)に含まれるキャラクタの種類503などを含んでいてもよい。
スタートボタン504がユーザによって選択されると、ステップS104において、ゲーム進行部112は、該ステージの盤面を生成する。生成された盤面は、表示部152に表示される。本実施形態では、ゲーム進行部112は、キャラクタの種類503において指定されたキャラクタを入れたパズル要素をランダムに配置することによって盤面を生成する。
図5は、表示部に表示されるパズル画面の具体例を示す図である。一例として、ゲーム進行部112は、図5に示すパズル画面を表示させてから、実際にパズルゲームが開始されるまでの間に所定秒の期間を設けて、ユーザにプレイの開始を準備させる猶予を与えてもよい。図5に示すパズル画面の詳細な内容については後述する。
図5に示すパズル画面が表示されてから所定秒経過すると、ゲーム進行部112はステージを開始し、ステップS106において、該ステージの盤面の進行に係る各種処理(盤面処理)を行う。盤面処理の詳細については後述する。
ステップS108でNOの場合、すなわち、1回の盤面処理の後残り射出回数が0でない場合、ステップS110において、ゲーム進行部112は、該盤面のクリア条件を満たしたか否か判定する。ステップS110でYESの場合、すなわち、クリア条件を満たした場合、ゲーム進行部112はステージを終了させる。そして、ゲーム進行部112はステップS112において、ステージに係るプレイ結果、すなわち成績を表示部152に表示させる。また、ステップS108でYESの場合、すなわち、盤面処理の後に残り射出回数が0である場合も、ゲーム進行部112はステージを終了させ成績を表示させる。一方、ステップS110でNOの場合、すなわち、残り射出回数が0でなく、かつクリア条件を満たしていない場合、ゲーム進行部112はステップS106の盤面処理を再び実行する。
本実施形態では、ユーザが1ステージを終了するごとに、ステージごとの成績が決定される。成績は、該ステージにおいて獲得されたスコアの合計を含んでいてもよいし、消去されたキャラクタの数を含んでいてもよいし、該ステージのクリア条件の達成度を含んでいてもよい。また、成績は、ユーザのプレイを評価する、その他の任意の情報を含んでいてもよい。
図6は、表示部に表示される成績提示画面の具体例を示す図である。図示の通り、成績提示画面において、成績はキャラクタごとに提示されてもよい。キャラクタごとの成績571は、例えば、該キャラクタがプレイされたステージにおいて消去された消去数572と、該消去数のキャラクタが消去されたことによって獲得された、キャラクタごとの得点573とを含んでいてもよい。
また、各キャラクタには、パラメータの具体例として、「レベル」と「得点単価」とが関連付けられている。レベルは、キャラクタの総合的な強さを示すパラメータである。得点単価は、キャラクタが消去されたときに獲得される、該キャラクタ1個あたりの得点を示すパラメータである。「キャラクタが強い」とは、該キャラクタが、本実施形態にかかるパズルゲームを有利に進行させることに対する貢献度が高いということを意味する。本実施形態では、レベルが高いほど、得点単価も高くなる。成績571は、キャラクタに関連付けられているレベル574と得点単価575とをさらに含んでいてもよい。
ゲーム進行部112は、キャラクタごとの得点573の算出を任意の方法で行うことができる。一例として、図6に示す例では、キャラクタ「ハート」の得点単価は、「10」である。ゲーム進行部112は、キャラクタ「ハート」を消去することでユーザが獲得したスコアの合計値を、キャラクタ「ハート」の得点573として表示する。
さらに、成績571は、キャラクタごとに累積得点576を含んでいてもよい。累積得点576は、これまでにユーザによってプレイされたすべてのステージにおいて、該キャラクタについて獲得されたスコアをすべて合算したものを指す。累積得点576は、キャラクタ管理部113によって管理されている。一例として、累積得点576は、ゲージの態様で提示される。本実施形態では、キャラクタ管理部113は、累積得点576のゲージがいっぱいになるまでスコアが獲得されると、該キャラクタのレベルを1つ上げる。キャラクタ管理部113は、レベルを上げるとゲージをリセットし、次回以降、該キャラクタにつき獲得されたスコアを加算していく。レベルが上がるということは、その他の各種パラメータが上昇する、すなわち、キャラクタが強くなるということを意味する。このように、本実施形態に係るゲームシステム1は、ステージがユーザによってプレイされるほど、各キャラクタを強くする(成長させる)構成である。
本実施形態では、ユーザが1ステージを終了するごとに、ステージごとの成績が決定される。成績は、該ステージにおいて獲得されたスコアの合計を含んでいてもよいし、消去されたキャラクタの数を含んでいてもよいし、該ステージのクリア条件の達成度を含んでいてもよい。また、成績は、ユーザのプレイを評価する、その他の任意の情報を含んでいてもよい。
ユーザは、プレイしたステージの成績を確認したら、OKボタン577を選択する。OKボタン577が選択されると、ゲーム進行部112は、ステップS102から開始された、一連のステージを終了させる。
<盤面について>
以下、盤面処理について、図5および図7〜図22を用いて詳細に説明する。始めに、図5を再び用いて、盤面に配置される各種オブジェクトと、パズルゲームの基本的な仕様について説明する。図5は、パズルゲームの1ステージが開始する直前のパズル画面の一例を示す。パズル画面は、盤面511を含む。盤面511には、パズル要素である風船512A〜Gが予め配置されている。例えば、図示のように5種類のキャラクタ入り風船512A〜Eが、ランダムに配置される。なお、盤面511には、空の風船512F(後述)およびコイン入りの風船512G(後述)がランダムに配置されていてもよい。また、風船512A〜Gの配置数は適宜定められてよい。以降の説明では、風船512A〜Gをまとめて「風船512」とも称する。
盤面511は、風船512を配置するための領域とは異なる領域を含んでいてもよい。例えば、該異なる領域には、天井513、中間障害物514、クリア条件515、コンボゲージ516、残り射出回数517、キャラクタ選択ボタン518、射出台519、スコア合計520、獲得コイン数521、および、スキルゲージ522などのオブジェクトが表示されていてもよい。
天井513は、盤面の上下を示す。天井513のある方向が、盤面511の上方、天井513と逆方向が、盤面511の下方である。また、天井513は、風船512の浮上(後述)を遮る障害物でもある。中間障害物514も、風船512の浮上を遮る障害物である。中間障害物514は、風船512を配置するための領域内に配置される。クリア条件515、コンボゲージ516、残り射出回数517、キャラクタ選択ボタン518、射出台519、スコア合計520、獲得コイン数521、および、スキルゲージ522については、後で詳述する。
<キャラクタについて>
ゲーム進行部112は、盤面511の生成前に、キャラクタ入り風船512A〜Eに入れるキャラクタの種類を、任意の方法で決定する。例えば、ゲーム進行部112は、ステージの種類に応じて風船に入れるキャラクタを決定してもよい。また例えば、ゲーム進行部112は、予めユーザによって選択されたキャラクタを風船に入れて配置してもよい。また例えば、ゲーム進行部112は、予めサーバ200において用意されているキャラクタの中から、風船に入れるキャラクタをランダムに選んでもよいし、ユーザが所有しているキャラクタとして、ユーザに関連付けられているキャラクタの中から風船に入れるキャラクタを選んでもよい。また、ゲーム進行部112は、ステージによっては、該ステージに予め定められている種類のキャラクタを風船に入れてもよい。
本実施形態では、ゲーム進行部112は、ユーザに関連付けられているキャラクタの中から5種類のキャラクタを、ユーザの選択に基づいて指定し、該5種類のキャラクタのいずれかを入れたキャラクタ入り風船512A〜Eを盤面511に配置する。キャラクタ管理部113は、ゲーム進行部112によって指定されたキャラクタのデータをゲーム情報132から読み出し、ゲーム進行部112に供給する。
本実施形態では、ユーザは、種類の異なるキャラクタを複数所有し、所有しているキャラクタの中から、盤面に配置したり、射出したりするためのキャラクタを指定することができる。上述したとおり、ユーザによって所有されたキャラクタは、ユーザ識別情報と関連付けて、サーバ200によって管理される。ユーザ端末100のキャラクタ管理部113は、自端末のユーザが所有しているキャラクタについてのキャラクタデータを、サーバ200から取得して、ゲーム情報132として記憶部120に格納する。キャラクタ管理部113は、記憶部120に格納されたキャラクタデータを、パズルゲームの進行状況に応じて、読み出したり、更新したりすることにより、ユーザによって所有されている各キャラクタを管理する。
図7は、キャラクタデータのデータ構造の一例を示す図である。キャラクタは、ステージを有利に進行させることに関わる各種パラメータを有している。パラメータの一例として、「レベル」、「得点単価」、「タイプ」、「スキル」および「アビリティ」がある。さらに、「累積得点」があってもよい。これらの各種パラメータは、各キャラクタのキャラクタ名に関連付けて、キャラクタデータとして格納されている。
「レベル」は、上述したとおり、キャラクタの総合的な強さを示すパラメータである。「得点単価」は、上述したとおり、キャラクタが入った風船が消去されたときのスコア算出に参照される、該キャラクタ1個あたりの得点を示すパラメータである。「累積得点」は、上述したとおり、これまでにユーザによってプレイされたすべてのステージにおいて、キャラクタについて獲得されたスコアをすべて合算したもの(いわゆる経験値)を示すパラメータである。
「タイプ」は、キャラクタの属性を示すパラメータである。タイプには、一例として、赤、青、黄の3タイプがあり、盤面に配置されるキャラクタのタイプが、該盤面が構成されたステージの属性、または、該ステージに登場するボスの属性と一致すると、該ステージを有利に進行させることができる。
「スキル」は、キャラクタがステージの進行中に発動させることにより、ステージの進行を有利にすることができる技の内容を示すパラメータである。盤面に配置されたキャラクタは、所定の発動条件が満たされた場合にスキルを発動できる状態に遷移する。本実施形態では、スキルは、所定の発動条件が満たされたとき以降に、ユーザの操作にしたがって、発動される。
「アビリティ」は、ステージの進行状況または進行後の結果に対して有利な作用を及ぼすキャラクタの能力である。アビリティを有するキャラクタが盤面に配置されていることにより、該アビリティに係る、ステージの進行に有利な作用が発現する。例えば、「ハート」のキャラクタが「スコア5%UP」のアビリティを有している場合、ステージの進行中に、ハートが得点位置に到達したときに加算される得点が、通常の獲得される得点の5%UPとなる。
ユーザは、ステージの属性、該ステージに登場するボスの属性、および、該ステージに設定されたクリア条件など、ならびに、自身が所有する各キャラクタの各パラメータを考慮して、ステージを有利に進める上で、最善のキャラクタを指定すればよい。このように、キャラクタを指定する場面において、ユーザはパズルゲームを有利に進めるために戦略を練ることができる。結果として、パズルゲームの興趣性を一層向上させることが可能となる。
<風船について>
本実施形態では、風船は、ゲーム画面の上方から下方へ風船を引っ張ろうとする仮想の重力に逆らう浮力を持ち、該浮力でゲーム画面上方へ浮上する性質を持つパズル要素である。図5に示す風船512は、図示の通り膨らんでおり、盤面511の上方に隙間があればその隙間を埋めるように浮上する。一方、後述するように風船が割れた場合、風船の中身、すなわちキャラクタまたはコインが、上述の仮想の重力にしたがってパズル画面の下方へ落下する。空の風船は、中身が無いため割れた場合も何も落下しない。
本実施形態において、キャラクタ入り風船は、盤面における位置関係が変わった場合に、同種の隣り合う風船同士で結合する性質を持つ。なお、空の風船およびコイン入り風船は、該結合する性質を持たない。本実施形態では、結合後の風船は、風船の被膜が1つに繋がった状態で表示される。
本実施形態において、操作受付部111は、ユーザが風船を盤面に射出するための操作(射出操作)を受け付ける。該射出操作は、例えば、ユーザがユーザ端末100の入力部151に対し行うドラッグ(スライド)操作である。以降、ユーザが盤面に向かって射出させる風船、および、射出後に盤面中を移動する風船を射出風船と称する。すなわち、射出風船とは、盤面に新たに追加される風船である。射出風船は、キャラクタ入りの風船である。射出風船に入っているキャラクタの種類は、盤面に配置されたキャラクタ入り風船に入っているキャラクタのいずれかである。射出風船の移動は、一例として、ドラッグ操作で選択されて、初期位置からずらされたキャラクタが、ずらされた後の現在位置から盤面に配置された風船群に向かって射出されることによって起こる。初期位置は、一例として、盤面511の下方に設置された射出台519の上である。ずらされた後の現在位置は、一例として、上述のドラッグ操作によって最後に検出された接触位置である。射出操作は、ユーザが射出台519上の射出風船にタッチした際に開始され、該射出風船をドラッグ操作でずらした後にドロップ(リリース)操作を行ったときに完了する。換言すると、射出操作は、射出風船へのタッチダウンで開始し、該タッチダウンからタッチアップまでの間継続し、タッチアップによって完了する。
なお、詳細は後述するが、本実施形態では、キャラクタ入り風船は、同種の風船が4個以上結合した場合、それぞれの風船が割れて中身のキャラクタが落下する。ここで、「同種の風船」とは、同じ種類のキャラクタが入った風船を意味する。換言すると、パズル画面において、キャラクタ入り風船は3つまでは結合した状態で浮上する。また、空の風船およびコイン入り風船は、射出風船が接触した場合に割れる。コイン入り風船は、割れると中身のコインが落下する。
なお、ゲーム進行部112は、風船の浮力と、風船にかかる重力とのどちらが強くなるように設定してもよいし、同じに設定してもよい。また、ゲーム進行部112は、結合した風船の数が多いほど、浮力または重力が大きくなるように設定してもよい。例えば、風船の浮力の方が大きい場合、該風船が割れてキャラクタが落下するときの落下軌道が、浮上形態のキャラクタで塞がれている場合は、キャラクタは風船に包まれていなくても、落下軌道を塞いでいる風船の浮力によって、盤面に残ることがあってもよい。反対に、重力の方が大きい場合、落下するキャラクタは、落下軌道が塞がれていても、風船を押しのけて、または風船を割りながら下方へ落下してもよい。
パズル画面には、後述するコンボが成立する時間を示すパラメータ(第1パラメータ)の残量を示したコンボゲージ516が表示される。第1パラメータは、パラメータ管理部1121が管理するパラメータの1つである。第1パラメータには、最小値および最大値が設定されている。コンボゲージ516は、第1パラメータの、最大値に対する割合をゲージ量として示す。本実施形態では、第1パラメータの最小値は0、最大値は100であるとして説明を行う。
なお、パズル画面には、ステージのクリア条件515が表示されてもよい。例えば、図5の例では、消去すべきキャラクタ入り風船のノルマ数が、クリア条件515として表示されている。また、ステージにおいて、風船の射出回数に制限がある場合、すなわち、ゲーム進行部112がステージのクリア条件として、残り射出回数を設定している場合、パズル画面には、残り射出回数517が表示されてもよい。
パズル画面には、射出風船とともに射出台519が表示される。また、ステージにおいてユーザが射出する風船の種類を選択可能な場合は、パズル画面には、射出する風船に入れるキャラクタを選択するキャラクタ選択ボタン518が表示されてもよい。また、パズル画面には、そのステージにおいて獲得されたスコアの合計を示すスコア合計520が表示されてもよい。また、パズル画面には、コイン入り風船を割って落下させたコインの枚数を示す獲得コイン数521が表示されてもよい。また、パズル画面には、キャラクタ毎のスキルゲージ522が表示されてもよい。スキルゲージ522が所定値以上溜まった状態でユーザによりスキルゲージ522がタッチされると、該ゲージに対応するキャラクタのスキルが発動する。
<盤面処理1:射出風船の射出および移動>
図8は、図3に示した盤面処理(ステップS106)の詳細を示すフローチャートである。処理の流れを以下で説明するにあたり、図9〜図13に示すゲーム画面を参照する。図9〜図13は、パズル画面の具体例を示す図である。各種パズル画面は、ゲーム進行部112の指示にしたがって、画像生成部114によって生成される。そして、生成されたパズル画面が表示制御部115によって表示部152に表示されることにより、ユーザに視認される。
図5に示したパズル画面が表示されてから所定秒経過すると、ステップS202において、ゲーム進行部112は、射出操作の受け付けを開始する。具体的には、ゲーム進行部112は射出台519の上部にキャラクタ入り風船を、射出風船531として配置する。画像生成部114は図9に示すような、射出風船531が配置された射出台519を含むパズル画面を生成する。ユーザは、射出風船531に入っているキャラクタを、キャラクタ選択ボタン518をタッチすることで変更することができる。
ゲーム進行部112は、パズル画面において、射出台519を、1以上の任意の数、設置してもよい。また、ゲーム進行部112は、ステージごとに予め定められている設定にしたがって、所定の数の射出台519を設置してもよい。このような構成によれば、設置される射出台519の数によって、高得点を狙うための戦略が異なり、ユーザは、ステージごとに戦略を練ってパズルゲームを楽しむことができる。
ステップS204において、ゲーム進行部112は、操作受付部111が射出操作の開始を検知するまで待機する。操作受付部111が射出操作の開始を検知した場合、ステップS206において、ゲーム進行部112のパラメータ管理部1121は、第1パラメータの減少を開始させる。これにより、コンボゲージ516のゲージも減少を開始する。ドラッグ操作が開始してから完了する(後述するステップS214でYESの場合)までの間、パラメータ管理部1121は、ゲームにおける時間の経過とともに第1パラメータを減少させる。なお、第1パラメータの減少スピードは適宜設定されてよい。
ステップS208において、ゲーム進行部112はさらに、射出風船531に入っているキャラクタ(以降、射出キャラクタと称する)を特定する。ステップS210において、ゲーム進行部112は、ドラッグ操作が検知されている間、盤面511に配置されているキャラクタのうち、特定した射出キャラクタと同種のキャラクタを強調表示させてもよい。
図10に示すとおり、本実施形態では、一例として、ゲーム進行部112は、盤面511に配置されているキャラクタのうち、射出キャラクタと同種のキャラクタが入った風船512に対して、これらを目立たせるための枠を付与してもよい。枠は、例えば、盤面511における各種キャラクタおよび背景で使用されていない色で着色されていてもよい。また、枠には、点滅または風船の輪郭に沿って動くなどのアニメーションが付与されてもよい。
さらに、ステップS212において、ゲーム進行部112は、射出風船531の射出軌道を決定する。例えば、ゲーム進行部112は、射出風船531の初期位置と、現在検知されている接触位置との位置関係に基づいて、射出軌道を決定してもよい。一例として、ゲーム進行部112は、現在検知されている接触位置533から射出風船531の初期位置534へと向かう直線の延長線を射出軌道535として決定してもよい。ゲーム進行部112は、ステップS214でNOの間、すなわち、ドラッグ操作が検知されている間は、決定した射出軌道535を表示部152に表示させてもよい。これによりユーザは、射出軌道535を視認して、ねらいを定めて、所望の位置に射出風船531を射出させやすくなる。
ステップS214でYESの場合、ステップS216において、ゲーム進行部112のパラメータ管理部1121は、第1パラメータの減少を停止させる。具体的には、上述のドラッグ操作に係る接触が検知されなくなると、換言すれば、操作受付部111が、タッチスクリーン15の状態について、接触の状態から非接触の状態への遷移を検知すると、パラメータ管理部1121は、ドラッグ操作が完了したと判断し、第1パラメータの減少を停止させる。これにより、コンボゲージ516のゲージの減少も停止する。
ステップS218において、ゲーム進行部112は、残り射出回数を1減じる。これにより、画像生成部114が生成する画像に含まれる残り射出回数517の数字が1つ減少する。なお、パラメータ管理部1121は、ステップS218において、第1パラメータを所定の減少値の分だけ、減少させてもよい。つまり、パラメータ管理部1121は、射出操作の開始から完了までの経過時間に関わらず、該射出操作が完了した場合にコンボゲージの値を所定量だけ減少させてもよい。これにより、コンボゲージを維持することがより困難になるため、ゲームの戦略性が増す。以降、該所定量のことを「基本減少量」と称する。
続けて、ステップS220において、ゲーム進行部112は、射出風船531を射出して、盤面511に向かって移動させる。このときの移動の軌道は、ステップS214において非接触の状態への遷移が検知された時点において確定した射出軌道である。図11は、図10に示す射出軌道535に沿って、射出風船531が移動する場面でのパズル画面を示している。図11に示すとおり、ゲーム進行部112は、射出風船531が射出されて移動した軌跡を、射出軌跡541として表示部152に表示させてもよい。
ステップS222でNOかつステップS224でNOの場合、すなわち射出風船531が盤面511上で風船512、中間障害物514、および天井513等のいずれかに衝突するまでは、ゲーム進行部112は射出風船531の移動を継続させる。本実施形態では、例えば、移動中の射出風船531について、盤面511上の異種のキャラクタが入った風船512をかき分けて、キャラクタの風船の群れを突き進んでいくかのような演出がなされてもよい。
ステップS222でYESの場合、すなわち、射出風船531が、移動によって空の風船512Fに衝突した場合には、ステップS224において、ゲーム進行部112は、空の風船を割って、さらに射出風船531の移動を継続させる。なお、射出キャラクタとコイン入り風船512Gに衝突した場合も、ゲーム進行部112はコイン入り風船512Gを割って、中身のコインを落下させてもよい。この場合も、ゲーム進行部112はさらに射出風船531の移動を継続させる。
ステップS224でNOの場合、すなわち、射出風船531がキャラクタ入り風船512A〜Eのいずれか、または中間障害物514および天井513等の各種障害物に衝突した場合、ゲーム進行部112は、ステップS228において射出風船531の移動を停止させる。
図12は、図11に示す射出軌道535に沿って移動してきた射出風船531が、他の風船512に衝突して、その位置で停止した場面を示すパズル画面を示している。
図13は、射出風船531について、移動に係る別の例を説明するためのパズル画面である。図13は、別の射出軌道536に沿って、射出風船531が移動して停止した場面を示すパズル画面を示している。図13に示す例では、射出軌道536に沿って射出風船531が射出され、移動を開始すると、障害物よりも先に、パズル画面の左端に衝突する。
本実施形態では、移動中の射出風船531がパズル画面の左端または右端に到達した場合には、ゲーム進行部112は、射出軌道を変更する。具体的には、ゲーム進行部112は、射出風船531の射出時に決定した射出軌道536が、パズル画面の端(図13に示す例では左端)と交差する場合、射出軌道536が左端に入射する角度に基づいて、反射後の射出軌道537を決定する。ゲーム進行部112は、射出軌道536に沿って射出風船531を移動させ、射出風船531が左端に到達した後は、反射後の射出軌道537に沿って射出風船531の移動を継続させる。
つまり、ゲーム進行部112は、表示部152における表示領域の左端または右端に射出風船531が到達した場合には、表示領域の左端または右端と上述の初期の射出軌道とが成す角度に基づいて、到達後の射出軌道を変更する。図13に示すパズル画面における射出軌跡541は、射出風船531が、該パズル画面の左端に衝突して反射し、反射後は、変更された射出軌道537に沿って移動したことを示している。
<盤面処理2:風船の結合および消去>
図14は、図3に示した盤面処理の詳細を示すフローチャートである。図14は、図13のステップS228において射出風船531の移動が停止した後の処理の流れを示している。図14の処理の流れを以下で説明するにあたり、図15〜図22に示すゲーム画面を参照する。図15〜図22は、パズル画面の具体例を示す図である。
全ての風船の移動が停止したとき、ステップS230において、ゲーム進行部112は同種の風船(同種のオブジェクト)が隣接しているか否かを判定する。ステップS230においてYESの場合、ステップS232において、ゲーム進行部112は、同種のキャラクタ入り風船512を結合させる。
図15は、同種の風船を結合させたときのパズル画面を示す。図示の通り、射出風船531が、同種の風船553に接触すると、ゲーム進行部112は、射出風船531が同種の風船553と接触したその位置で、該射出風船531を停止させる。また、ゲーム進行部112は、射出風船531と、該射出風船531と同種の風船551〜553とを結合させる。
ステップS234において、ゲーム進行部112は、所定個数(本実施形態では、4個)以上のキャラクタ入り風船が結合したか否かを判定する。ステップS234においてYESの場合、ゲーム進行部112はステップS236以降に示す、風船を消去するための処理を実行する。なお、所定個数以上のキャラクタ入り風船が結合した場合、ゲーム進行部112はそれらのキャラクタ入り風船を、図15に示す風船531および551〜553のように強調表示してもよい。
一方、ステップS230においてNOの場合、または、ステップS234においてNOの場合、ゲーム進行部112は一連の盤面処理を終了させる。
本実施形態に係るパズルゲームは、風船512を盤面から消去し、消去されたキャラクタに応じてスコアを算出することによって進行するパズルゲームである。本実施形態において、キャラクタを盤面から消去する処理とは、ステップS236〜S250に示されているとおり、一例として、盤面511に配置された風船512を、移動(具体的には落下)させて、スコア合計520を更新するための得点位置558に到達させることである。
得点位置とは、プレイ中のステージに係る成績を更新するために、盤面511に配置されたキャラクタを移動させるための移動先の場所を意味する。該得点位置は、パズル画面上の所定の位置に設定され、ゲーム進行部112が、キャラクタの移動によって、得点が発生するか否かを判定するために用いられる。該得点位置は、パズル画面上の所定の領域を定義するものであってもよいし、所定の線を定義するものであってもよいし、所定の点を定義するものであってもよい。本実施形態では、得点領域は、図15に示すように所定の線558であるものとする。
ステップS234においてYESの場合、ステップS236において、ゲーム進行部112のスコア算出部1122は、コンボゲージ516の値に応じて、スコアを算出する。なお、本実施形態では、スコアは、風船が1度消去される毎に算出される。連鎖消去の場合、スコア算出部1122は、1連鎖(すなわち、最初の風船の消去)、2連鎖、と連鎖数が増える毎に、そのタイミングで消去された風船についてのスコアを算出する。ここで、「連鎖消去」とは、ある風船の消去に起因して連鎖的に起こる風船の消去を意味する。
スコア算出部1122は、コンボゲージ516が残っている場合、コンボゲージ516が残っていない場合に比べて良好なスコアとなるようにスコアを算出する。換言すると、スコア算出部1122は、パラメータ管理部1121が管理している第1パラメータの値が0(第1閾値)よりも大きい場合、該パラメータが0(または0以下)である場合よりも良好なスコアとなるように、スコアを算出する。
また、スコア算出部1122は、コンボゲージ516がより多く残っているほど、すなわち、第1パラメータの値が大きいほど、良好なスコアとなるようにスコアを算出してもよい。これにより、ユーザにコンボゲージ516を維持する動機を与えることができる。
ステップS238において、ゲーム進行部112は、パズル画面にコンボ数およびスコアを表示させる。図16は、スコア556およびコンボ数555を表示した場合のパズル画面を示す。コンボ数は、コンボゲージ516が残っている状態で風船を消去した回数である。第1パラメータが0より大きい状態のとき、コンボゲージ516はゲージが残っている態様で表現される。コンボ数は、例えばパラメータ管理部1121によってカウントされその値が保持される。
コンボ数のカウントの仕様は、適宜定められる。例えば、パラメータ管理部1121は、射出操作を行う毎にコンボ数を初期化してもよいし、コンボゲージ516が残っている間は、射出操作が複数回行われてもコンボ数を継続してカウントしてもよい。
また、例えば、パラメータ管理部1121は、風船が消去される度に、すなわち、連鎖消去が起こる度に、「風船が1回消去された(コンボが成立した)」と判定し、コンボ数のカウントを1つ増加させてもよい。もしくは、パラメータ管理部1121は、1回の射出操作で1回以上風船が消去された場合、連鎖数に関わらず「風船が1回消去された」と判定し、コンボ数のカウントを1つ増加させてもよい。
以下では一例として、パラメータ管理部1121は、連鎖消去が起こる度にコンボ数を増加させ、コンボゲージ516が残っている間は射出操作が複数回行われてもコンボ数を継続してカウントする。この仕様によれば、コンボゲージ516が残っていれば、射出操作が行われる度にコンボ数が増えていく。そのため、ユーザがコンボ数を増やすことがより容易になる。したがって、ユーザにコンボ数が増えていく面白さを体感させることができる。また、ユーザに、なるべくコンボゲージ516を残しつつ、各回の射出操作での連鎖数を伸ばす方法を考えさせることができる。したがって、ゲームの戦略性が高まる。
なお、スコア556に表示されているスコアは、現時点ではスコア合計520に加算されていない。後述するステップS250において、スコアはスコア合計520に加算される。また、ゲーム進行部112は、図示のように、所定個数以上で結合した風船531および551〜553に、風船が割れるエフェクトまたはアニメーションを付与してよい。
ステップS240において、ゲーム進行部112は、結合後の風船531および551〜553を得点位置558に落下させるための落下軌道を決定する。落下軌道の決定は、ステップS240より前の任意のタイミングで実行されてもよい。また、落下軌道は任意の方法で決定される。ゲーム進行部112は、結合後の風船に入っているキャラクタに関連付けられている各種パラメータに基づいて落下軌道を決定してもよい、また、ゲーム進行部112は、結合後の風船が配置されているときの風船の向きに基づいて落下軌道を決定してもよい。また、ゲーム進行部112は、ステージの種類に応じて落下軌道を決定してもよい。
ステップS242において、ゲーム進行部112は、結合後の風船を強調表示させてもよい。図16に示すとおり、本実施形態では、一例として、ゲーム進行部112は、結合後の風船531および551〜553を目立たせるために、これらの風船に対して環(包囲オブジェクト)を付与してもよい。環には、ユーザの視線が結合後の風船に向くように、アニメーションが付与されることが好ましい。例えば、環は、最初、風船を囲うように、該風船よりも大きく表示される。環は、徐々に、該風船の輪郭へと近づいていくように収縮する。この収縮の際には、拡縮を繰り返す動きが伴っていてもよい。これにより、結合した風船に対するユーザの注意を惹きつけることができる。結合後の風船の落下は、多くの場合、高得点が得られる連鎖消去の契機となる。上述の構成によれば、このような連鎖消去の演出を、見落とされることなく確実にユーザに視認させることが可能となり、したがって、ユーザに対して、プレイに対する達成感、または、満足感を与えることができる。
続いて、ステップS244において、ゲーム進行部112は、結合後の風船を落下させる。図17は、図16に示した風船531および551〜553が割れて、中身のキャラクタ557が落下するときのパズル画面を示している。図示のように、キャラクタ557は仮想の重力に従って盤面511の下方へ落下する。
ステップS246において、ゲーム進行部112は、結合後の風船の表示態様を変更してもよい。例えば、ゲーム進行部112は、結合後の風船を包んでいる風船を破裂させるアニメーションを画像生成部114に出力させる。これにより、結合後の風船が割れ、キャラクタが落下する表示態様へと変更する。なお、ゲーム進行部112は、一例として、収縮していく環が、結合後の風船の輪郭に一致したタイミングで、風船を破裂させるというアニメーションを画像生成部114に生成させてもよい。
ステップS248において、ゲーム進行部112は、決定した落下軌道に沿って、結合後の風船の中に入っていたキャラクタを落下させる。該キャラクタは、得点位置558に向かって移動する。図17に示すとおり、本実施形態では、得点位置558は、パズル画面上の所定の線を定義するものである。ゲーム進行部112は、落下するキャラクタ557が得点位置558に到達したら、これらのキャラクタの消去が完了したと判定する。具体的には、ゲーム進行部112は、キャラクタ557それぞれの輪郭の一部でも、得点位置558として定義される線に触れたら、消去完了と判定する。なお、ゲーム進行部112は、結合後の風船が移動してきた軌跡を表示部152に表示させてもよい。
続けて、ステップS250において、ゲーム進行部112は、落下させたキャラクタが得点位置558に到達したタイミングで、スコア算出部1122がステップS236で算出したスコアを、スコア合計520に加算する。図18は、落下させたキャラクタ557が得点位置558に到達したときのパズル画面を示す。図示の通り、キャラクタ557が得点位置558に到達した場合、図16で示したスコア556(400点)が、スコア合計520の値に加算される。
ステップS252において、ゲーム進行部112は、コンボゲージ516を回復させる。より詳しくは、パラメータ管理部1121は、キャラクタの消去が完了したと判定した場合、コンボゲージに割り当てられた第1パラメータの値を、所定の増加値の分、増加させる。なお、パラメータ管理部1121は、第1パラメータに上記増加値を足すと、該第1パラメータが最大値を超える(コンボゲージ516が満杯以上に溢れる)場合は、第1パラメータを最大値まで回復させる(コンボゲージ516を満杯にする)。
例えば、第1パラメータの最大値が100で、現在の第1パラメータの値が90であり、かつ増加値が20である場合を考える。この場合、パラメータ管理部1121は、第1パラメータの値を100とし、本来増加するはずの残りの値(10)は切り捨てる。なお、上記増加値は、消去されるキャラクタの数に応じて決定されることが望ましい。これにより、コンボゲージを回復させるための射出操作の習熟を促すことができる。したがって、ゲームの戦略性が向上し、よってゲームの興趣性が向上する。
また、上述した第1パラメータの基本減少量と増加値とを比べた場合、基本減少量は、キャラクタを消去するために必要な、風船の最低の結合個数(すなわち、ステップS234における「所定個数」に等しい個数)だけキャラクタが消去された場合の、コンボゲージの値の増加値よりも大きくなるように設定されることが望ましい。本実施形態の例では、基本減少量は、4個の風船を消去した場合の増加値よりも大きくなることが望ましい。これにより、単に最低の結合個数で風船を消していくだけでは、コンボゲージの値が減少する一方になる。したがって、ユーザはコンボゲージを回復させるためには、より多くの風船を一度に消去できるよう、射出操作および風船を消す戦略を練る必要がある。したがって、ゲームの戦略性が向上し、よってゲームの興趣性が向上する。
ステップS254において、ゲーム進行部112は、風船(風船に入っていたキャラクタ)の消去後に、盤面の上方に隙間が生じたか否かを判定する。ステップS254でNOの場合、すなわち隙間が無い場合、ゲーム進行部112は一連の盤面処理を終了する。一方、ステップS254でYESの場合、すなわち、隙間が生じた場合、ステップS256において、ゲーム進行部112は隙間を埋めるように、風船512のいずれかを浮上させる。例えば、図18のパズル画面の例のように、複数の風船が矢印で示す方向に浮上する。
ステップS254で盤面511の隙間が埋められたことにより、盤面511における風船512の配置は変化する。ゲーム進行部112は、ステップS256の処理を終了すると、該処理によって変化した後の風船512の位置関係に基づいて、ステップS230の判定、すなわち同種の風船が隣接しているか否かの判定を再び行う。
図19〜22は、図18に示す盤面において、複数の風船512が矢印の方向に浮上した後のパズル画面を示す。図示の通り、複数の風船512が浮上したことにより、同種の風船560〜563が4個隣接する(ステップS230でYES)。この場合、ゲーム進行部112は、同種の風船を結合させる(ステップS232)。図19の例の場合、同種の風船が所定個数である4個以上結合したため(ステップS234でYES)、ゲーム進行部112はステップS236〜ステップS252までの処理を行う。すなわち、ゲーム進行部112は、1回目の風船の消去により、連鎖的に起こった2回目の風船の消去に係る処理を行う。具体的には、スコア算出部1122が、コンボゲージ516の値に応じて、2連鎖目の消去に係るスコアを算出する。ゲーム進行部112は、図20に示すように風船560〜563の消去時のコンボ数564およびスコア565を表示させる。図15〜図20に示す例では、コンボゲージ516の値が0より大きい状態で、2回目の風船の消去を行っているため、コンボ数は図示の通り2である。図15〜図20に示す例では2連鎖目の連鎖消去について説明したが、連鎖消去は3連鎖、4連鎖と続いて発生するものであってよい。
スコア算出部1122は、コンボ数が多いほどより良好なスコアとなるようにスコアを算出してもよい。また、スコア算出部1122は、コンボゲージが0より大きい状態で射出操作を完了した回数が多いほど、より良好なスコアとなるように前記スコアを算出することが望ましい。
さらに、ゲーム進行部112は図21に示すように、風船560〜563に入っていたキャラクタ567を落下させる。そして、図22に示すように、キャラクタ567が得点位置558に達した場合に、スコア合計520に、図20に示したスコア565の値を加算する。また、パラメータ管理部1121は、コンボゲージ516を回復させる。
なお、ゲーム進行部112は、消去されたキャラクタ、すなわち、得点位置558に到達したキャラクタの数を、種類ごとにカウントしてもよい。本実施形態では、一例として、特定の種類のキャラクタを指定数消去することがクリア条件に設定される。この場合、ゲーム進行部112は、特定の種類のキャラクタが消去された数に応じて、クリア条件515に示される達成進捗を更新してもよい。例えば、キャラクタ名が「ハート」のキャラクタを20個消去することが課せられたステージにおいて、「ハート」のキャラクタ2個の消去に成功した場合、ゲーム進行部112は、クリア条件515に示されるゲージを10分の1だけ増加させる。
また、パラメータ管理部1121が管理する第1パラメータの値は、一連の盤面処理が終了しても初期化されない。すなわち、第1パラメータの値は、1回のユーザの入力操作によって引き起こされる1回のアクション(射出風船の移動に起因する風船の結合および消去、ならびに該消去により連鎖的に発生する風船の移動、結合、および消去)が終了しても初期化されず、その値は引き続き次の盤面処理に持ち越される。つまり、ユーザの連続した射出操作により連続して複数のアクションが起こる場合、コンボゲージ516は初期化されることなく減少することとなる。これにより、ユーザに、複数回の射出操作を迅速かつ正確に行うことを促すことができる。したがって、ゲームプレイにおける戦略性および緊張感を高めることができるため、ゲームの興趣性を向上させることができる。
以上、説明した盤面処理によると、射出風船の射出に係るドラッグ操作の開始から完了までの期間、コンボゲージ516の値が時間経過とともに減っていく。そのため、ユーザはゲームでより良いスコアを稼ぐためには、コンボゲージ516を極力減少させないように、操作開始から完了まで迅速に操作する必要がある。
したがって、上述の盤面処理を実行することで、ゲームプログラム131に基づくパズルゲームは、ユーザに操作内容を熟考させること、および迅速に操作することを促すことができる。これにより、パズルゲームのプレイにおける戦略性および緊張感が高まる。したがって、パズルゲームの興趣性が向上する。
〔実施形態2〕
本発明の他の実施形態について、以下に説明する。なお、説明の便宜上、上記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
パラメータ管理部1121は、コンボゲージの値に、第1閾値より大きい第2の閾値を含む、複数の閾値を設けてもよい。なお、該複数の閾値の値およびその設定間隔は特に限定されない。また、スコア算出部1122は、射出操作が完了した時点で、コンボゲージの値が第2閾値より大きい場合、コンボゲージの値が第1閾値より大きくかつ前記第2閾値以下の場合に比べ、より良好なスコアとなるようにスコアを算出してもよい。
具体的に説明すると、ゲーム進行部112のパラメータ管理部1121は、コンボゲージの値を内部的に、複数段階に分けて管理してもよい、例えば、パラメータ管理部1121は、コンボゲージの値を0〜300の間で管理してもよい。そして、該値が300〜201までの間はコンボゲージが1本目、200〜101までの間は2本目、100〜1までの間は3本目であると規定してもよい。この場合、前記第1の閾値は0、100および200が前記複数の閾値に相当する。
また、ゲーム進行部112および画像生成部114は、コンボゲージの本数を示すオブジェクトを盤面511に含めてもよい。これにより、ユーザにコンボゲージの残り本数および残量を、視覚的により分かりやすく提示することができる。なお、コンボゲージは、1本目から2本目、2本目から3本目等、その消費本数が増えるごとに、該ゲージの色、形、エフェクト、アニメーションが変化するものであってもよい。これにより、ユーザにコンボゲージの残り本数および残量を、さらに分かりやすく提示することができる。
〔実施形態3〕
なお、スコア算出部1122は、図14のステップS236において、コンボゲージの値に加えて、1度に消去された風船の数も考慮してスコアを算出してもよい。より具体的には、スコア算出部1122は、ステップS236において、1度に消去された風船の数が多くなるほど、良好なスコアとなるようにスコアを算出してもよい。
これにより、ユーザは所謂「同時消し」した風船の個数が多いほど、良好なスコアを獲得することができる。したがって、本実施形態の構成によれば、どのように風船を射出すれば同時消しを狙うことができるか、ユーザに考えさせることができる。したがってゲームの戦略性が増すため、ゲームの興趣性が向上する。
また、スコア算出部1122は、連鎖消去が起こった場合、図14のステップS236において、コンボゲージが示す第1パラメータの値に加えて、現時点での連鎖数も考慮してスコアを算出してもよい。より具体的には、スコア算出部1122は、ステップS236において、連鎖数が多いほど良好なスコアとなるようにスコアを算出してもよい。これにより、ユーザは連鎖数が多いほど、良好なスコアを獲得することができる。したがって、本実施形態の構成によれば、どのように風船を射出すれば、コンボゲージを維持しつつ連鎖を狙うことができるか、ユーザに考えさせることができる。したがってゲームの戦略性が増すため、ゲームの興趣性が向上する。
〔実施形態4〕
ステージが進行するにつれ、盤面511のキャラクタが結合されたり、落下したりして、盤面511のキャラクタの数が少なくなってくる。盤面511に配置されているキャラクタの数が少ないと、連鎖消去および同時消しが狙いづらくなる。これでは、ステージが進行するほど、連鎖消去および同時消しの機会が減ることになってしまい、パズルゲームの興趣性を減退させることになりかねない。そこで、ゲーム進行部112は、ステージの進行状況が所定の条件を満たす場合に、盤面511のキャラクタを補充することが好ましい。
ゲーム進行部112は、ステージの進行中に風船512を補充する。ゲーム進行部112は、ステージの進行中に所定の条件が満たされたとき、補充モードを発動し、補充が完了すると、補充モードを終了させて、通常のステージの進行を継続する。上記所定の条件は、図3のステップS104の終了後から、S112の前までの間であればどのタイミングであってもよい。
本実施形態では、ゲーム進行部112は、図3のステップS106の直後、すなわち、前の射出風船531の射出に係る盤面処理が終了した直後に補充モードに移行し、所定個数の風船512を補充することとする。
図23および24は、風船を補充するときパズル画面の一例を示している。本実施形態では、ゲーム進行部112は、風船の射出に係る盤面処理が終了した後、盤面511の1列分に相当する数の風船570を補充する。なお、ゲーム進行部112は風船570を1個ずつばらばらに補充してもよいし、図23に示すように一度に補充してもよい。
図24は、1列分の風船が補充された後のパズル画面の一例を示している。図示のように、ゲーム進行部112は、補充した風船570をそれぞれ、盤面の上方の隙間を埋めるように浮上させ、これらの風船が配置済の風船または障害物等でそれ以上浮上できない位置に移動した場合、そこで移動を停止させる。これにより、盤面511の左右の風船数の片寄りを無くしつつ、風船を補充することができる。
ゲーム進行部112は、盤面511に配置された風船512の個数が所定の個数まで減った場合に、風船を補充する構成であってもよい。この場合、ゲーム進行部112は、盤面511に配置されている風船512の数を監視し、風船512の数が前記所定の個数未満になったとき、新しい風船570を1つ以上、盤面511に補充する。これにより、風船が少なすぎて連鎖消去および同時消しの機会が減るという事態を回避することができる。
なお、ゲーム進行部112は、補充する風船570の種類をランダムに決定してもよい。あるいは、ゲーム進行部112は、すでに盤面511に配置されている風船の種類およびその割合に基づいて、特定の種類に偏ることなく風船570が配置されるように、補充する風船570の種類を決定してもよい。
〔実施形態5〕
上記各実施形態では、ゲーム進行部112のパラメータ管理部1121は、第1パラメータの値を、射出操作の開始から完了までの間、時間経過とともに減少させていくこととして説明を行った。しかしながら、パラメータ管理部1121は、第1パラメータの値の増減を逆転させて管理してもよい。
より具体的には、パラメータ管理部112は、第1パラメータの最小値と最大値を設定しておき、射出操作が開始してから完了するまでの間、時間経過とともに第1パラメータの値を最小値から増加させていってもよい。そして、スコア算出部1122は、射出操作が完了した時点で第1パラメータの値が所定の閾値(第3閾値)より小さい場合、第1パラメータの値が該所定の閾値以上である場合に比べて良好なスコアになるように、スコアを算出してもよい。
本実施形態では、上記各実施形態においてパラメータ管理部1121が実行する「第1パラメータの値を減少させる(コンボゲージ516を減少させる)」処理は、「第1パラメータの値を増加させる(コンボゲージ516を増加させる)」処理に置き換えられる。また、パラメータ管理部1121は、射出操作が完了した場合に第1パラメータの値を所定の増加量(基本増加量)だけ増加させてもよい。また、風船を消した際、パラメータ管理部1121は、第1パラメータを所定の減少値の分、減少させてもよい。これにより、上記各実施形態と同様の効果を奏する。
〔ソフトウェアによる実現例〕
制御部210の制御ブロック(特に、送受信部211、サーバ処理部212、およびデータ管理部213)、ならびに制御部110の制御ブロック(特に、操作受付部111、表示制御部115、画像生成部114、ゲーム進行部112、およびキャラクタ管理部113)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。
後者の場合、制御部210または制御部110は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば1つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばCPU(Central Processing Unit)を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ROM(Read Only Memory)等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するRAM(Random Access Memory)などをさらに備えていてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
〔付記事項〕
本発明の一側面に係る内容を列記すると以下のとおりである。
(項目1) ゲームプログラム(131)について説明した。本開示のある局面によると、ゲームプログラムは、プロセッサ(10)、メモリ(11)、およびユーザの入力操作を受け付ける操作部を備えるコンピュータ(ユーザ端末100)により実行されるものである。ゲームプログラムに基づくゲームは、操作部に対するユーザの入力操作によって引き起こされる、アクションの結果に応じて、増減する第1パラメータの値(コンボゲージの値)が設定されているゲームである。ゲームプログラムは、プロセッサに、1つのアクションのための入力操作が開始してから該入力操作が完了するまでの間、ゲームにおける時間の経過とともに第1パラメータの値を減少させるステップ(ステップS206)と、入力操作が完了した時点で第1パラメータの値が第1閾値より大きい場合、第1パラメータの値が第1閾値以下である場合に比べてゲームが有利になるように、ゲームを進行させるステップ(ステップS236)と、を実行させる。
前記の構成によれば、入力操作の開始から完了までの期間、第1パラメータが時間経過とともに減っていく。そのため、ユーザはゲームでより有利になるためには、第1パラメータを極力減少させないように、操作開始から完了まで迅速に操作する必要がある。
したがって、前記の構成によれば、ゲームプログラムは、ユーザに操作内容を熟考させること、および迅速に操作することを促すことができる。これにより、ゲームプレイにおける戦略性および緊張感を高めることができるため、ゲームの興趣性を向上させることができる。
(項目2) (項目1)において、第1パラメータの値は、ゲームにおいて連続する複数のアクションに対して、初期化されることなく減少してもよい。これにより、連続する複数のアクションに対応する、複数回の操作を迅速かつ正確に行うことをユーザに促すことができる。したがって、ゲームプレイにおける戦略性および緊張感を高めることができるため、ゲームの興趣性を向上させることができる。
(項目3) (項目1)または(項目2)において、ゲームを進行させるステップは、アクションの結果に応じて付与するスコアを算出するステップ(ステップS236)を含んでいてもよい。スコアを算出するステップは、入力操作が完了した時点で第1パラメータが第1閾値より大きい場合、第1パラメータが前記第1閾値以下である場合に比べて、より良好なスコアとなるようにスコアを算出してもよい。
これにより、第1パラメータを第1閾値より大きい値で維持することで、ユーザはより良いスコアを獲得することができる。したがって、ゲームプログラムは、ユーザに、第1パラメータが減少しないようにゲームをプレイするメリットをより明確に示すことができる。
(項目4) (項目3)において、スコアを算出するステップは、入力操作が完了した時点の第1パラメータの値が大きいほど、より良好なスコアとなるようにスコアを算出してもよい。これにより、ゲームプログラムは、ユーザに、第1パラメータが減少しないようにゲームをプレイするメリットをより明確に示すことができる。
(項目5) (項目4)において、第1パラメータには、第1閾値よりも大きい第2閾値が設けられていてもよい。スコアを算出するステップは、入力操作が完了した時点で、第1パラメータの値が第2閾値より大きい場合、第1パラメータが第1閾値より大きくかつ第2閾値以下の場合に比べ、より良好なスコアとなるようにスコアを算出してもよい。
これにより、第1パラメータを第2閾値より大きい値で維持することで、ユーザはさらに良いスコアを獲得することができる。したがって、ゲームプログラムは、ユーザに、第1パラメータが減少しないようにゲームをプレイするメリットをより明確に示すことができる。
(項目6) (項目3)から(項目5)までのいずれか1項目において、スコアを算出するステップは、ゲームにおいて、第1パラメータが前記第1閾値より大きい状態で入力操作を完了した回数が多いほど、より良好なスコアとなるようにスコアを算出してもよい。
前記の処理によれば、第1パラメータを第1閾値以上で維持したまま入力操作を完了することを繰り返すことで、ユーザはより良いスコアを得ることができる。したがって、ゲームプログラムは、ゲームプログラムは、ユーザに、第1パラメータが減少しないようにゲームをプレイするメリットをより明確に示すことができる。
(項目7) (項目3)から(項目6)までのいずれか1項目において、ゲームは、面または空間(盤面)に複数種類の第1オブジェクト(風船512)が配置されており、ユーザの入力操作に従って面または空間に追加された第2オブジェクト(射出風船531)が第1オブジェクトに作用するアクションを生じさせるゲームであってもよい。ゲームプログラムは、前記プロセッサに、さらに、第1オブジェクトと第2オブジェクトとの位置関係が第1条件を満たした場合、第1条件を満たしたオブジェクトを、面または空間から消去するステップ(ステップS236〜ステップS250)を実行させてもよい。スコアを算出するステップは、第1オブジェクトと第2オブジェクトとの位置関係が第1条件を満たした場合にスコアを算出してもよい。
前記の処理によれば、ユーザの入力操作によって起こるアクションに起因してオブジェクトが消去される。そして、オブジェクトが消去されるときに、第1パラメータの値に応じてスコアが算出される。換言すると、ユーザは入力操作を行ってオブジェクトを消去することでスコアを獲得することができる。これにより、ユーザの入力操作と、スコア算出との因果関係がより明確になり、ゲームの興趣性が向上する。
(項目8) (項目7)において、第1条件は、第1オブジェクトおよび第2オブジェクトのうち、同種のオブジェクトが所定個数以上連続して配置されることである。スコアを算出するステップは、消去するステップにおいて消去されたオブジェクトの数に応じて前記スコアを算出してもよい。これにより、ユーザに、どのように入力操作を行えば、1度に多数のオブジェクトの消去を狙うことができるか、考えさせることができる。したがって、ゲームの戦略性が増すため、ゲームの興趣性が向上する。
(項目9) (項目8)において、ゲームプログラムは、プロセッサに、さらに、同種のオブジェクトが前記面または空間から消去された場合、消去されたオブジェクトの位置を埋めるように第1オブジェクトの配置を変更するステップ(ステップS256)を実行させてもよい。スコアを算出するステップは、第1オブジェクトの配置変更の結果、連鎖的に第1条件が満たされた場合、該第1条件が満たされた回数に応じてスコアを算出してもよい。
これにより、ユーザに、どのように入力操作を行えば、連鎖的なオブジェクトの消去を狙うことができるか、考えさせることができる。したがって、ゲームの戦略性が増すため、ゲームの興趣性が向上する。
(項目10) (項目8)または(項目9)において、ゲームプログラムは、プロセッサに、さらに、第1オブジェクトと第2オブジェクトとの位置関係が第1条件を満たした場合、第1パラメータを所定の増加値の分増加させるステップ(ステップS252)を実行させてもよい。
これにより、オブジェクトが消去される際に、第1パラメータが増加する。このようにユーザの入力操作に起因して起きる作用の結果によっては第1パラメータを回復させることで、ユーザに操作の習熟を促すことができる。したがって、ゲームの戦略性が向上し、よってゲームの興趣性が向上する。
(項目11) (項目10)において、増加させるステップにおいて、増加値は、消去するステップにおいて消去されたオブジェクトの数に応じて決定されてもよい。これにより、1度に消去したオブジェクトの数に応じて第1パラメータが増加し、スコア算出が有利になる期間が延びる。このように、第1パラメータの増加量を、ユーザの入力操作に起因して起きる作用の結果に応じて可変とすることで、ユーザに操作の習熟を促すことができる。したがって、ゲームの戦略性が向上し、よってゲームの興趣性が向上する。
(項目12) (項目11)において、ゲームプログラムは、プロセッサに、さらに、
入力操作が完了した場合、第1パラメータを所定の減少値の分減少させるステップ(ステップS218)を実行させてもよい。減少値は、消去するステップにおいてオブジェクトが所定個数だけ消去された場合の増加値よりも大きくてもよい。
これにより、オブジェクトを、該オブジェクトを消去可能な最低単位の個数で消去させたときは、第1パラメータの増加値と減少値との差し引きの収支がマイナスになるようにすることができる。したがって、ユーザに、1度により多くのオブジェクトを消去させるよう促すことができる。これにより、ゲームの戦略性が向上し、よってゲームの興趣性が向上する。
(項目13) ゲームプログラム(131)について説明した。本開示のある局面によると、ゲームプログラムは、プロセッサ(10)、メモリ(11)、およびユーザの入力操作を受け付ける操作部を備えるコンピュータ(ユーザ端末100)により実行されるものである。ゲームプログラムに基づくゲームは、操作部に対するユーザの入力操作によって引き起こされる、アクションの結果に応じて、増減する第1パラメータの値(コンボゲージの値)が設定されているゲームである。ゲームプログラムは、前記プロセッサに、1つのアクションのための前記入力操作が開始してから該入力操作が完了するまでの間、前記ゲームにおける時間の経過とともに前記第1パラメータの値を増加させるステップと、入力操作が完了した時点で前記第1パラメータの値が第3閾値より小さい場合、前記第1パラメータの値が前記第3閾値以上である場合に比べて前記ゲームが有利になるように、前記ゲームを進行させるステップと、を実行させる。前記の構成によれば、前記(項目1)と同様の効果を奏する。