以下、本発明の実施形態の例について図面に基づき詳細に説明する。
図1は本発明の実施形態に係るゲームシステムの全体構成を示す。図1に示すように、本実施形態に係るゲームシステム1は複数のゲームサーバ10A,10Bと複数のゲーム端末20とを含む。ゲームサーバ10A,10B及びゲーム端末20は通信ネットワーク2に接続される。このため、ゲームサーバ10A,10Bの間で相互にデータ通信が可能である。また、ゲームサーバ10A,10Bとゲーム端末20との間でも相互にデータ通信が可能である。さらに、ゲーム端末20同士の間でも相互にデータ通信が可能である。
ゲームサーバ10A,10Bは例えばサーバコンピュータによって実現される。例えばゲームサーバ10Aはゲームの実行を開始するまでの処理を実行し、ゲームサーバ10Bはゲームを実行する。図2はゲームサーバ10A,10Bのハードウェア構成を示す。図2に示すように、ゲームサーバ10A,10Bの各々は制御部11、記憶部12、光ディスクドライブ部13、及び通信部14を含む。
制御部11は例えばマイクロプロセッサ等を含み、オペレーティングシステムやその他のプログラムに従って処理を実行する。記憶部12は主記憶部(例えばRAM)及び補助記憶部(例えばハードディスクドライブ又はソリッドステートドライブ)を含む。光ディスクドライブ部13は光ディスクに記憶されたプログラムやデータを読み取る。通信部14は通信ネットワーク2に接続するためのインタフェースである。
ゲームサーバ10A,10Bはデータベース15にアクセスできるようになっている。データベース15はゲームサーバ10A,10Bのいずれか一方に構築されていてもよいし、ゲームサーバ10A,10Bとは別のサーバコンピュータに構築されていてもよい。ゲームを提供するために必要なデータがデータベース15に記憶される。データベース15に記憶されるデータについては後述する。
ゲーム端末20はユーザがゲームをプレイするためのコンピュータ(ユーザ端末)である。ゲーム端末20は、例えば、家庭用ゲーム機(据置型ゲーム機)、携帯用ゲーム機、携帯電話機(スマートフォンを含む)、携帯情報端末、又はパーソナルコンピュータによって実現される。図3はゲーム端末20のハードウェア構成を示す。図3に示すように、ゲーム端末20は制御部21、記憶部22、光ディスクドライブ部23、通信部24、操作部25、表示部26、及び音声出力部27を含む。
制御部21、記憶部22、光ディスクドライブ部23、及び通信部24はゲームサーバ10A,10Bの制御部11、記憶部12、光ディスクドライブ部13、及び通信部14と同様である。操作部25は、例えばゲームコントローラ、キー、レバー、タッチパネル、又はマウス等を含み、ユーザがゲーム操作を行うためのものである。表示部26は例えば液晶表示パネル又は有機ELディスプレイ等であり、制御部21の指示に従って画面を表示する。音声出力部27は例えばスピーカ又はヘッドホン等であり、制御部31の指示に従って音声データを出力する。
プログラムやデータは光ディスクを介してゲームサーバ10A,10B又はゲーム端末20に供給される。なお、ゲームサーバ10A,10B又はゲーム端末20は、光ディスク以外の情報記憶媒体(例えばメモリカード)に記憶されたプログラム又はデータを読み取るための構成要素を含むようにしてもよい。また、光ディスク以外の情報記憶媒体を介してゲームサーバ10A,10B又はゲーム端末20にプログラムやデータを供給するようにしてもよい。あるいは、通信ネットワーク2を介して遠隔地からゲームサーバ10A,10B又はゲーム端末20にプログラムやデータを供給するようにしてもよい。
ゲームシステム1では、複数のユーザが参加するゲームが実行される。例えば、複数のユーザが対戦するゲーム、又は複数のユーザが協力して所定の目的を達成することを目指すゲーム等が実行される。
ゲームシステム1では、まず、ゲームに参加する複数のユーザの組み合わせがゲームサーバ10Aによって自動的に決定される。そして、それらの複数のユーザが参加するゲームが開始される。
なお、以下では、複数のユーザが参加するゲームの一例として、ユーザA,Bが対戦するサッカーゲームがゲームシステム1(対戦システム)で実行される場合について説明する。すなわち、ユーザAが操作するサッカーチーム(サッカーチームA)と、ユーザBが操作するサッカーチーム(サッカーチームB)と、の間の試合が行われるサッカーゲームについて説明する。また以下では、ユーザAが使用しているゲーム端末20のことを「ゲーム端末A」と記載し、ユーザBが使用しているゲーム端末20のことを「ゲーム端末B」と記載する。
ユーザA,Bが対戦する場合、ユーザA,Bに共通なゲーム空間が構築される。図4はゲーム空間の一例について示す。図4に示すゲーム空間30は、互いに直交する3つの座標軸Xw,Yw,Zwが設定された仮想3次元空間である。
ゲーム空間30には、サッカーフィールドを表すオブジェクトであるフィールド32が配置され、サッカーゴールを表すオブジェクトであるゴール34がフィールド32上に配置される。また、サッカーボールを表すオブジェクトであるボール36もゲーム空間30に配置される。ゴール34の一方はサッカーチームAに関連付けられ、他方はサッカーチームBに関連付けられる。いずれか一方のサッカーチームに対応づけられたゴール34内にボール36が移動すると、他方のチームの得点イベントが発生する。
さらに、サッカーチームAに所属するサッカー選手を表すオブジェクトであるキャラクタ38と、サッカーチームBに所属するサッカー選手を表すオブジェクトであるキャラクタ40と、がゲーム空間30に配置される。図4では省略されているが、サッカーチームAに所属する11人のキャラクタ38と、サッカーチームBに所属する11人のキャラクタ40と、がゲーム空間30に配置される。
サッカーチームAに所属するキャラクタ38のうちのいずれかがユーザAの操作対象に設定され、ユーザAの操作に従って行動する。同様に、サッカーチームBに所属するキャラクタ40のうちのいずれかがユーザBの操作対象に設定され、ユーザBの操作に従って行動する。なお、ユーザの操作対象に設定されていないキャラクタ38,40はAI(人工知能)に従って行動する。
また、ゲーム空間30には仮想カメラ42(視点)が設定される。仮想カメラ42から見たゲーム空間30を表すゲーム画面がゲーム端末A,Bの表示部26に表示される。
図5はゲーム画面の一例を示す。図5に示すゲーム画面50には、ボール36と、サッカーチームAに所属する3人のキャラクタ38A,38B,38Cと、サッカーチームBに所属する2人のキャラクタ40A,40Bと、が表示されている。また、ゲーム画面50にはカーソル52A,52Bが表示されている。カーソル52Aは、ユーザAによって操作されているキャラクタ38を示し、カーソル52Bは、ユーザBによって操作されているキャラクタ40を示す。
例えば、ボール36が常にゲーム画面50に表示されるようにすべく(言い換えれば、ボール36が仮想カメラ42の視野領域に常に含まれるようにすべく)、仮想カメラ42はボール36の移動に基づいてゲーム空間30内を移動する。
なお、仮想カメラ42をユーザごとに設定するようにしてもよい。すなわち、ユーザAのための仮想カメラ42と、ユーザBのための仮想カメラ42と、をゲーム空間30内に設定するようにしてもよい。また、この場合、ユーザAが操作しているキャラクタ38がゲーム端末Aにおけるゲーム画面50に常に表示されるようにすべく、ユーザAのための仮想カメラ42を、ユーザAが操作しているキャラクタ38の移動に基づいて設定するようにしてもよい。ユーザBのための仮想カメラ42に関しても同様である。
ところで、上記のようなゲームに参加するユーザの中には、マナーの良いユーザもいれば、マナーの悪いユーザもいる。「マナーの悪いユーザ」とは、例えば、他のユーザに不快感を与えるような行為をゲーム中に行うユーザや、ゲームの状況が自らにとって不利な状況になった場合にゲームを途中で終了させるべくゲーム端末20の通信接続を切断してしまうユーザである。なお、「ゲーム端末20の通信接続を切断する」ことには、ゲーム端末20を通信ネットワーク2に接続するための通信機器の電源を切断すること、ゲーム端末20を通信ネットワーク2に接続するための通信ケーブルを切断すること、ゲーム端末20をリセット(再起動)することや、ゲーム端末20の電源を切断すること等が含まれる。
マナーの良いユーザが参加するゲームにマナーの悪いユーザが参加した場合、マナーの良いユーザは他のユーザのマナーの悪さに不満を感じてしまうおそれがある。この点、ゲームシステム1は、マナーの悪いユーザにマナーを改善するように促したり、マナーの良いユーザに上記のような不満を感じさせないようにしたりするための機能を備えている。
具体的には、ゲームシステム1では各ユーザのマナーが評価がされる。例えば、複数のユーザが参加するゲームが終了した場合に、ゲーム中における他のユーザのマナーを評価するための評価画面が各ゲーム端末20に表示される。
図6は評価画面の一例を示す。評価画面60では、他のユーザのマナーに関する評価として、肯定評価62A(フェアプレイである)及び否定評価62B(フェアプレイでない)のいずれか一方を選択できるようになっている。
例えば、ゲーム中にユーザBがユーザAに不快感を与えるような行為を行った場合、ユーザAはユーザBのマナーに関する評価として否定評価62Bを選択する。一方、ゲーム中にユーザBがユーザAに不快感を与えるような行為を行わなかった場合、ユーザAはユーザBのマナーに関する評価として肯定評価62Aを選択する。
さらに、ゲームシステム1では、複数のユーザが参加するゲームが途中で終了したか否かが判定される。そして、各ユーザのマナー評価情報が、評価画面60における評価結果や、ユーザが参加したゲームが途中で終了したか否かの判定結果に基づいて決定される。
また、ゲームシステム1では、各ユーザのマナー評価情報に基づいて、マナーの悪いユーザに警告したり、マナーの悪いユーザに制限を課したりする。例えば、マナーの良いユーザが参加するゲームにマナーの悪いユーザを参加させない。複数のユーザが対戦するゲームの場合であれば、マナーの良いユーザの対戦相手として、マナーの悪いユーザを決定しない。また、マナーの悪いユーザの対戦相手として、マナーの悪いユーザを決定する。また例えば、ユーザのランキングデータを公開する場合にマナーの悪いユーザをランキングの集計の対象から除外する。
ゲームシステム1では、以上のようにすることによって、マナーの悪いユーザにマナーを改善するように促したり、マナーの良いユーザに上記のような不満を感じさせないようにしたりするようになっている。
ところで、以上のようなことを実現する場合にはユーザのマナーの評価精度を向上する必要がある。この点、ゲームシステム1は、ユーザのマナーの評価精度を向上するための構成も備えている。以下、この構成について説明する。
まず、ゲームシステム1で実現される機能ブロックについて説明する。図7はゲームシステム1で実現される機能ブロックの一例を示す機能ブロック図である。図7に示すように、ゲームシステム1は情報記憶部70、評価情報取得部72、実行方式選択部74、ゲーム端末制御部76、途中終了判定部78、評価結果取得部80、及び評価情報更新部82を含む。情報記憶部70は例えばデータベース15によって実現される。一方、情報記憶部70以外の機能ブロックは例えばゲームサーバ10A(実行方式選択装置)によって実現される。
情報記憶部70について説明する。情報記憶部70は、複数のユーザが参加するゲームを提供するために必要な情報を記憶する。例えば、情報記憶部70は、ゲームプレイ時のマナーに関する評価を示すマナー評価情報を各ユーザに対応づけて記憶する。
図8〜図10は情報記憶部70に記憶される情報の例を示す。図8はユーザテーブルの一例を示す。ユーザテーブルは、ゲームシステム1が提供するサービスを利用するユーザのリストを示す。ユーザテーブルは「ユーザID」、「パスワード」、「ゲーム端末情報」、「状態」、「フェアプレイ回数」、「途中終了回数」、及び「マナー評価情報」フィールドを含む。
「ユーザID」フィールドは、ユーザを一意に識別するための識別情報(ユーザID)を示す。「パスワード」フィールドは、ユーザによって指定されたパスワードを示す。「ゲーム端末情報」フィールドは、ユーザのゲーム端末20と通信するために必要な情報(例えばIPアドレス等)を示す。「状態」フィールドはユーザの状態を示す。例えば、「状態」フィールドは、ユーザがゲームシステム1にログインしているか否かや、ユーザがゲームへの参加を希望しているか否か(例えば、ユーザが他のユーザとの対戦を希望しているか否か)を示す。
「フェアプレイ回数」フィールドは、ユーザのマナーに関する評価として肯定評価62Aが選択された累計回数を示す。「途中終了回数」フィールドは、ユーザがゲームを途中で終了させたと判定された累計回数を示す。言い換えれば、「途中終了回数」フィールドは、ゲームを途中で終了した原因のユーザとして判定された累計回数を示す。例えば、最近の所定回数(例えば50回)のゲームにおける途中終了回数が「途中終了回数」フィールドに登録される。
「マナー評価情報」フィールドはユーザのマナーに関する評価を示す。例えば、ユーザのマナーに関する評価は「AAA」、「AA」、「A」、「B」、及び「C」の5段階で示される。すなわち、「AAA」、「AA」、「A」、「B」、及び「C」のいずれかが「マナー評価情報」フィールドに登録される。なお、「AAA」が最も高い評価を示し、「C」が最も低い評価を示す。ユーザのマナー評価情報は「フェアプレイ回数」及び「切断回数」フィールドの各々に登録されている累計回数に基づいて決定される。
図9はマナー評価情報テーブルの一例を示す。マナー評価情報テーブルは、フェアプレイ回数と途中終了回数との組み合わせと、マナー評価情報と、の対応関係を示す。なお、図9において、「N1」及び「N2」は所定の回数を示し、これらは「N1<N2」の関係を有する。また、「M1」及び「M2」も所定の回数を示し、これらは「M1<M2」の関係を有する。
図9に示すマナー評価情報テーブルでは、フェアプレイ回数(n)が多いほど、マナーに関する評価が高くなるように設定されている。また、途中終了回数(m)が少ないほど、マナーに関する評価が高くなるように設定されている。
ユーザのマナー評価情報は、マナー評価情報テーブルと、「フェアプレイ回数」及び「途中終了回数」フィールドの各々に登録されている累計回数と、に基づいて決定される。
例えば、途中終了回数(m)が「M1」未満である場合、ユーザのマナー評価情報は「AAA」、「AA」、及び「A」のいずれかに決定される。具体的には、フェアプレイ回数(n)が「N2」以上である場合に、ユーザのマナー評価情報は「AAA」に決定される。また、フェアプレイ回数(n)が「N1」以上であって、かつ、「N2」未満である場合に、ユーザのマナー評価情報は「AA」に決定される。さらに、フェアプレイ回数(n)が零以上であって、かつ、「N1」未満である場合に、ユーザのマナー評価情報は「A」に決定される。
また例えば、途中終了回数(m)が「M1」以上であって、かつ、「M2」未満である場合に、ユーザのマナー評価情報は「B」に決定される。また、途中終了回数(m)が「M2」以上である場合に、ユーザのマナー評価情報は「C」に決定される。
図10はプレイ履歴テーブルの一例を示す。プレイ履歴テーブルは「ユーザID」、「日時」、「相手」、「対戦結果」、「評価結果」、及び「途中終了」フィールドを含む。
「ユーザID」フィールドはユーザテーブルの「ユーザID」フィールドと同様である。「日時」フィールドは、ユーザがゲームをプレイした日時を示す。「相手」フィールドは対戦相手のユーザIDを示し、「対戦結果」フィールドは対戦結果を示す。
「評価結果」フィールドは、他のユーザ(対戦相手)によって評価されたユーザのマナーに関する評価結果を示す。例えば、値「0」又は「1」が「評価結果」フィールドに登録される。値「0」は、否定評価62Bが他のユーザ(対戦相手)によって選択されたことを示し、値「1」は、肯定評価62Aが他のユーザ(対戦相手)によって選択されたことを示す。
「途中終了」フィールドは、ユーザがゲームを途中で終了させたと判定されたか否かを示す。例えば、値「0」又は「1」が「途中終了」フィールドに登録される。値「0」は、ユーザがゲームを途中で終了させたと判定されなかったことを示し、値「1」は、ユーザがゲームを途中で終了させたと判定されたことを示す。
評価情報取得部72について説明する。評価情報取得部72は、ゲームに参加するユーザのマナー評価情報を取得する。例えば、ユーザA,Bの対戦ゲームの場合、評価情報取得部72はユーザAのマナー評価情報とユーザBのマナー評価情報を取得する。なお例えば、ユーザテーブルの「マナー評価情報」フィールドに登録されている情報が「マナー評価情報」に相当する。
実行方式選択部74について説明する。実行方式選択部74は、ゲームの実行方式として、ピアツーピア方式(第1の方式)と、クライアント/サーバ方式(第2の方式)と、のいずれか一方を、当該ゲームに参加するユーザのマナー評価情報に基づいて選択する。
ピアツーピア方式は、複数のゲーム端末20の間でデータ通信を行うことによってゲームを実行する方式である。一方、クライアント/サーバ方式は、複数のゲーム端末20の各々とゲームサーバ10Bとの間でデータ通信を行うことによってゲームを実行する方式である。
実行方式選択部74は、マナー評価が所定の基準よりも低くなっているユーザがゲームに参加するか否かを判定する。例えば、実行方式選択部74は、ゲームに参加するユーザのマナー評価情報が所定条件を満足するか否かを判定することによって、マナー評価が所定の基準よりも低くなっているユーザがゲームに参加するか否かを判定する。
ゲームに参加するユーザのマナー評価情報が所定条件を満足するか否かの判定結果が所定の結果である場合、実行方式選択部74は、マナー評価が所定の基準よりも低くなっているユーザがゲームに参加すると判定する。一方、上記の判定結果が所定の結果でない場合、実行方式選択部74は、マナー評価が所定の基準よりも低くなっているユーザがゲームに参加しないと判定する。
マナー評価が所定の基準よりも低くなっているユーザがゲームに参加する場合に、実行方式選択部74は当該ゲームの実行方式としてクライアント/サーバ方式を選択する。一方、マナー評価が所定の基準よりも低くなっているユーザがゲームに参加しない場合、実行方式選択部74は当該ゲームの実行方式としてピアツーピア方式を選択する。
ゲーム端末制御部76について説明する。ゲーム端末制御部76は、実行方式選択部74によって選択された実行方式でゲームが実行されるように、複数のゲーム端末20を制御する。
例えば、ユーザA,Bの対戦ゲームの実行方式としてピアツーピア方式が選択された場合、ゲーム端末制御部76は、ユーザA,Bの対戦ゲームをピアツーピア方式で実行するようにゲーム端末A,Bに指示する。
また例えば、ユーザA,Bの対戦ゲームの実行方式としてクライアント/サーバ方式が選択された場合、ゲーム端末制御部76は、ユーザA,Bの対戦ゲームをクライアント/サーバ方式で実行開始するようにゲームサーバ10B及びゲーム端末A,Bに指示する。
途中終了判定部78、評価結果取得部80及び評価情報更新部82について説明する。
途中終了判定部78はゲームが途中で終了したか否かを判定する。そして、評価情報更新部82は、ゲームに参加したユーザのマナー評価情報を途中終了判定部78の判定結果に基づいて更新する。
ユーザA,Bの対戦ゲームがピアツーピア方式で実行される場合、ゲーム端末A,Bの各々はゲーム端末A,Bの間のデータ通信が切断されたか否かを監視する。例えば、ゲーム端末A,Bは、他のゲーム端末20からのデータが受信されない状態が所定時間にわたって継続した場合にデータ通信が切断されたと判定する。また、ゲーム端末A,Bの各々は、ゲーム端末A,Bの間のデータ通信速度が閾値以下である状態が所定時間にわたって継続したか否かも監視する。
そして、ゲーム端末A,Bの間のデータ通信が切断されたと判定された場合、又は、ゲーム端末A,Bの間のデータ通信速度が閾値以下である状態が所定時間にわたって継続したと判定された場合、ゲーム端末A,Bはゲームを途中で終了させ、ゲームが途中で終了した旨をゲームサーバ10Aに通知する。この通知がゲームサーバ10Aで受信された場合に途中終了判定部78はゲームが途中で終了したと判定する。
ピアツーピア方式で実行されたゲームが途中で終了した場合、評価情報更新部82は、当該ゲームに参加していたユーザのマナー評価情報を評価が下がるように更新する。
ピアツーピア方式の場合には、ゲームサーバ10Bを介することなく複数のゲーム端末20の間でデータを送受信することによってゲームが実行されるため、ゲームが途中で終了した原因となったユーザ(ゲーム端末20)を特定することは困難である。そこで、ゲームに参加していたいずれのユーザにも、当該ゲームが途中で終了した原因となった可能性があるとみなして、評価情報更新部82は、ゲームに参加していたすべてのユーザのマナー評価情報を評価が下がるように更新する。
例えば、ピアツーピア方式で実行されたユーザA,Bの対戦ゲームが途中で終了した場合、評価情報更新部82は、ユーザAのマナー評価情報を評価が下がるように更新し、かつ、ユーザBのマナー評価情報を評価が下がるように更新する。
一方、ユーザA,Bが対戦するゲームがクライアント/サーバ方式で実行される場合、ゲームサーバ10Bは、ゲーム端末A,Bの少なくとも一方とゲームサーバ10Bとの間のデータ通信が切断されたか否かを監視する。例えば、ゲームサーバ10Bは、ゲーム端末Aからのデータが受信されない状態が所定時間にわたって継続した場合にゲーム端末Aとのデータ通信が切断されたと判定し、ゲーム端末Bからのデータが受信されない状態が所定時間にわたって継続した場合にゲーム端末Bとのデータ通信が切断されたと判定する。また、ゲームサーバ10Bは、ゲーム端末A,Bの少なくとも一方とゲームサーバ10Bとの間のデータ通信速度が閾値以下である状態が所定時間にわたって継続したか否かも監視する。
そして、ゲーム端末A,Bの少なくとも一方とゲームサーバ10Bとの間のデータ通信が切断されたと判定された場合、又は、ゲーム端末A,Bの少なくとも一方とゲームサーバ10Bとの間のデータ通信速度が閾値以下である状態が所定時間にわたって継続したと判定された場合、ゲームサーバ10Bはゲームを途中で終了させ、ゲームが途中で終了した旨をゲームサーバ10Aに通知する。この通知がゲームサーバ10Aで受信された場合に途中終了判定部78はゲームが途中で終了したと判定する。
クライアント/サーバ方式で実行されたゲームが途中で終了した場合、評価情報更新部82(特定手段)は、当該ゲームに参加していたユーザのうち、当該ゲームが途中終了した原因となったユーザを特定する。
クライアント/サーバ方式の場合には、ゲームサーバ10Bと各ゲーム端末20との間でデータを送受信することによってゲームが実行されるため、ゲームが途中で終了した原因となったユーザ(ゲーム端末20)を特定することが可能である。このため、ゲームサーバ10Bは、ゲームが途中終了した原因となったユーザを、複数のゲーム端末20の各々とゲームサーバ10Bとの間のデータ通信に基づいて判断する。
例えば、ゲーム端末Aからのデータがゲームサーバ10Bで受信されない状態が所定時間にわたって継続したが故にゲームが途中で終了した場合、ゲームサーバ10Bは、ゲームが途中終了した原因となったユーザがユーザAであると判断し、その旨をゲームサーバ10Aに通知する。この通知がゲームサーバ10Aで受信された場合、評価情報更新部82(特定手段)は、ゲームが途中終了した原因となったユーザがユーザAであると特定する。
同様に、ゲーム端末Aとゲームサーバ10Bとの間のデータ通信速度が閾値以下である状態が所定時間にわたって継続したが故にゲームが途中で終了した場合にも、ゲームサーバ10Bは、ゲームが途中終了した原因となったユーザがユーザAであると判断し、その旨をゲームサーバ10Aに通知する。この通知がゲームサーバ10Aで受信された場合、評価情報更新部82(特定手段)は、ゲームが途中終了した原因となったユーザがユーザAであると特定する。
また例えば、ゲーム端末Bからのデータがゲームサーバ10Bで受信されない状態が所定時間にわたって継続したが故にゲームが途中で終了した場合、ゲームサーバ10Bは、ゲームが途中終了した原因となったユーザがユーザBであると判断し、その旨をゲームサーバ10Aに通知する。この通知がゲームサーバ10Aで受信された場合、評価情報更新部82(特定手段)は、ゲームが途中終了した原因となったユーザがユーザBであると特定する。
同様に、ゲーム端末Bとゲームサーバ10Bとの間のデータ通信速度が閾値以下である状態が所定時間にわたって継続したが故にゲームが途中で終了した場合にも、ゲームサーバ10Bは、ゲームが途中終了した原因となったユーザがユーザBであると判断し、その旨をゲームサーバ10Aに通知する。この通知がゲームサーバ10Aで受信された場合、評価情報更新部82(特定手段)は、ゲームが途中終了した原因となったユーザがユーザBであると特定する。
評価情報更新部82は、ゲームが参加していたユーザのうち、当該ゲームが途中で終了する原因となったユーザのマナー評価情報を評価が下がるように更新する。また、評価情報更新部82は、当該ゲームが参加していたユーザのうち、当該ゲームが途中で終了する原因となったユーザ以外のユーザのマナー評価情報を評価が上がるように更新する。
例えば、クライアント/サーバ方式で実行されたユーザA,Bの対戦ゲームが途中で終了し、かつ、当該ゲームが途中で終了した原因となったユーザがユーザBであると特定された場合、評価情報更新部82はユーザBのマナー評価情報を評価が下がるように更新し、かつ、ユーザAのマナー評価情報を評価が上がるように更新する。
評価結果取得部80は、ゲームに参加したユーザの当該ゲームにおけるマナーを当該ゲームに参加した他のユーザが評価した評価結果を取得する。そして、評価情報更新部82は、ゲームに参加したユーザのマナー評価情報を評価結果取得部80の取得結果に基づいて更新する。
例えば、ユーザA,Bの対戦ゲームの場合、評価結果取得部80は、当該ゲームにおけるユーザAのマナーをユーザBが評価した評価結果を取得する。また、評価結果取得部80は、当該ゲームにおけるユーザBのマナーをユーザAが評価した評価結果を取得する。
なお、ゲーム端末Bに表示された評価画面60においてユーザBが選択した肯定評価62A及び否定評価62Bのいずれかが、「ユーザAのマナーをユーザBが評価した評価結果」に相当する。同様に、ゲーム端末Aに表示された評価画面60においてユーザAが選択した肯定評価62A及び否定評価62Bのいずれかが、「ユーザBのマナーをユーザAが評価した評価結果」に相当する。
評価情報更新部82は、ユーザAのマナーをユーザBが評価した評価結果と、ユーザBのマナーをユーザAが評価した評価結果と、の組み合わせが所定の組み合わせであるか否かを判定する。具体的には、評価情報更新部82は、両方の評価結果がともに肯定的な評価結果(肯定評価62A)であるか否かを判定する。すなわち、評価情報更新部82は、ユーザA,Bがお互いに相手のマナーが良いと評価したか否かを判定する。
評価情報更新部82は、上記の判定結果に基づいて、ユーザAのマナー評価情報とユーザBのマナー評価情報とを更新する。例えば、両方の評価結果がともに肯定的な評価結果である場合に、評価情報更新部82はユーザAのマナー評価情報を評価が上がるように更新し、かつ、ユーザBのマナー評価情報を評価が上がるように更新する。
次に、以上に説明した機能ブロックを実現するためにゲームシステム1で実行される処理について説明する。
図11は、複数のユーザが参加するゲームを開始するために実行される処理の一例を示すフロー図である。図11に示す処理はゲームサーバ10Aの制御部11によって実行される。制御部11が図11に示す処理をプログラムに従って実行することによって、制御部11が評価情報取得部72、実行方式選択部74、及びゲーム端末制御部76として機能するようになる。
図11に示すように、まず、制御部11はゲームに参加するユーザを決定する(S101)。例えば、二名のユーザが対戦するゲームの場合、制御部11はユーザテーブルにアクセスし、他のユーザとの対戦を希望しているユーザのうちから二名のユーザを選択する。
例えば、制御部11はマナーの良い二名のユーザを選択する。具体的には、制御部11は、マナー評価情報が「AAA」、「AA」、又は「A」である二名のユーザを選択する。または、制御部11はマナーの悪い二名のユーザを選択する。具体的には、制御部11は、マナー評価情報が「B」である二名のユーザを選択したり、制御部11は、マナー評価情報が「C」である二名のユーザを選択したりする。
ゲームに参加するユーザが決定された場合、制御部11は、マナー評価情報が基準より低いユーザがゲームに参加するか否かを判定する(S102)。例えば、上記の基準としては「A」が設定される。例えば、ステップS101において、ゲームに参加するユーザとしてユーザA,Bが決定された場合、制御部11はユーザAのマナー評価情報が「B」又は「C」であるか否かを判定する。また、制御部11はユーザBのマナー評価情報が「B」又は「C」であるか否かを判定する。ユーザA,Bの少なくとも一方のマナー評価情報が「B」又は「C」である場合、制御部11は、マナー評価情報が基準より低いユーザがゲームを参加すると判定する。
マナー評価情報が基準より低いユーザがゲームを参加しないと判定された場合、制御部11はピアツーピア方式をゲームの実行方式として選択する(S103)。この場合、制御部11は、ピアツーピア方式でゲームの実行を開始するように、ゲームに参加するユーザのゲーム端末20に指示する(S104)。
例えば、ユーザA,Bがゲームに参加する場合、制御部11は、ゲーム端末A,Bのいずれか一方を、ゲームサーバの役割を担うべきゲーム端末20として選択する。そして、制御部11は下記に示す情報をゲーム端末A,Bに送信する。
(A1)ピアツーピア方式が選択されたことを示す情報
(A2)ゲームサーバの役割を担うべきゲーム端末20を示す情報
(A3)他のゲーム端末20とデータ通信するために必要な情報(IPアドレス等)
上記の情報がゲーム端末A,Bに送信された後、ゲーム端末A,Bの間でデータ通信が開始され、ユーザA,Bの対戦ゲームが開始される。この場合、後述の図12に示すような処理が実行される。
一方、ステップS102において、マナー評価情報が基準より低いユーザがゲームに参加すると判定された場合、制御部11はクライアント/サーバ方式をゲームの実行方式として選択する(S105)。この場合、制御部11は、クライアント/サーバ方式でゲームの実行を開始するように、ゲームに参加するユーザのゲーム端末20とゲームサーバ10Bとに指示する(S106)。
例えば、ユーザA,Bがゲームに参加する場合、制御部11は下記に示す情報をゲームサーバ10Bに送信する。
(B1)クライアント/サーバ方式が選択されたことを示す情報
(B2)ゲーム端末A,Bとデータ通信するために必要な情報(IPアドレス等)
さらに、制御部11は下記に示す情報をゲーム端末A,Bの各々に送信する。
(C1)クライアント/サーバ方式が選択されたことを示す情報
(C2)ゲームサーバ10Bとデータ通信するために必要な情報(IPアドレス等)
上記の情報がゲームサーバ10B及びゲーム端末A,Bに送信された後、ゲームサーバ10Bとゲーム端末Aとの間のデータ通信と、ゲームサーバ10Bとゲーム端末Bとの間のデータ通信とが開始され、ユーザA,Bの対戦ゲームが開始される。この場合、後述の図13に示すような処理が実行される。
ここで、ユーザA,Bの対戦ゲームをピアツーピア方式で実行する場合の処理について説明する。図12は、ユーザA,Bの対戦ゲームをピアツーピア方式で実行する場合の処理の一例を示す図である。なお、ピアツーピア方式の場合、ゲーム端末A,Bのいずれかがサーバの役割を担うことになる。ここでは、ゲーム端末Aがゲームサーバの役割を担う場合を想定する。この場合、最新のゲーム状況を示すゲーム状況データがゲーム端末Aの記憶部22に記憶され、そのゲーム状況データの複製がゲーム端末Bの記憶部22に記憶される。
ゲーム端末Aがゲームサーバの役割を担う場合、ゲーム端末Bは、ユーザBが行ったゲーム操作に関する操作データを取得し(S201)、その操作データをゲーム端末Aに送信する(S202)。
一方、ゲーム端末Aは、ユーザAが行ったゲーム操作に関する操作データを取得し(S203)、ゲーム端末Aの記憶部22に記憶されるゲーム状況データを、ステップS203で取得した操作データ(ユーザAが行ったゲーム操作)と、ゲーム端末Bから受信した操作データ(ユーザBが行ったゲーム操作)と、に基づいて更新する(S204)。
その後、ゲーム端末Aは、ゲーム状況データの更新内容をゲーム端末Bに伝えるための更新データをゲーム端末Bに送信する(S205)。ゲーム端末Bは、ゲーム端末Bの記憶部22に記憶されるゲーム状況データを、ゲーム端末Aから受信した更新データに基づいて更新する(S206)。そして、ゲーム端末Bでは、ゲーム端末Bの記憶部22に記憶されるゲーム状況データに基づいてゲーム画面50が更新される(S207)。また同様に、ゲーム端末Aでは、ゲーム端末Aの記憶部22に記憶されるゲーム状況データに基づいてゲーム画面50が更新される(S208)。
なお、図12に示した例では、ゲーム状況データの更新内容をゲーム端末Bに伝えるための更新データをゲーム端末Aがゲーム端末Bに送信するようになっていたが、ゲーム端末Bにおいて表示すべきゲーム画面50を示す画面データをゲーム端末Aがゲーム端末Bに送信するようにしてもよい。そして、ゲーム端末Bは、ゲーム端末Aから受信した画面データに基づいてゲーム画面50を更新するようにしてもよい。
ピアツーピア方式で実行されたユーザA,Bの対戦ゲームが正常に終了した場合、ゲームサーバとしての役割を担っていないゲーム端末Bは、ゲーム端末Bに表示された評価画面60における評価結果(すなわち、ユーザBがユーザAのマナーを評価した評価結果)を示す情報をゲーム端末Aに送信する。そして、ゲームサーバとしての役割を担っているゲーム端末Aは下記に示す情報をゲームサーバ10Aに送信する。
(D1)ゲームが正常終了した旨を示す情報
(D2)ゲームの結果(すなわち対戦結果)を示す情報
(D3)ゲーム端末Aに表示された評価画面60における評価結果(すなわち、ユーザAがユーザBのマナーを評価した評価結果)を示す情報
(D4)ゲーム端末Bに表示された評価画面60における評価結果(すなわち、ユーザBがユーザAのマナーを評価した評価結果)を示す情報
一方、ピアツーピア方式で実行されたユーザA,Bの対戦ゲームが途中で終了した場合、ゲーム端末A,Bは下記に示す情報をゲームサーバ10Aに送信する。
(E1)ゲームが途中で終了した旨を示す情報
なお、ゲーム端末A,Bの一方の通信接続が切断されたことによって対戦ゲームが途中で終了したような場合には、ゲーム端末A,Bの他方(すなわち、通信接続が切断されていない側のゲーム端末)が上記の情報(E1)をゲームサーバ10Aに送信することになる。
ゲームサーバ10Aがゲーム端末A,Bの一方から上記の情報(E1)を受信した場合、ゲームサーバ10Aはゲーム端末A,Bの他方に信号を送ることによって、通信接続の切断の有無を確認する。なお、この場合においても、通信接続が切断された原因が明確に特定されるわけではないため、結局、ユーザA,Bの両方のマナー評価情報が評価が下がるように更新されることになる。
ところで、ユーザA,Bの対戦ゲームをピアツーピア方式で実行する場合の処理は図12に示した例に限られない。
図12に示した例では、ゲーム端末A,Bのいずれか一方がサーバとしての役割を担うようになっていたが、ゲーム端末A,Bが対等な立場でお互いに操作データを送信し合うようにしてもよい。
すなわち、ゲーム端末Aは、ユーザAが行ったゲーム操作に関する操作データを取得し、その操作データをゲーム端末Bに送信するようにしてもよい。同様に、ゲーム端末Bは、ユーザBが行ったゲーム操作に関する操作データを取得し、その操作データをゲーム端末Aに送信するようにしてもよい。
この場合、ゲーム端末Aは、ユーザAが行ったゲーム操作に関する操作データと、ユーザBが行ったゲーム操作に関する操作データと、に基づいて、ゲーム端末Aの記憶部22に記憶されるゲーム状況データを更新する。そして、ゲーム端末Aは、ゲーム端末Aの記憶部22に記憶されるゲーム状況データに基づいて、ゲーム端末Aの表示部26に表示されるゲーム画面50を更新する。
同様に、ゲーム端末Bは、ユーザAが行ったゲーム操作に関する操作データと、ユーザBが行ったゲーム操作に関する操作データと、に基づいて、ゲーム端末Bの記憶部22に記憶されるゲーム状況データを更新する。そして、ゲーム端末Bは、ゲーム端末Bの記憶部22に記憶されるゲーム状況データに基づいて、ゲーム端末Bの表示部26に表示されるゲーム画面50を更新する。
なお、この場合、ユーザA,Bの対戦ゲームが正常に終了した際には、ゲーム装置A,Bの各々が上記の情報(D1)〜(D4)をゲームサーバ10Aに送信する。
次に、ユーザA,Bの対戦ゲームをクライアント/サーバ方式で実行する場合の処理について説明する。図13は、ユーザA,Bの対戦ゲームをクライアント/サーバ方式で実行する場合の処理の一例を示す図である。クライアント/サーバ方式の場合、最新のゲーム状況を示すゲーム状況データがゲームサーバ10Bの記憶部12(又はデータベース15)に記憶され、そのゲーム状況データの複製がゲーム端末A,Bの各々の記憶部22に記憶される。
クライアント/サーバ方式の場合、ゲーム端末Aは、ユーザAが行ったゲーム操作に関する操作データを取得し(S301)、該操作データをゲームサーバ10Bに送信する(S302)。同様に、ゲーム端末Bは、ユーザBが行ったゲーム操作に関する操作データを取得し(S301)、該操作データをゲームサーバ10Bに送信する(S302)。
ゲームサーバ10Bは、ゲーム端末A,Bから受信した操作データに基づいて、ゲームサーバ10Bに記憶されるゲーム状況データを更新し(S303)、ゲーム状況データの更新内容を伝えるための更新データをゲーム端末A,Bに送信する(S304)。
そして、ゲーム端末Aは、ゲームサーバ10Bから受信した更新データに基づいて、ゲーム端末Aに記憶されるゲーム状況データを更新し、更新後のゲーム状況データに基づいて、ゲーム端末Aの表示部26にゲーム画面50を表示する。ゲーム装置Bについても同様である。
なお、図13に示した例では、ゲーム状況データの更新内容をゲーム端末Aに伝えるための更新データをゲームサーバ10Bがゲーム端末Aに送信するようになっていたが、ゲーム端末Aにおいて表示すべきゲーム画面50を示す画面データをゲームサーバ10Bがゲーム端末Aに送信するようにしてもよい。そして、ゲーム端末Aは、ゲームサーバ10Bから受信した画面データに基づいてゲーム画面50を更新するようにしてもよい。ゲーム端末Bについても同様である。
クライアント/サーバ方式で実行されたユーザA,Bの対戦ゲームが正常に終了した場合、ゲーム端末Aは、ゲーム端末Aに表示された評価画面60における評価結果(すなわち、ユーザAがユーザBのマナーを評価した評価結果)を示す情報をゲームサーバ10Bに送信する。同様に、ゲーム端末Bは、ゲーム端末Bに表示された評価画面60における評価結果(すなわち、ユーザBがユーザAのマナーを評価した評価結果)を示す情報をゲームサーバ10Bに送信する。そして、ゲームサーバ10Bは下記に示す情報をゲームサーバ10Aに送信する。
(F1)ゲームが正常終了した旨を示す情報
(F2)ゲームの結果(すなわち対戦結果)を示す情報
(F3)ゲーム端末Aに表示された評価画面60における評価結果(すなわち、ユーザAがユーザBのマナーを評価した評価結果)を示す情報
(F4)ゲーム端末Bに表示された評価画面60における評価結果(すなわち、ユーザBがユーザAのマナーを評価した評価結果)を示す情報
一方、クライアント/サーバ方式で実行されたユーザA,Bの対戦ゲームが途中で終了した場合、ゲームサーバ10Bは下記に示す情報をゲームサーバ10Aに送信する。
(G1)ゲームが途中で終了した旨を示す情報
(G2)ゲームが途中で終了した原因となったユーザ(ゲーム端末20)を示す情報
次に、複数のユーザが参加するゲームが終了した場合に実行される処理について説明する。図14及び図15は、ユーザA,Bの対戦ゲームが終了した場合に実行される処理の一例を示す。図14,15に示す処理はゲームサーバ10Aの制御部11によって実行される。制御部11が図14,15に示す処理をプログラムに従って実行することによって、制御部11が途中終了判定部78、評価結果取得部80、及び評価情報更新部82として機能するようになる。
ユーザA,Bの対戦ゲームが終了した場合、図14に示すように、まず制御部11はゲームが正常に終了したか否かを判定する(S401)。この判定は上記の情報(D1)(E1)(F1)又は(G1)に基づいて行われる。
ユーザA,Bの対戦ゲームが正常に終了したと判定された場合、制御部11はゲームの結果をプレイ履歴テーブルに登録する(S402)。この場合、制御部11は、ユーザAのゲーム結果を示すレコードと、ユーザBのゲーム結果を示すレコードと、をプレイ履歴テーブルに追加する。図16はプレイ履歴テーブルに追加されるレコードの一例を示す。なお図16は、ユーザAのユーザIDが「U1」であり、ユーザBのユーザIDが「U2」であり、ユーザAがユーザBに「2−0」で勝利し、かつ、ユーザA,Bがお互いに相手のマナーを肯定的に評価した場合を想定している。
例えば、制御部11は、ユーザAのゲーム結果を示すレコードの各フィールドに下記に説明する情報を登録する。例えば、制御部11はユーザAのユーザIDを「ユーザID」フィールドに登録し、現在日時を「日時」フィールドに登録する。また、制御部11はユーザBのユーザIDを「相手」フィールドに登録し、対戦結果を「対戦結果」フィールドに登録する。さらに、制御部11は値「0」を「途中終了」フィールドに登録する。
また、ゲーム端末Bに表示された評価画面60における評価結果(すなわち、ユーザBがユーザAのマナーを評価した評価結果)が肯定評価62Aである場合、制御部11は値「1」を「評価結果」フィールドに登録する。一方、上記の評価結果が否定評価62Bである場合、制御部11は値「0」を「評価結果」フィールドに登録する。
同様に、制御部11は、ユーザBのゲーム結果を示すレコードの各フィールドに下記に説明する情報を登録する。例えば、制御部11はユーザBのユーザIDを「ユーザID」フィールドに登録し、現在日時を「日時」フィールドに登録する。また、制御部11はユーザAのユーザIDを「相手」フィールドに登録し、対戦結果を「対戦結果」フィールドに登録する。さらに、制御部11は値「0」を「途中終了」フィールドに登録する。
また、ゲーム端末Aに表示された評価画面60における評価結果(すなわち、ユーザAがユーザBのマナーを評価した評価結果)が肯定評価62Aである場合、制御部11は値「1」を「評価結果」フィールドに登録する。一方、上記の評価結果が否定評価62Bである場合、制御部11は値「0」を「評価結果」フィールドに登録する。
ステップS402の処理が終了した後、制御部11は、ユーザAがユーザBのマナーを評価した評価結果と、ユーザBがユーザAのマナーを評価した評価結果と、の両方がともに肯定評価62Aであるか否かを判定する(S403)。
上記の評価結果の両方がともに肯定評価62Aであると判定された場合、制御部11はユーザAのフェアプレイ回数を1増加する(S404)。また、制御部11はユーザAの途中終了回数を更新する(S405)。例えば、制御部11は、ユーザAが行った最近50回の対戦におけるユーザAの途中終了回数をプレイ履歴テーブルから取得し、当該途中終了回数をユーザテーブルに登録する。
同様に、制御部11はユーザBのフェアプレイ回数を1増加する(S406)。また、制御部11はユーザBの途中終了回数を更新する(S407)。例えば、制御部11は、ユーザBが行った最近50回の対戦におけるユーザBの途中終了回数をプレイ履歴テーブルから取得し、当該途中終了回数をユーザテーブルに登録する。
一方、ステップS403において、上記の評価結果の少なくとも一方が肯定評価62Aでないと判定された場合、制御部11はユーザAの途中終了回数を更新する(S408)。ステップS408はステップS405と同様である。なお、上記の評価結果の少なくとも一方が肯定評価62Aでないと判定された場合には、ユーザAのフェアプレイ回数は増加されない。
同様に、制御部11はユーザBの途中終了回数を更新する(S409)。ステップS409はステップS407と同様である。なお、上記の評価結果の少なくとも一方が肯定評価62Aでないと判定された場合には、ユーザBのフェアプレイ回数は増加されない。
ステップS407又はS409が実行された後、制御部11はユーザAのマナー評価情報を更新する(S410)。例えば、制御部11は、ユーザAのフェアプレイ回数及び途中終了回数の組み合わせに対応づけられたマナー評価情報をマナー評価情報テーブルから取得する。そして、制御部11は該マナー評価情報をユーザAのマナー評価情報としてユーザテーブルに登録する。
同様に、制御部11はユーザBのマナー評価情報を更新する(S411)。例えば、制御部11は、ユーザBのフェアプレイ回数及び途中終了回数の組み合わせに対応づけられたマナー評価情報をマナー評価情報テーブルから取得する。そして、制御部11は該マナー評価情報をユーザBのマナー評価情報としてユーザテーブルに登録する。
なお、ステップS401において、ゲームが正常に終了しなかったと判定された場合、すなわち、ゲームが途中で終了した場合、図15に示すように、制御部11はゲームの実行方式がクライアント/サーバ方式であるか否かを判定する(S501)。
ゲームの実行方式がクライアント/サーバ方式でないと判定された場合、すなわち、ゲームの実行方式がピアツーピア方式である場合、制御部11はゲームの結果をプレイ履歴テーブルに登録する(S504)。
ピアツーピア方式の場合には、ゲームサーバ10Bを介することなくゲーム端末A,Bの間でデータを送受信することによってゲームが実行されるため、ゲームが途中で終了した原因となったユーザ(ゲーム端末20)を特定することは困難である。そこで、制御部11は、ゲームが途中で終了した原因がユーザA,Bの両方にあったとみなして、プレイ履歴テーブルへの登録を行うようになっている。
すなわち、制御部11は、ユーザAのゲーム結果を示すレコードと、ユーザBのゲーム結果を示すレコードと、をプレイ履歴テーブルに追加する。図17はプレイ履歴テーブルに追加されるレコードの一例を示す。なお図17は、ユーザAのユーザIDが「U1」であり、かつ、ユーザBのユーザIDが「U2」である場合を想定している。
例えば、制御部11は、ユーザAのゲーム結果を示すレコードの各フィールドに下記に説明する情報を登録する。つまり、制御部11はユーザAのユーザIDを「ユーザID」フィールドに登録し、現在日時を「日時」フィールドに登録し、ユーザBのユーザIDを「相手」フィールドに登録する。さらに上述のように、制御部11は、ゲームが途中で終了した原因がユーザAにあるとみなし、値「1」を「途中終了」フィールドに登録する。
同様に、制御部11は、ユーザBのゲーム結果を示すレコードの各フィールドに下記に説明する情報を登録する。つまり、制御部11はユーザBのユーザIDを「ユーザID」フィールドに登録し、現在日時を「日時」フィールドに登録し、ユーザAのユーザIDを「相手」フィールドに登録する。さらに上述のように、制御部11は、ゲームが途中で終了した原因がユーザBにあるとみなし、値「1」を「途中終了」フィールドに登録する。
一方、ステップS501において、ゲームの実行方式がクライアント/サーバ方式であると判定された場合、制御部11は、ゲームサーバ10Bから受信される上記の情報(G2)に基づいて、ゲームが途中で終了した原因となったユーザを特定する(S502)。
その後、制御部11はゲームの結果をプレイ履歴テーブルに登録する(S503)。この場合、制御部11は、ユーザAのゲーム結果を示すレコードと、ユーザBのゲーム結果を示すレコードと、をプレイ履歴テーブルに追加する。図18はプレイ履歴テーブルに追加されるレコードの一例を示す。なお図18は、ユーザAのユーザIDが「U1」であり、ユーザBのユーザIDが「U2」であり、かつ、ゲームが途中で終了した原因となったユーザがユーザBである場合を想定している。
例えば、制御部11は、ユーザAのゲーム結果を示すレコードの各フィールドに下記に説明する情報を登録する。すなわち、制御部11はユーザAのユーザIDを「ユーザID」フィールドに登録し、現在日時を「日時」フィールドに登録し、ユーザBのユーザIDを「相手」フィールドに登録する。また、制御部11は、ステップS502で特定されたユーザがユーザAでない場合に値「0」を「途中終了」フィールドに登録し、ステップS502で特定されたユーザがユーザAである場合に値「1」を「途中終了」フィールドに登録する。
同様に、制御部11は、ユーザBのゲーム結果を示すレコードの各フィールドに下記に説明する情報を登録する。例えば、制御部11はユーザBのユーザIDを「ユーザID」フィールドに登録し、現在日時を「日時」フィールドに登録し、ユーザAのユーザIDを「相手」フィールドに登録する。また、制御部11は、ステップS502で特定されたユーザがユーザBでない場合に値「0」を「途中終了」フィールドに登録し、ステップS502で特定されたユーザがユーザBである場合に値「1」を「途中終了」フィールドに登録する。
ステップS503又はS504が実行された後、制御部11はユーザAの途中終了回数を更新し(S505)、ユーザAのマナー評価情報を更新する(S506)。ステップS505,S506は図14のステップS405,S410と同様である。
また、制御部11はユーザBの途中終了回数を更新し(S507)、ユーザBのマナー評価情報を更新する(S508)。ステップS507,S508は図14のステップS407,S411と同様である。
以上に説明したゲームシステム1では各ユーザのマナーが評価される。また、ユーザのマナー評価情報に基づいてユーザに警告や制限が行われる。例えば、マナーの悪いユーザに警告が行われる。また例えば、マナーの悪いユーザがランキングの集計対象から除外される。また例えば、マナーの悪いユーザを、マナーの良いユーザが参加するゲームに参加させないように制御される。ゲームシステム1によれば、マナーの悪いユーザがマナーを改善するように誘導したり、マナーの悪いユーザによってマナーの良いユーザが不満を感じてしまうことがないようにしたりすることが可能になる。
また、ゲームシステム1によれば、ユーザのマナーの評価精度を向上することが可能になる。
ピアツーピア方式の場合、ゲームサーバ10Bを介することなくゲーム端末20の間でデータを送受信することによってゲームが実行されるため、ゲームが途中で終了した場合にその原因となったユーザ(ゲーム端末20)を特定することが困難である。このため、ゲームシステム1では、例えば、ピアツーピア方式で実行された、ユーザA,Bが参加するゲームが途中で終了した場合、ユーザA,Bの両方の途中終了回数を増加するようになっている。
しかしながら、この場合、ゲームが途中で終了した原因でなかったユーザの途中終了回数も増えてしまい、その結果、ゲームが途中で終了した原因であったユーザとともに、ゲームが途中で終了した原因でなかったユーザのマナー評価情報も下がってしまう。すなわち、ユーザのマナーの評価精度が下がってしまうおそれがある。
この点、ゲームシステム1では、ユーザA,Bの少なくとも一方のマナー評価が低い場合、ユーザA,Bが参加するゲームがクライアント/サーバ方式で実行される。クライアント/サーバ方式の場合には、ゲーム端末A,Bの各々とゲームサーバ10Bとの間でデータを送受信することによってゲームが実行されるため、ゲームが途中で終了した場合にその原因となったユーザ(ゲーム端末20)を特定することが可能である。
このため、例えば、クライアント/サーバ方式で実行された、ユーザA,Bが参加するゲームがが途中で終了した場合、ゲームが途中で終了した原因となったユーザとして特定されたユーザの途中終了回数のみが増加することになり、その結果、当該ユーザのマナー評価が下がるようになっている。一方、ゲームが途中で終了した原因となったユーザとして特定されなかったユーザの途中終了回数は減少することになり、その結果、当該ユーザのマナー評価が上がるようになっている。
このように、ゲームシステム1によれば、ゲームが途中で終了した原因でなかったにもかかわらずマナー評価が下がってしまったユーザが存在したとしても、そのようなユーザのマナー評価が上がるように担保されている。このように、ゲームシステム1によれば、ユーザのマナーの評価精度を向上することが可能である。
ところで、ユーザのマナーの評価精度を高めるための方法としては、常にゲームをクライアント/サーバ方式で実行する方法も考えられる。しかしながら、クライアント/サーバ方式の場合、ゲームサーバ10Bを介して対戦が実行されるため、多数のゲーム(対戦)を並行して行う場合には多数のゲームサーバ10Bが必要になる。この点、ゲームシステム1では、クライアント/サーバ方式でゲームが実行される場合が、マナーの悪いユーザがゲームに参加する場合に限られるため、多数のゲーム(対戦)を並行して行うために必要なゲームサーバ10Bの台数の増大を抑制することが可能である。すなわち、ゲームの提供にかかるコストの増大を抑制することが可能である。
また、ピアツーピア方式の場合には、ユーザの操作(キー入力)に対するレスポンスが良いため、クライアント/サーバ方式の場合に比べてユーザの操作性が良い。このため、常にクライアント/サーバ方式でゲームを実行してしまうと、ピアツーピア方式でゲームを実行する場合に比べてユーザの操作性が低下してしまう場合がある。この点、ゲームシステム1によれば、マナーの悪いユーザがゲームに参加する場合に限ってクライアント/サーバ方式でゲームが実行され、それ以外の場合にはピアツーピア方式でゲームが実行されるため、ユーザの操作性の低下を抑制することが可能である。
なお、本発明は以上に説明した実施形態に限定されるものではない。
例えば、以上に説明した実施形態では、マナーの悪いユーザをマナーの良いユーザが参加するゲームに参加させないようになっていたが、マナーの悪いユーザに対しては警告のみを行うようにし、マナーの悪いユーザをマナーの良いユーザが参加するゲームに参加できるようにしてもよい。
また例えば、ゲーム空間は仮想二次元空間であってもよい。すなわち、二つの座標値によってキャラクタの位置等が表されるようにしてもよい。
また例えば、以上では、2名のユーザが対戦するサッカーゲームに本発明を適用した場合について主に説明した。しかしながら、本発明は、3名以上のユーザが対戦するサッカーゲームにも適用することができる。この場合、対戦が終了した後にユーザは自分以外の他の各ユーザのマナーを評価することになる。
また当然のことながら、本発明は、複数のユーザが対戦するサッカーゲーム以外にも適用することが可能である。例えば、複数のユーザが協力して一つのサッカーチームを操作するサッカーゲームにも本発明を適用することは可能である。また例えば、サッカーゲーム以外のゲームにも本発明を適用することは可能である。本発明は、複数のユーザが参加するゲームに適用することが可能である。また、本発明は、複数のユーザがゲームの対戦を行うような対戦システムだけでなく、複数のユーザがゲーム以外の対戦を行うような対戦システムにも適用することが可能である。