〔実施形態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または他のユーザ端末100と通信せずに、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(例えば、ユーザの手、予め定められた形状のマーカーなど)を検出し、当該物体の検出結果(検出した物体の色、形状、動き、種類等)から入力操作を特定する。より具体的には、ユーザ端末100は、カメラ17の撮影画像からユーザの手が検出された場合、該撮影画像に基づき検出されるジェスチャ(ユーザの手の一連の動き)を、ユーザの入力操作として特定し、受け付ける。なお、撮影画像は静止画であっても動画であってもよい。
あるいは、操作部がタッチスクリーン15で構成される場合、ユーザ端末100は、タッチスクリーン15の入力部151に対して実施されたユーザの操作をユーザの入力操作として特定し、受け付ける。あるいは、操作部が通信IF13で構成される場合、ユーザ端末100は、コントローラ1020から送信される信号(例えば、出力値)をユーザの入力操作として特定し、受け付ける。あるいは、操作部が入出力IF14で構成される場合、該入出力IF14と接続されるコントローラ1020とは異なる入力装置(図示せず)から出力される信号をユーザの入力操作として特定し、受け付ける。
ゲームシステム1は、一例として、パズル要素を配置する領域を含む盤面に複数種類の該パズル要素を配置し、該盤面を、ユーザ端末100の表示部に表示し、該盤面におけるパズル要素の配置が変更されることよって同種のパズル要素が所定数以上連続して配置された場合に、該連続して配置されたパズル要素の少なくとも1つを盤面から除去し、除去されたパズル要素に応じて成績を決定することによって進行するパズルゲームを実行するためのシステムである。本実施形態では、単一のユーザ端末100において実行されるパズルゲーム(シングルプレイ型パズルゲーム)が想定されている。この場合、シングルプレイ型パズルゲームをユーザ端末100において実行するために必要な情報のやりとりがユーザ端末100とサーバ200との間で行われる。
別の実施形態では、ゲームシステム1は、例えば、マルチプレイ型ゲームを実行するためのシステムであってもよい。マルチプレイ型ゲームとしてのパズルゲーム(マルチプレイ型パズルゲーム)は、ユーザが操作するユーザ端末100(クライアントのコンピュータ、クライアントとしての情報処理装置)と、1以上の他のユーザが操作する1以上の他のユーザ端末100(他のクライアントのコンピュータ、他のクライアントとしての情報処理装置)との間で、該ゲームに係るデータの少なくとも一部を共有することにより、複数のユーザが1のパズルゲームに参加して協力してプレイすることが可能なパズルゲームである。
ゲームシステム1がマルチプレイ型パズルゲームである場合、サーバ200(サーバのコンピュータ、サーバとしての情報処理装置)を介して通信する第1のユーザ端末100、第2のユーザ端末100、および、第3のユーザ端末100・・・のそれぞれにおいて、盤面が生成され、それぞれの表示部に表示される。別の実施形態では、パズルゲームに係るデータとして、例えば、盤面に配置されるパズル要素の種類、クリア条件、フィーバーゲージ、プレイ結果などが、サーバ200を介して、複数のユーザ端末100間で共有される。サーバ200は、各ユーザ端末100から収集した情報、および、自装置において生成した情報を、1のパズルゲームに協力して参加する各ユーザ端末100に配布して共有させる。具体的には、盤面に配置されるパズル要素の種類を示すパズル要素データD1、クリア条件を示すクリア条件データD2、補充ゲージの情報を示す補充ゲージデータD3、および、プレイ結果を示す成績データD4などが、各ユーザ端末100に配布され、共有される。
さらに別の実施形態では、ゲームシステム1において実行されるパズルゲームは、複数のステージを含んでいてもよい。ユーザは、ユーザ端末100を操作して、複数のステージの中からプレイしたいステージを選択し、選択したステージをプレイする。
<各装置のハードウェア構成要素>
プロセッサ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はさらに、特定した指の本数から、ユーザの行ったジェスチャを特定する。例えば指の本数が5本である場合、ユーザが「パー」のジェスチャを行ったと判定し、指の本数が0本である(指が検出されなかった)場合、ユーザが「グー」のジェスチャを行ったと判定し、指の本数が2本である場合、ユーザが「チョキ」のジェスチャを行ったと判定する。(3)プロセッサ10は、カメラ17の撮影画像に対し、画像認識処理を行うことにより、ユーザの指が人差し指のみ立てた状態であるか、ユーザの指がはじくような動きをしたかを検出する。(4)プロセッサ10は、カメラ17の撮影画像の画像認識結果、および、測距センサ18の出力値等の少なくともいずれか1つに基づいて、ユーザ端末100の近傍の物体1010(ユーザの手など)とユーザ端末100との距離を検出する。例えば、プロセッサ10は、カメラ17の撮影画像から特定されるユーザの手の形状の大小により、ユーザの手がユーザ端末100の近傍(例えば所定値未満の距離)にあるか、遠く(例えば所定値以上の距離)にあるかを検出する。なお、撮影画像が動画の場合、プロセッサ10は、ユーザの手がユーザ端末100に接近しているか遠ざかっているかを検出してもよい。(5)プロセッサ10は、カメラ17の撮影画像の画像認識結果等により、ユーザの手が検出されている状態で、ユーザ端末100とユーザの手との距離が変化している場合、ユーザが手をカメラ17の撮影方向において振っていると認識する。プロセッサ10は、カメラ17の撮影範囲よりも指向性が強い測距センサ18において、物体を検出したりしなかったりする場合に、ユーザが手をカメラの撮影方向に直交する方向に振っていると認識する。
このように、プロセッサ10は、カメラ17の撮影画像に対する画像認識により、ユーザが手を握りこんでいるか否か(「グー」のジェスチャであるか、それ以外のジェスチャ(例えば「パー」)であるか)を検出する。また、プロセッサ10は、ユーザの手の形状とともに、この手をどのように移動させているか、また、ユーザ端末100に対して接近させているか遠ざけているかを検出する。このような操作は、例えば、マウスやタッチパネルなどのポインティングデバイスを用いた操作に対応させることができる。ユーザ端末100は、例えば、ユーザの手の移動に応じて、タッチスクリーン15においてポインタを移動させ、ユーザのジェスチャ「グー」を検出する。この場合、ユーザ端末100は、ユーザが選択している状態(マウスのクリック継続、タッチパネルへのタッチダウンおよびタッチの継続)と判別する。また、ユーザ端末100は、ユーザのジェスチャ「グー」が検出されている状態で、さらにユーザが手を移動させると、該移動をスワイプ操作(またはドラッグ操作)と判別することもできる。また、ユーザ端末100は、例えば、カメラ17の撮影画像によるユーザの手の検出結果において、ユーザが指をはじくようなジェスチャを検出した場合に、マウスのクリック、タッチパネルへのタップ操作に対応する処理をすることとしてもよい。
<ユーザ端末100の機能的構成>
図2は、ユーザ端末100の機能的構成を示すブロック図である。ユーザ端末100が備えている、一般的なスマートフォン等として機能する場合に必要な機能的構成、および、パズルゲームにおける公知の機能を実現するために必要な機能的構成については、適宜省略している。
ユーザ端末100は、ユーザの入力操作を受け付ける入力装置としての機能と、ゲームの画像や音声を出力する出力装置としての機能を有する。ユーザ端末100は、プロセッサ10、メモリ11、ストレージ12、通信IF13、および入出力IF14等の協働によって、制御部110および記憶部120として機能する。
記憶部120は、ゲームプログラム131、ゲーム情報132およびユーザ情報133を格納する。ゲームプログラム131は、ユーザ端末100で実行するゲームプログラムであり、同じデータがサーバ200に保持されていてもよい。ゲーム情報132は、制御部110がゲームプログラムを実行する際に参照するデータであって、サーバ200が保持するゲーム情報と同様の情報を含んでいる。ユーザ情報133は、ユーザのアカウントに関するデータであって、同じデータがサーバ200にも保持されている。
制御部110は、記憶部120に格納されたゲームプログラム131を実行することにより、ユーザ端末100を統括的に制御する。例えば、制御部110は、ゲーム情報132に記憶された、パズルゲームの盤面を構成するオブジェクトの情報を参照して、盤面を生成し、ユーザに提示する。また、制御部110は、各種データを送受信する。例えば、制御部110はサーバ200から各種データおよびプログラム等を受信する。制御部110は、ゲーム情報もしくはユーザ情報の一部または全部をサーバ200に送信する。制御部110はサーバ200にマルチプレイの同期の要求を送信してもよい。制御部110はサーバ200からマルチプレイの同期のためのデータを受信してもよい。
本実施形態では、制御部110は、ゲームプログラム131の記述に応じて、操作受付部111、表示制御部112、画像生成部113、パズル進行部114およびキャラクタ管理部115として機能する。別の実施形態では、さらに、制御部110は、ゲームプログラム131の記述に応じて、共有制御部116として機能してもよい。
操作受付部111は、入力部151に対するユーザの入力操作を検知し受け付ける。操作受付部111は、タッチスクリーン15およびその他の入出力IF14を介したコンソールに対してユーザが及ぼした作用から、いかなる入力操作がなされたかを判別し、その結果を制御部110の各要素に出力する。
操作受付部111は、入力部151に対する入力操作を受け付け、該入力操作の入力位置の座標を検出し、該入力操作の種類を特定する。操作受付部111は、入力操作の種類として、例えばタッチ操作、スライド操作、ドラッグ操作、スワイプ操作、およびタップ操作等を特定する。また、操作受付部111は、連続して検知されていた入力が途切れると、タッチスクリーン15から接触入力が解除されたこと、すなわち、接触から非接触への状態遷移を検知する。
表示制御部112は、タッチスクリーン15の表示部152に対して、上述の各部によって実行された処理結果が反映されたゲーム画面を出力する。表示制御部112は、画像生成部113がパズル進行部114の指示にしたがって生成した各種ゲーム画面を描画してもよい。各種ゲーム画面としては、例えば、パズルゲームのステージをユーザに選択させるためのステージ選択画面、ステージのクリア条件をユーザに提示するための条件提示画面、ユーザに選択されたステージに対応する盤面を表示して、該ステージをプレイさせるためのパズル画面、および、プレイされたステージの成績をユーザに提示するための成績提示画面などがある。
画像生成部113は、パズル進行部114の指示にしたがって、各種ゲーム画面を生成する。画像生成部113は、パズル進行部114の指示にしたがって、ゲーム画面に配置される各種オブジェクトのアニメーション(動き)を生成してもよい。例えば、パズル画面に表示させる各種パズル要素のアニメーションを生成してもよい。また、画像生成部113は、ゲーム画面に配置される各種オブジェクトを生成してもよい。例えば、ステージ選択画面に表示させる、ステージをユーザに選択させるためのアイコン、または、ボタンなどのユーザインターフェース(UI)オブジェクトを生成してもよい。
パズル進行部114は、パズルゲームを進行させる。具体的には、パズルゲームに含まれる各ステージを進行させる。一例として、パズル進行部114は、ユーザによるステージの選択を受け付けて、選択されたステージに対応する盤面を生成し、該ステージの進行を開始する。ユーザの盤面に対する操作を受け付けて、該ステージを進行させる。該ステージの進行状況を監視して、終了条件が満たされれば該ステージを終了する。該ステージのプレイ結果をユーザにフィードバックする。
キャラクタ管理部115は、盤面に配置するパズル要素を管理する。本実施形態では、一例として、パズル要素は、1以上のパラメータが関連付けられたキャラクタである。本実施形態では、キャラクタは、単に、盤面から除去される対象というだけでなく、ステージを有利に進行させることに関わるパラメータを有しており、各キャラクタは、該パラメータに基づいて、ステージの進行に作用を及ぼすことができる。本実施形態では、キャラクタを所有する権利は、ユーザが該パズルゲームをプレイ中に所定の条件を満たすことにより、サーバ200によって与えられる。所定の条件を満たすとは、例えば、有償アイテムと交換する、抽選で引き当てる、および、課題をクリアする、などが想定される。
ユーザによって所有されたキャラクタは、ユーザ識別情報と関連付けて、サーバ200によって管理されてもよいし、ユーザ端末100のキャラクタ管理部115によってローカルで管理されてもよいし、その両方でもよい。キャラクタ管理部115は、パズル進行部114によって実行されるパズルゲームの進行状況に応じて、キャラクタに係るパラメータなどの各種情報を読み出してパズル進行部114に供給したり、該各種情報を更新したりする。
共有制御部116の機能、および、サーバ200の機能的構成については、別の実施形態で詳細に説明する。
なお、サーバ200は、ユーザ端末100が備える機能の少なくとも一部を備えていてもよい。また、ユーザ端末100は、サーバ200が備える機能の少なくとも一部を備えていてもよい。さらに、ユーザ端末100およびサーバ200以外の他の装置をゲームシステム1の構成要素とし、該他の装置にゲームシステム1における処理の一部を実行させてもよい。すなわち、本実施形態においてゲームプログラムは、ユーザ端末100、サーバ200、および他の装置の何れのコンピュータによって実行されてもよいし、ユーザ端末100、サーバ200、および他の装置のうちの複数台のコンピュータの協働によって実行されてもよい。
<ユーザ端末100の処理フロー>
図3および図4は、ユーザ端末100が、ゲームプログラム131に基づいて実行する処理の流れを示すフローチャートである。ユーザ端末100が実施する処理の概要を説明すると、本実施形態では、一例として、ゲームプログラム131に基づいて、ユーザ端末100は、盤面におけるパズル要素の配置を変更するためのユーザの操作を受け付けるステップ(後述のS104)と、配置の変更を行うために盤面に追加される新規のパズル要素を、盤面に向けて移動させるときの第1軌道を、ユーザの操作にしたがって決定するステップ(後述のS107)と、第1軌道にしたがって新規のパズル要素を移動させるステップ(後述のS110)と、盤面に配置されているパズル要素と、移動中の新規のパズル要素との位置関係に基づいて、該新規のパズル要素の移動態様を変化させるステップ(後述のS112)と、を実行する。上述の変化させるステップでは、新規のパズル要素が配置されているパズル要素と接触した場合に、接触後の移動態様を、接触したパズル要素が新規のパズル要素と同種か異種かに応じて決定する。
上述の受け付けるステップにて受け付けられるユーザの操作(変更操作)は、一例として、ドラッグ(スライド)操作である。上述の移動させるステップにおける、パズル要素の第1軌道に基づく移動は、一例として、ドラッグ操作で選択されて、初期位置からずらされたキャラクタが、ずらされた後の現在位置から盤面に配置されたキャラクタ群に向かって射出されることによって起こる。初期位置は、一例として、盤面の下方に設置された射出台の上である。ずらされた後の現在位置は、一例として、上述のドラッグ操作によって最後に検出された接触位置である。射出は、一例として、ユーザが、ドラッグ操作で射出台上のキャラクタを選択し、ずらした後に、ドロップ(リリース)操作を行うことによって、開始される。
処理の流れを以下で説明するにあたり、図5〜図18に示すゲーム画面を参照する。図5は、条件提示画面の一例を示す図である。図6〜図17は、パズル画面の一例を示す図である。図18は、成績提示画面の一例を示す図である。これらの各種ゲーム画面は、パズル進行部114の指示にしたがって、画像生成部113によって生成される。そして、生成されたゲーム画面が表示制御部112によって表示部152に表示されることにより、ユーザに視認される。
処理の流れを説明する前に、まず、本実施形態でユーザに提示されるパズル画面の基本的な構成とパズル要素としてのキャラクタの性質について図6を参照して説明する。図6に示すとおり、パズル画面は、盤面511を含んで構成される。盤面511は、少なくとも、キャラクタを配置するための領域を含む。該領域には、一例として、5種類のキャラクタ512が、ランダムに多数配置される。盤面511は、キャラクタ512を配置するための領域とは異なる領域を含んでいてもよく、該異なる領域には、後述する、天井513、中間障害物514、残り射出回数515、クリア条件516、スコア合計517、射出台521、予告領域522、および、得点位置563などが配置されてもよい。
なお、パズル進行部114は、盤面に配置するキャラクタの種類を任意の方法で指定する。パズル進行部114は、ステージごとに予め対応付けられているキャラクタを指定してもよいし、ユーザによって選択されたキャラクタを指定してもよいし、予めサーバ200において用意されているキャラクタの中からランダムに選んで指定してもよいし、ユーザが所有しているキャラクタとして、ユーザに関連付けられているキャラクタの中から選んで指定してもよい。本実施形態では、パズル進行部114は、一例として、ユーザに関連付けられているキャラクタの中から5種類のキャラクタを、ユーザの選択に基づいて指定する。また、パズル進行部114は、ステージによっては、該ステージに予め定められている5種類のキャラクタを指定する。キャラクタ管理部115は、パズル進行部114によって指定されたキャラクタをゲーム情報132から読み出し、パズル進行部114に供給する。
本実施形態では、キャラクタ512には、第1形態および第2形態の2種類の形態がある。一例として、第1形態は、キャラクタが風船(被覆オブジェクト)に包まれている浮上形態であって、この形態のキャラクタは、風船の浮力によって、ゲーム画面の上方から下方へキャラクタを引っ張ろうとする仮想の重力に逆らって、ゲーム画面上方へ浮上する性質を持つ。第2形態は、キャラクタが風船に包まれていない落下形態であって、この形態のキャラクタは、上述の仮想の重力にしたがってゲーム画面の下方へ落下する性質を持つ。図6に示されている各キャラクタ512は、風船に包まれており、したがって、浮上形態のキャラクタである。
本実施形態では、キャラクタは、盤面における配置に変更が起こった場合に、浮上形態における同種の隣り合うキャラクタ同士で結合する性質を持つ。本実施形態では、結合後のキャラクタは、1つのキャラクタが1つの風船で包まれた浮上形態で表示されるが、風船に包まれたキャラクタのサイズは、結合したキャラクタの数に応じたものとなる。
図6に示す例では、キャラクタ512は、結合前、すなわち、最小単位のキャラクタであって、最小単位のキャラクタ1個分に相当するサイズで表示される。一方、キャラクタ518は、最小単位のキャラクタが2個結合した結合後のキャラクタであって、最小単位のキャラクタ2個分に相当するサイズで表示される。すなわち、パズル進行部114は、結合後のキャラクタのサイズを、該結合後のキャラクタを構成する最小単位のキャラクタの数に応じて決定する。
なお、詳細は後述するが、本実施形態では、一例として、最小単位のキャラクタが3個以上結合した結合後のキャラクタは盤面から落下して除去されるものとする。そのため、浮上形態であるキャラクタのサイズに関して、盤面に配置された状態で維持されるのは、最小単位のキャラクタ512のサイズと、最小単位のキャラクタが2個結合した結合後のキャラクタ518のサイズとの2種類である。
なお、パズル進行部114は、浮上形態であるキャラクタが持つ浮力と、落下形態であるキャラクタが持つ重力とをどちらが強くなるように設定してもよいし、同じに設定してもよい。また、パズル進行部114は、結合後のキャラクタのサイズが大きいほど、浮力または重力が大きくなるように設定してもよい。例えば、浮力の方が大きい場合、落下形態のキャラクタの落下軌道が、浮上形態のキャラクタで塞がれている場合は、キャラクタは、落下形態であっても、すなわち、風船に包まれていなくても、落下軌道を塞いでいる浮上キャラクタの浮力によって、盤面511に残ることがあってもよい。反対に、重力の方が大きい場合、落下形態のキャラクタは、落下軌道が塞がれていても、浮上形態のキャラクタを押しのけてパズル画面の下方へ落下してもよい。
盤面511は、キャラクタ以外にも、射出されるキャラクタの移動を妨げるオブジェクトとして、天井513、および、中間障害物514(図示の例では雲)などの障害物を含んでいてもよい。ステージにおいて、キャラクタの射出回数に制限がある場合、すなわち、パズル進行部114がクリア条件として、キャラクタを追加できる上限回数を設定した場合、パズル画面は、さらに、残り射出回数515を含んでいてもよい。パズル画面は、さらに、該ステージに課せられたクリア条件のうち、除去するキャラクタの数に係るクリア条件516と、該ステージにおいて獲得された得点の合計を示すスコア合計517(得点合計)とを含んでいてもよい。
本実施形態では、ステージがプレイされるごとに該プレイに対して成績が決定される。成績は、該ステージにおいて獲得された得点の合計を含んでいてもよいし、除去されたキャラクタの数を含んでいてもよいし、提示されたクリア条件の達成度を含んでいてもよいし、その他、ユーザのプレイを評価する任意の情報を含んでいてもよい。以上を踏まえて、以下より処理の流れを説明する。
例えば、ステージ選択画面において、1つのステージがユーザによって選択されると、ステップS101において、パズル進行部114は、ユーザによって選択されたステージのクリア条件を設定し、表示部152に表示する。具体的には、パズル進行部114は、選択されたステージに関連付けられているクリア条件をゲーム情報132から取得し、画像生成部113に、条件提示画面を生成させる。パズル進行部114は、クリア条件として、ステージで獲得されるスコア合計を設定してもよいし、特定の種類または種類を問わず、ステージで除去されるキャラクタの数を設定してもよい。さらに、パズル進行部114は、クリア条件として、盤面の配置を変更するために新規にキャラクタを追加できる上限回数を設定してもよい。すなわち、パズル進行部114は、前記盤面におけるキャラクタの配置を変更するためのユーザの操作(ドロップ操作)について、入力回数に上限を設定する。
例えば、図5に示すとおり、1または複数のクリア条件501を含む条件提示画面が生成される。さらに、条件提示画面は、これからプレイされるステージのステージ名502、および、該ステージの盤面に配置されるキャラクタの種類503などを含んでいてもよい。
スタートボタン504がユーザによって選択されると、ステップS102において、パズル進行部114は、該ステージの盤面を生成する。生成された盤面は、表示部152に表示される。本実施形態では、パズル進行部114は、キャラクタの種類503において指定されたキャラクタをランダムに配置することによって盤面を生成する。
一例として、パズル進行部114は、図6に示すパズル画面を表示させてから、実際にパズルゲームが開始されるまでの間に所定秒の期間を設けて、ユーザにプレイの開始を準備させる猶予を与えてもよい。
ステップS102において図6に示すパズル画面が表示されてから所定秒経過すると、ステップS103において、パズル進行部114は、射出台を生成して、上述のパズル画面に配置し、表示部152に表示する。図7に示すとおり、画像生成部113によって、射出台521を含むパズル画面が生成される。ユーザは、射出台521に載っている射出キャラクタのうち、射出させたいキャラクタをタッチ操作で選択することができる。本実施形態では、一例として、タッチ操作はドラッグ操作である。さらに、画像生成部113は、パズル進行部114の指示にしたがって、射出台521が空になったときに次に充填されるキャラクタを予告領域522に配置してもよい。
パズル進行部114は、パズル画面において、射出台521を、1以上の任意の数、設置してもよい。また、パズル進行部114は、ステージごとに予め定められている設定にしたがって、所定の数の射出台を設置してもよい。このような構成によれば、設置される射出台の数によって、高得点を狙うための戦略が異なり、ユーザは、ステージごとに戦略を練ってパズルゲームを楽しむことができる。
ステップS104において操作受付部111がドラッグ操作を検知する。この場合、ステップS105において、パズル進行部114は、射出台521に載っているキャラクタのうち、該ドラッグ操作によって選択されたキャラクタを、射出キャラクタとして特定する。射出キャラクタとは、ユーザが盤面511に向かって射出させるキャラクタ、および、射出後に盤面511中を移動しているキャラクタを意味する。すなわち、射出キャラクタとは、新たに盤面511に追加されるキャラクタのことを指す。
具体的には、パズル進行部114は、上述のドラッグ操作の開始位置に表示されているキャラクタを射出キャラクタとして特定する。該開始位置とは、タッチスクリーン15において、上述のドラッグ操作に係る接触が最初に検知された位置を指す。
ステップS106において、パズル進行部114は、ドラッグ操作が検知されている間、盤面511に配置されているキャラクタのうち、特定した射出キャラクタと同種のキャラクタを強調表示させてもよい。図8に示すとおり、本実施形態では、一例として、パズル進行部114は、盤面511に配置されているキャラクタのうち、射出キャラクタ531と同種の各キャラクタに対して、これらを目立たせるための枠532を付与してもよい。枠532は、例えば、盤面511における各種キャラクタおよび背景で使用されていない色で着色されていてもよい。また、枠532には、点滅または風船の輪郭に沿って動くなどのアニメーションが付与されてもよい。
さらに、ステップS107において、パズル進行部114は、射出キャラクタ531の射出軌道(第1軌道)を決定する。例えば、パズル進行部114は、射出キャラクタ531の初期位置と、現在検知されている接触位置との位置関係に基づいて、射出軌道を決定してもよい。一例として、パズル進行部114は、現在検知されている接触位置533から射出キャラクタ531の初期位置534へと向かう直線の延長線を射出軌道535として決定してもよい。パズル進行部114は、ステップS108でNOの間、すなわち、ドラッグ操作が検知されている間は、決定した射出軌道535を表示部152に表示させてもよい。これによりユーザは、射出軌道535を視認して、ねらいを定めて、所望の位置に射出キャラクタ531を射出させやすくなる。
ステップS108でYESの場合、ステップS109において、パズル進行部114は、残り射出回数を1減じる。具体的には、上述のドラッグ操作に係る接触が検知されなくなると、換言すれば、操作受付部111が、タッチスクリーン15の状態について、接触の状態から非接触の状態への遷移を検知すると、パズル進行部114は、射出がユーザによって指示されたと判断し、残り射出回数515に表示されている数字を1つ減らす。
続けて、ステップS110において、パズル進行部114は、射出キャラクタ531を射出して、盤面511に向かって移動させる。このときの移動の軌道は、ステップS108において非接触の状態への遷移が検知された時点において確定した射出軌道である。図9は、図8に示す射出軌道535に沿って、射出キャラクタ531が移動している途中の場面を示すパズル画面を示している。図9に示すとおり、パズル進行部114は、射出キャラクタ531が、射出されたことによって移動してきた軌跡を、射出軌跡541として表示部152に表示させてもよい。
本実施形態では、パズル進行部114は、ステップS111でNOの場合、すなわち、射出キャラクタ531が、盤面511上の同種のキャラクタ、中間障害物514、および、天井513のいずれかに衝突するまでの間は、射出キャラクタ531の移動を継続する。本実施形態では、一例として、移動中の射出キャラクタ531について、盤面511上の異種のキャラクタをかき分けて、キャラクタの風船の群れを突き進んでいくかのような演出がなされてもよい。
一方、ステップS111でYESの場合、すなわち、射出キャラクタ531が、移動によって、同種のキャラクタまたは各種障害物に衝突した場合には、ステップS112において、パズル進行部114は、その位置にて、射出キャラクタ531の移動を停止する。図10は、図8に示す射出軌道535に沿って移動してきた射出キャラクタ531が、中間障害物514(雲)に衝突して、その位置で停止した場面を示すパズル画面を示している。
図11および図12は、射出キャラクタ531について、移動に係る別の例を説明するためのパズル画面である。図11は、別の射出軌道536に沿って、射出キャラクタ531が移動している途中の場面を示すパズル画面を示している。図11に示す例では、射出軌道536に沿って射出キャラクタ531が射出され、移動を開始すると、障害物よりも先に、パズル画面の左端に衝突する。
ステップS110において、本実施形態では、移動中の射出キャラクタ531がパズル画面の左端または右端に到達した場合には、パズル進行部114は、射出軌道を変更する。具体的には、パズル進行部114は、ステップS108の時点において確定した初期の射出軌道536が、パズル画面の端(図11に示す例では左端)と交差する場合、該初期の射出軌道536が左端に入射する角度に基づいて、反射後の射出軌道537を決定する。パズル進行部114は、初期の射出軌道536に沿って射出キャラクタ531を移動させ、射出キャラクタ531が左端に到達した後は、反射後の射出軌道537に沿って射出キャラクタ531の移動を継続する。つまり、パズル進行部114は、表示部152における表示領域の左端または右端に射出キャラクタ531が到達した場合には、表示領域の左端または右端と上述の初期の射出軌道とが成す角度に基づいて、到達後の射出軌道を変更する。図11に示すパズル画面における射出軌跡541は、射出キャラクタ531が、該パズル画面の左端に衝突して反射し、反射後は、変更された射出軌道537に沿って移動したことを示している。
上述の射出軌道536および537に沿って移動した結果、射出キャラクタ531が異種のキャラクタ以外で最初に接触するのは、図12に示すとおり、同種のキャラクタ553である。
図12に示すとおり、射出キャラクタ531が、同種のキャラクタ553に接触すると(ステップS111でYES)、パズル進行部114は、射出キャラクタ531が同種のキャラクタ553と接触したその位置で、該射出キャラクタ531を停止させる(ステップS112)。
ステップS113でNOの場合、すなわち、射出キャラクタ531の移動を停止した結果、そのときの盤面511に配置において、隣接する同種のキャラクタがなければ、パズル進行部114は、ステップS129(図4)へ移行する。例えば、図10に示す例では、射出キャラクタ531は、中間障害物514に衝突して停止し、その結果、いずれの同種のキャラクタとも隣接しない。したがって、この場合、パズル進行部114は、ステップS129(図4)へ移行する。
そして、ステップS129でNOの場合、すなわち、ステップS109で減じられた後も、射出回数が1以上残っていれば、ステップS103に戻り、以降の処理を繰り返す。反対に、ステップS129でYESの場合、すなわち、残り射出回数が0に到達してしまった場合には、パズル進行部114は、これ以上射出できないと判断し、ステージを終了させる。そして、ステップS130において、パズル進行部114は、該ステージに係るプレイ結果すなわち成績を表示部152に表示させる。成績提示画面の具体例は後に詳述する。
一方、ステップS113でYESの場合、すなわち、射出キャラクタ531の移動を停止した結果、そのときの盤面511に配置において、隣接する同種のキャラクタがあれば、ステップS114において、パズル進行部114は、それらの同種のキャラクタ同士を結合させる。例えば、図12に示す例では、射出キャラクタ531が停止した結果、射出キャラクタ531と同種のキャラクタであって、射出キャラクタ531を含んで連続して連なり合うキャラクタは、同種のキャラクタ551、552および553である。したがって、パズル進行部114は、射出キャラクタ531と、同種のキャラクタ551、552および553とを1つのキャラクタとして結合する。
図13に示すとおり、パズル進行部114は、結合前の射出キャラクタ531、ならびに、同種のキャラクタ551、552および553に変えて、結合後のキャラクタ561を表示させる。結合後のキャラクタ561のサイズは、結合前の最小単位のキャラクタ数が4個であるので、最小単位のキャラクタ4個相当の大きさである。
なお、パズル進行部114は、結合の対象となるキャラクタが、同種のキャラクタ551〜553、および、射出キャラクタ531であることを明示するために、各キャラクタを結合させる前に、結合の対象となる各キャラクタを強調表示してもよい。図12に示すとおり、例えば、パズル進行部114は、結合の対象となる同種のキャラクタ551〜553、および、射出キャラクタ531をつなぐオブジェクト554を表示部152に表示させてもよい。
ステップS115でNOの場合、すなわち、ステップS114において結合された同種のキャラクタの数が所定数(例えば、3個)未満であれば、パズル進行部114は、ステップS129(図4)へ移行して、上述した処理を続ける。
一方、ステップS115でYESの場合、すなわち、図12および図13に示す例のように、ステップS114において結合された同種のキャラクタの数が所定数以上であれば、パズル進行部114は、図4に示すステップS116以降のキャラクタを除去する処理を実行する。
本実施形態に係るパズルゲームは、キャラクタを盤面から除去し、除去されたキャラクタに応じて成績を決定することによって進行するパズルゲームである。本実施形態において、キャラクタを盤面から除去する処理とは、ステップS116〜S125に示されているとおり、一例として、盤面511に配置されたキャラクタを、移動(具体的には落下)させて、成績を更新するための得点位置に到達させることである。
得点位置とは、プレイ中のステージに係る成績を更新するために、盤面511に配置されたキャラクタを移動させるための移動先の場所を意味する。該得点位置は、パズル画面上の所定の位置に設定され、パズル進行部114が、キャラクタの移動によって、得点が発生するか否かを判定するために用いられる。該得点位置は、パズル画面上の所定の領域を定義するものであってもよいし、所定の線を定義するものであってもよいし、所定の点を定義するものであってもよい。
キャラクタを除去する処理について詳細な説明を続ける。ステップS116において、パズル進行部114は、落下形態に移行した結合後のキャラクタ561を、得点位置に落下させるための落下軌道(第2軌道)を決定する。落下軌道の決定は、ステップS120より前の任意のタイミングで実行されてもよい。また、落下軌道は任意の方法で決定される。パズル進行部114は、結合後のキャラクタ561に関連付けられている各種パラメータに基づいて落下軌道を決定してもよいし、結合後のキャラクタ561が配置されているときの顔の向きに基づいて落下軌道を決定してもよいし、結合後のキャラクタ561を構成する最小単位のキャラクタの数に基づいて決定してもよいし、ステージに設定されているギミック(別の実施形態で詳述する)に基づいて決定してもよい。
ステップS117において、パズル進行部114は、結合後のキャラクタ561を強調表示させてもよい。図14に示すとおり、本実施形態では、一例として、パズル進行部114は、結合後のキャラクタ561を目立たせるために、結合後のキャラクタ561に対して環562(包囲オブジェクト)を付与してもよい。環562には、ユーザの視線が結合後のキャラクタ561に向くように、アニメーションが付与されることが好ましい。例えば、環562は、最初、風船に包まれた結合後のキャラクタ561を囲うように、該風船に包まれた結合後のキャラクタ561よりも大きく表示される。環562は、徐々に、該風船に包まれた結合後のキャラクタ561の輪郭へと近づいていくように収縮する。この収縮の際には、拡縮を繰り返す動きが伴っていてもよい。これにより、結合後のキャラクタ561に対するユーザの注意を惹きつけることができる。結合後のキャラクタ561の落下は、多くの場合、高得点が得られる連鎖除去(いわゆる、コンボ)の契機となる。上述の構成によれば、このような連鎖除去の演出を、見落とされることなく確実にユーザに視認させることが可能となり、したがって、ユーザに対して、プレイに対する達成感、または、満足感を与えることができる。
続いて、ステップS118において、パズル進行部114は、結合後のキャラクタ561を、浮上形態から落下形態へと移行させる。この形態の移行に伴い、結合後のキャラクタ561の移動、すなわち、落下が開始される。
ステップS119において、パズル進行部114は、結合後のキャラクタ561の表示態様を変更してもよい。図15に示すとおり、本実施形態では、一例として、パズル進行部114は、結合後のキャラクタ561を包んでいる風船を破裂させるアニメーションを画像生成部113に出力させる。これにより、結合後のキャラクタ561の表示態様を、浮上形態に対応する表示態様から落下形態に対応する表示態様へと変更する。なお、パズル進行部114は、一例として、収縮していく環562が、結合後のキャラクタ561の風船の輪郭に一致したタイミングにて、風船を破裂させるというアニメーションを画像生成部113に生成させてもよい。
ステップS120において、パズル進行部114は、決定した落下軌道に沿って、結合後のキャラクタ561を落下させる。これにより、結合後のキャラクタ561は、得点位置に向かって移動する。図16に示すとおり、本実施形態では、得点位置563は、パズル画面上の所定の線を定義するものである。パズル進行部114は、落下形態のキャラクタが得点位置563に到達したら、該キャラクタの除去が完了したと判定する。具体的には、パズル進行部114は、キャラクタの輪郭の一部でも、得点位置563として定義される線に触れたら、除去完了と判定する。
本実施形態では、ステップS121において、一例として、パズル進行部114は、結合後のキャラクタ561が移動してきた軌跡を落下軌跡564として表示部152に表示してもよい。
ステップS122でNOの場合、すなわち、落下中の結合後のキャラクタ561が、他の浮上形態のキャラクタに接触せずに、得点位置563まで到達した場合には、ステップS123〜S125は省略される。この場合、パズル進行部114は、ステップS126において、得点位置563に到達した結合後のキャラクタ561についてのみ、該キャラクタに応じた得点をスコア合計に加算する。
一方、ステップS122でYESの場合、すなわち、落下中の結合後のキャラクタ561が、他の浮上形態のキャラクタに接触した場合には、ステップS123において、パズル進行部114は、接触した他のキャラクタを、浮上形態から落下形態へと移行させる。
続けて、ステップS124において、パズル進行部114は、落下形態へと移行させた他のキャラクタについて、表示態様を変更する。パズル進行部114は、一例として、図16に示すとおり、浮上形態に対応する風船に包まれた態様から、落下形態に対応する風船に包まれていない態様へと変更する。このとき、パズル進行部114は、画像生成部113を制御して、風船が割れるアニメーションを、該他のキャラクタに付与してもよい。続けて、ステップS125において、パズル進行部114は、ステップS123において落下形態に移行させた各キャラクタを落下させて、得点位置563に移動させる。
ステップS126において、パズル進行部114は、得点位置563に到達したことにより除去完了と判断したキャラクタに応じて得点を加算し、成績を更新する。図17に示すとおり、パズル進行部114は、スコア合計517に示された得点の合計値を更新してもよい。さらに、パズル進行部114は、キャラクタが得点位置563に到達したタイミングで、該キャラクタに応じて獲得された得点565および所定の条件を満たして除去された連鎖除去数を表すコンボ数566を、表示部152に表示させてもよい。
本実施形態では、一例として、パズル進行部114は、1回の射出によって複数個のキャラクタが除去された場合に、2個目以降の除去を連鎖除去と判断してもよい。この場合、パズル進行部114は、連鎖除去されたキャラクタについて、所定の規則に基づいて、単体で除去された場合に獲得される得点よりも多く(例えば、倍加することにより)、獲得される得点を決定する。
ステップS127において、パズル進行部114は、除去されたキャラクタ、すなわち、得点位置563に到達したキャラクタの数を、種類ごとにカウントしてもよい。本実施形態では、一例として、特定の種類のキャラクタを指定数除去することがクリア条件に設定される。この場合、図17に示すとおり、パズル進行部114は、特定の種類のキャラクタが除去された数に応じて、クリア条件516に示される達成進捗を更新してもよい。
例えば、キャラクタ名が「ハート」のキャラクタを20個除去することが課せられたステージにおいて、「ハート」のキャラクタ2個の除去に成功した場合、パズル進行部114は、クリア条件516に示される値を、「0/20」から「2/20」に更新する。クリア条件516の値のうち、分母は、クリア条件として課せられた、特定の種類のキャラクタの除去数を示し、分子は、現時点で実際に除去された該種類のキャラクタの除去数を示す。
ステップS128でNOの場合、すなわち、ステップS110で実施された射出キャラクタ531の射出をトリガにして、ステップS127までの一連の処理が実施されても、クリア条件が満足されなかった場合、パズル進行部114は、ステップS129へ移行する。そして、上述したとおり、残り射出回数が0かどうかに応じて、ステージを終了させるか、ステージの進行を継続するかを決定する。
ステップS128でYESの場合、または、ステップS129でYESの場合、ステップS130において、パズル進行部114は、プレイされたステージの成績を確定させ、該成績を表示部152に表示させる。
なお、パズル進行部114は、ステップS128において、ステップS101で提示された、複数のすべてのクリア条件501または、そのうちの少なくとも1つのクリア条件が満足された場合に、YESと判定してもよい。あるいは、パズル進行部114は、ステップS128において、パズル画面に提示される、除去キャラクタ数に係るクリア条件516が満足された場合に、YESと判定してもよい。
ステップS130において、パズル進行部114は、一例として、図18に示す成績提示画面を、画像生成部113に生成させる。図18に示すとおり、成績提示画面において、成績は、盤面511に配置されたキャラクタごとに提示されてもよい。キャラクタごとの成績571は、例えば、該キャラクタがプレイされたステージにおいて除去された除去数572と、該除去数のキャラクタが除去されたことによって獲得された、キャラクタごとのスコア573とを含んでいてもよい。
また、各キャラクタには、パラメータの具体例として、「レベル」と「得点単価」とが関連付けられている。レベルは、キャラクタの総合的な強さを示すパラメータである。得点単価は、キャラクタが除去されたときに獲得される、該キャラクタ1個あたりの得点を示すパラメータである。「キャラクタが強い」とは、該キャラクタが、本実施形態にかかるパズルゲームを有利に進行させることに対する貢献度が高いということを意味する。本実施形態では、レベルが高いほど、得点単価も高くなる。成績571は、キャラクタに関連付けられているレベル574と得点単価575とをさらに含んでいてもよい。
キャラクタごとのスコア573の算出は任意の方法で行うことができる。一例として、図18に示す例では、キャラクタ「ハート」の得点単価は、「10」である。したがって、プレイされたステージにおいて、「ハート」が除去された総数が20個であれば、パズル進行部114は、キャラクタ「ハート」についての獲得されたスコア573を、10(点)×20(個)=200点と算出する。
さらに、成績571は、キャラクタごとに累積スコア576を含んでいてもよい。累積スコア576は、これまでにユーザによってプレイされたすべてのステージにおいて、該キャラクタについて獲得されたスコアをすべて合算したものを指す。累積スコア576は、キャラクタ管理部115によって管理されている。一例として、累積スコア576は、ゲージの態様で提示される。本実施形態では、キャラクタ管理部115は、累積スコア576のゲージがいっぱいになるまでスコアが獲得されると、該キャラクタのレベルを1つ上げる。キャラクタ管理部115は、レベルを上げるとゲージをリセットし、次回以降、該キャラクタにつき獲得されたスコアを加算していく。レベルが上がるということは、その他の各種パラメータが上昇する、すなわち、キャラクタが強くなるということを意味する。このように、本実施形態に係るゲームシステム1は、ステージがユーザによってプレイされるほど、各キャラクタを強くする(成長させる)構成である。
ユーザは、プレイしたステージの成績を確認したら、OKボタン577を選択すればよい。OKボタン577が選択されると、パズル進行部114は、ステップS101から開始された、一連のステージの進行を完了させる。
上述の方法によれば、新しいスキームに基づく興趣性の高いゲームを提供することが可能となる。
〔変形例〕
(キャラクタの補充について)
これまで述べてきたとおり、本実施形態に係るパズルゲームは、結合後のキャラクタ561を盤面511のより上の方で生成するほど、該結合後のキャラクタ561が落下するときに、巻き込んで他のキャラクタを落下させる個数が増え、その分高得点が期待されるというスキームである。
そのため、ステージが進行するにつれ、盤面511のキャラクタが結合されたり、落下したりして、盤面511のキャラクタの数が少なくなってくる。盤面511に配置されているキャラクタの数が少ないと、多数のキャラクタを巻き込んで落下させることが難しくなる。これでは、ステージが進行するほど、連鎖除去の機会が減ることになってしまい、パズルゲームの興趣性を減退させることになりかねない。
そこで、パズル進行部114は、ステージの進行状況が所定の条件を満たす場合に、盤面511のキャラクタを補充することが好ましい。第1の補充例として、パズル進行部114は、ステージの進行中に、キャラクタが次々と盤面511に補充される補充モードを発動させる。パズル進行部114は、ステージの進行中に所定の条件が満たされたとき、補充モードを発動し、所定時間が経過すると、補充モードを終了させて、図3および図4に基づいて説明した通常のステージの進行を継続する。
具体的には、パズル進行部114は、ステージが開始されると、補充ゲージを設定する。補充ゲージとは、キャラクタが盤面511から除去されるたびに補充ゲージ値が蓄積されるゲージであり、この補充ゲージが補充ゲージ値で満杯になると、パズル進行部114は、補充モードを発動させる。補充モード発動中は、パズル進行部114は、盤面511に、浮上形態のキャラクタを次々と補充する。一例として、パズル進行部114は、補充モード発動中は、残り射出回数を減じることなく、何度でも、ユーザのドラッグアンドドロップ操作を受け付けて、次々と、射出キャラクタ531を盤面511に向かって射出させてもよい。
上述の構成によれば、補充モードが発動されている期間中、ユーザは、残り射出回数を気にすることなく、何度でも射出キャラクタ531を射出させて、キャラクタを結合させ、落下させることができる。このため、大きな数の連鎖除去を達成しやすくなり、さらに高得点を狙うことができる。結果として、パズルゲームの興趣性をより一層向上させることが可能となる。
図19および図20は、補充モードを発動する機能を搭載したゲームプログラム131に基づくパズルゲームにおいて、表示部152に表示されるパズル画面の具体例を示す図である。図21は、ユーザ端末100が、補充モードを発動する機能を搭載したゲームプログラム131に基づいて実行する処理の流れを示すフローチャートである。
なお、図21に示す各処理は、図3および図4に基づいて説明した通常のステージの進行に係る処理と組み合わせて実施される。例えば、後述するステップS151およびS152は、ステップS102より後、かつ、ステップS104より前の任意のタイミングで実行されてもよい。ステップS153〜S155は、ステップS125より後、かつ、ステップS128より前の任意のタイミングで実行されてもよい。ステップS156〜S159が実行されている間、ステップS103〜S127(ステップS109は除く)が繰り返し実行されていてもよい。図21に示す各処理の終了条件は、図3および図4に基づいて説明した通常のステージの進行に係る処理と同様である。
ユーザによってステージが選択されると、パズル進行部114は、選択されたステージの進行を開始する。併せて、ステップS151において、パズル進行部114は、補充ゲージを初期化して設定する。補充ゲージの初期状態は、例えば、補充ゲージ値が1つも入っていない空の状態である。ステップS152において、パズル進行部114は、盤面511および射出台521と併せて、補充ゲージをパズル画面に含めて表示する。例えば、図19に示すとおり、パズル進行部114は、パズル画面において、補充ゲージ581を表示する。補充ゲージ581は、満杯のときの補充ゲージ値と、現時点で蓄積されている補充ゲージ値とが明らかに示されている表示態様であることが好ましい。図19に示す例では、補充ゲージ581は、一例として円で提示され、円の1周が補充ゲージ581の満杯のときの補充ゲージ値を示し、円のうち着色されている部分が現時点で蓄積されている補充ゲージ値を示す。
ステップS125においてキャラクタが得点位置に落下すると、パズル進行部114は、ステップS153において、落下したキャラクタに相当する補充ゲージ値を補充ゲージに蓄積する。ここで、パズル進行部114は、加算後の補充ゲージに対応するように、補充ゲージ581の表示態様を更新する。本実施形態では、一例として、パズル進行部114は、補充ゲージ値が蓄積されるたびに、補充ゲージ581の着色されている部分を時計回りに増やしていく。図19に示す例では、補充ゲージ581は、半分まで補充ゲージ値が蓄積されている。
ステップS154でNOの場合、パズル進行部114は、補充ゲージ581が満杯になるまで、ステップS152およびS153の処理を繰り返す。一方、ステップS154でYESの場合、すなわち、補充ゲージ581が満杯になった場合、ステップS155において、パズル進行部114は、補充モードを開始する。
具体的には、パズル進行部114は、ステップS156において、残り射出回数を減じるステップS109が実行されないように、残り射出回数の更新をロックする。すなわち、パズル進行部114は、キャラクタの配置を変更するためのユーザのドロップ操作について入力回数の制限を解除する。パズル進行部114は、ステップS157において、補充器をパズル画面に配置して、浮上形態のキャラクタを補充する。パズル進行部114は、ステップS158において、満杯になった補充ゲージ581の補充ゲージ値を所定量減らす。パズル進行部114は、ステップS159において、補充ゲージ581が空になるまで(S159でNO)、残り射出回数の更新ロックを維持し、キャラクタを補充し続け、補充ゲージ581の補充ゲージ値を所定間隔で所定量減らしていく。
図20に示すとおり、パズル進行部114は、一例として、パズル画面において、盤面511の下方、射出台521の両脇に、補充器582を配置してもよい。該パズル画面において、補充器582から次々にキャラクタが補充されるアニメーションが画像生成部113によって付加されてもよい。これにより、視覚的に面白みのある演出がユーザに対して提供され、ユーザは、補充モードが発動され、キャラクタが補充されていることを視認できる。該パズル画面において、パズル進行部114は、補充モード期間中、つまり、残り射出回数の更新をロックしている間、残り射出回数515における表示を「∞」に変更してもよい。これにより、ユーザは、回数の制約なくキャラクタを射出できることを認識することができる。パズル進行部114は、補充モード期間中、補充ゲージ581の補充ゲージ値を所定間隔で所定量減らしていくのに伴って、補充ゲージ581の着色部分を反時計回りに減らしていってもよい。つまり、パズル進行部114は、補充モードが発動している所定期間の終了時点で補充ゲージ581の補充ゲージ値を表す着色部分が0になるように、補充モードが開始された時点から徐々に該着色部分を反時計回りに減らしていく。これにより、ユーザは、補充モードの残り時間を確認しながらプレイすることができる。
さらに、パズル進行部114は、補充モードが発動されている期間であることを明示するために、補充ゲージ581の表示態様を、通常の場合から変更してもよい。例えば、補充ゲージ581の輪郭にオーラを付す、円の着色部分または円の中心が点滅する、虹色に変化する、などのように変更することが想定される。
上述のように補充モードが発動されている間、ステップS109を除く、ステップS103〜S127の各ステップが繰り返し実行され、ユーザは、回数に制約なく何度も射出を行って、連鎖除去を達成し、高得点を獲得することができる。
補充モードが開始されてから一定時間が過ぎ、ステップS159でYES、すなわち、補充ゲージ581が空になると、パズル進行部114は、ステップS160において、補充モードを終了する。具体的には、パズル進行部114は、残り射出回数の更新ロックを解除し、補充器582を非表示にしてキャラクタの補充を停止し、補充ゲージ581の表示態様を通常時に戻す。なお、補充ゲージ581の補充ゲージ値は0にリセットされている。
パズル進行部114は、ステップS128およびステップS129の処理に戻って、補充モード後のステージの進行状況に基づいて、ステージを終了させるべきか否かを判断する。ステップS161でNOの場合、パズル進行部114は、ステップS102に戻り、以降の処理を繰り返す、したがって、パズル進行部114は、ステップS104までの任意のタイミングで、ステップS152に戻り、任意の処理を繰り返す。一方、ステップS161でYESの場合、パズル進行部114は、ステップS130に進み、図21に示した補充モードに係る一連の処理を終了する。
第2の補充例として、パズル進行部114は、盤面511のキャラクタが一定の数まで減った場合に、キャラクタを補充する構成であってもよい。この場合、パズル進行部114は、盤面511に配置されているキャラクタの数を監視し、キャラクタの数が所定数未満になったとき、補充器582を配置して新しいキャラクタを盤面511に補充する。
パズル進行部114は、第1の補充例と第2の補充例とをともに実施してもよい。これにより、キャラクタが少なすぎて連鎖除去の機会が減るという事態を、一層回避することが可能となる。
なお、補充されるキャラクタの種類について、パズル進行部114は、ランダムに決定してもよい。あるいは、パズル進行部114は、すでに盤面511に配置されている各種キャラクタの割合に基づいて、特定の種類に偏ることなくキャラクタが配置されるように、補充する種類を決定してもよい。
(結合について)
ステップS114において、連なり合う同種の各キャラクタをどこに集約して、結合後のキャラクタ561の初期位置とするのかについて、パズル進行部114は、任意の方法で決定することができる。図12および図13に示す例では、パズル進行部114は、連なり合う同種のキャラクタのうち、最も上方にあるキャラクタ551の位置に4つの同種のキャラクタを集約させる。そして、同種のキャラクタ551が配置されていた位置に、結合後のキャラクタ561を配置する。この構成によれば、結合後のキャラクタ561が落下するときに巻き込んで落下させる他のキャラクタの数がより多くなる。これにより、ユーザは、高得点を獲得することができ、自身のプレイに対する達成感を得やすくなる。
別の例では、パズル進行部114は、連なり合う同種の各キャラクタが配置されている位置のうち、集約させる位置をランダムに決定してもよい。結合後のキャラクタ561の初期位置、すなわち、結合後のキャラクタ561が落下を開始する位置がどこであるのかによって、巻き込んで落下させる他のキャラクタ、およびその数が変わる。したがって、上述の構成によれば、同じユーザの操作に基づく同じ射出であっても、結合後のキャラクタ561の落下によって獲得できる得点に変化をつけることができる。このように、得点に係る処理工程に運の要素を絡めることにより、パズルゲームの興趣性が一層向上する。
なお、本実施形態では、パズル進行部114は、キャラクタを結合する前に、上述の任意の方法により決定した位置に、すべての結合対象のキャラクタが集約されるアニメーションを、結合対象の各キャラクタに対して付与することを、画像生成部113にさせてもよい。
〔実施形態2〕
本実施形態では、ゲームシステム1は、マルチプレイ型パズルゲームを実行するためのシステムである。本実施形態では、マルチプレイ型パズルゲームは、ユーザが操作するユーザ端末100と、1以上の他のユーザが操作する1以上の他のユーザ端末100との間で、該ゲームに係るデータの少なくとも一部を共有することにより、複数のユーザが1のパズルゲームに参加して協力してプレイすることができる。
本実施形態では、一例として、ユーザ端末100は、サーバ200と通信し、該サーバ200を介して、他のユーザ端末100とデータを共有する。これにより、ユーザ端末100は、該他のユーザ端末100と協働して1のパズルゲームを進行させることができる。
複数のユーザ端末100が協働して1のパズルゲームを進行するために、本実施形態では、一例として、まず、1台のユーザ端末100は、サーバ200において、プレイルームを開設する。プレイルームを開設したユーザ端末100を、以下では、他のユーザ端末100と区別して、ホストユーザ端末100と称する。他のユーザ端末100は、サーバ200に開設されたプレイルームに参加する。こうして既設のプレイルームに参加する他のユーザ端末100を、以下では、ホストユーザ端末100と区別して、ゲストユーザ端末100と称する。ホストユーザ端末100を操作するユーザを、その他のユーザと区別して、ホストユーザと称する。また、ゲストユーザ端末100を操作するユーザを、ホストユーザと区別して、ゲストユーザと称する。上述のとおり、1つのプレイルームに入室した複数のユーザ端末100間で、データが共有され、これにより、複数のユーザ端末100が協働して1のパズルゲームを進行させる。
<ユーザ端末100の機能的構成>
図2に示す共有制御部116は、パズル進行部114が他のユーザ端末100と協働してパズルゲームを進行するために、サーバ200を介して、他のユーザ端末100との間の必要なデータのやりとりを行う。具体的には、共有制御部116は、サーバ200に対して、新規にプレイルームを開設する要求(以下、協力プレイ開始要求)を送信する。共有制御部116は、サーバ200に対して、既設のプレイルームへの参加要求を送信する。共有制御部116は、パズル進行部114がステージを進行させている間、ステージの進行状況(例えば、現時点での成績など)を必要に応じてサーバ200に提供する。共有制御部116は、パズル進行部114がステージを進行させている間、サーバ200から、ステージの進行に係る通知を受信すると、該通知をパズル進行部114に伝達する。また、共有制御部116は、サーバ200から、他のユーザ端末100におけるステージの進行状況も考慮して集計された各種の値を受信し、該各種の値をパズル進行部114に伝達する。その他、サーバ200から、他のユーザ端末100と共有すべきデータが配布されると、共有制御部116は、該データをパズル進行部114に伝達する。
<サーバ200の機能的構成>
サーバ200の制御部210は、記憶部220に格納されたゲームプログラム131を実行することにより、サーバ200を統括的に制御する。本実施形態では、制御部210は、ゲームプログラム131の記述に応じて、協力プレイ制御部211として機能する。
協力プレイ制御部211は、複数のユーザ端末100が1のパズルゲームを協働して進行させるために必要なデータのやりとりを、各ユーザ端末100との間で行う。具体的には、協力プレイ制御部211は、ユーザ端末100から協力プレイ開始要求を受け付けて、プレイルームを開設する。プレイルームを開設するとは、1のパズルゲームを協働して進行させるために、各ユーザ端末100が共有するべき共有データを生成することである。共有データのデータ構造については、後に詳述する。
協力プレイ制御部211は、ユーザ端末100から、既設のプレイルームへの参加要求を受け付けて、要求元のユーザ端末100を該プレイルームに関連付けて参加させる。なお、協力プレイ制御部211は、参加枠が空いている既設のプレイルームへの参加を呼びかける通知を、任意のユーザ端末100に対して送信してもよい。例えば、ホストユーザから指定されたユーザのユーザ端末100に対して該通知を送信してもよいし、ホストユーザと友人として事前登録されているユーザのユーザ端末100に対して該通知を送信してもよいし、ランダムに選択したユーザ端末100に対して該通知を送信してもよいし、所定の規則(例えば、オンラインプレイ中のユーザ、ホストユーザと同レベルのユーザなど)に基づいて選択したユーザ端末100に対して該通知を送信してもよい。
協力プレイ制御部211は、各ユーザ端末100がステージを進行させている間、各ユーザ端末100から提供されたステージの進行状況(例えば、個別成績など)を受信する。そして、受信した各個別成績に基づいて各種値を集計し、集計結果を各ユーザ端末100にフィードバックする。また、協力プレイ制御部211は、集計結果に応じて、ステージの進行に係る通知を生成し、各ユーザ端末100に配布する。その他、サーバ200は、各ユーザ端末100が共有すべきデータがあれば、該データを各ユーザ端末100に配布する。
<キャラクタデータについて>
本実施形態では、ユーザは、種類の異なるキャラクタを複数所有し、所有しているキャラクタの中から、盤面に配置したり、射出したりするためのキャラクタを指定することができる。上述したとおり、ユーザによって所有されたキャラクタは、ユーザ識別情報と関連付けて、サーバ200によって管理される。ユーザ端末100のキャラクタ管理部115は、自端末のユーザが所有しているキャラクタについてのキャラクタデータを、サーバ200から取得して、ゲーム情報132として記憶部120に格納する。キャラクタ管理部115は、記憶部120に格納されたキャラクタデータを、パズルゲームの進行状況に応じて、読み出したり、更新したりすることにより、ユーザによって所有されている各キャラクタを管理する。
図22は、キャラクタデータのデータ構造の一例を示す図である。キャラクタは、ステージを有利に進行させることに関わる各種パラメータを有している。パラメータの一例として、「レベル」、「得点単価」、「タイプ」、「スキル」および「アビリティ」がある。さらに、「累積スコア」があってもよい。これらの各種パラメータは、各キャラクタのキャラクタ名に関連付けて、キャラクタデータとして格納されている。
「レベル」は、上述したとおり、キャラクタの総合的な強さを示すパラメータである。「得点単価」は、上述したとおり、キャラクタが除去されたときに獲得される、該キャラクタ1個あたりの得点を示すパラメータである。「累積スコア」は、上述したとおり、これまでにユーザによってプレイされたすべてのステージにおいて、キャラクタについて獲得されたスコアをすべて合算したもの(いわゆる経験値)を示すパラメータである。
「タイプ」は、キャラクタの属性を示すパラメータである。タイプには、一例として、赤、青、黄の3タイプがあり、盤面に配置されるキャラクタのタイプが、該盤面が構成されたステージの属性、または、該ステージに登場するボスの属性と一致すると、該ステージを有利に進行させることができる。
「スキル」は、キャラクタがステージの進行中に発動させることにより、ステージの進行を有利にすることができる技の内容を示すパラメータである。盤面に配置されたキャラクタは、所定の発動条件が満たされた場合にスキルを発動できる状態に遷移する。本実施形態では、スキルは、所定の発動条件が満たされたとき以降に、ユーザの操作にしたがって、発動される。
「アビリティ」は、ステージの進行状況または進行後の結果に対して有利な作用を及ぼすキャラクタの能力である。アビリティを有するキャラクタが盤面に配置されていることにより、該アビリティに係る、ステージの進行に有利な作用が発現する。例えば、「ハート」のキャラクタが「スコア5%UP」のアビリティを有している場合、ステージの進行中に、ハートが得点位置に到達したときに加算される得点が、通常の獲得される得点の5%UPとなる。
ユーザは、ステージの属性、該ステージに登場するボスの属性、および、該ステージに設定されたクリア条件など、ならびに、自身が所有する各キャラクタの各パラメータを考慮して、ステージを有利に進める上で、最善のキャラクタを指定すればよい。このように、キャラクタを指定する場面において、ユーザはパズルゲームを有利に進めるために戦略を練ることができる。結果として、パズルゲームの興趣性を一層向上させることが可能となる。
<共有データについて>
図23は、共有データのデータ構造の一例を示す図である。本実施形態では、一例として、1のパズルゲームにおいて、複数のユーザ端末100間で共有される共有データは、パズル要素データD1、クリア条件データD2、補充ゲージデータD3、および、成績データD4を含む。該共有データは、図23に示すとおり、プレイルームの識別情報に関連付けて、ゲーム情報132として、サーバ200の記憶部220に格納されている。共有データは、必要に応じて、各ユーザ端末100に配布される。
一例として、ルームデータは、プレイルームの識別情報としてのルームIDの他に、該プレイルームに参加するユーザのユーザ識別情報を含んでいてもよい。本実施形態では、一例として、1のパズルゲームは、3台のユーザ端末100の協働により進行される。したがって、図23に示す例では、3台のユーザ端末100をそれぞれ操作する3人のユーザのユーザ識別情報がルームIDに関連付けられている。ルームデータは、3人のユーザのうち、いずれがホストであるのかを示す情報を含んでいてもよい。
パズル要素データD1は、盤面に配置されるパズル要素の種類を示す情報である。本実施形態では、一例として、6種類のキャラクタが、パズル要素としてランダムに盤面に配置される。したがって、本実施形態では、パズル要素データD1は、6種類のキャラクタを示す情報を含んだキャラクタデータである。本実施形態では、一例として、3人の参加するユーザが、それぞれ、自身が所有するキャラクタの中から盤面に配置するキャラクタを2種類指定する。これにより、6種類のキャラクタが特定される。
6種類の各キャラクタは、ユーザ識別情報とNo.とに関連付けて格納される。これにより、どのユーザによって指定された1体目または2体目なのかを、ゲームシステム1において把握することができる。本実施形態では、サーバ200は、ホストユーザによって1体目に指定されたキャラクタをリーダーキャラクタとして設定する。リーダーキャラクタは、残りの5体と区別して、例えば、特別な能力が与えられたり、クリア条件の一部として指定されたりする。なお、キャラクタデータは、各キャラクタの名前の他にも、該キャラクタに関連付けらえている各種パラメータ(図22参照)を含んでいてもよい。
クリア条件データD2は、協力してプレイされるステージのクリア条件を示す情報である。クリア条件が共有されることにより、各ユーザ端末100の各ユーザは、目標を共有して協力してプレイする。クリア条件は、参加ユーザの全員の個別成績を総合した総合成績に対してノルマを課し、総合成績がノルマを達成することにより、該クリア条件が達成されたと判断される条件であってもよい。例えば、参加ユーザが獲得した得点の合計に対して課せられる条件であってもよい。クリア条件は、参加ユーザのそれぞれにノルマを課し、すべての参加ユーザがそれぞれのノルマを達成することにより、該クリア条件が達成されたと判断される条件であってもよい。クリア条件は、参加ユーザのうちの少なくとも一人がノルマを達成することにより、該クリア条件が達成されたと判断される条件であってもよい。上述のようなクリア条件が、1つまたは複数設定されてもよい。
補充ゲージデータD3は、補充モードの発動条件を制御するための補充ゲージ(例えば、既出の補充ゲージ581)を示す情報である。補充ゲージは、例えば、ゲージを満杯にするために必要な補充ゲージ値(MAX値)を分母とし、現在の貯まっている補充ゲージ値(現在値)を分子とする分数を含む。補充ゲージは、例えば、補充ゲージ値が貯まっている割合を示すパーセンテージを含んでいてもよい。補充ゲージ581が共有されることにより、1のパズルゲームに参加する各ユーザ端末100が協働して、発動条件を満たすように動作する。そして、発動条件が満たされたとき、各ユーザ端末100間で、同時に、補充モードが発動される。
成績データD4は、ステージがクリアされた後、参加した各ユーザ端末100の成績が集計されて生成された、該ステージに対する成績を示す。成績データD4は、参加したユーザ端末100のそれぞれについて、ステージにおいて獲得されたスコア合計を、すべて合算した総スコア合計(総得点)を含んでいてもよい。本実施形態では、サーバ200は、スコア合計の内訳として、参加したユーザ端末100のそれぞれについて、キャラクタ別に獲得されたキャラクタ別スコアを決定する。したがって、成績データD4は、参加したすべてのユーザ端末100についてのキャラクタ別スコアを合算した総キャラクタ別スコアを含んでいてもよい。また、各ユーザ端末100においては、除去されたキャラクタの数が、キャラクタ別にカウントされる。そして、サーバ200は、参加したユーザ端末100ごとに、キャラクタ別除去数を決定する。そこで、成績データD4は、参加したすべてのユーザ端末100についてのキャラクタ別除去数を合算したキャラクタ別総除去数(種類別総除去数)を含んでいてもよい。成績データD4は、その他、提示されたクリア条件の達成度を含んでいてもよいし、各ユーザのプレイを評価する任意の情報を含んでいてもよい。
<ゲームシステム1の処理フロー>
図24は、ゲームシステム1に含まれる各装置が、ゲームプログラム131に基づいて実行する処理の流れを示すフローチャートである。ゲームシステム1が実施する処理の概要を説明すると、本実施形態では、一例として、ゲームプログラム131に基づいて、ゲームシステム1は、盤面に配置される複数種類のキャラクタを特定するステップ(後述のS202またはS203)と、特定された複数種類のキャラクタを配置して表示部152に表示される盤面を生成するステップ(後述のS206またはS207)と、を実行する。上述の特定するステップでは、盤面に配置されるキャラクタを、1のパズルゲームに参加する複数のユーザの各々に関連付けられているキャラクタの中から特定する。なお、本実施形態において、サーバ200が実行する一連の処理ステップは、別の実施形態では、1台のユーザ端末100が実行してもよいし、さらに別の実施形態では、複数台のユーザ端末100が分担して実行してもよい。あるいは、ユーザ端末100が実行する一連の処理ステップの一部は、サーバ200が実行してもよい。
ステップS201において、ユーザ端末100の共有制御部116が、新規にプレイルームを開設するための協力プレイ開始要求をサーバ200に送信する。協力プレイ開始要求には、ユーザ端末100のユーザによって指定された、1体目のキャラクタおよび2体目のキャラクタの情報(例えば、キャラクタ名、または、キャラクタの識別情報など)が含まれる。
ステップS202において、サーバ200の協力プレイ制御部211は、協力プレイ開始要求を受信し、該開始要求に対する応答として、要求元のユーザ端末100をホストユーザ端末100とするプレイルームを開設する。すなわち、共有データを生成する。
この時点では、協力プレイ制御部211は、共有データのうち、ルームデータのカラムに、ホストユーザのユーザ識別情報を、キャラクタデータのカラムに、ホストユーザに指定されたキャラクタの情報を埋める。具体的には、協力プレイ制御部211は、該開始要求に含まれるキャラクタの情報に基づいて、キャラクタデータの6枠のうちの第1枠および第2枠に割り当てるキャラクタを、それぞれ、ホストユーザによって指定された1体目のキャラクタおよび2体目のキャラクタと特定する。これにより、盤面に配置される6種類のキャラクタのうちの2種類が特定される。なお、協力プレイ制御部211は、クリア条件データのカラムと、補充ゲージデータのカラムとに、初期値を埋める。また、協力プレイ制御部211は、成績データのカラムには、まだステージがプレイされていないため値を入れないで空にしておけばよい。
ステップS203において、協力プレイ制御部211は、協力プレイマッチング処理を実行する。具体的には、開設したプレイルームに参加させるゲストユーザを選択して、ゲストユーザのゲストユーザ端末100に参加を呼び掛ける通知を行ったり、ゲストユーザ端末100からプレイルームへの参加要求を受け付けて、盤面に配置される残りのキャラクタを特定したりする。
ステップS204において、ゲストユーザ端末100の共有制御部116は、協力プレイ参加要求を送信する。該参加要求には、ゲストユーザ端末100のゲストユーザによって指定された、1体目のキャラクタおよび2体目のキャラクタの情報が含まれる。なお、共有制御部116は、参加要求の送信を、サーバ200からの参加を呼び掛ける通知に応じて行ってもよい。あるいは、共有制御部116は、ゲストユーザの操作にしたがって、サーバ200と通信し、参加可能なプレイルームを検索して参加要求を送信してもよい。
サーバ200の協力プレイ制御部211は、ステップS203において、協力プレイマッチング処理を継続している。具体的には、協力プレイ制御部211は、参加要求に含まれているキャラクタの情報に基づいて、キャラクタデータの6枠のうちの第3枠および第4枠に割り当てるキャラクタを、それぞれ、ゲストユーザによって指定された1体目のキャラクタおよび2体目のキャラクタと特定する。第5枠および第6枠に割り当てるキャラクタについても、同様に、2人目のゲストユーザのゲストユーザ端末100から受信した参加要求にしたがって、特定する。この時点で、盤面に配置される6種類すべてのキャラクタが特定される。したがって、協力プレイ制御部211は、共有データのうち、成績データのカラム以外のすべての情報を埋めることができる。
ステップS205において、協力プレイ制御部211は、成績データのカラム以外の情報が埋められた共有データを、参加するすべてのユーザ端末100に配布する。これにより、ステップS202で開設されたプレイルームに参加するすべてのユーザ端末100間で、パズル要素データ(キャラクタデータ)D1と、クリア条件データD2と、補充ゲージデータD3とが共有される。
すなわち、ユーザは、他のユーザによって所有されている、自身は所有していないキャラクタが盤面に配置されたステージをプレイすることができる。ユーザは、ステージのプレイ中に、他のユーザによって所有されているキャラクタのスキルまたはアビリティを使用することができる。落下したキャラクタの得点は、該キャラクタに関連付けられている得点単価に基づいて算出される。したがって、ユーザは、自身が所有していないキャラクタであっても、他のユーザによって所有されているキャラクタの得点単価が高ければ、そのキャラクタを落下させることで、高得点を獲得することができる。このように、他のユーザによって所有されているキャラクタの恩恵に与りながら、ステージを有利に進行させることができる。これが、1のパズルゲームを複数のユーザでプレイすることの利点のうちの一つである。結果として、マルチプレイ型パズルゲームの興趣性を一層向上させることができる。
ステップS206において、ユーザ端末100の共有制御部116は、配布された共有データをパズル進行部114に伝達する。パズル進行部114は、該共有データに基づいてステージを進行させる。ステージの進行処理については、実施形態1において、図3および図4に基づいて詳細に説明したのでここでは説明を繰り返さない。実施形態1と異なる点は、パズル進行部114が、共有データに含まれているキャラクタデータが指定する6種類のキャラクタに基づいて盤面を生成する点である。また、パズル進行部114が、射出台521に載せるキャラクタおよび予告領域522に表示させるキャラクタも、上述の6種類のキャラクタの中から選択する点でも実施形態1とは異なる。また、パズル進行部114は、盤面に配置されたキャラクタのスキルを発動させてもよい。また、パズル進行部114は、盤面に配置されたキャラクタのアビリティに基づいて、ステージの進行中に処理される各種値を補正してもよい。なお、ステップS207において、同じプレイルームに参加する他のユーザ端末100においても、ステップS206と同様の処理が実行される。
ステップS208において、サーバ200の協力プレイ制御部211は、各ユーザ端末100と通信して、ステージの進行状況を、各ユーザ端末100に共有させるための処理を実行する。具体的には、協力プレイ制御部211は、ステージの進行に伴って変化する各種値(補充ゲージの補充ゲージ値、スコア合計、キャラクタ別スコア、キャラクタ別除去数など)を、参加しているユーザ端末100のそれぞれから受け取って、これらを集計する。協力プレイ制御部211は、集計結果を、各ユーザ端末100にフィードバックする。また、協力プレイ制御部211は、集計結果に応じて進行に変化が生じる場合には、進行に係る通知を各ユーザ端末100に送信する。
ステップS209において、ユーザ端末100の共有制御部116が、サーバ200から、上述の進行に係る通知として、ステージの終了を通知するステージ終了通知を受信する。この場合、パズル進行部114は、ステージの進行を終了し、自端末のユーザのプレイ結果に基づいて個別成績を決定し、該個別成績をサーバ200に提供する。なお、ステップS210において、他のユーザ端末100においても、ステップS209と同様の処理が実行される。
ステップS211において、サーバ200の協力プレイ制御部211は、参加している各ユーザ端末100から受信した個別成績を集計し、総合成績を決定する。基本的に、協力プレイ制御部211は、個別成績を合算して総合成績を求める。
ステップS212において、協力プレイ制御部211は、総合成績に基づいて参加ユーザ全員に配布される報酬を決定してもよい。例えば、1つのプレイルームに参加したすべてのユーザが所有するキャラクタのパラメータを向上させるようなアイテムが報酬として決定されてもよい。また、1つのプレイルームに参加したすべてのユーザでチームが構成される場合、該チームに対して付与される報酬が決定されてもよい。チームに対して付与される報酬は、例えば、該チームに所属するすべてのユーザにとってメリットとなる任意のアイテムであってもよい。したがって、チームに多く貢献するユーザは、同チーム所属の他のユーザから感謝されたり、称えられたりするなどして、ゲームをプレイしたことについて達成感を得やすい。なお、協力プレイ制御部211は、個別成績に基づいて、ユーザに個別に配布される報酬を決定してもよい。
ステップS213において、協力プレイ制御部211は、決定された総合成績および報酬を各ユーザ端末100に通知する。さらに、ユーザごとに、個別の報酬を通知してもよい。
協力プレイで獲得される報酬は、協力プレイでないと獲得できない、例えば、シングルプレイでは獲得できない限定的な報酬であることが好ましい。あるいは、シングルプレイで獲得される報酬よりも、量および質の少なくとも一方が優れていることが好ましい。例えば、協力プレイで獲得される報酬は、シングルプレイで獲得される報酬よりも、量が多い、質が良い、等級が高い、価値が高い、または、希少度が高いことが好ましい。これにより、マルチプレイ型パズルゲームをプレイすることのユーザの動機付けを強化することができる。
ステップS214において、ユーザ端末100の共有制御部116は、サーバ200から、総合成績および参加者共通の報酬、ならびに、あれば個別の報酬を取得する。ステップS215において、パズル進行部114は、取得された報酬が反映されるよう、記憶部120において管理されているゲーム情報132を更新する。特に、キャラクタの情報に係る更新については、キャラクタ管理部115が、取得された報酬に基づいて行う。具体的には、各キャラクタの累積スコアを加算したり、レベルを上げたり、得点単価を上げたり、アビリティをより強化したりする。なお、ステップS216およびステップS217において、他のユーザ端末100においても、ステップS214およびステップS215と同様の処理が実行される。
ステップS218において、最後に、サーバ200の協力プレイ制御部211は、プレイルームを閉鎖する。具体的には、ステップS202で生成した共有データを削除する。なお、協力プレイ制御部211は、協力プレイの履歴を管理する目的で、共有データの一部(例えば、成績データなど)を残しておいてもよい。
<ゲーム画面例>
図25は、ユーザ端末100の表示部152に表示される、プレイルームを開設するためのUI画面の具体例を示す図である。該UI画面は、ステップS201において、画像生成部113によって生成され、表示制御部112によって表示される。
該UI画面は、デッキ601と、キャラクタリスト605と、開設指示ボタン606とを含んでいる。デッキ601は、盤面に配置するキャラクタをユーザが編成するためのUIオブジェクトである。詳細には、デッキ601は、ホストユーザがキャラクタを編成するための第1サブデッキ602と、1人目のゲストユーザがキャラクタを編成するための第2サブデッキ603と、2人目のゲストユーザがキャラクタを編成するための第3サブデッキ604とを含む。図25に示す例では、ゲストユーザがすでに決まっており、ゲストユーザの識別情報が表示されている。しかし、ゲストユーザが未定である場合には、ゲストユーザの識別情報が空欄であっても構わない。
キャラクタリスト605は、ユーザが所有するキャラクタを一覧表示するためのUIオブジェクトである。キャラクタ管理部115は、ゲーム情報132として記憶部120に格納されているキャラクタデータから各キャラクタの情報を読み出してキャラクタリスト605に反映させる。一例として、キャラクタリスト605には、キャラクタのアイコン、レベルおよびキャラクタ名が表示される。
例えば、プレイルームを新規に開設しようとするホストユーザは、キャラクタリスト605から盤面に配置させたいキャラクタのアイコンを選択し、該アイコンをドラッグして第1サブデッキ602の枠内にドロップする。このような簡易な操作により、ホストユーザは、第1サブデッキ602を編成することができる。一例として、第1サブデッキ602の1枠目にドロップされたキャラクタがリーダーキャラクタとして設定される。
所望のキャラクタを第1サブデッキ602に編成し終えると、ホストユーザは、開設指示ボタン606を選択する。これに応じて、共有制御部116が、ホストユーザによって指定された1体目および2体目のキャラクタの情報を含む協力プレイ開始要求を、サーバ200に送信する。
図26は、既設のプレイルームに参加するためのUI画面の具体例を示す図である。該UI画面は、ステップS204において、画像生成部113によって生成され、表示制御部112によって表示される。該UI画面は、一例として、1人目のゲストユーザが操作する他のユーザ端末100の表示部152に表示される。
該UI画面は、デッキ601と、キャラクタリスト605と、参加指示ボタン607とを含んでいる。デッキ601について、図25に示すデッキ601と異なる点は、第2サブデッキ603が、1人目のゲストユーザが編成できるデッキとして示されている点である。第1サブデッキ602は、ホストユーザ(Aさん)によって編成されたことを示している。第3サブデッキ604は、2人目のゲストユーザ(Cさん)によって編成される予定であることを示している。なお、第1サブデッキ602の情報は、サーバ200によって、他のユーザ端末100の共有制御部116に供給されている。
1人目のゲストユーザは、ホストユーザと同様に、自身が所有するキャラクタが一覧表示されたキャラクタリスト605の中から、盤面に配置したいキャラクタを選択し、第2サブデッキ603の2つの枠に編成する。
所望のキャラクタを第2サブデッキ603に編成し終えると、1人目のゲストユーザは、参加指示ボタン607を選択する。これに応じて、共有制御部116が、該ゲストユーザによって指定された1体目および2体目のキャラクタの情報を含む協力プレイ参加要求を、サーバ200に送信する。
なお、2人目のゲストユーザも、同様に、第3サブデッキ604を編成し、参加指示ボタン607を選択することで、同じプレイルームに参加することができる。
本実施形態では、一例として、ゲームシステム1は、デッキ601に同種のキャラクタを重複して編成することを許可しない構成である。例えば、サーバ200の協力プレイ制御部211は、ゲストユーザのユーザ端末100が、先にデッキ601に編成されているのと同種のキャラクタを選択して参加要求を送信してきた場合に、編成エラーと判断し、再編成を促すメッセージを該ユーザ端末100に返してもよい。あるいは、ゲストユーザのユーザ端末100の共有制御部116は、編成が重複しないように、キャラクタリスト605において、先にデッキ601に編成されているのと同種のキャラクタのアイコンを選択不可にしてもよいし、選択された場合にエラーメッセージを表示させてもよい。
図27は、1のプレイルームに参加する各ユーザ端末100の表示部152に表示される、条件提示画面の具体例を示す図である。該条件提示画面は、ステップS206およびステップS207において、パズル進行部114の制御下で、各ユーザ端末100の画像生成部113によって生成され、例えば、ステージの開始直前に、表示制御部112によって表示される。該条件提示画面を生成するのに必要な共有データは、ステップS205において、サーバ200から配布される。
該条件提示画面は、クリア条件501と、ステージ名502と、キャラクタの種類503とを含んでいる。クリア条件501は、1つであっても複数であってもよい。クリア条件501は、参加するユーザすべてに対して共通で課せられる。例えば、クリア条件501における1つ目のクリア条件は、参加する3人のユーザが、射出キャラクタ531をそれぞれ10回射出するまでに、リーダーキャラクタ(ここでは、スター)を、3人の合計で50個以上落下させることができれば、達成される。例えば、クリア条件501における2つ目のクリア条件は、各ユーザのスコア合計を合算して得られた総スコア合計が9999以上である場合に達成される。例えば、クリア条件501における3つ目のクリア条件は、参加する3人のユーザのうちの誰かが、8個以上のキャラクタを結合させることにより、達成される。こうして、クリア条件501が参加ユーザ全員で共有されるため、マルチプレイ型パズルゲームの興趣性を向上させることができる。
図28は、ユーザ端末100の表示部152に表示されるパズル画面の具体例を示す図である。該パズル画面は、ステップS206およびステップS207において、パズル進行部114の制御下で、各ユーザ端末100の画像生成部113によって生成され、例えば、ステージの開始直後に、表示制御部112によって表示される。
実施形態1に係る図6と比較して異なる点は、図27において、キャラクタの種類503として示されている6種類のキャラクタが盤面511に配置されている点である。これらの6種類のキャラクタは、上述したとおり、1のプレイルームに参加する3人のユーザが、それぞれ、2体ずつ持ち寄ったキャラクタである。
なお、本実施形態では、盤面511における各キャラクタの配置は、3台のユーザ端末100で共有されない。共有されるのは、キャラクタの種類503である。したがって、図28に示すのと全く同じ配置の3つの盤面が生成されるのではない。3台のユーザ端末100における、それぞれのパズル進行部114が、共有されているキャラクタの種類503に基づいて、それぞれの盤面511を生成する。また、射出台521に載せるキャラクタ、および、予告領域522に配置するキャラクタも共有されず、それぞれのパズル進行部114によって決定される。
図29は、ユーザ端末100の表示部152に表示されるパズル画面の他の具体例を示す図である。該パズル画面は、ステップS206およびステップS207において、パズル進行部114の制御下で、各ユーザ端末100の画像生成部113によって生成され、ステージ進行中の所定のタイミングで、表示制御部112によって表示される。
本実施形態では、一例として、ステージの進行中、成績が所定の条件を満たす場合に、射出台521に載っているキャラクタのスキルを発動させることが可能となる。スキルの発動条件は、一例として、「そのキャラクタのキャラクタ別除去数が所定の数に到達すること」である。そこで、本実施形態では、パズル進行部114は、キャラクタごとにスキルゲージ523を設定する。スキルゲージとは、キャラクタが盤面511から除去されるたびにスキルゲージ値が蓄積されるゲージであり、このスキルゲージがスキルゲージ値で満杯になると、パズル進行部114は、射出台521に載っているそのキャラクタをスキル発動可能な状態へと遷移させる。
本実施形態では、一例として、パズル進行部114は、ユーザの操作にしたがってスキルを発動させる。具体的には、あるキャラクタ(例えば、キャラクタ名「ルナ」のキャラクタ524)が所定数以上落下したことによって、キャラクタ524のスキルゲージ523が満杯になったとする。このとき、パズル進行部114は、キャラクタ524をスキル発動可能な状態へと遷移させる。併せて、パズル進行部114は、スキル発動可能な状態に遷移したことをユーザに視認させるために、キャラクタ524のスキルゲージ523を、他のスキルゲージ523とは表示態様を異ならせて強調してもよい。
ユーザは、キャラクタ524のスキルを発動させたい場合、射出台521から射出させる前に、キャラクタ524をタップする。操作受付部111が、スキル発動可能な状態に遷移したキャラクタに対するタップ操作を受け付けると、パズル進行部114は、該キャラクタ(キャラクタ524)のスキルを発動することを決定する。併せて、パズル進行部114は、スキルを発動させることが決まったキャラクタ524を、他の射出台521に載っているキャラクタとは表示態様を異ならせて強調してもよい。
本実施形態では、一例として、パズル進行部114が、実際にスキルが発動するタイミングは、キャラクタを射出するためのユーザの操作(記述のドラッグアンドドロップ操作)に基づいて、キャラクタが射出されたときである。パズル進行部114は、キャラクタ524がタップされた後で、ドラッグアンドドロップされたときに、キャラクタ524のスキルを発動させる。パズル進行部114は、キャラクタ524に関連付けられているスキルに基づく作用を、ステージの進行内容または盤面511に対して与える。例えば、キャラクタ524(ルナ)のスキルは、図22より「風船を大きくする」である。そこで、パズル進行部114は、盤面511に配置されているキャラクタのうち、最小単位であるルナのキャラクタのすべてまたはその中いくつかを、キャラクタ2個分のサイズに変更する。このように、ユーザは、ステージのプレイ中に、他のユーザによって所有されているキャラクタのスキルも使用して、ステージを有利に進行させることができる。
<データ共有処理の詳細>
上述したステップS206〜S207における、各ユーザ端末100に1のパズルゲームに係るデータを共有させるための処理について、より詳細に説明する。図30は、上述のデータを共有させるための処理の流れを示すフローチャートである。なお、図示しないが、他のユーザ端末100においても、ユーザ端末100と同様の処理が実施されているものとする。
ステップS251において、パズル進行部114は、ステップS205において配布された共有データに基づいて、ステージの進行を開始する。実施形態1と同様に、パズル進行部114は、キャラクタの射出、結合、および、浮上形態から落下形態への移行を実施する。
ステップS252において、パズル進行部114は、キャラクタを得点位置(例えば、図17の得点位置563)に落下させる。そして、ステップS253において、共有制御部116は、得点位置に到達したキャラクタに応じて獲得された得点を、パズル進行部114から取得する。また、ステップS254において、共有制御部116は、得点位置に到達したキャラクタに応じて獲得されたゲージ値をパズル進行部114から取得する。ゲージ値とは、補充ゲージ581(図19)を満杯にするために該補充ゲージ581に貯められる値のことである。また、ステップS255において、共有制御部116は、得点位置に到達したキャラクタの数、すなわち、キャラクタ別除去数を、キャラクタの種類ごとに、パズル進行部114から取得する。
ステップS256において、共有制御部116は、取得した得点、ゲージ値およびキャラクタ別除去数を、サーバ200に提供する。本実施形態では、得点は、キャラクタごとに算定されてもよい。キャラクタごとに算定された得点は、キャラクタ別スコアとしてサーバ200に提供されてもよい。
例えば、ステップS252において、得点単価が50のスターが1個、得点単価が30のスノーが2個、および、得点単価が100のティアが1個が落下した場合、獲得された得点は、合計で50×1+30×2+100×1=210点である。この場合、共有制御部116は、スコア合計として「210点」をサーバ200に提供するとともに、その内訳であるキャラクタ別スコアとして、「スター:50点」、「スノー:60点」および「ティア:100点」をサーバ200に提供してもよい。
さらに、共有制御部116は、残り射出回数をパズル進行部114から取得して、残り射出回数をサーバ200に提供してもよい。さらに、共有制御部116は、1度に結合させた最小単位のキャラクタ数をパズル進行部114から取得して、結合数としてサーバ200に提供してもよい。
ステップS257において、サーバ200の協力プレイ制御部211は、参加しているそれぞれのユーザ端末100から、得点、ゲージ値、キャラクタ別除去数および残り射出回数を受信する。
ステップS258において、協力プレイ制御部211は、受信した内容を集計する。具体的には、協力プレイ制御部211は、各ユーザ端末100のスコア合計を合算して、総スコア合計を算出する。また、各ユーザ端末100のキャラクタ別スコアを、キャラクタごとに合算して、キャラクタ別総スコアを算出する。また、各ユーザ端末100のキャラクタ別除去数を合算して、キャラクタ別総除去数を算出する。さらに、協力プレイ制御部211は、各ユーザ端末100のゲージ値を、図23に示す補充ゲージデータの現在値に加算する。本実施形態では、協力プレイ制御部211は、残り射出回数および結合数については合算せずに、ユーザごとに残り射出回数および結合数を把握する構成である。
ステップS259において、協力プレイ制御部211は、ステージの進行状況を監視する。具体的には、集計結果が所定の条件を満足しない場合、つまり、ステップS259でNOの場合、協力プレイ制御部211は、ステージの進行に変更はないと判断して、ステップS260を実行せずに、ステップS261に進む。
一方、集計結果が所定の条件を満足する場合、つまり、ステップS259でYESの場合、協力プレイ制御部211は、ステージの進行に変更があると判断して、ステップS260において、進行に係る通知を生成する。進行に係る通知としては、具体的には、ステージ終了通知、および、補充モード開始通知がある。さらに詳細には、ステージ終了通知としては、クリア条件達成通知と、ゲームオーバ通知とがある。
協力プレイ制御部211は、集計結果がステージを終了させる条件を満足する場合、ステージの終了を通知するステージ終了通知を生成する。
ステージを終了させる条件としては、例えば、クリア条件が達成されることが想定される。このような場合に、協力プレイ制御部211は、クリア条件が達成された旨を通知するクリア条件達成通知を生成する。例えば、合算の結果得られた総スコア合計、合算の結果得られたキャラクタ別総除去数および結合数の少なくともいずれか1つ、あるいは、これらのすべてが、図23に示すクリア条件データD2に示された条件を満足する場合、協力プレイ制御部211は、クリア条件達成通知を生成してもよい。
ステージを終了させる条件としては、他にも、クリア条件が達成されずに、すべてのユーザがそれぞれに与えられた残り射出回数を消費してしまうことが想定される。このような場合に、協力プレイ制御部211は、全員の残り射出回数がゼロになりゲームオーバになった旨を通知するゲームオーバ通知を生成してもよい。
協力プレイ制御部211は、合算の結果得られた補充ゲージデータの現在値が、満杯になった場合、補充モードの開始を通知する補充モード開始通知を生成する。
ステップS261において、協力プレイ制御部211は、ステップS258において得られた集計結果と、ステップS260が実行された場合にはそこで生成された通知とを、各ユーザ端末100に送信する。
ステップS262において、ユーザ端末100の共有制御部116が集計結果を受信すると、パズル進行部114は、受信された集計結果をステージの進行に反映させる。例えば、図28に示される、スコア合計517、補充ゲージ581、および、クリア条件516などを更新する。
ステップS263でYESの場合、すなわち、共有制御部116が進行に係る通知として、ステージ終了通知を受信すると、パズル進行部114は、該通知にしたがって、ステップS264において、ステージを終了する。
ステップS263でNO、かつ、ステップS265でYESの場合、すなわち、共有制御部116が進行に係る通知として、補充モード開始通知を受信すると、パズル進行部114は、該通知にしたがって、ステップS266において、補充モードを発動させる。補充モードについては、図21に基づいて詳細に説明したので、ここでは説明を繰り返さない。補充モード開始通知は、他のユーザ端末100にも送信されるので、1つのプレイルームに参加するユーザの全員が、ほぼ同時に、補充モードを体験することができる。
ステップS265でNO、すなわち、共有制御部116が進行に係る通知を受信しなかった場合、あるいは、補充モードの発動期間が終了した場合、パズル進行部114は、ステージの進行を継続する。具体的には、ステップS252に戻り、以降の処理を繰り返す。
上述の方法によれば、マルチプレイ型パズルゲームの興趣性を向上させること可能となり、該マルチプレイ型パズルゲームをプレイすることのユーザの動機付けを強化することができる。
〔変形例〕
1つのプレイルームに参加できるユーザの数は、3人より多くても少なくてもよい。デッキ601に編成されるキャラクタの種類は、6種類より多くても少なくてもよい。
デッキ601に編成するために各ユーザが持ち寄るキャラクタの数は、固定されていなくてもよいし、均等でなくてもよい。例えば、ユーザ間の協議によって、誰が何体持ち寄るかが決定されてもよい。特定のユーザが所有するキャラクタに偏ってデッキ601が編成されてもよい。あるいは、ユーザ端末100およびサーバ200は、デッキ601に編成するキャラクタを、参加ユーザ全員から、それぞれ最低1個は採用されるように特定する構成であってもよい。これにより、協力プレイに参加するすべてのユーザに、自分がマルチプレイ型パズルゲームに参加しているという充足感を与えることができ、結果として、マルチプレイ型パズルゲームをプレイすることのユーザの動機付けを強化することができる。
ユーザ端末100およびサーバ200は、デッキ601においてキャラクタの種類が重複したとき、先着順ではなく、より強いキャラクタを採用する構成であってもよい。あるいは、ユーザ間の協議または投票などによって、編成されるキャラクタが1つに絞られてもよい。
〔実施形態3〕
本実施形態では、ゲームシステム1は、複数のステージを含むゲームを実行するためのシステムである。ユーザは、所望のステージを選択し、該ステージにおいて展開されるパズルゲームをプレイすることができる。
本実施形態では、一例として、ユーザ端末100は、サーバ200と通信し、該サーバ200から複数のステージに係る情報を取得する。ユーザ端末100は、取得した各ステージの情報を処理して、該パズルゲームを実行する。別の実施形態では、ユーザ端末100が複数のステージに係る情報のすべてを保持し、処理し、該パズルゲームを実行する構成であってもよい。
<サーバ200の機能的構成>
本実施形態では、制御部210は、ゲームプログラム131の記述に応じて、ステージ管理部212として機能する。ステージ管理部212は、各ユーザ端末100に供給する1または複数のステージを管理する。具体的には、ステージに係る各種情報を処理する。詳細には、ステージ管理部212は、新規にステージを生成したり、有効期限が切れたステージを削除したり、ステージのステータス(ユーザがプレイできるか否か)を更新したりする。
本実施形態では、一例として、各ステージには、ギミックが設けられている。ステージ管理部212は、ステージごとに固有のギミックを定義したギミックデータを生成し、生成したギミックデータを該ステージに関連付けて記憶部220に格納する。パズル進行部114は、ステージごとに関連付けられたギミックデータに基づいて、該ステージを進行させる。これにより、各ステージは、表示部に表示されるパズル画面の見た目(盤面511の外観など)、および、ステージの進行に係る1または複数の動作(キャラクタを、射出台521から射出すること、移動させること、結合させること、落下させることなど)の少なくともいずれか1つが、互いに異なるようにユーザに提供される。結果として、ユーザは、見た目も動作も全くことなる複数種類のステージを、1つのパズルゲームの中で選択して楽しむことが可能となる。このように各ステージの外観および動作を異ならせるためのギミックデータのデータ構造については後に詳述する。
ステージ管理部212は、ステージに係る情報が更新されると、最新の情報を各ユーザ端末100に配信する。ステージに係る情報とは、例えば、ユーザ端末100が後述のステージ選択画面を生成するために必要な画面仕様データであってもよい。また、例えば、ユーザ端末100がステージに固有のギミックを実現してステージを進行させたり、パズル画面を生成したりするために必要なギミックデータであってもよい。
<ユーザ端末100の機能的構成>
本実施形態では、パズル進行部114は、サーバ200から配信された画面仕様データに基づいて、ユーザがプレイするステージを選択するためのステージ選択画面を表示部152に表示させる。パズル進行部114は、ステージ選択画面を構成し、画像生成部113に該ステージ選択画面の画像を生成させ、表示制御部112に生成されたステージ選択画面を表示させる。
<ステージ選択画面>
図31は、ユーザ端末100の表示部152に表示されるステージ選択画面の具体例を示す図である。本実施形態では、図31に示すとおり、パズルゲームの世界をレジャー施設(一例として、遊園地)に見立てて、ステージ選択画面がデザインされている。これにより、ユーザは、遊園地の各アトラクションを来訪するような感覚で、ステージを選択できる。このように視覚的にも魅力的なステージ選択画面がユーザに提供される。本実施形態では、1つのステージが、遊園地の1つのアトラクションに対応している。
ステージ選択画面は、ユーザがプレイするステージを選択するための複数のアイコン701〜705を含む。1つのアイコンには、1つのステージ(アトラクション)が対応付けられている。本実施形態では、パズル進行部114は、ステージ選択画面においてユーザに提示するすべてのアイコンを、1画面に収まるように配置する。これにより、ユーザは、画面をスクロールする操作を行うことなく、すべてのステージを一覧することができる。これにより、操作に不慣れなユーザであっても、ステージの選択を容易に行うことが可能となる。
本実施形態では、一例として、パズル進行部114は、5つのアイコンを1画面に配置する。より詳細には、ステージ選択画面の四隅、すなわち、左上、右上、左下、および、右下に、それぞれ、アイコン701、アイコン702、アイコン703、および、アイコン704が配置される。さらに、ステージ選択画面の中央に、アイコン705が配置される。これにより、ユーザは、パズルゲームにおいて、5つのステージの中からプレイしたいステージを1つ選択することができる。
本実施形態では、各アイコンは、対応付けられたステージの概要を示し、かつ該ステージのプレイ可否を示す表示態様にて表示される。一例として、アイコンは、ステージの概要を示すために、ステージ(アトラクション)の外観を模写した表示態様で表示されてもよいし、該ステージの名称を付した表示態様で表示されてもよい。これにより、ユーザは、ステージの概要を把握して、所望のステージを選択することができる。
本実施形態では、一例として、中央に配置されるアイコン705(第1オブジェクト)には、不定期にユーザに提供される特殊なステージが対応付けられている。特殊なステージとしては、例えば、時季に即した特殊なイベントをテーマにしたステージ、または、他のコンテンツプロバイダーとの提携により実現した特殊なイベントをテーマにしたステージなどが想定される。アイコン705には、テーマが異なる特殊なステージが、不定期に入れ替えて対応付けられる。
一方、四隅に配置される4つのアイコン701〜704(第2オブジェクト)には、それぞれ、定期的にユーザに提供されるステージが対応付けられている。本実施形態では、一例として、4つの定期のステージのうち、少なくとも1つはプレイ不可の状態である。さらに、上述の4つのステージの少なくとも1つはプレイ可の状態であることが好ましい。本実施形態では、一例として、4つのステージのうち、常に1つがプレイ不可であり、残り3つがプレイ可である。つまり、プレイ不可のステージがプレイ可に遷移すれば、残りの3つのアイコンのうちの1つに、プレイ不可のステージが対応付けられる。このような、各ステージのステータスの管理は、本実施形態では、サーバ200によって行われる。パズル進行部114は、サーバ200の指示にしたがって、各ステージの進行を制御する。
以上のステータスの管理内容をステージ選択画面に反映させるために、パズル進行部114は、各アイコン701〜705を、対応するステージのプレイ可否を示す表示態様にて表示部152に表示させる。一例として、パズル進行部114は、アイコンにおけるステージの外観を輪郭で表示する(例えば、シルエットで表示する)ことにより、該アイコンに対応付けられているステージがプレイ不可であることを示してもよい。一方、プレイ可であるステージに対応するアイコンについては、色付きでステージの外観を表示することにより、該ステージがプレイ可であることを示してもよい。
パズル進行部114は、プレイ不可であるステージのアイコンに対して、該ステージがプレイ不可であることを通知するバルーン706を付与してもよい。バルーン706は、例えば、「プレイ不可」、「準備中」、「建設中」、または、「近日公開」などのメッセージを含んでいてもよい。
なお、本実施形態では、サーバ200は、各ステージに、終了期限を設定する。つまり、各ステージがプレイ可のステータスを維持している有効期間は予め定められており、有限である。そこで、パズル進行部114は、プレイ可であるステージに対応するアイコンに対して、該ステージがプレイ可である有効期間を通知するバルーン707を付与してもよい。バルーン707は、例えば、「今日まで」、「何月何日まで」、または、「あと何日」などのメッセージを含んでいてもよい。また、パズル進行部114は、すべてのプレイ可のステージに対応するアイコンにバルーン707を付与せずともよい。例えば、終了期限が最も早く到来するステージのアイコンにのみ、バルーン707を付与してもよい。
本実施形態では、一例として、操作受付部111は、ユーザのアイコンに対するタップ操作を、ステージの選択操作として受け付ける。アイコンの1つが、ユーザによってタップされると、パズル進行部114は、タップされたアイコンに対応付けられているステージがプレイ可のステータスである場合に、該ステージの進行を開始する。パズル進行部114は、ユーザの選択操作が実施されてもプレイ不可であるステージを進行させない。具体的には、パズル進行部114は、プレイ不可であるステージのアイコンがタップされたとしても、そのタップ操作は受け付けられなかったものとみなして無視してもよい。あるいは、パズル進行部114は、プレイ不可であるステージのアイコンがタップされた場合に、プレイ不可であることを示すエラーメッセージを表示部152に表示させてもよい。
<画面仕様データについて>
図32は、画面仕様データのデータ構造の一例を示す図である。サーバ200のステージ管理部212は、画面仕様データを、ステージ選択画面にアイコンで表される5つのステージごとに、記憶部220に格納して管理している。さらに、記憶部220においては、アイコンで表される5つのステージの他にも、過去にユーザに提供されたステージ、および、今後提供される予定のステージなどについての画面仕様データが格納されていてもよい。
本実施形態では、アイコンで表される5つのステージについて、画面仕様データが、ステージ管理部212からユーザ端末100に提供される。ユーザ端末100のパズル進行部114は、サーバ200から提供された画面仕様データを記憶部120に格納し、該画面仕様データにしたがって、ステージ選択画面を構成する。
図32に示すとおり、画面仕様データは、一例として、ステージごとに、マップID、ステージID、ステージ名、ステータス、終了期限、輪郭アイコン、および、色アイコンの各項目を含む。
マップIDは、ステージが対応付けられるアイコンについて、ステージ選択画面における配置位置を識別する情報である。図31および図32に示す例に関して、マップID「C」は、ステージ選択画面の中央(図31においてアイコン705が配置されている位置)を指す。「UL」は、左上(アイコン701が配置されている位置)を指す。「UR」は、右上(アイコン702が配置されている位置)を指す。「LL」は、左下(アイコン703が配置されている位置)を指す。「LR」は、右下(アイコン704が配置されている位置)を指す。
ステージIDは、ステージを識別する情報である。ステージ名は、該ステージの名称を示す。名称は、ステージの概要をユーザに対して認知させる情報であることが好ましい。ステータスは、該ステージがプレイ可であるかプレイ不可であるかを示す情報である。終了期限は、該ステージの有効期間の末日を示している。別の実施形態では、画面仕様データは、さらに、ステージの有効期間の初日を示す「開始日」の項目を含んでいてもよい。これにより、ステージごとに有効期間を管理することが可能となる。例えば、プレイ不可のステージの開始日の当日になると、ステージ管理部212の制御下で、該ステージのステータスがプレイ可に遷移する。このステータスの遷移に基づいて、パズル進行部114は、ステージ選択画面を更新することができる。
輪郭アイコンは、ステージ(アトラクション)の外観を輪郭(シルエット)で表した画像である。輪郭アイコンは、該ステージがプレイ不可のときにステージ選択画面に配置される。色アイコンは、ステージの外観を色彩付きで模写した画像である。色アイコンは、該ステージがプレイ可のときにステージ選択画面に配置される。
例えば、ステージID「P0002」のステージは、プレイ可である。したがって、パズル進行部114は、該ステージが関連付けられた色アイコン(アイコン702)を、ステージ名(「海底探検のステージ」)とともに、ステージ選択画面におけるURの位置(右上)に配置する。
ステージID「P0003」のステージは、プレイ不可である。したがって、パズル進行部114は、該ステージが関連付けられた輪郭アイコン(アイコン703)を、ステージ名(「おばけやしきのステージ」)とともに、LLの位置(左下)に配置する。さらに、パズル進行部114は、アイコン703に対して、プレイ不可であることを示すバルーン706を付加してもよい。
さらに、パズル進行部114は、終了期限が最も近い「コーヒーカップのステージ」が関連付けられているアイコン704に対して、終了期限を示すバルーン707を付加してもよい。
<ゲームシステム1の処理フロー>
図33は、ゲームシステム1に含まれる各装置が、ゲームプログラム131に基づいて実行する処理の流れを示すフローチャートである。ユーザ端末100が実施する処理の概要を説明すると、本実施形態では、一例として、ゲームプログラム131に基づいて、ユーザ端末100は、ユーザがプレイするステージを選択するための複数のアイコン(オブジェクト)を、表示部152に表示するステップ(後述のS310)を実行する。該表示するステップでは、各アイコンは、対応付けられたステージの概要を示し、かつ該ステージのプレイ可否を示す表示態様にて表示される。また、該表示するステップでは、アイコンそれぞれに対応付けられているステージの少なくとも1つがプレイ不可である。さらに、ユーザ端末100は、ユーザの選択操作によって選択されたアイコンに対応付けられた、プレイ可であるステージを進行させる一方(後述のステップS311でYES、および、ステップS312)、選択操作が実施されてもプレイ不可であるステージを進行させない(後述のステップS311でNO、および、ステップS310)ことにより、各ステージの進行を制御するステップを実行する。上述の表示するステップでは、アイコンの少なくとも1つにおいて、対応付けられているステージのプレイ可否の状態が遷移した場合、ユーザ端末100は、複数のアイコンの表示位置を変えることなく、プレイ不可からプレイ可に遷移したステージが対応付けられているアイコンの表示態様を、プレイ可を示す表示態様へと更新する。一方、ユーザ端末100は、プレイ可のステージからプレイ不可の別のステージへと対応付けが変更されたアイコンの表示態様を、該別のステージの概要を示し、かつ該別のステージのプレイ不可を示す表示態様へと更新する。
本実施形態では、サーバ200において、画面仕様データが適宜更新され、最新の画面仕様データがユーザ端末100に提供される。具体的には、ステップS301でYESの場合、すなわち、画面仕様データを更新すべき所定のイベントが発生すると、サーバ200のステージ管理部212は、画面仕様データの更新を開始する。所定のイベントとしては、例えば、「新しい特殊なステージに入れ替える時期が来た」または「定期のステージの1つについて、有効期間が終了した」などが想定されている。
具体的には、ステップS302において、ステージ管理部212は、有効期間が終了した終了ステージを特定する。例えば、ステップS301の判断をした日が2017年4月14日である場合、図32に示す例において、ステージ管理部212は、ステージID「P0004」のステージを終了ステージとして特定する。
ステップS303において、ステージ管理部212は、ステージのプレイ可否を判別する。まず、ステージ管理部212は、終了期限が切れていない既存のステージ「P0001」および「P0002」を引き続きプレイ可と判別する。
次に、「P0004」のステージが終了したことに伴って、ステージ管理部212は、これまでプレイ不可であったステージ「P0003」をプレイ可と判別する。さらに、ステージ管理部212は、所定の規則にしたがい、新たにプレイ可と判別したステージ「P0003」について終了期限を決定してもよい。例えば、ステージ管理部212は、上述の判断をした日の3週間後である「2017年5月5日」を終了期限として決定してもよい。
ステップS304において、ステージ管理部212は、プレイ可と判別した上述の3つのステージのうち、終了期限が最も早くに到来するステージを特定してもよい。図32および上述した例にしたがえば、ステージ管理部212は、ステージ「P0002」を終了期限間近のステージとして特定する。
ステップS305において、ステージ管理部212は、これまでプレイ不可であったステージをプレイ可に遷移させたことに伴って、プレイ不可のステージを新たに特定する。例えば、ステージ管理部212は、今後プレイ可で提供される予定のステージの中から1つステージを特定してもよい。図32に示す画面仕様データに基づいて、例えば、ステージ管理部212は、ステージ「P0005」を、プレイ不可の新規のステージとして特定してもよい。なお、ステージ管理部212は、過去にユーザにプレイ可で提供されたステージの中から、プレイ不可のステージを再び選択してもよい。
ステップS306において、ステージ管理部212は、ステップS302〜S305の一連の処理結果に応じて、画面仕様データを更新する。図34は、ステップS306において、更新された後の画面仕様データの一例を示す図である。
ステージ管理部212は、ステージ「P0003」のステータスをプレイ不可からプレイ可に遷移させる。また、上述のとおり決定された終了期限(2017年5月5日)を設定する。なお、該ステージの色アイコン(アイコン711)は、プレイ不可であったときから該ステージに関連付けられていてもよいし、プレイ可に遷移した時に関連付けられてもよい。
ステージ管理部212は、マップID「LR」と、終了ステージである「P0004」のステージとの関連付けを解除する。そして、その代わりに、マップID「LR」には、新たにステップS305で特定された、ステージ「P0005」を関連付ける。ステージ管理部212は、該ステージのステータスを「プレイ不可」に設定し、この時点では、終了期限を設定しなくてもよい。また、該ステージの輪郭アイコン(アイコン712)は、該ステージの画面仕様データが作成されたときから該ステージに関連付けられていてもよいし、プレイ不可に遷移した時に関連付けられてもよい。
ステップS307において、ステージ管理部212は、更新した画面仕様データを、各ユーザ端末100に送信する。ステージ管理部212は、マップIDが関連付けられた5つのステージのすべての項目を送信してもよいし、更新前の画面仕様データからの差分だけを送信してもよい。
ステップS308において、パズル進行部114は、通信IF13を介して、更新後の画面仕様データを受信する。パズル進行部114は、ここで、事前に、上述の差分に基づいて、ステージ選択画面の構成を更新してもよい。
ステップS309でYESの場合、すなわち、ステージ選択画面を表示することを指示するユーザの操作が受け付けられた場合、ステップS310において、パズル進行部114は、更新後のステージ選択画面を表示部152に表示させる。ステージ選択画面の生成は、画像生成部113によって、生成されたステージ選択画面の表示は、表示制御部112によって、それぞれ、パズル進行部114の制御下で実行される。
図35は、ステップS310において表示部152に表示される更新後のステージ選択画面の一例を示す図である。図31に示すステージ選択画面から更新された点は、以下のとおりである。プレイ不可であった「おばけやしきのステージ」は、プレイ不可であることを示す表示態様のアイコン703から、プレイ可であることを示す表示態様のアイコン711に変更されている。有効期間が終了した「コーヒーカップのステージ」は、非表示となり、該ステージのアイコン704が表示されていた位置には、代わりに、新規に特定されたプレイ不可のステージ(「宇宙遊泳のステージ」)のアイコン712が表示されている。アイコン712は、該ステージがプレイ不可であることを示す表示態様にて表示されている。終了期限が最も近い「海底探検のステージ」のアイコン702には、バルーン707が付加されてもよい。プレイ不可のステージのアイコン712には、バルーン706が付与されてもよい。
上述の方法によれば、すでに表示されている複数のアイコンの少なくとも1つにおいて、対応付けられているステージのプレイ可否の状態が遷移した場合、プレイ不可からプレイ可に遷移したステージが対応付けられているアイコンの表示態様を、プレイ可を示す表示態様へと更新する。該更新は、すでに表示されている複数のアイコンの表示位置を変えることなく、実施される。したがって、ユーザは、概要だけ把握していた、これまでプレイ不可であったステージ(アトラクション)がプレイ可になったということを、直感的に理解し、該ステージのプレイを所望する場合に、混乱なく選択操作を実施することが可能となる。一方、プレイ可のステージからプレイ不可の別のステージへと対応付けが変更されたアイコンの表示態様を、該別のステージの概要を示し、かつ該別のステージのプレイ不可を示す表示態様へと更新する。したがって、ユーザは、終了期限が到来して終了したステージの代わりに、将来、新しいステージ(アトラクション)がプレイできるようになることを把握することができる。その上、該新しいステージの概要を把握することができる。これにより、期待感を大いに持たせることが可能な、ステージ選択画面がユーザに提供される。
<ギミックデータについて>
上述したとおり、ステージのそれぞれにはギミックが設けられている。ギミックを定義するギミックデータは、パズルゲームの外観および動作に関わる様々な項目に対して、特定の値を指定するパラメータを含んでいてもよい。あるいは、ギミックデータは、パズルゲームの進行時にパズル進行部114によって参照される値に対して補正を行うことを指示するパラメータを含んでいてもよい。ギミックデータは、さらに、盤面を構成する各種オブジェクトに係るパラメータを含んでいてもよい。ギミックデータは、ステージ自体の属性(本実施形態では、「タイプ」と称される)を指定するパラメータを含んでいてもよい。その他、ギミックデータは、パズル画面の外観のデザインを定義する項目を含んでいてもよい。
図36は、ギミックデータのデータ構造の一例を示す図である。サーバ200のステージ管理部212は、画面仕様データにおいて管理するステージごとに、ギミックデータを記憶部220に格納して管理している。本実施形態では、一例として、ギミックデータは、以下の12個の項目を含んでいる。しかし、これらに限定されず、ギミックデータは、パズルゲームの外観および動作に関わる様々な項目を含んでいてもよい。
「タイプ」は、ステージの属性を示すパラメータである。キャラクタと同様に、一例として、赤、青、黄の3タイプがあり、ステージの盤面に配置されるキャラクタのタイプが、該ステージのタイプと一致すると、該ステージを有利に進行させることができる。
「浮力補正」は、ステージにおいて浮上形態のキャラクタが有する浮力をどのように補正するのかを示すパラメータである。「重力補正」は、ステージにおいて落下形態のキャラクタに係る重力をどのように補正するのかを示すパラメータである。これらのパラメータは、例えば、基準となる浮力(重力)に対して、「何%アップ」、「何%ダウン」などの値を指定するものであってもよいし、該ステージの浮力(重力)に係る値を直接指定するものであってもよい。
「射出台数(新規のパズル要素の数)」は、ステージのパズル画面に配置される射出台521の台数を指定するパラメータである。例えば、該パラメータが「3台」である場合、図7に示すとおり、パズル画面には、射出台521が3台配置される。
「射出台位置(表示位置)」は、射出台521の配置位置を指定するパラメータである。例えば、該パラメータが「下」である場合、図8に示すとおり、パズル画面には、射出台521が盤面511の下に設置され、射出キャラクタ531は、基本的に下から上へ向かって射出される。例えば、該パラメータが「左右」である場合、射出台521は、盤面511の左右に設置される。この場合、射出キャラクタ531は、左から右に向かって、または、右から左に向かって、横方向に射出される。さらに、射出台521の射出方向を指定するパラメータがギミックデータに含まれていてもよい。例えば、2台の射出台521が同じ「下」に配置される場合であっても、一方は、パラメータ「射出方向(移動方向)」において「右上」を指定され、もう一方は、該パラメータにおいて「左上」を指定されていてもよい。
「得点位置」は、得点位置563の配置位置を指定するパラメータである。例えば、該パラメータが「下」である場合、図16に示すとおり、パズル画面には、得点位置563が盤面511の下に配置され、除去対象のキャラクタは、上から下に向かって落下することにより、得点位置563に到達する。
「射出軌道補正」は、ステージにおいて射出キャラクタ531が射出されたときの射出軌道どのように補正するのかを示すパラメータである。該パラメータは、例えば、基準となる直進の射出軌道535(図8参照)を、蛇行の射出軌道(図示せず)に補正することを指示するものであってもよい。あるいは、該パラメータは、射出軌道535が、射出台521から離れるにつれて右(または左)に逸れる軌道となるように補正することを指示するものであってもよい。このパラメータにしたがえば、例えば、横風に吹かれて左右に逸れていく射出キャラクタ531を表現することができる。
「結合」は、ステージにおいて、結合後のキャラクタ561の風船を破裂させるために、最小単位のキャラクタを何個結合させなければいけないのかを示すパラメータである。つまり、最低結合数を示すパラメータである。例えば、該パラメータが「3個以上」である場合、これにしたがって、パズル進行部114は、最小単位のキャラクタが3個以上結合した場合に風船が破裂するようにステージを進行させる。最低結合数が多いほど、風船が割れにくくなるので、パズルゲームの難易度が高くなる。
「破裂範囲」は、結合後のキャラクタ561の風船が破裂した場合に、破裂の影響で他のキャラクタの風船を割る範囲を指定するパラメータである。例えば、本実施形態では、図15に示すとおり、結合後のキャラクタ561の風船が破裂したときに、結合後のキャラクタ561の周りには、黒い小さい星として表示される火花が出現する。該火花に接触したキャラクタも風船が割れる。「破裂範囲」のパラメータは、該火花が飛び散る距離、具体的には、該火花の、結合後のキャラクタ561の中心からの飛距離を指定する。図15に示す火花の飛距離を、該パラメータにおいて「普通」と定義した場合、図15に示す飛距離よりも遠い飛距離を「大」と定義し、さらに遠い飛距離を「特大」と定義する。火花の飛距離が遠く、破裂範囲が大きいほど、巻き込まれて落下するキャラクタが多くなるので、ステージが有利に進行する。
「落下軌道補正」は、結合後のキャラクタ561が落下するときの落下軌道をどのように補正するのかを示すパラメータである。該パラメータは、例えば、まっすぐ下に向かって落下することを規定した基準の落下軌道を、大きな放物線を描いて落下するように規定した落下軌道に補正することを指示するものであってもよい。
「障害物」は、盤面511に配置される障害物(例えば、図6に示す中間障害物514)を規定するパラメータである。例えば、該パラメータは、特定のキャラクタだけを通過させる中間障害物514を規定するものであってもよい。
「特殊オブジェクト」は、盤面511に配置される特殊なオブジェクトを規定するパラメータである。例えば、該パラメータは、除去するのに難易度が非常に高いボスキャラクタを規定するものであってもよい。あるいは、該パラメータは、どの種類のキャラクタとも結合することができるオールマイティーな味方のキャラクタを規定するものであってもよい。
図37は、表示部に表示されるパズル画面の別の具体例を示す図である。詳細には、図37に示すパズル画面は、図35に示すアイコン702に対応付けられた海底探検のステージの進行中に表示されるパズル画面である。図37に示すパズル画面は、アイコン711に対応付けられたおばけやしきのステージの進行中に表示されるパズル画面(例えば、図7)とは、ギミックが異なる。したがって、パズル画面の外観も、パズルゲームの進行中における動作もおばけやしきのステージのものとは異なっている。
図37に示すとおり、パズル画面は、盤面511、天井513、クリア条件516、スコア合計517、射出台521、予告領域522、残り射出回数515、得点位置563、スキルゲージ523、および、補充ゲージ581を含んでいる。また、このステージ固有の中間障害物514が盤面511に配置されていてもよい。パズル画面を構成する上述の各構成体は、図7に示す別のステージのパズル画面を構成する各構成体とは異なる表示態様で表示されてもよい。
上述の構成によれば、単に、ステージ(アトラクション)の盤面の外観だけでなく、パズルゲームの進行に関わる動作までも、ギミックデータに基づいて、ステージごとに異ならせることができる。これにより、種類の異なる複数のパズルゲームをユーザにプレイさせることに匹敵する興趣性を、1つのパズルゲーム(例えば、スマートフォンにおける1つのアプリケーション)において、実現することが可能となる。ギミックによって異ならせることができる、ステージの外観および動作の具体例としては、例えば、表示部152に表示される盤面の構成、キャラクタの配置、配置の変更の態様およびキャラクタの除去の態様、ならびに、ステージの難易度など、パズルゲームの進行に関わるあらゆる項目が想定される。これらをステージ固有に設定することにより、ユーザは、全く別の新しいパズルゲームをプレイするかのような楽しさを常に味わうことができ、1つのパズルゲームを、飽きることなく新鮮な気持ちで長くプレイすることができる。結果として、ゲームをプレイすることに対するユーザの動機づけを強化し、ユーザに継続してプレイしてもらえるゲームを実現することが可能となる。
〔ソフトウェアによる実現例〕
制御部210の制御ブロック(特に、協力プレイ制御部211およびステージ管理部212)、ならびに、制御部110の制御ブロック(特に、操作受付部111、表示制御部112、画像生成部113、パズル進行部114、キャラクタ管理部115および共有制御部116)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、制御部210および/または制御部110を備えた情報処理装置は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
〔付記事項〕
本発明の一側面に係る内容を列記すると以下のとおりである。
(項目1) ゲームプログラム(131)について説明した。本開示のある局面によると、ゲームプログラムは、プロセッサ(10)、メモリ(11)および表示部(152)を備えるコンピュータ(ユーザ端末100)において実行される。また、ゲームプログラムに基づくゲームは、パズル要素(キャラクタ512、結合後キャラクタ518)を配置する領域を含む盤面(511)に複数種類の該パズル要素を配置し、該盤面を表示部に表示し、該盤面におけるパズル要素の配置が変更されることよって同種のパズル要素が所定数以上連続して配置された場合に、該連続して配置されたパズル要素の少なくとも1つを盤面から除去し、除去されたパズル要素に応じて成績を決定することによって進行する。ゲームプログラムは、プロセッサに、盤面におけるパズル要素の配置を変更するためのユーザの操作を受け付けるステップ(S104、S108)と、配置の変更を行うために盤面に追加される新規のパズル要素(射出キャラクタ531)を、該盤面に向けて移動させるときの第1軌道(射出軌道)を、ユーザの操作にしたがって決定するステップ(S107)と、第1軌道にしたがって新規のパズル要素を移動させるステップ(S110)と、盤面に配置されているパズル要素と、移動中の新規のパズル要素との位置関係に基づいて、該新規のパズル要素の移動態様を変化させるステップ(S111、S112)と、を実行させる。変化させるステップでは、新規のパズル要素が配置されているパズル要素と接触した場合に、接触後の移動態様を、接触したパズル要素が新規のパズル要素と同種か異種かに応じて決定する。これにより、ゲームの興趣性を向上させるという効果を奏する。
(項目2) (項目1)において、変化させるステップは、新規のパズル要素が盤面に配置されている同種のパズル要素と接触したときに、該新規のパズル要素の移動を停止する(S111でYES、S112)こと、および、新規のパズル要素が盤面に配置されている異種のパズル要素に接触しても移動を継続する(S111でNO、S110)こと、を含む。これにより、ゲームの興趣性を向上させるという効果を奏する。
(項目3) (項目2)において、ゲームプログラムは、プロセッサに、停止した新規のパズル要素と連続して配置される、該新規のパズル要素と同種の1以上のパズル要素(同種のキャラクタ551〜553)、および、新規のパズル要素を結合して、1つの結合後のパズル要素(結合後のキャラクタ561)を生成するステップ(S114)を実行させる。これにより、ゲームの興趣性を向上させるという効果を奏する。
(項目4) (項目3)において、ゲームプログラムは、プロセッサに、結合されたパズル要素の数が所定数以上である場合に、結合後のパズル要素を盤面から除去するステップ(S116〜S125)と、除去された結合後のパズル要素を構成する結合前のパズル要素の数に応じて成績を更新するステップ(S126〜S127)と、を実行させる。これにより、ゲームの興趣性を向上させるという効果を奏する。
(項目5) (項目4)において、除去するステップは、盤面に配置されたパズル要素を、成績を更新するための所定の位置(得点位置563)に移動させることにより該パズル要素を除去するステップであり、除去するステップは、所定数以上のパズル要素が結合された場合に、その結合後のパズル要素を所定の位置に移動させるための第2軌道(落下軌道)を決定し(S116)、該第2軌道に基づいて該結合後のパズル要素の移動を開始する(S118)こと、および、移動中の結合後のパズル要素が他のパズル要素と接触した場合に、接触された他のパズル要素の所定の位置への移動を開始する(S122でYES、S123)ことを含む。これにより、ゲームの興趣性を向上させるという効果を奏する。
(項目6) (項目5)において、所定の位置は、盤面の下方に設定されており、パズル要素には、盤面の上方へ移動しようとする性質を有する第1形態(浮上形態)と、盤面の下方へ移動しようとする性質を有する第2形態(落下形態)とがあり、除去するステップは、所定数以上のパズル要素が結合した結合後のパズル要素、および、移動中の結合後のパズル要素に接触された他のパズル要素を、第1形態から第2形態へ移行させる(S118、S123)こと、第2形態へと移行させたパズル要素の表示態様を、第1形態に対応する第1表示態様(風船に包まれている状態)から、第2形態に対応する第2表示態様(風船に包まれていない状態)へと変更する(S119、S124)こと、および、第1形態から第2形態へ移行させることにより、盤面の下方に設定された所定の位置への移動を開始する(S120、S125)ことを含む。これにより、ゲームの興趣性を向上させるという効果を奏する。
(項目7) (項目6)において、除去するステップは、所定数以上のパズル要素が結合した結合後のパズル要素を、第2表示態様への変更(S119)に先行して、強調表示する(S117)ことを含む。これにより、除去対象のパズル要素をユーザに視認させやすくなる。
(項目8) (項目7)において、除去するステップでは、所定数以上のパズル要素が結合した結合後のパズル要素の表示態様を強調表示して変更する(S117〜S119)とき、該結合後のパズル要素に対して、動きを伴ったオブジェクト(環562、風船)を付与することにより、該表示態様の変遷を表示する。これにより、除去対象のパズル要素をユーザに視認させやすくなる。
(項目9) (項目8)において、除去するステップでは、所定数以上のパズル要素が結合した結合後のパズル要素に対して、該結合後のパズル要素を囲う、該結合後のパズル要素よりも大きい包囲オブジェクト(環562)を付与し、該包囲オブジェクトに対して、該結合後のパズル要素の輪郭に一致するように徐々に収縮する動きを付与することにより、強調表示を実現する。これにより、除去対象のパズル要素をユーザに視認させやすくなる。
(項目10) (項目9)において、除去するステップでは、包囲オブジェクトが、輪郭に一致または所定の範囲内に近づいたときに、結合後のパズル要素を包んでいる被覆オブジェクト(風船)に対して、破裂する動きを付与することにより、結合後のパズル要素が被覆オブジェクトに包まれている第1表示態様から、該被覆オブジェクトが非表示の第2表示態様への変更(S119)を実現する。これにより、除去対象のパズル要素をユーザに視認させやすくなる。
(項目11) (項目5)から(項目10)までのいずれか1項目において、除去するステップは、第2軌道に基づいて結合後のパズル要素が移動した軌跡(落下軌跡564)を表示する(S121)ことを含む。これにより、パズル要素が除去対象となる範囲をユーザに視認させやすくなる。
(項目12) (項目3)から(項目11)までのいずれか1項目において、生成するステップでは、結合後のパズル要素のサイズを、該結合後のパズル要素を構成する結合前のパズル要素の数に応じて決定する。これにより、結合後のパズル要素が最小単位のパズル要素の何個分に相当するのかを直感的にユーザに認識させることができる。
(項目13) (項目3)から(項目12)までのいずれか1項目において、生成するステップは、各パズル要素を結合することに先行して、結合の対象となる各パズル要素を強調表示する(オブジェクト554を表示する)ことを含む。これにより、結合の対象となるパズル要素を直感的にユーザに認識させることができる。
(項目14) (項目3)から(項目13)までのいずれか1項目において、生成するステップは、各パズル要素を結合することに先行して、結合の対象となる各パズル要素のうちの1つが配置されていた位置に結合の対象となる各パズル要素が集約される動きを、各パズル要素に対して付与することを含み、生成するステップでは、位置に1つの結合後のパズル要素を生成する。これにより、どのパズル要素が結合対象であって、結合の結果、どの結合後のパズル要素になったのかを、直感的にユーザに認識させることができる。
(項目15) (項目1)から(項目14)までのいずれか1項目において、コンピュータ(ユーザ端末100)は、ユーザの操作を受け付ける入力部(151)と表示部(152)とを含むタッチスクリーン(15)を備え、ゲームプログラムは、プロセッサに、タッチスクリーンにおける領域の外に、新規のパズル要素を表示するステップ(S103)を実行させ、受け付けるステップにて受け付けるユーザの操作は、表示された新規のパズル要素を選択してずらすためのドラッグ操作であり、決定するステップでは、パズル要素を表示するステップにて新規のパズル要素が表示されたタッチスクリーン上の位置を初期位置とし、ドラッグ操作について現在接触が検知されているタッチスクリーン上の位置を接触位置とするとき、接触位置から初期位置までを結ぶ直線およびその延長線を、第1軌道として決定し、移動させるステップでは、ドラッグ操作に係る接触が検知されなくなったときに、最後に検知された接触位置に基づいて決定された第1軌道にしたがって、新規のパズル要素の移動を開始する(S108でYES、S110)。これにより、ユーザは、盤面の配置を変えるための操作を直感的に行うことができる。
(項目16) (項目15)において、ゲームプログラムは、プロセッサに、受け付けるステップにて受け付けられたドラッグ操作によって選択された新規のパズル要素を特定するステップ(S105)と、ドラッグ操作が受け付けられている間、盤面に配置されているパズル要素のうち、特定された新規のパズル要素と同種のパズル要素を強調表示するステップ(S106)とを実行させる。これにより、ユーザは、盤面の配置を変えるための操作を直感的に行うことができる。
(項目17) (項目15)または(項目16)において、決定するステップは、ドラッグ操作が受け付けられている間、第1軌道を表示する(S107)ことを含む。これにより、ユーザは、盤面の配置を変えるための操作を直感的に行うことができる。
(項目18) (項目1)から(項目17)までのいずれか1項目において、移動させるステップ(S110)は、第1軌道に基づいて新規のパズル要素が移動した軌跡(射出軌跡541)を表示することを含む。これにより、ユーザは、新規のパズル要素が盤面の配置を変えるために移動した軌跡を視認することができる。
(項目19) (項目1)から(項目18)までのいずれか1項目において、変化させるステップは、新規のパズル要素が、盤面に配置される障害物(天井513、中間障害物514)と接触したときに、該新規のパズル要素の移動を停止する(S111でYES、S112)こと、および、新規のパズル要素が、領域の端に到達したときに、到達後の第1軌道(射出軌道537)を、到達前のもの(射出軌道536)から変更することをさらに含む。これにより、ユーザは、新規のパズル要素が盤面の配置を変えるために移動するときの移動態様を直感的に理解することができる。
(項目20) (項目4)から(項目11)までのいずれか1項目において、成績を更新するステップは、除去されたパズル要素の数に応じて獲得された得点を、得点合計(スコア合計517)に加算する(S126)ことを含む。これにより、ゲームの興趣性を向上させるという効果を奏する。
(項目21) (項目20)において、成績を更新するステップは、1度のユーザの操作に基づいて除去された2個目以降のパズル要素について、単体で除去された場合に獲得される得点よりも多く、獲得された得点を決定することを含む。これにより、ゲームの興趣性を向上させるという効果を奏する。
(項目22) (項目4)から(項目11)まで、(項目20)、および、(項目21)のいずれか1項目において、成績を更新するステップは、除去されたパズル要素の数を種類ごとにカウントする(S127)ことを含む。これにより、ゲームの興趣性を向上させるという効果を奏する。
(項目23) (項目4)から(項目11)まで、および、(項目20)から(項目22)までのいずれか1項目において、ゲームプログラムは、プロセッサに、除去するステップにてパズル要素が除去された後の盤面および成績の少なくともいずれか1つが所定の条件を満たしたとき(S154でYES)以降の所定期間において、 パズル要素を新たに盤面に補充するステップ(S155〜S160)を実行させる。これにより、ゲームの興趣性を向上させるという効果を奏する。
(項目24) (項目23)において、ゲームプログラムは、プロセッサに、パズル要素が除去されたことに基づいて、所定の条件の達成進捗を示すゲージ(補充ゲージ581)に値を蓄積するステップ(S153)とを実行させ、補充するステップは、ゲージが値で満たされた場合に(S154でYES)パズル要素の補充を開始する(S155)こと、および、所定期間の終了時点でゲージの値が0になるように、該値を、補充が開始された時点から減らしていく(S158)ことを含む。これにより、ユーザは、パズル要素が補充される期間を直感的に認識することができる。
(項目25) (項目23)において、盤面に配置されているパズル要素の数が所定数未満になった場合にパズル要素の補充を開始することを含む。これにより、ゲームの興趣性を向上させるという効果を奏する。
(項目26) (項目23)から(項目25)までのいずれか1項目において、補充するステップは、ゲームにおいて、盤面におけるパズル要素の配置を変更するためのユーザの操作について入力回数が制限されている場合に、所定期間において、制限を解除する(S156)ことを含む。これにより、ゲームの興趣性を向上させるという効果を奏する。
(項目27) (項目1)から(項目26)までのいずれか1項目において、ゲームプログラムは、プロセッサに、ゲームのクリア条件を設定するステップ(S101)を実行させる。設定されたクリア条件は、表示部に表示される。これにより、ユーザは、実際にパズルゲームのプレイを開始するために、該パズルゲームの目的を確認することができる。
(項目28) (項目27)において、設定するステップは、クリア条件として、盤面におけるパズル要素の配置を変更するためのユーザの操作について入力回数に上限を設定することを含む。これにより、ゲームの興趣性を向上させるという効果を奏する。
(項目29) ゲームプログラムを実行する方法を説明した。本開示のある局面によると、ゲームプログラム(131)は、プロセッサ(10)、メモリ(11)および表示部(152)を備えるコンピュータにより実行される。また、ゲームプログラムに基づくゲームは、パズル要素を配置する領域を含む盤面に複数種類の該パズル要素を配置し、該盤面を表示部に表示し、該盤面におけるパズル要素の配置が変更されることよって同種のパズル要素が所定数以上連続して配置された場合に、該連続して配置されたパズル要素の少なくとも1つを盤面から除去し、除去されたパズル要素に応じて成績を決定することによって進行する。該方法は、プロセッサが、盤面におけるパズル要素の配置を変更するためのユーザの操作を受け付けるステップと、配置の変更を行うために盤面に追加される新規のパズル要素を、該盤面に向けて移動させるときの第1軌道を、ユーザの操作にしたがって決定するステップと、第1軌道にしたがって新規のパズル要素を移動させるステップと、盤面に配置されているパズル要素と、移動中の新規のパズル要素との位置関係に基づいて、該新規のパズル要素の移動態様を変化させるステップとを含む。変化させるステップでは、新規のパズル要素が配置されているパズル要素と接触した場合に、接触後の移動態様を、接触したパズル要素が新規のパズル要素と同種か異種かに応じて決定する。(項目29)に係る方法は、(項目1)に係るゲームプログラムと同様の作用効果を奏する。
(項目30) 情報処理装置(ユーザ端末100)について説明した。本開示のある局面によると、情報処理装置は、ゲームプログラム(131)を記憶する記憶部(120)と、表示部(152)と、ゲームプログラムを実行することにより、情報処理装置の動作を制御する制御部(110)と、を備える。ゲームプログラムに基づくゲームは、パズル要素を配置する領域を含む盤面に複数種類の該パズル要素を配置し、該盤面を表示部に表示し、該盤面におけるパズル要素の配置が変更されることよって同種のパズル要素が所定数以上連続して配置された場合に、該連続して配置されたパズル要素の少なくとも1つを盤面から除去し、除去されたパズル要素に応じて成績を決定することによって進行する。制御部は、盤面におけるパズル要素の配置を変更するためのユーザの操作を受け付け、配置の変更を行うために盤面に追加される新規のパズル要素を、該盤面に向けて移動させるときの第1軌道を、ユーザの操作にしたがって決定し、第1軌道にしたがって新規のパズル要素を移動させ、盤面に配置されているパズル要素と、移動中の新規のパズル要素との位置関係に基づいて、該新規のパズル要素の移動態様を変化させる。なお、制御部は、移動態様を変化させる際、新規のパズル要素が配置されているパズル要素と接触した場合に、接触後の移動態様を、接触したパズル要素が新規のパズル要素と同種か異種かに応じて決定する。(項目30)に係る情報処理装置は、(項目1)に係るゲームプログラムと同様の作用効果を奏する。