以下、図面を参照しつつ、本発明の様々な実施形態について説明する。ただし、本発明の技術的範囲はそれらの実施形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
1.本実施形態の概略
本実施形態のゲームシステムでは、プレイヤは、サーバが提供するゲームを携帯端末を用いて実施する。サーバが提供するゲームには、ゲームのシナリオに従って進行するクエスト、プレイヤ同士が戦う通常対戦及びイベントとして実行される対戦イベントが含まれる。
クエストとは、一般に、探索、ミッション等とも称されるものであり、複数のダンジョンのそれぞれに複数のフロア(ステージ)を有し、各フロアの処理を順次実行していくものである。各フロアの処理には、プレイヤが有するキャラクタと敵キャラクタとの対戦、プレイヤへの特定のアイテム等の特典の付与等が含まれる。通常対戦は、各プレイヤが有するキャラクタ同士により実行される対戦である。対戦イベントは、複数のプレイヤが協力して敵キャラクタ(いわゆるノンプレイヤキャラクタ)と戦ういわゆるRAIDバトルであり、対戦ゲームの一例である。
キャラクタは、ゲーム媒体の一例である。ゲーム媒体とは、ゲームに使用される電子データであり、例えば、カード、アイテム、キャラクタ及びアバタ等を含む。また、ゲーム媒体は、ゲームの進行に応じ、プレイヤによって、ゲーム内で、取得、保有、使用、管理、交換、合成、強化、売却、廃棄、及び/又は贈与等され得る電子データであるが、ゲーム媒体の利用態様は本明細書で明示されるものには限られない。
対戦に使用されるプレイヤのキャラクタ又は敵キャラクタは、対戦用パラメータを有している。対戦用パラメータは、例えば、攻撃力、防御力、体力(又はHP(ヒットポイント))、属性(例えば、火、水、雷等)、レア度(例えば、ノーマル、レア、S(スーパー)レア、SS(ダブルスーパー)レア、SSS(トリプルスーパー)レア、レジェンド等)、スキル(特殊効果)の発動率、攻撃速度(一ターンにおける攻撃回数、攻撃するまでのターン数等)、一対戦における防御回数等のパラメータ及び/又はジョブ(例えば、職業、兵種等)等である。
サーバは、対戦イベントを実行するために、予め複数のプレイヤを複数のグループに分類しておく。そして、サーバは、対戦イベントに参加しているプレイヤからの参加依頼に従って、まず、そのプレイヤが所属するグループに所属する各プレイヤに、対戦への参加要求を通知する。さらに、サーバは、通知時間が経過する度に、まだ参加要求を通知していないグループを順次選択し、選択したグループに所属する各プレイヤに対戦への参加要求を通知する。このようにして、サーバは、対戦イベントに多数のプレイヤが殺到することを防止しつつ、参加要求が通知された各プレイヤが参加要求に気付かない場合でも参加者の数を確保するように、対戦への参加要求を各プレイヤに適切に通知することを図る。
また、サーバは、各プレイヤに、対戦イベントにおける各プレイヤの強さに応じて、各対戦イベントへの参加の可否を判定するために用いられる参加値を設定しておく。そして、サーバは、対戦に参加する各プレイヤに設定された参加値の合計が所定の上限値を超えない範囲で各プレイヤからの対戦への参加を受け付ける。このようにして、サーバは、対戦イベントにおいて、強いプレイヤばかりが参加して簡単に敵キャラクタを倒してしまうこと、逆に弱いプレイヤばかりが参加して敵キャラクタを倒せなくなることを抑制するように、ゲームバランスを適切に維持することを図る。
2.ゲームシステム1の構成
図1は、ゲームシステム1の概略構成の一例を示す図である。
ゲームシステム1は、少なくとも一台の携帯端末2と、サーバ3とを備える。携帯端末2とサーバ3は、例えば、基地局4、移動体通信網5、ゲートウェイ6、及びインターネット7等の通信ネットワークを介して相互に接続される。携帯端末2で実行されるプログラム(例えば、閲覧プログラム)と、サーバ3で実行されるプログラム(例えば、ゲームプログラム)とは、ハイパーテキスト転送プロトコル(Hypertext Transfer Protocol, HTTP)等の通信プロトコルを用いて通信を行う。
なお、携帯端末2としては多機能携帯電話(所謂「スマートフォン」)を想定するが、本発明はこれに限定されない。携帯端末2は、本発明が適用可能であればよく、例えば、携帯電話(所謂「フィーチャーフォン」)、携帯情報端末(Personal Digital Assistant, PDA)、携帯ゲーム機、携帯音楽プレイヤ、タブレット端末、タブレットPC、ノートPC等でもよい。
2.1.携帯端末2の構成
図2は、携帯端末2の概略構成の一例を示す図である。
携帯端末2は、端末通信部21と、端末記憶部22と、操作部23と、表示部24と、端末処理部25とを備える。携帯端末2は、プレイヤによる操作部23(ボタン等)の操作に応じて、ゲームの進行をサーバ3に要求する。また、携帯端末2は、サーバ3からゲームの進行に係る表示データを受信して表示する。
端末通信部21は、所定の周波数帯を感受帯域とするアンテナを含む、通信インターフェース回路を備え、携帯端末2を無線通信ネットワークに接続する。端末通信部21は、基地局4により割り当てられるチャネルを介して、基地局4との間でCDMA(Code Division Multiple Access)方式等による無線信号回線を確立し、基地局4との間で通信を行う。そして、端末通信部21は、端末処理部25から供給されたデータをサーバ3等に送信する。また、端末通信部21は、サーバ3等から受信したデータを端末処理部25に供給する。なお、端末通信部21は、不図示のWifi(Wireless Fidelity)のアクセスポイントとの間でIEEE802.11規格の無線通信方式による無線通信を行うものでもよい。
端末記憶部22は、例えば、半導体メモリ装置を備える。端末記憶部22は、端末処理部25での処理に用いられるオペレーティングシステムプログラム、ドライバプログラム、アプリケーションプログラム、データ等を記憶する。例えば、端末記憶部22は、ドライバプログラムとして、操作部23を制御する入力デバイスドライバプログラム、表示部24を制御する出力デバイスドライバプログラム等を記憶する。また、端末記憶部22は、アプリケーションプログラムとして、ゲームの進行に係る表示データの取得及び表示を行うプログラム等を記憶する。コンピュータプログラムは、例えばCD−ROM(compact disk read only memory)、DVD−ROM(digital versatile disk read only memory)等のコンピュータ読み取り可能な可搬型記録媒体から、公知のセットアッププログラム等を用いて端末記憶部22にインストールされてもよい。また、端末記憶部22は、データとして、携帯端末2のユーザの識別情報であるプレイヤID、ゲームの進行に係る表示データ、映像データ、画像データ等を記憶する。さらに、端末記憶部22は、所定の処理に係る一時的なデータを一時的に記憶してもよい。
操作部23は、携帯端末2の操作が可能であればどのようなデバイスでもよく、例えば、タッチパネル、キーボタン等である。プレイヤは、操作部23を用いて、文字、数字、記号等を入力することができる。操作部23は、プレイヤにより操作されると、その操作に対応する信号を生成する。そして、生成された信号は、プレイヤの指示として、端末処理部25に供給される。
表示部24も、映像や画像等の表示が可能であればどのようなデバイスでもよく、例えば、液晶ディスプレイや有機EL(Electro−Luminescence)ディスプレイ等である。表示部24は、端末処理部25から供給された映像データに応じた映像や、画像データに応じた画像等を表示する。
端末処理部25は、一又は複数個のプロセッサ及びその周辺回路を備える。端末処理部25は、例えばCPU(Central Processing Unit)であり、携帯端末2の全体的な動作を統括的に制御する。端末処理部25は、端末記憶部22に記憶されているプログラム、操作部23の操作等に基づいて携帯端末2の各種処理が適切な手順で実行されるように、端末通信部21、表示部24等の動作を制御する。端末処理部25は、端末記憶部22に記憶されているプログラム(オペレーティングシステムプログラム、ドライバプログラム、アプリケーションプログラム等)に基づいて処理を実行する。また、端末処理部25は、複数のプログラム(アプリケーションプログラム等)を並列に実行することができる。
2.1.1.端末処理部25の機能
図3(a)、(b)は、ゲームシステム1が提供する対戦イベントについて説明するための模式図である。図3(a)、(b)に示すように、この対戦イベントには、以下の2つの特色がある。
1つ目の特色は、各対戦イベントへの参加要求が、ゲームに参加している各プレイヤを分類したグループ毎に通知されるという点である。
図3(a)に示す例では、ゲームに参加している各プレイヤは、各プレイヤがゲームシステム1にアクセスしたタイミングに応じて、グループ1からグループNまでの複数のグループに分類される。対戦イベントで敵キャラクタと対戦しているプレイヤAの携帯端末2から、時刻Tに参加依頼要求が通知されると、まず、サーバ3は、プレイヤAが所属するグループKに所属する各プレイヤの携帯端末2に対戦への参加要求を通知する。次に、サーバ3は、時刻Tから通知時間が経過した時刻T+1において、まだ対戦イベントが継続しており(敵キャラクタに勝利していない)且つ対戦イベントへの参加者が定員に達していない場合、グループKに隣接するグループ(K−1)とグループ(K+1)に所属する各プレイヤの携帯端末2に対戦への参加要求を通知する。その後、サーバ3は、対戦イベントが終了する(敵キャラクタに勝利する)か、対戦イベントへの参加者が定員に達するまで、通知時間が経過する度に、最後に参加要求を通知したグループに隣接するグループに所属する各プレイヤの携帯端末2に対戦への参加要求を通知する。
対戦イベントへの参加要求は、グループ毎に通知されるため、敵キャラクタとの対戦に多数のプレイヤが殺到して、サーバ3の処理負荷が高くなり過ぎることが防止される。さらに、参加要求が通知された各プレイヤが参加要求に気付かない場合でも、通知時間が経過した後には他のグループのプレイヤに参加要求が通知されるため、対戦イベントに参加するプレイヤの数が少ないままとならず、対戦イベントに参加するプレイヤの数が確保される。したがって、サーバ3は、対戦イベントへの参加要求を各プレイヤに適切に通知することが可能となる。
2つ目の特色は、各プレイヤからの対戦イベントへの参加は、対戦イベントに参加する各プレイヤに設定された参加値の合計が所定の上限値を超えない範囲で受け付けられるという点である。
図3(b)に示すように、ゲームに参加している各プレイヤには、対戦イベントにおける各プレイヤの強さに応じて、対戦イベントへの参加の可否を判定するために用いられる参加値が設定されている。図3(b)に示す例では、弱いプレイヤほど大きい参加値が設定され、強いプレイヤほど小さい参加値が設定される。サーバ3は、対戦イベントに参加する各プレイヤに設定された参加値の合計が、対戦イベントに定められた上限値を超えない範囲で、各プレイヤの対戦への参加を受け付ける。即ち、参加値が10ポイントであるプレイヤBと参加値が5ポイントであるプレイヤCが、上限値が18ポイントである敵キャラクタとの対戦イベントに既に参加している場合、参加値が1ポイントである強いプレイヤDはその対戦イベントに参加可能であるが、参加値が10ポイントである弱いプレイヤEはその対戦イベントに参加できない。
これにより、対戦イベントにおいて、弱いプレイヤばかりが参加して敵キャラクタを倒せなくなることが抑制される。逆に、強いプレイヤほど大きい参加値を設定し、弱いプレイヤほど小さい参加値を設定しておくことにより、対戦イベントにおいて、強いプレイヤばかりが参加して簡単に敵キャラクタが倒されてしまうことが抑制される。したがって、サーバ3は、ゲームバランスを適切に維持することが可能となる。
図4(a)は、表示部24に表示されるホーム画面の一例を示す図である。
図4(a)に示すホーム画面400は、ゲーム開始時等に表示される。以下で説明する各画面は、サーバ3から受信された表示データに基づいて表示される。
ホーム画面400には、クエストボタン401、対戦ボタン402、イベントボタン403等が表示される。
クエストボタン401が押下されると、クエストを実行するための画面(不図示)が表示され、プレイヤはクエストを実行することができる。なお、本実施形態では、クエストにおいて対戦イベントにおける敵キャラクタの探索も行われ、クエストにおいて敵キャラクタが発見された場合、後述する対戦準備画面が自動的に表示され、プレイヤは対戦イベントを実行することができる。対戦ボタン402が押下されると、通常対戦を実行するための画面(不図示)が表示され、プレイヤは通常対戦を実行することができる。イベントボタン403が押下されると、対戦イベントを実行するための画面が表示され、プレイヤは対戦イベントを実行することができる。
図4(b)は、表示部24に表示されるイベント画面の一例を示す図である。
図4(b)に示すイベント画面410は、ホーム画面400でイベントボタン403が押下されたときに表示される。イベント画面410には、対戦イベントを実行するための複数の対戦実行ボタン411、412、探索ボタン413、一覧ボタン414、報酬ボタン415、成績ボタン416及びホームボタン417等が表示される。
対戦実行ボタン411は、プレイヤが参加可能な対戦イベントの内、プレイヤが発見した敵キャラクタとの対戦イベントを実行するためのボタンである。対戦実行ボタン411上には、プレイヤが発見した敵キャラクタの画像、名前、レベル、対戦イベントの残り時間、発見したプレイヤ名等が表示される。敵キャラクタの画像には、敵キャラクタの最大HP及び残りHPを帯状のグラフで表示するゲージが含まれる。対戦実行ボタン412は、プレイヤが参加可能な対戦イベントの内、他のプレイヤが発見した敵キャラクタとの対戦イベント、即ち他のプレイヤからプレイヤに参加要求が通知された対戦イベントを実行するためのボタンである。対戦実行ボタン412上には、その敵キャラクタについて、対戦実行ボタン411と同様の情報が表示される。対戦実行ボタン412により実行される対戦イベントは、プレイヤに参加要求が通知された対戦イベントの中の最もおすすめの対戦イベントである。最もおすすめの対戦イベントは、敵キャラクタのHPが最も高いもしくは低い対戦イベント、残り時間が最も多いもしくは少ない対戦イベント、又は敵キャラクタに勝利した際の報酬が最も高いもしくは低い対戦イベント等である。
対戦実行ボタン411は、プレイヤが敵キャラクタを発見していない場合、表示されない。なお、対戦実行ボタン411は、プレイヤが敵キャラクタを発見していない場合、プレイヤに参加要求が通知された対戦イベントの中の二番目におすすめの対戦イベントを実行するためのボタンとして機能してもよい。
探索ボタン413が押下されると、敵キャラクタの探索が実行され、敵キャラクタが発見された場合、後述する対戦準備画面が表示される。一方、敵キャラクタが発見されなかった場合、再度イベント画面が表示され、そのイベント画面には敵キャラクタが発見されなかった旨が表示される。なお、探索ボタン413が押下された場合、クエストを実行するための画面(不図示)が表示され、プレイヤがクエストを実行することにより敵キャラクタが探索されてもよい。
一覧ボタン414が押下されると、対戦イベントにより現在対戦可能な敵キャラクタの一覧を表す画面が表示される。報酬ボタン415が押下されると、敵キャラクタ及びそのレベル毎に、対戦イベントに勝利した場合に付与される報酬(ポイント)を一覧表示する画面(不図示)が表示される。成績ボタン416が押下されると、対戦イベントで付与されるゲームポイントに基づいて算出される各プレイヤの順位(例えば1位から所定順位までの各プレイヤ名の一覧)を表す画面(不図示)が表示される。ホームボタン417が押下されると、再度ホーム画面400が表示される。
図4(c)、(d)は、表示部24に表示される対戦準備画面の一例を示す図である。
図4(c)に示す対戦準備画面420は、イベント画面410で対戦実行ボタン411、412が押下された場合、探索ボタン413が押下され且つ敵キャラクタが発見された場合、又は、クエストにおいて敵キャラクタが発見された場合等に表示される。図4(d)に示す対戦準備画面440は、対戦準備画面420をスクロールさせたときに表示される。対戦準備画面420には、敵キャラクタを発見したプレイヤ名421、敵キャラクタの名前422、レベル423、画像424、HP425、対戦イベントの残り時間426等が表示される。また、対戦準備画面420には、攻撃ボタン427、アイテムボタン428、参加依頼ボタン429、回復ボタン430、設定ボタン431、一覧ボタン432、報酬ボタン433、成績ボタン434等が表示される。また、対戦準備画面440には、報酬441、参加プレイヤ442、イベントボタン443、ホームボタン444等が表示される。
HP425として、敵キャラクタの最大HP及び残りHPが帯状のグラフ(ゲージ)及び数値で表示される。攻撃ボタン427が押下されると、敵キャラクタとの対戦イベントが実行され、プレイヤのキャラクタと敵キャラクタのHPの変化を表す対戦の演出画像がアニメーション等により表示された後に対戦の結果を表す画面が表示される。アイテムボタン428が押下されると、敵キャラクタとの対戦において、攻撃力もしくは防御力を上昇させる効果等の特殊効果を発動させることが可能な、プレイヤが所有するアイテムを一覧表示する画面(不図示)が表示される。プレイヤは、表示された画面から特定のアイテムを選択して特殊効果を発動させることができる。
参加依頼ボタン429が押下されると、他のプレイヤへの対戦イベントへの参加依頼がサーバ3へ要求され、対戦準備画面が再表示される。なお、本実施形態では、敵キャラクタを発見したプレイヤが参加依頼を要求可能なプレイヤとなる。また、その対戦イベントに参加しているプレイヤもしくは敵キャラクタに攻撃を行ったプレイヤ、又はこれらのプレイヤの中からランダムに選択されたプレイヤ等を、参加依頼を要求可能なプレイヤとしてもよい。なお、各プレイヤが参加依頼を要求可能な回数は所定数(例えば3)以下に制限されてもよい。参加依頼ボタン429は、参加依頼を要求可能なプレイヤのみが押下可能に表示される。新たなプレイヤが対戦イベントに参加すると、参加プレイヤ442が更新される。
回復ボタン430が押下されると、プレイヤが所有するアイテムの内、プレイヤのキャラクタのHPを回復させることが可能な回復アイテムを一覧表示する画面(不図示)が表示される。プレイヤは、表示された画面から回復アイテムを選択してHPを回復させることができる。設定ボタン431が押下されると、プレイヤが所有するキャラクタを一覧表示する画面(不図示)が表示される。プレイヤは、表示された画面から、敵キャラクタと対戦させるキャラクタを選択することができる。一覧ボタン432、報酬ボタン433、成績ボタン434は、それぞれイベント画面410における一覧ボタン414、報酬ボタン415、成績ボタン416と同様の機能を有する。
報酬441は、プレイヤが対戦イベントにおいて現在までに取得したゲームポイントの合計である。参加プレイヤ442は、現在、敵キャラクタとの対戦イベントを実行しているプレイヤの一覧である。イベントボタン443が押下されると、再度イベント画面410が表示される。ホームボタン444が押下されると、再度ホーム画面400が表示される。
図5(a)、(b)に示す対戦結果画面500、510は、対戦準備画面420で攻撃ボタン427が押下された場合に、対戦の演出画像がアニメーション等により表示された後に表示される。対戦結果画面500は、敵キャラクタに敗北したときに表示され、対戦結果画面510は、敵キャラクタに勝利したときに表示される。
対戦結果画面500には、敵キャラクタを発見したプレイヤ名501、敵キャラクタの名前502、レベル503、画像504、HP505、プレイヤのキャラクタの画像506、HP507、結果508及び戻るボタン509等が表示される。
敵キャラクタのHP505及びプレイヤのキャラクタのHP507として、対戦準備画面440に表示されるHP425と同様に、最大HP及び残りHPが帯状のグラフ(ゲージ)及び数値で表示される。対戦結果画面500では、敵キャラクタのHP505はまだ0になっていないが、プレイヤのキャラクタのHP507は0になっており、結果508としてプレイヤが敗北した旨が表示されている。戻るボタン509が押下されると、対戦準備画面440が再表示され、プレイヤは敵キャラクタと再度対戦することができる。
対戦結果画面510には、敵キャラクタを発見したプレイヤ名501、敵キャラクタの名前502、レベル503、画像504、HP515、プレイヤのキャラクタの画像506、HP517、結果518及び戻るボタン509等が表示される。
対戦結果画面510では、プレイヤのキャラクタのHP517は0になっていないが、敵キャラクタのHP515は0になっており、結果518としてプレイヤが勝利した旨と、プレイヤに付与される報酬とが表示されている。戻るボタン509が押下されると、イベント画面410が再表示される。
図5(c)に示す一覧画面520は、イベント画面410で一覧ボタン414が押下された場合、又は対戦準備画面420で一覧ボタン432が押下された場合に表示される。一覧画面520には、プレイヤが参加可能な対戦イベント毎に、各対戦イベントに係る情報521及び選択ボタン522が表示されるとともに、並べ替えボタン523及び戻るボタン524が表示される。プレイヤが参加可能な対戦イベントは、プレイヤが発見した敵キャラクタとの対戦イベント、又は、他のプレイヤからプレイヤに参加要求が通知された対戦イベントである。
各対戦イベントに係る情報521には、敵キャラクタを発見したプレイヤ名、敵キャラクタの画像、名前、レベル、HP、対戦イベントの残り時間等が含まれる。選択ボタン522が押下されると、押下された選択ボタン522に対応する敵キャラクタとの対戦イベントを実行するための対戦準備画面420、440が表示される。並べ替えボタン523は、各対戦に係る情報521及び選択ボタン522を並べる順序を変更するためのボタンである。並べ替えボタン523には、各対戦の敵キャラクタの残りHP(体力)、各対戦イベントの残り時間、又は、各対戦イベントで得られる報酬を昇順又は降順に並べるための各ボタンが含まれる。並べ替えボタン523が押下されると、一覧画面520において各対戦イベントに係る情報521及び選択ボタン522は、押下されたボタンに対応する順に並べられて再表示される。戻るボタン524が押下されると、イベント画面410又は対戦準備画面420が再度表示される。
このように、一覧画面520には、各対戦イベントに係る情報521及び選択ボタン522が、各対戦の敵キャラクタの残り体力、各対戦イベントの残り時間、及び、各対戦イベントで得られる報酬の内の少なくとも一つに基づいた順に並べて表示される。
なお、プレイヤが敵キャラクタを発見した時点では、プレイヤは、発見した敵キャラクタとの対戦イベントにまだ参加していないものとみなされる。その対戦イベントに関する、イベント画面410の対戦実行ボタン411、一覧画面520の選択ボタン522、又は対戦準備画面420の攻撃ボタン427が押下された時に、プレイヤが、発見した敵キャラクタとの対戦イベントに参加したものとみなされる。
2.1.2.端末処理部25の構成
端末処理部25は、少なくとも閲覧実行部251を備える。閲覧実行部251は、端末処理部25が備えるプロセッサで実行されるプログラムにより実現される機能モジュールである。あるいは、閲覧実行部251は、ファームウェアとして携帯端末2に実装されてもよい。
閲覧実行部251は、ゲームの進行に係る表示データの取得及び表示を行う。即ち、閲覧実行部251は、プレイヤからの指示に応じて、ゲームの進行に係る表示データの取得要求を端末通信部21を介してサーバ3に送信する。また、閲覧実行部251は、対応する表示データを端末通信部21を介してサーバ3から受信する。閲覧実行部251は、受信した表示データに基づいて描画データを作成する。即ち、閲覧実行部251は、受信した表示データを解析して制御データ及び内容データを特定し、特定した制御データに基づいて同じく特定した内容データをレイアウトし、描画データを作成する。そして、閲覧実行部251は、作成した描画データを表示部24に出力する。また、閲覧実行部251は、サーバ3との通信接続が確立されている間、表示データに含まれる各情報を端末記憶部22に記憶する。
2.2.サーバ3の構成
図6は、サーバ3の概略構成の一例を示す図である。また、図7(a)〜(c)、図8(a)〜(c)は、サーバ記憶部32が記憶する各種テーブルのデータ構造の一例を示す図である。
サーバ3は、サーバ通信部31と、サーバ記憶部32と、サーバ処理部33とを備える。サーバ3は、携帯端末2からの要求に応じてゲームを進行させる。また、サーバ3は、ゲームの進行に係る表示データを作成して携帯端末2に送信する。
サーバ通信部31は、出力部の一例であり、サーバ3をインターネット7に接続するための通信インターフェース回路を備え、インターネット7との間で通信を行う。そして、サーバ通信部31は、携帯端末2等から受信したデータをサーバ処理部33に供給する。また、サーバ通信部31は、サーバ処理部33から供給されたデータを携帯端末2等に送信する。
サーバ記憶部32は、例えば、磁気テープ装置、磁気ディスク装置、又は光ディスク装置のうちの少なくとも一つを備える。サーバ記憶部32は、サーバ処理部33での処理に用いられるオペレーティングシステムプログラム、ドライバプログラム、アプリケーションプログラム、データ等を記憶する。例えば、サーバ記憶部32は、アプリケーションプログラムとして、ゲームを進行させ、その結果に係る表示データを作成するゲームプログラム等を記憶する。コンピュータプログラムは、例えばCD−ROM、DVD−ROM等のコンピュータ読み取り可能な可搬型記録媒体から、公知のセットアッププログラム等を用いて端末記憶部22にインストールされてもよい。
また、サーバ記憶部32は、データとして、図7(a)に示すプレイヤテーブル、図7(b)に示す対戦情報テーブル、図7(c)に示す対戦テーブル、図8(a)に示すグループテーブル、図8(b)に示すキャラクタテーブル、図8(c)に示すアイテムテーブル、各プレイヤの画像データ、ゲームの進行に係る様々な画像データ等を記憶する。さらに、サーバ記憶部32は、所定の処理に係る一時的なデータを一時的に記憶してもよい。
図7(a)は、プレイヤを管理するプレイヤテーブルを示す。プレイヤテーブルには、各プレイヤについて、当該プレイヤの識別番号(プレイヤID)、パスワード、名前、画像データのファイル名、所有キャラクタ情報、使用ID、所有アイテム情報、プレイヤレベル及び関連プレイヤのプレイヤID等の情報が関連付けて記憶される。
所有キャラクタ情報には、プレイヤが所有するキャラクタ毎に、所有するキャラクタを管理するための識別番号(所有ID)、当該キャラクタの識別番号(キャラクタID)等が関連付けて記憶される。使用IDは、対戦に使用される使用キャラクタの識別番号であり、所有キャラクタ情報に含まれるキャラクタの内、対戦に使用されるキャラクタの所有IDである。所有アイテム情報には、プレイヤが所有するアイテム毎に、所有するアイテムを管理するための識別番号(所有ID)、当該アイテムの識別番号(アイテムID)等が関連付けて記憶される。アイテムは、例えば敵キャラクタとの対戦において攻撃力もしくは防御力を上昇させる効果等の特殊効果を発動させることが可能な薬、対戦ポイントを回復させるための薬等である。
プレイヤレベルは、クエスト又は通常対戦におけるプレイヤのレベルであり、クエスト又は通常対戦においてプレイヤに付与されたポイントに応じて定められる。関連プレイヤは、そのプレイヤに関連する他のプレイヤである。関連プレイヤは、例えばそのプレイヤと同一の所属グループに所属する他のプレイヤ、そのプレイヤとフレンド関係にある他のプレイヤ、過去の敵キャラクタとの対戦においてそのプレイヤを救援した他のプレイヤ、過去に対戦した他のプレイヤ及び/又は過去に対戦したグループに所属する他のプレイヤ、過去にメッセージを送信又は受信したことがある他のプレイヤ等である。
図7(b)は、プレイヤ毎の対戦イベントに関する情報を管理する対戦情報テーブルを示す。対戦情報テーブルには、各プレイヤについて、当該プレイヤのプレイヤID、対戦ポイント、参加値、結果情報、発見対戦ID、参加対戦ID、参加要求対戦ID及び過去成績等の情報が関連付けて記憶される。
対戦ポイントは、敵キャラクタとの対戦イベントを実行するためのポイントであり、対戦イベントを実行するたびに消費される。なお、対戦ポイントは、一定時間の経過又は特定のアイテムの使用等により回復する。参加値は、プレイヤが対戦イベントに参加する際に参加の可否を判定するために用いられる値であり、プレイヤに設定された設定値の一例である。参加値は、対戦イベントにおける各プレイヤの強さに応じて設定され、例えば各プレイヤの強さが高いほど小さい値に設定される。または、参加値は、各プレイヤの強さが低いほど小さい値に設定されてもよい。
結果情報には、ゲームポイント、勝利回数及び参加回数等が含まれる。ゲームポイントは、対戦イベントにおいて敵キャラクタにダメージを与えた場合、又は敵キャラクタに勝利した場合等に各プレイヤに付与されるポイントの累積値である。勝利回数は、プレイヤが敵キャラクタに勝利した対戦イベントの数である。参加回数は、プレイヤが参加した対戦イベントの数である。発見対戦IDは、プレイヤが敵キャラクタを発見した対戦イベントの識別番号である。参加対戦IDは、プレイヤが参加中の対戦イベントの識別番号である。参加要求対戦IDは、プレイヤが参加要求を受けている対戦イベントの識別番号である。過去成績には、過去に対戦イベントが開催された、所定のイベント期間におけるイベント毎に、当該イベントを管理するための識別番号(イベントID)、当該イベントにおけるプレイヤの順位等が関連付けて記憶される。順位は、イベントにおいてプレイヤが取得したゲームポイントにより定められる。
図7(c)は、各対戦イベントを管理する対戦テーブルを示す。対戦テーブルには、各対戦イベントについて、当該対戦イベントを管理するための識別番号(対戦ID)、敵キャラクタ名、レベル、HP、合計参加値、発見時刻、終了フラグ、発見プレイヤID、参加プレイヤID、参加要求プレイヤID、報酬ポイント、参加依頼開始時刻等が記憶される。
敵キャラクタ名は、その対戦イベントで対戦する敵キャラクタの名前である。レベルは、その対戦イベントで対戦する敵キャラクタのレベルである。HPとして、その敵キャラクタの残りHP及び最大HPが記憶される。合計参加値は、そのイベントに参加しているプレイヤの参加値の総和を示す。発見時刻は、敵キャラクタが発見された時刻、即ち対戦イベントが開始した時刻である。終了フラグは、対戦イベントが終了したか否かを表し、対戦イベントの開始時にOFFに設定され、発見時刻から一定時間(例えば30分)経過後、又はプレイヤが敵キャラクタに勝利した場合にONに設定される。
発見プレイヤIDは、敵キャラクタを発見したプレイヤのプレイヤIDである。参加プレイヤIDは、対戦イベントに参加しているプレイヤのプレイヤIDである。参加要求プレイヤIDは、対戦イベントへの参加要求が通知されているプレイヤのプレイヤIDである。報酬ポイントは、その敵キャラクタに勝利した場合にプレイヤに付与されるポイントである。参加依頼開始時刻は、プレイヤからの参加依頼要求が最初に通知された時刻であり、まだ参加依頼要求が通知されていない場合、参加依頼開始時刻には空白が記憶される。
図8(a)は、各プレイヤが分類された各グループを管理するグループテーブルを示す。グループテーブルには、各グループについて、当該グループに所属するプレイヤのプレイヤID等が関連付けて記憶される。
図8(b)は、キャラクタを管理するキャラクタテーブルを示す。キャラクタテーブルには、各キャラクタについて、当該キャラクタのキャラクタID、名前、画像データのファイル名及びレア度、攻撃力、防御力、属性、消費値等のパラメータ等が関連付けて記憶される。消費値は、そのキャラクタが対戦イベントで使用された場合に、プレイヤの対戦ポイントから消費される値を示す。
図8(c)は、アイテムを管理するアイテムテーブルを示す。アイテムテーブルには、各アイテムについて、当該アイテムのアイテムID、名前、画像データのファイル名、種別等が関連付けて記憶される。
2.2.1.サーバ処理部33の構成
サーバ処理部33は、進行制御部331、メインゲーム実行部332、対戦実行部333、参加要求通知部334、参加受付部335及び分類部336を備える。これらの各部は、サーバ処理部33が備えるプロセッサで実行されるプログラムにより実現される機能モジュールである。あるいは、これらの各部は、ファームウェアとしてサーバ3に実装されてもよい。
進行制御部331は、ゲームの開始及び進行を制御し、メインゲーム実行部332、対戦実行部333、参加要求通知部334及び参加受付部335に処理の実行を適宜指示する。進行制御部331は、サーバ通信部31を介して、携帯端末2との間で必要なデータをやり取りする。
図4(a)〜図5(c)を用いて説明した各画面の要求を携帯端末2から受信すると、進行制御部331は、プレイヤからの指示を受け付けるためのボタン、プレイヤに通知する文字情報、画像等をその画面に応じたレイアウトで表示させるための表示データの作成を実行又は各部に指示し、そのデータを携帯端末2に送信する。そして携帯端末2に表示させた画面上で何れかのボタンが押下され、そのボタンに対応する次の画面の要求を携帯端末2から受信すると、進行制御部331は、同様に次の画面の表示データの作成を実行又は各部に指示し、そのデータを携帯端末2に送信する。
特に、プレイヤにより携帯端末2を用いてゲームを開始する操作、又は、ホーム画面へ遷移する操作が行われ、それに対応するホーム画面要求を携帯端末2から受信した場合、進行制御部331は、ホーム画面400を表示するための表示データを作成する。そして、進行制御部331は、作成した表示データを携帯端末2に送信する。
また、携帯端末2に表示されたホーム画面400でクエストボタン401又は対戦ボタン402が押下され、それに対応するクエスト要求又は通常対戦要求を携帯端末2から受信した場合、進行制御部331は、メインゲーム実行部332にクエスト又は通常対戦の実行を指示する。そして、進行制御部331は、メインゲーム実行部332が作成した、クエスト又は通常対戦を実行するための表示データを携帯端末2に送信する。
また、携帯端末2に表示されたホーム画面400でイベントボタン403が押下され、それに対応するイベント画面要求を携帯端末2から受信した場合、進行制御部331は、対戦実行部333にイベント画面410を表示するための表示データの作成を指示する。そして、進行制御部331は、対戦実行部333が作成した表示データを携帯端末2に送信する。
また、携帯端末2に表示されたイベント画面410で探索ボタン413が押下され、それに対応する探索要求を携帯端末2から受信した場合、進行制御部331は、対戦実行部333に探索処理の実行を指示する。そして、進行制御部331は、対戦実行部333が探索処理の結果に応じて作成したイベント画面410又は対戦準備画面420、440を表示するための表示データを携帯端末2に送信する。
また、携帯端末2に表示された対戦準備画面420で攻撃ボタン427が押下され、それに対応する対戦要求を携帯端末2から受信した場合、進行制御部331は、対戦実行部333に対戦の実行を指示する。そして、進行制御部331は、対戦実行部333が対戦の実行結果に応じて作成した対戦の演出画像を表示するための表示データ、及び対戦結果画面500、510を表示するための表示データを携帯端末2に送信する。
また、携帯端末2に表示された対戦準備画面420で参加依頼ボタン429が押下され、それに対応する参加依頼要求を携帯端末2から受信した場合、進行制御部331は、参加要求通知部334に参加依頼処理の実行を指示する。さらに、進行制御部331は、対戦実行部333に対戦準備画面420、440の表示データの作成を指示し、対戦実行部333が作成した表示データを携帯端末2に送信する。
また、携帯端末2に表示されたイベント画面410の一覧ボタン414又は対戦準備画面420の一覧ボタン432が押下され、それに対応する一覧画面要求を携帯端末2から受信した場合、進行制御部331は、対戦実行部333に一覧画面520を表示するための表示データの作成を指示する。そして、進行制御部331は、対戦実行部333が作成した表示データを携帯端末2に送信する。
また、携帯端末2に表示されたイベント画面410の対戦実行ボタン411、412又は一覧画面520の選択ボタン522が押下され、それに対応する参加応答を携帯端末2から受信した場合、進行制御部331は、参加受付部335に参加受付処理の実行を指示する。進行制御部331は、参加受付部335により参加が受け付けられた場合、対戦実行部333に、参加が受け付けられた対戦イベントに対応する対戦準備画面420、440の表示データの作成を指示し、対戦実行部333が作成した表示データを携帯端末2に送信する。一方、進行制御部331は、参加受付部335により参加が受け付けられなかった場合、対戦実行部333にイベント画面410の表示データの作成を指示し、対戦実行部333が作成した表示データを携帯端末2に送信する。
メインゲーム実行部332は、進行制御部331からクエスト又は通常対戦の実行が指示された場合、クエスト要求又は通常対戦要求に含まれるプレイヤIDを特定し、プレイヤテーブルにおいて、特定したプレイヤIDに対応する所有キャラクタ情報等の各情報を抽出する。さらに、メインゲーム実行部332は、キャラクタテーブルから、抽出した所有キャラクタ情報に対応するキャラクタに関する情報を抽出する。メインゲーム実行部332は、抽出した各情報に基づいてクエスト又は通常対戦を実行するための表示データを作成し、作成した表示データを進行制御部331に渡す。以後、作成された表示データを用いてクエスト又は通常対戦が実行される。
対戦実行部333は、進行制御部331からイベント画面410の表示データの作成が指示された場合、イベント画面要求に含まれるプレイヤIDを特定し、対戦情報テーブルにおいて、特定したプレイヤIDに関連付けて参加対戦IDが記憶されているか否かを判定する。
特定したプレイヤIDに関連付けて参加対戦IDが記憶されている場合、即ちプレイヤが対戦イベントに既に参加済みである場合、対戦実行部333は、対戦テーブルからその参加対戦IDに対応する各情報を読み出し、読み出した各情報を表す対戦準備画面420の表示データを作成する。そして、対戦実行部333は、作成した表示データを進行制御部331に渡す。
一方、特定したプレイヤIDに関連付けて参加対戦IDが記憶されていない場合、即ち、プレイヤが対戦イベントにまだ参加していない場合、対戦実行部333は、イベント画面410の表示データを作成する。その場合、対戦実行部333は、対戦情報テーブルから、そのプレイヤが敵キャラクタを発見した対戦イベントと、そのプレイヤに参加要求が通知され且つそのプレイヤが参加可能な対戦イベントとを抽出する。
なお、対戦実行部333は、対戦情報テーブルにおいて、特定したプレイヤIDに関連付けて記憶された発見対戦IDに対応する対戦イベントをプレイヤに参加要求が通知された対戦イベントとして抽出する。また、対戦実行部333は、対戦情報テーブルにおいて、特定したプレイヤIDに関連付けて記憶された参加要求対戦IDに対応する対戦イベントをプレイヤに参加要求が通知された対戦イベントとして抽出する。また、対戦実行部333は、対戦テーブルにおいて終了フラグがOFFに設定され、参加プレイヤIDの数がプレイヤ数の上限に達しておらず、且つ参加値の合計値にプレイヤの参加値を加算した値が所定の上限値を超えない対戦イベントをプレイヤが参加可能な対戦イベントとして抽出する。
対戦実行部333は、抽出した対戦イベントの中で最もおすすめである対戦イベントを対戦テーブルに記憶された各情報に基づいて決定する。対戦実行部333は、対戦テーブルから、プレイヤが敵キャラクタを発見した対戦イベントに関する情報と、決定した各対戦イベントに関する情報を読み出し、各対戦イベントに対応する対戦実行ボタン411、412を表すイベント画面410の表示データを作成する。そして、対戦実行部333は、作成した表示データを進行制御部331に渡す。
また、対戦実行部333は、進行制御部331から探索処理の実行が指示された場合、例えば、サーバ3の現在のクロックカウンタ値等を種として発生させた擬似乱数を用いてプレイヤが敵キャラクタを発見したか否かを選択する抽選を実行する。対戦実行部333は、抽選に当選した場合、さらに、サーバ3の現在のクロックカウンタ値等を種として発生させた擬似乱数を用いて敵キャラクタ及びそのレベルを決定する。なお、対戦実行部333は、敵キャラクタを、プレイヤが直前に発見していた敵キャラクタより、レベルが一つだけ高い敵キャラクタに決定してもよい。
対戦実行部333は、対戦テーブルにおいて、そのプレイヤのプレイヤIDを発見プレイヤIDとし、現在時刻を発見時刻として、決定した敵キャラクタとの対戦イベントに関する各情報を新たに登録する。また、対戦実行部333は、対戦情報テーブルにおいて、その新たに登録した対戦イベントの対戦IDを発見対戦IDとしてそのプレイヤに関連付けて記憶する。そして、対戦実行部333は、その対戦イベントに対応する各情報を表す対戦準備画面420、440の表示データを作成する。一方、対戦実行部333は、抽選に当選しなかった場合、イベント画面410の表示データを再作成する。そして、対戦実行部333は、作成した表示データを進行制御部331に渡す。
また、対戦実行部333は、進行制御部331から対戦の実行が指示された場合、対戦要求に含まれるプレイヤID及び対戦IDを特定し、プレイヤテーブルから、特定したプレイヤIDに関連付けられた使用IDを抽出するとともに、対戦情報テーブルから、特定したプレイヤIDに関連付けられた対戦ポイントを抽出する。さらに、対戦実行部333は、キャラクタテーブルから、抽出した使用IDに関連付けられたキャラクタの消費値を抽出する。次に、対戦実行部333は、抽出した消費値が対戦ポイント以下であるか否かを判定する。消費値が対戦ポイントより大きい場合、対戦実行部333は、対戦イベントを実行せず、対戦ポイントが不足している旨を表す対戦準備画面の表示データを作成する。
一方、消費値が対戦ポイント以下である場合、対戦実行部333は、対戦情報テーブルにおいて対戦ポイントから消費値を減算する。次に、対戦実行部333は、対戦情報テーブルにおいて、特定したプレイヤIDに関連付けられた参加対戦IDが対戦要求に含まれる対戦IDと同一であるか否かにより、プレイヤがその対戦イベントの参加プレイヤであるか否かを判定する。プレイヤがその対戦イベントの参加プレイヤでない場合、対戦実行部333は、対戦情報テーブルにおいて、特定したプレイヤIDに関連付けられた発見対戦IDが対戦要求に含まれる対戦IDと同一であるか否かにより、プレイヤがその対戦イベントの発見プレイヤであるか否かを判定する。プレイヤがその対戦イベントの発見プレイヤでない場合、対戦実行部333は、対戦イベントを実行せず、プレイヤが対戦イベントに参加していない旨を表す対戦準備画面の表示データを作成する。
一方、プレイヤがその対戦イベントの発見プレイヤである場合、対戦実行部333は、対戦情報テーブルにおいて、特定した対戦IDを参加対戦IDとして、特定したプレイヤIDに関連付けて記憶し、更に、対戦テーブルにおいて、特定したプレイヤIDを参加プレイヤIDとして、特定した対戦IDに関連付けて記憶する。これにより、対戦実行部333は、そのプレイヤを対戦イベントに参加させる。
プレイヤがその対戦イベントの参加プレイヤである場合、対戦実行部333は、対戦イベントを実行する。対戦実行部333は、プレイヤのキャラクタの攻撃力と、敵キャラクタの防御力とに基づいて敵キャラクタに与えるダメージ量を決定し、対戦テーブルにおいて、決定したダメージ量を敵キャラクタのHPから減算する。一方、対戦実行部333は、敵キャラクタの攻撃力及びプレイヤのキャラクタの防御力に基づいてプレイヤのキャラクタに与えるダメージ量を決定し、決定したダメージ量をプレイヤのキャラクタのHPから減算する。対戦実行部333は、敵キャラクタのHPが先に0になった場合、プレイヤが勝利したと判定し、プレイヤのキャラクタのHPが先に0になった場合、プレイヤが敗北したと判定する。
対戦実行部333は、プレイヤが勝利した場合、対戦テーブルにおいてその対戦イベントに対応する終了フラグをONに設定し、対戦情報テーブルにおいて対戦イベントに参加した各プレイヤの発見対戦ID、参加対戦ID及び参加要求対戦IDからその対戦イベントの対戦IDを削除する。なお、対戦実行部333は、発見時刻から一定時間が経過した場合も同様に、対戦テーブルにおいてその対戦イベントに対応する終了フラグをONに設定し、対戦情報テーブルにおいて対戦イベントに参加した各プレイヤの発見対戦ID、参加対戦ID及び参加要求対戦IDからその対戦イベントの対戦IDを削除する。
さらに、対戦実行部333は、対戦テーブルから報酬ポイントを読み出し、対戦情報テーブルにおいて対戦イベントに参加した各プレイヤのゲームポイントに、読み出した報酬ポイントを加算し、勝利回数をインクリメント(+1)する。さらに、対戦実行部333は、各プレイヤに付与するアイテムを抽選により決定し、プレイヤテーブルにおいて各プレイヤの所有アイテム情報に追加する。また、対戦実行部333は、対戦イベントの結果に応じた、対戦の演出画像を表示する表示データ及び対戦結果画面500、510を表示する表示データを作成する。このように、対戦実行部333は、特定のプレイヤからの要求に従って、その特定のプレイヤのキャラクタと敵キャラクタとの対戦を開始し、実行する。
また、対戦実行部333は、進行制御部331から、一覧画面520の表示データの作成が指示された場合、一覧画面要求に含まれるプレイヤID及び並べ替えボタン523により指定された順序を特定する。対戦実行部333は、イベント画面410の表示データを作成する場合と同様にして、対戦情報テーブルから、特定したプレイヤが敵キャラクタを発見した対戦イベントと、そのプレイヤに参加要求が通知され且つそのプレイヤが参加可能な全ての対戦イベントとを抽出する。対戦実行部333は、対戦テーブルから、抽出した各対戦イベントに係る情報を読み出し、各対戦イベントに係る情報を、特定した順序に並べた一覧画面520の表示データを作成し、作成した表示データを進行制御部331に渡す。
参加要求通知部334は、進行制御部331から参加依頼処理の実行が指示された場合、参加依頼要求に含まれるプレイヤID及び対戦IDを特定する。次に、参加要求通知部334は、対戦テーブルにおいて、特定した対戦IDに関連付けられた発見プレイヤID又は参加プレイヤIDと、特定したプレイヤIDとが同一であるか否かにより、プレイヤが依頼可能なプレイヤであるか否かを判定する。プレイヤが依頼可能なプレイヤでない場合、参加要求通知部334は、他のプレイヤへ対戦イベントへの参加要求を通知しない。
一方、プレイヤが依頼可能なプレイヤである場合、参加要求通知部334は、グループテーブルにおいて、特定したプレイヤIDが含まれるグループを特定し、特定したグループに所属する、依頼元のプレイヤ以外の各プレイヤのプレイヤIDを抽出する。次に、参加要求通知部334は、対戦テーブルから、特定した対戦IDに関連付けられた合計参加値を読み出すとともに、対戦情報テーブルから、抽出した各プレイヤIDに関連付けられた参加値を読み出す。参加要求通知部334は、合計参加値にプレイヤの参加値を加算した値が所定の上限値以下であるか否かを判定し、上限値以下である場合に限り、そのプレイヤへ対戦イベントへの参加要求を通知する。
参加要求通知部334は、対戦テーブルにおいて、参加要求を通知したプレイヤのプレイヤIDを参加要求プレイヤIDとして、特定した対戦IDに関連付けて記憶し、対戦情報テーブルにおいて、特定した対戦IDを参加要求対戦IDとしてそのプレイヤIDに関連付けて記憶する。これにより、そのプレイヤが、次にイベント画面410又は一覧画面520を携帯端末2に表示させたときに、各画面には特定した対戦IDに対応する対戦イベントが選択可能に表示され、そのプレイヤに参加要求が通知される。また、参加要求通知部334は、サーバ通信部31を介して、プレイヤの携帯端末2に電子メール等を送信することにより、そのプレイヤへ対戦イベントへの参加要求を直接通知してもよい。このように、参加要求通知部334は、依頼元のプレイヤからの要求に従って、依頼元のプレイヤが含まれるグループに含まれるプレイヤに対戦イベントへの参加要求を通知する。
次に、参加要求通知部334は、対戦テーブルにおいて、現在時刻を参加依頼開始時刻として、特定した対戦IDに関連付けて記憶させる。次に、参加要求通知部334は、対戦準備画面420、440の表示データを再作成し、作成した表示データを進行制御部331に渡す。
その後、参加要求通知部334は、定期的に、対戦テーブルにおいて、特定した対戦IDに関連付けられた終了フラグがOFFであるか否かによって、対戦イベントが実行中であるか否かを判定する。参加要求通知部334は、対戦イベントが実行中である場合、参加依頼開始時刻から通知時間が経過する度に、即ち前回参加要求を通知してから通知時間が経過した時に、まだ参加要求を通知していない他のグループを順次選択し、選択したグループに含まれるプレイヤIDを抽出する。次に、参加要求通知部334は、対戦テーブルから、特定した対戦IDに関連付けられた合計参加値を読み出すとともに、対戦情報テーブルから、抽出した各プレイヤIDに関連付けられた参加値を読み出す。参加要求通知部334は、合計参加値にプレイヤの参加値を加算した値が所定の上限値を超えるか否かを判定し、上限値を超えない場合に限り、そのプレイヤへ対戦イベントへの参加要求を通知する。このように、参加要求通知部334は、通知時間が経過する度に、依頼元のプレイヤが含まれるグループ以外のグループを順次選択し、選択したグループに含まれるプレイヤに対戦イベントへの参加要求を通知する。
なお、参加要求通知部334は、直前に参加要求を通知したグループに隣接する各グループを、次に参加要求を通知するグループとして選択する。後述するように、各グループは、所属するプレイヤが対戦イベントへアクセスした最新時刻が均等に分散されるように分類されるので、参加要求を通知するプレイヤが最近アクセスしたプレイヤばかりになること、又はアクセスしていないプレイヤばかりになることが抑制される。
また、参加要求を通知する間隔を規定する通知時間は、予め定められた固定の時間(例えば1分)とすることができる。なお、通知時間は、参加要求に応じて対戦イベントに参加したプレイヤの数、対戦イベントを実行しているプレイヤの数、依頼元のプレイヤのキャラクタが対戦イベントにおいて敵キャラクタに勝利した数、依頼元のプレイヤのキャラクタが対戦イベントに参加した数、依頼元のプレイヤのレベル、及び、依頼元のプレイヤが他のプレイヤに送信したメッセージ数の内の少なくとも一つに基づいて変更されてもよい。
例えば、参加要求通知部334は、参加要求に応じて対戦イベントに参加したプレイヤの数が多いほど通知時間を長くし、参加要求に応じて対戦イベントに参加したプレイヤの数が少ないほど通知時間を短くする。これにより、対戦イベントに既に多くのプレイヤが参加している場合はさらなるプレイヤの参加が制限され、一つの対戦イベントにプレイヤが殺到することが防止される。一方、対戦イベントに参加するプレイヤがまだ少ない場合は早急により多くのプレイヤを参加させることができ、敵キャラクタに勝利するのに長時間を要することが防止される。
また、例えば、参加要求通知部334は、現在対戦イベントを実行しているプレイヤの数が多いほど通知時間を長くし、現在対戦イベントを実行しているプレイヤの数が少ないほど通知時間を短くする。これにより、対戦イベントを実行するプレイヤ数が多い昼休み、通勤時間等には参加を希望するプレイヤが殺到することを防止しつつ、プレイヤ数が少ない深夜等にはより多くのプレイヤを参加させることができ、各対戦イベントへの参加者の数を均一にすることが可能となる。
また、例えば、参加要求通知部334は、対戦イベントにおける依頼元のプレイヤの勝利回数もしくは参加回数が多いほど通知時間を短くする。これにより、プレイヤは、より短時間に対戦イベントへの参加者を集めて敵キャラクタを倒せるように、対戦イベントにより頻繁に参加するので、対戦イベントの活性化を図ることが可能となる。
また、例えば、参加要求通知部334は、対戦イベントにおける依頼元のプレイヤのプレイヤレベルが高いほど通知時間を短くする。これにより、プレイヤは、より短時間に対戦イベントへの参加者を集めて敵キャラクタを倒せるように、クエスト又は通常対戦をより頻繁に実行するので、クエスト又は通常対戦の活性化を図ることが可能となる。
また、例えば、参加要求通知部334は、プレイヤが関連プレイヤに送信したメッセージ数、又はプレイヤが他のプレイヤに送信したメインゲームへ勧誘するメッセージ数が多いほど通知時間を短くする。これにより、プレイヤは、より短時間に対戦イベントへの参加者を集めて敵キャラクタを倒せるように、より頻繁にメッセージを送信するので、プレイヤ間のコミュニケーションの活性化を図ることが可能となる。
また、参加要求通知部334は、進行制御部331から参加依頼処理の実行が指示された場合に最初に参加要求を通知するグループを、依頼元のプレイヤが含まれるグループではなく、他のグループにしてもよい。例えば、最初に参加要求を通知するグループは、依頼元のプレイヤに関連する関連プレイヤ、対戦に参加しているプレイヤ、及び、対戦に参加しているプレイヤに関連する関連プレイヤの内の少なくとも一人が含まれるグループとしてもよい。
参加受付部335は、進行制御部331から、参加受付処理の実行が指示された場合、参加応答に含まれるプレイヤID及び対戦IDを特定する。参加受付部335は、対戦テーブルから、特定した対戦IDに関連付けられた各情報を読み出す。
参加受付部335は、対戦テーブルにおいて、特定された対戦IDに関連付けられた発見プレイヤID又は参加要求プレイヤIDが、参加応答に含まれるプレイヤIDと同一であるか否かにより、プレイヤがその対戦イベントの発見プレイヤ又は参加要求が通知されたプレイヤであるか否かを判定する。また、参加受付部335は、対戦テーブルにおいて終了フラグがOFFに設定されているか否かにより、対戦イベントが実行中か否かを判定する。さらに、参加受付部335は、対戦テーブルに記憶された参加プレイヤIDから対戦イベントに参加している参加プレイヤ数を特定する。さらに、参加受付部335は、対戦テーブルから、特定した対戦IDに関連付けられた合計参加値を読み出すとともに、対戦情報テーブルから、特定したプレイヤIDに関連付けられた参加値を読み出す。
参加受付部335は、プレイヤがその対戦イベントの発見プレイヤ又は参加要求が通知されたプレイヤであり、対戦イベントが実行中であり、参加プレイヤ数がプレイヤ数の上限に達しておらず、且つ合計参加値にプレイヤの参加値を加算した値が上限値を超えない場合に限り、そのプレイヤの対戦イベントへの参加を受け付ける。
参加受付部335は、プレイヤの対戦イベントへの参加を受け付けた場合、対戦情報テーブルにおいて、特定した対戦IDを参加対戦IDとして、特定したプレイヤIDに関連付けて記憶させ、そのプレイヤに関連付けられた参加回数をインクリメント(+1)する。さらに、参加受付部335は、対戦テーブルにおいて、特定したプレイヤIDを参加プレイヤIDとして、特定した対戦IDに関連付けて記憶させ、合計参加値に新たに参加したプレイヤの参加値を加算する。
このように、参加受付部335は、対戦イベントに参加する各プレイヤに設定された参加値の合計が上限値を超えない範囲で、各プレイヤの対戦への参加を受け付ける。この参加値は、対戦イベントにおける各プレイヤの強さが高いほど小さい値に設定され、各プレイヤの強さが低いほど大きい値に設定される。したがって、弱いプレイヤばかりが特定の対戦イベントに参加してプレイヤ数の上限に達してしまい、強いプレイヤがその対戦イベントに参加できなくなり、結果として敵キャラクタを倒せなくなることが抑制される。または、参加値は、対戦イベントにおける各プレイヤの強さが高いほど大きい値に設定され、各プレイヤの強さが低いほど小さい値に設定されてもよい。その場合、強いプレイヤばかりが特定の対戦イベントに参加して簡単に敵キャラクタが倒されてしまうことが抑制され、ゲームバランスを適切に維持することが可能となる。
または、参加値が、対戦イベントにおける各プレイヤの強さが高いほど小さい値に設定されるか大きい値に設定されるかは、対戦イベントにおいてプレイヤが敵キャラクタに勝利するまでの平均時間等に応じて自動的に変更されてもよい。その場合、例えばプレイヤが敵キャラクタに勝利するまでの平均時間が所定時間以上である場合、強いプレイヤがより多く対戦イベントに参加できるように、参加値は、対戦イベントにおける各プレイヤの強さが高いほど小さい値に設定される。逆に、プレイヤが敵キャラクタに勝利するまでの平均時間が所定時間未満である場合、強いプレイヤばかりが対戦イベントに参加しないように、参加値は、対戦イベントにおける各プレイヤの強さが高いほど大きい値に設定される。
なお、各プレイヤの強さは、各プレイヤが所有するキャラクタのパラメータ、各プレイヤが所有するアイテム、各プレイヤが対戦イベントへ参加した回数もしくは対戦イベントで勝利した回数、及び、過去の対戦イベントにおける各プレイヤの成績の内の少なくとも一つに基づいて決定される。
例えば、各プレイヤが所有しているキャラクタの内、攻撃力、防御力、HP等のパラメータが高い順に所定数のキャラクタのパラメータの合計が高いほど、プレイヤの強さは高い値に設定される。また、例えば、各プレイヤが所有している、特殊効果を発動させることが可能なアイテム、又は対戦ポイントを回復させるアイテムの数が多いほど、プレイヤの強さは高い値に設定される。また、例えば、対戦イベントにおける各プレイヤの参加回数又は勝利回数が多いほど、プレイヤの強さは高い値に設定される。また、例えば、過去の対戦イベントにおける各プレイヤの成績が高いほど、プレイヤの強さは高い値に設定される。これらにより、敵キャラクタに大きいダメージを与えることができる可能性の高いプレイヤをよりバランスよく分散させることが可能となる。
また、対戦イベントにおける各プレイヤの強さが高いほど参加値が小さい値に設定される場合、参加値の合計の上限値は、弱いプレイヤに設定された参加値で割り切れず且つその余りが、強いプレイヤに設定された参加値以上となる値に設定される。例えば、参加値の合計の上限値が18に設定された場合、弱いプレイヤの参加値は10のように18を割り切れない値に設定され、強いプレイヤの参加値は1のように18を10で割った余り(8)以下の値に設定される。これにより、対戦イベントに弱いプレイヤのみが参加することなく、強いプレイヤも必ず参加できるようになる。逆に、対戦イベントにおける各プレイヤの強さが低いほど参加値が小さい値に設定される場合は、参加値の合計の上限値を強いプレイヤに設定された参加値で割り切れない値に設定しておくことにより、対戦イベントに弱いプレイヤも必ず参加できるようになる。
なお、参加値の合計の上限値は、所定の対戦状況、敵キャラクタのパラメータ、及び、依頼元のプレイヤのキャラクタのパラメータの内の少なくとも一つに応じて設定されてもよい。所定の対戦状況は、所定の敵キャラクタとの対戦、所定のプレイヤが参加する対戦、並びに、所定の敵キャラクタ及びプレイヤの組合せに係る対戦の内の少なくとも一つの対戦における状況を含む。例えば、上限値は、所定の敵キャラクタとの対戦、所定のプレイヤが参加する対戦、並びに、所定の敵キャラクタ及びプレイヤの組合せに係る対戦の内の少なくとも一つの対戦において、他の対戦における上限値よりも高い値に設定される。または、上限値は、所定の敵キャラクタとの対戦、所定のプレイヤが参加する対戦、並びに、所定の敵キャラクタ及びプレイヤの組合せに係る対戦の内の少なくとも一つの対戦において、他の対戦における上限値よりも低い値に設定されてもよい。これにより、対戦イベントにおけるゲーム性を向上させることが可能となる。
また、例えば、上限値は、敵キャラクタの攻撃力、防御力、HP等のパラメータが高いほど、低い値に設定される。これにより、強い敵キャラクタと対戦する対戦イベントには、より強いプレイヤのみが参加するため、敵キャラクタに勝利できる可能性を高めることができる。また、例えば、上限値は、依頼元のプレイヤのキャラクタの攻撃力、防御力、HP等のパラメータが高いほど、高い値に設定され、パラメータが低いほど、低い値に設定される。これにより、依頼元のプレイヤが強い場合は弱いプレイヤが対戦イベントに参加し、依頼元のプレイヤが弱い場合は強いプレイヤが対戦イベントに参加するので、対戦イベントに参加するプレイヤ全体の強さを均一にすることが可能となる。
また、参加値の合計の上限値は、対戦イベントを開始してからの時間の経過に応じて変更されてもよい。例えば、参加受付部335は、対戦イベントを開始してから通知時間が経過するたびに、上限値を大きい値に変更する。これにより、一定時間内に敵キャラクタに勝利しなかった場合に、対戦イベントに参加するプレイヤを追加することが可能となり、敵キャラクタに勝利できる可能性を高めることができる。
分類部336は、各プレイヤが対戦イベントへアクセスした順に基づいて、各プレイヤを複数のグループに分類する。分類部336は、各プレイヤが対戦イベントに対して特定のアクションを実行したときに、アクションを実行した順に従って各プレイヤを各グループに割り振る。例えば、分類部336は、最初にイベント画面要求を送信した携帯端末2のプレイヤをグループ1に割り振り、次にイベント画面要求を送信した携帯端末2のプレイヤをグループ2に割り振る。以降、分類部336は、イベント画面要求を送信した携帯端末2のプレイヤを、直前にプレイヤを割り振ったグループの次のグループに割り振っていく。分類部336は、グループテーブルにおいて各プレイヤのプレイヤIDを各グループの所属プレイヤIDとして追加することにより、各プレイヤを各グループに割り振る。
また、分類部336は、イベント画面要求を送信した携帯端末2のプレイヤが既に特定のグループに所属している場合、即ちそのプレイヤの携帯端末2が2回目以降のイベント画面要求を送信した場合、そのプレイヤを所属しているグループから削除し、直前にプレイヤを割り振ったグループの次のグループに割り振る。これにより、各グループは、所属するプレイヤが対戦イベントへアクセスした最新時刻が均等に分散されるように分類される。
なお、分類部336は、各プレイヤの対戦イベントへのアクセス時刻が現在時刻に近い順に各プレイヤを分類してもよい。その場合、グループ1には、アクセス時刻が現在時刻に最も近い所定数のプレイヤが分類され、グループ2には、アクセス時刻が現在時刻に次に近い所定数のプレイヤが分類され、グループNには、アクセス時刻が現在時刻から最も遠い所定数のプレイヤが分類される。また、参加要求通知部334は、グループ1に含まれるプレイヤから順に、即ちアクセス時刻が現在時刻に近いプレイヤから順に対戦イベントへの参加要求を通知する。これにより、対戦イベントへ参加する可能性が高いプレイヤに対して優先的に参加要求を通知できるので、対戦イベントに参加するプレイヤ数を早期に確保できる。
また、分類部336は、各プレイヤがゲームにログインした順に基づいて、各プレイヤを分類してもよい。その場合、分類部336は、各グループに含まれるプレイヤのゲームへのログイン時刻が均等に分散されるように各プレイヤを分類する。ログインしてからの時間が短いプレイヤのゲーム継続時間は長くなる可能性が高く、対戦イベントへの参加率も高くなる可能性が高い。したがって、参加要求が通知されるプレイヤの対戦イベントへの参加率が極端に偏ることが防止され、ゲームバランスを維持することが可能となる。
または、分類部336は、各グループに含まれるプレイヤのゲームへのログイン時刻が現在時刻に近い順に各プレイヤを各グループに分類してもよい。その場合、参加要求通知部334は、グループ1に含まれるプレイヤから順に、即ちログイン時刻が現在時刻に近いプレイヤから順に対戦イベントへの参加要求を通知する。これにより、対戦イベントへ参加する可能性が高いプレイヤに対して優先的に参加要求が通知され、対戦イベントに参加するプレイヤ数を早期に確保することが可能となる。
また、分類部336は、対戦イベントにおける各プレイヤの強さに基づいて、各プレイヤを分類してもよい。その場合、分類部336は、各グループに含まれるプレイヤの強さが均等に分散されるように各プレイヤを分類する。これにより、対戦イベントに参加するプレイヤの強さが極端に偏ることが防止され、ゲームバランスが崩れることが防止される。
また、分類部336は、各プレイヤの対戦イベントへの参加率に基づいて、各プレイヤを分類してもよい。その場合、分類部336は、各グループに含まれるプレイヤの対戦イベントへの参加率が均等に分散されるように各プレイヤを分類する。これにより、参加要求が通知されるプレイヤの対戦イベントへの参加率が極端に偏ることが防止され、ゲームバランスを維持することが可能となる。
または、分類部336は、各グループに含まれるプレイヤの対戦イベントへの参加率が高い順に各プレイヤを各グループに分類してもよい。その場合、参加要求通知部334は、グループ1に含まれるプレイヤから順に、即ち対戦イベントへの参加率が高いプレイヤから順に対戦イベントへの参加要求を通知する。これにより、対戦イベントへ参加する可能性が高いプレイヤに対して優先的に参加要求が通知されるので、対戦イベントに参加するプレイヤ数を早期に確保することが可能となる。または、参加要求通知部334は、グループNに含まれるプレイヤから順に、即ち対戦イベントへの参加率が低いプレイヤから順に対戦イベントへの参加要求を通知してもよい。これにより、対戦イベントへ参加する可能性が低いプレイヤに対して優先的に参加要求が通知され、対戦イベントを活性化することが可能となる。
また、本実施形態では、特定の対戦イベントに参加済みのプレイヤは他の対戦イベントに参加することはできないように制限される。そのため、分類部336は、対戦イベントに参加中のプレイヤの携帯端末2がイベント画面要求を送信した場合は、そのプレイヤを再分類せず、対戦イベントが終了した時に再分類する。即ち、分類部336は、対戦イベントが終了した時に、その対戦イベントに参加していた各プレイヤを含む、ゲームのプレイヤの内の少なくとも一部のプレイヤを再分類する。これにより、プレイヤが対戦イベントに参加中に他のグループに変更されることが防止され、新たな対戦イベントに参加できないプレイヤが、アクセスした時刻が最新のプレイヤとして割り振られることが防止される。
図9は、ゲームシステム1のゲーム処理に係る動作シーケンスの一例を示す図である。この動作シーケンスは、予め端末記憶部22及びサーバ記憶部32に記憶されているプログラムに基づいて、主に端末処理部25及びサーバ処理部33により、携帯端末2及びサーバ3の各要素と協働して実行される。
まず、携帯端末2の表示部24にホーム画面400が表示された状態で、プレイヤが操作部23を用いてイベントボタン403を押下すると、携帯端末2の閲覧実行部251は、イベント画面要求を端末通信部21を介してサーバ3に送信する(ステップS101)。サーバ3の進行制御部331が携帯端末2からイベント画面要求を受信した場合、対戦実行部333は、イベント画面410の表示データを作成する(ステップS102)。次に、対戦実行部333は、作成した表示データを携帯端末2に送信する(ステップS103)。サーバ3から端末通信部21を介して表示データを受信した場合、携帯端末2の閲覧実行部251は、受信した表示データに基づき描画データを作成して、表示部24にイベント画面410を表示させる(ステップS104)。
次に、携帯端末2の表示部24にイベント画面410が表示された状態で、プレイヤが操作部23を用いて探索ボタン413を押下すると、携帯端末2の閲覧実行部251は、探索要求を端末通信部21を介してサーバ3に送信する(ステップS105)。サーバ3の進行制御部331が携帯端末2から探索要求を受信した場合、対戦実行部333は、抽選を実行し、プレイヤが敵キャラクタを発見したか否かと、発見した敵キャラクタ及びそのレベルを決定する(ステップS106)。次に、対戦実行部333は、プレイヤが敵キャラクタを発見したか否かに応じて、対戦準備画面420、440又はイベント画面410の表示データを作成する(ステップS107)。次に、対戦実行部333は、作成した表示データを携帯端末2に送信する(ステップS108)。サーバ3から端末通信部21を介して表示データを受信した場合、携帯端末2の閲覧実行部251は、受信した表示データに基づき描画データを作成して、表示部24に対戦準備画面420、440又はイベント画面410を表示させる(ステップS109)。
次に、携帯端末2の表示部24に対戦準備画面420、440が表示された状態で、プレイヤが操作部23を用いて攻撃ボタン427を押下すると、携帯端末2の閲覧実行部251は、対戦要求を端末通信部21を介してサーバ3に送信する(ステップS110)。サーバ3の進行制御部331が携帯端末2から対戦要求を受信した場合、対戦実行部333は、対戦処理を実行する(ステップS111)。対戦処理の詳細については後述する。次に、対戦実行部333は、対戦イベントの結果に応じて、対戦の演出画像の表示データ及び対戦結果画面500又は510の表示データを作成する(ステップS112)。次に、対戦実行部333は、作成した表示データを携帯端末2に送信する(ステップS113)。サーバ3から端末通信部21を介して表示データを受信した場合、携帯端末2の閲覧実行部251は、受信した表示データに基づき描画データを作成して、表示部24に対戦の演出画像及び対戦結果画面500又は510を表示させる(ステップS114)。
その後、携帯端末2の表示部24に対戦準備画面420、440が再度表示された状態で、プレイヤが操作部23を用いて参加依頼ボタン429を押下すると、携帯端末2の閲覧実行部251は、参加依頼要求を端末通信部21を介してサーバ3に送信する(ステップS115)。サーバ3の進行制御部331が携帯端末2から参加依頼要求を受信した場合、参加要求通知部334は、参加依頼処理を実行する(ステップS116)。参加依頼処理の詳細については後述する。次に、参加要求通知部334は、対戦準備画面420、440の表示データを再作成する(ステップS117)。次に、対戦実行部333は、作成した表示データを携帯端末2に送信する(ステップS118)。サーバ3から端末通信部21を介して表示データを受信した場合、携帯端末2の閲覧実行部251は、受信した表示データに基づき描画データを作成して、表示部24に対戦準備画面420、440を表示させる(ステップS119)。以上で、ゲーム処理に係る動作シーケンスは終了する。
図10は、ゲームシステム1の一覧画面表示処理に係る動作シーケンスの一例を示す図である。この動作シーケンスは、予め端末記憶部22及びサーバ記憶部32に記憶されているプログラムに基づいて、主に端末処理部25及びサーバ処理部33により、携帯端末2及びサーバ3の各要素と協働して実行される。
まず、携帯端末2の表示部24にイベント画面410が表示された状態で、プレイヤが操作部23を用いて一覧ボタン414を押下すると、携帯端末2の閲覧実行部251は、一覧画面要求を端末通信部21を介してサーバ3に送信する(ステップS201)。サーバ3の進行制御部331が携帯端末2から一覧画面要求を受信した場合、対戦実行部333は、一覧画面520の表示データを作成する(ステップS202)。次に、対戦実行部333は、作成した表示データを携帯端末2に送信する(ステップS203)。サーバ3から端末通信部21を介して表示データを受信した場合、携帯端末2の閲覧実行部251は、受信した表示データに基づき描画データを作成して、表示部24に一覧画面520を表示させる(ステップS204)。以上で、一覧画面表示に係る動作シーケンスは終了する。
図11は、ゲームシステム1の参加処理に係る動作シーケンスの一例を示す図である。この動作シーケンスは、予め端末記憶部22及びサーバ記憶部32に記憶されているプログラムに基づいて、主に端末処理部25及びサーバ処理部33により、携帯端末2及びサーバ3の各要素と協働して実行される。
まず、携帯端末2の表示部24にイベント画面410又は一覧画面520が表示された状態で、プレイヤが操作部23を用いて対戦実行ボタン411、412又は選択ボタン522を押下すると、携帯端末2の閲覧実行部251は、参加応答を端末通信部21を介してサーバ3に送信する(ステップS301)。サーバ3の進行制御部331が携帯端末2から参加応答を受信した場合、参加受付部335は、参加受付処理を実行する(ステップS302)。参加受付処理の詳細については後述する。次に、対戦実行部333は、参加受付処理の結果に応じて、イベント画面410又は対戦準備画面420、440の表示データを作成する(ステップS303)。次に、対戦実行部333は、作成した表示データを携帯端末2に送信する(ステップS304)。サーバ3から端末通信部21を介して表示データを受信した場合、携帯端末2の閲覧実行部251は、受信した表示データに基づき描画データを作成して、表示部24にイベント画面410又は対戦準備画面420、440を表示させる(ステップS405)。以上で、参加処理に係る動作シーケンスは終了する。
図12は、対戦実行部333による対戦処理の動作フローを示す。図12に示す対戦処理は、図9のステップS111において実行される。
対戦実行部333は、まず、プレイヤテーブル、対戦情報テーブル及びキャラクタテーブルから、対戦要求に含まれるプレイヤIDに関連付けられた各情報を抽出する(ステップS401)。次に、対戦実行部333は、抽出した消費値が対戦ポイント以下であるか否かを判定する(ステップS402)。消費値が対戦ポイントより大きい場合(ステップS402−No)、対戦実行部333は、対戦イベントを実行せず(ステップS403)、一連のステップを終了する。この場合、対戦実行部333は、図9のステップS112において、対戦の演出画像の表示データ及び対戦結果画面500又は510の表示データではなく、対戦ポイントが不足している旨を表す対戦準備画面の表示データを作成する。
一方、消費値が対戦ポイント以下である場合(ステップS402−Yes)、対戦実行部333は、対戦情報テーブルにおいて対戦ポイントから消費値を減算する。次に、対戦実行部333は、プレイヤがその対戦イベントの参加プレイヤであるか否かを判定する(ステップS404)。プレイヤがその対戦イベントの参加プレイヤである場合(ステップS404−Yes)、対戦実行部333は、処理をステップS407へ移行させる。一方、プレイヤがその対戦イベントの参加プレイヤでない場合(ステップS404−No)、対戦実行部333は、プレイヤがその対戦イベントの発見プレイヤであるか否かを判定する(ステップS405)。プレイヤがその対戦イベントの発見プレイヤでない場合(ステップS405−No)、対戦実行部333は、対戦イベントを実行せず(ステップS403)、一連のステップを終了する。この場合、対戦実行部333は、図9のステップS112において、プレイヤが対戦イベントに参加していない旨を表す対戦準備画面の表示データを作成する。
一方、プレイヤがその対戦イベントの発見プレイヤである場合(ステップS405−Yes)、対戦実行部333は、そのプレイヤを対戦イベントに参加させる(ステップS406)。次に、対戦実行部333は、対戦イベントを実行する(ステップS407)。対戦イベントにおいてプレイヤが敗北した場合(ステップS408−No)、対戦実行部333は、一連のステップを終了する。この場合、対戦実行部333は、図9のステップS112において、プレイヤが敗北したことを示す対戦の演出画像の表示データ及び対戦結果画面500の表示データを作成する。
一方、対戦イベントにおいてプレイヤが勝利した場合(ステップS408−Yes)、対戦実行部333は、対戦テーブルにおいてその対戦イベントに対応する終了フラグをONに設定し、対戦イベントを終了する(ステップS406)。次に、対戦実行部333は、対戦情報テーブルにおいて、対戦イベントに参加した各プレイヤのゲームポイント、勝利回数を更新するとともに、プレイヤに特典を付与し(ステップS407)、一連のステップを終了する。この場合、対戦実行部333は、図9のステップS112において、プレイヤが勝利したことを示す対戦の演出画像の表示データ及び対戦結果画面510の表示データを作成する。
図13は、参加要求通知部334による参加依頼処理の動作フローを示す。図10に示す参加依頼処理は、図9のステップS116において実行される。
参加要求通知部334は、まず、プレイヤが依頼可能なプレイヤであるか否かを判定する(ステップS501)。プレイヤが依頼可能なプレイヤでない場合、参加要求通知部334は、他のプレイヤへ対戦イベントへの参加要求を通知せず、一連のステップを終了する。
一方、プレイヤが依頼可能なプレイヤである場合、参加要求通知部334は、グループテーブルにおいて、プレイヤが所属するグループを特定する(ステップS502)。次に、参加要求通知部334は、特定したグループに所属する、依頼元のプレイヤ以外のプレイヤを抽出する(ステップS503)。次に、参加要求通知部334は、参加要求を通知する対戦イベントの合計参加値に、抽出したプレイヤの参加値を加算した値が所定の上限値を超えるか否かを判定する(ステップS504)。参加要求通知部334は、加算した値が上限値以下である場合(ステップS504−Yes)、そのプレイヤへ対戦イベントへの参加要求を通知する(ステップS505)。一方、参加要求通知部334は、加算した値が上限値を超える場合(ステップS504−No)、そのプレイヤへ対戦イベントへの参加要求を通知しない。
次に、参加要求通知部334は、特定したグループに所属する、依頼元のプレイヤ以外の全てのプレイヤを抽出したか否かを判定する(ステップS506)。参加要求通知部334は、まだ全てのプレイヤを抽出していない場合(ステップS506−No)、処理をステップS503へ戻し、ステップS503〜S506の処理を繰り返す。一方、参加要求通知部334は、全てのプレイヤを抽出した場合(ステップS506−Yes)、対戦テーブルにおいて、特定した対戦の参加依頼開始時刻として現在時刻を記憶させ(ステップS507)、一連のステップを終了する。
図14は、参加要求通知部334による第2参加依頼処理の動作フローを示す。図14に示す第2参加依頼処理は、図13に示す参加依頼処理の実行後に定期的に実行される。
参加要求通知部334は、まず、対象となる対戦イベントが実行中であるか否かを判定する(ステップS601)。対象となる対戦イベントが実行中でない場合(ステップS601−No)、参加要求通知部334は、一連のステップを終了する。一方、対象となる対戦イベントが実行中である場合(ステップS601−Yes)、参加要求通知部334は、前回参加要求を通知してから通知時間が経過したか否かを判定する(ステップS602)。通知時間が経過していない場合(ステップS602−No)、参加要求通知部334は、処理をステップS601へ戻し、ステップS601〜S602の処理を繰り返す。一方、通知時間が経過した場合(ステップS602−Yes)、参加要求通知部334は、まだ参加要求を通知していないグループを選択する(ステップS603)。
次に、参加要求通知部334は、選択したグループに所属するプレイヤを抽出する(ステップS604)。次に、参加要求通知部334は、対象となる対戦イベントの合計参加値に、抽出したプレイヤの参加値を加算した値が所定の上限値を超えるか否かを判定する(ステップS605)。参加要求通知部334は、加算した値が上限値以下である場合(ステップS605−Yes)、そのプレイヤへ対戦イベントへの参加要求を通知する(ステップS606)。一方、参加要求通知部334は、加算した値が上限値を超える場合(ステップS605−No)、そのプレイヤへ対戦イベントへの参加要求を通知しない。
次に、参加要求通知部334は、選択したグループに所属する全てのプレイヤを抽出したか否かを判定する(ステップS607)。参加要求通知部334は、まだ全てのプレイヤを抽出していない場合(ステップS607−No)、処理をステップS502へ戻し、ステップS604〜S607の処理を繰り返す。一方、参加要求通知部334は、全てのプレイヤを抽出した場合(ステップS607−Yes)、一連のステップを終了する。
図15は、参加受付部335による参加受付処理の動作フローを示す。図15に示す参加受付処理は、図11のステップS302において実行される。
参加受付部335は、まず、プレイヤがその対戦イベントの発見プレイヤ又は参加要求が通知されたプレイヤであるか否かを判定する(ステップS701)。プレイヤがその対戦イベントの発見プレイヤ又は参加要求が通知されたプレイヤである場合(ステップS701−Yes)、参加受付部335は、対戦イベントが実行中か否かを判定する(ステップS702)。対戦イベントが実行中である場合(ステップS702−Yes)、参加受付部335は、対戦イベントに参加している参加プレイヤ数がプレイヤ数の上限未満であるか否かを判定する(ステップS703)。参加プレイヤ数がプレイヤ数の上限未満である場合(ステップS703−Yes)、参加受付部335は、対象となる対戦イベントの合計参加値に、抽出したプレイヤの参加値を加算した値が所定の上限値を超えるか否かを判定する(ステップS704)。参加受付部335は、加算した値が上限値以下である場合(ステップS704−Yes)、そのプレイヤの対戦イベントへの参加を受け付け(ステップS705)、一連のステップを終了する。
一方、プレイヤがその対戦イベントの発見プレイヤ又は参加要求が通知されたプレイヤでない場合(ステップS701−No)、対戦イベントが実行中でない場合(ステップS702−No)、参加プレイヤ数がプレイヤ数の上限を超える場合(ステップS703−No)、又は、加算した値が上限値を超える場合(ステップS704−No)、参加受付部335は、そのプレイヤへ対戦イベントへの参加要求を通知せずに一連のステップを終了する。
図16は、分類部336によるグループ分類処理の動作フローを示す。図16に示すグループ分類処理は、各プレイヤが対戦イベントに対して特定のアクションを実行したときに実行される。
分類部336は、まず、対戦イベントに対して特定のアクションを実行したプレイヤが対戦イベントに参加しているか否かを判定する(ステップS801)。プレイヤが対戦イベントに参加している場合(ステップS801−Yes)、分類部336は、特に処理を行わず、一連のステップを終了する。一方、プレイヤが対戦イベントに参加していない場合(ステップS801−No)、分類部336は、プレイヤが既に特定のグループに所属しているか否かを判定する(ステップS802)。プレイヤが既に特定のグループに所属している場合(ステップS802−Yes)、分類部336は、そのプレイヤを所属しているグループから削除する(ステップS803)。次に、分類部336は、そのプレイヤを、直前にプレイヤを割り振ったグループの次のグループに割り振り(ステップS804)、一連のステップを終了する。
以上説明してきたように、サーバ3は、複数のプレイヤを複数のグループに分類し、通知時間が経過する度に、グループを順次選択し、選択したグループに含まれるプレイヤに対戦イベントへの参加要求を通知する。これにより、対戦イベントに多数のプレイヤが殺到することが防止され、さらに、参加要求が通知された各プレイヤが参加要求に気付かない場合でも参加者の数は確保されるので、対戦への参加要求を各プレイヤに適切に通知することが可能となる。
また、サーバ3は、対戦イベントに参加する各プレイヤに設定された参加値の合計が上限値を超えない範囲で各プレイヤからの対戦イベントへの参加を受け付ける。これにより、対戦イベントにおいて、強いプレイヤばかりが参加して簡単に敵キャラクタが倒されること、逆に弱いプレイヤばかりが参加して敵キャラクタが倒されなくなることが抑制されるので、ゲームバランスを適切に維持することが可能となる。
また、依頼元のプレイヤと同一のグループに所属しているプレイヤ、依頼元のプレイヤとフレンドのプレイヤのように限定されたプレイヤだけでなく、全てのプレイヤに対戦への参加要求が通知されるので、プレイヤ間のコミュニケーションを拡大させることが可能となる。
なお、本発明は、本実施形態に限定されるものではない。例えば、携帯端末2において実行されるゲームは、サーバ3と携帯端末2のそれぞれが処理の一部を担うハイブリッドゲームとしてもよい。その場合、例えば、ゲームの進行に係る各画面をサーバ3が生成した表示データに基づいて携帯端末2に表示されるウェブ表示とし、その他のメニュー画面等を携帯端末2にインストールされているネイティブアプリによって表示するネイティブ表示とする。
当業者は、本発明の精神及び範囲から外れることなく、様々な変更、置換、及び修正をこれに加えることが可能であることを理解されたい。
本発明に係る制御プログラムは、記憶部を備え、対戦ゲームを実行するコンピュータの制御プログラムであって、複数のプレイヤ毎に、各プレイヤに設定された設定値を記憶部に記憶し、複数のプレイヤの内の特定のプレイヤからの要求に従って、特定のプレイヤのゲーム媒体と敵ゲーム媒体との対戦を開始し、特定のプレイヤからの要求に従って、複数のプレイヤの内の他のプレイヤに対戦への参加要求を通知し、対戦に参加する各プレイヤに設定された設定値の合計が所定の上限値を超えない範囲で、他のプレイヤの対戦への参加を受け付けることをコンピュータに実行させる。
また、本発明に係るゲーム制御方法は、記憶部を備え、対戦ゲームを実行するコンピュータにおけるゲーム制御方法であって、複数のプレイヤ毎に、各プレイヤに、対戦ゲームにおける各プレイヤの強さに応じて設定された設定値を記憶部に記憶し、複数のプレイヤの内の特定のプレイヤからの要求に従って、特定のプレイヤのゲーム媒体と敵ゲーム媒体との対戦を開始し、対戦の結果が判定された後に当該対戦の結果に応じて表示される画面に対して指定された、特定のプレイヤからの要求に従って、複数のプレイヤの内の他のプレイヤに対戦への参加要求を通知し、対戦に参加する各プレイヤに設定された設定値の合計が所定の上限値を超えない範囲で、他のプレイヤの対戦への参加を受け付ける、ことを含み、所定の上限値は、第1の設定値が設定されたプレイヤの対戦への参加を最大数受け付けた状態で、第1の設定値より小さい第2の設定値が設定されたプレイヤの対戦への参加を受け付けることができるように設定される。
また、本発明に係るコンピュータは、対戦ゲームを実行するコンピュータであって、複数のプレイヤ毎に、各プレイヤに、対戦ゲームにおける各プレイヤの強さに応じて設定された設定値を記憶する記憶部と、複数のプレイヤの内の特定のプレイヤからの要求に従って、特定のプレイヤのゲーム媒体と敵ゲーム媒体との対戦を開始する対戦実行部と、対戦の結果が判定された後に当該対戦の結果に応じて表示される画面に対して指定された、特定のプレイヤからの要求に従って、複数のプレイヤの内の他のプレイヤに対戦への参加要求を通知する参加要求通知部と、対戦に参加する各プレイヤに設定された設定値の合計が所定の上限値を超えない範囲で、他のプレイヤの対戦への参加を受け付ける参加受付部と、を備え、所定の上限値は、第1の設定値が設定されたプレイヤの対戦への参加を最大数受け付けた状態で、第1の設定値より小さい第2の設定値が設定されたプレイヤの対戦への参加を受け付けることができるように設定される。
また、本発明に係る制御プログラムは、記憶部を備え、対戦ゲームを実行するコンピュータの制御プログラムであって、複数のプレイヤ毎に、各プレイヤに、対戦ゲームにおける各プレイヤの強さに応じて設定された設定値を記憶部に記憶し、複数のプレイヤの内の特定のプレイヤからの要求に従って、特定のプレイヤのゲーム媒体と敵ゲーム媒体との対戦を開始し、対戦の結果が判定された後に当該対戦の結果に応じて表示される画面に対して指定された、特定のプレイヤからの要求に従って、複数のプレイヤの内の他のプレイヤに対戦への参加要求を通知し、対戦に参加する各プレイヤに設定された設定値の合計が所定の上限値を超えない範囲で、他のプレイヤの対戦への参加を受け付ける、ことをコンピュータに実行させ、所定の上限値は、第1の設定値が設定されたプレイヤの対戦への参加を最大数受け付けた状態で、第1の設定値より小さい第2の設定値が設定されたプレイヤの対戦への参加を受け付けることができるように設定される。