以下、添付図面を参照して、本発明の実施の形態について説明する。
この実施の形態にかかるオンラインゲームは、同時に当該オンラインゲームに参加する複数のプレイヤが、仮想空間としてのフィールドにおいて、自己のプレイヤキャラクタを移動させながら、当該プレイヤキャラクタにそのフィールドに存在する敵キャラクタとの戦闘(バトル)を行わせることで進行するMMORPGである。
図1は、この実施の形態にかかるオンラインゲームが行われるネットワークシステムの全体構成を示すブロック図である。図示するように、このネットワークシステムは、複数のビデオゲーム装置100がインターネット151を介してサーバ群250に接続されて構成される。
サーバ群250は、LAN(Local Area Network)251を介して互いに接続されたゾーンサーバ装置200、2台のバトルサーバ装置300、及び通常においてこの実施の形態にかかるオンラインゲーム以外に係る処理を行うサーバ装置であるゲーム外サーバ装置350を含み、これらがインターネット151を介してビデオゲーム装置100に接続される。
ゾーンサーバ装置200は、フィールドにおける全てのプレイヤキャラクタ、並びに敵キャラクタの位置、及び外見などに係る情報を管理するものである。そして、ゾーンサーバ装置200からビデオゲーム装置100に送信される情報は、主にビデオゲーム装置100の表示装置に表示されるフィールド上におけるキャラクタの外観的な情報に係るものである。
バトルサーバ装置300は、プレイヤキャラクタと敵キャラクタとのバトルの開始によって、1のバトルにつき1のバトルサーバプロセスを起動する。そのバトルサーバプロセスは1または複数のプレイヤキャラクタ、及び複数の敵キャラクタから成るバトルの構成単位としてのバトルグループ(後述する)毎にバトルの進行、並びにそれに係るプレイヤキャラクタ、及び敵キャラクタの情報(位置、外見及びその他のパラメータ等)を管理し、処理するものである。
そして、バトルサーバ装置300からビデオゲーム装置100に送信される情報は、ビデオゲーム装置100で操作されるプレイヤキャラクタのバトルの進行にかかる情報であり、フィールド上におけるキャラクタの外観的な情報だけではなく、バトルの進行内容(パラメータの増減等)に係る情報が含まれるものとなる。
以下において、バトルサーバ装置に関して、バトルサーバ、或いはバトルサーバプロセスというときは、ハードウェア資源それ自体を指すものでなく、機能としてのプロセスのことを指し、バトルサーバ装置というときは、ハードウェア資源それ自体を指すものとして説明する。
さらに、サーバ群250には、ゲーム外サーバ装置350が含まれる。このゲーム外サーバ装置350は、通常、この実施の形態にかかるオンラインゲーム以外の処理として、例えばCG(Computer Graphics)を生成する処理などを行っており、バトルサーバ装置300が最低限備える情報(後述する、エリア毎の敵キャラクタ組合せテーブル等)については、予め記憶されている。
そして、バトルサーバ装置300において、起動可能な最大数までのバトルサーバプロセスが起動された場合に、予備のバトルサーバ装置300として用いられるものとなる。以下、ゲーム外サーバ装置350に関して、特に区別しないときは、バトルサーバ装置300と同等のものとして扱うものとする。
次に、ビデオゲーム装置100、ゾーンサーバ装置200及びバトルサーバ装置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は、ネットワーク151に接続され、他のコンピュータとの通信を行う。入力部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、バトルサーバ装置300、及びゲーム外サーバ装置350の構成を示すブロック図である。図示するように、ゾーンサーバ装置200、及びバトルサーバ装置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、及びバトルサーバ装置300の制御を行う。制御部203は、現在時刻を計時する内部タイマを備えている。RAM205は、制御部203のワークエリアである。HDD207は、プログラムやデータを保存するための記憶領域である。通信インターフェイス215は、ネットワーク151に接続され、ビデオゲーム装置100のそれぞれとの通信を行い、また、ローカルエリアネットワーク(LAN)にも接続され、ゾーンサーバ装置200、及びバトルサーバ装置300は相互に通信を行う。
ゾーンサーバ装置200、及びバトルサーバ装置300でオンラインゲームを行うためのプログラム及びデータは、最初例えば記録媒体231に記憶され、ここからHDD207にインストールされる。
また、この記録媒体231に記憶されるデータは、ゾーンサーバ装置200のものと、バトルサーバ装置300のものとで異なり、ゾーンサーバ装置200の記録媒体231に記憶されるデータには、フィールドを構成するための形状のデータ、及びグラフィックデータは含まれておらず、後述するフィールドの範囲、およびマス目に関するデータが含まれる。一方、バトルサーバ装置300の記録媒体231に記憶されるデータには、フィールドの形状のデータは含まれるが、マス目に関するデータは含まれていない(全く同じデータを用意しておいてもよい)。
そして、このプログラム及びデータは実行時にHDD207から読み出されて、RAM205にロードされる。制御部203は、RAM205にロードされたプログラム及びデータを処理し、ビデオゲーム装置100のそれぞれから送られてくる情報などを元にオンラインゲームを進行させる。制御部203が処理を行っている間の中間的なデータは、RAM205に記憶される。
次にこの実施の形態にかかるオンラインゲームのフィールド構成について説明する。図4はこの実施の形態にかかるオンラインゲームのフィールド構成を示すものである。フィールド400には、複数のプレイヤキャラクタ401、及び敵キャラクタ402が存在しており、そのフィールド400上においてバトルも行われるものとなっている。
このフィールド400内であれば、プレイヤは各自のプレイヤキャラクタ401を自由に移動させることができ、全てのプレイキャラクタ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が最初の一撃を与えることによって開始されるものとなるが、バトルの開始に先立ち、バトルサーバ装置300において当該バトルを進行させるためのバトルサーバプロセスが生成される。バトルはフィールド400で行われるものとなり、表示画面122ではシームレスに展開するものとなる。バトルが開始されると、フィールド400に存在していた敵キャラクタ402以外に新たな敵キャラクタ402がバトルに参加するものとなり、それらとプレイヤキャラクタ401(他のプレイヤキャラクタ401も追加されることがある)と(以下、これらをまとめて「バトルグループ」とする)によってバトルが進行するものとなる。
バトルが開始されても、フィールド400上の当該バトルに係るプレイヤキャラクタ401、及び敵キャラクタ402の位置、及び外見に係る情報は、引き続きゾーンサーバ装置200によって管理されるものの、バトルの進行はバトルサーバ装置300におけるバトルサーバプロセスで管理されるようになる。
次に、バトルサーバ装置300のバトルサーバプロセスで管理される、バトルの進行について説明する。バトルは、フィールド400上において、プレイヤキャラクタ401の敵キャラクタ402に対する最初の攻撃で開始されるものとなる。このようにバトルが開始される際に、このバトルに参加する敵キャラクタ402(バトル開始前においてフィールド400に存在した敵キャラクタ402とは異なる敵キャラクタ)の組合せが決定される。
バトルには、他のプレイヤキャラクタ401も参加することがあり、当該バトルに参加している敵キャラクタ402、或いはプレイヤキャラクタ401の何れか一方が全て倒される(キャラクタのパラメータとしてのHP(ヒットポイント)が0となる状態)と、バトルが終了するものとなる。
図5(a)〜(j)は、この実施の形態にかかるオンラインゲームにおけるバトルについての表示画面122の例を示す図である。ここで展開されるバトルは、複数のプレイヤキャラクタ401、及び複数の敵キャラクタ402で進行するものであり、それぞれ異なる符号によって区別するものとする。
図5(a)に示すように、フィールド400上に存在する敵キャラクタ402−1の近辺を移動中のプレイヤキャラクタ401−1が、図5(b)に示すように、バトル開始の意志の表明として、敵キャラクタ402−1に対して最初の攻撃(以下、「バトル意志行動」とする)をすると、バトルが開始されるものとなる。
バトルが開始されるに先立ち、まずはバトルサーバ装置300にバトルサーバプロセスが生成され、このバトル意志行動後のそのバトルに係る処理はすべてバトルサーバプロセスで管理されるものとなる。まずバトルを開始する際に、敵キャラクタ402−1の存在するフィールド400上のエリア412の位置から、当該バトルに参加させる敵キャラクタ402の組合せ、及び組み合わされた敵キャラクタ402の出現タイミングを決定する。このバトルにおいては、バトル開始直後に敵キャラクタ402−2が出現し、敵キャラクタ402−2が倒された後、敵キャラクタ402−3が出現するものとする。
バトルが開始されると、図5(c)に示すように、敵キャラクタ402の組合せとして決定されたもののうち、1体の敵キャラクタ402−2が出現する。バトルは進み、図5(d)において、その敵キャラクタ402−2がプレイヤキャラクタ401−1によって、攻撃され倒されると、続いて、図5(e)に示すように構成敵キャラクタとして決定された残りの敵キャラクタ402−3が出現する。
図5(f)では、敵キャラクタ402−1、及び402−3とプレイヤキャラクタ401−1によってバトルが続けられているが、図5(g)に示すように当該バトルを行っているプレイヤキャラクタ401−1、及び敵キャラクタ402−1、402−3の近辺を移動中のプレイヤキャラクタ401−2は、プレイヤキャラクタ401−1に対して回復させる魔法を使うこと(キャラクタパラメータとしてのHPを増加させる行動)(これも、「バトル意志行動」として定義する)によって、そのプレイヤキャラクタ401−1を操作するビデオゲーム装置100は当該バトルを進行しているバトルサーバプロセスとの通信を確立し、当該バトルに参加するものとなる。
図5(h)では、新たに参加することになったプレイヤキャラクタ401−2とプレイヤキャラクタ401−1とによって、敵キャラクタ402−1、402−3とのバトルが進み、最終的に図5(i)に示すように、全ての敵キャラクタ402を倒すことによってバトルが終了するものとなる。
バトルの終了後は、図5(j)に示すように、倒された敵キャラクタ402はフィールド400上において表示されないものとなり、再び、ゾーンサーバ装置200による位置の管理の下、プレイヤキャラクタ401−1、401−2は、バトル終了直後のそれぞれのフィールド400上の位置からフィールド400を移動できるようになる。このように、表示画面122において、バトルはフィールド400上で、シームレスに展開するものとなっている。
なお、このようなバトルを行っていないプレイヤキャラクタ401を操作するビデオゲーム装置100の表示画面122によって、バトル中のプレイヤキャラクタ401、及び敵キャラクタ402を確認することができるものとなっている。このために、ゾーンサーバ装置、バトルサーバ装置等で行う処理については後述する。
次に、この実施の形態にかかるオンラインゲームを進行させるため、ゾーンサーバ装置200、及びバトルサーバ装置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に現れるものであるため、外観に係る情報を各ビデオゲーム装置に送信するゾーンサーバ装置200は、これらの情報を保持するものである。対して、パラメータC、Dは外観として表示画面122に現れないものであるが、これらの情報は、バトルのダメージ量を求める上で必要な情報であり、後述する、バトルキャラクタテーブルに保持するものとなる。
参加バトルサーバプロセス情報608は、プレイヤキャラクタ401、及び敵キャラクタ402がバトル中であれば、当該バトルに係るバトルサーバプロセスの識別情報が記憶されるものとなっており、バトル中でなければ、何の情報も記憶されていない状態(NULL)となっている。
これらの情報は、全て後述するビデオゲーム装置100、及びバトルサーバ装置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に登録されるものとなる。
図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に追加される敵キャラクタ402−2については、バトルキャラクタテーブル710に登録されたときから、追加待ちフラグ720には0が設定されている。一方、敵キャラクタ402−2が倒されることで出現する、追加敵キャラクタ402−3には、バトル開始直後で追加待ちフラグ720に1が登録されており、敵キャラクタ402−2が倒されると、当該追加待ちフラグ720が0になる。このタイミングで、フィールド400に当該追加敵キャラクタ402−3が追加されるものとなる。
また、このような敵キャラクタ402の追加される順番は、敵キャラクタ組合せテーブル700の左端の構成敵キャラクタ702に記憶される種類の敵キャラクタ402から順に行われるものであり、バトルキャラクタテーブル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秒のタイミングで送信されるものとなる。
図8は、ビデオゲーム装置100において記憶されるデータの構成を示す図である。ここには、ID801と、名前情報802と、形態情報803と、位置情報804と、パラメータA情報805と、パラメータB情報806と、パラメータC情報807と、パラメータD情報808と、ゾーンサーバ装置識別情報809と、バトルサーバプロセス識別情報810とが記憶される。
ID801は、このID801が記憶されるビデオゲーム装置100で操作するプレイヤキャラクタ401に固有のものであり、前記ID601、及びID711として記憶されるものと同じものである。このID801とID601、及びID711とによって、フィールド400上で移動中、或いはバトル中のプレイヤキャラクタ401と、それを操作する当該ビデオゲーム装置100とが一意的に特定されるものとなる。
名前情報802、形態情報803は、前記した図6(a)のキャラクタ外観テーブル、或いは図7(b)のバトルキャラクタテーブル710において記憶されるものと同じ内容の情報であり、名前情報802は当該ビデオゲーム装置100で操作されるプレイヤキャラクタ401の名前に係る情報を記憶しており、形態情報803は当該ビデオゲーム装置100で操作されるプレイヤキャラクタ401の形態に係る情報を記憶している。
位置情報804は、当該ビデオゲーム装置100で操作されるプレイヤキャラクタ401のフィールド400上での位置を記憶するものであり、プレイヤキャラクタ401がフィールド400を移動中である場合においては、プレイヤの入力部161の移動操作がされることにより、更新されるものとなる。
一方、バトル中においては、プレイヤの移動操作によって、それを入力情報としてバトルサーバ装置300に送信し、それを基にバトルの進行の処理を実行して得られたバトル進行情報をビデオゲーム装置100で受信する。このようにして得られたバトル進行情報によって、バトル中の位置情報804は更新されるものとなる。
パラメータA情報805、パラメータB情報806、パラメータC情報807、及びパラメータD情報808については、前記した図6(a)のキャラクタ外観テーブル、或いは図7(b)のバトルキャラクタテーブル710に記憶されるものと同じ内容の情報である。プレイヤキャラクタ401がフィールド400を移動中である場合にあっては、パラメータA情報805、及びパラメータB情報806(外観として表示画面122に現れるもの)に関しては、ID801、名前情報802、形態情報803、及び位置情報804と併せて、定期的(0.5秒毎)にゾーンサーバ装置200に送信されるものとなる。
一方、バトル中である場合には、前記したバトルサーバ装置300から送信されたバトル進行情報によって、パラメータA情報805、パラメータB情報806、パラメータC情報807、及びパラメータD情報808が更新されるものとなる。
ゾーンサーバ装置識別情報809は、これを記憶するビデオゲーム装置100との通信を行っているゾーンサーバ装置200のIPアドレス等の情報を記憶するものである。バトルサーバプロセス識別情報810は、これを記憶するビデオゲーム装置100との通信を確立しているバトルサーバプロセスのバトルサーバ装置300のIPアドレス、及びそのバトルサーバ装置で起動される1のバトルサーバプロセスを特定するための情報を記憶するためのものであり、バトル中ではない場合では、NULLとなっている。
さらに、後述する表示画面122に表示するための画像の生成において用いる、ゾーンサーバ装置200、バトルサーバ装置300から送信される情報を一時的に記憶させるためのバッファ領域が、それぞれの情報毎に確保される。ゾーンサーバ装置200から送信される周辺情報については、後述する遅延表示処理のために2の周辺情報が記憶できるだけの記憶領域が確保され、バトルサーバ装置300から送信されるバトル周辺情報については、リアルタイムで画像を生成するので、1のバトル周辺情報が記憶できるだけの記憶領域が確保される。
次に、この実施の形態にかかるオンラインゲームの進行、及びデータの流れについて説明する。図9、図10は、このオンラインゲームの進行、及びデータの流れを模式的に示すものである。図9において示すオンラインゲームの進行は、プレイヤキャラクタ401が、敵キャラクタ402の複数存在するフィールド400上を移動し、当該フィールド400上に存在する1体の敵キャラクタ402に対しバトル意志行動をすることによって当該敵キャラクタ402とのバトルが行われ、当該バトルが終了するまでの進行を表したものである。
図9(a)に示すように、移動中である複数のプレイヤキャラクタ401のそれぞれは、そのプレイヤキャラクタ401が操作されるビデオゲーム装置100と、ゾーンサーバ装置200とで、データの送受信を行っている。ビデオゲーム装置100からは、ID801、名前情報802、形態情報803、位置情報804、パラメータA情報805、及びパラメータB情報806(これらをまとめて、「外見・位置情報」とする)が、ゾーンサーバ装置200に送信されるものとなっている。
一方、ゾーンサーバ装置200からは、各ビデオゲーム装置100に対して、当該ビデオゲーム装置100で操作されるプレイヤキャラクタ401の周辺情報として特定される他のプレイヤキャラクタ401、及び敵キャラクタ402に係るID601、名前情報603、形態情報604、位置情報605、パラメータA情報606、パラメータB情報607、及びバトルサーバ情報608が送信されるものとなっている。
また、これらのデータを各装置に送信するタイミングとしては、ビデオゲーム装置100から送信される外見・位置情報が、例えば、0.5秒毎のタイミングで送信され、ゾーンサーバ装置200から送信される周辺情報が、例えば、1.0秒毎のタイミングで送信されるものとなっている。
続いて、移動中のプレイヤキャラクタ401のうちの1のプレイヤキャラクタ401が敵キャラクタ402に対してバトル意志行動を行うと、プレイヤキャラクタ401、敵キャラクタ402の位置・パラメータの管理をバトルサーバ装置300に移行させ、バトルの進行をさせるため、図9(b)に示すように、バトルの開始に先立って、ビデオゲーム装置100と、ゾーンサーバ装置200と、バトルサーバ装置300とが互いにデータの送受信を行うものとなっている。
まず、第1段階目に、バトルが実行されるまでは、当該バトルを行うことになるプレイヤキャラクタ401を操作するビデオゲーム装置100から、ゾーンサーバ装置200に対して、バトルを行う敵キャラクタ402を特定した情報とともに、バトルを行う旨を示した情報(以下、「バトル意志情報」とする)を送信するものとなる。
続いて、第2段階目に、バトル意志情報を受信したゾーンサーバ装置200は、それを基にバトルを実行するためのバトルサーバプロセスを生成・起動するためのバトルサーバ装置300を選択し、当該選択したバトルサーバ装置300に対して、バトルサーバプロセスを生成・起動を指示する旨の情報とともに、当該バトル意志行動を行ったプレイヤキャラクタ401、及びそれに対する敵キャラクタ402に係る情報(以下、「プロセス生成指示情報」とする)を送信する。
ここで、プロセス生成指示情報として、併せて送信されるプレイヤキャラクタ401に係る情報とは、当該プレイヤキャラクタ401のID601や、当該プレイヤキャラクタ401を操作するビデオゲーム装置100の送信先IPアドレス602であり、敵キャラクタ402に係る情報とは、当該敵キャラクタ402のID601、名前・種類情報603、形態情報604、位置情報605、パラメータA情報606、及びパラメータB情報607である。
そして、第3段階目に、プロセス生成指示情報を受信したバトルサーバ装置300は、新たなバトルサーバプロセスを生成・起動し、その後速やかに、当該バトルサーバプロセスを特定するための情報(以下、「BSV特定情報」とする)をゾーンサーバ装置200に送信する。
第4段階目に、BSV特定情報を受信したゾーンサーバ装置200は、すぐに、そのバトルサーバプロセスにおいて実行されるバトルに参加するプレイヤキャラクタ401を操作するビデオゲーム装置100に対して、当該受信したBSV特定情報を転送する。
第5段階目に、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に対して、バトル進行の処理の結果に係る情報(以下、「バトル進行情報」とする)を送信し、ゾーンサーバ装置200に対しては、バトル周辺情報として、当該バトルに参加する、プレイヤキャラクタ401、及び敵キャラクタ402のID711、名前/種類情報713、形態情報714、位置情報715、パラメータA情報716、及びパラメータB情報717を送信する。
また、これらのデータを各装置に送信するタイミングとしては、バトルサーバ装置300から送信されるバトル進行情報は、例えば、30分の1秒毎のタイミングで送信され、それを受信したビデオゲーム装置100は、プレイヤの入力操作が検出されれば、それを入力情報としてすぐに送信するものとなっている。一方、バトルサーバ装置300から送信されるバトル周辺情報は、例えば、0.5秒毎のタイミングで送信されるものとなっている。
なお、バトル中において、ビデオゲーム装置100から、ゾーンサーバ装置200に対しては何のデータも送信されないものとなっているが、ゾーンサーバ装置200からビデオゲーム装置100に対しては、定期的(1.0秒毎)に周辺情報が送信されるものとなっている。
但し、バトル中においてゾーンサーバ装置200からの周辺情報の送信について、ビデオゲーム装置100では、後述する表示画面122に表示される画像の生成処理にそれを用いるものではなく、エラーにより、バトルサーバ装置300との通信がバトル中に切断され、緊急的にゾーンサーバ装置200との通信を確立するために行われているものである。
バトルにおいて全ての敵キャラクタ402が倒されると、当該バトルが終了し、図9(d)に示すように、バトルサーバ装置300から、ビデオゲーム装置100、及びゾーンサーバ装置200に対して、当該バトルが終了したことを示す旨の情報(以下、「バトル終了情報」とする)が送信される。
このバトル終了情報によって、ビデオゲーム装置100、及びゾーンサーバ装置200においてバトルの終了にかかる処理が実行され、図9(a)に示すようにビデオゲーム装置100とゾーンサーバ装置200とのデータの送受信が再開される。バトルサーバ装置300においては、バトル終了情報の送信後、バトルサーバプロセスを終了する。
続いて、図10において示すオンラインゲームの進行は、バトル中において、当該バトルに参加していない他のプレイヤキャラクタ401がバトル意志行動をすることで、当該バトルに参加し、当該バトルが行われている途中までの進行を表したものである。
図9(c)に示すように移動中のプレイヤキャラクタ401のうちの1のプレイヤキャラクタ401が、フィールド400上において当該プレイヤキャラクタ401の近辺のバトルに対してバトル意志行動(図5に示した例では、バトル中のプレイヤキャラクタ401−1に対する回復魔法の実行)を行うと、図10(a)に示すように、当該バトルの参加に先立って、ビデオゲーム装置100は、ゾーンサーバ装置200、及びバトルサーバ装置300とデータの送受信を行うものとなっている。
バトルに参加するまでには、まず第1段階目に、当該バトルに参加させるプレイヤキャラクタ401を操作するビデオゲーム装置100から、ゾーンサーバ装置200に対して、バトル意志情報として、バトル意志行動を行った他のプレイヤキャラクタ401、或いは敵キャラクタ402を特定する情報(図5に示した例では、プレイヤキャラクタ401−1)とともに、バトルを行う旨を示した情報を送信するものとなる。
続いて第2段階目に、バトル意志情報を受信したゾーンサーバ装置200は、それを基に、特定したプレイヤキャラクタ401、或いは敵キャラクタ402が参加しているバトルを実行しているバトルサーバプロセスを特定し、BSV特定情報として、バトル意志情報を送信したビデオゲーム装置100に対して送信する。
第3段階目に、BSV特定情報を受信したビデオゲーム装置100は、それを基に、バトル意志行動を行ったことによって参加するバトルの処理が行われるバトルサーバプロセスが実行されるバトルサーバ装置300に対して、当該バトルサーバプロセスと通信を確立するための接続を要求する旨の情報とともに、当該ビデオゲーム装置100で操作されるプレイヤキャラクタ401に係る情報を、接続要求情報として送信する。
接続要求情報が受信され、バトルサーバ装置300のバトルサーバプロセスは、ビデオゲーム装置100との通信を確立し、当該ビデオゲーム装置100で操作されるプレイヤキャラクタ401がバトルに参加することができるようになる。
このように、新たなプレイヤキャラクタ401がバトルに参加すると、図10(b)に示すように、当該プレイヤキャラクタ401を操作するビデオゲーム装置100からバトルサーバ装置300に対しては、入力情報を送信するし、バトルサーバ装置300からは、当該ビデオゲーム装置100に対して、バトル進行情報の送信を開始する。
次に、ビデオゲーム装置100に対するデータ送信の頻度とそのデータのフォーマットについて説明する。前記したように、ビデオゲーム装置100には、移動中において(バトル中においても)ゾーンサーバ装置200から周辺情報が送信され、バトル中においては、バトルサーバプロセスによってバトルサーバ装置300からバトル進行情報が送信される。
図11は、そのようなゾーンサーバ装置200、及びバトルサーバ装置300からビデオゲーム装置100に対して送信されるデータに関して、その送信頻度と、データのフォーマットとを模式的に示したものである。図11に示すように、周辺情報に含まれる、プレイヤキャラクタ401、及び敵キャラクタ402の情報について、それらの識別情報としてのID等を除いて、ゾーンサーバ装置200から送信されるデータのフォーマットは、形態、位置、パラメータA、及びパラメータBの情報から構成される。
一方、バトル進行情報として、バトルに参加するプレイヤキャラクタ401、及び敵キャラクタ402の情報について、それらの識別情報としてのID等を除いて、バトルサーバ装置300から送信されるデータのフォーマットは、形態、位置、パラメータA、パラメータB、パラメータC、及びパラメータDの情報から構成される。
このように、ゾーンサーバ装置200から送信されるデータと、バトルサーバプロセスによるバトルサーバ装置300から送信されるデータとにおいては、外観として現れないパラメータC、及びパラメータDが含まれるか否かにおいて異なるものとなっている。つまり、1のビデオゲーム装置100に対して送信される周辺情報、或いはバトル進行情報に含まれるプレイヤキャラクタ401、及び敵キャラクタの数が同じであれば、バトルサーバプロセスによるデータ送信の方が一度に送信するデータ量が大きくなるものとなる。
また、図11に示すように、ゾーンサーバ装置200からの周辺情報の送信頻度が1.0秒毎であるのに対して、バトルサーバプロセスにより送信されるバトル進行情報の送信頻度は30分の1秒毎である。
このようにビデオゲーム装置100に対して送信される、周辺情報、或いはバトル進行情報は、ビデオゲーム装置100の表示装置121の表示画面122に表示するための、画像を生成するために用いられるものとなる。この画像の1フレーム時間は、上記したように30分の1秒であり、バトルサーバプロセスにより送信されるバトル進行情報は30分の1秒毎に送信されることから、バトル中において、表示画面122に表示される画像は、ほぼリアルタイムで生成され、表示されるものとなる。
一方、移動中において、ビデオゲーム装置100で操作されるプレイヤキャラクタ401の画像は、1フレーム時間毎に処理され、表示画面122に表示される画像がリアルタイムで生成され、表示されるものとなるが、ゾーンサーバ装置200から送信される周辺情報は、1.0秒毎に送信されるものとなっており、画像の1フレーム時間と比べて大きくずれている。そのため、移動中においては、表示画面122に表示するための画像の生成には、遅延表示処理を行うものとしている。
この遅延表示処理では、まず、ゾーンサーバ装置200から送信された周辺情報は、その送られてきた順番に周辺情報記憶バッファ(例えば、RAM105)に順次記憶されるものとなる。そして、これらゾーンサーバ装置200から送信され、ビデオゲーム装置100において受信・記憶された周辺情報のうち、リアルタイムで生成されるプレイヤキャラクタ401の画像に対して、1.0秒前に受信した周辺情報を基に画像を生成する。
つまり、ビデオゲーム装置100では、周辺情報を受信するタイミング(ゾーンサーバ装置200から送信されるタイミング)である1.0秒の遅延時間で、周辺情報によって生成された画像が表示画面122に表示されるものとなる。
また、1.0秒間隔での画像生成であるため、その1.0秒毎のタイミングにおいて、表示画面122に表示される画像の生成に用いられた周辺情報(以下、「過去の周辺情報」とする)と、そのタイミングで受信した周辺情報(以下、「現在の周辺情報」とする)との間のタイミングの周辺情報は受信されない。
このため、過去の周辺情報、及び現在の周辺情報から、その間の変化が滑らかになるように、その間の周辺情報の変化を30分の1秒毎の等間隔に分割して補間し、その30分の1秒毎に分割された周辺情報を基に、表示画面122に表示される画像を生成する。
以下、この実施の形態にかかるネットワークシステムを構成するゾーンサーバ装置200、バトルサーバ装置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を選択・決定(ステップS105)し、当該バトルサーバ装置300に対して、プロセス生成指示情報を送信する(ステップS106)。そして、ステップ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における、送信されたバトル終了情報に係るバトルに参加していたプレイヤキャラクタ401に登録された、バトルサーバプロセス情報608の内容を消去する(ステップS109)。そして、ステップS101の処理に戻る。
ステップS102において、受信した情報がバトルサーバプロセスによりバトルサーバ装置300から送信されたバトル周辺情報であった場合には、ゾーンサーバ装置200の制御部203は、フィールドキャラクタテーブル600のバトルサーバプロセス情報608において、当該バトルサーバプロセスを特定する情報が登録されているプレイヤキャラクタ401、及び敵キャラクタ402のレコードを、当該受信した情報の内容で更新する(ステップS110)。
また、そこにフィールドキャラクタテーブル600には存在しない新たな敵キャラクタ402の情報が含まれていれば、当該新たな敵キャラクタ402のテーブルを追加する。ステップS110の処理を終えれば、制御はステップS101の処理へと戻る。
ステップ101において、何れの情報も受信していないと判定されれば、ゾーンサーバ装置200の制御部203は、ゾーンサーバ装置200における処理の開始から、或いは、以前の1.0秒経過のときから、1.0秒が経過したかどうか判定する(ステップS111)。1.0秒経過していないと判定すれば、制御はステップS101の処理へと戻る。
ステップS111において、1.0秒経過したと判定されれば、ゾーンサーバ装置200の制御部203は、フィールドキャラクタテーブル600に登録されている全てのプレイヤキャラクタ401を操作するビデオゲーム装置100に、当該プレイヤキャラクタ401に応じた周辺情報を送信する(ステップS112)。そして、ステップS101の処理に戻る。
図13(a)は、バトルサーバ装置300において実行されるプロセス生成処理を示すフローチャートである。バトルサーバ装置300の制御部203は、ゾーンサーバ装置200から送信されたプロセス生成指示情報を受信したか否かを判定する(ステップS201)。
プロセス生成指示情報を受信すれば、バトルサーバ装置300の制御部203は、バトルサーバプロセスを生成・起動し(ステップS202)、BSV特定情報をゾーンサーバ装置200に送信する(ステップS203)。そして、ステップS201の処理に戻る。ステップS201において、プロセス生成指示情報を受信するまでは、ステップS201の処理を繰り返す。
続いて、図13(b)は、バトルサーバ装置300において実行されるバトルサーバプロセス処理を示すフローチャートである。まず、バトルサーバ装置300の制御部203は、プロセス生成指示情報に含まれる敵キャラクタ402の存在するエリア412についての情報を基に、敵キャラクタ組合せテーブル700から、当該バトルサーバプロセスで実行されるバトルの初期において参加させる敵キャラクタ402の組合せを決定し、当該バトルに参加するプレイヤキャラクタ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に登録されている敵キャラクタ402について、追加待ちフラグ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は、何らかの情報を受信したかどうかを判定する(ステップ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の処理に戻る。
ステップS302において、何らかの情報が受信されたと判定された場合には、制御部103は、さらにその受信した情報が何であるかを判定する(ステップS312)。
受信した情報が、ゾーンサーバ装置200から送信されたBSV特定情報であった場合には、制御部103は、バトルサーバプロセス特定情報810を当該BSV特定情報に含まれるバトルサーバプロセスに係る情報で更新し(ステップS313)、当該バトルサーバプロセスが起動されているバトルサーバ装置300に対して、接続要求情報を送信し(ステップS314)、ビデオゲーム装置100と当該バトルサーバプロセスは通信を確立する。そして、ステップ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の処理に戻る。
以上説明したように、この実施の形態にかかるオンラインゲームシステムは、ゾーンサーバ装置200を含むサーバ群250と、これらにネットワーク151を介して接続される複数のビデオゲーム装置100とを備え、ここで提供されるオンラインゲームは、各々のビデオゲーム装置100のプレイヤにより操作されるプレイヤキャラクタ401を含む複数のキャラクタを共通のフィールド400で動作させてゲームを進行させる。
このゲームの進行過程では、何れか1以上のプレイヤキャラクタ401をノンプレイヤキャラクタである敵キャラクタ402と闘わせるバトルが実行される。このバトルにおいては、当該バトルに参加するプレイヤキャラクタ401、および敵キャラクタ402のパラメータを30分の1秒毎にリアルタイムで更新させながら進めるため、その処理負荷は大きいものとなる。
このバトルは、当該バトルの開始前にプレイヤキャラクタ401を移動させていたフィールド400とは異なる仮想空間に移動することなく同じフィールド400上で行われるが、一般にバトル中はバトルを行っていないときに比べてプレイヤキャラクタ401及び敵キャラクタ402の動作や、パラメータの変化が大きいため、バトルを行うための処理負荷は、バトル以外のゲームを行うための処理負荷に比べて非常に大きいものとなる。
さらに、このオンラインゲームシステムでは、バトルの開始までフィールド400に存在していなかった敵キャラクタ402が、当該バトルで一時的に登場する敵キャラクタ402として追加されることがある。このようなバトルの開始により、敵キャラクタ402を追加するものとした場合、その追加した敵キャラクタの分だけ処理負荷がさらに増し、バトルを実行するために必要な処理負荷が極めて大きくなってしまう。予想される最大の処理負荷に対してオンラインゲームに参加できるプレイヤの数やゲームの内容を絞り込むと、ゲームの面白みが半減してしまう虞がある。
ここで、この実施の形態にかかるオンラインゲームシステムでは、複数のビデオゲーム装置100の各々にネットワーク151を介して接続可能に構成されるサーバ群250に、ゾーンサーバ装置200の他にバトルサーバ装置300を備えており、処理負荷の大きいバトルの実行は、このバトルサーバ装置300で実行されるバトルサーバプロセスによって制御されるものとなる。
このため、処理負荷が大きいバトルの実行をゾーンサーバ装置200が制御する必要がなくなり、ゾーンサーバ装置200にかかる処理負荷が大きくなりすぎない。これにより、提供されるオンラインゲームに参加できるプレイヤの数やプレイできるゲームの内容が、敵キャラクタ402の追加があるバトルの実行によってあまり制限されないようにすることができる。
また、バトルで30分の1秒毎に更新されるプレイヤキャラクタ401、及び敵キャラクタ402のパラメータをゾーンサーバ装置200で管理しなくてよいため、ゾーンサーバ装置200にかかる処理負荷がさらに小さくなる。これにより、提供されるオンラインゲームに参加できるプレイヤの数やプレイできるゲームの内容に対しての制限を小さくすることができる。
ところで、ゾーンサーバ装置は、フィールド400において動作している複数のプレイヤキャラクタ401、敵キャラクタ402の各々の状態を管理するが、バトルサーバ装置300は、バトルを行っているプレイヤキャラクタ401、及び敵キャラクタ402の状態を管理し、ここで管理されている状態には、バトルで30分の1秒毎に更新されるパラメータも管理される。
しかしながら、バトルを行うプレイヤキャラクタ401とバトルを行わないプレイヤキャラクタ401とが存在する場合には、バトルを完全に切り分けてバトルサーバ装置300に実行させてしまうと、バトルサーバ装置300で実行されるバトルサーバプロセスの制御下にないバトルを行わないプレイヤキャラクタ401を操作するプレイヤは、自己のビデオゲーム装置100の表示画面122では、当該バトルの進行が全く分からなくなってしまうことになる。
これに対して、この実施の形態にかかるオンラインゲームシステムにおいては、バトルサーバプロセスにおいて管理されているプレイヤキャラクタ401、及び敵キャラクタ402の状態と、バトルサーバプロセスにおいて処理されたバトルの進行処理の結果とに応じて生成されたバトル周辺情報が当該バトルサーバプロセスを実行するバトルサーバ装置300からゾーンサーバ装置200に送信され、ゾーンサーバ装置200で管理する各キャラクタの状態は、このバトル周辺情報によっても更新される(つまり、バトルの進行が反映されている)。
そして、バトルを行っていないプレイヤキャラクタ401に対応したビデオゲーム装置100には、バトルの進行処理の結果が反映された周辺情報が送信され、これに基づいてゲームの表示画像が生成される。このため、各ビデオゲーム装置のプレイヤは、自分のプレイヤキャラクタ401をバトルに参加させていなくても、他のプレイヤのプレイヤキャラクタ401により行われているバトルの進行を、ビデオゲーム装置100の表示画面122で確認することができるものとなる。
また、各ビデオゲーム装置100に対して、ゾーンサーバ装置200は周辺情報を1.0秒の間隔で送信し、一方、バトル行うプレイヤキャラクタ401に対応したビデオゲーム装置100に対しては、当該バトルのバトルサーバプロセスを実行しているバトルサーバ装置300は、そこで管理するプレイヤキャラクタ401、及び敵キャラクタ402の状態と、バトルサーバプロセスにおいて処理されたバトルの進行処理の結果とに応じて生成するバトル進行情報をするものである。
このため、バトルの進行を制御していないゾーンサーバ装置200は、バトルの進行を制御するバトルサーバプロセスを実行するバトルサーバ装置300よりも長い時間間隔で周辺情報を送信すればよいため、周辺情報の送信のための処理負荷を小さくすることができるものとなる。提供されるオンラインゲームに参加できるプレイヤの数やプレイできるゲームの内容に対しての制限をさらに小さくすることができる。
そして、ビデオゲーム装置100では、ゾーンサーバ装置200から1.0秒毎に送信された周辺情報のうち、過去の周辺情報、及び現在の周辺情報から、その間の周辺情報の変化を30分の1秒毎の等間隔に分割して補間し、その30分の1秒毎に分割された周辺情報を基に、表示画面122に表示される画像を生成する。
こうすることで、ビデオゲーム装置100では、周辺情報の受信間隔に応じて補間画面を生成し、順次、表示画面122に表示させていくため、バトル以外のゲームの表示画像も滑らかに変化して表示されるようにすることができる。
また、バトルサーバ装置300で実行されるバトルサーバプロセスは、バトル毎に、当該バトルを行っている各プレイヤキャラクタ401、敵キャラクタ402の状態(フィールド400上の位置だけではなく、バトルの実行に必要なパラメータなどを含む)を管理しているが、これを参照して当該バトルを行っている全てのプレイヤキャラクタ401、及び敵キャラクタ402の位置を含むバトル周辺情報を生成し、ゾーンサーバ装置200に送信するものとしている。
一方、ゾーンサーバ装置200は、フィールド400を移動している複数のプレイヤキャラクタ401の各々の位置をフィールドキャラクタテーブル600で管理するだけではなく、バトルだけに登場している敵キャラクタ402のフィールド400における位置も当該フィールドキャラクタテーブル600で管理するものとしている。これによって管理される各キャラクタの位置は、バトルサーバ装置300から送信されるバトル周辺情報に基づいて更新される。
ゾーンサーバ装置200は、バトルを行っていないプレイヤキャラクタ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からビデオゲーム装置100に対して送信される周辺情報には、パラメータC、Dにかかる情報が含まれない。
これにより、ゾーンサーバ装置200から送信する周辺情報の情報量を抑えることができ、周辺情報の送信のための処理負荷を小さくすることができるものとなる。一方で、パラメータC、Dにかかる情報を含まない周辺情報を受信するのは、バトルを行っていないプレイヤキャラクタ401のビデオゲーム装置100であるため、パラメータC、Dの値が如何になっていようとも、当該プレイヤキャラクタ401のゲームの進行への影響は生じない。
その一方で、バトルサーバ装置300からゾーンサーバ装置200に対して、パラメータC、Dにかかる情報を含まないバトル周辺情報が送信され、バトルの進行処理の結果によって、ゾーンサーバ装置200で管理される各キャラクタの状態が送信されるので、それによって生成し、送信される周辺情報により、バトル以外の進行だけでなく、バトルの進行をもビデオゲーム装置100の表示画面122において確認することには問題が生じないものとなる。
ここで、バトルにおいてのみ追加された敵キャラクタ402は、バトルを行うキャラクタであるので、ゾーンサーバ装置200ではなく、バトルサーバ装置300に動作を制御させるものである。このため、オンラインゲームの全体として存在する敵キャラクタ402の数を多くしても、ゾーンサーバ装置200が直接的に動作を制御しなくてはならない敵キャラクタ402の数を抑えることができるので、ゾーンサーバ装置200の処理負荷を抑えることができるものとなる。
また、バトルで追加される敵キャラクタ402は、フィールド400のどのエリアにおいて敵キャラクタ402とバトルを行うかで、当該追加される敵キャラクタ402の種類および/または数が決定されるものである。
この場合、エリア毎に行われるバトルにおいて、追加する敵キャラクタ402の種類および/または数が異なることとなるため、バトルのバリエーションが増え、同じプレイヤがバトルを行う回数を重ねるに従ってバトルの面白みが下がってきてしまうのを防ぐことができる。
また、追加の敵キャラクタ402は、バトルの開始時で出現してくるだけではなく、バトルの開始後のタイミングで登場してくることもあるため、バトルのバリエーションが増え、同じプレイヤがバトルを行う回数を重ねるに従って、バトルの面白みが下がって来てしまうのを防ぐことができる。
本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形態様について説明する。
上記の実施の形態では、実行中のバトルに参加するための、バトル意志行動は、バトル中のプレイヤキャラクタ402に対しての回復魔法の実行であったが、バトル意志行動は敵キャラクタ402に対する攻撃を行うことによって行ってもよく、また、当該バトルを行っている敵キャラクタ402に接近すること等によって行ってもよい。
また、バトルの開始に当たって行うバトル意志行動も、フィールド400に存在する敵キャラクタ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から送信される周辺情報から得られる表示に限られていた。
これに対して、移動中のプレイヤキャラクタ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の受信するバトル周辺情報、ゾーンサーバ装置200から送信する周辺情報をより少なくすることができ、ゾーンサーバ装置200への負担を少なくすることができるようになる。
上記の実施の形態では、どのバトルサーバ装置300でバトルサーバプロセスを生成・起動させるかは、ゾーンサーバ装置200の管理するプロセス起動管理テーブル610において、バトルサーバ装置300のバトルサーバプロセスの起動数で管理されるものとしていた。
もっとも、本発明はこれに限らず、バトルサーバプロセスがバトルサーバ装置300にかける負荷の情報を当該バトルサーバプロセスから送信されるバトル周辺情報の情報量から求める負荷によって、新たにバトルサーバプロセスを生成・起動するバトルサーバ装置300を選択するようにしてもよい。
または、バトルサーバプロセスから、特別に負荷量を求めた情報として負荷の情報を得る ものとし、その負荷によって、新たにバトルサーバプロセスを生成・起動するバトルサーバ装置300を選択するようにしてもよい。
これによって、バトルサーバプロセスの起動数からだけでは見えてこない流動的なバトル進行の処理負荷によって、バトルサーバプロセスの生成・起動を管理することができ、バトルサーバプロセスを生成・起動させる、より効率的なバトルサーバ装置300の選択が可能となる。
上記の実施の形態では、バトルに参加させる敵キャラクタ402の組合せは、バトル開始の際に、ゾーンサーバ装置200からバトルサーバ装置300に対して送信された、プロセス生成指示情報に含まれる敵キャラクタ402の存在するエリア412についての情報を基に、当該バトルサーバ装置300が決定するものとしていた。本発明はこれに限らず、バトル開始の際に決定される当該バトルに参加させる敵キャラクタ402の組合せを、当該ゾーンサーバ装置200が決定するようにしてもよい。
この場合に、バトルに参加する敵キャラクタ402の組合せを決定する際に参照される敵キャラクタ組合せテーブル700が、ゾーンサーバ装置200において記憶されるものとしてもよい。このとき、バトルに参加する敵キャラクタ402の組合せがゾーンサーバ装置200で決定されるので、プロセス生成指示情報には、敵キャラクタ402の存在するエリア412についての情報は含ませず、プレイヤキャラクタ401と、敵キャラクタ402と、バトルに参加させる敵キャラクタ402とに係る情報(各々のキャラクタ毎にゾーンサーバ装置200で管理されているID、種類等の情報)をバトルサーバ装置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から送信される周辺情報の送信タイミングは、1.0秒毎となっていたが、それよりも長い間隔の送信タイミングで送信されるものであってもよい。また、これをバトルサーバプロセスによりバトルサーバ装置300から送信されるバトル進行情報を送信するタイミングと同様に、30分の1秒毎のタイミングで送信するようにしてもよい。
これによって、ビデオゲーム装置100の表示装置121の表示画面122における、1フレーム時間とのタイミングのズレは解消されるものとなり、当該ビデオゲーム装置100で操作されるプレイヤキャラクタ401の外見・位置のリアルタイムの変化に併せて周辺情報に係る画像も生成できるようになる。
また、バトルサーバ装置300から送信されるバトル周辺情報の送信タイミングは、0.5秒毎となっていたが、これをビデオゲーム装置100へとバトル進行情報を送信するタイミングである30分の1秒毎の送信タイミングで送るようにしてもよい。また、このようなゾーンサーバ装置200から送信される周辺情報、バトルサーバ装置300から送信されるバトル進行情報、及びバトル周辺情報の送信タイミングは等間隔でなくてもよい。また、ビデオゲーム装置100からデータが送信されるタイミングも等間隔でなくてもよく、例えば、プレイヤからの入力があったときのみ送信されるものであってもよい。
上記の実施の形態では、各々のビデオゲーム装置100に、ゾーンサーバ装置200から周辺情報が送信されるタイミングは1.0秒毎であるのに対し、バトルサーバ装置300からバトル進行情報が送信されるタイミングは30分の1秒毎であった。そのため、ビデオゲーム装置100では、ゾーンサーバ装置200から送信される周辺情報を基に遅延表示処理を行い、バトルサーバ装置300から送信されるバトル進行情報をもとにリアルタイムで表示画面122に表示する画像の表示処理を行うものであった。
本発明では、バトルサーバ装置300からバトル進行情報が送信される頻度は、ゾーンサーバ装置200から周辺情報が送信される頻度よりも多いものであり、かつバトル進行のリアルタイム性を妨げない程度のものであれば、これに限るものではない。また、バトルサーバ装置300からバトル進行情報が送信される頻度によっては、表示画面122に表示する動画像に対して、プレイヤが違和感を感じさせないために、当該プレイヤのビデオゲーム装置100において、移動中の表示処理として行っていた遅延表示処理を、バトル中の表示処理においても同様に行うようにしてもよい。
上記の実施の形態では、プレイヤキャラクタ401は、バトルにおいて敵キャラクタ402を相手としてバトルを行い、倒すものとしていたが、これに加え、またはこれに代えて、プレイヤキャラクタ401同士のバトルを行うようにしてもよい。この場合、バトルを開始することになる複数のプレイヤキャラクタ401を操作するビデオゲーム装置100に対して、図9(d)の第4段階目において、ゾーンサーバ装置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、及びバトルサーバ装置300のプログラム及びデータについても同様である。
上記の実施の形態では、ゾーンサーバ装置200、2台のバトルサーバ装置300、及びゲーム外サーバ装置350をサーバ群250としている、これらの距離関係について特に述べていないが、これらは互いに遠隔地(同じ建物に存在しない、又は異なる地域、国に存在する等)に存在させるようにしてもよい。
また、ビデオゲーム装置100について、バトルサーバプロセスを管理できるだけの十分の処理能力であれば、バトルサーバ装置300の代わりに当該ビデオゲーム装置100において、当該ビデオゲーム装置100で操作されるプレイヤキャラクタ401のバトルに係るバトルサーバプロセスを管理するようにしてもよい。
[付記]
[1] 本発明の少なくとも1つの実施形態の目的は、オンラインゲーム全体の進行を管理するサーバ装置に多大な負荷をかけることがないオンラインゲームシステム等を提供することを目的とする。
[2] 上記目的を達成するため、本発明の第1の観点にかかるオンラインゲームシステムは、主サーバ装置と、該主サーバ装置に通信回線を介して接続されるとともにゲームの表示画面を表示する表示装置を有する複数のクライアント装置とを備え、各々のクライアント装置のプレイヤにより操作されるプレイヤキャラクタを含む複数のキャラクタを共通のフィールドで移動させてゲームを進行させるとともに、当該フィールドと異なるマップに移行することなく何れか1以上のプレイヤキャラクタがノンプレイヤキャラクタである敵キャラクタと闘わせるバトルをゲームの進行過程において行うオンラインゲームを提供するオンラインゲームシステムであって、前記主サーバ装置と前記複数のクライアント装置の各々に通信回線を介して接続可能に構成されるとともに、前記オンラインゲームのうちの前記バトルを制御するバトルサーバ装置をさらに備え、前記バトルは、該バトルの開始前まで前記フィールドに存在していなかったノンプレイヤキャラクタが当該バトルで一時的に登場する敵キャラクタとして追加されるものであり、前記複数のクライアント装置の各々は、当該クライアント装置のプレイヤにより操作されるプレイヤキャラクタに対する前記フィールド上での移動を含む指令を入力する指令入力手段と、当該クライアント装置のプレイヤにより操作されるプレイヤキャラクタにより前記バトルが行われていないときに、前記指令入力手段から入力された指令に応じた情報を前記主サーバ装置に送信するとともに、該主サーバ装置から定期的に送信されるバトル外ゲーム情報を受信し、該受信したバトル外ゲーム情報に基づいてゲームの表示画面を生成して前記表示装置に表示させるバトル外画面表示手段と、当該クライアント装置のプレイヤにより操作されるプレイヤキャラクタが前記バトルを行う所定の条件が成立したときに、該バトルを行うべく前記バトルサーバ装置に接続するバトルサーバ接続手段と、前記バトルサーバ接続手段により前記バトルサーバ装置に接続されて当該クライアント装置のプレイヤにより操作されるプレイヤキャラクタにより前記バトルが行われているときに、前記指令入力手段から入力された指令に応じた情報を前記バトルサーバ装置に送信するとともに、該バトルサーバ装置から定期的に送信されるバトル情報を受信し、該受信したバトル情報に基づいてゲームの表示画面を生成して前記表示装置に表示させるバトル画面表示手段とを備え、前記主サーバ装置は、前記バトルのみに登場し得る敵キャラクタ以外の前記フィールドを移動する前記複数のキャラクタの各々についての該フィールドにおける位置を、各々のキャラクタが前記バトルを行っているかどうかに関わらずに管理する通常キャラクタ位置管理手段と、前記バトルを行っていないプレイヤキャラクタに対応するクライアント装置から送信された前記指令入力手段から入力された指令に応じた情報を受信し、該受信した指令に応じた情報に応じて前記通常キャラクタ位置管理手段で管理されている各プレイヤキャラクタの位置を更新するバトル外ゲーム更新手段と、前記通常キャラクタ位置管理手段を定期的に参照して、前記フィールド上に存在する各キャラクタの位置を示すバトル外ゲーム情報を生成し、該生成したバトル外ゲーム情報を少なくとも前記バトルを行っていないプレイヤキャラクタに対応したクライアント装置に送信するバトル外ゲーム情報送信手段とを備え、前記バトルサーバ装置は、前記バトルの開始前までに前記フィールドに存在していたキャラクタのうちの当該バトルを行うキャラクタと、当該バトルで追加された敵キャラクタの双方を含む各キャラクタに関する前記フィールド上における位置を含む状態を管理するバトル管理手段と、前記バトルサーバ接続手段により接続されているクライアント装置から送信された前記指令入力手段から入力された指令に応じた情報を受信し、該受信した指令に応じた情報に基づいて前記バトルを行うプレイヤキャラクタと敵キャラクタとを闘わせた結果により前記バトル管理手段により管理されている各キャラクタの前記フィールド上における位置を含む状態を更新するバトル実行手段と、前記バトル管理手段により管理されている各キャラクタの状態と前記バトル実行手段によりプレイヤキャラクタと敵キャラクタとを闘わせた結果とに応じて前記バトル情報を生成し、該生成したバトル情報を前記バトルサーバ接続手段により接続されているクライアント装置に送信するバトル情報送信手段とを備えることを特徴とする。
[3] 上記オンラインゲームシステムは、主サーバ装置と、該主サーバ装置に通信回線を介して接続される複数のクライアント装置とを備え、ここで提供されるオンラインゲームは、各々のクライアント装置のプレイヤにより操作されるプレイヤキャラクタを含む複数のキャラクタを共通のフィールドで動作させてゲームを進行させる。また、このゲームの進行過程では、何れか1以上のプレイヤキャラクタをノンプレイヤキャラクタである敵キャラクタと闘わせるバトルが実行される。
[4] このバトルは、当該バトルの開始前にプレイヤキャラクタを移動させていたフィールドとは異なるマップに移行することなく同じフィールド上で行われるが、一般にバトル中はバトル外に比べてキャラクタの動作やパラメータの変化が大きいため、バトルを行うための処理負荷は、バトル以外のゲームを行うための処理負荷に比べて非常に大きいものとなる。
[5] さらに、上記オンラインゲームシステムでは、バトルの開始までフィールドに存在していなかったノンプレイヤキャラクタが当該バトルで一時的に登場する敵キャラクタとして追加されることがある。このようにバトルの開始により敵キャラクタとして新たなノンプレイヤキャラクタを追加するものとした場合、その追加した敵キャラクタの分だけ処理負荷がさらに増し、バトルを実行するために必要な処理負荷が極めて大きくなってしまう。予想される最大の処理負荷に対してオンラインゲームに参加できるプレイヤの数やゲームの内容を絞り込むと、ゲームの面白みが半減してしまう虞がある。
[6] ここで、上記オンラインゲームシステムでは、主サーバ装置と複数のクライアント装置の各々に通信回線を介して接続可能に構成される副サーバ装置も備えており、処理負荷の大きいバトルの実行は、この副サーバ装置によって制御されるものとなる。このため、処理負荷が大きいバトルの実行を主サーバ装置が制御する必要がなくなり、主サーバ装置にかかる処理負荷が大きくなりすぎない。これにより、提供されるオンラインゲームに参加できるプレイヤの数やプレイできるゲームの内容が、敵キャラクタの追加があるバトルの実行によってあまり制限されないようにすることができる。
[7] 上記オンラインゲームシステムにおいて、前記バトルサーバ装置は、前記バトル管理手段を定期的に参照して、前記バトルを行っている全てのキャラクタの位置を含むバトル位置情報を生成し、該生成したバトル位置情報を前記主サーバ装置に送信するバトル位置情報送信手段をさらに備え、前記主サーバ装置は、前記バトルサーバ装置により現時点で実行されているバトルに登場している敵キャラクタの前記フィールドにおける位置を管理する拡張キャラクタ位置管理手段と、前記バトルサーバ装置において前記バトルが実行されているときに、前記バトル位置情報送信手段から送信された前記バトル位置情報を受信し、該受信したバトル位置情報に基づいて、前記通常キャラクタ位置管理手段で管理されている各々のキャラクタの前記フィールドにおける位置と前記拡張キャラクタ位置管理手段で管理されている敵キャラクタの前記フィールドにおける位置とを更新するバトル更新手段とをさらに備え、前記バトル外ゲーム情報送信手段は、前記拡張キャラクタ位置管理手段も定期的に参照して、前記バトルサーバ装置により現時点で実行されているバトルに登場している敵キャラクタを含む前記フィールド上に存在する各キャラクタの位置を示すバトル外ゲーム情報を生成するものとしてもよい。
[8] 副サーバ装置は、バトルを行っている各キャラクタの状態(フィールド上の位置だけではなく、バトルの実行に必要なパラメータなどを含む)を管理しているが、これを参照してバトルを行っている全てのキャラクタの位置を含むバトル位置情報を生成し、主サーバ装置に送信するものとしている。一方、主サーバ装置は、フィールドを移動している複数のキャラクタの各々の位置を通常キャラクタ位置管理手段で管理するだけではなく、バトルだけに登場している敵キャラクタのフィールドにおける位置も拡張キャラクタ位置管理手段で管理するものとしている。これらで管理される各キャラクタの位置は、副サーバ装置からのバトル位置情報に基づいて更新される。
[9] 主サーバ装置は、バトルを行っていないプレイヤキャラクタに対応したクライアント装置にバトル外ゲーム情報を送信し、これにより生成されるゲームの表示画面を表示装置に表示させるものとしているが、バトル外ゲーム情報には、当該クライアント装置のプレイヤキャラクタが行っていないバトルにのみ登場している敵キャラクタの位置も含まれている。つまり、自己のプレイヤキャラクタにバトルを行わせていないプレイヤも、他のプレイヤキャラクタが敵キャラクタと行っているバトルを見ることができ、さらに当該バトルでのみ追加されたキャラクタも見ることができる。
[10] これにより、各クライアント装置のプレイヤは、自分のプレイヤキャラクタをバトルに参加させていなくても、他のプレイヤのプレイヤキャラクタにより行われているバトルの進行をゲームの表示画面で確認することができるものとなる。従って、副サーバ装置の制御下にないバトルを行わないプレイヤキャラクタを操作するプレイヤが、バトルを行っている他のプレイヤキャラクタの位置を見失ってしまったり、自己は直接には参加していないもののゲームの一部であるバトルで何が行われているか全く分からないということになってしまうことを防ぐことができる。
[11] 上記オンラインゲームシステムにおいて、前記主サーバ装置は、前記複数のクライアント装置の何れかに対応したプレイヤキャラクタについて前記バトルを行う所定の条件が成立したときに、該バトルの開始前まで前記フィールドに存在していなかったノンプレイヤキャラクタを当該バトルで一時的に登場する敵キャラクタとして追加することを決定し、該追加することを決定した敵キャラクタに関する情報を前記バトルサーバ装置に通知する追加キャラクタ決定手段をさらに備えるようにしてもよい。
[12] 上記オンラインゲームシステムにおいて、前記バトルサーバ装置は、前記複数のクライアント装置の何れかが前記バトルサーバ接続手段により接続されて前記バトルが開始することとなるときに、該バトルの開始前まで前記フィールドに存在していなかったノンプレイヤキャラクタを当該バトルで一時的に登場する敵キャラクタとして追加することを決定する追加キャラクタ決定手段をさらに備えるようにしてもよい。
[13] 上記オンラインゲームシステムにおいて、前記追加キャラクタ決定手段は、前記バトルに追加する敵キャラクタの種類および/または数を決定するものとしてもよい。
[14] この場合、バトル毎に当該バトルに追加する敵キャラクタの種類および/または数が異なることとなるため、バトルのバリエーションが増え、同じプレイヤがバトルを行う回数を重ねるに従ってバトルの面白みが下がってきてしまうのを防ぐことができる。
[15] この場合において、前記追加キャラクタ決定手段は、前記バトルに追加可能な敵キャラクタのうちから任意に敵キャラクタを選択して当該バトルに参加する敵キャラクタとして決定する任意追加決定手段と、前記バトルに追加可能な敵キャラクタのうちから所定の規則に従って敵キャラクタを選択して当該バトルに参加する敵キャラクタとして決定する規則追加決定手段と、前記任意追加決定手段の決定により敵キャラクタを追加させるか前記規則追加決定手段の決定により敵キャラクタを追加させるかを決定する追加手法決定手段を含むものとすることができる。
[16] ここで、前記任意追加決定手段は、予め定められた最小数から最大数までの範囲内でランダムに当該バトルに追加する敵キャラクタの数を決定し、2以上の敵キャラクタを追加することを決定した場合には、該追加することを決定した2以上の敵キャラクタの各々について種類を決定するものとすることができる。また、前記規則追加決定手段は、前記所定の規則に従った種類及び数の敵キャラクタを追加することを決定するものとすることができる。
[17] 上記オンラインゲームシステムにおいて、前記追加キャラクタ決定手段は、前記バトルへの追加が決定された敵キャラクタを当該バトルで登場させるタイミングを決定する追加タイミング決定手段を含み、前記バトル実行手段は、前記追加タイミング決定手段により決定されたタイミングで、前記バトルへの追加が決定された敵キャラクタを当該バトルに登場させる(前記拡張キャラクタ位置管理手段を備える場合には、さらに該拡張キャラクタ位置管理手段に管理させる)ものとしてもよい。
[18] この場合、追加の敵キャラクタは、バトルの開始時で登場してくるだけではなく、バトルの開始後も様々なタイミングで登場してくることとなるため、バトルのバリエーションが増え、同じプレイヤがバトルを行う回数を重ねるに従ってバトルの面白みが下がってきてしまうのを防ぐことができる。
[19] ここで、前記追加タイミング決定手段は、前記バトルへの追加が決定された敵キャラクタが複数存在する場合には、該複数の敵キャラクタ毎に当該バトルに追加するタイミングを決定するものとすることができる。また、前記追加タイミング決定手段は、前記バトルへの追加が決定された敵キャラクタを追加するタイミングとして、当該バトルが開始されたタイミングを決定することも、当該バトルが開始されたタイミングよりも後のタイミングを決定することもできる。後者の場合は、当該バトルの開始からの経過時間を敵キャラクタを追加するタイミングとして決定するものとしても、当該バトルの進行状況が所定の状況(例えば、先に登場していた敵キャラクタが倒された)となったタイミングを敵キャラクタを追加するタイミングとして決定するものとしてもよい。
[20] 上記オンラインゲームシステムにおいて、前記複数のクライアント装置の各々は、当該クライアント装置のプレイヤにより操作されるプレイヤキャラクタについて他の何れかのプレイヤキャラクタが現時点で行っているバトルへの参加条件が成立したときに、該バトルに当該プレイヤキャラクタを参加させるべく前記バトルサーバ装置に接続する第2のバトルサーバ接続手段をさらに備え、前記バトルは、当該バトルに新たなプレイヤキャラクタが参加するときに、該新たなプレイヤキャラクタの参加まで前記フィールドに存在していなかったノンプレイヤキャラクタが当該バトルで一時的に登場する敵キャラクタとしてさらに追加されるものとすることができる。
[21] ここでは、あるプレイヤキャラクタが既に行っているバトルに、他のプレイヤキャラクタが後から参加することができるものとなるが、他のプレイヤキャラクタが参加して敵キャラクタと闘うプレイヤキャラクタの数が増えると、ここでも追加して登場する敵キャラクタが決定されるものとなる。これにより、敵キャラクタの数に対して圧倒的にプレイヤキャラクタの数が多くなって相対的にバトルの難易度が酷く低下してしまうという事態を防ぐことができるものとなる。
[22] 上記オンラインゲームシステムにおいて、前記バトル外ゲーム情報送信手段は、前記複数のクライアント装置の各々で前記表示装置に表示される表示画面を複数の所定数だけ生成する時間間隔に応じた長期時間間隔で、少なくとも前記バトルを行っていないプレイヤキャラクタに対応したクライアント装置に対して前記バトル外ゲーム情報を送信し、前記バトル情報送信手段は、前記長期時間間隔よりも短い短期時間間隔で、前記バトルサーバ接続手段により接続されているクライアント装置に対して前記バトル情報を送信し、前記バトル外画面表示手段は、前記バトル外ゲーム情報を受信してからの前記長期時間間隔に応じた期間において、前回バトル外ゲーム情報に応じた表示画面より後から今回のバトル外ゲーム情報に応じた表示画面よりも前までを補完する補間画面を順次生成し、該生成した補間画面から前記バトル外ゲーム情報に応じた表示画面まで順次前記表示装置に表示させ、前記バトル画面表示手段は、前記バトル情報を受信して該受信したバトル情報に応じた表示画面を生成し、該生成した表示画面を前記表示装置に表示させるものとしてもよい。
[23] この場合、バトル以外のゲームの実行を制御する主サーバ装置は、バトルの実行を制御する副サーバ装置よりも長い時間間隔でバトル外ゲーム情報を送信すればよいため、バトル外ゲーム情報の送信のための処理負荷を小さくすることができるものとなる。提供されるオンラインゲームに参加できるプレイヤの数やプレイできるゲームの内容に対しての制限をさらに小さくすることができる。一方、クライアント装置では、バトル外ゲーム情報の受信間隔に応じて補間画面を生成し、順位表示装置に表示させていくため、バトル以外のゲームの表示画面も滑らかに変化して表示されるようにすることができる。
[24] なお、前記バトル情報送信手段は、前記バトルサーバ接続手段により接続されているクライアント装置に対しては前記短期時間間隔で前記バトル情報を送信するが、前記バトル位置情報送信手段は、前記主サーバ装置に対しては前記短期時間間隔よりも長い時間間隔(前記長期時間間隔としてもよい)で前記バトル位置情報を送信するものとすることができる。もっとも、前記バトル位置情報送信手段は、前記主サーバ装置に対しても前記短期時間間隔で前記バトル位置情報を送信するものとしてもよい。