以下、本発明の実施の形態に係るコンピュータプログラム、記録媒体、及びゲーム装置について、図面を参照しつつ説明する。
[ゲームシステム]
図1は、本発明の実施の形態に係るゲーム装置を備えるゲームシステムの構成を示すブロック図である。図1に示すように、ゲーム装置1は、その動作を制御するCPU2を備え、このCPU2にはバス3を介してディスクドライブ4、メモリカードスロット5、ハードディスクドライブ(以下、HDD)6、ROM7、及びRAM8が接続されている。
ディスクドライブ4には、本発明の実施の形態に係るゲームプログラム10が記録されたDVD、CD−ROM、又はBlu−ray Disc(登録商標)などのディスク型記録媒体4aが装填されるようになっている。該ディスク型記録媒体4aには、ゲームプログラム10の他、キャラクタやゲームステージを形成するためのテクスチャなどのデータも記録されている。そして、ディスクドライブ4にディスク型記録媒体4aが装填されると、CPU2からの指示に従って、該ディスク型記録媒体4aからゲームプログラム10などを適宜読み出す。また、メモリカードスロット5は、CPU2からの指示に従って、ゲームの途中経過を示すデータなどを、装填されたカード型記録媒体5a(例えば、フラッシュメモリ等)に不揮発的に記録する。
HDD6はディスク型の大容量記録媒体であって、ゲームの途中経過を示すデータなどを記録する。ROM7は、マスクROM又はPROMなどの半導体メモリであり、ゲーム装置1を起動する起動プログラムや、ディスク型記録媒体4aが装填されたときの動作を制御するプログラムなどを記録している。RAM8は、DRAM又はSRAMなどから成り、CPU2が実行するべきゲームプログラム10や、このゲームプログラム10を実行する際に必要なキャラクタ及びゲームステージなどのデータを、ディスク型記録媒体4aなどから読み込んで一時的に記録する。なお、プレイヤの操作によりディスク型記録媒体4a内の全データがHDD6に記録されている場合には、HDD6に記録されているデータのうち、CPU2が実行するべきゲームプログラム10やこれを実行する際に必要なキャラクタ及びゲームステージなどのデータが、RAM8に一時的に記録される。
また、CPU2にはバス3を介して更にグラフィック処理部11、オーディオ合成部14、無線通信制御部17、及びネットワークインタフェース19が接続されている。
このうちグラフィック処理部11は、CPU2の指示に従って仮想ゲーム空間やキャラクタなどを含むゲーム画像を描画する。また、グラフィック処理部11にはビデオ変換部12を介して外部のモニタ13が接続されており、グラフィック処理部11にて描画されたゲーム画像は動画形式に変換され、更にモニタ13にて表示される。
オーディオ合成部14は、CPU2の指示に従ってデジタルのゲーム音声を再生及び合成する。また、オーディオ合成部14にはオーディオ変換部15を介して外部のスピーカ16に接続されており、オーディオ合成部14にて再生及び合成されたゲーム音声は、オーディオ変換部15にてアナログ形式にデコードされ、更にスピーカ16にて出力される。
無線通信制御部17は、2.4GHz帯の無線通信モジュールを有し、ゲーム装置1に付属するコントローラ18との間で無線により接続され、データの送受信が可能となっている。また、ネットワークインタフェース19は、インターネットやLANなどの通信ネットワーク20に対してゲーム装置1を接続する。そして、通信ネットワーク20に接続された同様の構成を有する他のゲーム装置1との間で、サーバ装置21を介さないピア・ツー・ピア方式での通信(以下、「P2P通信」)を可能とし、本発明に係るゲームシステム100を構築する。
このゲームシステム100では、複数のプレイヤが、同一のゲームプログラム10を有する各ゲーム装置1を操作することにより、同期して同一の仮想ゲーム空間内でオンラインゲームを実行することができる。即ち、各ゲーム装置1は通信ネットワーク20を介して互いにデータ通信を行うことができ、相互に送受信したデータや、ディスク型記録媒体4aに記録されたゲームプログラム10及びデータなどに基づき、各ゲーム装置1には同一の仮想ゲーム空間が生成される。各ゲーム装置1に接続されたモニタ13には、各プレイヤが操作するキャラクタが中心に表示されるような視点で、この仮想ゲーム空間が表示される。例えば、プレイヤAが操作するゲーム装置1に接続されたモニタ13には、プレイヤAが操作するキャラクタを中心とした仮想ゲーム空間の一部が表示され、プレイヤBが操作するゲーム装置1に接続されたモニタ13には、プレイヤBが操作するキャラクタを中心とした仮想ゲーム空間の一部が表示される。
一方、各ゲーム装置1は、通信ネットワーク20を介してサーバ装置21との間でもデータ通信を行うことができる。このサーバ装置21はいわゆるマッチングサーバであり、一般的なサーバ装置と同様に、CPU、HDD、ROM、RAM、及びネットワークインタフェースなどを備えている。サーバ装置21は、ホストプレイヤ(後述)がゲームをする際に行うマッチングロビーの作成要求を、ホストプレイヤのゲーム装置1から通信ネットワーク20を介して受け付けると、CPUがマッチングリストを作成してHDDに記録する。一方、ゲストプレイヤ(後述)からの要求に応じて、マッチングリストをゲストプレイヤのゲーム装置1へ通信ネットワーク20を介して送信する。そして、ゲストプレイヤによってマッチングリスト内の希望するロビーへの参加が要求されると、この参加要求がサーバ装置21を介してホストプレイヤのゲーム装置1へ送信され、ホストプレイヤによりこの要求が受け付けられると、ゲストプレイヤは要求したロビーへの入室が許可される。また、サーバ装置1は、ゲストプレイヤのロビー入室許可を受けてマッチングリストの内容を更新する。これ以降、ホストプレイヤのゲーム装置1と入室が許可されたゲストプレイヤのゲーム装置1とは、サーバ装置21を介さずP2P通信を行うことになる。
なお、本実施の形態ではゲストプレイヤがロビーへ入室した後、同一ロビーへの入室が許可された各プレイヤが操作するゲーム装置1間では、上記のようにP2P通信を行うこととしているが、サーバ装置を介してクライアント・サーバ方式によるデータ通信を行うように構成してもよい。
図2(a)は、上述したゲームプログラム10の構成を示す模式図であり、図2(b)は、図1に示すゲーム装置1の機能的な構成を示すブロック図である。図2(a)に示すように、ゲームプログラム10は、ホスト用プログラム10a及びゲスト用プログラム10bを備えている。これらのプログラム10a,10bは、一連のプログラムとして作成されており、適宜設定されたフラグの状態に応じて、何れかのプログラム10a,10bが選択的に実行される。
また、図2(b)に示すように機能的に見ると、ゲーム装置1は、チーム対戦制御部62、グループ登録部63、チーム編成部64、及びポイント付与部65を有する制御部61を備えている。この制御部61は、図1に示したCPU2、HDD6、ROM7、RAM8、グラフィック処理部11、ビデオ変換部12、オーディオ合成部14、及びオーディオ変換部15などのハードウェアと、CPU2により実行されるゲームプログラム10とによって実現されている。更に、チーム対戦制御部62は、ゲーム進行部62a、ローディング部62b、仮想ゲーム空間生成部62c、及びキャラクタ生成部62dを有している。
このうちゲーム進行部62aは、プレイヤによる操作入力に応じてキャラクタを仮想ゲーム空間にて行動させ、該キャラクタの行動に応じてゲームを進行させる。そして、通信ネットワーク20を介して複数プレイヤが参加している場合には、該通信ネットワーク20を介して受信した各プレイヤによる操作入力の情報に基づき、各キャラクタを仮想ゲーム空間にて行動させ、各キャラクタの行動に応じてゲームを進行させる。
ローディング部62bは、ディスクドライブ4に装填されたディスク型記録媒体4aから仮想ゲーム空間を構築するためのデータをRAM8へローディングする他、適宜カード型記録媒体5aに記録されたデータもRAM8へローディングする。仮想ゲーム空間生成部62cは、プレイヤが視認するモニタ13に表示するための仮想ゲーム空間を生成する。キャラクタ生成部62dは、仮想ゲーム空間に登場させるキャラクタ(参加している他のプレイヤの操作によるキャラクタを含む)を生成するものであり、プレイヤによって服装や装備を含む外観イメージがカスタマイズされている場合には、そのカスタマイズされた外観イメージをモニタ13に表示させる。
ゲーム装置1を、このような各部62a〜62dとして機能させるプログラムは、ホストプログラム10a及びゲストプログラム10bの夫々に含まれている。従って、ディスクドライブ4にて読み込んだプログラム10をCPU2が実行することにより、ゲーム装置1は上記各部62a〜62dとしての機能を発揮することができる。
なお、図2(b)に示すように、制御部61は、既に説明したディスクドライブ4、メモリカードスロット5、モニタ13、スピーカ16、無線通信制御部17、及びネットワークインタフェース19の動作も制御する。
[ゲームの概要]
図3は、本実施の形態に係るゲームの概要を説明するための模式図である。本ゲームでは、複数のプレイヤが、通信ネットワーク20を介して接続された各自のゲーム装置1を操作することにより、各プレイヤが所属するチーム同士で戦うチーム対チームの対戦を同一の仮想ゲーム空間内で行う。
より詳しく説明すると、本ゲームでは複数の勢力(グループ)が設定されており、例えば、図3に示すように、勢力A〜Eの5つの勢力が設定されている。そして、本ゲームにて対戦にエントリー(参加)しようとする各プレイヤは、これら5つの勢力のうち何れかの勢力に自身を登録する。また、本ゲームでは対戦場所として、夫々ルールの異なる複数のマップ(ステージ)が用意されており、勢力に登録済みのプレイヤは、例えば図3に示すように予め用意された3つのマップ1〜3のうちから、対戦に参加するたびに、その対戦場所として何れか1つのマップを選択できるようになっている。
なお、各マップ1〜3には対戦時間、勝敗の決定方法、及び装備できる武器の種類などのルールに関する情報が関連づけられており、プレイヤはこれらの情報に基づいてマップを選択する。そして、マップを選択することにより、このプレイヤは対戦への参加を要求した状態となり、他のプレイヤが同一マップでの対戦に参加要求してくるのを待機する。また、最初に参加を要求したプレイヤは該対戦においてはホストプレイヤとなり、その後に参加を要求したプレイヤはゲストプレイヤとなる(詳細は後述)。
次に、一定時間の経過や参加プレイヤ数が規定に達するなどの所定の条件が満たされて参加要求期間が締め切られると、同一マップでの対戦に参加要求した複数のプレイヤによってチーム編成処理が行われる。これにより、各プレイヤは、予め用意された複数のチーム(例えば、「赤チーム」及び「青チーム」)のうち何れかに所属することとなる。
例えば、図3に示すように、勢力Aに登録された8人のプレイヤAのうち対戦にエントリーする5人のプレイヤAと、勢力Dに登録された6人のプレイヤDのうち対戦にエントリーする3人のプレイヤDとで、合計8人のプレイヤから成る「赤チーム」が編成される。また、勢力Bに登録された7人のプレイヤBのうち4人と、勢力Cに登録された4人のプレイヤCのうち3人と、勢力Eに登録された3人のプレイヤEのうち1人とで、合計8人のプレイヤから成る「青チーム」が編成される。
ここで、図3に示す例のように、同一勢力(例えば、勢力A)に登録されて対戦にエントリーする各プレイヤは、全て同一のチーム(ここでは、赤チーム)に所属される。従って、同一勢力に登録されたプレイヤ同士が、異なるチームに所属されて互いに対戦するようなことがないようになっている。一方、1つのチーム(例えば、赤チーム)に対して複数の勢力(勢力A,D)のプレイヤが所属可能になっている。
このようにしてチーム編成が完了すると、編成されたチーム対チーム(「赤チーム」対「青チーム」)の対戦が行われる。例えば、敵チームのプレイヤを攻撃したり、対戦場所に設定された拠点(後述する「データポスト」)の争奪を行ったりする。そして、対戦が終了すると、勝利チームのプレイヤが登録されているグループに対してポイント(後述する「バトルポイント」)が付与される。また、プレイヤは、一旦ある勢力に登録されると、一定期間(例えば、月曜日から次の日曜日までの1週間)はこの勢力に登録された状態のままで対戦にエントリーすることができる。そして、この期間中に対戦にエントリーした回数に応じて、この期間を終えて次にゲームをプレイする際、褒賞(例えば、特別な武器や防具、装飾品、称号など)を受けることができるようになっている。また、この期間を終えて次の期間に入ると、プレイヤが選択できる各マップの内容が更新され、前期間とは異なるルールが設定されたマップで対戦できるようになっている。
なお、以下ではこのようなチーム対チームの対戦を適宜「勢力マッチ」と称する。
[ゲーム装置の動作]
プレイヤが上述したような勢力マッチをプレイする場合のゲーム装置1の動作について説明する。なお、以下では、各チームに分かれて対戦に参加するプレイヤの総数が16人以下である場合について説明する。
図4は、本ゲームを実行するゲーム装置1の動作を示すフローチャートであり、図5及び図6は、図4のフローチャートに続くゲーム装置1の動作を示すフローチャートである。また、図7〜図12は、ゲーム装置1の動作に伴ってモニタ13に表示される各種の画面を示す模式図である。以下に示すゲーム装置1の動作は、ディスク型記録媒体4aに記録されたゲームプログラム10に従ってCPU2が各部の動作を制御することによって実現される。
図4に示すように、はじめにゲーム装置1はトップメニュー画面31(図7参照)をモニタ13に表示する(ステップS1)。図7に示すように、このトップメニュー画面31の下部には本ゲームをプレイする際に選択するキャンペーン・アイコン31aを含む複数のアイコン31a〜31gが設けられて(表示されて)おり、プレイヤは目的に応じて何れかのアイコンをコントローラ18の操作によって選択できる。また、トップメニュー31の中央部分には、本ゲームでプレイすることのできる対戦場所を示すマップ31hの全体イメージが概観的に表示されている。
次に、プレイヤがキャンペーン・アイコン31aを選択すべくコントローラ18を操作し、ゲーム装置1がこの選択を受け付けると(ステップS2)、ゲーム装置1はモニタ13にモード選択画面32(図8参照)を表示させる(ステップS3)。図8に示すように、このモード選択画面32には、本ゲームにおいてプレイ可能な複数のモードを文字列で示す表示が、さきほどのマップ31hの上に重なるようにして配置(表示)される。例えば、「Influence Match」(勢力マッチ)と記載された表示32aは、本実施の形態において説明するチーム対チームでの対戦を行うゲーム・モードを示しており、「Co-op」と記載された表示32bは、通信ネットワーク20を介して他のプレイヤと協力してゲーム進行させるゲーム・モードを示しており、「Single」と記載された表示32cは、プレイヤが1人でステージ(Co-opモードのステージと同一)のクリアを目指してゲームを進行させるゲーム・モードを示している。
このモード選択画面32において、プレイヤがコントローラ18を操作してInfluence Match(勢力マッチ)の表示32aを選択し、ゲーム装置1がこの選択を受け付けると(ステップS4)、ゲーム装置1とサーバ装置21との間の通信接続処理が行われ(ステップS5)、更にゲーム装置1は、自身のHDD6に記録された情報に基づいて、プレイヤが既に勢力マッチへ今期(例えば、プレイしている日を含む、月曜日から次の日曜日までの1週間)エントリーをしているか否かを判断する(ステップS6)。そして、既にエントリーしていると判断した場合は(ステップS6:YES)、モニタ13の表示を勢力マッチメニュー画面35(後述の図11参照)に切り換えて表示する(ステップS12)。
一方、今期はまだエントリーしていないと判断した場合は(ステップS6:NO)、続いて、前期にプレイヤが勢力マッチへエントリーしているか否かを判断する(ステップS7)。そして、前期にプレイヤがエントリーしていた場合(ステップS7:YES)は、図9に示す前回の結果画面33をモニタ13に表示する(ステップS8)。図9に示すように、この前回の結果画面33では、前期にプレイヤが登録した勢力を示す情報、及び対戦したマップに関する情報などを含む結果表示欄33aが中央に表示されている。そして、この前回の結果画面33が表示されている状態で、プレイヤがコントローラ18に設けられた所定のボタンを操作して表示の切り換えを指示すると、モニタ13には、前回の結果画面33に換わってエントリーメニュー画面34(図10参照)が表示される(ステップS9)。また、ステップS7にて前期においてもプレイヤが勢力マッチにエントリーしていないと判断した場合(ステップS7:NO)も、モード選択画面32からエントリーメニュー画面34へとモニタ13の表示が切り換えられる。
図10に示すエントリーメニュー画面34においては、プレイヤは自身を登録する勢力を選択することができ、また、この勢力にて自身が操作するキャラクタを選択することができる。具体的には、エントリーメニュー画面34には複数の勢力(ここでは5つ)の夫々を示すシンボルマーク34a〜34eが含まれている。そして、コントローラ18が有する所定のボタン(例えば、十字キーの左右ボタン)を操作するたびに、何れか1つのシンボルマークに対応する勢力を順次指定することができ、指定した勢力の詳細情報がエントリーメニュー画面34内に表示される。また、ある勢力を指定した状態でコントローラ18が有する所定のボタン(例えば、十字キーの上下ボタン)を操作すると、該勢力において使用可能な複数のキャラクタの外観イメージ34fを順次1つずつエントリーメニュー画面34内に表示させることができる。
また、エントリーメニュー画面34には、プレイヤの個人情報(プレイヤ情報)として、勢力マッチに参加することによって獲得したポイント数、このポイント数に応じて設定されるレベル値、及び次のレベルに到達するために必要なポイント数などの個人ポイント情報34gが含まれている。更に、プレイヤが勢力を選択する際の指標の一つとして、各勢力を示すシンボルマーク34a〜34eには、キャリアレベルとここで称する数値34hが添えて表示されている。このキャリアレベルとは、ある勢力に登録した場合の該勢力でのプレイヤのレベルを意味しており、プレイヤが同一勢力に登録した状態でプレイするほど、該勢力でのキャリアレベルは増加するようになっている。そして、キャリアレベルが高いほど、該勢力にて使用するキャラクタをカスタマイズできる要素が増えるようにしてもよい。
プレイヤは、このような情報に基づいて自身を登録する勢力と、該勢力において使用するキャラクタとを選択し、ゲーム装置1(特に、グループ登録部63)はこの選択を受け付ける(ステップS10)。そしてゲーム装置1は、勢力及びキャラクタが選択された後、コントローラ18が有する所定のボタンがプレイヤによって操作されたか否かにより、プレイヤのエントリーが決定されたか否かを判断する(ステップS11)。プレイヤの操作がない間はエントリーメニュー画面34を表示し続け(ステップS11:NO)、プレイヤの操作によってエントリーが決定されると(ステップS11:YES)、エントリーメニュー画面34に換えて勢力マッチメニュー画面35(図11参照)をモニタ13に表示させる(ステップS12)。
以上のように、勢力マッチメニュー画面35をモニタ13に表示する時点では、このゲーム装置1を操作するプレイヤは、登録する勢力と操作するキャラクタとが決定された状態となっている。次に、図11に示すように、勢力マッチメニュー画面35では、勢力マッチに参加する場合の対戦場所を、複数のマップから選択できるようになっている。具体的には、勢力マッチメニュー画面35には、選択可能なマップを示す表示(「MAP1」、「MAP2」、「MAP3」など)35aが含まれており、各マップについての詳細情報(対戦ルール、対戦時間、勝敗決定方法、装備できる武具の種類など)も表示される。また、何れか1つのマップを示す表示35aを指定すると、そのマップでの最新の勢力情報35bが表示される。この勢力情報35bとしては、例えば、指定したマップで今期これまでに行われた対戦により各勢力が獲得したポイント(バトルポイント)に関する情報(勢力図)などがあり、図11ではこれを円グラフで表示した例を示している。
なお、勢力マッチメニュー画面35には、このような勢力図の他にも、登録した勢力を示す情報やその他の情報を含めてもよい。また、コントローラ18が有する所定のボタンをプレイヤが操作することによって、勢力マッチメニュー画面35に代えて、又は勢力マッチメニュー画面35の上に重ねて、ショートカットメニュー画面(図示せず)が表示されるようにしてもよい。このショートカットメニュー画面では、例えばキャラクタをカスタマイズすることができるようにしてもよいし、前期にエントリーしていたゲーム装置1においては前期の結果を勢力図などで表示するようにしてもよい。
次に、プレイヤが勢力マッチメニュー画面35にて何れか1つのマップを選択すると、この選択がゲーム装置1にて受け付けられる(ステップS13)。そしてゲーム装置1は、通信ネットワーク20を介してサーバ装置21へマッチング検索を要求する(ステップS14)。以後、ゲーム装置1は、マッチング検索要求の結果に応じて、ホスト及びゲストのうち何れかの立場となって動作する。
この点について補足しておくと、サーバ装置21は、通信ネットワーク20を介して接続されたゲーム装置1から所定のセッション情報(プレイヤ名、プレイヤID、ゲーム装置1のIPアドレス、選択したマップを示す情報など)を受信することにより、該セッション情報に基づいてこのゲーム装置1をホストとするマッチングロビーを作成する。一方、サーバ装置21とのセッションが未確立のゲーム装置1は、ステップS14に示すマッチング検索の要求に応じて、サーバ装置21から(参加条件の合わないマッチングを含む)全てのマッチングロビーに関するリスト(マッチングリスト)を受信する。そして、このゲーム装置1は、受信したマッチングリストの中に、自身が参加することのできるマッチングロビー(参加条件が一致するマッチングロビー)が存在するか否かを判断する(ステップS15)。
なお、ゲーム装置1からのステップS14に示す要求に対し、サーバ装置21は、ゲーム装置1がゲストとして入室することのできるマッチングロビーのみを含むマッチングリストを送信するようにしてもよい。具体的には、ゲーム装置1は、サーバ装置21との間で通信接続処理(ステップS5)を行った後、サーバ装置21に対してマッチング検索要求を行う(ステップS14)。即ち、ゲーム装置1は、ステップS10,S13において行った選択条件をサーバ装置へ送信すると共に、検索要求(ステップS14)をサーバ装置21に対して行う。サーバ装置21は、管理しているマッチングリストを前記選択条件に基づいてフィルタリングし、当該選択条件を満たすマッチングリストをゲーム装置1へ送信する。なお、最大定員に達しているマッチングロビーやゲーム装置1のプレイヤ情報(勢力による入室制限など)により入室できないマッチは、前記フィルタリングにより、送信されるマッチングリストには含まれない。このようにして、ゲーム装置1は、自身が入室可能なマッチングロビーのみを含むマッチングリストをサーバ装置21から受信する。そして、このリスト情報を含む画面をモニタ13に表示する。ゲーム装置1を操作するプレイヤは、モニタ13に表示されたマッチングリストから、参加したいマッチングロビーを選択することにより、このマッチングロビーへ入室する。
上記ステップS15の結果、マッチングリストを受信したゲーム装置1が、そのマッチングリスト中に自身の参加条件と一致するマッチングロビーが存在しないと判断した場合には(ステップS15:NO)、該ゲーム装置1は以後ホストとなって動作し、図5に示す処理を実行する。一方、マッチングリスト中に自身の参加条件と一致するマッチングロビーが存在すると判断した場合には(ステップS15:YES)、該ゲーム装置1は以後ゲストとなって動作し、図6に示す処理を実行する。なお、マッチングリスト中に、自身が参加可能な(参加条件が一致する)マッチングロビーが複数存在する場合には、参加可能な各マッチングロビーをモニタ13に表示させ、プレイヤの操作によって何れか1つのマッチングロビーを選択できるようにしてもよい。以下では、はじめにホストとなったゲーム装置1(以下、適宜「ホストゲーム装置1」という)の動作について説明し、次に、ゲストとなったゲーム装置1(以下、適宜「ゲストゲーム装置1」という)の動作について説明する。
[ホストゲーム装置の動作]
上述したように、図4のステップS15にて、サーバ装置21から受信したマッチングリストに参加可能なマッチングロビーが存在しないと判断したゲーム装置1は、図5に示すように、ホストゲーム装置1という位置付けとなって、サーバ装置21に対してセッションの作成を要求する(ステップS20)。サーバ装置21は、この要求に応じてホストゲーム装置1との間にセッションを確立し、該セッションが確立すると、ホストゲーム装置1はマッチングロビー画面36を作成し、モニタ13に該マッチングロビー画面36(図12参照)を表示する(ステップS21)。
図12に示すように、マッチングロビー画面36には、該勢力マッチに参加を要求したプレイヤ(即ち、該マッチングロビーに入室したプレイヤ)のプレイヤ情報(プレイヤ名、キャラクタ情報、所属勢力情報、個人ポイント情報、キャリアレベルなど)が上から順に表示されるプレイヤ情報表示欄36aが設けられており、また、該勢力マッチの対戦ルール、オプション、対戦時間、装備できる武具などに関する情報を表示するマッチ内容表示欄36bが設けられている。
ホストゲーム装置1は、マッチングロビーを作成して(ステップS21)、マッチングロビー画面36をモニタ13に表示すると、所定の条件を満たして参加を締め切る(ステップS30)までの間、他のプレイヤの参加を募集しつつ待機する。待機中に新たなプレイヤ(ゲストゲーム装置1)がマッチングロビーに入室し、セッションが確立すると(ステップS22:YES)、ホストゲーム装置1は、この新たなゲストゲーム装置1に対して自身(ホストプレイヤ)に関するプレイヤ情報を送信する(ステップS23)。
なお、ステップS31にて参加を締め切る条件としては、本実施の形態においては、参加プレイヤ数が定員(例えば、16人)に到達した時点で参加を締め切り、到達していない場合であってもマッチングロビー作成時点から所定時間(例えば、3分)が経過すれば参加を締め切るようにしている。但し、他の条件を採用してもよく、例えば時間制限をなくして、後述するフィルタリングによって参加プレイヤ数が定員に到達した時点で参加を締め切るようにしてもよいし、ホストプレイヤの操作などによって締め切るようにしてもよい。
ホストゲーム装置1は、セッションを確立したゲストゲーム装置1との間で、P2P通信によりデータの送受信を行う。そして、ホストゲーム装置1は、セッションが確立したこの新たなゲストゲーム装置1から、該ゲストプレイヤに関するプレイヤ情報をP2P通信により受信する(ステップS24)。なお、ホストゲーム装置1とゲストゲーム装置1との間で送受信するプレイヤ情報としては、プレイヤ名及びキャラクタ情報などが含まれている。
更に、ホストゲーム装置1は、自身のマッチングロビーに既に入室(参加)している他のゲストゲーム装置1のセッション情報を、新たに入室(参加)するゲストゲーム装置1へ送信し(ステップS25)、また、新たに入室するゲストゲーム装置1のセッション情報を、既に入室している他のゲストゲーム装置1へ送信する(ステップS26)。これにより、既に入室しているゲストゲーム装置1と、新たに入室するゲストゲーム装置1とが、互いに受信した相手のセッション情報に基づいてセッションを確立し、以後は、P2P通信により互いにデータの送受信を行う。また、ホストゲーム装置1は、ステップS24により受信した新たなゲストのプレイヤ情報に基づき、ステップS21でモニタ13に表示させたマッチングロビー画面36の内容を更新表示させる(ステップS27)。なお、マッチングロビー画面36の更新表示(ステップS27)は、新たなゲストからそのプレイヤ情報を受信した直後(ステップS24とステップS25との間のタイミング)に行ってもよい。
ホストゲーム装置1は、このようにしてゲストゲーム装置1から受信したプレイヤ情報に基づき、マッチングロビー画面36のプレイヤ名表示欄36aに、このゲストプレイヤに関するプレイヤ情報を表示する。また、ホストゲーム装置1は、受信した新たなゲストプレイヤに関するプレイヤ情報をサーバ装置21へ送信し、サーバ装置21ではこのプレイヤ情報に基づいてマッチングリスト情報の内容を更新する。
なお、ここで説明する勢力マッチでは、上述したように参加可能な定員が、一例として16人に設定されている。そして、同一勢力のプレイヤ同士が異なるチームに所属することがなく、且つチーム同士の人数的な均衡を確保するためには、一の勢力からの参加プレイヤ数を定員の半数(ここでは8人)以下に制限することが好ましい。このような観点から、本実施の形態では、マッチングロビーに入室することのできる同一勢力のプレイヤ数を、勢力マッチに参加できる定員(16人)の半数以下(8人以下)としている。
そのために、ゲーム装置1は、サーバ装置21から受信したマッチングリスト中に、自身の参加条件に一致するマッチングロビーが存在していた場合、更に、自身が登録された同一勢力からのそのマッチングロビーへの参加プレイヤ数が定員の半数(8人)に到達しているか否かを判断する。そして、定員の半数に到達していると判断した場合には、そのマッチングロビーには参加できないようにし、同一勢力から定員の半数を超えるプレイヤが同一のマッチングロビーに入室できないようにしている。
一方、ホストプレイヤは、マッチングロビー画面36をモニタ13に表示している間にコントローラ18を所定操作することにより、マッチングロビーからの退室要求をホストゲーム装置1に入力することができる。ホストゲーム装置1は、この退室要求を受け付けると(ステップS28:YES)、該マッチングロビーから退室して本ゲームを終了する(ステップS29)。なお、他の参加プレイヤが既にいる場合には、残りの参加者のうち何れかのプレイヤがホストとなり、他の参加プレイヤが存在しない場合には、該マッチングロビーは閉鎖(削除)される。また、ホストゲーム装置1がプレイヤからの退室要求を受け付けていなければ(ステップS28:NO)、上述した参加締切の条件が満たされたから否かを判断し(ステップS30)、条件が満たされていなければ(ステップS30:NO)、再びステップS22からの処理を実行する。
このようにして、ホストゲーム装置1は、途中退室(ステップS28)しなければ、参加締切の条件が満たされるまでの間、該勢力マッチへプレイヤが参加してくるのを待機する。待機中に他のプレイヤがマッチングロビーに入室(参加)し、このプレイヤとの間でP2P通信によりセッションを確立する(ステップS22:YES)。そして、お互いのプレイヤ情報を送受信し合う(ステップS23,S24)。所定の時間が経過するか、又は参加プレイヤ数が所定数に達するなどして所定の条件が満たされると参加を締め切り(ステップS30)、マッチングロビーに入室している参加プレイヤによるチーム編成処理(ステップS31)を実行する。なお、このチーム編成処理については後に詳述する。
ステップS31のチーム編成処理を終えると、このチーム編成の結果が有効か否かを、後述する所定の基準に基づいて判断し(ステップS32)、無効と判断した場合(ステップS32:NO)には、マッチングロビーに入室していた各ゲストゲーム装置1へ該チームを解散する旨の情報を送信(ステップS33)して、再びステップS14(図4参照)からの処理を実行する。一方、チーム編成の結果が有効であると判断した場合(ステップS32:YES)には、チーム編成に関する情報及びゲームを開始する旨の情報を各ゲストゲーム装置1へ送信し(ステップS34)、本ゲームを開始して勢力マッチをプレイすべくゲーム処理を実行する(ステップS35)。
このゲーム処理では、各ゲーム装置1において同一の仮想ゲーム空間が形成され、その中に各プレイヤが操作するキャラクタが表示される。各プレイヤは自身のキャラクタを動作させ、敵チームのキャラクタを攻撃したり拠点(データポスト)を争奪するなど、チーム対抗戦の形式で勢力マッチを実行する。このようなゲーム装置1の動作は、制御部61のチーム対戦制御部62によって制御される。
なお、勢力マッチが終了すると、勝敗チームが決定され、勝利チームに属するプレイヤの勢力に対してポイント(バトルポイント)が付与される。ここで、勝敗の決定方法については、例えば、KILL数、拠点奪取(データポスト起動)数、戦力ゲージなどを基準にして決定することができる。
具体的に説明すると、KILL数(敵チームのキャラクタを倒した数)に基づいて勝敗を決定する場合では、敵チームのキャラクタを対戦終了時点までに全て倒すか、より多く倒したチームを勝利チームとする。なお、各キャラクタには体力値が設定されており、敵キャラクタからの攻撃を受けると、攻撃を受けたキャラクタの体力値は減少し、体力値がゼロになるとそのキャラクタは倒されたことになる。そして、敵キャラクタを倒したキャラクタが所属するチームには、KILL数が「1」加算される。また、ホストゲーム装置1は、対戦終了の条件(例えば、ゲームスタートからの経過時間(10分など)や、一方のチームのキャラクタの全滅、など)、両チームのKILL数、及び各キャラクタの生死情報などを記憶しており、更に、ゲームスタートからの経過時間をカウントして管理する。
また、対戦場所の各所にデータポストと称する拠点を設けておき、全てのデータポストを起動させる(拠点を奪取する)か、対戦終了時点でより多くのデータポストを起動させたチームを勝利チームとしてもよい。なお、ホストゲーム装置1は、起動されたデータポストの夫々に関連づけて、各データポストを起動したプレイヤに関する情報(所属チーム及び登録勢力に関する情報を含む情報)を記憶するようになっている。
また、各キャラクタに戦力ゲージを設定し、前述したように敵チームのキャラクタを倒したりデータポストを起動(拠点を奪取)するなどにより戦力ゲージを増加させ、逆に自チームのキャラクタが攻撃を受けたりデータポストを起動されるなどすると減少させるように設定する。そして、各キャラクタが獲得した戦力ゲージを加算するなどして各チームの戦力ゲージを算出し、対戦終了時点でその多い方のチームを勝利チームとすることができる。
[ゲストゲーム装置の動作]
一方、図4のステップS15にて、サーバ装置21から受信したマッチングリストに参加可能なマッチングロビーが存在すると判断した(ステップS15:YES)ゲーム装置1は、図6に示すように、ゲストゲーム装置1という位置付けとなって、サーバ装置21に対してセッションへの参加を要求し、マッチングロビーへ入室する(ステップS40)。この要求に応じてサーバ装置21からホストゲーム装置1のセッション情報を受信すると、ホストゲーム装置1との間でP2P通信によるセッションを確立する(ステップS41)。続いて、ゲストゲーム装置1は、このP2P通信により、ホストゲーム装置1へ自身のプレイヤ情報(図5のステップS24で受信される情報)を送信し(ステップS42)、ホストゲーム装置1からは、ホストのプレイヤ情報を受信する(ステップS43)。更に、ゲストゲーム装置1は、ホストゲーム装置1から、マッチングロビーに先に入室している他のゲストゲーム装置1のセッション情報を受信して、これら他のゲストゲーム装置1との間でP2P通信によるセッションを確立する(ステップS44)。このP2P通信により、ゲストゲーム装置1は自身のプレイヤ情報を、先に入室している他のゲストゲーム装置1へ送信(ステップS45)する一方、先に入室している他のゲストゲーム装置1から、これら他のゲストゲーム装置1のプレイヤ情報を受信する(ステップS46)。そして、ゲストゲーム装置1は、図12に示したのと同様のマッチングロビー画面36をモニタ13に表示させる(ステップS47)。
このようにして、ホストゲーム装置1及び先に入室しているゲストゲーム装置1との間でセッションを確立してマッチングロビーに入室すると、ゲストゲーム装置1に接続されたモニタ13のマッチングロビー画面36には、ホストプレイヤと先に入室していたゲストプレイヤと自身とについて、プレイヤ情報がプレイヤ名表示欄36aに表示される。
この後、ゲストゲーム装置1は新たな他のプレイヤの参加を待機する状態となり、参加が締め切られる(ステップS55)までの間、ホストゲーム装置1に関するステップS22〜S30の動作に対応するステップS48〜S55の動作を実行する。即ち、待機中に新たな他のプレイヤ(ゲストゲーム装置1)がマッチングロビーに入室すると(ステップS48:YES)、ステップS40〜S47を経て待機状態となったゲストゲーム装置1は「既に入室しているゲストゲーム装置1」という位置付けになる。そして、この既に入室しているゲストゲーム装置1は、ホストゲーム装置1から、新たな他のゲストゲーム装置1のセッション情報を受信して、この新たな他のゲストゲーム装置1との間でP2P通信によるセッションを確立する(ステップS49)。そして、このP2P通信により、既に入室しているゲストゲーム装置1は、この新たなゲストゲーム装置1に対して自身のプレイヤ情報を送信(ステップS50)する一方、新たなゲストゲーム装置1から当該新たなゲストゲーム装置1のプレイヤ情報を受信する(ステップS51)。そして、受信したプレイヤ情報に基づき、ステップS47にて表示したマッチングロビー画面36のプレイヤ名表示欄36aの内容を更新表示する(ステップS52)。
一方、ゲストプレイヤも上述したホストプレイヤと同様に、マッチングロビー画面36をモニタ13に表示している間にコントローラ18を所定操作することにより、マッチングロビーからの退室要求をゲストゲーム装置1に入力することができる。ゲストゲーム装置1は、この退室要求を受け付けると(ステップS53:YES)、該マッチングロビーから退室して本ゲームを終了する(ステップS54)。また、ゲストゲーム装置1がプレイヤからの退室要求を受け付けておらず(ステップS53:NO)、参加が締め切られていなければ(ステップS55:NO)、再びステップS48からの処理を実行する。
次に、ホストゲーム装置1によって本マッチングロビーへの参加が締め切られると(ステップS55:YES)、ホストゲーム装置1では、入室済みのプレイヤによってチーム編成処理が行われる(図5のステップS31参照)。そしてゲストゲーム装置1は、編成したチームを解散する旨の情報(図5のステップS33参照)、又はチーム編成及びゲーム開始に関する情報(図5のステップS34参照)をホストゲーム装置1から受信する。ここで、ゲストゲーム装置1が、編成したチームを解散する旨の情報(図5のステップS33参照)を受信した場合は、チーム編成が無効であるために解散され(ステップS56:YES)、再びステップS14(図4参照)からの処理が実行される。一方、ゲストゲーム装置1が、チーム編成及びゲーム開始に関する情報(図5のステップS34参照)を受信した場合は(ステップS56:NO、ステップS57:YES)、本ゲームを開始して勢力マッチをプレイすべくゲーム処理を実行する(ステップS58)。
[チーム編成処理:トレード方式]
次に、図5のステップS31に示したチーム編成処理について、5つの勢力(勢力A〜勢力E)に登録されたプレイヤによって2つのチーム(赤チーム及び青チーム)を編成する場合について説明する。このようなチーム編成処理は、ゲーム装置1のチーム編成部64によって実行される。
はじめに、本実施の形態に係るチーム編成処理について概説する。本チーム編成では、勢力マッチに参加する全プレイヤをグループ毎に分類し、分類された参加プレイヤの構成(プレイヤ数のパターン)に基づいて、各プレイヤを各チームに振り分けるようにしている。より具体的には、各プレイヤが勢力毎に何れかのチームに振り分けられる(所属される)。従って、同一勢力のプレイヤ同士が異なるチームに振り分けられることがないようになっている。そして、基本ルールとして、参加プレイヤ数(同一マッチングロビーに入室しているプレイヤ数)が多い勢力のプレイヤから順番にチームに振り分けられる。また、振り分けの時点で所属プレイヤ数の最も少ないチームがそのプレイヤの振り分けの対象となる。
しかしながら、参加プレイヤ数が同一の勢力が複数存在する場合もあり得るため、勢力間には、チームへ振り分けられる順序に関する優先順位が設定されている。ここでは、特に言及する場合を除き、一例として勢力Aが最も高い優先順位を有し、以下は勢力B、勢力C、勢力D、勢力Eの順に優先順位が低く設定されている。従って、参加プレイヤ数が最も多い勢力として勢力A及び勢力Bが存在する場合には、優先順位の高い勢力Aのプレイヤが先にチームへ振り分けられる。
また、所属プレイヤ数が同一のチーム(所属プレイヤ数が0人の場合を含む)が複数存在する場合もあり得るため、チーム間にもプレイヤが振り分けられる順序に関する優先順位が設定されている。ここでは、特に言及する場合を除き、一例として赤チームが青チームより高い優先順位に設定されている。従って、ある勢力のプレイヤが振り分けられる際、赤チーム及び青チームの夫々の所属プレイヤ数が同一である場合には、優先順位の高い赤チームに対して振り分けられることになる。
本実施の形態においては、このような編成方法に従って各勢力A〜勢力Eのプレイヤを赤チーム又は青チームに振り分けてチーム編成を行うが、チーム編成の対象となるプレイヤには定員が設定されており、既に説明したようにここでは一例として16人に設定されている。従って、最大16人のプレイヤを、赤チーム又は青チームに振り分けるようにチーム編成を行う。なお、上述したチーム編成方式を、以下では「トレード方式」と称することとし、図13〜図16を参照しつつ更に具体的に説明する。
図13は、トレード方式によるチーム編成処理においてゲーム装置1が実行する動作を示すフローチャートである。また、図14は、本実施の形態に係るチーム編成処理を説明するための図面であり、各勢力からの参加プレイヤ数が異なる3つのケース1〜3を示している。以下では、はじめにトレード方式に従うゲーム装置1のチーム編成処理について図13を参照して説明し、次に、図14のケース1〜3に対して具体的に適用した場合について説明する。
図13のフローチャートに示すように、ゲーム装置1は、まず勢力毎に参加プレイヤ数(マッチングロビーに入室しているプレイヤ数)を取得する(ステップS101)。次に、取得した情報に基づき、何れのチームにも所属していないプレイヤ数が最も多い勢力のうち、優先順位の最も高い勢力に登録された参加プレイヤ数をXとする(ステップS102)。そして、優先順位の最も高いチームに対してこのXを振り分ける(ステップS103)。
ステップS103の後、チームに所属していないプレイヤが残存しているか否かを判断し(ステップS104)、残存プレイヤがいない場合(ステップS104:NO)にはチーム編成を終了し(ステップS107)、該チーム編成の有効性を判断する処理を実行する(ステップS108)。なお、1回目のステップS104の処理にて残存プレイヤがいない(ステップS104:NO)と判断されるのは、マッチングロビーに入室しているプレイヤの勢力が1つだけの場合である。一方、ステップS104にて、残存プレイヤが存在する(ステップS104:YES)と判断した場合には、未所属のプレイヤ数が最も多い勢力のうち、優先順位が最も高い勢力に登録されたプレイヤ数をXとする(ステップS105)。そして、所属プレイヤ数が最も少ないチームのうち、優先順位が最も高いチームにこのXを振り分ける(ステップS106)。
その後、再びステップS104の処理を実行し、未所属プレイヤが残存している間(ステップS104:YES)は、ステップS104〜S106の処理を繰り返し実行する一方、残存していない場合(ステップS104:NO)には、チーム編成を終了し(ステップS107)、該チーム編成の有効性を判断する処理を実行する(ステップS108)。
ステップS108の有効性判断処理では、編成された各チームのうち、何れのチームの所属プレイヤ数も、他の何れのチームの所属プレイヤ数に対して、所定の割合を下回ることがない場合にのみ、該チーム編成を有効と判断する。逆に、何れかのチームの所属プレイヤ数が、他の何れかのチームの所属プレイヤ数に対して所定の割合を下回った場合には、該チーム編成を無効と判断する。ここで、所定の割合としては、例えば、最も多い所属プレイヤ数の半数と設定することができ、以下ではこの設定を採用した場合を前提として説明する。例えば、赤チームに8人が所属し、青チームに7人が所属することとなった場合には、このチーム編成を有効とする一方、赤チームに8人が所属し、青チームに3人が所属することとなった場合は、このチーム編成を無効とする。
(ケース1)
このようなトレード方式によるチーム編成方法を図14のケース1に適用する場合について説明する。図14に示すように、ケース1では、マッチングロビーに入室しているプレイヤとして、勢力Aから5人、勢力Bから4人、勢力Cから3人、勢力Dから3人、勢力Eから1人の、合計16人が存在している。
図13に示すように、ゲーム装置1は、上述したような勢力毎の参加プレイヤ数を取得し(ステップS101)、何れのチームにも所属していないプレイヤ数が最も多い勢力に登録されたプレイヤ数として、勢力Aの5人をXとする(ステップS102)。ここで、未所属プレイヤが最も多い勢力は勢力Aのみであるため、勢力間の優先順位に関係なく、勢力Aの5人がXとされる。次に、プレイヤが所属していないチームとして、この時点では赤チーム及び青チームの両チームが存在しているが、このうち優先順位の高い赤チームに対してXが振り分けられる(ステップS103)。これにより、勢力Aの5人のプレイヤは赤チームに所属される。
ステップS103に続いて、チームに未所属のプレイヤが存在するか否かを判断する(ステップS104)。ここでは勢力B〜Eの11人のプレイヤが何れのチームにも所属せずに残存しているため(ステップS104:YES)、次の処理に移行し、勢力B〜Eのうち未所属プレイヤ数が最も多い勢力Bのプレイヤ数(4人)がXとされる(ステップS105)。そして、この勢力Bの4人は、所属プレイヤが最も少ない青チームに振り分けられる(ステップS106)。これにより、勢力Bの4人のプレイヤは青チームに所属される。
この時点で、勢力C〜Eのプレイヤがまだ何れのチームにも所属していない状態で残存しているため(ステップS104:YES)、2回目のステップS105の処理が実行される。この2回目のステップS105では、未所属プレイヤが最も多い勢力として勢力C(3人)と勢力D(3人)とが存在しているが、両者のうち優先順位の高い勢力Cに登録されたプレイヤ数(3人)がXとされる(ステップS105)。そして、この時点では赤チームに勢力Aの5人が所属し、青チームに勢力Bの4人が所属しているので、チーム間の優先順位にかかわらず、所属プレイヤ数が最も少ないチームである青チームに勢力Cの3人が振り分けられる(ステップS106)。これにより、勢力Cの3人のプレイヤは青チームに所属される。
ステップS106の処理を終えると、チームに未所属のプレイヤとして勢力D及び勢力Eのプレイヤが残存している状態であるため(ステップS104:YES)、ステップS105以降の処理を更に繰り返し実行する。その結果、3回目のステップS105,S106の処理により、勢力Dの3人のプレイヤが赤チームに所属され、4回目のステップS105,S106の処理により、勢力Eの1人のプレイヤが青チームに所属される。このようにして、最終的に赤チームには、勢力Aの5人及び勢力Dの3人の合計8人のプレイヤが所属し、青チームには、勢力Bの4人、勢力Cの3人、及び勢力Eの1人の合計8人のプレイヤが所属することとなる。
このようにして4回目のステップS106の処理を終えると、残存プレイヤが存在しない状態となるため(ステップS104:NO)、チーム編成処理を終了し(ステップS107)、チーム編成の有効性を判断する(ステップS108)。ケース1の場合、赤チームに8人のプレイヤが所属し、青チームに8人のプレイヤが所属する結果となっているため、何れのチームの所属プレイヤ数も、他のチームの所属プレイヤ数の半数を下回っていないため、このチーム編成は有効と判断される(図5のステップS32:YES)。従って、この場合にホストゲーム装置1は、チーム編成及びゲーム開始に関する情報をゲストゲーム装置1へ送信し(図5のステップS34)、ゲーム処理を開始する(図5のステップS35)。ゲストゲーム装置1も、ホストゲーム装置1からの前記情報を受信し(図6のステップS57:YES)、ゲーム処理を開始する(図6のステップS58)。
(ケース2)
次に、トレード方式によるチーム編成方法を図14のケース2に適用する場合について説明する。図14に示すように、ケース2では、マッチングロビーに入室しているプレイヤとして、勢力Aから6人、勢力Bから3人、勢力Cから3人、勢力Dから3人、勢力Eから1人の、合計16人が存在している。
図13に示すように、ゲーム装置1は、上述したような勢力毎の参加プレイヤ数を取得し(ステップS101)、何れのチームにも所属していないプレイヤ数が最も多い勢力に登録されたプレイヤ数として、勢力Aの6人をXとする(ステップS102)。ここで、未所属プレイヤが最も多い勢力は勢力Aのみであるため、勢力間の優先順位に関係なく、勢力Aの6人がXとされる。次に、プレイヤが所属していないチームとして、この時点では赤チーム及び青チームの両チームが存在しているが、このうち優先順位の高い赤チームに対してXが振り分けられる(ステップS103)。これにより、勢力Aの6人のプレイヤは赤チームに所属される。
勢力Aの6人を赤チームに振り分けた後(ステップS103)、まだ勢力B〜Eの10人のプレイヤが何れのチームに所属せずに残存しているため(ステップS104:YES)、ステップS105の処理へ移行する。ここでは、チームに未所属のプレイヤ数が最も多い勢力として、何れも3人のプレイヤを有する勢力B〜Dが存在している。従って、このうち最も優先順位の高い勢力Bのプレイヤ数(3人)がXとされる(ステップS105)。そして、続くステップS106の処理により、所属プレイヤが存在しない(最も少ない)青チームにこのXが振り分けられる。これにより、勢力Bの3人のプレイヤは青チームに所属される。
この時点で、勢力C〜Eのプレイヤがまだ何れのチームにも所属していない状態で残存しているため(ステップS104:YES)、ステップS105以降の処理を更に繰り返し実行する。ここでは、チームに未所属のプレイヤが最も多い勢力として勢力C(3人)と勢力D(3人)とがあるため、このうち優先順位の高い勢力Cに登録されたプレイヤ数(3人)がXとされる(ステップS105)。そして、この時点では赤チームに勢力Aの6人が所属し、青チームに勢力Bの3人が所属しているので、チーム間の優先順位にかかわらず、所属プレイヤ数が最も少ないチームである青チームに、勢力Cの3人が振り分けられる(ステップS106)。これにより、勢力Cの3人のプレイヤは青チームに所属される。
2回目のステップS106の処理を終えると、チームに未所属のプレイヤとして勢力D及び勢力Eのプレイヤが残存している状態であるため(ステップS104:YES)、ステップS105からの処理を再び実行する。
この3回目のステップS105の処理では、未所属プレイヤが最も多い勢力である勢力Dのプレイヤ数(3人)がXとされる。続いて、赤チームには勢力Aの6人が所属し、青チームには勢力Bの3人及び勢力Cの3人の合計6人が所属し、何れのチームの所属人数も同一になっているため、優先順位の高い赤チームに対してこのXが振り分けられる(ステップS106)。これにより、勢力Dの3人のプレイヤは赤チームに所属される。
更にステップS104を経て4回目のステップS105では、残りの勢力Eの1人がXとされ、この時点で所属プレイヤ数が最も少ない青チームに対してこのXが振り分けられる(ステップS106)。このようにして、最終的に赤チームには勢力Aの6人及び勢力Dの3人の合計9人のプレイヤが所属され、青チームには、勢力Bの3人、勢力Cの3人、及び勢力Eの1人の合計7人のプレイヤが所属されることとなる。
このようにして4回目のステップS106の処理を終えると残存プレイヤが存在しない状態となるため(ステップS104:NO)、チーム編成処理を終了し(ステップS107)、チーム編成の有効性を判断する(ステップS108)。ケース2の場合、赤チームに9人のプレイヤが所属し、青チームに7人のプレイヤが所属しており、両チームのプレイヤ数は同一ではないが、何れのチームの所属プレイヤ数も、他のチームの所属プレイヤ数の半数を下回っていないため、このチーム編成は有効と判断される(図5のステップS32:YES)。従って、この場合もホストゲーム装置1は、チーム編成及びゲーム開始に関する情報をゲストゲーム装置1へ送信し(ステップS34)、ゲーム処理を開始する(ステップS35)。ゲストゲーム装置1も、ホストゲーム装置1からの前記情報を受信し(図6のステップS57:YES)、ゲーム処理を開始する(図6のステップS58)。
(ケース3)
次に、トレード方式によるチーム編成方法を図14のケース3に適用する場合について説明する。図14に示すように、ケース3では、マッチングロビーに入室しているプレイヤとして、勢力Aから8人、勢力Bから1人、勢力Cから1人、勢力Dから1人、勢力Eから0人の、合計11人が存在している。このようにケース3では参加プレイヤ数が定員の16人に達していないが、このような場合であっても、図5のステップS30について説明したように、所定の時間が経過するなどによって参加が締め切られ(ステップS30:YES)、チーム編成処理(ステップS31)が実行される。
図13に示すように、ゲーム装置1は、上述したような勢力毎の参加プレイヤ数を取得し(ステップS101)、何れのチームにも所属していないプレイヤ数が最も多い勢力に登録されたプレイヤ数として、勢力Aの8人をXとする(ステップS102)。そして、赤チーム及び青チームのうち、優先順位の高い赤チームにこのXを振り分ける(ステップS103)。これにより、勢力Aの8人のプレイヤは赤チームに所属される。
勢力Aの8人を赤チームに振り分けた後(ステップS103)、まだ勢力B〜Dの3人のプレイヤが残存しているため(ステップS104:YES)、ステップS105の処理へ移行する。ここでは、チームに未所属のプレイヤ数が最も多い勢力として、何れも1人のプレイヤを有する勢力B〜Dが存在している。従って、このうち最も優先順位の高い勢力Bのプレイヤ数(1人)がXとされる(ステップS105)。そして、続くステップS106の処理により、所属プレイヤが存在しない(最も少ない)青チームにこのXが振り分けられる。これにより、勢力Bの1人のプレイヤは青チームに所属される。
次に、勢力C及び勢力Dのプレイヤがまだ何れのチームにも所属していない状態で残存しているため(ステップS104:YES)、2回目のステップS106の処理を実行する。ここでは、チームに未所属のプレイヤが最も多い勢力として勢力C(1人)と勢力D(1人)とがあるため、このうち優先順位の高い勢力Cに登録されたプレイヤ数(1人)がXとされる(ステップS105)。そして、この時点では赤チームに勢力Aの8人が所属し、青チームに勢力Bの1人が所属しているので、所属プレイヤ数が最も少ないチームである青チームに、チーム間の優先順位にかかわらず、勢力Cの1人が振り分けられる(ステップS106)。これにより、勢力Cの1人のプレイヤは青チームに所属される。
更に、チームに未所属のプレイヤとして勢力Dのプレイヤが残存している状態であるため(ステップS104:YES)、3回目のステップS105以降の処理を実行する。その結果、勢力Dの1人のプレイヤが青チームに所属される。このようにして、最終的に赤チームには勢力Aの8人のプレイヤが所属され、青チームには、勢力Bの1人、勢力Cの1人、及び勢力Dの1人の合計3人のプレイヤが所属されることとなる。
このようにして3回目のステップS106の処理を終えると残存プレイヤが存在しない状態となるため(ステップS104:NO)、チーム編成処理を終了し(ステップS107)、チーム編成の有効性を判断する(ステップS108)。ケース3の場合、赤チームに8人のプレイヤが所属し、青チームに3人のプレイヤが所属しており、青チームの所属プレイヤ数(3人)が、赤チームの所属プレイヤ数(8人)の半数を下回っている。従って、このようなチーム編成は無効と判断される(図5のステップS32:NO)。そのため、ホストゲーム装置1は、編成したチームを解散する旨の情報をゲストゲーム装置1へ送信し(図5のステップS33)、ステップS14(図4参照)からの処理を再び実行する。ゲストゲーム装置1も、ホストゲーム装置1から前記情報を受信して解散と判断すると(図6のステップS56:YES)、ステップS14からの処理を再び実行する。
以上に説明したように、トレード方式に従ってチーム編成を実行することにより、ケース1,2の場合のように各勢力から勢力マッチに参加するプレイヤ数に偏りがある場合であっても、同一勢力のプレイヤが異なるチームに所属することがないようにして、チーム同士のプレイヤ数の均衡を図ったチーム編成を行うことができる。一方、ケース3のように、編成したチーム間のプレイヤ数に大きな偏りがある場合には、このようなチーム編成を無効化できるため、プレイヤ数に大きな偏りがあるチーム同士が対戦してしまうことがない。
(トレード方式の変形例1)
ところで、上述したトレード方式の説明では、勢力Aが最も高い優先順位を有し、以下は勢力B、勢力C、勢力D、勢力Eの順に優先準備を低く設定し、且つ、赤チームを青チームより高い優先順位に設定しているが、他の設定内容にしてもよい。例えば、勢力間の優先順位についていえば、ホストプレイヤが属する勢力の優先順位を最も高くし、ゲストプレイヤについては参加時期(マッチングロビーへの入室タイミング)が早いものの勢力ほど優先順位が高くなるようにしてもよい。その他にも、プレイヤ数の少ない勢力から順にチームに振り分けるようにしてもよいし、3チームに対してプレイヤを振り分けるようにしてもよい。
図15は、変形例に係るトレード方式によるチーム編成処理を説明するための図面であり、4つのケース(ケース4〜7)について示している。このうちケース4及びケース5では、既に説明したトレード方式との比較のため、図14のケース2と同じメンバー構成としている。そして、ケース4では、チーム間の優先順位はケース2と同じく赤チームの方が青チームより高いが、勢力間の優先順位を、ホストプレイヤが属する勢力Aが最も高く、以下は参加順である勢力C、勢力D、勢力B、勢力Eの順に低くなるように設定した場合について示している。また、ケース5では、1チームの定員に上限値を設けた場合を示しており、これについては別の変形例として後述する(「トレード方式の変形例2」を参照)。
更に、ケース6及びケース7では、図14のケース1と同じメンバー構成としている。そして、ケース6では、登録プレイヤ数の少ない勢力のプレイヤから順にチームに振り分けられるように設定した場合について示している。また、ケース7では、3つのチームに対してプレイヤを振り分ける場合について示している。これら、ケース6及びケース7についても、別の変形例として後述する(「トレード方式の変形例3」及び「トレード方式の変形例4」を参照)。
図15のケース4について、図13に示したフローチャートに従ってチーム編成を行う場合について説明する。ケース4では、既に説明したケース2と同様に、勢力Aから6人、勢力Bから3人、勢力Cから3人、勢力Dから3人、勢力Eから1人の、合計16人が存在している。図13に示すように、ゲーム装置1は、上述したような勢力毎の参加プレイヤ数を取得し(ステップS101)、何れのチームにも所属していないプレイヤ数が最も多い勢力に登録されたプレイヤ数として、勢力Aの6人をXとする(ステップS102)。そして、プレイヤが所属していない赤チーム及び青チームのうち、優先順位の高い赤チームにこのXを振り分ける(ステップS103)。これにより、勢力Aの6人のプレイヤは赤チームに所属される。
次に、残存するプレイヤが存在するか否かを判断する(ステップS104)。ここでは勢力B〜Eのプレイヤが残存しているため(ステップS104:YES)、続いてステップS105の処理に移行する。ここでは、未所属のプレイヤ数が最も多い勢力として勢力B(3人)、勢力C(3人)、及び勢力D(3人)が残っているが、このうち優先順位が最も高い勢力Cのプレイヤ数(3人)がXとされる。そして、続くステップS106の処理によってこのXが青チームに振り分けられる。これにより、勢力Cの3人のプレイヤは青チームに所属される。
次に、勢力B、勢力D、及び勢力Eのプレイヤがまだチームに所属していない状態で残存しているため(ステップS104:YES)、2回目のステップS105の処理が実行される。このステップS105では、チームに未所属のプレイヤが最も多い勢力として勢力B(3人)と勢力D(3人)とが存在し、このうち優先順位の高い勢力Dのプレイヤ数(3人)がXとされる。また、この時点では赤チームに勢力Aの6人が所属し、勢力Cの3人が所属する青チームの方が所属プレイヤ数は少ないため、ステップS106にて青チームに対してXが振り分けられる。これにより、勢力Dの3人のプレイヤは青チームに所属される。
この時点で、チームに未所属のプレイヤとして勢力B及び勢力Eのプレイヤが残存している状態であるため(ステップS104:YES)、ステップS105からの処理を再び実行する。
3回目のステップS105の処理では、勢力B及び勢力Eのうち、プレイヤ数の多い勢力Bの3人がXとされる。続いてステップS106の処理が行われるが、この時点で赤チームには勢力Aの6人が所属し、青チームには勢力Cの3人及び勢力Dの3人の合計6人が所属しており、両チームの所属プレイヤ数は同じになっている。従って、所属プレイヤ数の最も少ないチームとしては、赤チーム及び青チームは同レベルであるが、このうち優先順位の高い赤チームに対し、Xが振り分けられる(ステップS106)。その結果、勢力Bの3人は赤チームに所属することになる。
更に、残りの勢力Eを対象として4回目のステップS105,S106の処理が行われ、勢力Eの1人は青チームに所属される。このようにして、最終的に赤チームには、勢力Aの6人及び勢力Bの3人の合計9人のプレイヤが所属し、青チームには、勢力Cの3人、勢力Dの3人、及び勢力Eの1人の合計7人のプレイヤが所属することとなる。
こうして4回目のステップS106の処理を終えると残存プレイヤが存在しない状態となるため(ステップS104:NO)、チーム編成処理を終了し(ステップS107)、チーム編成の有効性を判断する(ステップS108)。ケース4の場合、赤チームに9人のプレイヤが所属し、青チームに7人のプレイヤが所属する結果となっているため、何れのチームの所属プレイヤ数も、他のチームの所属プレイヤ数の半数を下回っていないため、このチーム編成は有効と判断される(図5のステップS32:YES)。
このように、各勢力からの参加人数が同じであるケース2の場合と比較すると分かるように、優先順位を異なる態様に設定することによって、その他の条件が同一であっても異なるチーム編成を実現することができる。また、上述したようにホストプレイヤが属する勢力の優先順位を最も高くし、ゲストプレイヤについては参加が早いものの勢力ほど優先順位が高くなるようにすると、マッチングロビーを作成するたびに優先順位が異なることになるため、多様なチーム編成を実現することができる。
(トレード方式の変形例2)
上述した説明では、チーム編成に加われるプレイヤ数にのみ16人という定員が設定され、1チームの定員は設定されていなかったが、1チームの定員も設定するようにしてもよい。図15のケース5は、このように1チームの定員を、チーム編成に加われるプレイヤの定員(16人)の半数である8人に設定した場合について示している。また、図16は、1チームあたり定員が設定されているという条件の下でトレード方式に従うゲーム装置1の動作を示すフローチャートである。
図16に示すように、この変形例2に係るトレード方式では、勢力毎の参加プレイヤ数を取得し(ステップS111)、何れのチームにも所属していないプレイヤ数が最も多い勢力に登録されたプレイヤ数として、勢力Aの6人をXとする(ステップS112)。次に、プレイヤが所属していないチームとして、この時点では赤チーム及び青チームの両チームが存在しているが、このうち優先順位の高い赤チームに対してXが振り分けられる(ステップS113)。これにより、勢力Aの6人のプレイヤは赤チームに所属される。この時点で、勢力B〜Eの10人のプレイヤが何れのチームに所属せずに残存しており(ステップS114:YES)、プレイヤ未所属のチームとして青チームが存在するため(ステップS115:YES)、ステップS112からの処理を再び実行する。
この2回目のステップS112,S113の処理により、勢力Bのプレイヤ3人が青チームに所属することになる。そして、この時点で、勢力C〜Eのプレイヤは何れのチームにも所属していない状態であり(ステップS114:YES)、且つ、プレイヤ未所属のチームは存在しなくなっている(ステップS115:NO)。従って、次のステップS116へ移行し、未所属プレイヤが最も多く、且つ優先順位の高い勢力に登録されたプレイヤとして、勢力Cのプレイヤ数(3人)がXとされる(ステップS116)。
次に、全てのチームのうち、最も所属プレイヤ数が少なく優先順位の高いチームの空き数をYとする(ステップS117)。この空き数とは、1チームの定員(8人)から既に所属しているプレイヤ数を差し引いた値である。そしてケース5では、この時点で赤チームに勢力Aの6人が所属し、青チームに勢力Bの3人が所属しているので、所属プレイヤ数が最も少ないチームである青チームの空き数(8−3=5人)がYとされる(ステップS117)。そして、勢力Cのプレイヤ数X(3人)と青チームの空き数Y(5人)との大小関係を比較し(ステップS118)、空き数Y(5人)がプレイヤ数X(3人)以上であるため(ステップS118:YES)、この空き数Yの青チームに対してXを振り分ける(ステップS119)。これにより、勢力Cの3人のプレイヤは青チームに所属される。
ステップS119を終えると、全てのプレイヤに対して検証が終了したか否かを判断する(ステップS120)。ここでは勢力D及び勢力Eのプレイヤについての検証が済んでいないため(ステップS120:NO)、ステップS116からの処理を再び実行する。
2回目のステップS116の処理では、検証済みの勢力を除外した勢力D及び勢力Eを対象とし、未所属プレイヤが最も多い勢力Dのプレイヤ数(3人)がXとされる。続くステップS117の処理に際し、この時点で赤チームには勢力Aの6人が所属し、青チームには勢力Bの3人及び勢力Cの3人の合計6人が所属しており、両チームとも同条件になっている。従って、優先順位の高い赤チームの空き数(8−6=2人)がYとされる(ステップS117)。
このようにして、2回目のステップS116,S117の夫々の処理にて決定された勢力Dのプレイヤ数X(3人)と赤チームの空き数Y(2人)との大小関係が比較される(ステップS118)。その結果、空き数Y(2人)がプレイヤ数X(3人)よりも小さいため(ステップS118:NO)、このプレイヤ数Xを空き数Yに振り分けることなく、全てのプレイヤに対して検証が終了したか否かを判断する(ステップS120)。
ここでは勢力Eのプレイヤについての検証が済んでいないため(ステップS120:NO)、更にもう一度ステップS116からの処理を実行する。3回目のステップS116以降の処理については簡単に説明するが、ステップS116にて勢力Eのプレイヤ数(1人)がXとされ、ステップS117にて優先順位の高い赤チームの空き数(2人)がYとされる。そして、空き数Y(2人)がプレイヤ数X(1人)以上であるため(ステップS118:YES)、このプレイヤ数Xが空き数Yに振り分けられて、勢力Eのプレイヤ1人は赤チームに所属される(ステップS119)。これにより、全てのプレイヤに対する検証が終了するため(ステップS120:YES)、チーム編成を終了し(ステップS121)、その有効性判断処理を行う(ステップS122)。
以上の編成処理により、本ケース5の場合、最終的に赤チームには、勢力Aの6人及び勢力Eの1人の合計7人のプレイヤが所属し、青チームには、勢力Bの3人及び勢力Cの3人の合計6人のプレイヤが所属することとなり、勢力Dの3人は何れのチームにも所属されない。また、ステップS122の有効性判断処理においては、何れのチームの所属プレイヤ数も、他のチームの所属プレイヤ数の半数を下回っていないため、このチーム編成は有効と判断される(図5のステップS32:YES)。
従って、赤チーム及び青チームに所属されたプレイヤは、このチーム編成によって勢力マッチのゲームを開始することとなる(図5のステップS35、図6のステップS58)。一方、チームに所属されなかった勢力Dのプレイヤは、該マッチングロビーから解散させられ(図6のステップS56)、ステップS14(図4参照)からの処理を繰り返し実行することになる。
なお、上述したケース5の例では、勢力Dの3人のように、何れのチームにも所属できない端数プレイヤが生じる場合について説明したが、当然ながら、このような端数プレイヤが生じずにチーム編成可能な場合もある。例えば、変形例2に係るトレード方式に従って、ケース1のような組み合わせのプレイヤ(勢力A:5人、勢力B:4人、勢力C:3人、勢力D:3人、勢力E:1人)を対象にチーム編成を行った場合などである。詳しいチーム編成処理過程の説明は省略するが、この場合、該ケース1と同様に赤チームに8人(勢力Aの5人及び勢力Dの3人)が所属し、青チームに8人(勢力Bの4人、勢力Cの3人、及び勢力Eの1人)が所属して、端数プレイヤが存在しないチーム編成となる。
ところで、変形例2に係るトレード方式では、1チーム当たりに所属できるプレイヤ数に定員を設けたため、上記のように端数プレイヤが生じる可能性がある。そして、上述した説明では、この端数プレイヤを除外して完成したチーム編成について、その有効性を判断し、有効であればこのチーム編成によって勢力マッチのゲームを開始し、端数プレイヤは該マッチングロビーから除外(解散)させられる。これにより、参加している全てのプレイヤを解散させなくてもよくなる。しかしながら、このような態様に代えて、端数プレイヤが生じた場合には、該マッチングロビーに入室していた全てのプレイヤを解散させるようにしてもよい。
また、端数プレイヤの発生を防止するために、次のような方法を採用することもできる。即ち、ゲーム装置1からサーバ装置21へマッチング検索要求があった場合に(図4のステップS14)、該検索要求をしてきたゲーム装置1に対してフィルタをかけ、端数プレイヤとなるようなプレイヤのゲーム装置1に対しては、該マッチングロビーを除外したマッチングリスト情報を送信するようにする方法である。
例えば、あるマッチングロビーに、勢力Aの7人のプレイヤと勢力Bの7人のプレイヤとが入室している場合、マッチングロビーの定員(16人)に対して2人の空きが存在している。しかしながら、ここで例えば勢力Cの2人のプレイヤの入室を許可すると、この2人のプレイヤを何れのチームに振り分けてもそのチームは定員を超える9人となってしまうため、そのような振り分けはできず、この2人のプレイヤは端数プレイヤになってしまう。そこで、勢力A,B以外の勢力C〜Eのプレイヤに対しては、各チームの空き数分だけのプレイヤの入室を許可し、例えば、勢力C〜Eのうち参加要求タイミングの早い2つの勢力に対して、各1人だけを該マッチングロビーへ入室できるようにする。そして、勢力C〜Eのうち入室した勢力の2人目のプレイヤに対しては、該マッチングロビーを除外したマッチングリスト情報を送信するようにする。これにより、端数プレイヤの発生を防止することができる。
なお、マッチング検索を要求したゲーム装置1に対してフィルタをかける処理は、次のようにして行うことができる。即ち、既に説明したようにサーバ装置21は、ホストゲーム装置1での図5のステップS24(ゲストのプレイヤ情報の受信)の処理後に、該ホストゲーム装置1から、新たに入室したゲストプレイヤの情報を受信してマッチングリスト情報の内容を更新する。従って、サーバ装置21において、新たなゲストプレイヤの情報を受信するたびに、図16に示すチーム編成処理を仮に実行することで、その時点でのチームの空き数(図16のステップS117で取得するYに相当)を取得する。次に、この空き数と、その時点で入室しているプレイヤ数及びその勢力とに基づき、仮に実行する図16のステップS118の処理で「NO」という判断になってしまう勢力のプレイヤを特定する。そして、このようなプレイヤに対して送信するマッチングリスト情報には該マッチングロビーを含めないようにすればよい。
(トレード方式の変形例3)
図15のケース6の場合について説明する。このケース6に示すチーム編成では、対戦に参加する勢力のうち参加プレイヤ数の少ないプレイヤから順にチームに振り分けられるように設定されている。即ち、ケース6ではケース1と同じメンバー構成となっているため、参加プレイヤ数の少ない順に列挙すると、勢力E、勢力C、勢力D、勢力B、勢力Aの順になっており、この順でチームに振り分けられる。なお、勢力Cと勢力Dとはプレイヤ数が同一であるが、勢力間の優先順位として勢力C>勢力Dと設定されていることから、上記の順に振り分けられることになる。
従って、ケース6においては、まず勢力Eの1人が、優先順位の高い赤チームに振り分けられる。次に、勢力Cの3人が青チームに、勢力Dの3人が赤チームに、勢力Bの4人が青チームに、そして、勢力Aの5人が赤チームに振り分けられる。その結果、赤チームには、勢力E、勢力D、及び勢力Aの計9人のプレイヤが所属し、青チームには、勢力C及び勢力Bの計7人のプレイヤが所属することとなる。
(トレード方式の変形例4)
図15のケース7の場合について説明する。このケース7に示すチーム編成では、赤チーム、青チーム、及び黄チームの計3チームに対して、勢力A〜勢力Eの計16人のプレイヤを振り分けており、振り分けるチームが3チームになっていること、及びチーム優先順位が赤>青>黄の順に設定されていることを除けば、その他の条件はケース1の場合と同じになっている。
従って、ケース7においては、まず最もプレイヤ数の多い勢力Aの5人が、優先順位の高い赤チームに振り分けられ、次にプレイヤ数の多い勢力Bの4人が、優先順位が2番手である青チームに振り分けられる。続いて、残存勢力のうち最もプレイヤ数の多い勢力C及び勢力Dのうち、勢力優先順位の高い勢力Cの3人が、黄チームに振り分けられる。そして、勢力Dの3人は、所属プレイヤ数の少ない黄チームに振り分けられ、勢力Eの1人は、この時点で最も所属プレイヤ数の少ない青チームに振り分けられる。その結果、赤チームには勢力Aの5人が所属し、青チームには勢力B及び勢力Eの5人が所属し、黄チームには勢力C及び勢力Dの6人が所属することとなる。
(トレード方式の変形例5)
トレード方式によるチーム編成処理の設定としては、上述した態様に限定されず、各勢力間に特別な関係を設定しておき、この関係に従ってチーム編成を行うようにしてもよい。具体的に説明すると、勢力間に同盟関係を設定しておき、この同盟関係にある勢力同士(例えば、勢力A及び勢力B)を、ゲームの設定上では友好的な関係としておき、チーム編成処理においては必ず同一チームに振り分けられるようにしてもよい。また、勢力間にライバル関係を設定しておき、このライバル関係にある勢力同士(例えば、勢力A及び勢力C)を、ゲームの設定上では敵対的な関係としておき、チーム編成処理においては必ず異なるチームに振り分けられるようにしてもよい。
そして、このようにチーム編成処理には様々の態様が考えられるが、ゲームにおいて1つの態様のみを採用するのではなく、ゲーム中のマップ毎に異なる態様のチーム編成処理を採用してもよいし、プレイする期間(既に述べた、例えば月曜日から次の日曜日までの1週間を1単位とする期間)毎にチーム編成処理の態様を変更させてもよい。
また、上記説明では、トレード方式により編成したチームの有効性の判断基準として、「何れのチームの所属プレイヤ数も、所属プレイヤの最も多いチームのプレイヤ数の半数を下回ることがない場合にのみ、該チーム編成を有効とする」という設定を採用した場合を前提としたが、このような判断基準に限られない。例えば、所属プレイヤの最も多いチームのプレイヤ数の「半数」ではなく、「2/3の人数」に設定してもよいし、「同一人数」に設定することも可能である。
また、上記のようなチーム間の所属プレイヤ数の割合を判断基準とすることにも限定されない。即ち、編成されたチームの構成内容に基づいて、チーム編成結果の有効性を決定することができる。
例えば、編成されたチームに所属する各プレイヤのプレイヤ情報に基づいて、編成結果の有効性を決定することもできる。より具体的には、プレイヤのポイント数から所属チームの合計ポイント数を取得し、この合計ポイント数のチーム間格差が所定範囲内に収まっていて、ポイント数でみたときのチーム間バランスが保たれている場合に、「有効」と決定するようにしてもよい。また、プレイヤのレベル値から所属チームの合計レベル値を取得し、この合計レベル値のチーム間格差が所定範囲内に収まっていて、レベル値でみたときのチーム間バランスが保たれている場合に、「有効」と決定するようにしてもよい。更に他の例として、上記のように勢力間に同盟関係を設定している場合には、同盟となる勢力のプレイヤが敵チームに存在しない場合に「有効」と決定するようにしてもよい。
[チーム編成処理の変形例:テーブル方式]
図5のステップS31に示したチーム編成処理として、これまでトレード方式を採用した場合について説明してきたが、他の方式を採用することも可能である。例えば、マッチングロビーに入室している勢力毎のプレイヤ数の組み合わせと、この組み合わせから編成可能なチーム構成とを関連付けておき、想定し得る複数の組み合わせについてこれに対応するチーム構成を記載したテーブルデータを予め用意する。そして、このテーブルデータに基づき、実際にマッチングロビーに入室した勢力毎のプレイヤ数の組み合わせに対応するチーム構成を取得し、このチーム構成に従って各プレイヤを振り分けてチーム編成を行ってもよい。ここでは、このようなチーム編成方式を上記トレード方式と区別して「テーブル方式」と称することとする。
図17は、マッチングロビーに入室している勢力毎のプレイヤ数の組み合わせと、この組み合わせから編成可能なチーム構成とを関連づけて記載したテーブルデータの模式図である。このようなテーブルデータは、ディスク型記録媒体4aに記録されているものを読み出して参照してもよく、またはサーバ装置21から受信して参照するようにしてもよい。
図17に示すように、テーブルデータ50には勢力毎のプレイヤ数の組み合わせ50aと、この組み合わせから編成可能なチーム構成50bとが、関連づけられた状態で含まれている。このうち組み合わせ50aには、1つの勢力の最大プレイヤ数が8人であり、且つ総プレイヤ数が16人以下となるような全ての組み合わせが含まれている。また、勢力の種類については識別しない。従って、例えば勢力Aの8人及び勢力Bの7人で構成される組み合わせと、勢力Aの7人及び勢力Bの8人で構成される組み合わせとは、同一の組み合わせ(図17の組み合わせ51「8:7:0:0:0」参照)として扱う。
一方、チーム構成50bには、プレイヤ数の各組み合わせ50aに対して、両チームのプレイヤ数の差が最も少なくなる1つのチーム構成が対応付けられている。例えば、組み合わせ52に示すように、プレイヤ数の組み合わせが「5人、3人、3人、3人、2人」である場合、赤チームに「5人+3人」の合計8人のプレイヤを振り分け、青チームに「3人+3人+2人」の合計8人のプレイヤを振り分けたチーム構成が対応付けられている。
なお、この例のようにプレイヤ数が同一の勢力が複数存在し、そのうち一部の勢力のプレイヤを赤チームに振り分け、他の勢力のプレイヤを青チームに振り分ける場合がある。このような場合は、優先順の高い勢力から順に優先順位の高いチームに振り分けるようにしてもよいし、又は、抽選によって振り分けるようにしてもよい。
また、プレイヤ数の組み合わせによっては、複数種類のチーム構成が可能な場合もある。例えば、組み合わせ53に示すように、プレイヤ数の組み合わせが「5人、4人、3人、2人、1人」である場合である。この場合、図17に示すように赤チームに「5人+2人+1人」の8人を振り分け、青チームに「4人+3人」の7人を振り分けたチーム構成の他、赤チームに「5人+2人」の7人を振り分け、青チームに「4人+3人+1人」の8人を振り分けたチーム構成や、赤チームに「5人+3人」の8人を振り分け、青チームに「4人+2人+1人」の7人を振り分けたチーム構成も可能である。このような場合には、図17に示すようにテーブルデータ50には何れか1つのチーム構成を含めるようにしてもよいし、これら全てのパターンのチーム構成を含めておき、順番に、又は抽選によって何れか1のチーム構成を採用するようにしてもよい。
更に、プレイヤ数の組み合わせによっては、何れか一方のチームのプレイヤ数が他方のチームのプレイヤ数の半数未満になってしまう場合がある。例えば、組み合わせ54に示すように、プレイヤ数の組み合わせが「8人、1人、1人、1人、0人」の場合、どのように振り分けてチームを構成しても両チームに5人以上の差が生じてしまい、本実施の形態に係る有効性判断処理では無効になる。従って、このようなプレイヤ数の組み合わせに対しては、チーム構成50bとして「無効」である旨を対応付けておく。そして、このようなプレイヤ数の組み合わせに対してチーム編成処理(図5のステップS31)を行う場合は、その後の有効性の判断処理において「無効」と判断し(ステップS32:NO)、チーム編成を解散(ステップS33)してステップS14からの処理を繰り返し実行する。
なお、図17に示したテーブルデータ50では、「無効」となるプレイヤ数の組み合わせについても含めた内容としたが、このような組み合わせは除外してもよい。この場合、チーム編成処理の対象となったプレイヤ数の組み合わせが、テーブルデータ50から見つけられなかった場合には、このチーム編成を無効として解散(ステップS33)すればよい。
更に、テーブルデータ50では1チームの定員を8人としたときの内容となっているが、チーム構成50bに1チームが9人以上の場合のチーム構成を含めておくことにより、チーム定員を設けない場合にも対応することができる。
以上に説明したようなテーブルデータ50を用いることにより、参加を締め切った後のプレイヤ数の組み合わせに対応するチーム構成となるようにプレイヤを振り分けてチームを編成することができる。従って、図5のステップS31に示したチーム編成処理において、先に説明したトレード方式に代えて、テーブル方式に基づいてチーム編成することも可能である。
[チーム編成処理の変形例:ハイブリッド方式]
チーム編成処理の方法としては、更に、上述したトレード方式とテーブル方式とを組み合わせた方法を採用することも可能である。このようなチーム編成方法を、ここでは「ハイブリッド式」と称することとする。
ハイブリッド式のチーム編成方法について具体的に説明すると、ゲーム装置1のHDD6に予め、プレイヤ数の組み合わせとこれに関連づけられたチーム構成とを記憶することのできる所定領域を用意しておく。そして、図5のステップS31のチーム編成処理にて、まずはトレード方式に基づいてチーム編成を実行し、この処理によって得られたプレイヤ数の組み合わせとチーム構成とを関連づけて、前記HDD6の所定領域に記憶してテーブルデータを形成する。次に、2回目以降のチーム編成処理では、既に作成したテーブルデータ中で該当するプレイヤ数の組み合わせを検索し、存在していればそれに関連づけられたチーム構成に従ってプレイヤを振り分けてチームを編成する。一方、存在していなければトレード方式によりチームを編成し、その結果得られたプレイヤ数の組み合わせとチーム構成とを関連づけてHDD6の所定領域に追加して記憶し、テーブルデータの内容を更新する。
図18は、ハイブリッド式によるチーム編成処理によって形成されるテーブルデータの模式図である。このテーブルデータ60には、既に説明したテーブルデータ50と同様にプレイヤ数の組み合わせ60aとこれに関連づけられたチーム構成60bとが含まれている。そして、上述した手順で複数回のチーム編成処理を実行することにより、記録済部61と未記録部62とが形成されている。このうち記録済部61には、過去にトレード方式に基づくチーム編成処理が実行されたときに得られた組み合わせ60aとチーム構成60bとのパターンが記録されており、未記録部62には、今後トレード方式に基づいてチーム編成処理が実行されたときに得られるパターンが記録されるようになっている。
そして、チーム編成処理を実行する場合には、まず記録済部61から該当するプレイヤ数の組み合わせを検索し、存在していればそれに関連づけられたチーム構成に従ってプレイヤを振り分けてチームを編成する。また、存在していなければトレード方式によりチームを編成し、その結果得られたプレイヤ数の組み合わせとチーム構成とを関連づけて未記録部62に記録する。
ハイブリッド方式では、このように、トレード方式に基づくチーム編成処理を実行するたびに、テーブルデータ60にその結果が追加されるため、予め全ての組み合わせとチーム構成とを記憶しておく必要がない。
また、実際にチーム編成処理の対象となるプレイヤ数の組み合わせは、全種類の組み合わせのうち、一部のものに偏っていると考えられる。換言すれば、プレイヤ数の所定の組み合わせが、他の組み合わせに比べて、チーム編成処理の対象となる可能性が高いと考えられる。従って、チーム編成処理を実行するたびに、その対象となるプレイヤ数の組み合わせの既出回数をカウントし、カウント数が大きいものほどテーブルデータ60の記録済部61内の上位に位置付け、テーブルデータ60を参照する場合には、記録済部61の上位のものから順に検索するようにしてもよい。これにより、検索速度を速めることができる。
[バトルポイントの付与処理]
ところで、上述したようなチーム編成処理が有効であった場合には、本ゲームに係る勢力マッチが開始され(図5のステップS35、図6のステップS58)、編成されたチーム対チームの対戦(勢力マッチ)が行われる。そして、所定の条件(設定された対戦時間の経過、一方のチームのプレイヤの全滅など)を満たした時点で対戦は終了する。また、既に述べたように、本実施の形態に係るゲーム処理では、対戦が終了した後に、対戦に参加したプレイヤの勢力に対してバトルポイントを付与する処理を行う。以下、このバトルポイントの付与処理について説明する。
図19は、ゲーム装置1(特に、ポイント付与部65)がバトルポイント付与処理を実行する場合の動作を説明するためのフローチャートである。図19に示すように、ホストゲーム装置1は、勢力マッチが終了すると(ステップS60)、勢力マッチに参加していた各勢力のバトルポイントの加算値を算出する(ステップS61)。この処理では、まず各勢力の勝敗を、既に説明したKILL数、戦力ゲージ、又はデータポスト数などに基づいて決定する。このような勝敗を判定する手段は、ゲーム装置1の制御部61(図2参照)のチーム対戦制御部62に備えられている。
次に、各勢力の勝敗を決定すると、勝利チームに所属していた勢力については、下記の式(1)に基づいて加算値を算出し、敗北チームに所属していた勢力については、下記の式(2)式に基づいて加算値を算出する。
そして、各勢力について加算値を取得すると、サーバ装置21にアクセスして、本対戦前のバトルポイントの最新情報とそのレイティング値とを全てのプレイヤに関して取得する(ステップS62)。
ここで「レイティング値」とは、特定の情報に関連づけて付与される数値であり、最新の情報には最大のレイティング値が付与されるようになっている。更に説明すると、本実施の形態に係るサーバ装置21は、大きいレイティング値に関連づけられた情報ほど、上位(最新情報)として記憶されるようなシステムになっている。そして、本ゲームシステム100では、このサーバ装置21のシステムを利用して、各プレイヤのバトルポイントをサーバ装置21に保存することとしている。
そのため、ホストゲーム装置1は、レイティング値とバトルポイントとを関連づけて、サーバ装置21のシステムに登録する。そして、ホストゲーム装置1は、システムの登録内容を更新するたびに、レイティング値に所定の値(例えば、1)を加算して最大値にして更新しておく。これにより、次回の更新時には、最大のレイティング値に関連づけられたバトルポイントを取得することにより、バトルポイントの最新情報を得ることができる。
このようにして、本対戦前のバトルポイントの最新情報とレイティング値の最新情報とを全チームの全てのプレイヤに関して取得すると(ステップS62)、取得した最新のバトルポイントにステップS61で算出した加算値を加算し(ステップS63)、各プレイヤのゲーム装置1にバトルポイントの加算結果と最新のレイティング値とに関する情報を送信する(ステップS64)。そして各ゲーム装置1(ホストゲーム装置及びゲストゲーム装置)は、今回対戦を行った勢力マッチの結果画面をモニタ13に表示(ステップS66)すると共に、自身の最新のレイティング値に所定の値(例えば、1)を加算し、加算後のレイティング値にステップS63で算出した自身のバトルポイントを関連づけて、サーバ装置21へ送信する(ステップS67)。そして更に、各ゲーム装置1は、自プレイヤの情報として、勢力マッチへの参加回数、ポイント、レベルなどの個人情報を更新し(ステップS68)、バトルポイントの付与処理を終了する。なお、上述したように、サーバ装置21は受信したレイティング値及びバトルポイントに基づき、システムの内容を更新する。
一方、ゲストゲーム装置1の場合は、勢力マッチが終了すると(ステップS60)、ホストゲーム装置1で行われるステップS61〜S64の処理の間は待機しており、ステップS64でバトルポイントの加算結果と最新のレイティング値とに関する情報が送信されると、これを受信する(ステップS65)。そしてその後は、上述したのと同様にステップS66〜S68の処理を実行し、バトルポイントの付与処理を終了する。
以上の処理によって、勝利チームのプレイヤの勢力には、式(1)で算出されるポイントが付与され、バトルポイントが増加する。従って各プレイヤには、自身の勢力が優勢になるために勢力マッチに参加しようとする指向が働く。また、式(1)から分かるように、自チームのプレイヤ数が少ないほど付与されるバトルポイントは大きくなるため、各プレイヤには、チーム編成により自チームのプレイヤ数が少なくても、諦めずに積極的に対戦しようとする指向が働くことになる。更に、式(1)から、対戦時の自チーム内において自勢力のプレイヤ数が多いほど付与されるバトルポイントは大きくなるため、各プレイヤには、勢力マッチに積極的に参加しようという指向が働くことになる。
なお、上記バトルポイントの付与処理では、レイティング値を利用してバトルポイントの加算値を算出し、更新する場合について説明したが、これに限定されない。即ち、最新の情報にポイントを加算して、加算後のポイントに更新できるシステムであれば他のものを採用してバトルポイントの付与処理を行うようにしてもよい。また、上記説明では、各ゲーム装置1(ホストゲーム装置及びゲストゲーム装置)が、それぞれ最新のバトルポイントに関する情報をサーバ装置21へ送信すると言及したが、これに換えて、ホストゲーム装置1のみがサーバ装置21へ送信するようにしてもよい。
[ポイント付与後の処理]
なお、本実施の形態に係る勢力マッチでは、このようなバトルポイントの付与によりゲーム処理は終了されるが、更に続けて次のような処理が行われる。即ち、バトルポイントの付与処理を終えると、ゲーム装置1は、該勢力マッチの対戦期間(例えば、月曜日から次の日曜日までの1週間)が終了したか否かを判断し、この期間が終了していなければ、図4のステップS12以降の処理を再び実行する。
一方、この対戦期間が終了している場合には、自身が参加していた勢力が全勢力の中で、該対戦期間において獲得したバトルポイントが最も高かったか否かを判断する。即ち、各ゲーム装置1は、バトルポイントの付与処理を終えると、サーバ装置21から各勢力が獲得したバトルポイントの値を示す情報を受信し、この情報に基づいてバトルポイント値の大きい勢力ほど順位が高くなるように順位付けを行う。この順位付けから、自身の勢力のバトルポイントが最も高かったか否かを判断する。このような処理は、ゲーム装置1の制御部61のポイント付与部65において、バトルポイントの付与処理に引き続いて行われる。そして、最も高かった場合には、自身(自キャラクタ)の該対戦期間中の対戦への参加回数に応じて、次にゲームをプレイする際、褒賞(例えば、特別な武器や防具、装飾品、称号など)を受け取る権利を取得して本ゲームを終了し、そうでなかった場合には褒賞を受け取る権利を獲得できずに本ゲームを終了する。
なお、上記権利に基づいて褒賞を実際に受け取ることができるのは、次にゲームをプレイすべく前期の結果画面33をモニタ13に表示しているとき(図4のステップS8参照)とするが、他のタイミングに褒賞を受け取れるように設定してもよい。また、各勢力の最新のバトルポイントの獲得比率は、図11に示す勢力マッチメニュー35の勢力情報35bに円グラフとして表示される。
更に、褒賞を付与するための条件は、上記のように対戦期間中の獲得ポイントが最高の勢力であることに限定されない。例えば、バトルポイントに基づく勢力の順位にかかわらず、勢力マッチに参加した回数が最も多い勢力や、参加回数が所定値を超えた勢力に付与するようにしてもよい。また、勢力内で最も多く参加したプレイヤや、KILL数に基づいて勢力内で最も活躍したプレイヤ(MVPやMIPに該当するようなプレイヤ)に褒賞を付与するようにしてもよい。