(57)【特許請求の範囲】
【請求項１】
所定の単位でグループ化された複数のゲーム機がクライアント端末としてセンタサーバと所定のネットワークを介して接続され、前記センタサーバによって管理されるデータを利用した所定のゲームを各ゲーム機によって実行可能としたネットワークゲームシステムにおいて、
前記グループ化がＬＡＮで構成され、当該ＬＡＮでグループ化されてなる同一グループ内の複数のゲーム機のそれぞれがサーバ機能部、クライアント機能部及び調停機能部を有し、
前記サーバ機能部は、
前記同一グループ内の各ゲーム機のクライアント機能部との間のデータ通信を実行するグループ内通信手段と、
前記ネットワークを介した前記センタサーバとの間のデータ通信を実行するサーバ間通信手段と、
前記グループ内通信手段及び前記サーバ間通信手段を介して取得したデータに応じて定められた処理を実行するサーバ処理手段とを含み、
前記クライアント機能部は、
前記サーバ機能部との間のデータ通信を実行するクライアント通信手段と、
前記クライアント通信手段を介して前記サーバ機能部から取得したデータを参照して所定のゲームを実行するゲーム実行手段とを含み、
前記調停機能部は、
自己のゲーム機が前記同一グループ内のサーバとして機能している場合、前記同一グループ内の全てのゲーム機を対象として、自己が前記サーバとして機能していることを示す情報を、前記自己のグループ内通信手段から定期的に送信させると共に、自己のゲーム機が前記サーバとして機能しているか否かに拘わり無く、前記情報の受信状況を監視する手段と、
前記同一グループ内の他のゲーム機から送信される前記情報の受信状況に基づいて前記サーバとして機能すべきゲーム機を選択し、自己が前記サーバとして選択された場合は、自己の前記サーバ機能部を起動させ、前記サーバとして選択されない場合は自己の前記サーバ機能部を休止させる選択する手段と、を備え、
前記監視する手段によって前記他のゲーム機から送信される前記情報が受信されたと判断された場合、前記選択する手段は、前記情報に含まれる発信時期の情報により前記情報の発信時期の先後に基づいて前記サーバとして機能すべきゲーム機を選択し、自己が前記サーバとして選択された場合は、前記情報に含まれる前記発信時期の情報を送信したゲーム機のアドレスを、自己とデータ通信を実行する前記クライアント機能部を有するゲーム機のアドレスとして自己の前記グループ内通信手段に設定し、前記情報を送信したゲーム機が前記サーバとして選択された場合は、その選択されたゲーム機のアドレスを、自己とデータ通信を実行する前記サーバ機能部を有するゲーム機のアドレスとして自己の前記クライアント通信手段に設定することを特徴とするネットワークゲームシステム。
【請求項２】
請求項１に記載のネットワークゲームシステムにおいて、
前記調停機能部は、クライアント調停部及びサーバ調停部とを含み、
前記クライアント調停部は、
自己が前記サーバとして機能しているか否かに拘わらず前記情報の受信状況を監視し、前記選択する手段によって前記サーバとして選択されたゲーム機のアドレスを自己のクライアント通信手段へ設定し、
前記サーバ調停部は、
自己が前記サーバとして機能している時に前記情報の受信状況を監視し、前記選択する手段によって自己が前記サーバとして選択された場合は、前記情報を送信したゲーム機のアドレスを前記グループ内通信手段に設定し、前記情報を送信したゲーム機が前記サーバとして選択された場合は、自己の前記サーバ機能部を休止するネットワークゲームシステム。
【請求項３】
請求項１または２に記載のネットワークゲームシステムにおいて、
前記監視する手段によって前記情報が一定期間受信されていないと判断された場合、前記選択する手段は、自己のゲーム機の前記サーバ機能部を起動して、自己が前記サーバとして機能していることを示す情報を前記同一グループ内の全てのゲーム機を対象として前記自己のグループ内通信手段から送信させる、ネットワークゲームシステム。
【請求項４】
請求項１〜３のいずれか１項に記載のネットワークゲームシステムにおいて、前記発信時期が早いゲーム機を優先して選択する、ネットワークゲームシステム。
【請求項５】
請求項４に記載のネットワークゲームシステムにおいて、各ゲーム機にはサーバとして選択される優先順位が予め設定され、前記発信時期の時間的先後関係による選択が不可能な場合には前記優先順位に基づいて前記サーバとして機能すべきゲーム機を選択する、ネットワークゲームシステム。
【請求項６】
請求項１から５のいずれか１項に記載のネットワークゲームシステムにおいて、
前記サーバ機能部における前記グループ内通信手段が、
前記同一グループ内における各ゲーム機と１対１に設けられているサーバ受信部を有するネットワークゲームシステム。
【請求項７】
請求項６に記載するネットワークゲームシステムにおいて、
前記サーバ機能部における前記サーバ処理手段が、
前記サーバ受信部と１対１に設けられているネットワークゲームシステム。
【請求項８】
前記ネットワークがインターネットで構成されてなる請求項１から７のいずれか１項に記載のネットワークゲームシステム。
【請求項９】
前記所定の単位は、店舗単位であることを特徴とする請求項１から８のいずれか１項に記載のネットワークゲームシステム。
【請求項１０】
クライアント端末として所定の単位でグループ化され、所定のネットワークを介してセンタサーバと接続されたゲーム機であって、前記センタサーバが管理するデータを利用して所定のゲームを実行することができるゲーム機において、
前記ゲーム機はサーバ機能部、クライアント機能部及び調停機能部を有し、
前記サーバ機能部は、
同一グループ内の各ゲーム機のクライアント機能部との間のデータ通信を実行するグループ内通信手段と、
前記ネットワークを介した前記センタサーバとの間のデータ通信を実行するサーバ間通信手段と、
前記グループ内通信手段及び前記サーバ間通信手段を介して取得したデータに応じて定められた処理を実行するサーバ処理手段とを含み、
前記クライアント機能部は、
前記サーバ機能部との間のデータ通信を実行するクライアント通信手段と、
前記クライアント通信手段を介して前記サーバ機能部から取得したデータを参照して所定のゲームを実行するゲーム実行手段とを含み、
前記調停機能部は、
自己のゲーム機が前記同一グループ内のサーバとして機能している場合、前記同一グループ内の全てのゲーム機を対象として、自己が前記サーバとして機能していることを示す情報を、前記自己のグループ内通信手段から定期的に送信させると共に、自己のゲーム機が前記サーバとして機能しているか否かに拘わり無く、前記情報の受信状況を監視する手段と、
前記同一グループ内の他のゲーム機から送信される前記情報の受信状況に基づいて前記サーバとして機能すべきゲーム機を選択し、自己が前記サーバとして選択された場合は自己の前記サーバ機能部を起動させ、前記サーバとして選択されない場合は自己の前記サーバ機能部を休止する選択する手段と、を備え、
前記監視する手段によって前記他のゲーム機から送信される前記情報が受信されたと判断された場合、前記選択する手段は、前記情報に含まれる発信時期の情報により前記情報の発信時期の先後に基づいて前記サーバとして機能すべきゲーム機を選択し、自己が前記サーバとして選択された場合は、前記情報に含まれる前記発信時期の情報を送信したゲーム機のアドレスを、自己とデータ通信を実行する前記クライアント機能部を有するゲーム機のアドレスとして自己の前記グループ内通信手段に設定し、前記情報を送信したゲーム機が前記サーバとして選択された場合は、その選択されたゲーム機のアドレスを、自己とデータ通信を実行する前記サーバ機能部を有するゲーム機のアドレスとして自己の前記クライアント通信手段に設定することを特徴とするゲーム機。
【請求項１１】
クライアント端末として所定の単位でグループ化され、所定のネットワークを介してセンタサーバと接続されたゲーム機であって、前記センタサーバが管理するデータを利用して所定のゲームを実行するコンピュータとしてのゲーム機にて作用されるプログラムにおいて、
前記ゲーム機を、
サーバ機能部、クライアント機能部及び調停機能部として機能させるように構成され、
前記サーバ機能部は、
同一グループ内の各ゲーム機のクライアント機能との間のデータ通信を実行するグループ内通信手段と、
前記ネットワークを介した前記センタサーバとの間のデータ通信を実行するサーバ間通信手段と、
前記グループ内通信手段及び前記サーバ間通信手段を介して取得したデータに応じて定められた処理を実行するサーバ処理手段とを含み、
前記クライアント機能部は、
前記サーバ機能部との間のデータ通信を実行するクライアント通信手段と、
前記クライアント通信手段を介して前記サーバ機能部から取得したデータを参照して所定のゲームを実行するゲーム実行手段とを含み、
前記調停機能部は、
自己のゲーム機が前記同一グループ内のサーバとして機能している場合、前記同一グループ内の全てのゲーム機を対象として、自己が前記サーバとして機能していることを示す情報を、前記自己のグループ内通信手段から定期的に送信させると共に、自己のゲーム機が前記サーバとして機能しているか否かに拘わり無く、前記情報の受信状況を監視する手段と、
前記同一グループ内の他のゲーム機から送信される前記情報の受信状況に基づいて前記サーバとして機能すべきゲーム機を選択し、自己が前記サーバとして選択された場合は自己の前記サーバ機能部を起動させ、前記サーバとして選択されない場合は、自己のサーバ機能部を休止させる選択する手段と、を備え、
前記監視する手段によって前記他のゲーム機から送信される前記情報が受信されたと判断された場合、前記選択する手段は、前記情報に含まれる発信時期の情報により前記情報の発信時期の先後に基づいて前記サーバとして機能すべきゲーム機を選択し、自己が前記サーバとして選択された場合は、前記情報に含まれる前記発信時期の情報を送信したゲーム機のアドレスを、自己とデータ通信を実行する前記クライアント機能部を有するゲーム機のアドレスとして自己の前記グループ内通信手段に設定し、前記情報を送信した前記ゲーム機が前記サーバとして選択された場合は、その選択されたゲーム機のアドレスを、自己とデータ通信を実行する前記サーバ機能部を有するゲーム機のアドレスとして自己の前記クライアント通信手段に設定することを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワーク上で展開されるネットワークゲームシステム、そのネットワークゲームシステムに接続されるゲーム機、及びそのゲーム機に実装されるプログラムに関する。
【０００２】
【従来の技術】
複数のゲーム機相互間においてゲームを競い合い、そのデータの調整を１のコンピュータによって行うゲーム態様がある。このゲーム態様は、通常はその複数のゲーム機をクライアント端末とし、データ調整を行うコンピュータをサーバとするクライアント・サーバ型ネットワークによって実現されている。このゲーム態様はネットワークゲームシステムと呼ばれ、この態様を構築する方法として従来は次の２通りが考えられていた。第１の方法は複数のゲーム機とサーバがゲームセンター等の店舗内において店舗内ＬＡＮを構築する方法である。第２の方法は店舗内においては複数のゲーム機のみを設置し、そのゲーム機各々を所定のネットワークを介して店舗と異なる場所に設置されたセンターサーバに接続する方法である。
【０００３】
【発明が解決しようとする課題】
第１の方法においては、サーバに接続されるゲーム機は店舗の広さを考慮しても最大８台程度である。すなわちゲーム機が最大８台につきサーバは１台必要となる。従って製造コストが高くなり、また、サーバは実質的な利益はあげないので店舗に無駄な場所を取ることとなる。サーバが故障するとそのサーバに接続されたゲーム機すべてのゲーム機能に機能停止、機能制限等の影響を及ぼす。
【０００４】
第２の方法においては、センタサーバが１の店舗内における複数のゲーム機だけでなく、ネットワークに接続された全国におけるゲーム機すべてのデータ調整を行わなければならない。よって当該センタサーバに非常に高い処理能力が必要とされる。センタサーバに接続するための長距離用のネットワーク媒体が必要となる。センタサーバにトラブルが発生すると当該センタサーバに接続された全国のゲーム機すべてのゲーム機能に機能停止、機能制限等の影響を及ぼす。
【０００５】
センタサーバの負荷の軽減を目的として、ネットワークにおける端末にサーバ機能を持たせる技術は公知である（例えば特開２００１−１９５３５９号公報、特開２００１−２１６１５０号公報参照）。しかし、これらの公知例は、いずれもサーバと決定された端末が固定的であり、サーバとして決定された端末がダウンした場合はその影響がすべての端末におよび、システム全体がダウンしてしまう。そして、その解決策は上記公報には開示されていない。
【０００６】
そこで、本発明は、コスト高で場所を取るサーバを必要とせず、かつセンタサーバの負荷を減らし、更にネットワーク上のどのゲーム機にトラブルが発生してもゲームの進行状況に影響を与えないネットワークゲームシステム、当該システムに接続されるゲーム機、及びそのゲーム機のためのプログラムを提供することを目的とする。
【０００７】
【課題を解決するための手段】
以下、本発明について説明する。なお、本発明の理解を容易にするために添付図面の参照符号を括弧書きにて付記するが、それにより本発明が図示の形態に限定されるものではない。所定の単位（Ａ、Ｂ、Ｃ）でグループ化（２、１２、２２）された複数のゲーム機（１ａ…１ｄ、１１ａ…１１ｄ、２１ａ…２１ｄ）がクライアント端末としてセンタサーバ（５）と所定のネットワーク（４）を介して接続され、前記センタサーバによって管理されるデータを利用した所定のゲームを各ゲーム機によって実行可能としたネットワークゲームシステムにおいて、前記グループ化がＬＡＮで構成され、当該ＬＡＮでグループ化されてなる同一グループ内の複数のゲーム機のそれぞれがサーバ機能部（５０）、クライアント機能部（５１）および調停機能部（６０、６１）を有し、前記サーバ機能部は、前記同一グループ内の各ゲーム機のクライアント機能部との間のデータ通信を実行するグループ内通信手段（８０、９０…９３）と、前記ネットワークを介した前記センタサーバとの間のデータ通信を実行するサーバ間通信手段（５５）と、前記グループ内通信手段及び前記サーバ間通信手段を介して取得したデータに応じて定められた処理を実行するサーバ処理手段（７０…７４）とを含み、前記クライアント機能部は、前記サーバ機能部との間のデータ通信を実行するクライアント通信手段と、（８１、９４）前記クライアント通信手段を介して前記サーバ機能部から取得したデータを参照して所定のゲームを実行するゲーム実行手段（７５）とを含み、前記調停機能部は、自己のゲーム機が前記同一グループ内のサーバとして機能している場合、前記同一グループ内の全てのゲーム機を対象として、自己が前記サーバとして機能していることを示す情報を、前記自己のグループ内通信手段から定期的に送信させると共に、自己のゲーム機が前記サーバとして機能しているか否かに拘わり無く、前記情報の受信状況を監視する手段と、前記同一グループ内の他のゲーム機から送信される前記情報の受信状況に基づいて前記サーバとして機能すべきゲーム機を選択し、自己が前記サーバとして選択された場合は、自己の前記サーバ機能部を起動させ、前記サーバとして選択されない場合は自己の前記サーバ機能部を休止させる選択する手段と、を備え、前記監視する手段によって前記他のゲーム機から送信される前記情報が受信されたと判断された場合、前記選択する手段は、前記情報に含まれる発信時期の情報により前記情報の発信時期の先後に基づいてデータにより前記サーバとして機能すべきゲーム機を選択し、自己が前記サーバとして選択された場合は、前記情報に含まれる前記発信時期の情報を送信したゲーム機のアドレスを、自己とデータ通信を実行する前記クライアント機能部を有するゲーム機のアドレスとして自己の前記グループ内通信手段に設定し、前記情報を送信した前記ゲーム機が前記サーバとして選択された場合は、その選択されたゲーム機のアドレスを、自己とデータ通信を実行する前記サーバ機能部を有するゲーム機のアドレスとして自己の前記クライアント通信手段に設定することを特徴とするネットワークゲームシステムによって上記の課題を解決する。
【０００８】
本発明によるネットワークゲームシステムによれば、所定の同一グループ内にゲーム機としても機能するサーバとしての機能を有するゲーム機を設けるので、センタサーバの負荷を軽減することができ、かつ省スペースおよび低コストを図ることができる。また、各ゲーム機はどのゲーム機もサーバとなり得る機能及びサーバを選択する調停機能を有しており、監視する手段によって、自己がサーバとして機能していることを示す情報の受信状況を監視し、他のゲーム機からの情報を受信した場合に、その情報に含まれる発信時期の情報によりサーバを選択し、かつその情報により当該他のゲーム機をサーバとして設定することができる。これにより、例えば、最初に決定された同一グループ内のサーバがダウンした場合であっても、当該調停機能によって次のサーバを当該同一グループ内の他のゲーム機の中から適宜決定することができる。また、複数のゲーム機がサーバ機能部を起動した場合であっても、１のゲーム機を次のサーバとして選択することができる。よって、安定したゲーム世界の提供ができ、店舗の損失を最小限に抑えることが可能である。
【０００９】
請求項１に記載のネットワークゲームシステムにおいて、前記調停機能部は、クライアント調停部及びサーバ調停部とを含み、前記クライアント調停部は、自己が前記サーバとして機能しているか否かに拘わらず前記情報の受信状況を監視し、前記選択する手段によって前記サーバとして選択されたゲーム機のアドレスを自己のクライアント通信手段へ設定し、前記サーバ調停部は、自己が前記サーバとして機能している時に前記情報の受信状況を監視し、前記選択する手段によって自己が前記サーバとして選択された場合は、前記情報を送信したゲーム機のアドレスを前記グループ内通信手段に設定し、前記情報を送信したゲーム機が前記サーバとして選択された場合は、自己の前記サーバ機能部を休止してもよい。
【００１０】
本発明によれば、調停機能部が行う処理をサーバ調停部とクライアント調停部に分割し、例えば、サーバ調停部をサーバ機能部に含ませクライアント調停部をクライアント機能部に含ませてもよい。
【００１１】
前記監視手段によって前記情報が一定期間受信されていないと判断された場合、前記選択する手段は、自己のゲーム機の前記サーバ機能部を起動して、自己が前記サーバとして機能していることを示す情報を前記同一グループ内の全てのゲーム機を対象として前記自己のグループ内通信手段から送信させてもよい。
【００１２】
この選択する手段によれば、サーバがダウンした場合に前記同一グループ内における他のゲーム機が自己が有するサーバ機能部を起動し、その起動したことの情報を発信する。よって、同一グループ内の各ゲーム機のクライアント機能部ではかかる情報に基づいて同一グループ内における次のサーバを決定することができる。
【００１５】
また、前記選択する手段は、前記発信時期が早いゲーム機を優先して選択しもよい。
【００１６】
これによれば、複数のゲーム機が前記情報を発信した場合、最も早くサーバとして稼動開始したゲーム機が次のサーバとして選択することができる。
【００１７】
前記選択する手段において、各ゲーム機にはサーバとして選択される優先順位が予め設定され、前記発信時期の時間的先後関係による選択が不可能な場合には前記優先順位に基づいて前記次のサーバとして機能させるべきゲーム機を選択してもよい。
【００１８】
これによって、例えば、予めゲーム機に番号を付し、かかるゲーム機番号の小さい順あるいは大きい順に優先順位を決めておけば、前記情報を発信した時期の先後関係では選択不可能な場合であっても１のゲーム機を次のサーバとして選択することができる。
【００１９】
前記サーバ機能部における前記グループ内通信手段が、前記同一グループ内における各ゲーム機と１対１に設けられているサーバ受信部（９０…９３）を有していてもよい。
【００２０】
これにより、異なる送信元から送信されたデータであっても送信元を判別する処理が不要となる。
【００２１】
前記サーバ機能部における前記サーバ処理手段が、前記複数のサーバ受信部と１対１に設けられていてもよい。
【００２２】
これにより、異なる送信元から送信されたデータに基づく処理を並列して行うことができ、処理速度の向上を図ることができる。
【００２３】
前記ネットワークがインターネットで構成されていてもよい。これにより、ネットワークゲームシステムをイントラネットとして構築することができ、世界中のゲーム機と容易に接続可能となる。
【００２４】
前記所定の単位は、店舗単位でもよい。これにより１店舗につき１の店舗内ＬＡＮを有することになるので保守、運用が容易となり、また、センタサーバにおける各ＬＡＮの管理も容易となる。
【００２５】
クライアント端末として所定の単位でグループ化され、所定のネットワークを介してセンタサーバと接続されたゲーム機であって、前記センタサーバが管理するデータを利用して所定のゲームを実行することができるゲーム機において、前記ゲーム機はサーバ機能部、クライアント機能部および調停機能部を有し、前記サーバ機能部は、同一グループ内の各ゲーム機のクライアント機能部との間のデータ通信を実行するグループ内通信手段と、前記ネットワークを介した前記センタサーバとの間のデータ通信を実行するサーバ間通信手段と、前記グループ内通信手段及び前記サーバ間通信手段を介して取得したデータに応じて定められた処理を実行するサーバ処理手段とを含み、前記クライアント機能部は、前記サーバ機能部との間のデータ通信を実行するクライアント通信手段と、前記クライアント通信手段を介して前記サーバ機能部から取得したデータを参照して所定のゲームを実行するゲーム実行手段とを含み、前記調停機能部は、自己のゲーム機が前記同一グループ内のサーバとして機能している場合、前記同一グループ内の全てのゲーム機を対象として、自己が前記サーバとして機能していることを示す情報を、前記自己のグループ内通信手段から定期的に送信させると共に、自己のゲーム機が前記サーバとして機能しているか否かに拘わり無く、前記情報の受信状況を監視する手段と、前記同一グループ内の他のゲーム機から送信される前記情報の受信状況に基づいて前記サーバとして機能すべきゲーム機を選択し、自己が前記サーバとして選択された場合は自己の前記サーバ機能部を起動させ、前記サーバとして選択されない場合は自己の前記サーバ機能部を休止する選択する手段と、を備え、前記監視する手段によって前記他のゲーム機から送信される前記情報が受信されたと判断された場合、前記選択する手段は、前記情報に含まれる発信時期の情報により前記情報の発信時期の先後に基づいて前記サーバとして機能すべきゲーム機を選択し、自己が前記サーバとして選択された場合は、前記情報に含まれる前記発信時期の情報を送信したゲーム機のアドレスを、自己とデータ通信を実行する前記クライアント機能部を有するゲーム機のアドレスとして自己の前記グループ内通信手段に設定し、前記情報を送信した前記ゲーム機が前記サーバとして選択された場合は、その選択されたゲーム機のアドレスを、自己とデータ通信を実行する前記サーバ機能部を有するゲーム機のアドレスとして自己の前記クライアント通信手段に設定することを特徴とするゲーム機によって上記の課題を解決する。
【００２６】
本発明によるゲーム機によれば、所定の同一グループ内にゲーム機としても機能するサーバとしての機能を有するので、センタサーバの負荷を軽減することができ、かつ省スペースおよび低コストを図ることができる。また、各ゲーム機はどのゲーム機もサーバとなり得る機能及びサーバを選択する調停機能を有しており、監視する手段によって、自己がサーバとして機能していることを示す情報の受信状況を監視し、他のゲーム機からの情報を受信した場合に、その情報に含まれる発信時期の情報によりサーバを選択し、かつその情報により当該他のゲーム機をサーバとして設定することができる。これにより、例えば、最初に決定された同一グループ内のサーバがダウンした場合であっても、当該調停機能によって次のサーバを当該同一グループ内の他のゲーム機の中から適宜決定することができる。また、複数のゲーム機がサーバ機能部を起動した場合であっても、１のゲーム機を次のサーバとして選択することができる。よって、安定したゲーム世界の提供ができ、店舗の損失を最小限に抑えることが可能である。
【００２７】
クライアント端末として所定の単位でグループ化され、所定のネットワークを介してセンタサーバと接続されたゲーム機であって、前記センタサーバが管理するデータを利用して所定のゲームを実行するコンピュータとしてのゲーム機にて作用されるプログラムにおいて、前記ゲーム機を、サーバ機能部、クライアント機能部及び調停機能部として機能させるように構成され、前記サーバ機能部は、同一グループ内の各ゲーム機のクライアント機能との間のデータ通信を実行するグループ内通信手段と、前記ネットワークを介した前記センタサーバとの間のデータ通信を実行するサーバ間通信手段と、前記グループ内通信手段及び前記サーバ間通信手段を介して取得したデータに応じて定められた処理を実行するサーバ処理手段とを含み、前記クライアント機能部は、前記サーバ機能部との間のデータ通信を実行するクライアント通信手段と、前記クライアント通信手段を介して前記サーバ機能部から取得したデータを参照して所定のゲームを実行するゲーム実行手段とを含み、前記調停機能部は、自己のゲーム機が前記同一グループ内のサーバとして機能している場合、前記同一グループ内の全てのゲーム機を対象として、自己が前記サーバとして機能していることを示す情報を、前記自己のグループ内通信手段から定期的に送信させると共に、自己のゲーム機が前記サーバとして機能しているか否かに拘わり無く、前記情報の受信状況を監視する手段と、前記同一グループ内の他のゲーム機から送信される前記情報の受信状況に基づいて前記サーバとして機能すべきゲーム機を選択し、自己が前記サーバとして選択された場合は自己の前記サーバ機能部を起動させ、前記サーバとして選択されない場合は、自己のサーバ機能部を休止させる選択する手段と、を備え、前記監視する手段によって前記他のゲーム機から送信される前記情報が受信されたと判断された場合、前記選択する手段は、前記情報に含まれる発信時期の情報によりその前記情報の発信時期の先後に基づいて前記サーバとして機能すべきゲーム機を選択し、自己が前記サーバとして選択された場合は、前記情報に含まれる前記発信時期の情報を送信したゲーム機のアドレスを、自己とデータ通信を実行する前記クライアント機能部を有するゲーム機のアドレスとして自己の前記グループ内通信手段に設定し、前記情報を送信した前記ゲーム機が前記サーバとして選択された場合は、前記アドレスを、自己とデータ通信を実行する前記サーバ機能部を有するゲーム機のアドレスとして自己の前記クライアント通信手段に設定することを特徴とするプログラムによって上記の課題を解決する。
【００２８】
本発明によるプログラムによれば、コンピュータとしてのゲーム機を、所定の同一グループ内にゲーム機としても機能するサーバとしての機能を有するゲーム機として機能させるので、センタサーバの負荷を軽減することができ、かつ省スペースおよび低コストを図ることができる。また、各ゲーム機はどのゲーム機もサーバとなり得る機能及びサーバを選択する調停機能を有しており、監視する手段によって、自己がサーバとして機能していることを示す情報の受信状況を監視し、他のゲーム機からの情報を受信した場合に、その情報に含まれる発信時期の情報によりサーバを選択し、かつその情報により当該他のゲーム機をサーバとして設定することができる。これにより、例えば、最初に決定された同一グループ内のサーバがダウンした場合であっても、当該調停機能によって次のサーバを当該同一グループ内の他のゲーム機の中から適宜決定することができる。また、複数のゲーム機がサーバ機能部を起動した場合であっても、１のゲーム機を次のサーバとして選択することができる。よって、安定したゲーム世界の提供ができ、店舗の損失を最小限に抑えることが可能である。
【００２９】
【発明の実施の形態】
図１は本発明における一実施形態を示すネットワークゲームシステム構成図である。ネットワークゲームシステムはネットワーク４を介して各ゲーム機１ａ…１ｄ、１１ａ…１１ｄ、２１ａ…２１ｄ及びセンタサーバ５間において一意のゲーム世界を構築するネットワークゲームシステムである。まず、ネットワークゲームシステムのハードウェアの構成から説明する。センタサーバ５と店舗内ＬＡＮ２、１２、２２がネットワーク４を介して接続される。店舗内ＬＡＮ２、１２、２２には各々店舗Ａ、Ｂ、Ｃに設置されたゲーム機１ａ…１ｄ、１１ａ…１１ｄ、２１ａ…２１ｄが接続される。すなわち、店舗単位でグループが構成されている。各店舗内ＬＡＮ２、１２、２２はクライアント・サーバ型で構築され、例えば店舗内ＬＡＮ２においては所定の条件に従ってゲーム機１ａ…１ｄのうち１台、例えば１ａが店舗内サーバ兼クライアント端末（以下「店舗内サーバ」という）であり、他のゲーム機１ｂ…１ｄはクライアント端末である。以下、各店舗Ａ、Ｂ、Ｃにおける各店舗内ＬＡＮ２、１２、２２についての説明はすべて同様であるので店舗Ａの店舗内サーバをゲーム機１ａとする店舗内ＬＡＮ２を例にして説明する。
【００３０】
全国の各ゲーム機１ａ…１ｄ、１１ａ…１１ｄ、２１ａ…２１ｄ上で各プレイヤーがゲームを展開し、これらのゲーム機間でゲームを競う。ゲーム機１ａ…１ｄは店舗内サーバ機能もクライアント端末の機能も有しており、店舗内ＬＡＮ２内においてゲーム機１ａ…１ｄ同士の調停により店舗内ＬＡＮ２につき１台が店舗内サーバ１ａとなる。
【００３１】
店舗内サーバ１ａは他のゲーム機１ｂ…１ｄと同様にゲーム機としてプレイヤーがゲームを実施することができる。店舗内サーバ１ａは店舗内ＬＡＮ２における他のゲーム機１ｂ…１ｄのデータをまとめてセンタサーバ５とのデータをやりとりする窓口となるが、店舗内Ａ単位で処理が足りるものについては店舗内サーバ１ａ内で処理を行う。また、店舗内サーバ１ａは当該ゲーム世界の進行状況を店舗内ＬＡＮ２に接続されているすべてのゲーム機１ａ…１ｄに保存する。
【００３２】
センタサーバ５は各店舗内サーバを通じて全国におけるゲーム機１ａ…１ｄ、１１ａ…１１ｄ、２１ａ…２１ｄの各ゲーム進行状況を把握し、これら全国のゲーム機間１ａ…１ｄ、１１ａ…１１ｄ、２１ａ…２１ｄで統一した調整が必要なデータのみを取り扱う。
【００３３】
尚、ゲーム機１ａ…１ｄに付された０から３の番号はゲーム機番号といい、店舗内ＬＡＮ２に接続されたゲーム機を識別するための記号である。よって、連番である必要はないが、同一店舗ＬＡＮ内においてはすべて異なるゲーム機番号を付さなければいけない。
【００３４】
本実施形態ではネットワーク４及び店舗内ＬＡＮ２、１２、２２は通信プロトコルとしてＴＣＰ／ＩＰを利用するが、その他の通信プロトコルであってもよい。店舗内ＬＡＮ２、１２、２２は無線、有線を問わず、またそのトポロジも問わない。なお、ネットワーク４に接続される店舗内ＬＡＮ２，１２，２２の数、各店舗における店舗内ＬＡＮの数及び各店舗内ＬＡＮ２、１２、２２に接続されたゲーム機１ａ…１ｄ、１１ａ…１１ｄ、２１ａ…２１ｄの台数は図１に示した数に限られない。また、店舗とは通常のゲームセンター等のゲームの提供を主体とする店舗の他、ホテル等の１コーナーとして設けられるゲームコーナーやネットワーク上の仮想店舗等も含むが、店舗形態にとらわれず複数のゲーム機が所定の単位でグループ化されていればよい。
【００３５】
図２はゲーム機１ａ…１ｄ、１１ａ…１１ｄ、２１ａ…２１ｄの内部構造における処理別部門とそれら処理別部門間のデータの流れを示す図である。各ゲーム機１ａ…１ｄ、１１ａ…１１ｄ、２１ａ…２１ｄの内部構造は全く同じであり、サーバ機能部５０とクライアント機能部５１を有する。サーバ機能部５０にはサーバ調停部６０、サーバ処理部７０…７４、サーバ受信部９０…９３及びサーバ送信部８０が含まれ、クライアント機能部５１にはクライアント調停部６１、クライアント処理部７５、クライアント受信部９４、クライアント送信部８１、ゲーム実行部９５が含まれている。本実施形態ではサーバ受信部の負荷を軽減するため、クライアント端末すなわちゲーム機１ａ…１ｄと１対１に対応してサーバ受信部９０…９３が用意されているが、１つにまとめても良い。なお、図中の各サーバ受信部に付された番号０…３はゲーム機番号を示す。また、サーバ処理部７１…７４も１つにまとめてもよいが、本実施形態では、各サーバ受信部９０…９３に１対１に対応してサーバ処理部７１…７４が設けられている。これによって各サーバ処理部７１…７４で行われる処理を並行して行うことができ、処理速度の向上を図ることができる。これらサーバ処理部７１…７４は共有データを保護するためにスレッドセーフな構造になっている。また、各ゲーム機間で統一した管理が必要なデータ、すなわちゲーム世界に関するデータを管理する部門としてサーバ処理部（メイン）が設けられている。例えば、所定の国を奪い合うゲームにおいては、「どの国は誰が城主で現在誰が攻めているか」といったゲーム世界を定義するデータをサーバ処理部（メイン）が管理する。
【００３６】
各処理別部門は本実施形態ではソフトウェアによって実現されるが、ハードウェアによって実現されてもよい。ただし、ソフトウェアとして実現した方が保守、バージョンアップ等の運用面で便利である。なお、図中の矢印はデータの流れを示すデータバスである。実線矢印はソフトウェア部門間通信、破線矢印は筐体間通信を示す。
【００３７】
なお、サーバ送信部８０とサーバ受信部９０…９３がグループ内通信手段を構成し、インターネット送受信部５５がサーバ間通信手段を構成し、サーバ処理部７０…７４がサーバ処理手段を構成し、クライアント受信部９４及びクライアント送信部８１がクアイアント通信手段を構成し、サーバ調停部６０及びクライアント調停部６１が調停機能部を構成するが、各手段は図示した各処理別部門に限定はされない。
【００３８】
以下、各部門の処理内容とデータの流れについて店舗Ａにおける店舗内ＬＡＮ２を例に説明する。各ゲーム機１ａ…１ｄにおけるクライアント送信部８１は店舗内サーバ１ａのアドレスが記憶されており、当該ゲーム機１ａ…１ｄにインストールされているゲームアプリケーションからの要求を各ゲーム機１ａ…１ｄから店舗内サーバ１ａへバス１００を介して送信する。サーバ受信部９０…９３はゲーム機１ａ…１ｄの各クライアント送信部８１からの要求を受信する。ゲーム機１ａ…１ｄとサーバ受信部９０…９３は１対１に対応するように設定されているので、例えばゲーム機１ｂからの要求はサーバ受信部９１のみが受信する。受信したデータは原則的にはサーバ処理部７０…７４へバス１０１，１０２を介して渡される。ただし、時間のかからない処理は当該データを受信したサーバ受信部９０…９３が処理する。
【００３９】
サーバ処理部７１…７４はサーバ受信部と１対１に対応するように設けられているので、各サーバ処理部７１…７４は各サーバ受信部９０…９３から渡されたデータに対する処理のみを行う。例えばサーバ受信部９１で受信されたデータはサーバ処理部７２で処理される。サーバ処理部７０…７４で処理された処理結果はバス１０３ａ、１０３ｂを介してサーバ送信部８０へ渡される。その渡されたデータをサーバ送信部８０はサーバ処理部７０…７４によって指定されたクライアント端末１ａ…１ｄへバス１０４を介して送信する。このサーバ送信部８０は１つしかないが、ブロードキャスト、マルチキャスト及びシングル送信をデータの用途によって適宜切り替えて送信することが可能である。ここで、ブロードキャストとはサーバが把握していないゲーム機を含め店舗内ＬＡＮ２内の全てのゲーム機１ａ…１ｄに送信を行うことをいい、当該システムにおいては自機が店舗内サーバとなる立候補をしたことを同一店舗内ＬＡＮ２に全ゲーム機１ａ…１ｄへ知らせるサーバ宣言を行う際に利用する。マルチキャストとは店舗内サーバ１ａが把握しているすべてのゲーム機、例えばゲーム機１ａ…１ｃへ送信を行うことをいい、シングル送信とは指定した１のゲーム機、例えばゲーム機１ｄへ送信を行うことをいう。
【００４０】
各ゲーム機１ａ…１ｄのクライアント受信部９４は店舗内サーバ１ａのサーバ送信部８０から送信されたデータを受信し、受信したデータをクライアント処理部７５またはクライアント調停部６１へバス１０５、１０６を介して渡す。
【００４１】
クライアント処理部７５はクライアント受信部９４から渡されたデータを処理する。処理によって店舗内サーバ１ａやセンタサーバ５へアクセスを要する場合はクライアント送信部８１へ要求内容をバス１０７を介して伝える。
【００４２】
ゲーム実行部９５は、実際に所定のゲームを実行する。ゲーム開始時の初期設定やゲーム実行の際に必要なるデータは、このゲーム実行部９５が店舗内サーバ１ａまたはセンタサーバ５への問い合わせをクライアント送信部８１にバス１１２を介して適宜依頼する。センタサーバ５が、全国のゲーム機１ａ…１ｄ、１１ａ…１１ｄ、２１ａ…２１ｄに対して共通のデータを提供し、そのデータに基づいて各ゲーム実行部９５がゲームを実行することにより、全国規模で一意のゲーム世界が構築される。例えば、所定の国を奪い合うゲームであれば、センタサーバ５が各国の情報を全国共通データとして保有し、各ゲーム機１ａ…１ｄ、１１ａ…１１ｄ、２１ａ…２１ｄにおける各プレイヤーは取得したい国の情報をセンタサーバ５から入手し、これらの情報に基づいて各ゲーム実行部９５がゲームを実行することにより、全国で一意のゲームが展開される。
【００４３】
インターネット送受信部５５はサーバ処理部７０…７４からの要求をバス１０８を介して受け取り、インターネット１０９を介してセンタサーバ５と交信する。このインターネット送受信部５５はサーバ処理部７０…７４からの複数の要求、すなわちゲーム機１ａ…１ｄからの複数の要求を一括してセンタサーバ５へ送信することができ、これによってセンタサーバ５の負荷の軽減を図ることができる。
【００４４】
サーバ調停部６０及びクライアント調停部６１は店舗内ＬＡＮ２における店舗内のゲーム機１ａ…１ｄから所定の条件に従って店舗サーバを決定する調停処理及び１度決定された店舗内サーバにトラブルが発生した場合に当該店舗内サーバを除いた残りのゲーム機から新たな店舗内サーバを再度決定する調停処理を行う。図中の矢印１１０はその調停のようすを示している。本実施形態では店舗内サーバとして古くから稼動している方、稼働時間に差がない場合はゲーム機番号が小さい方が店舗内サーバとなるように設定されている。そのアルゴリズムは図３及び図４に従って説明する。
【００４５】
なお、本実施形態ではサーバ調停部６０とクライアント調停部６１が各々サーバ機能部５０及びクライアント機能部５１に含まれているが、サーバ調停部６０及びクライアント調停部６１を分離しないで１の調停機能部としてサーバ機能部５０及びクライアント機能部５１から独立して構成してもよい。
【００４６】
図３は各ゲーム機１ａ…１ｄのサーバ調停部６０において行われるアルゴリズムを示すフローチャートである。最初にゲーム機１ａが店舗内ＬＡＮ２においてサーバとなった場合を考える。店舗内サーバ１ａ（以下「従来サーバ１ａ」という。）においては通常処理としてステップＳ３９０における処理、すなわちサーバ宣言をブロードキャストする処理が一定間隔で常に行われている。しかし、所定の場合に他のゲーム機１ｂ…１ｄ、例えばゲーム機１ｂもサーバ宣言を行う（以下「新サーバ１ｂ」という。）。かかる場合に当該アルゴリズムの手順に従って従来サーバ１ａかまたは新サーバ１ｂのどちらを店舗内サーバとするかを決定する。
【００４７】
以下、当該アルゴリズムの各ステップで行われる処理について説明する。まず、ステップＳ３００で自機が店舗内サーバか否か判断される。自機が店舗内サーバでなければ当該サーバ調停部６０では何も処理されず通常処理であるステップＳ３９０へ進み、店舗内サーバであると判断した場合は次のステップＳ３１０へ進む。すなわちゲーム機１ｃ…１ｄにおけるサーバ調停部６０では何も処理されず、サーバ宣言を行った従来サーバ１ａと新サーバ１ｂにおけるサーバ調停部６０のアルゴリズムはステップＳ３１０へ進む。ステップＳ３１０ではブロードキャストの検出の有無を判断する。ブロードキャストを検出していない場合は問題ないとして通常処理であるステップＳ３９０へ進み、検出した場合は次のステップＳ３２０へ進む。ステップＳ３２０では検出したブロードキャストが自機によるものか否かを判断する。検出したブロードキャストが自機によるものである場合は問題ないと判断して通常処理であるステップＳ３９０へ進み、当該ブロードキャストが自機によるものでない場合は次のステップＳ３３０へ進む。すなわち、例えば従来サーバ１ａにおいては検出したブロードキャストが自機からのものである場合はステップＳ３９０へ進み、新サーバ１ｂからのものである場合は調停処理を行うためステップＳ３３０へ進む。ここで、他のゲーム機１ｂ…１ｄがブロードキャストを行う所定の場合とは店舗内サーバ１ａからのブロードキャストが一定間隔経過しても検出できない場合や当該ゲーム機に電源が入れられた時等がある。ステップＳ３３０では自機と当該ブロードキャストを行ったゲーム機のそれぞれがサーバとして稼動を開始した時刻を比較する。自機の方が古い場合は自機が店舗内サーバと決定されるためステップＳ３５０へ進み、ブロードキャストしたゲーム機の方が古い場合はこのゲーム機が店舗内サーバと決定されるためＳ３７０へ進み、同じ時間だった場合は店舗内サーバを決定できないのでステップＳ３４０へ進む。ステップＳ３４０では自機とブロードキャストしたゲーム機のゲーム機番号が比較され、自機の方が小さい場合は自機が店舗内サーバと決定されるためにステップＳ３５０へ進み、ブロードキャストしたゲーム機の方が小さい場合はこのゲーム機が店舗内サーバと決定されるためにステップＳ３７０へ進む。その他エラーである場合はステップＳ３６０へ進みエラー処理が行われ、通常処理であるステップＳ３９０へ進む。ステップＳ３５０では当該ブロードキャストしたゲーム機に対応するサーバ受信部９０…９３にこのゲーム機のＩＰアドレスを記録し、次のステップＳ３８０で自機のサーバ送信部８０へサーバ宣言のブロードキャストを依頼し、通常処理であるステップＳ３９０へ進む。ステップＳ３７０では自機の店舗内サーバとしての機能を停止して通常処理であるステップＳ３９０へ進む。通常処理であるステップＳ３９０では、店舗内サーバと決定されたゲーム機は一定間隔でブロードキャストを発生する。そして、このブロードキャストについて各ゲーム機１ａ…１ｄの各サーバ調停部６０及び各クライアント調停部６１における各処理がスタートから開始される。
【００４８】
図４は各ゲーム機１ａ…１ｄの各クライアント調停部６１で行われるアルゴリズムを示すフローチャートである。各クライアント調停部６１ではサーバ宣言であるブロードキャストを検出すると以下のアルゴリズムが実行される。以下、図４と同様に従来サーバをサーバ１ａとし、新サーバをサーバ１ｂとする。まず初めにステップＳ４１０でブロードキャストの検出の有無を判断し、ブロードキャストを検出したときはステップＳ４２０へ進み、ブロードキャストを検出していないときはステップＳ４７０へ進む。ステップＳ４２０では検出したブロードキャストが自機によるものか否かを判断する。自機のブロードキャストの場合はクライアント送信部８１の送信先の変更はないのでステップＳ４７０へ進み、自機のブロードキャストでない場合はステップＳ４３０へ進む。すなわち、新サーバ１ｂのクライアント調停部６１では何も処理されず、ステップＳ４７０へ進み、従来サーバ及び他のゲーム機１ｃ、１ｄにおけるクライアント調停部６１はステップＳ４３０へ進む。ステップＳ４３０では、今までサーバだったゲーム機とブロードキャストを行ったゲーム機の店舗内サーバとして稼動を開始した時刻を比較する。すなわち従来サーバ１ａと新サーバ１ｂの稼動開始時刻を比較する。従来サーバ１ａの方が古い場合はそのままその従来サーバ１ａが店舗内サーバとなるのでステップＳ４７０へ進み、新サーバ１ｂの方が古い場合はクライアント送信部８１の送信先を変更するためステップＳ４６０へ進み、その後ステップＳ４７０へ進む。同じ時間の場合はどちらを店舗内サーバとするか決定できないのでステップＳ４３０へ進む。ステップＳ４４０では従来サーバ１ａと新サーバ１ｂのゲーム機番号の比較を行う。従来サーバ１ａのゲーム機番号の方が小さい場合はクライアント送信部８１の送信先の変更はないのでステップＳ４７０へ進み、新サーバ１ｂの方が小さい場合はクライアント送信部８１の送信先を変更するためステップＳ４６０へ進み、その後ステップＳ４７０へ進む。その他の場合は、ステップＳ４５０へ進みエラー処理がされた後ステップＳ４７０へ進む。なお、従来サーバ１ａが定期的に発生させるブロードキャストの場合はエラー処理されずにステップＳ４７０へ進む。本例では従来サーバ１ａの方が新サーバよりも古いので従来サーバ１ａ及び他のゲーム機１ｃ、１ｄのすべてにおいてステップＳ４７０へ進む。ステップＳ４７０〜ステップＳ４９５は従来サーバ１ａがダウンした場合等一定期間サーバ宣言を検出しない場合に他のゲーム機１ｂ…１ｄがサーバ宣言を行う手順が示されている。まず、ステップＳ４７０では自機が店舗内サーバか否かを判断する。自機が店舗内サーバの場合は何も処理されない。店舗内サーバでない場合は次のステップＳ４８０へ進み、一定期間における店舗内サーバからのブロードキャストの有無を判断する。ブロードキャストがある場合は何も処理されず、一定期間ブロードキャストがない場合はステップＳ４９０へ進み、ステップＳ４９０で自機が店舗内サーバとなるためサーバ機能を起動し次のステップＳ４９５でサーバ送信部８０へサーバ宣言のブロードキャストを依頼する。当該ブロードキャストについて各ゲーム機１ａ…１ｄの各サーバ調停部６０及び各クライアント調停部６１において各処理のアルゴリズムがスタートから開始される。
【００４９】
図５及び図６は図３及び図４に示したサーバ調停部６０及びクライアント調停部６１の各アルゴリズムを利用して店舗内ＬＡＮ２に接続されたゲーム機１ａ…１ｄ同士が調停しあって１の店舗内サーバが決定される手順を示した図である。各ゲーム機の図中、「調停処理」とはサーバ調停部６０、「調停」とはクライアント調停部６１、上に位置する「処」とはサーバ処理部７１…７３、上に位置する「受」とはサーバ受信部９０…９３、上に位置する「送」はサーバ送信部８０、下に位置する「受」とはクライアント受信部９４、下に位置する「送」はクライアント送信部８１、下に位置する「処」はクライアント処理部７５の各々略である。
【００５０】
図５（ａ）は店舗Ａにおいてゲーム機番号Ａ３（以下「ゲーム機Ａ３」という。ゲーム機番号Ａ０〜Ａ２においても同様。）のゲーム機が店舗内サーバとしてゲーム機Ａ１…Ａ３の３台が初めに稼動している状態を示している。この状態においてゲーム機Ａ０の電源を入れ、店舗内ＬＡＮ２が４台の構成になる場合にどのゲーム機が店舗内サーバとなるかを調停する調停処理を説明する。
【００５１】
図５（ｂ）はゲーム機Ａ０がサーバ宣言であるブロードキャスト５１０を発生させ、ゲーム機Ａ０…Ａ３がその信号を受信した様子を示す図である。まず、ゲーム機Ａ０に電源が入った時にそれだけでは店舗内サーバであるゲーム機Ａ３はゲーム機Ａ０を認識していないので、サーバ宣言をゲーム機Ａ０に送信しない。よって、ゲーム機Ａ０のクライアント調停部６１はブロードキャストを検出できず、よってクライアント調停部６１のアルゴリズムにおいてステップＳ４１０は「Ｎ」であり、ゲーム機Ａ０はサーバではないのでステップＳ４７０及びステップＳ４８０は「Ｎ」であり、ステップＳ４９０及びステップＳ４９５へ進む。すなわちゲーム機Ａ０は自機のサーバ宣言をサーバ送信部８０へ依頼５００する。サーバ送信部８０はサーバ宣言であるブロードキャストの信号５１０（以下「ブロードキャスト信号５１０」という）を発生させる。なお、各ゲーム機は電源投入後直ちにサーバ宣言が発生するように設定してもよい。このサーバ宣言のブロードキャスト信号５１０を各ゲーム機Ａ０…Ａ３の各クライアント受信部９４が受信し、各サーバ調停部６０及び各クライアント調停部６１へ信号５２０を送る。
【００５２】
図６（ａ）は各ゲーム機Ａ０…Ａ３におけるサーバ調停部６０及びクライアント調停部６１がブロードキャスト信号５１０を受信した後の状態を示した図である。
以下「店舗内サーバ」を単に「サーバ」という。各ゲーム機Ａ０…Ａ３において各サーバ調停部６０及び各クライアント調停部６１がブロードキャスト信号５１０を受信すると、図３及び図４に示した上述のアルゴリズムが各々実行される。
【００５３】
ゲーム機Ａ０のサーバ調停部６０のアルゴリズム：自機はサーバであり、自分自身のブロードキャストであるからステップＳ３２０で「Ｙ」となり、サーバ宣言は無視される。
【００５４】
ゲーム機Ａ０のクライアント調停部６１のアルゴリズム：自機のブローキャストであるからステップＳ４２０は「Ｙ」となり、ステップＳ４７０へ進み、自機はサーバであるからステップＳ４７０は「Ｙ」となり、サーバ宣言は無視される。
【００５５】
ゲーム機Ａ１及びＡ２のサーバ調停部６０のアルゴリズム：自機はサーバではないのでステップＳ３００で「Ｎ」となり、サーバ宣言は無視される。
【００５６】
ゲーム機Ａ１及びＡ２のクライアント調停部６１のアルゴリズム：自機によるブロードキャストではないのでステップＳ４２０の判断は「Ｎ」となり、ステップＳ４３０においてゲーム機Ａ０とゲーム機Ａ３のサーバ稼動開始時刻の比較を行う。ゲーム機Ａ３のサーバ稼動開始時刻の方が古いのでステップＳ４７０へ進み、自機はサーバではないのでステップＳ４７０は「Ｎ」となり、ステップＳ４８０へ進む。サーバからのブロードキャスト信号５１０は受信しているのでステップＳ４８０は「Ｎ」となり、結果としてサーバ宣言は無視される。
【００５７】
ゲーム機Ａ３のサーバ調停部６０のアルゴリズム：自機はサーバであり、ブロードキャストを検出したが自分のブロードキャストではないのでステップＳ３３０へ進む。ステップＳ３３０でブロードキャストを行ったゲーム機Ａ０と自機のサーバとしての稼動開始時刻が比較される。自機の方が古いのでステップＳ３５０に進み、ゲーム機Ａ０をクライアント端末と設定すべく自機のサーバ受信部０にゲーム機Ａ０のＩＰアドレスを記録６１０し、次のステップＳ３８０でサーバ宣言のブロードキャストをサーバ送信部８０に依頼６２０し、ブロードキャストの信号６３０を発生させる。ブロードキャストの信号６３０（以下「ブロードキャスト信号６３０」という）を受信した各ゲーム機Ａ０…Ａ３のクライアント受信部９４はその信号６４０を各サーバ調停部６０及び各クライアント調停部６１へ送信する。
【００５８】
ゲーム機Ａ３のクライアント調停部６１のアルゴリズム：ブロードキャスト信号５１０は自機のブロードキャストではないのでステップＳ４３０へ進み、ブロードキャスト信号５１０を発生させたゲーム機Ａ０と今までサーバであったゲーム機Ａ３のサーバ稼動開始時刻を比較する。ゲーム機Ａ３のサーバ稼動開始時刻の方が古いのでステップＳ４７０へ進む。自機はサーバであるからステップＳ４７０は「Ｙ」となり、結果的に当該サーバ宣言は無視される。
【００５９】
各ゲーム機Ａ０…Ａ３においてブロードキャスト信号６３０の信号６４０を各サーバ調停部６０及び各クライアント調停部が受信して調停後の状態を図６（ｂ）に示す。各ゲーム機Ａ０…Ａ３においてブロードキャストの信号６３０をバス６４０を介して受信した各サーバ調停部６０及び各クライアント調停部６１においては上述した図３及び図４に示したアルゴリズムが以下のように実行される。
【００６０】
ゲーム機Ａ０のサーバ調停部６０のアルゴリズム：自機はサーバと判断するが、検出したブロードキャスト信号６３０は自機によるものではないため、ステップＳ３３０へ進む。ステップＳ３３０で自機とブロードキャスト６３０を行ったゲーム機Ａ３とにおいてサーバ稼動開始時刻を比較する。ゲーム機Ａ３の方が古いのでステップＳ３７０へ進み、ゲーム機Ａ０はサーバ機能を停止する。
【００６１】
ゲーム機Ａ０のクライアント調停部６１のアルゴリズム：ブロードキャスト信号６３０は自機によるものではないためステップＳ４３０へ進む。ステップＳ４３０では自機とゲーム機Ａ３のサーバ稼働時間が比較される。ゲーム機Ａ３の方が古いのでステップＳ４６０へ進み、ゲーム機Ａ０におけるクライアント調停部６１は信号６５０によってゲーム機Ａ０におけるクライアント送信部８１の送信先ＩＰアドレスをゲームＡ３のアドレスに変更する。
【００６２】
ゲーム機Ａ１及びゲーム機Ａ２のサーバ調停部６０のアルゴリズム：自機はサーバではないためサーバ宣言は無視される。
【００６３】
ゲーム機Ａ１及びゲーム機Ａ２のクライアント調停部６１のアルゴリズム：ブロードキャスト信号６３０を発生させたゲーム機Ａ３と現行サーバは同じなのでサーバ宣言は無視される。
【００６４】
ゲーム機Ａ３のサーバ調停部６０のアルゴリズム：ブロードキャスト信号６３０は自機によるものなのでステップＳ３２０は「Ｙ」となりサーバ宣言は無視される。
【００６５】
ゲーム機Ａ３のクライアント調停部６１のアルゴリズム：ブロードキャスト信号６３０は自機によるものなのでステップＳ４２０は「Ｙ」となり、ステップＳ４７０へ進む。自機はサーバであるからステップＳ４７０も「Ｙ」となりサーバ宣言は無視される。
以上、結果としてゲーム機Ａ０の電源を入れた後、各ゲーム機Ａ０…Ａ３における各調停部６０、６１によってゲーム機Ａ３が店舗内ＬＡＮにおいてサーバとなり、ゲーム機Ａ０はクライアントとなる。
【００６６】
図７及び図８はゲーム機Ａ３が店舗内サーバであるゲーム機Ａ０…Ａ３で構成される店舗内ＬＡＮにおいてゲーム機Ａ０がプレイヤーのデータを呼び出す要求をした場合のデータの流れを示す図である。プレイヤーデータはゲーム機Ａ１及びゲーム機Ａ２にデータＤ１及びデータＤ２として各々保存されており、データＤ２が最新データであるとする。各ゲーム機における略称は図５及び図６と同様である。
【００６７】
図７（ａ）はゲーム機Ａ０が店舗内サーバゲーム機Ａ３へゲームアプリケーションの呼び出しによって特定のプレイヤーデータを要求するようすを示す図である。ゲーム機Ａ０は「このプレイヤーＩＤのプレイヤーデータを要求する」という要求信号７０１をゲーム機Ａ３のサーバ受信部９０に送信する。サーバ受信部９０はゲーム機Ａ０から送信されたデータのみを受信するためのサーバ受信部である。ゲーム機Ａ３のサーバ受信部Ａ０は受信した要求信号データ７０２をゲーム機Ａ０からの送信データを処理するサーバ処理部７１へ送る。
【００６８】
図７（ｂ）はゲーム機Ａ０の要求に従って店舗内サーバであるゲーム機Ａ３が処理しているようすを示す図である。ゲーム機Ａ３のサーバ処理部７１はサーバ送信部８０及びインターネット送受信部５５へ「このプレイヤーＩＤのプレイヤーデータを探せ」と指令７０５、７０６を送る。当該指令信号７０３、７０７が当該店舗内ＬＡＮにおける全ゲーム機Ａ０…Ａ３及びセンタサーバ５へ送信される。当該指令信号７０３を受信した各クライアント受信部９４は当該指令データ７０４を各クライアント処理部７５へ送る。
【００６９】
図８（ａ）は該当するデータを見つけたゲーム機Ａ１、Ａ２が当該データをゲーム機Ａ３へ送信する様子を示した図である。要求されたプレイヤーＩＤのプレイヤーデータが保存するデータＤ１、Ｄ２の中にあった場合はかかるデータ８０４をクライアント処理部へ７５へ送り、クライアント処理部７５は当該データ８０４を信号８０５にしてクライアント送信部８１へ送る。クライアント送信部８１は当該データ８０４を信号８０３にしてゲーム機Ａ３の各サーバ受信部へ送信する。本例の場合はゲーム機Ａ１とゲーム機Ａ２に要求されたデータが保存されていたのでゲーム機Ａ１からのデータはゲーム機Ａ３のサーバ受信部９１が、ゲーム機Ａ２からのデータはサーバ受信部９２が受信する。データ信号８０３を受信した各サーバ受信部９１、９２はこのデータ内容をデータ信号８０６によってサーバ処理部７１へ送信する。また、センタサーバ５からも該当するデータがあった場合はインターネット８０１を介してインターネット送受信部５５からサーバ処理部７１へデータ信号８０２が送信される。なお、該当するデータがないゲーム機、例えばゲーム機Ａ０は何も返答しない。
【００７０】
図８（ｂ）は店舗内サーバであるゲーム機Ａ３のサーバ処理部７１が最終的なデータを送信するようすを示した図である。サーバ処理部７１はデータ信号８０２、８０６の受信を一定期間で打ち切り、得られたデータの中で最新のデータを選ぶ。
本例の場合はゲーム機Ａ２が有するデータＤ２のデータが最新データである。よってサーバ処理部７１はかかる最新データ８１１をサーバ送信部８０へ送り、サーバ送信部８０は最新データ８１１をデータ信号８１２によってゲーム機Ａ０へ送信する。ゲーム機Ａ０のクライアント受信部９４は当該データ信号８１２を受信するとその内容を信号８１３としてゲームアプリケーションへ送信する。
【００７１】
【発明の効果】
以上に説明したように、本発明によるネットワークゲームシステムによれば、全国の各店舗内にサーバとしての機能を有するゲーム機を設け、ネットワーク内で済むゲーム進行上の処理は当該サーバが行い、かつセンタサーバへの送受信は当該サーバが一括して行うので、センタサーバの負荷を軽減することができる。また、センタサーバとの接続に使用するネットワークのトラブルは各ゲーム機上で展開されているゲームに直ちには影響を及ぼさない。また、このサーバとしての機能を有するゲーム機はゲーム機としても使用できるのでインカム０のサーバをゲーム機とは別に設置するよりも省スペースかつ低コストを図ることができる。また、店舗内におけるすべてのゲーム機がサーバ機能を有しており、どのゲーム機もサーバとなり得るので場所を取るサーバを設置する必要がない。また、店舗内のサーバにトラブルが発生しても当該店舗内における他のゲーム機が調停し合って新しいサーバを決定するので安定したゲーム世界を提供することができる。
【図面の簡単な説明】
【図１】本発明における一実施形態を示すネットワークゲームシステム構成図。
【図２】各ゲーム機の内部構造における処理別部門とそれら処理別部門間のデータの流れを示す図。
【図３】各ゲーム機のサーバ調停部において行われるアルゴリズムを示すフローチャート。
【図４】各ゲーム機のクライアント調停部において行われるアルゴリズムを示すフローチャート。
【図５】１の店舗内サーバを決定するまでの各ゲーム機内における内部信号のやりとりを示す図であって、（ａ）は、ゲーム機Ａ１…Ａ３で構成されている店舗内ＬＡＮを示し、（ｂ）は、ゲーム機Ａ０によるサーバ宣言を受信した各ゲーム機の内部信号を示す。
【図６】図５に続く図であって、（ａ）はゲーム機Ａ３によるサーバ宣言を受信した各ゲーム機の内部信号を示し、（ｂ）はゲーム機Ａ３をサーバとして設定するゲーム機Ａ０の内部信号を示す。
【図７】ゲーム機Ａ０がプレイヤーデータを要求したときのデータの流れを示す図であって、（ａ）はゲーム機Ａ０が店舗内サーバであるゲーム機Ａ３へ特定のプレイヤーのデータを要求したようすを示し、（ｂ）はゲーム機Ａ３が同一店舗内の全クライアント及びセンタサーバにゲーム機Ａ０から要求されたデータを問い合わせるようすを示す。
【図８】図７に続く図であって、（ａ）はゲーム機Ａ１とゲーム機Ａ２及びセンタサーバが見つけた問い合わせデータをゲーム機Ａ３へ送信しているようすを示し、（ｂ）はゲーム機Ａ３に送信されたデータのうち最新データがゲーム機Ａ０へ送信されるようすを示す。
【符号の説明】
Ａ〜Ｃ        店舗
１ａ〜１ｄ        店舗Ａにおけるゲーム機
１１ａ〜１１ｄ    店舗Ｂにおけるゲーム機
２１ａ〜２１ｄ    店舗Ｃにおけるゲーム機
２、１２、２２    店舗内ＬＡＮ
４          各店舗内ＬＡＮとセンタサーバを結ぶネットワーク
５          センタサーバ
５０        サーバ機能部
５１        クライアント機能部
５５        インターネット送受信部
６０        サーバ調停部
６１        クライアント調停部
７０〜７４  サーバ処理部
８０        サーバ送信部
８１        クライアント送信部
９０〜９３  サーバ受信部
９４        クライアント受信部
９５        ゲーム実行部
【図１】
0003625285.tif 000002
【図２】
0003625285.tif 000003
【図３】
0003625285.tif 000004
【図４】
0003625285.tif 000005
【図５】
0003625285.tif 000006
【図６】
0003625285.tif 000007
【図７】
0003625285.tif 000008
【図８】
0003625285.tif 000009