以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
<実施の形態1>
本実施形態において、ユーザは、例えばスマートフォンなどの、タッチスクリーンを搭載した情報処理装置を操作して、ゲームサーバと、スマートフォンとの間でゲームに関するデータを送受信しながらゲームを進行させる。ゲームは、ユーザが一人でプレイするシングルプレイと、ユーザが他のユーザとともにプレイするマルチプレイとに対応する。
図1は、実施の形態のゲーム配信システム1の構成を示す図である。図1に示すように、ゲーム配信システム1は、ユーザが使用する情報処理装置と、サーバ20とを含み、これらの装置がネットワーク80によって互いに通信可能に接続されている。
図1の例では、ユーザが使用する情報処理装置として、携帯端末10A、携帯端末10Bおよび携帯端末10C(以下、携帯端末10A、10B、10Cなどの携帯端末を総称して「携帯端末10」と記載することもある)など複数の携帯端末を示している。携帯端末10Aと携帯端末10Bとは、無線基地局81と通信することにより、ネットワーク80と接続する。携帯端末10Cは、家屋などの施設に設置される無線ルータ82と通信することにより、ネットワーク80と接続する。携帯端末10は、タッチスクリーンを備える端末であり、例えば、スマートフォン、ファブレット、タブレットなどである。
携帯端末10は、ゲームプログラムを実行することにより、ゲームプログラムに応じたゲームをプレイする環境をユーザに対して提供する。携帯端末10は、例えば、アプリ等を配信するプラットフォームを介してゲームプログラムをインストールする。携帯端末10は、携帯端末10にインストールされたゲームプログラム、または、予めプリインストールされているゲームプログラムを実行することで、ユーザによるゲームのプレイを可能とする。携帯端末10は、ゲームプログラムを読み込んで実行することにより、携帯端末10と、サーバ20とを通信接続して、ゲームの進行に応じてゲームに関連するデータを携帯端末10とサーバ20との間で送受信する。
サーバ20は、ゲームのプレイに必要なデータを、適宜、携帯端末10へ送信することで、携帯端末10でのゲームのプレイを進行させる。サーバ20は、ゲームをプレイする各ユーザの、ゲームに関連する各種データを管理する。サーバ20は、携帯端末10と通信し、各ユーザのゲームの進行に応じて、画像、音声、テキストデータその他のデータを携帯端末10へ送信する。
例えば、サーバ20は、各ユーザがゲームのストーリーを進行させた進行状況、ゲーム内に登場するゲームキャラクタのうち各ユーザが使用可能なゲームキャラクタの情報、ゲームキャラクタの能力を示すパラメータ、ゲームキャラクタが使用する道具の性能を示すパラメータその他の各種データを管理する。また、サーバ20は、ゲームの運営者がユーザに対してキャンペーン、ゲームの進行における不具合の発生、不具合の解消その他のゲームの運営に関連する情報等をユーザに通知する処理を行う。
ゲームプログラムは、ユーザがゲームをプレイするモードとして、一人のユーザがプレイする場合(シングルプレイ)と、複数人のユーザが協同してプレイする場合(マルチプレイ)とに対応している。例えば、ゲーム配信システム1において、サーバ20が、マルチプレイに参加するユーザを特定して各ユーザの各携帯端末10と通信すること等により、マルチプレイでゲームをプレイする環境を各ユーザに提供する。
ゲーム配信システム1は、マルチプレイに対応することにより、例えば、アクションゲームであれば、ユーザ同士が共闘してゲームに登場するゲームキャラクタと戦うこと、または、ユーザとユーザとが対戦することを可能とする。
<構成>
サーバ20のハードウェアの構成を説明する。サーバ20は、通信IF(Interface)22と、入出力IF23と、メモリ25と、ストレージ26と、プロセッサ29とを備え、これらが通信バスを介して互いに接続する。
通信IF22は、例えばLAN(Local Area Network)規格など各種の通信規格に対応しており、携帯端末10など外部の通信機器との間でデータを送受信するためのインタフェースとして機能する。
入出力IF23は、サーバ20への情報の入力を受け付けるとともに、サーバ20の外部へ情報を出力するためのインタフェースとして機能する。入出力IF23は、マウス、キーボード等の情報入力機器の接続を受け付ける入力受付部と、画像等を表示するためのディスプレイ等の情報出力機器の接続を受け付ける出力部とを含む。
メモリ25は、処理に使用されるデータ等を記憶するための記憶装置である。メモリ25は、例えば、プロセッサ29が処理を行う際に一時的に使用するための作業領域をプロセッサ29に提供する。メモリ25は、ROM(Read Only Memory)、RAM(Random Access Memory)等の記憶装置を含んで構成されている。
ストレージ26は、プロセッサ29が読み込んで実行するための各種プログラム及びデータを記憶するための記憶装置である。ストレージ26が記憶する情報は、ゲームプログラム、ゲームプログラムに関連する情報、ゲームプログラムをプレイするユーザの情報その他の情報を含む。ストレージ26は、HDD(Hard Disk Drive)、フラッシュメモリ等の記憶装置を含んで構成されている。
プロセッサ29は、ストレージ26に記憶されるプログラム等を読み込んで実行することにより、サーバ20の動作を制御する。プロセッサ29は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等を含んで構成される。
図2は、携帯端末10の構成を示すブロック図である。図2を参照して、携帯端末10は、アンテナ110と、無線通信IF120と、タッチスクリーン130と、入出力IF140と、記憶部150と、音声処理部160と、マイク170と、スピーカ180と、制御部190とを含む。
アンテナ110は、携帯端末10が発する信号を電波として空間へ放射する。また、アンテナ110は、空間から電波を受信して受信信号を無線通信IF120へ与える。
無線通信IF120は、携帯端末10が他の通信機器と通信するため、アンテナ110等を介して信号を送受信するための変復調処理などを行う。無線通信IF120は、チューナー、高周波回路などを含む無線通信用の通信モジュールであり、携帯端末10が送受信する無線信号の変復調や周波数変換を行い、受信信号を制御部190へ与える。
タッチスクリーン130は、ユーザからの入力を受け付けて、ユーザに対し情報をディスプレイ132に出力する。タッチスクリーン130は、ユーザの入力操作を受け付けるための部材(タッチパネル131)を含む。また、タッチスクリーン130は、メニュー画面や、ゲームの進行を画面に表示するための部材(ディスプレイ132)を含む。タッチパネル131は、例えば静電容量方式のものを用いることによって、ユーザの指などが接近したことを検出する。ディスプレイ132は、例えばLCD(Liquid Crystal Display)、有機EL(electroluminescence)その他の表示装置によって実現される。
入出力IF140は、携帯端末10への情報の入力を受け付けるとともに、携帯端末10の外部へ情報を出力するためのインタフェースとして機能する。
記憶部150は、フラッシュメモリ、RAM(Random Access Memory)等により構成され、携帯端末10が使用するプログラム、および、携帯端末10がサーバ20から受信する各種データ等を記憶する。
音声処理部160は、音声信号の変復調を行う。音声処理部160は、マイク170から与えられる信号を変調して、変調後の信号を制御部190へ与える。また、音声処理部160は、音声信号をスピーカ180へ与える。音声処理部160は、例えば、音声処理用のプロセッサによって実現される。マイク170は、音声信号の入力を受け付けて制御部190へ出力するための音声入力部として機能する。スピーカ180は、音声信号を、携帯端末10の外部へ出力するための音声出力部として機能する。
制御部190は、記憶部150に記憶されるプログラムを読み込んで実行することにより、携帯端末10の動作を制御する。制御部190は、例えば、アプリケーションプロセッサによって実現される。
携帯端末10がゲームプログラム151を実行する処理について、より詳細に説明する。ある局面において、記憶部150は、ゲームプログラム151と、ゲーム情報152と、ユーザ情報153とを記憶する。携帯端末10は、例えば、サーバ20からゲームプログラムをダウンロードして記憶部150に記憶させる。また、携帯端末10は、ゲームの進行に伴いサーバ20と通信することで、ゲーム情報152およびユーザ情報153等の各種のデータをサーバ20と送受信する。
ゲームプログラム151は、携帯端末10においてゲームを進行させるためのプログラムである。ゲーム情報152は、ゲームプログラム151が参照する各種のデータを含む。ゲーム情報152は、例えば、ゲームにおいて仮想空間に配置するオブジェクトの情報、オブジェクトに対応付けられた効果の情報(ゲームキャラクタに設定されるスキルの情報などを含む)などを含む。ユーザ情報153は、ゲームをプレイするユーザについての情報を含む。ユーザ情報153は、例えば、ゲームをプレイする携帯端末10のユーザを識別する情報、マルチプレイ時に協同してゲームをプレイする他のユーザを識別する情報その他の情報を含む。
制御部190は、ゲームプログラム151を読み込んで実行することにより、入力操作受付部191と、ゲーム進行処理部192と、移動操作検出部193と、カメラ配置制御部194と、オブジェクト制御部195と、表示制御部196と、の各機能を発揮する。
入力操作受付部191は、タッチスクリーン130の出力に基づいて、ユーザの入力操作を受け付ける。具体的には、入力操作受付部191は、ユーザの指などがタッチパネル131に接近したことを、タッチスクリーン130を構成する面の横軸および縦軸からなる座標系の座標として検出する。
入力操作受付部191は、タッチスクリーン130に対するユーザの操作を判別する。入力操作受付部191は、例えば、(1)「接近操作」、(2)「リリース操作」、(3)「タップ操作」、(4)「ダブルタップ操作」、(5)「長押し操作(ロングタッチ操作)」、(6)「ドラッグ操作(スワイプ操作)」、(7)「ムーブ操作」、(8)「フリック操作」、その他のユーザの操作を判別する。入力操作受付部191が判別するユーザの操作は、上記に限られない。例えば、タッチパネル131が、ユーザがタッチパネル131に対して押下する圧力の大きさを検出可能な機構を有する場合、入力操作受付部191は、ユーザが押下した圧力の大きさを判別する。また、制御部190は、タッチスクリーン130へのユーザの指などの接近を検出している状態を、「タッチオン状態」と判別する。制御部190は、タッチスクリーン130へのユーザの指などの接近を検出しない状態を、「タッチオフ状態」と判別する。制御部190は、タッチスクリーン130が逐次出力するユーザの指などの接近位置を示す座標を、「タッチナウ」の座標として受け付ける。
ここで、(1)「接近操作」とは、ユーザが指などをタッチスクリーン130に接近させる操作である。
(2)「リリース操作」とは、ユーザがタッチスクリーン130に指などを接近させることで操作する状態を止める操作である。入力操作受付部191は、例えば、ユーザが指などをタッチスクリーン130に接触させている状態から、指を離す操作をしたときに、ユーザの操作を「リリース操作」と判別する。
(3)「タップ操作」とは、ユーザがタッチスクリーン130に対して指などを接近させる接近操作をした後に、接近操作をした位置でリリース操作を行うことである。
(4)「ダブルタップ操作」とは、ユーザがタップ操作を一定時間内に2回行う操作である。入力操作受付部191は、例えば、ユーザの操作をタップ操作と判別してから一定時間内に、タップ操作にかかる座標で再びタップ操作を判別した場合に、ユーザの操作を「ダブルタップ操作」と判別する。
(5)「長押し操作」とは、ユーザがタッチスクリーン130を押し続ける操作である。タッチスクリーン130は、ユーザの操作を検出して接近操作を判別してから、接近操作が検出された座標において接近操作が継続している時間が一定時間を超えた場合に、ユーザの操作を「長押し操作」(「長押し操作」を、「ロングタッチ操作」と称することもある)と判別する。
(6)「ドラッグ操作」とは、ユーザがタッチスクリーン130に指などを接近させた接近状態を維持したまま、指をスライドさせる操作である。
(7)「ムーブ操作」とは、ユーザがタッチスクリーン130において、接近操作を維持しつつ、タッチスクリーン130に指などを接近させている位置を移動させてリリース操作を行う一連の操作をいう。
(8)「フリック操作」は、ユーザがムーブ操作を予め定められた時間よりも短い時間で行う操作をいう。フリック操作は、ユーザがタッチスクリーン130で指を弾くような操作である。
ゲーム進行処理部192は、ユーザの操作に応じて、各種のプログラムを呼び出す等によりゲームを進行させる処理を行う。例えば、ゲーム進行処理部192は、サーバ20と通信し、ユーザが他のユーザと対戦するため、マッチング要求などの各種の処理を行う。具体的には、ゲーム進行処理部は、ゲームの進行に応じてサーバ20へデータを送信する処理、サーバ20からゲームに関連するデータを受信する処理、ゲームの進行に応じてユーザに報酬を付与する処理、時間の経過を計測する処理その他の処理を行う。
移動操作検出部193は、タッチスクリーン130に対するユーザの入力操作に基づいて、ゲームに登場するキャラクタ(以下、「ゲームキャラクタ」と称することもある)を移動させる入力操作の操作内容を検出する。例えば、ゲームプログラム151がアクションゲーム、ロールプレイングゲーム、アクションロールプレイングゲームである場合、移動操作検出部193は、ユーザの入力操作に基づいて、ゲームキャラクタを移動させる方向を検出する。このように、移動操作検出部193は、ユーザがゲームキャラクタの移動方向を指定する入力操作を受け付ける。
具体的には、移動操作検出部193は、タッチスクリーン130からユーザの指が離れた状態から、ユーザが指をタッチスクリーン130に接近させて、入力操作受付部191がタッチパネル131にユーザの指が接近したことを検出した座標を初期タッチ位置として、ユーザがドラッグ操作を行った場合に、初期タッチ位置の座標とタッチスクリーン130の検出結果とに基づいて、ゲームキャラクタの移動方向を検出する。移動操作検出部193の詳細な処理は、後述する。
カメラ配置制御部194は、仮想空間に配置される各オブジェクトを、どのようにユーザに見せるかを決定する。具体的には、カメラ配置制御部194は、制御部190がゲームプログラム151を読み込んで実行することで生成される仮想空間において、仮想カメラの配置(カメラワーク)を制御する。制御部190は、仮想空間における仮想カメラの撮影画像をディスプレイ132に表示することで、ユーザに対しゲームのプレイ環境を提供する。
オブジェクト制御部195は、携帯端末10がゲームプログラム151を実行することにより進行されるゲームに登場する各種オブジェクト、および、入力操作受付部191が受け付けたユーザの操作内容に基づいて生成される各種オブジェクト(例えば、GUI(Graphical User Interface)画面など)の生成、変形、移動などの処理を制御する。オブジェクト制御部195は、例えば、ユーザがゲームキャラクタを移動させるためのタッチスクリーン130に対する入力操作に基づいて、ゲームキャラクタの移動方向を示すオブジェクトを生成し、生成したオブジェクトを変形する。
表示制御部196は、仮想カメラのカメラワークに従った画像をディスプレイ132に出力する。表示制御部196は、仮想空間内における仮想カメラの配置に応じて、ディスプレイ132の表示内容を決定し、決定した表示内容に従う画像、テキスト等の各種の情報をディスプレイ132に出力する。
ゲームプログラム151は、ユーザ同士で対戦する対戦ゲームにかかるものであり、ゲームプログラム151において、各ユーザのゲームプレイの内容に応じて各ユーザの対戦プレイにおける習熟状況を示す指標を管理するように構成されている。各ユーザの対戦プレイにおける習熟状況を示す指標としては、本実施形態では、(1)ユーザの習熟度を階層的に分類したランク指標と、(2)ユーザ同士のマッチングに使用するためのレーティングとを用いている。レーティングは、対戦プレイにおける勝敗結果と、対戦プレイにかかる各ユーザのレーティングの大きさとに基づき所定の演算により更新される。本実施形態のシステムでは、ユーザの直近の対戦の勝敗結果を参照して、連勝しているか連敗しているかに応じてレーティングを補正した抽選用レーティングを使用して、ユーザのマッチング処理を行っている。
(1)ユーザの強さを階層的に分類したランク指標について具体的に説明すると、このようなランク指標としては、ランク「初段」、ランク「二段」、高段位になるにつれて独自の名称を付与されるものであるとしてもよいし、複数の階層を数字で示し、高層建築のようにランク「1階」、ランク「2階」、・・・ランク「最上階」などの名称を付与されるものであるとしてもよく、これらに限られない。以下の実施形態の説明では、ランクがランク「1」(1階)からランク「100」(100階を最上階とし、最も高い最上位のランクであるとする)まである場合について説明する。各ユーザのランクは、定期的にリセットされることとしてもよい。この場合、ある程度、上層階に到達しているユーザに対しては(例えば、ランク「50」以上に到達しているユーザ)、ランクがリセットされる際に、一定程度のランクから(例えば、ランク「30」から)再スタートされることとしてもよい。こうすることで、対戦プレイの経験が浅いユーザは、低い階層(例えば、ランク「1」など)からスタートするとともに、対戦プレイの経験を積んだユーザは、一定以上の階層に集まることとなる。そのため、対戦プレイの技量の差が大きい初心者と熟練者とがマッチングしてしまう可能性を低くすることができ、対戦プレイの興趣性がいっそう向上する。
図3は、サーバ20の機能的な構成を示すブロック図である。図3を参照して、サーバ20の詳細な構成を説明する。サーバ20は、プログラムに従って動作することにより、通信部220と、記憶部250と、制御部290としての機能を発揮する。
通信部220は、サーバ20が携帯端末10などの外部の通信機器と通信するためのインタフェースとして機能する。
記憶部250は、携帯端末10においてユーザがゲームを進行させるための各種プログラムおよびデータを記憶する。ある局面において、記憶部250は、ゲームプログラム251と、ゲーム情報252と、ユーザ情報253とを記憶する。
ゲームプログラム251は、サーバ20が携帯端末10と通信して、携帯端末10においてゲームを進行させるためのプログラムである。ゲームプログラム251は、ゲームを進行させるための各種データであるゲーム情報252およびユーザ情報253等を参照して、ユーザの入力操作に応じてゲームを進行させる。ゲームプログラム251は、制御部290に実行されることにより、携帯端末10とデータを送受信する処理、携帯端末10のユーザが行った操作内容に応じてゲームを進行させる処理、ゲームをプレイするユーザの情報を更新する処理その他の処理をサーバ20に行わせる。
ゲーム情報252は、ゲームプログラム251が参照する各種のデータを含む。ゲーム情報252は、オブジェクト管理テーブル252Aと、パッシブスキル管理テーブル252Bと、アクティブスキル管理テーブル252Cとを含む。
オブジェクト管理テーブル252Aは、ゲームの仮想空間内に配置されるオブジェクトの設定を示す。携帯端末10は、ゲームプログラム151を実行することにより、仮想空間内に配置されるオブジェクトを、仮想空間内に配置される仮想カメラによって撮影した画像をディスプレイ132に表示することでゲームを進行させる。
ここで、オブジェクトとしては、例えば、ユーザが操作するゲームキャラクタを示すオブジェクト、ゲームキャラクタが装着する装着対象物を示すオブジェクトなど様々なものがある。制御部190は、ユーザがタッチスクリーン130に対して予め定められた入力操作を行うこと、ゲームの進行に伴い一定の条件を満たすこと、その他の様々な事象の発生を契機として、オブジェクトに対応付けられた処理を行う。
例えば、あるオブジェクトに対してユーザがタッチスクリーン130に対して接近操作を行うことで、制御部190は、オブジェクトを、ユーザによって選択された状態とする。また、例えば、制御部190は、ユーザによるドラッグ操作を受け付けることで、ユーザが移動対象とするオブジェクトを、ユーザの入力操作に応じて移動させる等の処理を行う。また、例えば、制御部190は、ユーザがオブジェクトに対して行うタッチ操作を受け付けることで、ユーザに対し、ゲームを有利に進めるための報酬を付与する等の処理を行う。
パッシブスキル管理テーブル252Bは、オブジェクトを識別する情報と、オブジェクトに対応付けられたパッシブスキルの情報とが対応付けられている。ここで、パッシブスキルとは、例えば、ゲームにおいて予め定められた条件が満たされたときに発動され、ユーザがゲームを有利に進行させることができるものである。例えば、パッシブスキルが発動した場合に、ゲームキャラクタの移動速度が向上する等の、ゲームを有利に進行させられる効果を発揮させる。
アクティブスキル管理テーブル252Cは、オブジェクトを識別する情報と、オブジェクトに対応付けられたアクティブスキルの情報とが対応付けられている。ここで、アクティブスキルとは、例えば、ゲームにおいて予め定められた条件が満たされたときに発動可能な状態となり、ユーザから、スキルを発動させるための入力操作を受け付けることにより、ユーザがゲームを有利に進行させることができるものである。
ユーザ情報253は、ゲームをプレイするユーザについての情報である。ユーザ情報253は、ユーザ管理テーブル253Aを含む。ユーザ管理テーブル253Aは、各ユーザを識別する情報と、ユーザがゲームを進行させた度合いを示す情報と、ユーザがゲーム内で保有するアイテム、ゲームキャラクタ、ゲームキャラクタが使用する装着物等の情報その他の情報を含む。
制御部290は、記憶部250に記憶されるゲームプログラム251を実行することにより、送受信部291、サーバ処理部292、データ管理部293、マッチング部294、計測部295としての機能を発揮する。
送受信部291は、ゲームプログラム151を実行する携帯端末10から、各種情報を受信し、携帯端末10に対し、各種情報を送信する。携帯端末10とサーバ20とは、ユーザに関連付けられるオブジェクトを仮想空間に配置する要求、オブジェクトを削除する要求、オブジェクトを移動させる要求、ユーザが獲得する報酬に応じて各種パラメータを更新する要求、ゲームを進行させるための画像、音声その他のデータ、サーバ20から携帯端末10へ送信される通知などの情報を送受信する。
サーバ処理部292は、サーバ20全体の動作を制御し、各種のプログラムを呼び出す等によりゲームの進行に必要な処理を行う。サーバ処理部292は、例えば、携帯端末10から受信した情報に基づいて、ゲーム情報252、ユーザ情報253などのデータを更新し、携帯端末10に各種データを送信することでゲームを進行させる。
データ管理部293は、サーバ処理部292の処理結果に従って、記憶部250に記憶される各種データを更新する処理、データベースにレコードを追加/更新/削除する処理などを行う。
マッチング部294は、複数のユーザを関連付けるための一連の処理を行う。マッチング部294は、例えば、ユーザが対戦プレイを行うための入力操作を行った場合に、対戦プレイのマッチングを要求する各ユーザ同士を関連付ける処理などを行う。
計測部295は、時間を計測する処理を行う。計測部295は、例えば、仮想空間に配置される各オブジェクトについて時間の経過を計測する。また、計測部295は、ゲームが進行している時間を計測する。サーバ20は、携帯端末10から、携帯端末10においてゲームプログラム151を実行して計測される各種の計測結果の情報を受信し、受信した情報と、計測部295の計測結果とを照合することで、携帯端末10とサーバ20とで、各種の時間に関する情報を同期させる。
図3の図示例(B)に、マッチング部294の機能的な構成の詳細を示す。図示するように、マッチング部294は、携帯端末10のユーザが抽選を行うための入力操作を行うことで、携帯端末10から、当該抽選をする入力操作が行われたことを受信して、ユーザ同士のマッチングを行う。
ランク指標管理部292Aは、対戦プレイにおけるユーザの習熟度を階層的に分類したランク指標を各ユーザについて管理する。具体的には、ランク指標管理部292Aは、対戦プレイにおける対戦結果に応じて、各ユーザのランク指標を維持または変更する処理などを行う。例えば、ユーザが属する階層において、ユーザが対戦プレイで所定回数の勝利を収めることで、ユーザが属する階層を、上位の階層へと更新する(例えば、3回の勝利など)。ユーザの階層を更新する処理は、これに限られず、対戦プレイの勝敗結果に応じて、様々に変化させうる。例えば、ユーザが属する階層において、一定回数の敗北を重ねることで、ユーザが属する階層を、下位の階層へと更新することとしてもよく、これらに限られない。また、ユーザが対戦プレイをしていない期間が長引くことによって(所定期間内の対戦プレイの回数が一定回数以下であるか否かによって)、階層をダウンさせることとしてもよい。
レーティング管理部292Bは、ユーザ同士のマッチングに使用するための各ユーザのレーティングを管理する。レーティング管理部292Bは、例えば、マッチングにより対戦プレイを行ったユーザ同士について、対戦前の各ユーザのレーティングの差分値と、対戦プレイの勝敗結果とに基づいて、対戦後の各ユーザのレーティングを更新する。レーティングとは、所定の演算式に基づき、ユーザ同士の勝敗結果と、各ユーザのレーティングとに基づいて更新される値であり、対戦プレイにおけるユーザの強さを表す指標として使用されている。レーティングは、例えば、初期値として値「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に従ってレーティングを計算すると、レーティングが高い方のユーザが、勝利したにもかかわらずレーティングが減少しうる。そのため、対戦前のレーティングから変動する幅に最大値および最小値を設定することで、ユーザの納得感を向上させることができる。
抽選用レーティング算出部292Cは、ユーザが対戦プレイを行う際に、直近の対戦プレイの勝敗結果に応じた補正値を、レーティングに加算または減算した抽選用レーティングを算出する。
トーナメント履歴管理部292Dは、トーナメントによる対戦プレイに応じてトーナメント履歴をユーザ毎に管理する。トーナメント履歴は、ユーザが参加中のトーナメントにおける勝利数、および当該トーナメントにおいて対戦したユーザ・参加したユーザ等を含む。トーナメント履歴管理部292Dは、トーナメントによる対戦プレイの対戦結果に応じて各ユーザのトーナメント履歴を更新する処理を行う。マッチング部294は、トーナメントによる対戦プレイの開始要求を受け付けているユーザのうちから、トーナメント履歴に基づき勝利数が同じユーザを特定し、特定されたユーザのうちからトーナメントにおいて対戦するユーザのマッチングを行う。
<実施の形態1の構成のまとめ>
以上のように、実施の形態のゲーム配信システム1の構成を説明してきた。本実施形態において、ゲームプログラム151は、例えば、スポーツゲームその他のゲームであり、仮想空間内の仮想カメラの配置に応じた画面をタッチスクリーン130に表示させることでゲームを進行させる。
例えば、ゲームプログラム151がスポーツゲーム(テニスゲーム、サッカーゲーム、野球ゲームその他のスポーツを題材としたゲーム)である場合、ゲーム進行処理部192は、ユーザの操作に応じて、例えば試合を進めるなどのストーリーを進行させる。ゲーム進行処理部192は、画像、テキストなどディスプレイ132に表示するデータを決定する処理、プレイ対象とする1以上のクエストをディスプレイ132に表示して、クエストの選択をユーザから受け付ける処理、ユーザの操作に応じて、クエストを進める処理などの基本的な処理を行う。
<データ構造>
図4から図6を参照して、ゲームプログラム251またはゲームプログラム151を実行する装置で使用するデータのデータ構造を説明する。
図4は、ユーザがゲームをプレイする進行状況を管理するためのテーブルのデータ構造を示す図である。図4に示すように、ユーザ管理テーブル253Aは、各ユーザのゲームプレイの進行状況を管理するためのプレイ進行状況256を含む。ゲームプレイの進行状況とは、例えば、各ユーザがゲームプレイにより蓄積した経験値、ユーザが使用可能なゲームキャラクタなどを含む。
図4に示すように、プレイ進行状況256の各レコードは、獲得経験値/レベル256Aと、使用可能キャラクタ256Bと、仮想通貨保有量256Cと、保有装備アイテム256Dと、保有消費アイテム256Eと、対戦プレイランク/レーティング256Fと、トーナメント履歴257Gと、トーナメント履歴257Gとを含む。
獲得経験値/レベル256Aは、各ユーザがクエストをクリアする等により獲得した経験値の累計値、および、当該経験値の累計値により定まるレベル値を含む。ゲームプログラム251は、例えば、ユーザが一定のレベルに達する都度、ユーザがプレイ可能な項目(例えば、一定レベル以上であればプレイ可能なクエスト、一定レベル以上であれば使用可能なシステム、アイテムなど)を含む。例えば、経験値の累計が一定の閾値を超える都度、ユーザのレベルが上昇する。
使用可能キャラクタ256Bは、ユーザが使用可能なキャラクタを示す。ゲームプログラム251は、ユーザに対し、複数のゲームキャラクタを提供しており、ユーザがクエストを進行させる、ユーザが抽選をするための入力操作をすることで抽選の結果としてゲームキャラクタを獲得する、その他の処理により、ユーザが使用可能なキャラクタのリストを更新する。なお、図4の例では図示していないが、ユーザが使用可能なキャラクタのうち、任意のゲームキャラクタを特定したパーティ編成を保持することとしてもよい。
仮想通貨保有量256Cは、ユーザが保有している仮想通貨の保有量を示す。仮想通貨は、例えば、ゲーム内で消費されるアイテムを入手するため、抽選を行うためその他の操作を行うために使用することができる。ゲーム進行処理部192は、仮想通貨を使用してアイテムを購入する、抽選を行う等の入力操作を受け付けて、仮想通貨の保有量を変動させる。ここで、ゲームプログラム251は、仮想通貨を有償でユーザに提供した量と、無償でユーザに提供した量とをそれぞれ管理することとしてもよい。これら仮想通貨には、使用可能な有効期限(例えば、有償の仮想通貨について、仮想通貨の購入時点から6か月以内など)を設定することとしてもよい。
保有装備アイテム256Dは、キャラクタと関連づけられるアイテムとして、キャラクタに装備させることが可能なアイテムを示す。キャラクタに装備させることが可能なアイテムとは、例えば、アクションゲームであれば、キャラクタに装備させることが可能な武器、防具、アクセサリその他のアイテムである。また、キャラクタに装備させることが可能なアイテムとは、スポーツゲームであれば、キャラクタに関連付けることが可能なラケット、バット、シューズ、ウェアその他のアイテムである。これらキャラクタが装備可能なアイテムは、クエストの進行、抽選、その他の処理によって、ユーザに付与される。
保有消費アイテム256Eは、ユーザがゲームプレイ時に使用することで、ゲームプレイ時に一定の効果を発揮させるアイテムを示す。これらアイテムは、ユーザが使用するための入力操作をすることで消費される。ゲームプレイ時に一定の効果を発揮させるアイテムとは、例えば、アイテムの使用開始から一定時間(例えば30分間)、クエストのクリア時等に獲得される経験値、キャラクタを成長させるために消費されるアイテム等の獲得量が一定以上増加するもの(例えば、獲得量が2倍以上となる)などがある。
対戦プレイランク/レーティング256Fは、ゲームプログラム251が提供するユーザ間の対戦プレイの、各ユーザの習熟度を示す。図示するように、対戦プレイランク/レーティング256Fは、対戦プレイにおけるユーザの習熟度として、レーティングシステムにおけるレーティング値、ランキングを含む。
トーナメント履歴256Gは、ゲームプログラム251が提供するトーナメントによる対戦プレイの結果に応じて更新される各ユーザのトーナメント履歴を示す。トーナメント履歴256Gは、ユーザが参加中のトーナメントにおける勝利数、および当該トーナメントにおいて対戦したユーザ・参加したユーザ等を特定可能なトーナメント履歴を記憶する。トーナメント履歴256Gについては、図13等を用いて後述する。
図5は、抽選用レーティング算出部292Cが、各ユーザのレーティングと、ユーザの対戦プレイの勝敗の履歴とに基づいて抽選レーティングを算出する際に参照する補正値を示す。
本実施形態では、抽選用レーティング算出部292Cは、例えば、直近3試合の勝敗の結果を参照して、式3に従って抽選用レーティングを算出する。
〔式3〕 抽選用レーティング = レーティング + 補正値
図示する例では、勝利と敗北のそれぞれについて補正値を加減算することで、抽選用レーティングを算出する。例えば、ユーザの直近3試合がすべて勝利(3勝)であれば、抽選用レーティングは、ユーザのレーティングに、勝敗結果「3勝」にかかる補正値「+100」を加算したものである。また、ユーザの直近3試合において、勝利が2回、敗北が1回であれば、抽選用レーティングは、ユーザのレーティングに、勝敗結果「2勝」にかかる補正値「+50」と、勝敗結果「1敗」にかかる補正値「−30」とを加算したものである(すなわち、抽選用レーティング=レーティング+20)。また、ユーザの直近3試合において、勝利が1回、敗北が2回であれば、抽選用レーティングは、ユーザのレーティングに、勝敗結果「1勝」にかかる補正値「+20」と、勝敗結果「2敗」にかかる補正値「−70」とを加算したものである(すなわち、抽選用レーティング=レーティング−50)。このように、勝敗結果において敗北をした際の補正値の絶対値を、勝利をした際の補正値の絶対値よりも大きくすることで、敗北が立て込んでいるユーザほど抽選レーティングが下がりやすくなるようにしている。また、連勝または連敗しているユーザほど、レーティングと抽選用レーティングとのかい離を大きくして、より強いユーザまたはより習熟度がそれほどでないユーザと対戦しやすくする。
図6は、サーバ20が、対戦プレイのユーザのマッチングを行う際に、ユーザの階層に応じて、レーティングに基づくマッチング処理を切り替える処理を示す図である。
図6に示すように、サーバ20は、ユーザのランクが最上位でないユーザ(ランク100を最上位のランクとした場合に、ランク1(最下層のランク)からランク99)のマッチング処理と、ユーザのランクが最上位であるユーザのマッチング処理とを切り替えている。具体的には、サーバ20は、ユーザのランクが最上位でないユーザについては、なるべく同階層のユーザとのマッチングを図る。サーバ20は、マッチングが成立せずマッチング開始からの経過時間が長くなると、マッチングの成立確率を高めるため、抽選用レーティングと比較するための対戦相手のレーティングの幅を広げる。例えば、あるユーザについて、マッチングが成立せずマッチング処理の開始からの経過時間が15秒と長期化すると、同階層のユーザに限らず他の階層のユーザをもマッチングの対象とする。このとき、各階層には属性が付与されており、ある階層にいるユーザとマッチングさせる対象のユーザの階層が同属性のものに限定して、階層が異なるユーザのマッチングをすることとしてもよい。例えば、テニスゲームの場合、各階層において、対戦に使用するテニスコートの種類が属性として指定されている。例えば、テニスゲームにおいて、属性「グラスコート」、属性「クレーコート」、属性「ハードコート」などが各階層に設定されている。テニスゲームにおいて使用可能な各キャラクタに、それぞれ得意なテニスコートの属性があり、得意なテニスコートの属性であればキャラクタのパラメータが上昇する、不得意なテニスコートの属性であればキャラクタのパラメータが下降するなどとしてもよい。このように、各階層に属性があり、属性に応じてキャラクタのパラメータの上昇または下降がある場合は、同属性の階層同士でマッチングを図る方が、ユーザにとっては、意図しない属性のコートで試合をすることがなくゲームの興趣性を高めることができる。
また、図6に示すように、ユーザのランクが最上位に達しているユーザについては、マッチングの対象とするレーティングの範囲を広げることで、より多様な強さの対戦相手とマッチングできるようにする。最上位のランクに達するユーザは、対戦プレイに一定以上習熟していると想定されるため、レーティングがトップクラスのユーザとの対戦の可能性を高めることで、より対戦プレイの習熟がユーザに動機づけられる。
なお、対戦プレイのマッチング要求をするユーザをマッチングさせるため、各ユーザの抽選用レーティングを比較してマッチングをすることとしてもよいし、一方のユーザの抽選用レーティングと、他方のユーザのレーティング(補正されていないレーティング)とを比較してマッチングをすることとしてもよい。
<動作>
以下、携帯端末10でゲームプログラム151が実行されることにより、携帯端末10とサーバ20とが通信しつつ、ユーザにゲームのプレイ環境を提供する処理を説明する。
図7は、ユーザが対戦プレイをするためにマッチングをサーバ20に要求し、マッチングの成立により対戦プレイを可能にする処理を示すフローチャートである。
ステップS701において、携帯端末10のゲーム進行処理部192は、ユーザが対戦プレイでマッチングをするための入力操作を受け付けることで、サーバ20に対し、他のユーザとの対戦プレイをするためのマッチングを要求する。
ステップS751において、サーバ20は、マッチング要求を携帯端末10から受け付けて、携帯端末10のユーザの直近の試合結果の履歴に基づいて抽選用レーティングを算出する。
ステップS755において、サーバ20は、マッチング要求を受け付けたユーザの抽選用レーティングを用いて、図6に例示するようにユーザの階層およびマッチング開始からの経過時間に基づいて、同階層で近いレーティングの対戦相手とマッチングするよう処理する。サーバ20は、マッチングが成立しないときは、マッチング開始からの経過時間に応じて、マッチングの対象とするレーティングの範囲を拡大する。
ステップS759において、サーバ20は、マッチングの成立結果を携帯端末10へ送信する。サーバ20は、マッチングが成立した場合は、マッチングにより対戦する各ユーザの情報を、各携帯端末10へ送信する。
ステップS705において、携帯端末10のゲーム進行処理部192は、サーバ20から、マッチングの成立結果を受信する。
ステップS709において、ゲーム進行処理部192は、マッチングが成立しているか否か、例えば、対戦相手のユーザの情報(どの階層であるかの情報、レーティングの情報を含む)をサーバ20から受信したか否かを判断する。マッチングが成立していると判断される場合(ステップS709においてYES)、ゲーム進行処理部192は、ステップS713の処理を行い、そうでない場合(ステップS709においてNO)、ステップS717の処理によりマッチング処理を終了する。
ステップS713において、ゲーム進行処理部192は、携帯端末10のユーザの対戦プレイにおけるランクが、最上位であるか否かを判断する。ユーザの対戦プレイにおけるランクが最上位である場合(例えば、ランク「1」〜ランク「100」まである場合の、ユーザのランクがランク「100」である場合)(ステップS713においてYES)、ゲーム進行処理部192は、ステップS721の処理を行い、そうでない場合(ステップS713においてNO)、ステップS725の処理を行う。
ステップS721において、ゲーム進行処理部192は、対戦相手となるユーザのレーティングを含む情報をタッチスクリーン130に表示して、サーバ20を介して対戦プレイを、対戦相手となるユーザの携帯端末10との間で実行する。
ステップS725において、ゲーム進行処理部192は、対戦相手となるユーザのレーティングの情報を非表示にして、サーバ20を介して対戦プレイを、対戦相手となるユーザの携帯端末10との間で実行する。
ステップS763において、サーバ20は、各携帯端末10の間での対戦プレイが終了すると、対戦終了時に、勝敗結果に応じて、各ユーザのレーティングを更新し、ランクを維持または変更する。
図8は、ユーザのランクに応じて、対戦相手のレーティングが表示されるか非表示となるかの画面例を示す図である。
図8の画面例(A)に示すように、携帯端末10は、ユーザのランクが最上位でない場合、対戦相手のレーティングを非表示とする。画面例(A)に示すように、携帯端末10は、タッチスクリーン130において、ユーザのランクを示すランク表示部134Aと、対戦相手の情報を示す対戦相手情報134Bと、対戦プレイの進行状況を示す進行状況134Cとを表示する。
図8の画面例(B)に示すように、携帯端末10は、ユーザのランクが最上位である場合、対戦相手のレーティングを表示する。画面例(B)に示すように、携帯端末10は、タッチスクリーン130において、ユーザ自身のレーティングを示すレーティング表示部134Dを表示する。また、携帯端末10は、対戦相手情報134Bにおいて、対戦相手のユーザのレーティングを表示する。
図9は、一定期間内の各ユーザの順位を競うランキング戦が終了した場合に、各ユーザへのランキング結果に応じた報酬を付与する処理と、ランクをリセットする処理とを示す図である。このように、ゲームシステムは、予め定められた対戦期間(例えば、1週間、2週間、1か月など)において、各ユーザの属する階層またはレーティングの少なくともいずれかに基づいて順位付けを行うランキング戦を各ユーザに提供している。
ステップS951において、サーバ20は、ランキング戦が終了することにより、各ユーザのランク、各ユーザのレーティングに基づき各ユーザの順位を確定する。例えば、最上位のランクに属するユーザのレーティングの順に順位付けをし、次いで、最上位のひとつ下の階層に属するユーザのレーティングの順に順位付けをし、以降、最下層のユーザに至るまで順に順位付けをすることとしてもよい。すなわち、階層を優先して、レーティングの大小に基づいて各ユーザを順位付けしてもよいし、これに限られない。サーバ20は、確定した各ユーザの順位に基づき、予め設定された報酬を各ユーザに付与する。例えば、サーバ20は、各ユーザに付与する報酬として、ゲーム内で使用できる仮想通貨、使用することで一定期間、ユーザに有利な効果を発揮させる消費アイテム、その他ゲームプレイに使用できる報酬をユーザに付与する。ここで、サーバ20は、順位が上位のユーザほど、比較的大きな報酬を付与する(例えば、付与するアイテム数を比較的多くする等)こととしてもよい。
ステップS953において、サーバ20は、各ユーザのランクを参照して、新たにランキング戦を開始する際にユーザに設定されるランクを決定し、決定したランクに従ってデータベースを更新する。例えば、サーバ20は、一定階層以下のランク(例えば、ランク「1」からランク「100」までの100階層のうち、下位30%)のユーザは、最下層(ランク「1」)のランクに更新する。例えば、サーバ20は、一定階層以上のランク(上記の例で、例えば、最上位のランク「100」または上位30%のランクであるランク「100」からランク「71」まで等)のユーザは、対戦プレイに習熟しておりシード権があるとして、最下層ではない予め定められたランク(例えば、ランク「60」)に更新する。
図10は、一定期間内の各ユーザの順位を競うランキング戦が終了することで、サーバ20が各ユーザに報酬を付与し、ランクを更新する処理の、携帯端末10における画面の表示例を示す。
図10の画面例(A)は、ランクが100段階(最下層のランク「1」から最上位層のランク「100」まで)ある場合に、ランキング戦が終了して順位が確定したユーザの携帯端末10における画面の表示例である。画面例(A)では、携帯端末10は、タッチスクリーン130において、ユーザがランク「26」に到達していることを、最終ランク表示部135Aに表示している。携帯端末10は、タッチスクリーン130において、ランキング戦が終了して確定した順位を、最終順位表示部135Bに表示している。携帯端末10は、タッチスクリーン130において、ランキング戦が終了し、ユーザの順位に応じた報酬が付与されたことを、報酬表示部135Cに表示している。携帯端末10は、タッチスクリーン130において、次回のランキング戦の開始日程およびランキング戦の再開時にユーザに設定されるランクを、情報通知部135Dに表示している。
画面例(B)では、ランキング戦が終了した際に、最上位のランク「100」に到達していたユーザの携帯端末10における画面の表示例である。画面例(B)では、携帯端末10は、タッチスクリーン130において、ユーザが最上位のランクであるランク「100」に到達していることを、最終ランク表示部135Aに表示している。携帯端末10は、タッチスクリーン130において、ランキング戦が終了して、レーティング等に基づき確定した順位を、最終順位表示部135Bに表示している。携帯端末10は、タッチスクリーン130において、ランキング戦が終了し、ユーザの順位に応じた報酬が付与されたことを、報酬表示部135Cに表示している。
図示するように、画面例(A)と比較して、より上位の順位のユーザほど、より価値の高い報酬を付与されるようにしている。携帯端末10は、タッチスクリーン130において、次回のランキング戦の開始日程およびランキング戦の再開時にユーザに設定されるランクを、情報通知部135Dに表示している。図示するように、一定階層以上のランク(最上位のランクなど)に到達したユーザは、対戦プレイに習熟している可能性が高いため、ランキング戦の再開時に、最下層ではない一定階層以上のランクから再開できるようにしている。これにより、ランク「1」など初心者が集まりやすい階層のユーザと、対戦プレイに習熟しているユーザとが対戦することにより、技量差が大きすぎることで対戦プレイの興趣性が減退してしまうおそれを軽減する。また、一定階層以上に到達しているユーザは、対戦プレイを継続してプレイしている可能性が高く、このようなユーザに対し、シード権を付与するよう通知することで、対戦プレイの技量が向上していることを実感する機会をより一層提供する。これによりゲームの興趣性がいっそう向上する。
次に、図11〜図13を参照して、トーナメントの対戦プレイについて説明する。図11は、ユーザがトーナメントの対戦プレイをするためにマッチングをサーバ20に要求し、マッチングの成立により対戦プレイを可能にする処理を示すフローチャートである。図12は、トーナメントの進行に応じてタッチスクリーン130に表示される画面例を示す図である。
図12(A)は、ゲームのトップ画面例を示している。携帯端末10は、トップ画面として、図12(A)に示すように、例えば「対戦プレイ」、「ランキング戦」、および「トーナメント戦」各々に対応するアイコンをタッチスクリーン130に表示する。携帯端末10は、いずれかのアイコンに対してユーザからの入力操作を検出することにより、当該アイコンに対応する対戦プレイを開始するための処理を実行する。トーナメントは、トップ画面において「トーナメント戦」のアイコンが選択されることにより開始される。
図11のステップS801において、携帯端末10のゲーム進行処理部192は、「トーナメント戦」のアイコンに対する入力操作を受け付けることにより、サーバ20に対し、トーナメントの開始要求を送信する。
ステップS851において、サーバ20は、トーナメントの開始要求を携帯端末10から受け付けて、トーナメントの開始要求元となる携帯端末10のユーザの勝利数をトーナメント履歴に基づいて特定し、当該勝利数を特定可能な情報を携帯端末10に送信する。
図13は、トーナメント履歴管理部292Dによりユーザ毎に管理されるトーナメント履歴を説明するための図である。図13(A)は、ユーザが現在勝ち残っているトーナメントが存在せず勝利数がゼロ勝のユーザのトーナメント履歴の一例を示す。図13(B)は、1回戦で勝利し、勝利数が1勝のユーザのトーナメント履歴の一例を示す。図13(C)は、2回戦で勝利し、勝利数が2勝のユーザのトーナメント履歴の一例を示す。図13(D)は、3回戦で勝利し、勝利数が3勝のユーザのトーナメント履歴の一例を示す。本実施形態におけるトーナメントは、1回戦から開始されて、3回戦まで勝ち進み当該3回戦で勝利することにより優勝となる。なお、トーナメントは、3回戦で完了するものに限らず、5回戦などであってもよく、またユーザが何回戦のトーナメントにするかを選択できるものであってもよい。
トーナメント履歴としては、当該ユーザの勝利数、当該ユーザの1回戦勝利時の相手ユーザ関連情報、2回戦勝利時の相手ユーザ関連情報、および3回戦勝利時の相手ユーザ関連情報が管理される。ユーザの勝利数は、トーナメントにおける対戦プレイにおいて勝利する毎に1加算され、敗北すると0に初期化される。1回戦勝利時、2回戦勝利時、および3回戦勝利時各々の相手ユーザ関連情報は、ユーザが勝利した対戦相手に関連するユーザ情報であって、勝利したときに対戦相手のトーナメント履歴に含まれる相手ユーザ関連情報に基づき更新され、敗北すると初期化される。なお、トーナメント履歴は、ユーザの勝利数と相手ユーザ関連情報を特定できる情報を記憶するものであればこれに限らず、相手ユーザ関連情報からユーザの勝利数を特定することができるため、例えばユーザの勝利数を記憶せずに相手ユーザ関連情報のみを記憶するものであってもよい。
図11に戻り、勝利数を特定可能な情報がサーバ20から携帯端末10に送信されると、当該携帯端末10のゲーム進行処理部192は、ステップ803において、勝利数を特定可能な情報を受け付けて記憶部150に記憶し、トーナメント表の画像と、特定した勝利数に応じた位置にキャラクタ画像とをタッチスクリーン130に表示する。
ステップ803においては、図12(B)に示すように、4つの対戦ブロックからなるトーナメント表が表示されるとともに、対戦プレイが1回戦の場合、左下の対戦ブロックに当該ユーザに対応するキャラクタが表示される。また、タッチスクリーン130には、トーナメントの何回戦目であるかを特定可能にするメッセージ(図12(B)では「1回戦!」)が表示されるとともに、「戻る」といったアイコンが表示される。「戻る」のアイコンは、操作されることによりトーナメントを一旦終了し、図12(A)で示したトップ画面に戻る機能を有する。
サーバ20は、勝利数を特定可能な情報を送信した後、ステップS853において、トーナメントの開始要求を受け付けているユーザのうち、各ユーザのトーナメント履歴に基づき勝利数が同じユーザを特定してマッチング処理を実行する。マッチング処理では、勝利数が同じユーザのうちから、図6および図7のステップS751およびステップS755等で示した処理と同様の処理を実行することにより対戦相手を特定する。なお、マッチング処理は、これに限らず、勝利数が同じユーザからランダムに対戦相手を決定するものであってもよい。
ステップS853においては、勝利数が同じであっても、トーナメント履歴に基づき相手ユーザ関連情報に既に登録されているユーザは、実行中のトーナメントにおいて既に対戦済あるいは参加済である。このため、マッチング処理の対象から除外される。例えば、ユーザAが実行中のトーナメントの1回戦でユーザBと対戦し、ユーザAが勝利したときには、ユーザAのトーナメント履歴として勝利数「1」および対戦したユーザとしてユーザBが登録される。ここでユーザAは、トーナメントを一旦終了したとする。一方、ユーザBは、新たにトーナメントを開始して1回戦に勝利して勝利数が「1」になっているとする。この状態において、ユーザAからトーナメントを再開する操作(つまり2回戦の開始要求)があったときには、勝利数が同じユーザにユーザBが含まれる。しかし、ユーザAのトーナメント履歴としてユーザBが登録されており、今回実行中のトーナメントの1回戦において既にユーザBと対戦済である。このため、ユーザBは、今回のユーザAのマッチング処理の対象から除外される。これにより、同一トーナメントにおいて一度勝利したユーザや参加していたユーザと再度対戦させてしまうことを防止でき、その結果、ユーザに違和感を抱かせてしまう不都合の発生を防止できる。なお、マッチング処理の対象から除外する対象は、マッチング成立確率を高めるために、例えば対戦済のユーザのみにしてもよい。
ステップS853において、サーバ20は、トーナメントの開始要求元のユーザとのマッチングの成立結果を携帯端末10へ送信する。サーバ20は、マッチングが成立した場合は、マッチングにより対戦相手となるユーザを特定するためのユーザ情報(どの階層であるかの情報、レーティングの情報なども含む)を携帯端末10へ送信する。
ステップS805において、携帯端末10のゲーム進行処理部192は、サーバ20からマッチングの成立結果を受信する。
ステップS807において、ゲーム進行処理部192は、マッチングが成立しているか否か、つまりユーザ情報をサーバ20から受信したか否かを判断する。マッチングが成立していると判断される場合、ゲーム進行処理部192は、ステップS809の処理を行い、そうでない場合、ステップS808の処理によりマッチング処理を終了する。
ステップS809において、携帯端末10のゲーム進行処理部192は、ステップS803により表示されているトーナメント表において、図12(C)に示すように、当該ユーザのキャラクタ画像を表示中の対戦ブロックに対戦相手となるキャラクタ画像を表示するとともに、他の対戦ブロックについてもキャラクタ画像を各々表示する。これにより、トーナメント表におけるすべての対戦ブロックの対戦相手が決定されたかのような印象をユーザに抱かせることができる。その結果、トーナメントに今から臨むことへの臨場感を向上させることができる。一方、このような表示をするに当たり、サーバ20側においては、当該ユーザの対戦相手をマッチングする処理のみで事足り、トーナメント表におけるすべての対戦ブロックの対戦相手までをも決定する必要がない。このため、マッチングの処理負担が増大してしまうことを防止できる。
携帯端末10のゲーム進行処理部192は、ステップS809を実行した後、図7のステップS713以降の処理を実行し、サーバ20を介して対戦相手となるユーザの携帯端末10との間で対戦プレイを実行する。これにより、例えば、図12(D)に示すように対戦するユーザ情報を表示した後、図8で示したようにユーザのランクに応じて対戦相手のレーティングを表示あるいは非表示となる画面を表示して対戦プレイが開始される。
ステップS857において、サーバ20は、各携帯端末10の間での対戦プレイが終了すると、対戦終了時に、勝敗結果およびトーナメントにおける勝利数に応じて、各ユーザのレーティング更新、ランク維持または変更、および報酬付与などを更新し、対戦プレイの対戦結果および更新結果を携帯端末10に送信する。
レーティング更新、ランク維持または変更、および報酬付与は、各々、トーナメント以外の対戦プレイが終了したときよりもトーナメントにおける対戦プレイが終了したときの方がユーザにとって有利な態様で行うとともに、勝利数が多くなる程、ユーザにとって有利な態様で行う。ユーザにとって有利な態様で行うとは、例えば、レーティングの更新幅が大きいこと、ランク維持または変更される割合が高まること、ユーザにとって価値が高い報酬(プレミア的なアイテム等)が付与されることなどをいう。これにより、トーナメントにおける対戦プレイを行うことにより他の形式における対戦プレイよりも高い割合でユーザにとっての価値が大きな特典を付与することができる。その結果、トーナメントの対戦プレイを実行する動機づけを強めることができ、トーナメントでのプレイを促進できる。また、勝利数が多くなる程、高い割合でユーザにとっての価値が大きな特典が付与される。その結果、トーナメントで優勝するという目的をユーザに持たせることができるとともに、トーナメントで勝ち進むことへの意欲を向上させることができる。また、トーナメントへの参加を通して対戦プレイの習熟を促すことができる。
ステップS859において、サーバ20は、対戦した両ユーザのトーナメント履歴に基づいて、勝利したユーザのトーナメント履歴を更新する。更新された後、敗北したユーザのトーナメント履歴はゼロ勝の状態となるように初期化される。ステップS859におけるトーナメント履歴の更新方法については、図13を参照して説明する。
図13(A)〜(D)のトーナメント履歴は、例えばユーザAの履歴であるとする。1回戦を行ったユーザAのトーナメント履歴は、図13(A)に示す状態である。この状態において、当該ユーザAが1回戦で勝利した場合、図13(B)に示すように、勝利数が「1」となり、1回戦勝利時の相手ユーザ関連情報が記憶される。図13(B)では、1回戦においてユーザXに勝利した場合を例示している。ユーザXは、当該ユーザAと同様にゼロ勝であったはずであり、図13(E)に示すようなトーナメント履歴であったとする。この場合、1回戦勝利時の相手ユーザ関連情報として、ユーザAが1回戦で勝利した対戦相手であるユーザXを特定可能な情報のみが記憶される。
ユーザAが2回戦で勝利した場合、図13(C)に示すように、勝利数が「2」となり、2回戦勝利時の相手ユーザ関連情報が記憶される。図13(C)では、2回戦においてユーザYに勝利した場合を例示している。ユーザYは、当該ユーザAと同様に1勝していたはずであり、図13(F)に示すようなトーナメント履歴であったとする。この場合、2回戦勝利時の相手ユーザ関連情報として、ユーザAが2回戦で勝利した対戦相手(図13では相手aと示す)であるユーザYと、ユーザYが1回戦で勝利した相手であるユーザRとを特定可能な情報が記憶される。
ユーザAが3回戦で勝利して優勝した場合、図13(D)に示すように、勝利数が「3」となり、3回戦勝利時の相手ユーザ関連情報が記憶される。図13(D)では、3回戦においてユーザZに勝利した場合を例示している。ユーザZは、当該ユーザAと同様に2勝していたはずであり、図13(G)に示すようなトーナメント履歴であったとする。この場合、3回戦勝利時の相手ユーザ関連情報として、ユーザAが3回戦で勝利した対戦相手であるユーザZと、ユーザZが1回戦で勝利した相手であるユーザSと、ユーザZが2回戦で勝利した相手(図13では相手bと示す)であるユーザTと、2回戦相手bであるユーザTが1回戦で勝利した相手であるユーザUとを特定可能な情報が記憶される。このように、トーナメントにおいて勝利する毎にユーザAのトーナメント履歴が更新される。また、優勝した場合には、優勝したトーナメントに参加していたすべてのユーザ(ユーザA自身が直接対戦したユーザのみならず、ユーザA自身が直接対戦していないが対戦したユーザのトーナメント履歴から特定されるユーザをも含む)および当該すべてのユーザの勝利数を特定することができる。
携帯端末10のゲーム進行処理部192は、ステップS811において、サーバ20からの対戦結果および更新結果に基づいて、対戦プレイの結果およびレーティング更新、ランク維持または変更、および報酬付与などについて更新された情報を表示する。これにより、例えば、図12(E)に示すように、1回戦で勝利した旨を示す「1回戦突破!」といったメッセージや、ランクが更新された旨を示す「ランクup」といったメッセージ、付与された報酬を示す「獲得アイテム 魔石×5 アイテムY×3」といったメッセージなどを表示する。これに対し、敗北した場合には、「1回戦敗退〜」といったメッセージとともに、付与された報酬等が表示される。これにより、トーナメントを構成するひとつの対戦(ひとつの回戦)が終了する。
図12(E)に示すように1回戦の勝利結果表示中や2回戦の勝利結果表示中において、「OK」を操作すると、携帯端末10のゲーム進行処理部192は、再びステップS801へ移行して、トーナメントにおける次の回戦の開始要求を自動的に送信する。これにより、例えば、2回戦が開始されるときには、図12(F)に示すように、1回戦の対戦ブロックをユーザが勝ち上がった位置にキャラクタ画像を表示した後、サーバ20からマッチングの成立結果を受信することにより図12(G)に示すように、トーナメント表の1回戦の各対戦ブロックを勝ち上がった位置に各キャラクタ画像を表示する。
図12(F)あるいは図12(G)の画面が表示されているときに「戻る」のアイコンを操作すると、トーナメントを一旦終了させて、図12(A)に示すようなトップ画面に戻ることや、当該ゲーム自体を一旦終了させてトーナメントを中断することができる。これにより、トーナメントの対戦プレイで勝利した場合であっても、引き続きトーナメントの次回戦を行うか、トーナメントを一旦終了するかをユーザの都合で選択することができる。「戻る」のアイコンが操作されてトーナメントが一旦終了した場合、サーバ20側におけるマッチング処理も終了する。また、一旦終了した場合であっても、トップ画面において再度「トーナメント戦」を選択することにより、サーバ20において管理されているトーナメント履歴から特定される勝利数に基づいてトーナメントを続きから再開することができる。これにより、ユーザのペースでトーナメントを進行させることができるため、トーナメントによる対戦プレイの利便性を高めて稼働率を向上させることができる。
図12(F)あるいは図12(G)の画面が表示されているときに「戻る」のアイコンを操作してトーナメントを一旦終了させた後に、「トーナメント戦」を選択することにより、携帯端末10のゲーム進行処理部192は、再びステップS801へ移行してトーナメントにおける次回戦の開始要求を送信して、サーバ20側においてマッチング処理が実行される。これにより、例えば、再び図12(F)に示すような画像を表示した後、サーバ20からマッチングの成立結果を受信することにより図12(G)に示す画像を表示する。
ステップS861において、サーバ20は、終了した対戦は3回戦、つまり決勝戦であったか否かを判定する。決勝戦であったと判定されなかったときには、新たなトーナメントあるいは次の対戦に備えて対応する処理を実行する一方、決勝戦であって特定条件が成立していると判定されたときには、ステップS863へ移行する。
ステップS863において、サーバ20は、優勝したユーザのトーナメント履歴に基づいて、今回のトーナメントに参加したすべてのユーザおよび順位を特定するための結果情報を決勝戦で対戦した両ユーザの携帯端末10に送信する。結果情報は、例えば、順位順にユーザ情報(どの階層であるかの情報、レーティングの情報なども含む)を特定する情報である。
トーナメントは、3回戦勝利で優勝となるため、必然的に1回戦敗北者は5位となり、2回戦敗北者は3位となり、3回戦敗北者は2位となる。このため、図13(D)のトーナメント履歴の場合、優勝はユーザA、準優勝はユーザZ、3位は2回戦まで勝ち進んだユーザY・ユーザT、5位は1回戦敗退のユーザX・ユーザR・ユーザS・ユーザUであることが特定可能となる。よって、サーバ20は、結果情報として、ユーザA、ユーザZ、ユーザY、ユーザT、ユーザX、ユーザR、ユーザS、ユーザUの順番でユーザ情報を特定する情報を送信する。なお、サーバ20は、ステップS863において結果情報を送信後、優勝したユーザのトーナメント履歴を初期化する。これにより、優勝したユーザについても、新たなトーナメントを開始可能となる。
一方、携帯端末10側においても、ステップS813において、終了した対戦は3回戦、つまり決勝戦であったか否かを判定する。決勝戦であったと判定されなかったときには、新たなトーナメントあるいは次の対戦に備えて対応する処理を実行する一方、決勝戦であって特定条件が成立していると判定されたときには、ステップS815へ移行する。
ステップS815において、携帯端末10は、サーバ20から送信される結果情報を受け付けて記憶部150に記憶し、当該結果情報に基づいて今回のトーナメントの対戦結果として順位表を表示する。順位表とは、トーナメントに参加したすべてのユーザを順位順に並べた表である。
図12(H)は、順位表の一例である。ここでは、図13(D)のトーナメント履歴に基づく結果情報をユーザAの携帯端末10が受信して表示された順位表を示す。図12(H)に示すように、「優勝」といったメッセージが表示されるとともに、その下方において優勝が「ユーザA」、準優勝が「ユーザZ」、3位が「ユーザY・ユーザT」、5位が「ユーザX・ユーザR・ユーザS・ユーザU」であることが表示される。なお、準優勝であったユーザZの携帯端末10においては、「準優勝」といったメッセージが表示されるとともに、その下方において図12(H)と同様の順位表が表示される。このように、決勝戦まで勝ち進み特定条件が成立したときには、ユーザのトーナメント履歴と対戦相手ユーザのトーナメント履歴とを元に更新されたトーナメント履歴に基づいて、今回のトーナメントに参加したすべてのユーザを順位順に表示する。これにより、ユーザが直接対戦等していないユーザであってもトーナメントに参加していたユーザを特定して表示できるため、実際にトーナメントが行われたかのような臨場感をユーザに抱かせることができる。また、決勝戦まで勝ち進めたユーザのみに対してトーナメント結果として順位表が表示されるため、当該ユーザの優越感および達成感を向上させることができる。
図12(H)では、各ユーザに対応させて、レーティングとランクも合わせて表示される。図8と同様に、ランクが100未満のユーザについてはランクのみ表示されてレーティングは表示されない一方、ランクが100のユーザについてはランクとレーティングとが表示される。上記実施形態における携帯端末10およびサーバ20を含むゲームシステムは、前記対戦プレイにおけるユーザの習熟度を最下位から最上位まで階層的に分類したランク指標を各ユーザについて管理し、ユーザ同士のマッチングに使用するための各ユーザのレーティングを管理し、マッチングにより前記対戦プレイを行ったユーザ同士について、対戦前の各ユーザのレーティングの差分値と、前記対戦プレイの勝敗結果とに基づいて、対戦後の各ユーザのレーティングを更新し、前記ユーザの前記対戦プレイの履歴に応じて、前記ユーザが属する前記ランク指標を維持または変更し、前記対戦プレイのマッチング時に、前記ランク指標の最上位のユーザの前記端末において、当該最上位のユーザと対戦する対戦相手のレーティングを表示させ、前記ランク指標の前記最上位以外のユーザの少なくとも一部のユーザの前記端末において、当該ユーザと対戦する対戦相手のレーティングを非表示にさせてマッチング処理を行う構成を備えている。
上記実施形態では、ステップS863において送信される結果情報の元となる今回のトーナメントに参加したすべてのユーザおよび順位は、優勝したユーザのトーナメント履歴と準優勝したユーザのトーナメント履歴とにより更新されたトーナメント履歴に基づき特定する例について説明した。しかし、結果情報の元となる今回のトーナメントに参加したすべてのユーザおよび順位の特定は、これに限らず、決勝戦終了時にはステップS859の処理を行わずに、優勝したユーザのトーナメント履歴と準優勝したユーザのトーナメント履歴とに基づいて特定するようにしてもよい。
上記実施形態では、第1の対戦モードとしてトーナメント戦形式の対戦プレイを例示したが、第1の対戦モードは複数回の対戦プレイが行われることを前提するモードであればこれに限らず、例えばランキング戦形式やリーグ戦形式の対戦プレイであってもよい。
上記実施形態では、ユーザ毎にトーナメント履歴を管理する例について説明したが、これに限らず、トーナメントの勝利数毎にユーザをまとめて管理するようにしてもよい。例えば、1勝しているユーザ毎に当該ユーザのトーナメント履歴を記憶する1勝用テーブルと、2勝しているユーザ毎に当該ユーザのトーナメント履歴を記憶する2勝用テーブルとを設けて、1勝用テーブルと2勝用テーブルとによりトーナメント履歴をまとめて管理するようにしてもよい。
上記実施形態では、トーナメントを繰り返し実行可能である。このため、トーナメントに参加した回数をトーナメント履歴として管理し、当該回数に応じて図11のステップS857におけるレーティング更新、ランク維持または変更、および報酬付与などを行うようにしてもよい。例えば、トーナメントに参加した回数が多い程、ユーザにとって有利な態様でレーティング更新、ランク維持または変更、および報酬付与が行われるようにしてもよい。また、トーナメント履歴としては、例えば、過去に参加したトーナメントを含めて勝利したトータル勝利数、過去に優勝した優勝回数、過去に準優勝した準優勝回数などを管理し、これらトータル勝利数、優勝回数、準優勝回数などに応じて図11のステップS857におけるレーティング更新、ランク維持または変更、および報酬付与などを行うようにしてもよい。例えば、トータル勝利数、優勝回数、準優勝回数などが多い程、ユーザにとって有利な態様でレーティング更新、ランク維持または変更、および報酬付与が行われるようにしてもよい。また、トータル勝利数、優勝回数、準優勝回数などが所定回数に到達しているユーザについては、対戦プレイに習熟している可能性が高いため、シード権を付与するよう通知するようにしてもよい。これにより、トーナメントへの参加意欲をより一層向上させることができる。また、対戦プレイの技量が向上していることを実感する機会をより一層提供することができ、ゲームの興趣性がいっそう向上させることができる。
以上のように各実施形態のゲーム配信システムを構成する携帯端末10およびサーバ20の動作について説明してきたが、携帯端末10で行われる各処理をサーバ20で行うこととしてもよいし、サーバ20で行われる処理を携帯端末10で行うこととしてもよい。
例えば、携帯端末10は、タッチスクリーン130に対するユーザの入力操作を受け付けて、受け付けた操作内容をサーバ20へ送信する。サーバ20は、ユーザの入力操作を携帯端末10から受け付けて、ゲームを進行させるための各処理を行い、仮想カメラの配置に基づいて携帯端末10に表示させるための表示画面を生成し、生成した表示画面を、逐次、携帯端末10に表示する。このように、ゲームを進行させるための処理の大部分をサーバ20が担うこととしてもよい。また、ゲームを進行させるための処理の大部分を携帯端末10が担うこととしてもよい。
同様に、例えば、トーナメント履歴をサーバ20側で管理する例について説明したが、これに替えて、トーナメント履歴を各ユーザの携帯端末10側の記憶部150で管理するようにしてもよい。この場合、携帯端末10のゲーム進行処理部192は、図11のステップS801においてトーナメントの開始要求を送信するときに、記憶部150で管理する当該ユーザのトーナメント履歴を特定可能な情報をサーバ20へ出力するとともに、当該トーナメント履歴に基づきトーナメント表と勝利数に応じた位置にキャラクタを表示するようにしてもよい。
また、サーバ20側においては、トーナメントの開始要求を受け付けたときには、同時に送信されるトーナメント履歴を特定可能な情報を一旦記憶し、当該情報に基づいて当該ユーザの勝利数を特定してマッチング処理を行い、当該ユーザ情報を携帯端末10に送信して対戦プレイを開始させるようにしてもよい。さらに、サーバ20は、対戦プレイにおいて勝利したユーザの携帯端末10に対して、敗北したユーザのトーナメント履歴を特定可能な情報を送信するようにしてもよい。これにより、勝利したユーザの携帯端末10のゲーム進行処理部192は、敗北したユーザのトーナメント履歴に基づいて当該ユーザのトーナメント履歴を更新(ステップS859と同様)する。なお、対戦プレイが決勝戦であった場合には、両ユーザに対して他方のユーザのトーナメント履歴を特定可能な情報を送信する。これにより、携帯端末10側において管理するトーナメント履歴に基づき、特定条件が成立したか否か、およびトーナメントに参加したすべてのユーザおよび順位を特定可能となる。その結果、携帯端末10のゲーム進行処理部192は、優勝あるいは準優勝したときに、記憶部150に記憶しているトーナメント履歴に基づいてトーナメントの順位表を表示する(ステップS813およびステップS815と同様)。このように構成した場合であっても、上記実施形態において説明した効果と同様の効果を奏する。なお、「第1の対戦モードにおける対戦プレイにおいて勝利したユーザの対戦履歴として、当該ユーザが勝利した相手ユーザと前記第1の対戦モードにおける当該ユーザの勝利数とを特定可能に管理」するとは、概念的に、サーバ20側においてトーナメント履歴を記憶して管理すること、およびサーバ20側の制御処理により携帯端末10側においてトーナメント履歴を記憶させて管理することのいずれをも含む。
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。この発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。