特許法第30条第2項適用 ・ウェブサイトのアドレス(A)https://www.youtube.com/watch?v=nfrgYdaz2bQ 掲載日 2018年3月20日(B)https://www.youtube.com/watch?v=yFUw_qPyHLM 掲載日 2018年3月25日(C)https://www.youtube.com/watch?v=4GlyJzHbVQ0 掲載日 2018年3月29日(D)https://www.youtube.com/watch?v=VYMgsLgo0Vs 掲載日 2018年4月10日(E)https://www.youtube.com/watch?v=Fvv5SNm7ZAg 掲載日 2018年4月10日(F)https://www.youtube.com/watch?v=FJBMiBy7DEo 掲載日 2018年4月25日(G)https://www.youtube.com/watch?v=J-_ux30KV78 掲載日 2018年5月21日(H)https://www.youtube.com/watch?v=fFLwpAGTzCY 掲載日 2018年5月23日(I)https://www.youtube.com/watch?v=jKC9UbKa9Wc 掲載日 2018年5月28日(J)https://www.youtube.com/watch?v=2qrJRMH6brE 掲載日 2018年6月19日(K)https://www.youtube.com/watch?v=3NWNXQua0as 掲載日 2018年6月27日(L)https://www.youtube.com/watch?v=qQDWDqUJmak 掲載日 2018年6月27日(M)https://www.youtube.com/watch?v=nJrFkvO0gjg 掲載日 2018年7月10日(N)https://www.youtube.com/watch?v=e2DxFViJIwY 掲載日 2018年7月18日(O)https://www.youtube.com/watch?v=wEIKsfi7Y2A 掲載日 2018年8月12日
特許法第30条第2項適用 (P)https://www.youtube.com/watch?v=DfKjgTDQ12A 掲載日 2018年8月13日(Q)https://www.youtube.com/watch?v=ekdrslByyiQ 掲載日 2018年8月30日(R)https:/youtu.be/eqUZzFMOERI 掲載日 2018年9月7日(S)https://www.youtube.com/watch?v=NWh5g3i-zqY 掲載日 2018年9月26日(T)https://www.youtube.com/watch?v=W0keLlKWo3A 掲載日 2018年9月26日(U)https://www.youtube.com/watch?v=nlXNytRa71U 掲載日 2018年10月11日(V)https://www.youtube.com/watch?v=zlucBao6Wr0 掲載日 2018年10月11日(W)https://www.youtube.com/watch?v=DsfjRETOrVY 掲載日 2018年10月28日(X)https://www.youtube.com/watch?v=UzFK1RyJ_3A 掲載日 2018年11月27日(Y)https://www.youtube.com/watch?v=r1jVSYFc9Ho 掲載日 2018年12月4日(Z)https://www.youtube.com/watch?v=-8TsYixKtGI 掲載日 2018年12月15日(AA)https://www.youtube.com/watch?v=UHWnp14GFPQ 掲載日 2018年12月29日(AB)https://www.youtube.com/watch?v=CUsPZJC2jg4 掲載日 2019年1月28日(AC)https://www.youtube.com/watch?v=Uf1_CKw6oVM 掲載日 2019年1月28日(AD)https://www.youtube.com/watch?v=mZKCtrifGIM 掲載日 2019年2月11日(AE)https://www.youtube.com/watch?v=0dS_bE4c3qk 掲載日 2019年3月13日
特許法第30条第2項適用 (AF)https://www.youtube.com/watch?v=srELg6BrAUw 掲載日 2019年3月13日(AG)https://twitter.com/Stennis_colopl 掲載日 2018年3月19日~(AH)https://colopl.co.jp/news/pressrelease/2018121101.php 掲載日 2018年12月11日(AI)https://colopl.co.jp/coloplfes/2018/ 掲載日 2018年10月12日~(AJ)https://twitter.com/coloplfes 掲載日 2018年10月11日~・アプリケーション名:「白猫テニス」 アプリケーションバージョンおよびリリース・アップデート日:Ver1.0.74 2018年3月19日Ver1.0.75 2018年3月29日Ver1.0.76 2018年4月5日Ver1.0.77 2018年4月9日Ver1.0.78 2018年4月13日Ver1.0.79 2018年4月24日Ver1.0.80 2018年5月10日Ver1.0.81 2018年5月28日Ver1.0.82 2018年6月12日Ver1.0.83 2018年6月19日Ver1.0.84 2018年6月26日Ver1.0.85 2018年7月11日Ver1.0.86 2018年7月18日Ver1.0.87 2018年7月30日Ver1.0.88 2018年7月31日Ver1.0.89 2018年8月10日Ver1.0.90 2018年8月16日Ver1.0.91 2018年8月29日Ver1.0.92 2018年9月7日Ver1.0.94 2018年9月17日Ver1.0.95 2018年9月19日Ver1.0.96 2018年9月27日Ver1.0.97 2018年10月11日Ver1.0.98 2018年10月12日Ver1.0.99 2018年10月29日Ver1.0.100 2018年11月6日
特許法第30条第2項適用 Ver1.0.101 2018年11月14日Ver1.0.102 2018年11月30日Ver1.0.103 2018年12月4日Ver1.0.104 2018年12月12日Ver1.0.105 2018年12月17日Ver1.0.106 2018年12月19日Ver1.0.107 2018年12月27日Ver1.0.108 2019年1月7日Ver1.0.109 2019年1月10日Ver1.0.110 2019年1月15日Ver1.0.111 2019年1月21日Ver1.0.112 2019年1月29日Ver1.0.113 2019年2月18日Ver1.0.114 2019年2月21日Ver1.0.115 2019年2月27日Ver1.0.116 2019年3月7日Ver1.0.117 2019年3月19日・展示会名コロプラフェス2018 開催場所 東京ビッグサイト 開催日 平成30年12月15日~16日
〔実施形態1〕
以下、この技術的思想の実施の形態について図面を参照しながら詳細に説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。本開示において示される1以上の実施形態において、各実施形態が含む要素を互いに組み合わせることができ、かつ、当該組み合わせられた結果物も本開示が示す実施形態の一部をなすものとする。
<ゲームシステム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が備えるこれらの構成は、通信バスによって互いに電気的に接続される。なお、ユーザ端末100は、タッチスクリーン15に代えて、または、加えて、ユーザ端末100本体とは別に構成されたディスプレイ(表示部)を接続可能な入出力IF14を備えていてもよい。
また、図1に示すように、ユーザ端末100は、1つ以上のコントローラ1020と通信可能に構成されることとしてもよい。コントローラ1020は、例えば、Bluetooth(登録商標)等の通信規格に従って、ユーザ端末100と通信を確立する。コントローラ1020は、1つ以上のボタン等を有していてもよく、該ボタン等に対するユーザの入力操作に基づく出力値をユーザ端末100へ送信する。また、コントローラ1020は、加速度センサ、および、角速度センサ等の各種センサを有していてもよく、該各種センサの出力値をユーザ端末100へ送信する。
なお、ユーザ端末100がカメラ17および測距センサ18を備えることに代えて、または、加えて、コントローラ1020がカメラ17および測距センサ18を有していてもよい。
ユーザ端末100は、例えばゲーム開始時に、コントローラ1020を使用するユーザに、該ユーザの名前またはログインID等のユーザ識別情報を、該コントローラ1020を介して入力させることが望ましい。これにより、ユーザ端末100は、コントローラ1020とユーザとを紐付けることが可能となり、受信した出力値の送信元(コントローラ1020)に基づいて、該出力値がどのユーザのものであるかを特定することができる。
ユーザ端末100が複数のコントローラ1020と通信する場合、各コントローラ1020を各ユーザが把持することで、ネットワーク2を介してサーバ200などの他の装置と通信せずに、該1台のユーザ端末100でマルチプレイを実現することができる。また、各ユーザ端末100が無線LAN(Local Area Network)規格等の無線規格により互いに通信接続する(サーバ200を介さずに通信接続する)ことで、複数台のユーザ端末100によりローカルでマルチプレイを実現することもできる。1台のユーザ端末100によりローカルで上述のマルチプレイを実現する場合、ユーザ端末100は、さらに、サーバ200が備える後述する種々の機能の少なくとも一部を備えていてもよい。また、複数のユーザ端末100によりローカルで上述のマルチプレイを実現する場合、複数のユーザ端末100は、サーバ200が備える後述する種々の機能を分散して備えていてもよい。
なお、ローカルで上述のマルチプレイを実現する場合であっても、ユーザ端末100はサーバ200と通信を行ってもよい。例えば、あるゲームにおける成績または勝敗等のプレイ結果を示す情報と、ユーザ識別情報とを対応付けてサーバ200に送信してもよい。
また、コントローラ1020は、ユーザ端末100に着脱可能な構成であるとしてもよい。この場合、ユーザ端末100の筐体における少なくともいずれかの面に、コントローラ1020との結合部が設けられていてもよい。該結合部を介して有線によりユーザ端末100とコントローラ1020とが結合している場合は、ユーザ端末100とコントローラ1020とは、有線を介して信号を送受信する。
図1に示すように、ユーザ端末100は、外部のメモリカード等の記憶媒体1030の装着を、入出力IF14を介して受け付けてもよい。これにより、ユーザ端末100は、記憶媒体1030に記録されるプログラム及びデータを読み込むことができる。記憶媒体1030に記録されるプログラムは、例えばゲームプログラムである。
ユーザ端末100は、サーバ200等の外部の装置と通信することにより取得したゲームプログラムをユーザ端末100のメモリ11に記憶してもよいし、記憶媒体1030から読み込むことにより取得したゲームプログラムをメモリ11に記憶してもよい。
以上で説明したとおり、ユーザ端末100は、該ユーザ端末100に対して情報を入力する機構の一例として、通信IF13、入出力IF14、タッチスクリーン15、カメラ17、および、測距センサ18を備える。入力する機構としての上述の各部は、ユーザの入力操作を受け付けるように構成された操作部と捉えることができる。
例えば、操作部が、カメラ17および測距センサ18の少なくともいずれか一方で構成される場合、該操作部が、ユーザ端末100の近傍の物体1010を検出し、当該物体の検出結果から入力操作を特定する。一例として、物体1010としてのユーザの手、予め定められた形状のマーカーなどが検出され、検出結果として得られた物体1010の色、形状、動き、または、種類などに基づいて入力操作が特定される。より具体的には、ユーザ端末100は、カメラ17の撮影画像からユーザの手が検出された場合、該撮影画像に基づき検出されるジェスチャ(ユーザの手の一連の動き)を、ユーザの入力操作として特定し、受け付ける。なお、撮影画像は静止画であっても動画であってもよい。
あるいは、操作部がタッチスクリーン15で構成される場合、ユーザ端末100は、タッチスクリーン15の入力部151に対して実施されたユーザの操作をユーザの入力操作として特定し、受け付ける。あるいは、操作部が通信IF13で構成される場合、ユーザ端末100は、コントローラ1020から送信される信号(例えば、出力値)をユーザの入力操作として特定し、受け付ける。あるいは、操作部が入出力IF14で構成される場合、該入出力IF14と接続されるコントローラ1020とは異なる入力装置(図示せず)から出力される信号をユーザの入力操作として特定し、受け付ける。
<各装置のハードウェア構成要素>
プロセッサ10は、ユーザ端末100全体の動作を制御する。プロセッサ20は、サーバ200全体の動作を制御する。プロセッサ10および20は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、およびGPU(Graphics Processing Unit)を含む。
プロセッサ10は後述するストレージ12からプログラムを読み出し、後述するメモリ11に展開する。プロセッサ20は後述するストレージ22からプログラムを読み出し、後述するメモリ21に展開する。プロセッサ10およびプロセッサ20は展開したプログラムを実行する。
メモリ11および21は主記憶装置である。メモリ11および21は、ROM(Read Only Memory)およびRAM(Random Access Memory)等の記憶装置で構成される。メモリ11は、プロセッサ10が後述するストレージ12から読み出したプログラムおよび各種データを一時的に記憶することにより、プロセッサ10に作業領域を提供する。メモリ11は、プロセッサ10がプログラムに従って動作している間に生成した各種データも一時的に記憶する。メモリ21は、プロセッサ20が後述するストレージ22から読み出した各種プログラムおよびデータを一時的に記憶することにより、プロセッサ20に作業領域を提供する。メモリ21は、プロセッサ20がプログラムに従って動作している間に生成した各種データも一時的に記憶する。
本実施形態においてプログラムとは、ゲームをユーザ端末100により実現するためのゲームプログラムであってもよい。あるいは、該プログラムは、該ゲームをユーザ端末100とサーバ200との協働により実現するためのゲームプログラムであってもよい。なお、ユーザ端末100とサーバ200との協働により実現されるゲームは、一例として、ユーザ端末100において起動されたブラウザ上で実行されるゲームであってもよい。あるいは、該プログラムは、該ゲームを複数のユーザ端末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によって実行されるゲーム(以下、本ゲーム)は、本ゲームのメインパートを進行させるための準備を行う第1パートと、該メインパートである第2パートとからなるゲームサイクルを含むものであれば、特定のジャンルに限らず、あらゆるジャンルのゲームであってよい。例えば、テニス、卓球、ドッジボール、野球、サッカーおよびホッケーなどのスポーツを題材としたゲーム、パズルゲーム、クイズゲーム、RPG、アドベンチャーゲーム、シューティングゲーム、シミュレーションゲーム、育成ゲーム、ならびに、アクションゲームなどであってもよい。
また、本ゲームは、特定のプレイ形態に限らず、あらゆるプレイ形態のゲームであってもよい。例えば、単一のユーザによるシングルプレイゲーム、および、複数のユーザによるマルチプレイゲーム、また、マルチプレイゲームの中でも、複数のユーザが対戦する対戦ゲーム、および、複数のユーザが協力する協力プレイゲームなどであってもよい。
本ゲームは、例えば、対戦ゲームであり、該対戦ゲームは、ユーザの操作内容に応じて、試合運び、スコア、および、対戦の勝敗などが変化する。本ゲームは、一例として、複数のユーザの間で、タイム、スコア、戦績などの観点で、優位性を競わせるゲームであってもよい。ユーザは通常、競争に勝ちたいと考えてゲームをプレイする。そのため、ゲームに競争の要素を含ませ、操作内容に応じて優位性が決するようにゲームシステム1を構築することにより、ユーザに操作の習熟を促すことができる。
さらには、本対戦ゲームは、例えば、ユーザと他のユーザとの対戦により進行する対人対戦を行うプレイパートを含んでいてもよい。なお、本ゲームにおける「対戦」はマルチ対戦(所謂、PvP(Player vs Player)戦)に限られない。例えば、ユーザが操作するプレイヤキャラクタ(以下、PC(player character))と、ノンプレイヤキャラクタ(以下、NPC(non player character))との対戦(所謂、COM戦またはCPU戦)も、本対戦ゲームにおける「対戦」に含まれる。本ゲームの対戦は、一例として、スポーツゲームにおける試合であってもよい。
本対戦ゲームは、一例として、PvP戦およびCOM戦を含むスポーツゲームである。本実施形態に係るゲームシステム1によって実行されるスポーツゲームにおける対戦は、1以上のキャラクタが、規定された競技空間において移動体を移動させることにより得点を競うスポーツの試合である。とりわけ、本スポーツゲームにおける対戦は、2以上のキャラクタが上述の移動体を連続して互いに打ち返し合うことにより得点を競うスポーツの試合である。一例として、本スポーツゲームは、テニスゲームであり、対戦とはテニスの試合である。
本実施形態に係るゲームシステム1によって実行されるテニスゲームでは、ユーザはユーザ端末100に対し入力操作を行うことで、PCを操作してテニスをプレイする。
本テニスゲームでは、ユーザ端末100のユーザのPCと、NPCまたは他のユーザ端末100のPCとが、ゲームシステム1において構築されたゲーム空間においてテニスの試合を行う。以下では、対戦相手のキャラクタが、他のユーザ端末100のユーザが操作するPCである例を説明する。以降、該キャラクタを相手キャラクタと称する。本テニスゲームにおいて、相手キャラクタは1体であっても複数であってもよい。
また、本テニスゲームでは、ユーザのPC対相手キャラクタ1対のシングルスの試合をプレイできてもよいし、ダブルスの試合をプレイすることができてもよい。すなわち、本テニスゲームでプレイされる試合は、少なくともユーザのPCを含んで結成される味方ペアと、2体の相手キャラクタで結成される敵ペアとがダブルスの試合であってもよい。ユーザのPCと味方ペアを組むキャラクタは、ユーザのPCであってもよいし、NPCであってもよいし、他のユーザのPCであってもよく、これらを特に区別する必要がない場合には、一律、味方キャラクタと称する。
本テニスゲームにおける試合は、実際のテニスのルールを基本として、適宜追加または変更された所定のルールに則って行われる。以降の説明では、実際のテニスのルールについて詳細な説明は行わない。
<ゲームサイクル>
上述したとおり、本ゲームは、第1パートおよび第2パートからなるゲームサイクルを含む。なお、本ゲームは、第1パートおよび第2パート以外のプレイパートを含んでいてもよい。
第2パートは、上述したとおり本ゲームのメインパートである。本実施形態では、一例として、第2パートは、ユーザが、保有しているキャラクタの中から選んだキャラクタをPCとして操作して、相手キャラクタとのテニスの試合をプレイする。
第1パートは、上述したとおり、本ゲームのメインパート(第2パート)を進行させるための準備を行うプレイパートである。第1パートでは、一例として、ユーザと、他のユーザ端末100のユーザとのマッチングが行われる。換言すれば、第1パートは、第2パートにおけるテニスの試合の対戦相手を決定するパートである。
本実施形態において、マッチングとは、ユーザに対し、1名以上の他のユーザ端末100のユーザ(以下、他のユーザと称する)を対応付けることを示す。
なお、第1パートにおいて、マッチング以外の、第2パートを進行させるための準備が行われてもよい。
すなわち、本ゲームにおけるゲームサイクルは以下のとおりである。まず、ユーザ端末100は、第1パートを開始する。ユーザ端末100が第1パートを進行させることによりマッチングが実行され、ユーザの対戦相手が決定される。なお、詳細については後述するが、マッチングはサーバ200が実行する。対戦相手が決定されるとユーザ端末100は第1パートを終了し、第2パート、すなわち、ユーザのPCと、相手キャラクタとのテニスの試合を開始する。ユーザ端末100は、第2パート、すなわち、該試合を進行させる。いずれかのユーザが勝利条件を満たした場合、該試合の勝敗が決定され、ユーザ端末100は、第2パートを終了する。
<ゲームシステム1の機能的構成>
図2は、ゲームシステム1に含まれるサーバ200およびユーザ端末100の機能的構成を示すブロック図である。サーバ200およびユーザ端末100のそれぞれは、図示しない、一般的なコンピュータとして機能する場合に必要な機能的構成、および、ゲームにおける公知の機能を実現するために必要な機能的構成を含み得る。
ユーザ端末100は、ユーザの入力操作を受け付ける入力装置としての機能と、ゲームの画像や音声を出力する出力装置としての機能を有する。ユーザ端末100は、プロセッサ10、メモリ11、ストレージ12、通信IF13、および入出力IF14等の協働によって、制御部110および記憶部120として機能する。
サーバ200は、各ユーザ端末100と通信して、ユーザ端末100がゲームを進行させるのを支援する機能を有する。ゲームがマルチプレイゲームである場合には、サーバ200は、ゲームに参加する各ユーザ端末100と通信して、ユーザ端末100同士のやりとりを仲介する機能を有していてもよい。サーバ200は、プロセッサ20、メモリ21、ストレージ22、通信IF23、および入出力IF24等の協働によって、制御部210および記憶部220として機能する。
記憶部120および記憶部220は、それぞれ、ゲームプログラム121および221、ゲーム情報122および222、並びに、ユーザ情報123および223を格納する。ゲームプログラム121は、ユーザ端末100が実行するゲームプログラムである。ゲームプログラム221は、サーバ200が実行するゲームプログラムである。ゲーム情報122は、制御部110がゲームプログラム121を実行する際に参照するデータである。ゲーム情報222は、制御部210がゲームプログラム221を実行する際に参照するデータである。ユーザ情報123および223は、ユーザのアカウントに関するデータである。記憶部220において、ゲーム情報222およびユーザ情報223は、ユーザ端末100ごとに格納されている。
(サーバ200の機能的構成)
制御部210は、記憶部220に格納されたゲームプログラム221を実行することにより、サーバ200を統括的に制御する。例えば、制御部210は、ユーザ端末100に各種データおよびプログラム等を送信する。制御部210は、ゲーム情報もしくはユーザ情報の一部または全部をユーザ端末100から受信する。ゲームがマルチプレイゲームである場合には、制御部210は、ユーザ端末100からマルチプレイの同期の要求を受信して、同期のためのデータをユーザ端末100に送信してもよい。
制御部210は、ゲームプログラム221の記述に応じて、送受信部211、データ管理部212、同期処理部213、マッチング部214、抽選部215、および、権利付与部216として機能する。制御部210は、実行するゲームの性質に応じて、ユーザ端末100におけるゲームの進行を支援するために、図示しないその他の機能ブロックとしても機能することができる。
送受信部211は、ユーザ端末100から各種データおよびリクエストを受信する。例えば、送受信部211は、ゲーム情報122もしくはユーザ情報123の一部または全部を、ユーザ端末100から受信する。また、送受信部211は、ユーザ端末100に対し各種データおよびリクエストを送信する。以降、送受信部211以外の機能ブロックを主語として、「送信する」と記載する場合がある。この記載は、該機能ブロックが、送受信部211に指示し、データ等を送信させることを意味する。
データ管理部212は、記憶部220に格納されているデータを管理する。データ管理部212は、ゲーム情報122およびユーザ情報123に含まれる各種情報の、追加、更新、または削除を実行する。データ管理部212は、記憶部220からゲーム情報122およびユーザ情報123のうち少なくとも一方の情報を読み出してもよい。データ管理部212は、ゲームプログラム121のうち、あるユーザ端末100で実行する分のプログラムを記憶部220から読み出して、該ユーザ端末100に送信してもよい。
同期処理部213は、複数のユーザ端末100と通信して、ユーザ端末100同士のデータのやりとりを仲介する。例えば、同期処理部213は、対戦を行うユーザのユーザ端末100同士の、該対戦に係る同期処理を仲介または実行する。
マッチング部214は、マッチングに係る処理を実行する。マッチング部214は、一例として、ユーザ端末100からのマッチング要求を受信した場合、マッチング要求が示す試合形式、すなわち、シングルスの試合であるか、ダブルスの試合であるかに基づいて、ユーザに対し、同じ試合形式を希望する他のユーザをマッチングする。「同じ試合形式を希望する他のユーザ」とは、該他のユーザのユーザ端末100から受信したマッチング要求が示す試合形式が、ユーザのユーザ端末から受信したマッチング要求が示す試合形式と同じであることである。
テニスの試合がシングルスの試合である場合、ユーザに対し、1名の他のユーザが対応付けられる(マッチングされる)。テニスの試合がダブルスの試合である場合、ユーザに対し、1名、2名、または3名の他のユーザがマッチングされる。ダブルスの試合において1名の他のユーザがマッチングされた場合、ダブルスの試合を行う4体のキャラクタのうち、2体がNPCとなる。他のユーザのPCは、ユーザのPCの味方キャラクタであってもよいし、相手キャラクタであってもよい。また、ダブルスの試合において1名の他のユーザがマッチングされた場合、ダブルスの試合を行う4体のキャラクタのうち、1体がNPCとなる。他のユーザのPCのうち少なくとも1体は、ユーザのPCの相手キャラクタとなる。他のユーザのPCのうちの1体が相手キャラクタとなった場合、もう1体は味方キャラクタとなる。
抽選部215は、マッチング部214により複数のユーザがマッチングされたことに基づき、該複数のユーザの各々に対し、所定の重み付けに基づく抽選を実行する。換言すれば、抽選部215は、該複数のユーザの各々が、「当選」であるか、または、「落選」であるかを決定する。抽選部215は、送受信部211に、該複数のユーザのユーザ端末100の各々に、抽選の結果を送信する。抽選の結果は、一例として、抽選の結果をユーザに通知するために使用される情報を含む。該情報の詳細については後述する。
権利付与部216は、抽選の結果が「当選」であるユーザに対し、現実世界で使用できる景品を獲得する第1権利を付与する。該第1権利は、一例として、現実世界で使用することができるクーポン(電子クーポン)のシリアルコードであってもよい。該クーポンは、例えば、自動販売機に対して使用することにより、飲料を無償で得ることができるものであってもよい。なお、本実施形態では、シリアルコードのユーザへの付与は期間限定のイベントとして実施されるものとして説明する。また、詳細については後述するが、本実施形態では、イベント実施期間中の各日において、シリアルコードの数は有限であるものとして説明する。
(ユーザ端末100の機能的構成)
制御部110は、記憶部120に格納されたゲームプログラム121を実行することにより、ユーザ端末100を統括的に制御する。例えば、制御部110は、ゲームプログラム121およびユーザの操作にしたがって、ゲームを進行させる。また、制御部110は、ゲームを進行させている間、必要に応じて、サーバ200と通信して、情報の送受信を行う。
制御部110は、ゲームプログラム121の記述に応じて、操作受付部111、ゲーム進行部112、オブジェクト制御部113、表示制御部114、通信制御部115、および抽選結果確定部116として機能する。
操作受付部111は、入力部151に対するユーザの入力操作を検知し受け付ける。操作受付部111は、タッチスクリーン15およびその他の入出力IF14を介したコンソールに対してユーザが及ぼした作用から、いかなる入力操作がなされたかを判別し、その結果を制御部110の各要素に出力する。
例えば、操作受付部111は、入力部151に対する入力操作を受け付け、該入力操作の入力位置の座標を検出し、該入力操作の種類を特定する。操作受付部111は、入力操作の種類として、例えばタッチ操作、スライド操作、スワイプ操作、およびタップ操作等を特定する。また、操作受付部111は、連続して検知されていた入力が途切れると、タッチスクリーン15から接触入力が解除されたことを検知する。
通信制御部115は、サーバ200に対し各種データおよびリクエストを送信する。例えば、通信制御部115はサーバ200に対し、ゲーム情報122もしくはユーザ情報123の一部または全部を送信する。通信制御部115は、サーバ200から各種データおよびリクエストを受信する。例えば、通信制御部115はサーバ200から、ゲーム情報122もしくはユーザ情報123の一部または全部を受信する。以降、通信制御部115以外の機能ブロックを主語として、「送信する」と記載する場合がある。この記載は、該機能ブロックが、通信制御部115に指示し、データ等を送信させることを意味する。
ゲーム進行部112は、ゲームの進行に係る各種処理を行う。例えば、ゲーム進行部112は、操作受付部111が受け付けた入力操作の位置の座標と、操作の種類と、ゲームの進行状況とに基づいて、ユーザの指示内容を特定する。
例えば、ゲーム進行部112は、ユーザのゲームへのログインを受け付けて、ログインに係る一連の処理を実行する。例えば、操作受付部111がユーザのログインに係る一連の入力操作(ログイン操作)を受け付けると、ゲーム進行部112は、該操作に基づいて、ログイン要求を受けたと判定する。ゲーム進行部112はログイン要求を受けた場合、ログイン操作から特定可能な情報(例えば、ユーザ端末100の機種ID、ユーザID、パスワード等)に基づいて、ログイン認証を行う。
ゲーム進行部112は、ユーザIDおよびパスワードが特定のアカウントのものと一致する場合に、該アカウントについてログイン認証が成功したと判定してもよい。また、ユーザ端末100とアカウントとが対応付けされるゲームの場合、ゲーム進行部112は、特定した機種IDに対応付けされたアカウントが存在する場合に、該アカウントについてログイン認証が成功したと判定してもよい。ゲーム進行部112は、ログイン認証が成功したアカウントで、ユーザをゲームにログインさせる。
ゲーム進行部112は、第1パートおよび第2パートの進行に係る各種処理を行う。例えば、ゲーム進行部112は、第1パートにおいて、マッチング要求をサーバ200へ送信する。また、例えば、ゲーム進行部112は、第1パートにおいて、通信制御部115が受信した抽選の結果を取得する。また、例えば、ゲーム進行部112は、第2パートにおいて、操作受付部111が受け付けた入力操作の位置の座標と、操作の種類と、ゲームの進行状況とに基づき、テニスの試合を進行させる。
ゲーム進行部112は、ゲームの進行に係る各種判定処理を行う。また、ゲーム進行部112は、記憶部120に記憶されたゲーム情報122およびユーザ情報123に含まれる、各種情報の追加、更新、または削除を行う。
オブジェクト制御部113は、ゲーム情報122に含まれるオブジェクトの設定情報に基づき、ゲーム画面における2Dまたは3Dのオブジェクトの配置を決定する。また、オブジェクト制御部113は、ゲーム画面に配置したオブジェクトを制御する。例えば、オブジェクト制御部113は、配置したオブジェクトの位置、向き、形状、色等を変更したり、該オブジェクトに所定の一連の動作を行わせたりする。例えば、オブジェクト制御部113は、キャラクタをゲーム進行部112が決定した移動方向、移動速度、および移動距離で移動させる。
表示制御部114は、表示部152にゲーム画面の画像を表示させる。表示制御部114は、例えば、オブジェクト制御部113が制御するオブジェクトと、該オブジェクトの背景となる背景画像とを含む画像を生成して、表示部152に表示させる。
なお、オブジェクト制御部113または表示制御部114は、UI(user interface)を構築するための2Dまたは3Dのオブジェクト(UIオブジェクト)を制御してもよい。例えば、表示制御部114は、背景画像にアイコン、ボタン、リスト、メニュー画面等、ゲームの種々の操作に必要なUIオブジェクトを重畳したゲーム画面を表示させてもよい。UIオブジェクトとは、ユーザが、ゲームの進行上必要な入力をユーザ端末100に対して行うためのツールである。また、UIオブジェクトとは、ユーザが、ゲームの進行中に出力される情報をユーザ端末100から得るためのツールである。
抽選結果確定部116は、対戦結果、すなわちテニスの試合の勝敗が確定(決定)したことに基づき、抽選の結果を確定させる。つまり、抽選の結果は、サーバ200において「当選」または「落選」のいずれかに決定された時点、サーバ200からユーザ端末100へ送信された時点では未確定の状態であり、テニスの試合の勝敗が確定した時点で確定される。
なお、図2に示すサーバ200およびユーザ端末100の機能は一例にすぎない。サーバ200は、ユーザ端末100が備える機能の少なくとも一部を備えていてもよい。また、ユーザ端末100は、サーバ200が備える機能の少なくとも一部を備えていてもよい。さらに、ユーザ端末100およびサーバ200以外の他の装置をゲームシステム1の構成要素とし、該他の装置にゲームシステム1における処理の一部を実行させてもよい。すなわち、本実施形態においてゲームプログラム121を実行するコンピュータは、ユーザ端末100、サーバ200、および他の装置のいずれであってもよいし、これらの複数の装置の組み合わせにより実現されてもよい。
<処理概要>
本実施形態に係るユーザ端末100は、ゲームプログラム121に基づいて、ゲームとより連動した、景品獲得のキャンペーンを実現するために、以下のステップを実行するように構成されている。具体的には、ユーザ端末100は、ゲームプログラム121に基づく、本ゲームのメインパートを進行させるための準備を行う第1パートを進行させるステップと、本ゲームのメインパートである第2パートを進行させるステップと、第1パートおよび第2パートからなるゲームサイクル中の第1タイミングにおいて、ゲームサイクル中に行われた抽選の結果を取得するステップと、ゲームサイクル中の、第1タイミングより後の第2タイミングにおいて、抽選の結果を確定させるステップと、取得するステップにて取得した抽選の結果が当選であり、かつ、確定させるステップにて抽選の結果が確定された場合、現実世界で使用できる景品を獲得する第1権利をユーザ端末100の第1ユーザに付与するステップと、を実行する構成である。
上述の構成によれば、抽選の結果が当選であったとしても、該抽選の結果を取得した時点では第1権利は付与されず、該時点からゲームサイクルが進行した時点において抽選の結果が確定し、第1権利が付与される。すなわち、ユーザは抽選の結果を取得した後にゲームサイクルを進行させるためにゲームをプレイすることで、抽選の結果が確定し、ユーザに第1権利が付与される。結果として、ゲームとより連動した、景品(特に、現実世界で使用できる景品)獲得のキャンペーンを実現することができる。
一例として、取得するステップでは、第1パート中に行われた抽選の結果を、第1パート中の第1タイミングにおいて取得し、確定させるステップでは、第2パート中の第2タイミングにおいて前記抽選の結果を確定させる。
例えば、第2パートを進行させるステップでは、第2パートとして、第1ユーザの操作に応じて動作する第1キャラクタと、他のコンピュータのユーザである第2ユーザの操作に応じて動作する第2キャラクタとが少なくとも参加する対戦を進行させ、第1パートを進行させるステップでは、第1パートとして、第1ユーザと第2ユーザとのマッチングが実行され、抽選は、マッチング中に行われ、確定させるステップでは、対戦の結果の決定以後の第2タイミングにおいて抽選の結果を確定させる。
上述の構成によれば、抽選の結果が当選であった場合、ユーザは、抽選の結果を確定させるために第2パートのプレイ、すなわち他のユーザとの対戦を行う必要がある。結果として、ゲームとより連動した、景品(特に、現実世界で使用できる景品)獲得のキャンペーンを実現することができる。
また、例えば抽選をメインパート中にユーザ端末100で実行すると、メインパートに抽選のプログラムを組み込む必要があり、ゲームプログラム121の大幅な変更が発生する。これに対して、抽選をマッチングのタイミングで行うことにより、ゲームプログラム121を大幅に変更することなく、抽選を実現することができる。また、サーバ200は、メインパートの開始前から各ユーザの抽選の結果を管理することができる。
一例として、ユーザ端末100は、ゲームプログラム121に基づいて、対戦の結果の決定以前の第3タイミングにおいて、抽選の結果を提示するステップをさらに実行する。これにより、ユーザは本ゲームのゲームサイクルを進行させている途中に、抽選の結果を認識することができる。
一例として、提示するステップでは、対戦中に実行されるゲーム処理を利用して、抽選の結果を提示する。これにより、ゲームの開発者は、ゲームプログラム121を大幅に変更することなく、ユーザへの抽選の結果の提示を実現することができる。
一例として、提示するステップでは、第1ユーザの抽選の結果と、第2ユーザの抽選の結果とを同時に提示し、第1ユーザの抽選の結果が当選である場合、第1演出をさらに実行する一方、第2ユーザの抽選の結果が当選であっても、第2ユーザの当選に基づく第1演出は実行しない。これにより、第1ユーザの抽選の結果が落選である場合に、第2ユーザの当選に基づく第1演出により、第1ユーザが自身の抽選の結果を当選であると誤認識することを防ぐことができる。
<処理の詳細>
図3は、本実施形態に係るゲームサイクル実行処理の流れの一例を示すフローチャートである。図4は、表示部152に表示されるゲーム画面の具体例を示す図である。図4に示すゲーム画面は、本テニスゲームにおける各イベントをユーザに提示するとともに、いずれかのイベントに参加するための操作を受け付ける画面である。該ゲーム画面は、一例として、UIオブジェクト410A、410B、410C、420、430、440、および450を含む。該ゲーム画面は、一例として、プロセッサ10が、操作受付部111として、本テニスゲームのホーム画面に含まれる所定のUIオブジェクトへの操作(例えば、該UIオブジェクトへのタップ操作)を受け付けた場合に、表示部152に表示される。
UIオブジェクト410A、410B、410Cは、それぞれ、本テニスゲームで開催されているイベントをユーザに提示する。また、UIオブジェクト410A、410B、410Cは、各イベントに参加するための操作を受け付ける。図4の例では、クーポンのシリアルコードをユーザへ付与するイベントのUIオブジェクトは、UIオブジェクト410Aである。
UIオブジェクト420は、本日分のシリアルコードがまだ残っていることをユーザに通知する。図4に示すゲーム画面がUIオブジェクト420を含むことにより、ユーザは、今からイベントに参加する場合に、シリアルコードが付与される可能性があることを認識することができる。なお、本日分のシリアルコードがすべて付与された場合、プロセッサ10は、表示制御部114として、UIオブジェクト420に代えて、本日分のシリアルコードが残っていないことをユーザに通知するUIオブジェクトを図4に示すゲーム画面に含めてもよい。本日分のシリアルコードがすべて付与されたことは、サーバ200から各ユーザ端末100へ通知すればよい。
UIオブジェクト430は、ユーザの操作を受け付けて、イベントの詳細を表示する。UIオブジェクト440は、イベントの残り日数をユーザに通知する。UIオブジェクト450は、ユーザの操作を受け付けて、図4に示すゲーム画面を、本テニスゲームのホーム画面に遷移させる。
ステップS101において、ユーザ端末100のプロセッサ10は、通信制御部115として、マッチング要求をサーバ200へ送信する。ステップS101の実行は、一例として、第1パートの開始に相当する。
ステップS201において、サーバ200のプロセッサ20は、マッチング部214として、マッチングを実行する。
ステップS202において、プロセッサ20は、抽選部215として、抽選処理を実行する。図5は、ゲームサイクル実行処理に含まれる抽選処理の流れの一例を示すフローチャートである。図6は、抽選データベースおよびシリアルコードデータベースの一具体例を示す図である。
(抽選処理)
ステップS301において、プロセッサ20は、マッチング要求を送信したユーザ端末100のユーザのユーザIDが抽選データベースに格納されているか否かを判定する。抽選データベースは、図6(A)に示すように、ユーザIDに、抽選のステータスおよびシリアルコードを対応付けて格納するデータベースである。抽選データベースは、一例として、ゲーム情報222として記憶部220に格納されている。「ユーザID」のカラムには、抽選の対象となったユーザのユーザIDが格納される。「ステータス」のカラムには、抽選の結果を含む抽選のステータスが格納される。「予約中」とは、抽選の結果が「当選」であり、かつ、抽選の結果が未確定であることを示す。「ハズレ」とは、抽選の結果が「落選」であることを示す。「付与済」とは、抽選の結果が「当選」であり、かつ、抽選の結果が確定済である、すなわち、ユーザIDが示すユーザに、シリアルコード付与されたことを示す。「シリアルコード」のカラムには、抽選の結果が「当選」であるユーザに付与される予定の、または、既に付与されたシリアルコードが格納される。
ユーザIDが抽選データベースに格納されていないと判定した場合(ステップS301でNO)、ステップS302において、プロセッサ20は、シリアルコードデータベースにシリアルコードが残っているか否かを判定する。シリアルコードデータベースは、図6(B)に示すように、シリアルコードの各々にステータスが対応付けられて格納されているデータベースである。シリアルコードデータベースは、一例として、ゲーム情報222として記憶部220に格納されている。上述したとおり、シリアルコードの数は有限であり、イベント期間中の日付ごとにシリアルコードの数に上限が設定されている。このため、シリアルコードデータベースは、一例として、イベント期間中の各日付に対応する複数のデータベースとして実現される。図6(B)の例は、2019年3月11日のシリアルコードデータベースである。なお、図6(B)の例では、各日付におけるシリアルコードの数が4625個であるものとして説明するが、シリアルコードの数はこの例に限定されない。また、図6(B)の例では、シリアルコードは、4桁の数字とアルファベットとからなるが、シリアルコードはこの例に限定されない。なお、図6(B)の例において、シリアルコードに含まれるアルファベットは日付を示す。すなわち、図6(B)の例において、シリアルコードの「A」は、2019年3月11日のシリアルコードであることを示している。
「シリアルコード」のカラムには、シリアルコードが格納される。「ステータス」のカラムには、各シリアルコードが「発行済」であるか「未発行」であるかを示す情報が格納される。「発行済」とは、シリアルコードがユーザに対応付けられていることを示す。換言すれば、「発行済」のシリアルコードは、抽選データベースに格納されている。「未発行」とは、シリアルコードがユーザに対応付けられていないことを示す。
ステップS302における、プロセッサ20は、シリアルコードデータベースにシリアルコードが残っているか否かの判定は、すなわち、シリアルコードデータベースに、「未発行」のシリアルコードがあるか否かを判定することである。
シリアルコードデータベースにシリアルコードが残っていると判定した場合(ステップS302でYES)、ステップS303において、プロセッサ20は、マッチング要求を送信したユーザ端末100のユーザについて、抽選を実行する。
ステップS304において、プロセッサ20は、該ユーザの抽選の結果が「当選」であるか否かを判定する。「当選」である場合(ステップS304でYES)、ステップS305において、プロセッサ20は、該ユーザのユーザIDに、「予約中」とのステータス、および、シリアルコードを対応付けて、抽選データベースに格納する。該シリアルコードは、一例として、「未発行」のシリアルコードのうち、4桁の数字が最も小さいシリアルコードである。プロセッサ20は、シリアルコードデータベースにおいて、該シリアルコードのステータスを、「未発行」から「発行済」に更新する。以上で抽選処理は終了し、サーバ200の処理はゲームサイクル実行処理に戻る。
抽選の結果が「当選」でない、すなわち「落選」である場合(ステップS304でNO)、ステップS306において、プロセッサ20は、該ユーザのユーザIDに、「ハズレ」とのステータスを対応付けて、抽選データベースに格納する。以上で抽選処理は終了し、サーバ200の処理はゲームサイクル実行処理に戻る。
ユーザIDが抽選データベースに格納されていると判定した場合(S301でYES)、ステップS307において、プロセッサ20は、該ユーザIDに対応付けられたステータスに従って抽選結果を決定する。具体的には、該ステータスが「予約中」である場合、ユーザの抽選結果を「当選」に決定する。一方、該ステータスが「ハズレ」あるいは「付与済」である場合、ユーザの抽選結果を「落選」に決定する。そして、プロセッサ20は抽選処理を終了させ、サーバ200の処理はゲームサイクル実行処理に戻る。つまり、ユーザIDが抽選データベースに格納されている場合、プロセッサ20は、該ユーザIDが示すユーザに対する抽選を行わない。
シリアルコードデータベースにシリアルコードが残っていないと判定した場合(ステップS302でNO)、プロセッサ20はステップS306の処理を実行する。つまり、シリアルコードデータベースにシリアルコードが残っていない場合、マッチング要求を送信したユーザは、抽選を行うことなく「落選」となる。
再び図3を参照して、ゲームサイクル実行処理を説明する。ステップS203において、プロセッサ20は、送受信部211として、マッチング結果および抽選結果をユーザ端末100へ送信する。プロセッサ10が、通信制御部115としてマッチング結果および抽選結果を受信すると、第1パートが終了する。
ステップS102において、プロセッサ10は、ゲーム進行部112として、対戦、すなわちテニスの試合を進行させる。ステップS204において、プロセッサ20は、同期処理部213として、テニスの試合の進行を支援する。該支援は、一例として、テニスの試合の進行に係る同期処理の実行であるが、この例に限定されない。
(対戦の進行)
図7は、本テニスゲームにおけるゲーム空間に定義される競技空間を模式的に示す図である。本テニスゲームの試合は、一例として、X軸、Y軸、Z軸の3軸を座標軸とする3次元の競技空間で進行する。本実施形態では、一例として、競技空間における競技領域、すなわち、本テニスゲームにおけるテニスコートおよびその周辺の面をXY平面に平行に定義し、テニスコートの短辺方向をX軸方向、テニスコートの長辺方向をY軸方向、そして、テニスコートの面に対する法線方向をZ軸方向と定義する。
図7(A)は、競技空間をX軸方向から見た場合の、各種オブジェクトおよび仮想カメラ330の配置例を示している。図7(B)は、競技空間をX軸方向からから見た場合の、各種オブジェクトおよび仮想カメラ330の配置例を示している。
プロセッサ10は、オブジェクト制御部113として、テニスコートを示す略平面状のオブジェクトであるテニスコート300を、競技空間のXY平面と略平行に配置する。また、プロセッサ10は、オブジェクト制御部113として、テニスコート300の各長辺の中央を通る直線の位置にネットを示すオブジェクトであるネット303を配置する。ネット303は、Z軸方向に所定の高さを持つ。プロセッサ10は、オブジェクト制御部113として、PCのオブジェクトであるPC310および相手キャラクタのオブジェクトである相手キャラクタ320を、テニスコート300に配置する。例えば、プロセッサ10は、オブジェクト制御部113として、PC310を、テニスコート300のうちの自陣領域301、および、自陣領域301の周辺領域のうち、ネット303より自陣側の領域のいずれかに配置する。また、プロセッサ10は、オブジェクト制御部113として、相手キャラクタ320を、テニスコート300のうちの敵陣領域302、および、敵陣領域302の周辺領域のうち、ネット303より敵陣側の領域のいずれかに配置する。換言すると、自陣領域301およびネット303より自陣側の自陣領域301の周辺領域が、PC310の可動領域であり、敵陣領域302およびネット303より敵陣側の敵陣領域302の周辺領域が、相手キャラクタ320の可動領域である。自陣領域301および敵陣領域302の周辺領域は、例えばそれぞれのコートのベースラインの外側およびサイドラインの外側の、所定の範囲である。
プロセッサ10は、図示しないカメラ配置制御部として、ゲーム空間内に仮想カメラ330を配置する。仮想カメラ330の位置および角度は特に限定されない。例えば、プロセッサ10は、カメラ配置制御部として、テニスコート300全体と、全てのキャラクタが写るような位置および角度で仮想カメラ330を配置する。
(試合時の基本動作)
本テニスゲームにおいて、1つ試合は、現実のテニスと同様に、1または複数のセットで構成される。1つのセットは、複数の“ゲーム”で構成される。1つの“ゲーム”は、複数の“プレー”で構成される。なお、本明細書においては、1つのまとまりのあるゲームプログラムを実行することにより、ゲームシステム1が実現するビデオゲームたるデジタルコンテンツに対して、「ゲーム」の呼称を用いている。そのため、本明細書において、テニスの試合におけるゲームを意味する用語については、「“ゲーム”」と表記して、ゲームプログラムに基づくビデオゲームたるゲームとは区別する。同様に、ユーザがユーザ端末100を操作してゲームプログラム121に基づくゲームに興じることを、「(ゲームを)プレイ(する)」、と表記するのに対して、テニスゲームにおいて各キャラクタが1つの“ゲーム”内で、いずれかのキャラクタが1ポイントを取得するまで、ラケットでボールを打ち返し合う一連の競技行動およびその期間を「“プレー”」と表記する。1つの“プレー”は、例えば、サーブで始まり、そのボールがレシーブされ、その後続くボールを打ち返し続けるラリーにより成立し、一方のキャラクタが返球に失敗し、他方のキャラクタに1ポイントが付与されて終了する。
つまり、1つの“プレー”に勝ったキャラクタに1ポイントが与えられる。例えば、1つの“プレー”において、PC310と相手キャラクタ320とは、ボールを相手コートに向けて交互に打球し合う。一方のキャラクタが返球に失敗すると、その“プレー”において対戦相手である他方のキャラクタが勝ちとなり、該他方のキャラクタにポイントが付与される。そして、先に4ポイントを先取した方がその“ゲーム”を獲得する。
1セットの中の“ゲーム”を多く獲得した方が、そのセットを獲得し、1つの試合の中のセットを多く獲得した方がその試合の勝者となる。1つの試合が1つのセットで構成されている場合には、多くの“ゲーム”を獲得した方がその試合の勝者となる。
図8および図9は、表示部152に表示されるゲーム画面の具体例を示す図である。図8および図9に示す各ゲーム画面は、本テニスゲームにおいて、ゲーム進行部112が試合を進行させているときに、表示部152に表示される試合画面である。また、図8および図9では、ユーザがタッチスクリーン15の入力部151に対して行う入力操作を併せて模式的に示している。
図8(A)~(C)は、PC310にサーブを打たせるときのユーザの入力操作およびPC310の動作を示す。図8(A)は、プロセッサ10が、ユーザの入力操作に応じて、オブジェクト制御部113として、PC310のサーブ動作の開始位置を移動させる場面を示す。プロセッサ10は、オブジェクト制御部113として、“プレー”開始時に、サーブ権を持ったPC310を、ベースラインに沿って、自陣領域301の外側に配置する。プロセッサ10は、操作受付部111として、例えば、図8(A)に示す指A1の矢印方向にて、入力部151に対するドラッグ操作を受け付ける。プロセッサ10は、ゲーム進行部112として、該ドラッグ操作と“プレー”の進行状況とに基づいて、該ドラッグ操作がPC310に行わせるサーブの開始位置を移動させる指示であると特定する。プロセッサ10は、ゲーム進行部112として、上述のドラッグ操作に基づいて、PC310の移動方向、移動速度、および移動距離の少なくともいずれかを決定する。プロセッサ10は、オブジェクト制御部113として、この決定に従って、例えば、図8(A)に示すPC310の矢印方向に、PC310を移動させる。
本実施形態では、一例として、サーブ権を持ったPC310の可動域は、自陣領域301の外側のベースライン沿いである。プロセッサ10は、オブジェクト制御部113として、ユーザのドラッグ操作にしたがって、PC310をベースラインに沿って左右いずれかの方向に移動させることができる。プロセッサ10は、オブジェクト制御部113として、PC310にトスを行わせるための入力操作を受け付けるまでは、PC310をベースライン沿いの任意の位置に動かすためのドラッグ操作を受け付けて、PC310を移動させる。これにより、ユーザは、PC310に行わせるサーブのコースを調整することができる。
プロセッサ10は、カメラ配置制御部として、サーブ時には、仮想カメラ330の位置、向き、および、角度を、PC310側からテニスコート300のほぼ全体を見渡せるように調整する。一例として、プロセッサ10は、カメラ配置制御部として、仮想カメラ330を、テニスコート300のセンターラインが、仮想カメラ330の視野領域の左右方向について略中央に位置し、かつ、自陣領域301を手前に、かつ、敵陣領域302を奥にして、Y軸方向から見渡せるような、位置、向き、および、角度で配置してよい。これにより、ユーザに対して、サーブを打つPC310と、サーブの打ち込み先である敵陣領域302と、打ちこまれたボールの軌跡とを視認性良く見せることができる。
図8(B)は、プロセッサ10が、オブジェクト制御部113として、ユーザの入力操作に応じてPC310にトス動作を行わせる場面を示す。一例として、プロセッサ10は、操作受付部111として、入力部151に対するタップ操作を受け付ける。プロセッサ10は、ゲーム進行部112として、該タップ操作と“プレー”の進行状況とに基づいて、該タップ操作がPC310にトス動作を行わせることを指示する操作であると判断する。プロセッサ10は、オブジェクト制御部113として、PC310にトス動作を行わせるとともに、ボールのオブジェクトであるボール340をトス動作に合わせて出現させ、移動させる。トス動作とは、ボール340をトスアップする動作である。すなわち、プロセッサ10は、オブジェクト制御部113として、タップ操作に従って、PC310にボール340を投げ上げさせるとともに、ボール340がPC310頭上付近で、上昇および下降するように、ボール340を移動させる。
図8(C)は、プロセッサ10が、オブジェクト制御部113として、ユーザの入力操作に応じてPC310にサーブを打たせる場面を示す。一例として、プロセッサ10は、操作受付部111として、トス動作によってボール340が滞空している間に、再びタッチ操作を受け付ける。プロセッサ10は、ゲーム進行部112として、該タッチ操作がPC310にサーブを打たせることを指示する操作であると判断する。プロセッサ10は、オブジェクト制御部113として、PC310に、サーブを打つためのラケットを振る動作を行わせる。そして、プロセッサ10は、オブジェクト制御部113として、ゲーム空間におけるボール340の位置およびラケットの位置に少なくとも基づいて、ボール340の移動速度および移動経路を決定し、ボール340を、相手キャラクタ320が居る敵陣領域302に移動させる。
プロセッサ10は、ゲーム進行部112として、サーブを打たせる指示に対応する上述のタップ操作が行われたタイミングと、該タイミングにおけるボール340の位置とに応じて、サーブの成否を判定してもよい。例えば、プロセッサ10は、ゲーム進行部112として、投げ上げられたボール340が移動軌跡の頂点付近に位置するときに上述のタップ操作が行われた場合にサーブ成功と判定してもよい。また例えば、プロセッサ10は、ゲーム進行部112として、ボール340が上述の移動軌跡の頂点付近にはないときに上述のタップ操作が行われた場合にサーブ失敗と判定してもよい。ここで、「サーブ成功」とは、PC310が打ったボール340が、敵陣領域302のサービスエリア内に落下するように、PC310がサーブを打ったことを意味する。一方「サーブ失敗」には、PC310がラケットにボール340を当てることができずに空振りしたこと、または、PC310が打ったボール340が、敵陣領域302のサービスエリア外に落下したこと、または、ボール340がネット303にかかり、敵陣領域302まで到達しなかったことなどが含まれる。
図9(A)および(B)は、PC310と相手キャラクタ320とがラリーするときの、ユーザの入力操作およびPC310の動作を示す。図9(A)は、ユーザの入力操作に応じて、オブジェクト制御部がPC310を移動させる場面を示す。プロセッサ10は、操作受付部111として、PC310または相手キャラクタ320のサーブの後に、例えば、図9(A)に示す指A1が付された矢印の方向に動くドラッグ操作を受け付けたとする。この場合、プロセッサ10は、ゲーム進行部112として、該ドラッグ操作を、PC310を移動させることを指示する操作であると判断する。プロセッサ10は、ゲーム進行部112として、該ドラッグ操作の移動方向、移動速度、および移動距離の少なくともいずれかを決定する。プロセッサ10は、オブジェクト制御部113として、この決定に従って、例えば、同図のPC310に付した矢印の方向に、PC310を移動させる。
ラリー時において、プロセッサ10は、カメラ配置制御部として、表示部152の下部、例えば、1/3~1/4程度の領域A2を除いた残りの表示領域に、テニスコート300のほぼ全体と、PC310とが写るように、仮想カメラ330の位置、向き、および、角度を決定することが好ましい。このように、ユーザがタッチ操作を行うための領域A2と、テニスコート300全体の様子を映す領域とを分けることにより、入力操作を行うユーザの手指A1でテニスコート300、相手キャラクタ320、PC310、またはボール340等が隠れてしまうことを防ぐことができる。したがって、ユーザは、“プレー”の進行状況を確認しながら、入力操作を行うことができる。
プロセッサ10は、カメラ配置制御部として、仮想カメラ330を、自陣領域301が手前、敵陣領域302が奥、というように、テニスコート300のほぼ全体を縦長に、すなわち、Y軸方向から見渡せるような位置、向き、および、角度で配置してもよい。これにより、ユーザに対して、ボール340を打つPC310と、ボール340の打ち込み先である相手キャラクタ320側の敵陣領域302と、PC310に打ち返させたボール340の軌跡とを視認性良く見せることができる。
図9(B)は、ユーザの入力操作に応じて、プロセッサ10が、オブジェクト制御部113として、PC310に打球動作、具体的には、ラケットをスイングする動作を行わせる場面を示す。プロセッサ10は、操作受付部111として、ラリーが進行している間にタッチ操作を受け付けた場合、ゲーム進行部112として、該タッチ操作を、PC310に打球動作を行わせることを指示する操作であると判断する。プロセッサ10は、オブジェクト制御部113として、PC310に打球動作を行わせる。具体的には、プロセッサ10は、オブジェクト制御部113として、PC310にラケットを振る動作を行わせる。そして、プロセッサ10は、オブジェクト制御部113として、ゲーム空間におけるボール340の位置およびラケットの位置に少なくとも基づいて、ボール340の移動速度および移動経路を決定し、ボール340を、敵陣領域302に移動させる。
(打球エリア)
プロセッサ10は、PC310に打球動作を行わせる場合、ゲーム進行部112として、該打球動作でボール340を打球することができたか否かを判定する。プロセッサ10は、オブジェクト制御部113として、打球成否の判定の基準となる打球エリア350を、PC310とともにゲーム空間に配置する。打球エリア350は、テニスコート300上、すなわち、ゲーム空間におけるXY平面上に配置される。
本実施形態では、打球エリア350とPC310との位置関係は、固定されており、プロセッサ10は、オブジェクト制御部113として、PC310のXY平面上の位置を基準にして、打球エリア350を配置する。例えば、プロセッサ10は、オブジェクト制御部113として、PC310の位置が打球エリア350の中央付近になるように、PC310の位置に基づいて打球エリア350を配置する。なお、打球エリア350の大きさおよび形状は、キャラクタの種類によって異なっていてもよい。
ボール340が打球エリア350内に位置している間に、タッチ操作が実施され、PC310の打球動作が行われた場合、プロセッサ10は、ゲーム進行部112として、打球成功と判定する。一方、ボール340が打球エリア350外に位置している間に、タッチ操作が実施され、PC310の打球動作が行われた場合、プロセッサ10は、ゲーム進行部112として、打球失敗と判定する。
ここで、打球エリア350を基準としてボール340の位置を説明するとき、ボール340の位置は、XY平面上の位置を指す。つまり、ボール340の位置が打球エリア350の内または外にある、というとき、ボール340の位置は、Z軸方向、すなわち、テニスコート300の上から見たときのボール340の位置を意味する。
プロセッサ10は、ゲーム進行部112として、打球成功と判定した場合、さらに、PC310にラケットをスイングさせたタイミングに応じて、返球の良好度合いを決定する。プロセッサ10は、ゲーム進行部112として、例えば、スイングのタイミングの良否を、ボール340が打球エリア350内のどの領域に位置しているときにラケットにミートしたのかに応じて、決定する。例えば、プロセッサ10は、ゲーム進行部112として、スイングのタイミングが最良である場合に、特殊ショットを除く通常のショットにおいて、最も球威が出る球をPC310に打たせる。例えば、プロセッサ10は、ゲーム進行部112として、返球の良好度合いを、「最良」、「良」、「早め」、「遅め」の4段階で評価してもよい。
このように、プロセッサ10は、ゲーム進行部112として、まず、打球動作を指示するタップ操作が入力されたときの打球エリア350とボール340との位置関係に基づいて、打球の正否を判定する。次に、プロセッサ10は、ゲーム進行部112として、打球成功と判定した場合に、スイングのタイミング、すなわち、ラケットにミートしたボール340の打球エリア350上の位置に基づいて、返球の良好度合いを判定する。そして、プロセッサ10は、ゲーム進行部112として、返球の良好度合いに応じて、打球によって移動させるボール340の球威を決定する。具体的には、返球の良好度合いが高いほど、つまり、スイングのタイミングが良好であるほど、球威がある球を相手キャラクタに打ち返すことができる。球威がある球とは、相手キャラクタに打ち返されにくい強い球を意味する。球威がある球を精度よく成功のうちに打ち返すためには、多くのパワー、スタミナ、または高度なテクニックなどが要求され、球威がある球ほど、相手キャラクタに失敗させる可能性が上がる。したがって、タイミングよくタップ操作を行って、PC310にタイミングよくスイングさせることは、試合に勝つための1つの重要な要素となる。なお、球威は、一例として、ボール340が移動する速度、移動中にかかっているボール340の回転の速度、および、向きなどによって決定されてもよい。
これにより、ユーザに対し、相手キャラクタ320の敵陣領域302から飛来するボール340のコースを予測したり、返球を成功させるために、最適な位置にPC310を移動させたり、球威ある返球のためにタイミングを見計らって打球動作を行わせたりすることを促すことができる。コースの予測、PC310の位置取り、および、スイングのタイミングは、現実のテニスゲームでも重要な要素である。したがって、ゲームシステム1は、テニスゲームにおいて実際のテニスで起こる事象を可能な限り再現することができ、テニスゲームの興趣性を向上させることができる。
(UI配置)
プロセッサ10は、表示制御部114として、図8~図9で示した試合画面に、さらに、ユーザの入力操作に係るUI部品を重畳表示させることができる。図10は、表示部152に表示させる試合画面の具体例を示す図である。
図10(A)は、サーブを開始する前の時点で表示される試合画面の一例を示す図である。図10(B)は、ラリーが進行している間のある時点で表示される試合画面の一例を示す図である。プロセッサ10は、表示制御部114として、ゲーム空間内のオブジェクトを描画した画像を生成し、UI部品を該画像に重ねて配置する。重畳されるUI部品には、ユーザの入力操作を受け付けるためのUI部品と、ユーザに対して情報を提示するためのUI部品とがある。
ユーザの入力操作を受け付けるためのUI部品の一例として、図示のとおり、特殊ショットボタン360、球種選択ボタン370、1つ目の交代ボタン380、および、2つ目の交代ボタン382などが試合画面に重ねて配置される。
ユーザに対して情報を提示するためのUI部品の一例として、PC310のスタミナゲージ311、相手キャラクタ320のスタミナゲージ321、1人目の控えのキャラクタのスタミナゲージ381、および、2人目の控えのキャラクタのスタミナゲージ383などが試合画面に重ねて配置される。
ここで、試合に参加する資格をもつ味方のキャラクタのうち、現在試合に出場中のPC310以外の控えのキャラクタを、控えキャラクタと呼称する。なお、スタミナゲージ311および321については、後に説明する。
特殊ショットボタン360は、PC310に特殊ショットを打たせるための入力操作を受け付けるボタンである。本テニスゲームでは、各キャラクタに1または複数の特殊ショットのスキルが設定されている。プロセッサ10は、ゲーム進行部112として、ゲームの進行状況が所定の条件を満たしている場合、特殊ショットボタン360を、そのことが分かるような表示態様に変更して、特殊ショットボタン360に対する入力操作を受け付け可能な状態に遷移する。一例として、プロセッサ10は、ゲーム進行部112として、PC310の打球が累積で所定回数成功したと判定した場合に、特殊ショットボタン360を押下可能な状態に遷移させる。
プロセッサ10は、ゲーム進行部112として、特殊ショットボタン360が押下された状態で、PC310の打球が成功したと判定した場合、オブジェクト制御部113として、PC310に特殊ショットを発動させる。特殊ショットとは、発動時または発動後に所定の条件を満たした場合に、PC310、相手キャラクタ320、または、返球されるボール340に特定の効果を付与する打球動作のことである。例えば、特殊ショットは、ボール340を特殊な移動方法で相手キャラクタ320側の敵陣領域302に移動させる打球動作であってもよい。特殊な移動方法とは、例えば、通常の返球時には発生しない速度、軌道、回転状態でボールを移動させることである。
あるいは、特殊ショットは、最もタイミングよくスイングされた場合に実現される最も良い返球を、所定回数だけ、実際のユーザのスイングのタイミングによらずに、PC310に行わせることであってもよい。具体的には、プロセッサ10は、ゲーム進行部112として、特殊ショットボタン360が押下されると、上述の特殊ショットを発動させて、ボール340がスイング時に打球エリア350のいずれにあっても、ボール340を、例えば「3回まで」など所定の回数を打ち返すまで、タイミングよくミートした打球を返球することとしてもよい。
球種選択ボタン370は、PC310が打つことができる球種を示すとともに、PC310に打たせたい球種を変更する指示をユーザが入力するためのボタンである。プロセッサ10は、球種選択ボタン370が押下されると、ゲーム進行部112として、PC310に打たせる球種を指定された球種へと変更する。
交代ボタン380および382は、ユーザが、PC310を、交代ボタン380または382にそれぞれ対応付けられた控えキャラクタと交代させる指示を入力するためのボタンである。プロセッサ10は、ゲーム進行部112として、控えキャラクタの数に合わせた数の交代ボタンを表示させてもよい。ただし、表示させる交代ボタンの数が多くなると、試合の進捗を表示させる領域が狭くなってしまう。それゆえ、控えキャラクタの数に上限を設けたり(例えば、2人)、あるいは表示する交代ボタンの数に上限(例えば、2つ)を設けたりしてもよい。なお、控えキャラクタの数よりも表示させる交代ボタンの数が少ない場合、プロセッサ10は、ゲーム進行部112として、予めユーザに設定させた優先順位にしたがって、交代ボタンに対応付ける控えキャラクタを決定してもよい。
交代を指示するための交代ボタン380または382に対するタッチ操作を、プロセッサ10が、操作受付部111として受け付ける。交代ボタン380に対するタッチ操作を受け付けると、プロセッサ10は、ゲーム進行部112として、例えば、交代ボタン380に対応付けられている控えキャラクタと、現在のPC310とを交代させる。具体的には、プロセッサ10は、オブジェクト制御部113として、現在のPC310に代えて、選択された控えキャラクタを新たなPC310としてゲーム空間に配置する。上述の交代の指示によってPC310から控えキャラクタとなったキャラクタは、交代ボタン380と対応付けられてもよい。交代ボタン380に対するタッチ操作が再度検出されれば、プロセッサ10は、ゲーム進行部112として、PC310の入れ替えを再び実行してもよい。
スタミナゲージ311は、PC310のスタミナの最大値および現在値を示している。スタミナゲージ321は、相手キャラクタ320のスタミナの最大値および現在値を示している。スタミナゲージ381は、交代ボタン380に対応付けられた控えキャラクタのスタミナの最大値および現在値を示している。スタミナゲージ383は、交代ボタン382に対応付けられた控えキャラクタのスタミナの最大値および現在値を示している。スタミナとは、キャラクタの体力を示すパラメータである。各キャラクタには、スタミナの最大値が予め定められている。本テニスゲームでは、一例として、プロセッサ10は、ゲーム進行部112として、試合が進行するにつれて、各キャラクタが所定の動作を行う度に、スタミナを最大値から所定量減少させる。また、プロセッサ10は、ゲーム進行部112として、試合中のキャラクタの動作に応じて、減少したスタミナの値を回復させてもよい。例えば、試合中に、PC310にスタミナを回復させる回復アイテムを取得させる操作が行われた場合に、プロセッサ10は、ゲーム進行部112として、PC310のスタミナを所定量回復させてもよい。
なお、スタミナのパラメータは、キャラクタの移動に関する性能、例えば、移動速度等を決定するのに参照される。一例として、プロセッサ10は、ゲーム進行部112として、キャラクタのスタミナが一定量まで減少した場合に、該キャラクタの移動速度を減少前と比較して遅くすることなどが考えられる。
(回復アイテム)
再び図3を参照して、ゲームサイクル実行処理を説明する。ステップS104において、プロセッサ10は、ゲーム進行部112として、回復アイテムを出現させる。本ゲームでは、回復アイテムとして、ドリンクを模したオブジェクト(以下、単に「ドリンク」と称する)が、テニスの試合中に出現する。プロセッサ10は、図示しないアニメーション生成部として、ドリンクを出現させる際、テニスコート300の外から、ドリンクがテニスコート300の中に移動するアニメーション、より具体的には、ドリンクがテニスコート300の中に投入されるアニメーションを生成してもよい。プロセッサ10は、表示制御部114として、該アニメーションを表示させ、オブジェクト制御部113として、ドリンクをテニスコート300内に配置する。
一例として、プロセッサ10は、ゲーム進行部112として、対戦進行中のドリンク投入タイミングにおいて、所定の確率でドリンクをテニスコート300内に投入する。ドリンク投入タイミングは、一例として、対戦開始から所定時間が経過する毎に発生してもよい。プロセッサ10が、オブジェクト制御部113として、ゲーム空間上でPC310がドリンクと重なったと判定すると、PC310のスタミナが所定量回復する。
プロセッサ10は、ゲーム進行部112として、ドリンクを投入する場合、ドリンクテーブルを参照する。ドリンクテーブルは、マッチング結果および抽選結果とともに、サーバ200から送信される。本実施形態では、図3に示すように、ドリンクの投入が、抽選結果のユーザへの提示を兼ねている。このため、サーバ200は、ユーザの抽選結果に応じて、異なるドリンクテーブルをユーザ端末100へ送信する。なお、ドリンクテーブルは抽選結果として送信されてもよい。
図11は、ドリンクテーブルの一具体例を示す図である。図11(A)は、抽選結果が当選である場合にユーザ端末100へ送信されるドリンクテーブルの一具体例である。図11(B)は、抽選結果が落選である場合にユーザ端末100へ送信されるドリンクテーブルの一具体例である。
ドリンクテーブルは、ドリンクの種類を示す回復アイテムIDに、投入確率および個数が対応付けられて格納されたテーブルである。「回復アイテムID」のカラムには、上記回復アイテムIDが格納される。図11の例では、「11111」が、抽選結果が「当選」であることをユーザに提示するためのドリンク(以下、「あたりドリンク」と称する)のIDである。また、「00000」は、通常のドリンクのIDである。
「投入確率」のカラムには、回復アイテムIDが示すドリンクが投入される確率が格納される。ここで、「ドリンクが投入される確率」とは、ドリンク投入タイミングにドリンクが投入されると決定された場合に、回復アイテムIDが示すドリンクが投入される確率である。「個数」のカラムには、回復アイテムIDが示すドリンクの個数が格納される。この個数は、ドリンクが投入される度に減少する。なお、「-」は、ドリンクの個数が無制限であることを示す。
図11(A)に示すドリンクテーブルにおいて、あたりドリンクの投入確率は100%である。すなわち、抽選結果が「当選」である場合、プロセッサ10は、ゲーム進行部112として、対戦中に最初に投入されるドリンクを必ずあたりドリンクとする。また、図11(B)に示すドリンクテーブルにおいて、通常のドリンクの投入確率は100%であり、通常ドリンク以外のレコードは無い。すなわち、抽選結果が「落選」である場合、プロセッサ10は、ゲーム進行部112として、対戦中に投入されるドリンクを通常のドリンクとする。
また、図11(A)に示すドリンクテーブルにおいて、あたりドリンクの個数は1個である。プロセッサ10は、ゲーム進行部112として、あたりドリンクを投入した場合、一例として、ドリンクテーブルにおけるあたりドリンクのレコードを削除する。この結果、ドリンクテーブルは通常のドリンクのレコードのみとなる。このため、あたりドリンクのレコードを削除した後は、プロセッサ10は、ゲーム進行部112として、対戦中に投入されるドリンクを通常のドリンクとする。なお、プロセッサ10は、ゲーム進行部112として、あたりドリンクのレコードの削除とともに、通常のドリンクの投入確率を100%に変更してもよい。
以上のとおり、対戦中における最初のドリンク投入において、抽選結果が「当選」であるユーザの自陣領域301には、必ずあたりドリンクが投入される。一方、抽選結果が「落選」であるユーザの自陣領域301には、必ず通常のドリンクが投入される。つまり、本ゲームの対戦中における最初のドリンク投入は、抽選結果が「当選」であるか「落選」であるかをユーザに提示する処理と表現することもできる。また、対戦中における最初のドリンク投入における通常のドリンクは、抽選結果が「落選」であることをユーザに提示するためのドリンクと表現することもできる。
なお、少なくとも、抽選結果の提示を兼ねる最初のドリンク投入においては、公平性の観点から、PC310を対象とするドリンク投入と、相手キャラクタ320を対象とするドリンク投入とは、同時に行われることが望ましい。2回目以降のドリンク投入は、同時であってもよいし、異なるタイミングであってもよい。すなわち、2回目以降のドリンク投入においては、あるドリンク投入タイミングにおいて、一方のキャラクタを対象とするドリンク投入のみが行われてもよい。
図12は、表示部152に表示されるゲーム画面の具体例を示す図である。図12に示すゲーム画面は、対戦中における最初のドリンク投入直後の画面である。図12(A)は、ユーザの抽選結果が「当選」、他のユーザ(対戦相手)が「落選」であった場合の画面である。図12(B)は、ユーザの抽選結果が「落選」、他のユーザ(対戦相手)が「当選」であった場合の画面である。すなわち、図12(A)の例では、自陣領域301にあたりドリンク390Aが配置され、敵陣領域302に通常のドリンク390Bが配置される。一方、図12(B)の例では、自陣領域301に通常のドリンク390Bが配置され、敵陣領域302にあたりドリンク390Aが配置される。
図12(A)の例において、プロセッサ10は、オブジェクト制御部113として、あたりドリンク390Aを配置するとともに、第1演出を実行する。例えば、プロセッサ10は、オブジェクト制御部113として、あたりドリンク390Aと略同一の位置に、演出オブジェクト391を一定時間配置する。演出オブジェクト391は、例えば、図12(A)に示すように、「あたり!」とのテキストと、放射状のエフェクトとを含んでもよい。演出オブジェクト391をあたりドリンク390Aとともに配置することにより、ユーザは、自身の抽選結果が「当選」であることを容易に理解することができる。
一方、図12(B)の例では、対戦相手の抽選結果が「当選」であるが、敵陣領域302に配置されたあたりドリンク390Aとともに演出オブジェクト391は配置されない。換言すれば、対戦相手のみが当選した場合、プロセッサ10は、第1演出を実行しない。これにより、ユーザが、自身の抽選結果を「当選」と誤解することを防ぐことができる。なお、図12(B)の例において、対戦相手のユーザ端末100では、第1演出が実行されている。
なお、あたりドリンク390AをPC310が取得した場合と、通常のドリンク390BをPC310が取得した場合とで、スタミナの回復量は同じであってもよいし、異なっていてもよい。
再び図3を参照して、ゲームサイクル実行処理を説明する。ステップS105において、プロセッサ10は、ゲーム進行部112として対戦を終了させる。例えば、プロセッサ10は、ゲーム進行部112として、PC310または相手キャラクタ320が、所定数のセットを獲得した場合、所定数のセットを獲得した方を勝者、もう一方を敗者と決定し、対戦を終了させる。さらに、プロセッサ10は、抽選結果確定部116として、取得していた抽選結果を確定させる。ステップS106において、プロセッサ10は、抽選結果確定部116として、投入された全ての回復アイテムのIDを、サーバ200へ通知する。
なお、抽選結果の確定において、あたりドリンクを取得することは必要条件ではない。つまり、プロセッサ10は、PC310があたりドリンクを取得することなく、対戦の勝敗が確定したとしても、抽選結果確定部116として、抽選結果を確定させる。これにより、不当景品類及び不当表示防止法(景品表示法)におけるオープン懸賞の要件を満たすことができる。
ステップS205において、プロセッサ20は、権利付与部216として、確定後処理を実行する。図13は、ゲームサイクル実行処理に含まれる確定後処理の流れの一例を示すフローチャートである。
(確定後処理)
ステップS401において、プロセッサ20は、通知された回復オブジェクトのIDが、当選を示すID、すなわち、あたりドリンクのIDを含んでいるか否かを判定する。あたりドリンクのIDを含んでいると判定した場合(ステップS401でYES)、ステップS402において、プロセッサ20は、抽選データベースにおいて、該IDを通知したユーザ端末100のユーザのステータスが「予約中」であるか否かを判定する。「予約中」であると判定した場合(ステップS402でYES)、ステップS403において、プロセッサ20は、該ステータス、すなわち「予約中」を「付与済」に変更する。
ステップS401において、通知された回復オブジェクトのIDがあたりドリンクのIDを含んでいないと判定した場合(ステップS401でNO)、ステップS404において、プロセッサ20は、抽選データベースにおいて、該IDを通知したユーザ端末100のユーザのステータスが「ハズレ」であるか否かを判定する。なお、ステップS402において、該IDを通知したユーザ端末100のユーザのステータスが「予約中」でないと判定した場合(ステップS402でNO)も、プロセッサ20は、ステップS404の処理を実行する。
「ハズレ」であると判定した場合(ステップS404でYES)、ステップS405において、プロセッサ20は、抽選データベースから該ユーザのレコードを消去する。そして、サーバ200の処理はゲームサイクル実行処理に戻る。一方、「ハズレ」でないと判定した場合(ステップS404でNO)、プロセッサ20は、ステップS405の処理を実行せず、サーバ200の処理はゲームサイクル実行処理に戻る。なお、ステップS404において「ハズレ」でないと判定した場合とは、「予約中」でも「ハズレ」でもないと判定した場合を指す。該場合は、例えば、「付与済」である場合である。
再び図3を参照して、ゲームサイクル実行処理を説明する。ステップS206において、プロセッサ20は、権利付与部216として、回復アイテムIDを通知したユーザ端末100のユーザの抽選結果が「当選」であるか否かを判定する。当選であると判定した場合(ステップS206でYES)、ステップS207において、プロセッサ20は、権利付与部216として、抽選データベースにおいて該ユーザのユーザIDに対応付けられているシリアルコードを、該ユーザのユーザ端末100へ送信する。以上で、ゲームサイクル実行処理におけるサーバ200の処理は終了する。
一方、ステップS206において、「当選」でない、すなわち「落選」であると判定した場合、プロセッサ20は、ステップS207の処理を実行せず、ゲームサイクル実行処理におけるサーバ200の処理は終了する。
ステップS107において、プロセッサ10は、表示制御部114として、受信したシリアルコードを表示部152に表示する。これにより、ユーザはシリアルコードが付与されたことを認識することができる。以上で、ゲームサイクル実行処理におけるユーザ端末100の処理は終了する。
ステップS107において、プロセッサ10は、表示制御部114として、シリアルコードとともに、クーポンを獲得するための操作を受け付けるUIオブジェクトを表示部152に表示させてもよい。プロセッサ10は、操作受付部111として、該UIオブジェクトに対する操作(例えば、タップ操作)を受け付けると、表示制御部114として、クーポンを獲得するためのWebサイトを表示部152に表示させてもよい。クーポンは、該Webサイトにてシリアルコードを入力することにより、獲得できるものであってもよい。このため、ステップS107の処理、すなわち、シリアルコードをユーザに認識させるためにシリアルコードを表示する処理は、シリアルコードをユーザに付与する処理であると表現することができる。
該クーポンは、一例として、二次元コード(例えば、QR(Quick Response)コード(登録商標))を含むものであってもよい。ユーザは、例えば、ユーザ端末100を操作して、二次元コードを含むクーポンを表示部152に表示させる。そして、ユーザは、該二次元コードを自動販売機に設けられた二次元コード読取部にかざす。自動販売機が二次元コードを読み取ると、自動販売機は飲料の獲得が可能な状態となる。すなわち、自動販売機の飲料を購入するためのボタンが点灯する。ユーザは、いずれかのボタンを押下することで飲料を無償で獲得することができる。なお、ここで説明した飲料(すなわち景品)獲得の流れは一例であり、景品獲得の流れはこの例に限定されない。
<処理概要:対戦が途中終了した場合>
一例として、付与するステップでは、取得するステップにて取得した抽選の結果が落選である場合、または、確定させるステップが実行されなかった場合、第1権利を第1ユーザに付与しない。
例えば、第1ユーザまたは第2ユーザが対戦を途中で終了させたことにより、確定させるステップが実行されなかった場合、第1ユーザの抽選の結果が当選であったとしても第1権利を第1ユーザに付与しない。これにより、ユーザに対戦を最後までプレイする動機付けを与えることができる。
一例として、第1ユーザまたは第2ユーザが対戦を途中で終了させた場合、該対戦を含むゲームサイクルにおける抽選の結果が、第1ユーザに関連付けられて保持され、取得するステップでは、前回の対戦における抽選の結果が保持されている場合、該抽選の結果を取得する。
上記の構成によれば、第1ユーザの抽選の結果が当選であった場合、対戦が途中で終了すると、次回の対戦に係る抽選の結果も当選となる。これにより、抽選の結果が当選であったにもかかわらず、対戦相手が対戦を途中で終了させたことにより、第1権利を付与されなかったユーザを救済することができる。また、上記の構成によれば、第1ユーザの抽選の結果が落選であった場合、対戦が途中で終了すると、次回の対戦に係る抽選の結果も落選となる。これにより、ユーザが抽選の結果として落選を提示された結果、より早く次の抽選を行わせるために、対戦を途中で終了させて、次の対戦を行なう行為(いわゆる、リセマラ(リセットマラソン)に近い行為)を防ぐことができる。
一例として、本ゲームにおける日付の各々において、景品の数には上限が設定されており、該抽選が行われた日付である第1日付のゲームサイクルである第1サイクルにおいて、抽選の結果が当選であり、かつ、対戦の結果が決定した場合、付与するステップでは、第2タイミングにて、第1日付の景品のいずれかを示す第1景品情報を第1権利として付与し、抽選の結果が当選であり、かつ、対戦の結果の決定前に対戦が終了したとの第1条件が成立した場合、付与するステップでは第1景品情報を付与せず、第1景品情報は、該抽選の結果とともに第1ユーザに関連付けられて保持され、第1日付のゲームサイクルであって、第1条件が成立した第1サイクルの次のゲームサイクルである第2サイクルにおいて、付与するステップでは、第2サイクルにおける対戦の結果が決定した場合、第2タイミングにて、保持されていた第1景品情報を第1権利として付与する。
上記の構成によれば、対戦が途中で終了した場合、該対戦に係る抽選において当選した第1ユーザに付与される予定であった第1景品情報が、第1ユーザに関連付けられて保持される。そして、次のゲームサイクルで対戦が正常に終了し、抽選結果(当選)が確定した場合、保持された第1景品情報が第1ユーザに付与される。換言すれば、途中で終了した対戦の次の対戦において、新しい景品情報が第1ユーザに付与されることはない。結果として、より多くのユーザに景品情報を付与することができる。
<処理の詳細:対戦が途中終了した場合>
図14は、本実施形態に係るゲームサイクル実行処理の流れの一例を示すフローチャートである。なお、図14に示すフローチャートにおいて、図3に示すフローチャートと同じ処理を実行するステップについては、同じステップ番号を付す。また、該ステップについてはここでの説明を繰り返さない。
ステップS501において、プロセッサ10は、ゲーム進行部112として、対戦を途中で終了させる。例えば、プロセッサ10は、操作受付部111として、本ゲームのアプリケーションを終了させる操作を受け付けた場合、アプリケーションを終了させる(結果として、対戦が途中で終了する)。また、例えば、プロセッサ10は、他のユーザのユーザ端末100との通信が不可能となった場合、対戦を途中で終了させる。他のユーザのユーザ端末100との通信が不可能となる原因としては、他のユーザのユーザ端末100において、本ゲームのアプリケーションが終了した場合が挙げられる。すなわち、プロセッサ10が対戦を途中で終了させる処理は、ユーザが自発的に対戦を終了させることを含む。ただし、プロセッサ10が対戦を途中で終了させる処理は、ユーザが自発的に対戦を終了させることに限定されない。例えば、いずれかのユーザ端末100が通信不可能な位置(通信圏外)に移動した場合、サーバ200にトラブル(サーバ落ちなど)が発生した場合、プロセッサ10は対戦を途中で終了させる。
ステップS501の処理が実行されると、ゲームサイクル実行処理は終了する。つまり、プロセッサ10は、抽選結果確定部116としての抽選結果の確定を行わない。また、プロセッサ20は、権利付与部216としての確定後処理を行わない。確定後処理が行われないために、対戦を行った各ユーザのユーザIDは、ステータスが変更されることなく抽選データベースに保持される。
この結果、次の対戦の抽選処理において、プロセッサ20は、抽選データベースに格納されたユーザのステータスに従って抽選結果を決定する。この処理については、既に説明しているため、ここでは説明を繰り返さない(図5のステップS307参照)が、前回の抽選結果が「当選」である場合、今回の抽選結果も「当選」となる。一方、前回の抽選結果が「落選」である場合、今回の抽選結果も「落選」となる。
なお、対戦が途中で終了した場合、該対戦に参加したユーザのユーザIDは、抽選データベースにおいてレコードごと保持される。すなわち、該ユーザの抽選結果が当選であった場合、ユーザIDに関連付けられたシリアルコードも保持される。次の対戦において、対戦が正常に終了した場合、プロセッサ20は、権利付与部216として、抽選データベースにおいて該ユーザのユーザIDに関連付けられたシリアルコードをユーザ端末100へ送信する。つまり、先の対戦、すなわち、途中で終了した対戦に係る抽選においてユーザIDに関連付けられたシリアルコードが、次の対戦、すなわち、正常に終了した対戦の終了後にユーザに付与される。
ただし、このように構成した場合、以下に示す問題が発生する可能性がある。すなわち、途中で終了した対戦を含むゲームサイクルと、該対戦の次の正常に終了した対戦を含むゲームサイクルとの間に日付が変わった場合に、ユーザに、前日のシリアルコードが付与されてしまう。この場合、プロセッサ20は例外処理を実行する。以下、該例外処理の詳細を説明する。
<処理概要:例外処理>
一例として、ユーザ端末100は、ゲームプログラム121に基づいて、第1時刻に日付を1日進めるステップをさらに実行する。第1日付の翌日である第2日付のゲームサイクルであって、第1条件が成立した第1サイクルの次のゲームサイクルである第3サイクルにおいて、第1ユーザに関連付けられて保持されていた第1景品情報が、第2日付の景品のいずれかに対応する第2景品情報に変更され、第3サイクルにおける付与するステップでは、第3サイクルにおける対戦の結果が決定した場合、第2タイミングにて、第1権利として第2景品情報を付与する。
上記の構成によれば、途中で終了した対戦を含むゲームサイクルと、該対戦の次の対戦を含むゲームサイクルとの間に日付が変わった場合には、第1ユーザに関連付けられて保持されていた第1景品情報が、次の日付の景品情報である第2景品情報に変更される。該次の対戦が正常に終了した場合、第1ユーザには、第2景品情報が付与される。これにより、第1ユーザに前日の景品情報が付与されることを防ぐことができる。
<処理の詳細:例外処理>
図15は、抽選データベースおよびシリアルコードデータベースの一具体例を示す図である。具体的には、図15に示す抽選データベースは、図6に示す抽選データベースの翌日の抽選データベースである。
プロセッサ10は、ゲーム進行部112として、所定の時刻にゲーム内の日付を1日進める。該時刻は、例えば16時であってもよい。つまり、本ゲームの日付は、現実世界の16時に1日進む。
図6に示す抽選データベースにユーザID「AAAAA」が格納されたユーザが参加した対戦(テニスの試合)が、3/11に途中で終了したとする。換言すれば、該ユーザのレコードは、ステータスが「予約中」のまま抽選データベースに保持されているものとする。そして、該ユーザは、16時以降、すなわち、ゲーム内の日付が3/12になった後に、次の対戦に参加するための操作を行ったとする。換言すれば、該ユーザは、ゲーム内の日付が3/12になった後に、次のゲームサイクルにおける第1パートを開始するための操作を行ったとする。
プロセッサ20は、該ユーザのユーザ端末100からのマッチング要求を受信すると、マッチングを行い、抽選処理において抽選データベースを参照する。抽選データベースには該ユーザのユーザIDを含むレコードが格納されていると共に、該ユーザIDに関連付けられたシリアルコードは、3/11のシリアルコード(アルファベットが「A」)である。プロセッサ20は、該シリアルコード「0123A」を、3/12のシリアルコードデータベースのいずれかのシリアルコードに更新する。図15(A)の例では、プロセッサ20は、「0123A」を、「0001B」に更新している。そして、プロセッサ20は、図15(B)に示すように、シリアルコードデータベースにおける「0001B」のステータスを、「未発行」から「発行済」に更新する。
これにより、次の対戦(3/12の対戦)が正常に終了した場合、該ユーザに、3/12のシリアルコードを付与することができる。
<処理概要:ゲームサイクル中の日付変更>
本ゲームでは、抽選の実行および抽選結果の付与と、抽選結果の確定との間にタイムラグがある。このため、抽選の実行および抽選結果の付与と、抽選結果の確定との間にゲーム内の日付が1日進む可能性がある。以下、この場合の処理について説明する。
一例として、ゲームにおける日付の各々において、景品の数には上限が設定されており、ユーザ端末100は、ゲームプログラム121に基づいて、第1時刻に日付を1日進めるステップをさらに実行し、抽選の結果が当選であり、かつ、対戦の結果が決定した場合において、付与するステップでは、第1タイミングおよび第2タイミングがいずれも日付のうちの第1日付に含まれる場合、第2タイミングにて、第1日付の景品のいずれかを示す第1景品情報を前記第1権利として付与し、第1タイミングおよび第2タイミングがいずれも第1日付の翌日である第2日付に含まれる場合、第2タイミングにて、第2日付の景品のいずれかを示す第2景品情報を第1権利として付与し、第1タイミングが第1日付に含まれ、第2タイミングが第2日付に含まれるとの第2条件が成立した場合、第2タイミングにて、第1景品情報を第1権利として付与する。
上記の構成によれば、第1タイミングと第2タイミングとの間で日付が1日進んだ場合には、当選との抽選結果が確定した場合に前日(第1日付)の景品情報をユーザに付与する。これにより、本日(第2日付)の景品情報が減ることが無いので、より多くのユーザに景品情報を付与することができる。
一例として、複数の日付からなる、抽選が行われる第1期間が設定されており、抽選の結果が当選であり、対戦の結果が決定し、かつ、第2条件が成立した場合において、付与するステップでは、第1日付と第2日付とがいずれも第1期間中である場合、第2タイミングにて、第1景品情報を第1権利として付与する一方、第1日付が第1期間中であり、第2日付が第1期間中でない場合、第1権利を付与しない。
上記の構成によれば、第1タイミングと第2タイミングとの間で日付が1日進んだ結果、第2タイミングが第1期間外となった場合、当選との抽選結果が確定したとしてもユーザに第1権利を付与しない。これにより、第1権利が付与される期間外にユーザに第1権利が付与されるという状況を防ぐことができる。
<処理の詳細:ゲームサイクル中の日付変更>
図16は、ゲームサイクル中に日付変更が発生した場合のシリアルコードの付与の一具体例を説明する図である。図16(A)に示すように、シリアルコードの付与が行われるイベントの実施期間は、3/11~3/17であるとする。
図16(B)および図16(C)は、いずれも、ゲーム内の日付が1日進む直前の時刻である15:59に抽選が行われ、該抽選の結果が当選であり、日付が1日進んだ後で対戦が終了し、当選が確定した例を示している。図16(B)の例と図16(C)の例との相違点は、図16(B)の例が、1日進んだ後の日付が実施期間中(3/12)であるのに対し、図16(C)の例は、1日進んだ後の日付が実施期間外(3/18)である点である。
図16(B)の例では、プロセッサ20は、権利付与部216として、前日(3/11)に特定されたシリアルコードである「4625A」を、当選したユーザのユーザ端末100に送信する。すなわち、該ユーザは、3/11分のシリアルコードを、3/12に付与されることとなる。
一方、図16(C)の例では、プロセッサ20は、前日(3/17)に特定されたシリアルコードである「4625G」を、当選したユーザのユーザ端末100に送信しない。すなわちユーザは、当選したものの、対戦がイベントの実施期間内に終了しなかったため、シリアルコードを獲得することができない。
<変形例>
一例として、ユーザ端末100は、ゲームプログラム121に基づいて、ゲームサイクルの前に、第1ユーザの操作に応答して、複数種類の景品のうちのいずれかを選択するステップをさらに実行し、選択するステップでは、前回のゲームサイクルにおいて確定させるステップが実行されなかった場合、前回の選択するステップにて選択された景品以外を選択不可能としてもよい。
すなわち、現実世界で使用できる景品は複数種類の景品であってもよい。例えば、外径品は、複数種類の(例えば、対象となる商品、あるいは、使用できる店舗がそれぞれ異なる)電子クーポンであってもよい。プロセッサ10は、操作受付部111として、複数種類の景品のいずれかを選択する操作を受け付ける。該操作は、複数種類の景品それぞれを示すUIオブジェクトのいずれかに対するタップ操作であってもよい。
プロセッサ10は、一例として、いずれかのUIオブジェクトへのタップ操作を受け付けると、タップされなかったUIオブジェクトを、タップ操作を受け付けない状態とする。「タップ操作を受け付けない状態」とは、例えば、該タップ操作をトリガとして実行される処理を、プロセッサ10が実行しない状態である。
プロセッサ10は、対戦が正常に終了した場合、換言すれば、抽選結果が確定した場合、UIオブジェクトの、タップ操作を受け付けない状態を解除する解除処理を実行する。一方、プロセッサ10は、対戦が途中で終了した場合、換言すれば、抽選結果が確定しなかった場合、該解除処理を実行しない。その結果、UIオブジェクトにおける、タップ操作を受け付けない状態が保持される。すなわち、前回の対戦が途中で終了した場合、次の対戦の前には前回選択したUIオブジェクトのみが、タップ操作を受け付ける状態となっている。換言すれば、ユーザは、前回の対戦が途中で終了した場合、前回選択したUIオブジェクトのみ選択することができる。このように構成することで、ユーザが抽選の結果として落選を提示された結果、より早く次の抽選を行わせるために、対戦を途中で終了させて、次の対戦を行なう行為(いわゆる、リセマラ(リセットマラソン)に近い行為)を防ぐことができる。
上述した実施形態では、あたりドリンクの取得は、抽選結果の確定の必要条件ではなかった。これに対し、あたりドリンクの取得が、抽選結果の確定の必要条件であってもよい。この変形例において、プロセッサ10は、抽選結果確定部116として、対戦が正常に終了した場合、あたりドリンクが取得されたか否かを判定する。あたりドリンクが取得されたと判定した場合、プロセッサ10は、抽選結果確定部116として、ユーザの当選を確定させる。一方、あたりドリンクが取得されなかったと判定した場合、プロセッサ10は、抽選結果確定部116として、ユーザの当選を無効とする(当選を未確定とする)。具体的には、プロセッサ10は、抽選結果確定部116として、PC310が取得したドリンクのIDのみを、サーバ200に送信する。このように構成すれば、PC310があたりドリンクを取得しなかった場合、あたりドリンクのIDがサーバ200に送信されないので、シリアルコードがサーバ200から送信されることもない。
上述した実施形態では、通常のドリンク390Bは1種類であった。これに対して、本ゲームにおいて、通常のドリンク、換言すれば、あたりドリンクでないドリンクとして、複数種類のドリンクが存在してもよい。該複数種類のドリンクは、例えば、スタミナの回復量がそれぞれ異なるものであってもよい。この変形例に係るドリンクテーブルは、あたりドリンクでないドリンクの回復アイテムIDとして、複数種類のIDを含む。抽選結果が「当選」である場合のドリンクテーブルは、最初のドリンク投入においてあたりドリンクを投入するため、該複数種類のIDの各々に対応付けられた投入確率はいずれも0%である。一方、抽選結果が「落選」である場合のドリンクテーブルは、該複数種類のIDの各々に対応付けられた投入確率の合計が100%になるように、該複数種類のIDの各々に任意の投入確率が対応付けられている。なお、複数種類のドリンクの個数としては、無制限を示す「-」が格納されてもよいし、任意の数字が格納されてもよい。
また、プロセッサ20は、ユーザ端末100へ送信するドリンクテーブルを、格納されているドリンク(通常のドリンク)の種類、投入確率、および個数のうち、少なくとも1つが異なる複数種類のドリンクテーブルから抽選により選択する構成であってもよい。このような構成を前提として、プロセッサ20は、ユーザの抽選(シリアルコードを付与するか否かを決める抽選)が「当選」となった場合、あたりドリンクを含むドリンクテーブルを選択することとなる。このため、プロセッサ20が実行するプログラム(例えば、ゲームプログラム221)を大きく変更することなく、シリアルコードを付与するか否かを決める抽選を実現することができる。
図4に示すゲーム画面において、ユーザ端末のユーザにシリアルコードが付与されている場合、プロセッサ10は、表示制御部114として、UIオブジェクト420に代えて、シリアルコードを付与済であることをユーザに通知するUIオブジェクトを該ゲーム画面に含めてもよい。
上述した実施形態では、本ゲームの一例として、テニスゲームを説明した。これに対し、本ゲームは上述したとおりテニスゲームに限定されない。例えば、本ゲームは、シングルプレイのRPGであってもよい。この例の場合、プロセッサ20は、抽選および抽選結果の送信を、例えば、イベントに係る特別クエストが選択されてから、特別クエストが開始されるまでの任意のタイミングで実行してもよい。具体的には、プロセッサ10は、操作受付部111として、特別クエストを開始するための操作(例えば、特別クエストを示すUIオブジェクトへのタップ操作)を受け付けると、その旨をサーバ200へ通知する。プロセッサ20は、抽選部215として、抽選結果をユーザ端末100へ送信する。
特別クエストには、例えば、所定の敵キャラクタ(以下、「第1敵キャラクタ」と称する)が出現してもよい。この例において、抽選結果が「落選」である場合、通常の第1敵キャラクタが出現する。一方、抽選結果が「当選」である場合、「当選」であることをユーザに提示するために、通常とは異なる態様の第1敵キャラクタが出現する。「通常とは異なる態様の第1敵キャラクタ」とは、例えば、通常の第1敵キャラクタと色が異なってもよいし、通常の第1敵キャラクタに無いエフェクトがあってもよい。換言すれば、通常の第1敵キャラクタと異なることをユーザが認識できる態様であれば、その態様の違いは特に限定されない。また、第1敵キャラクタとの戦闘に勝利することは、抽選結果の確定の必要条件であってもよいし、必要条件でなくてもよい。後者の場合、特別クエストをユーザがクリアできなくても、抽選結果が「当選」であり、かつ、クエストを途中で終了させなければ、ユーザにシリアルコードが付与されることとなる。
ユーザに付与される第1権利はシリアルコードに限定されない。例えば、サーバ200は、第1権利として、URL(Uniform Resource Locator)をユーザ端末100に送付してもよい。ユーザがユーザ端末100を操作して該URLにアクセスすると、例えば、住所を入力するユーザインターフェースが表示される。ユーザは、該ユーザインターフェースに住所を入力し、景品獲得に関するサーバ(例えば、サーバ200であってもよい)に該住所を送信する。この結果、ユーザの入力した住所に景品が配送される。
第1権利を行使することによりユーザが獲得することができる景品は、現実世界で使用できる景品に限定されない。該景品は、例えば、ゲーム内で使用できる景品(いわゆる、ゲーム内報酬)であってもよい。
〔ソフトウェアによる実現例〕
ユーザ端末100の制御ブロック(特に制御部110の各部)、および、サーバ200の制御ブロック(特に制御部210の各部)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。
後者の場合、ユーザ端末100およびサーバ200は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば1つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばCPU(Central Processing Unit)を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ROM(Read Only Memory)等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するRAM(Random Access Memory)などをさらに備えていてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
以上、本開示の実施形態について説明したが、本発明の技術的範囲は、本実施形態の説明によって限定的に解釈されるべきではない。本実施形態は一例であって、特許請求の範囲に記載された発明の範囲内において、様々な実施形態の変更が可能であることが当業者によって理解されるところである。本発明の技術的範囲は、特許請求の範囲に記載された発明の範囲およびその均等の範囲に基づいて定められるべきである。
〔付記事項〕
本発明の一側面に係る内容を列記すると以下のとおりである。
(項目1) ゲームプログラムについて説明した。本開示のある局面によると、ゲームプログラム(ゲームプログラム121)は、プロセッサ(プロセッサ10)およびメモリ(メモリ11)を備えたコンピュータ(ユーザ端末100)によって実行される。ゲームプログラムは、プロセッサに、ゲームプログラムに基づくゲームのメインパートを進行させるための準備を行う第1パートを進行させるステップ(ステップS101)と、ゲームのメインパートである第2パートを進行させるステップ(ステップS102、S103)と、第1パートおよび第2パートからなるゲームサイクル中の第1タイミングにおいて、ゲームサイクル中に行われた抽選の結果を取得するステップと、ゲームサイクル中の、第1タイミングより後の第2タイミングにおいて、抽選の結果を確定させるステップ(ステップS105)と、取得するステップにて取得した抽選の結果が当選であり、かつ、確定させるステップにて抽選の結果が確定された場合、現実世界で使用できる景品を獲得する第1権利をコンピュータのユーザである第1ユーザに付与するステップ(ステップS107)と、を実行させる。
(項目2) (項目1)において、取得するステップでは、第1パート中に行われた抽選の結果を、第1パート中の第1タイミングにおいて取得する。確定させるステップでは、第2パート中の第2タイミングにおいて抽選の結果を確定させる。
(項目3) (項目2)において、第2パートを進行させるステップでは、第2パートとして、第1ユーザの操作に応じて動作する第1キャラクタと、他のコンピュータのユーザである第2ユーザの操作に応じて動作する第2キャラクタとが少なくとも参加する対戦を進行させる。第1パートを進行させるステップでは、第1パートとして、第1ユーザと第2ユーザとのマッチングが実行される。抽選は、マッチング中に行われる。確定させるステップでは、対戦の結果の決定以後の第2タイミングにおいて抽選の結果を確定させる。
(項目4) (項目3)において、ゲームプログラムは、プロセッサに、対戦の結果の決定以前の第3タイミングにおいて、抽選の結果を提示するステップ(ステップS104)をさらに実行させる。
(項目5) (項目4)において、提示するステップでは、対戦中に実行されるゲーム処理を利用して、抽選の結果を提示する。
(項目6) (項目4)または(項目5)において、提示するステップでは、第1ユーザの抽選の結果と、第2ユーザの抽選の結果とを同時に提示し、第1ユーザの抽選の結果が当選である場合、第1演出をさらに実行する一方、第2ユーザの抽選の結果が当選であっても、第2ユーザの当選に基づく第1演出は実行しない。
(項目7) (項目4)から(項目6)のいずれか1項目において、付与するステップでは、取得するステップにて取得した抽選の結果が落選である場合、または、確定させるステップが実行されなかった場合、第1権利を第1ユーザに付与しない。
(項目8) (項目7)において、付与するステップでは、第1ユーザまたは第2ユーザが対戦を途中で終了させたことにより、確定させるステップが実行されなかった場合、第1ユーザの抽選の結果が当選であったとしても第1権利を第1ユーザに付与しない。
(項目9) (項目8)において、第1ユーザまたは第2ユーザが対戦を途中で終了させた場合、該対戦を含むゲームサイクルにおける抽選の結果が、第1ユーザに関連付けられて保持される。取得するステップでは、前回の対戦における抽選の結果が保持されている場合、該抽選の結果を取得する。
(項目10) (項目9)において、ゲームにおける日付の各々において、景品の数には上限が設定されている。該抽選が行われた日付である第1日付のゲームサイクルである第1サイクルにおいて、抽選の結果が当選であり、かつ、対戦の結果が決定した場合、付与するステップでは、第2タイミングにて、第1日付の景品のいずれかを示す第1景品情報を第1権利として付与し、抽選の結果が当選であり、かつ、対戦の結果の決定前に対戦が終了したとの第1条件が成立した場合、付与するステップでは第1景品情報を付与せず、第1景品情報は、該抽選の結果とともに第1ユーザに関連付けられて保持される。第1日付のゲームサイクルであって、第1条件が成立した第1サイクルの次のゲームサイクルである第2サイクルにおいて、付与するステップでは、第2サイクルにおける対戦の結果が決定した場合、第2タイミングにて、保持されていた第1景品情報を第1権利として付与する。
(項目11) (項目10)において、プログラムは、プロセッサに、第1時刻に日付を1日進めるステップをさらに実行させる。第1日付の翌日である第2日付のゲームサイクルであって、第1条件が成立した第1サイクルの次の前記ゲームサイクルである第3サイクルにおいて、第1ユーザに関連付けられて保持されていた第1景品情報が、第2日付の景品のいずれかに対応する第2景品情報に変更される。第3サイクルにおける付与するステップでは、第3サイクルにおける対戦の結果が決定した場合、第2タイミングにて、第1権利として第2景品情報を付与する。
(項目12) (項目3)から(項目11)のいずれか1項目において、ゲームにおける日付の各々において、景品の数には上限が設定されている。プログラムは、プロセッサに、第1時刻に日付を1日進めるステップをさらに実行させる。抽選の結果が当選であり、かつ、対戦の結果が決定した場合において、付与するステップでは、第1タイミングおよび第2タイミングがいずれも日付のうちの第1日付に含まれる場合、第2タイミングにて、第1日付の景品のいずれかを示す第1景品情報を第1権利として付与し、第1タイミングおよび第2タイミングがいずれも第1日付の翌日である第2日付に含まれる場合、第2タイミングにて、第2日付の景品のいずれかを示す第2景品情報を第1権利として付与し、第1タイミングが第1日付に含まれ、第2タイミングが第2日付に含まれるとの第2条件が成立した場合、第2タイミングにて、第1景品情報を第1権利として付与する。
(項目13) (項目12)において、複数の日付からなる、抽選が行われる第1期間が設定されている。抽選の結果が当選であり、対戦の結果が決定し、かつ、第2条件が成立した場合において、付与するステップでは、第1日付と第2日付とがいずれも第1期間中である場合、第2タイミングにて、第1景品情報を第1権利として付与する一方、第1日付が第1期間中であり、第2日付が第1期間中でない場合、第1権利を付与しない。
(項目14) (項目3)から(項目13)のいずれか1項目において、ゲームプログラムは、プロセッサに、ゲームサイクルの前に、第1ユーザの操作に応答して、複数種類の景品のうちのいずれかを選択するステップをさらに実行させる。選択するステップでは、前回のゲームサイクルにおいて確定させるステップが実行されなかった場合、前回の選択するステップにて選択された景品以外を選択不可能とする。
(項目15) 情報処理装置について説明した。本開示のある局面によると、情報処理装置(ユーザ端末100)は、ゲームプログラム(ゲームプログラム121)を記憶する記憶部(メモリ11、記憶部120)と、ゲームプログラムを実行することにより、情報処理装置の動作を制御する制御部(プロセッサ10、制御部110)と、を備える。制御部は、ゲームプログラムに基づくゲームのメインパートを進行させるための準備を行う第1パートを進行させ、ゲームのメインパートである第2パートを進行させ、第1パートおよび第2パートからなるゲームサイクル中の第1タイミングにおいて、ゲームサイクル中に行われた抽選の結果を取得し、ゲームサイクル中の、第1タイミングより後の第2タイミングにおいて、抽選の結果を確定させ、取得した抽選の結果が当選であり、かつ、抽選の結果が確定された場合、現実世界で使用できる景品を獲得する第1権利を情報処理装置のユーザである第1ユーザに付与する。
(項目16) ゲームプログラムを実行する方法について説明した。本開示のある局面によると、ゲームプログラム(ゲームプログラム121)は、プロセッサ(プロセッサ10)およびメモリ(メモリ11)を備えたコンピュータ(ユーザ端末100)によって実行される。方法は、プロセッサが、ゲームプログラムに基づくゲームのメインパートを進行させるための準備を行う第1パートを進行させるステップ(ステップS101)と、ゲームのメインパートである第2パートを進行させるステップ(ステップS102、S103)と、第1パートおよび第2パートからなるゲームサイクル中の第1タイミングにおいて、ゲームサイクル中に行われた抽選の結果を取得するステップと、ゲームサイクル中の、第1タイミングより後の第2タイミングにおいて、抽選の結果を確定させるステップ(ステップS105)と、取得するステップにて取得した抽選の結果が当選であり、かつ、確定させるステップにて抽選の結果が確定された場合、現実世界で使用できる景品を獲得する第1権利をコンピュータのユーザである第1ユーザに付与するステップ(ステップS107)と、を含む。