説明

ゲームシステム、ゲーム制御方法、ならびに、プログラム

【課題】プレイヤーのプレイ順序をできるだけ所定の規則に合わせつつも、プレイが遅れたプレイヤーがいても適切に対処してゲームに参加できるようにするゲームシステム等を提供する。
【解決手段】ゲームシステムを構成する各端末装置202は、他の端末装置202を操作するプレイヤーを含む全プレイヤーのゲーム内における段階と遅延の情報を記憶部301に記憶し、プレイ判定部302が自身のプレイヤーの番と判定して操作受付部303がプレイヤーからの受け付けた操作入力と操作受信部305が他の端末装置202から受信した操作入力に基づいて段階更新部306が記憶部301を更新し、中断受付部311がプレイヤーからの中断入力を受け付けたり他の端末装置202から中断通知が受信されると遅延更新部307が記憶部301を更新するほか、段階の情報が更新されるとそれに合わせて遅延更新部307が遅延の情報を更新する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プレイヤーのプレイ順序をできるだけ所定の規則に合わせつつも、プレイが遅延したプレイヤーがいても適切に対処してゲームに参加できるようにするのに好適なゲームシステム、ゲーム制御方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【0002】
従来から、複数のプレイヤーが参加するゲームにおいては、ゲームが複数の段階に分割され、各段階においてプレイヤーが同じ目的を達成することで段階がクリアされて、ゲーム進行するようなものが提供されている。特にこのようなゲームにおいては、プレイヤーの各段階におけるプレイが、できるだけ交互になるようにするとともに、プレイヤー同士ができるだけ同じ段階にいるようにすることが多い。
【0003】
たとえばダーツやボーリングにおいては、各プレイヤーは、できるだけ交互にプレイを行うのが一般的であるし、ゴルフにおいては、ボールがホールから遠いプレイヤーを優先してプレイさせる手法が採用されている。
【0004】
一方で、複数のプレイヤーが参加するゲームにおいては、あるプレイヤーに中座したい用事が生じた場合に、他のプレイヤーのゲームの進行をできるだけ妨げないようにする工夫が必要な場合も多い。たとえば、雀荘においては、ゲームの途中でプレイヤーが中座するときには、スタッフが代打ちを務めてプレイを継続する、ということが行われている。
【0005】
このほか、ネットワーク対応型のゲームにおいては、このような状況に対応する技術が、たとえば以下の文献に提案されている。
【非特許文献1】「I/O 1998年12月号(ネットワーク・ゲーム情報室 ネットで遊ぼ! ネットワーク対応シミュレーション・ゲームで新たな遊び方を発見しよう)」株式会社工学社、1998年12月1日、第23巻、第12号、p.72〜p.73
【0006】
[非特許文献1]においては、行動の時間単位として「ターン」(上記説明における「段階」に相当する。)を導入し、プレイヤーは、各ターンにおいて、制限時間内にゲームの操作をしなければならず、全プレイヤーの操作が完了するか制限時間を超えた段階で、操作したコマンドを同時に実行する技術が提案されている。
【発明の開示】
【発明が解決しようとする課題】
【0007】
さて、複数のプレイヤーが参加するゲームには、麻雀やトランプのように、あるプレイヤーが中座してプレイを中断すると、ゲーム全体が停止してしまうものがある。一方、ボーリングやダーツ、ゴルフのようなゲームの場合には、原理的には、あるプレイヤーが中座してプレイを中断したとしても、各プレイヤーがそれぞれのプレイ速度でプレイを続け、中座プレイヤーがあとから追いかけてプレイして、ゲームを成立させることも不可能ではない。
【0008】
特に、ある程度のまとまった段階が全プレイヤーによってクリアされたときの結果に応じてゲームの成績や勝敗が決定される場合には、成績や勝敗が決するまでに、中座プレイヤーが追い付けば十分だからである。
【0009】
そして、雀荘における代打ちや、[非特許文献1]に開示の手法は、前者のタイプのゲームに対応するものである。
【0010】
一方、後者のタイプのゲームにおいては、現実世界では、プレイヤーが一緒に同じ場所を移動したり同じ場所で行動することが重要視されるが、ネットワーク対戦においては、ある程度の時間差が許容される場合も多い。
【0011】
そこで、複数のプレイヤーが参加する状況で、あるプレイヤーのプレイが他のプレイヤーのプレイに遅延して時間差が生じた場合であっても、適切に処理を行って、ゲーム全体を円滑に進める技術が強く求められている。
【0012】
本発明は、上記のような課題を解決するもので、プレイヤーのプレイ順序をできるだけ所定の規則に合わせつつも、プレイが遅延したプレイヤーがいても適切に対処してゲームに参加できるようにするのに好適なゲームシステム、ゲーム制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【0013】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0014】
本発明の第1の観点に係るゲームシステムは、複数の端末装置を備え、当該複数の端末装置のそれぞれには、複数のプレイヤーのいずれかが割り当てられ、当該複数のプレイヤーのそれぞれは、複数の段階を順にクリアすることにより当該ゲームを進め、当該複数の端末装置は、当該複数のプレイヤーのプレイ順序を一意に定める所定の規則を共有する。
【0015】
したがって、一旦ゲームが開始されると、他の端末装置への問い合わせをしなくとも、各端末装置がプレイヤーのプレイ順序を同定することができ、しかも、その順序は、全端末装置で共通することとなる。
【0016】
そして、当該複数の端末装置のそれぞれは、記憶部、プレイ判定部、操作受付部、操作送信部、操作受信部、段階更新部、遅延更新部を備え、以下のように構成する。
【0017】
すなわち、記憶部には、当該複数のプレイヤーの全員について、当該プレイヤーが遅延しているか否かを示す遅延情報と、当該プレイヤーが当該複数の段階のそれぞれをクリアしたか否かを示す段階情報と、が記憶される。
【0018】
ここで、段階情報は、たとえば、ボーリングの場合は、何フレーム目までプレイしたか、ゴルフの場合には、何ホール目まで完了したか、ダーツの場合には、何スロー目まで行ったか、等の情報に相当する。
【0019】
ここで、各段階は、複数に分割されたゲームの区切り、まとまり、あるいはステージに相当するもので、各段階においてプレイヤーは一緒に行動することが望まれ、全段階をクリアした時点で、全員の総合的な成績や勝敗が決せされるものである。また、本発明では、各段階は、他のプレイヤーがいてもいなくてもプレイが成立しうるようなゲームを想定している。
【0020】
また、遅延情報は、当該プレイヤーに何らかの事情で遅延が発生しており他のプレイヤーとのプレイの上での同期がまだ取り戻せていない、という状態であるか否かを示す情報に相当する。
【0021】
このほか、記憶部には、ゲームの進行に必要な各プレイヤーのゲームにおける状態を示す情報やこれまでの戦績等の情報をさらに記憶することとしても良い。後述するように、記憶部に記憶される情報は、適宜更新される。
【0022】
理解を容易にするため、以下のような用語を用いて、プレイヤーを区別する。すなわち、ある端末装置に着目した場合に、
(1)「自プレイヤー」とは、当該端末装置に割り当てられたプレイヤーをいう。
(2)「主プレイヤー」とは、当該端末装置の記憶部に記憶される当該遅延情報において、遅延していない旨が記憶されているプレイヤーをいう。
(3)「副プレイヤー」とは、当該端末装置の記憶部に記憶される当該遅延情報において、遅延している旨が記憶されているプレイヤーをいう。
(4)「他プレイヤー」とは、操作通知の送信元の端末装置に割り当てられるプレイヤーをいう。他プレイヤーについては、後述する。
(5)「中断プレイヤー」とは、中断通知の送信元の端末装置に割り当てられるプレイヤーをいう。中断プレイヤーについては、後述する。
【0023】
さて、プレイ判断部は、自プレイヤーのプレイ条件
(a)当該自プレイヤーが、当該副プレイヤーであり、当該主プレイヤー全員がクリアした段階のうち、当該自プレイヤーがクリアしていない段階が存在する、もしくは、
(b)当該自プレイヤーが当該主プレイヤーであり、当該主プレイヤー全員に対して当該共有される所定の規則を適用すると、当該自プレイヤーが当該プレイ順序において最初になる、
が満たされたか否かの判定を行う。
【0024】
プレイ条件(a)は、自プレイヤーが何らかの事情でプレイを中断して、まだ主プレイヤーとの同期がとれていない状態に対応するものである。この状態は、記憶部に記憶される段階情報において、主プレイヤー全員がクリアした段階のうち、副プレイヤーである自プレイヤーがクリアしていない段階が存在する、と言いかえることができる。そこで、このような状態の場合には、自プレイヤーのプレイが開始できる状態として、主プレイヤーに追い付けるようにする。
【0025】
プレイ条件(b)は、自プレイヤーに遅延が生じておらず、他の主プレイヤーとともにプレイを続けている状態に対応するものである。たとえば4人のプレイヤーがボーリングのプレイをしている場合、一番最初に、じゃんけんやコイントス、過去の戦績などに基づいて、各フレームにおけるプレイの順序を決めるが、この中から誰かが遅延した場合には、当該順序から当該遅延したプレイヤーを削除した順序とする、という規則を定めておけば、主プレイヤーが使用するいずれの端末装置においても、同じプレイ順序が得られることになる。
【0026】
たとえば、4人のプレイヤーがA、B、C、Dの順に繰り返して投げる、というルールの場合に、Cが遅延したら、Cが復帰するまで、A、B、Dの3人が順に繰り返して投げることになる。
【0027】
そして、現在のフレームにおいて、A、B、Dのいずれもまだ投げ終わっていないときには、プレイ順序の先頭はAとなり、Aが1投してストライクもしくは2投した後は、Aの段階は1つ進んで、プレイ順序の先頭はBとなり、Bが1投してストライクもしくは2投した後は、Bの段階は1つ進んで、プレイ順序の先頭はDとなり、Dが1投してストライクもしくは2投した後は、Dの段階は1つ進んで、プレイ順序の先頭はまたAとなり、…のように、プレイ順序は、主プレイヤーのそれぞれがゲームの段階を進むごとに巡回的に変化していくことになる。
【0028】
そして、操作受付部は、当該自プレイヤーのプレイ条件が満たされると判定された場合、当該自プレイヤーがクリアしていない段階のうち当該順における先頭の段階に対する当該自プレイヤーからの操作入力を受け付ける。
【0029】
上記のように、プレイ条件が満たされるのは、主プレイヤーの場合は自分の番が来たとき、副プレイヤーの場合は主プレイヤーに追い付くまで、ということとなる。ほとんどの場合、主プレイヤーは複数人であり、副プレイヤーは1人であるから、少々の遅延があっても、ゲームの段階を進めるスピードが異なるため、遅延している副プレイヤーは、主プレイヤーに追い付くことができる。
【0030】
操作入力を受け付けるための機器としては、ゲームのコントローラやキーボード、マウス、ジョイスティック、フットスイッチなどを採用することができるほか、コントローラの3次元的な位置や方向、姿勢の情報を操作入力として採用しても良い。たとえば、コントローラに加速度センサが塔載されていたり、コントローラの位置や姿勢を赤外線や超音波が到達するのに要する時間や位相の差等を利用して測定したりできる場合には、コントローラを振り回す動作が、ボーリングのボールを投げる動作やゴルフのクラブを振る動作等に対応付けられ、これらの動作に対する測定値や、この測定値を適宜処理した結果が操作入力として用いられることになる。
【0031】
さらに、操作送信部は、当該複数の端末装置のうち他の端末装置に、受け付けられた操作入力を指定する操作通知を送信し、操作受信部は、当該複数の端末装置のうち他の端末装置から送信される操作通知を受信する。
【0032】
操作送信部、操作受信部は、互いに対になる要素であり、自プレイヤーのプレイの様子を他の端末装置に知らせ、他の端末装置のプレイヤーのプレイの様子を知得するためのものである。
【0033】
本発明においては、いわゆるサーバ・クライアント方式を主たる方式としてゲームを進めるのではなく、各端末装置が対等の立場でゲームを進めることとしている。そして、ゲームを実現している以上、操作入力が成功したか否かは、各端末装置で判断可能な事項であるから、全プレイヤーの操作入力を、全端末装置で処理することによって、全プレイヤーのそれぞれが次の段階に進めるかどうかを判断できるようにするのである。
【0034】
なお、サーバ・クライアント方式に本発明を適用する場合には、本発明の各端末における処理を、適宜省略すれば良い。
【0035】
したがって、各端末装置における判断の結果が一致するかチェックすることにより、チート行為などをできるだけ防止することも可能である。
【0036】
一方、段階更新部は、記憶部に記憶される段階情報を更新する。具体的には、
(m)受け付けられた操作入力により、当該自プレイヤーがクリアしていない段階のうち当該順における先頭の段階におけるクリア条件が満たされた場合、当該自プレイヤーがクリアしていない段階のうち当該順における先頭の段階を当該自プレイヤーがクリアした旨を記憶させ、
(n)受信された操作通知に指定される操作入力により、当該他プレイヤーがクリアしていない段階のうち当該順における先頭の段階におけるクリア条件が満たされた場合、当該他プレイヤーがクリアしていない段階のうち当該順における先頭の段階を当該他プレイヤーがクリアした旨を記憶させる。
【0037】
ここで、他プレイヤーとは、上述の通り、操作通知の送信元の端末装置に割り当てられるプレイヤーをいう。
【0038】
クリア条件とは、ゲームそれぞれにおいて段階を進めるのに必要な条件であり、ボーリングの場合には、1投してストライクとなるか、もしくは、2投すると、そのプレイヤーはその段階(フレーム)をクリアしたことになる。ダーツの場合には、1スロー(3投)すると、そのプレイヤーはその段階(スロー)をクリアしたことになる。
【0039】
ゴルフの場合には、ボールがカップインすると、その段階をクリアしたこととするのが典型的であるが、ボールがグリーンにのった場合にクリア、そのグリーンでカップに入るとクリア、のように、さらに段階を細かく分けることも可能である。
【0040】
上記(m)は、自プレイヤーがその段階をクリアした場合に、自プレイヤーを次の段階(次のフレーム)に進めるものであり、上記(n)は、他プレイヤーがその段階をクリアした場合に、他プレイヤーを次の段階(次のフレーム)に進めるものである。上記(n)においては、他プレイヤーは、主プレイヤーのこともあるし、副プレイヤーのこともある。
【0041】
一方、遅延更新部は、記憶部に記憶される遅延情報を更新する。具体的には、
(p)当該副プレイヤーのそれぞれについて、当該副プレイヤーがクリア済みの段階と当該主プレイヤー全員がクリア済みの段階とが一致する場合、当該副プレイヤーが遅延していない旨を記憶させる。
【0042】
上記のように、主プレイヤーに対して遅延している副プレイヤーは、一旦プレイを再開すれば、多くの場合に、主プレイヤーに追い付くことが可能である。上記(p)は、主プレイヤーに追い付いたか否かを判定するもので、追い付いた場合に、もはや、そのプレイヤーは遅延していないものと更新するのである。
【0043】
本発明によれば、各端末装置が対等の関係でゲームを進めながら、プレイヤーのプレイ順序をできるだけ所定の規則に合わせつつ、プレイが遅延したプレイヤーがいても適切に対処して、遅延したプレイヤーがゲームに参加できるのはもちろん、遅延していないプレイヤーもプレイを妨げられることなく、全プレイヤーが快適にゲームに参加できるようになる。
【0044】
また、本発明のゲームシステムにおいて、当該複数の端末装置のそれぞれは、中断判定部、中断送信部、中断受信部をさらに備え、以下のように構成することができる。
【0045】
すなわち、中断判定部は、当該自プレイヤーが中断処理を行ったか否かを判定する。ここで、中断処理としては、以下のようなものが考えられる。
(A)当該端末装置が当該自プレイヤーからの中断入力を受け付ける中断受付部をさらに備え、当該自プレイヤーからの当該中断入力が受け付けられた場合、当該自プレイヤーが当該中断処理を行ったと判定する。
(B)当該自プレイヤーのプレイ条件が満たされると判定され、当該自プレイヤーがクリアしていない段階のうち当該順における先頭の段階に対する当該自プレイヤーからの操作入力が所定の時間内にされなかった場合、当該自プレイヤーが当該中断処理を行ったと判定する。
【0046】
上記(A)は、たとえば来客や手洗いの必要があるために、ゲームを中座する旨をプレイヤーが明示的に端末に入力する手法であり、所定のスイッチを押圧操作したり、所定のメニュー項目を選択することで、中断入力とすることができる。
【0047】
上記(B)は、[非特許文献1]に記載の時間制限を設ける場合に相当するが、本発明では、[非特許文献1]とは異なり、時間制限に遅れると自プレイヤーは副プレイヤーとなり、主プレイヤー達とは独立してゲームを進める状況に自動的に移行することとなる。
【0048】
一方、中断送信部は、当該中断処理が行われたと判定されると、当該複数の端末装置のうち他の端末装置に、中断通知を送信し、中断受信部は、当該複数の端末装置のうち他の端末装置から送信される中断通知を受信する。
【0049】
中断送信部と中断受信部は、対になる機能を果たすもので、自プレイヤーが中断したことを他の端末装置に知らせ、他の端末装置のプレイヤーに中断が生じたことを知得するものである。
【0050】
そして、遅延更新部は、さらに、
(q)当該中断処理が行われたと判定された場合、当該自プレイヤーが遅延している旨を記憶させ、
(r)当該中断通知が受信された場合、当該中断プレイヤーが遅延している旨を記憶させる。
【0051】
ここで、「中断プレイヤー」とは、上述の通り、中断通知の送信元の端末装置に割り当てられるプレイヤーをいう。
【0052】
上記(q)は、自プレイヤーが中断したときに、自プレイヤーを副プレイヤーにするものであり、上記(r)は、他の端末装置に割り当てられるプレイヤーが中断したときに、当該中断プレイヤーを副プレイヤーにするものである。
【0053】
本発明によれば、プレイヤーが明示して、もしくは、暗黙にゲームを中断した場合に、当該プレイヤーを遅延している状態に移行することにより、ゲーム全体の遅延を防止するとともに、上記の構成と相俟って、遅延している副プレイヤーが遅延していない主プレイヤーに追い付けるようにして、できるだけ全員でゲームを進めることができるようになる。
【0054】
また、本発明のゲームシステムにおいて、プレイ判定部は、ゲームを開始するとき、当該遅延情報が更新されたとき、もしくは、当該操作通知が受信されたときに、当該判定を行うように構成することができる。
【0055】
たとえば、ゴルフの場合には、ホールのスタート地点(ティーアップの場所)でのティーショットには、ルールに定めがないが、それ以降は、ホールから遠い順に打つことと定められている。したがって、プレイヤーがボールを打つごとに、次にプレイをするのは誰かを決定する必要がある。
【0056】
また、ティーアップの際には、一意に順序が定まるように、適当な規則を定めておけば良い。たとえば、ゲームの開始時に、くじびきなど、乱数を用いて決定してしまう、過去の戦績の悪い順にする、等である。
【0057】
本発明によれば、プレイヤーのプレイ順序が交互あるいは所定の循環するパターンにならないようなゲームの規則に対応することができる。
【0058】
また、本発明のゲームシステムにおいて、プレイ判定部は、ゲームを開始するとき、当該遅延情報が更新されたとき、もしくは、当該段階情報が更新されたときに、当該判定を行うように構成することができる。
【0059】
たとえば、ダーツではプレイヤーは、1スロー(3本)ずつ交替して投げる。ボーリングではプレイヤーは、1フレーム(1投げしてストライクもしくは2投)ごとに交替して投げる。したがって、ゲームの開始時に、複数のプレイヤーの間に巡回的な順序を定めておき、1スローや1フレームを「段階」として考えることにより、次のプレイするのは誰かを判定するタイミングは、段階情報が更新されたときとすれば良いこととなる。
【0060】
本発明によれば、プレイヤーのプレイ順序が交互あるいは所定の循環するパターンになるようなゲームの規則に対応することができる。
【0061】
また、本発明のゲームシステムにおいて、当該複数の端末のそれぞれは、表示部をさらに備え、以下のように構成することができる。
【0062】
すなわち、表示部は、受け付けられた操作入力、もしくは、受信された操作通知に指定される操作入力から、当該操作入力に対応付けられる画像を生成して、当該生成された画像を、当該操作入力をしたプレイヤーの情報とともに表示する。
【0063】
受け付けられた操作入力は、自プレイヤーが行ったものであり、受信された操作通知に指定される操作入力は、他プレイヤーが行ったものである。ゴルフやダーツ、ボーリングなどのゲームでは、自分のプレイもさることながら、他のプレイヤーのプレイを見るのも大きな楽しみの一つとなっている。
【0064】
本発明によれば、ゲームに参加する全プレイヤーのプレイの様子を、各プレイヤーが自分の端末装置で見ることができるようになる。
【0065】
また、本発明のゲームシステムにおいて、表示部は、
(x)当該自プレイヤーが当該副プレイヤーである場合、当該自プレイヤーの情報を、他のプレイヤーの情報より強調して表示し、
(y)当該自プレイヤーが当該主プレイヤーである場合、当該主プレイヤーの情報を、当該副プレイヤーの情報より強調して表示する
ように構成することができる。
【0066】
この際に、表示部において強調して表示されるべきプレイヤーからの操作入力に対応付けられる画像を、他のプレイヤーからの操作入力に対応付けられる画像よりも、広い領域に表示するように構成することができる。ここで「広い」とは、典型的には拡大して表示することを意味するものである。また、「広く」表示する手法は、強調表示のための一手法であり、強調表示のために、画面の中央やメインウィンドウに表示するような手法を採用しても良い。
【0067】
上記(x)は、自プレイヤーが遅延している状況に係るものであり、先行している主プレイヤーと異なる段階をプレイしていると想定されること、自プレイヤーは単独でその段階をプレイしていることから、自プレイヤーのプレイを、他のプレイヤーよりも強調するものである。
【0068】
上記(y)は、自プレイヤーが主プレイヤーとしてプレイしている状況に係るものであり、他の主プレイヤーと同じ段階をプレイしていることから、自分のプレイはもちろん、他の主プレイヤーのプレイも重要と考えて、自分も属する主プレイヤーのプレイを、遅延している副プレイヤーよりも強調するものである。
【0069】
画像を表示する領域の大小によって、強調表示か否かを区別すると、たとえばテレビ放送でゴルフのトーナメントが中継されるような状況のような、複数の注目されるプレイヤーが別のホールでプレイしている様子をオーバレイして表示することが可能となる。
【0070】
本発明によれば、プレイヤーが興味があると想定されるプレイヤーのプレイを強調して、プレイヤーに適切に情報を提示することができるようになる。
【0071】
本発明のその他の観点に係るゲーム制御方法は、複数の端末装置を用いるゲームにおいて、当該複数の端末装置のそれぞれには、複数のプレイヤーのいずれかが割り当てられ、当該複数のプレイヤーのそれぞれは、複数の段階を順にクリアすることにより当該ゲームを進め、当該複数の端末装置は、当該複数のプレイヤーのプレイ順序を一意に定める所定の規則を共有し、当該複数の端末装置のそれぞれは、記憶部、プレイ判定部、操作受付部、操作送信部、操作受信部、段階更新部、遅延更新部を備え、記憶部には、当該複数のプレイヤーの全員について、当該プレイヤーが遅延しているか否かを示す遅延情報と、当該プレイヤーが当該複数の段階のそれぞれをクリアしたか否かを示す段階情報と、が記憶され、当該複数の端末装置のそれぞれにおいて実行され、プレイ判定工程、操作受付工程、操作送信工程、操作受信工程、段階更新工程、遅延更新工程を備え、以下のように構成する。
【0072】
すなわち、プレイ判定工程では、プレイ判定部が、当該端末装置に割り当てられたプレイヤー(以下「自プレイヤー」という。)のプレイ条件
(a)当該自プレイヤーが、当該遅延情報に遅延している旨が記憶されているプレイヤー(以下「副プレイヤー」という。)であり、当該遅延情報に遅延していない旨が記憶されているプレイヤー(以下「主プレイヤー」という。)全員がクリアした段階のうち、当該自プレイヤーがクリアしていない段階が存在する、もしくは、
(b)当該自プレイヤーが当該主プレイヤーであり、当該主プレイヤー全員に対して当該共有される所定の規則を適用すると、当該自プレイヤーが当該プレイ順序において最初になる、
が満たされたか否かの判定を行う。
【0073】
一方、操作受付工程では、当該自プレイヤーのプレイ条件が満たされると判定された場合、操作受付部が、当該自プレイヤーがクリアしていない段階のうち当該順における先頭の段階に対する当該自プレイヤーからの操作入力を受け付ける。
【0074】
さらに、操作送信工程では、操作送信部が、当該複数の端末装置のうち他の端末装置に、受け付けられた操作入力を指定する操作通知を送信する。
【0075】
そして、操作受信工程では、操作受信部が、当該複数の端末装置のうち他の端末装置から送信される操作通知を受信する。
【0076】
一方、段階更新工程では、段階更新部が、記憶部に記憶される段階情報を更新する。具体的には、
(m)受け付けられた操作入力により、当該自プレイヤーがクリアしていない段階のうち当該順における先頭の段階におけるクリア条件が満たされた場合、当該自プレイヤーがクリアしていない段階のうち当該順における先頭の段階を当該自プレイヤーがクリアした旨を記憶させ、
(n)受信された操作通知に指定される操作入力により、当該操作通知の送信元の端末装置に割り当てられるプレイヤー(以下「他プレイヤー」という。)がクリアしていない段階のうち当該順における先頭の段階におけるクリア条件が満たされた場合、当該他プレイヤーがクリアしていない段階のうち当該順における先頭の段階を当該他プレイヤーがクリアした旨を記憶させる。
【0077】
さらに、遅延更新工程では、遅延更新部が、記憶部に記憶される遅延情報を更新する。具体的には、
(p)当該副プレイヤーのそれぞれについて、当該副プレイヤーがクリア済みの段階と当該主プレイヤー全員がクリア済みの段階とが一致する場合、当該副プレイヤーが遅延していない旨を記憶させる。
【0078】
本発明のその他の観点に係るプログラムは、コンピュータを上記のゲームシステムの各端末装置の各部として機能させるように構成する。
【0079】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【0080】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0081】
本発明によれば、プレイヤーのプレイ順序をできるだけ所定の規則に合わせつつも、プレイが遅延したプレイヤーがいても適切に対処してゲームに参加できるようにするのに好適なゲームシステム、ゲーム制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【発明を実施するための最良の形態】
【0082】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例1】
【0083】
図1は、プログラムを実行することにより、本発明のゲームシステムにおける端末装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0084】
情報処理装置100は、CPU(Central Processing Unit)101と、ROM 102と、RAM(Random Access Memory)103と、インターフェイス104と、コントローラ105と、外部メモリ106と、画像処理部107と、DVD−ROM(Digital Versatile Disc ROM)ドライブ108と、NIC(Network Interface Card)109と、音声処理部110と、マイク111と、を備える。
【0085】
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着して、情報処理装置100の電源を投入することにより、当該プログラムが実行され、本実施形態の画像生成装置が実現される。
【0086】
CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、レジスタ(図示せず)という高速アクセスが可能な記憶域に対してALU(Arithmetic Logic Unit)(図示せず)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、CPU 101自身が構成されているものや、コプロセッサを備えて実現するものがある。
【0087】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【0088】
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行ったり、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【0089】
インターフェイス104を介して接続されたコントローラ105は、ユーザがゲーム実行の際に行う操作入力を受け付ける。
【0090】
インターフェイス104を介して着脱自在に接続された外部メモリ106には、ゲーム等のプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ(記録)のデータなどが書き換え可能に記憶される。ユーザは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
【0091】
DVD−ROMドライブ108に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ108は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0092】
画像処理部107は、DVD−ROMから読み出されたデータをCPU 101や画像処理部107が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部107が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部107に接続されるモニタ(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
【0093】
画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【0094】
また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【0095】
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【0096】
NIC 109は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
【0097】
音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【0098】
音声処理部110では、DVD−ROMに記録された音声データがMIDIデータである場合には、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータは、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換を行って、スピーカに出力することにより、音声出力が可能となる。
【0099】
さらに、情報処理装置100には、インターフェイス104を介してマイク111を接続することができる。この場合、マイク111からのアナログ信号に対しては、適当なサンプリング周波数でA/D変換を行い、PCM形式のディジタル信号として、音声処理部110でのミキシング等の処理ができるようにする。
【0100】
このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
【0101】
以上で説明した情報処理装置100は、いわゆる「コンシューマ向けテレビゲーム装置」に相当するものであるが、仮想空間を表示するような画像処理を行うものであれば本発明を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明を実現することが可能である。
【0102】
たとえば、一般的なコンピュータは、上記情報処理装置100と同様に、CPU、RAM、ROM、DVD−ROMドライブ、および、NICを備え、情報処理装置100よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラ105ではなく、キーボードやマウスなどを入力装置として利用する。
【0103】
図2は、本実施形態のゲームシステム全体の概要構成を示す説明図である。以下、本図を参照して説明する。
【0104】
本実施形態に係るゲームシステム201は、端末装置202として機能する情報処理装置100が、インターネット203を介して接続されており、端末装置202同士は互いに通信が可能である。
【0105】
これらの端末装置202は、あらかじめ用意されたロビーサーバ装置によって紹介されたものであり、互いの通信識別子(IPアドレス等)がロビーサーバ装置から通知されることによって、1対1の通信が可能となる。1つのゲームに参加する端末装置202は、複数である。このほか、インターネット203を介することなく、たとえば無線通信などでアドホックに相互通信を行うこととしても良い。
【0106】
これら複数の端末装置202のそれぞれには、複数のプレイヤーのいずれかが重複なく割り当てられている。
【0107】
ゲームシステム201にて提供されるゲームは、ダーツやボーリング、ゴルフのように、本質的には1人でも競技が成立し、複数でプレイする場合であっても、各人が行う競技の内容に変化がないものが典型的である。
【0108】
そして、複数のプレイヤーのそれぞれは、複数の段階を順にクリアすることにより当該ゲームを進める。
【0109】
ここで、段階とは、ボーリングの場合はフレーム、ゴルフの場合はホール、ダーツの場合はスローに、それぞれ相当するものである。たとえばボーリングは10フレーム(10段階)で競技が成立し、ゴルフの場合は18ホール(18段階)で競技が成立する。
【0110】
さて、複数の端末装置202は、複数のプレイヤーのプレイ順序を一意に定める所定の規則を共有する。したがって、一旦ゲームが開始されると、各端末装置202は、他の端末装置202への問い合わせをしなくとも、プレイヤーのプレイ順序や、当該端末装置202に割り当てられたプレイヤーがプレイする順番が来たか否かを同定することができ、しかも、その順序の内容は、全端末装置202で共通することとなる。
【0111】
図3は、本実施形態の端末装置の概要構成を示す説明図であり、図4および図5は、本実施形態の端末装置にて実行されるゲーム処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0112】
本実施形態に係る端末装置202は、記憶部301、プレイ判定部302、操作受付部303、操作送信部304、操作受信部305、段階更新部306、遅延更新部307、中断判定部308、中断送信部309、中断受信部310、中断受付部311、表示部312を備える。
【0113】
まず、記憶部301には、以下の情報が記憶される。
【0114】
まず、当該複数のプレイヤーの全員について、当該プレイヤーが遅延しているか否かを示す遅延情報である。遅延情報は、当該プレイヤーに何らかの事情で遅延が発生しており他のプレイヤーとのプレイの上での同期がまだ取り戻せていない、という状態であるか否かを示す情報に相当する。典型的には、プレイヤー番号pを添字とする1次元配列Dに記憶される。以下では、D[p]により、プレイヤー番号pのプレイヤーが遅延しているか否かを示す遅延情報の要素を表記するものとする。すなわち、
D[p] = 1であれば、プレイヤー番号pのプレイヤーが遅延している。
D[p] = 0であれば、プレイヤー番号pのプレイヤーが遅延していない。
【0115】
なお、以下では、プレイヤー数は全部でPであるとし、プレイヤー番号pは、0,1,…,P-1のいずれかであるものとする。
【0116】
次に、当該複数のプレイヤーの全員について、当該プレイヤーが当該複数の段階のそれぞれをクリアしたか否かを示す段階情報である。たとえば、ボーリングの場合は、何フレーム目までプレイしたか、ゴルフの場合には、何ホール目まで完了したか、ダーツの場合には、何スロー目まで行ったか、等の情報に相当する。典型的には、プレイヤー番号pおよび段階番号sを添字とする2次元配列Cに記憶される。以下では、C[p,s]により、プレイヤー番号pのプレイヤーが段階番号sの段階をクリアしたか否かを示す段階情報の要素を表記するものとする。すなわち、
C[p,s] = 1であれば、プレイヤー番号pのプレイヤーが段階番号sの段階をクリアした。
C[p,s] = 0であれば、プレイヤー番号pのプレイヤーが段階番号sの段階をクリアしていない。
【0117】
なお、以下では、段階数は全部でS段階であるとし、段階番号sは、0,1,…,S-1のいずれかであるものとする。
【0118】
端末装置202は、ゲーム処理が開始されると、各種の初期化を行う(ステップS401)。この初期化は、ゲームに参加する他の端末装置202の通信識別子の取得、記憶部301に所定のデータを記憶させることによる初期化、記憶部301の内容が他の端末装置202におけるものと一致していることの確認などの処理が含まれ、一般的なネットワーク対応ゲームにおいて行われる処理と同様である。
【0119】
ここで、遅延情報には、全プレイヤーが遅延していない旨を記憶させ、段階情報には、全プレイヤーがいずれの段階もクリアしていない旨を記憶させるのが典型的である。上記の表記でいえば、C,Dのすべての要素を0に初期化する。前回のプレイを途中でセーブしておき、これをロードすることによって続きをプレイする、などのような実施形態を採用しても良い。
【0120】
このほか、RAM 103には、現在、自プレイヤーのプレイ開始時刻tを記憶するための領域が用意されている。ここで、
t < 0の場合、自プレイヤーは、現在プレイすべき順序ではない。
t ≧ 0の場合、自プレイヤーは、現在プレイすべき順序である。
のように値を設定するものとする。プレイ開始時刻tは、記憶部301とは異なり、各端末装置202によって値が異なるもので、記憶部301に記憶されるものは、グローバル変数もしくは共有変数に相当するものであり、プレイ開始時刻tは、ローカル変数もしくは局所変数と考えることができる。プレイ開示時刻tは、初期化の際に、負の値に設定される。
【0121】
したがって、RAM 103は、記憶部301として機能する。
【0122】
このほか、記憶部301には、ゲームの進行に必要な各プレイヤーのゲームにおける状態を示す情報やこれまでの戦績等のその他の情報が記憶される。これは、ゲームの内容に応じて適宜変更が可能である。
【0123】
後述するように、記憶部301に記憶される情報は、適宜更新される。また、ある時点における各端末装置202の記憶部301に記憶される内容は、通信遅延に基づく更新の遅れを無視すれば、一致するものと考えて良い。
【0124】
また、プレイ順序を決める所定の規則は、記憶部301に記憶される遅延情報、段階情報、および、その他の情報を参照して同定される。上記のように、記憶部301に記憶される内容は、各端末装置202において共通であるから、所定の規則によって定められるプレイ順序も、各端末装置202で共通することとなる。
【0125】
さて、以下では、理解を容易にするため、以下のような用語を用いて、プレイヤーを区別する。すなわち、ある端末装置202に着目した場合に、
(1)「自プレイヤー」とは、当該端末装置202に割り当てられたプレイヤーをいう。以下では、自プレイヤーのプレイヤー番号をxとして説明する。
(2)「主プレイヤー」とは、当該端末装置202の記憶部301に記憶される当該遅延情報において、遅延していない旨が記憶されているプレイヤーをいう。主プレイヤーのプレイヤー番号をpとすると、D[p] = 0である。
(3)「副プレイヤー」とは、当該端末装置202の記憶部301に記憶される当該遅延情報において、遅延している旨が記憶されているプレイヤーをいう。副プレイヤーのプレイヤー番号をpとすると、D[p] = 1である。
(4)「他プレイヤー」とは、操作通知の送信元の端末装置202に割り当てられるプレイヤーをいう。操作通知および他プレイヤーについては、後述する。
(5)「中断プレイヤー」とは、中断通知の送信元の端末装置202に割り当てられるプレイヤーをいう。中断通知および中断プレイヤーについては、後述する。
【0126】
いずれのプレイヤーも、ある時点では、主プレイヤーもしくは副プレイヤーのいずれかに該当することとなる。
【0127】
さて、初期化が終わると、プレイ判定部302は、記憶部301に記憶されている情報を参照して、自プレイヤーのプレイ条件が満たされているか否かの判定を行う(ステップS402)。
【0128】
プレイ条件とは、具体的には、以下のような条件である。
(a)当該自プレイヤーが、当該副プレイヤーであり、当該主プレイヤー全員がクリアした段階のうち、当該自プレイヤーがクリアしていない段階が存在する、もしくは、
(b)当該自プレイヤーが当該主プレイヤーであり、当該主プレイヤー全員に対して当該共有される所定の規則を適用すると、当該自プレイヤーが当該プレイ順序において最初になる。
【0129】
プレイ条件(a)は、自プレイヤーが何らかの事情でプレイを中断して、まだ主プレイヤーとの同期がとれていない状態に対応するものである。この状態は、記憶部301に記憶される段階情報において、主プレイヤー全員がクリアした段階のうち、副プレイヤーである自プレイヤーがクリアしていない段階が存在する、と言いかえることができる。そこで、このような状態の場合には、自プレイヤーのプレイが開始できる状態として、主プレイヤーに追い付けるようにする。
【0130】
さて、自プレイヤーxが副プレイヤーであるか否かは、D[x] = 1であるか否かによって判定できる。
【0131】
また、このゲームは、段階番号の順序にクリアされることを前提とするから、プレイヤー番号pのプレイヤーが何番目の段階まで到達しているか、を示す到達済み段階番号r(p)は、以下の手順によって求めることができる。
【0132】
図6は、到達済み段階番号r(p)を求める処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0133】
まず、C[p,0] = 0であるか否かを判断し(ステップS501)、そうであれば(ステップS501;Yes)、r(p)の結果を-1として(ステップS502)、本処理を終了し、戻る。
【0134】
C[p,0] ≠ 0であれば(ステップS501;No)、変数uについて、0,1,…,S-2を小さい方から順に代入して、以下の処理を繰り返す(ステップS503、S504、S506)。
【0135】
すなわち、C[p,u] = 1かつC[p,u+1] = 0であるか否かを判断し(ステップS504)、そうであれば(ステップS504;Yes)、r(p)の結果をuとして(ステップS505)、本処理を終了し、戻る。
【0136】
そうでなければ(ステップS504;No)、uの値を次に進め、ステップS503以降の処理を繰り返す(ステップS506)。
【0137】
ステップS503〜S506の繰り返しが終了したら、C[p,S-1] = 1のはずであるから、r(p)の結果をS-1として(ステップS507)、本処理を終了し、戻る。
【0138】
なお、一旦求めたr(p)の値は、記憶部301の更新がされるまでは変化しないから、適宜RAM 103内にキャッシュあるいはメモ化しておくこととしても良い。
【0139】
自プレイヤーxがクリアした段階は、r(x)により計算することができる。
【0140】
一方、主プレイヤー全員がクリアした段階zは、以下の処理によって求めることができる。
【0141】
図7は、主プレイヤー全員がクリアした段階zを求める手順の制御の流れを示すフローチャートである。以下、本図を参照して説明する。なお、zは、RAM 103内に用意された変数領域に格納されるものとする。
【0142】
処理が開始されると、変数zをS-1に初期化する(ステップS601)。
【0143】
変数pに0,1,…,P-1を順に代入して、以下の処理を繰り返す(ステップS602〜S606)。
【0144】
まず、プレイヤーpが主プレイヤーであるか否か、すなわち、D[p] = 0であるか否かを判断する(ステップS603)。そうであれば(ステップS603;Yes)、r(p) < zであるか否かを判断する(ステップS604)。そうであれば(ステップS604;Yes)、zにr(p)を代入する(ステップS605)。
【0145】
そして、pの値を次に進め、ステップS602以降の処理を繰り返す(ステップS606)。
【0146】
一方、D[p] = 0でない場合(ステップS603;No)、もしくは、r(p) < zでない場合(ステップS604;No)は、ステップS606に進む。
【0147】
繰り返しステップS602〜S606が終了したら、変数zに主プレイヤー全員がクリアした段階の段階番号の最大値が格納されているので、本処理を終了する。
【0148】
一旦求めたzの値は、記憶部301の更新がされるまでは変化しないから、記憶部301の更新がされるごとに計算すれば十分である。
【0149】
したがって、主プレイヤー全員がクリアした段階の最大の段階番号はzであり、自プレイヤーxがクリアした段階の最大の段階番号はr(x)であるから、主プレイヤー全員がクリアした段階のうち、自プレイヤーがクリアしていない段階が存在する、か否かは、z > r(x)であるか否か、によって判断することができる。
【0150】
また、z ≦ r(x)となった場合は、遅延していた自プレイヤーが主プレイヤーに追い付いた(場合によっては、一部の主プレイヤーを追い越した)ことを意味する。
【0151】
一方、プレイ条件(b)は、自プレイヤーに遅延が生じておらず、他の主プレイヤーとともにプレイを続けている状態に対応するものである。すなわち、D[x] = 0である場合である。
【0152】
たとえば4人のプレイヤーがボーリングのプレイをしている場合、一番最初に、じゃんけんやコイントス、過去の戦績などに基づいて、各フレームにおけるプレイの順序を決めるが、この中から誰かが遅延した場合には、当該順序から当該遅延したプレイヤーを削除した順序とする、という規則を定めておけば、主プレイヤーが使用するいずれの端末装置202においても、同じプレイ順序が得られることになる。
【0153】
たとえば、4人のプレイヤーがA、B、C、Dの順に繰り返して投げる、というルールの場合に、Cが遅延したら、Cが復帰するまで、A、B、Dの3人が順に繰り返して投げることになる。
【0154】
そして、現在のフレームにおいて、A、B、Dのいずれもまだ投げ終わっていないときには、プレイ順序の先頭はAとなり、Aが1投してストライクもしくは2投した後は、Aの段階は1つ進んで、プレイ順序の先頭はBとなり、Bが1投してストライクもしくは2投した後は、Bの段階は1つ進んで、プレイ順序の先頭はDとなり、Dが1投してストライクもしくは2投した後は、Dの段階は1つ進んで、プレイ順序の先頭はまたAとなり、…のように、プレイ順序は、主プレイヤーのそれぞれがゲームの段階を進むごとに巡回的に変化していくことになる。
【0155】
このような巡回的な規則は、種々考えることが可能であるが、主プレイヤーがプレイヤー番号の順にプレイする場合を実施例として取り上げる。図8は、自プレイヤーが主プレイヤーである場合に、自プレイヤーが現在のプレイ順序において先頭であるか否か、すなわち、自プレイヤーの番であるか否かを判定する処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0156】
まず、変数pに対して、1,2,…,P-1,Pを小さい順に代入し、以下の処理を繰り返す(ステップS701〜S704)。この変数pは、「自分よりもp人だけ前のプレイヤー」を表現するためのものである。
【0157】
まず、自分の前に当たるプレイヤーの番号qを計算する(ステップS702)。すなわち、q ← (x-p) mod Pである。ここで、a mod bは整数aを正整数bで割った余りを意味し、aが負の場合には、(a+b) mod bに等しい。
【0158】
たとえば、p = 1の場合、qは、ほとんどの場合(x≧1の場合)、(x-1)に等しくなる。したがって、プレイヤー番号qのプレイヤーは、プレイヤー番号xのプレイヤーの1人だけ前のプレイヤーになる。
【0159】
なお、プレイの順番は巡回的であるから、プレイヤー番号0のプレイヤーの1人だけ前のプレイヤーは、プレイヤー番号P-1のプレイヤー、すなわち、最後のプレイヤーである。x = 0のとき、qの計算は、(0-1) mod P = (-1) mod P = (P-1) mod P = P-1のように行われる。
【0160】
次に、プレイヤーqが主プレイヤーであるか否か、すなわち、D[q] = 0であるか否かを判定する(ステップS703)。そうであれば(ステップS703;Yes)、プレイヤーqが自分の直前の主プレイヤーということになるから、ステップS701〜ステップS704の繰り返しを抜ける。一方、そうでなければ(ステップS703;No)、pの値を次に進めて、ステップS701〜ステップS704の処理を繰り返す(ステップS704)。
【0161】
この繰り返しによって、主プレイヤーxの直前の主プレイヤーqを探す。ほとんどの場合、主プレイヤーは複数であるから、x ≠ qであるはずであるが、主プレイヤーがプレイヤー番号xのプレイヤーのみである場合は、p = Pまでpが一周して、x = qとなることがある。
【0162】
そこで、繰り返しを抜けると、まず、x = qであるか否かを判定する(ステップS705)。x = qである場合(ステップS705;Yes)、すなわち、自分の直前の主プレイヤーが自分自身であり、主プレイヤーが自分一人である場合は、自プレイヤーの番である、との結果を返して(ステップS706)、本処理を終了する。
【0163】
一方、x ≠ qである場合(ステップS705;No)は、自分のほかにも主プレイヤーがいることになる。主プレイヤー同士は、一緒にプレイを続けているのであるから、到達している段階は、互いに等しいか、ずれているとしても一段階だけずれているのみのはずである。
【0164】
そして、ここで説明するプレイ順序を定めるルールでは、プレイヤー番号の順にプレイすることを原則としているから、到達している段階については、次の3通りが考えられる
(1)r(q) > r(x)。自分の直前の主プレイヤーqが自分xよりも先の段階に到達している。
(2)r(q) = r(x)。自分の直前の主プレイヤーqと自分xは同じ段階に到達している。
(3)r(q) < r(x)。自分の直前の主プレイヤーqより自分xが先の段階に到達している。
【0165】
このうち、自分がプレイすべき順序となるのは、以下のいずれかである。
(i)q < x かつ r(q) > r(x)。自分の直前のプレイヤーqは、プレイ順序の中で自分xよりも前におり、しかも、先に進んでいる。
(ii)q > x かつ r(q) = r(x)。自分の直前のプレイヤーqは、プレイ順序の中で自分xよりも後におり、しかも、同じ段階に到達した。すなわち、自分xは、主プレイヤーの中で一番最初にプレイするプレイヤーであり、自分の直前のプレイヤーqは、主プレイヤーの中で一番最後にプレイするプレイヤーであり、主プレイヤー全員が同じ段階に到達した。
【0166】
したがって、この条件(i)または(ii)が満たされるか否かを調べる(ステップS707)。
【0167】
そうであれば(ステップS707;Yes)、自プレイヤーの番である、との結果を返して(ステップS708)、本処理を終了する。
【0168】
そうでなければ(ステップS707;No)、自プレイヤーの番ではない、との結果を返して(ステップS709)、本処理を終了する。
【0169】
なお、プレイヤー番号とプレイの順番が一致しないような規則もありうる。その場合は、主プレイヤーに対するプレイヤー番号に対するプレイ順序を求める演算m(・)を考える。すなわちプレイヤー番号xの主プレイヤー内におけるプレイ順序はm(x)番目である。このような演算は、ゲームのルールによって定められ、高速な検索を行うためには、配列のインデックスにx、要素にm(x)を格納することで実現できる。また、主プレイヤーの人数Mを、カウントしておく。
【0170】
そして、ステップS703においては、
D[q] = 0かつ〔m(x)-m(q)〕mod M = 1
であるか否かを判断するようにする。すなわち、qが主プレイヤーであり、かつ、プレイヤーxの順番m(x)は、プレイヤーqの順番m(x)よりも、1だけ大きいかどうかを確認する。
【0171】
また、主プレイヤーがx一人だけの場合には、ステップS703で抜けることなく、ステップS701〜S704の繰り返しが終了するため、q = xとなっているはずである。
【0172】
さらに、ステップS707における条件は、
(i)m(q) < m(x) かつ r(q) > r(x)。
(ii)m(q) > m(x) かつ r(q) = r(x)。
のように変更すれば良い。
【0173】
さてこのように、上記のプレイ条件(a)もしくは上記のプレイ条件(b)が満たされると、当該端末装置202に割り当てられる自プレイヤーがプレイする番である、ということになる。したがって、CPU 101は、RAM 103と共同してプレイ判定部302として機能する。
【0174】
さて、プレイ条件が満たされない場合(ステップS402;No)、プレイ開始時刻tに-1を代入して(ステップS403)、ステップS431に進む。
【0175】
一方、プレイ条件が満たされた場合(ステップS402;Yes)、プレイ開始時間tが負であるか否かを判定し(ステップS404)、負であれば(ステップS404;Yes)、プレイ開始時間tに現在時刻を代入する(ステップS405)。なお、情報処理装置100に電源を投入してからタイマ割込が生じた回数や、情報処理装置100が備えるリアルタイムクロックのカウント数(典型的には、1970年1月1日0時0分0秒からの経過秒数)などを現在時刻として用いることにより、現在時刻の値は正になる。
【0176】
そして、CPU 101は、コントローラ105の入力状況を取得する(ステップS406)。入力状況としては、コントローラ105が備える各種ボタンの押圧・解放の状態や、コントローラ105が備える位置・方向・姿勢センサ、加速度センサ、角加速度センサなどの測定結果を用いることができる。
【0177】
そして、CPU 101は、コントローラ105の入力状況に基づく指示入力の種類を調べる(ステップS407)。指示入力の種類としては、以下のようなものがある。
(1)プレイヤーxが、未クリアの段階r(x)+1をクリアするためにコントローラ105を操作して入力される操作入力。
(2)プレイヤーxが、ゲームを中座するためにコントローラ105を操作して入力される中断入力。中断入力の詳細については、後述する。
【0178】
入力状況を受け付けるための機器としては、上記のように、ゲームのコントローラ105やキーボード、マウス、ジョイスティック、フットスイッチなどを採用することができるほか、コントローラ105の3次元的な位置や方向、姿勢の情報を操作入力として採用しても良い。たとえば、コントローラ105に加速度センサが塔載されていたり、コントローラ105の位置や姿勢を赤外線や超音波が到達するのに要する時間や位相の差等を利用して測定したりできる場合には、コントローラ105を振り回す動作が、ボーリングのボールを投げる動作やゴルフのクラブを振る動作等に対応付けられ、これらの動作に対する測定値や、この測定値を適宜処理した結果が操作入力として用いられることになる。各種ボタンの押圧・解放の状態や、位置・方向・姿勢センサ、加速度センサ、角加速度センサ等の測定結果が、入力状況の種類のそれぞれに割り当てられている。
【0179】
また、一定の入力状況が連続して起きた場合に、所定の指示入力が生ずる、としても良い。たとえば、所定の順序で所定のボタンを押圧してから解放することの繰り返しを、所定の攻撃指示に相当させる、あるいは、ボタンの押圧操作をしたときのコントローラ105の位置や姿勢が、マウスによるクリックに相当し、画面に表示されたメニューからいずれかの項目を選ぶことによって、所定の項目指示に相当させる、等である。
【0180】
したがって、ボタンの押圧のように、一つの入力状況で指示入力の種類が判明する場合もあるし、上記の連続押圧等やマウスに相当する操作のように、入力状況の履歴を保存し、その履歴から指示入力の種類が判明する場合もありうる。これらの対応付けは、ゲームの種類やプレイヤーの経験度、設定などに応じて適宜変更することが可能である。
【0181】
このように、コントローラ105は、CPU 101と共働して、操作受付部303として機能する。
【0182】
さて、コントローラ105からの指示入力が、ステージr(x)+1に対する自プレイヤーからの操作入力である場合(ステップS407;操作入力)、すなわち、自プレイヤーがクリアしていない段階のうち当該順における先頭の段階である場合、当該操作入力を、当該端末装置202のみならず、他の端末装置202で共有する必要がある。
【0183】
そこで、CPU 101は、RAM 103内に以下のような情報を含む操作通知パケットを生成する(ステップS408)。
(a)自プレイヤーのプレイヤー番号x。
(b)ステップS406にて取得された自プレイヤーxからの操作入力。
(c)現在時刻からプレイ開始時刻tを減算した値。すなわち、自プレイヤーの番がまわってきてからの経過時間。
【0184】
そして、当該操作通知パケットを、NIC 109を介して他の端末装置202に送信する(ステップS409)。したがって、CPU 101は、RAM 103、NIC 109と共働して、操作送信部304として機能する。
【0185】
ついで、CPU 101は、当該操作入力が、段階r(x)+1に対するクリア条件を満たしているか否かを判断する(ステップS410)。
【0186】
クリア条件とは、ゲームそれぞれにおいて段階を進めるのに必要な条件であり、ボーリングの場合には、1投してストライクとなるか、もしくは、2投すると、そのプレイヤーはそのフレームをクリアしたことになる。ダーツの場合には、1スロー(3投)すると、そのプレイヤーはその段階をクリアしたことになる。
【0187】
ゴルフの場合には、ボールがカップインすると、その段階をクリアしたこととするのが典型的であるが、ボールがグリーンにのった場合にクリア、そのグリーンでカップに入るとクリア、のように、さらに段階を細かく分けることも可能である。
【0188】
クリア条件を満たしているか否かは、上記のように、検知された現在のコントローラ105の状態のみから判断することとしても良いし、コントローラ105の状態の履歴から判断することとしても良い。後者の場合には、操作入力の履歴を、一時的にRAM 103に保存しておく、あるいは、操作入力が所定のパターンのどこまでを満たしているかを随時追跡しておく必要がある。
【0189】
クリア条件を満たしている場合(ステップS410;Yes)、自プレイヤーxがクリアしていない段階のうち当該順における先頭の段階r(x)+1を自プレイヤーがクリアした旨を記憶部301に記憶させ、すなわち、C[x,r(x)+1] ← 1を実行して、段階情報を更新し(ステップS411)、ステップS412に進む。満たしていなければ(ステップS410;No)、そのままステップS412に進む。
【0190】
この処理は、自プレイヤーがその段階をクリアした場合に、自プレイヤーを次の段階に進めるものである。
【0191】
一方、コントローラ105からの指示入力が、中断入力である場合(ステップS407;中断入力)、CPU 101は、D[x] ← 1を実行して、自プレイヤーxが遅延している旨を、記憶部301に記憶させる(ステップS452)。
【0192】
次に、CPU 101は、RAM 103内に自プレイヤーのプレイヤー番号xの情報を含む中断通知パケットを生成する(ステップS453)。
【0193】
そして、当該中断通知パケットを、NIC 109を介して他の端末装置202に送信して(ステップS454)、ステップS412に進む。
【0194】
したがって、コントローラ105は、中断受付部311として機能する。また、CPU 101は、コントローラ105と共働して中断判定部308として機能する。さらに、CPU 101は、RAM 103、NIC 109と共働して、中断送信部309として機能する。
【0195】
なお、ステップS407において、指示入力が操作入力でも中断入力でもない場合は、対応する処理を実行(図示せず)してから、ステップS412に進むこととしても良い。
【0196】
そして、CPU 101は、NIC 109に、他の端末装置202からのパケットが到着しているか否かを調べる(ステップS412)。到着している場合(ステップS412;Yes)、到着しているパケットのそれぞれについて、以下の処理を繰り返す(ステップS413〜S417)。
【0197】
まず、そのパケットの種類を調べる(ステップS414)。パケットの種類には、少なくとも以下が存在する。
(1)操作通知パケット。他の端末装置202における処理内のステップS408にて生成され、ステップS409にて送信されたものである。
(2)中断通知パケット。他の端末装置202における処理内のステップS453にて生成され、ステップS454にて送信されたものである。
【0198】
このほかの種類のパケットを適宜用意して、そのパケットに応じた処理を追加することとしても良い。さて、当該パケットが、操作通知パケットである場合(ステップS414;操作通知)、操作通知パケットに格納されている
(a)他プレイヤーのプレイヤー番号p、
(b)他プレイヤーpが行った操作入力、
(c)他プレイヤーpに番がまわってきてからの経過時間
から、CPU 101は、他プレイヤーpが行った操作入力、もしくは、他プレイヤーpからの操作通知パケットに指定される操作入力の履歴をRAM 103に保存することとする等した場合の当該操作入力の履歴に基づいて、他プレイヤーpが、段階r(p)+1のクリア条件を満たしているか否かを、ステップS410と同様の判断基準で判断する(ステップS415)。
【0199】
操作通知パケットに含まれる経過時間は、パケットの到着順序に誤りがあっても、他プレイヤーpの操作入力の履歴を正しい順序に並べかえるためのソートのキーとして利用される。
【0200】
さて、クリア条件を満たしている場合(ステップS415;Yes)、他プレイヤーpがクリアしていない段階のうち当該順における先頭の段階r(p)+1を他プレイヤーがクリアした旨を記憶部301に記憶させ、すなわち、C[p,r(p)+1] ← 1を実行して、段階情報を更新して(ステップS416)、ステップS417に進む。この処理は、他プレイヤーがその段階をクリアした場合に、他プレイヤーを次の段階に進めるものである。
【0201】
したがって、CPU 101の制御の下、NIC 109は、操作受信部305として機能する。
【0202】
また、CPU 101は、RAM 103およびNIC 109と共働して、段階更新部306として機能する。
【0203】
このように、本実施形態では、いわゆるサーバ・クライアント方式を主たる方式としてゲームを進めるのではなく、各端末装置202が対等の立場でゲームを進めることとしている。そして、ゲームを実現している以上、操作入力が成功したか否かは、各端末装置202で判断可能な事項であるから、全プレイヤーの操作入力を、全端末装置202で処理することによって、全プレイヤーのそれぞれが次の段階に進めるかどうかを判断できるようにするのである。
【0204】
したがって、各端末装置202における判断の結果が一致するかチェックすることにより、チート行為などをできるだけ防止することも可能である。
【0205】
一方、パケットが、中断通知パケットである場合(ステップS414;中断通知)は、中断通知パケットに格納されている中断プレイヤーのプレイヤー番号pから、CPU 101は、D[p] ← 1を実行して、中断プレイヤーpが遅延している旨を、記憶部301に記憶させて(ステップS462)、ステップS417に進む。
【0206】
したがって、NIC 109は、中断受信部310として機能する。
【0207】
そして、到着しているパケットのそれぞれについて、繰り返しを行い(ステップS417)、繰り返しが終了したら、以下のように、遅延情報の更新を行う。
【0208】
まず、上記のように、主プレイヤー全員がクリアした段階の最大の段階番号zを更新する(ステップS418)。
【0209】
ついで、p = 0,1,…,P-1のそれぞれについて、順に以下の処理を繰り返す(ステップS419)。すなわち、D(p) = 1であるか否かを判別する(ステップS420)。
【0210】
そうである場合(ステップS420;Yes)、すなわち、プレイヤーpが副プレイヤーである場合は、z = r(p)であるか否か(ステップS421)、すなわち、主プレイヤーがクリア済みの段階と、当該副プレイヤーpがクリア済みの段階と、が一致するか否かを調べる。
【0211】
一致する場合(ステップS421;Yes)、副プレイヤーpは主プレイヤーに追い付いたことになるから、D(p) ← 0として、遅延情報を更新する(ステップS423)。
【0212】
そして、pを次の値に更新してステップS419以降処理を繰り返す(ステップS424)。
【0213】
したがって、CPU 101は、RAM 103およびNIC 109と共働して、遅延更新部307として機能する。
【0214】
ついで、CPU 101は、RAM 103に蓄積された自プレイヤーxの操作入力、および、存在すれば、他プレイヤーの操作入力に基づいて、プレイヤーのプレイの様子を示す画像を、現在の時刻に応じて生成する(ステップS425)。
【0215】
この画像は、典型的には、各プレイヤーが操作する仮想世界のキャラクターの姿態を時間とともに変化させる動画像であるが、単に、記憶部301に記憶された各プレイヤーの現在の状態を示すこととしても良い。上記のように、記憶部301に記憶されたプレイヤーの状態は、各プレイヤーの操作入力に基づいて更新されるからである。
【0216】
また、仮想世界のキャラクターの動画像を生成する際には、プレイヤーの操作入力に基づいてキャラクターの関節や筋肉の要素を折り曲げあるいは伸縮させるのが典型的であるが、このようなプレイヤーによるキャラクターの操作については、各種のゲームにおける技術を適用することができる。
【0217】
ここで、受け付けられた操作入力は、自プレイヤーxが行ったものであり、受信された操作通知に指定される操作入力は、他プレイヤーが行ったものである。ゴルフやダーツ、ボーリングなどのゲームでは、自分のプレイもさることながら、他のプレイヤーのプレイを見るのも大きな楽しみの一つとなっている。
【0218】
そこで、当該画像においては、キャラクターの画像に大小の差異を設けて、注目されるキャラクターか、そうでないのか、を区別し、注目されるキャラクターは強調表示する、という手法を適用することができる。
【0219】
すなわち、自プレイヤーxが副プレイヤーである場合、すなわち、D[x] = 1である場合は、自プレイヤーxの情報を、他のプレイヤーの情報より強調する。
【0220】
これは、自プレイヤーxが遅延している状況に係るものであり、先行している主プレイヤーと異なる段階をプレイしていると想定されること、自プレイヤーxは単独でその段階をプレイしていることから、自プレイヤーxのプレイを、他のプレイヤー(主プレイヤーおよび他の副プレイヤー)よりも強調するものである。本実施形態では、後述するように、強調の手法として、画像を表示する領域を大きく拡大するとともに、画面の中央に画像を表示することとしている。
【0221】
一方、自プレイヤーxが主プレイヤーである場合、すなわち、D[x] = 0である場合は、自プレイヤーxを含む主プレイヤーの情報を、副プレイヤーの情報より強調する。
【0222】
これは、自プレイヤーxが主プレイヤーとしてプレイしている状況に係るものであり、他の主プレイヤーと同じ段階をプレイしていることから、自分のプレイはもちろん、他の主プレイヤーのプレイも重要と考えて、自分も属する主プレイヤーのプレイを、遅延している副プレイヤーよりも強調するものである。
【0223】
図9は、生成される画像における表示領域を示す説明図である。以下、本図を参照して説明する。
【0224】
画面901には、キャラクター強調表示領域902、プレイヤー情報強調表示領域903がそれぞれ1つと、キャラクター通常表示領域904、プレイヤー情報通常表示領域906がそれぞれ2つ、用意されている。
【0225】
プレイヤー情報強調表示領域903および、キャラクター強調表示領域902には、強調表示されるべきプレイヤーの情報と、当該プレイヤーの操作入力に基づくキャラクターの動画像が表示される。これは、画面901の中央に配置され、面積も大きい。
【0226】
プレイヤー情報通常表示領域905および、キャラクター通常表示領域904には、他のプレイヤーの情報と、当該プレイヤーの操作入力に基づくキャラクターの動画像が表示される。これは、画面901の下方に配置され、面積も小さい。
【0227】
そして、これらの表示は、プレイヤー情報強調表示領域903および、キャラクター強調表示領域902に対してスーパーインポーズされる。
【0228】
そして、これらの領域には、図示するように、プレイヤー情報強調表示領域903は、プレイヤー情報通常表示領域905より大きく、キャラクター強調表示領域902は、キャラクター通常表示領域904より大きくなっている。
【0229】
なお、他のプレイヤーが存在しない場合、すなわち、ゲームに参加しているプレイヤーが全員主プレイヤーである場合、もしくは、他のプレイヤーが1人である場合には、プレイヤー情報通常表示領域905およびキャラクター通常表示領域904の両方、もしくは、一方には情報も表示されず、プレイヤー情報強調表示領域903およびキャラクター強調表示領域902の表示内容がそのまま見えることになる。
【0230】
また、自分が主プレイヤーで、遅延プレイヤーが1人いる場合には、キャラクター通常表示領域904の一方に、当該遅延プレイヤーが表示され、遅延プレイヤーが2人の場合には、キャラクター通常表示領域904のそれぞれに当該遅延プレイヤーがそれぞれ表示されることとなる。
【0231】
一方、自分が遅延プレイヤーの場合には、キャラクター通常表示領域904の一方には、主プレイヤーが表示されることとなり、自分以外にも遅延プレイヤーがいる場合には、キャラクター通常表示領域904の他方に、当該遅延プレイヤーが表示されることとなる。
【0232】
このように、画像を表示する領域の大小によって、強調表示か否かを区別すると、たとえばテレビ放送でゴルフのトーナメントが中継されるような状況のような、複数の注目されるプレイヤーが別のホールでプレイしている様子をオーバレイして表示することが可能となる。
【0233】
ついで、適切な画像転送タイミング(たとえば、垂直同期割込が生じた直後)に、生成された画像を画像処理部107に転送させ、モニタに表示させる(ステップS426)。
【0234】
したがって、CPU 101は、RAM 103および画像処理部107と共働して、表示部312として機能する。
【0235】
そして、CPU 101は、ゲームが終了しているか否か、すなわち、p = 0,1,…,P-1のすべてについて、r(p) = S-1が成立するか否かを判断する(ステップS427)。なお、図5においては、論理学における全称記号「∀」により、この旨を表記している。
【0236】
ゲームが終了していれば(ステップS427;Yes)、本処理を終了し、そうでなければ(ステップS427;No)、ステップS402に戻る。
【0237】
さて、プレイ条件が満たされない場合(ステップS402;No)、ステップS403の後は、コントローラ105の入力状況を取得して(ステップS431)、これに対応する指示入力の種類を調べる(ステップS432)。
【0238】
この指示入力が、中断入力である場合(ステップS432;中断入力)、ステップS452に進む。それ以外である場合(ステップS432;その他)、ステップS412に進む。
【0239】
本実施形態は、たとえば来客や手洗いの必要があるために、ゲームを中座する旨をプレイヤーが明示的に端末に入力する手法であり、所定のスイッチを押圧操作したり、所定のメニュー項目を選択することで、中断入力とすることができる。
【0240】
本実施形態によれば、プレイヤーが明示してゲームを中断した場合に、当該プレイヤーを遅延している状態に移行することにより、ゲーム全体の遅延を防止するとともに、上記の構成と相俟って、遅延している副プレイヤーが遅延していない主プレイヤーに追い付けるようにして、できるだけ全員でゲームを進めることができるようになる。
【0241】
なお、本実施形態では、プレイ判定部302による判定は、ゲームを開始するとき、当該遅延情報が更新されたとき、もしくは、当該操作通知が受信されたときに行われる。
【0242】
たとえば、ゴルフの場合には、ホールのスタート地点(ティーアップの場所)でのティーショットには、ルールに定めがないが、それ以降は、ホールから遠い順に打つことと定められている。したがって、プレイヤーがボールを打つごとに、次にプレイをするのは誰かを決定する必要がある。
【0243】
また、ティーアップの際には、一意に順序が定まるように、適当な規則を定めておけば良い。たとえば、ゲームの開始時に、くじびきなど、乱数を用いて決定してしまう、過去の戦績の悪い順にする、等である。
【0244】
したがって、本実施形態によれば、プレイヤーのプレイ順序が交互あるいは所定の循環するパターンにならないようなゲームの規則に対応することができる。
【0245】
一方、制御の流れを変更して、プレイ判定部302による判定が、ゲームを開始するとき、当該遅延情報が更新されたとき、もしくは、当該段階情報が更新されたときに、当該判定を行うように構成しても良い。
【0246】
たとえば、ダーツではプレイヤーは、1スロー(3本)ずつ交替して投げる。ボーリングではプレイヤーは、1フレーム(1投げしてストライクもしくは2投)ごとに交替して投げる。したがって、ゲームの開始時に、複数のプレイヤーの間に巡回的な順序を定めておき、1スローや1フレームを「段階」として考えることにより、次のプレイするのは誰かを判定するタイミングは、段階情報が更新されたときとすれば良いこととなる。
【0247】
このような構成によれば、プレイヤーのプレイ順序が交互あるいは所定の循環するパターンになるようなゲームの規則に対応することができる。
【0248】
また、本実施形態では、中断入力の後に操作入力がされれば、直ちに自プレイヤーxの中断は解除されるが、コントローラ105の所定のボタン操作等に再開入力を設け、再開入力がされた後に、操作入力が有効となるような形態を採用しても良い。
【0249】
このほか、本実施形態では、中断入力がされたことをもって、自プレイヤーxが遅延したことなるが、それ以外をきっかけとして、自プレイヤーxが遅延し始めることとしても良い。
【0250】
たとえば、自プレイヤーxのプレイ条件が満たされると判定された後に、自プレイヤーxが、一定時間連続して、クリア条件の判定に至るような指示入力を行わなかった場合に、D(x) ← 1とする手法である。
【0251】
たとえば、コントローラの方向や位置およびその速度によって、ダーツの矢を投げる方向や速度、ボーリングのボールを投げる方向や速度、ゴルフのクラブを振る方向や速度を入力し、所定のボタンを押すことによって、その瞬間に矢を放ったり、ボールを投げたり、インパクトを生じさせるようなゲームにおいては、当該プレイヤーの番になってから当該所定のボタンが押されるまでに、所定の閾時間以上が経過すると、プレイが中断する、と考えることができる。
【0252】
この場合も、中断した旨が中断通知パケットによって他の端末装置202に通知されるので、ゲーム全体の進行はスムーズに行われる。また、本実施形態では、[非特許文献1]とは異なり、時間制限に遅れると自プレイヤーは副プレイヤーとなり、主プレイヤー達とは独立してゲームを進める状況に自動的に移行することとなる。
【0253】
一方、本実施形態によれば、プレイヤーが暗黙にゲームを中断した場合に、当該プレイヤーを遅延している状態に移行することにより、ゲーム全体の遅延を防止するとともに、上記の構成と相俟って、遅延している副プレイヤーが遅延していない主プレイヤーに追い付けるようにして、できるだけ全員でゲームを進めることができるようになる。
【0254】
このほか、現在の副プレイヤーの人数と主プレイヤーの人数を対比して、前者が後者に比べて多い場合や、主プレイヤーが2人になってしまった場合には、中断入力をしたとしても中断できないように、制御を変更しても良い。副プレイヤーのそれぞれは単独で主プレイヤーに追い付こうとするため、主プレイヤーの人数が少なくとも2人いれば、かなりの割合で追い付けると想定されるからである。
【0255】
もっとも、1人の主プレイヤー以外の全員が副プレイヤーになってしまったとしても、当該主プレイヤーにいずれかの副プレイヤーが追い付いてしまえば、その後は、雪崩的に副プレイヤーが追い付く可能性が高くなるため、必ずしもこのような制限を設けなくとも良い。
【産業上の利用可能性】
【0256】
以上説明したように、本発明によれば、プレイヤーのプレイ順序をできるだけ所定の規則に合わせつつも、プレイが遅延したプレイヤーがいても適切に対処してゲームに参加できるようにするのに好適なゲームシステム、ゲーム制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【0257】
【図1】プログラムを実行することにより、本発明のゲームシステムにおける端末装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。
【図2】本実施形態のゲームシステム全体の概要構成を示す説明図である。
【図3】本実施形態の端末装置の概要構成を示す説明図である。
【図4】本実施形態の端末装置にて実行されるゲーム処理の制御の流れを示すフローチャートである。
【図5】本実施形態の端末装置にて実行されるゲーム処理の制御の流れを示すフローチャートである。
【図6】到達済み段階番号r(p)を求める処理の制御の流れを示すフローチャートである。
【図7】主プレイヤー全員がクリアした段階zを求める手順の制御の流れを示すフローチャートである。
【図8】自プレイヤーが主プレイヤーである場合に、自プレイヤーが現在のプレイ順序において先頭であるか否か、すなわち、自プレイヤーの番であるか否かを判定する処理の制御の流れを示すフローチャートである。
【図9】生成される画像における表示領域を示す説明図である。
【符号の説明】
【0258】
100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェイス
105 コントローラ
106 外部メモリ
107 画像処理部
108 DVD−ROMドライブ
109 NIC
110 音声処理部
111 マイク
201 ゲームシステム
202 端末装置
203 インターネット
301 記憶部
302 プレイ判定部
303 操作受付部
304 操作送信部
305 操作受信部
306 段階更新部
307 遅延更新部
308 中断判定部
309 中断送信部
310 中断受信部
311 中断受付部
312 表示部
901 画面
902 キャラクター強調表示領域
903 プレイヤー情報強調表示領域
904 キャラクター通常表示領域
905 プレイヤー情報通常表示領域

【特許請求の範囲】
【請求項1】
複数の端末装置を備えるゲームシステムであって、当該複数の端末装置のそれぞれには、複数のプレイヤーのいずれかが割り当てられ、当該複数のプレイヤーのそれぞれは、複数の段階を順にクリアすることにより当該ゲームを進め、当該複数の端末装置は、当該複数のプレイヤーのプレイ順序を一意に定める所定の規則を共有し、当該複数の端末装置のそれぞれは、
当該複数のプレイヤーの全員について、当該プレイヤーが遅延しているか否かを示す遅延情報と、当該プレイヤーが当該複数の段階のそれぞれをクリアしたか否かを示す段階情報と、を記憶する記憶部、
当該端末装置に割り当てられたプレイヤー(以下「自プレイヤー」という。)のプレイ条件
(a)当該自プレイヤーが、当該遅延情報に遅延している旨が記憶されているプレイヤー(以下「副プレイヤー」という。)であり、当該遅延情報に遅延していない旨が記憶されているプレイヤー(以下「主プレイヤー」という。)全員がクリアした段階のうち、当該自プレイヤーがクリアしていない段階が存在する、もしくは、
(b)当該自プレイヤーが当該主プレイヤーであり、当該主プレイヤー全員に対して当該共有される所定の規則を適用すると、当該自プレイヤーが当該プレイ順序において最初になる、
が満たされたか否かの判定を行うプレイ判定部、
当該自プレイヤーのプレイ条件が満たされると判定された場合、当該自プレイヤーがクリアしていない段階のうち当該順における先頭の段階に対する当該自プレイヤーからの操作入力を受け付ける操作受付部、
当該複数の端末装置のうち他の端末装置に、前記受け付けられた操作入力を指定する操作通知を送信する操作送信部、
当該複数の端末装置のうち他の端末装置から送信される操作通知を受信する操作受信部、
前記記憶部に記憶される段階情報を更新する段階更新部であって、
(m)前記受け付けられた操作入力により、当該自プレイヤーがクリアしていない段階のうち当該順における先頭の段階におけるクリア条件が満たされた場合、当該自プレイヤーがクリアしていない段階のうち当該順における先頭の段階を当該自プレイヤーがクリアした旨を記憶させ、
(n)前記受信された操作通知に指定される操作入力により、当該操作通知の送信元の端末装置に割り当てられるプレイヤー(以下「他プレイヤー」という。)がクリアしていない段階のうち当該順における先頭の段階におけるクリア条件が満たされた場合、当該他プレイヤーがクリアしていない段階のうち当該順における先頭の段階を当該他プレイヤーがクリアした旨を記憶させる
段階更新部、
前記記憶部に記憶される遅延情報を更新する遅延更新部であって、
(p)当該副プレイヤーのそれぞれについて、当該副プレイヤーがクリア済みの段階と当該主プレイヤー全員がクリア済みの段階とが一致する場合、当該副プレイヤーが遅延していない旨を記憶させる
遅延更新部
を備えることを特徴とするゲームシステム。
【請求項2】
請求項1に記載のゲームシステムであって、当該複数の端末装置のそれぞれは、
当該自プレイヤーが中断処理を行ったか否かを判定する中断判定部、
当該中断処理が行われたと判定されると、当該複数の端末装置のうち他の端末装置に、中断通知を送信する中断送信部、
当該複数の端末装置のうち他の端末装置から送信される中断通知を受信する中断受信部
をさらに備え、
前記遅延更新部は、さらに、
(q)当該中断処理が行われたと判定された場合、当該自プレイヤーが遅延している旨を記憶させ、
(r)当該中断通知が受信された場合、当該中断通知の送信元の端末装置に割り当てられるプレイヤー(以下「中断プレイヤー」という。)が遅延している旨を記憶させる
ことを特徴とするゲームシステム。
【請求項3】
請求項2に記載のゲームシステムであって、
当該自プレイヤーからの中断入力を受け付ける中断受付部
をさらに備え、
前記中断判定部は、当該自プレイヤーからの当該中断入力が受け付けられた場合、当該自プレイヤーが当該中断処理を行ったと判定する
ことを特徴とするゲームシステム。
【請求項4】
請求項2に記載のゲームシステムであって、
前記中断判定部は、当該自プレイヤーのプレイ条件が満たされると判定され、当該自プレイヤーがクリアしていない段階のうち当該順における先頭の段階に対する当該自プレイヤーからの操作入力が所定の時間内にされなかった場合、当該自プレイヤーが当該中断処理を行ったと判定する
ことを特徴とするゲームシステム。
【請求項5】
請求項1から4のいずれか1項に記載のゲームシステムであって、
前記プレイ判定部は、ゲームを開始するとき、当該遅延情報が更新されたとき、もしくは、当該操作通知が受信されたときに、当該判定を行う
ことを特徴とするゲームシステム。
【請求項6】
請求項1から4のいずれか1項に記載のゲームシステムであって、
前記プレイ判定部は、ゲームを開始するとき、当該遅延情報が更新されたとき、もしくは、当該段階情報が更新されたときに、当該判定を行う
ことを特徴とするゲームシステム。
【請求項7】
請求項1から6のいずれか1項に記載のゲームシステムであって、当該複数の端末のそれぞれは、
前記受け付けられた操作入力、もしくは、前記受信された操作通知に指定される操作入力から、当該操作入力に対応付けられる画像を生成して、当該生成された画像を、当該操作入力をしたプレイヤーの情報とともに表示する表示部
をさらに備える
ことを特徴とするゲームシステム。
【請求項8】
請求項7に記載のゲームシステムであって、
前記表示部は、
(x)当該自プレイヤーが当該副プレイヤーである場合、当該自プレイヤーの情報を、他のプレイヤーの情報より強調して表示し、
(y)当該自プレイヤーが当該主プレイヤーである場合、当該主プレイヤーの情報を、当該副プレイヤーの情報より強調して表示する
ことを特徴とするゲームシステム。
【請求項9】
請求項8に記載のゲームシステムであって、
前記表示部において強調して表示されるべきプレイヤーからの操作入力に対応付けられる画像を、他のプレイヤーからの操作入力に対応付けられる画像よりも、広い領域に表示する
ことを特徴とするゲームシステム。
【請求項10】
複数の端末装置を用いるゲームにおいて、当該複数の端末装置のそれぞれには、複数のプレイヤーのいずれかが割り当てられ、当該複数のプレイヤーのそれぞれは、複数の段階を順にクリアすることにより当該ゲームを進め、当該複数の端末装置は、当該複数のプレイヤーのプレイ順序を一意に定める所定の規則を共有し、当該複数の端末装置のそれぞれは、記憶部、プレイ判定部、操作受付部、操作送信部、操作受信部、段階更新部、遅延更新部を備え、前記記憶部には、当該複数のプレイヤーの全員について、当該プレイヤーが遅延しているか否かを示す遅延情報と、当該プレイヤーが当該複数の段階のそれぞれをクリアしたか否かを示す段階情報と、が記憶され、当該複数の端末装置のそれぞれにおいて、
前記プレイ判定部が、当該端末装置に割り当てられたプレイヤー(以下「自プレイヤー」という。)のプレイ条件
(a)当該自プレイヤーが、当該遅延情報に遅延している旨が記憶されているプレイヤー(以下「副プレイヤー」という。)であり、当該遅延情報に遅延していない旨が記憶されているプレイヤー(以下「主プレイヤー」という。)全員がクリアした段階のうち、当該自プレイヤーがクリアしていない段階が存在する、もしくは、
(b)当該自プレイヤーが当該主プレイヤーであり、当該主プレイヤー全員に対して当該共有される所定の規則を適用すると、当該自プレイヤーが当該プレイ順序において最初になる、
が満たされたか否かの判定を行うプレイ判定工程、
当該自プレイヤーのプレイ条件が満たされると判定された場合、前記操作受付部が、当該自プレイヤーがクリアしていない段階のうち当該順における先頭の段階に対する当該自プレイヤーからの操作入力を受け付ける操作受付工程、
前記操作送信部が、当該複数の端末装置のうち他の端末装置に、前記受け付けられた操作入力を指定する操作通知を送信する操作送信工程、
前記操作受信部が、当該複数の端末装置のうち他の端末装置から送信される操作通知を受信する操作受信工程、
前記段階更新部が、前記記憶部に記憶される段階情報を更新する段階更新工程であって、
(m)前記受け付けられた操作入力により、当該自プレイヤーがクリアしていない段階のうち当該順における先頭の段階におけるクリア条件が満たされた場合、当該自プレイヤーがクリアしていない段階のうち当該順における先頭の段階を当該自プレイヤーがクリアした旨を記憶させ、
(n)前記受信された操作通知に指定される操作入力により、当該操作通知の送信元の端末装置に割り当てられるプレイヤー(以下「他プレイヤー」という。)がクリアしていない段階のうち当該順における先頭の段階におけるクリア条件が満たされた場合、当該他プレイヤーがクリアしていない段階のうち当該順における先頭の段階を当該他プレイヤーがクリアした旨を記憶させる
段階更新工程、
前記遅延更新部が、前記記憶部に記憶される遅延情報を更新する遅延更新工程であって、
(p)当該副プレイヤーのそれぞれについて、当該副プレイヤーがクリア済みの段階と当該主プレイヤー全員がクリア済みの段階とが一致する場合、当該副プレイヤーが遅延していない旨を記憶させる
遅延更新工程
を備えることを特徴とするゲーム制御方法。
【請求項11】
複数の端末装置を用いるゲームにおいて、当該複数の端末装置のそれぞれには、複数のプレイヤーのいずれかが割り当てられ、当該複数のプレイヤーのそれぞれは、複数の段階を順にクリアすることにより当該ゲームを進め、当該複数の端末装置は、当該複数のプレイヤーのプレイ順序を一意に定める所定の規則を共有し、コンピュータを、当該複数の端末装置のいずれか1つとして機能させるプログラムであって、当該プログラムは、当該コンピュータを、
当該複数のプレイヤーの全員について、当該プレイヤーが遅延しているか否かを示す遅延情報と、当該プレイヤーが当該複数の段階のそれぞれをクリアしたか否かを示す段階情報と、を記憶する記憶部、
当該端末装置に割り当てられたプレイヤー(以下「自プレイヤー」という。)のプレイ条件
(a)当該自プレイヤーが、当該遅延情報に遅延している旨が記憶されているプレイヤー(以下「副プレイヤー」という。)であり、当該遅延情報に遅延していない旨が記憶されているプレイヤー(以下「主プレイヤー」という。)全員がクリアした段階のうち、当該自プレイヤーがクリアしていない段階が存在する、もしくは、
(b)当該自プレイヤーが当該主プレイヤーであり、当該主プレイヤー全員に対して当該共有される所定の規則を適用すると、当該自プレイヤーが当該プレイ順序において最初になる、
が満たされたか否かの判定を行うプレイ判定部、
当該自プレイヤーのプレイ条件が満たされると判定された場合、当該自プレイヤーがクリアしていない段階のうち当該順における先頭の段階に対する当該自プレイヤーからの操作入力を受け付ける操作受付部、
当該複数の端末装置のうち他の端末装置に、前記受け付けられた操作入力を指定する操作通知を送信する操作送信部、
当該複数の端末装置のうち他の端末装置から送信される操作通知を受信する操作受信部、
前記記憶部に記憶される段階情報を更新する段階更新部であって、
(m)前記受け付けられた操作入力により、当該自プレイヤーがクリアしていない段階のうち当該順における先頭の段階におけるクリア条件が満たされた場合、当該自プレイヤーがクリアしていない段階のうち当該順における先頭の段階を当該自プレイヤーがクリアした旨を記憶させ、
(n)前記受信された操作通知に指定される操作入力により、当該操作通知の送信元の端末装置に割り当てられるプレイヤー(以下「他プレイヤー」という。)がクリアしていない段階のうち当該順における先頭の段階におけるクリア条件が満たされた場合、当該他プレイヤーがクリアしていない段階のうち当該順における先頭の段階を当該他プレイヤーがクリアした旨を記憶させる
段階更新部、
前記記憶部に記憶される遅延情報を更新する遅延更新部であって、
(p)当該副プレイヤーのそれぞれについて、当該副プレイヤーがクリア済みの段階と当該主プレイヤー全員がクリア済みの段階とが一致する場合、当該副プレイヤーが遅延していない旨を記憶させる
遅延更新部
として機能させることを特徴とするプログラム。

【図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