以下、添付図面を参照して、本発明の実施の形態について説明する。
MMORPGにおいては通常プレイヤがゲームを進行したりバトルを行ったりするゾーンサーバ装置は複数用意されており、一つのゾーンサーバ装置に登録してゲームを行うプレイヤの人数は、ゲームの処理が可能である程度に限られている。プレイヤがゲームを最初に始める時に登録したゾーンサーバ装置がそのプレイヤの主サーバ装置となり、他のゾーンサーバ装置上に登録されたプレイヤとはパーティを組んだり、同時に同じフィールドでプレイすることはない。この実施の形態にかかるオンラインゲームは、同時に当該オンラインゲームに参加する複数のプレイヤが、仮想空間としてのフィールド上にて他プレイヤとパーティを組み、当該パーティで通常は出会うことのない他のゾーンサーバのフィールドに存在する他のパーティプレイヤとの戦闘(バトル)を行わせることで進行するMMORPGである。
図1は、この実施の形態にかかるオンラインゲームが行われるネットワークシステムの全体構成を示すブロック図である。図示するように、このネットワークシステムは、複数のビデオゲーム装置100がインターネット151を介してサーバ群250に接続されて構成される。
サーバ群250は、LAN(Local Area Network)251を介して互いに接続された複数のゾーンサーバ装置200、複数の共通サーバ装置210、複数のバトルサーバ装置300、及び通常においてこの実施の形態にかかるオンラインゲーム以外に係る処理を行うサーバ装置であるゲーム外サーバ装置350を含み、サーバ装置200、300がインターネット151を介してビデオゲーム装置100に接続される。
ゾーンサーバ装置200は、フィールドにおける全てのプレイヤキャラクタ、並びに敵キャラクタの位置、及び外見などに係る情報を管理するものである。また、共通サーバ装置210は、他のゾーンサーバ装置に属するプレイヤキャラクタとのマッチングが可能なフィールド(後述するコロシアムホール)における全てのプレイヤキャラクタ、並びに敵キャラクタの位置、及び外見などに係る情報を管理するものである。そして、ゾーンサーバ装置200または共通サーバ装置210からビデオゲーム装置100に送信される情報は、主にビデオゲーム装置100の表示装置に表示されるフィールド上におけるキャラクタの外観的な情報に係るものである。
バトルサーバ装置300は、自プレイヤキャラクタを含む自パーティと、自プレイヤキャラクタとは異なる他のゾーンサーバ装置上に属する他のパーティとの戦闘開始、およびプレイヤキャラクタと敵キャラクタとのバトルの開始によって、1のバトルにつき1のバトルサーバプロセスを起動する。そのバトルサーバプロセスは1または複数のプレイヤキャラクタ、及び複数の敵キャラクタから成るバトルの構成単位としてのバトルグループ(後述する)毎にバトルの進行、並びにそれに係る自プレイヤキャラクタを含む自パーティ、自プレイヤキャラクタとは異なる他のゾーンサーバ上に属する他のパーティ、プレイヤキャラクタ、及び敵キャラクタの情報(位置、外見及びその他のパラメータ等)を管理し、処理するものである。
そして、バトルサーバ装置300からビデオゲーム装置100に送信される情報は、ビデオゲーム装置100で操作されるプレイヤキャラクタのバトルの進行にかかる情報であり、フィールド上におけるキャラクタの外観的な情報だけではなく、バトルの進行内容(パラメータの増減等)に係る情報が含まれるものとなる。
以下において、バトルサーバ装置に関して、バトルサーバ、或いはバトルサーバプロセスというときは、ハードウェア資源それ自体を指すものでなく、機能としてのプロセスのことを指し、バトルサーバ装置というときは、ハードウェア資源それ自体を指すものとして説明する。
さらに、サーバ群250には、ゲーム外サーバ装置350が含まれる。このゲーム外サーバ装置350は、通常、この実施の形態にかかるオンラインゲーム以外の処理として、例えばCG(Computer Graphics)を生成する処理などを行っており、バトルサーバ装置300が最低限備える情報(後述する、エリア毎の敵キャラクタ組合せテーブル等)については、予め記憶されている。
そして、バトルサーバ装置300において、起動可能な最大数までのバトルサーバプロセスが起動された場合に、予備のバトルサーバ装置300として用いられるものとなる。以下、ゲーム外サーバ装置350に関して、特に区別しないときは、バトルサーバ装置300と同等のものとして扱うものとする。
次に、ビデオゲーム装置100、ゾーンサーバ装置200、共通サーバ装置210、及びバトルサーバ装置300の構成について説明する。図2は、図1のビデオゲーム装置100の構成を示すブロック図である。図示するように、ビデオゲーム装置100は、装置本体101を中心として構築される。この装置本体101は、その内部バス119に接続された制御部103、RAM(Random Access Memory)105、ハードディスク・ドライブ(HDD)107、サウンド処理部109、グラフィック処理部111、DVD/CD−ROMドライブ113、通信インターフェイス115、及びインターフェイス部117を含む。
この装置本体101のサウンド処理部109は、スピーカーであるサウンド出力装置125に、グラフィック処理部111は、表示画面122を有する表示装置121に接続されている。DVD/CD−ROMドライブ113には、記録媒体(本実施の形態では、DVD−ROMまたはCD−ROM)131を装着し得る。通信インターフェイス115は、ネットワーク151に接続される。インターフェイス部117には、入力部(コントローラ)161とメモリーカード162とが接続されている。
制御部103は、CPU(Central Processing Unit)やROM(Read Only Memory)などを含み、HDD107や記録媒体131上に格納されたプログラムを実行し、装置本体101の制御を行う。制御部103は、内部タイマを備えている。RAM105は、制御部103のワークエリアである。HDD107は、プログラムやデータを保存するための記憶領域である。サウンド処理部109は、制御部103により実行されているプログラムがサウンド出力を行うよう指示している場合に、その指示を解釈して、サウンド出力装置125にサウンド信号を出力する。
グラフィック処理部111は、制御部103から出力される描画命令に従って、フレームバッファ(フレームメモリ)112(図では、グラフィック処理部111の外側に描かれているが、グラフィック処理部111を構成するチップに含まれるRAM内に設けられる)に画像データを展開し、表示装置121の表示画面122上に画像を表示するビデオ信号を出力する。グラフィック処理部111から出力されるビデオ信号に含まれる画像の1フレーム時間は、例えば30分の1秒である。
DVD/CD−ROMドライブ113は、記録媒体131に対しプログラム及びデータの読み出しを行う。通信インターフェイス115は、ネットワーク150に接続され、他のコンピュータとの通信を行う。入力部161は、方向キー及び複数の操作ボタンを備える。方向キーは、フィールドで自己のプレイヤキャラクタを移動させるために用いられる。操作ボタンは、後述する敵キャラクタへの攻撃、魔法の実行をプレイヤキャラクタにさせるために用いられるボタンを含む。
インターフェイス部117は、入力部161からの入力データをRAM105に出力し、制御部103がそれを解釈して演算処理を実施する。インターフェイス部117は、また、制御部103からの指示に基づいて、RAM105に記憶されているゲームの進行状況を示すデータをメモリーカード162に保存させ、メモリーカード162に保存されている中断時のゲームのデータを読み出して、RAM105に転送する。
ビデオゲーム装置100でゲームを行うためのプログラム及びデータは、最初例えば記録媒体131に記憶されている。記録媒体131に記憶されているデータとしては、ゲーム空間に存在するフィールドを構成するためのグラフィックデータを含んでいる。記録媒体131に記憶されたプログラム及びデータは、実行時にDVD/CD−ROMドライブ113により読み出されて、RAM105にロードされる。制御部103は、RAM105にロードされたプログラム及びデータを処理し、描画命令をグラフィック処理部111に出力し、サウンド出力の指示をサウンド処理部109に出力する。制御部103が処理を行っている間の中間的なデータは、RAM105に記憶される。
図3は、図1のゾーンサーバ装置200、共通サーバ装置210、バトルサーバ装置300、及びゲーム外サーバ装置350の構成を示すブロック図である。図示するように、ゾーンサーバ装置200、共通サーバ装置210、及びバトルサーバ装置300は、サーバ本体201を中心として構築される。サーバ本体201は、その内部バス219に接続された制御部203、RAM205、ハード・ディスク・ドライブ(HDD)207、DVD/CD−ROMドライブ213、通信インターフェイス215を含む。DVD/CD−ROMドライブ213には、記録媒体(DVD−ROMまたはCD−ROM)231を装着し得る。
制御部203は、CPU(Central Processing Unit)やROM(Read Only Memory)などを含み、HDD207や記録媒体231上に格納されたプログラムを実行し、ゾーンサーバ装置200、共通サーバ装置210、及びバトルサーバ装置300の制御を行う。制御部203は、現在時刻を計時する内部タイマを備えている。RAM205は、制御部203のワークエリアである。HDD207は、プログラムやデータを保存するための記憶領域である。通信インターフェイス215は、ネットワーク151に接続され、ビデオゲーム装置100のそれぞれとの通信を行い、また、ローカルエリアネットワーク(LAN)にも接続され、ゾーンサーバ装置200、共通サーバ装置210、及びバトルサーバ装置300は相互に通信を行う。
ゾーンサーバ装置200、共通サーバ装置210、及びバトルサーバ装置300でオンラインゲームを行うためのプログラム及びデータは、最初例えば記録媒体231に記憶され、ここからHDD207にインストールされる。
また、この記録媒体231に記憶されるデータは、ゾーンサーバ装置200のものと、共通サーバ装置210のものと、バトルサーバ装置300のものとで異なり、ゾーンサーバ装置200の記録媒体231に記憶されるデータには、フィールドを構成するための形状のデータ、及びグラフィックデータは含まれておらず、後述するフィールドの範囲、およびマス目に関するデータが含まれる。また共通サーバ装置210の記録媒体231に記憶されるデータにも、フィールドを構成するための形状のデータ、及びグラフィックデータは含まれておらず、後述するマス目に関するデータが含まれる。一方、バトルサーバ装置300の記録媒体231に記憶されるデータには、フィールドの形状のデータは含まれるが、マス目に関するデータは含まれていない。
そして、このプログラム及びデータは実行時にHDD207から読み出されて、RAM205にロードされる。制御部203は、RAM205にロードされたプログラム及びデータを処理し、ビデオゲーム装置100のそれぞれから送られてくる情報などを元にオンラインゲームを進行させる。制御部203が処理を行っている間の中間的なデータは、RAM205に記憶される。
次にこの実施の形態にかかるオンラインゲームのフィールド構成について説明する。図4(a)または(b)は、この実施の形態にかかるオンラインゲームの各ゾーンサーバ装置200において設定されるフィールドの構成を示すものである。
このフィールド400内であれば、プレイヤは各自のプレイヤキャラクタ401またはパーティ403を自由に移動させることができ、全てのプレイキャラクタ401、及び敵キャラクタ402のフィールド400における位置の情報はゾーンサーバ装置200で管理されるものとなっている。
また、ゾーンサーバ装置200は、このフィールド400に対するマス目410の情報を保持している。このマス目410は、表示装置121の表示画面122に表示させるための、当該ビデオゲーム装置100で操作されるプレイキャラクタ401の各々の周辺のフィールド400の情報(以下、「周辺情報」とする)を特定するために用いられる。
このマス目410によって、周辺情報は、当該プレイヤキャラクタ401の存在するマス目410及びその周囲8つのマス目410の範囲に存在する、他のビデオゲーム装置100によって操作されるプレイヤキャラクタ401(他のプレイヤキャラクタ)、並びに敵キャラクタ402の位置及び外見に係る情報に特定され、ゾーンサーバ装置200から当該ビデオゲーム装置100に送信されるものとなる。
さらに、フィールド400は、エリア境界411によって複数のエリア412(図4においては3からなるエリア412)に分割されており、そのエリア412毎に存在する敵キャラクタ402に係るバトルにおいて、エリア412毎に当該バトルに参加する敵キャラクタ402の組合せが異なるものとなっている(エリア412毎に組み合わされる敵キャラクタの種類については後述する)。
バトルはフィールド400に存在する敵キャラクタ402に対して、プレイヤキャラクタ401が最初の一撃を与える、或いは、プレイヤキャラクタ401に対して、敵キャラクタ402が最初の一撃を与えることによって開始されるものとなるが、バトルの開始に先立ち、バトルサーバ装置300において当該バトルを進行させるためのバトルサーバプロセスが生成される。バトルはフィールド400で行われるものとなり、表示画面122ではシームレスに展開するものとなる。バトルが開始されると、フィールド400に存在していた敵キャラクタ402以外に新たな敵キャラクタ402がバトルに参加するものとなり、それらとプレイヤキャラクタ401(他のプレイヤキャラクタ401も追加されることがある)と(以下、これらをまとめて「バトルグループ」とする)によってバトルが進行するものとなる。
バトルが開始されても、フィールド400上の当該バトルに係るプレイヤキャラクタ401、及び敵キャラクタ402の位置、及び外見に係る情報は、引き続きゾーンサーバ装置200によって管理されるものの、バトルの進行はバトルサーバ装置300におけるバトルサーバプロセスで管理されるようになる。
次に、バトルサーバ装置300のバトルサーバプロセスで管理される、バトルの進行について説明する。バトルは、フィールド400上において、プレイヤキャラクタ401の敵キャラクタ402に対する最初の攻撃で開始されるものとなる。このようにバトルが開始される際に、このバトルに参加する敵キャラクタ402(バトル開始前においてフィールド400に存在した敵キャラクタ400とは異なる敵キャラクタ)の組合せが決定される。
バトルには、他のプレイヤキャラクタ401も参加することがあり、当該バトルに参加している敵キャラクタ401、或いはプレイヤキャラクタ402の何れか一方が全て倒される(キャラクタのパラメータとしてのHP(ヒットポイント)が0となる状態)と、バトルが終了するものとなる。
なお、バトルサーバ装置300におけるバトルでは、プレイヤキャラクタ401又は敵キャラクタ402がバトルに参加しながら、自由に移動ができるバトルフィールドが設定される。例えば、バトルを開始した時におけるプレイヤキャラクタ401又は敵キャラクタ402のいずれかの位置を中心とした所定の半径を有する円の内側をバトルフィールドとして設定することができる。
プレイヤキャラクタ401又は敵キャラクタ402のいずれかが、このバトルフィールドよりも外側に移動すると、そのキャラクタはバトルから離脱することになる。通常は、一度、バトルから離脱したキャラクタが同じバトルに再度参加することはできない。いずれかのパーティに属するすべてのキャラクタがバトルを継続することが不能となった場合(バトルによりキャラクタのHPが0となる場合、或いは、バトルフィールドの外に移動してバトルから離脱した場合)にバトルが終了する。
ここでは、あるプレイヤ自らが登録している主ゾーンサーバをゾーンサーバ装置200aとし、図4(a)に示すように、主ゾーンサーバに表示されているフィールドをフィールド400aとする。そして、フィールド400aに存在するキャラクタをプレイヤキャラクタ401a、敵キャラクタ402aとし、複数のキャラクタ401aによって構成されるチームをパーティ403aとする。また、主ゾーンサーバと異なる他のゾーンサーバをゾーンサーバ装置200bとし、ゾーンサーバ200bに表示されているフィールドをフィールド400bとする。そして、図4(b)に示すように、フィールド400bに存在するキャラクタをプレイヤキャラクタ401b、敵キャラクタ402b、複数のキャラクタ401bによって構成されるチームをパーティ403bとする。フィールド400aには、複数のプレイヤキャラクタ401a、パーティ403a、及び敵キャラクタ402aが存在しており、そのフィールド400a上にはコロシアムオブジェクト420aが存在する。同じく、ゾーンサーバ装置200b上のフィールド400bには、複数のプレイヤキャラクタ401b、パーティ403b、及び敵キャラクタ402bが存在しており、そのフィールド400b上にはコロシアムオブジェクト420bが存在する。
プレイヤキャラクタ401a若しくはパーティ403aがコロシアムオブジェクト420aが存在する地点に移動し、又は、プレイヤキャラクタ401b若しくはパーティ403bがコロシアムオブジェクト420bが存在する地点に移動すると、主ゾーンサーバや他のゾーンサーバであるかに関係なく、共通サーバ装置210上にあるコロシアムホール500に移動する。したがって、異なるゾーンサーバ装置200にてプレイを行っているプレイヤキャラクタ401a又はパーティ403aと、プレイヤキャラクタ401b又はパーティ403bが同じコロシアムホール500内で遭遇することも可能である。コロシアムホール500内であれば、プレイヤはプレイヤキャラクタ401又はパーティ403を自由に移動させることができる。全てのプレイキャラクタ401又はパーティ403のコロシアムホール500内における位置の情報は共通サーバ装置210で管理するものとなっている。
また、共通サーバ装置210は、このコロシアムホール500に対するマス目510の情報を保持している。このマス目510は、表示装置121の表示画面122に表示させるための、当該ビデオゲーム装置100で操作されるプレイキャラクタ401の各々の周辺のコロシアムホール500の情報(以下、「周辺情報」とする)を特定するために用いられる。
このマス目510によって、周辺情報は、当該パーティ403aの存在するマス目510及びその周囲8つのマス目510の範囲に存在する、他のビデオゲーム装置100によって操作されるプレイヤキャラクタ401(他のプレイヤキャラクタ)、並びにパーティ403bの位置及び外見に係る情報に特定され、共通サーバ装置210から当該ビデオゲーム装置100に送信されるものとなる。
コロシアムホール500に存在するパーティ403aとパーティ403bのマッチングが成立することで、これらのパーティ403同士のバトルが開始される。たとえば、図4(c)に示すように、コロシアムホール500には、マッチングの仲介を受け付けるための受付ノンプレイヤキャラクタ520(以下、受付NPCともいう)が存在している。例えば、パーティ403aが受付NPC520と会話をすることにより、あらかじめ登録された他のパーティ403の中から、バトルを希望するパーティ403bを選択することが可能である。この場合、パーティ403aを構成するプレイヤキャラクタ401aを操作する各ビデオゲーム装置100では、マッチングのためにあらかじめ登録されたパーティ403の一覧と、パーティの名称やパーティを構成するプレイヤキャラクタのステータス(レベルや職業など)が表示画面122に表示され、複数のプレイヤキャラクタ401aのいずれか或いは全員で、どのパーティ403とのバトルを希望するかを選択する。
ここでパーティ403aがバトルを希望するとして選択できる他のパーティ403については、パーティ403aを構成するプレイヤキャラクタ401aのレベル等に応じて制限を設けてもよい(たとえば、同程度のレベルのプレイヤキャラクタ401から構成されるパーティ403のみを選択可能とするなど)。たとえば、パーティ403aの経験値、レベルなどにより、ポイントを計算し、バトルが適切に展開すると予測される、同等のポイントをもつ他のパーティ403をマッチングする。
パーティ403aがパーティ403bとのバトルを希望すると選択した場合、パーティ403bを構成するプレイヤキャラクタ401bを操作する各ビデオゲーム装置100では、パーティ403aからバトルの希望がされている旨が通知される。そして、プレイヤキャラクタ401bを操作する各ビデオゲーム装置100の表示画面122には、パーティ403aとのバトルを行うか否かを選択するための表示がなされ、パーティ403bのプレイヤが全員一致、或いは、プレイヤのいずれか一人が代表で、「YES」を入力部161によって入力した場合に、マッチングが成立し、バトルが開始される。バトルの開始に先立ち、バトルサーバ装置300において当該バトルを進行させるためのバトルサーバプロセスが生成される。バトルはコロシアムホール500で行われるものとなり、表示画面122ではシームレスに展開するものとなる。
バトルが開始されても、コロシアムホール500の当該バトルに係るパーティ403a、パーティ403b位置、及び外見に係る情報は、引き続き共通サーバ装置210によって管理されるものの、バトルの進行はバトルサーバ装置300におけるバトルサーバプロセスで管理されるようになる。
バトルは、バトルに参加しているパーティ403a、或いはパーティ403bの何れか一方が全て倒される(キャラクタのパラメータとしてのHP(ヒットポイント)が0となる状態)と、バトルが終了するものとなる。
なお、受付NPC520と会話したパーティ403は、あらかじめ登録しているパーティ403の中からバトルをしたいと希望するパーティ403を選択することも可能であるが、他のパーティ403からバトルを希望するとして選択されるよう、マッチングを希望するパーティ403として登録をしておくことも可能である。
コロシアムホール500は、特定の人数、例えば3名からなるパーティ403同士をマッチングすることで、相互に対戦することを可能とするもので、共通サーバ装置210にて制御される。3人未満のプレイヤキャラクタ401から構成されているパーティ403がコロシアムオブジェクト420に到達したような場合、或いはプレイヤキャラクタ401のみでコロシアムオブジェクト420に到達したような場合、対戦相手となるパーティの人数との差異が出ないよう、個別に参加した別の3人に満たないパーティを検出し、このパーティと合同で自動的に3人になるように新たなパーティ403を組むことも可能である。なお、ここでは、パーティ403の標準のプレイヤキャラクタの人数(つまり、1つのパーティに同時に参加することのできる最大の人数)は3名であるとしたが、この人数に特に制限はなく、例えば、4名や5名を1つのパーティに参加可能な標準の人数としても良い。
図5(a)〜(h)は、この実施の形態にかかるオンラインゲームにおけるバトルについての表示画面122の例を示す図である。ここで展開されるバトルは、パーティ403a、及び複数のパーティ403bで進行するものであり、それぞれ異なる符号によって区別するものとする。
図5(a)に示すように、コロシアムホール500上にはパーティ403aと複数の403bが表示されており、受付ノンプレイヤキャラクタ520が居るカウンターが存在している。図5(b)に示すように、パーティ403aが受付NPC520に話しかけ、マッチング開始の意志の表明をすると、表示画面122上に複数のパーティ403bについての情報が表示される。パーティ403aに属するプレイヤは、カーソルを移動させることで、バトルを希望するパーティ403bを選択してマッチングの申し込みを行う。パーティ403aはパーティ403bの回答を待ち、バトルを受けて立つという通知を受けると、マッチングが成立しバトルが開始される。なお、受付NPC520と会話したパーティ403aがバトルを希望するパーティ403bを選択することなく、パーティ403aに最適な対戦相手をレベル等に応じて、共通サーバ装置210において自動的にマッチングしても良い。
バトルが開始されるに先立ち、まずはバトルサーバ装置300にバトルサーバプロセスが生成され、このバトル意志行動後のそのバトルに係る処理はすべてバトルサーバプロセスで管理されるものとなる。
バトルが開始されると、図5(c)に示すように、マッチングが成立した対戦相手となるパーティ403b−1が出現する。バトルは進み、図5(d)において、そのパーティ403b−1がパーティ403aによって、攻撃され倒されると、続いて、図5(e)に示すように再度対戦相手となるパーティとのマッチングを望み、対戦を続けるか否かの意思を求める表示がなされ、再度、図5(b)のようにバトルを希望するパーティ403bを選択することになる。新たにマッチングが成立すると、図5(f)に示すように次の対戦相手となるパーティとしてマッチングされ決定された別のパーティ403b−2が出現する。
新たに対戦することになったパーティ403b−2とパーティ403aとのバトルが図5(g)に示すように進み、図5(h)に示すように、全てのパーティ403b−2を倒すと、再度、図5(e)に示すように再度対戦相手となるパーティとのマッチングを望み、対戦を続けるか否かの意思を求める表示がなされる。バトルを継続しない場合は「いいえ」を選択することによってバトルが終了する。「はい」を選択すると、再度、バトルを希望するパーティ403bの選択を行う。
バトルの終了後は、所属する全てのプレイヤキャラクタ401bのHPがゼロになって、バトルに敗退したパーティ403bであっても、プレイヤキャラクタ401bのHPは、ゼロより大きい値に回復し、プレイを継続することが可能である。パーティ403a及びパーティ403bは、共通サーバ装置210による位置の管理の下、バトル終了直後のそれぞれの位置からコロシアムホール500を移動できるようになる。このように、表示画面122において、バトルはコロシアムホール500上で、シームレスに展開するものとなっている。
次に、この実施の形態にかかるオンラインゲームを進行させるため、ゾーンサーバ装置200、共通サーバ装置210、及びバトルサーバ装置300において管理されるデータ、並びにビデオゲーム装置100において記憶されるデータについて説明する。図6は、この実施の形態にかかるオンラインゲームを実行させるためにゾーンサーバ装置200において管理されるテーブルを示す図である。
図6(a)は、フィールド400におけるキャラクタの位置、及び外見等にかかる情報を管理するためのフィールドキャラクタテーブル600であり、図6(b)は、複数のバトルサーバ装置300のそれぞれにおけるバトルサーバプロセスの起動数を管理するためのバトルプロセス起動管理テーブル610である。
図6(a)に示すフィールドキャラクタテーブル600には、フィールド400上に存在する全てのキャラクタ毎にID601と、送信先IPアドレス602(プレイヤキャラクタのみ)と、名前/種類情報603と、形態情報604と、位置情報605と、パラメータA情報606と、パラメータB情報607と、参加バトルサーバプロセス情報608とが記憶される。
ID601は、プレイヤキャラクタ401、及び敵キャラクタ402を一意に識別するための識別情報である。送信先IPアドレス602は、プレイヤキャラクタ401を操作するビデオゲーム装置100に対して、そのプレイヤキャラクタ401についてのフィールドの周辺情報を送信するために用いられるビデオゲーム装置100のIPアドレスが記憶されている。
名前/種類情報603は、プレイヤキャラクタ401に関してはその名前を表示画面122に表示するため、敵キャラクタ402に関してはその種類を特定し、表示画面122に表示するための情報として用いられる。形態情報604は、プレイヤキャラクタ401及び敵キャラクタ402のフィールド400上での外見(中でも服装、体格、顔貌等)を表すために用いられる情報である。位置情報605は、プレイヤキャラクタ401及び敵キャラクタ402のフィールド400上での位置を示す。
パラメータA情報606は、バトル中、または移動中において刻々と変化し得るものとして、プレイヤキャラクタ401、及び敵キャラクタ402の外観として表示画面122に現れるパラメータに関する情報である。例えば、敵からの通常とは異なる攻撃によってなる毒状態(キャラクタのHPが一定時間毎に微減する状態)が、プレイヤキャラクタ401、及び敵キャラクタ402の外観として表示画面122に現れるものとするなら、それ等がパラメータA情報606に該当する。
一方、パラメータB情報607は、バトル中、または移動中において刻々と変化するものではないが、プレイヤキャラクタ401及び敵キャラクタ402の外観として表示画面122に現れるパラメータに関する情報であり、例えば、体格や筋力といったものがこれに該当する。具体的には、パラメータB情報607としての、体格や筋力の数値が高ければ、表示画面122に表示するフィールド上でのプレイヤキャラクタ401、及び敵キャラクタ402が、それらの数値が低いものよりも大きく表示されることになる。
さらに、パラメータに関する情報として、図6(a)に示すフィールドキャラクタテーブル600において特に管理はしないが(プレイヤキャラクタに送信する情報ではなく、ただ保持しておくだけのものでもよい)、プレイヤキャラクタ401、及び敵キャラクタ402の外観として現れないパラメータに関する、パラメータC情報、及びパラメータD情報がある(後述するバトルキャラクタテーブルでは管理される)。パラメータC情報は、バトル中、または移動中において刻々と変化するものであり、例えば、キャラクタのHP、或いはMP(マジックポイント、魔法を使う度に減少する)といったものがある。
一方、パラメータD情報は、バトル中、または移動中において刻々と変化するものでない、例えば、攻撃力、或いは防御力といった、攻撃、魔法等の行動の結果として表れるダメージ(HPの減少)量を計算する上で用いるパラメータに関するものである。
つまり、パラメータA、Bは外観として表示画面122に現れるものであるため、外観に係る情報を各ビデオゲーム装置100に送信するゾーンサーバ装置200は、これらの情報を保持するものである。対して、パラメータC、Dは外観として表示画面122に現れないものであるが、これらの情報は、バトルのダメージ量を求める上で必要な情報であり、後述する、バトルキャラクタテーブルに保持するものとなる。
参加バトルサーバプロセス情報608は、プレイヤキャラクタ401、及び敵キャラクタ402がバトル中であれば、当該バトルに係るバトルサーバプロセスの識別情報が記憶されるものとなっており、バトル中でなければ、何の情報も記憶されてない状態(NULL)となっている。
これらの、情報は全て後述するビデオゲーム装置100、共有サーバ装置210、及びバトルサーバ装置300から送信される情報を基に登録、更新されるものであり、移動中においては、定期的(例えば、0.5秒毎)にビデオゲーム装置100のから送信される位置、及び形態に係る情報において、形態情報604、位置情報605、パラメータA情報606、及びパラメータB情報607がそれぞれ更新されるものとなる。
一方、ゾーンサーバ装置200は、フィールドキャラクタテーブル600に登録された全てのプレイヤキャラクタ401を操作するビデオゲーム装置100に対して、前記した当該プレイヤキャラクタ401の周辺情報として特定される、プレイヤキャラクタ401、及び敵キャラクタ402のID601、名前/種類情報603、形態情報604、位置情報605、パラメータA情報606、パラメータB情報607、及び参加バトルサーバプロセス情報608が、定期的(例えば、1.0秒毎)に送信する。
続いて、図6(b)に示すバトルサーバプロセスの起動数を管理するためのバトルプロセス起動管理テーブル610には、装置情報611と、プロセス数612とが記憶されている。
装置情報611は、2台のバトルサーバ装置300、及びゲーム外サーバ装置350のそれぞれを特定する情報が登録されており、プロセス数612には、バトルサーバ装置300、及びゲーム外サーバ装置350が同時に起動しているサーバプロセスの数を記憶している。
プロセス数612では、バトルサーバ装置300及びゲーム外サーバ装置350から送信された情報を基に、それぞれのバトルサーバ装置300、及びゲーム外サーバ装置350において、バトルサーバプロセスの数を1のバトルサーバプロセスの起動により1増加させ、1のバトルサーバプロセスの終了によって1減少させる。
なお、バトルの実行に際し、当該バトルの進行を管理するバトルサーバプロセスを2つのバトルサーバ装置300のうちどちらで起動するかについては、バトルサーバプロセスの起動数が少ないバトルサーバ装置を優先的に選択して起動させるようにする。
また、すでに2台のバトルサーバ装置300で所定の起動可能な最大数までのバトルサーバプロセスが起動しているときにおいて、さらに新たなバトルが実行されるときは、ゲーム外サーバ装置350に、そこで実行しているこの実施の形態にかかるオンラインゲーム以外の処理を中断させて、当該バトルに係るバトルサーバプロセスを起動させ、バトルサーバ装置300と同様の処理を行わせるものとする。
図7は、この実施の形態にかかるオンラインゲームを実行させるためにバトルサーバ装置300において管理されるテーブルを示す図である。図7(a)は、フィールド400におけるエリア412毎の敵キャラクタ組合せテーブル700であり、図7(b)は、バトルサーバプロセス毎に進行されるバトルにおけるプレイヤキャラクタ401、及び敵キャラクタ402の情報を管理するためのバトルキャラクタテーブル710である。
図7(a)に示すエリア412毎の敵キャラクタ組合せテーブル700は、それぞれのバトルサーバ装置において記憶されており、そのバトルサーバ装置で起動される複数のバトルサーバプロセスにおいて共有されるものとなっている。そして、エリア412毎の敵キャラクタ組合せテーブル700には、エリア412情報701と、構成敵キャラクタ702が記憶されている。バトルにおける敵キャラクタ402の組合せは、エリア412毎に異なるものであり、また、その敵キャラクタ402の合計数も異なっている。
プレイヤキャラクタ401による、フィールド400上に存在する敵キャラクタ402にバトル意志行動を行うと、その敵キャラクタ402が存在するエリア412がエリア情報701として特定され、そのエリア412に応じて、追加される敵キャラクタ402の種類が特定される。そのようにして特定された敵キャラクタ402は、プレイヤキャラクタ401、及びフィールドに存在していた敵キャラクタ402とともに、バトルキャラクタテーブル710に登録されるものとなる。
さらに、バトルにおいて追加される敵キャラクタ402に関しては、実際にフィールド400に追加させるタイミングを計るための追加待ちフラグ720がセットされるものとなる。
図7(b)に示すバトルキャラクタテーブル710には、バトルサーバプロセス毎に管理されるバトルに参加するプレイヤキャラクタ401、及び敵キャラクタ402のID711と、送信先IPアドレス712と、名前/種類情報713と、形態情報714と、位置情報715と、パラメータA情報716と、パラメータB情報717と、パラメータC情報718と、パラメータD情報719と、追加待ちフラグ720が管理されている。
ID711は、前記したゾーンサーバ装置200で管理されるプレイヤキャラクタ401(バトルの途中で参加するプレイヤキャラクタ401も同様)、及び敵キャラクタ402のID601と同じものが登録されるものとなる。また、バトルによって、新たに追加することになる敵キャラクタ402に対しては、バトルサーバプロセスによって送信されるバトル周辺情報(後述する)に基づいて、図6(a)に示すフィールドキャラクタテーブル600で管理されるID601においても一意のID711が設定・登録されるものとなる。
送信先IPアドレス712は、プレイヤキャラクタ401に関しては、そのプレイヤキャラクタ401についてのバトルの進行情報を送信するために、当該プレイヤキャラクタ401を操作するビデオゲーム装置100のIPアドレスが記憶されている。また、敵キャラクタ402に関しては、その敵キャラクタ402についての位置、外見の情報を送信するために、ゾーンサーバ装置のIPアドレスが記憶されている。
名前/種類情報713、形態情報714については、プレイヤキャラクタ401、及び敵キャラクタ402(当該バトルで新たに参加する敵キャラクタ402を除く)のものは、図6(a)に示すフィールドキャラクタテーブル600で管理される名前/種類情報603、及び形態情報604と同様のものが登録さる。また、当該バトルで新たに参加する敵キャラクタ402の名前/種類情報713は、追加が決定された敵キャラクタ402の種類が登録され、形態情報714は、当該敵キャラクタ402に固有の形態情報714が登録されるものとなる。
位置情報715については、初めてバトルキャラクタテーブル710に登録されるときは、プレイヤキャラクタ401、及び敵キャラクタ402(当該バトルで新たに参加する敵キャラクタ402を除く)のものは、図6(a)に示すフィールドキャラクタテーブル600で管理される位置情報605のものが登録される。また、当該バトルで新たに参加する敵キャラクタ402の位置情報715については、当該プレイヤキャラクタ401の近辺の所定の位置(例えば、プレイヤキャラクタ401の位置に対して、X軸方向に+2、Y軸方向に+2の位置など)が登録される。
パラメータA情報716、パラメータB情報717については、初めてバトルキャラクタテーブル710に登録されるときは、プレイヤキャラクタ401に関しては、後述するビデオゲーム装置100に記憶されているものと同様の情報が登録される。
また、敵キャラクタ402(当該バトルで新たに参加する敵キャラクタ402を除く)に関しては、図6(a)に示すフィールドキャラクタテーブル600で管理されるパラメータA情報606、パラメータB情報607と同様の内容の情報が登録される。さらに、当該バトルで新たに参加する敵キャラクタ402のパラメータA情報716、パラメータB情報717については、当該敵キャラクタ402に固有のパラメータA情報716、パラメータB情報717が登録されるものとなる。
パラメータC情報718、及びパラメータD情報719については、初めてバトルキャラクタテーブル710に登録されるときは、プレイヤキャラクタ401のものは、後述するビデオゲーム装置100に記憶されているものと同様の情報が登録される。一方、敵キャラクタ402のパラメータC情報718、及びパラメータD情報719については、当該敵キャラクタ402に固有のパラメータC情報718、パラメータD情報719が登録されるものとなる。
追加待ちフラグ720については、バトルにおいて、追加が決定され、バトルキャラクタテーブル710に登録された敵キャラクタ402が、当該バトルにおいて実際にフィールド400に追加されるタイミングを計るためのものである。つまり、追加待ちフラグ720が1から0となったとき、当該追加待ちフラグ720の設定された敵キャラクタ402をフィールド400に追加する。
例えば、図5に示すバトルの展開では、バトルの開始直後からフィールド400又はコロシアムホール500にて、追加されるパーティ403b−2については、バトルキャラクタテーブル710に登録されたときから、追加待ちフラグ720には0が設定されている。一方、パーティ403b−2が倒されることで出現する、追加パーティ403b−3には、バトル開始直後で追加待ちフラグ720に1が登録されており、パーティ403b−2が倒されると、当該追加待ちフラグ720が0になる。このタイミングで、フィールド400又はコロシアムホール500に当該追加パーティ403b−3が追加されるものとなる。
また、このようなパーティ403bの追加される順番は、敵キャラクタ組合せテーブル700の左端の構成敵キャラクタ702に記憶される種類のパーティ403bから順に行われるものであり、バトルキャラクタテーブル710への登録もその順番でレコードが生成されるもの(ID711の昇順)となる。
これらバトルキャラクタテーブルに登録されるプレイヤキャラクタ401、及び敵キャラクタ402の、位置情報715と、パラメータA情報716と、パラメータB情報717と、パラメータC情報718と、及びパラメータD情報719に関しては、バトルが終了するまで、バトルキャラクタテーブル710に登録されるビデオゲーム装置100から送信される入力情報と、当該バトルキャラクタテーブル710を管理するバトルサーバプロセスのゲーム進行に係る処理とに従って更新されるものとなる。このようにして更新されたこれらの情報は、30分の1秒毎に当該ビデオゲーム装置100に送信されるものとなる。
一方、ゾーンサーバ装置200に対しては、バトルサーバプロセスによって、バトルキャラクタテーブル710に登録されたプレイヤキャラクタ401、及び敵キャラクタ402(追加待ちフラグ720が1となっている敵キャラクタ402(バトルキャラクタテーブル710に登録はされているが、フィールド400上に追加されていない敵キャラクタ402)を除く)の位置情報715と、パラメータA情報716と、パラメータB情報717とがバトル周辺情報として、バトル終了まで、例えば0.5秒のタイミングで送信されるものとなる。
図16(a)は、コロシアムホール500におけるキャラクタの位置、及び外見等にかかる情報を管理するためのマッチングキャラクタテーブル900であり、図16(b)は、複数のバトルサーバ装置300のそれぞれにおけるバトルサーバプロセスの起動数を管理するためのマッチングプロセス起動管理テーブル910である。
図16(a)に示すマッチングキャラクタテーブル900には、コロシアムホール500上に存在する全てのキャラクタ毎にID901と、送信先IPアドレス902(プレイヤキャラクタのみ)と、名前/種類情報903と、形態情報904と、位置情報905と、パラメータA情報906と、パラメータB情報907と、参加バトルサーバプロセス情報908とが記憶される。
ID901は、プレイヤキャラクタ401を一意に識別するための識別情報である。送信先IPアドレス902は、プレイヤキャラクタ401を操作するビデオゲーム装置100に対して、そのプレイヤキャラクタ401についてのコロシアムホール500の周辺情報を送信するために用いられるビデオゲーム装置100のIPアドレスが記憶されている。
名前/種類情報903は、プレイヤキャラクタ401に関してはその名前を表示画面122に表示するための情報として用いられる。形態情報904は、プレイヤキャラクタ401のコロシアムホール500上での外見(中でも服装、体格、顔貌等)を表すために用いられる情報である。位置情報905は、プレイヤキャラクタ401のコロシアムホール500上での位置を示す。
パラメータA情報906は、バトル中、または移動中において刻々と変化し得るものとして、プレイヤキャラクタ401の外観として表示画面122に現れるパラメータに関する情報である。例えば、敵からの通常とは異なる攻撃によってなる毒状態(キャラクタのHPが一定時間毎に微減する状態)が、プレイヤキャラクタ401の外観として表示画面122に現れるものとするなら、それ等がパラメータA情報906に該当する。
一方、パラメータB情報907は、バトル中、または移動中において刻々と変化するものではないが、プレイヤキャラクタ401の外観として表示画面122に現れるパラメータに関する情報であり、例えば、体格や筋力といったものがこれに該当する。具体的には、パラメータB情報907としての、体格や筋力の数値が高ければ、表示画面122に表示するコロシアムホール500上でのプレイヤキャラクタ401が、それらの数値が低いものよりも大きく表示されることになる。
さらに、パラメータに関する情報として、図16(a)に示すマッチングキャラクタテーブル900において特に管理はしないが(プレイヤキャラクタに送信する情報ではなく、ただ保持しておくだけのものでもよい)、プレイヤキャラクタ401の外観として現れないパラメータに関する、パラメータC情報、及びパラメータD情報がある(後述するバトルキャラクタテーブルでは管理される)。パラメータC情報は、バトル中、または移動中において刻々と変化するものであり、例えば、キャラクタのHP、或いはMP(マジックポイント、魔法を使う度に減少する)といったものがある。
一方、パラメータD情報は、バトル中、または移動中において刻々と変化するものでない、例えば、攻撃力、或いは防御力といった、攻撃、魔法等の行動の結果として表れるダメージ(HPの減少)量を計算する上で用いるパラメータに関するものである。
つまり、パラメータA、Bは外観として表示画面122に現れるものであるため、外観に係る情報を各ビデオゲーム装置100に送信するゾーンサーバ装置200は、これらの情報を保持するものである。対して、パラメータC、Dは外観として表示画面122に現れないものであるが、これらの情報は、バトルのダメージ量を求める上で必要な情報であり、後述する、バトルキャラクタテーブルに保持するものとなる。
参加バトルサーバプロセス情報908は、プレイヤキャラクタ401がバトル中であれば、当該バトルに係るバトルサーバプロセスの識別情報が記憶されるものとなっており、バトル中でなければ、何の情報も記憶されてない状態(NULL)となっている。
これらの、情報は全て後述するビデオゲーム装置100、ゾーンサーバ装置200及びバトルサーバ装置300から送信される情報を基に登録、更新されるものであり、移動中においては、定期的(例えば、0.5秒毎)にビデオゲーム装置100から送信される位置、及び形態に係る情報において、形態情報904、位置情報905、パラメータA情報906、及びパラメータB情報907がそれぞれ更新されるものとなる。
一方、共有サーバ装置210は、マッチングキャラクタテーブル900に登録された全てのプレイヤキャラクタ401を操作するビデオゲーム装置100に対して、前記した当該プレイヤキャラクタ401の周辺情報として特定される、プレイヤキャラクタ401のID901、名前/種類情報903、形態情報904、位置情報905、パラメータA情報906、パラメータB情報907、及び参加バトルサーバプロセス情報908を、定期的(例えば、1.0秒毎)に送信する。
続いて、図16(b)に示すマッチングサーバプロセスの起動数を管理するためのマッチングプロセス起動管理テーブル910には、装置情報911と、プロセス数912とが記憶されている。
装置情報911は、2台の共有サーバ装置210、及びゲーム外サーバ装置350のそれぞれを特定する情報が登録されており、プロセス数912には、共有サーバ装置210、及びゲーム外サーバ装置350が同時に起動しているサーバプロセスの数を記憶している。
プロセス数912では、共有サーバ装置210及びゲーム外サーバ装置350から送信された情報を基に、それぞれの共有サーバ装置210、及びゲーム外サーバ装置350において、マッチングサーバプロセスの数を1のマッチングサーバプロセスの起動により1増加させ、1のマッチングサーバプロセスの終了によって1減少させる。
なお、マッチングの実行に際し、当該マッチングの進行を管理するマッチングサーバプロセスを2つの共有サーバ装置210のうちどちらで起動するかについては、マッチングサーバプロセスの起動数が少ない共有サーバ装置210を優先的に選択して起動させるようにする。
また、すでに2台の共有サーバ装置210で所定の起動可能な最大数までのマッチングサーバプロセスが起動しているときにおいて、さらに新たなバトルが実行されるときは、ゲーム外サーバ装置350に、そこで実行しているこの実施の形態にかかるオンラインゲーム以外の処理を中断させて、当該マッチングに係るマッチングサーバプロセスを起動させ、共有サーバ装置210と同様の処理を行わせるものとする。
図8は、ビデオゲーム装置100において記憶されるデータの構成を示す図である。ここには、ID801と、名前情報802と、形態情報803と、位置情報804と、パラメータA情報805と、パラメータB情報806と、パラメータC情報807と、パラメータD情報808と、ゾーンサーバ装置識別情報809と、バトルサーバプロセス識別情報810と、共有サーバプロセス識別情報811が記憶される。
ID801は、このID801が記憶されるビデオゲーム装置100で操作するプレイヤキャラクタ401に固有のものであり、前記ID601、ID711、及びID901として記憶されるものと同じものである。このID801とID601、ID711、及びID901とによって、フィールド400上又はコロシアムホール500上で移動中、或いはバトル中のプレイヤキャラクタ401と、それを操作する当該ビデオゲーム装置100とが一意的に特定されるものとなる。
名前情報802、形態情報803は、前記した図6(a)のキャラクタ外観テーブル、図7(b)のバトルキャラクタテーブル710、或いは図16(a)のマッチングキャラクタテーブル900において記憶されるものと同じ内容の情報であり、名前情報802は当該ビデオゲーム装置100で操作されるプレイヤキャラクタ401の名前に係る情報を記憶しており、形態情報803は当該ビデオゲーム装置100で操作されるプレイヤキャラクタ401の形態に係る情報を記憶している。
位置情報804、当該ビデオゲーム装置100で操作されるプレイヤキャラクタ401のフィールド400又はコロシアムホール500上での位置を記憶するものであり、プレイヤキャラクタ401がフィールド400又はコロシアムホール500を移動中である場合においては、プレイヤの入力部161の移動操作がされることにより、更新されるものとなる。
一方、バトル中においては、プレイヤの移動操作によって、それを入力情報としてバトルサーバ装置300に送信し、それを基にバトルの進行の処理を実行して得られたバトル進行情報をビデオゲーム装置100で受信する。このようにして得られたバトル進行情報によって、バトル中の位置情報804は更新されるものとなる。
パラメータA情報805、パラメータB情報806、パラメータC情報807、及びパラメータD情報808については、前記した図6(a)のキャラクタ外観テーブル、図7(b)のバトルキャラクタテーブル710、或いは図16(a)のマッチングキャラクタテーブル900に記憶されるものと同じ内容の情報である。プレイヤキャラクタ401がフィールド400を移動中である場合にあっては、パラメータA情報805、及びパラメータB情報806(外観として表示画面122に現れるもの)に関しては、ID801、名前情報802、形態情報803、及び位置情報804と併せて、定期的(0.5秒毎)にゾーンサーバ装置200に送信されるものとなる。プレイヤキャラクタ401がコロシアムホール500を移動中である場合にあっては、パラメータA情報805、及びパラメータB情報806(外観として表示画面122に現れるもの)に関しては、ID801、名前情報802、形態情報803、及び位置情報804と併せて、定期的(0.5秒毎)に共有サーバ装置210に送信されるものとなる。
一方、バトル中である場合には、前記したバトルサーバ装置300から送信されたバトル進行情報によって、パラメータA情報805、パラメータB情報806、パラメータC情報807、及びパラメータD情報808が更新されるものとなる。
ゾーンサーバ装置識別情報809は、これを記憶するビデオゲーム装置100との通信を行っているゾーンサーバ装置200のIPアドレス等の情報を記憶するものである。バトルサーバプロセス識別情報810は、これを記憶するビデオゲーム装置100との通信を確立しているバトルサーバプロセスのバトルサーバ装置300のIPアドレス、及びそのバトルサーバ装置で起動される1のバトルサーバプロセスを特定するための情報を記憶するためのものであり、バトル中ではない場合では、NULLとなっている。共通サーバプロセス識別情報811は、これを記憶するビデオゲーム装置100との通信を確立しているマッチングサーバプロセスの共有サーバ装置210のIPアドレス、及びその共有サーバ装置で起動される1のマッチングサーバプロセスを特定するための情報を記憶するためのものであり、マッチング中ではない場合では、NULLとなっている。
さらに、後述する表示画面122に表示するための画像の生成において用いる、ゾーンサーバ装置200、共通サーバ装置210、バトルサーバ装置300から送信される情報を一時的に記憶させるためのバッファ領域が、それぞれの情報毎に確保される。ゾーンサーバ装置200と共通サーバ装置210から送信される周辺情報については、後述する遅延表示処理のために2の周辺情報が記憶できるだけの記憶領域が確保され、バトルサーバ装置300から送信されるバトル周辺情報については、リアルタイムで画像を生成するので、1のバトル周辺情報が記憶できるだけの記憶領域が確保される。
次に、この実施の形態にかかるオンラインゲームの進行、及びデータの流れについて説明する。図9、図10は、このオンラインゲームの進行、及びデータの流れを模式的に示すものである。図9において示すオンラインゲームの進行は、パーティ403aが、パーティ403bの複数存在するコロシアムホール500上を移動し、当該コロシアムホール500上に存在する1グループのパーティ403bに対しバトル意志を確認するための選択行動をすることによって当該パーティ403aとのバトルが行われ、当該バトルが終了するまでの進行を表したものである。
図9(a)に示すように、コロシアムホール500を移動中であるパーティ403aのそれぞれは、そのパーティ403を構成するプレイヤキャラクタが操作されるビデオゲーム装置100と、共通サーバ装置210とで、データの送受信を行っている。ビデオゲーム装置100からは、ID801、名前情報802、形態情報803、位置情報804、パラメータA情報805、及びパラメータB情報806(これらをまとめて、「外見・位置情報」とする)が、共通サーバ装置210に送信されるものとなっている。
一方、共通サーバ装置からは、各ビデオゲーム装置100に対して、当該ビデオゲーム装置100で操作されるプレイヤキャラクタ401の周辺情報として特定される他のプレイヤキャラクタ401、及び敵キャラクタ402に係るID901、名前情報903、形態情報904、位置情報905、パラメータA情報906、パラメータB情報907、及び参加バトルサーバプロセス情報608が送信されるものとなっている。
また、これらのデータを各装置に送信するタイミングとしては、ビデオゲーム装置100から送信される外見・位置情報が、例えば、0.5秒毎のタイミングで送信され、共通サーバ装置210から送信される周辺情報が、例えば、1.0秒毎のタイミングで送信されるものとなっている。
続いて、コロシアムホール500にてパーティ403aを構成するプレイヤキャラクタを操作するビデオゲーム装置100から、パーティ403bを構成する他のプレイヤキャラクタを操作するビデオゲーム装置100に対してバトル意志を確認するための選択行動を行うことで、共通サーバ装置210へバトル意思を確認するための確認通知がなされる。他のプレイヤキャラクタ401を操作するビデオゲーム装置100がバトルを了承する意思決定を行うと、パーティ403a及びパーティ403bの各プレイヤキャラクタ401の位置・パラメータの管理をバトルサーバ装置300に移行させ、バトルの進行をさせるため、図9(b)に示すように、バトルの開始に先立って、ビデオゲーム装置100と、共通サーバ装置210と、バトルサーバ装置300とが互いにデータの送受信を行うものとなっている。
まず、第1段階目に、バトルが実行されるまでは、当該バトルを行うことになるパーティ403aを構成するプレイヤキャラクタ401を操作するビデオゲーム装置100から、共通サーバ装置210に対して、バトルを行うことを希望するパーティ403bを特定した情報とともに、バトルを希望する旨を示した情報(以下、「バトル意志選択情報」とする)を送信するものとなる。
続いて、第2段階目に、バトル意志選択情報を受信した共通サーバ装置210は、選択されたパーティ403bを構成するプレイヤキャラクタ401を操作するビデオゲーム装置100へ、バトルの申し込みをしたパーティ403aを特定した情報ととともに、バトルを希望する旨を示した情報(以下、「バトル申込情報」とする)を送信する。
第3段階目に、バトル申込情報を受信したビデオゲーム装置100において、プレイヤの入力部161への操作によりバトルを了承する旨の情報(以下、「バトル了承情報」とする)を共通サーバ装置210に送信することで、マッチングが成立する。
共有サーバ装置210がバトル了承情報を受信すると、第4段階目として、共有サーバ装置210は、バトルを実行するためのバトルサーバプロセスを生成・起動するためのバトルサーバ装置300を選択し、当該選択したバトルサーバ装置300に対して、バトルサーバプロセスを生成・起動を指示する旨の情報とともに、パーティ403a、及びそれに対するパーティ403bに係る情報(以下、「バトルプロセス生成指示情報」とする)を送信する。
ここで、バトルプロセス生成指示情報として、併せて送信されるパーティ403aに係る情報とは、パーティ403aを構成するプレイヤキャラクタ401のID901や、当該プレイヤキャラクタ401を操作するビデオゲーム装置100の送信先IPアドレス902であり、パーティ403bに係る情報とは、当該パーティ403bを構成するプレイヤキャラクタ401のID901、名前・種類情報903、形態情報904、位置情報905、パラメータA情報906、及びパラメータB情報907である。
そして、第5段階目に、バトルプロセス生成指示情報を受信したバトルサーバ装置300は、新たなバトルサーバプロセスを生成・起動し、その後速やかに、当該バトルサーバプロセスを特定するための情報(以下、「BSV特定情報」とする)を共通サーバ装置210に送信する。
第6段階目に、BSV特定情報を受信した共通サーバ装置210は、すぐに、そのバトルサーバプロセスにおいて実行されるバトルに参加するパーティ403a及びパーティ403bを操作するビデオゲーム装置100に対して、当該受信したBSV特定情報を転送する。
第7段階目に、BSV特定情報を受信したビデオゲーム装置100は、それを基に、バトルの処理が行われるバトルサーバプロセスが生成・起動されたバトルサーバ装置300に対して、当該バトルサーバプロセスと通信を確立するための接続を要求する旨の情報とともに、当該ビデオゲーム装置100で操作されるプレイヤキャラクタ401に係る情報(以下、「接続要求情報」とする)を送信する。
ここで、接続要求情報として、併せて送信されるプレイヤキャラクタ401に係る情報とは、該プレイヤキャラクタ401のID801、名前情報802、形態情報803、位置情報804、パラメータA情報805、パラメータB情報806、パラメータC情報807、及びパラメータD情報808である。
接続要求情報が受信されると、バトルサーバ装置300のバトルサーバプロセスは、ビデオゲーム装置100との通信を確立し、バトルが開始され、終了まで当該バトルの進行の全てを制御するものとなる。バトルが開始されると、図9(c)に示すように、ビデオゲーム装置100からバトルサーバ装置300に対しては、ビデオゲーム装置100によってプレイヤキャラクタ401を操作するプレイヤの入力部161の入力操作に関する情報(以下、「入力情報」とする)を送信する。
一方、バトルサーバ装置300からは、ビデオゲーム装置100に対して、バトル進行の処理の結果に係る情報(以下、「バトル進行情報」とする)を送信し、共通サーバ装置210に対しては、バトル周辺情報として、当該バトルに参加する、パーティ403a、及びパーティ403bを構成するプレイヤキャラクタ401のID711、名前/種類情報713、形態情報714、位置情報715、パラメータA情報716、及びパラメータB情報717を送信する。
また、これらのデータを各装置に送信するタイミングとしては、バトルサーバ装置300から送信されるバトル進行情報は、例えば、30分の1秒毎のタイミングで送信され、それを受信したビデオゲーム装置100は、プレイヤの入力操作が検出されれば、それを入力情報としてすぐに送信するものとなっている。一方、バトルサーバ装置300から送信されるバトル周辺情報は、例えば、0.5秒毎のタイミングで送信されるものとなっている。
なお、バトル中において、ビデオゲーム装置100から、共通サーバ装置210に対しては何のデータも送信されないものとなっているが、共通サーバ装置210からビデオゲーム装置100に対しては、定期的(1.0秒毎)に周辺情報が送信されるものとなっている。
但し、バトル中において共通サーバ装置210からの周辺情報の送信について、ビデオゲーム装置100では、後述する表示画面122に表示される画像の生成処理にそれを用いるものではなく、エラーにより、バトルサーバ装置300との通信がバトル中に切断され、緊急的に共通サーバ装置210との通信を確立するために行われているものである。
バトルにおいて全てのパーティ403bが倒されると、当該バトルが終了し、図9(d)に示すように、バトルサーバ装置300から、ビデオゲーム装置100、及び共通サーバ装置210に対して、当該バトルが終了したことを示す旨の情報(以下、「バトル終了情報」とする)が送信される。
このバトル終了情報によって、ビデオゲーム装置100、及び共通サーバ装置210においてバトルの終了にかかる処理が実行され、図9(a)に示すようにビデオゲーム装置100と共通サーバ装置210とのデータの送受信が再開される。バトルサーバ装置300においては、バトル終了情報の送信後、バトルサーバプロセスを終了する。
続いて、図10において示すオンラインゲームの進行は、バトル中において、当該バトルに参加していない他のプレイヤキャラクタ401がバトル意志行動をすることで、当該バトルに参加し、当該バトルが行われている途中までの進行を表したものである。
図9(c)に示すように移動中のプレイヤキャラクタ401のうちの1のプレイヤキャラクタ401が、フィールド400上において当該プレイヤキャラクタ401の近辺のバトルに対してバトル意志行動(例えば、バトル中のプレイヤキャラクタ401に対して回復魔法を実行したり、攻撃を実行したり、いずれかのパーティ403に対して有利となる或いは不利となる行動)を行うと、図10(a)に示すように、当該バトルの参加に先立って、ビデオゲーム装置100は、共通サーバ装置210、及びバトルサーバ装置300とデータの送受信を行うものとなっている。
バトルに参加するまでには、まず第1段階目に、当該バトルに参加させるプレイヤキャラクタ401を操作するビデオゲーム装置100から、共通サーバ装置210に対して、バトル意志情報として、バトル意志行動の対象となったパーティ403を特定する情報とともに、バトルを行う旨を示した情報を送信するものとなる。
続いて第2段階目に、バトル意志情報を受信した共通サーバ装置210は、それを基に、特定したパーティ403が参加しているバトルを実行しているバトルサーバプロセスを特定し、BSV特定情報として、バトル意志情報を送信したビデオゲーム装置100に対して送信する。
第3段階目に、BSV特定情報を受信したビデオゲーム装置100は、それを基に、バトル意志行動を行ったことによって参加するバトルの処理が行われるバトルサーバプロセスが実行されるバトルサーバ装置300に対して、当該バトルサーバプロセスと通信を確立するための接続を要求する旨の情報とともに、当該ビデオゲーム装置100で操作されるプレイヤキャラクタ401に係る情報を、接続要求情報として送信する。
接続要求情報が受信され、バトルサーバ装置300のバトルサーバプロセスは、ビデオゲーム装置100との通信を確立し、当該ビデオゲーム装置100で操作されるプレイヤキャラクタ401がバトルに参加することができるようになる。
このように、新たなプレイヤキャラクタ401がバトルに参加すると、図10(b)に示すように、当該プレイヤキャラクタ401を操作するビデオゲーム装置100からバトルサーバ装置300に対しては、入力情報を送信するし、バトルサーバ装置300からは、当該ビデオゲーム装置100に対して、バトル進行情報の送信を開始する。
次に、ビデオゲーム装置100に対するデータ送信の頻度とそのデータのフォーマットについて説明する。前記したように、ビデオゲーム装置100には、移動中において(バトル中においても)共通サーバ装置210から周辺情報が送信され、バトル中においては、バトルサーバプロセスによってバトルサーバ装置300からバトル進行情報が送信される。
図11は、そのような共通サーバ装置210、及びバトルサーバ装置300からビデオゲーム装置100に対して送信されるデータに関して、その送信頻度と、データのフォーマットとを模式的に示したものである。図11に示すように、周辺情報に含まれる、プレイヤキャラクタ401、及びパーティ403の情報について、それらの識別情報としてのID等を除いて、共通サーバ装置210から送信されるデータのフォーマットは、形態、位置、パラメータA、及びパラメータBの情報から構成される。
一方、バトル進行情報として、バトルに参加するプレイヤキャラクタ401、及びパーティ403の情報について、それらの識別情報としてのID等を除いて、バトルサーバ装置300から送信されるデータのフォーマットは、形態、位置、パラメータA、パラメータB、パラメータC、及びパラメータDの情報から構成される。
このように、共通サーバ装置210から送信されるデータと、バトルサーバプロセスによるバトルサーバ装置300から送信されるデータとにおいては、外観として現れないパラメータC、及びパラメータDが含まれるか否かにおいて異なるものとなっている。つまり、1のビデオゲーム装置100に対して送信される周辺情報、或いはバトル進行情報に含まれるプレイヤキャラクタ401、及び敵キャラクタの数が同じであれば、バトルサーバプロセスによるデータ送信の方が一度に送信するデータ量が大きくなるものとなる。
また、図11に示すように、共通サーバ装置210からの周辺情報の送信頻度が1.0秒毎であるのに対して、バトルサーバプロセスにより送信されるバトル進行情報の送信頻度は30分の1秒毎である。
このようにビデオゲーム装置100に対して送信される、周辺情報、或いはバトル進行情報は、ビデオゲーム装置100の表示装置121の表示画面122に表示するための、画像を生成するために用いられるものとなる。この画像の1フレーム時間は、上記したように30分の1秒であり、バトルサーバプロセスにより送信されるバトル進行情報は30分の1秒毎に送信されることから、バトル中において、表示画面122に表示される画像は、ほぼリアルタイムで生成され、表示されるものとなる。
一方、移動中において、ビデオゲーム装置100で操作されるプレイヤキャラクタ401の画像は、1フレーム時間毎に処理され、表示画面122に表示される画像がリアルタイムで生成され、表示されるものとなるが、共通サーバ装置210から送信される周辺情報は、1.0秒毎に送信されるものとなっており、画像の1フレーム時間と比べて大きくずれている。そのため、移動中においては、表示画面122に表示するための画像の生成には、遅延表示処理を行うものとしている。
この遅延表示処理では、まず、共通サーバ装置210から送信された周辺情報は、その送られてきた順番に周辺情報記憶バッファ(例えば、RAM105)に順次記憶されるものとなる。そして、これら共通サーバ装置210から送信され、ビデオゲーム装置100において受信・記憶された周辺情報のうち、リアルタイムで生成されるプレイヤキャラクタ401の画像に対して、1.0秒前に受信した周辺情報を基に画像を生成する。
つまり、ビデオゲーム装置100では、周辺情報を受信するタイミング(ゾーンサーバ装置200から送信されるタイミング)である1.0秒の遅延時間で、周辺情報によって生成された画像が表示画面122に表示されるものとなる。
また、1.0秒間隔での画像生成であるため、その1.0秒毎のタイミングにおいて、表示画面122に表示される画像の生成に用いられた周辺情報(以下、「過去の周辺情報」とする)と、そのタイミングで受信した周辺情報(以下、「現在の周辺情報」とする)との間のタイミングの周辺情報は受信されない。
このため、過去の周辺情報、及び現在の周辺情報から、その間の変化が滑らかになるように、その間の周辺情報の変化を30分の1秒毎の等間隔に分割して補間し、その30分の1秒毎に分割された周辺情報を基に、表示画面122に表示される画像を生成する。
以下、この実施の形態にかかるネットワークシステムを構成するゾーンサーバ装置200、共通サーバ装置210、バトルサーバ装置300、及びビデオゲーム装置100において、それぞれ実行される処理について説明する。
図12は、ゾーンサーバ装置200において実行される処理を示すフローチャートである。ゾーンサーバ装置200の制御部203は、何れかのバトルサーバ装置300、或いはビデオゲーム装置100から何らかの情報を受信したかどうかを判定する(ステップS101)。何らかの情報を受信していれば、ゾーンサーバ装置200の制御部203は、受信した情報が何であるかを判定する(ステップS102)。
受信した情報が、ビデオゲーム装置100から送信された外見・位置情報であった場合には、ゾーンサーバ装置200の制御部203は、当該ビデオゲーム装置100で操作されるプレイヤキャラクタ401のキャラクタテーブル600におけるレコードを、その受信した内容で更新する(ステップS103)。そして、ステップS101の処理に戻る。
ステップS102において、受信した情報がビデオゲーム装置100から送信されたバトル意志情報であった場合には、ゾーンサーバ装置200の制御部203は、当該受信した情報に含まれるバトル意志行動を行った他のプレイヤキャラクタ401、または敵キャラクタ402のバトルサーバプロセス情報608に、バトルサーバプロセスを特定する情報が登録されているか否かの判定を行う(ステップS104)。
バトルサーバプロセスを特定する情報が登録されていなければ(バトルサーバプロセス情報608がNULLであれば)、ゾーンサーバ装置200の制御部203は、バトルサーバプロセスを生成・起動するためのバトルサーバ装置300を選択・決定(ステップS106)し、当該バトルサーバ装置300に対して、バトルプロセス生成指示情報を送信する(ステップS105)。そして、ステップS101の処理に戻る。
バトルサーバプロセスを特定する情報が登録されていれば、ゾーンサーバ装置200の制御部203は、BSV特定情報を、当該ビデオゲーム装置100に対して送信する(ステップS107)。また、ステップS102において、受信した情報がバトルサーバプロセスによりバトルサーバ装置300から送信されたBSV特定情報であった場合は、当該バトルサーバプロセスに参加している(当該バトルサーバプロセスを特定する情報がバトルサーバプロセス情報608に登録されている)ビデオゲーム装置100に対して、BSV特定情報を送信する。ステップS107の処理を終えれば、制御はステップS101の処理へと戻る。
ステップS102において、受信した情報がバトルサーバプロセスによりバトルサーバ装置300から送信されたバトル終了情報であった場合には、ゾーンサーバ装置200の制御部203は、キャラクタテーブル600のバトルサーバプロセス情報608において、当該バトルサーバプロセスを特定する情報が登録されている敵キャラクタ402のレコードを削除する(ステップS108)。
続いて、ゾーンサーバ装置200の制御部203は、フィールドキャラクタテーブル600における、送信されたバトル終了情報に係るバトルに参加していたプレイヤキャラクタ402に登録された、バトルサーバプロセス情報608の内容を消去する(ステップS109)。そして、ステップS101の処理に戻る。
ステップS102において、受信した情報がバトルサーバプロセスによりバトルサーバ装置300から送信されたバトル周辺情報であった場合には、ゾーンサーバ装置200の制御部203は、フィールドキャラクタテーブル600のバトルサーバプロセス情報608において、当該バトルサーバプロセスを特定する情報が登録されているプレイヤキャラクタ401、及び敵キャラクタ402のレコードを、当該受信した情報の内容で更新する(ステップS110)。
また、そこにフィールドキャラクタテーブル600には存在しない新たな敵キャラクタ402の情報が含まれていれば、当該新たな敵キャラクタ402のテーブルを追加する。ステップS110の処理を終えれば、制御はステップS101の処理へと戻る。
ステップS102において、受信した情報が共通サーバ装置210から送信されたマッチング情報であった場合には、ゾーンサーバ装置200の制御部203は、マッチングプロセス生成サーバ装置を決定する(ステップS111)。続いて、ゾーンサーバ装置200の制御部203は、マッチングプロセス生成指示情報を当該サーバ装置に設置する(ステップS112)。そしてステップS101の処理に戻る。
ステップS102において、受信した情報が共通サーバ装置210から送信された共通サーバプロセスを特定する情報であった場合には、ゾーンサーバ装置200の制御部203は、KSV特定情報を、当該ビデオゲーム装置100に対して送信する(ステップS113)。ステップS113の処理を終えれば、制御はステップS101の処理へと戻る。
また、ステップS102において、受信した情報が共通サーバ装置210から送信されたマッチングを終了したことを示すマッチング終了情報であった場合には、マッチングを終了したプレイヤキャラクタの共通サーバプロセス情報を消去する(ステップS114)。そしてステップS101の処理に戻る。
ステップ101において、何れの情報も受信していないと判定されれば、ゾーンサーバ装置200の制御部203は、ゾーンサーバ装置200における処理の開始から、或いは、以前の1.0秒経過のときから、1.0秒が経過したかどうか判定する(ステップS115)。1.0秒経過していないと判定すれば、制御はステップS101の処理へと戻る。
ステップS115において、1.0秒経過したと判定されれば、ゾーンサーバ装置200の制御部203は、フィールドキャラクタテーブル600に登録されている全てのプレイヤキャラクタ401を操作するビデオゲーム装置100に、当該プレイヤキャラクタ401に応じた周辺情報を送信する(ステップS116)。そして、ステップS101の処理に戻る。
図13(a)は、バトルサーバ装置300において実行されるバトルプロセス生成処理を示すフローチャートである。バトルサーバ装置300の制御部203は、ゾーンサーバ装置200から送信されたバトルプロセス生成指示情報を受信したか否かを判定する(ステップS201)。
バトルプロセス生成指示情報を受信すれば、バトルサーバ装置300の制御部203は、バトルサーバプロセスを生成・起動し(ステップS202)、BSV特定情報をゾーンサーバ装置200又は共通サーバ装置210に送信する(ステップS203)。そして、ステップS201の処理に戻る。ステップS201において、バトルプロセス生成指示情報を受信するまでは、ステップS201の処理を繰り返す。
続いて、図13(b)は、バトルサーバ装置300において実行されるバトルサーバプロセス処理を示すフローチャートである。まず、プレイヤキャラクタがフィールド400を移動中にバトルが開始される場合であれば、バトルサーバ装置300の制御部203は、バトルプロセス生成指示情報に含まれる敵キャラクタ402の存在するエリア412を基に、敵キャラクタ組合せテーブル700から、当該バトルサーバプロセスで実行されるバトルの初期において参加させる敵キャラクタの組合せを決定し、当該バトルに参加するプレイヤキャラクタ401とともに、それらをバトルキャラクタテーブル710に登録する(ステップS211)。一方、共通サーバ装置210におけるマッチングが成立したことによりバトルが開始される場合であれば、バトルサーバ装置300の制御部203は、バトルプロセス生成指示情報に含まれる、プレイヤキャラクタ401とともに、マッチング相手の他のプレイヤキャラクタに関する情報を、バトルキャラクタテーブル710に登録する(ステップS211)。
続いて、バトルサーバ装置300の制御部203は、ビデオゲーム装置100からの接続要求情報を受信した否かを判定する(ステップS212)。接続要求情報を受信したと判定されれば、バトルサーバ装置300の制御部203は、当該接続要求情報を送信したビデオゲーム装置100と通信を確立し、当該接続要求情報に含まれるプレイヤキャラクタ401に係る情報の内容によって、バトルキャラクタテーブル710に含まれる当該プレイヤキャラクタ401のテーブルを更新する(ステップS213)。
また、ステップS212において、受信したと判定された接続要求情報に含まれるプレイヤキャラクタ401に係る情報が、バトルキャラクタテーブル710になかった場合は、新たに、プレイヤキャラクタ401がバトルに参加する場合であるため、当該プレイヤキャラクタ401のレコードを当該バトルキャラクタテーブル710に追加する。ステップS213における処理が終了すると、制御はステップS212の処理に戻る。
一方、ステップS212において、接続要求情報を受信していないと判定されれば、バトルサーバ装置300の制御部203は、バトルサーバプロセスの起動から、或いは以前の30分の1秒経過のときから、30分の1秒が経過したどうか判定する(ステップS214)。30分の1秒が経過していないと判定された場合は、ステップS212の処理に戻る。
ステップS214において、30分の1秒が経過したと判定された場合は、バトルに参加するビデオゲーム装置100から送信された入力情報の内容をチェックする(ステップS215)。続いて、バトルサーバ装置300の制御部203は、その入力情報の内容に基づいたバトル進行処理を行う(ステップS216)。
このバトル進行処理において、敵キャラクタ402が倒されたときは、追加されることが決定され、バトルキャラクタテーブル710に登録されている敵キャラクタ400について、追加待ちフラグ702が1となっているものがあれば、当該バトルキャラクタテーブル710に登録されるID711の昇順に、当該追加待ちフラグ702を0に更新し、バトルに参加させる。
続いて、バトルサーバ装置300の制御部203は、バトル進行処理の結果、全ての敵キャラクタが倒されたことによって、バトルが終了したか否かを判定する(ステップS217)。バトルが終了していないと判定された場合には、バトルサーバ装置300の制御部203は、ゲーム進行情報を、バトルに参加する全てのプレイヤキャラクタ401を操作するビデオゲーム装置100に対して送信する(ステップS218)。そして、ステップS212の処理に戻る。
ステップS217において、バトルが終了したと判定された場合には、バトルサーバ装置300の制御部203は、バトル終了情報を、ゾーンサーバ装置200、及びバトルに参加する全てのプレイヤキャラクタ401を操作するビデオゲーム装置100に対して送信して(ステップS219)、バトルサーバプロセスを終了する。
図14は、ビデオゲーム装置100において実行される処理を示すフローチャートである。ビデオゲーム装置100の制御部103は、当該ビデオゲーム装置100に記憶されるバトルサーバプロセス識別情報810にバトルサーバプロセスを特定するための情報が記憶されているか否かによって、当該ビデオゲーム装置100で操作するプレイヤキャラクタ401がバトル中か否かを判定する(ステップS301)。
バトル中でないと判定された場合には、制御部103は、マッチング中であるかどうかを判定する(ステップS330)。マッチング中でないと判定された場合は、何らかの情報を受信したかどうかを判定する(ステップS302)。何の情報も受信しなかったと判定された場合には、制御部103は、ビデオゲーム装置100における処理の開始、或いは以前の30分の1秒経過のときから30分の1秒が経過したか否かを判定する(ステップS303)。
30分の1秒が経過したと判定された場合には、制御部103は、プレイヤによる入力部161の操作によって、入力操作が検出されたか否かを判定する(ステップS304)。入力操作が検出されたと判定された場合には、制御部103は、当該入力操作がプレイヤキャラクタ401にバトル意志行動を行わせるための入力操作であるか否かを判定する(ステップS305)。
また、ステップS305において、入力操作がバトル意志行動を行わせるための入力操作であると判定された場合には、制御部103は、ステップS307の処理を行う前に、ゾーンサーバ装置200に対して、バトル意志情報を送信する(ステップS306)。
バトル意志行動を行わせるための入力操作でないと判定された後、或いはステップS306においてバトル意志情報を送信した後、制御部103は、入力操作に応じて、ビデオゲーム装置100に記憶される形態情報803、位置情報804、パラメータA情報805、パラメータB情報806、パラメータC情報807、或いはパラメータD情報を更新する(ステップS307)。
ステップS304において、入力操作が検出されなかったと判定された場合に、又はステップS307の処理に続いて、制御部103は、周辺情報記憶バッファに記憶された現在周辺情報、及び過去周辺情報、並びにビデオゲーム装置100に記憶される形態情報803、位置情報804、パラメータA情報805、及びパラメータB情報806を基に、表示画面122に表示する画像の生成処理を行う(ステップS308)。
ステップS303において、30分の1秒が経過していないと判定された場合に、又はステップS308の処理続いて、制御部103は、ビデオゲーム装置100における処理の開始、或いは以前の0.5秒経過のときから0.5秒が経過したか否かを判定する(ステップS309)。0.5秒が経過していないと判定された場合には、制御はステップS301の処理に戻る。
0.5秒が経過したと判定された場合には、制御部103は、ゾーンサーバ装置200に対して外見・位置情報を送信する(ステップS310)。そして、ステップS301の処理に戻る。
ステップS330において、マッチング中であると判断された場合には、制御部103はマッチングを終了したかどうかを判断する(ステップS331)。マッチングが終了していないと判断された場合はマッチング進行情報を受信したかどうかを判定する(ステップS332)。マッチング進行情報を受信したと判定された場合は、マッチング進行情報をもとに、表示画面の生成処理を行う(ステップS333)。次いで、続いて、制御部103は、プレイヤによる入力部161の操作によって、入力操作が検出されたか否かを判定する(ステップS334)。入力操作が検出されたと判定されれば、制御部103は、その入力操作についての入力情報を、共通サーバ装置210に対して送信する(ステップS335)。そして、ステップS301の処理に戻る。
ステップS331において、マッチングが終了したと判断された場合は、制御部103は、ビデオゲーム装置100に記憶される、共通サーバ特定情報を消去し(ステップS336)、ステップS301の処理に戻る。また、ステップS331において、マッチング進行情報を受信していないと判定された場合、またはステップS334において、入力操作が検出されていないと判定された場合には、制御はステップS301の処理に戻る。
ステップS302において、何らかの情報が受信されたと判定された場合には、制御部103は、さらにその受信した情報が何であるかを判定する(ステップS312)。
受信した情報が、ゾーンサーバ装置200から送信されたBSV特定情報であった場合には、制御部103は、バトルサーバプロセス特定情報810を当該BSV特定情報に含まれるバトルサーバプロセスに係る情報で更新し(ステップS313)、当該バトルサーバプロセスが起動されているバトルサーバ装置300に対して、接続要求情報を送信し(ステップS314)、ビデオゲーム装置100と当該バトルサーバプロセスは通信を確立する。そして、ステップS301の処理に戻る。
ステップS312にて受信した情報が、ゾーンサーバ装置200から送信されたKSV特定情報であった場合には、制御部103は、共通サーバ特定情報を更新し(ステップS341)、共通サーバ装置210に対して、接続要求情報を送信し(ステップS342)、ビデオゲーム装置100と当該共有サーバ装置210は通信を確立する。そして、ステップS301の処理に戻る。
受信した情報が、ゾーンサーバ装置200から送信された周辺情報であった場合には、制御部103は、周辺情報記憶バッファのうち、現在の周辺情報を記憶させる周辺情報記憶バッファに、当該周辺情報を順次記憶する(ステップS315)。そして、ステップS301の処理に戻る。
また、ステップS301において、バトル中であると判定された場合には、制御部103は、バトルサーバプロセスによりバトルサーバ装置300から送信されたバトル終了情報を受信したか否かを判定する(ステップS321)。バトル終了情報を受信していないと判定された場合には、制御部103は、バトルサーバプロセスによりバトルサーバ装置300からバトル進行情報を受信したか否かを判定する(ステップS322)。
バトル進行情報を受信したと判定された場合には、制御部103は、当該バトル進行情報を基に表示画面122に表示される画像の生成処理を行う(ステップS323)。続いて、制御部103は、プレイヤによる入力部161の操作によって、入力操作が検出されたか否かを判定する(ステップS324)。
入力操作が検出されたと判定されれば、制御部103は、その入力操作についての入力情報を、このバトルサーバプロセスが起動されているバトルサーバ装置300に対して送信する(ステップS325)。そして、ステップS301の処理に戻る。
ステップS321において、バトル終了情報を受信したと判定された場合には、制御部103は、ビデオゲーム装置100に記憶される、バトルサーバプロセス特定情報810を消去(NULLで更新)し(ステップS326)、ステップS301の処理に戻る。また、ステップS322において、バトル進行情報を受信していないと判定された場合、またはステップS324において、入力操作が検出されていないと判定された場合には、制御はステップS301の処理に戻る。
図15(a)は、共通サーバ装置210において実行されるマッチングプロセス生成処理を示すフローチャートである。共通サーバ装置210の制御部203は、ゾーンサーバ装置200から送信されたマッチングプロセス生成指示情報を受信したか否かを判定する(ステップS401)。
ゾーンサーバ装置200からマッチングプロセス生成指示情報を受信すれば、共通サーバ装置210の制御部203は、マッチングサーバプロセスを生成・起動し(ステップS402)、KSV特定情報をゾーンサーバ装置200に送信する(ステップS403)。そして、ステップS401の処理に戻る。ステップS401において、マッチングプロセス生成指示情報を受信するまでは、ステップS401の処理を繰り返す。
続いて、図15(b)は、共通サーバ装置210において実行されるマッチングプロセス処理を示すフローチャートである。まず、共通サーバ装置210の制御部203は、ビデオゲーム装置100からの接続要求情報を受信した否かを判定する(ステップS411)。接続要求情報を受信したと判定されれば、共通サーバ装置210の制御部203は、当該接続要求情報を送信したビデオゲーム装置100と通信を確立し、当該接続要求情報に含まれるプレイヤキャラクタ401に係る情報の内容によって、マッチングキャラクタテーブルに含まれる当該プレイヤキャラクタ401のテーブルを更新する(ステップS412)。
また、ステップS411において、受信したと判定された接続要求情報に含まれるプレイヤキャラクタ401に係る情報が、マッチングキャラクタテーブルになかった場合は、新たに、プレイヤキャラクタ401がマッチングに参加する場合であるため、当該プレイヤキャラクタ401のレコードを当該マッチングキャラクタテーブルに追加する。ステップS412における処理が終了すると、制御はステップS411の処理に戻る。
一方、ステップS411において、接続要求情報を受信していないと判定されれば、共通サーバ装置210の制御部203は、バトルサーバ特定情報を受信するか判断する(ステップS413)。バトルサーバ特定情報を受信していると判断されるとバトルサーバ特定情報をビデオゲーム装置100に送信する(ステップS414)。
ステップS413においてバトルサーバ特定情報を受信していないと判断されれば、共通サーバ装置210の制御部203は、バトルサーバプロセスの起動から、或いは以前の30分の1秒経過のときから、30分の1秒が経過したどうか判定する(ステップS415)。30分の1秒が経過していないと判定された場合は、ステップS411の処理に戻る。
ステップS415において、30分の1秒が経過したと判定された場合は、マッチングに参加するビデオゲーム装置100から送信された入力情報の内容をチェックする(ステップS416)。続いて、共通サーバ装置210の制御部203は、その入力情報の内容に基づいたマッチング進行処理を行う(ステップS417)。
続いて、共通サーバ装置210の制御部203は、マッチング進行処理の結果、マッチングが成立したことによって、マッチングが終了したか否かを判定する(ステップS418)。マッチングが終了していないと判定された場合には、共通サーバ装置210の制御部203は、ゲーム進行情報をビデオゲーム装置100に送信する(ステップS419)。そして、ステップS411の処理に戻る。
ステップS418において、マッチングが終了したと判定された場合には、共通サーバ装置210の制御部203は、マッチング終了情報を共通サーバ装置210でのマッチングに参加する全てのプレイヤキャラクタ401を操作するビデオゲーム装置100に対して送信する(ステップS420)。
次いで、バトルサーバプロセスを特定する情報が登録されていなければ(バトルサーバプロセス情報608がNULLであれば)、共通サーバ装置210の制御部203は、バトルサーバプロセスを生成・起動するためのバトルサーバ装置300を選択・決定(ステップS421)し、当該バトルサーバ装置300に対して、バトルプロセス生成指示情報を送信する(ステップS422)。
以上説明したように、この実施の形態にかかるオンラインゲームシステムは、ゾーンサーバ装置200を含むサーバ群250と、これらにネットワーク150を介して接続される複数のビデオゲーム装置100とを備え、ここで提供されるオンラインゲームは、各々のビデオゲーム装置100のプレイヤにより操作されるプレイヤキャラクタ401を含む複数のキャラクタを共通のフィールド400で動作させてゲームを進行させる。
このゲームの進行過程では、何れか1以上のプレイヤキャラクタ401をノンプレイヤキャラクタである敵キャラクタ402と闘わせるバトルが実行される。このバトルにおいては、当該バトルに参加するプレイヤキャラクタ401、および敵キャラクタ402のパラメータを30分の1秒毎にリアルタイムで更新させながら進めるため、その処理負荷は大きいものとなる。
このバトルは、当該バトルの開始前にプレイヤキャラクタ401を移動させていたフィールド400とは異なる仮想空間に移動することなく同じフィールド400上で行われるが、一般にバトル中はバトルを行っていないときに比べてプレイヤキャラクタ400及び敵キャラクタ402の動作や、パラメータの変化が大きいため、バトルを行うための処理負荷は、バトル以外のゲームを行うための処理負荷に比べて非常に大きいものとなる。
さらに、このオンラインゲームシステムでは、バトルの開始までフィールド400に存在していなかった敵キャラクタ402が、当該バトルで一時的に登場する敵キャラクタ402として追加されることがある。このようなバトルの開始により、敵キャラクタ402を追加するものとした場合、その追加した敵キャラクタの分だけ処理負荷がさらに増し、バトルを実行するために必要な処理負荷が極めて大きくなってしまう。予想される最大の処理負荷に対してオンラインゲームに参加できるプレイヤの数やゲームの内容を絞り込むと、ゲームの面白みが半減してしまう虞がある。
ここで、この実施の形態にかかるオンラインゲームシステムでは、複数のビデオゲーム装置100の各々にネットワーク150を介して接続可能に構成されるサーバ群250に、ゾーンサーバ装置200と共通サーバ装置210の他にバトルサーバ装置300を備えており、処理負荷の大きいバトルの実行は、このバトルサーバ装置300で実行されるバトルサーバプロセスによって制御されるものとなる。
このため、処理負荷が大きいバトルの実行をゾーンサーバ装置200及び共通サーバ装置210が制御する必要がなくなり、ゾーンサーバ装置200又は共通サーバ装置210にかかる処理負荷が大きくなりすぎない。これにより、提供されるオンラインゲームに参加できるプレイヤの数やプレイできるゲームの内容が、敵キャラクタ402の追加があるバトルの実行によってあまり制限されないようにすることができる。
また、バトルで30分の1秒毎に更新されるプレイヤキャラクタ401、及び敵キャラクタ402のパラメータをゾーンサーバ装置200で管理しなくてよいため、ゾーンサーバ装置200又は共通サーバ装置210にかかる処理負荷がさらに小さくなる。これにより、提供されるオンラインゲームに参加できるプレイヤの数やプレイできるゲームの内容に対しての制限を小さくすることができる。
ところで、ゾーンサーバ装置200は、フィールド400において動作している複数のプレイヤキャラクタ401、敵キャラクタ402の各々の状態を管理するが、バトルサーバ装置300は、バトルを行っているプレイヤキャラクタ401、及び敵キャラクタ402の状態を管理し、ここで管理されている状態には、バトルで30分の1秒毎に更新されるパラメータも管理される。
しかしながら、バトルを行うプレイヤキャラクタ401とバトルを行わないプレイヤキャラクタ401とが存在する場合には、バトルを完全に切り分けてバトルサーバ装置300に実行させてしまうと、バトルサーバ装置300で実行されるバトルサーバプロセスの制御下にないバトルを行わないプレイヤキャラクタ401を操作するプレイヤは、自己のビデオゲーム装置100の表示画面122では、当該バトルの進行が全く分からなくなってしまうことになる。
これに対して、この実施の形態にかかるオンラインゲームシステムにおいては、バトルサーバプロセスにおいて管理されているプレイヤキャラクタ401、及び敵キャラクタ402の状態と、バトルサーバプロセスにおいて処理されたバトルの進行処理の結果とに応じて生成されたバトル周辺情報が当該バトルサーバプロセスを実行するバトルサーバ装置300からゾーンサーバ装置200又は共通サーバ装置210に送信され、ゾーンサーバ装置200で管理する各キャラクタの状態は、このバトル周辺情報によっても更新される(つまり、バトルの進行が反映されている)。
そして、バトルを行っていないプレイヤキャラクタ401に対応したビデオゲーム装置100には、バトルの進行処理の結果が反映された周辺情報が送信され、これに基づいてゲームの表示画像が生成される。このため、各ビデオゲーム装置100のプレイヤは、自分のプレイヤキャラクタ401をバトルに参加させていなくても、他のプレイヤのプレイヤキャラクタ401により行われているバトルの進行を、ビデオゲーム装置100の表示画面122で確認することができるものとなる。
また、各ビデオゲーム装置100に対して、ゾーンサーバ装置200又は共通サーバ装置210は周辺情報を1.0秒の間隔で送信し、一方、バトル行うプレイヤキャラクタ401に対応したビデオゲーム装置100に対しては、当該バトルのバトルサーバプロセスを実行しているバトルサーバ装置300は、そこで管理するプレイヤキャラクタ401、及び敵キャラクタ402の状態と、バトルサーバプロセスにおいて処理されたバトルの進行処理の結果とに応じて生成するバトル進行情報をするものである。
このため、バトルの進行を制御していないゾーンサーバ装置200又は共通サーバ装置210は、バトルの進行を制御するバトルサーバプロセスを実行するバトルサーバ装置300よりも長い時間間隔で周辺情報を送信すればよいため、周辺情報の送信のための処理負荷を小さくすることができるものとなる。提供されるオンラインゲームに参加できるプレイヤの数やプレイできるゲームの内容に対しての制限をさらに小さくすることができる。
そして、ビデオゲーム装置100では、ゾーンサーバ装置200から1.0秒毎に送信された周辺情報のうち、過去の周辺情報、及び現在の周辺情報から、その間の周辺情報の変化を30分の1秒毎の等間隔に分割して補間し、その30分の1秒毎に分割された周辺情報を基に、表示画面122に表示される画像を生成する。
こうすることで、ビデオゲーム装置100では、周辺情報の受信間隔に応じて補間画面を生成し、順次、表示画面122に表示させていくため、バトル以外のゲームの表示画像も滑らかに変化して表示されるようにすることができる。
また、バトルサーバ装置300で実行されるバトルサーバプロセスは、バトル毎に、当該バトルを行っている各プレイヤキャラクタ401、敵キャラクタ402の状態(フィールド400上の位置だけではなく、バトルの実行に必要なパラメータなどを含む)を管理しているが、これを参照して当該バトルを行っている全てのプレイヤキャラクタ401、及び敵キャラクタ402の位置を含むバトル周辺情報を生成し、ゾーンサーバ装置200又は共通サーバ装置210に送信するものとしている。
一方、ゾーンサーバ装置200又は共通サーバ装置210は、フィールド400を移動している複数のプレイヤキャラクタ401の各々の位置をフィールドキャラクタテーブル600で管理するだけではなく、バトルだけに登場している敵キャラクタ402のフィールド400における位置も当該フィールドキャラクタテーブル600で管理するものとしている。これによって管理される各キャラクタの位置は、バトルサーバ装置300から送信されるバトル周辺情報に基づいて更新される。
ゾーンサーバ装置200又は共通サーバ装置210は、バトルを行っていないプレイヤキャラクタ401に対応したビデオゲーム装置100に周辺情報を送信し、これにより生成されるゲームの表示画像を表示装置121の表示画面122に表示させるものとしているが、周辺情報には、当該ビデオゲーム装置100のプレイヤキャラクタ401が行っていないバトルにのみ登場している敵キャラクタ402の位置も含まれている。
つまり、自己のプレイヤキャラクタ401にバトルを行わせていないプレイヤも、他のプレイヤキャラクタ401が敵キャラクタ402と行っているバトルを表示画面122において見ることができ、さらに、当該バトルでのみ追加された敵キャラクタ402も見ることができる。
また、プレイヤキャラクタ401に設定されたパラメータには、パラメータA〜Dの4種類があり、それらのうち、パラメータC、Dは、ビデオゲーム装置100の表示画面122において、当該プレイヤキャラクタ401の外見に違い現れないパラメータとして定められている。
そして、バトルサーバ装置300からビデオゲーム装置100に対して送信されるバトル進行情報には、パラメータA、Bにかかる情報に加え、パラメータC、Dにかかる情報も送信されるが、ゾーンサーバ装置200又は共通サーバ装置210からビデオゲーム装置100に対して送信される周辺情報には、パラメータC、Dにかかる情報が含まれない。
これにより、ゾーンサーバ装置200又は共通サーバ装置210から送信する周辺情報の情報量を抑えることができ、周辺情報の送信のための処理負荷を小さくすることができるものとなる。一方で、パラメータC、Dにかかる情報を含まない周辺情報を受信するのは、バトルを行っていないプレイヤキャラクタ401のビデオゲーム装置100であるため、パラメータC、Dの値が如何になっていようとも、当該プレイヤキャラクタ401のゲームの進行への影響は生じない。
その一方で、バトルサーバ装置300からゾーンサーバ装置200又は共通サーバ装置210に対して、パラメータC、Dにかかる情報を含まないバトル周辺情報が送信され、バトルの進行処理の結果によって、ゾーンサーバ装置200で管理される各キャラクタの状態が送信されるので、それによって生成し、送信される周辺情報により、バトル以外の進行だけでなく、バトルの進行をもビデオゲーム装置100の表示画面122において確認することには問題が生じないものとなる。
ここで、バトルにおいてのみ追加された敵キャラクタ402は、バトルを行うキャラクタであるので、ゾーンサーバ装置200又は共通サーバ装置210ではなく、バトルサーバ装置300に動作を制御させるものである。このため、オンラインゲームの全体として存在する敵キャラクタ402の数を多くしても、ゾーンサーバ装置200又は共通サーバ装置210が直接的に動作を制御しなくてはならない敵キャラクタ402の数を抑えることができるので、ゾーンサーバ装置200又は共通サーバ装置210の処理負荷を抑えることができるものとなる。
また、バトルで追加される敵キャラクタ402は、フィールド400のどのエリアにおいて敵キャラクタ402とバトルを行うかで、当該追加される敵キャラクタ402の種類および/または数が決定されるものである。
この場合、エリア毎に行われるバトルにおいて、追加する敵キャラクタ402の種類および/または数が異なることとなるため、バトルのバリエーションが増え、同じプレイヤがバトルを行う回数を重ねるに従ってバトルの面白みが下がってきてしまうのを防ぐことができる。
また、追加の敵キャラクタ402は、バトルの開始時で出現してくるだけではなく、バトルの開始後のタイミングで登場してくることもあるため、バトルのバリエーションが増え、同じプレイヤがバトルを行う回数を重ねるに従って、バトルの面白みが下がって来てしまうのを防ぐことができる。
本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形態様について説明する。
上記の実施の形態では、実行中のバトルに参加するための、バトル意志行動は、バトル中のプレイヤキャラクタ402に対しての回復魔法の実行であったが、バトル意志行動は敵キャラクタ402に対する攻撃を行うことによって行ってもよく、また、当該バトルを行っている敵キャラクタ402に接近すること等によって行ってもよい。
また、バトルの開始に当たって行うバトル意志行動も、フィールド400に存在する敵キャラクタ402に対する攻撃だけに限るものではなく、当該敵キャラクタ402に接近することや、所定の行動(例えば、敵キャラクタ402の近辺にあるアイテムを拾う等)によるものでもよい。また、バトルが開始された場所に移動するだけでもよい(このとき、追加される敵キャラクタ402は、バトル開始の際に決定された敵キャラクタ402の組合せのみ)。
上記の実施の形態では、バトルの開始の際に決定される敵キャラクタ402の組合せは、バトルが終了するまで変化するものではなかったが、さらにバトル途中に敵キャラクタ402を追加させるようにしてもよい。このようなバトル開始前に決定された組合せに対する、バトル中における敵キャラクタ402のさらなる追加は、当該バトル中において移動中のプレイヤキャラクタ401が参加したときに行うようにしてもよい。
これによって、通常では3体の敵キャラクタ402でしか組み合わされないエリア412について、4、5体といった敵キャラクタ402を追加させることができ、プレイヤに意外性を与えることができるようになり、また、敵キャラクタ402の数に対して圧倒的にプレイヤキャラクタ401の数が多くなり、相対的にバトルの難易度が酷く低下してしまうという事態を防ぐことができるものとなる。
上記の実施の形態では、バトルの開始の際に決定される敵キャラクタ402の組合せは、エリア412毎に予め決まっているものであったが、これを複数の種類の敵キャラクタ402の中から、組合せおよび/または数がランダムで決定させるようにしてもよい。
これは、例えば、予め定められた最小数から最大数までの範囲でランダムにバトルに追加する敵キャラクタ402の数を決定し、2以上の敵キャラクタを追加すること決定した場合には、当該追加することを決定した2以上の敵キャラクタ402の各々について種類を決定するものとすること等である。また、所定の規則に従った種類及び数の敵キャラクタ402を追加することを決定ものとしてもよい。これによって、常にプレイヤにとっては、敵キャラクタ402の組合せが読めなくなるため、ゲームの興趣が増すものとなる。
上記の実施の形態では、バトルの開始の際に、組合せが決定された敵キャラクタ402の出現のタイミングは、初めの1体はバトルの開始直後であり、2体目は1体の敵キャラクタ402が倒された後のタイミングで出現するものであった。もっとも、これに限らず、このような敵キャラクタ402の出現のタイミングは、バトル開始からの経過時間によって出現させること、或いはまとめて一度に出現させることにしてもよい。
また、2体目は1体の敵キャラクタ402が倒されたタイミングではなく、2体の敵キャラクタ402(初め、フィールドに存在した敵キャラクタ402と追加された1体目の敵キャラクタ402)が倒されたタイミング、新たに、当該バトルに参加するプレイヤキャラクタ401が参加したタイミングであってもよい。これは、3体以上の敵キャラクタ402が追加される場合でも同様である。
上記の実施の形態では、バトルの開始の際に、エリア412毎に敵キャラクタ402の組合せが決定され、その敵キャラクタ402は、種類に応じて固有の形態情報、パラメータ情報を持つものとしたが、同じ種類の敵キャラクタ402でも、これらの形態情報、或いはパラメータ情報において、複数の異なるパターンを用意しておいてもよい。
例えば、バトルの開始の際に、エリア412毎に決定される敵キャラクタ402の組合せとともに、その決定された種類の敵キャラクタ402について、形態情報、或いはパラメータ情報を複数の異なるパターンからランダムで選択する、或いはランダムに得られた数値を抽出し、それを所定の演算式に当てはめてパラメータ情報を変えるようにする等である。
これによって、以前と同じエリア412で行われたバトルであって、以前と同じ組合せの敵キャラクタとバトルを行うことになっても、毎回異なる外見、或いはパラメータの敵キャラクタとバトルを行うことができるので、敵キャラクタ402に多様性が増すものとなり、一層興趣が得られるようになる。
上記の実施の形態では、すでに組合せが決定された敵キャラクタ402をバトル中にフィールド400に追加するとき、その位置を、プレイヤキャラクタ401の近辺にするものとしたが、これに限らず、敵キャラクタ402の追加される位置を、プレイヤキャラクタ401と、まだ倒されていない敵キャラクタ402の位置から定めるものとしてもよい。
これによって、たとえば、敵キャラクタ402の追加する位置を、プレイヤキャラクタ401を挟み撃ちにできるような位置に定めることもできるようになり、プレイヤに意外性を与え、ゲームの興趣が一層増すものとなる。
上記の実施の形態では、バトルに参加していない移動中のプレイヤキャラクタ401を操作するビデオゲーム装置100の表示画面122には、バトル中のキャラクタの表示はゾーンサーバ装置200又は共通サーバ装置210から送信される周辺情報から得られる表示に限られていた。
これに対して、移動中のプレイヤキャラクタ401であっても、バトルを行っているキャラクタの付近に存在する場合であれば、当該プレイヤキャラクタ401を操作するビデオゲーム装置100の表示画面122には、より詳細なバトル中のキャラクタの表示を行えるように、当該バトルの進行処理を行っているバトルサーバプロセスにより、当該ビデオゲーム装置100に対して、バトル進行情報を送信するようにしてもよい。
これによって、移動中のプレイヤキャラクタ401を操作するビデオゲーム装置100の表示画面122には、当該プレイヤキャラクタ401にとってフィールドの遠くで行われているバトルに比べて、より近くのバトルは詳細に表示されるようになり、当該ビデオゲーム装置100のプレイヤはゲームに対してより臨場感を得られるようになり、ビデオゲームとしての興趣が得られるものとなる。
上記の実施の形態では特に記載はしなかったが、通常、ビデオゲームにおいてキャラクタが魔法を実行する場合には、表示画面122においてその実行した魔法の種類に応じて様々な特殊表示を施すものであり、同じ種別の魔法(種別としては、火炎、雷など)であっても、より強力な威力のものであれば、それに応じて、そのような特殊表示をより大きく、或いは激しく表示させるようにするものである。
このように特殊表示を異ならせることを上記実施の形態のバトルでも行うことにより、当該バトルに参加しているプレイヤキャラクタ401の実行した魔法の威力の違いを、当該プレイヤキャラクタ401を操作するビデオゲーム装置100のプレイヤは表示画面122を通して認識できるものである。
同様に、バトルに参加していない移動中のプレイヤキャラクタ401を操作するビデオゲーム装置100のプレイヤの表示画面122に、同じ特殊表示を行うことができるが、これに限らず、当該特殊表示を異ならせずに、実行した魔法(魔法に限らず、口から火を噴くなどの特技でもよい)の種別につき、すべて同じ特殊表示を行うような簡易な表示を行うようにしてもよい。
つまり、バトルを行っているプレイヤキャラクタ401を操作するビデオゲーム装置100の表示画面122については、その表示画像の生成、ゲームの進行がリアルタイムで実行されるものであるため、魔法による特殊表示は、その魔法の威力によって異ならせるものとする。
一方で、バトルを行っていない他のプレイヤキャラクタ401を操作するビデオゲーム装置100の表示画面122については、当該他のプレイヤキャラクタ401のフィールド400の移動以外の表示画像は、1.0秒毎に送信される周辺情報を基に、遅延表示処理によって生成されるものであり、バトル中の処理に比べて情報量は少ないものである。
そのため、そのような場合に表示画面122を通して視認されるバトルであって、魔法による特殊表示を行うものについては、魔法が同じ種別のものであれば、その魔法の特殊表示に係る情報を統一したものを周辺情報に含ませて、当該バトルを行っていない他のプレイヤキャラクタ401を操作するビデオゲーム装置100に送信するようにする。
これは、当該バトルに係る処理を実行するバトルサーバプロセスによって送信されるバトル周辺情報において、同じ種別の魔法を統一した特殊表示として含ませるようにしてもよいものである。このようにするこことで、ビデオゲーム装置100の表示画面122に特殊表示を表示する場合において、ゾーンサーバ装置200又は共通サーバ装置210の受信するバトル周辺情報、ゾーンサーバ装置200又は共通サーバ装置210から送信する周辺情報をより少なくすることができ、ゾーンサーバ装置200又は共通サーバ装置210への負担を少なくすることができるようになる。
上記の実施の形態では、どのバトルサーバ装置300でバトルサーバプロセスを生成・起動させるかは、ゾーンサーバ装置200の管理するバトルプロセス起動管理テーブル610又は、共通サーバ装置210の管理するマッチングプロセス起動管理テーブル910において、バトルサーバ装置300のバトルサーバプロセスの起動数で管理されるものとしていた。
もっとも、本発明はこれに限らず、バトルサーバプロセスがバトルサーバ装置300にかける負荷の情報を当該バトルサーバプロセスから送信されるバトル周辺情報の情報量から求める負荷によって、新たにバトルサーバプロセスを生成・起動するバトルサーバ装置300を選択するようにしてもよい。
または、バトルサーバプロセスから、特別に負荷量を求めた情報として負荷の情報を得るものとし、その負荷によって、新たにバトルサーバプロセスを生成・起動するバトルサーバ装置300を選択するようにしてもよい。
これによって、バトルサーバプロセスの起動数からだけでは見えてこない流動的なバトル進行の処理負荷によって、バトルサーバプロセスの生成・起動を管理することができ、バトルサーバプロセスを生成・起動させる、より効率的なバトルサーバ装置300の選択が可能となる。
上記の実施の形態では、ゾーンサーバ装置200で管理するフィールド400上に複数のエリア412が存在していたが、このエリア412毎にゾーンサーバ装置200を設けて、複数のゾーンサーバ装置200でエリア412毎の管理を行うようにしてもよい。
このとき、プレイヤキャラクタ401がエリア412間を移動すると、移動元のエリア412を管理するゾーンサーバ装置200(以下、「移動元ゾーンサーバ装置200A」とする)から、移動先のエリア412を管理するゾーンサーバ装置200(以下、「移動先ゾーンサーバ装置200B」とする)を特定する情報を当該プレイヤキャラクタ401を操作するビデオゲーム装置100へと送信し、当該ビデオゲーム装置100を特定する情報を移動先ゾーンサーバ装置200Bへと送信する。
当該ビデオゲーム装置100は、移動先ゾーンサーバ装置200Aを特定する情報を基に、当該移動先ゾーンサーバ装置200Aとの通信を確立する。このようにして、エリア412間の移動で、プレイヤキャラクタ401の外見・位置の管理を移動元ゾーンサーバ装置200Aから移動先ゾーンサーバ装置200Bへと移行させる。
上記の実施の形態では、バトルが終了すれば、ビデオゲーム装置100に対して、バトルサーバ装置300から30分の1秒毎に送信されるバトル進行情報の送信は終わり、ゾーンサーバ装置200から1.0秒毎に送信される周辺情報を受信し始めるものである。このため、バトル終了まで行われてきた、リアルタイムの画像の生成処理から、バトル終了後には、遅延表示処理によって画像の生成が行われるようになる。
そこで、バトルサーバ装置300から30分の1秒毎に送信されてきたバトル進行情報を、バトル終了情報に限って、バトル終了の判定から1.0秒後に送信するようにして、周辺情報の遅延表示処理のタイミングに合わせるようにしてもよい。これによって、表示画面122に表示される、バトル終了までのリアルタイムの画像展開と、周辺情報の遅延表示処理の遅延した画像展開とが緩衝され、プレイヤにバトル終了直後の表示画面122の画像展開の違和感を減少させることができるようになる。
上記の実施の形態では、ゾーンサーバ装置200又は共通サーバ装置210から送信される周辺情報の送信タイミングは、1.0秒毎となっていたが、これをバトルサーバプロセスによりバトルサーバ装置300から送信されるバトル進行情報を送信するタイミングと同様に、30分の1秒毎のタイミングで送信するようにしてもよい。
これによって、ビデオゲーム装置100の表示装置121の表示画面122における、1フレーム時間とのタイミングのズレは解消されるものとなり、当該ビデオゲーム装置100で操作されるプレイヤキャラクタ401の外見・位置のリアルタイムの変化に併せて周辺情報に係る画像も生成できるようになる。
上記の実施の形態では、バトルサーバ装置300から送信されるバトル周辺情報の送信タイミングは、0.5秒毎となっていたが、これをビデオゲーム装置100へとバトル進行情報を送信するタイミングである30分の1秒毎の送信タイミングで送るようにしてもよい。
上記の実施の形態では、プレイヤキャラクタ401は、バトルにおいて敵キャラクタ402を相手としてバトルを行い、倒すものとしていたが、これに加え、またはこれに代えて、プレイヤキャラクタ401同士のバトルを行うようにしてもよい。この場合、バトルを開始することになる複数のプレイヤキャラクタ401を操作するビデオゲーム装置100に対して、図9(d)の第6段階目において、ゾーンサーバ装置200からビデオゲーム装置100に対して送信するBSV特定情報を、当該ビデオゲーム装置100に対して転送する。
上記の実施の形態にかかるオンラインゲームでは、プレイヤキャラクタ401がフィールド400上を移動して、敵キャラクタ402とバトルを行うものであったが、フィールド400において、プレイヤから、他のプレイヤキャラクタ401が特定のイベントを行っている姿を見ることができるような態様であって、当該イベントについてリアルタイムで表示画面122の表示画像を生成し、キャラクタのパラメータを更新するものであるようなイベントをバトルの代わりに行ってもよい。そのようなイベントとしては、例えば、レース(車、馬など)やスポーツ(サッカー、野球など)であってもよい。
上記の実施の形態では、プレイヤキャラクタ401、及び敵キャラクタ402はフィールドを移動する人型、動物型のキャラクタとして説明するものであるが、これに限るものではなく、これらに加えて、またはこれに代えて飛行機や戦車といった乗り物が移動、或いはバトルするものであってもよい。
上記の実施の形態では、オンラインゲームとしてMMORPGに限定して説明してきたが、これは、フィールドの移動、およびバトルのようなイベントといった状況の変化が伴うようなオンラインゲームであれば、多数のプレイヤが参加できるようなシュミレーションゲームであってもよい。
上記の実施の形態では、ビデオゲームを実行するプラットフォームとなる装置としてゲーム専用機であるビデオゲーム装置100を適用していた。これに対して、本発明は、ビデオゲーム装置100と同様の構成要素を備え、ネットワーク接続機能を有するものであれば、汎用のパーソナルコンピュータなどをプラットフォームとして実現されるものとしてもよい。表示装置121及びサウンド出力装置125を装置本体101と同一の筐体内に納めた構成を有する携帯ゲーム機(アプリケーションの実行機能を有する携帯電話機を含む)を適用するものとしてもよい。
記録媒体131としては、DVD−ROMやCD−ROMの代わりに半導体メモリーカードを適用することができる。このメモリーカードを挿入するためのカードスロットをDVD/CD−ROMドライブ113の代わりに設けることができる。汎用のパーソナルコンピュータの場合には、本発明に係るプログラム及びデータを記録媒体131に格納して提供するのではなく、HDD107に予め格納して提供してもよい。本発明にかかるプログラム及びデータを格納して提供するための記録媒体は、ハードウェアの物理的形態及び流通形態に応じて任意のものを適用することができる。
上記の実施の形態では、ビデオゲーム装置100のプログラム及びデータは、記録媒体131に格納されて配布されるものとしていた。これに対して、これらのプログラム及びデータをネットワーク上に存在するサーバ装置が有する固定ディスク装置に格納しておき、装置本体101にネットワークを介して配信するものとしてもよい。ビデオゲーム装置100において、通信インターフェイス115がサーバ装置から受信したプログラム及びデータは、HDD107に保存し、実行時にRAM105にロードすることができる。サーバ装置200のプログラム及びデータについても同様である。
上記の実施の形態では、ゾーンサーバ装置200、2台のバトルサーバ装置300、及びゲーム外サーバ装置350をサーバ群250としている、これらの距離関係について特に述べていないが、これらは互いに遠隔地(同じ建物に存在しない、又は異なる地域、国に存在する等)に存在させるようにしてもよい。
また、ビデオゲーム装置100について、バトルサーバプロセスを管理できるだけの十分の処理能力であれば、バトルサーバ装置300の代わりに当該ビデオゲーム装置100において、当該ビデオゲーム装置100で操作されるプレイヤキャラクタ401のバトルに係るバトルサーバプロセスを管理するようにしてもよい。