説明

ゲーム装置、ゲーム処理方法、ならびに、プログラム

【課題】ゲームが難しすぎたり易しすぎたりしないように調節する。
【解決手段】ゲーム装置200において、記憶部201はプレイヤーキャラクタの位置と、敵キャラクタの位置及び敵キャラクタが出現してから現在までの経過時間と、新たに敵キャラクタを出現させる位置の候補を記憶する。計測部202は敵キャラクタが出現してから現在までの経過時間を計測し記憶部201に記憶させる。計算部203は記憶された経過時間に基づいて新たな敵キャラクタを出現させる位置の判断基準となる基準距離を計算する。基準距離は経過時間の増加に対して単調増加する。出現設定部204は記憶部201に記憶された候補のうちプレイヤーキャラクタまでの距離が基準距離に最も近い候補を選び、選んだ候補の位置に新たな敵キャラクタを出現させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プレイヤーにとってゲームが難しすぎたり易しすぎたりしないように調節するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムに関する。
【背景技術】
【0002】
仮想ゲーム空間内において、プレイヤーがプレイヤーキャラクタを操作して敵キャラクタを仮想の銃や刀を使って倒すゲームがある。例えば、プレイヤーは、敵キャラクタが出現すると、その位置までプレイヤーキャラクタを移動させて、あるいはその位置を狙って、敵キャラクタを倒す。また、プレイヤーキャラクタが敵キャラクタに見つかると、その敵キャラクタを倒さないと前に進めないこともある。多くのゲームでは、ある敵キャラクタを倒すと別の敵キャラクタが新たに出現するので、プレイヤーは次々と現れる敵キャラクタを倒さないとゲームをクリアできない。ゲーム装置は、プレイヤーキャラクタの位置やレベル等に応じて適宜新たな敵キャラクタを出現させ、より面白いゲーム展開にしてプレイヤーの興味を引きつける。例えば、特許文献1には、ゲームに参加しているプレイヤーの人数やプレイヤーキャラクタのレベルに基づいて敵キャラクタの数、強さ等を制御することによって、ゲームバランスを大きく損ねることなくゲームを面白くすることができるゲームシステムが開示されている。
【0003】
また、特許文献2には、プレイヤーキャラクタの行動履歴を参照し、エネミーキャラクタの出現頻度を位置によって変えるゲーム装置が開示されている。例えば特定の孔にプレイヤーキャラクタが待機開始したときから現在までの時間が長いと、エネミーキャラクタのその孔の出現確率を減少させる。
【特許文献1】特開2004−160059号公報
【特許文献2】特開平11−53570号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、従来のゲーム装置では、敵キャラクタが新たに出現する場所は予め決められた場所であったりランダムに選ばれた場所であったりするため、敵キャラクタが続けざまにプレイヤーキャラクタ近辺に出現することがある。そうすると、初心者のプレイヤーは、ゲームのレベルやストーリー展開に関係なく難易度が高い(敵キャラクタが強い)と感じたり不公平感を抱いたりしてしまい、結果としてゲームへの興味を削ぐことになってしまう。また、敵キャラクタがプレイヤーキャラクタから遠く離れた場所ばかりに出現することもある。そうすると、上級者のプレイヤーは、ゲームのレベルやストーリー展開に関係なく難易度が低い(敵キャラクタが弱い)と感じてしまい、結果としてゲームへの興味を削ぐことになってしまう。
【0005】
本発明はこのような課題を解決するものであり、プレイヤーにとってゲームが難しすぎたり易しすぎたりしないように調節するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0007】
本発明の第1の観点に係るゲーム装置は、記憶部、計測部、計算部、出現判断部、出現設定部を備える。
記憶部は、プレイヤーの指示により仮想空間内を移動するプレイヤーキャラクタの位置と、敵キャラクタの位置と、当該敵キャラクタが当該仮想空間内に出現してから現在までの経過時間と、当該仮想空間内に新たな敵キャラクタを出現させる候補の位置と、を記憶する。
計測部は、当該経過時間を計測して記憶部に記憶させる。
計算部は、記憶されている経過時間に対して単調増加する距離を計算する。
出現判断部は、当該仮想空間内に新たな敵キャラクタを出現させるか否かを判断する。
出現設定部は、出現判断部により当該新たな敵キャラクタを出現させると判断された場合、記憶されている敵キャラクタを新たに出現させる位置の候補のうち、当該プレイヤーキャラクタまでの距離が、計算された距離に最も近い候補の位置を、新たに出現させる敵キャラクタの位置として記憶部に記憶させて、新たな敵キャラクタを出現させる。
【0008】
プレイヤーは、プレイヤーキャラクタを操作して、例えば敵キャラクタと戦闘するゲームを行う。敵キャラクタは仮想空間内を移動しプレイヤーキャラクタに攻撃してくるいわゆるモンスターのようなキャラクタでもよいし、地雷のように移動しないものでもよい。敵キャラクタの出現タイミングは様々である。例えば、ゲーム中に出現する敵キャラクタの総数の上限値が予め決められており、この上限値を超えない範囲で、ゲーム中の任意のタイミングに敵キャラクタは出現する。また例えば、既に仮想空間内に出現している敵キャラクタがプレイヤーキャラクタとの戦闘に負けて消えると、新たな別の敵キャラクタが出現する。また例えば、プレイヤーキャラクタが成長したり所定の場所にたどり着いたりすると、敵キャラクタが出現することがあってもよい。
本発明のゲーム装置は、プレイヤーキャラクタの位置を示すプレイヤーキャラクタ情報と、敵キャラクタの位置を示す敵キャラクタ情報を記憶する。更に、ゲーム装置は、敵キャラクタを仮想空間内に出現させてから現在まで経過した時間を計測して記憶している。複数の敵キャラクタが存在する場合には、それぞれの敵キャラクタについてこの経過時間を記憶する。この経過時間は、それぞれの敵キャラクタがどのくらい出現し続けているか(生き続けているか)を示す時間である。敵キャラクタの出現タイミングになると、ゲーム装置は記憶されている経過時間を読み出し、読み出した経過時間が長いほど大きくなる距離(以下「基準距離」と呼ぶ)を計算する。基準距離は、プレイヤーキャラクタの現在位置にどのくらい近い場所に敵キャラクタを出現させるかの判断基準になる。具体的には、敵キャラクタを出現させる位置の候補が予め決められており、ゲーム装置は、予め決められた候補のうち、プレイヤーキャラクタまでの距離が基準距離に最も近い候補の位置に、新たな敵キャラクタを出現させる。
すなわち、既に出現している敵キャラクタが長い時間生き残っているほど、新たな敵キャラクタはプレイヤーキャラクタから遠い位置に出現するようになる。逆に既に出現している敵キャラクタが生き残っている時間が短いほど、新たな敵キャラクタはプレイヤーキャラクタに近い位置に出現するようになる。
例えば、プレイヤーのゲームの上達度が低い場合や、プレイヤーキャラクタの攻撃力が弱い場合、一般に敵キャラクタの寿命は長くなる傾向にある。そこで、本発明によれば、プレイヤー(又はプレイヤーキャラクタ)の上達度が低いと推定される場合には新たな敵キャラクタをプレイヤーキャラクタから遠くの位置に出現しやすくすることによって、プレイヤーの上達度がまだ低いうちに敵キャラクタが次々と近くにばかり出現してしまってゲームが初心者にとって難しすぎるようなことがないように制御できるようになる。
また例えば、プレイヤーのゲームの上達度が高い場合や、プレイヤーキャラクタの攻撃力が強い場合、一般に敵キャラクタの寿命は短くなる傾向にある。そこで、本発明によれば、プレイヤー(又はプレイヤーキャラクタ)の上達度が高いと推定される場合には新たな敵キャラクタをプレイヤーキャラクタの近くの位置に出現しやすくすることによって、プレイヤーの上達度が高いときに敵キャラクタが遠くにばかり出現してしまってゲームが上級者にとって易しすぎるようなことがないように制御できるようになる。
【0009】
計算部は、当該仮想空間内に出現している敵キャラクタに対応付けられている経過時間の平均値を計算し、当該計算された平均値に対して単調増加する距離を計算してもよい。
【0010】
例えば、複数の敵キャラクタが出現している(まだ生き残っている)状況において、敵キャラクタのそれぞれの経過時間のうちのいずれかに基づいて基準距離を計算してもよいが、いくつかの敵キャラクタの経過時間の平均値に基づいて基準距離を計算してもよい。例えば、出現タイミング直前の1つの敵キャラクタだけを考慮すると、プレイヤーが全体として各敵キャラクタを倒すのに手こずっているものの、直近に倒した敵キャラクタについてはたまたま運良く短時間で倒せたものであった場合でも、新たな敵キャラクタはすぐ近くに出現してしまう可能性がある。つまり、ある敵キャラクタの寿命が統計上の特異点とみなせるときには、その敵キャラクタの経過時間の代わりに、平均時間を元に基準距離を計算したほうがよい場合がある。そこで本発明によれば、特異点の影響度を抑え、プレイヤーのゲーム上達度の傾向に合わせて敵キャラクタを出現させることができる。
【0011】
計算部は、当該仮想空間内に出現している敵キャラクタに対応付けられている経過時間のうち最も長い経過時間に対して単調増加する距離を計算してもよい。
【0012】
例えば、複数の敵キャラクタが出現している状況で、最も長い時間生き残っている(寿命が長い)敵キャラクタの経過時間、すなわち出現している敵キャラクタの生存時間のうちの最長生存時間が長いほど、新たな敵キャラクタはより遠くに出現するようになる。つまりプレイヤーが長い間倒せないでいる敵キャラクタが存在すると、新たな敵キャラクタはより遠くに出現する。よって、プレイヤーのゲーム上達度の傾向に合わせてゲームの難易度を調節することができる。
【0013】
計算部は、当該仮想空間内に出現している敵キャラクタに対応付けられている経過時間のうち最も短い経過時間に対して単調増加する距離を計算してもよい。
【0014】
例えば、複数の敵キャラクタが出現している状況で、最も短い時間生き残っている(寿命が短い)敵キャラクタの経過時間、すなわち出現している敵キャラクタの生存時間のうちの最短生存時間が長いほど、新たな敵キャラクタはより遠くに出現するようになる。例えば、最も現在に近い時刻に(直近に)出現した敵キャラクタの生存時間が短ければ、プレイヤーはよりゲームが上手と推定できるので、新たな敵キャラクタはより近くに出現するようになる。また、直近に出現した敵キャラクタの生存時間が長ければ、プレイヤーはよりゲームが下手と推定できるので、新たな敵キャラクタはより遠くに出現するようになる。よって、プレイヤーのゲーム上達度の傾向に合わせてゲームの難易度を調節することができる。
【0015】
ゲーム装置は、状態設定部、消滅判断部、消滅設定部を更に備えてもよい。
状態設定部は、当該敵キャラクタの位置が当該プレイヤーキャラクタの位置から所定距離範囲内にある場合に当該プレイヤーキャラクタを戦闘状態とし、そうでない場合に当該プレイヤーキャラクタを非戦闘状態とする。
消滅判断部は、当該プレイヤーキャラクタが当該戦闘状態にある場合に、当該プレイヤーからの指示入力に基づいて、当該敵キャラクタを消滅させるか否かを判断する。
消滅設定部は、消滅判断部により当該敵キャラクタを消滅させると判断された場合に、当該仮想空間内から当該敵キャラクタを消滅させる。
【0016】
ゲームには、プレイヤーキャラクタと敵キャラクタとの戦闘状態と、それ以外の非戦闘状態とがある。例えば、ある敵キャラクタの位置がプレイヤーキャラクタの位置から所定距離範囲内になると、プレイヤーキャラクタはその敵キャラクタとの戦闘状態になり、ゲームは戦闘モードになる。戦闘モードでは、プレイヤーからの指示入力やプレイヤーキャラクタの攻撃力・防御力・生命力などといった属性パラメータの大小に応じて戦闘の勝敗が決まる。
仮想空間内に出現させた敵キャラクタの消滅タイミングは様々である。例えばプレイヤーキャラクタとの戦闘の結果、敵キャラクタの所定の属性パラメータ(いわゆる生命力、体力、ヒットポイントなど)が先にゼロになると、敵キャラクタの負けとなり、敵キャラクタは消滅する。また例えば敵キャラクタとして時限爆弾のように所定時間経過後に(作動して)消滅するものを採用すると、敵キャラクタ(時限爆弾)が設置されてから所定時間が経過したとき、敵キャラクタは(爆発して)消滅する。また例えば仮想空間内をプレイヤーキャラクタが移動した結果、既に出現している敵キャラクタがプレイヤーキャラクタと容易には接触できないほどあるいは画面に映らないほど遠くに離れてしまうと、もはやその敵キャラクタを出現させている意味が薄れてしまうため、その敵キャラクタを消滅させてもよい。よって、本発明によれば、ゲームの展開やストーリーに合わせて適宜敵キャラクタを消すことができる。また、プレイヤーにとってゲームが難しすぎたり易しすぎたりすることがないように敵キャラクタの数を調整することができる。
【0017】
出現判断部は、消滅設定部が当該敵キャラクタを消滅させた場合に、当該新たな敵キャラクタを出現させると判断してもよい。
【0018】
つまり、敵キャラクタが出現するタイミングの一つの例として、既に出現している敵キャラクタが消滅した後に新たな敵キャラクタが出現するという手法を採用できる。例えば、プレイヤーキャラクタが敵キャラクタとの戦闘に勝利して敵キャラクタが消滅すると、別の敵キャラクタが仮想空間内に出現する。よって、プレイヤーはいつ敵キャラクタを倒すのが戦略上相応しいかを考慮しながらゲームを進めることになるので、ゲーム装置はプレイヤーの立てた戦略をゲームに反映させつつ、難易度を調整することができる。
【0019】
出現判断部は、当該新たな敵キャラクタを出現させるか否かを乱数を用いて判断してもよい。
【0020】
つまり、敵キャラクタの出現タイミングを、乱数を元に判断される任意のタイミングとしてもよい。乱数は、例えば時刻等をシードに用いてその都度発生させたものでもよいし、予め作成した乱数テーブル等を用いたものでもよい。よって、ゲーム装置はプレイヤーの立てた戦略とは関係なく難易度を調整することもできる。
【0021】
出現判断部は、当該仮想空間内に出現している敵キャラクタの総数が所定の上限値より少ない場合に、当該新たな敵キャラクタを出現させると判断してもよい。
【0022】
例えば、仮想空間内に出現させてもよい敵キャラクタ数を無制限にすると、プレイヤーにとって難しすぎるゲームになってしまう可能性がある。しかし、所定の上限値を設けることによって、ゲームの難易度を調節できるようになる。
【0023】
出現判断部は、当該上限値を、ゲーム装置にて実行されるゲームにおける時間の経過に応じて変化させてもよい。
【0024】
仮想空間内に出現させてもよい敵キャラクタ数の上述の上限値は、固定値にすることもできるが、可変値にすることもできる。可変値にする際の一つの例として、実行されるゲームにおける時間が経過するほど、上限値を大きくしたり小さくしたりする手法がある。実行されるゲームにおける時間を、現実の時間と一致させれば、ゲームの現実のプレイ時間が長いほど、出現しうる敵キャラクタ数が増えたり減ったりすることになる。例えば、プレイ時間が長くなることが想定される初心者に対しては上限値を減少させ、プレイ時間が短くなることが想定される上級者に対しては上限値を増加させる。よって、プレイヤーの上達度に応じてゲームの難易度を調節することができる。なお、初心者に対してもプレイ時間が長いほど上限値を増加させることとしてもよい。
【0025】
出現判断部は、当該上限値を、消滅設定部により消滅された敵キャラクタの数に応じて変化させてもよい。
【0026】
上述の上限値を可変値にする際の他の一つの例として、プレイヤーキャラクタが倒した敵キャラクタの数が多いほど、上限値を大きく(あるいは小さく)する手法もある。例えば、所定時間内に倒せる敵キャラクタ数が多いことが想定される上級者に対しては上限値を増加させ、所定時間内に倒せる敵キャラクタ数が少ないことが想定される初心者に対しては上限値を減少させる。よって、プレイヤーの上達度に応じてゲームの難易度を調節することができる。
【0027】
記憶部は、当該敵キャラクタが当該仮想空間内に出現してから現在までの経過時間を記憶する代わりに、当該敵キャラクタを状態設定部が当該戦闘状態に設定してから消滅設定部が消滅させるまでの経過時間を記憶してもよい。
【0028】
ここで、敵キャラクタが当該仮想空間内に出現してから現在までの経過時間とは、上述のように敵キャラクタがどれだけ長く生き続けているかを示す生存時間である。一方、状態設定部が戦闘状態に設定してから消滅設定部が消滅させるまでの経過時間とは、プレイヤーキャラクタと敵キャラクタの戦闘時間である。つまり、本発明によれば、新たな敵キャラクタは、戦闘時間の長さに応じてプレイヤーキャラクタの近くに出現したり遠くに出現したりする。例えば、プレイヤーキャラクタと敵キャラクタとの戦闘が長引くほど、新たな敵キャラクタは遠くに出現するようになる。また、戦闘時間が短くて済むほど、新たな敵キャラクタは近くに出現するようになる。戦闘時間の長さによってプレイヤー(又はプレイヤーキャラクタ)のゲーム上達度を推定できるので、ゲーム装置はゲームがプレイヤーにとって易しすぎないようにあるいは難しすぎないように調整することができる。
【0029】
ゲーム装置は、当該プレイヤーキャラクタの位置と当該敵キャラクタの位置との距離が所定値以内である場合、当該敵キャラクタの位置を当該プレイヤーキャラクタの位置に近づけるように移動させ、記憶部に記憶される当該敵キャラクタの位置を更新する移動部を更に備えてもよい。
【0030】
例えば仮想空間内を自由に移動する敵キャラクタは、プレイヤーキャラクタから敵キャラクタまでの距離が所定距離以下になると、その敵キャラクタはプレイヤーキャラクタに近づくように移動する。本発明によれば、ゲームがプレイヤーにとって易しすぎないようにあるいは難しすぎないように調整することができる。上級者にとってはゲームをクリアしづらくする要因が過度に少なくなってしまうことがなく、初級者にとってはゲームをクリアしづらくする要因が過度に多くなってしまうことがない。
【0031】
当該プレイヤーキャラクタの位置と当該敵キャラクタの位置との距離が、
(a)所定値以内である場合、当該敵キャラクタの位置から当該プレイヤーキャラクタの位置への方向に当該敵キャラクタが移動する確率を、他の方向に当該敵キャラクタが移動する確率より相対的に大きくし、
(b)そうでない場合、当該敵キャラクタの位置から当該プレイヤーキャラクタの位置への方向に当該敵キャラクタが移動する確率と、当該他の方向に当該敵キャラクタが移動する確率と、を等しくして、
当該敵キャラクタの位置をランダムに移動させ、記憶部に記憶される当該敵キャラクタの位置を更新する移動部を更に備えてもよい。
【0032】
例えば敵キャラクタは仮想空間内をランダムウォークで移動することができる。プレイヤーキャラクタから敵キャラクタまでの距離が所定距離以下の場合には、すべての移動可能な方向について、移動する確率は等確率である。一方、プレイヤーキャラクタから敵キャラクタまでの距離が所定距離より大きい場合には、敵キャラクタの位置からプレイヤーキャラクタの位置への方向へ移動する確率が、他の方向より相対的に高くなる。本発明によれば、ゲームがプレイヤーにとって易しすぎないようにあるいは難しすぎないように調整することができる。上級者にとってはゲームをクリアしづらくする要因が過度に少なくなってしまうことがなく、初級者にとってはゲームをクリアしづらくする要因が過度に多くなってしまうことがない。
【0033】
移動部は、当該敵キャラクタを、所定の最大移動速度以下で移動させてもよい。
【0034】
すなわち、移動可能な敵キャラクタの移動速度に上限値を設けてもよい。例えば敵キャラクタの出現時間や敵キャラクタとの戦闘時間が長いため、新たな敵キャラクタがプレイヤーキャラクタからより遠くに出現したとしても、敵キャラクタが向かってくる移動速度がとても速いと、初心者にとって返って難しいゲームになってしまうことがある。また例えば敵キャラクタの出現時間や敵キャラクタとの戦闘時間が短いため、新たな敵キャラクタがプレイヤーキャラクタの近くに出現し、しかも敵キャラクタが向かってくる移動速度が速いと、上級者にとって理不尽に難しすぎるゲームになってしまうことがある。しかし、本発明によれば、敵キャラクタの出現時間や敵キャラクタとの戦闘時間が長い(短い)ほど戦闘開始までの時間も長く(短く)なるようにできるので、ゲームがプレイヤーにとって易しすぎないようにあるいは難しすぎないように調整することができる。
【0035】
移動部は、当該敵キャラクタを、所定の最小移動速度以上で移動させてもよい。
【0036】
すなわち、移動可能な敵キャラクタの移動速度に下限値を設けてもよい。例えば敵キャラクタの出現時間や敵キャラクタとの戦闘時間が長いため、新たな敵キャラクタがプレイヤーキャラクタからより遠くに出現し、しかも敵キャラクタが向かってくる移動速度がとても遅いと、初心者にとっても易しすぎるゲームになってしまうことがある。また例えば敵キャラクタの出現時間や敵キャラクタとの戦闘時間が短いため、新たな敵キャラクタがプレイヤーキャラクタの近くに出現しても、敵キャラクタが向かってくる移動速度が遅いと、上級者にとって易しすぎるゲームになってしまうことがある。しかし、本発明によれば、敵キャラクタの出現時間や敵キャラクタとの戦闘時間が長い(短い)ほど戦闘開始までの時間も長く(短く)なるようにできるので、ゲームがプレイヤーにとって易しすぎないようにあるいは難しすぎないように調整することができる。
【0037】
本発明のその他の観点に係るゲーム処理方法は、記憶部、計測部、計算部、出現判断部、出現設定部を有するゲーム装置にて実行されるゲーム処理方法であって、計測ステップ、計算ステップ、出現判断ステップ、出現設定ステップを備える。
記憶部には、プレイヤーの指示により仮想空間内を移動するプレイヤーキャラクタの位置と、敵キャラクタの位置と、当該敵キャラクタが当該仮想空間内に出現してから現在までの経過時間と、当該仮想空間内に新たな敵キャラクタを出現させる候補の位置と、が記憶される。
計測ステップは、計測部が、当該経過時間を計測して記憶部に記憶させる。
計算ステップは、計算部が、記憶されている経過時間に対して単調増加する距離を計算する。
出現判断ステップは、出現判断部が、当該仮想空間内に新たな敵キャラクタを出現させるか否かを判断する。
出現設定ステップは、出現判断部により当該新たな敵キャラクタを出現させると判断された場合、出現設定部が、記憶されている敵キャラクタを新たに出現させる位置の候補のうち、当該プレイヤーキャラクタまでの距離が、計算された距離に最も近い候補の位置を、新たに出現させる敵キャラクタの位置として記憶部に記憶させて、新たな敵キャラクタを出現させる。
【0038】
すなわち、既に出現している他の敵キャラクタが長い時間生きて残っているほど、新たな敵キャラクタはプレイヤーキャラクタから遠い位置に出現するようになる。逆に既に出現している他の敵キャラクタが残っている時間が短いほど、新たな敵キャラクタはプレイヤーキャラクタに近い位置に出現するようになる。
例えば、プレイヤーのゲームの上達度が低い場合や、プレイヤーキャラクタの攻撃力が弱い場合、一般に敵キャラクタの寿命は長くなる傾向にある。そこで、本発明によれば、新たな敵キャラクタをプレイヤーキャラクタから遠くの位置に出現しやすくすることによって、プレイヤーの上達度がまだ低いうちに敵キャラクタが次々と近くにばかり出現してしまってゲームが初心者にとって難しすぎるようなことがないように制御できるようになる。
また例えば、プレイヤーのゲームの上達度が高い場合や、プレイヤーキャラクタの攻撃力が強い場合、一般に敵キャラクタの寿命は短くなる傾向にある。そこで、本発明によれば、新たな敵キャラクタをプレイヤーキャラクタの近くの位置に出現しやすくすることによって、プレイヤーの上達度が高いときに敵キャラクタが遠くにばかり出現してしまってゲームが上級者にとって易しすぎるようなことがないように制御できるようになる。
【0039】
本発明のその他の観点に係るプログラムは、コンピュータを、記憶部、計測部、計算部、出現判断部、出現設定部として機能させる。
記憶部は、プレイヤーの指示により仮想空間内を移動するプレイヤーキャラクタの位置と、敵キャラクタの位置と、当該敵キャラクタが当該仮想空間内に出現してから現在までの経過時間と、当該仮想空間内に新たな敵キャラクタを出現させる候補の位置と、を記憶する。
計測部は、当該経過時間を計測して記憶部に記憶させる。
計算部は、記憶されている経過時間に対して単調増加する距離を計算する。
出現判断部は、当該仮想空間内に新たな敵キャラクタを出現させるか否かを判断する。
出現設定部は、出現判断部により当該新たな敵キャラクタを出現させると判断された場合、記憶されている敵キャラクタを新たに出現させる位置の候補のうち、当該プレイヤーキャラクタまでの距離が、計算された距離に最も近い候補の位置を、新たに出現させる敵キャラクタの位置として記憶部に記憶させて、新たな敵キャラクタを出現させる。
【0040】
本発明によれば、コンピュータを上述のように動作するゲーム装置として機能させることができる。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0041】
本発明によれば、プレイヤーにとってゲームが難しすぎたり易しすぎたりしないように調節するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムを提供することができる。
【発明を実施するための最良の形態】
【0042】
(実施例1)
本発明の実施例を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施例を説明するが、以下に説明する実施例は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【0043】
図1は、プログラムを実行することにより、本発明のゲーム装置の機能を果たす典型的な情報処理装置100の概要構成を示す模式図である。以下、本図を参照して説明する。
【0044】
情報処理装置100は、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、インターフェース104と、コントローラ105と、外部メモリ106と、DVD−ROM(Digital Versatile Disk - Read Only Memory)ドライブ107と、画像処理部108と、音声処理部109と、NIC(Network Interface Card)110と、を備える。
【0045】
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ107に装着して、情報処理装置100の電源を投入することにより、当該プログラムが実行され、本実施例のゲーム装置が実現される。
【0046】
CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、レジスタ(図示せず)という高速アクセスが可能な記憶域に対してALU(Arithmetic Logic Unit)(図示せず)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、CPU 101自身が構成されているものや、コプロセッサを備えて実現するものがある。
【0047】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【0048】
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行う処理や、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【0049】
インターフェース104を介して接続されたコントローラ105は、ユーザがサッカーゲームやトランプゲームなどのゲーム実行の際に行う操作入力を受け付ける。
【0050】
インターフェース104を介して着脱自在に接続された外部メモリ106には、対戦ゲーム等のプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ(記録)のデータなどが書き換え可能に記憶される。ユーザは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
【0051】
DVD−ROMドライブ107に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ107は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0052】
画像処理部108は、DVD−ROMから読み出されたデータをCPU 101や画像処理部108が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部108が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部108に接続されるモニター(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
【0053】
画像演算プロセッサは、2次元の画像の重ね合わせ演算やアルファブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【0054】
また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【0055】
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画したりすることが可能である。
【0056】
また、対戦ゲームの画像やトランプゲームのカードの画像などの情報をDVD−ROMに用意しておき、これをフレームメモリに展開することによって、対戦の様子や手札などを画面に表示することができるようになる。
【0057】
音声処理部109は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【0058】
音声処理部109では、DVD−ROMに記録された音声データがMIDIデータである場合には、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、ADPCM(Adaptive Differential Pulse Code Modulation)形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータは、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換を行って、スピーカに出力することにより、音声出力が可能となる。
【0059】
NIC 110は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
【0060】
このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ107に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
【0061】
次に、本実施例のゲーム装置200が行う処理について説明する。以下の説明では、ゲーム装置200は、プレイヤーの指示により仮想空間内を移動するプレイヤーキャラクタオブジェクト(以下、単に「プレイヤーキャラクタ」と呼ぶ)と、敵キャラクタオブジェクト(以下、単に「敵キャラクタ」と呼ぶ)と、の対戦ゲームを想定する。敵キャラクタは、ゲーム装置200によって動作指示がなされるものとする。プレイヤーキャラクタと敵キャラクタは、この仮想空間内で移動可能である。ただし、ゲーム内容は一例に過ぎない。
【0062】
図2はゲーム装置200の構成を示す図である。ゲーム装置200は、記憶部201、計測部202、計算部203、出現設定部204、受付部205、移動部206、削除部207、出力部208を備える。
【0063】
記憶部201は、(1)仮想空間内におけるプレイヤーキャラクタの位置、(2)敵キャラクタの位置、(3)敵キャラクタの出現時の位置の候補、を記憶する。それぞれの位置は、例えば仮想空間内に設定された座標系を用いた空間座標値として表される。座標系の決め方は任意であり、例えば、互いに直交する3軸による直交座標系を用いることができるほか、1個の動径と2個の偏角を用いた球座標のような極座標系を用いることもできる。記憶部201は、これらの情報をRAM 103内の所定の記憶領域に記憶する。外部メモリ106に記憶するように構成してもよい。
【0064】
プレイヤーは、コントローラ105を操作してプレイヤーキャラクタに指示を与えて移動させたり敵キャラクタと戦わせたりすることができる。例えば、プレイヤーキャラクタが敵キャラクタを攻撃し、この攻撃による敵キャラクタの損害レベル(いわゆる「ダメージ」)あるいはダメージの合計が所定値以上になると、敵キャラクタを倒してプレイヤーキャラクタの勝利となる。敵キャラクタは、出現した時刻から所定期間経過すると、プレイヤーキャラクタによる攻撃に関わらず消滅する(仮想空間内から消えて無くなる)ことがあってもよい。ゲーム装置200は、ゲームの展開に応じて適宜敵キャラクタを出現させる。例えば、ゲーム装置200は、敵キャラクタが倒されたり消滅したりすると、この仮想空間内に新たな敵キャラクタを出現させる。敵キャラクタの新たな出現位置は、記憶部201に記憶された候補の中から、後述する出現設定部204により選択される。この選択方法の詳細については後述する。なお、以下の説明において、「プレイヤーキャラクタが敵キャラクタを倒す」とは、「プレイヤーキャラクタが敵キャラクタに勝利する」あるいは「敵キャラクタの所定の属性パラメータが戦闘によってプレイヤーキャラクタの属性パラメータよりも先に所定値以下になる」という意味である。
【0065】
図3(a)は、記憶部201に記憶される、プレイヤーキャラクタの位置を示すデータの構成例であり、図3(b)は、敵キャラクタの位置を示すデータの構成例である。敵キャラクタの位置は、仮想空間内に存在する敵キャラクタの数の分だけ記憶される。識別情報は、敵キャラクタの種類や個体を識別するための情報である。例えば、数字、文字、記号等を用いて表される。なお、本実施例では、この対戦ゲームのプレイヤーとプレイヤーキャラクタはそれぞれ1人であるが、複数のプレイヤーが参加したり複数のプレイヤーキャラクタが存在したりしてもよい。この場合には、記憶部201は、プレイヤーキャラクタの位置を示す情報として、プレイヤーキャラクタを識別するための識別情報と、そのプレイヤーキャラクタの位置とを対応づけて記憶すればよい。なお、以下の説明では、敵キャラクタの識別情報と、敵キャラクタの位置との組み合わせを「レコード」と呼ぶこととする。
【0066】
図3(c)は、記憶部201に記憶される、敵キャラクタの出現時の位置の候補を示すデータの構成例である。識別情報は、図3(b)と同様、敵キャラクタの種類や個体を識別するための情報である。候補リストは、この敵キャラクタを新たに出現させる場合の出現場所の候補であり、1つに限らず複数の候補でもよい。これらの候補は予め設定されている。例えば、本図では、識別情報「0001」で識別される敵キャラクタには、新たに出現させる位置の1番目の候補として座標値(X1,Y1,Z1)、2番目の候補として座標値(X2,Y2,Z2)、などのように設定されている。このように候補がN個(Nは1以上の整数)存在すると、出現設定部204はN個の中からいずれか1つを選択して、その位置に敵キャラクタを配置するように、記憶部201に記憶される敵キャラクタの位置を更新する。それぞれの候補の位置は、座標値を用いる代わりに、「領域1」「領域2」のように予め決められた複数の領域のうちいずれの領域に属するかによって指定されてもよい。この場合、選択された領域内のいずれかの1つの位置が新たな敵キャラクタの出現位置となる。なお、図3(a)乃至(c)は一例に過ぎず、これらの情報のうちの一部のみを含んでもよいし、これらの情報に加えて他の情報を記憶するようにしてもよい。
なお、CPU 101とRAM 103が協働して動作することにより、記憶部201として機能する。
【0067】
計測部202は、この対戦ゲームが開始されてから現在までの経過時間を計測し、計測した経過時間をRAM 103の所定記憶領域に記憶する。計測部202は、ゲーム装置200が備える内部時計(図示せず)により経過時間を計測する。計測部202は、時間、分、秒などを単位とした正確な時刻を計測して経過時間を得てもよいし、モニターの垂直同期割り込み(一般には60分の1秒)など定期的な割り込み処理の回数をカウントして、このカウントした回数を経過時間としてもよい。また、計測部202は、この対戦ゲームの任意のタイミングから現在までの経過時間なども計測できる。
なお、CPU 101が計測部202として機能する。
【0068】
本実施例では、計測部202は、この対戦ゲームが開始されてからの経過時間を求めているが、ゲーム中の任意のタイミングからの経過時間を求めてもよい。例えば、ゲームがシナリオの進行度によって複数のステージやシーンから構成されている場合、それぞれのステージやシーンが開始されてからの経過時間を用いることができる。計測部202は、それぞれのステージやシーンごとに経過時間をリセットして時間を計測し直す。また、ゲーム内で所定のイベントが発生すると、そのイベント発生から現在までの経過時間を計測してもよい。
【0069】
計算部203は、計測部202によって計測された経過時間が長くなるにつれて増大する距離(以下、「基準距離」と呼ぶ)を計算する。この基準距離は、出現設定部204が敵キャラクタを新たに出現させる位置を決定するために用いられる。用いられる単位は任意である。典型的には、この対戦ゲームが行われる仮想空間内に設定された座標系で定められた単位長さを用いた2点間の距離(プレイヤーキャラクタの位置座標と敵キャラクタの位置座標との間の距離)が用いられる。
【0070】
基準距離は、この対戦ゲームが開始されてからの経過時間が長いほど大きくなる。すなわち、基準距離は、例えば図4に示すように、ゲームの経過時間に対して単調増加する。本図では、この関係は直線関数で描かれているが、これに限られず任意の曲線関数でもよい。また、基準距離は階段関数のような非連続な関数で表されてもよい。あるいは、複数の経過時間に対応して基準距離を記憶するテーブルで表されてもよい。この場合、計算部203は各点間をスプライン補間して、任意の経過時間に対して基準距離が一意に求まるようにすればよい。補間方法は任意である。
なお、CPU 101が計算部203として機能する。
【0071】
出現設定部204は、記憶部201に記憶された敵キャラクタの出現時の位置の候補のうち、候補の位置と記憶部201に記憶されたプレイヤーキャラクタの位置との距離が、計算部203により計算された基準距離に最も近い候補の位置を、新たな敵キャラクタの位置とするように、記憶部201に記憶させる。
なお、CPU 101とRAM 103が協働して動作することにより、出現設定部204として機能する。
【0072】
図5は、基準距離と、新たに敵キャラクタを出現させる位置の候補との関係の例を示す図である。本図に示したそれぞれの星印は、敵キャラクタを新たに出現させる位置の候補の位置を示し、この例では3つの候補が示されている。すなわち、記憶部201は、敵キャラクタを新たに出現させる位置の候補として第1から第3候補の3つの位置を含む候補リストを記憶している。
まず、計測部202は、この対戦ゲームが開始されてから現在までの経過時間を計測し、計算部203は、計測された経過時間に対応する基準距離を求める。本図に示した点線の円は、求めた基準距離を半径とする円である。そして、出現設定部204は、第1から第3候補のうち、基準距離に最も近い候補、すなわち、この円の弧に最も近い候補を選択して、新たな敵キャラクタの位置とする。この例では、出現設定部204は第2候補を新たな敵キャラクタの位置とすることになる。
なお、この例では、本発明をより容易に理解できるように仮想空間を2次元で表現しているが、3次元空間でもよい。3次元の場合には円の代わりに球面を用いればよい。本図には候補の位置が星印で示され、基準距離を示す円が点線で示されているが、これらは説明の都合上記載しただけであり、実際のゲーム画面には表示されない。本図は一例に過ぎず、画面レイアウト、候補の位置、候補の数などを任意に変更できる。
【0073】
受付部205は、プレイヤーキャラクタの位置を取得して記憶部201に記憶させる。例えば、受付部205は、コントローラ105を用いてユーザにより入力された指示入力を受け付けてプレイヤーキャラクタの位置を求め、求めたプレイヤーキャラクタの位置を記憶部201に記憶させる。プレイヤーはコントローラ105を用いて任意の方向にプレイヤーキャラクタを移動させる指示を行うことができるが、指示した方向に動かない固定オブジェクト(例えば岩、木、建築物など)があると指示通りにプレイヤーキャラクタを移動できない場合もある。
なお、CPU 101とRAM 103とコントローラ105とが協働して動作することにより、出現設定部204として機能する。
【0074】
移動部206は、敵キャラクタの位置を移動させる。すなわち、記憶部201に記憶された敵キャラクタの位置を更新する。移動部206は、対戦ゲームのゲーム展開に応じて変化する敵キャラクタの位置を、例えばモニターの垂直同期割り込みのタイミングなど、定期的なタイミングで更新する。
なお、CPU 101とRAM 103が協働して動作することにより、移動部206として機能する。
【0075】
削除部207は、プレイヤーキャラクタが敵キャラクタを倒したり敵キャラクタが消滅したりすると、その敵キャラクタに対応するレコードを記憶部201から削除する。これにより、倒された敵キャラクタはこの対戦ゲームから削除される。
ここで、削除部207は、プレイヤーキャラクタが敵キャラクタを倒すと、記憶部201に記憶された敵キャラクタの位置に、この敵キャラクタが倒されたことを示すフラグを対応づけて記憶させてもよい。出現設定部204は、敵キャラクタを出現させる際、敵キャラクタの位置に、この敵キャラクタが生きている(プレイヤーキャラクタがまだ倒していない)ことを示すフラグを記憶させる。出力部208は、このフラグを参照して、敵キャラクタをゲーム画面に表示させるか否かを判別して敵キャラクタを出力する(又は出力しない)。あるいは、出力部208は、生きている画像を表示するか死んでいる画像を表示するか、を判別して敵キャラクタの画像を出力する。
なお、CPU 101とRAM 103が協働して動作することにより、削除部207として機能する。
【0076】
出力部208は、記憶部201に記憶されたプレイヤーキャラクタと敵キャラクタの位置を読み出して、プレイヤーキャラクタや敵キャラクタの画像をその位置に出力する。プレイヤーキャラクタや敵キャラクタの位置が記憶部201に設定されると、CPU 101は、プレイヤーキャラクタの画像データをDVD−ROMドライブ107に装着されたDVD−ROMから読み出して、画像処理部108を制御して、記憶部201に記憶されたプレイヤーキャラクタの位置にプレイヤーキャラクタの画像を出力させる。同様に、CPU 101は、敵キャラクタの画像データをDVD−ROMドライブ107に装着されたDVD−ROMから読み出して、画像処理部108を制御して、記憶部201に記憶された敵キャラクタの位置に敵キャラクタの画像を出力させる。CPU 101は、ゲーム中の他のキャラクタオブジェクトの画像データ、テキストデータ等もDVD−ROMから読み出して、DVD−ROMに格納された所定のゲームプログラムに従ってゲーム画面を生成し、画像処理部108に接続されたモニターに出力させる。これによって、ユーザは画面を見ながらコントローラ105を操作してゲームをすることができる。プレイヤーキャラクタや敵キャラクタなどの画像データは、典型的には、表面を微小な多角形(典型的には三角形や四角形など)のポリゴンに分割して数値データ化されて表されるデータであるが、ビットマップデータ等他の形式のデータでもよく、本発明によって限定されない。
なお、CPU 101とRAM 103と画像処理部108が協働して動作することにより、出力部208として機能する。
【0077】
(出現設定処理)
次に、本実施例のゲーム装置200の各部が行う出現設定処理について図6のフローチャートを用いて説明する。この出現設定処理は、ゲーム装置200が新たな敵キャラクタを出現させる際に行われる処理である。以下の説明では、一例として、対戦ゲームにおいて、コントローラ105を用いてプレイヤーが操作するプレイヤーキャラクタが敵キャラクタにダメージを与えて倒した後、ゲーム装置200が新たな敵キャラクタを出現させると判断したタイミングで実行されるものとする。ただし、これは一例に過ぎず、ゲーム装置200は任意のタイミングでこの出現設定処理を行うことができる。
【0078】
受付部205は、ユーザにより操作されるコントローラ105から、指定した方向にプレイヤーキャラクタを移動する旨の指示入力、プレイヤーキャラクタに特定の動作をさせる旨の指示入力(例えば、プレイヤーキャラクタに刀や盾を装着させる指示入力など)、その他のゲームに関わる指示入力を受け取る。受付部205は、これらの指示入力に従って、記憶部201にプレイヤーキャラクタの位置を示すデータを記憶させる。受付部205は、モニターの垂直同期割り込みなど所定の定期的なタイミングでこの処理を実行する。これにより、記憶部201にはプレイヤーキャラクタの最新の位置が記憶される。
【0079】
また、移動部206は、ゲーム展開に応じて変化する敵キャラクタの位置を更新する処理を、モニターの垂直同期割り込みなど所定の定期的なタイミングで実行する。これにより、記憶部201には敵キャラクタの最新の位置が記憶される。
【0080】
まず、計測部202は、対戦ゲームが開始されてからの経過時間を求める(ステップS601)。例えば、計測部202は、対戦ゲームを開始した時刻と、現在の時刻とをRAM 103の所定記憶領域に記憶し、これらの時刻の差分から経過時間を求める。
【0081】
計算部203は、ステップS601で求められた経過時間から、新たな敵キャラクタを出力する位置を決めるために用いる上述の基準距離を求める(ステップS602)。例えば、計算部203は、図4に示すような経過時間と基準距離との関係を表す関数を用いて、基準距離を求める。
【0082】
出現設定部204は、現在のプレイヤーキャラクタの位置と、新たな敵キャラクタを出力する候補となる位置とを記憶部201から取得する(ステップS603)。候補となる位置が複数ある場合には、それらすべてを取得する。
【0083】
さらに、出現設定部204は、ステップS603で取得した候補の中から、ステップS602で求めた基準距離に最も近い候補を1つ選択する(ステップS604)。ここで選択した候補の位置が、新たな敵キャラクタを出力する位置となる。
【0084】
そして、出現設定部204は、ステップS604で選択した候補の位置を新たな敵キャラクタの出力位置とするように記憶部201を更新する(ステップS605)。具体的には、例えば図3(b)に示されるデータに、新たに出現させる敵キャラクタの識別情報と、新たに出現させる敵キャラクタの位置との組み合わせを示す新たなレコードを追加する。
【0085】
出力部208は、記憶部201に記憶されたプレイヤーキャラクタの位置と敵キャラクタの位置を取得し、それぞれのキャラクタを配置したゲーム画面を生成して出力する(ステップS606)。
【0086】
本実施例では、出現設定部204は、記憶部201に記憶された候補の中から基準距離に最も近い候補を選んで新たな敵キャラクタの出現位置に決めているが、基準距離よりも離れた位置にある候補の中から選んでもよい。例えば、出現設定部204は、基準距離よりも離れた位置に候補が複数存在する場合、少なくとも基準距離以上離れている候補の中からランダムに選択することができる。出現設定部204は、基準距離との差異が大きくなると選択確率が小さくなるように重み付けを行ってランダムに選択してもよい。
【0087】
一つの例として、初心者プレイヤーは、敵キャラクタを倒すまでに上級者よりも長い時間を要することが多い。もし、敵キャラクタを出現させる位置が全くのランダムで決められたり固定位置だったりすると、敵キャラクタを倒した直後にまたプレイヤーキャラクタのすぐ近くに新たな敵キャラクタが出現してしまう場合もある。そうすると、初心者プレイヤーにとっては、このゲームがとても難しく感じられ、不公平感を抱いたり難しすぎてこのゲームへの関心が無くなってしまったりする可能性がある。しかし、本発明によれば、新たに敵キャラクタが出現する位置を、敵キャラクタを倒すまでの時間が長いほどプレイヤーキャラクタから遠くにするので、初心者プレイヤーでも理不尽に難しく感じることがないようにすることができる。
また、上級者プレイヤーは、敵キャラクタを倒すまでに初心者よりも短い時間で済むことが多い。敵キャラクタを倒した後プレイヤーキャラクタから遠くの場所ばかりに新たな敵キャラクタが出現してしまうと、上級者プレイヤーにとっては、このゲームがとても易しく感じられ、つまらなくなってこのゲームへの関心が薄れてしまう可能性がある。しかし、本発明によれば、新たに敵キャラクタが出現する位置を、敵キャラクタを倒すまでの時間が短いほどプレイヤーキャラクタの近くにするので、上級者プレイヤーにとっても不満足感を抱かせることがないようにすることができる。
【0088】
本実施例によれば、ゲーム装置200は、あるゲームの開始直後では、敵キャラクタを倒したとき次の新たな敵キャラクタをプレイヤーキャラクタの近くに出現させ、ゲーム開始後しばらくすると、敵キャラクタを倒したとき次の新たな敵キャラクタをプレイヤーキャラクタから遠い位置に出現させることができる。これにより、敵キャラクタがすぐ近くに立て続けに出現してゲームの難易度が理不尽に上がってしまうことがなくなる。
【0089】
上述した出現設定処理によって出現位置が制御される敵キャラクタと、そうでない敵キャラクタとがゲーム内に混在していてもよい。
【0090】
このように、ゲーム装置200は、新たな敵キャラクタを出現させる際、ゲームの経過時間に応じて出現させる位置を変化させることによって、ゲームが難しすぎたり易しすぎたりしないようにできる。例えば、初心者、上級者などどんなプレイヤーでも大きくゲームバランスを崩すことなく敵キャラクタを出現させてゲームを面白くさせることができる。
【0091】
(実施例2)
次に、本発明の他の実施例について図7のフローチャートを用いて説明する。本実施例は、この対戦ゲームに出現する敵キャラクタの総数が所定量より多くならないようにする点で、上述の実施例と異なる。なお、上述の実施例と共通する構成については同じ参照番号を用い説明を省略する。
【0092】
記憶部201は、ゲームに同時に出現させることができる敵キャラクタの総数のしきい値(上限値)をさらに記憶する。しきい値は、DVD−ROMに格納されるゲームプログラムに予め格納されており、CPU 101がゲームを開始する際に読み出して記憶部201に記憶する。例えば、しきい値は、ゲームのステージごと、シーンごとに予め決められている。ゲーム全体で共通の1つの上限値として設定されていてもよい。
【0093】
まず、出現設定部204は、既にゲーム中に登場している敵キャラクタの総数を取得する(ステップS701)。出現設定部204は、記憶部201に記憶された敵キャラクタの位置を示すデータのレコード数をカウントすることにより総数を得ることができる。
【0094】
出現設定部204は、ゲームに出現する敵キャラクタの総数のしきい値を記憶部201から取得する(ステップS702)。
【0095】
出現設定部204は、ステップS701で取得した敵キャラクタの総数が、ステップS702で取得したしきい値に達しているか否かを判別する(ステップS703)。
【0096】
しきい値に達していないと判別された場合(ステップS703;NO)、ゲーム装置200は図6に示す上述の出現設定処理を実行する(ステップS704)。一方、しきい値に達していると判別された場合(ステップS703;YES)、ゲーム装置200は処理を終了する。なお、ステップS704で行う出現設定処理は上述の実施例で述べた処理と同じであるので説明を省略する。
【0097】
なお、削除部207は、プレイヤーキャラクタが敵キャラクタに所定レベル以上のダメージを与えた場合や、敵キャラクタが自然消滅するまでの所定時間が経過した場合などに、敵キャラクタの位置を示すデータを記憶部201から消去して、出力部208はゲーム画面から敵キャラクタを消すことができる。
【0098】
このように、本実施例によれば、ゲーム装置200は、ゲーム中に存在している現在の敵キャラクタの総数が予め決められたしきい値を超えないように制御する。すなわち、ゲーム装置200は、新たな敵キャラクタを出現させる際、敵キャラクタの総数がしきい値に達していなければ、ゲームの経過時間に応じて出現させる位置を変化させて敵キャラクタを出現させることによって、ゲームが難しすぎることがないようにできる。例えば、初心者、上級者などどんなプレイヤーでも大きくゲームバランスを崩すことなく敵キャラクタを出現させてゲームを面白くさせることができる。
【0099】
(実施例3)
次に、本発明の他の実施例について図8のフローチャートと図9とを用いて説明する。本実施例は、ゲーム中に敵キャラクタがプレイヤーキャラクタのいる場所に近づくように制御される点で、上述の実施例と異なる。なお、上述の実施例と共通する構成については同じ参照番号を用い説明を省略する。
【0100】
まず、移動部206は、現在行われている対戦ゲーム内に敵キャラクタが存在するか否かを判別する(ステップS801)。移動部206は、記憶部201に記憶された敵キャラクタの位置を示すデータのレコード数をカウントし、レコード数が1以上であれば存在すると判別し、それ以外であれば存在しないと判別する。
【0101】
敵キャラクタが存在しないと判別された場合(ステップS801;NO)、出現設定部204は、後述するステップS805以降の処理を行う。
【0102】
一方、敵キャラクタが存在すると判別された場合(ステップS801;YES)、移動部206は、現在のプレイヤーキャラクタの位置と敵キャラクタの位置を取得する(ステップS802)。敵キャラクタが複数存在する場合には、それらすべての位置を取得する。
【0103】
さらに、移動部206は、プレイヤーキャラクタと敵キャラクタが所定距離以上離れているか否かを判別する(ステップS803)。所定距離とは、出力部208がゲーム画像を出力する際、プレイヤーキャラクタと敵キャラクタとが重ならないようにするために十分な距離のことである。この所定距離は、DVD−ROMに格納されるゲームプログラムに予め格納されており、CPU 101がゲームを開始する際に読み出して記憶部201に記憶する。
【0104】
所定距離以上離れていないと判別された場合(ステップS803;NO)、ゲーム装置200は後述するステップS805の処理に進む。なおこの場合、移動部206は、プレイヤーキャラクタと敵キャラクタとが所定距離以上離れるように、敵キャラクタの位置を変更して記憶部201に記憶させてもよい。
【0105】
所定距離以上離れていると判断された場合(ステップS803;YES)、移動部206は、敵キャラクタの位置がプレイヤーキャラクタの位置に近づくように移動させ(ステップS804)、移動した後の位置を記憶部201に記憶させる。例えば図9に示すように、ある時刻に敵キャラクタが位置E1に存在するとき、この敵キャラクタを単位時間あたり距離Laだけプレイヤーキャラクタに近づくように位置E2に移動させ、移動後の敵キャラクタの位置座標を求めて記憶部201に記憶させる。単位時間とは、例えばモニターの垂直同期割り込みの回数を用いた時間間隔である。単位時間あたりに移動させる距離Laは、敵キャラクタの種類や個体の違いによって異なる値に設定することができる。この距離Laは敵キャラクタごとに設定される移動速度に相当し、CPU 101がゲームプログラムを実行してゲームを進行させる際に計算する。距離Laは固定値にしてもよいし、敵キャラクタによっては全く動かない(La=0)ものとしてもよい。敵キャラクタが複数存在する場合には、移動部206は、ステップS802で取得した位置に基づいて、すべての敵キャラクタについて位置を移動させる処理を行う。
【0106】
さらに、出現設定部204は、仮想空間内に新たな敵キャラクタを配置するか否かを判別する(ステップS805)。例えば、出現設定部204は、上述した実施例におけるステップS701乃至S703の処理を行って判別する。すなわち、現在の敵キャラクタの総数を取得し(ステップS701)、敵キャラクタを配置できるしきい値(上限値)を取得し(ステップS702)、総数がしきい値を超えているか否かを判別する(ステップS703)ことにより、この判別を行う。
【0107】
新たな敵キャラクタを配置すると判別された場合(ステップS805;YES)、出現設定部204は上述した出現設定処理を行う(ステップS806)。一方、新たな敵キャラクタを配置しないと判別された場合(ステップS805;NO)、ゲーム装置200は敵キャラクタの位置を移動させる処理を終了する。なお、ステップS805で新たに敵キャラクタを配置すると、新たに配置された敵キャラクタは、次回の処理において位置を移動させる対象となる。
【0108】
このように、本実施例によれば、ゲーム装置200は、ゲーム中に存在している敵キャラクタがプレイヤーキャラクタのいる位置に向かって移動させて、プレイヤーにとってゲームが易しすぎることがないようにできる。例えば、ゲームの上級者でも大きくゲームバランスを崩すことなく敵キャラクタを出現させてゲームを面白くさせることができる。
【0109】
(実施例4)
次に、本発明の他の実施例について図10と図11を用いて説明する。本実施例は、新たな敵キャラクタの候補のうち、基準距離と同じ距離だけ離れている候補が複数存在する場合に、候補をどのように選択するかを考慮した点で、上述の実施例と異なる。なお、上述の実施例と共通する構成については同じ参照番号を用い説明を省略する。
【0110】
図10は、本実施例のゲーム装置200が行う出現設定処理を説明するためのフローチャートである。
【0111】
図11(a)と(b)は、基準距離と、新たに敵キャラクタを出現させる位置の候補との関係の例を示す図である。本図には候補の位置が星印で示され、基準距離を示す円が点線で示されているが、これらは説明の都合上記載しただけであり、実際のゲーム画面には表示されない。本図は一例に過ぎない。
【0112】
上述のように、記憶部201は敵キャラクタの出現時の位置の候補を記憶するが、候補は複数設定できる。そのため、記憶部201に記憶された敵キャラクタの出現時の位置の候補には、その候補の位置と記憶部201に記憶されたプレイヤーキャラクタの位置との距離が計算部203により計算された基準距離に最も近いものが、複数存在する場合がある。例えば、図11(a)では、第2候補と第3候補の2箇所が、基準距離に最も近い候補である。また、敵キャラクタの出現時の位置の候補は、座標ではなく領域として指定することもできる。例えば、図11(b)では、第1候補の領域と第2候補の領域のうち、第2候補の領域には計算部203により計算された基準距離をもつ点が無数に存在することになる。すなわち、基準距離を示す円のうち、第2領域と重なる弧の上の点は、すべて敵キャラクタの出現時の位置の候補となりうる。
【0113】
このような場合、出現設定部204は、これらの複数の候補の中からランダムに1つ選択して、選択された候補の位置を新たな敵キャラクタの位置として記憶部に記憶させる。例えば図11(a)の場合、出現設定部204は、第2候補と第3候補のどちらかをランダムに1つ選択する。例えば図11(b)の場合、出現設定部204は、第2領域と重なる弧の上の点の中からランダムに1つ選択する。
【0114】
なお、出現設定部204は、記憶部201に記憶された候補のうち、候補の位置とプレイヤーキャラクタの位置との距離が基準距離に最も近いものが複数ある場合、それらの候補が選択される確率に偏り(重み付け)を設定して、ランダムに選択するようにしてもよい。例えば、草原地帯に設定された候補よりも森林地帯に設定された候補のほうにより大きい重みを設定することによって、同じ距離であっても森林地帯の候補のほうが選択されやすくなる。
【0115】
また、敵キャラクタの出現時の位置の候補に予め優先度を設定し、出現設定部204は優先度に従って候補を選択してもよい。例えばこの場合、記憶部201は、敵キャラクタの出現時の位置の候補に対応して、所定段階数の優先度を記憶する。そして、基準距離に最も近いものが複数ある場合、出現設定部204はそれらの中で最も高い優先順位が設定された候補を選択する。
【0116】
次に、本実施例の出現設定処理について図10を用いて説明する。なお、本図において、ステップS1001乃至S1004の処理は、それぞれ上述のステップS601乃至S604と同じであるため説明を省略する。
【0117】
ステップS1005において、出現設定部204は、ステップS1004で選択した基準距離に最も近い候補が複数か否かを判別する。
【0118】
複数であると判別された場合(ステップS1005;YES)、出現設定部204は、それらの中からランダムに1つ選択する(ステップS1006)。候補ごとに選択確率の重み付けや優先度を設定した上でランダムに選択してもよい。そして、出現設定部204は、選択した候補の位置を新たな敵キャラクタの出力位置とするように記憶部201を更新する(ステップS1007)。出力部208は、記憶部201に記憶されたプレイヤーキャラクタの位置と敵キャラクタの位置を取得して、それぞれのキャラクタを配置したゲーム画面を生成して出力する(ステップS1008)。
【0119】
一方、複数ではないと判別された場合(ステップS1005;NO)、出現設定部204はステップS1004で選択された候補の位置を新たな敵キャラクタの出力位置とするように記憶部201を更新し(ステップS1007)、出力部208はそれぞれのキャラクタを配置したゲーム画面を生成して出力する(ステップS1008)。
【0120】
このように、本実施例によれば、ゲーム装置200は、基準距離と同じ距離だけ離れている候補が複数存在しても、適宜1つを選択して敵キャラクタを出現させて、プレイヤーにとってゲームが難しすぎたり易しすぎたりすることがないようにできる。例えば、初心者、上級者などどんなプレイヤーでも大きくゲームバランスを崩すことなく敵キャラクタを出現させてゲームを面白くさせることができる。
【0121】
(実施例5)
次に、本発明の他の実施例について説明する。本実施例は、敵キャラクタの出現時の位置のいくつかの候補の中からいずれかを選択する際の選択の仕方を変えた変形例である。なお、上述の実施例と共通する構成については同じ参照番号を用い説明を省略する。
【0122】
出現設定部204は、記憶部201に記憶された敵キャラクタの出現時の位置の候補のうち、計算部203により計算された基準距離に最も近い候補の位置を含む所定の許容範囲の中からランダムに1つの位置を選択して、選択された位置を新たな敵キャラクタの位置として記憶部201に記憶させる。
【0123】
図12は、基準距離と、新たに敵キャラクタを出現させる位置の候補と、許容範囲との関係の例を示す図である。本図に示したそれぞれの星印は、敵キャラクタを新たに出現させる位置の候補の位置を示し、この例では3つの候補がある。まず、計測部202は、この対戦ゲームが開始されてから現在までの経過時間を計測し、計算部203は、計測された経過時間に対応する基準距離を求める。本図に示した点線の円は、求めた基準距離を半径とする円である。そして、出現設定部204は、第1から第3候補のうち、基準距離に最も近い候補、すなわち、この円の弧に最も近い候補を選択する。本図では第2候補である。さらに、出現設定部204は、選択した候補の位置を含む所定の許容範囲を設定する。本図では第2候補の位置を中心とした所定長さの半径の円内を許容範囲とする。そして、出現設定部204は、設定した許容範囲内からランダムに1つの位置を選択して、新たな敵キャラクタの出現位置とする。
【0124】
この例では、許容範囲の形状は、記憶部201に記憶された候補の位置を中心とする所定長さの半径の円内としたが、これは一例に過ぎず、任意の形状でよい。また、本図には候補の位置が星印で示され、基準距離を示す円が点線で示され、許容範囲を示す斜線領域が示されているが、これらは説明の都合上記載しただけであり、実際のゲーム画面には表示されない。
【0125】
例えば、記憶部201に記憶された、敵キャラクタを新たに出現させる候補の位置に、既に他のキャラクタオブジェクトが配置されている場合、出現設定部204は、候補の位置の周辺に許容範囲を設定し、既に他のキャラクタオブジェクトが配置された位置を避けて、その近くに設定した許容範囲内からランダムに1つの位置を選択することができる。
【0126】
具体的には、上述の実施例のステップS1005において、出現設定部204は、選択した候補の位置に既に他のキャラクタオブジェクトが配置されているか否かを判別する。既に配置されている場合、出現設定部204はステップS1006で、選択した候補の位置を含む所定の許容範囲を設定し、この許容範囲内から1つの位置を選択し、新たな敵キャラクタの出現位置に設定する。配置されていない場合、出現設定部204は、ステップS1004で選択した候補の位置を、新たな敵キャラクタの出現位置に設定する。他のステップにおける処理は上述の実施例と同様であるため詳細は省略する。このように、キャラクタオブジェクト同士が同じ位置に重なってしまうことはない。
【0127】
例えば、記憶部201に記憶された、敵キャラクタを新たに出現させる候補の位置を、1つの点の座標値ではなく、ある程度幅をもった領域によって指定するように構成する場合にも、本実施例は有効である。つまり、絶対的な座標値を用いなくても、敵キャラクタを出現させる位置を設定することができる。
【0128】
また、許容範囲内の領域に予め優先度を設定し、出現設定部204は優先度に従って候補を選択してもよい。この場合、記憶部201は、許容範囲内の領域の各位置に対応して、所定段階数の優先度を記憶する。そして、優先度が高い位置ほど選択確率が大きいようにする。例えば、出現設定部204は、ある候補の位置を中心とした半径R0の円内を許容範囲に設定する。また、0<R1<R2<R0の関係を満たす長さR1とR2を設定する。出現設定部204は、その候補の位置を中心とした半径R1の同心円内の点の選択確率をP1とし、半径R2の同心円内で且つ半径R1の同心円に含まれない部分の選択確率をP2とし、半径R0の同心円内で且つ半径R2の同心円に含まれない部分の選択確率を(1−P1−P2)にする。ただし、0≦P1,P2≦1、且つ、P1+P2≦1である。なお、この例では3つの同心円を用いたが、任意の形状の図形、任意の数の図形を用いることができる。
【0129】
このように、本実施例によれば、ゲーム装置200は、敵キャラクタを新たに出現させる候補の位置に敵キャラクタを配置できない状況であっても、適切に敵キャラクタの出現位置を選択して、ゲームが難しすぎたり易しすぎたりしないようにできる。例えば、初心者や上級者などどんなプレイヤーでも大きくゲームバランスを崩すことなく敵キャラクタを出現させてゲームを面白くさせることができる。本実施例は、上述の他の実施例と容易に組み合わせて実施することができる。
【0130】
(実施例6)
次に、本発明の他の実施例について説明する。本実施例は、敵キャラクタの出現時の位置のいくつかの候補の中からいずれかを選択する際の選択の仕方を変えた他の変形例である。なお、上述の実施例と共通する構成については同じ参照番号を用い説明を省略する。
【0131】
出現設定部204は、現在時間から所定期間内にプレイヤーキャラクタが移動した移動方向を求める。そして、求めた移動方向に存在する候補ほど選択される確率が大きくなるようにランダムに1つの位置を選択して、選択された候補の位置を新たな敵キャラクタの位置として記憶部201に記憶させる。
【0132】
具体的には、出現設定部204は、モニターの垂直同期割り込みなどの周期的なタイミングで、プレイヤーキャラクタの位置を履歴情報としてRAM 103に記憶する。そして、出現設定部204は、この履歴情報から、プレイヤーキャラクタの移動方向を求める。例えば、ある時刻T1におけるプレイヤーキャラクタの位置が点PA(X1,Y1,Z1)で、時刻T1より後の時刻T2におけるプレイヤーキャラクタの位置が点PB(X2,Y2,Z2)であったとすると、点PAから点PBに向かう方向ベクトル(X2−X1,Y2−Y1,Z2−Z1)の向きを、プレイヤーキャラクタの移動方向とする。
【0133】
なお、移動方向の決定方法は上記方法に限られず、他の手法を用いてもよい。例えば、プレイヤーキャラクタの位置の履歴として3つ以上の点の位置を記憶し、これらの点の分散の度合いから移動方向を求めてもよい。位置の履歴を取得する時間間隔は一定間隔が望ましく、時間の長さは任意である。
【0134】
図13は、基準距離と、新たに敵キャラクタを出現させる位置の候補と、プレイヤーキャラクタの移動方向との関係の例を示す図である。図中の矢印Y1は、出現設定部204が求めたプレイヤーキャラクタの移動方向である。まず、計測部202は、この対戦ゲームが開始されてから現在までの経過時間を計測し、計算部203は、計測された経過時間に対応する基準距離を求める。本図に示した点線の円は、求めた基準距離を半径とする円である。そして、出現設定部204は、第1から第3候補のうち、基準距離に最も近い候補、すなわち、この円の弧に最も近い候補を選択する。本図では第2候補と第3候補の2つである。さらに、出現設定部204は、基準距離に最も近い候補のうち、移動方向に近い候補ほど選択される確率が大きくなるように重み付けを設定し、新たな敵キャラクタの出現位置としてランダムに1つ選択する。そして、出現設定部204は、選択した候補の位置を新たな敵キャラクタの出力位置とするように記憶部201を更新し、出力部208は、記憶部201に記憶されたプレイヤーキャラクタの位置と敵キャラクタの位置を取得して、それぞれのキャラクタを配置したゲーム画面を生成して出力する。
なお、本図には候補の位置が星印で示され、基準距離を示す円が点線で示され、移動方向が矢印で示されているが、これらは説明の都合上記載しただけであり、実際のゲーム画面には表示されない。
【0135】
さらに、出現設定部204は、プレイヤーキャラクタを移動方向に近い候補ほど選択される確率が大きくなり、且つ、基準距離に近い候補ほど選択される確率が大きくなるように、重み付けを行って、ランダムに選択することもできる。
【0136】
なお、出現設定部204は、選択される確率に重み付けをしてランダムに1つ選択するのではなく、最も移動方向に近い候補を新たな敵キャラクタの出現位置として選択することもできる。また、出現設定部204は、移動方向に近い候補ほど選択される確率が小さくなるように重み付けを設定してもよい。あるいは、敵キャラクタが出現可能なエリアの種別(例えば、森林、草むら、池など)の違いによって重み付けを設定してもよい。
【0137】
本実施例の変形例として、プレイヤーキャラクタの移動方向の代わりに、プレイヤーキャラクタの視線方向を用いることもできる。CPU 101は、仮想空間内に配置されたプレイヤーキャラクタが仮想空間内の様子を観測する点として、視点を設定する。この視点から視線方向に見た仮想映像は、例えば3Dグラフィックスの表示に用いられる。視線方向は、プレイヤーによるコントローラ105の操作により任意に変更することができる。そして、出現設定部204は、ユーザによって設定された視線方向を取得して、プレイヤーキャラクタの視線方向に近い候補ほど選択される確率が大きくなるように重みを設定して、新たな敵キャラクタの出現位置としてランダムに1つ選択する。この場合においても、最も移動方向に近い候補を新たな敵キャラクタの出現位置として選択することもできる。このように視線方向を用いると、プレイヤーキャラクタの視点から視線方向に見たゲーム画面内(視界内)に敵キャラクタを出現しやすくすることができるので、初心者プレイヤー向けに難易度を下げたゲーム設定にすることができる。また、プレイヤーキャラクタの視界の外に敵キャラクタを出現しやすくすることもできるので、上級者プレイヤー向けに難易度を上げたゲーム設定にすることができる。
【0138】
このように、本実施例によれば、ゲーム装置200は、プレイヤーキャラクタが移動する方向に敵キャラクタを出現させて、ゲームが難しすぎたり易しすぎたりしないようにできる。例えば、初心者、上級者などどんなプレイヤーでも大きくゲームバランスを崩すことなく敵キャラクタを出現させてゲームを面白くさせることができる。本実施例は、上述の他の実施例と容易に組み合わせて実施することができる。
【0139】
(実施例7)
次に、本発明の他の実施例について説明する。本実施例では、出現設定部204は、敵キャラクタが仮想空間内に出現してから現在までの時間に応じて、次の新たな敵キャラクタの出現位置をプレイヤーキャラクタの近くにしたり遠くにしたりして変化させることによって、ゲームの難易度をプレイヤーの上達度に合うように制御できる。以下詳述する。
【0140】
図14は、本実施例のゲーム装置200の機能的な構成を説明するための図である。ゲーム装置200は、記憶部201、計測部202、計算部203、出現設定部204、受付部205、移動部206、削除部207、出力部208、出現判断部209、消滅判断部210、消滅設定部211、状態設定部212を備える。
【0141】
まず、本実施例のゲーム装置200にて実行される典型的なゲームについて、図15を用いて説明する。ゲーム内の仮想空間は例えば2次元マップを用いて表現される。以下、2次元の仮想空間を用いて説明するが、3次元の仮想空間でもよい。本図は仮想空間全体のうちの一部領域であってモニター等に表示される表示領域を示しており、プレイヤーキャラクタ1510の移動に伴って表示領域は上下左右にスクロールする。つまり本図は仮想空間の一部分だけを表している。プレイヤーは、コントローラ105のボタン等を操作して、例えばプレイヤーキャラクタ1510の位置を移動させたり敵キャラクタ1520との戦闘を指示したりすることができる。
【0142】
仮想空間には、プレイヤーによって操作されるプレイヤーキャラクタ1510と、CPU 101によって動作が指示される敵キャラクタ1520(本図中では1520A,1520Bの2つ)が配置される。プレイヤーキャラクタ1510には、例えば、敵キャラクタ1520との戦闘における攻撃力や防御力、生命力や体力(いわゆるヒットポイント)等を数値で表したパラメータなどの属性パラメータが対応付けられている。同様に各々の敵キャラクタ1520にも攻撃力、防御力、生命力などの属性パラメータが対応付けられている。属性パラメータが異なる何種類かの敵キャラクタ1520が存在していてもよい。
【0143】
ここで、本実施例で想定しているゲームにおける、プレイヤーキャラクタと敵キャラクタとの“戦闘”について説明する。
例えばロールプレイングゲームや格闘ゲーム等において、プレイヤーキャラクタ及び/又は敵キャラクタは、剣、矢、盾、防具などの武器やアイテムを装備できる。プレイヤーキャラクタは、プレイヤーからの指示により、例えば剣を振って敵キャラクタに攻撃したり盾で防御したりする。例えば自分(プレイヤーキャラクタ)が剣を振って相手(敵キャラクタ)に当たると、攻撃が成功し、相手のヒットポイントが下がったり自分の勝ちになったりする。一方、自分が剣を振ったものの相手に当たらないと、攻撃が失敗し、自分のヒットポイントが下がったり(あるいは不変でもよい)自分の負けになったりする。また例えば、プレイヤーキャラクタと敵キャラクタがぶつかると、両方又は一方のヒットポイントが下がる。
例えばシューティングゲームにおいて、プレイヤーキャラクタは、プレイヤーからの指示により、銃やミサイル等を発射したり相手からの攻撃をよけたりする。例えば自分が銃を撃って相手に当たると、相手のヒットポイントが下がったり自分の勝ちになったりする。例えば自分が相手の周りの所定範囲内で爆弾を爆発させると、相手のヒットポイントが下がったり自分の勝ちになったりする。
なお、“自分”を敵キャラクタに置き換え、“相手”をプレイヤーキャラクタに置き換えても、同様である。ここに記載したゲーム内容あるいは戦闘の定義は、あくまでも例示であり、本発明によって制限されるものではなく、一般に知られたゲームのルール等を採用できることは言うまでもない。
【0144】
移動部206は、ゲームの進行に応じて敵キャラクタ1520の位置を移動させることができる。移動部206は、プレイヤーキャラクタ1510と敵キャラクタ1520との距離が第1の所定値R1以内になると、プレイヤーキャラクタ1510の位置に近づくように敵キャラクタ1520の位置を移動させる。典型的には、プレイヤーキャラクタ1510の位置を中心とする所定半径R1の円1511内に敵キャラクタ1520が入ると、その敵キャラクタ1520はプレイヤーキャラクタ1510に近づいてくる。
【0145】
あるいは、移動部206は、敵キャラクタ1520をランダムウォークで移動させてもよい。例えば、プレイヤーキャラクタ1510と敵キャラクタ1520との距離が第1の所定値R1より大きい場合、敵キャラクタ1520を移動させることができる各方向について、移動確率を等確率にしてランダムに移動させる。一方、プレイヤーキャラクタ1510と敵キャラクタ1520との距離が第1の所定値R1以下の場合、敵キャラクタ1520の位置からプレイヤーキャラクタ1510の位置への方向の移動確率を相対的に大きくして移動確率に偏りをもたせ、敵キャラクタをランダムに移動させる。つまり、敵キャラクタ1520がプレイヤーキャラクタ1510に近づきやすくなる。
【0146】
本実施例で想定するゲームには、ある地点でプレイヤーキャラクタ1510と敵キャラクタ1520とが戦闘を行う戦闘状態と、それ以外の非戦闘状態(例えばプレイヤーキャラクタ1510が仮想空間のフィールドや建物等を移動可能な状態)と、がある。非移動状態においてプレイヤーキャラクタ1510と敵キャラクタ1520との距離が第2所定値R2以内(ただしR2≦R1)になると、CPU 101はゲームを戦闘状態に移行する。典型的には、プレイヤーキャラクタ1510の位置を中心とする所定半径R2の円1512内に敵キャラクタ1520が入ると、プレイヤーキャラクタ1510と敵キャラクタ1520との戦闘が始まる。戦闘状態では、キャラクタ同士の属性パラメータやプレイヤーによる操作入力によって戦闘の勝敗が決まる。例えば敵キャラクタ1520の生命力が先にゼロになるとプレイヤーキャラクタ1510の勝ちとなり敵キャラクタ1520は仮想空間内から消滅する。
【0147】
第1の所定値R1と第2の所定値R2は、R2≦R1を条件として任意に変更でき、記憶部201に記憶される。複数種類の敵キャラクタ1520をフィールドに配置し、第1の所定値R1及び/又は第2の所定値R2として、敵キャラクタ1520ごとに異なる値を設定することができる。また、ゲーム中に第1の所定値R1及び/又は第2の所定値R2を変更することもできる。
【0148】
移動部206が敵キャラクタ1520の位置を移動させる際の移動速度は可変でも不変でもよいが、可変にする場合には上限値を設けることが望ましい。上限値を設けないと、敵キャラクタ1520が出現してからプレイヤーキャラクタ1510が敵キャラクタ1520と戦闘状態になる(戦闘を開始する)までの時間は、必ずしもプレイヤーキャラクタ1510と敵キャラクタ1520との距離が大きいほど長くなるとは限らず、出現後すぐに敵キャラクタ1520がプレイヤーキャラクタ1510に接近して戦闘状態に入ってしまう可能性がある。しかし、上限値を設けると、敵キャラクタ1520が出現してからプレイヤーキャラクタ1510と敵キャラクタ1520が戦闘状態になるまでの時間が、プレイヤーキャラクタ1510と敵キャラクタ1520との距離が大きいほど長くなるように制御することができる。よって、戦闘状態に突入するまでに時間的な余裕が出来やすくなるので、初心者にとっては難しすぎるゲームにならず好都合である。
【0149】
同様に、移動速度に下限値を設けてもよい。下限値を設けないと、出現後いつまで経っても敵キャラクタ1520がプレイヤーキャラクタ1510に接近せず戦闘状態にならない可能性がある。しかし、下限値を設けると、敵キャラクタ1520が出現してからプレイヤーキャラクタ1510と敵キャラクタ1520が戦闘状態になるまでの時間が、プレイヤーキャラクタ1510と敵キャラクタ1520との距離が小さいほど短くなるように制御することができる。よって、上級者にとってゲームが易しすぎることにならず好都合である。
【0150】
次に、ゲーム装置200の各部の構成について説明する。
記憶部201は、図16(a)に示すように、敵キャラクタ情報として、敵キャラクタの識別情報と敵キャラクタの位置に加えて、計測部202によって計測された、敵キャラクタを仮想空間内に出現させてから現在までの経過時間を更に対応付けて記憶する。例えば、経過時間は、年,月,日,時,分,秒を単位として記憶されてもよいし、垂直同期割り込み(VSYNC)やXミリ秒割り込み等、ゲーム装置200のCPU 101が定期的に発生させる割り込み処理の発生回数を単位として記憶されてもよい。敵キャラクタが消滅するときの記憶部201に記憶される経過時間は、この敵キャラクタの寿命に相当する。
【0151】
また、上述の実施例と同様に、記憶部201は、プレイヤーキャラクタ情報として、プレイヤーキャラクタの仮想空間内における現在位置を記憶し、候補情報として、敵キャラクタを新たに出現させるときの候補の位置を記憶する。
【0152】
なお、後述するように、消滅設定部209が仮想空間内から敵キャラクタを消滅させると、記憶部201に記憶されるレコードのうち、消滅した敵キャラクタに対応するレコードは、削除部207によって削除される。CPU 101とRAM 103が協働して、記憶部201として機能する。
【0153】
計測部202は、敵キャラクタのそれぞれについて、敵キャラクタを仮想空間内に出現させてから現在までの経過時間を計測し、計測した経過時間を記憶部201に記憶させる。CPU 101が計測部202として機能する。
【0154】
例えば、出現設定部204が新たに出現させる敵キャラクタの位置を含む敵キャラクタ情報を記憶部201に記憶させて仮想空間内に新たな敵キャラクタを出現させると、計測部202は、その新たな敵キャラクタを仮想空間内に出現させてから現在までの経過時間をゼロ秒とする新たなレコードを追加する。そして、計測部202は、VSYNCなどの定期的な割り込み処理が発生するタイミングで、各レコードの経過時間に所定時間(例えばVSYNCであれば1/60秒)を加算していく。この結果、記憶部201には敵キャラクタごとに出現してから現在までの経過時間が記憶される。
【0155】
ここで、図16(b)に示すように、記憶部201は、敵キャラクタを仮想空間内に出現させてから現在までの経過時間を記憶する代わりに、出現設定部204が敵キャラクタを仮想空間内に出現させた時刻など、いつ敵キャラクタを仮想空間内に出現させたかを示す情報を記憶するようにしてもよい。この場合、敵キャラクタを仮想空間内に出現させた時刻と現在時刻との差分を計算すれば、敵キャラクタを仮想空間内に出現させてから現在までの経過時間を得ることができるので、計測部202が各レコードの経過時間に所定時間を加算する処理を省略することができる。
【0156】
計算部203は、上述の実施例と同様に、新たな敵キャラクタを出現させるための基準距離として、記憶部201に記憶された経過時間が長くなるにつれて増大する距離を計算する。CPU 101が計算部203として機能する。
【0157】
状態設定部212は、ゲーム装置200で実行されるゲームが上述の戦闘状態か非戦闘状態かを設定し、設定した状態を示す情報(ゲーム状態情報)を記憶部201に記憶させる。例えば、状態設定部212は、プレイヤーキャラクタと敵キャラクタとの距離が第2所定値R2以内である場合、戦闘状態とし、それ以外の場合、非戦闘状態とする。CPU 101とRAM 103が協働して状態設定部212として機能する。
【0158】
出現判断部209は、仮想空間内に新たな敵キャラクタを出現させるか否かを判断する。CPU 101が出現判断部209として機能する。
【0159】
出現判断部209が新たな敵キャラクタを出現させると判断するタイミングの一つは、既に出現している敵キャラクタを、戦闘によりあるいは制限時間の経過により、後述の消滅設定部211が消滅させたタイミングである。すなわち、消滅設定部211が少なくとも1つの敵キャラクタを消滅させると、出現判断部209が少なくとも1つの新たな敵キャラクタを出現させると判断する。
【0160】
出現判断部209は、既に仮想空間内に出現している敵キャラクタの総数が、仮想空間内に出現させてもよい所定の上限値(最大個数)に達していない場合に、新たな敵キャラクタを出現させると判断してもよい。出現判断部209は、例えば乱数を用いて、任意のタイミングでランダムに出現させると判断してもよい。乱数は、例えば時刻等をシードに用いてその都度発生させたものでもよいし、予め作成した乱数テーブル等を用いたものでもよい。
【0161】
出現判断部209は、プレイヤーキャラクタの属性パラメータの値が変化したタイミングで敵キャラクタを出現させると判断してもよい。例えば、プレイヤーキャラクタが成長して攻撃力や防御力がアップしたタイミングで、所定の上限値を超えない範囲で、敵キャラクタを出現させると判断してもよい。
【0162】
また、出現判断部209は、この上限値を変化させてもよい。
【0163】
例えば出現判断部209は、ゲーム装置200の各部が協働することにより実行されているゲームにおける時間の経過に応じて上限値を変化させる。具体的には、ゲームの開始直後では第1の上限値V1とするが、ゲームを開始してから時間T1が経過すると第2の上限値V2にし、更に時間T2が経過すると第3の上限値にする、といったように、時間が経過するにつれて上限値を大きくしたり小さくしたりする。時間の経過に対して単調増加又は単調減少させてもよい。
【0164】
例えば、プレイ時間が長くなることが想定される初心者に対しては上限値を減少させ、プレイ時間が短くなることが想定される上級者に対しては上限値を増加させることによって、プレイヤーの上達度に応じてゲームの難易度を調節することができる。なお、例えば初心者の腕を上げさせるように導くために、初心者に対してもプレイ時間が長いほど上限値を増加させることとしてもよい。
【0165】
ここで、時間の経過は、現実の時間の経過でもよいし、ゲーム内においてプログラム等により設定される現実の日時とは異なる仮想日時を用いた時間の経過でもよい。例えば、ゲームを一時中断するコマンド(ポーズ)をプレイヤー等から受け付けるとゲーム内における時間が一旦停止し、再開するコマンドをプレイヤー等から受け付けるとゲーム内における時間がまた進み始める、といった機能を備えたゲームにおいて、ポーズ期間中でなければ上限値を大きくしたり小さくしたり変化させるが、ポーズ期間中では上限値を変化させないようにしてもよい。
【0166】
出現判断部209は、消滅設定部211によって消滅した敵キャラクタの数に応じて上限値を変えてもよい。具体的には、戦闘ゲームにおいて、所定時間内に戦闘によって消滅した敵キャラクタの数が増えるほど、上限値を大きくする。つまり、単位時間あたりに消滅させた敵キャラクタの総数が多いほど、プレイヤーのゲーム上達度は高いと推定できるので、より多くの敵キャラクタを出現させてもよいこととする。逆に単位時間あたりに消滅させた敵キャラクタの総数が少ないほど、プレイヤーのゲーム上達度は低いと推定できるので、出現させる敵キャラクタの数を抑えることとする。
【0167】
また、出現判断部209は、プレイヤーキャラクタが成長して攻撃力や防御力などプレイヤーにとって有利な属性パラメータがアップしたタイミングで上限値を増加させ、この増加させた最大個数を超えない範囲で敵キャラクタを出現させると判断してもよい。あるいは、プレイヤーキャラクタがダメージを受けて攻撃力や防御力などの属性パラメータがダウンしたタイミングで上限値を減少させ、この減少させた上限値を超えない範囲で敵キャラクタを出現させると判断してもよい。上限値を減少させた結果、既に出現している敵キャラクタの総数が新たな上限値を超えてしまう場合には、消滅設定部209が超えた分の数の敵キャラクタを消滅させたり、移動部206が超えた分の数の敵キャラクタをプレイヤーキャラクタの位置から遠ざけるように移動させたりしてもよい。このようにプレイヤーの上達度に合わせて敵キャラクタ数の上限値を変化させることによってゲームの難易度を調節することができる。
【0168】
また、出現判断部209は、敵キャラクタを出現させるタイミングを、プレイヤーの上達度に合わせて変化させてもよい。例えば、出現判断部209は、記憶部201に記憶された経過時間(敵キャラクタの寿命)が長いほど、新たな敵キャラクタを出現させるタイミングを遅らせる。具体的には、直近に消滅設定部211が消滅させた敵キャラクタに対応するレコードが示す経過時間Tが第1の所定範囲内(T1≦T<T2)であれば、敵キャラクタを消滅設定部211が消滅させた後すぐに新たな敵キャラクタを出現させ、第2の所定範囲内(T2≦T<T3、ただしT1<T2<T3)であれば、1つの敵キャラクタを消滅設定部211が消滅させた後の所定の猶予時間が経過したときに新たな敵キャラクタを出現させる。すなわち、記憶部201に記憶された経過時間が長い場合は、プレイヤーの上達度が高くないかあるいはプレイヤーキャラクタが強くないと推定できるので、敵キャラクタを倒した後しばらく経ってから新たな敵キャラクタを出現させる。一方、記憶部201に記憶された経過時間が短い場合は、プレイヤーの上達度が高いかあるいはプレイヤーキャラクタが強いと推定できるので、敵キャラクタを倒した後すぐに新たな敵キャラクタを出現させる。
【0169】
出現設定部204は、出現判断部209により新たな敵キャラクタを出現させると判断されると、記憶部201に記憶された候補情報が示す敵キャラクタを出現させる候補の位置のうち、記憶部201に記憶されたプレイヤーキャラクタの位置までの距離が、計算部203により計算された基準距離に最も近い候補の位置を、新たに出現させる敵キャラクタの位置として記憶部201に記憶させて、新たな敵キャラクタを出現させる。CPU 101とRAM 103が協働して、出現設定部204として機能する。
【0170】
例えば、フィールドやダンジョン等に敵キャラクタが存在し、プレイヤーキャラクタが特定のアイテムを入手したり出口に到達したりするまで戦闘を行いながら進んでいくロールプレイングゲームにおいて、既に出現している敵キャラクタC1がプレイヤーキャラクタとの戦闘によって消滅すると、計算部203は、消滅した敵キャラクタC1に対応するレコードが削除部207によって削除される前に、敵キャラクタC1に対応付けられている経過時間を読み出して一時記憶する。この経過時間は、消滅した敵キャラクタC1の寿命に相当する。さらに計算部203は、読み出した経過時間が長いほど大きくなるように(経過時間に対して単調増加するように)基準距離を計算する。そして、出現設定部204は、計算部203により計算された基準距離に最も近い候補の位置に、新たな敵キャラクタを出現させる。
【0171】
つまり、敵キャラクタの寿命が長いほど、次の敵キャラクタの出現位置がプレイヤーキャラクタの位置から遠くになる。例えば、初心者のようにプレイヤーのゲームの上達度が低い場合(ゲームが下手な場合)や、プレイヤーキャラクタの攻撃力が弱い場合、一般に敵キャラクタの寿命は長くなる傾向にあるので、新たな敵キャラクタはプレイヤーキャラクタから遠くの位置に出現しやすくなる。したがって、ゲーム装置200は、プレイヤーの上達度がまだ低いうちに敵キャラクタが次々と近くにばかり出現してしまって実行中のゲームが初心者にとって難しすぎることがないように制御できる。
【0172】
また、敵キャラクタの寿命が短いほど、次の敵キャラクタの出現位置がプレイヤーキャラクタの位置の近くになる。例えば、上級者のようにプレイヤーのゲームの上達度が高い場合(ゲームが上手な場合)や、プレイヤーキャラクタの攻撃力が強い場合、一般に敵キャラクタの寿命は短くなる傾向にあるので、敵キャラクタはプレイヤーキャラクタの近くの位置に出現しやすくなる。したがって、ゲーム装置200は、プレイヤーの上達度が高いときに敵キャラクタが遠くにばかり出現してしまって実行中のゲームが上級者にとって易しすぎることがないように制御できる。
【0173】
例えば、計算部203は、現在時刻に最も近い時刻に(最も直近に)消滅した敵キャラクタに対応付けられている経過時間が長いほど、基準距離を大きくする。現在時刻に最も近い時刻に消滅した敵キャラクタが1つであれば、その敵キャラクタに対応付けられている経過時間を用いて基準距離を計算すればよいし、複数であれば、それらのうちのいずれか1つの敵キャラクタに対応付けられている経過時間を用いたりあるいは平均値を用いたりして基準距離を計算すればよい。
【0174】
例えば、計算部203は、直近に消滅した所定個数の敵キャラクタに対応付けられている経過時間の平均値を計算する。ここで計算される値は、直近に消滅した所定個数分の敵キャラクタの平均寿命に相当する。そして、計算された平均寿命が長いほど、基準距離を大きくしてもよい。
【0175】
受付部205は、コントローラ105を用いてユーザにより入力された指示入力を受け付ける。例えばプレイヤーキャラクタの位置を移動させる指示入力を受け付けると、受け付けた指示入力を移動部206に通知する。CPU 101とRAM 103とコントローラ105とが協働して、受付部205として機能する。
【0176】
移動部206は、受付部205が受け付けた指示入力に応じてプレイヤーキャラクタの位置を移動させ、記憶部201に記憶されたプレイヤーキャラクタの位置を更新する。また、移動部206は、ゲーム展開に応じて敵キャラクタの位置を移動させる。例えば上述のように移動部206は、プレイヤーキャラクタと敵キャラクタとの距離が第1の所定値R1以内になると、プレイヤーキャラクタの位置に近づくように敵キャラクタの位置を移動させる。CPU 101とRAM 103が協働して、移動部206として機能する。
【0177】
消滅判断部210は、出現している敵キャラクタのそれぞれについて、仮想空間内から消滅させるか否かを判断する。仮想空間内に出現させた敵キャラクタの消滅タイミングは様々である。例えば、戦闘状態においてプレイヤーキャラクタが戦闘に勝つと、負けた敵キャラクタを消滅させると判断する。つまり、プレイヤーキャラクタとの戦闘の結果、敵キャラクタの所定の属性パラメータ(いわゆる生命力、体力、ヒットポイントなど)が先にゼロになると、敵キャラクタの負けとなり、敵キャラクタを消滅させると判断する。
【0178】
また例えば、消滅判断部210は、仮想空間内をプレイヤーキャラクタが移動した結果、既に出現している敵キャラクタがプレイヤーキャラクタと容易には接触できないほどあるいは画面に映らないほど遠くに離れてしまうと、もはやその敵キャラクタを出現させている意味がなくなってしまうため、その敵キャラクタを消滅させると判断する。
【0179】
敵キャラクタとして、時限爆弾のように出現後(作動後)に制限時間が経過すると爆発して無くなったり、仮想空間内から消えたりするキャラクタを設定することもできる。消滅判断部210は、このような自動消滅型の敵キャラクタについては、計測部202によって計測される出現してから現在までの経過時間が制限時間に達すれば、画面から消滅させると判断する。CPU 101が、消滅判断部210として機能する。
【0180】
消滅設定部211は、消滅判断部210により敵キャラクタを消滅させると判断されると、敵キャラクタを画面から消滅させる。CPU 101とRAM 103と画像処理部108が協働して動作することにより、消滅設定部211として機能する。
【0181】
削除部207は、記憶部201に記憶された敵キャラクタ情報の中から、消滅設定部211が消滅させた敵キャラクタに対応するレコードを削除する。CPU 101とRAM 103が協働して、削除部207として機能する。
【0182】
出力部208は、記憶部201に記憶されたプレイヤーキャラクタの位置と敵キャラクタの位置を読み出して、プレイヤーキャラクタと敵キャラクタの画像を、読み出した位置にそれぞれ出力する。CPU 101とRAM 103と画像処理部108が協働して、出力部208として機能する。
【0183】
次に、本実施例における出現・消滅設定処理について、図17のフローチャートを用いて説明する。このフローチャートは敵キャラクタが出現してから消滅するまでの敵キャラクタの“一生”を表すとも言える。
【0184】
まず、出現設定部204は、仮想空間内に敵キャラクタを出現させるか否かを判別する(ステップS1701)。例えば、上述したように、既に出現している敵キャラクタが戦闘などによって消滅したか否か、既に出現している敵キャラクタの総数が所定の最大個数に達しているか否か、等に応じて、判別する。
【0185】
出現させないと判別した場合(ステップS1701;NO)、出現させるタイミングになるまで待機する。
【0186】
出現させると判別した場合(ステップS1701;YES)、計算部203は、記憶部201に記憶された経過時間に基づいて基準距離を計算する(ステップS1702)。
【0187】
出現設定部204は、計算部203によって計算された基準距離に最も近い出現候補位置を敵キャラクタの出現位置とするレコードを、敵キャラクタ情報に追加し(ステップS1703)、敵キャラクタを出現させる(ステップS1704)。新規に出現させた直後の敵キャラクタに対応する経過時間の初期値はゼロとし、後述の処理において随時カウントアップしていく。この経過時間は、敵キャラクタが出現してから現在に至るまでに経過した時間である。
【0188】
移動部206は、記憶部201の敵キャラクタ情報が示す経過時間を更新し、且つ、敵キャラクタの位置を移動させる(ステップS1705)。また、移動部206は、プレイヤーキャラクタの位置と敵キャラクタの位置との距離が上述の第1の所定値R1以内か否かを判別する(ステップS1706)。上述のように第1の所定値R1は、出現している敵キャラクタの位置をプレイヤーキャラクタの位置に近づけるように移動させるか否かを判別するために用いる値である。
【0189】
例えば、ステップS1705〜ステップS1706の処理を、VSYNCごとに定期的に実行し、移動部206は敵キャラクタに対応付けられた経過時間と位置をVSYNCごとに更新する。
【0190】
プレイヤーキャラクタの位置と敵キャラクタの位置との距離が第1の所定値R1以内ではない場合(ステップS1706;NO)、ステップS1705に戻る。
【0191】
一方、プレイヤーキャラクタの位置と敵キャラクタの位置との距離が第1の所定値R1以内である場合(ステップS1706;YES)、移動部206は、敵キャラクタの位置をプレイヤーキャラクタの位置に近づけるように移動させ(ステップS1707)、敵キャラクタ情報が示す位置を更新する。
【0192】
次に移動部206は、プレイヤーキャラクタの位置と敵キャラクタの位置との距離が上述の第2の所定値R2以内か否かを判別する(ステップS1708)。上述のように第2の所定値R2は、出現している敵キャラクタとプレイヤーキャラクタとが戦闘状態に入るか否かを判別するために用いる値である。
【0193】
例えば、ステップS1707〜ステップS1708の処理を、VSYNCごとに定期的に実行し、移動部206は敵キャラクタに対応付けられた経過時間と位置とをVSYNCごとに更新する。
【0194】
プレイヤーキャラクタの位置と敵キャラクタの位置との距離が第2の所定値R2以内ではない場合(ステップS1708;NO)、ステップS1707に戻る。
【0195】
一方、プレイヤーキャラクタの位置と敵キャラクタの位置との距離が第2の所定値R2以内である場合(ステップS1708;YES)、CPU 101はゲームを戦闘状態に移行しプレイヤーキャラクタと敵キャラクタの戦闘を開始する(ステップS1709)。この戦闘によって、プレイヤーキャラクタの勝敗が決まる。なお、戦闘状態でゲーム装置200がどのような演出を実行するのかについては、本発明では限定されない。
【0196】
戦闘の結果、プレイヤーキャラクタが勝った場合(ステップS1710;YES)、消滅設定部211は、仮想空間内から相手の敵キャラクタ(負けた敵キャラクタ)を消滅させる(ステップS1711)。そして、削除部207は、消滅させた敵キャラクタに対応するレコードを記憶部201の敵キャラクタ情報から削除する(ステップS1712)。
【0197】
プレイヤーキャラクタが勝たなかった場合(ステップS1710;NO)、CPU 101は、プレイヤーキャラクタの敗北あるいは引き分けの演出、ゲーム終了、ゲームやり直し等、所定のゲーム処理を実行する(ステップS1713)。
【0198】
このように本実施例によれば、敵キャラクタが出現してから倒されるまでの時間すなわち敵キャラクタの寿命の長さに応じて、プレイヤーのゲームの上達度を推定し、新たな敵キャラクタが出現する場所をプレイヤーキャラクタの近くにしたり遠くにしたりする。よって、ゲームが初心者にとっては難しくなり過ぎず、上級者にとっては簡単過ぎないように調節することができる。
【0199】
本実施例は2次元の仮想空間を考慮したが、3次元でも1次元でもよい。図18に示すように、例えば3次元デカルト座標系を用いる場合、プレイヤーキャラクタ1810の位置と敵キャラクタ1820の位置との距離として、3軸方向のすべてを考慮した距離DXYZを用いてもよいし、距離DXYZの特定方向成分DX,DY,DZ,DXY,DXZ,DYZのいずれかを用いてもよい。
【0200】
(実施例8)
次に、本発明の他の実施例について説明する。本実施例では、プレイヤーキャラクタと敵キャラクタの戦闘時間(対戦時間)が長いほど、次に出現させる新たな敵キャラクタの位置をプレイヤーキャラクタの近くにしたり遠くにしたりして変化させる。以下詳述する。
【0201】
本実施例の記憶部201は、図19に示すように、敵キャラクタ情報として、敵キャラクタの識別情報と敵キャラクタの位置に加えて、プレイヤーキャラクタがその敵キャラクタとの戦闘状態に入った時刻(戦闘開始時刻)を更に対応付けて記憶する。移動部206は、プレイヤーキャラクタの位置と敵キャラクタの位置との距離が上述の第2の所定値R2以下になるようにプレイヤーキャラクタ及び/又は敵キャラクタを移動させた時刻を、戦闘開始時刻として記憶部201に記憶させる。
【0202】
計算部203は、新たな敵キャラクタを出現させるための基準距離として、戦闘状態に入ってからプレイヤーキャラクタが敵キャラクタに勝つまでに要した時間が長くなるにつれて増大する距離を計算する。すなわち、戦闘状態になってから戦闘状態が終わるまでの戦闘時間が長いほど基準距離を大きくし、戦闘時間が短いほど基準距離を小さくする。
【0203】
プレイヤーキャラクタが敵キャラクタに勝つまでに要した時間は、移動部206がプレイヤーキャラクタの位置と敵キャラクタの位置との距離が上述の第2の所定値R2以下になるように移動させた時刻(記憶部201に記憶されている戦闘開始時刻)と、消滅設定部211がその敵キャラクタを消滅させた時刻と、の差分として求めることができる。
【0204】
例えば、計算部203は、プレイヤーキャラクタと、現在時刻に最も近い時刻に(最も直近に)消滅した敵キャラクタと、の戦闘時間が長いほど、基準距離を大きくする。
【0205】
例えば、計算部203は、プレイヤーキャラクタと、直近に消滅した所定個数の敵キャラクタと、の戦闘時間の平均値(平均戦闘時間)を計算する。そして、計算された平均戦闘時間が長いほど、基準距離を大きくしてもよい。
【0206】
出現設定部204は、記憶部201に記憶された候補情報が示す敵キャラクタを出現させる候補の位置のうち、記憶部201に記憶されたプレイヤーキャラクタの位置までの距離が、計算部203により計算された基準距離に最も近い候補の位置を、新たに出現させる敵キャラクタの位置として記憶部201に記憶させて、新たな敵キャラクタを出現させる。
【0207】
つまり、戦闘を始めてから敵キャラクタを倒して消滅させるまでの時間が長いほど、次に出現する敵キャラクタの初期位置がプレイヤーキャラクタの位置から遠くになる。例えば、初心者のようにプレイヤーのゲームの上達度が低い場合(ゲームが下手な場合)や、プレイヤーキャラクタの攻撃力が弱い場合、戦闘を始めてから敵キャラクタを倒すまでの時間は長くなる傾向にあるので、新たな敵キャラクタはプレイヤーキャラクタから遠くの位置に出現しやすくなる。したがって、ゲーム装置200は、プレイヤーの上達度がまだ低いうちに敵キャラクタが次々と近くにばかり出現してしまい、ゲームが初心者にとって難しすぎることがないように調節できる。
【0208】
また、戦闘を始めてから敵キャラクタを倒して消滅させるまでの時間が短いほど、次に出現する敵キャラクタの初期位置がプレイヤーキャラクタの位置の近くになる。例えば、上級者のようにプレイヤーのゲームの上達度が高い場合(ゲームが上手な場合)や、プレイヤーキャラクタの攻撃力が強い場合、敵キャラクタの寿命は短くなる傾向にあるので、敵キャラクタはプレイヤーキャラクタの近くの位置に出現しやすくなる。したがって、ゲーム装置200は、プレイヤーの上達度が高いときに敵キャラクタが遠くにばかり出現してしまい、ゲームが上級者にとって易しすぎることがないように調節できる。
【0209】
本実施例のように戦闘状態と非戦闘状態とが存在するゲームの場合、計算部203は、いずれかの敵キャラクタと戦闘状態にある時間の合計(又は非戦闘状態でない時間の合計)を、プレイヤーキャラクタと敵キャラクタの戦闘時間(対戦時間)とみなして取り扱ってもよい。
【0210】
例えば、ゲームを一時中断する所定のコマンドをプレイヤー等から受け付けるとゲーム内における時間が一旦停止(ポーズ)し、再開する所定のコマンドをプレイヤー等から受け付けるとゲーム内における時間がまた進み始める、といった機能を備えたゲームにおいて、ポーズ期間中を非戦闘状態とし、それ以外を戦闘状態としてもよい。つまり戦闘によって属性パラメータが変化しうるゲーム時間内を戦闘状態としてもよい。
【0211】
本発明は、上述した実施例に限定されず、種々の変形及び応用が可能である。また、上述した実施例の各構成要素を自由に組み合わせることも可能である。
【0212】
上述の各実施例では、出現設定部204は敵キャラクタの出現位置を選択しているが、本発明は敵キャラクタに限らず他の任意のキャラクタオブジェクトを出現させる場合の出現位置の選択方法としても用いることができる。上述した敵キャラクタには、例えば地雷、落とし穴、ワナ、障害物など、プレイヤーキャラクタに対して何らかの悪い影響を及ぼす可能性のあるキャラクタオブジェクトも含めることができる。
【0213】
上述の各実施例では、出現設定部204は敵キャラクタの出現位置として1つの位置を選択しているが、M個以上(Mは2以上で候補数以下の整数)の位置を選択することもできる。この場合、出現設定部204は、ステップS604において、記憶部201に記憶された候補の中から基準距離に近いものの上位M個を選択し、これらM個の位置を新たな敵キャラクタの出現位置とすればよい。選択したM個の位置どうしは、敵キャラクタを配置するときに互いに重ならないように十分離れていることが望ましい。
【0214】
上述の各実施例では、プレイヤーキャラクタが1つであるとしているが、複数のプレイヤーが参加できるゲームのように複数のプレイヤーキャラクタがあってもよい。
【0215】
ゲーム装置200を装置の全部又は一部として動作させるためのプログラムを、メモリカード、CD−ROM、DVD、MO(Magneto Optical disk)などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
【0216】
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【0217】
以上説明したように、本発明によれば、プレイヤーにとってゲームが難しすぎたり易しすぎたりしないように調節するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムを提供することができる。
【図面の簡単な説明】
【0218】
【図1】本発明のゲーム装置が実現される典型的な情報処理装置の概要構成を示す図である。
【図2】ゲーム装置の各部が行う処理を説明するための図である。
【図3】(a)〜(c)は記憶部に記憶される情報の構成例である。(a)はプレイヤーキャラクタの位置を示すデータの構成例である。(b)は敵キャラクタの位置を示すデータの構成例である。(c)は敵キャラクタの出現時の位置の候補を示すデータの構成例である。
【図4】ゲームの経過時間と、新たな敵キャラクタの出現位置を求めるための基準距離との関係の一例を示す図である。
【図5】基準距離と、新たに敵キャラクタを出現させる位置の候補との関係の例を示す図である。
【図6】ゲーム装置が行う出現設定処理を説明するためのフローチャートである。
【図7】実施例2において、ゲーム装置が行う処理を説明するためのフローチャートである。
【図8】実施例3において、ゲーム装置が行う処理を説明するためのフローチャートである。
【図9】敵キャラクタを移動させる位置の例を示す図である。
【図10】実施例4において、ゲーム装置が行う出現設定処理を説明するためのフローチャートである。
【図11】(a)(b)共に、基準距離と、新たに敵キャラクタを出現させる位置の候補との関係の例を示す図である。
【図12】基準距離と、新たに敵キャラクタを出現させる位置の候補と、許容範囲との関係の例を示す図である。
【図13】基準距離と、新たに敵キャラクタを出現させる位置の候補と、プレイヤーキャラクタの移動方向との関係の例を示す図である。
【図14】実施例7のゲーム装置の機能的な構成を説明するための図である。
【図15】プレイヤーキャラクタと敵キャラクタの位置関係を説明するための図である。
【図16】(a)と(b)はそれぞれ、記憶部に記憶される敵キャラクタ情報の構成例を示す図である。
【図17】出現・消滅設定処理を説明するためのフローチャートである。
【図18】プレイヤーキャラクタの位置と敵キャラクタの位置との距離を説明するための図である。
【図19】実施例8において、記憶部に記憶される敵キャラクタ情報の構成例を示す図である。
【符号の説明】
【0219】
100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェース
105 コントローラ
106 外部メモリ
107 DVD−ROMドライブ
108 画像処理部
109 音声処理部
110 NIC
200 ゲーム装置
201 記憶部
202 計測部
203 計算部
204 出現設定部
205 受付部
206 移動部
207 削除部
208 出力部
209 出現判断部
210 消滅判断部
211 消滅設定部
212 状態設定部

【特許請求の範囲】
【請求項1】
プレイヤーの指示により仮想空間内を移動するプレイヤーキャラクタの位置と、敵キャラクタの位置と、当該敵キャラクタが当該仮想空間内に出現してから現在までの経過時間と、当該仮想空間内に新たな敵キャラクタを出現させる候補の位置と、を記憶する記憶部と、
当該経過時間を計測して前記記憶部に記憶させる計測部と、
前記記憶されている経過時間に対して単調増加する距離を計算する計算部と、
当該仮想空間内に新たな敵キャラクタを出現させるか否かを判断する出現判断部と、
前記出現判断部により当該新たな敵キャラクタを出現させると判断された場合、前記記憶されている敵キャラクタを新たに出現させる位置の候補のうち、当該プレイヤーキャラクタまでの距離が前記計算された距離に最も近い候補の位置を、新たに出現させる敵キャラクタの位置として前記記憶部に記憶させて、新たな敵キャラクタを出現させる出現設定部と、
を備えることを特徴とするゲーム装置。
【請求項2】
請求項1に記載のゲーム装置であって、
前記計算部は、当該仮想空間内に出現している敵キャラクタに対応付けられている経過時間の平均値を計算し、当該計算された平均値に対して単調増加する距離を計算する、
ことを特徴とするゲーム装置。
【請求項3】
請求項1に記載のゲーム装置であって、
前記計算部は、当該仮想空間内に出現している敵キャラクタに対応付けられている経過時間のうち最も長い経過時間に対して単調増加する距離を計算する、
ことを特徴とするゲーム装置。
【請求項4】
請求項1に記載のゲーム装置であって、
前記計算部は、当該仮想空間内に出現している敵キャラクタに対応付けられている経過時間のうち最も短い経過時間に対して単調増加する距離を計算する、
ことを特徴とするゲーム装置。
【請求項5】
請求項1に記載のゲーム装置であって、
当該敵キャラクタの位置が当該プレイヤーキャラクタの位置から所定距離範囲内にある場合に当該プレイヤーキャラクタを戦闘状態とし、そうでない場合に当該プレイヤーキャラクタを非戦闘状態とする状態設定部と、
当該プレイヤーキャラクタが当該戦闘状態にある場合に、当該プレイヤーからの指示入力に基づいて、当該敵キャラクタを消滅させるか否かを判断する消滅判断部と、
前記消滅判断部により当該敵キャラクタを消滅させると判断された場合に、当該仮想空間内から当該敵キャラクタを消滅させる消滅設定部と、
を更に備えることを特徴とするゲーム装置。
【請求項6】
請求項5に記載のゲーム装置であって、
前記出現判断部は、前記消滅設定部が当該敵キャラクタを消滅させた場合に、当該新たな敵キャラクタを出現させると判断する、
ことを特徴とするゲーム装置。
【請求項7】
請求項5に記載のゲーム装置であって、
前記出現判断部は、当該新たな敵キャラクタを出現させるか否かを乱数を用いて判断する、
ことを特徴とするゲーム装置。
【請求項8】
請求項5に記載のゲーム装置であって、
前記出現判断部は、当該仮想空間内に出現している敵キャラクタの総数が所定の上限値より少ない場合に、当該新たな敵キャラクタを出現させると判断する、
ことを特徴とするゲーム装置。
【請求項9】
請求項8に記載のゲーム装置であって、
前記出現判断部は、当該上限値を、前記ゲーム装置にて実行されるゲームにおける時間の経過に応じて変化させる、
ことを特徴とするゲーム装置。
【請求項10】
請求項8に記載のゲーム装置であって、
前記出現判断部は、当該上限値を、前記消滅設定部により消滅された敵キャラクタの数に応じて変化させる、
ことを特徴とするゲーム装置。
【請求項11】
請求項5に記載のゲーム装置であって、
前記記憶部は、当該敵キャラクタが当該仮想空間内に出現してから現在までの経過時間を記憶する代わりに、当該敵キャラクタを前記状態設定部が当該戦闘状態に設定してから前記消滅設定部が消滅させるまでの経過時間を記憶する、
ことを特徴とするゲーム装置。
【請求項12】
請求項1乃至11のいずれか1項に記載のゲーム装置であって、
当該プレイヤーキャラクタの位置と当該敵キャラクタの位置との距離が所定値以内である場合、当該敵キャラクタの位置を当該プレイヤーキャラクタの位置に近づけるように移動させ、前記記憶部に記憶される当該敵キャラクタの位置を更新する移動部を更に備える、
ことを特徴とするゲーム装置。
【請求項13】
請求項1乃至11のいずれか1項に記載のゲーム装置であって、
当該プレイヤーキャラクタの位置と当該敵キャラクタの位置との距離が、
(a)所定値以内である場合、当該敵キャラクタの位置から当該プレイヤーキャラクタの位置への方向に当該敵キャラクタが移動する確率を、他の方向に当該敵キャラクタが移動する確率より相対的に大きくし、
(b)そうでない場合、当該敵キャラクタの位置から当該プレイヤーキャラクタの位置への方向に当該敵キャラクタが移動する確率と、当該他の方向に当該敵キャラクタが移動する確率と、を等しくして、
当該敵キャラクタの位置をランダムに移動させ、前記記憶部に記憶される当該敵キャラクタの位置を更新する移動部を更に備える、
ことを特徴とするゲーム装置。
【請求項14】
請求項12又は13に記載のゲーム装置であって、
前記移動部は、当該敵キャラクタを、所定の最大移動速度以下で移動させる、
ことを特徴とするゲーム装置。
【請求項15】
請求項12乃至14のいずれか1項に記載のゲーム装置であって、
前記移動部は、当該敵キャラクタを、所定の最小移動速度以上で移動させる、
ことを特徴とするゲーム装置。
【請求項16】
記憶部、計測部、計算部、出現判断部、出現設定部を有するゲーム装置にて実行されるゲーム処理方法であって、
前記記憶部には、プレイヤーの指示により仮想空間内を移動するプレイヤーキャラクタの位置と、敵キャラクタの位置と、当該敵キャラクタが当該仮想空間内に出現してから現在までの経過時間と、当該仮想空間内に新たな敵キャラクタを出現させる候補の位置と、が記憶され、
前記計測部が、当該経過時間を計測して前記記憶部に記憶させる計測ステップと、
前記計算部が、前記記憶されている経過時間に対して単調増加する距離を計算する計算ステップと、
前記出現判断部が、当該仮想空間内に新たな敵キャラクタを出現させるか否かを判断する出現判断ステップと、
前記出現判断部により当該新たな敵キャラクタを出現させると判断された場合、前記出現設定部が、前記記憶されている敵キャラクタを新たに出現させる位置の候補のうち、当該プレイヤーキャラクタまでの距離が前記計算された距離に最も近い候補の位置を、新たに出現させる敵キャラクタの位置として前記記憶部に記憶させて、新たな敵キャラクタを出現させる出現設定ステップと、
を備えることを特徴とするゲーム処理方法。
【請求項17】
コンピュータを、
プレイヤーの指示により仮想空間内を移動するプレイヤーキャラクタの位置と、敵キャラクタの位置と、当該敵キャラクタが当該仮想空間内に出現してから現在までの経過時間と、当該仮想空間内に新たな敵キャラクタを出現させる候補の位置と、を記憶する記憶部、
当該経過時間を計測して前記記憶部に記憶させる計測部、
前記記憶されている経過時間に対して単調増加する距離を計算する計算部、
当該仮想空間内に新たな敵キャラクタを出現させるか否かを判断する出現判断部、
前記出現判断部により当該新たな敵キャラクタを出現させると判断された場合、前記記憶されている敵キャラクタを新たに出現させる位置の候補のうち、当該プレイヤーキャラクタまでの距離が前記計算された距離に最も近い候補の位置を、新たに出現させる敵キャラクタの位置として前記記憶部に記憶させて、新たな敵キャラクタを出現させる出現設定部、
として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate