JP5252676B2 - プログラム、情報記憶媒体、ゲーム機及びネットワークシステム - Google Patents

プログラム、情報記憶媒体、ゲーム機及びネットワークシステム Download PDF

Info

Publication number
JP5252676B2
JP5252676B2 JP2006328249A JP2006328249A JP5252676B2 JP 5252676 B2 JP5252676 B2 JP 5252676B2 JP 2006328249 A JP2006328249 A JP 2006328249A JP 2006328249 A JP2006328249 A JP 2006328249A JP 5252676 B2 JP5252676 B2 JP 5252676B2
Authority
JP
Japan
Prior art keywords
game machine
packet
communication
machine
game
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2006328249A
Other languages
English (en)
Other versions
JP2008136777A (ja
Inventor
伸之 安江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Namco Ltd
Bandai Namco Entertainment Inc
Original Assignee
Namco Ltd
Namco Bandai Games Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Namco Ltd, Namco Bandai Games Inc filed Critical Namco Ltd
Priority to JP2006328249A priority Critical patent/JP5252676B2/ja
Publication of JP2008136777A publication Critical patent/JP2008136777A/ja
Application granted granted Critical
Publication of JP5252676B2 publication Critical patent/JP5252676B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、プログラム、情報記憶媒体、ゲーム機及びネットワークシステムに関する。
従来より、ピア・ツー・ピア(いわゆるP2P)方式によって複数のゲーム機間で情報の送受信を行いながらオンラインゲームを実行するネットワークシステムが知られている(特許文献1)。ピア・ツー・ピア方式のネットワークシステムでは、不特定多数の端末間で直接通信を行うネットワークの利用形態であり、多数のゲーム機が相互に直接通信して情報資源を共有することができる。
しかしながら、ピア・ツー・ピア方式のネットワークシステムは、各ゲーム機が相互に直接通信を行うネットワークシステムであるので、ネットワークシステムを構成するいずれかのゲーム機に通信機能の障害が発生すると、当該ゲーム機は他のゲーム機との間で、ゲームに必要なデータを共有することができなくなる。つまり、通信機能の障害が発生するゲーム機は、他のゲーム機と直接通信できなくなる。
通信機能の障害の原因の一例として、ルータの設定の問題が挙げられる。例えば、ゲーム機に接続されているルータのファイアウォールの設定が、WAN(広域ネットワーク)側の他のゲーム機から送信されたパケットを拒否する設定になっている場合である。かかる場合には、DMZ(DeMilitarized Zone)の設定を行うことで、WAN側のゲーム機から送信されたパケットを、受信することができる。DMZとは、インターネットに接続されたネットワークシステムにおいて、ファイアウォールによってWANからもLAN(閉域ネットワーク)からも隔離された区域のことをいう。DMZの設定をするためには、ゲーム機のWAN側のIPアドレスを、LAN側にあるゲーム機のプライベートアドレスに差し替えるようにルータを設定する。このようにすれば、当該ゲーム機は、インターネット上の他のゲーム機と通信を確立することができる。
しかしながら、ネットワークやルータの知識が乏しいプレーヤは、ルータのDMZの設定ができず、ゲームに参加できない恐れがある。さらに、DMZの設定をした場合であっても、ゲーム機がLANだけでなくWANからのアクセスが可能となってしまうため、ゲーム機が不正アクセスされる恐れが生じてしまい、セキュリティ面での脆弱性が問題となる。
特開2006−61242号公報
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、ピア・ツー・ピア方式のネットワークシステムにおいて、ゲーム機が他のゲーム機と直接通信ができない場合あっても、安定的なネットワークシステムを実現することができるプログラム、情報記憶媒体、ゲーム機及びネットワークシステムを提供することにある。
(1)本発明は、
複数のゲーム機が各ゲーム機同士で相互にパケットを直接通信するネットワークシステムのためのゲーム機であって、
通信により他のゲーム機との間でパケットの送受信を行う通信部と、
所与の条件下で、各ゲーム機に個別に付与される識別情報と、前記識別情報に対応付けられたパケットの送信先を指定する宛先情報とを取得するネットワーク設定部と、
前記宛先情報を含むヘッダーと前記識別情報を含むペイロードとからなるパケットを通信部に送受信させる通信制御部と、
自機が所属する通信グループの他のゲーム機から受信した前記パケットを解析し、前記パケットに含まれる前記識別情報に対応するゲーム機を特定する識別情報判定部と、
を含み、
前記通信制御部が、
前記識別情報判定部において前記通信グループの第1のゲーム機から受信した前記パケットを解析して特定されたゲーム機が自機と異なる前記通信グループの第2のゲーム機である場合には、前記第2のゲーム機の宛先情報を含むヘッダーと前記第1のゲーム機から受信した前記パケットのペイロードとからなる転送パケットを生成し、当該転送パケットを前記第2のゲーム機に転送することを特徴とするゲーム機に関係する。また本発明は、ゲーム機で読み取り可能な情報記憶媒体であって、上記各部としてゲーム機を機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。なお、本発明の「自機」とはプレーヤの所有するゲーム機である。
本発明によれば、第1のゲーム機から受信した前記パケットを解析して特定されたゲーム機が自機と異なる前記通信グループの第2のゲーム機である場合には、転送パケットを生成し、当該転送パケットを前記第2のゲーム機に転送するので、第1のゲーム機は、第2のゲーム機と直接通信できない場合であっても任意のゲーム機を介して第2のゲーム機へゲームに必要な情報(データ)を送信できる。
また、本発明によれば、自機は、クライアントからの要求に応じてサービスを提供するサーバ・クライアント方式のサーバのように、全てのゲーム機を管理する必要はない。すなわち、自機が受信したパケットの識別情報が第2のゲーム機である場合には、転送パケットを生成し、第2のゲーム機へ当該転送パケットを転送する。つまり、自機は、全てのゲーム機に関してではなく、第1のゲーム機に関して、サーバ的な役割を負うことになる。従って、自機の処理は、サーバ・クライアント方式のサーバに比較すると格段に処理負荷を抑えることができる。
(2)本発明は、
複数のゲーム機が各ゲーム機同士で相互にパケットを直接通信するネットワークシステムのためのゲーム機であって、
通信により他のゲーム機との間でパケットの送受信を行う通信部と、
所与の条件下で、各ゲーム機に個別に付与される識別情報と、前記識別情報に対応付けられたパケットの送信先を指定する宛先情報とを取得するネットワーク設定部と、
前記宛先情報を含むヘッダーと前記識別情報を含むペイロードとからなるパケットを通信部に送受信させる通信制御部と、
自機が所属する通信グループの他のゲーム機と相互に直接通信ができるか否かを判断する直接通信判断部と、
を含み、
前記直接通信判断部が、
自機から送信された接続確認パケットに対する前記通信グループの特定のゲーム機からの返答パケットを所定期間内に受信しなかった場合には、自機が当該特定のゲーム機と直接通信不能と判断し、
前記通信制御部が、
直接通信不能な前記特定のゲーム機にパケットを送信する場合には、前記通信グループの前記特定のゲーム機以外のゲーム機の宛先情報を含むヘッダーと前記特定のゲーム機の識別情報を含むペイロードとからなるパケットを生成し、生成されたパケットを当該宛先情報で指定されるゲーム機に送信することを特徴とするゲーム機に関係する。また本発明は、上記各部としてゲーム機を機能させるプログラムに関係する。また本発明は、ゲーム機で読み取り可能な情報記憶媒体であって、上記各部としてゲーム機を機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
本発明によれば、直接通信不能な特定のゲーム機にパケットを送信する場合には、通信グループの特定のゲーム機以外のゲーム機の宛先情報を含むヘッダーと前記特定のゲーム機の識別情報を含むペイロードとからなるパケットを生成し、生成されたパケットを当該宛先情報で指定されるゲーム機に送信するので、自機が、特定のゲーム機と直接通信できない場合であっても、特定のゲーム機以外のゲーム機を介してゲームに必要な情報(データ)を特定のゲーム機へ送信することができる。従って、自機は、ピア・ツー・ピア方式のネットワークシステムにおいて、特定のゲーム機と直接通信ができなくても、特定のゲーム機以外のゲーム機を介して当該特定のゲーム機へゲームに必要な情報を送信できる。
さらに、本発明によれば、自機が特定のゲーム機と直接通信ができない原因がルータの設定である場合であっても、プレーヤはルータのDMZの設定をすることなく特定のゲーム機にデータを送信することができる。
(3)また本発明のゲーム機、プログラム及び情報記憶媒体では、
前記通信制御部が、
前記ヘッダーと、前記特定のゲーム機の識別情報に加えて自機の識別情報を含むペイロードとからなるパケットを生成するようにしてもよい。
本発明によれば、自機の識別情報がパケットに含まれるので、転送パケットを受信した特定のゲーム機は、転送パケットに含まれる情報(データ)の発信源のゲーム機を特定することができる。
(4)また本発明のゲーム機、プログラム及び情報記憶媒体では、
前記通信制御部が、
前記直接通信判断部において、自機が前記特定のゲーム機と直接通信不能と判断される場合には、前記特定のゲーム機以外のゲーム機の宛先情報を含むヘッダーと、前記特定のゲーム機の識別情報及び直接通信不能な前記特定のゲーム機を退出させる退出要求情報を含むペイロードとからなる退出要求パケットを生成し、当該退出要求パケットを当該宛先情報で指定されるゲーム機に送信し、
前記ネットワーク設定部が、
他のゲーム機から送信された退出要求パケットを受信した場合には、所定条件下で、前記通信グループから自機を退出させる処理を行うようにしてもよい。
本発明によれば、自機が前記特定のゲーム機と直接通信不能と判断される場合には、退出要求パケットを生成し、当該退出要求パケットを特定のゲーム機以外のゲーム機に送信するので、自機は、特定のゲーム機以外のゲーム機を介して特定のゲーム機に対して通信グループから退出するように要求することができる。例えば、ピア・ツー・ピア方式のネットワークシステムでは、通信グループの特定のゲーム機以外の全てのゲーム機が相互に接続できる場合には、直接通信不能な特定のゲーム機を通信グループから退出させた方が望ましい場合がある。かかる場合において、自機は直接通信不能な特定のゲーム機を通信グループの特定のゲーム機以外のゲーム機を介して退出させるように要求することができる。また、逆に他のゲーム機から送信された退出要求パケットを自機が受信した場合には、所定条件下で、通信グループから自機を退出させることができる。従って、ピア・ツー・ピア方式のネットワークシステムの安定的な運用を実現できる。
(5)また本発明のゲーム機、プログラム及び情報記憶媒体では、
前記ネットワーク設定部が、
前記通信グループの各ゲーム機の優先順位を設定した優先順位情報に基づいて、自機と直接通信不能な前記特定のゲーム機との優先順位を判定し、判定結果に基づいて自機が前記特定のゲーム機よりも優先順位が低いと判断される場合には、前記通信グループから自機を退出させるようにしてもよい。
本発明によれば、優先順位情報に基づいて自機と直接通信不能な特定のゲーム機との優先順位を判定し、判定結果に基づいて自機が特定のゲーム機よりも優先順位が低いと判断される場合には、通信グループから自機を退出させる処理を行うので、退出させるべきゲーム機を容易にかつ適切に判断することができる。
(6)また本発明のゲーム機、プログラム及び情報記憶媒体では、
前記通信制御部が、
前記優先順位情報に基づいて、前記他のゲーム機から送信された退出要求パケットを受信した自機が前記他のゲーム機よりも優先順位が高いと判断される場合には、前記他のゲーム機以外のゲーム機の宛先情報を含むヘッダーと、前記他のゲーム機の識別情報及び前記他のゲーム機を退出させる退出要求情報を含むペイロードとからなる退出要求パケットを生成し、当該退出要求パケットを当該宛先情報で指定されるゲーム機に送信するようにしてもよい。
本発明によれば、自機が他のゲーム機から送信された退出要求パケットを受信した場合であっても、優先順位に基づいて自機を退出させるべきか否かを適切に判断することができる。また、自機が他のゲーム機よりも優先順位が高い場合には、前記他のゲーム機以外のゲーム機を介して他のゲーム機に対して退出要求することができる。
(7)また本発明は、
複数のゲーム機が各ゲーム機同士で相互にパケットを直接通信するネットワークシステムであって、
各ゲーム機が、
通信により他のゲーム機との間でパケットの送受信を行う通信部と、
所与の条件下で、各ゲーム機に個別に付与される識別情報と、前記識別情報に対応付けられたパケットの送信先を指定する宛先情報とを取得するネットワーク設定部と、
前記宛先情報を含むヘッダーと前記識別情報を含むペイロードとからなるパケットを通信部に送受信させる通信制御部と、
自機が所属する通信グループの他のゲーム機と相互に直接通信ができるか否かを判断する直接通信判断部と、
前記通信グループの他のゲーム機から受信した前記パケットを解析し、前記パケットに含まれる前記識別情報に対応するゲーム機を特定する識別情報判定部と、
を含み、
通信グループの第1のゲーム機の直接通信判断部が、
第1のゲーム機から前記通信グループの第2のゲーム機へ送信された接続確認パケットに対して、当該第2のゲーム機からの返答パケットを所定期間内に受信しなかった場合には、当該第1のゲーム機が当該第2のゲーム機と直接通信不能と判断し、
前記第1のゲーム機の通信制御部が、
前記第2のゲーム機にパケットを送信する場合には、前記第2のゲーム機の宛先情報を含むヘッダーと前記第2のゲーム機の識別情報を含むペイロードとからなるパケットを生成し、生成されたパケットを前記通信グループの第3のゲーム機に送信し、
前記第3のゲーム機の通信制御部が、
前記識別情報判定部において前記第1のゲーム機から受信した前記パケットを解析して特定されたゲーム機が自機と異なる前記第2のゲーム機である場合には、前記第2のゲーム機の宛先情報を含むヘッダーと前記第1のゲーム機から受信した前記パケットのペイロードとからなる転送パケットを生成し、当該転送パケットを前記第2のゲーム機に転送することを特徴とするネットワークシステムに関係する。
本発明によれば、通信グループの第1のゲーム機が、通信グループの第2のゲーム機と直接通信できない場合であっても、第3のゲーム機を介してゲームに必要な情報(データ)を送信することができる。従って、第1のゲーム機は、ピア・ツー・ピア方式のネットワークシステムにおいて、第2のゲーム機と直接通信ができなくても、第1のゲーム機は第2のゲーム機に第3のゲーム機を介して情報(データ)を送信できる。
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.ネットワークシステム
本実施形態のネットワークシステムは、ピア・ツー・ピア方式のネットワークシステムである。ピア・ツー・ピア方式のネットワークシステムを採用する理由は、各ゲーム機が相互に直接通信して情報資源を共有することができ、オンラインゲームに適しているからである。
従来のオンラインゲームでは、クライアント・サーバ方式のネットワークシステムを採用する。クライアント・サーバ方式のネットワークシステムのサーバは、全てのクライアントからの要求に応じてサービスを提供しなければならないので、処理内容に応じた性能の高いマシンが要求される。従って、オンラインゲーム専用のサーバを設ける場合には、性能の高いマシンを用意しなければならないためコストがかかり問題となる。また、専用のサーバを設けずに、いずれかのゲーム機をサーバに設定し、残りのゲーム機をクライアントとして、クライアント・サーバ方式のネットワークシステムを構成した場合には、ゲーム機がサーバとしての処理ができる高性能なものでなければならない。
しかしながら、ゲーム機がサーバとしての処理ができる高性能なものにすると、ゲーム機が高価格になってしまい、オンラインゲームを楽しむプレーヤに敬遠される恐れがある。一方、ゲーム機の性能を重視せずに低価格なゲーム機になると、ゲーム機がサーバとしての処理ができなくなり様々な問題が生じる恐れがある。例えば、サーバのゲーム機の処理負荷が高くなり、各クライアントのゲーム機にデータが届くまでの時間の遅延が生じる。また、サーバのゲーム機がクラッシュする恐れもある。さらに、クライアント・サーバ方式のネットワークシステムは、サーバの通信機能に障害が発生すると、全てのクライアントがサーバと通信ができなくなる。
一方、ピア・ツー・ピア方式のネットワークシステムの場合には、各ゲーム機が相互に通信してデータを共有し、他のゲーム機を管理する必要がない。従って、クライアント・サーバ方式のネットワークシステムのサーバのゲーム機に比べて高性能なゲーム機であることは要求されない。また、ピア・ツー・ピア方式の場合は、特定のゲーム機の通信機能に障害が発生しても、特定のゲーム機以外の他のゲーム機は相互に通信可能な状態を維持できる。
したがって、オンラインゲームにおいて安定的なネットワークシステムを実現するためには、ピア・ツーシステム方式が適切であると考えられる。
図1は、本実施形態のピア・ツー・ピア方式のネットワークシステムの一例を示す。オンラインゲームに参加するゲーム機は、通常、ルータやプロバイダを介し、インターネット上を経由して、他のゲーム機と相互に通信してデータを送受信する。
オンラインゲームでは、ゲーム機の宛先情報(IPアドレス、ポート番号等)を管理するサーバが存在する。例えば、NNS(NAT Negotiation Server)や、NTS(NAT Traversal Server)等が存在する。
本実施形態のネットワークシステムは、各ゲーム機が相互に直接通信して、データを共有する。例えば、図1では、ゲーム機1がゲーム機2へデータを送信する場合には、ゲーム機1が生成したパケットをそのままゲーム機2へ送信する。同様に、ゲーム機1は、ゲーム機3へデータを送信する場合には、ゲーム機1が生成したパケットをそのままゲーム機3へ送信する。このように、本実施形態のピア・ツー・ピア方式のネットワークシステムでは、ゲーム機間が相互にデータを通信し合う。
しかしながら、特定のゲーム機に通信障害が発生した場合には、特定のゲーム機に対して通信手法が問題となる。通信障害の発生の原因としては、ルータの設定の問題が挙げられる。例えば、ルータのファイアウォールの設定が起因して他のゲーム機から送信されたパケットを受信できなくなる場合である。ファイアウォールとは、不正アクセスを禁止する目的でセキュリティを強化するためのシステムをいう。ルータのファイアウォールの設定により、WANとLANを切り分けて、LANからWANへのアクセスや、WANからLANへのアクセスを制御することができる。
例えば、図2では、本実実施形態のピア・ツー・ピア方式のネットワークシステムの一例である。図2に示す例では、ゲーム機2は、ゲーム機1から送信されたパケットは受信できるが、通信グループに新たに参加したゲーム機3から送信されたパケットは受信できない。例えば、ゲーム機2が、ゲーム機3からのアクセスを拒否する設定をしている場合である。このように、ゲーム機2がゲーム機3からのパケットを拒否している場合には、ゲーム機2は、ゲーム機3からのデータを受信することができなくなり、ゲーム機3との間でゲームに必要な情報(データ)を共有できなくなる。
そこで、本実施形態は、ピア・ツー・ピア方式のネットワークシステムでゲーム機3(第1のゲーム機)がゲーム機2(第2のゲーム機)と直接通信できない場合には、ゲーム機3がゲーム機2とデータを共有することができるようにするために、ゲーム機1(第3のゲーム機)を介して転送処理を行う。すなわち、本実施形態のネットワークシステムでは、ゲーム機3がゲーム機2と直接通信できない場合には、ゲーム機1を介して、ゲーム2機へデータを転送する。
図3は、本実施形態のネットワークシステムの一例を示す。例えば、図3(A)は、各ゲーム機が通信上弊害なく相互に直接通信してデータを送受信する例である。図3(B)は、ゲーム機2とゲーム機3との間で直接に通信できない場合の例である。このように、ゲーム機2とゲーム機3との間で直接に通信できない場合には、ゲーム機3がゲーム機2へデータを送信する場合には、図3(C)に示すように、パケットをゲーム機1に送信し、ゲーム機1がゲーム機2へ転送する処理を行う。同様に、ゲーム機2がゲーム機3へデータを送信する場合には、パケットをゲーム機1に送信し、ゲーム機1がゲーム機3へ転送する処理を行う。
より詳細に説明すると、ゲーム機3がゲーム機2にデータを送信する場合には、送信すべきデータを含むパケットをゲーム機1に送信する。そして、ゲーム機1は、受信したパケットの送信先と送信元を変更した転送パケットを生成し、転送パケットをゲーム機3へ転送する。ゲーム機1が、転送すべきパケットであるか否かを判断するために、ゲーム機3は、本来届けるべき相手ゲーム機であるゲーム機2の識別情報(ID)をパケットのペイロード(データ)に入れるようにする。このようにすれば、パケットを受信したゲーム機1は、自分宛のパケットであるのか、他のゲーム機宛のパケットなのかを判断することができる。例えば、ゲーム機3が、ゲーム機2のID(ID=2)をパケットのペイロードに含むようにして生成したパケットをゲーム機1に送信する。そして、ゲーム機1は、受信したパケットのペイロードに含まれるIDが、自機のID(ID=1)ではなく(ID=2)であると判断し、受信したパケットのペイロードをそのまま転送用の転送パケットのペイロードに設定し、転送パケットを、ID(ID=2)で特定されるゲーム機2宛に転送する処理を行う。ゲーム機2がゲーム機3に送信する場合も同様の処理を行う。
このようにすれば、ピア・ツー・ピア方式のネットワークゲームシステムでゲーム機3がゲーム機2に直接通信できない場合であっても、ゲーム機1を介してデータを送信することができ、安定的なネットワークシステムを構築できる。
2.構成
図4に本実施形態のゲーム機(ネットワークシステム)の機能ブロック図の例を示す。なお本実施形態のゲーム機は図4の構成要素(各部)の一部を省略した構成としてもよい。
操作部160は、プレーヤがプレーヤオブジェクト(移動体オブジェクトの一例、プレーヤが操作するプレーヤ車両)の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
携帯型情報記憶装置194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などがある。通信部196は外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(記憶部170)に配信してもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含めることができる。
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部100は記憶部170内の主記憶部172をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
処理部100は、ゲーム演算部110、ネットワーク設定部112、通信制御部114、識別情報判定部116、直接通信判断部118、描画部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
ゲーム演算部110は、オブジェクト空間を設定する処理、オブジェクトの移動・動作処理、及び、仮想カメラを制御する処理を行う。
オブジェクト空間設定部は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
移動・動作処理部は、オブジェクト(キャラクタ、車、電車又は飛行機等)の移動・動作演算(移動・動作シミュレーション)を行う。すなわち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(オブジェクトを構成する各パーツの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
仮想カメラ制御部は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。
例えば仮想カメラによりオブジェクト(例えばキャラクタ、ボール、車)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動・動作処理部で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
ネットワーク設定部112は、ネットワークシステムで必要となる情報を取得し、管理する処理等を行う。特に、本実施形態のネットワーク設定部112は、所与の条件下で、各ゲーム機に個別に付与される識別情報と、識別情報に対応付けられたパケットの送信先を指定する宛先情報とを取得する。ここで、識別情報とは、オンラインゲームに参加できるゲーム機を識別するために個別に付与されたデータである。例えば、ゲーム機を識別するためのゲーム機毎に異なる固有のIDとすることができる。IDは、数字やアルファベットの組み合わせからなるシリアル番号とすることができる。本実施形態のネットワーク設定部112は、識別情報に基づいて、ゲーム機を特定することができる。
また、宛先情報とは、ネットワークシステムを構成する各ゲーム機のIPアドレス、ポート番号とすることができる。IPアドレスは、インターネット上もしくはWANで特定のゲーム機を特定するためのグローバルIPアドレスとしてもよいし、LANで特定のゲーム機を特定するためのプライベートIPアドレスとしてもよい。
通信制御部114は、他のゲーム機に送信するパケットを生成する処理、パケット送信先のゲーム機のネットワークアドレスを指定する処理、受信したパケットを記憶部170に保存する処理、受信したパケットを解析する処理、その他のパケットの送受信に関する通信部196の制御処理等を行う。パケットとは、ネットワークにおいて、小さなデータの固まりを、送信元IPアドレス、送信先IPアドレスを含むネットワークに必要なヘッダーとともに、実際に送りたいデータをペイロードに含ませたデータのことをいう。また、アプリケーションレベルの通信を実現するためには、アプリケーションの種類を特定する「ポート番号」を用いて、TCPパケットやUDPパケットを生成する。TCPパケットや、UDPパケットを生成する場合には、送信元のIPアドレス及び送信元のポート番号、送信先のIPアドレス及び送信先のポート番号を含むネットワークに必要なヘッダーとともに、実際に送りたいデータをペイロードに含ませるようにして生成する。
本実施形態の通信制御部114は、宛先情報を含むヘッダーと識別情報を含むペイロードとからなるパケットを通信部に送受信させる処理を行う。すなわち、本実施形態の通信制御部114は、パケットのヘッダーの送信先IPアドレスと送信先ポート番号に、送信先のゲーム機のIPアドレスとポート番号指定し、ヘッダーの送信元のIPアドレスと送信元ポート番号に、自機のIPアドレスとポート番号を指定する。
また、本実施形態の通信制御部114は、直接通信不能な特定のゲーム機にパケットを送信する場合には、通信グループの特定のゲーム機以外のゲーム機の宛先情報を含むヘッダーと特定のゲーム機の識別情報を含むペイロードとからなるパケットを生成し、生成されたパケットを当該宛先情報で指定されるゲーム機に送信させる処理を行う。すなわち、本実施形態の通信制御部114は、直接通信不能な特定のゲーム機にパケットを送信する場合には、ヘッダーの送信先のIPアドレス及びポート番号に通信グループの特定のゲーム機以外のゲーム機のIPアドレス及びポート番号を指定し、直接通信不能な特定のゲーム機のIDを含むペイロードとからなるパケットを生成し、生成されたパケットを当該宛先情報で指定されるゲーム機に送信させる処理を行う。
また、本実施形態の通信制御部114は、ヘッダーと、特定のゲーム機の識別情報に加えて自機の識別情報を含むペイロードとからなるパケットを生成することができる。すなわち、本実施形態の通信制御部114は、直接通信不能な特定のゲーム機にパケットを送信する場合には、直接通信不能な特定のゲーム機のIDに加えて送信元である自機のIDを含むペイロードとからなるパケットを生成し、生成されたパケットを当該宛先情報で指定されるゲーム機に送信させる処理を行う。
また、本実施形態の通信制御部114は、直接通信判断部において、自機が特定のゲーム機と直接通信不能と判断される場合には、特定のゲーム機以外のゲーム機の宛先情報を含むヘッダーと、特定のゲーム機の識別情報及び直接通信不能な特定のゲーム機を退出させる退出要求情報を含むペイロードとからなる退出要求パケットを生成し、当該退出要求パケットを当該宛先情報で指定されるゲーム機に送信する処理を行うようにしてもよい。すなわち、本実施形態の通信制御部114は、直接通信判断部において、自機が特定のゲーム機と直接通信不能と判断される場合には、送信先IPアドレス及び送信先ポート番号に特定のゲーム機以外のゲーム機のIPアドレス及びポート番号を指定したヘッダーと、直接通信不能な特定のゲーム機のID及び直接通信不能な特定のゲーム機を退出させる退出要求情報を含むペイロードとからなる退出要求パケットを生成し、当該退出要求パケットを当該宛先情報で指定されるゲーム機に送信する処理を行うようにしてもよい。
ここで、退出要求情報とは、通信グループから退出させる要求内容を示すデータであり、退出要求情報を受け取ったゲーム機は、所定条件の下で退出させる処理を行うものである。
また、本実施形態の通信制御部114は、優先順位情報に基づいて、他のゲーム機から送信された退出要求パケットを受信した自機が他のゲーム機よりも優先順位が高いと判断される場合には、他のゲーム機以外のゲーム機の宛先情報を含むヘッダーと、他のゲーム機の識別情報及び他のゲーム機を退出させる退出要求情報を含むペイロードとからなる退出要求パケットを生成し、当該退出要求パケットを当該宛先情報で指定されるゲーム機に送信するようにしてもよい。
すなわち、本実施形態の通信制御部114は、優先順位情報に基づいて、ヘッダーの他のゲーム機から送信された退出要求パケットを受信した自機が他のゲーム機よりも優先順位が高いと判断される場合には、自機を通信グループから退出させる処理を行わないようにすることができる。そして、送信先IPアドレス及び送信先ポート番号に、他のゲーム機以外のゲーム機のIPアドレス及びポート番号を指定したヘッダーと、他のゲーム機の識別情報及び他のゲーム機を退出させる退出要求情報を含むペイロードとからなる退出要求パケットを生成し、当該退出要求パケットを当該宛先情報で指定されるゲーム機に送信するようにしてもよい。
また、本実施形態の通信制御部114は、通信グループの第1のゲーム機から受信したパケットを解析して特定されたゲーム機が自機と異なる通信グループの第2のゲーム機である場合には、第2のゲーム機の宛先情報を含むヘッダーと第1のゲーム機から受信したパケットのペイロードとからなる転送パケットを生成し、当該転送パケットを第2のゲーム機に転送するようにしてもよい。すなわち、通信グループの第1のゲーム機から受信したパケットを解析して特定されたゲーム機のIDが、自機のIDと異なる通信グループの第2のゲーム機のIDである場合には、送信先IPアドレス及び送信先ポート番号を第2のゲーム機のIPアドレス及びポート番号を指定したヘッダーと、第1のゲーム機から受信したパケットのペイロードとからなる転送パケットを生成し、当該転送パケットを第2のゲーム機に転送するようにしてもよい。
識別情報判定部116は、ゲーム機が受信したパケットに含まれる識別情報が、当該ゲーム機の識別情報であることを判定する処理を行う。すなわち、ゲーム機が受信したパケットに含まれるID(識別情報の一例)が、当該ゲーム機のIDであるか否かを判断する。例えば、ゲーム機のIDが1である場合に、受信したパケットに含まれるIDが2である場合には、受信したパケットに含まれるIDが当該ゲーム機のIDとは異なるIDであると判定する。
直接通信判断部118は、ゲーム機が、他のゲーム機と直接通信できるか否かを判断する処理を行う。直接通信できるか否かの判断は、ゲーム機が他のゲーム機へ、所与のパケットを生成して送信し、所定期間内に送信したパケットに対する返答パケットを受信できたか否かに基づいて判断することができる。
例えば、ゲーム機が、他のゲーム機と直接通信できるか否かの判断は、「PING」プログラムを用いて判断する。PINGとは、IPアドレスに基づいて、ICMP(Internet Control Message Protocol)のエコー要求(タイプ8)とエコー応答(タイプ0)を活用して、相手端末と通信できるかどうかを判断するプログラムである。つまり、通信グループに参加したゲーム機は、ICMPのエコー要求を含む接続確認パケット(エコー要求パケット)を他のゲーム機に送信し、他のゲーム機からICMPのエコー応答を含む返答パケット(エコー応答パケット)を受信した場合には、他のゲーム機と通信が可能であると判断する。
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まずオブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
そして描画部120は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、オブジェクトデータ記憶部176に保存される。
テクスチャマッピングは、記憶部170のテクスチャ記憶部に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170のテクスチャ記憶部からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
3.本実施形態の手法
3.1 ネットワーク設定手法
本実施形態のネットワークシステムにおいて、オンラインゲームに参加するゲーム機のネットワークの設定について図5を用いて説明する。
まず、図5(A)に示すように、オンラインゲームに参加する場合には、ゲーム機はNNSにNN(NAT Negotiation)要求パケットを送信する。図5(B)は、NN要求パケットの一例である。NN要求パケットのヘッダーの送信元IPアドレス及び送信元ポート番号に、オンラインゲームに参加するゲーム機のIPアドレス及びポート番号を設定する。また、NN要求パケットのヘッダーの送信先IPアドレス及び送信先ポート番号に、NNSのIPアドレス及びポート番号を設定する。また、NN要求パケットのペイロードに、要求内容を設定する。そして、生成したNN要求パケットをNNSに送信する。
ところで、NNSがNN要求パケットを受信した場合には、NNSは、ヘッダーの送信元IPアドレス及び送信元ポート番号を参照して、送信元のゲーム機のIPアドレスとポート番号を取得して管理することができる。このように、NNSは、オンラインゲームに参加する全てのゲーム機のIPアドレスとポート番号を管理することができる。
ゲーム機が、NNSにNN要求パケットを送信した後に、NN要求パケットに対する返答パケットを受信する。返答パケットには、オンラインゲームの通信グループのオーナー機のIPアドレス及びポート番号(宛先情報の一例)が含まれる。オーナー機とは、通信グループを作ったゲーム機とすることができる。
NNSからの返答パケットを受信したゲーム機は、受信した返信パケットに含まれるオーナー機のIPアドレス及びポート番号に基づいて、オーナー機と直接通信できるか否かを確認する。例えば、オーナー機にパケットを送信し、所定期間内に返答パケットをオーナー機から受信しなかった場合には、直接通信できないと判断する。本実施形態のネットワークシステムでは、通信グループのゲーム機が、通信グループのオーナー機と直接通信できない場合には、ゲームへ参加できない。
ゲーム機が、通信グループのオーナー機と直接通信できた場合には、オーナー機から返答パケットを受信することができる。返答パケットには、通信グループに所属する全てのゲーム機を識別するためのIDが含まれる。
次に、ゲーム機は、通信グループのオーナー機以外の全てのゲーム機のIPアドレス及びポート番号を取得するために、NNSにNN要求パケットを送信する。NNSは、オンラインゲームに参加する全てのゲーム機のIPアドレス及びポート番号を管理しているからである。例えば、NN要求パケットのペイロードの要求内容には、通信グループに所属するゲーム機のIDを特定し、IPアドレスとポート番号を要求するデータを設定する。このようにすれば、ゲーム機のIDに対応するIPアドレスとポート番号を取得することができる。
上述の本実施形態のネットワークシステムでは、オンラインゲームに参加するゲーム機が、通信グループに所属する全てのゲーム機のIPアドレス及びポート番号等のネットワークに関する情報(以下、「ネットワーク情報」ということがある。)を取得することができる。ネットワーク情報は、テーブル(以下、「ネットワーク情報テーブル」ということがある。)を用いて、保存することができる。例えば、図5(C)に示すように、ゲーム機のIDに関連付けてIPアドレス、ポート番号、オーナーか否かを判断するオーナーフラグを記憶させることができる。なお、オーナーフラグは、オーナー機である場合には1を設定し、オーナー機でない場合には0を設定する。
3.2 直接通信判断手法
本実施形態のネットワークシステムでは、通信グループに参加したゲーム機が通信グループの他のゲーム機と相互に直接通信できるか否かを判断する。ゲーム機が、直接通信できない他のゲーム機に対して適切な処理を行い、安定的なネットワークシステムの運用を図るようにするためである。
具体的には、通信グループに参加したゲーム機は、他のゲーム機に接続確認パケットを送信し、所定期間内に応答パケットを受信したか否かで判断する。つまり、接続確認パケットに対する応答パケットを受信しなかった場合には、直接通信不能と判断する。
例えば、図6(A)は、通信グループに新たに参加したゲーム機3が、ゲーム機2と直接通信ができるか否かを判断する一例を示す。新たに通信グループに参加したゲーム機3は、ゲーム機2に対して接続確認パケットを送信する。ゲーム機3が、ゲーム機2と通信可能であれば、ゲーム機3はゲーム機2から送信された返答パケットを受信する。一方、ゲーム機3が、ゲーム機2と通信不能であれば、ゲーム機3は返答パケットを受信することができない。
そして、ゲーム機は、通信グループに所属する各ゲーム機との直接通信できるか否かの判断結果を記憶したテーブル(以下、「直接通信判断テーブル」ということがある。)を用いることができる。例えば、各ゲーム機を識別するIDに関連付けて直接通信できるか否かを示す直接通信フラグを用いて記憶することができる。他のゲーム機と直接通信できる場合には、直接通信フラグを「1」に設定し、直接通信できない場合には、直接通信フラグを「0」に設定する。例えば、図6(B)は、ゲーム機3が記憶している直接通信判断テーブルの一例である。ゲーム機3が、ゲーム機2と直接通信不能である場合には、ゲーム機2(ID=2)に関連付けられる直接通信フラグを「0」に設定する。
3.3 転送手法
本実施形態のネットワークゲームシステムでは、通信グループの第1のゲーム機が、通信グループの第2のゲーム機(以下、「エンドポイントのゲーム機」ということがある。)と直接通信できない場合には、第1のゲーム機は、通信グループの第3のゲーム機を介して、第2のゲーム機にゲームに必要な情報(以下「ゲーム情報」ということがある。)を送信する。第3のゲーム機は、受信したパケットが転送されるべきパケットか否かを判断して転送処理を行う。このようにすれば、第1のゲーム機が、第2のゲーム機と直接通信できない場合であってもデータを送ることができ、ネットワークシステムの安定的な運用を図ることができるからである。
ここで、ゲーム情報とは、操作部によりプレーヤが入力した操作情報や、ゲームに必要な情報であって通信グループに参加しているプレーヤが操作するオブジェクトに関するデータとすることができる。例えばレースゲームの場合には、移動体オブジェクトの種類や、オブジェクト空間における移動体の位置情報、速度情報とすることができる。すなわち、通信グループに所属する各ゲーム機が共有すべき情報とすることができる。
また、エンドポイントのゲーム機とは、通信グループの第1のゲーム機が、本来直接通信してデータを送信する送信先の第2のゲーム機をいい、第1のゲーム機が送信したゲーム情報を最終的に受信するゲーム機である。また、エンドポイントのゲーム機とは、通信グループの第1のゲーム機が第2のゲーム機と直接通信できない場合において、第3のゲーム機を介して転送される転送先のゲーム機のことをいう。
図7は、本実施形態のネットワークシステムにおいて、ゲーム機3がゲーム機2と直接通信できない場合において、ゲーム機3がゲーム機1を介してゲーム機2にゲーム情報を送信する一例を示す。なお、図7の例では、ゲーム機1は、通信グループのオーナー機である。
まず、ゲーム機3が、ゲーム機2に対して直接通信できるか否かを判断する。例えば、図6(B)の直接通信判断テーブルを用いて、ゲーム機2のIDに関連付けられた直接通信フラグを参照することで、ゲーム機3がゲーム機2と直接通信できるか否かを判断することができる。なお、ゲーム機3は、「PING」プログラムによって、ゲーム機2と直接通信できるかを確認してもよい。
ゲーム機3は、ゲーム機2と直接通信できないと判断した場合には、ゲーム情報をオーナー機であるゲーム機1に送るようにパケットを生成する。例えば、図7(B)に示すように、パケットのヘッダーの送信先IPアドレス及び送信先ポート番号に、ゲーム機1のIPアドレスとポート番号を設定する。また、パケットのヘッダーの送信元のIPアドレス及び送信元ポート番号に、ゲーム機3のIPアドレス及びポート番号を設定する。そして、パケットのペイロードに、エンドポイントのゲーム機であるゲーム機2のID(ID=2)及びゲーム情報のデータを設定する。このようにして生成したパケットは、送信先であるゲーム機1に送信される。
本実施形態のネットワークシステムでは、通信グループのオーナー機は、受信したパケットが転送されるべきパケットか否かを判断して転送処理を行う。すなわち、オーナー機は、受信したパケットのペイロードを解析し、IDが記録されている場合には、当該IDが自機(オーナー機)のIDであるか否かを判断し、IDが自機(オーナー機)とは異なる他のゲーム機のIDである場合には、転送処理を行う。
例えば、図7(A)に示すように、ゲーム機1が、ゲーム機3から送信されたパケットを受信した場合において、パケットのペイロードのIDが、自機のID(ID=1)とは異なる他のゲーム機のID(ID=2)である場合には、転送処理を行う。
オーナー機が行う転送処理は、転送パケットを生成し、受信したパケットのペイロードに含まれるIDに基づいて特定されるゲーム機に転送パケットを転送する処理を行う。つまり、オーナー機は、受信したパケットのペイロードに含まれるIDで特定されるゲーム機のIPアドレス及びポート番号を、転送パケットのヘッダーの送信先アドレス及び送信先ポート番号に設定し、自機(オーナー機)のIPアドレス及びポート番号を、送信元アドレス及び送信元ポート番号に設定する。そして、転送パケットのペイロードには、受信したパケットのペイロードのデータをそのまま設定するする。このようにして、生成された転送パケットを送信先のゲーム機へ送信する。
例えば、図7(A)で、ゲーム機3が、エンドポイントのゲーム機2へ送信するパケットをゲーム機1に送信した場合には、当該パケットには、ゲーム機2のID(ID=2)が含まれている。当該パケットをゲーム機1が受信したときの処理は、まずパケットに含まれるIDが自機(ID=1)とは異なるゲーム機2のID(ID=2)であるので、ゲーム機2へ受信したパケットを転送する転送処理を行う。
つまり、図7(C)に示すようにゲーム機1は、ID=2のゲーム機2のIPアドレス及びポート番号を、転送パケットのヘッダーの送信先アドレス及び送信先ポート番号に設定し、ゲーム機1のIPアドレス及びポート番号を、送信元アドレス及び送信元ポート番号に設定する。そして、ゲーム機1は、転送パケットのペイロードには、ゲーム機3から受信したパケットのペイロードのデータをそのまま格納する。つまり、図7(B)に示すゲーム機3が生成したパケットのペイロードと、図7(C)に示すゲーム機1が生成した転送パケットのペイロードのデータは同じである。ゲーム機1は、生成した転送パケットをゲーム機2に送信する。
このようにすれば、ゲーム機3は、ゲーム機2のID(ID=2)をパケットのペイロードに含ませるようにしてゲーム機1へ送信すれば、エンドポイントのゲーム機2へゲーム情報等のデータを送信することができる。従って、本実施形態のピア・ツー・ピア方式のネットワークシステムでは、1のゲーム機が、直接通信できないゲーム機が存在してもデータを送ることができる。また、転送処理を行うオーナー機は、サーバ・クライアント方式のサーバのように、全てのゲーム機を管理する必要はなく、また、転送処理は単純に送信先を変えるだけの処理であるので、通信グループの他のゲーム機と比較して処理負荷があっても微差に過ぎない。このように、本実施形態のネットワークシステムでは、安定的な運用を図ることができる。
なお、本実施形態のネットワークシステムでは、通信グループのゲーム機3が、ゲーム機2(エンドポイントのゲーム機)と直接通信できない場合において、ゲーム機1を介してデータを送信する場合において、ゲーム機3が、ゲーム機1へ送信するパケットには、ゲーム機2(エンドポイントのゲーム機)のIDのみならず、ゲーム機3(自機)のIDを含ませるようにしてもよい。
このようにすれば、ゲーム機2(エンドポイントのゲーム機)は、ゲーム機1から送信された転送パケットを受信した場合には、送信源となるゲーム機を特定することができる。つまり、ゲーム機2(エンドポイントのゲーム機)は、データの送信源がゲーム機3であることが特定できる。
例えば、送信源のゲーム機3がパケットを生成する際に、送信源であることを示す値にゲーム機3のID(ID=3)を設定するようにパケットを生成する。このようにすれば、ゲーム機2(エンドポイントのゲーム機)は、当該値を参照して、データの送信源のゲーム機が、ゲーム機3(ID=3)であることを特定することができる。
3.4 退出要求
本実施形態のピア・ツー・ピア方式のネットワークシステムでは、直接通信不能な特定のゲーム機を通信グループから退出させた方が望ましい場合がある。ネットワークシステムの安定的な運用を行うことができるからである。
図8は、本実施形態のネットワークシステムでゲーム機3がゲーム機2と直接通信できない場合において、ゲーム機3がゲーム機1を介してゲーム機2に退出要求パケットを送信する一例を示す。なお、ゲーム機1はオーナー機である。
まず、ゲーム機3が、ゲーム機2に対して直接通信できるか否かを判断する。例えば、図6(B)の直接通信判断テーブルを用いて、ゲーム機2のIDに関連付けられた直接通信フラグを参照することで、ゲーム機3がゲーム機2と直接通信できるか否かを判断することができる。なお、ゲーム機3は、「PING」プログラムによって、ゲーム機2と直接通信できるかを確認してもよい。
ゲーム機3は、ゲーム機2と直接通信できないと判断した場合には、退出要求パケットを生成し、退出要求パケットをオーナー機であるゲーム機1に送信する。例えば、図8(B)に示すような退出要求パケットを生成する。退出パケットのヘッダーの送信元のIPアドレス及び送信元ポート番号は、ゲーム機3のIPアドレスとポート番号を設定する。退出要求パケットのヘッダーの送信先のIPアドレス及び送信先ポート番号は、ゲーム機1のIPアドレスとポート番号を設定する。そして、退出要求パケットのペイロードには、エンドポイントのゲーム機であるゲーム機2のID(ID=2)及び退出要求情報を含むデータを設定する。このようにして生成したパケットは、送信先であるゲーム機1に送信される。
上述しように、本実施形態のネットワークシステムでは、通信グループのオーナー機は、受信したパケットに含まれるIDに基づいて、受信したパケットを転送するか否かを判断して転送処理を行う。そこで、本実施形態のネットワークシステムの各ゲーム機は、オーナー機の転送処理を利用して、退出要求をすることができる。
図8(A)を用いて説明すると、オーナー機であるゲーム機1は、が退出要求パケットをゲーム機3から受信し、ペイロードに含まれるIDが自機のID(ID=1)とは異なる、他のゲーム機2のID(ID=2)である場合には、転送処理を行う。
したがって、図8(B)の退出要求パケットを受信したゲーム機1は、ヘッダーを変更した転送用の退出要求パケットを生成する。例えば、図8(C)に示すように、転送用の退出要求パケットの送信元IPアドレス及び送信元ポート番号は、ゲーム機1のIPアドレス及びポート番号を設定する。転送用の退出要求パケットの送信先IPアドレス及び送信先ポート番号は、ゲーム機2のIPアドレス及びポート番号を設定する。そして、転送用の退出要求パケットのペイロードに、受信した退出要求パケットのペイロードを設定する。このようにして生成した転送用の退出要求パケットをゲーム機2に送信する。
さらに、本実施形態のネットワークシステムは、通信グループの各ゲーム機が、通信グループの他のゲーム機と直接通信できない場合において、優先順位情報に基づいて通信グループから退出させる処理を行うことができる。
例えば、通信グループに新たに参加したゲーム機3が、通信グループのゲーム機2と直接通信できない場合において、ゲーム機3がゲーム機2よりも優先順位が高いと判断される場合には、ゲーム機3は通信グループから退出せずにゲーム機2を退出させるように退出要求パケットを生成し、ゲーム機1(例えばオーナー機)を介して退出要求することができる。一方、ゲーム機3がゲーム機2よりも優先順位が低い場合には、ゲーム機2に退出要求せずに、ゲーム機3は自ら通信グループから退出させる処理を行うことができる。
ここで、優先順位情報とは、ゲーム機が通信グループに残ることができる順位とすることができる。また、優先順位情報は、テーブルに格納することができる。例えば図9(A)(B)に示すように、ゲーム機を識別するIDに関連付けて優先順位を特定できるようにテーブル(以下、「優先順位情報テーブル」という。)を構成することができる。
本実施形態のネットワークシステムでは、優先順位情報は、オーナー機が決定することができる。例えば、オーナー機は、通信グループに参加した順に従って優先順位を決定してもよい。例えば、オーナー機は、ゲーム機1〜5の順に通信グループに参加した場合には、図9(A)に示すように、通信グループに参加した順に優先順位を決定することができる。
また、優先順位は、通信グループで、ゲーム機が他のゲーム機と直接通信できる数の多い順に優先順位を決定することができる。例えば、図10は、本実施形態のネットワークシステムの一例である。図10に示すネットワークシステムでは、ゲーム機2は、ゲーム機3とゲーム機5と直接通信できない関係にあり、ゲーム機3は、ゲーム機2とゲーム機5と直接通信できない関係にあり、ゲーム機4はゲーム機5と直接通信できない関係にあり、ゲーム機5は、ゲーム機2、ゲーム機3及びゲーム機4と直接通信できない関係にある。図10に示すネットワークシステムの例では、例えば、図9(B)に示すような優先順位を決定することができる。
4.本実施形態の処理
次に、本実施形態のファイルデータ処理プログラムの詳細な処理例について図11〜図16のフローチャートを用いて説明する。
図11は、オンラインゲームに参加するゲーム機が、ネットワーク情報を取得し、設定する処理の一例を示すフローチャートである。
まず、NNSにNN要求パケットを送信する(ステップS110)。次に、NN要求パケットに対する返答パケットを受信する(ステップS120)。次に、受信した返答パケットを解析し、ネットワークシステムの通信グループのオーナー機のIPアドレス、ポート番号を取得する(ステップS130)。
次に、オーナー機のIPアドレス及びポート番号に基づいて、ゲーム機がオーナー機と直接通信できるか否か判断する(ステップS140)。
オーナー機と直接通信できる場合には(ステップS140のYes)、ゲーム機はオーナー機から通信グループに属する全てのゲーム機のIDを取得する(ステップS150)。次に、ゲーム機は、NNSにNN要求パケットを送信し、通信グループに属する全てのゲーム機のIPアドレス、ポート番号を取得する(ステップS170)。そして、通信グループに属する全てのゲームのID、IPアドレス、ポート番号をネットワーク情報テーブルに格納する(ステップS180)。
一方、オーナー機と直接通信できない場合には(ステップS140のNo)、通信グループに参加しない処理を行う(ステップS160)。
図12は、ゲーム機が、通信グループの指定されたゲーム機と直接通信判断する処理の一例を示すフローチャートである。
まず、ゲーム機が、通信グループの指定されたゲーム機と直接通信できるか否かを判断する(ステップS210)。通信グループの指定されたゲーム機と直接通信できる場合には(ステップS210のYes)、指定されたゲーム機の直接通信フラグを1に設定する(ステップS220)。一方、通信グループの指定されたゲーム機と直接通信できない場合には(ステップS210のNo)、指定されたゲーム機の直接通信フラグを0に設定する(ステップS230)。直接通信フラグは、指定されたゲーム機の識別情報(ID)と関連付けて直接通信判断テーブルに保存することができる。通信グループに属する全てのゲーム機と直接通信判断したか否かを判断し(ステップS240)、通信グループに属する全てのゲーム機と直接通信していない場合には(ステップS240のNo)は、ステップS210〜ステップS240を繰り返し行う。通信グループに属する全てのゲーム機と直接通信した場合には(ステップS240のYes)、処理を終了する。
図13は、ゲーム機が、通信グループの他のゲーム機(エンドポイントのゲーム機)に送信するパケットを、生成する処理の一例を示すフローチャートである。
まず、ゲーム機は、パケットのヘッダーの送信元IPアドレス及び送信元ポート番号に、自機のIPアドレス及びポート番号を設定する(ステップS310)。次に、ゲーム機が、エンドポイントのゲーム機と直接通信できるか否かを判断する(ステップS320)。ゲーム機がエンドポイントのゲーム機と直接通信できる場合には(ステップS320のYes)、パケットのヘッダーの送信先IPアドレス及び送信先ポート番号に、エンドポイントのゲーム機のIPアドレス及びポート番号を設定する(ステップS330)。そして、パケットのペイロードに、ゲーム情報を含むデータを設定する(ステップS340)。
一方、ゲーム機がエンドポイントのゲーム機と直接通信できない場合には(ステップS320のNo)、パケットのヘッダーの送信先IPアドレス及び送信先ポート番号に、オーナー機のIPアドレス及びポート番号を設定する(ステップS350)。そして、パケットのペイロードに、エンドポイントのゲーム機のIDを含むデータを設定する(ステップS360)。
図14は、通信グループのオーナー機が、通信グループのゲーム機から受信したパケットを転送する処理の一例を示すフローチャートである。
まず、オーナー機は、通信グループのゲーム機から受信したパケットを解析する(ステップS410)。次に、受信したパケットのペイロードのIDが自機のIDか否かを判断する(ステップS420)。そして、受信したパケットのペイロードのIDが、自機のIDである場合(ステップS420のYes)には、処理を終了する。一方、パケットのペイロードのIDが自機のIDでない場合には(ステップS420のNo)、転送パケットのヘッダーの送信先IPアドレス及び送信先ポート番号に、受信したパケットのペイロードのIDに基づいて特定されるゲーム機のIPアドレス及びポート番号を設定する(ステップS430)。そして、転送パケットのペイロードに、受信したパケットのペイロードを設定する(ステップS440)。
図15は、ゲーム機が、通信グループの他のゲーム機(エンドポイントのゲーム機)と直接通信できない場合に、他のゲーム機に退出要求するための退出要求パケットを生成する処理の一例を示すフローチャートである。
まず、自機が他のゲーム機(エンドポイントのゲーム機)と直接通信できるか否かを判断する(ステップS510)。そして、自機が他のゲーム機と直接通信できる場合には(ステップS510のYes)、処理を終了する。一方、直接通信できない場合には(ステップS510のNo)、自機は他のゲーム機よりも優先順位が低いか否かを判断する(ステップS520)。
自機が他のゲーム機よりも優先順位が低い場合には(ステップS520のYes)、自機を通信グループから退出させて(ステップS530)、処理を終了する。一方、自機が他のゲーム機よりも優先順位が低くない場合には(ステップS520のNo)、退出要求パケットを生成する。
すなわち、退出要求パケットのヘッダーの送信元IPアドレス及び送信元ポート番号に、自機のIPアドレス及びポート番号を設定する(ステップS540)。次に、退出要求パケットのヘッダーの送信先IPアドレス及び送信先ポート番号に、オーナー機のIPアドレス及びポート番号を設定する(ステップS550)。次に、退出要求パケットのペイロードに、他のゲーム機のID及び退出要求情報を含むデータを設定する(ステップS560)。そして、オーナー機に退出要求パケットを送信する(ステップS570)。
図16は、ゲーム機が、通信グループの他のゲーム機から送信された退出要求パケットを受信した場合においての処理の一例を示すフローチャートである。
まず、ゲーム機は、通信グループの他のゲーム機から送信された退出要求パケットを受信したか否かを判断する(ステップS610)。退出要求パケットを受信した場合には(ステップS610のYes)、自機は他のゲーム機よりも優先順位が高いか否かを判断する(ステップS620)。自機が、他のゲーム機よりも優先順位が高くない場合には(ステップS620のNo)、自機を通信グループから退出させる処理を行う(ステップS630)。一方、自機が、他のゲーム機よりも優先順位が高い場合には(ステップS620のYes)、退出要求パケットを生成する。
すなわち、退出要求パケットのヘッダーの送信元IPアドレス及び送信元ポート番号に、自機のIPアドレス及びポート番号を設定する(ステップS640)。次に、退出要求パケットのヘッダーの送信先IPアドレス及び送信先ポート番号に、オーナー機のIPアドレス及びポート番号を設定する(ステップS650)。次に、退出要求パケットのペイロードに、他のゲーム機のID及び退出要求情報を含むデータを設定する(ステップS660)。そして、オーナー機に退出要求パケットを送信する(ステップS670)。
5.ハードウェア構成
図17に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ900は、DVD982(情報記憶媒体。CDでもよい。)に格納されたプログラム、通信インターフェース990を介してダウンロードされたプログラム、或いはROM950に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、マトリクス演算(ベクトル演算)を高速に実行する。例えばオブジェクトを移動させたり動作(モーション)させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
ジオメトリプロセッサ904は、メインプロセッサ900上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ906は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、MPEG方式等で圧縮された動画像を表示できる。
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を実行する。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970を利用して、描画データを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると描画プロセッサ910は、描画データやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ922に描画する。また描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。頂点シェーダやピクセルシェーダなどのプログラマブルシェーダが実装されている場合には、シェーダプログラムに従って、頂点データの作成・変更(更新)やピクセル(あるいはフラグメント)の描画色の決定を行う。1フレーム分の画像がフレームバッファ922に書き込まれるとその画像はディスプレイ912に表示される。
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などのゲーム音を生成し、スピーカ932を介して出力する。ゲームコントローラ942やメモリカード944からのデータはシリアルインターフェース940を介して入力される。
ROM950にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納される。なおROM950の代わりにハードディスクを利用してもよい。RAM960は各種プロセッサの作業領域となる。DMAコントローラ970は、プロセッサ、メモリ間でのDMA転送を制御する。DVDドライブ980(CDドライブでもよい。)は、プログラム、画像データ、或いは音データなどが格納されるDVD982(CDでもよい。)にアクセスする。通信インターフェース990はネットワーク(通信回線、高速シリアルバス)を介して外部との間でデータ転送を行う。
なお本実施形態の各部(各手段)の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。また接触痕跡の表現手法も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
なお、本実施形態のネットワークシステムでは、通信グループを構成するゲーム機が他のゲーム機と直接通信できるか否かの判断は、相互に直接通信することで確認をしているが、ゲーム機間が双方向に通信可能か否かを判断する場合に限らず、片方向が通信可能か否かを元に判断してもよい。
なお、本実施形態のネットワークシステムでは、通信グループを構成するゲーム機が他のゲーム機と直接通信する手法として、「PING」プログラムによる判断手法を採用しているが、「PING」プログラムによる判断に限らず、例えば、オンラインゲームで使用するアプリケーションのポート番号に基づいて、直接通信できるか否かを判断してもよい。つまり、ゲーム機は、オンラインゲームで使用する他のゲーム機のポート番号が使用可能でるか否かを判断してもよい。
なお、本実施形態のネットワークシステムでは、通信グループを構成するゲーム機が他のゲーム機と直接通信できない場合に、優先順位に基づいて退出するか否かの判断をする場合があるが、優先順位が他のゲーム機と同等の順位である場合には、退出要求パケットを送信しないようにしていもよい。優先順位が同等である場合には、ゲーム機同士が相互に退出要求パケットを無限に送信することになり、ネットワークシステムが不安定になる恐れがあるからである。
本実施形態のネットワークシステムのネットワーク図。 本実施形態のネットワークシステムのネットワーク図。 本実施形態のネットワークシステムのネットワーク図。 本実施形態のネットワークシステムの機能ブロック図。 本実施形態のネットワークシステムのネットワーク設定手法の説明図。 本実施形態のネットワークシステムの直接通信判断手法の説明図。 本実施形態のネットワークシステムの転送処理の説明図。 本実施形態のネットワークシステムの退出要求の説明図。 本実施形態のネットワークシステムに通信グループに属するゲーム機の優先順位情報の説明図。 本実施形態のネットワークシステムの退出要求の説明図。 本実施形態の処理のフローチャート。 本実施形態の処理のフローチャート。 本実施形態の処理のフローチャート。 本実施形態の処理のフローチャート。 本実施形態の処理のフローチャート。 本実施形態の処理のフローチャート。 ハードウェア構成例。
符号の説明
100 処理部、110 ゲーム演算部、112 ネットワーク設定部、
114 通信制御部、116 識別情報判定部、118 直接通信判断部、
120 描画部、130 音生成部、160 操作部、170 記憶部、
172 主記憶部、174 描画バッファ、
180 情報記憶媒体、190 表示部、192 音出力部、
194 携帯型情報記憶装置、196 通信部

Claims (10)

  1. 複数のゲーム機が各ゲーム機同士で相互にパケットを直接通信するネットワークシステムのためのプログラムであって、
    所与の条件下で、各ゲーム機に個別に付与される識別情報と、前記識別情報に対応付けられたパケットの送信先を指定する宛先情報とを取得するネットワーク設定部と、
    前記宛先情報を含むヘッダーと前記識別情報を含むペイロードとからなるパケットを通信部に送受信させる通信制御部と、
    自機が所属する通信グループの他のゲーム機から受信した前記パケットを解析し、前記パケットに含まれる前記識別情報に対応するゲーム機を特定する識別情報判定部としてゲーム機を機能させ、
    前記通信制御部が、
    前記識別情報判定部において前記通信グループの第1のゲーム機から受信した前記パケットを解析して特定されたゲーム機が自機と異なる前記通信グループの第2のゲーム機である場合には、前記第2のゲーム機の宛先情報を含むヘッダーと前記第1のゲーム機から受信した前記パケットのペイロードとからなる転送パケットを生成し、当該転送パケットを前記第2のゲーム機に転送することを特徴とするプログラム。
  2. 複数のゲーム機が各ゲーム機同士で相互にパケットを直接通信するネットワークシステムのためのプログラムであって、
    所与の条件下で、各ゲーム機に個別に付与される識別情報と、前記識別情報に対応付けられたパケットの送信先を指定する宛先情報とを取得するネットワーク設定部と、
    前記宛先情報を含むヘッダーと前記識別情報を含むペイロードとからなるパケットを通信部に送受信させる通信制御部と、
    自機が所属する通信グループの他のゲーム機と相互に直接通信ができるか否かを判断する直接通信判断部としてゲーム機を機能させ、
    前記直接通信判断部が、
    自機から送信された接続確認パケットに対する前記通信グループの特定のゲーム機からの返答パケットを所定期間内に受信しなかった場合には、自機が当該特定のゲーム機と直接通信不能と判断し、
    前記通信制御部が、
    直接通信不能な前記特定のゲーム機にパケットを送信する場合には、前記通信グループの前記特定のゲーム機以外のゲーム機の宛先情報を含むヘッダーと前記特定のゲーム機の識別情報を含むペイロードとからなるパケットを生成し、生成されたパケットを当該宛先情報で指定されるゲーム機に送信することを特徴とするプログラム。
  3. 請求項2において、
    前記通信制御部が、
    前記ヘッダーと、前記特定のゲーム機の識別情報に加えて自機の識別情報を含むペイロードとからなるパケットを生成することを特徴とするプログラム。
  4. 請求項2または3において、
    前記通信制御部が、
    前記直接通信判断部において、自機が前記特定のゲーム機と直接通信不能と判断される場合には、前記特定のゲーム機以外のゲーム機の宛先情報を含むヘッダーと、前記特定のゲーム機の識別情報及び直接通信不能な前記特定のゲーム機を退出させる退出要求情報を含むペイロードとからなる退出要求パケットを生成し、当該退出要求パケットを当該宛先情報で指定されるゲーム機に送信し、
    前記ネットワーク設定部が、
    他のゲーム機から送信された退出要求パケットを受信した場合には、所定条件下で、前記通信グループから自機を退出させる処理を行うことを特徴とするプログラム。
  5. 請求項4において、
    前記ネットワーク設定部が、
    前記通信グループの各ゲーム機の優先順位を設定した優先順位情報に基づいて、自機と直接通信不能な前記特定のゲーム機との優先順位を判定し、判定結果に基づいて自機が前記特定のゲーム機よりも優先順位が低いと判断される場合には、前記通信グループから自機を退出させる処理を行うことを特徴とするプログラム。
  6. 請求項5において、
    前記通信制御部が、
    前記優先順位情報に基づいて、前記他のゲーム機から送信された退出要求パケットを受信した自機が前記他のゲーム機よりも優先順位が高いと判断される場合には、前記他のゲーム機以外のゲーム機の宛先情報を含むヘッダーと、前記他のゲーム機の識別情報及び前記他のゲーム機を退出させる退出要求情報を含むペイロードとからなる退出要求パケットを生成し、当該退出要求パケットを当該宛先情報で指定されるゲーム機に送信することを特徴とするプログラム。
  7. コンピュータにより読取可能な情報記憶媒体であって、請求項1〜6のいずれかに記載のプログラムを記憶することを特徴とする情報記憶媒体。
  8. 複数のゲーム機が各ゲーム機同士で相互にパケットを直接通信するネットワークシステムのためのゲーム機であって、
    通信により他のゲーム機との間でパケットの送受信を行う通信部と、
    所与の条件下で、各ゲーム機に個別に付与される識別情報と、前記識別情報に対応付けられたパケットの送信先を指定する宛先情報とを取得するネットワーク設定部と、
    前記宛先情報を含むヘッダーと前記識別情報を含むペイロードとからなるパケットを通信部に送受信させる通信制御部と、
    自機が所属する通信グループの他のゲーム機から受信した前記パケットを解析し、前記パケットに含まれる前記識別情報に対応するゲーム機を特定する識別情報判定部と、
    を含み、
    前記通信制御部が、
    前記識別情報判定部において前記通信グループの第1のゲーム機から受信した前記パケットを解析して特定されたゲーム機が自機と異なる前記通信グループの第2のゲーム機である場合には、前記第2のゲーム機の宛先情報を含むヘッダーと前記第1のゲーム機から受信した前記パケットのペイロードとからなる転送パケットを生成し、当該転送パケットを前記第2のゲーム機に転送することを特徴とするゲーム機。
  9. 複数のゲーム機が各ゲーム機同士で相互にパケットを直接通信するネットワークシステムのためのゲーム機であって、
    通信により他のゲーム機との間でパケットの送受信を行う通信部と、
    所与の条件下で、各ゲーム機に個別に付与される識別情報と、前記識別情報に対応付けられたパケットの送信先を指定する宛先情報とを取得するネットワーク設定部と、
    前記宛先情報を含むヘッダーと前記識別情報を含むペイロードとからなるパケットを通信部に送受信させる通信制御部と、
    自機が所属する通信グループの他のゲーム機と相互に直接通信ができるか否かを判断する直接通信判断部と、
    を含み、
    前記直接通信判断部が、
    自機から送信された接続確認パケットに対する前記通信グループの特定のゲーム機からの返答パケットを所定期間内に受信しなかった場合には、自機が当該特定のゲーム機と直接通信不能と判断し、
    前記通信制御部が、
    直接通信不能な前記特定のゲーム機にパケットを送信する場合には、前記通信グループの前記特定のゲーム機以外のゲーム機の宛先情報を含むヘッダーと前記特定のゲーム機の識別情報を含むペイロードとからなるパケットを生成し、生成されたパケットを当該宛先情報で指定されるゲーム機に送信することを特徴とするゲーム機。
  10. 複数のゲーム機が各ゲーム機同士で相互にパケットを直接通信するネットワークシステムであって、
    各ゲーム機が、
    通信により他のゲーム機との間でパケットの送受信を行う通信部と、
    所与の条件下で、各ゲーム機に個別に付与される識別情報と、前記識別情報に対応付けられたパケットの送信先を指定する宛先情報とを取得するネットワーク設定部と、
    前記宛先情報を含むヘッダーと前記識別情報を含むペイロードとからなるパケットを通信部に送受信させる通信制御部と、
    自機が所属する通信グループの他のゲーム機と相互に直接通信ができるか否かを判断する直接通信判断部と、
    前記通信グループの他のゲーム機から受信した前記パケットを解析し、前記パケットに含まれる前記識別情報に対応するゲーム機を特定する識別情報判定部と、
    を含み、
    通信グループの第1のゲーム機の直接通信判断部が、
    第1のゲーム機から前記通信グループの第2のゲーム機へ送信された接続確認パケットに対して、当該第2のゲーム機からの返答パケットを所定期間内に受信しなかった場合には、当該第1のゲーム機が当該第2のゲーム機と直接通信不能と判断し、
    前記第1のゲーム機の通信制御部が、
    前記第2のゲーム機にパケットを送信する場合には、前記第2のゲーム機以外の宛先情報を含むヘッダーと前記第2のゲーム機の識別情報を含むペイロードとからなるパケットを生成し、生成されたパケットを前記通信グループの第3のゲーム機に送信し、
    前記第3のゲーム機の通信制御部が、
    前記識別情報判定部において前記第1のゲーム機から受信した前記パケットを解析して特定されたゲーム機が自機と異なる前記第2のゲーム機である場合には、前記第2のゲーム機の宛先情報を含むヘッダーと前記第1のゲーム機から受信した前記パケットのペイロードとからなる転送パケットを生成し、当該転送パケットを前記第2のゲーム機に転送することを特徴とするネットワークシステム。
JP2006328249A 2006-12-05 2006-12-05 プログラム、情報記憶媒体、ゲーム機及びネットワークシステム Active JP5252676B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006328249A JP5252676B2 (ja) 2006-12-05 2006-12-05 プログラム、情報記憶媒体、ゲーム機及びネットワークシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006328249A JP5252676B2 (ja) 2006-12-05 2006-12-05 プログラム、情報記憶媒体、ゲーム機及びネットワークシステム

Publications (2)

Publication Number Publication Date
JP2008136777A JP2008136777A (ja) 2008-06-19
JP5252676B2 true JP5252676B2 (ja) 2013-07-31

Family

ID=39598844

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006328249A Active JP5252676B2 (ja) 2006-12-05 2006-12-05 プログラム、情報記憶媒体、ゲーム機及びネットワークシステム

Country Status (1)

Country Link
JP (1) JP5252676B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4690432B2 (ja) * 2008-02-15 2011-06-01 株式会社コナミデジタルエンタテインメント 通信システム、通信方法、ならびに、プログラム
JP5368118B2 (ja) 2009-01-16 2013-12-18 任天堂株式会社 情報処理システム、情報処理装置、情報処理プログラム、および通信方法
KR101874590B1 (ko) * 2017-08-25 2018-08-02 주식회사 케이제이게임즈 게임 범용 네트워크 라이브러리를 이용한 통신 미들웨어 서비스 제공 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4110671B2 (ja) * 1999-05-27 2008-07-02 株式会社日立製作所 データ転送装置
JP2001077737A (ja) * 1999-09-01 2001-03-23 Sony Corp 無線伝送方法及び無線伝送装置
JP4140153B2 (ja) * 1999-12-03 2008-08-27 株式会社セガ ネットワーク上におけるデータ交換方法
JP4782446B2 (ja) * 2005-03-15 2011-09-28 株式会社バンダイナムコゲームス ネットワークゲームシステム及び管理サーバ
JP4850490B2 (ja) * 2005-11-11 2012-01-11 任天堂株式会社 ゲームプログラムおよびゲーム装置

Also Published As

Publication number Publication date
JP2008136777A (ja) 2008-06-19

Similar Documents

Publication Publication Date Title
JP5283150B2 (ja) プログラム、ゲーム機、及びゲームシステム
US11027198B2 (en) Systems and methods of serving game video for remote play
US8734246B2 (en) Information storage medium, synchronization control method, and computer terminal
JP6196668B2 (ja) クラウド型ゲームシステムにおける描画リソースの動的割り当て
JP5408948B2 (ja) プログラム及びゲームシステム
US8147339B1 (en) Systems and methods of serving game video
JP5558733B2 (ja) プログラム、情報記憶媒体、及びゲームシステム
JP2013063296A (ja) プログラム及びゲームシステム
JP6341986B2 (ja) 描画装置、その描画方法、プログラム及び記録媒体
JP2008154620A (ja) プログラム、情報記憶媒体、ゲーム機、サーバ、及びネットワークシステム
JP5995304B2 (ja) プログラム、情報記憶媒体、端末及びサーバ
JP5252676B2 (ja) プログラム、情報記憶媒体、ゲーム機及びネットワークシステム
JP2012120755A (ja) プログラム、情報記憶媒体、及びゲーム機
US8484280B2 (en) Program, computer terminal, and command execution method
JP5770513B2 (ja) プログラム及びゲーム情報生成装置
JP5259118B2 (ja) プログラム、情報記憶媒体、ゲーム機及びゲームシステム
JP5270211B2 (ja) プログラム、情報記憶媒体、及びネットワークシステム
JP5111951B2 (ja) プログラム、情報記憶媒体、ゲーム機及びゲームシステム
JP5260122B2 (ja) ゲームシステム
JP2008067938A (ja) ゲームシステム、プログラム及び情報記憶媒体
JP5063022B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP2010231364A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP5111950B2 (ja) プログラム、情報記憶媒体、ゲーム機及びゲームシステム
JP5816495B2 (ja) プログラム、端末及びサーバ
JP2008310377A (ja) 画像生成システム、プログラム、及び情報記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090827

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120802

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130410

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130415

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5252676

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160426

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250