以下、本発明の実施形態の例について図面に基づき詳細に説明する。
[第1実施形態]
図1は、本発明の第1実施形態に係るゲームシステムの構成の一例を示す。図1に示すように、本実施形態に係るゲームシステム10は、ゲーム管理装置20と、複数のゲーム装置30とを含む。ゲーム管理装置20と複数のゲーム装置30とは通信ネットワーク12に接続される。通信ネットワーク12は、例えばインターネット等を含んで構成される。ゲーム管理装置20とゲーム装置30との間で相互にデータ通信が可能である。ゲーム装置30と他のゲーム装置30との間でも相互にデータ通信が可能である。
ゲーム管理装置20は一般的なサーバコンピュータによって実現される。ゲーム管理装置20は各ゲーム装置30の情報(例えばIPアドレス等)を管理しており、各ゲーム装置30に他のゲーム装置30の情報を提供する役割を果たす。
図2はゲーム管理装置20のハードウェア構成を示す。図2に示すように、ゲーム管理装置20は制御部21、主記憶部22、補助記憶部23、光ディスクドライブ部24、及び通信インタフェース25を含む。
制御部21はマイクロプロセッサを含み、オペレーティングシステム及びその他のプログラムに従って処理を実行する。主記憶部22は例えばRAMを含んで構成される。主記憶部22には、補助記憶部23又は光ディスク(情報記憶媒体)から読み出されたプログラムやデータが記憶される。また主記憶部22は、処理の過程で必要なデータを記憶するワークメモリとしても用いられる。
補助記憶部23は、例えばハードディスク装置(情報記億媒体)を含む。光ディスクドライブ部24には光ディスクが装着され、光ディスクドライブ部24は光ディスクに記憶されたプログラムやデータを読み取る。通信インタフェース25はゲーム管理装置20を通信ネットワーク12に接続するためのインタフェースである。
ゲーム装置30はプレイヤがゲームをプレイするための装置であり、例えば家庭用ゲーム機(据置型ゲーム機)、携帯ゲーム機、業務用ゲーム機、携帯電話機、携帯情報端末、又はパーソナルコンピュータによって実現される。ここでは、ゲーム装置30が家庭用ゲーム機によって実現される場合について説明する。
図3はゲーム装置30のハードウェア構成を示す。図3に示すように、ゲーム装置30は制御部31、主記憶部32、補助記憶部33、光ディスクドライブ部34、通信インタフェース35、操作部36、表示部37、及び音声出力部38を含む。制御部31、主記憶部32、補助記憶部33、光ディスクドライブ部34、及び通信インタフェース35は、ゲーム管理装置20の制御部21、主記憶部22、補助記憶部23、光ディスクドライブ部24、及び通信インタフェース25と同様である。
操作部36は例えばゲームコントローラ又はタッチパネル等を含み、プレイヤの操作を受け付ける。図4A及び図4Bは操作部36の一例を示す。図4A及び図4Bに示す操作部36は汎用ゲームコントローラである。操作部36の表面40には複数の操作部材が備えられている。例えば、方向ボタン群41と、ボタン42A,42B,42X,42Yと、スティック(レバー)43L,43Rとが備えられている。
方向ボタン群41は例えば方向を指示するために用いられる。方向ボタン群41は、上方向に対応する上ボタン41Uと、下方向に対応する下ボタン41Dと、左方向に対応する左ボタン41Lと、右方向に対応する右ボタン41Rとを含む。ボタン42A,42B,42X,42Yは各種ゲーム操作に用いられる。ボタン42A,42B,42X,42Yの表面には、それぞれ、ばつ、円、四角形、三角形のマークが付されている。スティック43L,43Rも例えば方向を指示するために用いられる。スティック43L,43Rは操作部36の筐体の表面40に直立しており、この直立状態から全方位に傾倒自在に構成されている。
操作部36の各操作部材の状態を示す操作信号が一定周期(例えば1/60秒)ごとに制御部31に供給される。制御部31は操作信号に基づいてプレイヤのゲーム操作を判定する。
表示部37は例えば家庭用テレビ受像機又は液晶表示パネル等であり、制御部31の指示に従って画面を表示する。音声出力部38は例えばスピーカ又はヘッドホン等であり、制御部31の指示に従って音声データを出力する。
なお、プログラムやデータは、光ディスク又はメモリカード等の情報記憶媒体を介してゲーム管理装置20又はゲーム装置30に供給される。あるいは、プログラムやデータは通信ネットワーク12を介してゲーム管理装置20又はゲーム装置30に供給されるようにしてもよい。
ゲームシステム10では、プレイヤ同士が通信ネットワーク12を介して対戦する対戦ゲームが実行される。例えば、プレイヤA(第1プレイヤ)によって操作される操作対象(第1操作対象)と、プレイヤB(第2プレイヤ)によって操作される操作対象(第2操作対象)とが戦うゲームが実行される。以下では、プレイヤAによって操作されるキャラクタと、プレイヤBによって操作されるキャラクタとが格闘する対戦格闘ゲームがゲームシステム10で実行される場合について説明する。
図5は格闘ゲームのゲーム画面の一例を示す。このゲーム画面は、プレイヤAのゲーム装置30の表示部37と、プレイヤBのゲーム装置30の表示部37との両方に表示される。なお、これらのゲーム装置30の表示部37に表示されるゲーム画面は同一でなくてもよい。例えば、互いに異なる視点から見たゲーム空間の様子を表す画像がそれぞれのゲーム画面に表示されるようにしてもよい。また、ゲーム画面を表示するために2次元又は3次元コンピュータグラフィックス技術のいずれを用いるようにしてもよい。
図5に示すゲーム画面には、キャラクタ50A,50B、ゲージ51A,51B、及び残り時間52が表示されている。まず、キャラクタ50A,50Bについて説明する。キャラクタ50Aは、プレイヤAによって操作されるゲームキャラクタであり、原則としてプレイヤAのゲーム操作に従って動作する。キャラクタ50Bは、プレイヤBによって操作されるゲームキャラクタであり、原則としてプレイヤBのゲーム操作に従って動作する。
図6は、キャラクタの攻撃動作とプレイヤが行うべきゲーム操作との対応関係の一例を示す。図6において、ばつ、円、四角形、三角形マークは、それぞれ、ボタン42A,42B,42X,42Yを示す。また、上矢印、下矢印、左矢印、右矢印は、それぞれ、上ボタン41U、下ボタン41D、左ボタン41L、右ボタン41Rを示す。
図6に示す対応関係には、キャラクタにパンチ又はキックを行わせるためのゲーム操作が示されている。また、図6に示す対応関係には、キャラクタに特殊技を行わせるためのゲーム操作も示されている。特殊技は、通常の技(パンチ又はキック)よりも大きいダメージを対戦相手のキャラクタに与えることが可能な技である。特殊技は、例えば図5に示すようなエネルギー弾53を対戦相手のキャラクタに向けて発射するような技である。
キャラクタに特殊技を行わせるためのゲーム操作は、複数の操作部材を特定の手順で操作するような操作になっている。図6に示す対応関係の場合、プレイヤAが下ボタン41D、右ボタン41R、上ボタン41U、ボタン42A、ボタン42A、ボタン42Bを順番に押下した場合にキャラクタ50Aは特殊技を行う。特殊技のためのゲーム操作は、通常の技(パンチ又はキック)のための操作に比べて、プレイヤが操作すべき操作部材の数が多くなっている。このため、特殊技のためのゲーム操作は通常技のためのゲーム操作よりも難しくなっている。
なお、攻撃動作の種類はキャラクタごとに異なるようにしてもよい。また、攻撃動作のためのゲーム操作もキャラクタごとに異なるようにしてもよい。
次に、ゲージ51A,51Bについて説明する。ゲージ51Aはキャラクタ50A(プレイヤA)に対応し、ゲージ51A(斜線部分)の長さはキャラクタ50Aのヒットポイントの値に対応する。「ヒットポイント」とは、キャラクタの体力がどの程度残っているのかを示すパラメータである。例えば、ヒットポイントは0〜100の値をとり、ヒットポイントの初期値は100に設定される。キャラクタ50Aがダメージを受けた場合(キャラクタ50Bの攻撃がキャラクタ50Aに当たった場合)に、キャラクタ50Aのヒットポイントの値は減少し、ゲージ51A(斜線部分)が画面中央側に向かって収縮する。キャラクタ50Aのヒットポイントが零になると(すなわち、ゲージ51Aの長さが零になると)、キャラクタ50B(プレイヤB)が勝利し、キャラクタ50A(プレイヤA)が敗北したことになる。
一方、ゲージ51Bはキャラクタ50B(第2プレイヤ)に対応し、ゲージ51B(斜線部分)の長さはキャラクタ50Bのヒットポイントの値に対応する。キャラクタ50Bがダメージを受けた場合(キャラクタ50Aの攻撃がキャラクタ50Bに当たった場合)に、キャラクタ50Bのヒットポイントの値は減少し、ゲージ51B(斜線部分)が画面中央側に向かって収縮する。キャラクタ50Bのヒットポイントが零になると(すなわち、ゲージ51Bの長さが零になると)、キャラクタ50A(プレイヤA)が勝利し、キャラクタ50B(プレイヤB)が敗北したことになる。
なお、キャラクタ50A,50Bは防御動作を行うようにしてもよい。例えば、キャラクタ50Aが防御動作を行っている場合には、キャラクタ50Bの攻撃がキャラクタ50Aに当たったとしても、キャラクタ50Aのヒットポイントが減少しないようにしてもよい。あるいは、キャラクタ50Aが防御動作を行っていない場合に比べて、キャラクタ50Aのヒットポイントの減少量が少なくなるようにしてもよい。
格闘ゲームでは対戦時間(例えば99秒)が定められている。ゲーム画面に表示されている残り時間52は、対戦時間が終了するまでの残り時間を示す。対戦時間内にいずれのキャラクタのヒットポイントも零にならなかった場合には、ヒットポイントの値の大きい方のキャラクタが勝利したことになる。また、キャラクタ50A,50Bのヒットポイントが同時に零になった場合には引き分けとなる。
格闘ゲームの決着方法としては、いわゆる「1回勝負」を採用してもよいし、「3回勝負」等を採用してもよい。「1回勝負」とは1回の対戦で決着をつける方法である。一方、「3回勝負」とは、対戦を最大3回行うことによって決着をつける方法である。「3回勝負」の場合、先に2勝したプレイヤ(キャラクタ)が最終的な勝者となる。なお以下では、「1回勝負」を採用した場合について説明する。
ところで、プレイヤA,Bが通信ネットワーク12を介して対戦する場合、ゲームの現在の状況を示すデータ(以下「ゲーム状況データ」と呼ぶ。)を、プレイヤAのゲーム装置30とプレイヤBのゲーム装置30との間で共通化する必要がある。
ゲーム状況データを共通化するための方法を説明する前に、ゲーム状況データについて説明しておく。本実施形態の場合、例えば下記に示すような情報がゲーム状況データに保持される。
・キャラクタ50Aの状態情報
・キャラクタ50Bの状態情報
例えば、キャラクタ50Aの状態情報には下記に示すような情報が含まれる。キャラクタ50Bの状態情報もキャラクタ50Aの状態情報と同様である。
・キャラクタ50Aの位置、向き、及び姿勢を示す情報
・キャラクタ50Aのヒットポイント
本実施形態の場合、キャラクタに各種動作を行わせるためのアニメーションデータ(モーションデータ)がゲーム装置30に記憶される。そして、アニメーションデータが再生されることによって、キャラクタの姿勢が変化し、キャラクタが動作を行うようになる。このため、キャラクタの姿勢を示す情報として、例えば、現在再生されているアニメーションデータの種類を示す情報や、そのアニメーションデータの再生位置を示す情報が記憶される。
プレイヤAのゲーム装置30とプレイヤBのゲーム装置30との間でゲーム状況データを共通化するための方法の一例について説明する。なお以下では、プレイヤAのゲーム装置30のことを「ゲーム装置A」と記載し、プレイヤBのゲーム装置30のことを「ゲーム装置B」と記載する。
ここでは、ゲーム装置A,Bのいずれか一方にゲームサーバの役割を担わせることによって、ゲーム装置A,Bの間でゲーム状況データを共通化する方法について説明する。また、ここでは、ゲーム装置Aがゲームサーバの役割を担う場合について説明する。この場合、最新のゲーム状況を示すゲーム状況データがゲーム装置Aの主記憶部32に記憶され、そのゲーム状況データの複製がゲーム装置Bの主記憶部32に記憶される。
図7は、複数のゲーム装置A,Bの間でゲーム状況データを共通化するための処理の一例を示す。図7に示す処理はプレイヤA,Bの対戦中に実行される。
図7に示すように、ゲーム装置Aがゲームサーバの役割を担っている場合、ゲーム装置Bは、プレイヤBが行ったゲーム操作に関する操作データを取得し(S101)、その操作データをゲーム装置Aに送信する(S102)。
一方、ゲーム装置Aは、プレイヤAが行ったゲーム操作に関する操作データを取得し(S103)、ゲーム装置Aの主記憶部32に記憶されるゲーム状況データを、ステップS103で取得した操作データ(プレイヤAが行ったゲーム操作)と、ゲーム装置Bから受信した操作データ(プレイヤBが行ったゲーム操作)と、に基づいて更新する(S104)。
その後、ゲーム装置Aは、ゲーム状況データの更新内容をゲーム装置Bに伝えるための更新データをゲーム装置Bに送信する(S105)。ゲーム装置Bは、ゲーム装置Bの主記憶部32に記憶されるゲーム状況データを、ゲーム装置Aから受信した更新データに基づいて更新する(S106)。そして、ゲーム装置Bは、ゲーム装置Bの主記憶部32に記憶されるゲーム状況データに基づいてゲーム画面を更新する(S108)。また同様に、ゲーム装置Aは、ゲーム装置Aの主記憶部32に記憶されるゲーム状況データに基づいてゲーム画面を更新する(S107)。
このようにして、ゲーム装置A,Bの間でゲーム状況データが共通化され、ゲームの現在の状況を示すゲーム画面(図5参照)がゲーム装置A,Bの両方において表示される。
なお、ステップS105では、更新データをゲーム装置Bに送信する代わりに、ゲーム画面データ(ゲーム画面として表示すべき画像データ)をゲーム装置Bに送信するようにしてもよい。そして、ゲーム装置Bでは、このゲーム画面データに基づいて、ゲーム画面が表示部37に表示されるようにしてもよい。
上記の対戦ゲームでは、例えば、プレイヤA,Bの間の技量の差が大きい場合、対戦が開始されてから比較的短い時間内に一方のプレイヤ(例えば、技量が低い方のプレイヤ)が他方のプレイヤ(例えば、技量が高い方のプレイヤ)のキャラクタにダメージをほとんど与えることなく敗れてしまう場合がある。そして、敗れたプレイヤが不満を感じてしまう場合がある。このようなプレイヤの不満を軽減するための機能をゲームシステム10は備えている。図8及び図9はこの機能について説明するための図である。
ゲームシステム10では、対戦が開始されてから比較的短い時間内にキャラクタ50A,50Bの間のヒットポイントの差が大きくなった場合、ヒットポイントが小さい方のキャラクタをプレイヤの代わりにコンピュータ(制御部31)が操作するようになっている。また、この場合のコンピュータの強さのレベルは高いレベルに設定される。
例えば、図8に示す状態ではゲージ51A(斜線部分)がゲージ51B(斜線部分)に比べて非常に短くなっている。すなわち、キャラクタ50Aのヒットポイントがキャラクタ50Bのヒットポイントに比べて非常に小さくなっており、キャラクタ50A,50Bの間のヒットポイントの差が大きくなっている。さらに、図8に示す状態では、対戦が開始されてからの経過時間(4秒)も非常に短い。つまり、図8に示す状態は、対戦が開始されてから比較的短い時間内にプレイヤAがプレイヤBのキャラクタ50Bにダメージをほとんど与えることなく敗れてしまう可能性が高い状態になっている。
このような場合、コンピュータがプレイヤAの代わりにキャラクタ50Aを操作する。また、この場合、コンピュータの強さのレベルは高いレベルに設定されるため、キャラクタ50Aは、ゲームの技量が高いプレイヤによって操作されているかのように動作する。なお、この場合、自分のゲーム操作に従ってキャラクタ50Aが動作しているとプレイヤAに錯覚させるべく、コンピュータがプレイヤAの代わりにキャラクタ50Aを操作するようになったことはプレイヤAに通知されない。
この場合、キャラクタ50Aが強くなるため、キャラクタ50Aがキャラクタ50Bにダメージを与える可能性が高くなる。また、自分のゲーム操作に従ってキャラクタ50Aが動作しているとプレイヤAに錯覚させるべく、コンピュータがプレイヤAの代わりにキャラクタ50Aを操作するようになったことはプレイヤAに通知されないため、自らの力でキャラクタ50Bにダメージを与えているかのような気分をプレイヤAは味わうことができる。
一方、プレイヤBにはキャラクタ50A側に上記の変化があったことが通知される。図9は、この場合にゲーム装置Bの表示部37に表示されるゲーム画面の一例を示す。図9に示すゲーム画面では、対戦相手(キャラクタ50A)の強さが急激に上昇している旨のメッセージ54が表示されている。さらに、キャラクタ50Aを光らせるようなエフェクト55も施されており、キャラクタ50Aの強さが上昇していることが強調されている。これらのメッセージ54及びエフェクト55によって、キャラクタ50A側に上記の変化があったことをプレイヤBは把握できる。
なお、メッセージ54及びエフェクト55を表示する代わりに、他の表示出力を行うようにしてもよい。例えば、強さを示す数値をゲーム画面に表示させ、その数値を急激に上昇させるようにしてもよい。このようにすることによって、キャラクタ50A側に上記の変化があったことをプレイヤBに把握させるようにしてもよい。
以上のように、ゲームシステム10は、プレイヤが比較的短い時間内に対戦相手のキャラクタにダメージをほとんど与えることなく敗れてしまうことによって生じるプレイヤの不満の軽減を図るための機能を備えている。以下、このような機能を実現するための構成について説明する。
図10は、ゲームシステム10で実現される機能を示す機能ブロック図である。図10に示すように、ゲームシステム10は記憶部60及びゲーム制御部61を含む。例えば、記憶部60は、ゲームサーバの役割を担うゲーム装置30の主記憶部32、補助記憶部33、及び光ディスクのうちの少なくとも一つによって実現され、ゲーム制御部61は、ゲームサーバの役割を担うゲーム装置30の制御部31によって実現される。
まず、記憶部60について説明する。記憶部60はゲームを実行するために必要なデータを記憶する。例えば、キャラクタ50A,50Bのアニメーションデータが記憶部60に記憶される。また、上述したゲーム状況データが記憶部60に記憶される。
次に、ゲーム制御部61について説明する。ゲーム制御部61はゲーム制御を実行する。図10に示すように、ゲーム制御部61は更新部62、対戦結果決定部63、表示制御部64、判定部65、代行部66、及び通知制御部67を含む。
まず、更新部62について説明する。更新部62は第1更新部62A及び第2更新部62Bを含む。第1更新部62Aは、プレイヤA(第1プレイヤ)がゲーム装置Aの操作部36を用いて行ったゲーム操作に基づいて、第1パラメータの値を更新する。本実施形態の場合、キャラクタ50Bのヒットポイントが「第1パラメータ」に相当する。
本実施形態の場合、図6に示された複数のゲーム操作のうちのいずれかをプレイヤAが行った場合、ゲーム制御部61は、そのゲーム操作に対応する攻撃動作をキャラクタ50Aに行わせる。第1更新部62Aは、キャラクタ50Aの攻撃がキャラクタ50Bに当たったか否かを判定し、その判定結果に基づいて、キャラクタ50Bのヒットポイントの値を更新する。
第2更新部62Bは、プレイヤB(第2プレイヤ)がゲーム装置Bの操作部36を用いて行ったゲーム操作に基づいて、第2パラメータの値を更新する。本実施形態の場合、キャラクタ50Aのヒットポイントが「第2パラメータ」に相当する。
本実施形態の場合、図6に示された複数のゲーム操作のうちのいずれかをプレイヤBが行った場合、ゲーム制御部61は、そのゲーム操作に対応する攻撃動作をキャラクタ50Bに行わせる。第2更新部62Bは、キャラクタ50Bの攻撃がキャラクタ50Aに当たったか否かを判定し、その判定結果に基づいて、キャラクタ50Aのヒットポイントの値を更新する。
対戦結果決定部63について説明する。対戦結果決定部63は、第1パラメータ及び第2パラメータの値に基づいて、プレイヤA,Bの間の対戦結果を決定する。具体的には、対戦結果決定部63は、第1パラメータ及び第2パラメータの少なくとも一方の値が所定値になったか否かを判定し、その判定結果に基づいて、プレイヤA,Bの間の対戦結果を決定する。例えば、第2パラメータの値が所定値になっておらず、かつ、第1パラメータの値が所定値になった場合、対戦結果決定部63はプレイヤAが勝利したと決定する。また、第1パラメータの値が所定値になっておらず、かつ、第2パラメータの値が所定値になった場合、対戦結果決定部63はプレイヤBが勝利したと決定する。
本実施形態の場合、対戦結果決定部63は、キャラクタ50Aのヒットポイントの値が零(所定値)になったか否かを判定する。また、対戦結果決定部63は、キャラクタ50Bのヒットポイントの値が零(所定値)になったか否かを判定する。例えば、キャラクタ50Aのヒットポイントの値が零になっておらず、かつ、キャラクタ50Bのヒットポイントの値が零になった場合、対戦結果決定部63はプレイヤAが勝利したと決定する。また例えば、キャラクタ50Bのヒットポイントの値が零になっておらず、かつ、キャラクタ50Aのヒットポイントの値が零になった場合、対戦結果決定部63はプレイヤBが勝利したと決定する。
表示制御部64について説明する。表示制御部64は第1表示制御部64A及び第2表示制御部64Bを含む。第1表示制御部64Aは、プレイヤAのためのゲーム画面をゲーム装置Aの表示部37に表示させる。第2表示制御部64Bは、プレイヤBのためのゲーム画面をゲーム装置Bの表示部37に表示させる。例えば、ゲーム装置Aがゲームサーバの役割を担っている場合、第2表示制御部64Bは、ゲーム画面を表示するために必要なデータ(例えば、ゲーム状況データの更新内容を伝えるための更新データ)をゲーム装置Bに送信することによって(図7のステップS105参照)、ゲーム装置Bにゲーム画面を表示させる。
判定部65、代行部66、及び通知制御部67について説明する。判定部65はプレイヤA,Bの間の対戦中において代行開始条件が満足されたか否かを判定する。代行開始条件が満足されたと判定された場合、代行部66はプレイヤA,Bの一方の代わりにゲームプレイを行う。代行部66がプレイヤA,Bの一方の代わりにゲームプレイを行う場合、通知制御部67はプレイヤA,Bの他方に対して通知を行う。
「代行開始条件」は、代行部66がプレイヤA,Bの一方の代わりにゲームプレイを行うために満たされるべき条件である。例えば、初期期間内において一方のプレイヤが他方のプレイヤに大きくリードされているような状態になった場合に該一方のプレイヤの代わりに代行部66がゲームプレイを開始するようにするために、初期期間内において一方のプレイヤが他方のプレイヤに大きくリードされているような状態になったか否かを判定するための条件が「代行開始条件」として設定される。ここで、「初期期間」とは、対戦が開始されてからの経過時間が基準時間(例えば10秒)以内であるような期間である。
下記に説明するように、初期期間内において一方のプレイヤが他方のプレイヤに大きくリードされているような状態になったか否かは、対戦が開始されてからの経過時間と、第1パラメータの値と第2パラメータの値との間の差と、に基づいて判定することが可能である。このため、対戦が開始されてからの経過時間と、第1パラメータの値と第2パラメータの値との間の差と、に関する所定条件が「代行開始条件」として設定される。
本実施形態の場合、初期期間内においてプレイヤAがプレイヤBに大きくリードされているような状態になったか否かを判定するための条件が「代行開始条件」として設定され、判定部65はそのような条件が満足されたか否かを判定する。
具体的には、判定部65は、初期期間内において、「第2パラメータの値と所定値との間の差が第1パラメータの値と所定値との間の差よりも小さく、かつ、第1パラメータの値と第2パラメータの値との間の差(絶対値)が基準値以上であるような状態」(以下「状態A」と記載する。)になったか否かを判定する。この場合の「基準値」は、第1パラメータの値と第2パラメータの値との間の差(絶対値)が比較的大きいか否かを判定するために設定されるため、比較的大きい値に設定される。
本実施形態の場合、「第1パラメータ」はキャラクタ50Bのヒットポイントであり、「第2パラメータ」はキャラクタ50Aのヒットポイントである。また、「所定値」は零である。このため、判定部65は、初期期間内において、「キャラクタ50Aのヒットポイントの値がキャラクタ50Bのヒットポイントの値よりも小さく、かつ、キャラクタ50A,50Bの間のヒットポイントの差(絶対値)が基準値以上であるような状態」(上記状態A)になったか否かを判定する。
初期期間内において上記状態Aになったと判定された場合(代行開始条件が満足された場合)とは、初期期間内においてプレイヤAがプレイヤBに大きくリードされているような状態になった場合である。この場合、代行部66はプレイヤAの代わりにキャラクタ50Aを操作する。例えば、記憶部60に記憶される行動決定プログラムに従って、代行部66はキャラクタ50Aを動作させる。なお、行動決定プログラムは、キャラクタ50Aに行わせる動作を決定するためのプログラムであり、例えばAI(人工知能)が行動決定プログラムとして用いられる。
代行部66がプレイヤAの代わりにゲームプレイを行う場合、通知制御部67はプレイヤBに対して通知を行う。例えば、通知制御部67は、ゲーム装置Bの出力部(例えば表示部37及び音声出力部38)に通知出力を行わせることによって、プレイヤBに対して通知を行う。本実施形態の場合、通知制御部67は、例えば図9に示すようなメッセージ54又はエフェクト55をゲーム装置Bのゲーム画面に表示させる。
通知制御部67は、メッセージ54と同内容の音声メッセージをゲーム装置Bの音声出力部38から出力させるようにしてもよい。または、通知制御部67は、キャラクタ50Aの強さが急激に上昇していることを伝えるための音楽又は効果音を、ゲーム装置Bの音声出力部38から出力させるようにしてもよい。また例えば、操作部36が振動機能を備える場合、通知制御部67はゲーム装置Bの操作部36を振動させることによって、プレイヤBに対する通知を行うようにしてもよい。
本実施形態の場合、初期期間内においてプレイヤBがプレイヤAに大きくリードされているような状態になったか否かを判定するための条件も「代行開始条件」として設定され、判定部65はそのような条件が満足されるか否かを判定する。
具体的には、判定部65は、初期期間内において、「第1パラメータの値と所定値との間の差が第2パラメータの値と所定値との間の差よりも小さく、かつ、第1パラメータの値と第2パラメータの値との間の差(絶対値)が基準値以上であるような状態」(以下「状態B」と記載する。)になったか否かを判定する。上述したように、この場合の「基準値」は、第1パラメータの値と第2パラメータの値との間の差(絶対値)が比較的大きいか否かを判定するために設定されるため、比較的大きい値に設定される。
本実施形態の場合、「第1パラメータ」はキャラクタ50Bのヒットポイントであり、「第2パラメータ」はキャラクタ50Aのヒットポイントである。また、「所定値」は零である。このため、判定部65は、初期期間内において、「キャラクタ50Bのヒットポイントの値がキャラクタ50Aのヒットポイントの値よりも小さく、かつ、キャラクタ50A,50Bの間のヒットポイントの差(絶対値)が基準値以上であるような状態」(上記状態B)になったか否かを判定する。
初期期間内において上記状態Bになったと判定された場合(代行開始条件が満足された場合)とは、初期期間内においてプレイヤBがプレイヤAに大きくリードされているような状態になった場合である。この場合、代行部66はプレイヤBの代わりにキャラクタ50Bを操作する。例えば、記憶部60に記憶される行動決定プログラム(例えばAI)に従って、代行部66はキャラクタ50Bを動作させる。
代行部66がプレイヤBの代わりにゲームプレイを行う場合、通知制御部67はプレイヤAに対して通知を行う。プレイヤAに対する通知は上述のプレイヤBに対する通知と同様の方法で行われる。
次に、ゲームシステム10で実行される処理について説明する。図11、図12、図13、及び図14は、図7のステップS104において実行される処理の一例を示すフロー図である。なお、図11〜図14においては、プレイヤAによって操作されるキャラクタ50Aのことを「キャラクタA」と記載し、プレイヤBによって操作されるキャラクタ50Bのことを「キャラクタB」と記載している。
ゲームサーバの役割を担うゲーム装置30(図7においてはゲーム装置A)の制御部31が光ディスクから読み出されたプログラムに従って図11〜図14に示す処理を実行することによって、制御部31はゲーム制御部61(更新部62、対戦結果決定部63、判定部65、及び代行部66)として機能するようになる。
図11に示すように、まず、制御部31はプレイヤAの代行フラグが「0」であるか否かを判定する(S201)。「プレイヤAの代行フラグ」とは、プレイヤAの代わりにコンピュータ(代行部66)がゲームプレイを行っているか否かを示す情報である。代行フラグは「0」又は「1」の値をとる。値「0」は、プレイヤAの代わりにコンピュータがゲームプレイを行っていないことを示し、値「1」は、プレイヤAの代わりにコンピュータがゲームプレイを行っていることを示す。なお、対戦が開始された時点においてプレイヤAの代行フラグの値は「0」に設定される。
プレイヤAの代行フラグが「0」であると判定された場合、制御部31(判定部65)は、プレイヤAの代行フラグを「1」に変更すべきか否かを判定する。すなわち、制御部31は、初期期間内においてプレイヤAがプレイヤBに大きくリードされているか否かを判定する(S202〜S204)。
具体的には、対戦が開始されてからの経過時間が基準時間以内であるか否かを制御部31は判定する(S202)。この場合の「基準時間」は、対戦が開始されてからの経過時間が少ないか否かを判定するために用いられるため、「基準時間」は比較的短い時間(例えば10秒)に設定される。
上記の経過時間が基準時間以内である場合、制御部31は、キャラクタ50Aのヒットポイントの値がキャラクタ50Bのヒットポイントの値よりも小さいか否かを判定する(S203)。キャラクタ50Aのヒットポイントの値がキャラクタ50Bのヒットポイントの値よりも小さい場合、制御部31は、キャラクタ50A,50Bの間のヒットポイントの差(絶対値)が基準値以上であるか否かを判定する(S204)。この場合の「基準値」は正の値を有する所定値である。「基準値」は、キャラクタ50A,50Bの間のヒットポイントの差が大きいか否かを判定するために用いられるため、「基準値」は比較的大きい値に設定される。
キャラクタ50A,50Bの間のヒットポイントの差(絶対値)が基準値以上である場合、制御部31はプレイヤAの代行フラグを「1」に更新する(S205)。さらに、制御部31はプレイヤBの通知フラグを「1」に更新する(S206)。「プレイヤBの通知フラグ」とは、プレイヤBへの通知(すなわち、キャラクタ50A側に上記の変化が生じた旨の通知)を行う必要があるか否かを示す情報である。通知フラグは「0」又は「1」の値をとる。値「0」は、プレイヤBへの通知を行う必要がないことを示し、値「1」は、プレイヤBへの通知を行う必要があることを示す。なお、図11〜図14に示す処理の実行が開始される際にプレイヤBの通知フラグの値は「0」に設定される。
ステップS206の処理を実行した後、制御部31は後述のステップS207の処理を実行する。ステップS201〜S204のいずれかにおける判定結果が「偽」(N)であった場合にも、後述のステップS207の処理が実行される。
図12に示すように、ステップS207において、制御部31はプレイヤBの代行フラグが「0」であるか否かを判定する。「プレイヤBの代行フラグ」とは、プレイヤBの代わりにコンピュータ(代行部66)がゲームプレイを行っているか否かを示す情報である。プレイヤBの代行フラグは上述したプレイヤAの代行フラグと同様である。
プレイヤBの代行フラグが「0」であると判定された場合、制御部31(判定部65)は、プレイヤBの代行フラグを「1」に変更すべきか否かを判定する。すなわち、制御部31は、初期期間内においてプレイヤBがプレイヤAに大きくリードされているか否かを判定する(S208〜S210)。これらのステップS208〜S210の処理はステップS202〜S204の処理と同様である。
具体的には、対戦が開始されてからの経過時間が基準時間以内であるか否かを制御部31は判定する(S208)。上記の経過時間が基準時間以内である場合、制御部31は、キャラクタ50Bのヒットポイントの値がキャラクタ50Aのヒットポイントの値よりも小さいか否かを判定する(S209)。キャラクタ50Bのヒットポイントの値がキャラクタ50Aのヒットポイントの値よりも小さい場合、制御部31は、キャラクタ50A,50Bの間のヒットポイントの差(絶対値)が基準値以上であるか否かを判定する(S210)。
キャラクタ50A,50Bの間のヒットポイントの差(絶対値)が基準値以上である場合、制御部31はプレイヤBの代行フラグを「1」に更新する(S211)。さらに、制御部31はプレイヤAの通知フラグを「1」に更新する(S212)。「プレイヤAの通知フラグ」とは、プレイヤAへの通知(すなわち、キャラクタ50B側に上記の変化が生じた旨の通知)を行う必要があるか否かを示す情報である。プレイヤAの通知フラグは上述したプレイヤBの通知フラグと同様である。
ステップS212の処理を実行した後、制御部31は後述のステップS213の処理を実行する。ステップS207〜S210のいずれかにおける判定結果が「偽」(N)であった場合にも、後述のステップS213の処理が実行される。
図13に示すように、ステップS213において、制御部31はプレイヤAの代行フラグが「0」であるか否かを判定する。プレイヤAの代行フラグが「0」である場合、制御部31は、図7のステップS103において取得されたプレイヤAの操作データに基づいて、キャラクタ50Aを動作させる(S214)。
例えば、プレイヤAによって方向ボタン群41が操作されている場合、制御部31は、その操作内容に基づいて、キャラクタ50Aの位置、向き、及び姿勢等を更新する。また例えば、図6に示された複数のゲーム操作のうちのいずれかがプレイヤAによって行われた場合、制御部31は、そのゲーム操作に対応する攻撃動作のアニメーションデータの再生を開始することによって、キャラクタ50Aの姿勢を更新する。
一方、プレイヤAの代行フラグが「0」でない場合、すなわち、プレイヤAの代行フラグが「1」である場合、制御部31(代行部66)はAI(行動決定プログラム)に従ってキャラクタ50Aを動作させる(S215)。
ステップS214又はS215の処理が実行された後、制御部31はプレイヤBの代行フラグが「0」であるか否かを判定する(S216)。プレイヤBの代行フラグが「0」である場合、制御部31は、図7のステップS102においてゲーム装置Bから受信したプレイヤBの操作データに基づいて、キャラクタ50Bを動作させる(S217)。一方、プレイヤBの代行フラグが「0」でない場合、すなわち、プレイヤBの代行フラグが「1」である場合、制御部31(代行部66)はAI(行動決定プログラム)に従ってキャラクタ50Bを動作させる(S218)。これらのステップS216〜S218の処理はステップS213〜S215と同様である。
ステップS217又はS218の処理が実行された後、制御部31(第1更新部62A)はキャラクタ50Aの攻撃がキャラクタ50Bに当たったか否かを判定する(S219)。例えば、キャラクタ50A,50Bの位置等に基づいて当たり判定処理が実行される。
キャラクタ50Aの攻撃がキャラクタ50Bに当たったと判定された場合、制御部31(第1更新部62A)はキャラクタ50Bのヒットポイントの値を減少させる(S220)。この場合のヒットポイントの減少量は、キャラクタ50Bに当たった攻撃の種類に基づいて決定される。ステップS220の処理が実行された後、制御部11は後述のステップS221の処理を実行する。一方、キャラクタ50Aの攻撃がキャラクタ50Bに当たっていないと判定された場合、制御部31は、キャラクタ50Bのヒットポイントの値を更新することなく、後述のステップS221の処理を実行する。
ステップS221において、制御部31(第2更新部62B)はキャラクタ50Bの攻撃がキャラクタ50Aに当たったか否かを判定する。このステップS221の処理はステップS219の処理と同様である。キャラクタ50Bの攻撃がキャラクタ50Aに当たったと判定された場合、制御部31(第2更新部62B)はキャラクタ50Aのヒットポイントの値を減少させる(S222)。この場合のヒットポイントの減少量は、キャラクタ50Aに当たった攻撃の種類に基づいて決定される。ステップS222の処理が実行された後、制御部11は後述のステップS223の処理を実行する。一方、キャラクタ50Bの攻撃がキャラクタ50Aに当たっていないと判定された場合、制御部31は、キャラクタ50Aのヒットポイントの値を更新することなく、後述のステップS223の処理を実行する。
図14に示すように、ステップS223において、制御部31はキャラクタ50A,50Bのヒットポイントの値がともに零であるか否かを判定する。キャラクタ50A,50Bのヒットポイントの値がともに零である場合、制御部31(対戦結果決定部63)はプレイヤA,Bの間の対戦結果を引き分けであると決定する(S224)。
一方、キャラクタ50A,50Bのヒットポイントの値がともに零であると判定されなかった場合、制御部31はキャラクタ50Aのヒットポイントの値が零であるか否かを判定する(S225)。キャラクタ50Aのヒットポイントの値が零である場合、制御部31(対戦結果決定部63)はプレイヤBが勝者であると決定する(S226)。
一方、キャラクタ50Aのヒットポイントの値が零であると判定されなかった場合、制御部31はキャラクタ50Bのヒットポイントの値が零であるか否かを判定する(S227)。キャラクタ50Bのヒットポイントの値が零である場合、制御部31(対戦結果決定部63)はプレイヤAが勝者であると決定する(S228)。
一方、キャラクタ50Bのヒットポイントの値が零であると判定されなかった場合、制御部31は対戦時間が終了したか否かを判定する(S229)。対戦時間が終了したと判定された場合、制御部31(対戦結果決定部63)は、ヒットポイントの値が大きい方のプレイヤが勝者であると決定する(S230)。一方、対戦時間が終了していないと判定された場合、本処理は終了する。この場合、図7のステップS104の処理が終了したことになり、ステップS105の処理が開始される。
この場合、図7のステップS105において、制御部21(第2表示制御部64B、通知制御部67)は、更新データとともに、プレイヤBの通知フラグデータをゲーム装置Bに送信する。そして、ゲーム装置Bの制御部31は更新データに基づいてゲーム状況データを更新し(S106)、更新されたゲーム状況データに基づいてゲーム画面を更新する(S108)。このステップS108では例えば図15に示すような処理が実行される。
すなわち、制御部31はプレイヤBの通知フラグが「0」であるか否かを通知フラグデータに基づいて判定する(S301)。プレイヤBの通知フラグが「0」である場合、制御部31は通常のゲーム画面を表示部37に表示する(S302)。「通常のゲーム画面」とは、メッセージ54及びエフェクト55が表示されていないゲーム画面である(例えば図5参照)。一方、プレイヤBの通知フラグが「0」でない場合、すなわち、プレイヤBの通知フラグが「1」である場合、制御部31は通知時のゲーム画面を表示部37に表示する(S303)。「通知時のゲーム画面」とは、メッセージ54及びエフェクト55が表示されたゲーム画面である(例えば図9参照)。
この場合、図7のステップS107においても、図15に示す処理と類似の処理が実行される。すなわち、ステップS301の処理が実行される代わりに、プレイヤAの通知フラグが「0」であるか否かが判定される。また、ステップS303で表示される通知時のゲーム画面では、図9に示すようなエフェクト55がキャラクタ50Bに施される。
なお、図14のステップS224,S226,S228,S230において対戦結果が決定された場合にも、図11〜図14に示す処理は終了する。この場合、図7のステップS105では、対戦が終了した旨と対戦結果とを示すデータが更新データの一部として送信される。そして、ステップS108では対戦結果画面がゲーム装置Bの表示部37に表示される。同様に、ステップS107においても対戦結果画面がゲーム装置Aの表示部37に表示される。
以上説明したゲームシステム10によれば、比較的短い時間内に一方のプレイヤ(例えば、技量が低いプレイヤ)が他方のプレイヤ(例えば、技量が高いプレイヤ)のキャラクタにダメージをほとんど与えることなく敗れてしまうような事態の発生を低減することが可能になる。すなわち、比較的短い時間内に対戦相手のキャラクタにダメージをほとんど与えることなく敗れてしまうことによるプレイヤの不満を軽減することが可能になる。
また、ゲームシステム10によれば、一方のプレイヤの代わりに代行部66がゲームプレイを行う場合に他方のプレイヤに通知を行うことによって、対戦相手のゲームプレイに変化が生じることを他方のプレイヤに予測させることが可能になる。
[第2実施形態]
本発明の第2実施形態に係るゲームシステムについて説明する。基本的に、第2実施形態に係るゲームシステムは第1実施形態と同様の構成を有する。
第2実施形態に係るゲームシステム10は、代行部66がプレイヤA,Bの一方の代わりにゲームプレイを行う場合において、自分がゲームプレイを行っているかのように該一方のプレイヤを錯覚させやすくするための機能を備える点で第1実施形態とは異なる。
図16は上記機能を説明するための図である。ここでは、代行部66がプレイヤAの代わりにゲームプレイを行っている場合を想定する。すなわち、図16は、代行部66がプレイヤAの代わりにゲームプレイを行っている場合にゲーム装置Aの表示部37に表示されるゲーム画面の一例を示している。図16に示す場面では、代行部66によって操作されるキャラクタ50Aが攻撃(特殊技)を行っている。
代行部66によって操作されるキャラクタ50Aが攻撃を行う場合、第1表示制御部64Aは、図16に示すようなゲーム操作情報70をキャラクタ50Aに関連づけてゲーム画面に表示させる。なお、ゲーム操作情報70の表示位置はキャラクタ50Aの表示位置に基づいて決定される。例えば、ゲーム操作情報70はキャラクタ50Aの付近に表示される。
ゲーム操作情報70は、代行部66によって操作されるキャラクタ50Aが攻撃を開始する直前(又は代行部66によって操作されるキャラクタ50Aが攻撃を開始する際)にプレイヤAが行っていたゲーム操作を示す。例えば、ゲーム操作情報70は、キャラクタ50Aが攻撃を開始する時点より所定時間(例えば1秒間)前の時点と、キャラクタ50Aが攻撃を開始する時点と、の間の期間(以下「対象期間」と記載する。)にプレイヤAが行ったゲーム操作を示す。
このようなゲーム操作情報70がゲーム画面に表示されると、プレイヤAは自分が行ったゲーム操作によってキャラクタ50Aが攻撃を行ったと錯覚しやすくなる。第2実施形態に係るゲームシステム10によれば、代行部66がキャラクタ50Aを操作している場合であっても自分がキャラクタ50Aを操作しているかのようにプレイヤAを錯覚させやすくすることが可能になる。
なお、代行部66がプレイヤBの代わりにゲームプレイを行っている場合も代行部66がプレイヤAの代わりにゲームプレイを行っている場合と同様である。すなわち、代行部66によって操作されるキャラクタ50Bが攻撃を行う場合に、第2表示制御部64Bは、対象期間にプレイヤBが行ったゲーム操作を示すゲーム操作情報70をゲーム装置Bのゲーム画面に表示させる。
第2実施形態に係るゲームシステム10で実行される処理について説明する。まず、代行部66がプレイヤAの代わりにゲームプレイを行っている場合に実行される処理について説明する。
この場合、対象期間にプレイヤAが行った操作内容が記憶部60に記憶される。また、図13のステップS215においてキャラクタ50Aに攻撃動作を開始させるとの決定がAIによってなされたか否かを制御部31は判定する。キャラクタ50Aに攻撃動作を開始させるとの決定がAIによってなされたと判定された場合、図7のステップS107において、対象期間にプレイヤAが行ったゲーム操作を示すゲーム操作情報70がゲーム画面に表示される。
代行部66がプレイヤBの代わりにゲームプレイを行っている場合に実行される処理についても説明する。
この場合、上記の対象期間にプレイヤBが行った操作内容が記憶部60に記憶される。また、図13のステップS218においてキャラクタ50Bに攻撃動作を開始させるとの決定がAIによってなされたか否かを制御部31は判定する。キャラクタ50Bに攻撃動作を開始させるとの決定がAIによってなされたと判定された場合、図7のステップS105において、制御部31はゲーム操作情報70をゲーム装置Bのゲーム画面に表示させるためのデータをゲーム装置Bに送信する。
例えば、制御部31は、対象期間にプレイヤBが行ったゲーム操作を示すデータをゲーム装置Bに送信する。または、制御部31は、上記の判定結果を示すデータと、対象期間にプレイヤBが行ったゲーム操作を示すデータとをゲーム装置Bに送信するようにしてもよい。そして、図7のステップS108では、対象期間にプレイヤBが行ったゲーム操作を示すゲーム操作情報70がゲーム画面に表示される。
[第3実施形態]
本発明の第3実施形態に係るゲームシステムについて説明する。基本的に、第3実施形態に係るゲームシステムは第1実施形態と同様の構成を有する。
第3実施形態に係るゲームシステム10も、代行部66がプレイヤA,Bの一方の代わりにゲームプレイを行う場合において自分がゲームプレイを行っているかのように該一方のプレイヤを錯覚させやすくするための機能を備える点で第1実施形態とは異なる。
図17は上記機能を説明するための図である。ここでも、代行部66がプレイヤAの代わりにゲームプレイを行っている場合を想定する。
代行部66によって操作されるキャラクタ50Aが所定の攻撃動作(例えば特殊技)を開始しようとする場合、第3実施形態に係るゲームシステム10では対戦ゲームの進行が一時停止される。そして、該所定の攻撃動作のためのゲーム操作を制限時間(例えば2秒間)内に行うようにプレイヤAに案内される。
図17は、その場合にゲーム装置Aの表示部37に表示されるゲーム画面の一例を示している。図17に示すゲーム画面には、所定の攻撃動作のためのゲーム操作を示すゲーム操作情報71と、そのゲーム操作を行うようにプレイヤAに要求する旨のメッセージ72とが表示されている。さらに、制限時間73も表示されている。
この場合、制限時間が経過したか否かが監視され、制限時間が経過した場合には対戦ゲームの進行が再開されるとともに、キャラクタ50Aが所定の攻撃動作を開始する。なお、この場合、所定の攻撃動作のためのゲーム操作を制限時間内にプレイヤAが行うことができたか否かに関わらず、キャラクタ50Aは所定の攻撃動作を開始する。
図17に示すようなゲーム画面が表示されれば、プレイヤAは所定の攻撃動作(例えば特殊技)のためのゲーム操作を制限時間内に行おうとするはずである。また、対戦ゲームの進行が再開された場合にキャラクタ50Aが攻撃動作を行えば、自分がゲーム操作を行ったことよってキャラクタ50Aが攻撃動作を行ったと考えるはずである。このように、第3実施形態に係るゲームシステム10によれば、代行部66がキャラクタ50Aを操作している場合であっても自分がキャラクタ50Aを操作しているかのようにプレイヤAを錯覚させやすくすることが可能になる。
第3実施形態に係るゲームシステム10で実行される処理について説明する。まず、代行部66がプレイヤAの代わりにゲームプレイを行う場合に実行される処理について説明する。
この場合、図13のステップS215においてキャラクタ50Aに所定の攻撃動作(例えば特殊技)を開始させるとの決定がAIによってなされたか否かを制御部31は判定する。そして、キャラクタ50Aに所定の攻撃動作を開始させるとの決定がAIによってなされたと判定された場合、制御部31は対戦ゲームの進行を一時停止させる。すなわち、制御部31はゲーム状況データの更新を一時的に抑止する。
またこの場合、図7のステップS107において、制御部31は、例えば図17に示すようなゲーム画面をゲーム装置Aの表示部37に表示させる。なお、この場合、例えば「プレイヤAがコマンドを入力中です。」のようなメッセージをゲーム装置Bのゲーム画面に表示させるようにするとよい。
対戦ゲームの進行が一時停止された場合、ゲーム装置Aの制御部31は制限時間が経過したか否かを監視する。制限時間が経過した場合、制御部31は対戦ゲームの進行を再開させる。すなわち、制御部31はゲーム状況データの更新を再開する。またこの場合、制御部31はキャラクタ50Aに所定の攻撃動作(例えば特殊技)を行わせる。
なお、上記では、所定の攻撃動作のためのゲーム操作を制限時間内に行うようにプレイヤAに案内する場合に、対戦ゲームの進行を一時停止することとして説明した。しかしながら、対戦ゲームの進行を一時停止することは必須ではない。すなわち、対戦ゲームの進行を一時停止することなく、所定の攻撃動作のためのゲーム操作を行うようにプレイヤAに案内するようにしてもよい。例えば、キャラクタ50Aがキャラクタ50Bの攻撃を防御し続けている状態において、AIによって、キャラクタ50Bの攻撃が途切れたらキャラクタ50Aに所定の攻撃動作を行わせようとの決定がなされたような場合には、対戦ゲームの進行を一時停止することなく、所定の攻撃動作のためのゲーム操作を行うようにプレイヤAに案内するようにしてもよい。
代行部66がプレイヤBの代わりにゲームプレイを行う場合に実行される処理についても説明する。
この場合、図13のステップS218においてキャラクタ50Bに所定の攻撃動作(例えば特殊技)を開始させるとの決定がAIによってなされたか否かを制御部31は判定する。キャラクタ50Bに所定の攻撃動作を開始させるとの決定がAIによってなされたと判定された場合、制御部31は対戦ゲームの進行を一時停止させる。
またこの場合、図7のステップS105において、制御部31は、図17に示すようなゲーム画面をゲーム装置Bに表示させるためのデータをゲーム装置Bに送信する。そして、図7のステップS108では、図17に示すようなゲーム画面がゲーム装置Bの表示部37に表示される。なお、この場合、例えば「プレイヤBがコマンドを入力中です。」のようなメッセージをゲーム装置Aのゲーム画面に表示させるようにするとよい。
対戦ゲームの進行が一時停止された場合、制限時間が経過したか否かが監視される。この監視はゲーム装置Aの制御部31によって行われる。制限時間が経過したと判定された場合、ゲーム装置Aの制御部31は対戦ゲームの進行を再開させるとともに、キャラクタ50Bに所定の攻撃動作(例えば特殊技)を行わせる。
上記の監視はゲーム装置Bの制御部31によって行われるようにしてもよい。この場合、制限時間が経過したら、ゲーム装置Bの制御部31は、その旨をゲーム装置Aの制御部31に知らせるためのデータをゲーム装置Aに送信する。このデータを受信したゲーム装置Aの制御部31は対戦ゲームの進行を再開させるとともに、キャラクタ50Bに所定の攻撃動作(例えば特殊技)を行わせる。
なお、代行部66がプレイヤBの代わりにゲームプレイを行う場合においても、対戦ゲームの進行を一時停止することなく、所定の攻撃動作のためのゲーム操作を行うようにプレイヤBに案内するようにしてもよい。
[第4実施形態]
本発明の第4実施形態に係るゲームシステムについて説明する。基本的に、第4実施形態に係るゲームシステムは第1実施形態と同様の構成を有する。第4実施形態に係るゲームシステム10は第3実施形態の変形例に相当する。
ここで、代行部66がプレイヤAの代わりにゲームプレイを行っている場合を想定する。第4実施形態に係るゲームシステム10では、第3実施形態と同様、代行部66がキャラクタ50Aに所定の攻撃動作(例えば特殊技)を開始させようとする場合に対戦ゲームの進行が一時停止される。また、所定の攻撃動作のためのゲーム操作を制限時間(例えば2秒間)内に行うようにプレイヤAに案内される。すなわち、例えば図17に示したようなゲーム画面がゲーム装置Aの表示部37に表示される。
そして、制限時間が経過した場合、対戦ゲームの進行が再開されるとともに、キャラクタ50Aが攻撃動作を開始する。第4実施形態に係るゲームシステム10では、所定の攻撃動作のためのゲーム操作を制限時間内にプレイヤAが行うことができたか否かによって、キャラクタ50Aが開始する攻撃動作が変わるようになっている。
すなわち、第4実施形態に係るゲームシステム10では、所定の攻撃動作のためのゲーム操作を制限時間内にプレイヤAが行うことができたか否かに基づいて、該所定の攻撃動作(例えば特殊技)と、該所定の攻撃動作とは異なる攻撃動作とのいずれか一方を、代行部66によって操作されるキャラクタ50Aが開始するようになっている。
例えば、所定の攻撃動作(例えば特殊技)のためのゲーム操作を制限時間内にプレイヤAが行うことができなかった場合には、該所定の動作をキャラクタ50Aが行う。一方、所定の攻撃動作のためのゲーム操作を制限時間内にプレイヤAが行うことができた場合には、該所定の攻撃動作よりも大きなダメージをキャラクタ50Bに与えることが可能な攻撃動作をキャラクタ50Aが行う。例えば図18に示すように、通常のエネルギー弾53よりも大きいエネルギー弾74を発射するような攻撃動作をキャラクタ50Aは行う。
上記のようにすれば、代行部66がキャラクタ50Aを操作している場合であっても、プレイヤAもキャラクタ50Aの操作に関与させることが可能になる。
第4実施形態に係るゲームシステム10で実行される処理について説明する。まず、代行部66がプレイヤAの代わりにゲームプレイを行う場合に実行される処理について説明する。なお、対戦ゲームの進行が一時停止され、かつ、図17に示したようなゲーム画面がゲーム装置Aの表示部37に表示されるまでの処理は第3実施形態と同様である。ここでは、対戦ゲームの進行が一時停止された後の処理について説明する。
対戦ゲームの進行が一時停止された後、ゲーム装置Aの制御部31は制限時間が経過したか否かを監視する。制限時間が経過した場合、制御部31は、所定の攻撃動作(特殊技)のためのゲーム操作をプレイヤAが制限時間内に行うことができたか否かを判定する。
所定の攻撃動作(特殊技)のためのゲーム操作をプレイヤAが制限時間内に行うことができたと判定された場合、制御部31は対戦ゲームの進行を再開させるとともに、キャラクタ50Aに、特殊技(エネルギー弾53)よりも大きいエネルギー弾74を発射するような攻撃動作を行わせる。一方、所定の攻撃動作(特殊技)のためのゲーム操作をプレイヤAが制限時間内に行うことができなかったと判定された場合、制御部31は対戦ゲームの進行を再開させるとともに、キャラクタ50Aに該所定の攻撃動作(特殊技)を行わせる。
代行部66がプレイヤBの代わりにゲームプレイを行う場合に実行される処理についても説明する。なお、対戦ゲームの進行が一時停止され、かつ、図17に示したようなゲーム画面がゲーム装置Bの表示部37に表示されるまでの処理は第3実施形態と同様である。ここでは、対戦ゲームの進行が一時停止された後の処理について説明する。
対戦ゲームの進行が一時停止された後、制限時間が経過したか否かが監視される。この監視はゲーム装置Aの制御部31によって行われる。また、ゲーム装置Aの制御部31は、ゲーム装置Bから受信した操作データに基づいて、所定の攻撃動作(特殊技)のためのゲーム操作をプレイヤBが制限時間内に行うことができたか否かを判定する。
所定の攻撃動作(特殊技)のためのゲーム操作をプレイヤBが制限時間内に行うことができたと判定された場合、制御部31は対戦ゲームの進行を再開させるとともに、キャラクタ50Bに、特殊技(エネルギー弾53)よりも大きいエネルギー弾74を発射するような攻撃動作を行わせる。一方、所定の攻撃動作(特殊技)のためのゲーム操作をプレイヤBが制限時間内に行うことができなかったと判定された場合、制御部31は対戦ゲームの進行を再開させるとともに、キャラクタ50Bに該所定の攻撃動作(特殊技)を行わせる。
なお、上記の監視はゲーム装置Bの制御部31によって行われるようにしてもよい。この場合、制限時間が経過したら、ゲーム装置Bの制御部31は、その旨をゲーム装置Aの制御部31に知らせるためのデータをゲーム装置Aに送信するようにすればよい。そして、このデータを受信したゲーム装置Aの制御部31は、ゲーム装置Bから受信した操作データに基づいて、所定の攻撃動作のためのゲーム操作をプレイヤBが制限時間内に行うことができたか否かを判定するようにしてもよい。
また、所定の攻撃動作のためのゲーム操作をプレイヤBが制限時間内に行うことができたか否かの判定もゲーム装置Bの制御部31によって行われるようにしてもよい。この場合、ゲーム装置Bの制御部31は、所定の攻撃動作のためのゲーム操作をプレイヤBが制限時間内に行うことができたか否かを判定し、その判定結果を示すデータをゲーム装置Aに送信するようにすればよい。
なお、第4実施形態においても、第3実施形態と同様、対戦ゲームの進行を一時停止することなく、所定の攻撃動作のためのゲーム操作を行うようにプレイヤA又はプレイヤBに案内するようにしてもよい。
[第5実施形態]
本発明の第5実施形態に係るゲームシステムについて説明する。基本的に、第5実施形態に係るゲームシステムは第1実施形態と同様の構成を有する。
第5実施形態に係るゲームシステム10は、プレイヤA,Bの一方の代わりにゲームプレイを行う場合の代行部66の強さ(言い換えれば、ゲームの巧さ、技量の高さ、又は対戦相手から見た手強さ)を変える点で第1実施形態とは異なる。
図19は、第5実施形態に係るゲームシステム10で実現される機能を示す機能ブロック図である。第5実施形態に係るゲームシステム10は強さ情報設定部68を含む点で第1実施形態(図10参照)とは異なる。また、第5実施形態における代行部66の機能も第1実施形態と異なる。以下では、代行部66及び強さ情報設定部68を主に説明する。
まず、代行部66について説明する。代行部66は、強さ情報に基づいて、プレイヤA,Bの一方の代わりにゲームプレイを行う。「強さ情報」は、プレイヤA,Bの一方の代わりにゲームプレイを行う代行部66の強さに関する情報である。言い換えれば、「強さ情報」は、代行部66がキャラクタ50A又はキャラクタ50Bを操作する場合のキャラクタ50A又はキャラクタ50Bの強さに関する情報である。
第5実施形態の場合、例えば図20に示すような強さレベルが「強さ情報」として用いられる。図20に示すように強さレベルは1〜4の数値をとる。値が大きいほど、強いことを示す。また第5実施形態の場合、それぞれの強さレベルに対応するAI(行動決定プログラム)が記憶部60に記憶される。
次に、強さ情報設定部68について説明する。強さ情報設定部68は強さ情報を設定する。以下では、強さ情報設定部68の動作について四つの具体例を説明する。
(1)強さ情報設定部68は、対戦が開始されてから代行開始条件が満足されたと判定されるまでに経過した時間に基づいて、強さ情報を設定する。
例えば、図21に示すような情報に基づいて、強さ情報設定部68は強さ情報を設定する。図21に示す情報は、対戦が開始されてからの経過時間(t)と、強さレベルとの対応関係を示す情報である。図21に示す情報では、経過時間(t)が短いほど、強さが強くなるようになっている。
この場合に実行される処理の一例について説明する。ここでは、代行部66がプレイヤAの代わりにゲームプレイを行う場合を想定する。すなわち、図11のステップS205においてプレイヤAの代行フラグが「1」に変更された場合を想定する。
図11のステップS205においてプレイヤAの代行フラグが「1」に変更された場合、制御部31(強さ情報設定部68)は対戦が開始されてからの経過時間(t)を取得し、取得された経過時間(t)に対応する強さレベルを図21に示す情報に基づいて取得する。そして、図13のステップS215において、制御部31(代行部66)は、取得された強さレベルに対応するAI(行動決定プログラム)を使用する。
なお、図12のステップS211においてプレイヤBの代行フラグが「1」に変更された場合にも上記と同様の処理が実行される。
上記のようにすれば、一方のプレイヤの代わりにゲームプレイを行う代行部66の強さ(言い換えれば、一方のプレイヤの代わりに代行部66がゲームプレイを行う場合に用いられるAI)を、代行開始条件が満足されたと判定されるまでの経過時間に基づいて変えることが可能になる。一般的に、経過時間が短いほど、一方のプレイヤが他方のプレイヤに大きくリードされていることになる。この点、図21に示す情報によれば、一方のプレイヤが他方のプレイヤに大きくリードされているほど、該一方のプレイヤの代わりにゲームプレイを行う代行部66の強さが強くなる。
(2)強さ情報設定部68は、代行開始条件が満足されたと判定された場合のキャラクタ50A,50Bの間のヒットポイントの差(絶対値)に基づいて、強さ情報を設定するようにしてもよい。
例えば、図22に示すような情報に基づいて、強さ情報設定部68は強さ情報を設定するようにしてもよい。図22に示す情報は、キャラクタ50A,50Bの間のヒットポイントの差(絶対値)と、強さレベルとの対応関係を示す情報である。なお、図22における「P1」,「P2」は所定値を示し、「P2」は「P1」よりも大きい値を示す。図22に示す情報では、ヒットポイントの差が大きいほど、強さが強くなるようになっている。
この場合に実行される処理の一例について説明する。この場合、図11のステップS204において、制御部31は、キャラクタ50A,50Bの間のヒットポイントの差(絶対値)が基準値(P1)以上であるか否かを判定する。そして、図11のステップS205においてプレイヤAの代行フラグが「1」に変更された場合、制御部31(強さ情報設定部68)は、キャラクタ50A,50Bの間のヒットポイントの差(絶対値)に対応する強さレベルを図22に示す情報に基づいて取得する。また、図13のステップS215において、制御部31(代行部66)は、取得された強さレベルに対応するAI(行動決定プログラム)を使用する。
なお、図12のステップS210においてもステップS204と同様の処理が実行される。また、図12のステップS211においてプレイヤBの代行フラグが「1」に変更された場合には、プレイヤAの代行フラグが「1」に変更された場合と同様の処理が実行される。
上記のようにすれば、一方のプレイヤの代わりにゲームプレイを行う代行部66の強さ(言い換えれば、一方のプレイヤの代わりに代行部66がゲームプレイを行う場合に用いられるAI)を、代行開始条件が満足されたと判定された場合のキャラクタ50A,50Bの間のヒットポイントの差(絶対値)に基づいて変えることが可能になる。一般的に、キャラクタ50A,50Bの間のヒットポイントの差が大きいほど、一方のプレイヤが他方のプレイヤに大きくリードされていることになる。この点、図22に示す情報によれば、一方のプレイヤが他方のプレイヤに大きくリードされているほど、該一方のプレイヤの代わりにゲームプレイを行う代行部66の強さが強くなる。
(3)強さ情報設定部68は、対戦が開始されてから代行開始条件が満足されたと判定されるまでに経過した時間と、代行開始条件が満足されたと判定された場合のキャラクタ50A,50Bの間のヒットポイントの差(絶対値)と、に基づいて、強さ情報を設定するようにしてもよい。
この場合、図21及び図22に示す情報を組み合わせたような情報を用いるようにすればよい。例えば、図23に示すような情報に基づいて、強さ情報設定部68は強さ情報を設定するようにすればよい。図23に示す情報は、経過時間とヒットポイントの差との組み合わせと、強さレベルとの対応関係を示す情報である。図23における「P1」及び「P2」は図22と同様である。
この場合に実行される処理の一例について説明する。この場合、図11のステップS202において、制御部31は、対戦が開始されてからの経過時間(t)が基準時間(10秒)以内であるか否かを判定する。また、図11のステップS204において、制御部31は、経過時間(t)が「0秒≦t≦5秒」を満足する場合に、キャラクタ50A,50Bの間のヒットポイントの差(Δp;絶対値)が基準値(P2)以上であるか否かを判定し、経過時間(t)が「5秒<t≦10秒」を満足する場合に、キャラクタ50A,50Bの間のヒットポイントの差(Δp;絶対値)が基準値(P1)以上であるか否かを判定する。
そして、図11のステップS205においてプレイヤAの代行フラグが「1」に変更された場合、制御部31(強さ情報設定部68)は、経過時間(t)とヒットポイントの差(Δp)との組み合わせに対応する強さレベルを図23に示す情報に基づいて取得する。また、図13のステップS215において、制御部31(代行部66)は、取得された強さレベルに対応するAI(行動決定プログラム)を使用する。
なお、図12のステップS208においてもステップS202と同様の処理が実行され、図12のステップS210においてもステップS204と同様の処理が実行される。また、図12のステップS211においてプレイヤBの代行フラグが「1」に変更された場合には、プレイヤAの代行フラグが「1」に変更された場合と同様の処理が実行される。
(4)強さ情報設定部68は、プレイヤA,Bの間の技量の差に基づいて、強さ情報を設定するようにしてもよい。
この場合、例えば図24に示すような戦績データが記憶部60に記憶される。図24に示す戦績データは各プレイヤの過去の戦績を示すデータである。図24に示す戦績データは「プレイヤID」、「レベル」、及び「戦績」フィールドを含んでいる。「プレイヤID」フィールドには、プレイヤを一意に識別するための識別情報(プレイヤID)が格納される。「レベル」フィールドには、プレイヤの技量の高さを示すレベルが格納される。プレイヤのレベルはプレイヤの過去の戦績に基づいて設定される。例えば、プレイヤの勝利回数が多くなると(又は、プレイヤの勝率が高くなると)、プレイヤのレベルが高くなる。「戦績」フィールドには、プレイヤの過去の戦績が格納される。
この場合に実行される処理の一例について説明する。ここでは、代行部66がプレイヤAの代わりにゲームプレイを行う場合を想定する。すなわち、図11のステップS205においてプレイヤAの代行フラグが「1」に変更された場合を想定する。
この場合、制御部31は、プレイヤA,Bの各々の過去の戦績に基づいて、プレイヤA,Bの間のゲーム技量の差に関する情報を取得する。例えば、制御部31はプレイヤA,Bの間のレベルの差を戦績データに基づいて取得する。この場合、例えば、プレイヤA,Bの間のレベルの差は、プレイヤBのレベルがプレイヤAのレベルよりも高い場合に正の値となるようにして取得される。すなわち、制御部31は、プレイヤBのレベルからプレイヤAのレベルを引くことによって、プレイヤA,Bの間のレベルの差を算出する。なお、プレイヤA,Bの間のゲーム技量の差に関する情報として、プレイヤA,Bの間の勝率(又は勝利回数)の差を取得するようにしてもよい。
プレイヤA,Bの間のゲーム技量の差に関する情報が取得された場合、制御部31(強さ情報設定部68)はプレイヤA,Bの間のゲームの技量の差に対応する強さ情報を取得する。例えば図25に示す情報に基づいて、制御部31はプレイヤA,Bの間のレベルの差に対応する強さレベルを取得する。図25に示す情報は、レベルの差(ゲームの技量の差に関する情報)と、強さレベル(強さ情報)との対応関係を示す情報である。図25における「L」は所定値を示す。図25に示す情報では、レベルの差が大きいほど、強さが強くなるように設定されている。つまり、プレイヤBのレベルがプレイヤAのレベルよりも高いほど、プレイヤAの代わりにゲームプレイを行う代行部66の強さが強くなるようになっている。
図25に示す情報に基づいて、プレイヤA,Bの間のレベルの差に対応する強さレベルが取得された場合、図13のステップS215において、制御部31(代行部66)は、取得された強さレベルに対応するAI(行動決定プログラム)を使用する。
また、代行部66がプレイヤBの代わりにゲームプレイを行う場合、すなわち、図12のステップS211においてプレイヤBの代行フラグが「1」に変更された場合にも同様の処理が実行される。
上記のようにすれば、プレイヤの間のゲーム技量の差に基づいて、一方のプレイヤの代わりにゲームプレイを行う代行部66の強さ(言い換えれば、一方のプレイヤの代わりに代行部66がゲームプレイを行う場合に用いられるAI)を変えることが可能になる。例えば、プレイヤの間のゲーム技量の差が大きいほど、一方のプレイヤの代わりにゲームプレイを行う代行部66の強さを強くすることが可能になる。
[第6実施形態]
本発明の第6実施形態に係るゲームシステムについて説明する。基本的に、第6実施形態に係るゲームシステムは第1実施形態と同様の構成を有する。
第1実施形態では、代行開始条件が満足された場合、代行部66によるゲームプレイが対戦が終了するまで継続するようになっていた。これに対し、第6実施形態に係るゲームシステム10では、代行終了条件が満足されるまでの間に限って、代行部66によるゲームプレイが継続するようになっている。すなわち、代行終了条件が満足されると、代行部66によるゲームプレイが終了し、プレイヤA又はプレイヤBによるゲームプレイが再開されるようになっている。さらに、第6実施形態に係るゲームシステム10は代行終了条件を変える点にも特徴がある。
図26は、第6実施形態に係るゲームシステム10で実現される機能を示す機能ブロック図である。第6実施形態に係るゲームシステム10は代行終了条件設定部69を含む点で第1実施形態(図10参照)とは異なる。また、第6実施形態における代行部66の機能は第1実施形態と異なる。以下では、代行部66及び代行終了条件設定部69について主に説明する。
まず、代行部66について説明する。代行部66は、代行終了条件が満足されるまで、プレイヤA,Bの一方の代わりにゲームプレイを行う。
例えば、「代行終了条件」は、代行部66によるゲームプレイが開始されてからの経過時間が基準時間(以下「代行時間」と記載する。)に達したか否かの条件である。このような代行終了条件が設定された場合、代行部66によるゲームプレイは、代行部66によるゲームプレイが開始されてから代行時間が経過した場合に終了する。
また、「代行終了条件」は、対戦相手のキャラクタのヒットポイントの値が基準範囲内の値になったか否かの条件であってもよい。この場合の「基準範囲」としては、零に近い数値範囲が設定される。このような代行終了条件が設定された場合、プレイヤAの代わりにゲームプレイを行う代行部66によるゲームプレイは、キャラクタ50Bのヒットポイントが基準範囲内の値になった場合に終了し、プレイヤBの代わりにゲームプレイを行う代行部66によるゲームプレイは、キャラクタ50Aのヒットポイントが基準範囲内の値になった場合に終了する。
代行終了条件設定部69について説明する。代行終了条件設定部69は代行終了条件を設定する。以下では、代行終了条件設定部69の動作について四つの具体例を説明する。
(1)代行終了条件設定部69は、対戦が開始されてから代行開始条件が満足されたと判定されるまでの経過時間に基づいて、代行終了条件を設定する。
例えば、図27に示すような情報に基づいて、代行終了条件設定部69は代行終了条件を設定する。図27に示す情報は、対戦が開始されてからの経過時間(t)と、代行終了条件との対応関係を示す情報である。図27において、「代行終了条件A」は「代行終了条件B」よりも満足され難い条件を示す。すなわち、図27に示す情報では、経過時間(t)が短いほど、代行部66によるゲームプレイが終了し難くなるような代行終了条件が設定される。
例えば、代行終了条件が、代行部66によるゲームプレイが開始してからの経過時間が代行時間に達したか否かの条件である場合、「代行終了条件A」では「代行終了条件B」よりも代行時間が長く設定される。例えば、「代行終了条件A」では代行時間が「30秒」に設定され、「代行終了条件B」では代行時間が「15秒」に設定される。
また、代行終了条件が、対戦相手のキャラクタのヒットポイントの値が基準範囲内の値になったか否かの条件である場合、「代行終了条件A」では、「代行終了条件B」よりも、より零に近い基準範囲が設定される。例えば、「代行終了条件A」では基準範囲が「所定値Pa以下」に設定され、「代行終了条件B」では基準範囲が「所定値Pb以下」(Pa<Pb)に設定される。
上記のようにすれば、代行開始条件が満足されたと判定されるまでの経過時間(t)に基づいて、代行終了条件を変えることが可能になる。一般的に、経過時間(t)が短いほど、一方のプレイヤが他方のプレイヤに大きくリードされていることになる。この点、図27に示す情報によれば、一方のプレイヤが他方のプレイヤに大きくリードされているほど、代行部66が該一方のプレイヤの代わりにゲームプレイを行う期間が長くなりやすくなっている。
この実施形態で実行される処理の一例について説明する。ここでは、代行部66がプレイヤAの代わりにゲームプレイを行う場合を想定する。すなわち、図11のステップS205においてプレイヤAの代行フラグが「1」に変更された場合を想定する。
この場合、制御部31(代行終了条件設定部69)は対戦が開始されてからの経過時間(t)を取得し、取得された経過時間(t)に対応する代行終了条件を図27に示す情報に基づいて取得する。そして、制御部31は代行終了条件が満足されたか否かの監視を開始する。代行終了条件が満足されたと判定された場合、制御部31はプレイヤAの代行フラグを「0」に戻す。これによって、代行部66によるゲームプレイが終了し、プレイヤAのゲームプレイが再開される。
なお、代行部66がプレイヤBの代わりにゲームプレイを行う場合、すなわち、図12のステップS211においてプレイヤBの代行フラグが「1」に変更された場合にも上記と同様の処理が実行される。
(2)代行終了条件設定部69は、代行開始条件が満足されたと判定された場合のキャラクタ50A,50Bの間のヒットポイントの差(絶対値)に基づいて、代行終了条件を設定するようにしてもよい。
例えば、図28に示すような情報に基づいて、代行終了条件設定部69は代行終了条件を設定するようにしてもよい。図28に示す情報は、キャラクタ50A,50Bの間のヒットポイントの差(絶対値)と、代行終了条件との対応関係を示す情報である。なお、図28における「P1」及び「P2」は図22と同様であり、「代行終了条件A」及び「代行終了条件B」は図27と同様である。
(3)代行終了条件設定部69は、対戦が開始されてから代行開始条件が満足されたと判定されるまでの経過時間と、代行開始条件が満足されたと判定された場合のキャラクタ50A,50Bの間のヒットポイントの差(絶対値)とに基づいて、代行終了条件を設定するようにしてもよい。
この場合、図27及び図28に示す情報を組み合わせたような情報を用いるようにすればよい。例えば、図29に示すような情報に基づいて、代行終了条件設定部69は代行終了条件を設定するようにすればよい。図29に示す情報は、経過時間とヒットポイントの差との組み合わせと、代行終了条件との対応関係を示す情報である。なお、図29における「P1」及び「P2」は図22と同様であり、「代行終了条件A」及び「代行終了条件B」は図27と同様である。
(4)代行終了条件設定部69は、プレイヤA,Bの間の技量の差に基づいて、代行終了条件を設定するようにしてもよい。
この実施形態では、例えば図24に示したような戦績データが記憶部60に記憶される。また、この実施形態では下記に説明するような処理が実行される。なお、ここでは、代行部66がプレイヤAの代わりにゲームプレイを行う場合を想定する。つまり、図11のステップS205においてプレイヤAの代行フラグが「1」に変更された場合を想定する。
この場合、制御部31は、プレイヤA,Bの各々の過去の戦績に基づいて、プレイヤA,Bの間のゲーム技量の差に関する情報を取得する。例えば、制御部31はプレイヤA,Bの間のレベルの差を戦績データに基づいて取得する。この場合、例えば、プレイヤA,Bの間のレベルの差は、プレイヤBのレベルがプレイヤAのレベルよりも高い場合に正の値となるようにして取得される。つまり、制御部31は、プレイヤBのレベルからプレイヤAのレベルを引くことによって、プレイヤA,Bの間のレベルの差を算出する。なお、プレイヤA,Bの間のゲーム技量の差に関する情報として、プレイヤA,Bの間の勝率(又は勝利回数)の差を取得するようにしてもよい。
プレイヤA,Bの間のゲーム技量の差に関する情報が取得された場合、制御部31(代行終了条件設定部69)はプレイヤA,Bの間のゲームの技量の差に対応する代行終了条件を取得する。例えば図30に示す情報に基づいて、制御部31はプレイヤA,Bの間のレベルの差に対応する代行終了条件を取得する。図30に示す情報は、レベルの差(ゲームの技量の差に関する情報)と、代行終了条件との対応関係を示す情報である。図30における「L」は図25と同様であり、「代行終了条件A」及び「代行終了条件B」は図27と同様である。図30に示す情報では、レベルの差が大きいほど、代行部66によるゲームプレイが終了し難くなるように、代行終了条件が設定されている。つまり、プレイヤBのレベルがプレイヤAのレベルよりも高いほど、プレイヤAの代わりに代行部66が行うゲームプレイが終了し難くなるように、代行終了条件が設定される。
代行終了条件が取得された場合、制御部31は代行終了条件が満足されたか否かの監視を開始する。そして、代行終了条件が満足されたと判定された場合、制御部31はプレイヤAの代行フラグを「0」に戻す。これによって、代行部66によるゲームプレイが終了し、プレイヤAのゲームプレイが再開される。
なお、代行部66がプレイヤBの代わりにゲームプレイを行う場合、すなわち、図12のステップS211においてプレイヤBの代行フラグが「1」に変更された場合にも上記と同様の処理が実行される。
上記のようにすれば、プレイヤの間のゲーム技量の差に基づいて、代行終了条件を変えることが可能になる。図30に示す情報によれば、プレイヤの間のゲーム技量の差が大きいほど、代行部66が一方のプレイヤの代わりにゲームプレイを行う期間が長くなりやすくなる。
[第7実施形態]
本発明の第7実施形態に係るゲームシステムについて説明する。基本的に、第7実施形態に係るゲームシステムは第1実施形態と同様の構成を有する。
第7実施形態に係るゲームシステム10は、一方のプレイヤの技量が他方のプレイヤの技量よりも大きく劣る場合に限って、代行部66が該一方のプレイヤの代わりにゲームプレイを行う点で第1実施形態とは異なる。
第7実施形態における代行開始条件は、対戦が開始されてからの経過時間と、キャラクタ50A,50Bの間のヒットポイントの差とに関する条件とともに、プレイヤA,Bの間の技量の差に関する条件を含む。
例えば、代行部66がプレイヤAの代わりにゲームプレイを行うための代行開始条件は下記のような条件を含む。
・初期期間内において上記状態Aになった。
・プレイヤAの技量がプレイヤBの技量よりも大きく劣る(プレイヤA,Bの間の技量の差が基準差以上であり、かつ、プレイヤAの技量がプレイヤBの技量よりも低い)。
また例えば、代行部66がプレイヤBの代わりにゲームプレイを行うための代行開始条件は下記の条件を含む。
・初期期間内において上記状態Bになった。
・プレイヤBの技量がプレイヤAの技量よりも大きく劣る(プレイヤA,Bの間の技量の差が基準差以上であり、かつ、プレイヤBの技量がプレイヤAの技量よりも低い)。
第7実施形態では、例えば図24に示したような戦績データが記憶部60に記憶される。また第7実施形態では、例えば図11のステップS205,S206の処理を実行する前に、制御部31がプレイヤAの技量がプレイヤBの技量よりも大きく劣るか否かを判定する。
具体的には、制御部31は、プレイヤA,Bの各々の過去の戦績に基づいて、プレイヤA,Bのゲームの技量に関する情報を取得する。例えば、制御部31はプレイヤA,Bのレベルを戦績データから取得する。そして、制御部31はプレイヤAのレベルがプレイヤBのレベルよりも低いか否かを判定する。また、制御部31はプレイヤA,Bとの間のレベルの差(絶対値)が基準値以上であるか否かを判定する。この場合の「基準値」は、プレイヤA,Bの間のレベルの差が大きいか否かを判定するために設定されるため、「基準値」は比較的大きい値に設定される。
プレイヤAのレベルがプレイヤBのレベルよりも低く、かつ、プレイヤA,Bの間の技量の差が基準差以上であると判定された場合、制御部31はプレイヤAの技量がプレイヤBの技量よりも大きく劣ると判定する。この場合、制御部31は図11のステップS205,S206の処理を実行する。一方、プレイヤAの技量がプレイヤBの技量よりも大きく劣ると判定されなかった場合、制御部31は図11のステップS205,S206の処理を実行しない。
また第7実施形態では、例えば図12のステップS211,S212の処理を実行する前に、制御部31がプレイヤBの技量がプレイヤAの技量よりも大きく劣るか否かを判定する。この判定のための処理は、プレイヤAの技量がプレイヤBの技量よりも大きく劣るか否かを判定するための処理と同様である。プレイヤBの技量がプレイヤAの技量よりも大きく劣ると判定された場合、制御部31は図12のステップS211,S212の処理を実行する。一方、プレイヤBの技量がプレイヤAの技量よりも大きく劣ると判定されなかった場合、制御部31は図12のステップS211,S212の処理を実行せずに、図13のステップS213の処理を実行する。
プレイヤA,Bの間の技量の差が大きくない場合、一方のプレイヤが他のプレイヤのキャラクタにほとんどダメージを与えることなく比較的短い時間内に敗れてしまうことがないように考慮する必要性は低い。この点、第7実施形態に係るゲームシステム10によれば、一方のプレイヤの技量が他方のプレイヤの技量よりも大きく劣る場合に限って、代行部66が該一方のプレイヤの代わりにゲームプレイを行うようになる。
[第8実施形態]
本発明の第8実施形態に係るゲームシステムについて説明する。基本的に、第8実施形態に係るゲームシステムは第1実施形態と同様の構成を有する。
第8実施形態に係るゲームシステム10では、代行部66がプレイヤAの代わりにゲームプレイを行う場合に、プレイヤAと所定の関係を有するプレイヤが過去に行ったゲームプレイに基づいて生成されたプログラム又はデータに基づいて、代行部66がゲームプレイを行う。同様に、代行部66がプレイヤBの代わりにゲームプレイを行う場合に、プレイヤBと所定の関係を有するプレイヤが過去に行ったゲームプレイに基づいて生成されたプログラム又はデータに基づいて、代行部66がゲームプレイを行う。この点で第9実施形態に係るゲームシステム10は第1実施形態とは異なる。
なお、以下では、代行部66がプレイヤAの代わりにゲームプレイを行う場合について主に説明する。代行部66がプレイヤBの代わりにゲームプレイを行う場合も、代行部66がプレイヤAの代わりにゲームプレイを行う場合と同様である。
プレイヤAと所定の関係を有するプレイヤ(ここでは「プレイヤC」と記載する。)とは、例えば、プレイヤAと友人関係を有するプレイヤ、又はプレイヤAと過去に対戦を行ったことのあるプレイヤである。
例えば、プレイヤCは、プレイヤAと友人関係を有するプレイヤであって、かつ、プレイヤAよりも技量の高いプレイヤである。または、プレイヤCは、プレイヤAと過去に対戦を行ったことのあるプレイヤであって、かつ、プレイヤAよりも技量の高いプレイヤである。また、この場合、プレイヤCが過去に行ったゲームプレイに基づいて生成されたプログラム又はデータとは、例えば、プレイヤCが過去に行ったゲームプレイに基づいて生成されたAI(すなわち、プレイヤCのゲームプレイの傾向や癖が反映されたAI)である。この場合、プレイヤCのゲームプレイの傾向や癖が反映されたAIに従って代行部66によるゲームプレイが行われるため、あたかもプレイヤCによってゲームプレイが行われているかのようになる。
なお、ゲームシステム10で実行される格闘ゲームが、各プレイヤが自分のキャラクタを育成し、育成したキャラクタを操作して他のプレイヤと対戦するようなゲームである場合、プレイヤCが過去に行ったゲームプレイに基づいて生成されたプログラム又はデータとは、例えば、プレイヤCが育成したキャラクタのデータであってもよい。この場合、代行部66は、キャラクタ50Aの代わりに、プレイヤCが育成したキャラクタを操作することになる。なお、この場合、プレイヤCは、プレイヤAと友人関係を有するプレイヤであって、かつ、プレイヤAが育成しているキャラクタ50Aよりも強いキャラクタを育成しているプレイヤである。あるいは、プレイヤCは、プレイヤAと過去に対戦したことがあるプレイヤであって、かつ、プレイヤAが育成しているキャラクタ50Aよりも強いキャラクタを育成しているプレイヤである。
ここで、第8実施形態に係るゲームシステム10で記憶されるデータについて説明する。第8実施形態に係るゲームシステム10では、プレイヤ同士の関係(例えば友人関係又は/及び対戦履歴)を示すデータがゲーム管理装置20の補助記憶部23に記憶される。また、プレイヤの技量を示すデータ(例えば図24に示した戦績データ)もゲーム管理装置20の補助記憶部23に記憶される。さらに、各プレイヤの過去のゲームプレイに基づいて生成されたプログラム又はデータもゲーム管理装置20の補助記憶部23に記憶される。これらのデータ又はプログラムに基づいて、代行部66はプレイヤAの代わりにゲームプレイを行うことになる。
第8実施形態に係るゲームシステム10で実行される処理について説明する。第8実施形態に係るゲームシステム10では、代行部66がプレイヤAの代わりにゲームプレイを行う場合、プレイヤAと所定の関係を有するプレイヤのうちのいずれかが選択される。
例えば、プレイヤAと所定の関係を有するプレイヤのうちのいずれかが確率情報に基づいて選択される。なお、この確率情報では、プレイヤAと所定の関係を有する各プレイヤが選択される確率が、そのプレイヤとプレイヤAとの関係の強さに基づいて設定される。この場合、プレイヤAとの関係がより強いプレイヤほど選択されやすくなるように、確率情報が設定される。例えば、プレイヤAと友人関係を有しないが、プレイヤAと過去に対戦を行ったことがあるプレイヤと、プレイヤAと友人関係を有するプレイヤとが存在する場合、後者のプレイヤは前者のプレイヤに比べて、選択される確率が高く設定される。
プレイヤAと所定の関係を有するプレイヤのうちのいずれかが選択された場合、選択されたプレイヤの過去に行ったゲームプレイに基づいて生成されたプログラム又はデータが取得され、そのプログラム又はデータに基づいて代行部66によるゲームプレイが実行される。例えば、選択されたプレイヤのゲームプレイの傾向や癖が反映されたAIが取得され、そのAIに基づいて代行部66によるゲームプレイが実行される。
第8実施形態に係るゲームシステム10によれば、比較的短い時間内に対戦相手のキャラクタにダメージをほとんど与えることなく敗れてしまうことによるプレイヤの不満を軽減することを、プレイヤ同士の関係(例えば友人関係等)を考慮して実現することが可能になる。
[第9実施形態]
本発明の第9実施形態に係るゲームシステムについて説明する。基本的に、第9実施形態に係るゲームシステムは第1実施形態と同様の構成を有する。
第9実施形態に係るゲームシステム10では、代行部66がプレイヤAの代わりにゲームプレイを行う場合に、代行部66はキャラクタ50Aの代わりに他のキャラクタを操作する。例えば、キャラクタ50Aよりも強いキャラクタを代行部66は操作する。
また、代行部66がプレイヤBの代わりにゲームプレイを行う場合に、代行部66はキャラクタ50Bの代わりに他のキャラクタを操作する。例えば、キャラクタ50Bよりも強いキャラクタを代行部66は操作する。
なお、第9実施形態に係るゲームシステム10では、代行部66によって操作されるキャラクタの種類を、第5実施形態において強さ情報を設定する方法として説明した方法と同様の方法で決定するようにしてもよい。
すなわち、代行部66によって操作するキャラクタの種類を、対戦が開始されてから代行開始条件が満足されたと判定されるまでに経過した時間に基づいて決定するようにしてもよい。または、代行部66によって操作するキャラクタの種類を、代行開始条件が満足されたと判定された場合のキャラクタ50A,50Bの間のヒットポイントの差(絶対値)に基づいて決定するようにしてもよい。あるいは、代行部66によって操作するキャラクタの種類を、対戦が開始されてから代行開始条件が満足されたと判定されるまでに経過した時間と、代行開始条件が満足されたと判定された場合のキャラクタ50A,50Bの間のヒットポイントの差(絶対値)と、に基づいて決定するようにしてもよい。または、代行部66によって操作するキャラクタの種類を、プレイヤA,Bの間の技量の差に基づいて決定するようにしてもよい。
なお、本発明は以上に説明した第1〜第9実施形態に限定されるものではない。
(A)例えば、第1〜第9実施形態においては通知制御部67を設けないようにしてもよい。また、第2〜第9実施形態のうちの複数を組み合わせるようにしてもよい。
(B)例えば、キャラクタ50Aのヒットポイントの代わりに、キャラクタ50Aが受けたダメージの累計を示すダメージポイントが記憶されるようにしてもよい。なお、ヒットポイントは、キャラクタ50Aが攻撃を受けるごとに減少されるのに対し、ダメージポイントは、キャラクタ50Aが攻撃を受けるごとに増加される点でヒットポイントとは異なる。同様に、キャラクタ50Bのヒットポイントの代わりに、キャラクタ50Bが受けたダメージの累計を示すダメージポイントが記憶されるようにしてもよい。
この実施形態の場合、キャラクタ50Bのダメージポイントが、第1更新部62Aによって更新される「第1パラメータ」に相当し、また、キャラクタ50Aのダメージポイントが、第2更新部62Bによって更新される「第2パラメータ」に相当する。
また、対戦結果決定部63は、キャラクタ50Bのダメージポイントの値が上限値(所定値;例えば100)になったか否かを判定する。同様に、対戦結果決定部63は、キャラクタ50Aのダメージポイントの値が上限値(所定値)になったか否かを判定する。例えば、キャラクタ50Aのダメージポイントの値が上限値になっておらず、かつ、キャラクタ50Bのダメージポイントの値が上限値になった場合、対戦結果決定部63はプレイヤAが勝利したと決定する。同様に、キャラクタ50Bのダメージポイントの値が上限値になっておらず、かつ、キャラクタ50Aのダメージポイントの値が上限値になった場合、対戦結果決定部63はプレイヤBが勝利したと決定する。
この実施形態の場合、初期期間内においてプレイヤAがプレイヤBに大きくリードされているような状態になったか否かは、初期期間内において、「キャラクタ50Aのダメージポイントの値と上記の上限値(例えば100)との間の差(絶対値)がキャラクタ50Bのダメージポイントの値と上記の上限値との間の差(絶対値)よりも小さく、かつ、キャラクタ50Aのダメージポイントの値とキャラクタ50Bのダメージポイントの値との間の差(絶対値)が基準値以上であるような状態」(上記状態A)になったか否かを判定することによって判定される。このため、上記のような条件が、代行部66がプレイヤAの代わりにゲームプレイを開始するための代行開始条件として用いられる。
同様に、初期期間内においてプレイヤBがプレイヤAに大きくリードされているような状態になったか否かは、初期期間内において、「キャラクタ50Bのダメージポイントの値と上記の上限値(例えば100)との間の差(絶対値)がキャラクタ50Aのダメージポイントの値と上記の上限値との間の差(絶対値)よりも小さく、かつ、キャラクタ50Aのダメージポイントの値とキャラクタ50Bのダメージポイントの値との間の差(絶対値)が基準値以上であるような状態」(上記状態B)になったか否かを判定することによって判定される。このため、上記のような条件が、代行部66がプレイヤBの代わりにゲームプレイを開始するための代行開始条件として用いられる。
(C)例えば、以上に説明した実施形態では、ゲーム装置A,Bのいずれかがゲームサーバの役割を担うようになっていたが、ゲーム装置A,Bとは別のサーバコンピュータがゲームサーバの役割を担うようにしてもよい。例えば、ゲーム管理装置20がゲームサーバの役割を担うようにしてもよい。または、ゲーム管理装置20とは別のサーバコンピュータがゲームサーバの役割を担うようにしてもよい。
この実施形態の場合、最新のゲーム状況を示すゲーム状況データがゲームサーバの補助記憶部33に記憶される。また、そのゲーム状況データの複製がゲーム装置A,Bの主記憶部32にそれぞれ記憶される。
また、この実施形態の場合、ゲーム装置A,Bは、それぞれ、操作データをゲームサーバに送信する。ゲームサーバは、ゲーム装置A,Bから受信した操作データに基づいて、ゲームサーバに記憶されるゲーム状況データを更新する。そして、ゲームサーバは、ゲーム状況データの更新内容を伝えるための更新データをゲーム装置A,Bに送信する。ゲーム装置Aは、ゲームサーバから受信した更新データに基づいて、ゲーム装置Aに記憶されるゲーム状況データを更新し、更新後のゲーム状況データに基づいて、ゲーム装置Aの表示部37にゲーム画面を表示する。ゲーム装置Bについても同様である。
(D)例えば、ゲーム装置A,Bが操作データを相互に送信し合うようにしてもよい。この実施形態の場合、ゲーム装置A,Bのいずれかにゲームサーバの役割を担わせる必要や、ゲームサーバの役割を担うためのサーバコンピュータを用意する必要がなくなる。
この実施形態の場合、最新のゲーム状況を示すゲーム状況データが、それぞれ、ゲーム装置A,Bの主記憶部22に記憶される。また、ゲーム装置Aは、ゲーム装置Aで行われたゲーム操作に関する操作データをゲーム装置Bに送信する。同様に、ゲーム装置Bは、ゲーム装置Bで行われたゲーム操作に関する操作データをゲーム装置Aに送信する。
そして、ゲーム装置Aは、ゲーム装置Aで行われたゲーム操作に関する操作データと、ゲーム装置Bから受信した操作データと、に基づいて、ゲーム装置Aに記憶されるゲーム状況データを更新し、更新されたゲーム状況データに基づいて、ゲーム装置Aの表示部37にゲーム画面を表示させる。ゲーム装置Bについても同様である。
(E)例えば、ゲームシステム10はいわゆるネットワークゲームシステムでなくてもよく、一台のゲーム装置30によって実現されるようにしてもよい。すなわち、スタンドアロンのゲーム装置30においてプレイヤA,Bが通信ネットワークを介さずに対戦するような場合にも本発明は適用することができる。また、ゲームシステム10は、制御部と、記憶部と、プレイヤAのための操作部及び出力部(表示部及び音声出力部)と、プレイヤBのための操作部及び出力部(表示部及び音声出力部)とを含むようなゲーム装置(例えば業務用ゲーム機)であってもよい。
(F)例えば、格闘ゲームは、一人のプレイヤが複数のキャラクタを操作するような格闘ゲームであってもよい。すなわち、格闘ゲームでは、キャラクタチームとキャラクタチームとが戦うようになっていてもよい。また例えば、本発明は格闘ゲーム以外の対戦ゲームにも適用することができる。例えば、いわゆるFPS(First Person Shooting)ゲーム等にも本発明は適用することができる。すなわち、FPSゲームの場合においても、対戦が開始されてから比較的短い時間内においてプレイヤ間のヒットポイントの差が大きくなった場合、ヒットポイントが小さい方のプレイヤの代わりに代行部66がゲームプレイを行うようにしてもよい。
また、例えば、対戦パズルゲームにも本発明は適用することができる。例えば、コナミデジタルエンタテインメント社の「ぱずるだま」のような対戦パズルゲームにも本発明は適用することができる。
例えば、対戦パズルゲームでは、プレイヤのフィールド(画面領域)内にブロックが次々に表示される。プレイヤは自らのフィールド内に表示されるブロックを他のブロックと隣接させて特定のパターンを形成することによってブロックを消去する。一方のプレイヤがブロックを消去した場合、他方のプレイヤのフィールド内に特殊ブロックが表示される。特殊ブロックは該特殊ブロックに隣接するブロックが消去された場合に限って消去されるブロックであり、プレイヤにとって厄介な存在となる。そして、一方のプレイヤのフィールド内において、互いに対向する一方の端側(例えば下側)から他方の端側(例えば上側)までブロックが積まれた状態になると、他方のプレイヤの勝利となる。
このような対戦パズルゲームにおいては、例えば、プレイヤA,Bの間の対戦が開始されてから比較的短い時間内において、プレイヤAのフィールド内に積まれたブロックから該フィールドの上端までの距離と、プレイヤBのフィールド内に積まれたブロックから該フィールドの上端までの距離との差が大きくなった場合、上記の距離が短い方のプレイヤの代わりに代行部66がゲームプレイを行うようにしてもよい。
この場合、「プレイヤBのフィールド内に積まれたブロックから該フィールドの上端までの距離」が、第1更新部62Aによって更新される「第1パラメータ」に相当する。一方、「プレイヤAのフィールド内に積まれたブロックから該フィールドの上端までの距離」が、第2更新部62Bによって更新される「第2パラメータ」に相当する。そして、対戦結果決定部63は、プレイヤAのフィールド内に積まれたブロックから該フィールドの上端までの距離と、プレイヤBのフィールド内に積まれたブロックから該フィールドの上端までの距離との少なくとも一方が零(所定値)になったか否かを判定する。