(57)【要約】【課題】  特定のコンピュータに処理負荷が集中することがなく、各プレイヤが快適にゲームをプレイすることのできるネットワークゲームシステムを提供すること。【解決手段】  ゲーム装置２０は、プレイヤがプレイしようとしているエリアを示すエリア情報を含んだ要求信号を中央管理サーバ１０に送信する。中央管理サーバ１０は、この要求信号が示すエリアのゲーム処理を実行しているエリアサーバがすでに存在しているかどうかを判断し、このエリアに対応するエリアサーバがすでに存在している場合には、要求信号の発信元のゲーム装置２０をそのエリアサーバの制御下で動作するエリアクライアントとして動作させる。一方、このエリアに対応するエリアサーバが存在していない場合には、このゲーム装置２０を、このエリアのゲーム処理を実行するエリアサーバとして動作させる。【選択図】  図１
2006191975.tif 000002
【特許請求の範囲】
【請求項１】
複数のエリアで構成された仮想ゲーム世界で複数のプレイヤが同時にゲームをプレイすることのできるネットワークゲームシステムであって、
前記ネットワークゲームシステムは、
少なくとも一つの中央管理サーバと、
当該中央管理サーバとネットワークを介して通信可能であって、各エリアのゲーム処理を担うエリアサーバとしての機能と、エリアサーバと通信してエリアサーバの制御下で動作するエリアクライアントとしての機能を併せ持った複数のゲーム装置とで構成され、
前記ゲーム装置は、
プレイヤがプレイしようとするエリアを示すエリア情報を少なくとも含む要求信号を生成して前記中央管理サーバに送信する要求手段と、
前記要求信号に対する前記中央管理サーバからの応答信号に応じて、プレイヤがプレイしようとするエリアのエリアクライアントもしくはエリアサーバとしてゲーム装置を動作させる動作制御手段とを備え、
前記中央管理サーバは、
前記ゲーム装置からの要求信号に含まれているエリア情報に対応するエリアのゲーム処理を実行中のエリアサーバが存在するかどうかを、少なくとも各エリアサーバのアドレス情報を含むコントロールデータを参照して判定するエリアサーバ検索手段と、
前記エリアサーバ検索手段の判定結果に基づいて、前記要求信号の発信元のゲーム装置を前記エリア情報に対応するエリアのエリアサーバとして動作させるべきかエリアクライアントとして動作させるべきかを決定する役割決定手段と、
前記役割決定手段の決定結果を示す応答信号を生成して前記要求信号の発信元のゲーム装置に送信する応答手段と、
前記決定手段が前記要求信号の発信元のゲーム装置を前記エリア情報に対応するエリアのエリアサーバとして動作させるべきだと決定したときに、少なくとも当該ゲーム装置のアドレス情報を前記コントロールデータに登録するコントロールデータ管理手段とを備え、
前記応答手段は、前記決定手段が前記要求信号の発信元のゲーム装置を前記エリア情報に対応するエリアのエリアクライアントとして動作させるべきだと決定したときに、前記コントロールデータに登録されている当該エリアのエリアサーバのアドレス情報を含む前記応答信号を生成して前記要求信号の発信元のゲーム装置に送信する、ネットワークゲームシステム。
【請求項２】
前記ゲーム装置は、
前記動作制御手段が当該ゲーム装置をエリアサーバまたはエリアクライアントとして動作させている間に、予め決められたエリア間移動条件を満たしたかどうかを判定する移動判定手段をさらに備え、
前記要求手段は、前記エリア間移動条件を満たしたと前記移動判定手段が判定したときに、プレイヤがプレイしようとするエリアを示すエリア情報として、移動先エリアを示すエリア情報を含む前記要求信号を生成して前記中央管理サーバに送信することを特徴とする、請求項１に記載のネットワークゲームシステム。
【請求項３】
前記エリア間移動条件は、プレイヤが操作する仮想ゲームエリア内のキャラクタが、当該仮想ゲームエリア内の所定位置に到達したことを含むことを特徴とする、請求項２に記載のネットワークゲームシステム。
【請求項４】
前記役割決定手段は、各エリアサーバの制御下で動作中のエリアクライアントの数を示す情報を含むコントロールデータを参照して、
（ａ）前記エリアサーバ検索手段によって前記エリア情報に対応するエリアのゲーム処理を実行中のエリアサーバが存在すると判定され、かつ当該エリアサーバの制御下で動作中のエリアクライアントの数が予め決められた上限数に達していないと判定されたときには、前記要求信号の発信元のゲーム装置を当該エリアサーバの制御下でエリアクライアントとして動作させるべきだと決定し、
（ｂ）前記エリアサーバ検索手段によって前記エリア情報に対応するエリアのゲーム処理を実行中のエリアサーバが存在すると判定され、かつ当該エリアサーバの制御下で動作中のエリアクライアントの数が予め決められた上限数に達していると判定されたときには、前記要求信号の発信元のゲーム装置を前記エリア情報に対応するエリアのエリアサーバとして動作させるべきだと決定することを特徴とする、請求項１に記載のネットワークゲームシステム。
【請求項５】
前記要求手段は、前記要求信号を前記中央管理サーバに送信するときに、プレイヤによって選択された嗜好情報も送信し、
前記役割決定手段は、前記ゲーム装置から受け取った嗜好情報を、他のゲーム装置から受け取った嗜好情報と比較し、当該比較結果に基づいて、当該要求信号の発信元のゲーム装置のログイン先となるエリアサーバを決定することを特徴とする、請求項１に記載のネットワークゲームシステム。
【請求項６】
前記要求手段は、前記要求信号を前記中央管理サーバに送信するときに、各プレイヤに固有に割り振られた番号を含むフレンド情報も送信し、
前記役割決定手段は、前記ゲーム装置から受け取ったフレンド情報を、他のゲーム装置から受け取ったフレンド情報と比較し、当該比較結果に基づいて、当該要求信号の発信元のゲーム装置のログイン先となるエリアサーバを決定することを特徴とする、請求項１に記載のネットワークゲームシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はネットワークゲームシステムに関し、特に複数のエリアで構成された仮想ゲーム世界で複数のプレイヤが同時にゲームをプレイすることのできるネットワークゲームシステムに関する。
【背景技術】
【０００２】
従来、ネットワークゲームシステムには大別してロビー型とサーバ型の２種類が存在する。
【０００３】
ロビー型ネットワークゲームシステムは、ロビーと呼ばれるチャットルームにてゲーム難易度や目的地を同じくするプレイヤを募り、限られた数の複数のプレイヤ（通常４〜８人程度）でゲームを行うものである。ロビー型ネットワークゲームシステムの場合、ゲーム開始後はサーバすなわちロビー（或いはチャットルーム）と各プレイヤとのネットワーク接続が切り離されるので、サーバの負担が軽く、少ないサーバで大人数のプレイヤ（数十万人）にゲームサービスを提供できるというメリットがあった。
【０００４】
一方、サーバ型ネットワークゲームシステムは即時にゲームを開始でき、またゲーム内でどんなプレイヤと出会えるか分からないという緊張感のあるゲームサービスを提供できるというメリットがあった。またサーバと常に通信しながらゲームが行われるためチートされにくいというメリットがあった。
【０００５】
また、特許文献１に記載の技術では、クライアントとサーバからなるネットワークゲームシステムの一例が開示されており、特にロビー型の技術について述べられている。すなわち、プレイヤはサーバから送られてくるプレイゾーンの情報に基づいて、自分がプレイしたいロビーに接続して、ゲームプレイに参加することができる。
【０００６】
また、特許文献２に記載の技術では、クライアントとサーバからなるネットワークシステムにおいて、クライアントからの要求に応じて処理を行うサーバの機能もクライアント側に持たせておく。こうして、処理負荷が所定の数値に達するまでは、所定のサーバ処理を行っているクライアントに他のクライアントを接続して、処理負荷の分散を行うネットワークシステムが開示されている。
【特許文献１】特開２００３−８８６８４号公報
【特許文献２】特開２００１−８４２３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところが、ロビー型ネットワークゲームシステムの場合、ロビーにてプレイヤを募るのに時間がかかり、なかなかゲームを開始できないというデメリットがあった。また、別の難易度や別の目的地でゲームを行いたいときは、一旦ゲームを終了し、再度ロビーでプレイヤを募りなおさなければならないという問題があった。さらに、ユーザ端末はサーバとは切り離されてゲームを行うため、いんちきプレイ（いわゆるチート）が簡単に行われてしまうというデメリットがあった。
【０００８】
また、サーバ型ネットワークゲームシステムは、全プレイヤがサーバと同時に通信しながらゲームが行われるためサーバの負担が極めて重く、１つのサーバに同時にログインできるユーザは数千人に限られてしまうというデメリットがあった。数十万人にゲームサービスを提供しようとすると数百台のサーバを用意しなければならず、莫大なコストが必要であるというデメリットがあった。さらに、ひとつのエリアで同時にプレイできる人数が限られ、同一画面内の所定人数（数十名程度）を超えると互いの通信トラフィックが階乗的に増加し、ゲームが非常に重くなるという問題があった。
【０００９】
また、特許文献１に記載の技術では、プレイヤの嗜好に合ったネットワークゲームをプレイすることができるが、ロビーやプレイエリアなどに応じて多くのサーバを設置しなければならず、一度に多くのアクセスが集中すると、トラフィックの増大に伴うネットワークシステムの不具合が発生する恐れがある上、レスポンスも悪くなる。それ故、ゲームに参加できる人数も制限されることになる。
【００１０】
また、一方特許文献２に記載の技術では、処理負荷は分散されるが、クライアントの接続先は、単に処理負荷のみに基づいて選択されてしまう。そのため、このシステムをネットワークゲームシステムに適用すると、プレイヤの嗜好に応じたゲームプレイを行うことができない。
【００１１】
それゆえに本発明の目的は、プレイヤ数が大きく増加しても特定のコンピュータに処理負荷が集中することがなく、なおかつゲームプレイ開始時の手続等の煩わしさもなく、各プレイヤがより快適にゲームをプレイすることのできるネットワークゲームシステムを提供することである。
【００１２】
また、本発明の他の目的は、各プレイヤが、自分の希望に合った条件でゲームをプレイすることができるネットワークゲームシステムを提供することである。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明は以下の構成を採用した。なお、括弧内の参照符号および図番号は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【００１４】
本発明の第１のネットワークゲームシステムは、複数のエリア（図４）で構成された仮想ゲーム世界で複数のプレイヤが同時にゲームをプレイすることのできるネットワークゲームシステムである。このネットワークゲームシステムは、少なくとも一つの中央管理サーバ（１０）と、当該中央管理サーバとネットワークを介して通信可能であって、各エリアのゲーム処理を担うエリアサーバとしての機能と、エリアサーバと通信してエリアサーバの制御下で動作するエリアクライアントとしての機能を併せ持った複数のゲーム装置（２０）とで構成される。
【００１５】
ゲーム装置は、要求手段（３２、Ｓ１２）と、動作制御手段（３２、Ｓ２０、Ｓ２６）とを備える。要求手段は、プレイヤがプレイしようとするエリアを示すエリア情報を少なくとも含む要求信号を生成して前記中央管理サーバに送信する手段である。動作制御手段は、記要求信号に対する前記中央管理サーバからの応答信号に応じて、プレイヤがプレイしようとするエリアのエリアクライアントもしくはエリアサーバとしてゲーム装置を動作させる手段である。
【００１６】
中央管理サーバは、エリアサーバ検索手段（演算装置、Ｓ３４）と、役割決定手段（演算装置、Ｓ３６）と、応答手段（演算装置、Ｓ３８、Ｓ４２）と、データ管理手段（演算装置、Ｓ４０、Ｓ４４）とを備える。エリアサーバ検索手段は、前記ゲーム装置からの要求信号に含まれているエリア情報に対応するエリアのゲーム処理を実行中のエリアサーバが存在するかどうかを、少なくとも各エリアサーバのアドレス情報（ＩＰアドレス）を含むコントロールデータ（図７）を参照して判定する手段である。役割決定手段は、前記エリアサーバ検索手段の判定結果に基づいて、前記要求信号の発信元のゲーム装置を前記エリア情報に対応するエリアのエリアサーバとして動作させるべきかエリアクライアントとして動作させるべきかを決定する手段である。応答手段は、前記役割決定手段の決定結果を示す応答信号を生成して前記要求信号の発信元のゲーム装置に送信する手段である。コントロールデータ管理手段は、前記決定手段が前記要求信号の発信元のゲーム装置を前記エリア情報に対応するエリアのエリアサーバとして動作させるべきだと決定したときに、少なくとも当該ゲーム装置のアドレス情報を前記コントロールデータに登録する手段である。そして、応答手段は、前記決定手段が前記要求信号の発信元のゲーム装置を前記エリア情報に対応するエリアのエリアクライアントとして動作させるべきだと決定したときに、前記コントロールデータに登録されている当該エリアのエリアサーバのアドレス情報を含む前記応答信号を生成して前記要求信号の発信元のゲーム装置に送信する。
【００１７】
本発明の第２のネットワークゲームシステムは、上記第１のネットワークゲームシステムにおいて、前記ゲーム装置は、前記動作制御手段が当該ゲーム装置をエリアサーバまたはエリアクライアントとして動作させている間に、予め決められたエリア間移動条件を満たしたかどうかを判定する移動判定手段（３２、Ｓ２２、Ｓ２８）をさらに備え、前記要求手段は、前記エリア間移動条件を満たしたと前記移動判定手段が判定したときに、プレイヤがプレイしようとするエリアを示すエリア情報として、移動先エリアを示すエリア情報を含む前記要求信号を生成して前記中央管理サーバに送信することを特徴とする（Ｓ３０）。
【００１８】
本発明の第３のネットワークゲームシステムは、上記第２のネットワークゲームシステムにおいて、前記エリア間移動条件は、プレイヤが操作する仮想ゲームエリア内のキャラクタが、当該仮想ゲームエリア内の所定位置に到達したことを含むことを特徴とする。
【００１９】
本発明の第４のネットワークゲームシステムは、上記第１のネットワークゲームシステムにおいて、前記役割決定手段は、各エリアサーバの制御下で動作中のエリアクライアントの数を示す情報を含むコントロールデータを参照して、（ａ）前記エリアサーバ検索手段によって前記エリア情報に対応するエリアのゲーム処理を実行中のエリアサーバが存在すると判定され、かつ当該エリアサーバの制御下で動作中のエリアクライアントの数が予め決められた上限数に達していないと判定されたときには、前記要求信号の発信元のゲーム装置を当該エリアサーバの制御下でエリアクライアントとして動作させるべきだと決定し、（ｂ）前記エリアサーバ検索手段によって前記エリア情報に対応するエリアのゲーム処理を実行中のエリアサーバが存在すると判定され、かつ当該エリアサーバの制御下で動作中のエリアクライアントの数が予め決められた上限数に達していると判定されたときには、前記要求信号の発信元のゲーム装置を前記エリア情報に対応するエリアのエリアサーバとして動作させるべきだと決定することを特徴とする。
【００２０】
本発明の第５のネットワークゲームシステムは、上記第１のネットワークゲームシステムにおいて、前記要求手段は、前記要求信号を前記中央管理サーバに送信するときに、プレイヤによって選択された嗜好情報も送信し、前記役割決定手段は、前記ゲーム装置から受け取った嗜好情報を、他のゲーム装置から受け取った嗜好情報と比較し、当該比較結果に基づいて、当該要求信号の発信元のゲーム装置のログイン先となるエリアサーバを決定することを特徴とする。
【００２１】
本発明の第６のネットワークゲームシステムは、上記第１のネットワークゲームシステムにおいて、前記要求手段は、前記要求信号を前記中央管理サーバに送信するときに、各プレイヤに固有に割り振られた番号を含むフレンド情報も送信し、前記役割決定手段は、前記ゲーム装置から受け取ったフレンド情報を、他のゲーム装置から受け取ったフレンド情報と比較し、当該比較結果に基づいて、当該要求信号の発信元のゲーム装置のログイン先となるエリアサーバを決定することを特徴とする。
【発明の効果】
【００２２】
請求項１に記載の発明によれば、クライアントがゲームを開始するとき、予め少なくともサーバにプレイするプレイ領域の情報を送信しておくので、他のクライアントがネットに接続してきたときに、既に同じプレイ領域でプレイ中のクライアントがあれば、そのクライアントにログインさせることができる。これにより、処理負荷の分散が図られる。ネットワークゲームへの参加は、単にプレイしたいエリアを選択するだけで、ログイン処理等はプレイヤが特に意識しなくても自動的に実行されるため、従来のネットワークゲームシステムで見られたログイン手続のような煩雑な処理も不要となり、ネットワークゲームのプレイをスムーズに開始することができる。
【００２３】
上記第２および第３のネットワークゲームシステムによれば、ゲームプレイ中にエリア間を移動する状況が発生した場合であっても、手動でのログアウト手続や、従来のネットワークゲームシステムのようなロビーでのエリア選択手続やログイン手続をすることなしに、プレイヤは移動先のエリアで引き続きゲームをプレイすることができ、プレイヤはエリア間をスムーズに移動することができる。
【００２４】
上記第４のネットワークゲームシステムによれば、予め一つのエリアサーバで処理可能なエリアクライアントの上限数を予め決めておき、エリアサーバに接続されているエリアクライアントがこの上限数に到達したときには、このエリアサーバにはそれ以上のエリアクライアントを接続しないようにする。これにより、想定されるネットのトラフィックの増大による不具合を防止することができる。
【００２５】
上記第５のネットワークゲームシステムによれば、プレイヤが多人数プレイを好むか、個人プレイを好むかなどのゲームプレイに係るプレイヤの嗜好に応じてクライアントの接続先が選択されるので、個々のプレイヤのニーズにマッチしたネットワークゲームを提供することができる。
【００２６】
上記第６のネットワークゲームシステムによれば、仲の良いプレイヤがすでにゲームプレイ中である場合に、そのプレイヤが属しているグループに優先的にログインして、仲の良いプレイヤ同士で一緒にゲームを楽しむことができるようになる。
【発明を実施するための最良の形態】
【００２７】
本実施形態に係るネットワークゲームシステムは、図１のように、中央管理サーバ１０と複数のゲーム装置２０からなる。なお、ネットワークゲームシステムを構成するゲーム装置の数は３台に限らない。中央管理サーバ１０と複数のゲーム装置２０は、インターネットを介して互いに通信することができる。
【００２８】
中央管理サーバ１０は、インターネットに接続された大型コンピュータであって、ネットワークゲームにログインしようとするゲーム装置からの参加要求などを処理する。中央管理サーバ１０としては、演算装置（ＣＰＵ）と記憶装置（ハードディスク、ＲＡＭ）を備えた汎用的なコンピュータを利用することができる。中央管理サーバ１０は、記憶装置に記憶されたコンピュータプログラムに従って種々の処理を実行することによってネットワークゲームシステムを管理する。
【００２９】
図２は、ゲーム装置２０の外観図である。ゲーム装置２０は、ゲーム装置本体２６とコントローラ２８からなる。コントローラ２８は、通信ケーブルを介して、ゲーム装置本体２６に設けられた複数（図２では４つ）のコントローラポート用コネクタのいずれかに接続される。ゲーム装置本体２６には、ＤＶＤ−ＲＯＭ２４および外部メモリカード３０が着脱自在に装着される。また、ゲーム装置本体２６は、ＡＶケーブルによってモニタ２２と接続されている。モニタ２２にはスピーカ２２ａが内蔵されている。なお、ゲーム装置本体２６とコントローラ２８間の通信は無線通信であってもよい。
【００３０】
ＤＶＤ−ＲＯＭ２４は、ゲームプログラムやゲームデータを固定的に記憶している。なお、ゲームプログラム等を記憶する手段として、ＤＶＤ−ＲＯＭ２４の代わりに例えばＣＤ−ＲＯＭ、ＭＯ、メモリカード、ＲＯＭカートリッジ等の外部記憶媒体を用いてもよい。
【００３１】
外部メモリカード３０は、フラッシュメモリ等の書き換え可能な記憶媒体によって構成され、ゲームのセーブデータ等を記録する。
【００３２】
ゲーム装置本体２６は、ＤＶＤ−ＲＯＭ２４に記録されているゲームプログラムを読み出し、読み出したゲームプログラムに応じた処理を行う。
【００３３】
コントローラ２８は、複数の操作スイッチを有する入力装置である。コントローラ２８は、プレイヤの入力操作に応じて、操作データをゲーム装置本体２６に出力する。
【００３４】
モニタ２２は、ゲーム装置本体２６から出力される映像信号基づいて画像を表示し、同じくゲーム装置本体２６から出力される音声信号に基づいて音声をスピーカ２２ａより出力する。
【００３５】
図３は、ゲーム装置本体２６の内部構成を示すブロック図である。図３において、ゲーム装置本体２６には、ＣＰＵ３２およびそれに接続されるメモリコントローラ４２が設けられる。メモリコントローラ４２は、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｇ  Ｕｎｉｔ）３４、メインメモリ３６、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）３８、および各種インターフェース（Ｉ／Ｆ）４４、４６、４８、５０、５２に接続される。メモリコントローラ４２は、これら各構成要素間のデータ転送を制御する。
【００３６】
ＤＶＤ−ＲＯＭ２４に記憶されているゲームプログラムは、ディスクドライブ５４、ディスクＩ／Ｆ５２およびメモリコントローラ４２を介して、メインメモリ３６に読み込まれる。このメインメモリ３６上のゲームプログラムをＣＰＵ３２が実行することによってゲームが開始される。
【００３７】
コントローラ２８から出力される操作データは、コントローラＩ／Ｆ４４およびメモリコントローラ４２を介してＣＰＵ３２に供給される。ＣＰＵ３２は、入力された操作データに応じてゲーム処理を行う。ゲーム処理における画像データ生成等に際して、ＧＰＵ３４やＤＳＰ３８が用いられる。ＡＲＡＭ４０は、ＤＳＰ３８が処理を行う際に用いられる。
【００３８】
ＧＰＵ３４は、モニタ２２に表示すべき画像を生成する。そして、この画像に対応する映像信号がメモリコントローラ４２およびビデオＩ／Ｆ４６を介してモニタ２２に出力される。
【００３９】
本ネットワークゲームシステムで実行されるゲームは、一例として、図４に示すような４つのエリア（エリアＡ〜Ｄ）を含む広大な仮想ゲーム世界で展開されるロールプレイングゲームであって、各エリアにおいて複数のプレイヤが同時にゲームに参加することができる。プレイヤは、予め用意された４つのエリアの中から所望のエリアを選択してゲームに参加することができる。プレイヤは、コントローラ２８を用いて仮想ゲーム世界のプレイヤキャラクタを操作することによって、モンスターと戦ったり、洞窟を探検して財宝を発見したりすることができる。プレイヤ（プレイヤキャラクタ）は、エリア内を自由に移動することができ、さらにエリア間を自由に行き来することもできる。例えば図４において、エリアＡはエリアＢ，Ｃにつながっており、プレイヤはエリアＡからエリアＢやエリアＣに移動することができる。同様に、エリアＢはエリアＡ，Ｄに、エリアＣはエリアＡ，Ｄに、エリアＤはエリアＢ，Ｃに、それぞれつながっている。また、プレイヤキャラクタが仮想ゲーム世界の終端（例えばエリアＡの左端）を超えたときには、仮想ゲーム世界の反対側（例えばエリアＢの右端）からプレイヤキャラクタが出現する。
【００４０】
本ネットワークゲームシステムでは、図５に示すように、エリア毎に、１台以上のゲーム装置２０が集まってグループを形成する。そして、各グループ内で１台のゲーム装置２０がエリアサーバとなって、対応するエリアのゲーム処理を担当する。グループ内の他のゲーム装置２０は、エリアクライアントとなってエリアサーバと通信し、エリアサーバの制御下で動作する。以下では、便宜上、エリアＡに対応するゲーム装置２０のグループをグループＡと称し、グループＡ内のエリアサーバをエリアサーバＡと称し、グループＡ内のエリアクライアントをエリアクライアントＡと称することとする（他のエリアについても同様）。なお、図５のグループＢのように、そのエリアでプレイしているプレイヤが一人しかいないときには、１台のゲーム装置２０のみでグループが構成されることになる。また、そのエリアでプレイしているプレイヤが一人もいないときには、そのエリアに対応するエリアサーバは存在しないことになる。
【００４１】
基本的には、図５のようにエリア毎に１つのグループが形成されるが、状況によっては同一のエリアに対して複数のグループが形成される。例えば図６の例では、エリアＡに対応するグループとして３つのグループが形成されている。以下では、便宜上、同一エリアに対応する複数のグループを互いに区別するために、例えば図６のエリアＡに対応する３つのグループを、それぞれグループＡ−１、グループＡ−２、グループＡ−３と称することとする（他のエリアについても同様）。
【００４２】
各ゲーム装置２０に挿入されるＤＶＤ−ＲＯＭ２４には、図４のエリアＡ〜Ｄの各エリアにおけるゲーム処理を実行するためのゲームプログラムおよびゲームデータが記録されている。ここで、ゲームデータは、モンスターの難易度や能力パラメータなどの情報である。また、ゲームプログラムは、プレイヤキャラクタが倒したモンスターの難易度から経験値を算出したり、プレイヤキャラクタの能力パラメータ（攻撃力、守備力など）とモンスターの能力パラメータとを対比してモンスターやプレイヤキャラクタが受けるダメージを算出したりといったゲーム処理をＣＰＵ３２に実行させるものである。
【００４３】
本ネットワークゲームシステムでは、上記のような経験値の算出処理やダメージの算出処理は、エリアサーバによって行われる。エリアクライアントは、上記の経験値の算出処理やダメージの算出処理に必要となるデータをエリアサーバに適宜に送信し、エリアサーバからその算出結果を受信する。このように、本ネットワークゲームシステムでは、各グループにおけるゲームをエリアサーバが一括して制御することにより、ゲーム装置２０間でゲーム内容にズレが生じる（同期が失われる）のを防止することができる。また、エリアクライアントからはエリアサーバのゲームプログラムやゲームデータを改竄することはできないので、チートの防止にもつながる。
【００４４】
中央管理サーバ１０は、図７に示すように、既にゲームが開始されているエリアの情報、そのエリアでプレイしているプレイヤの人数やレベルや嗜好、そのエリアに参加しているゲーム装置２０のＩＰアドレス（特に、各エリアのエリアサーバのＩＰアドレス）などのコントロールデータを記憶装置に格納して管理（リアルタイムに更新）する。なお、コントロールデータはプレイヤの数に比例して莫大な情報量になるため、中央管理サーバ１０にコントロールデータを一括して記憶させるのではなく、必要に応じて、図８に示すように１台以上のゲーム装置２０にコントロールデータの一部を記憶させるようにしてもよい。ただしこの場合でも、少なくとも各エリアのエリアサーバのＩＰアドレスと、コントロールデータを記憶しているゲーム装置２０のＩＰアドレスについては中央管理サーバ１０の記憶装置に保持されている必要がある。
【００４５】
中央管理サーバ１０は、ゲーム装置２０からゲームへの参加要求を受け取ると、上記コントロールデータに基づいて、このゲーム装置２０を既存のいずれのグループに加えるべきかを決定し、この決定結果をゲーム装置２０に通知する。すなわち、中央管理サーバ１０は、ゲーム装置２０をグループへ割り振る役目を果たすものであって、ゲーム処理自体は行わない。
【００４６】
＜ゲーム開始＞
以下、あるプレイヤがゲームに参加する際のゲーム装置２０および中央管理サーバ１０の動作について具体的に説明する。
【００４７】
プレイヤがゲーム装置２０にＤＶＤ−ＲＯＭ２４を装着してゲーム装置２０の電源を投入すると、ＤＶＤ−ＲＯＭ２４に記録されているゲームプログラムがメインメモリ３６にロードされ、モニタ２２にゲームの初期画面が表示される。以下、ゲーム装置２０は、このメインメモリ３６にロードされたゲームプログラムに従って動作する。
【００４８】
ゲームの初期画面が表示された後、プレイヤは必要に応じて嗜好情報を入力する。嗜好情報とは、例えば「単独プレイを希望」、「多人数プレイを希望」、「コミュニケーションを重視」、「モンスターとの戦闘を重視」などのようなプレイヤの嗜好を表す情報である。嗜好情報の入力は、典型的には、ゲーム装置２０がモニタ２２に表示した嗜好情報のリストの中から、プレイヤが所望の嗜好情報を選択することによって行われる。プレイヤによって入力された嗜好情報はゲーム装置２０のメインメモリ３６に格納される。
【００４９】
次にプレイヤは、エリアＡ〜Ｄの４つのエリアのうち、プレイしたいエリアを入力する。以下では、プレイヤがエリアＡを選択したものとして説明する。
【００５０】
プレイヤによってエリアＡが選択されると、ゲーム装置２０は、プレイヤがプレイしようとしているエリア（ここではエリアＡ）を示すエリア情報を含んだゲーム開始要求信号を生成して、中央管理サーバ１０に送信する。なお、このゲーム開始要求信号と一緒に（または個別に）、図７や図８に示したキャラクタ情報、すなわちプレイヤのレベルや、プレイヤによって入力された嗜好情報や、後述するフレンド情報（一緒にゲームをプレイしたい他のプレイヤを表す情報）も中央管理サーバ１０に送信される。このような情報は、中央管理サーバ１０がこのゲーム装置２０をどのグループに割り振るかを決定する際に適宜に利用される。
【００５１】
以下では、ゲーム開始要求信号を送信したゲーム装置２０とこのゲーム装置２０を使用しているプレイヤを、他のゲーム装置２０やプレイヤと区別するために、便宜上、第１のゲーム装置、第１のプレイヤとそれぞれ称することにする。
【００５２】
中央管理サーバ１０は、第１のゲーム装置２０からゲーム開始要求信号を受け取ると、この要求信号に含まれているエリア情報（ここではエリアＡを示している）を参照し、既にエリアＡでゲームを開始している他のゲーム装置２０が存在するか否かを判別する。この判別は、中央管理サーバ１０の記憶装置に記憶されているコントロールデータに基づいて行われる。なお、図８のようにコントロールデータの一部を中央管理サーバ１０の代わりに１以上のゲーム装置２０が記憶している場合には、中央管理サーバ１０はこのゲーム装置２０から判別に必要なコントロールデータを取得して上記判別を行う。
【００５３】
上記の判別の結果、既にエリアＡでゲームを開始している他のゲーム装置２０が存在することが判明すると、中央管理サーバ１０は、コントロールデータからエリアＡでゲームをプレイ中のプレイヤのレベルや嗜好情報を取得し、第１のゲーム装置２０から受け取った第２のプレイヤのレベルや嗜好情報と比較する。なお、図５に示すように、エリアＡでゲームをプレイ中のプレイヤが複数存在する場合には、これらの複数のプレイヤのレベルや嗜好情報をそれぞれ平均化したものを、第１のゲーム装置２０から受け取った第１のプレイヤのレベルおよび嗜好情報とそれぞれ比較するようにしてもよい。また、図６に示すように、エリアＡでゲームをプレイ中のゲーム装置２０が複数グループ存在する場合には、上記比較はグループ毎に行われる。
【００５４】
上記の比較に加えて、中央管理サーバ１０は、エリアＡでゲームをプレイ中の各グループにおけるプレイヤ数が予め定められた上限数（例えば１６人）に達しているかどうかをコントロールデータを参照して判定する。
【００５５】
中央管理サーバ１０は、上記比較および判定をグループ毎に行った結果、第１のプレイヤのレベルおよび嗜好情報とグループのレベル（または平均レベル）および嗜好情報（または平均嗜好情報）との関係が予め定められた合致条件（例えば、両者のレベル差が小さく、かつ両者の嗜好が一致もしくは近いこと）を満たしており、かつグループに参加しているプレイヤ数が予め定められた上限数に達していないグループが存在している場合には、第１のゲーム装置２０にそのグループのエリアクライアントとして動作させるべく、そのグループのエリアサーバのＩＰアドレスを含む応答信号を第１のゲーム装置２０に送信する。この応答信号を受け取った第１のゲーム装置２０は、この応答信号に含まれるＩＰアドレスを利用してエリアサーバにログイン要求を行ってそのグループに参加する。
【００５６】
一方、既にエリアＡでゲームを開始している他のゲーム装置２０が１台も存在しない場合、もしくは、既にエリアＡでゲームを開始している他のゲーム装置２０が存在していたとしても、上記合致条件を満たしているグループが１つも存在しない場合またはグループに参加しているプレイヤ数が予め定められた上限数に達していないグループが１つも存在しない場合には、中央管理サーバ１０は、第１のゲーム装置２０に新たなエリアＡのグループを形成させるべく、ゲームクリエイト指示を含む応答信号を第１のゲーム装置２０に送信する。この応答信号を受け取った第１のゲーム装置２０は、新たなエリアＡのグループのエリアサーバとしてゲーム処理を開始する。なお、このようにゲームクリエイト指示を受けて第１のゲーム装置２０がゲーム処理を開始した直後は、第１のゲーム装置２０だけでグループが構成されることになるが、その後、このグループに他のゲーム装置２０が順次ログインすることによって、このグループを構成するゲーム装置２０の数が順次増加する。
【００５７】
以上のように、本ネットワークゲームシステムによれば、中央管理サーバ１０の管理の下で、エリアサーバが必要に応じて適宜に追加されるため、極めて低コストで大人数の参加できるネットワークゲームを提供できる。しかも同じエリアでゲームをするプレイヤが大人数になったとしても、同一エリアに対応する複数のグループが生成されて、複数のエリアサーバでそのエリアのゲーム処理の負荷を分散できるため、処理遅延による操作性の低下や、同一のエリアに多数のプレイヤキャラクタが密集してしまうようなことを回避することができる。
【００５８】
また、ネットワークゲームへの参加は、単にプレイしたいエリアを選択するだけで、ログイン処理等はプレイヤが特に意識しなくても自動的に実行されるため、従来のネットワークゲームシステムで見られたログイン手続の煩雑さも解消される。
【００５９】
＜エリア間移動＞
次に、第１のプレイヤが上記のようにしてエリアＡでゲームプレイを開始した後、プレイヤ（もしくはプレイヤキャラクタ）が、あるエリアから別のエリアに移動するときの処理について説明する。
【００６０】
第１のゲーム装置２０は、第１のプレイヤがエリアＡでゲームをプレイしている間、予め決められたエリア間移動条件が満たされたかどうかを判定する。ここでは、エリア間移動条件が、第１のプレイヤが操作するプレイヤキャラクタがエリア間の境界地点に到達することであるものとして説明する。なお、エリア間移動条件の他の例としては、プレイヤキャラクタがエリア内に設けられた特定のワープポイントや階段や扉に到達することや、プレイヤキャラクタのレベルや所持金など、特定のゲームパラメータの値が所定値に到達したことなどが考えられる。
【００６１】
第１のプレイヤの操作入力に基づいてプレイヤキャラクタがエリアＡとエリアＢの境界地点に到達すると、第１のゲーム装置２０は、プレイヤが移動しようとしている移動先のエリア（ここではエリアＢ）を示すエリア情報を含んだエリア間移動要求信号を生成して、中央管理サーバ１０に送信する。なお、このエリア間移動要求信号と一緒に（または個別に）、図７や図８に示したキャラクタ情報、すなわちプレイヤのレベルや、プレイヤによって入力された嗜好情報や、後述するフレンド情報（一緒にゲームをプレイしたい他のプレイヤを表す情報）も中央管理サーバ１０に送信される。
【００６２】
中央管理サーバ１０は、第１のゲーム装置２０からエリア間移動要求信号を受け取ると、この要求信号に含まれているエリア情報（ここではエリアＢを示している）を参照し、既にエリアＢでゲームを開始している他のゲーム装置２０が存在するか否かを判別する。
【００６３】
上記の判別の結果、既にエリアＢでゲームを開始している他のゲーム装置２０が存在することが判明すると、中央管理サーバ１０は、コントロールデータからエリアＢでゲームをプレイ中のプレイヤのレベルや嗜好情報を取得し、第１のゲーム装置２０から受け取った第２のプレイヤのレベルや嗜好情報と比較する。
【００６４】
上記の比較に加えて、中央管理サーバ１０は、エリアＢでゲームをプレイ中の各グループにおけるプレイヤ数が予め定められた上限数（例えば１６人）に達しているかどうかをコントロールデータを参照して判定する。
【００６５】
中央管理サーバ１０は、上記比較および判定をグループ毎に行った結果、第１のプレイヤのレベルおよび嗜好情報とグループのレベルおよび嗜好情報との関係が予め定められた合致条件を満たしており、かつグループに参加しているプレイヤ数が予め定められた上限数に達していないグループが存在している場合には、第１のゲーム装置２０にそのグループのエリアクライアントとして動作させるべく、そのグループのエリアサーバのＩＰアドレスを含む応答信号を第１のゲーム装置２０に送信する。この応答信号を受け取った第１のゲーム装置２０は、この応答信号に含まれるＩＰアドレスを利用してエリアサーバにログイン要求を行ってそのグループに参加する。こうして、第１のプレイヤのエリアＡからエリアＢへの移動が完了する。
【００６６】
一方、既にエリアＢでゲームを開始している他のゲーム装置２０が１台も存在しない場合、もしくは、既にエリアＢでゲームを開始している他のゲーム装置２０が存在していたとしても、上記合致条件を満たしているグループが１つも存在しない場合またはグループに参加しているプレイヤ数が予め定められた上限数に達していないグループが１つも存在しない場合には、中央管理サーバ１０は、第１のゲーム装置２０に新たなエリアＢのグループを形成させるべく、ゲームクリエイト指示を含む応答信号を第１のゲーム装置２０に送信する。この応答信号を受け取った第１のゲーム装置２０は、新たなエリアＢのグループのエリアサーバとしてゲーム処理を開始する。こうして、第１のプレイヤのエリアＡからエリアＢへの移動が完了する。
【００６７】
上記のようなエリア間移動の過程では、第１のプレイヤによる特別な操作入力（例えば従来のネットワークゲームシステムにおけるロビーでのエリア選択手続やログイン手続など）は特に必要とされない。つまり、第１のプレイヤにとっては、上記のようなエリア間移動処理を何ら意識することなしに、エリア間の移動が自動的に完了することになる。これにより、エリア間を移動する度にロビーに一旦戻ってエリア選択手続をしたりログイン手続をしたりする煩わしさが解消される。またエリア間を移動する度にゲームが中断されることもなくなるので、プレイヤがゲーム世界に浸っている状態から現実世界に引き戻されてしまうことを回避できる。
【００６８】
次に、図９のフローチャートを参照して、ゲーム装置２０の動作手順（より正確にはコンピュータプログラムに基づくＣＰＵ３２の動作手順）を説明する。
【００６９】
ステップＳ１０で、ＣＰＵ３２は、プレイヤにプレイしたいエリアを選択させる。
【００７０】
ステップＳ１２では、プレイヤが選択したエリアを示すエリア情報を含むゲーム開始要求信号を生成し、中央管理サーバ１０に送信する。
【００７１】
ステップＳ１４では、中央管理サーバ１０から応答信号を受信する。
【００７２】
ステップＳ１６では、中央管理サーバ１０から受信した応答信号がゲームクリエイト指示かどうかを判断する。中央管理サーバ１０から受信した応答信号がゲームクリエイト指示であった場合はステップＳ１８に進み、中央管理サーバ１０から受信した応答信号がゲームクリエイト指示でなかった場合はステップＳ２４に進む。
【００７３】
ステップＳ１８では、既存のエリアサーバにログインすることなく、単独でゲーム処理を開始（すなわちゲームクリエイト）する。
【００７４】
ステップＳ２０では、エリアサーバとして必要な処理を実行する。この処理には、例えば他のゲーム装置からのログイン要求の処理や、エリアクライアントからゲーム処理に利用するデータを受け取って、各エリアクライアントから受け取ったデータに基づいてゲーム処理（ダメージ量の計算や取得経験値の計算など）を行って、その処理結果をエリアクライアントに返信する処理などが含まれる。
【００７５】
ステップＳ２２では、予め決められたエリア間移動条件を満たしたかどうかを判断する。エリア間移動条件を満たしていない場合にはエリアサーバとしての動作を継続し、エリア間移動条件を満たした場合には現在所属しているグループからログオフしてステップＳ３０に進む。なお、エリアサーバがグループから離脱する場合には、後述するように、そのグループにおけるエリアサーバとしての役割を、同じグループ内のいずれかのエリアクライアントに継承する処理を行ってから離脱することが好ましい。
【００７６】
ステップＳ２４では、中央管理サーバ１０からの応答信号に含まれているエリアサーバのＩＰアドレスを用いて、このエリアサーバにログインする。
【００７７】
ステップＳ２６では、ステップＳ２４でログインしたエリアサーバの制御下でエリアクライアントとして動作する。
【００７８】
ステップＳ２８では、予め決められたエリア間移動条件を満たしたかどうかを判断する。エリア間移動条件を満たしていない場合にはエリアクライアントとしての動作を継続し、エリア間移動条件を満たした場合には現在所属しているグループからログオフしてステップＳ３０に進む。
【００７９】
ステップＳ３０では、移動先エリアを示すエリア情報を含むエリア間移動要求信号を生成し、中央管理サーバ１０に送信する。
【００８０】
次に、図１０のフローチャートを参照して、中央管理サーバ１０の動作手順（より正確にはコンピュータプログラムに基づくＣＰＵ等の演算装置の動作手順）を説明する。
【００８１】
ステップＳ３２で、演算装置は、ゲーム装置２０から要求信号（ゲーム開始要求信号またはエリア間移動要求信号）を受信したかどうかを判断し、要求信号を受信した場合にはステップＳ３４に進む。
【００８２】
ステップＳ３４では、コントロールデータを参照して、ゲーム装置２０から受信した要求信号に適合するグループを検索する。この検索処理では、前述したように、要求信号に含まれているエリア情報だけでなく、ゲーム装置２０から要求信号とともに送られてきた嗜好情報やレベル情報やフレンド情報や、各グループに参加しているプレイヤ数なども考慮される。ステップＳ３４の処理の詳細はすでに説明しているため、ここでは説明を省略する。
【００８３】
ステップＳ３６では、ステップＳ３４の検索結果から、要求信号に適合するグループが存在しているかどうかを判断し、要求信号に適合するグループが存在していた場合にはステップＳ３８に進み、要求信号に適合するグループが存在していない場合にはステップＳ４２に進む。
【００８４】
ステップＳ３８では、要求信号に適合するグループ（要求信号に適合するグループが複数存在する場合には、必要に応じてそれらの仲から最適なグループを選択する）のエリアサーバのＩＰアドレスをコントロールデータから取得し、このＩＰアドレスを含む応答信号を生成して、要求信号の送信元のゲーム装置２０に対してこの応答信号を送信する。
【００８５】
ステップＳ４０では、中央管理サーバ１０の記憶装置に保持されているコントロールデータを更新する（必要に応じて、ゲーム装置に図８のようにして部分的に保持されているコントロールデータも更新する）。より具体的には、要求信号の送信元のゲーム装置がログインしたグループに関して、その参加プレイヤ数をインクリメントしたり、そのゲーム装置のフレンド情報を登録したり、また必要に応じてそのグループのプレイヤのレベルの平均値等を求めて保存したりなどして、コントロールデータを更新する。
【００８６】
ステップＳ４２では、ゲームクリエイト指示を含む応答信号を生成して、要求信号の送信元のゲーム装置２０に対してこの応答信号を送信する。
【００８７】
ステップＳ４４では、中央管理サーバ１０の記憶装置に保持されているコントロールデータを更新する（必要に応じて、ゲーム装置に図８のようにして部分的に保持されているコントロールデータも更新する）。より具体的には、要求信号の送信元のゲーム装置によって新たに構成されたグループに関して、このグループのエリアサーバのＩＰアドレス（すなわち要求信号の送信元のゲーム装置のＩＰアドレス）や、そのグループに対応するエリアを示す情報や、グループに参加しているプレイヤの数（ここでは１人）やレベルや嗜好情報やフレンド情報を、コントロールデータに登録する。
【００８８】
＜チート対策＞
次に、本ネットワークゲームシステムにおいて、チートを防止するための手法について説明する。チートとは、ゲームプログラム（ダメージ量の計算プログラムなど）やキャラクタデータ（キャラクタの能力や状態などを表すデータ）やゲームデータ（モンスターの能力値などのデータ）の不正な改ざん行為を指す。
【００８９】
一般に、チートは以下のような手法で行われる。
（１）ゲームプログラムやゲームデータを改ざんして、不当な経験値を得たりや不当なダメージを敵に与えるようにしてゲームを容易にする。
（２）キャラクタデータを直接改ざんしてキャラクタのレベルやヒットポイント（最大ＨＰ、現在ＨＰ）などを不当に多くする。
【００９０】
上記の（１）のケースのチート行為は本ネットワークゲームシステムに置いてはエリアサーバにおいてのみ行われ得る。エリアサーバとして動作しているゲーム装置（以下ではゲーム装置Ｘと称す）においてゲームプログラムやゲームデータが改ざんされると、エリアサーバからエリアクライアントへ不当なゲームプレイ情報（エリアサーバにおけるゲーム処理結果）が送られることになる。
【００９１】
エリアクライアントは、エリアサーバから受け取ったゲームプレイ情報が不当であることを検出すると、そのことを中央管理サーバ１０に通知する。この通知を受けた中央管理サーバ１０は、エリアサーバであるゲーム装置Ｘに対してゲームプログラムとゲームデータのチェックサムを送るように指示する。この指示に対してゲーム装置Ｘから回答がない場合、あるいはゲーム装置Ｘから送られてきたチェックサムの値が不正であった場合は、中央管理サーバ１０はこのゲーム装置Ｘからエリアサーバとしての権限を奪い、いずれかのエリアクライアントに対してエリアサーバとして動作するように指示する。これ以後は、この新たなエリアサーバによってゲームプレイ情報が生成されることになるので、ゲーム装置Ｘにおいて不当なゲームプレイ情報が生成されることはなくなる。
【００９２】
なお、中央管理サーバ１０において、ゲーム装置Ｘから送られてきたチェックサムの値が不正であるかどうかをチェックする方法は、公知の任意の手法を用いることができる。例えば、中央管理サーバ１０は、エリアサーバで利用しているゲームプログラムおよびゲームデータと全く同一のデータを内部に保持しておき、ゲーム装置Ｘから送られてきたチェックサムの値と、自身が保持しているデータに基づいて計算したチェックサムの値とを照合するようにしてもよい。
【００９３】
上記の（２）のケースのチート行為として、ネットワークゲームにログインしようとしているゲーム装置（以下、ゲーム装置Ｙと称す）において、キャラクタデータの改ざんが行われた場合のその検出方法を述べる。
【００９４】
ゲーム装置Ｙがエリアサーバにログインすると、このエリアサーバは、ゲームプレイ情報生成のために必要なキャラクタデータをゲーム装置Ｙから受け取る。このとき、エリアサーバは、キャラクタデータのほかにキャラクタデータのチェックサムもゲーム装置Ｙから受け取る。そしてエリアサーバは、こうして受け取ったキャラクタデータおよびチェックサムに基づいて、ゲーム装置Ｙのキャラクタデータが不当ではないかどうかを判断する。不当であると判断された場合は、エリアサーバはゲーム装置Ｙのログインを拒否する。これにより、キャラクタデータを不正に改ざんしたゲーム装置がネットワークゲームに参加することを防止することができる。
【００９５】
以上のような手法によれば、エリアサーバとエリアクライアントが互いに相手を監視してチートを検出するので、チートを効果的に防止することができる。
【００９６】
なお単独プレイの場合（すなわち１台のゲーム装置２０のみでグループが構成されている状態）は上記のような相互監視ができないため、チートが行いやすくなる。そこで、中央管理サーバ１０は、適当な間隔で（例えばゲームを開始してから１５分経過するごとに）単独プレイ中のゲーム装置２０からプログラムデータ等のチェックサムを取得して、このゲーム装置２０においてチートが行われていないかどうかを確認するのが好ましい。
【００９７】
＜フレンド情報＞
次に、フレンド情報の活用方法について説明する。
【００９８】
中央管理サーバ１０に対して要求信号を送信した第１のゲーム装置のログイン先のグループは、純粋にレベル差や嗜好だけから決定されても良いが、その場合、一緒にゲームをプレイするメンバーが毎回ほぼランダムに変化することになり、つまり、各プレイヤは意図的に好みのプレイヤと一緒にゲームをプレイすることができない。
【００９９】
上記の問題を解決するための方法として、プレイヤ毎に固有に割り当てられた、例えば１番〜１６７７７２１５番までのいずれかの番号（ゲーム中では、例えば１番〜１６７７７２１５番までのいずれかの数字が割り当てられた「鍵」として表現される）を、例えば図１１のようにゲーム中で仲の良いプレイヤにフレンド情報として配布し、次回のゲームプレイ時には、このフレンド情報を利用して仲の良いプレイヤ同士を優先的に同一のグループに所属させることが考えられる。
【０１００】
各プレイヤに固有に割り当てられたフレンド情報は、ゲーム装置２０が中央管理サーバ１０に要求信号（ゲーム開始要求信号またはエリア間移動要求信号）を送信する際に一緒に中央管理サーバ１０に送信され、コントロールデータに登録される。例えば、あるゲーム装置２０が要求信号を中央管理サーバ１０に送信するときには、このゲーム装置を使用しているプレイヤに固有に割り当てられたフレンド情報が、このゲーム装置２０のメインメモリ３６から読み出されて中央管理サーバ１０に送信され、コントロールデータに登録される。つまりコントロールデータには、常に、現在ゲームプレイ中の各プレイヤに割り当てられたフレンド情報が、そのプレイヤが参加しているグループに関連付けて記憶されていることになる。
【０１０１】
ここで、第１のプレイヤが、仲の良い第２のプレイヤのフレンド情報（例えば６５５３５番）を第２のプレイヤからすでに入手しており、第２のプレイヤと一緒にゲームをプレイすることを希望する場合には、第１のプレイヤ（より正確には第１のプレイヤのゲーム装置２０）は、要求信号を中央管理サーバ１０に送信する際に、この第２のプレイヤのフレンド情報も一緒に中央管理サーバ１０に送信する。中央管理サーバ１０では、第１のプレイヤから送信された第２のプレイヤのフレンド情報をコントロールデータと照合し、第２のプレイヤが現在ゲームプレイ中かどうかを判断する。ここで、もしこの時点で第２のプレイヤがゲームをプレイ中であったとすれば、第２のプレイヤのフレンド情報（６５５３５番）はコントロールデータに既に登録されているはずであり、このコントロールデータに基づいて、第２のプレイヤが参加しているグループを特定することができる。すると、中央管理サーバ１０は、第２のプレイヤが参加しているグループのエリアサーバのＩＰアドレスをコントロールデータから取り出して、このＩＰアドレスを含む応答信号を第１のプレイヤのゲーム装置２０に送信する。第１のプレイヤのゲーム装置は、このＩＰアドレスに基づいて、第２のプレイヤが参加しているグループにログインすることができ、その結果、第１のプレイヤは、第２のプレイヤと一緒にゲームをプレイすることができる。
【０１０２】
＜エリアサーバの消滅対策＞
次に、本ネットワークゲームシステムにおいて、エリアサーバがネットワークからふいに消滅した場合の対策について説明する。本ネットワークゲームシステムでは、エリアクライアントはエリアサーバの制御下で動作しているおり、エリアクライアントはエリアサーバと常にデータ交信を行っている。ここで、仮にエリアサーバと２台のエリアクライアント（それぞれエリアクライアントＡ、Ｂと称す）で構成されたネットワークにおいて、エリアサーバの電源が切断されるなどしてエリアサーバがネットワークから消滅すると、エリアサーバと各エリアクライアントＡ、Ｂとの間の交信が断絶されるので、各エリアクライアントＡ、Ｂは、それをすぐに検知することができる。すると、各エリアクライアントＡ、Ｂは、中央管理サーバ１０に対して、エリアサーバがネットワークから消滅したことを報告する。これを受けて中央管理サーバ１０は、残ったエリアクライアント（ここではエリアクライアントＡ、Ｂ）の中から、エリアサーバとしての役割を果たすのによりふさわしいエリアクライアントを、例えばＰＩＮＧコマンドに対する応答速度を比較するなどによって選択し、そのエリアクライアント（ここでは仮にエリアクライアントＡとする）に対して、新しいエリアサーバとなるように指令を出す。これと同時に、残りのエリアクライアント（ここではエリアクライアントＢ）には、新しいエリアサーバ（すなわちエリアクライアントＡだったゲーム装置２０）のＩＰアドレスを通知して、新しいエリアサーバにログインするよう通知する。これにより、エリアサーバが突然ネットワーク上から消滅しても、そこにログインしていたプレイヤがゲームを中断されることがなくなる。
【０１０３】
なお、エリアサーバがネットワークから突然に消滅したときに、残ったいずれかのエリアクライアントがエリアサーバの役割を継承するためには、敵モンスターの種類、与えたダメージの総計、仲間プレイヤの情報など、エリアサーバが実行すべきゲーム処理に必要なデータの全てを両者の間で常に共有しておく必要がある。そのためには、エリアサーバはゲーム処理で行われた演算結果を全て、エリアサーバの候補となる少なくとも１台のエリアクライアントに常に送っておく必要がある。ただし、エリアクライアントにおいては、エリアサーバから送られてくる情報を単に受け取って保持しておくだけであり、それに基づく演算処理を自身が行うわけではないので、エリアクライアントの処理負担が増えることはない。あくまでもゲームに関する演算処理はエリアサーバだけが行う。
【０１０４】
なお、上記の説明は、エリアサーバが急にネットワークから消滅した場合に関するものであるが、エリアサーバのユーザがゲームを正常に終了させるときや、エリアサーバのユーザが他のエリアに移動するような場合には、より簡単に、エリアサーバの役割を他のいずれかのエリアクライアントに継承することができる。つまりこの場合には、エリアサーバは、プレイヤによるゲーム終了指示やエリア間移動を検出した時点で、ゲーム処理に必要な全てのデータをいずれかのエリアクライアントに送信してエリアサーバの役割をこのエリアクライアントに継承し、さらにエリアサーバが変更された旨を中央管理サーバ１０に通知し、その後にゲーム終了処理またはエリア間移動処理を行えばよい。
【図面の簡単な説明】
【０１０５】
【図１】本発明の一実施形態に係るネットワークゲームシステムの構成を示す図
【図２】ゲーム装置の外観図
【図３】ゲーム装置の内部構成を示すブロック図
【図４】仮想ゲーム世界の構成例
【図５】ネットワークの構成例
【図６】ネットワークの他の構成例
【図７】コントロールデータとキャラクタデータを示す図
【図８】コントロールデータが分散して保持される例
【図９】ゲーム装置の動作を示すフローチャート
【図１０】中央管理サーバの動作を示すフローチャート
【図１１】フレンド情報配布時のゲーム画面例
【符号の説明】
【０１０６】
１０  中央管理サーバ
２０  ゲーム装置
２２  モニタ
２２ａ  スピーカ
２４  ＤＶＤ−ＲＯＭ
２６  ゲーム装置本体
２８  コントローラ
３０  外部メモリカード
３２  ＣＰＵ
３４  ＧＰＵ
３６  メインメモリ
３８  ＤＳＰ
４０  ＡＲＡＭ
４２  メモリコントローラ
４４  コントローラＩ／Ｆ
４６  ビデオＩ／Ｆ
４８  外部メモリＩ／Ｆ
５０  オーディオＩ／Ｆ
５２  ディスクＩ／Ｆ
５４  ディスクドライブ
５６  通信部
【図１】
2006191975.tif 000003
【図２】
2006191975.tif 000004
【図３】
2006191975.tif 000005
【図４】
2006191975.tif 000006
【図５】
2006191975.tif 000007
【図６】
2006191975.tif 000008
【図７】
2006191975.tif 000009
【図８】
2006191975.tif 000010
【図９】
2006191975.tif 000011
【図１０】
2006191975.tif 000012
【図１１】
2006191975.tif 000013