ネットワークゲームシステム
【課題】 特定のコンピュータに処理負荷が集中することがなく、各プレイヤが快適にゲームをプレイすることのできるネットワークゲームシステムを提供すること。
【解決手段】 ゲーム装置20は、プレイヤがプレイしようとしているエリアを示すエリア情報を含んだ要求信号を中央管理サーバ10に送信する。中央管理サーバ10は、この要求信号が示すエリアのゲーム処理を実行しているエリアサーバがすでに存在しているかどうかを判断し、このエリアに対応するエリアサーバがすでに存在している場合には、要求信号の発信元のゲーム装置20をそのエリアサーバの制御下で動作するエリアクライアントとして動作させる。一方、このエリアに対応するエリアサーバが存在していない場合には、このゲーム装置20を、このエリアのゲーム処理を実行するエリアサーバとして動作させる。
【解決手段】 ゲーム装置20は、プレイヤがプレイしようとしているエリアを示すエリア情報を含んだ要求信号を中央管理サーバ10に送信する。中央管理サーバ10は、この要求信号が示すエリアのゲーム処理を実行しているエリアサーバがすでに存在しているかどうかを判断し、このエリアに対応するエリアサーバがすでに存在している場合には、要求信号の発信元のゲーム装置20をそのエリアサーバの制御下で動作するエリアクライアントとして動作させる。一方、このエリアに対応するエリアサーバが存在していない場合には、このゲーム装置20を、このエリアのゲーム処理を実行するエリアサーバとして動作させる。
【発明の詳細な説明】
【技術分野】
【0001】
この発明はネットワークゲームシステムに関し、特に複数のエリアで構成された仮想ゲーム世界で複数のプレイヤが同時にゲームをプレイすることのできるネットワークゲームシステムに関する。
【背景技術】
【0002】
従来、ネットワークゲームシステムには大別してロビー型とサーバ型の2種類が存在する。
【0003】
ロビー型ネットワークゲームシステムは、ロビーと呼ばれるチャットルームにてゲーム難易度や目的地を同じくするプレイヤを募り、限られた数の複数のプレイヤ(通常4〜8人程度)でゲームを行うものである。ロビー型ネットワークゲームシステムの場合、ゲーム開始後はサーバすなわちロビー(或いはチャットルーム)と各プレイヤとのネットワーク接続が切り離されるので、サーバの負担が軽く、少ないサーバで大人数のプレイヤ(数十万人)にゲームサービスを提供できるというメリットがあった。
【0004】
一方、サーバ型ネットワークゲームシステムは即時にゲームを開始でき、またゲーム内でどんなプレイヤと出会えるか分からないという緊張感のあるゲームサービスを提供できるというメリットがあった。またサーバと常に通信しながらゲームが行われるためチートされにくいというメリットがあった。
【0005】
また、特許文献1に記載の技術では、クライアントとサーバからなるネットワークゲームシステムの一例が開示されており、特にロビー型の技術について述べられている。すなわち、プレイヤはサーバから送られてくるプレイゾーンの情報に基づいて、自分がプレイしたいロビーに接続して、ゲームプレイに参加することができる。
【0006】
また、特許文献2に記載の技術では、クライアントとサーバからなるネットワークシステムにおいて、クライアントからの要求に応じて処理を行うサーバの機能もクライアント側に持たせておく。こうして、処理負荷が所定の数値に達するまでは、所定のサーバ処理を行っているクライアントに他のクライアントを接続して、処理負荷の分散を行うネットワークシステムが開示されている。
【特許文献1】特開2003−88684号公報
【特許文献2】特開2001−84232号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
ところが、ロビー型ネットワークゲームシステムの場合、ロビーにてプレイヤを募るのに時間がかかり、なかなかゲームを開始できないというデメリットがあった。また、別の難易度や別の目的地でゲームを行いたいときは、一旦ゲームを終了し、再度ロビーでプレイヤを募りなおさなければならないという問題があった。さらに、ユーザ端末はサーバとは切り離されてゲームを行うため、いんちきプレイ(いわゆるチート)が簡単に行われてしまうというデメリットがあった。
【0008】
また、サーバ型ネットワークゲームシステムは、全プレイヤがサーバと同時に通信しながらゲームが行われるためサーバの負担が極めて重く、1つのサーバに同時にログインできるユーザは数千人に限られてしまうというデメリットがあった。数十万人にゲームサービスを提供しようとすると数百台のサーバを用意しなければならず、莫大なコストが必要であるというデメリットがあった。さらに、ひとつのエリアで同時にプレイできる人数が限られ、同一画面内の所定人数(数十名程度)を超えると互いの通信トラフィックが階乗的に増加し、ゲームが非常に重くなるという問題があった。
【0009】
また、特許文献1に記載の技術では、プレイヤの嗜好に合ったネットワークゲームをプレイすることができるが、ロビーやプレイエリアなどに応じて多くのサーバを設置しなければならず、一度に多くのアクセスが集中すると、トラフィックの増大に伴うネットワークシステムの不具合が発生する恐れがある上、レスポンスも悪くなる。それ故、ゲームに参加できる人数も制限されることになる。
【0010】
また、一方特許文献2に記載の技術では、処理負荷は分散されるが、クライアントの接続先は、単に処理負荷のみに基づいて選択されてしまう。そのため、このシステムをネットワークゲームシステムに適用すると、プレイヤの嗜好に応じたゲームプレイを行うことができない。
【0011】
それゆえに本発明の目的は、プレイヤ数が大きく増加しても特定のコンピュータに処理負荷が集中することがなく、なおかつゲームプレイ開始時の手続等の煩わしさもなく、各プレイヤがより快適にゲームをプレイすることのできるネットワークゲームシステムを提供することである。
【0012】
また、本発明の他の目的は、各プレイヤが、自分の希望に合った条件でゲームをプレイすることができるネットワークゲームシステムを提供することである。
【課題を解決するための手段】
【0013】
上記課題を解決するために、本発明は以下の構成を採用した。なお、括弧内の参照符号および図番号は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【0014】
本発明の第1のネットワークゲームシステムは、複数のエリア(図4)で構成された仮想ゲーム世界で複数のプレイヤが同時にゲームをプレイすることのできるネットワークゲームシステムである。このネットワークゲームシステムは、少なくとも一つの中央管理サーバ(10)と、当該中央管理サーバとネットワークを介して通信可能であって、各エリアのゲーム処理を担うエリアサーバとしての機能と、エリアサーバと通信してエリアサーバの制御下で動作するエリアクライアントとしての機能を併せ持った複数のゲーム装置(20)とで構成される。
【0015】
ゲーム装置は、要求手段(32、S12)と、動作制御手段(32、S20、S26)とを備える。要求手段は、プレイヤがプレイしようとするエリアを示すエリア情報を少なくとも含む要求信号を生成して前記中央管理サーバに送信する手段である。動作制御手段は、記要求信号に対する前記中央管理サーバからの応答信号に応じて、プレイヤがプレイしようとするエリアのエリアクライアントもしくはエリアサーバとしてゲーム装置を動作させる手段である。
【0016】
中央管理サーバは、エリアサーバ検索手段(演算装置、S34)と、役割決定手段(演算装置、S36)と、応答手段(演算装置、S38、S42)と、データ管理手段(演算装置、S40、S44)とを備える。エリアサーバ検索手段は、前記ゲーム装置からの要求信号に含まれているエリア情報に対応するエリアのゲーム処理を実行中のエリアサーバが存在するかどうかを、少なくとも各エリアサーバのアドレス情報(IPアドレス)を含むコントロールデータ(図7)を参照して判定する手段である。役割決定手段は、前記エリアサーバ検索手段の判定結果に基づいて、前記要求信号の発信元のゲーム装置を前記エリア情報に対応するエリアのエリアサーバとして動作させるべきかエリアクライアントとして動作させるべきかを決定する手段である。応答手段は、前記役割決定手段の決定結果を示す応答信号を生成して前記要求信号の発信元のゲーム装置に送信する手段である。コントロールデータ管理手段は、前記決定手段が前記要求信号の発信元のゲーム装置を前記エリア情報に対応するエリアのエリアサーバとして動作させるべきだと決定したときに、少なくとも当該ゲーム装置のアドレス情報を前記コントロールデータに登録する手段である。そして、応答手段は、前記決定手段が前記要求信号の発信元のゲーム装置を前記エリア情報に対応するエリアのエリアクライアントとして動作させるべきだと決定したときに、前記コントロールデータに登録されている当該エリアのエリアサーバのアドレス情報を含む前記応答信号を生成して前記要求信号の発信元のゲーム装置に送信する。
【0017】
本発明の第2のネットワークゲームシステムは、上記第1のネットワークゲームシステムにおいて、前記ゲーム装置は、前記動作制御手段が当該ゲーム装置をエリアサーバまたはエリアクライアントとして動作させている間に、予め決められたエリア間移動条件を満たしたかどうかを判定する移動判定手段(32、S22、S28)をさらに備え、前記要求手段は、前記エリア間移動条件を満たしたと前記移動判定手段が判定したときに、プレイヤがプレイしようとするエリアを示すエリア情報として、移動先エリアを示すエリア情報を含む前記要求信号を生成して前記中央管理サーバに送信することを特徴とする(S30)。
【0018】
本発明の第3のネットワークゲームシステムは、上記第2のネットワークゲームシステムにおいて、前記エリア間移動条件は、プレイヤが操作する仮想ゲームエリア内のキャラクタが、当該仮想ゲームエリア内の所定位置に到達したことを含むことを特徴とする。
【0019】
本発明の第4のネットワークゲームシステムは、上記第1のネットワークゲームシステムにおいて、前記役割決定手段は、各エリアサーバの制御下で動作中のエリアクライアントの数を示す情報を含むコントロールデータを参照して、(a)前記エリアサーバ検索手段によって前記エリア情報に対応するエリアのゲーム処理を実行中のエリアサーバが存在すると判定され、かつ当該エリアサーバの制御下で動作中のエリアクライアントの数が予め決められた上限数に達していないと判定されたときには、前記要求信号の発信元のゲーム装置を当該エリアサーバの制御下でエリアクライアントとして動作させるべきだと決定し、(b)前記エリアサーバ検索手段によって前記エリア情報に対応するエリアのゲーム処理を実行中のエリアサーバが存在すると判定され、かつ当該エリアサーバの制御下で動作中のエリアクライアントの数が予め決められた上限数に達していると判定されたときには、前記要求信号の発信元のゲーム装置を前記エリア情報に対応するエリアのエリアサーバとして動作させるべきだと決定することを特徴とする。
【0020】
本発明の第5のネットワークゲームシステムは、上記第1のネットワークゲームシステムにおいて、前記要求手段は、前記要求信号を前記中央管理サーバに送信するときに、プレイヤによって選択された嗜好情報も送信し、前記役割決定手段は、前記ゲーム装置から受け取った嗜好情報を、他のゲーム装置から受け取った嗜好情報と比較し、当該比較結果に基づいて、当該要求信号の発信元のゲーム装置のログイン先となるエリアサーバを決定することを特徴とする。
【0021】
本発明の第6のネットワークゲームシステムは、上記第1のネットワークゲームシステムにおいて、前記要求手段は、前記要求信号を前記中央管理サーバに送信するときに、各プレイヤに固有に割り振られた番号を含むフレンド情報も送信し、前記役割決定手段は、前記ゲーム装置から受け取ったフレンド情報を、他のゲーム装置から受け取ったフレンド情報と比較し、当該比較結果に基づいて、当該要求信号の発信元のゲーム装置のログイン先となるエリアサーバを決定することを特徴とする。
【発明の効果】
【0022】
請求項1に記載の発明によれば、クライアントがゲームを開始するとき、予め少なくともサーバにプレイするプレイ領域の情報を送信しておくので、他のクライアントがネットに接続してきたときに、既に同じプレイ領域でプレイ中のクライアントがあれば、そのクライアントにログインさせることができる。これにより、処理負荷の分散が図られる。ネットワークゲームへの参加は、単にプレイしたいエリアを選択するだけで、ログイン処理等はプレイヤが特に意識しなくても自動的に実行されるため、従来のネットワークゲームシステムで見られたログイン手続のような煩雑な処理も不要となり、ネットワークゲームのプレイをスムーズに開始することができる。
【0023】
上記第2および第3のネットワークゲームシステムによれば、ゲームプレイ中にエリア間を移動する状況が発生した場合であっても、手動でのログアウト手続や、従来のネットワークゲームシステムのようなロビーでのエリア選択手続やログイン手続をすることなしに、プレイヤは移動先のエリアで引き続きゲームをプレイすることができ、プレイヤはエリア間をスムーズに移動することができる。
【0024】
上記第4のネットワークゲームシステムによれば、予め一つのエリアサーバで処理可能なエリアクライアントの上限数を予め決めておき、エリアサーバに接続されているエリアクライアントがこの上限数に到達したときには、このエリアサーバにはそれ以上のエリアクライアントを接続しないようにする。これにより、想定されるネットのトラフィックの増大による不具合を防止することができる。
【0025】
上記第5のネットワークゲームシステムによれば、プレイヤが多人数プレイを好むか、個人プレイを好むかなどのゲームプレイに係るプレイヤの嗜好に応じてクライアントの接続先が選択されるので、個々のプレイヤのニーズにマッチしたネットワークゲームを提供することができる。
【0026】
上記第6のネットワークゲームシステムによれば、仲の良いプレイヤがすでにゲームプレイ中である場合に、そのプレイヤが属しているグループに優先的にログインして、仲の良いプレイヤ同士で一緒にゲームを楽しむことができるようになる。
【発明を実施するための最良の形態】
【0027】
本実施形態に係るネットワークゲームシステムは、図1のように、中央管理サーバ10と複数のゲーム装置20からなる。なお、ネットワークゲームシステムを構成するゲーム装置の数は3台に限らない。中央管理サーバ10と複数のゲーム装置20は、インターネットを介して互いに通信することができる。
【0028】
中央管理サーバ10は、インターネットに接続された大型コンピュータであって、ネットワークゲームにログインしようとするゲーム装置からの参加要求などを処理する。中央管理サーバ10としては、演算装置(CPU)と記憶装置(ハードディスク、RAM)を備えた汎用的なコンピュータを利用することができる。中央管理サーバ10は、記憶装置に記憶されたコンピュータプログラムに従って種々の処理を実行することによってネットワークゲームシステムを管理する。
【0029】
図2は、ゲーム装置20の外観図である。ゲーム装置20は、ゲーム装置本体26とコントローラ28からなる。コントローラ28は、通信ケーブルを介して、ゲーム装置本体26に設けられた複数(図2では4つ)のコントローラポート用コネクタのいずれかに接続される。ゲーム装置本体26には、DVD−ROM24および外部メモリカード30が着脱自在に装着される。また、ゲーム装置本体26は、AVケーブルによってモニタ22と接続されている。モニタ22にはスピーカ22aが内蔵されている。なお、ゲーム装置本体26とコントローラ28間の通信は無線通信であってもよい。
【0030】
DVD−ROM24は、ゲームプログラムやゲームデータを固定的に記憶している。なお、ゲームプログラム等を記憶する手段として、DVD−ROM24の代わりに例えばCD−ROM、MO、メモリカード、ROMカートリッジ等の外部記憶媒体を用いてもよい。
【0031】
外部メモリカード30は、フラッシュメモリ等の書き換え可能な記憶媒体によって構成され、ゲームのセーブデータ等を記録する。
【0032】
ゲーム装置本体26は、DVD−ROM24に記録されているゲームプログラムを読み出し、読み出したゲームプログラムに応じた処理を行う。
【0033】
コントローラ28は、複数の操作スイッチを有する入力装置である。コントローラ28は、プレイヤの入力操作に応じて、操作データをゲーム装置本体26に出力する。
【0034】
モニタ22は、ゲーム装置本体26から出力される映像信号基づいて画像を表示し、同じくゲーム装置本体26から出力される音声信号に基づいて音声をスピーカ22aより出力する。
【0035】
図3は、ゲーム装置本体26の内部構成を示すブロック図である。図3において、ゲーム装置本体26には、CPU32およびそれに接続されるメモリコントローラ42が設けられる。メモリコントローラ42は、GPU(Graphics Processig Unit)34、メインメモリ36、DSP(Digital Signal Processor)38、および各種インターフェース(I/F)44、46、48、50、52に接続される。メモリコントローラ42は、これら各構成要素間のデータ転送を制御する。
【0036】
DVD−ROM24に記憶されているゲームプログラムは、ディスクドライブ54、ディスクI/F52およびメモリコントローラ42を介して、メインメモリ36に読み込まれる。このメインメモリ36上のゲームプログラムをCPU32が実行することによってゲームが開始される。
【0037】
コントローラ28から出力される操作データは、コントローラI/F44およびメモリコントローラ42を介してCPU32に供給される。CPU32は、入力された操作データに応じてゲーム処理を行う。ゲーム処理における画像データ生成等に際して、GPU34やDSP38が用いられる。ARAM40は、DSP38が処理を行う際に用いられる。
【0038】
GPU34は、モニタ22に表示すべき画像を生成する。そして、この画像に対応する映像信号がメモリコントローラ42およびビデオI/F46を介してモニタ22に出力される。
【0039】
本ネットワークゲームシステムで実行されるゲームは、一例として、図4に示すような4つのエリア(エリアA〜D)を含む広大な仮想ゲーム世界で展開されるロールプレイングゲームであって、各エリアにおいて複数のプレイヤが同時にゲームに参加することができる。プレイヤは、予め用意された4つのエリアの中から所望のエリアを選択してゲームに参加することができる。プレイヤは、コントローラ28を用いて仮想ゲーム世界のプレイヤキャラクタを操作することによって、モンスターと戦ったり、洞窟を探検して財宝を発見したりすることができる。プレイヤ(プレイヤキャラクタ)は、エリア内を自由に移動することができ、さらにエリア間を自由に行き来することもできる。例えば図4において、エリアAはエリアB,Cにつながっており、プレイヤはエリアAからエリアBやエリアCに移動することができる。同様に、エリアBはエリアA,Dに、エリアCはエリアA,Dに、エリアDはエリアB,Cに、それぞれつながっている。また、プレイヤキャラクタが仮想ゲーム世界の終端(例えばエリアAの左端)を超えたときには、仮想ゲーム世界の反対側(例えばエリアBの右端)からプレイヤキャラクタが出現する。
【0040】
本ネットワークゲームシステムでは、図5に示すように、エリア毎に、1台以上のゲーム装置20が集まってグループを形成する。そして、各グループ内で1台のゲーム装置20がエリアサーバとなって、対応するエリアのゲーム処理を担当する。グループ内の他のゲーム装置20は、エリアクライアントとなってエリアサーバと通信し、エリアサーバの制御下で動作する。以下では、便宜上、エリアAに対応するゲーム装置20のグループをグループAと称し、グループA内のエリアサーバをエリアサーバAと称し、グループA内のエリアクライアントをエリアクライアントAと称することとする(他のエリアについても同様)。なお、図5のグループBのように、そのエリアでプレイしているプレイヤが一人しかいないときには、1台のゲーム装置20のみでグループが構成されることになる。また、そのエリアでプレイしているプレイヤが一人もいないときには、そのエリアに対応するエリアサーバは存在しないことになる。
【0041】
基本的には、図5のようにエリア毎に1つのグループが形成されるが、状況によっては同一のエリアに対して複数のグループが形成される。例えば図6の例では、エリアAに対応するグループとして3つのグループが形成されている。以下では、便宜上、同一エリアに対応する複数のグループを互いに区別するために、例えば図6のエリアAに対応する3つのグループを、それぞれグループA−1、グループA−2、グループA−3と称することとする(他のエリアについても同様)。
【0042】
各ゲーム装置20に挿入されるDVD−ROM24には、図4のエリアA〜Dの各エリアにおけるゲーム処理を実行するためのゲームプログラムおよびゲームデータが記録されている。ここで、ゲームデータは、モンスターの難易度や能力パラメータなどの情報である。また、ゲームプログラムは、プレイヤキャラクタが倒したモンスターの難易度から経験値を算出したり、プレイヤキャラクタの能力パラメータ(攻撃力、守備力など)とモンスターの能力パラメータとを対比してモンスターやプレイヤキャラクタが受けるダメージを算出したりといったゲーム処理をCPU32に実行させるものである。
【0043】
本ネットワークゲームシステムでは、上記のような経験値の算出処理やダメージの算出処理は、エリアサーバによって行われる。エリアクライアントは、上記の経験値の算出処理やダメージの算出処理に必要となるデータをエリアサーバに適宜に送信し、エリアサーバからその算出結果を受信する。このように、本ネットワークゲームシステムでは、各グループにおけるゲームをエリアサーバが一括して制御することにより、ゲーム装置20間でゲーム内容にズレが生じる(同期が失われる)のを防止することができる。また、エリアクライアントからはエリアサーバのゲームプログラムやゲームデータを改竄することはできないので、チートの防止にもつながる。
【0044】
中央管理サーバ10は、図7に示すように、既にゲームが開始されているエリアの情報、そのエリアでプレイしているプレイヤの人数やレベルや嗜好、そのエリアに参加しているゲーム装置20のIPアドレス(特に、各エリアのエリアサーバのIPアドレス)などのコントロールデータを記憶装置に格納して管理(リアルタイムに更新)する。なお、コントロールデータはプレイヤの数に比例して莫大な情報量になるため、中央管理サーバ10にコントロールデータを一括して記憶させるのではなく、必要に応じて、図8に示すように1台以上のゲーム装置20にコントロールデータの一部を記憶させるようにしてもよい。ただしこの場合でも、少なくとも各エリアのエリアサーバのIPアドレスと、コントロールデータを記憶しているゲーム装置20のIPアドレスについては中央管理サーバ10の記憶装置に保持されている必要がある。
【0045】
中央管理サーバ10は、ゲーム装置20からゲームへの参加要求を受け取ると、上記コントロールデータに基づいて、このゲーム装置20を既存のいずれのグループに加えるべきかを決定し、この決定結果をゲーム装置20に通知する。すなわち、中央管理サーバ10は、ゲーム装置20をグループへ割り振る役目を果たすものであって、ゲーム処理自体は行わない。
【0046】
<ゲーム開始>
以下、あるプレイヤがゲームに参加する際のゲーム装置20および中央管理サーバ10の動作について具体的に説明する。
【0047】
プレイヤがゲーム装置20にDVD−ROM24を装着してゲーム装置20の電源を投入すると、DVD−ROM24に記録されているゲームプログラムがメインメモリ36にロードされ、モニタ22にゲームの初期画面が表示される。以下、ゲーム装置20は、このメインメモリ36にロードされたゲームプログラムに従って動作する。
【0048】
ゲームの初期画面が表示された後、プレイヤは必要に応じて嗜好情報を入力する。嗜好情報とは、例えば「単独プレイを希望」、「多人数プレイを希望」、「コミュニケーションを重視」、「モンスターとの戦闘を重視」などのようなプレイヤの嗜好を表す情報である。嗜好情報の入力は、典型的には、ゲーム装置20がモニタ22に表示した嗜好情報のリストの中から、プレイヤが所望の嗜好情報を選択することによって行われる。プレイヤによって入力された嗜好情報はゲーム装置20のメインメモリ36に格納される。
【0049】
次にプレイヤは、エリアA〜Dの4つのエリアのうち、プレイしたいエリアを入力する。以下では、プレイヤがエリアAを選択したものとして説明する。
【0050】
プレイヤによってエリアAが選択されると、ゲーム装置20は、プレイヤがプレイしようとしているエリア(ここではエリアA)を示すエリア情報を含んだゲーム開始要求信号を生成して、中央管理サーバ10に送信する。なお、このゲーム開始要求信号と一緒に(または個別に)、図7や図8に示したキャラクタ情報、すなわちプレイヤのレベルや、プレイヤによって入力された嗜好情報や、後述するフレンド情報(一緒にゲームをプレイしたい他のプレイヤを表す情報)も中央管理サーバ10に送信される。このような情報は、中央管理サーバ10がこのゲーム装置20をどのグループに割り振るかを決定する際に適宜に利用される。
【0051】
以下では、ゲーム開始要求信号を送信したゲーム装置20とこのゲーム装置20を使用しているプレイヤを、他のゲーム装置20やプレイヤと区別するために、便宜上、第1のゲーム装置、第1のプレイヤとそれぞれ称することにする。
【0052】
中央管理サーバ10は、第1のゲーム装置20からゲーム開始要求信号を受け取ると、この要求信号に含まれているエリア情報(ここではエリアAを示している)を参照し、既にエリアAでゲームを開始している他のゲーム装置20が存在するか否かを判別する。この判別は、中央管理サーバ10の記憶装置に記憶されているコントロールデータに基づいて行われる。なお、図8のようにコントロールデータの一部を中央管理サーバ10の代わりに1以上のゲーム装置20が記憶している場合には、中央管理サーバ10はこのゲーム装置20から判別に必要なコントロールデータを取得して上記判別を行う。
【0053】
上記の判別の結果、既にエリアAでゲームを開始している他のゲーム装置20が存在することが判明すると、中央管理サーバ10は、コントロールデータからエリアAでゲームをプレイ中のプレイヤのレベルや嗜好情報を取得し、第1のゲーム装置20から受け取った第2のプレイヤのレベルや嗜好情報と比較する。なお、図5に示すように、エリアAでゲームをプレイ中のプレイヤが複数存在する場合には、これらの複数のプレイヤのレベルや嗜好情報をそれぞれ平均化したものを、第1のゲーム装置20から受け取った第1のプレイヤのレベルおよび嗜好情報とそれぞれ比較するようにしてもよい。また、図6に示すように、エリアAでゲームをプレイ中のゲーム装置20が複数グループ存在する場合には、上記比較はグループ毎に行われる。
【0054】
上記の比較に加えて、中央管理サーバ10は、エリアAでゲームをプレイ中の各グループにおけるプレイヤ数が予め定められた上限数(例えば16人)に達しているかどうかをコントロールデータを参照して判定する。
【0055】
中央管理サーバ10は、上記比較および判定をグループ毎に行った結果、第1のプレイヤのレベルおよび嗜好情報とグループのレベル(または平均レベル)および嗜好情報(または平均嗜好情報)との関係が予め定められた合致条件(例えば、両者のレベル差が小さく、かつ両者の嗜好が一致もしくは近いこと)を満たしており、かつグループに参加しているプレイヤ数が予め定められた上限数に達していないグループが存在している場合には、第1のゲーム装置20にそのグループのエリアクライアントとして動作させるべく、そのグループのエリアサーバのIPアドレスを含む応答信号を第1のゲーム装置20に送信する。この応答信号を受け取った第1のゲーム装置20は、この応答信号に含まれるIPアドレスを利用してエリアサーバにログイン要求を行ってそのグループに参加する。
【0056】
一方、既にエリアAでゲームを開始している他のゲーム装置20が1台も存在しない場合、もしくは、既にエリアAでゲームを開始している他のゲーム装置20が存在していたとしても、上記合致条件を満たしているグループが1つも存在しない場合またはグループに参加しているプレイヤ数が予め定められた上限数に達していないグループが1つも存在しない場合には、中央管理サーバ10は、第1のゲーム装置20に新たなエリアAのグループを形成させるべく、ゲームクリエイト指示を含む応答信号を第1のゲーム装置20に送信する。この応答信号を受け取った第1のゲーム装置20は、新たなエリアAのグループのエリアサーバとしてゲーム処理を開始する。なお、このようにゲームクリエイト指示を受けて第1のゲーム装置20がゲーム処理を開始した直後は、第1のゲーム装置20だけでグループが構成されることになるが、その後、このグループに他のゲーム装置20が順次ログインすることによって、このグループを構成するゲーム装置20の数が順次増加する。
【0057】
以上のように、本ネットワークゲームシステムによれば、中央管理サーバ10の管理の下で、エリアサーバが必要に応じて適宜に追加されるため、極めて低コストで大人数の参加できるネットワークゲームを提供できる。しかも同じエリアでゲームをするプレイヤが大人数になったとしても、同一エリアに対応する複数のグループが生成されて、複数のエリアサーバでそのエリアのゲーム処理の負荷を分散できるため、処理遅延による操作性の低下や、同一のエリアに多数のプレイヤキャラクタが密集してしまうようなことを回避することができる。
【0058】
また、ネットワークゲームへの参加は、単にプレイしたいエリアを選択するだけで、ログイン処理等はプレイヤが特に意識しなくても自動的に実行されるため、従来のネットワークゲームシステムで見られたログイン手続の煩雑さも解消される。
【0059】
<エリア間移動>
次に、第1のプレイヤが上記のようにしてエリアAでゲームプレイを開始した後、プレイヤ(もしくはプレイヤキャラクタ)が、あるエリアから別のエリアに移動するときの処理について説明する。
【0060】
第1のゲーム装置20は、第1のプレイヤがエリアAでゲームをプレイしている間、予め決められたエリア間移動条件が満たされたかどうかを判定する。ここでは、エリア間移動条件が、第1のプレイヤが操作するプレイヤキャラクタがエリア間の境界地点に到達することであるものとして説明する。なお、エリア間移動条件の他の例としては、プレイヤキャラクタがエリア内に設けられた特定のワープポイントや階段や扉に到達することや、プレイヤキャラクタのレベルや所持金など、特定のゲームパラメータの値が所定値に到達したことなどが考えられる。
【0061】
第1のプレイヤの操作入力に基づいてプレイヤキャラクタがエリアAとエリアBの境界地点に到達すると、第1のゲーム装置20は、プレイヤが移動しようとしている移動先のエリア(ここではエリアB)を示すエリア情報を含んだエリア間移動要求信号を生成して、中央管理サーバ10に送信する。なお、このエリア間移動要求信号と一緒に(または個別に)、図7や図8に示したキャラクタ情報、すなわちプレイヤのレベルや、プレイヤによって入力された嗜好情報や、後述するフレンド情報(一緒にゲームをプレイしたい他のプレイヤを表す情報)も中央管理サーバ10に送信される。
【0062】
中央管理サーバ10は、第1のゲーム装置20からエリア間移動要求信号を受け取ると、この要求信号に含まれているエリア情報(ここではエリアBを示している)を参照し、既にエリアBでゲームを開始している他のゲーム装置20が存在するか否かを判別する。
【0063】
上記の判別の結果、既にエリアBでゲームを開始している他のゲーム装置20が存在することが判明すると、中央管理サーバ10は、コントロールデータからエリアBでゲームをプレイ中のプレイヤのレベルや嗜好情報を取得し、第1のゲーム装置20から受け取った第2のプレイヤのレベルや嗜好情報と比較する。
【0064】
上記の比較に加えて、中央管理サーバ10は、エリアBでゲームをプレイ中の各グループにおけるプレイヤ数が予め定められた上限数(例えば16人)に達しているかどうかをコントロールデータを参照して判定する。
【0065】
中央管理サーバ10は、上記比較および判定をグループ毎に行った結果、第1のプレイヤのレベルおよび嗜好情報とグループのレベルおよび嗜好情報との関係が予め定められた合致条件を満たしており、かつグループに参加しているプレイヤ数が予め定められた上限数に達していないグループが存在している場合には、第1のゲーム装置20にそのグループのエリアクライアントとして動作させるべく、そのグループのエリアサーバのIPアドレスを含む応答信号を第1のゲーム装置20に送信する。この応答信号を受け取った第1のゲーム装置20は、この応答信号に含まれるIPアドレスを利用してエリアサーバにログイン要求を行ってそのグループに参加する。こうして、第1のプレイヤのエリアAからエリアBへの移動が完了する。
【0066】
一方、既にエリアBでゲームを開始している他のゲーム装置20が1台も存在しない場合、もしくは、既にエリアBでゲームを開始している他のゲーム装置20が存在していたとしても、上記合致条件を満たしているグループが1つも存在しない場合またはグループに参加しているプレイヤ数が予め定められた上限数に達していないグループが1つも存在しない場合には、中央管理サーバ10は、第1のゲーム装置20に新たなエリアBのグループを形成させるべく、ゲームクリエイト指示を含む応答信号を第1のゲーム装置20に送信する。この応答信号を受け取った第1のゲーム装置20は、新たなエリアBのグループのエリアサーバとしてゲーム処理を開始する。こうして、第1のプレイヤのエリアAからエリアBへの移動が完了する。
【0067】
上記のようなエリア間移動の過程では、第1のプレイヤによる特別な操作入力(例えば従来のネットワークゲームシステムにおけるロビーでのエリア選択手続やログイン手続など)は特に必要とされない。つまり、第1のプレイヤにとっては、上記のようなエリア間移動処理を何ら意識することなしに、エリア間の移動が自動的に完了することになる。これにより、エリア間を移動する度にロビーに一旦戻ってエリア選択手続をしたりログイン手続をしたりする煩わしさが解消される。またエリア間を移動する度にゲームが中断されることもなくなるので、プレイヤがゲーム世界に浸っている状態から現実世界に引き戻されてしまうことを回避できる。
【0068】
次に、図9のフローチャートを参照して、ゲーム装置20の動作手順(より正確にはコンピュータプログラムに基づくCPU32の動作手順)を説明する。
【0069】
ステップS10で、CPU32は、プレイヤにプレイしたいエリアを選択させる。
【0070】
ステップS12では、プレイヤが選択したエリアを示すエリア情報を含むゲーム開始要求信号を生成し、中央管理サーバ10に送信する。
【0071】
ステップS14では、中央管理サーバ10から応答信号を受信する。
【0072】
ステップS16では、中央管理サーバ10から受信した応答信号がゲームクリエイト指示かどうかを判断する。中央管理サーバ10から受信した応答信号がゲームクリエイト指示であった場合はステップS18に進み、中央管理サーバ10から受信した応答信号がゲームクリエイト指示でなかった場合はステップS24に進む。
【0073】
ステップS18では、既存のエリアサーバにログインすることなく、単独でゲーム処理を開始(すなわちゲームクリエイト)する。
【0074】
ステップS20では、エリアサーバとして必要な処理を実行する。この処理には、例えば他のゲーム装置からのログイン要求の処理や、エリアクライアントからゲーム処理に利用するデータを受け取って、各エリアクライアントから受け取ったデータに基づいてゲーム処理(ダメージ量の計算や取得経験値の計算など)を行って、その処理結果をエリアクライアントに返信する処理などが含まれる。
【0075】
ステップS22では、予め決められたエリア間移動条件を満たしたかどうかを判断する。エリア間移動条件を満たしていない場合にはエリアサーバとしての動作を継続し、エリア間移動条件を満たした場合には現在所属しているグループからログオフしてステップS30に進む。なお、エリアサーバがグループから離脱する場合には、後述するように、そのグループにおけるエリアサーバとしての役割を、同じグループ内のいずれかのエリアクライアントに継承する処理を行ってから離脱することが好ましい。
【0076】
ステップS24では、中央管理サーバ10からの応答信号に含まれているエリアサーバのIPアドレスを用いて、このエリアサーバにログインする。
【0077】
ステップS26では、ステップS24でログインしたエリアサーバの制御下でエリアクライアントとして動作する。
【0078】
ステップS28では、予め決められたエリア間移動条件を満たしたかどうかを判断する。エリア間移動条件を満たしていない場合にはエリアクライアントとしての動作を継続し、エリア間移動条件を満たした場合には現在所属しているグループからログオフしてステップS30に進む。
【0079】
ステップS30では、移動先エリアを示すエリア情報を含むエリア間移動要求信号を生成し、中央管理サーバ10に送信する。
【0080】
次に、図10のフローチャートを参照して、中央管理サーバ10の動作手順(より正確にはコンピュータプログラムに基づくCPU等の演算装置の動作手順)を説明する。
【0081】
ステップS32で、演算装置は、ゲーム装置20から要求信号(ゲーム開始要求信号またはエリア間移動要求信号)を受信したかどうかを判断し、要求信号を受信した場合にはステップS34に進む。
【0082】
ステップS34では、コントロールデータを参照して、ゲーム装置20から受信した要求信号に適合するグループを検索する。この検索処理では、前述したように、要求信号に含まれているエリア情報だけでなく、ゲーム装置20から要求信号とともに送られてきた嗜好情報やレベル情報やフレンド情報や、各グループに参加しているプレイヤ数なども考慮される。ステップS34の処理の詳細はすでに説明しているため、ここでは説明を省略する。
【0083】
ステップS36では、ステップS34の検索結果から、要求信号に適合するグループが存在しているかどうかを判断し、要求信号に適合するグループが存在していた場合にはステップS38に進み、要求信号に適合するグループが存在していない場合にはステップS42に進む。
【0084】
ステップS38では、要求信号に適合するグループ(要求信号に適合するグループが複数存在する場合には、必要に応じてそれらの仲から最適なグループを選択する)のエリアサーバのIPアドレスをコントロールデータから取得し、このIPアドレスを含む応答信号を生成して、要求信号の送信元のゲーム装置20に対してこの応答信号を送信する。
【0085】
ステップS40では、中央管理サーバ10の記憶装置に保持されているコントロールデータを更新する(必要に応じて、ゲーム装置に図8のようにして部分的に保持されているコントロールデータも更新する)。より具体的には、要求信号の送信元のゲーム装置がログインしたグループに関して、その参加プレイヤ数をインクリメントしたり、そのゲーム装置のフレンド情報を登録したり、また必要に応じてそのグループのプレイヤのレベルの平均値等を求めて保存したりなどして、コントロールデータを更新する。
【0086】
ステップS42では、ゲームクリエイト指示を含む応答信号を生成して、要求信号の送信元のゲーム装置20に対してこの応答信号を送信する。
【0087】
ステップS44では、中央管理サーバ10の記憶装置に保持されているコントロールデータを更新する(必要に応じて、ゲーム装置に図8のようにして部分的に保持されているコントロールデータも更新する)。より具体的には、要求信号の送信元のゲーム装置によって新たに構成されたグループに関して、このグループのエリアサーバのIPアドレス(すなわち要求信号の送信元のゲーム装置のIPアドレス)や、そのグループに対応するエリアを示す情報や、グループに参加しているプレイヤの数(ここでは1人)やレベルや嗜好情報やフレンド情報を、コントロールデータに登録する。
【0088】
<チート対策>
次に、本ネットワークゲームシステムにおいて、チートを防止するための手法について説明する。チートとは、ゲームプログラム(ダメージ量の計算プログラムなど)やキャラクタデータ(キャラクタの能力や状態などを表すデータ)やゲームデータ(モンスターの能力値などのデータ)の不正な改ざん行為を指す。
【0089】
一般に、チートは以下のような手法で行われる。
(1)ゲームプログラムやゲームデータを改ざんして、不当な経験値を得たりや不当なダメージを敵に与えるようにしてゲームを容易にする。
(2)キャラクタデータを直接改ざんしてキャラクタのレベルやヒットポイント(最大HP、現在HP)などを不当に多くする。
【0090】
上記の(1)のケースのチート行為は本ネットワークゲームシステムに置いてはエリアサーバにおいてのみ行われ得る。エリアサーバとして動作しているゲーム装置(以下ではゲーム装置Xと称す)においてゲームプログラムやゲームデータが改ざんされると、エリアサーバからエリアクライアントへ不当なゲームプレイ情報(エリアサーバにおけるゲーム処理結果)が送られることになる。
【0091】
エリアクライアントは、エリアサーバから受け取ったゲームプレイ情報が不当であることを検出すると、そのことを中央管理サーバ10に通知する。この通知を受けた中央管理サーバ10は、エリアサーバであるゲーム装置Xに対してゲームプログラムとゲームデータのチェックサムを送るように指示する。この指示に対してゲーム装置Xから回答がない場合、あるいはゲーム装置Xから送られてきたチェックサムの値が不正であった場合は、中央管理サーバ10はこのゲーム装置Xからエリアサーバとしての権限を奪い、いずれかのエリアクライアントに対してエリアサーバとして動作するように指示する。これ以後は、この新たなエリアサーバによってゲームプレイ情報が生成されることになるので、ゲーム装置Xにおいて不当なゲームプレイ情報が生成されることはなくなる。
【0092】
なお、中央管理サーバ10において、ゲーム装置Xから送られてきたチェックサムの値が不正であるかどうかをチェックする方法は、公知の任意の手法を用いることができる。例えば、中央管理サーバ10は、エリアサーバで利用しているゲームプログラムおよびゲームデータと全く同一のデータを内部に保持しておき、ゲーム装置Xから送られてきたチェックサムの値と、自身が保持しているデータに基づいて計算したチェックサムの値とを照合するようにしてもよい。
【0093】
上記の(2)のケースのチート行為として、ネットワークゲームにログインしようとしているゲーム装置(以下、ゲーム装置Yと称す)において、キャラクタデータの改ざんが行われた場合のその検出方法を述べる。
【0094】
ゲーム装置Yがエリアサーバにログインすると、このエリアサーバは、ゲームプレイ情報生成のために必要なキャラクタデータをゲーム装置Yから受け取る。このとき、エリアサーバは、キャラクタデータのほかにキャラクタデータのチェックサムもゲーム装置Yから受け取る。そしてエリアサーバは、こうして受け取ったキャラクタデータおよびチェックサムに基づいて、ゲーム装置Yのキャラクタデータが不当ではないかどうかを判断する。不当であると判断された場合は、エリアサーバはゲーム装置Yのログインを拒否する。これにより、キャラクタデータを不正に改ざんしたゲーム装置がネットワークゲームに参加することを防止することができる。
【0095】
以上のような手法によれば、エリアサーバとエリアクライアントが互いに相手を監視してチートを検出するので、チートを効果的に防止することができる。
【0096】
なお単独プレイの場合(すなわち1台のゲーム装置20のみでグループが構成されている状態)は上記のような相互監視ができないため、チートが行いやすくなる。そこで、中央管理サーバ10は、適当な間隔で(例えばゲームを開始してから15分経過するごとに)単独プレイ中のゲーム装置20からプログラムデータ等のチェックサムを取得して、このゲーム装置20においてチートが行われていないかどうかを確認するのが好ましい。
【0097】
<フレンド情報>
次に、フレンド情報の活用方法について説明する。
【0098】
中央管理サーバ10に対して要求信号を送信した第1のゲーム装置のログイン先のグループは、純粋にレベル差や嗜好だけから決定されても良いが、その場合、一緒にゲームをプレイするメンバーが毎回ほぼランダムに変化することになり、つまり、各プレイヤは意図的に好みのプレイヤと一緒にゲームをプレイすることができない。
【0099】
上記の問題を解決するための方法として、プレイヤ毎に固有に割り当てられた、例えば1番〜16777215番までのいずれかの番号(ゲーム中では、例えば1番〜16777215番までのいずれかの数字が割り当てられた「鍵」として表現される)を、例えば図11のようにゲーム中で仲の良いプレイヤにフレンド情報として配布し、次回のゲームプレイ時には、このフレンド情報を利用して仲の良いプレイヤ同士を優先的に同一のグループに所属させることが考えられる。
【0100】
各プレイヤに固有に割り当てられたフレンド情報は、ゲーム装置20が中央管理サーバ10に要求信号(ゲーム開始要求信号またはエリア間移動要求信号)を送信する際に一緒に中央管理サーバ10に送信され、コントロールデータに登録される。例えば、あるゲーム装置20が要求信号を中央管理サーバ10に送信するときには、このゲーム装置を使用しているプレイヤに固有に割り当てられたフレンド情報が、このゲーム装置20のメインメモリ36から読み出されて中央管理サーバ10に送信され、コントロールデータに登録される。つまりコントロールデータには、常に、現在ゲームプレイ中の各プレイヤに割り当てられたフレンド情報が、そのプレイヤが参加しているグループに関連付けて記憶されていることになる。
【0101】
ここで、第1のプレイヤが、仲の良い第2のプレイヤのフレンド情報(例えば65535番)を第2のプレイヤからすでに入手しており、第2のプレイヤと一緒にゲームをプレイすることを希望する場合には、第1のプレイヤ(より正確には第1のプレイヤのゲーム装置20)は、要求信号を中央管理サーバ10に送信する際に、この第2のプレイヤのフレンド情報も一緒に中央管理サーバ10に送信する。中央管理サーバ10では、第1のプレイヤから送信された第2のプレイヤのフレンド情報をコントロールデータと照合し、第2のプレイヤが現在ゲームプレイ中かどうかを判断する。ここで、もしこの時点で第2のプレイヤがゲームをプレイ中であったとすれば、第2のプレイヤのフレンド情報(65535番)はコントロールデータに既に登録されているはずであり、このコントロールデータに基づいて、第2のプレイヤが参加しているグループを特定することができる。すると、中央管理サーバ10は、第2のプレイヤが参加しているグループのエリアサーバのIPアドレスをコントロールデータから取り出して、このIPアドレスを含む応答信号を第1のプレイヤのゲーム装置20に送信する。第1のプレイヤのゲーム装置は、このIPアドレスに基づいて、第2のプレイヤが参加しているグループにログインすることができ、その結果、第1のプレイヤは、第2のプレイヤと一緒にゲームをプレイすることができる。
【0102】
<エリアサーバの消滅対策>
次に、本ネットワークゲームシステムにおいて、エリアサーバがネットワークからふいに消滅した場合の対策について説明する。本ネットワークゲームシステムでは、エリアクライアントはエリアサーバの制御下で動作しているおり、エリアクライアントはエリアサーバと常にデータ交信を行っている。ここで、仮にエリアサーバと2台のエリアクライアント(それぞれエリアクライアントA、Bと称す)で構成されたネットワークにおいて、エリアサーバの電源が切断されるなどしてエリアサーバがネットワークから消滅すると、エリアサーバと各エリアクライアントA、Bとの間の交信が断絶されるので、各エリアクライアントA、Bは、それをすぐに検知することができる。すると、各エリアクライアントA、Bは、中央管理サーバ10に対して、エリアサーバがネットワークから消滅したことを報告する。これを受けて中央管理サーバ10は、残ったエリアクライアント(ここではエリアクライアントA、B)の中から、エリアサーバとしての役割を果たすのによりふさわしいエリアクライアントを、例えばPINGコマンドに対する応答速度を比較するなどによって選択し、そのエリアクライアント(ここでは仮にエリアクライアントAとする)に対して、新しいエリアサーバとなるように指令を出す。これと同時に、残りのエリアクライアント(ここではエリアクライアントB)には、新しいエリアサーバ(すなわちエリアクライアントAだったゲーム装置20)のIPアドレスを通知して、新しいエリアサーバにログインするよう通知する。これにより、エリアサーバが突然ネットワーク上から消滅しても、そこにログインしていたプレイヤがゲームを中断されることがなくなる。
【0103】
なお、エリアサーバがネットワークから突然に消滅したときに、残ったいずれかのエリアクライアントがエリアサーバの役割を継承するためには、敵モンスターの種類、与えたダメージの総計、仲間プレイヤの情報など、エリアサーバが実行すべきゲーム処理に必要なデータの全てを両者の間で常に共有しておく必要がある。そのためには、エリアサーバはゲーム処理で行われた演算結果を全て、エリアサーバの候補となる少なくとも1台のエリアクライアントに常に送っておく必要がある。ただし、エリアクライアントにおいては、エリアサーバから送られてくる情報を単に受け取って保持しておくだけであり、それに基づく演算処理を自身が行うわけではないので、エリアクライアントの処理負担が増えることはない。あくまでもゲームに関する演算処理はエリアサーバだけが行う。
【0104】
なお、上記の説明は、エリアサーバが急にネットワークから消滅した場合に関するものであるが、エリアサーバのユーザがゲームを正常に終了させるときや、エリアサーバのユーザが他のエリアに移動するような場合には、より簡単に、エリアサーバの役割を他のいずれかのエリアクライアントに継承することができる。つまりこの場合には、エリアサーバは、プレイヤによるゲーム終了指示やエリア間移動を検出した時点で、ゲーム処理に必要な全てのデータをいずれかのエリアクライアントに送信してエリアサーバの役割をこのエリアクライアントに継承し、さらにエリアサーバが変更された旨を中央管理サーバ10に通知し、その後にゲーム終了処理またはエリア間移動処理を行えばよい。
【図面の簡単な説明】
【0105】
【図1】本発明の一実施形態に係るネットワークゲームシステムの構成を示す図
【図2】ゲーム装置の外観図
【図3】ゲーム装置の内部構成を示すブロック図
【図4】仮想ゲーム世界の構成例
【図5】ネットワークの構成例
【図6】ネットワークの他の構成例
【図7】コントロールデータとキャラクタデータを示す図
【図8】コントロールデータが分散して保持される例
【図9】ゲーム装置の動作を示すフローチャート
【図10】中央管理サーバの動作を示すフローチャート
【図11】フレンド情報配布時のゲーム画面例
【符号の説明】
【0106】
10 中央管理サーバ
20 ゲーム装置
22 モニタ
22a スピーカ
24 DVD−ROM
26 ゲーム装置本体
28 コントローラ
30 外部メモリカード
32 CPU
34 GPU
36 メインメモリ
38 DSP
40 ARAM
42 メモリコントローラ
44 コントローラI/F
46 ビデオI/F
48 外部メモリI/F
50 オーディオI/F
52 ディスクI/F
54 ディスクドライブ
56 通信部
【技術分野】
【0001】
この発明はネットワークゲームシステムに関し、特に複数のエリアで構成された仮想ゲーム世界で複数のプレイヤが同時にゲームをプレイすることのできるネットワークゲームシステムに関する。
【背景技術】
【0002】
従来、ネットワークゲームシステムには大別してロビー型とサーバ型の2種類が存在する。
【0003】
ロビー型ネットワークゲームシステムは、ロビーと呼ばれるチャットルームにてゲーム難易度や目的地を同じくするプレイヤを募り、限られた数の複数のプレイヤ(通常4〜8人程度)でゲームを行うものである。ロビー型ネットワークゲームシステムの場合、ゲーム開始後はサーバすなわちロビー(或いはチャットルーム)と各プレイヤとのネットワーク接続が切り離されるので、サーバの負担が軽く、少ないサーバで大人数のプレイヤ(数十万人)にゲームサービスを提供できるというメリットがあった。
【0004】
一方、サーバ型ネットワークゲームシステムは即時にゲームを開始でき、またゲーム内でどんなプレイヤと出会えるか分からないという緊張感のあるゲームサービスを提供できるというメリットがあった。またサーバと常に通信しながらゲームが行われるためチートされにくいというメリットがあった。
【0005】
また、特許文献1に記載の技術では、クライアントとサーバからなるネットワークゲームシステムの一例が開示されており、特にロビー型の技術について述べられている。すなわち、プレイヤはサーバから送られてくるプレイゾーンの情報に基づいて、自分がプレイしたいロビーに接続して、ゲームプレイに参加することができる。
【0006】
また、特許文献2に記載の技術では、クライアントとサーバからなるネットワークシステムにおいて、クライアントからの要求に応じて処理を行うサーバの機能もクライアント側に持たせておく。こうして、処理負荷が所定の数値に達するまでは、所定のサーバ処理を行っているクライアントに他のクライアントを接続して、処理負荷の分散を行うネットワークシステムが開示されている。
【特許文献1】特開2003−88684号公報
【特許文献2】特開2001−84232号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
ところが、ロビー型ネットワークゲームシステムの場合、ロビーにてプレイヤを募るのに時間がかかり、なかなかゲームを開始できないというデメリットがあった。また、別の難易度や別の目的地でゲームを行いたいときは、一旦ゲームを終了し、再度ロビーでプレイヤを募りなおさなければならないという問題があった。さらに、ユーザ端末はサーバとは切り離されてゲームを行うため、いんちきプレイ(いわゆるチート)が簡単に行われてしまうというデメリットがあった。
【0008】
また、サーバ型ネットワークゲームシステムは、全プレイヤがサーバと同時に通信しながらゲームが行われるためサーバの負担が極めて重く、1つのサーバに同時にログインできるユーザは数千人に限られてしまうというデメリットがあった。数十万人にゲームサービスを提供しようとすると数百台のサーバを用意しなければならず、莫大なコストが必要であるというデメリットがあった。さらに、ひとつのエリアで同時にプレイできる人数が限られ、同一画面内の所定人数(数十名程度)を超えると互いの通信トラフィックが階乗的に増加し、ゲームが非常に重くなるという問題があった。
【0009】
また、特許文献1に記載の技術では、プレイヤの嗜好に合ったネットワークゲームをプレイすることができるが、ロビーやプレイエリアなどに応じて多くのサーバを設置しなければならず、一度に多くのアクセスが集中すると、トラフィックの増大に伴うネットワークシステムの不具合が発生する恐れがある上、レスポンスも悪くなる。それ故、ゲームに参加できる人数も制限されることになる。
【0010】
また、一方特許文献2に記載の技術では、処理負荷は分散されるが、クライアントの接続先は、単に処理負荷のみに基づいて選択されてしまう。そのため、このシステムをネットワークゲームシステムに適用すると、プレイヤの嗜好に応じたゲームプレイを行うことができない。
【0011】
それゆえに本発明の目的は、プレイヤ数が大きく増加しても特定のコンピュータに処理負荷が集中することがなく、なおかつゲームプレイ開始時の手続等の煩わしさもなく、各プレイヤがより快適にゲームをプレイすることのできるネットワークゲームシステムを提供することである。
【0012】
また、本発明の他の目的は、各プレイヤが、自分の希望に合った条件でゲームをプレイすることができるネットワークゲームシステムを提供することである。
【課題を解決するための手段】
【0013】
上記課題を解決するために、本発明は以下の構成を採用した。なお、括弧内の参照符号および図番号は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【0014】
本発明の第1のネットワークゲームシステムは、複数のエリア(図4)で構成された仮想ゲーム世界で複数のプレイヤが同時にゲームをプレイすることのできるネットワークゲームシステムである。このネットワークゲームシステムは、少なくとも一つの中央管理サーバ(10)と、当該中央管理サーバとネットワークを介して通信可能であって、各エリアのゲーム処理を担うエリアサーバとしての機能と、エリアサーバと通信してエリアサーバの制御下で動作するエリアクライアントとしての機能を併せ持った複数のゲーム装置(20)とで構成される。
【0015】
ゲーム装置は、要求手段(32、S12)と、動作制御手段(32、S20、S26)とを備える。要求手段は、プレイヤがプレイしようとするエリアを示すエリア情報を少なくとも含む要求信号を生成して前記中央管理サーバに送信する手段である。動作制御手段は、記要求信号に対する前記中央管理サーバからの応答信号に応じて、プレイヤがプレイしようとするエリアのエリアクライアントもしくはエリアサーバとしてゲーム装置を動作させる手段である。
【0016】
中央管理サーバは、エリアサーバ検索手段(演算装置、S34)と、役割決定手段(演算装置、S36)と、応答手段(演算装置、S38、S42)と、データ管理手段(演算装置、S40、S44)とを備える。エリアサーバ検索手段は、前記ゲーム装置からの要求信号に含まれているエリア情報に対応するエリアのゲーム処理を実行中のエリアサーバが存在するかどうかを、少なくとも各エリアサーバのアドレス情報(IPアドレス)を含むコントロールデータ(図7)を参照して判定する手段である。役割決定手段は、前記エリアサーバ検索手段の判定結果に基づいて、前記要求信号の発信元のゲーム装置を前記エリア情報に対応するエリアのエリアサーバとして動作させるべきかエリアクライアントとして動作させるべきかを決定する手段である。応答手段は、前記役割決定手段の決定結果を示す応答信号を生成して前記要求信号の発信元のゲーム装置に送信する手段である。コントロールデータ管理手段は、前記決定手段が前記要求信号の発信元のゲーム装置を前記エリア情報に対応するエリアのエリアサーバとして動作させるべきだと決定したときに、少なくとも当該ゲーム装置のアドレス情報を前記コントロールデータに登録する手段である。そして、応答手段は、前記決定手段が前記要求信号の発信元のゲーム装置を前記エリア情報に対応するエリアのエリアクライアントとして動作させるべきだと決定したときに、前記コントロールデータに登録されている当該エリアのエリアサーバのアドレス情報を含む前記応答信号を生成して前記要求信号の発信元のゲーム装置に送信する。
【0017】
本発明の第2のネットワークゲームシステムは、上記第1のネットワークゲームシステムにおいて、前記ゲーム装置は、前記動作制御手段が当該ゲーム装置をエリアサーバまたはエリアクライアントとして動作させている間に、予め決められたエリア間移動条件を満たしたかどうかを判定する移動判定手段(32、S22、S28)をさらに備え、前記要求手段は、前記エリア間移動条件を満たしたと前記移動判定手段が判定したときに、プレイヤがプレイしようとするエリアを示すエリア情報として、移動先エリアを示すエリア情報を含む前記要求信号を生成して前記中央管理サーバに送信することを特徴とする(S30)。
【0018】
本発明の第3のネットワークゲームシステムは、上記第2のネットワークゲームシステムにおいて、前記エリア間移動条件は、プレイヤが操作する仮想ゲームエリア内のキャラクタが、当該仮想ゲームエリア内の所定位置に到達したことを含むことを特徴とする。
【0019】
本発明の第4のネットワークゲームシステムは、上記第1のネットワークゲームシステムにおいて、前記役割決定手段は、各エリアサーバの制御下で動作中のエリアクライアントの数を示す情報を含むコントロールデータを参照して、(a)前記エリアサーバ検索手段によって前記エリア情報に対応するエリアのゲーム処理を実行中のエリアサーバが存在すると判定され、かつ当該エリアサーバの制御下で動作中のエリアクライアントの数が予め決められた上限数に達していないと判定されたときには、前記要求信号の発信元のゲーム装置を当該エリアサーバの制御下でエリアクライアントとして動作させるべきだと決定し、(b)前記エリアサーバ検索手段によって前記エリア情報に対応するエリアのゲーム処理を実行中のエリアサーバが存在すると判定され、かつ当該エリアサーバの制御下で動作中のエリアクライアントの数が予め決められた上限数に達していると判定されたときには、前記要求信号の発信元のゲーム装置を前記エリア情報に対応するエリアのエリアサーバとして動作させるべきだと決定することを特徴とする。
【0020】
本発明の第5のネットワークゲームシステムは、上記第1のネットワークゲームシステムにおいて、前記要求手段は、前記要求信号を前記中央管理サーバに送信するときに、プレイヤによって選択された嗜好情報も送信し、前記役割決定手段は、前記ゲーム装置から受け取った嗜好情報を、他のゲーム装置から受け取った嗜好情報と比較し、当該比較結果に基づいて、当該要求信号の発信元のゲーム装置のログイン先となるエリアサーバを決定することを特徴とする。
【0021】
本発明の第6のネットワークゲームシステムは、上記第1のネットワークゲームシステムにおいて、前記要求手段は、前記要求信号を前記中央管理サーバに送信するときに、各プレイヤに固有に割り振られた番号を含むフレンド情報も送信し、前記役割決定手段は、前記ゲーム装置から受け取ったフレンド情報を、他のゲーム装置から受け取ったフレンド情報と比較し、当該比較結果に基づいて、当該要求信号の発信元のゲーム装置のログイン先となるエリアサーバを決定することを特徴とする。
【発明の効果】
【0022】
請求項1に記載の発明によれば、クライアントがゲームを開始するとき、予め少なくともサーバにプレイするプレイ領域の情報を送信しておくので、他のクライアントがネットに接続してきたときに、既に同じプレイ領域でプレイ中のクライアントがあれば、そのクライアントにログインさせることができる。これにより、処理負荷の分散が図られる。ネットワークゲームへの参加は、単にプレイしたいエリアを選択するだけで、ログイン処理等はプレイヤが特に意識しなくても自動的に実行されるため、従来のネットワークゲームシステムで見られたログイン手続のような煩雑な処理も不要となり、ネットワークゲームのプレイをスムーズに開始することができる。
【0023】
上記第2および第3のネットワークゲームシステムによれば、ゲームプレイ中にエリア間を移動する状況が発生した場合であっても、手動でのログアウト手続や、従来のネットワークゲームシステムのようなロビーでのエリア選択手続やログイン手続をすることなしに、プレイヤは移動先のエリアで引き続きゲームをプレイすることができ、プレイヤはエリア間をスムーズに移動することができる。
【0024】
上記第4のネットワークゲームシステムによれば、予め一つのエリアサーバで処理可能なエリアクライアントの上限数を予め決めておき、エリアサーバに接続されているエリアクライアントがこの上限数に到達したときには、このエリアサーバにはそれ以上のエリアクライアントを接続しないようにする。これにより、想定されるネットのトラフィックの増大による不具合を防止することができる。
【0025】
上記第5のネットワークゲームシステムによれば、プレイヤが多人数プレイを好むか、個人プレイを好むかなどのゲームプレイに係るプレイヤの嗜好に応じてクライアントの接続先が選択されるので、個々のプレイヤのニーズにマッチしたネットワークゲームを提供することができる。
【0026】
上記第6のネットワークゲームシステムによれば、仲の良いプレイヤがすでにゲームプレイ中である場合に、そのプレイヤが属しているグループに優先的にログインして、仲の良いプレイヤ同士で一緒にゲームを楽しむことができるようになる。
【発明を実施するための最良の形態】
【0027】
本実施形態に係るネットワークゲームシステムは、図1のように、中央管理サーバ10と複数のゲーム装置20からなる。なお、ネットワークゲームシステムを構成するゲーム装置の数は3台に限らない。中央管理サーバ10と複数のゲーム装置20は、インターネットを介して互いに通信することができる。
【0028】
中央管理サーバ10は、インターネットに接続された大型コンピュータであって、ネットワークゲームにログインしようとするゲーム装置からの参加要求などを処理する。中央管理サーバ10としては、演算装置(CPU)と記憶装置(ハードディスク、RAM)を備えた汎用的なコンピュータを利用することができる。中央管理サーバ10は、記憶装置に記憶されたコンピュータプログラムに従って種々の処理を実行することによってネットワークゲームシステムを管理する。
【0029】
図2は、ゲーム装置20の外観図である。ゲーム装置20は、ゲーム装置本体26とコントローラ28からなる。コントローラ28は、通信ケーブルを介して、ゲーム装置本体26に設けられた複数(図2では4つ)のコントローラポート用コネクタのいずれかに接続される。ゲーム装置本体26には、DVD−ROM24および外部メモリカード30が着脱自在に装着される。また、ゲーム装置本体26は、AVケーブルによってモニタ22と接続されている。モニタ22にはスピーカ22aが内蔵されている。なお、ゲーム装置本体26とコントローラ28間の通信は無線通信であってもよい。
【0030】
DVD−ROM24は、ゲームプログラムやゲームデータを固定的に記憶している。なお、ゲームプログラム等を記憶する手段として、DVD−ROM24の代わりに例えばCD−ROM、MO、メモリカード、ROMカートリッジ等の外部記憶媒体を用いてもよい。
【0031】
外部メモリカード30は、フラッシュメモリ等の書き換え可能な記憶媒体によって構成され、ゲームのセーブデータ等を記録する。
【0032】
ゲーム装置本体26は、DVD−ROM24に記録されているゲームプログラムを読み出し、読み出したゲームプログラムに応じた処理を行う。
【0033】
コントローラ28は、複数の操作スイッチを有する入力装置である。コントローラ28は、プレイヤの入力操作に応じて、操作データをゲーム装置本体26に出力する。
【0034】
モニタ22は、ゲーム装置本体26から出力される映像信号基づいて画像を表示し、同じくゲーム装置本体26から出力される音声信号に基づいて音声をスピーカ22aより出力する。
【0035】
図3は、ゲーム装置本体26の内部構成を示すブロック図である。図3において、ゲーム装置本体26には、CPU32およびそれに接続されるメモリコントローラ42が設けられる。メモリコントローラ42は、GPU(Graphics Processig Unit)34、メインメモリ36、DSP(Digital Signal Processor)38、および各種インターフェース(I/F)44、46、48、50、52に接続される。メモリコントローラ42は、これら各構成要素間のデータ転送を制御する。
【0036】
DVD−ROM24に記憶されているゲームプログラムは、ディスクドライブ54、ディスクI/F52およびメモリコントローラ42を介して、メインメモリ36に読み込まれる。このメインメモリ36上のゲームプログラムをCPU32が実行することによってゲームが開始される。
【0037】
コントローラ28から出力される操作データは、コントローラI/F44およびメモリコントローラ42を介してCPU32に供給される。CPU32は、入力された操作データに応じてゲーム処理を行う。ゲーム処理における画像データ生成等に際して、GPU34やDSP38が用いられる。ARAM40は、DSP38が処理を行う際に用いられる。
【0038】
GPU34は、モニタ22に表示すべき画像を生成する。そして、この画像に対応する映像信号がメモリコントローラ42およびビデオI/F46を介してモニタ22に出力される。
【0039】
本ネットワークゲームシステムで実行されるゲームは、一例として、図4に示すような4つのエリア(エリアA〜D)を含む広大な仮想ゲーム世界で展開されるロールプレイングゲームであって、各エリアにおいて複数のプレイヤが同時にゲームに参加することができる。プレイヤは、予め用意された4つのエリアの中から所望のエリアを選択してゲームに参加することができる。プレイヤは、コントローラ28を用いて仮想ゲーム世界のプレイヤキャラクタを操作することによって、モンスターと戦ったり、洞窟を探検して財宝を発見したりすることができる。プレイヤ(プレイヤキャラクタ)は、エリア内を自由に移動することができ、さらにエリア間を自由に行き来することもできる。例えば図4において、エリアAはエリアB,Cにつながっており、プレイヤはエリアAからエリアBやエリアCに移動することができる。同様に、エリアBはエリアA,Dに、エリアCはエリアA,Dに、エリアDはエリアB,Cに、それぞれつながっている。また、プレイヤキャラクタが仮想ゲーム世界の終端(例えばエリアAの左端)を超えたときには、仮想ゲーム世界の反対側(例えばエリアBの右端)からプレイヤキャラクタが出現する。
【0040】
本ネットワークゲームシステムでは、図5に示すように、エリア毎に、1台以上のゲーム装置20が集まってグループを形成する。そして、各グループ内で1台のゲーム装置20がエリアサーバとなって、対応するエリアのゲーム処理を担当する。グループ内の他のゲーム装置20は、エリアクライアントとなってエリアサーバと通信し、エリアサーバの制御下で動作する。以下では、便宜上、エリアAに対応するゲーム装置20のグループをグループAと称し、グループA内のエリアサーバをエリアサーバAと称し、グループA内のエリアクライアントをエリアクライアントAと称することとする(他のエリアについても同様)。なお、図5のグループBのように、そのエリアでプレイしているプレイヤが一人しかいないときには、1台のゲーム装置20のみでグループが構成されることになる。また、そのエリアでプレイしているプレイヤが一人もいないときには、そのエリアに対応するエリアサーバは存在しないことになる。
【0041】
基本的には、図5のようにエリア毎に1つのグループが形成されるが、状況によっては同一のエリアに対して複数のグループが形成される。例えば図6の例では、エリアAに対応するグループとして3つのグループが形成されている。以下では、便宜上、同一エリアに対応する複数のグループを互いに区別するために、例えば図6のエリアAに対応する3つのグループを、それぞれグループA−1、グループA−2、グループA−3と称することとする(他のエリアについても同様)。
【0042】
各ゲーム装置20に挿入されるDVD−ROM24には、図4のエリアA〜Dの各エリアにおけるゲーム処理を実行するためのゲームプログラムおよびゲームデータが記録されている。ここで、ゲームデータは、モンスターの難易度や能力パラメータなどの情報である。また、ゲームプログラムは、プレイヤキャラクタが倒したモンスターの難易度から経験値を算出したり、プレイヤキャラクタの能力パラメータ(攻撃力、守備力など)とモンスターの能力パラメータとを対比してモンスターやプレイヤキャラクタが受けるダメージを算出したりといったゲーム処理をCPU32に実行させるものである。
【0043】
本ネットワークゲームシステムでは、上記のような経験値の算出処理やダメージの算出処理は、エリアサーバによって行われる。エリアクライアントは、上記の経験値の算出処理やダメージの算出処理に必要となるデータをエリアサーバに適宜に送信し、エリアサーバからその算出結果を受信する。このように、本ネットワークゲームシステムでは、各グループにおけるゲームをエリアサーバが一括して制御することにより、ゲーム装置20間でゲーム内容にズレが生じる(同期が失われる)のを防止することができる。また、エリアクライアントからはエリアサーバのゲームプログラムやゲームデータを改竄することはできないので、チートの防止にもつながる。
【0044】
中央管理サーバ10は、図7に示すように、既にゲームが開始されているエリアの情報、そのエリアでプレイしているプレイヤの人数やレベルや嗜好、そのエリアに参加しているゲーム装置20のIPアドレス(特に、各エリアのエリアサーバのIPアドレス)などのコントロールデータを記憶装置に格納して管理(リアルタイムに更新)する。なお、コントロールデータはプレイヤの数に比例して莫大な情報量になるため、中央管理サーバ10にコントロールデータを一括して記憶させるのではなく、必要に応じて、図8に示すように1台以上のゲーム装置20にコントロールデータの一部を記憶させるようにしてもよい。ただしこの場合でも、少なくとも各エリアのエリアサーバのIPアドレスと、コントロールデータを記憶しているゲーム装置20のIPアドレスについては中央管理サーバ10の記憶装置に保持されている必要がある。
【0045】
中央管理サーバ10は、ゲーム装置20からゲームへの参加要求を受け取ると、上記コントロールデータに基づいて、このゲーム装置20を既存のいずれのグループに加えるべきかを決定し、この決定結果をゲーム装置20に通知する。すなわち、中央管理サーバ10は、ゲーム装置20をグループへ割り振る役目を果たすものであって、ゲーム処理自体は行わない。
【0046】
<ゲーム開始>
以下、あるプレイヤがゲームに参加する際のゲーム装置20および中央管理サーバ10の動作について具体的に説明する。
【0047】
プレイヤがゲーム装置20にDVD−ROM24を装着してゲーム装置20の電源を投入すると、DVD−ROM24に記録されているゲームプログラムがメインメモリ36にロードされ、モニタ22にゲームの初期画面が表示される。以下、ゲーム装置20は、このメインメモリ36にロードされたゲームプログラムに従って動作する。
【0048】
ゲームの初期画面が表示された後、プレイヤは必要に応じて嗜好情報を入力する。嗜好情報とは、例えば「単独プレイを希望」、「多人数プレイを希望」、「コミュニケーションを重視」、「モンスターとの戦闘を重視」などのようなプレイヤの嗜好を表す情報である。嗜好情報の入力は、典型的には、ゲーム装置20がモニタ22に表示した嗜好情報のリストの中から、プレイヤが所望の嗜好情報を選択することによって行われる。プレイヤによって入力された嗜好情報はゲーム装置20のメインメモリ36に格納される。
【0049】
次にプレイヤは、エリアA〜Dの4つのエリアのうち、プレイしたいエリアを入力する。以下では、プレイヤがエリアAを選択したものとして説明する。
【0050】
プレイヤによってエリアAが選択されると、ゲーム装置20は、プレイヤがプレイしようとしているエリア(ここではエリアA)を示すエリア情報を含んだゲーム開始要求信号を生成して、中央管理サーバ10に送信する。なお、このゲーム開始要求信号と一緒に(または個別に)、図7や図8に示したキャラクタ情報、すなわちプレイヤのレベルや、プレイヤによって入力された嗜好情報や、後述するフレンド情報(一緒にゲームをプレイしたい他のプレイヤを表す情報)も中央管理サーバ10に送信される。このような情報は、中央管理サーバ10がこのゲーム装置20をどのグループに割り振るかを決定する際に適宜に利用される。
【0051】
以下では、ゲーム開始要求信号を送信したゲーム装置20とこのゲーム装置20を使用しているプレイヤを、他のゲーム装置20やプレイヤと区別するために、便宜上、第1のゲーム装置、第1のプレイヤとそれぞれ称することにする。
【0052】
中央管理サーバ10は、第1のゲーム装置20からゲーム開始要求信号を受け取ると、この要求信号に含まれているエリア情報(ここではエリアAを示している)を参照し、既にエリアAでゲームを開始している他のゲーム装置20が存在するか否かを判別する。この判別は、中央管理サーバ10の記憶装置に記憶されているコントロールデータに基づいて行われる。なお、図8のようにコントロールデータの一部を中央管理サーバ10の代わりに1以上のゲーム装置20が記憶している場合には、中央管理サーバ10はこのゲーム装置20から判別に必要なコントロールデータを取得して上記判別を行う。
【0053】
上記の判別の結果、既にエリアAでゲームを開始している他のゲーム装置20が存在することが判明すると、中央管理サーバ10は、コントロールデータからエリアAでゲームをプレイ中のプレイヤのレベルや嗜好情報を取得し、第1のゲーム装置20から受け取った第2のプレイヤのレベルや嗜好情報と比較する。なお、図5に示すように、エリアAでゲームをプレイ中のプレイヤが複数存在する場合には、これらの複数のプレイヤのレベルや嗜好情報をそれぞれ平均化したものを、第1のゲーム装置20から受け取った第1のプレイヤのレベルおよび嗜好情報とそれぞれ比較するようにしてもよい。また、図6に示すように、エリアAでゲームをプレイ中のゲーム装置20が複数グループ存在する場合には、上記比較はグループ毎に行われる。
【0054】
上記の比較に加えて、中央管理サーバ10は、エリアAでゲームをプレイ中の各グループにおけるプレイヤ数が予め定められた上限数(例えば16人)に達しているかどうかをコントロールデータを参照して判定する。
【0055】
中央管理サーバ10は、上記比較および判定をグループ毎に行った結果、第1のプレイヤのレベルおよび嗜好情報とグループのレベル(または平均レベル)および嗜好情報(または平均嗜好情報)との関係が予め定められた合致条件(例えば、両者のレベル差が小さく、かつ両者の嗜好が一致もしくは近いこと)を満たしており、かつグループに参加しているプレイヤ数が予め定められた上限数に達していないグループが存在している場合には、第1のゲーム装置20にそのグループのエリアクライアントとして動作させるべく、そのグループのエリアサーバのIPアドレスを含む応答信号を第1のゲーム装置20に送信する。この応答信号を受け取った第1のゲーム装置20は、この応答信号に含まれるIPアドレスを利用してエリアサーバにログイン要求を行ってそのグループに参加する。
【0056】
一方、既にエリアAでゲームを開始している他のゲーム装置20が1台も存在しない場合、もしくは、既にエリアAでゲームを開始している他のゲーム装置20が存在していたとしても、上記合致条件を満たしているグループが1つも存在しない場合またはグループに参加しているプレイヤ数が予め定められた上限数に達していないグループが1つも存在しない場合には、中央管理サーバ10は、第1のゲーム装置20に新たなエリアAのグループを形成させるべく、ゲームクリエイト指示を含む応答信号を第1のゲーム装置20に送信する。この応答信号を受け取った第1のゲーム装置20は、新たなエリアAのグループのエリアサーバとしてゲーム処理を開始する。なお、このようにゲームクリエイト指示を受けて第1のゲーム装置20がゲーム処理を開始した直後は、第1のゲーム装置20だけでグループが構成されることになるが、その後、このグループに他のゲーム装置20が順次ログインすることによって、このグループを構成するゲーム装置20の数が順次増加する。
【0057】
以上のように、本ネットワークゲームシステムによれば、中央管理サーバ10の管理の下で、エリアサーバが必要に応じて適宜に追加されるため、極めて低コストで大人数の参加できるネットワークゲームを提供できる。しかも同じエリアでゲームをするプレイヤが大人数になったとしても、同一エリアに対応する複数のグループが生成されて、複数のエリアサーバでそのエリアのゲーム処理の負荷を分散できるため、処理遅延による操作性の低下や、同一のエリアに多数のプレイヤキャラクタが密集してしまうようなことを回避することができる。
【0058】
また、ネットワークゲームへの参加は、単にプレイしたいエリアを選択するだけで、ログイン処理等はプレイヤが特に意識しなくても自動的に実行されるため、従来のネットワークゲームシステムで見られたログイン手続の煩雑さも解消される。
【0059】
<エリア間移動>
次に、第1のプレイヤが上記のようにしてエリアAでゲームプレイを開始した後、プレイヤ(もしくはプレイヤキャラクタ)が、あるエリアから別のエリアに移動するときの処理について説明する。
【0060】
第1のゲーム装置20は、第1のプレイヤがエリアAでゲームをプレイしている間、予め決められたエリア間移動条件が満たされたかどうかを判定する。ここでは、エリア間移動条件が、第1のプレイヤが操作するプレイヤキャラクタがエリア間の境界地点に到達することであるものとして説明する。なお、エリア間移動条件の他の例としては、プレイヤキャラクタがエリア内に設けられた特定のワープポイントや階段や扉に到達することや、プレイヤキャラクタのレベルや所持金など、特定のゲームパラメータの値が所定値に到達したことなどが考えられる。
【0061】
第1のプレイヤの操作入力に基づいてプレイヤキャラクタがエリアAとエリアBの境界地点に到達すると、第1のゲーム装置20は、プレイヤが移動しようとしている移動先のエリア(ここではエリアB)を示すエリア情報を含んだエリア間移動要求信号を生成して、中央管理サーバ10に送信する。なお、このエリア間移動要求信号と一緒に(または個別に)、図7や図8に示したキャラクタ情報、すなわちプレイヤのレベルや、プレイヤによって入力された嗜好情報や、後述するフレンド情報(一緒にゲームをプレイしたい他のプレイヤを表す情報)も中央管理サーバ10に送信される。
【0062】
中央管理サーバ10は、第1のゲーム装置20からエリア間移動要求信号を受け取ると、この要求信号に含まれているエリア情報(ここではエリアBを示している)を参照し、既にエリアBでゲームを開始している他のゲーム装置20が存在するか否かを判別する。
【0063】
上記の判別の結果、既にエリアBでゲームを開始している他のゲーム装置20が存在することが判明すると、中央管理サーバ10は、コントロールデータからエリアBでゲームをプレイ中のプレイヤのレベルや嗜好情報を取得し、第1のゲーム装置20から受け取った第2のプレイヤのレベルや嗜好情報と比較する。
【0064】
上記の比較に加えて、中央管理サーバ10は、エリアBでゲームをプレイ中の各グループにおけるプレイヤ数が予め定められた上限数(例えば16人)に達しているかどうかをコントロールデータを参照して判定する。
【0065】
中央管理サーバ10は、上記比較および判定をグループ毎に行った結果、第1のプレイヤのレベルおよび嗜好情報とグループのレベルおよび嗜好情報との関係が予め定められた合致条件を満たしており、かつグループに参加しているプレイヤ数が予め定められた上限数に達していないグループが存在している場合には、第1のゲーム装置20にそのグループのエリアクライアントとして動作させるべく、そのグループのエリアサーバのIPアドレスを含む応答信号を第1のゲーム装置20に送信する。この応答信号を受け取った第1のゲーム装置20は、この応答信号に含まれるIPアドレスを利用してエリアサーバにログイン要求を行ってそのグループに参加する。こうして、第1のプレイヤのエリアAからエリアBへの移動が完了する。
【0066】
一方、既にエリアBでゲームを開始している他のゲーム装置20が1台も存在しない場合、もしくは、既にエリアBでゲームを開始している他のゲーム装置20が存在していたとしても、上記合致条件を満たしているグループが1つも存在しない場合またはグループに参加しているプレイヤ数が予め定められた上限数に達していないグループが1つも存在しない場合には、中央管理サーバ10は、第1のゲーム装置20に新たなエリアBのグループを形成させるべく、ゲームクリエイト指示を含む応答信号を第1のゲーム装置20に送信する。この応答信号を受け取った第1のゲーム装置20は、新たなエリアBのグループのエリアサーバとしてゲーム処理を開始する。こうして、第1のプレイヤのエリアAからエリアBへの移動が完了する。
【0067】
上記のようなエリア間移動の過程では、第1のプレイヤによる特別な操作入力(例えば従来のネットワークゲームシステムにおけるロビーでのエリア選択手続やログイン手続など)は特に必要とされない。つまり、第1のプレイヤにとっては、上記のようなエリア間移動処理を何ら意識することなしに、エリア間の移動が自動的に完了することになる。これにより、エリア間を移動する度にロビーに一旦戻ってエリア選択手続をしたりログイン手続をしたりする煩わしさが解消される。またエリア間を移動する度にゲームが中断されることもなくなるので、プレイヤがゲーム世界に浸っている状態から現実世界に引き戻されてしまうことを回避できる。
【0068】
次に、図9のフローチャートを参照して、ゲーム装置20の動作手順(より正確にはコンピュータプログラムに基づくCPU32の動作手順)を説明する。
【0069】
ステップS10で、CPU32は、プレイヤにプレイしたいエリアを選択させる。
【0070】
ステップS12では、プレイヤが選択したエリアを示すエリア情報を含むゲーム開始要求信号を生成し、中央管理サーバ10に送信する。
【0071】
ステップS14では、中央管理サーバ10から応答信号を受信する。
【0072】
ステップS16では、中央管理サーバ10から受信した応答信号がゲームクリエイト指示かどうかを判断する。中央管理サーバ10から受信した応答信号がゲームクリエイト指示であった場合はステップS18に進み、中央管理サーバ10から受信した応答信号がゲームクリエイト指示でなかった場合はステップS24に進む。
【0073】
ステップS18では、既存のエリアサーバにログインすることなく、単独でゲーム処理を開始(すなわちゲームクリエイト)する。
【0074】
ステップS20では、エリアサーバとして必要な処理を実行する。この処理には、例えば他のゲーム装置からのログイン要求の処理や、エリアクライアントからゲーム処理に利用するデータを受け取って、各エリアクライアントから受け取ったデータに基づいてゲーム処理(ダメージ量の計算や取得経験値の計算など)を行って、その処理結果をエリアクライアントに返信する処理などが含まれる。
【0075】
ステップS22では、予め決められたエリア間移動条件を満たしたかどうかを判断する。エリア間移動条件を満たしていない場合にはエリアサーバとしての動作を継続し、エリア間移動条件を満たした場合には現在所属しているグループからログオフしてステップS30に進む。なお、エリアサーバがグループから離脱する場合には、後述するように、そのグループにおけるエリアサーバとしての役割を、同じグループ内のいずれかのエリアクライアントに継承する処理を行ってから離脱することが好ましい。
【0076】
ステップS24では、中央管理サーバ10からの応答信号に含まれているエリアサーバのIPアドレスを用いて、このエリアサーバにログインする。
【0077】
ステップS26では、ステップS24でログインしたエリアサーバの制御下でエリアクライアントとして動作する。
【0078】
ステップS28では、予め決められたエリア間移動条件を満たしたかどうかを判断する。エリア間移動条件を満たしていない場合にはエリアクライアントとしての動作を継続し、エリア間移動条件を満たした場合には現在所属しているグループからログオフしてステップS30に進む。
【0079】
ステップS30では、移動先エリアを示すエリア情報を含むエリア間移動要求信号を生成し、中央管理サーバ10に送信する。
【0080】
次に、図10のフローチャートを参照して、中央管理サーバ10の動作手順(より正確にはコンピュータプログラムに基づくCPU等の演算装置の動作手順)を説明する。
【0081】
ステップS32で、演算装置は、ゲーム装置20から要求信号(ゲーム開始要求信号またはエリア間移動要求信号)を受信したかどうかを判断し、要求信号を受信した場合にはステップS34に進む。
【0082】
ステップS34では、コントロールデータを参照して、ゲーム装置20から受信した要求信号に適合するグループを検索する。この検索処理では、前述したように、要求信号に含まれているエリア情報だけでなく、ゲーム装置20から要求信号とともに送られてきた嗜好情報やレベル情報やフレンド情報や、各グループに参加しているプレイヤ数なども考慮される。ステップS34の処理の詳細はすでに説明しているため、ここでは説明を省略する。
【0083】
ステップS36では、ステップS34の検索結果から、要求信号に適合するグループが存在しているかどうかを判断し、要求信号に適合するグループが存在していた場合にはステップS38に進み、要求信号に適合するグループが存在していない場合にはステップS42に進む。
【0084】
ステップS38では、要求信号に適合するグループ(要求信号に適合するグループが複数存在する場合には、必要に応じてそれらの仲から最適なグループを選択する)のエリアサーバのIPアドレスをコントロールデータから取得し、このIPアドレスを含む応答信号を生成して、要求信号の送信元のゲーム装置20に対してこの応答信号を送信する。
【0085】
ステップS40では、中央管理サーバ10の記憶装置に保持されているコントロールデータを更新する(必要に応じて、ゲーム装置に図8のようにして部分的に保持されているコントロールデータも更新する)。より具体的には、要求信号の送信元のゲーム装置がログインしたグループに関して、その参加プレイヤ数をインクリメントしたり、そのゲーム装置のフレンド情報を登録したり、また必要に応じてそのグループのプレイヤのレベルの平均値等を求めて保存したりなどして、コントロールデータを更新する。
【0086】
ステップS42では、ゲームクリエイト指示を含む応答信号を生成して、要求信号の送信元のゲーム装置20に対してこの応答信号を送信する。
【0087】
ステップS44では、中央管理サーバ10の記憶装置に保持されているコントロールデータを更新する(必要に応じて、ゲーム装置に図8のようにして部分的に保持されているコントロールデータも更新する)。より具体的には、要求信号の送信元のゲーム装置によって新たに構成されたグループに関して、このグループのエリアサーバのIPアドレス(すなわち要求信号の送信元のゲーム装置のIPアドレス)や、そのグループに対応するエリアを示す情報や、グループに参加しているプレイヤの数(ここでは1人)やレベルや嗜好情報やフレンド情報を、コントロールデータに登録する。
【0088】
<チート対策>
次に、本ネットワークゲームシステムにおいて、チートを防止するための手法について説明する。チートとは、ゲームプログラム(ダメージ量の計算プログラムなど)やキャラクタデータ(キャラクタの能力や状態などを表すデータ)やゲームデータ(モンスターの能力値などのデータ)の不正な改ざん行為を指す。
【0089】
一般に、チートは以下のような手法で行われる。
(1)ゲームプログラムやゲームデータを改ざんして、不当な経験値を得たりや不当なダメージを敵に与えるようにしてゲームを容易にする。
(2)キャラクタデータを直接改ざんしてキャラクタのレベルやヒットポイント(最大HP、現在HP)などを不当に多くする。
【0090】
上記の(1)のケースのチート行為は本ネットワークゲームシステムに置いてはエリアサーバにおいてのみ行われ得る。エリアサーバとして動作しているゲーム装置(以下ではゲーム装置Xと称す)においてゲームプログラムやゲームデータが改ざんされると、エリアサーバからエリアクライアントへ不当なゲームプレイ情報(エリアサーバにおけるゲーム処理結果)が送られることになる。
【0091】
エリアクライアントは、エリアサーバから受け取ったゲームプレイ情報が不当であることを検出すると、そのことを中央管理サーバ10に通知する。この通知を受けた中央管理サーバ10は、エリアサーバであるゲーム装置Xに対してゲームプログラムとゲームデータのチェックサムを送るように指示する。この指示に対してゲーム装置Xから回答がない場合、あるいはゲーム装置Xから送られてきたチェックサムの値が不正であった場合は、中央管理サーバ10はこのゲーム装置Xからエリアサーバとしての権限を奪い、いずれかのエリアクライアントに対してエリアサーバとして動作するように指示する。これ以後は、この新たなエリアサーバによってゲームプレイ情報が生成されることになるので、ゲーム装置Xにおいて不当なゲームプレイ情報が生成されることはなくなる。
【0092】
なお、中央管理サーバ10において、ゲーム装置Xから送られてきたチェックサムの値が不正であるかどうかをチェックする方法は、公知の任意の手法を用いることができる。例えば、中央管理サーバ10は、エリアサーバで利用しているゲームプログラムおよびゲームデータと全く同一のデータを内部に保持しておき、ゲーム装置Xから送られてきたチェックサムの値と、自身が保持しているデータに基づいて計算したチェックサムの値とを照合するようにしてもよい。
【0093】
上記の(2)のケースのチート行為として、ネットワークゲームにログインしようとしているゲーム装置(以下、ゲーム装置Yと称す)において、キャラクタデータの改ざんが行われた場合のその検出方法を述べる。
【0094】
ゲーム装置Yがエリアサーバにログインすると、このエリアサーバは、ゲームプレイ情報生成のために必要なキャラクタデータをゲーム装置Yから受け取る。このとき、エリアサーバは、キャラクタデータのほかにキャラクタデータのチェックサムもゲーム装置Yから受け取る。そしてエリアサーバは、こうして受け取ったキャラクタデータおよびチェックサムに基づいて、ゲーム装置Yのキャラクタデータが不当ではないかどうかを判断する。不当であると判断された場合は、エリアサーバはゲーム装置Yのログインを拒否する。これにより、キャラクタデータを不正に改ざんしたゲーム装置がネットワークゲームに参加することを防止することができる。
【0095】
以上のような手法によれば、エリアサーバとエリアクライアントが互いに相手を監視してチートを検出するので、チートを効果的に防止することができる。
【0096】
なお単独プレイの場合(すなわち1台のゲーム装置20のみでグループが構成されている状態)は上記のような相互監視ができないため、チートが行いやすくなる。そこで、中央管理サーバ10は、適当な間隔で(例えばゲームを開始してから15分経過するごとに)単独プレイ中のゲーム装置20からプログラムデータ等のチェックサムを取得して、このゲーム装置20においてチートが行われていないかどうかを確認するのが好ましい。
【0097】
<フレンド情報>
次に、フレンド情報の活用方法について説明する。
【0098】
中央管理サーバ10に対して要求信号を送信した第1のゲーム装置のログイン先のグループは、純粋にレベル差や嗜好だけから決定されても良いが、その場合、一緒にゲームをプレイするメンバーが毎回ほぼランダムに変化することになり、つまり、各プレイヤは意図的に好みのプレイヤと一緒にゲームをプレイすることができない。
【0099】
上記の問題を解決するための方法として、プレイヤ毎に固有に割り当てられた、例えば1番〜16777215番までのいずれかの番号(ゲーム中では、例えば1番〜16777215番までのいずれかの数字が割り当てられた「鍵」として表現される)を、例えば図11のようにゲーム中で仲の良いプレイヤにフレンド情報として配布し、次回のゲームプレイ時には、このフレンド情報を利用して仲の良いプレイヤ同士を優先的に同一のグループに所属させることが考えられる。
【0100】
各プレイヤに固有に割り当てられたフレンド情報は、ゲーム装置20が中央管理サーバ10に要求信号(ゲーム開始要求信号またはエリア間移動要求信号)を送信する際に一緒に中央管理サーバ10に送信され、コントロールデータに登録される。例えば、あるゲーム装置20が要求信号を中央管理サーバ10に送信するときには、このゲーム装置を使用しているプレイヤに固有に割り当てられたフレンド情報が、このゲーム装置20のメインメモリ36から読み出されて中央管理サーバ10に送信され、コントロールデータに登録される。つまりコントロールデータには、常に、現在ゲームプレイ中の各プレイヤに割り当てられたフレンド情報が、そのプレイヤが参加しているグループに関連付けて記憶されていることになる。
【0101】
ここで、第1のプレイヤが、仲の良い第2のプレイヤのフレンド情報(例えば65535番)を第2のプレイヤからすでに入手しており、第2のプレイヤと一緒にゲームをプレイすることを希望する場合には、第1のプレイヤ(より正確には第1のプレイヤのゲーム装置20)は、要求信号を中央管理サーバ10に送信する際に、この第2のプレイヤのフレンド情報も一緒に中央管理サーバ10に送信する。中央管理サーバ10では、第1のプレイヤから送信された第2のプレイヤのフレンド情報をコントロールデータと照合し、第2のプレイヤが現在ゲームプレイ中かどうかを判断する。ここで、もしこの時点で第2のプレイヤがゲームをプレイ中であったとすれば、第2のプレイヤのフレンド情報(65535番)はコントロールデータに既に登録されているはずであり、このコントロールデータに基づいて、第2のプレイヤが参加しているグループを特定することができる。すると、中央管理サーバ10は、第2のプレイヤが参加しているグループのエリアサーバのIPアドレスをコントロールデータから取り出して、このIPアドレスを含む応答信号を第1のプレイヤのゲーム装置20に送信する。第1のプレイヤのゲーム装置は、このIPアドレスに基づいて、第2のプレイヤが参加しているグループにログインすることができ、その結果、第1のプレイヤは、第2のプレイヤと一緒にゲームをプレイすることができる。
【0102】
<エリアサーバの消滅対策>
次に、本ネットワークゲームシステムにおいて、エリアサーバがネットワークからふいに消滅した場合の対策について説明する。本ネットワークゲームシステムでは、エリアクライアントはエリアサーバの制御下で動作しているおり、エリアクライアントはエリアサーバと常にデータ交信を行っている。ここで、仮にエリアサーバと2台のエリアクライアント(それぞれエリアクライアントA、Bと称す)で構成されたネットワークにおいて、エリアサーバの電源が切断されるなどしてエリアサーバがネットワークから消滅すると、エリアサーバと各エリアクライアントA、Bとの間の交信が断絶されるので、各エリアクライアントA、Bは、それをすぐに検知することができる。すると、各エリアクライアントA、Bは、中央管理サーバ10に対して、エリアサーバがネットワークから消滅したことを報告する。これを受けて中央管理サーバ10は、残ったエリアクライアント(ここではエリアクライアントA、B)の中から、エリアサーバとしての役割を果たすのによりふさわしいエリアクライアントを、例えばPINGコマンドに対する応答速度を比較するなどによって選択し、そのエリアクライアント(ここでは仮にエリアクライアントAとする)に対して、新しいエリアサーバとなるように指令を出す。これと同時に、残りのエリアクライアント(ここではエリアクライアントB)には、新しいエリアサーバ(すなわちエリアクライアントAだったゲーム装置20)のIPアドレスを通知して、新しいエリアサーバにログインするよう通知する。これにより、エリアサーバが突然ネットワーク上から消滅しても、そこにログインしていたプレイヤがゲームを中断されることがなくなる。
【0103】
なお、エリアサーバがネットワークから突然に消滅したときに、残ったいずれかのエリアクライアントがエリアサーバの役割を継承するためには、敵モンスターの種類、与えたダメージの総計、仲間プレイヤの情報など、エリアサーバが実行すべきゲーム処理に必要なデータの全てを両者の間で常に共有しておく必要がある。そのためには、エリアサーバはゲーム処理で行われた演算結果を全て、エリアサーバの候補となる少なくとも1台のエリアクライアントに常に送っておく必要がある。ただし、エリアクライアントにおいては、エリアサーバから送られてくる情報を単に受け取って保持しておくだけであり、それに基づく演算処理を自身が行うわけではないので、エリアクライアントの処理負担が増えることはない。あくまでもゲームに関する演算処理はエリアサーバだけが行う。
【0104】
なお、上記の説明は、エリアサーバが急にネットワークから消滅した場合に関するものであるが、エリアサーバのユーザがゲームを正常に終了させるときや、エリアサーバのユーザが他のエリアに移動するような場合には、より簡単に、エリアサーバの役割を他のいずれかのエリアクライアントに継承することができる。つまりこの場合には、エリアサーバは、プレイヤによるゲーム終了指示やエリア間移動を検出した時点で、ゲーム処理に必要な全てのデータをいずれかのエリアクライアントに送信してエリアサーバの役割をこのエリアクライアントに継承し、さらにエリアサーバが変更された旨を中央管理サーバ10に通知し、その後にゲーム終了処理またはエリア間移動処理を行えばよい。
【図面の簡単な説明】
【0105】
【図1】本発明の一実施形態に係るネットワークゲームシステムの構成を示す図
【図2】ゲーム装置の外観図
【図3】ゲーム装置の内部構成を示すブロック図
【図4】仮想ゲーム世界の構成例
【図5】ネットワークの構成例
【図6】ネットワークの他の構成例
【図7】コントロールデータとキャラクタデータを示す図
【図8】コントロールデータが分散して保持される例
【図9】ゲーム装置の動作を示すフローチャート
【図10】中央管理サーバの動作を示すフローチャート
【図11】フレンド情報配布時のゲーム画面例
【符号の説明】
【0106】
10 中央管理サーバ
20 ゲーム装置
22 モニタ
22a スピーカ
24 DVD−ROM
26 ゲーム装置本体
28 コントローラ
30 外部メモリカード
32 CPU
34 GPU
36 メインメモリ
38 DSP
40 ARAM
42 メモリコントローラ
44 コントローラI/F
46 ビデオI/F
48 外部メモリI/F
50 オーディオI/F
52 ディスクI/F
54 ディスクドライブ
56 通信部
【特許請求の範囲】
【請求項1】
複数のエリアで構成された仮想ゲーム世界で複数のプレイヤが同時にゲームをプレイすることのできるネットワークゲームシステムであって、
前記ネットワークゲームシステムは、
少なくとも一つの中央管理サーバと、
当該中央管理サーバとネットワークを介して通信可能であって、各エリアのゲーム処理を担うエリアサーバとしての機能と、エリアサーバと通信してエリアサーバの制御下で動作するエリアクライアントとしての機能を併せ持った複数のゲーム装置とで構成され、
前記ゲーム装置は、
プレイヤがプレイしようとするエリアを示すエリア情報を少なくとも含む要求信号を生成して前記中央管理サーバに送信する要求手段と、
前記要求信号に対する前記中央管理サーバからの応答信号に応じて、プレイヤがプレイしようとするエリアのエリアクライアントもしくはエリアサーバとしてゲーム装置を動作させる動作制御手段とを備え、
前記中央管理サーバは、
前記ゲーム装置からの要求信号に含まれているエリア情報に対応するエリアのゲーム処理を実行中のエリアサーバが存在するかどうかを、少なくとも各エリアサーバのアドレス情報を含むコントロールデータを参照して判定するエリアサーバ検索手段と、
前記エリアサーバ検索手段の判定結果に基づいて、前記要求信号の発信元のゲーム装置を前記エリア情報に対応するエリアのエリアサーバとして動作させるべきかエリアクライアントとして動作させるべきかを決定する役割決定手段と、
前記役割決定手段の決定結果を示す応答信号を生成して前記要求信号の発信元のゲーム装置に送信する応答手段と、
前記決定手段が前記要求信号の発信元のゲーム装置を前記エリア情報に対応するエリアのエリアサーバとして動作させるべきだと決定したときに、少なくとも当該ゲーム装置のアドレス情報を前記コントロールデータに登録するコントロールデータ管理手段とを備え、
前記応答手段は、前記決定手段が前記要求信号の発信元のゲーム装置を前記エリア情報に対応するエリアのエリアクライアントとして動作させるべきだと決定したときに、前記コントロールデータに登録されている当該エリアのエリアサーバのアドレス情報を含む前記応答信号を生成して前記要求信号の発信元のゲーム装置に送信する、ネットワークゲームシステム。
【請求項2】
前記ゲーム装置は、
前記動作制御手段が当該ゲーム装置をエリアサーバまたはエリアクライアントとして動作させている間に、予め決められたエリア間移動条件を満たしたかどうかを判定する移動判定手段をさらに備え、
前記要求手段は、前記エリア間移動条件を満たしたと前記移動判定手段が判定したときに、プレイヤがプレイしようとするエリアを示すエリア情報として、移動先エリアを示すエリア情報を含む前記要求信号を生成して前記中央管理サーバに送信することを特徴とする、請求項1に記載のネットワークゲームシステム。
【請求項3】
前記エリア間移動条件は、プレイヤが操作する仮想ゲームエリア内のキャラクタが、当該仮想ゲームエリア内の所定位置に到達したことを含むことを特徴とする、請求項2に記載のネットワークゲームシステム。
【請求項4】
前記役割決定手段は、各エリアサーバの制御下で動作中のエリアクライアントの数を示す情報を含むコントロールデータを参照して、
(a)前記エリアサーバ検索手段によって前記エリア情報に対応するエリアのゲーム処理を実行中のエリアサーバが存在すると判定され、かつ当該エリアサーバの制御下で動作中のエリアクライアントの数が予め決められた上限数に達していないと判定されたときには、前記要求信号の発信元のゲーム装置を当該エリアサーバの制御下でエリアクライアントとして動作させるべきだと決定し、
(b)前記エリアサーバ検索手段によって前記エリア情報に対応するエリアのゲーム処理を実行中のエリアサーバが存在すると判定され、かつ当該エリアサーバの制御下で動作中のエリアクライアントの数が予め決められた上限数に達していると判定されたときには、前記要求信号の発信元のゲーム装置を前記エリア情報に対応するエリアのエリアサーバとして動作させるべきだと決定することを特徴とする、請求項1に記載のネットワークゲームシステム。
【請求項5】
前記要求手段は、前記要求信号を前記中央管理サーバに送信するときに、プレイヤによって選択された嗜好情報も送信し、
前記役割決定手段は、前記ゲーム装置から受け取った嗜好情報を、他のゲーム装置から受け取った嗜好情報と比較し、当該比較結果に基づいて、当該要求信号の発信元のゲーム装置のログイン先となるエリアサーバを決定することを特徴とする、請求項1に記載のネットワークゲームシステム。
【請求項6】
前記要求手段は、前記要求信号を前記中央管理サーバに送信するときに、各プレイヤに固有に割り振られた番号を含むフレンド情報も送信し、
前記役割決定手段は、前記ゲーム装置から受け取ったフレンド情報を、他のゲーム装置から受け取ったフレンド情報と比較し、当該比較結果に基づいて、当該要求信号の発信元のゲーム装置のログイン先となるエリアサーバを決定することを特徴とする、請求項1に記載のネットワークゲームシステム。
【請求項1】
複数のエリアで構成された仮想ゲーム世界で複数のプレイヤが同時にゲームをプレイすることのできるネットワークゲームシステムであって、
前記ネットワークゲームシステムは、
少なくとも一つの中央管理サーバと、
当該中央管理サーバとネットワークを介して通信可能であって、各エリアのゲーム処理を担うエリアサーバとしての機能と、エリアサーバと通信してエリアサーバの制御下で動作するエリアクライアントとしての機能を併せ持った複数のゲーム装置とで構成され、
前記ゲーム装置は、
プレイヤがプレイしようとするエリアを示すエリア情報を少なくとも含む要求信号を生成して前記中央管理サーバに送信する要求手段と、
前記要求信号に対する前記中央管理サーバからの応答信号に応じて、プレイヤがプレイしようとするエリアのエリアクライアントもしくはエリアサーバとしてゲーム装置を動作させる動作制御手段とを備え、
前記中央管理サーバは、
前記ゲーム装置からの要求信号に含まれているエリア情報に対応するエリアのゲーム処理を実行中のエリアサーバが存在するかどうかを、少なくとも各エリアサーバのアドレス情報を含むコントロールデータを参照して判定するエリアサーバ検索手段と、
前記エリアサーバ検索手段の判定結果に基づいて、前記要求信号の発信元のゲーム装置を前記エリア情報に対応するエリアのエリアサーバとして動作させるべきかエリアクライアントとして動作させるべきかを決定する役割決定手段と、
前記役割決定手段の決定結果を示す応答信号を生成して前記要求信号の発信元のゲーム装置に送信する応答手段と、
前記決定手段が前記要求信号の発信元のゲーム装置を前記エリア情報に対応するエリアのエリアサーバとして動作させるべきだと決定したときに、少なくとも当該ゲーム装置のアドレス情報を前記コントロールデータに登録するコントロールデータ管理手段とを備え、
前記応答手段は、前記決定手段が前記要求信号の発信元のゲーム装置を前記エリア情報に対応するエリアのエリアクライアントとして動作させるべきだと決定したときに、前記コントロールデータに登録されている当該エリアのエリアサーバのアドレス情報を含む前記応答信号を生成して前記要求信号の発信元のゲーム装置に送信する、ネットワークゲームシステム。
【請求項2】
前記ゲーム装置は、
前記動作制御手段が当該ゲーム装置をエリアサーバまたはエリアクライアントとして動作させている間に、予め決められたエリア間移動条件を満たしたかどうかを判定する移動判定手段をさらに備え、
前記要求手段は、前記エリア間移動条件を満たしたと前記移動判定手段が判定したときに、プレイヤがプレイしようとするエリアを示すエリア情報として、移動先エリアを示すエリア情報を含む前記要求信号を生成して前記中央管理サーバに送信することを特徴とする、請求項1に記載のネットワークゲームシステム。
【請求項3】
前記エリア間移動条件は、プレイヤが操作する仮想ゲームエリア内のキャラクタが、当該仮想ゲームエリア内の所定位置に到達したことを含むことを特徴とする、請求項2に記載のネットワークゲームシステム。
【請求項4】
前記役割決定手段は、各エリアサーバの制御下で動作中のエリアクライアントの数を示す情報を含むコントロールデータを参照して、
(a)前記エリアサーバ検索手段によって前記エリア情報に対応するエリアのゲーム処理を実行中のエリアサーバが存在すると判定され、かつ当該エリアサーバの制御下で動作中のエリアクライアントの数が予め決められた上限数に達していないと判定されたときには、前記要求信号の発信元のゲーム装置を当該エリアサーバの制御下でエリアクライアントとして動作させるべきだと決定し、
(b)前記エリアサーバ検索手段によって前記エリア情報に対応するエリアのゲーム処理を実行中のエリアサーバが存在すると判定され、かつ当該エリアサーバの制御下で動作中のエリアクライアントの数が予め決められた上限数に達していると判定されたときには、前記要求信号の発信元のゲーム装置を前記エリア情報に対応するエリアのエリアサーバとして動作させるべきだと決定することを特徴とする、請求項1に記載のネットワークゲームシステム。
【請求項5】
前記要求手段は、前記要求信号を前記中央管理サーバに送信するときに、プレイヤによって選択された嗜好情報も送信し、
前記役割決定手段は、前記ゲーム装置から受け取った嗜好情報を、他のゲーム装置から受け取った嗜好情報と比較し、当該比較結果に基づいて、当該要求信号の発信元のゲーム装置のログイン先となるエリアサーバを決定することを特徴とする、請求項1に記載のネットワークゲームシステム。
【請求項6】
前記要求手段は、前記要求信号を前記中央管理サーバに送信するときに、各プレイヤに固有に割り振られた番号を含むフレンド情報も送信し、
前記役割決定手段は、前記ゲーム装置から受け取ったフレンド情報を、他のゲーム装置から受け取ったフレンド情報と比較し、当該比較結果に基づいて、当該要求信号の発信元のゲーム装置のログイン先となるエリアサーバを決定することを特徴とする、請求項1に記載のネットワークゲームシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2006−191975(P2006−191975A)
【公開日】平成18年7月27日(2006.7.27)
【国際特許分類】
【出願番号】特願2005−4219(P2005−4219)
【出願日】平成17年1月11日(2005.1.11)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成18年7月27日(2006.7.27)
【国際特許分類】
【出願日】平成17年1月11日(2005.1.11)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]