〔実施形態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とは異なる入力装置(図示せず)から出力される信号をユーザの入力操作として特定し、受け付ける。
<ゲーム概要>
ゲームシステム1は、一方のコンピュータを操作するユーザと、他方のコンピュータを操作する対戦相手としての相手ユーザとを、前記各コンピュータ間の通信を介して対戦させる通信対戦ゲームを実行するためのシステムである。
本実施形態では、一例として、ゲームシステム1は、ユーザが操作する1以上のキャラクタが属する自チームと、相手ユーザが操作する1以上のキャラクタが属する相手チームとを対戦させる通信対戦野球ゲームを実行するためのシステムである。ゲームシステム1では、ユーザは、コンピュータを用いて、自チームに属するキャラクタを操作する。上述の相手ユーザは、上述の相手チームに属するキャラクタを、上述のコンピュータと通信可能な、別のコンピュータを用いて操作する。ゲームシステム1において実行される通信対戦野球ゲームのゲームプログラムは、ユーザが操作するコンピュータ、および、相手ユーザが操作する別のコンピュータのうち、少なくともいずれか1つにより実行される。
一例として、通信対戦野球ゲームが実行されるゲームシステム1において、サーバ200を介して通信する第1のユーザ端末100と第2のユーザ端末100とによって、それぞれのチームが操作される。そして、通信対戦野球ゲームは、1イニングにつき、表と裏でチームの攻守が入れ替わりつつ進行する。以下では、あるイニングの表または裏において、守備側のチームを操作するユーザ端末100と、攻撃側のユーザ端末100とを互いに区別する必要がある場合、前者を投球側ユーザ端末100A、後者を打撃側ユーザ端末100Bと称する。両者を区別する必要がない場合には、単に、ユーザ端末100と称する。投球側ユーザ端末100Aのユーザを、投球側ユーザ、打撃側ユーザ端末100Bのユーザを、打撃側ユーザと称する。ただし、両ユーザを特に区別する必要がない場合、および、その区別が明らかな場合には、単にユーザと称する。投球側ユーザは、投球側ユーザ端末100Aを用いて、投手キャラクタによる投球を操作し、攻撃側ユーザは、打撃側ユーザ端末100Bを用いて、打者キャラクタによる打撃を操作する。
投球側ユーザ端末100Aは、投球側ユーザから受け付けた投球操作に応じて投球結果を決定し、該投球結果を含むデータ(図1に示す投球結果D1)を生成し、サーバ200に送信する。投球結果D1は、サーバ200を介して、対戦相手の打撃側ユーザ端末100Bに送信される。投球操作とは、投球側ユーザが、投手キャラクタに投球させるために、投球側ユーザ端末100Aの入力部151に対して実施する操作のことである。
打撃側ユーザ端末100Bは、打撃側ユーザから受け付けた打撃操作に応じて打撃結果を決定し、該打撃結果を含むデータ(図1に示す打撃結果D2)を生成し、サーバ200に送信する。打撃結果D2は、サーバ200を介して、対戦相手の投球側ユーザ端末100Aに送信される。打撃操作とは、打撃側ユーザが、打者キャラクタにボールを打撃させるために、打撃側ユーザ端末100Bの入力部151に対して実施する操作のことである。
本実施形態に係る通信対戦野球ゲームにおいて、各ユーザには、対戦の結果に基づいて増減されるレーティングが付与される。ゲームシステム1は、該レーティングに基づいて対戦相手のマッチングを実行する。
本実施形態に係るゲームシステム1に含まれる各装置(ユーザ端末100およびサーバ200)は、上述の通信対戦野球ゲーム(以下、本ゲーム)において、ユーザの対戦プレイを促進するためのイベントを実施する。該イベントを実施するための各装置の各構成については、以下で詳細に説明する。
<各装置のハードウェア構成要素>
プロセッサ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は、プロセッサ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として機能する。制御部210は、実行するゲームの性質に応じて、ユーザ端末100におけるゲームの進行を支援するために、図示しないその他の機能ブロックとしても機能することができる。
対戦支援部211は、各ユーザ端末100が通信対戦ゲームを進行させるのを支援する。具体的には、対戦支援部211は、対戦する各ユーザ端末100と通信して、ユーザ端末100同士のやりとりを仲介する。さらに、対戦支援部211は、対戦相手のマッチング、対戦の進行状況の同期をとるための同期制御などを実行する。
(ユーザ端末100の機能的構成)
制御部110は、記憶部120に格納されたゲームプログラム131を実行することにより、ユーザ端末100を統括的に制御する。例えば、制御部110は、ゲームプログラム131およびユーザの操作にしたがって、ゲームを進行させる。また、制御部110は、ゲームを進行させている間、必要に応じて、サーバ200と通信して、情報の送受信を行う。
制御部110は、ゲームプログラム131の記述に応じて、操作受付部111、表示制御部112、UI制御部113、アニメーション生成部114、および、対戦進行部115として機能する。制御部110は、実行するゲームの性質に応じて、ゲームを進行させるために、図示しないその他の機能ブロックとしても機能することができる。
操作受付部111は、入力部151に対するユーザの入力操作を検知し受け付ける。操作受付部111は、タッチスクリーン15およびその他の入出力IF14を介したコンソールに対してユーザが及ぼした作用から、いかなる入力操作がなされたかを判別し、その結果を制御部110の各要素に出力する。
例えば、操作受付部111は、入力部151に対する入力操作を受け付け、該入力操作の入力位置の座標を検出し、該入力操作の種類を特定する。操作受付部111は、入力操作の種類として、例えばタッチ操作、スライド操作、スワイプ操作、およびタップ操作等を特定する。また、操作受付部111は、連続して検知されていた入力が途切れると、タッチスクリーン15から接触入力が解除されたことを検知する。
UI制御部113は、UIを構築するために表示部152に表示させるUIオブジェクトを制御する。UIオブジェクトは、ユーザが、ゲームの進行上必要な入力をユーザ端末100に対して行うためのツール、または、ゲームの進行中に出力される情報をユーザ端末100から得るためのツールである。UIオブジェクトは、これには限定されないが、例えば、アイコン、ボタン、リスト、メニュー画面などである。
また、対戦進行中、とりわけ、投球操作、または、打撃操作を支援するためのUIオブジェクトの表示態様を制御する。打撃操作を支援するUIオブジェクトとしては、例えば、打撃の良好なタイミングを示すタイミングヒントオブジェクト、投手キャラクタから投げられたボール、投球の進行方向の変化を示す方向ヒントオブジェクト、投球の到達予定位置を示す位置ヒントオブジェクト、および、バットとボールとの当たりを判定するためのミートカーソル等がある。投球操作を支援するUIオブジェクトとしては、例えば、球種選択オブジェクト、コース提示オブジェクト、コース選択オブジェクト、および、投球タイミングオブジェクト等がある。
アニメーション生成部114は、各種オブジェクトの制御態様に基づいて、各種オブジェクトのモーションを示すアニメーションを生成する。例えば、投手キャラクタの投球動作のアニメーション、打者キャラクタの打撃動作のアニメーション、該打者キャラクタが振るバットのアニメーション、投手キャラクタによって投げられたボールのアニメーション、打者キャラクタによって打たれたボールのアニメーション、走者キャラクタが盗塁するアニメーション等を生成してもよい。
表示制御部112は、タッチスクリーン15の表示部152に対して、上述の各要素にて実行された処理結果が反映されたゲーム画面を出力する。表示制御部112は、アニメーション生成部114によって生成されたアニメーションを含むゲーム画面を表示部152に表示してもよい。また、表示制御部112は、上述のUIオブジェクトを、該ゲーム画面に重畳して描画してもよい。
対戦進行部115は、サーバ200との間でデータの送受信を行って、相手ユーザとの対戦を進行させる。また、対戦進行部115は、UI制御部113およびアニメーション生成部114と連携して、ユーザが通信対戦野球ゲームをプレイするために必要な上述の各種UIを提供する。各種UIは、例えば、対戦進行部115が、UI制御部113に、UIオブジェクトを含むゲーム画面を生成させること、および、表示制御部112が、該ゲーム画面を表示部152に表示させることにより実現される。また、対戦進行部115は、サーバ200と連携して、通信対戦野球ゲームにおいて、定期的にまたは不定期に開催されるイベントを実行する。イベントの内容については後に詳述する。
なお、図2に示すサーバ200およびユーザ端末100の機能は一例にすぎない。サーバ200は、ユーザ端末100が備える機能の少なくとも一部を備えていてもよい。また、ユーザ端末100は、サーバ200が備える機能の少なくとも一部を備えていてもよい。さらに、ユーザ端末100およびサーバ200以外の他の装置をゲームシステム1の構成要素とし、該他の装置にゲームシステム1における処理の一部を実行させてもよい。すなわち、本実施形態においてゲームプログラムを実行するコンピュータは、ユーザ端末100、サーバ200、および他の装置の何れであってもよいし、これらの複数の装置の組み合わせにより実現されてもよい。
<マッチングについて>
本実施形態では、対戦相手のマッチングは、ユーザに付与されているレーティング(評価値)に基づいて、サーバ200の対戦支援部211によって実行される。
レーティングとは、対戦におけるユーザの強さを表す指標である。レーティングは、所定の演算式に基づき、ユーザ同士の対戦の結果(具体的には、勝敗)と、各ユーザの対戦前のレーティングの差分とに基づいて更新される。
レーティングの算出および更新の処理は、サーバ200の対戦支援部211が実行してもよいし、ユーザ端末100(クライアント、コンピュータ)の対戦進行部115が実行してもよい。いずれにしても、ユーザに付与されている最新のレーティングは、サーバ200とユーザ端末100との間で共有されている。
以下では、一例として、ユーザに付与されているレーティングの更新は、サーバ200によって行われるものとして説明する。
対戦支援部211は、対戦相手をマッチングするために参照するレーティングをユーザごとに管理する。対戦支援部211は、例えば、マッチングにより対戦をプレイしたユーザ同士について、対戦前の各ユーザのレーティングの差分値と、対戦の勝敗とに基づいて、対戦後の各ユーザのレーティングを更新する。
対戦支援部211は、例えば、初期値として値「1500」を各ユーザに設定する。ユーザXとユーザYとが対戦し、ユーザXが勝利し、ユーザYが敗北した場合に、以下の式1および式2に従って、対戦後のレーティングが更新される。
〔式1〕 対戦後の勝利側のユーザ(ユーザX)のレーティング = 勝利側のユーザ(ユーザX)の対戦前のレーティング + 32 + (敗北した側(ユーザY)のレーティング − 勝利した側(ユーザX)のレーティング)×0.04
〔式2〕 対戦後の敗北側のユーザ(ユーザY)のレーティング = 敗北側のユーザ(ユーザY)の対戦前のレーティング − 32 + (敗北した側(ユーザY)のレーティング − 勝利した側(ユーザX)のレーティング)×0.04
対戦前後において変動するレーティングに幅(上限値および下限値)を設けてもよい。例えば、変動するレーティングの幅として、最大値「64」、最小値「4」などと設定してもよい。対戦するユーザ間のレーティングの差が過度に大きい場合、式1または式2に従ってレーティングを計算すると、レーティングが高い方のユーザが、勝利したにもかかわらずレーティングが減少し、勝利したユーザが納得できないという事態が生じ得る。そこで、対戦前のレーティングから変動する幅に最大値および最小値を設定することで、そのような事態を回避し、ユーザの納得感を向上させることができる。
上述のとおり、本実施形態では、対戦相手を探索するために、ユーザのレーティングが参照される。そのため、ユーザは、自身のレーティングを上げれば上げるほど、レーティングの高い、すなわち、強い相手と戦いやすくなる。本実施形態によれば、この仕組みを利用することにより、対戦をプレイすることのユーザの動機付けを維持できる。さらには、強い相手と対戦することの動機付けを強化できる。
<イベントについて>
本実施形態に係るゲームシステム1に含まれるサーバ200およびユーザ端末100は、本ゲームにおいて、常設のゲーム要素として、対戦(一例として、野球の試合)を、ユーザのチームと他のユーザのチームとで実施する対戦要素を提供する。そして、ゲームシステム1は、常設のゲームモードとは別に、あるいは、常設のゲームモードに組み込む形で、ユーザに対戦を継続してプレイしてもらうためのイベントを実施する。
本実施形態では、ユーザに、継続して対戦をプレイすることを動機付け、なおかつ、自分より強い相手との対戦を促進するためのイベントを実施する。該イベントには、開催期間が定められていてもよい。すなわち、イベントには、該イベントが終了する所定期限が定められていてもよい。イベントは、定期的にまたは不定期で何度開催されてもよい。
本実施形態において、本ゲーム内で開催されるイベントを、ステージ制覇イベントと称する。ステージ制覇イベントとは、予め定められた所定期限までに、ゲームシステム1を利用して本ゲームをプレイする他のユーザと対戦を行い、行った対戦の結果に応じてポイントを集め、集まったポイントに応じた報酬を獲得するイベントである。さらに、ステージ制覇イベントでは、複数のステージからなるマップが提示され、ユーザは、特定のステージを指定して対戦を行う。対戦結果に応じてユーザに付与されるポイントは、指定したステージに関連付けられ、ステージごとに集計される。ステージ制覇イベントでは、ステージのポイント累計が目標値に達したことでステージをクリアすることができる。本実施形態では、ポイント累計の目標値は複数階級で設定されていてもよい。目標値が高いほど難易度が高い目標ということになり、ステージのポイント累計が該ステージに設定されている最高階級の目標値に到達するとステージクリアとなる。また、マップに提示されたすべてのステージにおいて、各ステージのポイント累計が特定の階級の目標値をクリアすると、そのようにポイントを集めたユーザは、該特定の階級にて全ステージを制覇したとみなされ、該ユーザにつき、例えば、「○○階級ステージ制覇」の成績が記録される。上述の所定期限までに、マップに提示されたすべてのステージを最も高い階級の目標値にて制覇すれば、最終階級ステージ制覇となり、これが、ステージ制覇イベントの最終目標となる。
本実施形態では、マップにて、選択可能なステージに加えて、選択不可能なステージが、選択可能なステージとは異なる表示態様にて選択できない状態で提示される。選択不可能なステージは、所定の条件が満足された場合に、選択可能な状態に遷移する。ステージの状態が選択可能な状態に遷移したときに、表示態様が更新され、選択可能にマップ上に提示される。一例として、各ステージは、所定期限内に、順次選択可能な状態に遷移する。より具体的には、ステージ制覇イベントが開催されてから、例えば1日ごとに、ステージが1つずつ解放される。「ステージが解放される」とは、ステージが、選択不可能な状態から選択可能な状態に遷移することを意味する。具体的には、ステージをユーザが指定可能となり、該ステージにつきポイントを集めることができるようになることを意味する。
これにより、ユーザは、将来の展開を予測したり、楽しみにしたりしながら、現時点でプレイできるステージでの対戦を堪能することができる。すべてのステージが初めから一気に解放される形態では、やるべきことが多すぎると感じたり、最終目標が果てしなく遠く感じたりして、ユーザが辟易する可能性がある。ステージを1ステージずつ解放することにより、先々に楽しみを持たせて、ユーザの意欲を損なうことなく、ユーザに継続してプレイさせることが可能となる。
本実施形態では、選択可能な状態に遷移したステージは、該状態を所定期限まで維持する。具体的には、ステージ制覇イベントが開催されてから所定期限内であれば、一度解放されたステージはロックされることなく、いつでも指定することが可能であり、1つのステージでのポイント集めを一旦中断し、別のステージに移っても、再び中断していたステージに戻って、中断直前の時点のポイント累計からポイント集めを再開することが可能である。
これにより、ユーザは、解放された範囲で任意のステージで、好きな手順、ポイント集めに興じることができる。例えば、ユーザは、解放されているすべてのステージで、第1階級の目標値に到達することを目指して対戦をプレイすることもできるし、1つのステージで最高階級の目標値に到達することを目指して対戦をプレイすることもできる。すなわち、最終目標に到達するまでのプロセスが1本道で提示されていないので、ゲームの進め方を多様化させることができる。これにより、ユーザは、行き詰ることなく意欲を持ってプレイを継続することが可能となる。
本実施形態では、1つのステージにつき、ポイント累計が上述の複数の階級の目標値を達成するたびに、その階級に応じた報酬がユーザに付与される。また、所定期限までにすべてのステージで達成されている目標値の階級のうち、最高位の階級に相当する報酬が、該ステージ制覇イベントの終了後にユーザに付与される。
1つのステージでの1つの対戦につき、ユーザは、該ステージでのポイントを獲得できる。本実施形態では、一例として、該対戦で負かした相手ユーザのレーティングがそのまま、獲得されるポイントとなる。本実施形態では、相手ユーザに負けた場合もポイントが加算されてもよい。ただし、負けた時に獲得されるポイントは、勝利時に獲得できるはずのポイントと比較して少ないことが好ましい。一例として、敗北時の獲得ポイントは、勝利時に比べて大幅に少ないことが好ましく、例えば、勝利時の1/10程度である。
本実施形態では、ユーザ本人のレーティングが、対戦相手のユーザのレーティングより高いか低いかに拘わらず、対戦に勝利すれば、相手ユーザのレーティング分のポイントが獲得される。しかし、これに限らず、レーティングが高いか低いかに応じて、獲得されるポイントに補正がかけられてもよい。
例えば、相手ユーザのレーティングがユーザのレーティングよりも高い場合に、該ユーザに獲得させるポイントを、相手ユーザのレーティングがユーザのレーティング以下の場合に獲得させるポイントよりも多くなるようにポイントが決定されてもよい。
このように、ステージ制覇イベントでは、よりレーティングの高い対戦相手に勝利することが、所定期限内により多くのポイントを獲得するためのカギとなる。
一般に、レーティングに基づき対戦相手がマッチングされるような対戦ゲームにおいては、レーティングが高い相手との対戦は、勝利しにくいため敬遠される。とりわけ、勝利数または連勝数などの記録を重視するユーザにとっては、レーティングが高い相手との対戦は、メリットが少ない。従来の対戦ゲームでは、ユーザがプレイを重ねるにつれて、レーティングが一定の高さに到達すると、実力が拮抗する、ある程度高いレーティングの相手とばかりマッチングされることになる。そして、ユーザは、強い相手とばかり対戦することにメリットを感じなくなり、次第に、プレイへの動機付けが損なわれるという問題があった。
しかし、本実施形態に係る上述のイベントのように、レーティングが高い相手と対戦することにメリットがある仕組みを構築すれば、強い相手と対戦するようにユーザを促すことができる。結果として、本ゲームを継続的にプレイすることをユーザに動機付けることが可能となる。
ユーザへのポイントの付与は、一例として、ポイントの量を示す数値情報を、ユーザ識別情報に対応付けて、ゲームシステム1に含まれる少なくともいずれかのメモリに記憶させ、該数値情報を、獲得されたポイントに応じて加算していくことにより実現される。
<データ構造>
図3は、ユーザデータのデータ構造の一例を示す図である。ユーザデータは、通信対戦で参照されるユーザに係る情報を管理するためのデータであり、ユーザごとに作成される。ユーザデータは、記憶部120において、ユーザ情報133として格納されている。ユーザ情報133は、サーバ200の記憶部220にも格納されていてもよい。
ユーザデータは、複数の項目を含む。一例として、少なくとも、ユーザ名およびレーティングの各項目を含む。
「ユーザ名」は、ユーザの名称を示す。ユーザ名は、相手ユーザなどがユーザを識別するために利用する。さらに、ユーザデータは、ゲームシステム1の各装置がユーザを識別するための「ユーザID」を含んでいてもよい。「レーティング」は、ユーザに設定されているレーティングを示す。
ユーザデータは、さらに、自チームが拠点とする地区、自チームの名称、自チームのエンブレム、自チームの成績(例えば、打率、防御率など)、または、自チームのスターティングメンバーのオーダーなどを含んでいてもよい。
図4は、成績データのデータ構造の一例を示す図である。成績データは、ステージ制覇イベントにおけるユーザの成績を管理するためのデータである。ユーザ端末100の対戦進行部115は、1度のステージ制覇イベントにつき、該ユーザ端末100のユーザの成績データを作成する。成績データは、記憶部120において、ゲーム情報132として格納されている。同じゲーム情報132が、サーバ200の記憶部220にも格納されていてもよい。記憶部220においては、ユーザの識別情報と関連付けて、ユーザごとに成績データが格納される。
成績データは、一例としてテーブルであり、ステージごとに、ステージ名を格納するカラムと、ポイント累計を格納するカラムと、クリア階級を格納するカラムとを有する構成である。ステージ名は、マップに含まれるすべてのステージを一意に識別するための識別情報である。ポイント累計は、そのステージが指定されているときにユーザによってプレイされた対戦に応じて、該ステージに関連付けて付与されたポイントの累計を示す。クリア階級は、そのステージのポイント累計が到達している目標値のうち最も高い目標値に対応する階級を示す。本実施形態では、ポイント累計の目標値には、階級が対応付けられており、各階級には該階級を象徴する色が関連付けられている。本実施形態では、ステージのクリア階級は、後述の図6に示されるマップ画面600において、各ステージの領域の色で表現される。
本実施形態では、一例として、1番低い目標値(例えば、1500ポイント)に第1階級が対応付けられ、該階級にはグリーンの色が関連付けられている。以下では、第1階級をグリーン階級と称する。2番目に低い目標値(例えば、3000ポイント)に第2階級が対応付けられ、該階級にはブロンズの色が関連付けられている。以下では、第2階級をブロンズ階級と称する。真ん中の目標値(例えば、4500ポイント)に第3階級が対応付けられ、該階級にはシルバーの色が関連付けられている。以下では、第3階級をシルバー階級と称する。2番目に高い目標値(例えば、6500ポイント)に第4階級が対応付けられ、該階級にはゴールドの色が関連付けられている。以下では、第4階級をゴールド階級と称する。最後に、1番高い目標値(例えば、9000ポイント)に第5階級が対応付けられ、該階級にはレインボーの色が関連付けられている。以下では、第5階級をレインボー階級と称する。上述の例に限らず、階級および目標値は、ゲームバランスなどを考慮して、任意に設定される。
対戦進行部115は、ユーザが、ステージを指定した状態で対戦をプレイすると、対戦の結果および対戦相手のレーティングに基づいて、該対戦について付与するポイントを決定する。対戦進行部115は、決定したポイントを、そのステージのポイント累計に加算して、加算後の最新のポイント累計を、そのステージのポイント累計のカラムに格納する。こうして、ポイント累計は、対戦がプレイされる度に更新される。対戦進行部115は、更新されたポイント累計が、次の階級の目標値に到達した場合、クリア階級を1つ上の階級に更新する。
本実施形態では、イベントの開始時点からすべてのステージがプレイ可能であるとは限らない。現時点で選択不可能な状態のステージについては、ポイント累計およびクリア階級のカラムには値が格納されていない。選択不可能な状態のステージが、所定の条件を満たして選択可能な状態に遷移し、該ステージが選択された上で対戦がプレイされれば、ポイント累計のカラムに値が格納される。また、該ステージにおいて、ポイント累計が最初の目標値(例えば、1500ポイント)に到達してグリーン階級がクリアされた場合に、クリア階級のカラムに値が格納される。
本実施形態では、成績データは、図4に示すテーブルに加えて、「制覇最高記録」を含んでいてもよい。制覇最高記録は、全ステージ制覇を達成した階級のうち、最高の階級を示す。例えば、ユーザが、すべてのステージにおいてグリーン階級以上をクリアした場合、対戦進行部115は、「グリーン階級制覇」の値を示す制覇最高記録を、成績データの一部として記憶部120に格納する。
<画面例>
図5〜図9に、ユーザ端末100の表示部152に表示されるゲーム画面の一具体例を示す。各ゲーム画面は、UI制御部113が生成するUI部品、アニメーション生成部114が生成するアニメーション、または、これらを組み合わせによって構成される。UI制御部113またはアニメーション生成部114によって生成されたゲーム画面は、表示制御部112によって、ユーザ端末100の表示部152に表示される。表示制御部112、UI制御部113およびアニメーション生成部114は、対戦進行部115の制御下で、ゲーム画面を表示部152に表示するための処理を実行する。よって、「対戦進行部115が、ゲーム画面を表示部152に表示する」という記載は、「対戦進行部115が、UI制御部113またはアニメーション生成部114を制御して、UI部品またはアニメーションを生成させ、表示制御部112を制御して、生成されたUI部品またはアニメーションを含むゲーム画面を表示部152に表示させる」ことを意味する。
図5は、表示部152に表示されるマップ画面の一具体例を示す図である。図5に示すとおり、マップ画面600は、少なくとも、複数のステージ(セグメント)を含むマップを表示するためのマップUI601を含む。対戦進行部115は、マップUI601を少なくとも1つのステージを選択可能に表示部152に表示する。マップは、一例として、架空または実在の島々を含む地図であってもよく、1つステージは、1つの島、または、1つの島を構成する複数のエリアの1つに対応していてもよい。マップ画面600において、マップUI601は、各ステージをユーザが選択できるように、マップの一部を拡大表示できてもよいし、一覧性を高めるために、マップに含まれる全ステージを広域表示できてもよい。
本実施形態では、対戦進行部115は、マップに含まれる全ステージのうちの少なくとも1つを選択可能にマップUI601に表示する。対戦進行部115は、選択可能なステージと共に、選択不可能なステージを、選択可能なステージとは異なる表示態様にてマップUI601に表示してもよい。そして、対戦進行部115は、選択不可能なステージについて、所定の条件が満足されたときに、ステージを選択不可能な状態から選択可能な状態に遷移させる。併せて、対戦進行部115は、状態を遷移させたステージの表示態様を選択可能な表示態様に変更し、該ステージを選択可能にマップUI601に表示する。一例として、対戦進行部115は、イベントが終了する所定期限までに、マップに含まれるすべてのステージを順次、ユーザが指定できるように解放する。
本実施形態では、対戦進行部115は、一度解放されたステージについて、ユーザが任意に選択可能な状態を所定期限まで維持する。つまり、ユーザは、マップUI601において、解放後のステージについては、イベントの開催期間中、任意に選択することができる。本実施形態では、ポイント累計がステージごとに記録されていることにより、ユーザがステージを変更したとしても、変更前のステージにおけるポイント累計は、消滅せずに記憶される。これにより、ユーザは、プレイしたいステージを自由に指定することができ、自分が好む手順で、最終目標(最終階級ステージ制覇)を目指して通信対戦ゲームをプレイすることができる。具体的には、ユーザは、自分自身で目標を設定することができる。例えば、ユーザは、専ら、あるステージのポイントを集中的に貯めていくことを目標としてプレイすることができる。あるいは、ユーザは、すべてのステージで、まず、難易度が最も低いグリーン階級の目標値を達成することを目標としてプレイすることもできる。さらに、ユーザは、所望のタイミングで目標を変更することも可能である。例えば、同じステージで対戦を続けることに飽きてきた場合には、いつでも好きな時に別のステージを指定することができるので、ユーザが行き詰り感を覚えることはない。こうして、ユーザは、自由にプレイ方針を転換して、プレイを楽しみ続けることができる。
さらに、マップUI601では、ステージのステータスを示すステータス情報が、ステージごとに可視化される。ステータス情報は、例えば、ステージ名と、該ステージの現在のポイント累計と、該ポイント累計がどの階級の目標値に到達しているのかを示す進捗情報と、ステージの状態を示す状態情報とを含んでいてもよい。
本実施形態では、一例として、ステージ名は、名前アイコン602として提示される。ポイント累計は、累計アイコン603として提示される。状態情報は、状態アイコン604〜606として提示される。ステージの状態としては、例えば、最高位の階級の目標値が達成されている「ステージクリア」の状態、対戦をプレイするステージとしてユーザによって指定されている「挑戦中」の状態、および、ユーザが対戦をプレイするステージとして指定できない「ロック」の状態(選択不可能な状態)が想定される。状態アイコン604は、ステージが「ステージクリア」の状態であることを、状態アイコン605は、ステージが「挑戦中」の状態であることを、そして、状態アイコン606は、ステージが「ロック」の状態であることをそれぞれ示している。
本実施形態では、マップUI601において、対戦進行部115は、各ステージを、ポイント累計に応じた表示態様にて表示する。つまり、各ステージの進捗情報は、ステージのマップUI601における表示態様によって提示される。例えば、図5に示すとおり、ポイント累計に応じて、より具体的には、クリアされた階級に応じて、ステージの色またはテクスチャを異ならせることが好ましい。本実施形態では、ポイント累計の目標値には、階級が対応付けられ、その階級ごとに色またはテクスチャが設定されている。マップUI601では、ステージのポイント累計が到達している目標値の階級に対応する色またはテクスチャにて、該ステージが表示される。例えば、図4に示す例では、1stステージのポイント累計は、最高難易度のレインボー階級の目標値に到達している。そのため、1stステージの領域は、該階級に対応するレインボーの色で表示される。これによりユーザは、一目で、そのステージでのポイント集めの進捗状況を把握することができる。
ステージのステータス情報は、各ステージのポイント累計について設定されている複数階級の目標値をさらに含んでいてもよい。本実施形態では、ポイント累計についての複数階級の目標値は、各ステージで共通に設定されている。そこで、対戦進行部115は、各ステージに共通に設定された階級ごとの目標値と、各階級に対応する色の情報とをユーザに提示するための目標値UI608をマップ画面600に配置してもよい。
上述のとおり、ポイント累計についての目標値は、複数階級に分けて提示されることが好ましい。長期的に取り組む大目標(全ステージで最高階級を達成すること)だけが提示されると、ユーザは、その道のりの遠さ、具体的には、取り組む対象の数の多さにやる気を失うおそれがある。しかし、短期的なより取り組みやすい小目標(まずは、1つのステージにつき、第1階級、第2階級、・・・)が提示されることで、ユーザのプレイへの動機付けが維持されるという効果が得られる。
さらに、本実施形態では、マップ画面600は、全ステージ単位での報酬一覧ボタン609を含んでいてもよい。報酬一覧ボタン609がタップ操作などによってユーザに選択されると、対戦進行部115は、全ステージに係る、後述する報酬一覧画面(図9に示す、第2報酬画面950)を表示部152に表示させる。報酬一覧とは、一例として、目標と、該目標が達成されたときにユーザに付与される報酬とを対応付けたテーブルである。報酬一覧の詳細は後述する。これにより、ユーザは、目標が達成されたときに得られる報酬を事前に確認することができる。結果として、目標を達成しようとする動機付けをより一層強化することができる。
ここで「報酬をユーザに付与する」とは、一例として、本ゲームで所定の作用効果を及ぼすアイテムなどのデジタルコンテンツを、ユーザのユーザ端末100において利用可能な状態に遷移させることを意味する。具体的には、ユーザ端末100またはサーバ200は、該デジタルコンテンツを、記憶部120または記憶部220において、ユーザと紐付けて格納したり、該デジタルコンテンツの利用可能フラグを立てたりすることにより、該ユーザに報酬を付与する。
以上のとおり、対戦進行部115と連携してUI制御部113が生成したマップが表示部152に表示されることによって、ステージ選択機能、目標提示機能および進捗提示機能を有したUIが実現される。ステージ選択機能とは、ユーザが所望のステージを任意に選択することを可能にする機能である。目標提示機能とは、対戦の目標を一方通行ではなく多面的に自由度高くユーザに提示する機能である。進捗提示機能とは、目標の達成進捗をユーザに提示する機能である。上述したとおり、いずれの機能も、ゲームをプレイすることに対するユーザの動機付けを維持または強化することに貢献するものである。
図6は、表示部152に表示されるステージ画面の一具体例を示す図である。図6に示すステージ画面700(セグメント画面)は、図5に示すマップ画面600に含まれるステージが指定された後、該ステージのステータス情報をより詳細にユーザに提供するために、対戦進行部115の制御下で表示制御部112によって表示部152に表示される。
ステージ画面700は、マップ画面600において指定されたステージのステータス情報をより詳細に提示する。例えば、ステージ画面700は、ステータス情報を提示するUIとして、少なくとも、該ステージのポイント累計について設定されている複数階級の目標値701と、該ステージにつきユーザに獲得させたポイント累計702とを含む。これにより、ユーザは、このステージのポイント累計と、該ポイント累計の目標値に対する到達状況を確認することができる。なお、ポイント累計は、目標値701と併せて、ゲージ703によって提示されてもよい。これにより、進捗情報がユーザにとってより一層分かりやすく提示される。さらに、ステージ画面700は、直近の階級の目標値まであと何ポイント貯めればよいのかを示す情報704を含んでいてもよい。これにより、目下の目標がユーザにとってより一層分かりやすく提示される。結果として、ユーザは、目標達成までのプロセスを楽しみながら、対戦をプレイすることができる。
さらにステージ画面700は、好ましくは、報酬アイコン706を含んでいる。報酬アイコン706は、累計ポイントが、目下の目標、すなわち、直近の階級の目標値(図示の例ではゴールド階級の6500ポイント)に到達した場合に、ユーザが獲得できる報酬をイラストで示したものである。これにより、ユーザは、このステージで次に獲得できる報酬が何かをすぐに把握することができる。結果として、ユーザの対戦をプレイする意欲を高め、ユーザの動機付けをより一層強化することが可能となる。
さらにステージ画面700は、好ましくは、報酬一覧ボタン707を含んでいる。報酬一覧ボタン707は、ステージにつき、ポイント累計に応じて付与される報酬の一覧を呼び出すためのUIである。例えば、ユーザが、報酬一覧ボタン707をタップすると、対戦進行部115は、1つのステージに係る、後述する報酬一覧画面(図8に示す第1報酬画面900)を表示部152に表示させる。
さらにステージ画面700は、対戦のためのマッチングをサーバ200に対して要求するためのUIとして、対戦指示ボタン705を含んでいてもよい。これにより、ステージ画面700は、ステージについてのステータス情報を詳細にユーザに提供する機能に加えて、対戦を開始する操作を行うためのUIをユーザに提供する機能を兼ね備える。
図7は、サーバ200にてマッチングが成立した後、対戦開始の直前に、ユーザ端末100の表示部152に表示されるマッチング成立画面の一具体例を示す図である。マッチング成立画面800は、マッチングが成立した旨の結果をユーザに通知するとともに、その対戦相手の情報を対戦開始前にユーザに提供するためのゲーム画面である。
マッチング成立画面800は、一例として、ユーザ本人のユーザ名801、対戦相手のユーザ名802、ユーザ本人のレーティング803、および、対戦相手のレーティング804を含んでいる。加えて、マッチング成立画面800は、連勝中のユーザについて、その連勝数を示すための連勝数アイコン805を含んでいてもよい。これにより、ユーザは、対戦の開始前に、自身の情報と比較しながら、対戦相手の情報を確認することができる。さらに、マッチング成立画面800は、この対戦で指定されているステージのステージ名806を含んでいてもよい。
図8は、表示部152に表示される第1報酬画面の一具体例を示す図である。第1報酬画面900は、1つのステージにつきユーザが獲得できる報酬を一覧表示する画面であり、ステージ画面700における報酬一覧ボタン707がユーザによって操作されたときに、表示部152に表示される。
本実施形態では、一例として、ステージのポイント累計が各階級の目標値に到達したときに、その階級に応じたステージ報酬がユーザに付与される。したがって、第1報酬画面900は、目標値が設定されている階級(第1階級「グリーン」〜第5階級「レインボー」)に関連付けて、ポイント累計がその階級の目標値に到達したときに、ユーザに付与されるステージ報酬を表示する。対戦進行部115は、ステージのポイント累計が特定の階級の目標値に到達する度に、該階級に応じたステージ報酬をユーザに付与してもよい。
図9は、表示部152に表示される第2報酬画面の一具体例を示す図である。第2報酬画面950は、マップ上のすべてのステージにおいて特定の階級の目標値を達成した場合にユーザが獲得できる報酬を一覧表示する画面であり、マップ画面600における報酬一覧ボタン609がユーザによって操作されたときに、表示部152に表示される。
本実施形態では、一例として、対戦進行部115は、ユーザのイベント期間中の成績として、全ステージ制覇した目標値の、現時点での最高の階級(以下、制覇最高記録)を管理し、記憶部120に格納する。例えば、ユーザが、すべてのステージにおいて、ポイント累計1500ポイント以上を達成している場合、対戦進行部115は、該ユーザの制覇最高記録を「グリーン階級制覇」と決定する。このユーザが、あるステージで、例えば、3000ポイント(ブロンズ階級)をクリアしていたとしても、他のステージのどれか1つでも、累計ポイントが3000ポイントに達していなければ、つまり、ブロンズ階級がクリアされていなければ、対戦進行部115は、該ユーザの制覇最高記録を「グリーン階級制覇」と決定する。
本実施形態では、ユーザには、制覇最高記録として記録された階級に対応する制覇報酬が付与される。一例として、対戦進行部115は、ステージ制覇イベントが終了する所定期限において、記憶部120に格納されている制覇最高記録を、該ユーザの成績として確定させる。そして、対戦進行部115は、確定させた制覇最高記録が示す階級に対応する制覇報酬をユーザに付与する。本実施形態では、ユーザの成績よりも下の階級に対応する制覇報酬を該ユーザに重複して付与しない。例えば、ユーザが、グリーン階級とブロンズ階級とシルバー階級とを制覇した場合、対戦進行部115は、この中で最高階級であるシルバー階級に対応する制覇報酬だけを該ユーザに付与する。対戦進行部115は、制覇報酬を、ステージ制覇イベントが終了した時点(所定期限)以降の任意のタイミングでユーザに付与する。
なお、本実施形態では、一例として、上述のステージ報酬および制覇報酬は、ゲーム内で所定の作用効果を及ぼすゲーム内価値としてのデジタルコンテンツであればよく、その内容は特に限定されない。
第2報酬画面950において、階級を制覇した場合に付与される制覇報酬が一覧表示される。図9に示す例では、ユーザの現在の制覇最高記録は、「ゴールド階級制覇」である。そのため、ゴールド階級よりも下の階級に対応する制覇報酬が該ユーザに付与されることはない。そのため、現在の制覇最高記録が示す階級よりも下の階級の制覇報酬951〜953は、目立たないように表示態様を他と異ならせることが好ましい。例えば、対戦進行部115は、制覇報酬951〜953を、非表示にしたり、薄く表示したり、バツマークを付加したり、グレーアウトさせたりしてもよい。
現在の制覇最高記録が示す階級の制覇報酬954は、この状態でイベントが終了した場合に、ユーザに付与される予定の制覇報酬である。そのため、制覇報酬954は、最も目立つように表示態様を他と異ならせることが好ましい。例えば、対戦進行部115は、制覇報酬954の外枠を強調表示してもよい。例えば、対戦進行部115は、制覇報酬954に、現時点で付与される予定の制覇報酬であることを示すアイコン955を付加してもよい。
制覇報酬956は、今後の状況次第で、将来ユーザに付与される可能性がある報酬である。図示の例では、ユーザが、所定期限までに、すべてのステージにおいてレインボー階級の目標値をクリアして、「レインボー階級制覇」の成績を収めた場合に、制覇報酬956が付与される。現在の制覇最高記録が示す階級よりも上の階級の制覇報酬956は、制覇報酬951〜953よりも目立つような表示態様にて表示されることが好ましい。制覇報酬956には、その階級のクリア状況を示すゲージ957が含まれていることがより好ましい。ゲージ957は、すべてのステージのうち、いくつのステージにおいて、その階級がクリアされているのかを示すUIである。図示の例では、ゲージの値は、「3/9」を示している。具体的には、ゲージ957は、全9ステージの内、ユーザが、レインボー階級をクリアした(ポイント累計が9000ポイントに到達した)ステージが3つあることを示している。これにより、ユーザは、残り6つのステージにてレインボー階級をクリアすれば、「レインボー階級制覇」、すなわち、「最終階級ステージ制覇」の成績を収めることができるということを理解することができる。
<処理フロー>
図10は、ユーザ端末100が、ゲームプログラム131に基づいて実行する処理の流れを示すフローチャートである。ステップS1の処理は、ユーザ端末100の操作受付部111が、ステージ制覇イベントのマップの表示を指示するユーザの操作を受け付けることにより開始される。
概して、上述のゲームプログラム131は、ユーザ端末100のプロセッサ10に、複数のステージ(セグメント)を含むマップを、少なくとも1つのステージを選択可能に表示部152に表示するステップ(後述するS1)と、ステージを選択するためのユーザの操作を受け付けて、選択されたステージに関連付けられた対戦を、対戦相手が操作する他のコンピュータと通信することにより進行させるステップ(後述するS8)と、対戦の結果と、対戦相手の強さとに基づいて、選択されたステージに関連して、ユーザに獲得させるポイント(得点)を決定するステップ(後述するS9)と、決定されたポイントに基づいて、選択されたステージに関連付けられた、ユーザが獲得したポイントの合計を示すポイント累計(得点累計)を更新するステップ(後述するS10)と、を実行させる。上述のマップを表示するステップでは、各ステージを、ポイント累計に応じた表示態様にて表示する(例えば、図5)。
ステップS1にて、対戦進行部115は、マップ画面600(例えば、図5)を表示部152に表示させる。
ステップS2にて、マップUI601におけるステージの領域がユーザによって操作されることにより、操作受付部111が、ステージを指定する入力操作を受け付けた場合、対戦進行部115は、ステップS2のYESからステップS3に進む。
ステップS3にて、対戦進行部115は、指定されたステージの状態を「挑戦中」の状態に遷移させ、ステップS4にて、指定されたステージのステージ画面700(例えば、図6)を表示部152に表示させる。ステージ画面700を介してステージのステータス情報がユーザに対して提示される。例えば、ステップS4では、対戦進行部115は、少なくとも、ユーザに選択されたステージにつき、ユーザにこれまで獲得させたポイント累計と、ポイント累計に関する1または複数の目標値と、をステータス情報として表示する。
ステップS5にて、対戦指示ボタン705がユーザによって操作されることにより、操作受付部111が、対戦開始を指示する入力操作を受け付けた場合、対戦進行部115は、ステップS5のYESからステップS6に進む。
ステップS6にて、対戦進行部115は、マッチング要求をサーバ200に送信する。マッチング要求には、例えば、ユーザ名またはユーザIDなど、ユーザを識別することが可能な情報が少なくとも含まれている。
ステップS7にて、対戦進行部115は、サーバ200から受信したマッチング結果に応じたゲーム画面を表示する。例えば、対戦相手のユーザが見つからなかった旨の通知をサーバ200から受信した場合には、対戦進行部115は、該通知を含むゲーム画面を表示部152に表示させる。一方、対戦相手のユーザが見つかった旨の通知とともに対戦相手のユーザデータを受信した場合には、対戦進行部115は、マッチング成立画面800(例えば、図7)を表示部152に表示させる。マッチングが成立した場合、対戦進行部115は、ステップS8に進み、マッチングが成立しなかった場合には、ステップS1に戻る。戻り先は、ステップS1に代えてステップS4としてもよい。
ステップS8にて、対戦進行部115は、サーバ200と通信して対戦相手のユーザとの対戦を進行させる。本実施形態では、一例として、対戦進行部115は、球場を模した仮想空間を定義し、ユーザ本人が編成した自チームのキャラクタ、対戦相手が編成した相手チームのキャラクタ、ボール、バット、および、ミートカーソルなどのオブジェクトとを配置する。対戦進行部115は、サーバ200を介して、対戦相手のユーザ端末100と通信し、ゲーム進行上の同期を一方のユーザ端末100ととりながら、各種オブジェクトの仮想空間上の位置を制御して、野球の試合としての対戦を進行させる。
ステップS9にて、対戦が終了した場合、対戦進行部115は、対戦結果と対戦相手の強さとに応じてポイントを決定する。対戦進行部115は、ユーザが対戦に勝利した場合、対戦で負かした相手ユーザの強さに相当するポイントをユーザに付与する。具体的には、ユーザおよび対戦相手には、強さを示すレーティング(評価値)が付与されており、レーティングは、強いほど大きい値をとるものである。対戦進行部115は、ユーザが対戦相手に勝利した場合に、該対戦相手のレーティングを、ユーザに獲得させるポイントとして決定する。
ステップS10にて、対戦進行部115は、決定したポイントを、ステップS2にて指定されたステージのポイント累計に加算して、該ポイント累計を更新する。
ステップS11にて、対戦進行部115は、更新後のポイント累計が直近の階級の目標値に到達したと判断した場合、ステップS11のYESからステップS12に進む。
ステップS12にて、対戦進行部115は、クリアされた上述の階級に対応付けられたステージ報酬をユーザに付与する。ステージ報酬は、サーバ200から提供されてもよい。なお、更新後のポイント累計が直近の階級の目標値に到達していない場合は、対戦進行部115は、ステップS11のNOからステップS13に進む。つまり、ステップS12は省略される。
ステップS13にて、対戦進行部115は、各種ゲーム画面を必要に応じて更新する。具体的には、ステージ画面700におけるポイント累計702、ゲージ703および情報704、ならびに、マップ画面600における累計アイコン603を更新する。さらに、ポイント累計の更新によって階級が1つ上に上がった場合には、対戦進行部115は、ステージ画面700における報酬アイコン706およびステージの色、ならびに、マップ画面600におけるステージの色を更新する。以上のとおり、対戦がプレイされる度に、上述の一連の処理が繰り返される。
なお、ステップS5でNOの場合、対戦進行部115は、ステップS14に進んでもよい。ステップS14にて、表示部152にステージ画面700が表示されている状態で、操作受付部111がステージ報酬の表示を指示するユーザの入力操作を受け付けた場合、具体的には、報酬一覧ボタン707に対するタッチ操作を受け付けた場合、対戦進行部115は、ステップS14のYESからステップS15に進む。
ステップS15にて、対戦進行部115は、第1報酬画面900(例えば、図8)を表示部152に表示させる。報酬一覧ボタン707に対するタッチ操作がなされない間は、対戦進行部115は、ステップS14のNOからステップS5に戻り、ステージ画面700の表示を継続して、ユーザの入力操作を待機する。
なお、ステップS2でNOの場合、対戦進行部115は、ステップS16に進んでもよい。ステップS16にて、表示部152にマップ画面600が表示されている状態で、操作受付部111が制覇報酬の表示を指示するユーザの入力操作を受け付けた場合、具体的には、報酬一覧ボタン609に対するタッチ操作を受け付けた場合、対戦進行部115は、ステップS16のYESからステップS17に進む。
ステップS17にて、対戦進行部115は、第2報酬画面950(例えば、図9)を表示部152に表示させる。本実施形態では、ポイント累計が到達すべき目標値ごとに階級が設定されている。マップに含まれる複数のステージ(例えば、マップに含まれるすべてのステージ)のそれぞれにおいて、ポイント累計が目標値に到達することにより該目標値に対応する階級が達成される。対戦進行部115は、階級と、該階級が上述の複数のステージのすべてにおいて達成された場合にユーザに付与される報酬と、を少なくとも含む第2報酬画面950を表示部152に表示させる。対戦進行部115は、すべてのステージで達成された階級のうちで一番高い階級と、該階級に対応付けてユーザに付与される制覇報酬とを強調表示することが好ましい。
ステップS16において、報酬一覧ボタン609に対するタッチ操作がなされない間は、対戦進行部115は、ステップS16のNOからステップS2に戻り、マップ画面600の表示を継続して、ユーザの入力操作を待機する。
〔変形例〕
ステップS9において、対戦進行部115は、対戦相手のレーティングがユーザのレーティングよりも高い場合に、該ユーザに獲得させるポイントを、対戦相手のレーティングが該ユーザのレーティング以下の場合に獲得させるポイントよりも多くなるように決定することが好ましい。これにより、ユーザに、レーティングが上の対戦相手との対戦をより強く動機付けることができる。
ステップS9において、対戦進行部115は、ユーザが対戦相手に敗北した場合に、該ユーザに獲得させるポイントを、該ユーザが該対戦相手に勝利した場合に獲得させるポイントよりも少なくなるように決定する、または、ゼロと決定することが好ましい。これにより、ユーザに、対戦に勝利しようとする強い意欲をユーザに芽生えさせることができ、無気力試合を防止して、ゲームの興趣性を高めることが可能となる。
より好ましくは、ユーザが対戦相手に敗北した場合であっても、対戦相手のレーティングに応じてポイントがいくつか付与される。これにより、対戦に勝利することが困難なユーザが、いくら対戦してもポイントを全く獲得することができないという事態を生じさせない。結果として、ユーザの対戦への動機付けが損なわれることを防止することができる。
さらにより好ましくは、ユーザが対戦に敗北した場合に該ユーザに獲得させるポイントは、勝利した場合に獲得させるポイントと比較して非常に少ないことが好ましい。これにより、ゲームバランスが良好に保たれ、対戦に勝利しようとする強い意欲をユーザに芽生えさせつつ、負けが込んでもユーザの対戦への動機付けが損なわれることを防止することができる。例えば、ユーザが対戦に勝利した場合には、対戦進行部115は、対戦相手のレーティングをそのままユーザに獲得させるポイントとして決定し、敗北した場合には、対戦相手のレーティングの10%のみをユーザに獲得させるポイントとして決定してもよい。
〔ソフトウェアによる実現例〕
制御部210の制御ブロック(特に、対戦支援部211)、ならびに、制御部110の制御ブロック(特に、操作受付部111、表示制御部112、UI制御部113、アニメーション生成部114および対戦進行部115)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、制御部210または制御部110、もしくはその両方を備えた情報処理装置は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
〔付記事項〕
本発明の一側面に係る内容を列記すると以下のとおりである。
(項目1) ゲームプログラム(131)について説明した。本開示のある局面によると、ゲームプログラムは、プロセッサ(10)、メモリ(11)、操作部(入力部151など)および表示部(152)を備えるコンピュータ(ユーザ端末100)により実行される。ゲームプログラムは、プロセッサに、複数のセグメント(ステージ、島)を含むマップを、少なくとも1つのセグメントを選択可能に表示部に表示するステップ(S1)と、セグメントを選択するためのユーザの操作を受け付けて、選択されたセグメントに関連付けられた対戦を、対戦相手が操作する他のコンピュータと通信することにより進行させるステップ(S8)と、対戦の結果と、対戦相手の強さとに基づいて、選択されたセグメントに関連して、ユーザに獲得させる得点(ポイント)を決定するステップ(S9)と、決定された得点に基づいて、選択されたセグメントに関連付けられた、ユーザが獲得した得点の合計を示す得点累計(ポイント累計)を更新するステップ(S10)と、を実行させ、マップを表示するステップでは、各セグメントを、得点累計に応じた表示態様にて表示する。これにより、ゲームをプレイすることに対するユーザの動機付けを維持するという効果を奏する。
(項目2) (項目1)において、ユーザおよび対戦相手には、強さを示す評価値(レーティング)が付与されており、該評価値は、強いほど大きい値をとるものであり、得点を決定するステップでは、ユーザが対戦相手に勝利した場合に、該対戦相手の評価値を、ユーザに獲得させる得点として決定してもよい。
(項目3) (項目1)において、得点を決定するステップでは、対戦相手の評価値がユーザの評価値よりも高い場合に、ユーザに獲得させる得点を、対戦相手の評価値がユーザの評価値以下の場合に獲得させる得点よりも多くなるように決定してもよい。
(項目4) (項目1)から(項目3)までのいずれか1項目において、得点を決定するステップでは、ユーザが対戦相手に敗北した場合に、ユーザに獲得させる得点を、ユーザが該対戦相手に勝利した場合に獲得させる得点よりも少なくなるように決定する、または、ゼロと決定してもよい。
(項目5) (項目1)から(項目4)までのいずれか1項目において、ゲームプログラムは、プロセッサに、ユーザに選択されたセグメントにつき、ユーザに獲得させた得点累計と、得点累計に関する1または複数の目標値と、を少なくとも含むセグメント画面(ステージ画面700)を表示部に表示するステップ(S4)を実行させてもよい。
(項目6) (項目5)において、ゲームプログラムは、プロセッサに、ユーザに獲得させた得点累計が、目標値に到達したときに、該目標値に応じた報酬をユーザに付与するステップ(S12)を実行することが好ましい。
(項目7) (項目5)または(項目6)において、得点累計が到達すべき目標値ごとに階級が設定されており、マップに含まれる複数のセグメントのそれぞれにおいて、得点累計が目標値に到達することにより該目標値に対応する階級が達成されるものであり、ゲームプログラムは、プロセッサに、階級と、該階級が複数のセグメントのすべてにおいて達成された場合にユーザに付与される報酬と、を少なくとも含む報酬画面(第2報酬画面950)を表示部に表示するステップ(S17)を実行させてもよい。
(項目8) (項目1)から(項目7)までのいずれか1項目において、マップを表示するステップでは、選択可能なセグメントと共に、選択不可能なセグメントを、選択可能なセグメントとは異なる表示態様にて表示部に表示し、所定の条件が満足されたとき、前記選択不可能なセグメントを選択可能な表示態様にて選択可能に表示してもよい。
(項目9) (項目8)において、マップを表示するステップでは、セグメントの選択可能な状態を所定期限まで維持することが好ましい。
(項目10) ゲームプログラムを実行する方法を説明した。本開示のある局面によると、ゲームプログラムは、プロセッサ、メモリ、操作部および表示部を備えるコンピュータにより実行される。該方法は、プロセッサが(項目1)に記載の各ステップを実行する方法である。(項目10)に係る方法は、(項目1)に係るゲームプログラムと同様の作用効果を奏する。
(項目11) 情報処理装置を説明した。本開示のある局面によると、該情報処理装置は、(項目1)に係るゲームプログラムを記憶する記憶部(120)と、該ゲームプログラムを実行することにより、情報処理装置(ユーザ端末100)の動作を制御する制御部(110)とを備える。(項目11)に係る情報処理装置は、(項目1)に係るゲームプログラムと同様の作用効果を奏する。