(57)【要約】【課題】ピア・ツー・ピア方式のネットワークシステムにおいて、ゲーム機が他のゲーム機と直接通信ができない場合あっても、安定的なネットワークシステムを実現することができるプログラム、情報記憶媒体、ゲーム機及びネットワークシステムを提供する。【解決手段】ピア・ツー・ピア方式のネットワークシステムでゲーム機３（第１のゲーム機）がゲーム機２（第２のゲーム機）と直接通信できない場合には、ゲーム機３がゲーム機２とデータを共有することができるようにするために、ゲーム機１（第３のゲーム機）を介して転送処理を行う。すなわち、ゲーム機３がゲーム機２と直接通信できない場合には、ゲーム機１を介して、ゲーム２機へデータを転送する。【選択図】図３
2008136777.tif 000002
【特許請求の範囲】
【請求項１】
複数のゲーム機が各ゲーム機同士で相互にパケットを直接通信するネットワークシステムのためのプログラムであって、
所与の条件下で、各ゲーム機に個別に付与される識別情報と、前記識別情報に対応付けられたパケットの送信先を指定する宛先情報とを取得するネットワーク設定部と、
前記宛先情報を含むヘッダーと前記識別情報を含むペイロードとからなるパケットを通信部に送受信させる通信制御部と、
自機が所属する通信グループの他のゲーム機から受信した前記パケットを解析し、前記パケットに含まれる前記識別情報に対応するゲーム機を特定する識別情報判定部としてゲーム機を機能させ、
前記通信制御部が、
前記識別情報判定部において前記通信グループの第１のゲーム機から受信した前記パケットを解析して特定されたゲーム機が自機と異なる前記通信グループの第２のゲーム機である場合には、前記第２のゲーム機の宛先情報を含むヘッダーと前記第１のゲーム機から受信した前記パケットのペイロードとからなる転送パケットを生成し、当該転送パケットを前記第２のゲーム機に転送することを特徴とするプログラム。
【請求項２】
複数のゲーム機が各ゲーム機同士で相互にパケットを直接通信するネットワークシステムのためのプログラムであって、
所与の条件下で、各ゲーム機に個別に付与される識別情報と、前記識別情報に対応付けられたパケットの送信先を指定する宛先情報とを取得するネットワーク設定部と、
前記宛先情報を含むヘッダーと前記識別情報を含むペイロードとからなるパケットを通信部に送受信させる通信制御部と、
自機が所属する通信グループの他のゲーム機と相互に直接通信ができるか否かを判断する直接通信判断部としてゲーム機を機能させ、
前記直接通信判断部が、
自機から送信された接続確認パケットに対する前記通信グループの特定のゲーム機からの返答パケットを所定期間内に受信しなかった場合には、自機が当該特定のゲーム機と直接通信不能と判断し、
前記通信制御部が、
直接通信不能な前記特定のゲーム機にパケットを送信する場合には、前記通信グループの前記特定のゲーム機以外のゲーム機の宛先情報を含むヘッダーと前記特定のゲーム機の識別情報を含むペイロードとからなるパケットを生成し、生成されたパケットを当該宛先情報で指定されるゲーム機に送信することを特徴とするプログラム。
【請求項３】
請求項２において、
前記通信制御部が、
前記ヘッダーと、前記特定のゲーム機の識別情報に加えて自機の識別情報を含むペイロードとからなるパケットを生成することを特徴とするプログラム。
【請求項４】
請求項２または３において、
前記通信制御部が、
前記直接通信判断部において、自機が前記特定のゲーム機と直接通信不能と判断される場合には、前記特定のゲーム機以外のゲーム機の宛先情報を含むヘッダーと、前記特定のゲーム機の識別情報及び直接通信不能な前記特定のゲーム機を退出させる退出要求情報を含むペイロードとからなる退出要求パケットを生成し、当該退出要求パケットを当該宛先情報で指定されるゲーム機に送信し、
前記ネットワーク設定部が、
他のゲーム機から送信された退出要求パケットを受信した場合には、所定条件下で、前記通信グループから自機を退出させる処理を行うことを特徴とするプログラム。
【請求項５】
請求項４において、
前記ネットワーク設定部が、
前記通信グループの各ゲーム機の優先順位を設定した優先順位情報に基づいて、自機と直接通信不能な前記特定のゲーム機との優先順位を判定し、判定結果に基づいて自機が前記特定のゲーム機よりも優先順位が低いと判断される場合には、前記通信グループから自機を退出させる処理を行うことを特徴とするプログラム。
【請求項６】
請求項５において、
前記通信制御部が、
前記優先順位情報に基づいて、前記他のゲーム機から送信された退出要求パケットを受信した自機が前記他のゲーム機よりも優先順位が高いと判断される場合には、前記他のゲーム機以外のゲーム機の宛先情報を含むヘッダーと、前記他のゲーム機の識別情報及び前記他のゲーム機を退出させる退出要求情報を含むペイロードとからなる退出要求パケットを生成し、当該退出要求パケットを当該宛先情報で指定されるゲーム機に送信することを特徴とするプログラム。
【請求項７】
コンピュータにより読取可能な情報記憶媒体であって、請求項１〜６のいずれかに記載のプログラムを記憶することを特徴とする情報記憶媒体。
【請求項８】
複数のゲーム機が各ゲーム機同士で相互にパケットを直接通信するネットワークシステムのためのゲーム機であって、
通信により他のゲーム機との間でパケットの送受信を行う通信部と、
所与の条件下で、各ゲーム機に個別に付与される識別情報と、前記識別情報に対応付けられたパケットの送信先を指定する宛先情報とを取得するネットワーク設定部と、
前記宛先情報を含むヘッダーと前記識別情報を含むペイロードとからなるパケットを通信部に送受信させる通信制御部と、
自機が所属する通信グループの他のゲーム機から受信した前記パケットを解析し、前記パケットに含まれる前記識別情報に対応するゲーム機を特定する識別情報判定部と、
を含み、
前記通信制御部が、
前記識別情報判定部において前記通信グループの第１のゲーム機から受信した前記パケットを解析して特定されたゲーム機が自機と異なる前記通信グループの第２のゲーム機である場合には、前記第２のゲーム機の宛先情報を含むヘッダーと前記第１のゲーム機から受信した前記パケットのペイロードとからなる転送パケットを生成し、当該転送パケットを前記第２のゲーム機に転送することを特徴とするゲーム機。
【請求項９】
複数のゲーム機が各ゲーム機同士で相互にパケットを直接通信するネットワークシステムのためのゲーム機であって、
通信により他のゲーム機との間でパケットの送受信を行う通信部と、
所与の条件下で、各ゲーム機に個別に付与される識別情報と、前記識別情報に対応付けられたパケットの送信先を指定する宛先情報とを取得するネットワーク設定部と、
前記宛先情報を含むヘッダーと前記識別情報を含むペイロードとからなるパケットを通信部に送受信させる通信制御部と、
自機が所属する通信グループの他のゲーム機と相互に直接通信ができるか否かを判断する直接通信判断部と、
を含み、
前記直接通信判断部が、
自機から送信された接続確認パケットに対する前記通信グループの特定のゲーム機からの返答パケットを所定期間内に受信しなかった場合には、自機が当該特定のゲーム機と直接通信不能と判断し、
前記通信制御部が、
直接通信不能な前記特定のゲーム機にパケットを送信する場合には、前記通信グループの前記特定のゲーム機以外のゲーム機の宛先情報を含むヘッダーと前記特定のゲーム機の識別情報を含むペイロードとからなるパケットを生成し、生成されたパケットを当該宛先情報で指定されるゲーム機に送信することを特徴とするゲーム機。
【請求項１０】
複数のゲーム機が各ゲーム機同士で相互にパケットを直接通信するネットワークシステムであって、
各ゲーム機が、
通信により他のゲーム機との間でパケットの送受信を行う通信部と、
所与の条件下で、各ゲーム機に個別に付与される識別情報と、前記識別情報に対応付けられたパケットの送信先を指定する宛先情報とを取得するネットワーク設定部と、
前記宛先情報を含むヘッダーと前記識別情報を含むペイロードとからなるパケットを通信部に送受信させる通信制御部と、
自機が所属する通信グループの他のゲーム機と相互に直接通信ができるか否かを判断する直接通信判断部と、
前記通信グループの他のゲーム機から受信した前記パケットを解析し、前記パケットに含まれる前記識別情報に対応するゲーム機を特定する識別情報判定部と、
を含み、
通信グループの第１のゲーム機の直接通信判断部が、
第１のゲーム機から前記通信グループの第２のゲーム機へ送信された接続確認パケットに対して、当該第２のゲーム機からの返答パケットを所定期間内に受信しなかった場合には、当該第１のゲーム機が当該第２のゲーム機と直接通信不能と判断し、
前記第１のゲーム機の通信制御部が、
前記第２のゲーム機にパケットを送信する場合には、前記第２のゲーム機の宛先情報を含むヘッダーと前記第２のゲーム機の識別情報を含むペイロードとからなるパケットを生成し、生成されたパケットを前記通信グループの第３のゲーム機に送信し、
前記第３のゲーム機の通信制御部が、
前記識別情報判定部において前記第１のゲーム機から受信した前記パケットを解析して特定されたゲーム機が自機と異なる前記第２のゲーム機である場合には、前記第２のゲーム機の宛先情報を含むヘッダーと前記第１のゲーム機から受信した前記パケットのペイロードとからなる転送パケットを生成し、当該転送パケットを前記第２のゲーム機に転送することを特徴とするネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、ゲーム機及びネットワークシステムに関する。
【背景技術】
【０００２】
従来より、ピア・ツー・ピア（いわゆるＰ２Ｐ）方式によって複数のゲーム機間で情報の送受信を行いながらオンラインゲームを実行するネットワークシステムが知られている（特許文献１）。ピア・ツー・ピア方式のネットワークシステムでは、不特定多数の端末間で直接通信を行うネットワークの利用形態であり、多数のゲーム機が相互に直接通信して情報資源を共有することができる。
【０００３】
しかしながら、ピア・ツー・ピア方式のネットワークシステムは、各ゲーム機が相互に直接通信を行うネットワークシステムであるので、ネットワークシステムを構成するいずれかのゲーム機に通信機能の障害が発生すると、当該ゲーム機は他のゲーム機との間で、ゲームに必要なデータを共有することができなくなる。つまり、通信機能の障害が発生するゲーム機は、他のゲーム機と直接通信できなくなる。
【０００４】
通信機能の障害の原因の一例として、ルータの設定の問題が挙げられる。例えば、ゲーム機に接続されているルータのファイアウォールの設定が、ＷＡＮ（広域ネットワーク）側の他のゲーム機から送信されたパケットを拒否する設定になっている場合である。かかる場合には、ＤＭＺ（ＤｅＭｉｌｉｔａｒｉｚｅｄ  Ｚｏｎｅ）の設定を行うことで、ＷＡＮ側のゲーム機から送信されたパケットを、受信することができる。ＤＭＺとは、インターネットに接続されたネットワークシステムにおいて、ファイアウォールによってＷＡＮからもＬＡＮ（閉域ネットワーク）からも隔離された区域のことをいう。ＤＭＺの設定をするためには、ゲーム機のＷＡＮ側のＩＰアドレスを、ＬＡＮ側にあるゲーム機のプライベートアドレスに差し替えるようにルータを設定する。このようにすれば、当該ゲーム機は、インターネット上の他のゲーム機と通信を確立することができる。
【０００５】
しかしながら、ネットワークやルータの知識が乏しいプレーヤは、ルータのＤＭＺの設定ができず、ゲームに参加できない恐れがある。さらに、ＤＭＺの設定をした場合であっても、ゲーム機がＬＡＮだけでなくＷＡＮからのアクセスが可能となってしまうため、ゲーム機が不正アクセスされる恐れが生じてしまい、セキュリティ面での脆弱性が問題となる。
【特許文献１】特開２００６−６１２４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、ピア・ツー・ピア方式のネットワークシステムにおいて、ゲーム機が他のゲーム機と直接通信ができない場合あっても、安定的なネットワークシステムを実現することができるプログラム、情報記憶媒体、ゲーム機及びネットワークシステムを提供することにある。
【課題を解決するための手段】
【０００７】
（１）本発明は、
複数のゲーム機が各ゲーム機同士で相互にパケットを直接通信するネットワークシステムのためのゲーム機であって、
通信により他のゲーム機との間でパケットの送受信を行う通信部と、
所与の条件下で、各ゲーム機に個別に付与される識別情報と、前記識別情報に対応付けられたパケットの送信先を指定する宛先情報とを取得するネットワーク設定部と、
前記宛先情報を含むヘッダーと前記識別情報を含むペイロードとからなるパケットを通信部に送受信させる通信制御部と、
自機が所属する通信グループの他のゲーム機から受信した前記パケットを解析し、前記パケットに含まれる前記識別情報に対応するゲーム機を特定する識別情報判定部と、
を含み、
前記通信制御部が、
前記識別情報判定部において前記通信グループの第１のゲーム機から受信した前記パケットを解析して特定されたゲーム機が自機と異なる前記通信グループの第２のゲーム機である場合には、前記第２のゲーム機の宛先情報を含むヘッダーと前記第１のゲーム機から受信した前記パケットのペイロードとからなる転送パケットを生成し、当該転送パケットを前記第２のゲーム機に転送することを特徴とするゲーム機に関係する。また本発明は、ゲーム機で読み取り可能な情報記憶媒体であって、上記各部としてゲーム機を機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。なお、本発明の「自機」とはプレーヤの所有するゲーム機である。
【０００８】
本発明によれば、第１のゲーム機から受信した前記パケットを解析して特定されたゲーム機が自機と異なる前記通信グループの第２のゲーム機である場合には、転送パケットを生成し、当該転送パケットを前記第２のゲーム機に転送するので、第１のゲーム機は、第２のゲーム機と直接通信できない場合であっても任意のゲーム機を介して第２のゲーム機へゲームに必要な情報（データ）を送信できる。
【０００９】
また、本発明によれば、自機は、クライアントからの要求に応じてサービスを提供するサーバ・クライアント方式のサーバのように、全てのゲーム機を管理する必要はない。すなわち、自機が受信したパケットの識別情報が第２のゲーム機である場合には、転送パケットを生成し、第２のゲーム機へ当該転送パケットを転送する。つまり、自機は、全てのゲーム機に関してではなく、第１のゲーム機に関して、サーバ的な役割を負うことになる。従って、自機の処理は、サーバ・クライアント方式のサーバに比較すると格段に処理負荷を抑えることができる。
【００１０】
（２）本発明は、
複数のゲーム機が各ゲーム機同士で相互にパケットを直接通信するネットワークシステムのためのゲーム機であって、
通信により他のゲーム機との間でパケットの送受信を行う通信部と、
所与の条件下で、各ゲーム機に個別に付与される識別情報と、前記識別情報に対応付けられたパケットの送信先を指定する宛先情報とを取得するネットワーク設定部と、
前記宛先情報を含むヘッダーと前記識別情報を含むペイロードとからなるパケットを通信部に送受信させる通信制御部と、
自機が所属する通信グループの他のゲーム機と相互に直接通信ができるか否かを判断する直接通信判断部と、
を含み、
前記直接通信判断部が、
自機から送信された接続確認パケットに対する前記通信グループの特定のゲーム機からの返答パケットを所定期間内に受信しなかった場合には、自機が当該特定のゲーム機と直接通信不能と判断し、
前記通信制御部が、
直接通信不能な前記特定のゲーム機にパケットを送信する場合には、前記通信グループの前記特定のゲーム機以外のゲーム機の宛先情報を含むヘッダーと前記特定のゲーム機の識別情報を含むペイロードとからなるパケットを生成し、生成されたパケットを当該宛先情報で指定されるゲーム機に送信することを特徴とするゲーム機に関係する。また本発明は、上記各部としてゲーム機を機能させるプログラムに関係する。また本発明は、ゲーム機で読み取り可能な情報記憶媒体であって、上記各部としてゲーム機を機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【００１１】
本発明によれば、直接通信不能な特定のゲーム機にパケットを送信する場合には、通信グループの特定のゲーム機以外のゲーム機の宛先情報を含むヘッダーと前記特定のゲーム機の識別情報を含むペイロードとからなるパケットを生成し、生成されたパケットを当該宛先情報で指定されるゲーム機に送信するので、自機が、特定のゲーム機と直接通信できない場合であっても、特定のゲーム機以外のゲーム機を介してゲームに必要な情報（データ）を特定のゲーム機へ送信することができる。従って、自機は、ピア・ツー・ピア方式のネットワークシステムにおいて、特定のゲーム機と直接通信ができなくても、特定のゲーム機以外のゲーム機を介して当該特定のゲーム機へゲームに必要な情報を送信できる。
【００１２】
さらに、本発明によれば、自機が特定のゲーム機と直接通信ができない原因がルータの設定である場合であっても、プレーヤはルータのＤＭＺの設定をすることなく特定のゲーム機にデータを送信することができる。
【００１３】
（３）また本発明のゲーム機、プログラム及び情報記憶媒体では、
前記通信制御部が、
前記ヘッダーと、前記特定のゲーム機の識別情報に加えて自機の識別情報を含むペイロードとからなるパケットを生成するようにしてもよい。
【００１４】
本発明によれば、自機の識別情報がパケットに含まれるので、転送パケットを受信した特定のゲーム機は、転送パケットに含まれる情報（データ）の発信源のゲーム機を特定することができる。
【００１５】
（４）また本発明のゲーム機、プログラム及び情報記憶媒体では、
前記通信制御部が、
前記直接通信判断部において、自機が前記特定のゲーム機と直接通信不能と判断される場合には、前記特定のゲーム機以外のゲーム機の宛先情報を含むヘッダーと、前記特定のゲーム機の識別情報及び直接通信不能な前記特定のゲーム機を退出させる退出要求情報を含むペイロードとからなる退出要求パケットを生成し、当該退出要求パケットを当該宛先情報で指定されるゲーム機に送信し、
前記ネットワーク設定部が、
他のゲーム機から送信された退出要求パケットを受信した場合には、所定条件下で、前記通信グループから自機を退出させる処理を行うようにしてもよい。
【００１６】
本発明によれば、自機が前記特定のゲーム機と直接通信不能と判断される場合には、退出要求パケットを生成し、当該退出要求パケットを特定のゲーム機以外のゲーム機に送信するので、自機は、特定のゲーム機以外のゲーム機を介して特定のゲーム機に対して通信グループから退出するように要求することができる。例えば、ピア・ツー・ピア方式のネットワークシステムでは、通信グループの特定のゲーム機以外の全てのゲーム機が相互に接続できる場合には、直接通信不能な特定のゲーム機を通信グループから退出させた方が望ましい場合がある。かかる場合において、自機は直接通信不能な特定のゲーム機を通信グループの特定のゲーム機以外のゲーム機を介して退出させるように要求することができる。また、逆に他のゲーム機から送信された退出要求パケットを自機が受信した場合には、所定条件下で、通信グループから自機を退出させることができる。従って、ピア・ツー・ピア方式のネットワークシステムの安定的な運用を実現できる。
【００１７】
（５）また本発明のゲーム機、プログラム及び情報記憶媒体では、
前記ネットワーク設定部が、
前記通信グループの各ゲーム機の優先順位を設定した優先順位情報に基づいて、自機と直接通信不能な前記特定のゲーム機との優先順位を判定し、判定結果に基づいて自機が前記特定のゲーム機よりも優先順位が低いと判断される場合には、前記通信グループから自機を退出させるようにしてもよい。
【００１８】
本発明によれば、優先順位情報に基づいて自機と直接通信不能な特定のゲーム機との優先順位を判定し、判定結果に基づいて自機が特定のゲーム機よりも優先順位が低いと判断される場合には、通信グループから自機を退出させる処理を行うので、退出させるべきゲーム機を容易にかつ適切に判断することができる。
【００１９】
（６）また本発明のゲーム機、プログラム及び情報記憶媒体では、
前記通信制御部が、
前記優先順位情報に基づいて、前記他のゲーム機から送信された退出要求パケットを受信した自機が前記他のゲーム機よりも優先順位が高いと判断される場合には、前記他のゲーム機以外のゲーム機の宛先情報を含むヘッダーと、前記他のゲーム機の識別情報及び前記他のゲーム機を退出させる退出要求情報を含むペイロードとからなる退出要求パケットを生成し、当該退出要求パケットを当該宛先情報で指定されるゲーム機に送信するようにしてもよい。
【００２０】
本発明によれば、自機が他のゲーム機から送信された退出要求パケットを受信した場合であっても、優先順位に基づいて自機を退出させるべきか否かを適切に判断することができる。また、自機が他のゲーム機よりも優先順位が高い場合には、前記他のゲーム機以外のゲーム機を介して他のゲーム機に対して退出要求することができる。
【００２１】
（７）また本発明は、
複数のゲーム機が各ゲーム機同士で相互にパケットを直接通信するネットワークシステムであって、
各ゲーム機が、
通信により他のゲーム機との間でパケットの送受信を行う通信部と、
所与の条件下で、各ゲーム機に個別に付与される識別情報と、前記識別情報に対応付けられたパケットの送信先を指定する宛先情報とを取得するネットワーク設定部と、
前記宛先情報を含むヘッダーと前記識別情報を含むペイロードとからなるパケットを通信部に送受信させる通信制御部と、
自機が所属する通信グループの他のゲーム機と相互に直接通信ができるか否かを判断する直接通信判断部と、
前記通信グループの他のゲーム機から受信した前記パケットを解析し、前記パケットに含まれる前記識別情報に対応するゲーム機を特定する識別情報判定部と、
を含み、
通信グループの第１のゲーム機の直接通信判断部が、
第１のゲーム機から前記通信グループの第２のゲーム機へ送信された接続確認パケットに対して、当該第２のゲーム機からの返答パケットを所定期間内に受信しなかった場合には、当該第１のゲーム機が当該第２のゲーム機と直接通信不能と判断し、
前記第１のゲーム機の通信制御部が、
前記第２のゲーム機にパケットを送信する場合には、前記第２のゲーム機の宛先情報を含むヘッダーと前記第２のゲーム機の識別情報を含むペイロードとからなるパケットを生成し、生成されたパケットを前記通信グループの第３のゲーム機に送信し、
前記第３のゲーム機の通信制御部が、
前記識別情報判定部において前記第１のゲーム機から受信した前記パケットを解析して特定されたゲーム機が自機と異なる前記第２のゲーム機である場合には、前記第２のゲーム機の宛先情報を含むヘッダーと前記第１のゲーム機から受信した前記パケットのペイロードとからなる転送パケットを生成し、当該転送パケットを前記第２のゲーム機に転送することを特徴とするネットワークシステムに関係する。
【００２２】
本発明によれば、通信グループの第１のゲーム機が、通信グループの第２のゲーム機と直接通信できない場合であっても、第３のゲーム機を介してゲームに必要な情報（データ）を送信することができる。従って、第１のゲーム機は、ピア・ツー・ピア方式のネットワークシステムにおいて、第２のゲーム機と直接通信ができなくても、第１のゲーム機は第２のゲーム機に第３のゲーム機を介して情報（データ）を送信できる。
【発明を実施するための最良の形態】
【００２３】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２４】
１．ネットワークシステム
本実施形態のネットワークシステムは、ピア・ツー・ピア方式のネットワークシステムである。ピア・ツー・ピア方式のネットワークシステムを採用する理由は、各ゲーム機が相互に直接通信して情報資源を共有することができ、オンラインゲームに適しているからである。
【００２５】
従来のオンラインゲームでは、クライアント・サーバ方式のネットワークシステムを採用する。クライアント・サーバ方式のネットワークシステムのサーバは、全てのクライアントからの要求に応じてサービスを提供しなければならないので、処理内容に応じた性能の高いマシンが要求される。従って、オンラインゲーム専用のサーバを設ける場合には、性能の高いマシンを用意しなければならないためコストがかかり問題となる。また、専用のサーバを設けずに、いずれかのゲーム機をサーバに設定し、残りのゲーム機をクライアントとして、クライアント・サーバ方式のネットワークシステムを構成した場合には、ゲーム機がサーバとしての処理ができる高性能なものでなければならない。
【００２６】
しかしながら、ゲーム機がサーバとしての処理ができる高性能なものにすると、ゲーム機が高価格になってしまい、オンラインゲームを楽しむプレーヤに敬遠される恐れがある。一方、ゲーム機の性能を重視せずに低価格なゲーム機になると、ゲーム機がサーバとしての処理ができなくなり様々な問題が生じる恐れがある。例えば、サーバのゲーム機の処理負荷が高くなり、各クライアントのゲーム機にデータが届くまでの時間の遅延が生じる。また、サーバのゲーム機がクラッシュする恐れもある。さらに、クライアント・サーバ方式のネットワークシステムは、サーバの通信機能に障害が発生すると、全てのクライアントがサーバと通信ができなくなる。
【００２７】
一方、ピア・ツー・ピア方式のネットワークシステムの場合には、各ゲーム機が相互に通信してデータを共有し、他のゲーム機を管理する必要がない。従って、クライアント・サーバ方式のネットワークシステムのサーバのゲーム機に比べて高性能なゲーム機であることは要求されない。また、ピア・ツー・ピア方式の場合は、特定のゲーム機の通信機能に障害が発生しても、特定のゲーム機以外の他のゲーム機は相互に通信可能な状態を維持できる。
【００２８】
したがって、オンラインゲームにおいて安定的なネットワークシステムを実現するためには、ピア・ツーシステム方式が適切であると考えられる。
【００２９】
図１は、本実施形態のピア・ツー・ピア方式のネットワークシステムの一例を示す。オンラインゲームに参加するゲーム機は、通常、ルータやプロバイダを介し、インターネット上を経由して、他のゲーム機と相互に通信してデータを送受信する。
【００３０】
オンラインゲームでは、ゲーム機の宛先情報（ＩＰアドレス、ポート番号等）を管理するサーバが存在する。例えば、ＮＮＳ（ＮＡＴ  Ｎｅｇｏｔｉａｔｉｏｎ  Ｓｅｒｖｅｒ）や、ＮＴＳ（ＮＡＴ  Ｔｒａｖｅｒｓａｌ  Ｓｅｒｖｅｒ）等が存在する。
【００３１】
本実施形態のネットワークシステムは、各ゲーム機が相互に直接通信して、データを共有する。例えば、図１では、ゲーム機１がゲーム機２へデータを送信する場合には、ゲーム機１が生成したパケットをそのままゲーム機２へ送信する。同様に、ゲーム機１は、ゲーム機３へデータを送信する場合には、ゲーム機１が生成したパケットをそのままゲーム機３へ送信する。このように、本実施形態のピア・ツー・ピア方式のネットワークシステムでは、ゲーム機間が相互にデータを通信し合う。
【００３２】
しかしながら、特定のゲーム機に通信障害が発生した場合には、特定のゲーム機に対して通信手法が問題となる。通信障害の発生の原因としては、ルータの設定の問題が挙げられる。例えば、ルータのファイアウォールの設定が起因して他のゲーム機から送信されたパケットを受信できなくなる場合である。ファイアウォールとは、不正アクセスを禁止する目的でセキュリティを強化するためのシステムをいう。ルータのファイアウォールの設定により、ＷＡＮとＬＡＮを切り分けて、ＬＡＮからＷＡＮへのアクセスや、ＷＡＮからＬＡＮへのアクセスを制御することができる。
【００３３】
例えば、図２では、本実実施形態のピア・ツー・ピア方式のネットワークシステムの一例である。図２に示す例では、ゲーム機２は、ゲーム機１から送信されたパケットは受信できるが、通信グループに新たに参加したゲーム機３から送信されたパケットは受信できない。例えば、ゲーム機２が、ゲーム機３からのアクセスを拒否する設定をしている場合である。このように、ゲーム機２がゲーム機３からのパケットを拒否している場合には、ゲーム機２は、ゲーム機３からのデータを受信することができなくなり、ゲーム機３との間でゲームに必要な情報（データ）を共有できなくなる。
【００３４】
そこで、本実施形態は、ピア・ツー・ピア方式のネットワークシステムでゲーム機３（第１のゲーム機）がゲーム機２（第２のゲーム機）と直接通信できない場合には、ゲーム機３がゲーム機２とデータを共有することができるようにするために、ゲーム機１（第３のゲーム機）を介して転送処理を行う。すなわち、本実施形態のネットワークシステムでは、ゲーム機３がゲーム機２と直接通信できない場合には、ゲーム機１を介して、ゲーム２機へデータを転送する。
【００３５】
図３は、本実施形態のネットワークシステムの一例を示す。例えば、図３（Ａ）は、各ゲーム機が通信上弊害なく相互に直接通信してデータを送受信する例である。図３（Ｂ）は、ゲーム機２とゲーム機３との間で直接に通信できない場合の例である。このように、ゲーム機２とゲーム機３との間で直接に通信できない場合には、ゲーム機３がゲーム機２へデータを送信する場合には、図３（Ｃ）に示すように、パケットをゲーム機１に送信し、ゲーム機１がゲーム機２へ転送する処理を行う。同様に、ゲーム機２がゲーム機３へデータを送信する場合には、パケットをゲーム機１に送信し、ゲーム機１がゲーム機３へ転送する処理を行う。
【００３６】
より詳細に説明すると、ゲーム機３がゲーム機２にデータを送信する場合には、送信すべきデータを含むパケットをゲーム機１に送信する。そして、ゲーム機１は、受信したパケットの送信先と送信元を変更した転送パケットを生成し、転送パケットをゲーム機３へ転送する。ゲーム機１が、転送すべきパケットであるか否かを判断するために、ゲーム機３は、本来届けるべき相手ゲーム機であるゲーム機２の識別情報（ＩＤ）をパケットのペイロード（データ）に入れるようにする。このようにすれば、パケットを受信したゲーム機１は、自分宛のパケットであるのか、他のゲーム機宛のパケットなのかを判断することができる。例えば、ゲーム機３が、ゲーム機２のＩＤ（ＩＤ＝２）をパケットのペイロードに含むようにして生成したパケットをゲーム機１に送信する。そして、ゲーム機１は、受信したパケットのペイロードに含まれるＩＤが、自機のＩＤ（ＩＤ＝１）ではなく（ＩＤ＝２）であると判断し、受信したパケットのペイロードをそのまま転送用の転送パケットのペイロードに設定し、転送パケットを、ＩＤ（ＩＤ＝２）で特定されるゲーム機２宛に転送する処理を行う。ゲーム機２がゲーム機３に送信する場合も同様の処理を行う。
【００３７】
このようにすれば、ピア・ツー・ピア方式のネットワークゲームシステムでゲーム機３がゲーム機２に直接通信できない場合であっても、ゲーム機１を介してデータを送信することができ、安定的なネットワークシステムを構築できる。
【００３８】
２．構成
図４に本実施形態のゲーム機（ネットワークシステム）の機能ブロック図の例を示す。なお本実施形態のゲーム機は図４の構成要素（各部）の一部を省略した構成としてもよい。
【００３９】
操作部１６０は、プレーヤがプレーヤオブジェクト（移動体オブジェクトの一例、プレーヤが操作するプレーヤ車両）の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００４０】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００４１】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００４２】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００４３】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信してもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００４４】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０内の主記憶部１７２をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００４５】
処理部１００は、ゲーム演算部１１０、ネットワーク設定部１１２、通信制御部１１４、識別情報判定部１１６、直接通信判断部１１８、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００４６】
ゲーム演算部１１０は、オブジェクト空間を設定する処理、オブジェクトの移動・動作処理、及び、仮想カメラを制御する処理を行う。
【００４７】
オブジェクト空間設定部は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００４８】
移動・動作処理部は、オブジェクト（キャラクタ、車、電車又は飛行機等）の移動・動作演算（移動・動作シミュレーション）を行う。すなわち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させたりする処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（オブジェクトを構成する各パーツの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００４９】
仮想カメラ制御部は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置、視線方向あるいは画角を制御する処理）を行う。
【００５０】
例えば仮想カメラによりオブジェクト（例えばキャラクタ、ボール、車）を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００５１】
ネットワーク設定部１１２は、ネットワークシステムで必要となる情報を取得し、管理する処理等を行う。特に、本実施形態のネットワーク設定部１１２は、所与の条件下で、各ゲーム機に個別に付与される識別情報と、識別情報に対応付けられたパケットの送信先を指定する宛先情報とを取得する。ここで、識別情報とは、オンラインゲームに参加できるゲーム機を識別するために個別に付与されたデータである。例えば、ゲーム機を識別するためのゲーム機毎に異なる固有のＩＤとすることができる。ＩＤは、数字やアルファベットの組み合わせからなるシリアル番号とすることができる。本実施形態のネットワーク設定部１１２は、識別情報に基づいて、ゲーム機を特定することができる。
【００５２】
また、宛先情報とは、ネットワークシステムを構成する各ゲーム機のＩＰアドレス、ポート番号とすることができる。ＩＰアドレスは、インターネット上もしくはＷＡＮで特定のゲーム機を特定するためのグローバルＩＰアドレスとしてもよいし、ＬＡＮで特定のゲーム機を特定するためのプライベートＩＰアドレスとしてもよい。
【００５３】
通信制御部１１４は、他のゲーム機に送信するパケットを生成する処理、パケット送信先のゲーム機のネットワークアドレスを指定する処理、受信したパケットを記憶部１７０に保存する処理、受信したパケットを解析する処理、その他のパケットの送受信に関する通信部１９６の制御処理等を行う。パケットとは、ネットワークにおいて、小さなデータの固まりを、送信元ＩＰアドレス、送信先ＩＰアドレスを含むネットワークに必要なヘッダーとともに、実際に送りたいデータをペイロードに含ませたデータのことをいう。また、アプリケーションレベルの通信を実現するためには、アプリケーションの種類を特定する「ポート番号」を用いて、ＴＣＰパケットやＵＤＰパケットを生成する。ＴＣＰパケットや、ＵＤＰパケットを生成する場合には、送信元のＩＰアドレス及び送信元のポート番号、送信先のＩＰアドレス及び送信先のポート番号を含むネットワークに必要なヘッダーとともに、実際に送りたいデータをペイロードに含ませるようにして生成する。
【００５４】
本実施形態の通信制御部１１４は、宛先情報を含むヘッダーと識別情報を含むペイロードとからなるパケットを通信部に送受信させる処理を行う。すなわち、本実施形態の通信制御部１１４は、パケットのヘッダーの送信先ＩＰアドレスと送信先ポート番号に、送信先のゲーム機のＩＰアドレスとポート番号指定し、ヘッダーの送信元のＩＰアドレスと送信元ポート番号に、自機のＩＰアドレスとポート番号を指定する。
【００５５】
また、本実施形態の通信制御部１１４は、直接通信不能な特定のゲーム機にパケットを送信する場合には、通信グループの特定のゲーム機以外のゲーム機の宛先情報を含むヘッダーと特定のゲーム機の識別情報を含むペイロードとからなるパケットを生成し、生成されたパケットを当該宛先情報で指定されるゲーム機に送信させる処理を行う。すなわち、本実施形態の通信制御部１１４は、直接通信不能な特定のゲーム機にパケットを送信する場合には、ヘッダーの送信先のＩＰアドレス及びポート番号に通信グループの特定のゲーム機以外のゲーム機のＩＰアドレス及びポート番号を指定し、直接通信不能な特定のゲーム機のＩＤを含むペイロードとからなるパケットを生成し、生成されたパケットを当該宛先情報で指定されるゲーム機に送信させる処理を行う。
【００５６】
また、本実施形態の通信制御部１１４は、ヘッダーと、特定のゲーム機の識別情報に加えて自機の識別情報を含むペイロードとからなるパケットを生成することができる。すなわち、本実施形態の通信制御部１１４は、直接通信不能な特定のゲーム機にパケットを送信する場合には、直接通信不能な特定のゲーム機のＩＤに加えて送信元である自機のＩＤを含むペイロードとからなるパケットを生成し、生成されたパケットを当該宛先情報で指定されるゲーム機に送信させる処理を行う。
【００５７】
また、本実施形態の通信制御部１１４は、直接通信判断部において、自機が特定のゲーム機と直接通信不能と判断される場合には、特定のゲーム機以外のゲーム機の宛先情報を含むヘッダーと、特定のゲーム機の識別情報及び直接通信不能な特定のゲーム機を退出させる退出要求情報を含むペイロードとからなる退出要求パケットを生成し、当該退出要求パケットを当該宛先情報で指定されるゲーム機に送信する処理を行うようにしてもよい。すなわち、本実施形態の通信制御部１１４は、直接通信判断部において、自機が特定のゲーム機と直接通信不能と判断される場合には、送信先ＩＰアドレス及び送信先ポート番号に特定のゲーム機以外のゲーム機のＩＰアドレス及びポート番号を指定したヘッダーと、直接通信不能な特定のゲーム機のＩＤ及び直接通信不能な特定のゲーム機を退出させる退出要求情報を含むペイロードとからなる退出要求パケットを生成し、当該退出要求パケットを当該宛先情報で指定されるゲーム機に送信する処理を行うようにしてもよい。
【００５８】
ここで、退出要求情報とは、通信グループから退出させる要求内容を示すデータであり、退出要求情報を受け取ったゲーム機は、所定条件の下で退出させる処理を行うものである。
【００５９】
また、本実施形態の通信制御部１１４は、優先順位情報に基づいて、他のゲーム機から送信された退出要求パケットを受信した自機が他のゲーム機よりも優先順位が高いと判断される場合には、他のゲーム機以外のゲーム機の宛先情報を含むヘッダーと、他のゲーム機の識別情報及び他のゲーム機を退出させる退出要求情報を含むペイロードとからなる退出要求パケットを生成し、当該退出要求パケットを当該宛先情報で指定されるゲーム機に送信するようにしてもよい。
【００６０】
すなわち、本実施形態の通信制御部１１４は、優先順位情報に基づいて、ヘッダーの他のゲーム機から送信された退出要求パケットを受信した自機が他のゲーム機よりも優先順位が高いと判断される場合には、自機を通信グループから退出させる処理を行わないようにすることができる。そして、送信先ＩＰアドレス及び送信先ポート番号に、他のゲーム機以外のゲーム機のＩＰアドレス及びポート番号を指定したヘッダーと、他のゲーム機の識別情報及び他のゲーム機を退出させる退出要求情報を含むペイロードとからなる退出要求パケットを生成し、当該退出要求パケットを当該宛先情報で指定されるゲーム機に送信するようにしてもよい。
【００６１】
また、本実施形態の通信制御部１１４は、通信グループの第１のゲーム機から受信したパケットを解析して特定されたゲーム機が自機と異なる通信グループの第２のゲーム機である場合には、第２のゲーム機の宛先情報を含むヘッダーと第１のゲーム機から受信したパケットのペイロードとからなる転送パケットを生成し、当該転送パケットを第２のゲーム機に転送するようにしてもよい。すなわち、通信グループの第１のゲーム機から受信したパケットを解析して特定されたゲーム機のＩＤが、自機のＩＤと異なる通信グループの第２のゲーム機のＩＤである場合には、送信先ＩＰアドレス及び送信先ポート番号を第２のゲーム機のＩＰアドレス及びポート番号を指定したヘッダーと、第１のゲーム機から受信したパケットのペイロードとからなる転送パケットを生成し、当該転送パケットを第２のゲーム機に転送するようにしてもよい。
【００６２】
識別情報判定部１１６は、ゲーム機が受信したパケットに含まれる識別情報が、当該ゲーム機の識別情報であることを判定する処理を行う。すなわち、ゲーム機が受信したパケットに含まれるＩＤ（識別情報の一例）が、当該ゲーム機のＩＤであるか否かを判断する。例えば、ゲーム機のＩＤが１である場合に、受信したパケットに含まれるＩＤが２である場合には、受信したパケットに含まれるＩＤが当該ゲーム機のＩＤとは異なるＩＤであると判定する。
【００６３】
直接通信判断部１１８は、ゲーム機が、他のゲーム機と直接通信できるか否かを判断する処理を行う。直接通信できるか否かの判断は、ゲーム機が他のゲーム機へ、所与のパケットを生成して送信し、所定期間内に送信したパケットに対する返答パケットを受信できたか否かに基づいて判断することができる。
【００６４】
例えば、ゲーム機が、他のゲーム機と直接通信できるか否かの判断は、「ＰＩＮＧ」プログラムを用いて判断する。ＰＩＮＧとは、ＩＰアドレスに基づいて、ＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）のエコー要求（タイプ８）とエコー応答（タイプ０）を活用して、相手端末と通信できるかどうかを判断するプログラムである。つまり、通信グループに参加したゲーム機は、ＩＣＭＰのエコー要求を含む接続確認パケット（エコー要求パケット）を他のゲーム機に送信し、他のゲーム機からＩＣＭＰのエコー応答を含む返答パケット（エコー応答パケット）を受信した場合には、他のゲーム機と通信が可能であると判断する。
【００６５】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずオブジェクト（モデル）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むオブジェクトデータ（モデルデータ）が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。ピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ１７４（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように画像を生成することができる。
【００６６】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００６７】
そして描画部１２０は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００６８】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、オブジェクトデータ記憶部１７６に保存される。
【００６９】
テクスチャマッピングは、記憶部１７０のテクスチャ記憶部に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いて記憶部１７０のテクスチャ記憶部からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【００７０】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファに格納されるＺ値を参照する。そして参照されたＺバッファのＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファのＺ値を新たなＺ値に更新する。
【００７１】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。
【００７２】
なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００７３】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００７４】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００７５】
３．本実施形態の手法
３．１  ネットワーク設定手法
本実施形態のネットワークシステムにおいて、オンラインゲームに参加するゲーム機のネットワークの設定について図５を用いて説明する。
【００７６】
まず、図５（Ａ）に示すように、オンラインゲームに参加する場合には、ゲーム機はＮＮＳにＮＮ（ＮＡＴ  Ｎｅｇｏｔｉａｔｉｏｎ）要求パケットを送信する。図５（Ｂ）は、ＮＮ要求パケットの一例である。ＮＮ要求パケットのヘッダーの送信元ＩＰアドレス及び送信元ポート番号に、オンラインゲームに参加するゲーム機のＩＰアドレス及びポート番号を設定する。また、ＮＮ要求パケットのヘッダーの送信先ＩＰアドレス及び送信先ポート番号に、ＮＮＳのＩＰアドレス及びポート番号を設定する。また、ＮＮ要求パケットのペイロードに、要求内容を設定する。そして、生成したＮＮ要求パケットをＮＮＳに送信する。
【００７７】
ところで、ＮＮＳがＮＮ要求パケットを受信した場合には、ＮＮＳは、ヘッダーの送信元ＩＰアドレス及び送信元ポート番号を参照して、送信元のゲーム機のＩＰアドレスとポート番号を取得して管理することができる。このように、ＮＮＳは、オンラインゲームに参加する全てのゲーム機のＩＰアドレスとポート番号を管理することができる。
【００７８】
ゲーム機が、ＮＮＳにＮＮ要求パケットを送信した後に、ＮＮ要求パケットに対する返答パケットを受信する。返答パケットには、オンラインゲームの通信グループのオーナー機のＩＰアドレス及びポート番号（宛先情報の一例）が含まれる。オーナー機とは、通信グループを作ったゲーム機とすることができる。
【００７９】
ＮＮＳからの返答パケットを受信したゲーム機は、受信した返信パケットに含まれるオーナー機のＩＰアドレス及びポート番号に基づいて、オーナー機と直接通信できるか否かを確認する。例えば、オーナー機にパケットを送信し、所定期間内に返答パケットをオーナー機から受信しなかった場合には、直接通信できないと判断する。本実施形態のネットワークシステムでは、通信グループのゲーム機が、通信グループのオーナー機と直接通信できない場合には、ゲームへ参加できない。
【００８０】
ゲーム機が、通信グループのオーナー機と直接通信できた場合には、オーナー機から返答パケットを受信することができる。返答パケットには、通信グループに所属する全てのゲーム機を識別するためのＩＤが含まれる。
【００８１】
次に、ゲーム機は、通信グループのオーナー機以外の全てのゲーム機のＩＰアドレス及びポート番号を取得するために、ＮＮＳにＮＮ要求パケットを送信する。ＮＮＳは、オンラインゲームに参加する全てのゲーム機のＩＰアドレス及びポート番号を管理しているからである。例えば、ＮＮ要求パケットのペイロードの要求内容には、通信グループに所属するゲーム機のＩＤを特定し、ＩＰアドレスとポート番号を要求するデータを設定する。このようにすれば、ゲーム機のＩＤに対応するＩＰアドレスとポート番号を取得することができる。
【００８２】
上述の本実施形態のネットワークシステムでは、オンラインゲームに参加するゲーム機が、通信グループに所属する全てのゲーム機のＩＰアドレス及びポート番号等のネットワークに関する情報（以下、「ネットワーク情報」ということがある。）を取得することができる。ネットワーク情報は、テーブル（以下、「ネットワーク情報テーブル」ということがある。）を用いて、保存することができる。例えば、図５（Ｃ）に示すように、ゲーム機のＩＤに関連付けてＩＰアドレス、ポート番号、オーナーか否かを判断するオーナーフラグを記憶させることができる。なお、オーナーフラグは、オーナー機である場合には１を設定し、オーナー機でない場合には０を設定する。
【００８３】
３．２  直接通信判断手法
本実施形態のネットワークシステムでは、通信グループに参加したゲーム機が通信グループの他のゲーム機と相互に直接通信できるか否かを判断する。ゲーム機が、直接通信できない他のゲーム機に対して適切な処理を行い、安定的なネットワークシステムの運用を図るようにするためである。
【００８４】
具体的には、通信グループに参加したゲーム機は、他のゲーム機に接続確認パケットを送信し、所定期間内に応答パケットを受信したか否かで判断する。つまり、接続確認パケットに対する応答パケットを受信しなかった場合には、直接通信不能と判断する。
【００８５】
例えば、図６（Ａ）は、通信グループに新たに参加したゲーム機３が、ゲーム機２と直接通信ができるか否かを判断する一例を示す。新たに通信グループに参加したゲーム機３は、ゲーム機２に対して接続確認パケットを送信する。ゲーム機３が、ゲーム機２と通信可能であれば、ゲーム機３はゲーム機２から送信された返答パケットを受信する。一方、ゲーム機３が、ゲーム機２と通信不能であれば、ゲーム機３は返答パケットを受信することができない。
【００８６】
そして、ゲーム機は、通信グループに所属する各ゲーム機との直接通信できるか否かの判断結果を記憶したテーブル（以下、「直接通信判断テーブル」ということがある。）を用いることができる。例えば、各ゲーム機を識別するＩＤに関連付けて直接通信できるか否かを示す直接通信フラグを用いて記憶することができる。他のゲーム機と直接通信できる場合には、直接通信フラグを「１」に設定し、直接通信できない場合には、直接通信フラグを「０」に設定する。例えば、図６（Ｂ）は、ゲーム機３が記憶している直接通信判断テーブルの一例である。ゲーム機３が、ゲーム機２と直接通信不能である場合には、ゲーム機２（ＩＤ＝２）に関連付けられる直接通信フラグを「０」に設定する。
【００８７】
３．３  転送手法
本実施形態のネットワークゲームシステムでは、通信グループの第１のゲーム機が、通信グループの第２のゲーム機（以下、「エンドポイントのゲーム機」ということがある。）と直接通信できない場合には、第１のゲーム機は、通信グループの第３のゲーム機を介して、第２のゲーム機にゲームに必要な情報（以下「ゲーム情報」ということがある。）を送信する。第３のゲーム機は、受信したパケットが転送されるべきパケットか否かを判断して転送処理を行う。このようにすれば、第１のゲーム機が、第２のゲーム機と直接通信できない場合であってもデータを送ることができ、ネットワークシステムの安定的な運用を図ることができるからである。
【００８８】
ここで、ゲーム情報とは、操作部によりプレーヤが入力した操作情報や、ゲームに必要な情報であって通信グループに参加しているプレーヤが操作するオブジェクトに関するデータとすることができる。例えばレースゲームの場合には、移動体オブジェクトの種類や、オブジェクト空間における移動体の位置情報、速度情報とすることができる。すなわち、通信グループに所属する各ゲーム機が共有すべき情報とすることができる。
【００８９】
また、エンドポイントのゲーム機とは、通信グループの第１のゲーム機が、本来直接通信してデータを送信する送信先の第２のゲーム機をいい、第１のゲーム機が送信したゲーム情報を最終的に受信するゲーム機である。また、エンドポイントのゲーム機とは、通信グループの第１のゲーム機が第２のゲーム機と直接通信できない場合において、第３のゲーム機を介して転送される転送先のゲーム機のことをいう。
【００９０】
図７は、本実施形態のネットワークシステムにおいて、ゲーム機３がゲーム機２と直接通信できない場合において、ゲーム機３がゲーム機１を介してゲーム機２にゲーム情報を送信する一例を示す。なお、図７の例では、ゲーム機１は、通信グループのオーナー機である。
【００９１】
まず、ゲーム機３が、ゲーム機２に対して直接通信できるか否かを判断する。例えば、図６（Ｂ）の直接通信判断テーブルを用いて、ゲーム機２のＩＤに関連付けられた直接通信フラグを参照することで、ゲーム機３がゲーム機２と直接通信できるか否かを判断することができる。なお、ゲーム機３は、「ＰＩＮＧ」プログラムによって、ゲーム機２と直接通信できるかを確認してもよい。
【００９２】
ゲーム機３は、ゲーム機２と直接通信できないと判断した場合には、ゲーム情報をオーナー機であるゲーム機１に送るようにパケットを生成する。例えば、図７（Ｂ）に示すように、パケットのヘッダーの送信先ＩＰアドレス及び送信先ポート番号に、ゲーム機１のＩＰアドレスとポート番号を設定する。また、パケットのヘッダーの送信元のＩＰアドレス及び送信元ポート番号に、ゲーム機３のＩＰアドレス及びポート番号を設定する。そして、パケットのペイロードに、エンドポイントのゲーム機であるゲーム機２のＩＤ（ＩＤ＝２）及びゲーム情報のデータを設定する。このようにして生成したパケットは、送信先であるゲーム機１に送信される。
【００９３】
本実施形態のネットワークシステムでは、通信グループのオーナー機は、受信したパケットが転送されるべきパケットか否かを判断して転送処理を行う。すなわち、オーナー機は、受信したパケットのペイロードを解析し、ＩＤが記録されている場合には、当該ＩＤが自機（オーナー機）のＩＤであるか否かを判断し、ＩＤが自機（オーナー機）とは異なる他のゲーム機のＩＤである場合には、転送処理を行う。
【００９４】
例えば、図７（Ａ）に示すように、ゲーム機１が、ゲーム機３から送信されたパケットを受信した場合において、パケットのペイロードのＩＤが、自機のＩＤ（ＩＤ＝１）とは異なる他のゲーム機のＩＤ（ＩＤ＝２）である場合には、転送処理を行う。
【００９５】
オーナー機が行う転送処理は、転送パケットを生成し、受信したパケットのペイロードに含まれるＩＤに基づいて特定されるゲーム機に転送パケットを転送する処理を行う。つまり、オーナー機は、受信したパケットのペイロードに含まれるＩＤで特定されるゲーム機のＩＰアドレス及びポート番号を、転送パケットのヘッダーの送信先アドレス及び送信先ポート番号に設定し、自機（オーナー機）のＩＰアドレス及びポート番号を、送信元アドレス及び送信元ポート番号に設定する。そして、転送パケットのペイロードには、受信したパケットのペイロードのデータをそのまま設定するする。このようにして、生成された転送パケットを送信先のゲーム機へ送信する。
【００９６】
例えば、図７（Ａ）で、ゲーム機３が、エンドポイントのゲーム機２へ送信するパケットをゲーム機１に送信した場合には、当該パケットには、ゲーム機２のＩＤ（ＩＤ＝２）が含まれている。当該パケットをゲーム機１が受信したときの処理は、まずパケットに含まれるＩＤが自機（ＩＤ＝１）とは異なるゲーム機２のＩＤ（ＩＤ＝２）であるので、ゲーム機２へ受信したパケットを転送する転送処理を行う。
【００９７】
つまり、図７（Ｃ）に示すようにゲーム機１は、ＩＤ＝２のゲーム機２のＩＰアドレス及びポート番号を、転送パケットのヘッダーの送信先アドレス及び送信先ポート番号に設定し、ゲーム機１のＩＰアドレス及びポート番号を、送信元アドレス及び送信元ポート番号に設定する。そして、ゲーム機１は、転送パケットのペイロードには、ゲーム機３から受信したパケットのペイロードのデータをそのまま格納する。つまり、図７（Ｂ）に示すゲーム機３が生成したパケットのペイロードと、図７（Ｃ）に示すゲーム機１が生成した転送パケットのペイロードのデータは同じである。ゲーム機１は、生成した転送パケットをゲーム機２に送信する。
【００９８】
このようにすれば、ゲーム機３は、ゲーム機２のＩＤ（ＩＤ＝２）をパケットのペイロードに含ませるようにしてゲーム機１へ送信すれば、エンドポイントのゲーム機２へゲーム情報等のデータを送信することができる。従って、本実施形態のピア・ツー・ピア方式のネットワークシステムでは、１のゲーム機が、直接通信できないゲーム機が存在してもデータを送ることができる。また、転送処理を行うオーナー機は、サーバ・クライアント方式のサーバのように、全てのゲーム機を管理する必要はなく、また、転送処理は単純に送信先を変えるだけの処理であるので、通信グループの他のゲーム機と比較して処理負荷があっても微差に過ぎない。このように、本実施形態のネットワークシステムでは、安定的な運用を図ることができる。
【００９９】
なお、本実施形態のネットワークシステムでは、通信グループのゲーム機３が、ゲーム機２（エンドポイントのゲーム機）と直接通信できない場合において、ゲーム機１を介してデータを送信する場合において、ゲーム機３が、ゲーム機１へ送信するパケットには、ゲーム機２（エンドポイントのゲーム機）のＩＤのみならず、ゲーム機３（自機）のＩＤを含ませるようにしてもよい。
【０１００】
このようにすれば、ゲーム機２（エンドポイントのゲーム機）は、ゲーム機１から送信された転送パケットを受信した場合には、送信源となるゲーム機を特定することができる。つまり、ゲーム機２（エンドポイントのゲーム機）は、データの送信源がゲーム機３であることが特定できる。
【０１０１】
例えば、送信源のゲーム機３がパケットを生成する際に、送信源であることを示す値にゲーム機３のＩＤ（ＩＤ＝３）を設定するようにパケットを生成する。このようにすれば、ゲーム機２（エンドポイントのゲーム機）は、当該値を参照して、データの送信源のゲーム機が、ゲーム機３（ＩＤ＝３）であることを特定することができる。
【０１０２】
３．４  退出要求
本実施形態のピア・ツー・ピア方式のネットワークシステムでは、直接通信不能な特定のゲーム機を通信グループから退出させた方が望ましい場合がある。ネットワークシステムの安定的な運用を行うことができるからである。
【０１０３】
図８は、本実施形態のネットワークシステムでゲーム機３がゲーム機２と直接通信できない場合において、ゲーム機３がゲーム機１を介してゲーム機２に退出要求パケットを送信する一例を示す。なお、ゲーム機１はオーナー機である。
【０１０４】
まず、ゲーム機３が、ゲーム機２に対して直接通信できるか否かを判断する。例えば、図６（Ｂ）の直接通信判断テーブルを用いて、ゲーム機２のＩＤに関連付けられた直接通信フラグを参照することで、ゲーム機３がゲーム機２と直接通信できるか否かを判断することができる。なお、ゲーム機３は、「ＰＩＮＧ」プログラムによって、ゲーム機２と直接通信できるかを確認してもよい。
【０１０５】
ゲーム機３は、ゲーム機２と直接通信できないと判断した場合には、退出要求パケットを生成し、退出要求パケットをオーナー機であるゲーム機１に送信する。例えば、図８（Ｂ）に示すような退出要求パケットを生成する。退出パケットのヘッダーの送信元のＩＰアドレス及び送信元ポート番号は、ゲーム機３のＩＰアドレスとポート番号を設定する。退出要求パケットのヘッダーの送信先のＩＰアドレス及び送信先ポート番号は、ゲーム機１のＩＰアドレスとポート番号を設定する。そして、退出要求パケットのペイロードには、エンドポイントのゲーム機であるゲーム機２のＩＤ（ＩＤ＝２）及び退出要求情報を含むデータを設定する。このようにして生成したパケットは、送信先であるゲーム機１に送信される。
【０１０６】
上述しように、本実施形態のネットワークシステムでは、通信グループのオーナー機は、受信したパケットに含まれるＩＤに基づいて、受信したパケットを転送するか否かを判断して転送処理を行う。そこで、本実施形態のネットワークシステムの各ゲーム機は、オーナー機の転送処理を利用して、退出要求をすることができる。
【０１０７】
図８（Ａ）を用いて説明すると、オーナー機であるゲーム機１は、が退出要求パケットをゲーム機３から受信し、ペイロードに含まれるＩＤが自機のＩＤ（ＩＤ＝１）とは異なる、他のゲーム機２のＩＤ（ＩＤ＝２）である場合には、転送処理を行う。
【０１０８】
したがって、図８（Ｂ）の退出要求パケットを受信したゲーム機１は、ヘッダーを変更した転送用の退出要求パケットを生成する。例えば、図８（Ｃ）に示すように、転送用の退出要求パケットの送信元ＩＰアドレス及び送信元ポート番号は、ゲーム機１のＩＰアドレス及びポート番号を設定する。転送用の退出要求パケットの送信先ＩＰアドレス及び送信先ポート番号は、ゲーム機２のＩＰアドレス及びポート番号を設定する。そして、転送用の退出要求パケットのペイロードに、受信した退出要求パケットのペイロードを設定する。このようにして生成した転送用の退出要求パケットをゲーム機２に送信する。
【０１０９】
さらに、本実施形態のネットワークシステムは、通信グループの各ゲーム機が、通信グループの他のゲーム機と直接通信できない場合において、優先順位情報に基づいて通信グループから退出させる処理を行うことができる。
【０１１０】
例えば、通信グループに新たに参加したゲーム機３が、通信グループのゲーム機２と直接通信できない場合において、ゲーム機３がゲーム機２よりも優先順位が高いと判断される場合には、ゲーム機３は通信グループから退出せずにゲーム機２を退出させるように退出要求パケットを生成し、ゲーム機１（例えばオーナー機）を介して退出要求することができる。一方、ゲーム機３がゲーム機２よりも優先順位が低い場合には、ゲーム機２に退出要求せずに、ゲーム機３は自ら通信グループから退出させる処理を行うことができる。
【０１１１】
ここで、優先順位情報とは、ゲーム機が通信グループに残ることができる順位とすることができる。また、優先順位情報は、テーブルに格納することができる。例えば図９（Ａ）（Ｂ）に示すように、ゲーム機を識別するＩＤに関連付けて優先順位を特定できるようにテーブル（以下、「優先順位情報テーブル」という。）を構成することができる。
【０１１２】
本実施形態のネットワークシステムでは、優先順位情報は、オーナー機が決定することができる。例えば、オーナー機は、通信グループに参加した順に従って優先順位を決定してもよい。例えば、オーナー機は、ゲーム機１〜５の順に通信グループに参加した場合には、図９（Ａ）に示すように、通信グループに参加した順に優先順位を決定することができる。
【０１１３】
また、優先順位は、通信グループで、ゲーム機が他のゲーム機と直接通信できる数の多い順に優先順位を決定することができる。例えば、図１０は、本実施形態のネットワークシステムの一例である。図１０に示すネットワークシステムでは、ゲーム機２は、ゲーム機３とゲーム機５と直接通信できない関係にあり、ゲーム機３は、ゲーム機２とゲーム機５と直接通信できない関係にあり、ゲーム機４はゲーム機５と直接通信できない関係にあり、ゲーム機５は、ゲーム機２、ゲーム機３及びゲーム機４と直接通信できない関係にある。図１０に示すネットワークシステムの例では、例えば、図９（Ｂ）に示すような優先順位を決定することができる。
【０１１４】
４．本実施形態の処理
次に、本実施形態のファイルデータ処理プログラムの詳細な処理例について図１１〜図１６のフローチャートを用いて説明する。
【０１１５】
図１１は、オンラインゲームに参加するゲーム機が、ネットワーク情報を取得し、設定する処理の一例を示すフローチャートである。
【０１１６】
まず、ＮＮＳにＮＮ要求パケットを送信する（ステップＳ１１０）。次に、ＮＮ要求パケットに対する返答パケットを受信する（ステップＳ１２０）。次に、受信した返答パケットを解析し、ネットワークシステムの通信グループのオーナー機のＩＰアドレス、ポート番号を取得する（ステップＳ１３０）。
【０１１７】
次に、オーナー機のＩＰアドレス及びポート番号に基づいて、ゲーム機がオーナー機と直接通信できるか否か判断する（ステップＳ１４０）。
【０１１８】
オーナー機と直接通信できる場合には（ステップＳ１４０のＹｅｓ）、ゲーム機はオーナー機から通信グループに属する全てのゲーム機のＩＤを取得する（ステップＳ１５０）。次に、ゲーム機は、ＮＮＳにＮＮ要求パケットを送信し、通信グループに属する全てのゲーム機のＩＰアドレス、ポート番号を取得する（ステップＳ１７０）。そして、通信グループに属する全てのゲームのＩＤ、ＩＰアドレス、ポート番号をネットワーク情報テーブルに格納する（ステップＳ１８０）。
【０１１９】
一方、オーナー機と直接通信できない場合には（ステップＳ１４０のＮｏ）、通信グループに参加しない処理を行う（ステップＳ１６０）。
【０１２０】
図１２は、ゲーム機が、通信グループの指定されたゲーム機と直接通信判断する処理の一例を示すフローチャートである。
【０１２１】
まず、ゲーム機が、通信グループの指定されたゲーム機と直接通信できるか否かを判断する（ステップＳ２１０）。通信グループの指定されたゲーム機と直接通信できる場合には（ステップＳ２１０のＹｅｓ）、指定されたゲーム機の直接通信フラグを１に設定する（ステップＳ２２０）。一方、通信グループの指定されたゲーム機と直接通信できない場合には（ステップＳ２１０のＮｏ）、指定されたゲーム機の直接通信フラグを０に設定する（ステップＳ２３０）。直接通信フラグは、指定されたゲーム機の識別情報（ＩＤ）と関連付けて直接通信判断テーブルに保存することができる。通信グループに属する全てのゲーム機と直接通信判断したか否かを判断し（ステップＳ２４０）、通信グループに属する全てのゲーム機と直接通信していない場合には（ステップＳ２４０のＮｏ）は、ステップＳ２１０〜ステップＳ２４０を繰り返し行う。通信グループに属する全てのゲーム機と直接通信した場合には（ステップＳ２４０のＹｅｓ）、処理を終了する。
【０１２２】
図１３は、ゲーム機が、通信グループの他のゲーム機（エンドポイントのゲーム機）に送信するパケットを、生成する処理の一例を示すフローチャートである。
【０１２３】
まず、ゲーム機は、パケットのヘッダーの送信元ＩＰアドレス及び送信元ポート番号に、自機のＩＰアドレス及びポート番号を設定する（ステップＳ３１０）。次に、ゲーム機が、エンドポイントのゲーム機と直接通信できるか否かを判断する（ステップＳ３２０）。ゲーム機がエンドポイントのゲーム機と直接通信できる場合には（ステップＳ３２０のＹｅｓ）、パケットのヘッダーの送信先ＩＰアドレス及び送信先ポート番号に、エンドポイントのゲーム機のＩＰアドレス及びポート番号を設定する（ステップＳ３３０）。そして、パケットのペイロードに、ゲーム情報を含むデータを設定する（ステップＳ３４０）。
【０１２４】
一方、ゲーム機がエンドポイントのゲーム機と直接通信できない場合には（ステップＳ３２０のＮｏ）、パケットのヘッダーの送信先ＩＰアドレス及び送信先ポート番号に、オーナー機のＩＰアドレス及びポート番号を設定する（ステップＳ３５０）。そして、パケットのペイロードに、エンドポイントのゲーム機のＩＤを含むデータを設定する（ステップＳ３６０）。
【０１２５】
図１４は、通信グループのオーナー機が、通信グループのゲーム機から受信したパケットを転送する処理の一例を示すフローチャートである。
【０１２６】
まず、オーナー機は、通信グループのゲーム機から受信したパケットを解析する（ステップＳ４１０）。次に、受信したパケットのペイロードのＩＤが自機のＩＤか否かを判断する（ステップＳ４２０）。そして、受信したパケットのペイロードのＩＤが、自機のＩＤである場合（ステップＳ４２０のＹｅｓ）には、処理を終了する。一方、パケットのペイロードのＩＤが自機のＩＤでない場合には（ステップＳ４２０のＮｏ）、転送パケットのヘッダーの送信先ＩＰアドレス及び送信先ポート番号に、受信したパケットのペイロードのＩＤに基づいて特定されるゲーム機のＩＰアドレス及びポート番号を設定する（ステップＳ４３０）。そして、転送パケットのペイロードに、受信したパケットのペイロードを設定する（ステップＳ４４０）。
【０１２７】
図１５は、ゲーム機が、通信グループの他のゲーム機（エンドポイントのゲーム機）と直接通信できない場合に、他のゲーム機に退出要求するための退出要求パケットを生成する処理の一例を示すフローチャートである。
【０１２８】
まず、自機が他のゲーム機（エンドポイントのゲーム機）と直接通信できるか否かを判断する（ステップＳ５１０）。そして、自機が他のゲーム機と直接通信できる場合には（ステップＳ５１０のＹｅｓ）、処理を終了する。一方、直接通信できない場合には（ステップＳ５１０のＮｏ）、自機は他のゲーム機よりも優先順位が低いか否かを判断する（ステップＳ５２０）。
【０１２９】
自機が他のゲーム機よりも優先順位が低い場合には（ステップＳ５２０のＹｅｓ）、自機を通信グループから退出させて（ステップＳ５３０）、処理を終了する。一方、自機が他のゲーム機よりも優先順位が低くない場合には（ステップＳ５２０のＮｏ）、退出要求パケットを生成する。
【０１３０】
すなわち、退出要求パケットのヘッダーの送信元ＩＰアドレス及び送信元ポート番号に、自機のＩＰアドレス及びポート番号を設定する（ステップＳ５４０）。次に、退出要求パケットのヘッダーの送信先ＩＰアドレス及び送信先ポート番号に、オーナー機のＩＰアドレス及びポート番号を設定する（ステップＳ５５０）。次に、退出要求パケットのペイロードに、他のゲーム機のＩＤ及び退出要求情報を含むデータを設定する（ステップＳ５６０）。そして、オーナー機に退出要求パケットを送信する（ステップＳ５７０）。
【０１３１】
図１６は、ゲーム機が、通信グループの他のゲーム機から送信された退出要求パケットを受信した場合においての処理の一例を示すフローチャートである。
【０１３２】
まず、ゲーム機は、通信グループの他のゲーム機から送信された退出要求パケットを受信したか否かを判断する（ステップＳ６１０）。退出要求パケットを受信した場合には（ステップＳ６１０のＹｅｓ）、自機は他のゲーム機よりも優先順位が高いか否かを判断する（ステップＳ６２０）。自機が、他のゲーム機よりも優先順位が高くない場合には（ステップＳ６２０のＮｏ）、自機を通信グループから退出させる処理を行う（ステップＳ６３０）。一方、自機が、他のゲーム機よりも優先順位が高い場合には（ステップＳ６２０のＹｅｓ）、退出要求パケットを生成する。
【０１３３】
すなわち、退出要求パケットのヘッダーの送信元ＩＰアドレス及び送信元ポート番号に、自機のＩＰアドレス及びポート番号を設定する（ステップＳ６４０）。次に、退出要求パケットのヘッダーの送信先ＩＰアドレス及び送信先ポート番号に、オーナー機のＩＰアドレス及びポート番号を設定する（ステップＳ６５０）。次に、退出要求パケットのペイロードに、他のゲーム機のＩＤ及び退出要求情報を含むデータを設定する（ステップＳ６６０）。そして、オーナー機に退出要求パケットを送信する（ステップＳ６７０）。
【０１３４】
５．ハードウェア構成
図１７に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＤＶＤ９８２（情報記憶媒体。ＣＤでもよい。）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１３５】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【０１３６】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。頂点シェーダやピクセルシェーダなどのプログラマブルシェーダが実装されている場合には、シェーダプログラムに従って、頂点データの作成・変更（更新）やピクセル（あるいはフラグメント）の描画色の決定を行う。１フレーム分の画像がフレームバッファ９２２に書き込まれるとその画像はディスプレイ９１２に表示される。
【０１３７】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【０１３８】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納される。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＤＶＤドライブ９８０（ＣＤドライブでもよい。）は、プログラム、画像データ、或いは音データなどが格納されるＤＶＤ９８２（ＣＤでもよい。）にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【０１３９】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１４０】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０１４１】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。また接触痕跡の表現手法も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【０１４２】
なお、本実施形態のネットワークシステムでは、通信グループを構成するゲーム機が他のゲーム機と直接通信できるか否かの判断は、相互に直接通信することで確認をしているが、ゲーム機間が双方向に通信可能か否かを判断する場合に限らず、片方向が通信可能か否かを元に判断してもよい。
【０１４３】
なお、本実施形態のネットワークシステムでは、通信グループを構成するゲーム機が他のゲーム機と直接通信する手法として、「ＰＩＮＧ」プログラムによる判断手法を採用しているが、「ＰＩＮＧ」プログラムによる判断に限らず、例えば、オンラインゲームで使用するアプリケーションのポート番号に基づいて、直接通信できるか否かを判断してもよい。つまり、ゲーム機は、オンラインゲームで使用する他のゲーム機のポート番号が使用可能でるか否かを判断してもよい。
【０１４４】
なお、本実施形態のネットワークシステムでは、通信グループを構成するゲーム機が他のゲーム機と直接通信できない場合に、優先順位に基づいて退出するか否かの判断をする場合があるが、優先順位が他のゲーム機と同等の順位である場合には、退出要求パケットを送信しないようにしていもよい。優先順位が同等である場合には、ゲーム機同士が相互に退出要求パケットを無限に送信することになり、ネットワークシステムが不安定になる恐れがあるからである。
【図面の簡単な説明】
【０１４５】
【図１】本実施形態のネットワークシステムのネットワーク図。
【図２】本実施形態のネットワークシステムのネットワーク図。
【図３】本実施形態のネットワークシステムのネットワーク図。
【図４】本実施形態のネットワークシステムの機能ブロック図。
【図５】本実施形態のネットワークシステムのネットワーク設定手法の説明図。
【図６】本実施形態のネットワークシステムの直接通信判断手法の説明図。
【図７】本実施形態のネットワークシステムの転送処理の説明図。
【図８】本実施形態のネットワークシステムの退出要求の説明図。
【図９】本実施形態のネットワークシステムに通信グループに属するゲーム機の優先順位情報の説明図。
【図１０】本実施形態のネットワークシステムの退出要求の説明図。
【図１１】本実施形態の処理のフローチャート。
【図１２】本実施形態の処理のフローチャート。
【図１３】本実施形態の処理のフローチャート。
【図１４】本実施形態の処理のフローチャート。
【図１５】本実施形態の処理のフローチャート。
【図１６】本実施形態の処理のフローチャート。
【図１７】ハードウェア構成例。
【符号の説明】
【０１４６】
１００  処理部、１１０  ゲーム演算部、１１２  ネットワーク設定部、
１１４  通信制御部、１１６  識別情報判定部、１１８  直接通信判断部、
１２０  描画部、１３０  音生成部、１６０  操作部、１７０  記憶部、
１７２  主記憶部、１７４  描画バッファ、
１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、
１９４  携帯型情報記憶装置、１９６  通信部
【図１】
2008136777.tif 000003
【図２】
2008136777.tif 000004
【図３】
2008136777.tif 000005
【図４】
2008136777.tif 000006
【図５】
2008136777.tif 000007
【図６】
2008136777.tif 000008
【図７】
2008136777.tif 000009
【図８】
2008136777.tif 000010
【図９】
2008136777.tif 000011
【図１０】
2008136777.tif 000012
【図１１】
2008136777.tif 000013
【図１２】
2008136777.tif 000014
【図１３】
2008136777.tif 000015
【図１４】
2008136777.tif 000016
【図１５】
2008136777.tif 000017
【図１６】
2008136777.tif 000018
【図１７】
2008136777.tif 000019