JP5260070B2 - ゲームネットワーク構築方法およびゲームネットワークシステム - Google Patents

ゲームネットワーク構築方法およびゲームネットワークシステム Download PDF

Info

Publication number
JP5260070B2
JP5260070B2 JP2008025463A JP2008025463A JP5260070B2 JP 5260070 B2 JP5260070 B2 JP 5260070B2 JP 2008025463 A JP2008025463 A JP 2008025463A JP 2008025463 A JP2008025463 A JP 2008025463A JP 5260070 B2 JP5260070 B2 JP 5260070B2
Authority
JP
Japan
Prior art keywords
network
game
peer
terminal
star
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
JP2008025463A
Other languages
English (en)
Other versions
JP2009183410A (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.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
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 Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2008025463A priority Critical patent/JP5260070B2/ja
Priority to DE602008002398T priority patent/DE602008002398D1/de
Priority to EP08005893A priority patent/EP2087929B1/en
Priority to US12/078,610 priority patent/US8079908B2/en
Publication of JP2009183410A publication Critical patent/JP2009183410A/ja
Application granted granted Critical
Publication of JP5260070B2 publication Critical patent/JP5260070B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/34Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using peer-to-peer connections
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/48Starting a game, e.g. activating a game device or waiting for other players to join a multiplayer session
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/408Peer to peer connection
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/63Methods for processing data by generating or executing the game program for controlling the execution of the game in time
    • A63F2300/636Methods for processing data by generating or executing the game program for controlling the execution of the game in time involving process of starting or resuming a game

Description

この発明は、ゲームネットワーク構築方法およびゲームネットワークシステムに関し、特に例えば、通信ネットワークを介して行われるゲームのためのゲームネットワーク構築方法およびゲームネットワークシステムに関する。
従来、通信ネットワークを介して行われるゲームシステムとして非特許文献1のような技術がある。非特許文献1には、ピアツーピアネットワークを構築する手法が記載されている。ピアツーピア型のネットワークゲームシステムでは基本的にはユーザ端末同士で通信をすることによってゲームが進行するため、サーバ/クライアント型のネットワークゲームシステムのように高性能なゲームサーバは必要なく、またユーザ端末間のデータ転送もゲームサーバを経由せずに行うことができるため、例えばレースゲームのようなリアルタイムな処理が要求されるネットワークゲームに適している。
一般的に、ピアツーピアネットワークには大きく分けて2種類の方式がある。一つは、1台のユーザ端末がホストとして機能し、残りのユーザ端末(クライアント端末)がホスト端末を介してデータのやりとりを行うスター型である(図22参照)。もう一つは、全てのユーザ端末が特定のホスト端末を介さずにデータのやりとりを行うことのできるメッシュ型である(図23参照)。
図24および図25を参照して、従来のメッシュ型のピアツーピアネットワークの構築手法を簡単に説明する。図24は、ホスト端末の処理を示すフローチャートであり、図25は、クライアント端末の処理を示すフローチャートである。
図24において、ホスト端末は、まずステップS900でゲームセッションを生成し、ステップS901でプレイヤリストをリセットする。プレイヤリストとは、同一のネットワークに所属する全ユーザ端末の端末情報(アドレス情報など)のリストである。ステップS902では、ゲームを開始すべきかどうかを判断し、開始すべき場合(例えば一定台数のユーザ端末がネットワークに接続された場合)にはステップS907に進み、そうでない場合はステップS903に進む。ステップS903では、他のユーザ端末(新たにネットワークに加わろうとするユーザ端末)から接続要求信号を受信したかどうかを判断し、受信した場合にはステップS904に進み、そうでない場合はステップS902に戻る。ステップS904では、上記接続要求信号の発信元のユーザ端末の端末情報をプレイヤリストに加え、ステップS905では、更新後のプレイヤリストを同一ネットワークに所属している全てのクライアント端末に送信する。ステップS906では、上記接続要求信号の発信元のユーザ端末と接続し、その後ステップS902に戻る。ステップS907では、同一ネットワークに所属している全てのクライアント端末に、ゲーム開始信号を送信し、その後、ネットワークゲームが開始される。
図25において、クライアント端末は、まずステップS910で、複数のホスト端末がそれぞれ生成した複数のゲームセッションの中から1つのゲームセッションを選択し、ステップS911では、選択したゲームセッションのホスト端末からプレイヤリストを受信する。ステップS912では、受信したプレイヤリストに基づいて、当該プレイヤリストに端末情報が含まれているユーザ端末(ホスト端末またはクライアント端末)と接続する。ステップS913では、ホスト端末からゲーム開始信号を受信したかどうかを判断し、受信した場合にはネットワークゲームが開始され、そうでない場合はステップS914に進む。ステップS914では、ホスト端末からプレイヤリストを受信したかどうかを判断し、受信した場合にはステップS912に進み、そうでない場合はステップS913に戻る。
上記のようにしてメッシュ型のピアツーピアネットワークが構築されて、ネットワークゲームが開始されると、各ユーザ端末は、他のユーザ端末との間で直接的に(すなわちホスト端末を介することなく)ゲームデータをやりとりしながらゲーム処理を進める。
「オンラインゲームプログラミング」、ソフトバンクパブリッシング株式会社、Jung WunChul著、2005年3月3日 初版、P218〜222
ところで、スター型のピアツーピアネットワークでは、ネットワークの構築を開始してから完了する(すなわちユーザ端末間でデータのやりとりが可能になる)までの時間が短いという利点がある。しかしながらスター型のピアツーピアネットワークでは、ホスト端末を介さないとデータのやりとりができないために通信遅延が大きくなってしまうという問題や、クライアント端末間の通信パフォーマンスがホスト端末の能力やネットワーク回線状態に左右されてしまうという問題がある。
一方、メッシュ型のピアツーピアネットワークでは、クライアント端末間のデータのやりとりがホスト端末を介さずに行われるので、上記のような問題は生じない。しかしながらメッシュ型のピアツーピアネットワークでは、全てのユーザ端末同士の接続が完了するまでに時間がかかり、特に同時接続台数の多いネットワークゲームではゲーム開始までに長時間待たされるという問題がある。さらには、全てのユーザ端末同士の接続が成功しなければならないため、スター型と比べて、ネットワークの構築に失敗する可能性が高いという問題がある。
それゆえに本発明の目的は、プレイ開始までの待機時間が少なく、かつ特定のユーザ端末に処理負担が集中することのないゲームネットワークシステムの構築方法およびゲームネットワークシステムを提供することである。
上記目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号は本発明の理解を助けるために図面との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
本発明のゲームネットワーク構築方法は、複数のユーザ端末(20)で構成されるネットワークゲームシステムにおけるゲームネットワーク構築方法であって、第1構築ステップ(S33,S38)、ゲーム開始ステップ(S30)、第2構築ステップ(S24,S27)、およびゲームデータ送受信ステップ(S100〜S102,S110,S111,S113)を備える。第1構築ステップは、複数のユーザ端末のうちの一台をホスト端末として残りをクライアント端末としたスター型のピアツーピアネットワークを構築するステップである。ゲーム開始ステップは、スター型のピアツーピアネットワークに接続された複数のユーザ端末においてネットワークゲームを開始するステップである。第2構築ステップは、スター型のピアツーピアネットワークに接続されたクライアント端末同士の接続を順次確立することによってスター型のピアツーピアネットワークからメッシュ型のピアツーピアネットワークを構築するステップである。ゲームデータ送受信ステップは、ネットワークゲームの開始後、メッシュ型のピアツーピアネットワークの構築途中において、(a)すでに接続が確立されたクライアント端末間では、ネットワークゲームの進行に必要となるゲームデータをホスト端末を介さずにこれらのクライアント端末同士で直接送受信し、(b)まだ接続が確立されていないクライアント端末間では、ネットワークゲームの進行に必要となるゲームデータを、ホスト端末の転送処理により、ホスト端末を介して送受信するステップである。
第2構築ステップでは、各クライアント端末は、スター型のピアツーピアネットワークに接続された他のクライアン端末のうち、当該スター型のピアツーピアネットワークに最も早く接続されたクライアン端末に対して優先的に接続を行ってもよい。
第2構築ステップでは、各クライアント端末は、スター型のピアツーピアネットワークに接続された他のクライアン端末のうち、最も多くの他のクライアント端末に接続されたクライアン端末に対して優先的に接続を行ってもよい。
ゲームネットワーク構築方法は、ネットワークゲームの開始後、メッシュ型のピアツーピアネットワークの構築途中において、スター型のピアツーピアネットワークにまだ接続されていないユーザ端末を新規のクライアント端末として当該スター型のピアツーピアネットワークに接続する新規接続ステップをさらに備え、第2構築ステップでは、新規のクライアント端末を含むメッシュ型のピアツーピアネットワークを構築してもよい。
ゲーム開始ステップで行われるネットワークゲームには、ゲーム開始直後から所定の条件を満たすまでの間に当該ネットワークゲームに関する設定を行うゲーム準備処理が含まれていてもよい。
ゲーム開始ステップでは、スター型のピアツーピアネットワークの構築を開始してから所定時間が経過した時点で、当該スター型のピアツーピアネットワークに接続されている複数のユーザ端末においてネットワークゲームを開始してもよい。
ゲーム開始ステップでは、スター型のピアツーピアネットワークに接続されたユーザ端末の台数が所定台数に到達した時点で、当該スター型のピアツーピアネットワークに接続されている複数のユーザ端末においてネットワークゲームを開始してもよい。
ゲーム開始ステップでは、ホスト端末からクライアント端末に向けて送信されるゲーム開始信号に応じて、当該スター型のピアツーピアネットワークに接続されている複数のユーザ端末においてネットワークゲームを開始してもよい。
ホスト端末は、当該ホスト端末に設けられた入力部からゲーム開始指示が入力されたことに応じて、クライアント端末に向けてゲーム開始信号を送信してもよい。
本発明のゲームネットワークシステムは、複数のユーザ端末で構成されるゲームネットワークシステムであって、各ユーザ端末は、第1接続手段、ゲーム開始手段、第2接続手段、およびゲームデータ送受信手段を備える。第1接続手段は、複数のユーザ端末のうちの一台をホスト端末として残りをクライアント端末としたスター型のピアツーピアネットワークにホスト端末またはクライアント端末として接続する手段である。ゲーム開始手段は、スター型のピアツーピアネットワークに接続した後にネットワークゲームを開始する手段である。第2接続手段は、スター型のピアツーピアネットワークにクライアント端末として接続した後、当該ピアツーピアネットワークに接続されている他のクライアント端末との間の接続を順次確立する手段である。ゲームデータ送受信手段は、ネットワークゲームの開始後、(a)すでに接続が確立されたクライアント端末に対しては、ネットワークゲームの進行に必要となるゲームデータをホスト端末を介さずに直接送受信し、(b)まだ接続が確立されていないクライアント端末に対しては、ネットワークゲームの進行に必要となるゲームデータを、ホスト端末の転送処理により、ホスト端末を介して送受信する手段である。
本発明によれば、スター型のピアツーピアネットワークが構築された時点でネットワークゲームを開始することができるので、ネットワークゲームのプレイを開始するまでのプレイヤの待機時間が短くてすむ。さらに、ネットワークゲームのプレイ中において、このスター型のピアツーピアネットワークに基づいてメッシュ型のピアツーピアネットワークが次第に構築されるので、ネットワークゲームのプレイ中におけるホスト端末の処理負担を減らすとともに、ネットワークゲームの実行に必要となるゲームデータの転送時間を減らすことができる。
以下、本発明の好ましい一実施形態について図面を参照して説明する。
図1は、本発明の好ましい一実施形態としてのゲームネットワークシステムの構成を示す図である。ゲームネットワークシステムは、アドレス情報サーバ10と複数のユーザ端末(ゲーム装置)20とで構成される。
図2に、アドレス情報サーバ10の典型的な構成例を示す。アドレス情報サーバ10は、CPU11、RAM12、ハードディスク13および通信部14を備えている。CPU11は、ハードディスク13に格納されているコンピュータプログラムをRAM12にロードして実行する。このコンピュータプログラムによって実現されるアドレス情報サーバ10の主な機能は、各ユーザ端末20から、後述するユーザ端末情報(図4)を定期的に受信してRAM12に格納し、この端末情報に基づいて、ユーザ端末20からの要求に応じてアドレス情報リストをそのユーザ端末20に返信することである。
図3に、ユーザ端末20の典型的な構成例を示す。ユーザ端末20は、CPU21、RAM22、ハードディスク23、通信部24、入力部25および表示部26を備えている。CPU21は、ハードディスク23に格納されているネットワークゲームプログラムをRAM22にロードして実行する。なお、ここではネットワークゲームプログラムがハードディスク23に予め格納されている例を説明しているが、本発明はこれに限らず、メモリカードやカートリッジやDVD−ROM等の外部記録媒体を通じてネットワークゲームプログラムがユーザ端末20に供給されても良いし、通信部24を通じてネットワークゲームプログラムがユーザ端末20に供給されても良い。このネットワークゲームプログラムによって実現されるユーザ端末20の主な機能は、複数のプレイヤが一緒にゲームプレイできるようにピアツーピアネットワークを構築し、構築されたピアツーピアネットワークのユーザ端末20間でゲームデータを通信し合ってレースゲームなどのビデオゲームを実行することである。入力部25はゲームの操作のために利用され、表示部26はゲーム画像の表示のために利用される。
図4は、アドレス情報サーバ10のRAM12に格納されるユーザ端末情報の一例を示している。このユーザ端末情報は、各ユーザ端末20から送られてくる情報に基づいて更新される。ユーザ端末情報には、各ユーザ端末20の端末情報(端末ID、IPアドレス、ホストフラグ、ユーザIDよおび熟練度の情報)が含まれている。端末IDは、ユーザ端末20を識別するための情報である。IPアドレスは、TCP/IPプロトコルを使用してユーザ端末20にアクセスするためのアドレス情報であって、ポート番号の情報も含まれている。ホストフラグは、ユーザ端末20がホスト端末として動作している(もしくは、他のユーザ端末20からの接続要求に応じてホスト端末として動作し得る)か否かを示すフラグである。ユーザIDは、ユーザ端末20を用いてゲームをプレイしているユーザを識別するための情報である。熟練度は、ゲームに対するユーザの熟練度を数値で表したものである。この熟練度の値は、例えばレースゲームにおいて上位の着順を獲得するほど増加していく。また、より熟練度の高い相手に対して先着するほどその増加量も増える。
図5は、ユーザ端末20のRAM22のメモリマップの一例である。RAM22には、ハードディスク23からロードされたネットワーク構築プログラムおよびネットワークゲームプログラムや、プレイヤリストや、プレイヤの熟練度や、端末状態が格納される。プレイヤリスト、熟練度および端末状態の値は適宜に更新される。プレイヤリストとは、同一のゲームネットワークに参加しているユーザ端末の端末情報のリストであって、プレイヤリストに含まれる各ユーザ端末の端末情報には、各ユーザのユーザIDや熟練度、さらには、そのユーザのユーザ端末20のIPアドレスや、そのユーザのユーザ端末20との接続が確立済みか否かを示す接続フラグなどの情報が含まれている。また、プレイヤリストには、ホスト端末の端末情報を先頭として、ホスト端末に接続された順番でクライアント端末の端末情報がプレイヤリストに順次追加されていくので、プレイヤリストにおける端末情報の並び順から、どのような順番でクライアント端末がホスト端末に接続されたかを判断することができる。端末状態とは、ネットワークにおけるユーザ端末20の役割を示し、端末状態の値は「ホスト」、「クライアント」、「NULL」のいずれかとなる。ユーザ端末20において端末状態が更新されると、新たな端末状態の情報がユーザ端末20からアドレス情報サーバ10に送信され、アドレス情報サーバ10のRAM12に格納されている端末情報のホストフラグに反映される。
次に、ユーザ端末20の動作について説明する。
ユーザ端末20の動作を詳細に説明する前に、本実施形態におけるゲームネットワーク構築方法の概要について説明する。本実施形態では、まず、複数のユーザ端末20のうちの一台をホスト端末として残りをクライアント端末としたスター型のピアツーピアネットワークが構築される。そして、所定の条件が満たされた時点(例えば所定台数のユーザ端末20がスター型のピアツーピアネットワークに接続された時点)で、これらのユーザ端末20においてネットワークゲームが開始される。さらに、ネットワークゲームの進行と並行して、スター型のピアツーピアネットワークからメッシュ型のピアツーピアネットワークを構築する処理も行われる。これは、スター型のピアツーピアネットワークに接続されたクライアント端末同士の接続を確立することによって行われる。こうして、ネットワークゲームが進行している間にメッシュ型のピアツーピアネットワークが徐々に構築され、最終的にメッシュ型のピアツーピアネットワークが完成する。なお、ここでは必要に応じて、全てのクライアント端末間の接続が確立されているピアツーピアネットワークのことを「完全メッシュ型のピアツーピアネットワーク」と称し、一部のクライアント端末間の接続だけが確立されているピアツーピアネットワークのことを「非完全メッシュ型のピアツーピアネットワーク」と称することとする。
以下、図6〜図11のフローチャートを参照して、ネットワーク構築プログラムに基づくユーザ端末20(便宜上「ユーザ端末a」と称す)のCPU21の処理の流れを説明する。
図6はネットワーク構築プログラムのメイン処理の流れを示すフローチャートである。メイン処理が開始されると、CPU21はステップS10で、RAM22に保持されている端末状態を「NULL」にリセットする。
ステップS11では、CPU21はゲームセッションを生成する。
ステップS12では、CPU21は、RAM22に保持されているプレイヤリストをリセットする。
ステップS13では、CPU21は、通信部24を通じてアドレス情報サーバ10にアドレス情報リストを要求する。一具体例を説明すると、CPU21は、アドレス情報サーバ10にアドレス情報リストを要求する際に、RAM22に格納されている熟練度の情報(ここでは仮に「2」とする)をアドレス情報サーバ10に送信する。すると、アドレス情報サーバ10のCPU11は、図4に示されているユーザ端末情報から、ホストフラグがオンであってかつ熟練度が2に近い数値(例えば1〜3)の端末情報を少なくとも1つ抽出し、こうして抽出された端末情報のリストをアドレス情報リストとしてユーザ端末aに返信する。
ステップS14では、CPU21は、アドレス情報サーバ10から取得したアドレス情報リストから、1つの端末情報を抽出し、こうして抽出した端末情報に対応するユーザ端末20(便宜上「ユーザ端末b」と称す)を、接続要求先として設定(RAM22に一時的に記憶)する。アドレス情報リストから1つの端末情報を抽出する方法としては、何らかの指標(熟練度や装置IDやプレイヤIDなど)に基づいて抽出する方法や、ランダムに抽出する方法が考えられる。例えば、RAM22に格納されている熟練度に最も近い熟練度を有する端末情報を抽出してもよい。RAM22に格納されている熟練度に最も近い熟練度を有する端末情報が複数存在する場合には、それらの中から1つの端末情報をランダムに抽出するようにしてもよい。ステップS14が完了すると、図7のステップS20に進む。
ステップS20では、CPU21は、ステップS14で抽出された端末情報に含まれるユーザ端末bのIPアドレスを用いて、ユーザ端末bに対して接続要求信号を送信する。ここで送信される接続要求信号は、スター型のピアツーピアネットワークを構築するための接続要求信号である。
ステップS21では、CPU21は、RAM22に保持されている端末状態が「クライアント」であるかどうかを判断し、「クライアント」である場合にはステップS22に進み、そうでない場合(すなわち「NULL」もしくは「ホスト」である場合)にはステップS22に進む。
ステップS22では、CPU21は、RAM22に保持されているプレイヤリストを参照し、自身のユーザ端末20(ユーザ端末a)が属するピアツーピアネットワーク(スター型、非完全メッシュ型、完全メッシュ型のいずれか)に接続されている他のクライアント端末の中に、ユーザ端末aとの間でまだ接続が確立されていないクライアント端末が存在するかどうかを判断する。そして、ユーザ端末aとの間でまだ接続が確立されていないクライアント端末が存在する場合にはステップS23に進み、そうでない場合(すなわちユーザ端末aと他のクライアント端末との間の接続が全て確立されている場合)にはステップS28に進む。
ステップS23〜ステップS27は、スター型のピアツーピアネットワークに接続されたクライアント端末同士の接続を確立することによってスター型のピアツーピアネットワークからメッシュ型のピアツーピアネットワークを構築するための処理である。
ステップS23では、CPU21は、他のクライアント端末から接続要求信号(メッシュ型のピアツーピアネットワークを構築するための接続要求信号)を受信したかどうかを判断し、受信した場合にはステップS24に進み、そうでない場合はステップS25に進む。
ステップS24では、CPU21は、被メッシュ接続処理を行う。被メッシュ接続処理とは、ユーザ端末aが他のクライアント端末(ここではクライアント端末c)からの接続要求信号(メッシュ型のピアツーピアネットワークを構築するための接続要求信号)を受信したときに実行される一連の処理である。以下、図8のフローチャートを参照して、被メッシュ接続処理の詳細を説明する。
被メッシュ接続処理が開始されると、ステップS50で、CPU21は、接続要求信号の送信元である他のクライアント端末(便宜上「クライアント端末c」と称す)からの接続要求を受け入れ可能かどうか(つまり、ユーザ端末aとクライアント端末cとの間の接続を確立してもよいかどうか)を判断し、受け入れ可能な場合はステップS51に進み、そうでない場合はステップS58に進む。なお、後述するステップS25でユーザ端末aから別のクライアント端末(便宜上「クライアント端末d」と称す)へ送信した接続要求信号に対して、クライアント端末dから応答信号をまだ受信していない状況もあり得るが、この場合には、予め定めた規則に基づいて、クライアント端末cからの接続要求を受け入れ可能かどうかを判定する。この規則の例としては、クライアント端末cの端末IDとクライアント端末dの端末IDの大小比較によって判定する例や、クライアント端末cを利用するユーザのユーザIDとクライアント端末dを利用するユーザのユーザIDの大小比較によって判定する例が挙げられる。他の例として、クライアント端末dから応答信号をまだ受信していない状況においては、クライアント端末cからの接続要求を常に拒否するようにしてもよいし、逆に常に受け入れる(すなわちクライアント端末dとの接続の確立よりもクライアント端末cとの接続の確立を優先する)ようにしてもよい。
ステップS51では、CPU21は、クライアント端末cに『許可』の応答信号を送信する。
ステップS52では、CPU21は、取り消し処理を行う必要があるかどうかを判断し、取り消し処理を行う必要がある場合にはステップS53に進み、そうでない場合にはステップS54に進む。ここでの取り消し処理とは、後述するステップS25でユーザ端末aから別のクライアント端末(ここではクライアント端末d)へ送信した接続要求信号に対してクライアント端末dから応答信号を受信するよりも先に、ステップS50でクライアント端末cからの接続要求を受け入れ可能と判断した場合に、クライアント端末dに対して接続要求を取り消す旨を通知するための処理である。プレイヤによって接続キャンセル指示が入力されたときに、取り消し処理を行ってもよい。
ステップS53では、クライアント端末dに取り消し信号を送信する。
ステップS54では、CPU21は、クライアント端末cから接続可否信号を受信したかどうかを判断し、接続可否信号を受信した場合にはステップS56に進み、そうでない場合にはステップS55に進む。
ステップS55では、CPU21は、クライアント端末cから取り消し信号を受信したかどうかを判断し、クライアント端末cから取り消し信号を受信した場合には被メッシュ接続処理を終了し、そうでない場合はステップS54に戻る。
ステップS56では、CPU21は、クライアント端末cから受信した接続可否信号が『OK』かどうかを判断し、『OK』である場合にはステップS57に進み、『NO』である場合には被メッシュ接続処理を終了する。
ステップS57では、CPU21は、クライアント端末cとの間の接続を確立する。これにより、ユーザ端末aとクライアント端末cとの間で、ホスト端末を介さずにゲームデータを送受信することが可能となる。クライアント端末cとの接続が確立済みとなったことは、前述のプレイヤリストに含まれる接続フラグにより記憶される。
ステップS58では、CPU21は、クライアント端末cに対して『拒否』または『待機』の応答信号を送信し、被メッシュ接続処理を終了する。『拒否』は、クライアント端末cからの接続要求を完全に拒否する場合の応答信号であり、『拒否』の応答信号を送る典型的なケースとしては、クライアント端末cに接続可能なクライアント端末の数が予め定められた上限値を超えた場合が挙げられる。『待機』は、クライアント端末cからの接続要求に対する回答を一時的に保留する場合の応答信号であり、『待機』の応答信号を送る典型的なケースとしては、ユーザ端末aが他のクライアント端末(例えばクライアント端末d)に対して接続要求を行ったにも関わらずクライアント端末dからそれに対する応答信号をまだ受信していない場合が挙げられる。
ステップS24の被メッシュ接続処理が完了すると、図7のステップS28に進む。
ステップS25では、CPU21は、ユーザ端末aとの間でまだ接続が確立されていないクライアント端末の中から1台のクライアント端末(便宜上、クライアント端末dと称す)を選択し、このクライアント端末に対して接続要求信号を送信する。ここで送信される接続要求信号は、メッシュ型のピアツーピアネットワークを構築するための接続要求信号である。なお、ユーザ端末aとの間でまだ接続が確立されていないクライアント端末の中から接続要求信号の送信先のクライアント端末を選出する方法としては、種々の方法が考えられる。一つの例として、端末IDの値が最も小さいクライアント端末を選出してもよいし、ユーザIDの値が最も大きいクライアント端末を選出してもよいし、乱数を用いてランダムに選出してもよい。他の例として、スター型のピアツーピアネットワークに加わった時刻(すなわちホスト端末と接続された時刻)が最も早いクライアント端末(便宜上「クライアント端末e」と称す)を選出してもよい。スター型のピアツーピアネットワークに加わった時刻が最も早いということは、クライアント端末eの接続状態は安定している(つまり、クライアント端末eと残りのクライアント端末との間の接続がすでに確立されている可能性が高い)ということを意味する。よって、クライアント端末eに対して複数のクライアント端末が同時に接続要求を行う可能性は低く、クライアント端末eに対する接続要求が許可される可能性が高い。したがって、クライアント端末eに対して接続要求信号を送信することで、メッシュ型のピアツーピアネットワークを効率よく構築することができる。さらに他の例として、最も多くの他のクライアント端末との間で接続を確立しているクライアント端末を選出してもよい。
ステップS26では、CPU21は、クライアント端末dから『許可』の応答信号を受信したかどうかを判断し、『許可』の応答信号を受信した場合にはステップS27に進み、そうでない場合(すなわち応答信号をまだ受信していない場合や、『拒否』または『待機』の応答信号を受信した場合)にはステップS28に進む。
ステップS27では、CPU21は、メッシュ接続処理を行う。メッシュ接続処理とは、ユーザ端末aが送信した接続要求信号(メッシュ型のピアツーピアネットワークを構築するための接続要求信号)が他のクライアント端末(ここではクライアント端末d)によって受け入れられたときに実行される一連の処理である。以下、図9のフローチャートを参照して、メッシュ接続処理の詳細を説明する。
メッシュ接続処理が開始されると、ステップS60で、CPU21は、クライアント端末dとの接続が可能かどうかを判断し、クライアント端末dとの接続が可能な場合はステップS61に進み、そうでない場合はステップS63に進む。
ステップS61では、CPU21は、『OK』の接続可否信号をクライアント端末dへ送信する。
ステップS62では、CPU21は、クライアント端末dとの接続を確立させ、メッシュ接続処理を終了する。
ステップS63では、CPU21は、『NO』の接続可否信号をクライアント端末dへ送信し、メッシュ接続処理を終了する。
ステップS27のメッシュ接続処理が完了すると、図7のステップS28に進む。
ステップS28では、CPU21は、ネットワークゲームを実行中かどうかを判断し、実行中の場合にはステップS31に進み、まだネットワークゲームが開始されていない場合にはステップS29に進む。
ステップS29では、CPU21は、ネットワークゲームを開始する条件を満たしたかどうかを判断し、ネットワークを開始する条件を満たした場合にはステップS30に進み、そうでない場合にはステップS31に進む。なお、ネットワークゲームを開始する条件としては、種々の条件が考えられる。例えば、スター型のピアツーピアネットワークの構築を開始してから(もしくは、ホスト端末においてゲームセッションが生成されてから)所定時間が経過した時点でネットワークゲームを開始するようにしてもよい。他の例として、スター型のピアツーピアネットワークに接続されたユーザ端末20の台数が所定台数に到達した時点でネットワークゲームを開始するようにしてもよい。さらに他の例として、ホスト端末によって決定されたタイミングでネットワークゲームを開始するようにしてもよい(この場合、ホスト端末からクライアント端末へゲーム開始信号が送信されて、ネットワークゲームが開始される)。さらに他の例として、ホスト端末に設けられた入力部からゲーム開始指示が入力されたことに応じて(例えば、ホスト端末のプレイヤがコントローラ上のスタートスイッチを押したことに応じて)ネットワークゲームを開始するようにしてもよい。
ステップS30では、CPU21は、ネットワークゲームプログラムの実行を開始することによって、ネットワークゲームを開始する。なお、ネットワークゲームプログラムの実行はネットワーク構築プログラムの実行と並列して行われ、ネットワークゲームが開始された以降も、引き続きゲームネットワーク構築処理が実行される。ネットワークゲームの進行中におけるユーザ端末20間のゲームデータの転送処理の詳細については後述する。
ステップS31では、CPU21は、ゲームネットワーク構築処理を終了するかどうかを判断し、ゲームネットワーク構築処理を終了する場合にはメイン処理を終了し、そうでない場合にはステップS21に戻る。
ステップ32〜ステップS41は、端末状態が「NULL」であるユーザ端末20同士の接続を確立する、もしくは端末状態が「ホスト」であるユーザ端末20と「NULL」であるユーザ端末20との接続を確立することによって、スター型のピアツーピアネットワークを構築するための処理である。
ステップS32では、CPU21は、他のユーザ端末20から接続要求信号(スター型のピアツーピアネットワークを構築するための接続要求信号)を受信したかどうかを判断し、他のユーザ端末20から接続要求信号を受信した場合にはステップS33に進み、そうでない場合にはステップS34に進む。
ステップS33では、CPU21は、被スター接続処理を実行する。被スター接続処理とは、ユーザ端末aが他のユーザ端末20からの接続要求信号(スター型のピアツーピアネットワークを構築するための接続要求信号)を受信したときに実行される一連の処理である。以下、図10のフローチャートを参照して、被スター接続処理の詳細を説明する。
被スター接続処理が開始されると、ステップS70で、CPU21は、接続要求信号の送信元である他のユーザ端末20(便宜上「ユーザ端末f」と称す)からの接続要求を受け入れ可能かどうか(つまり、ユーザ端末aとユーザ端末fとの間の接続を確立してもよいかどうか)を判断し、受け入れ可能な場合はステップS71に進み、そうでない場合はステップS84に進む。なお、前述のステップS20でユーザ端末aからユーザ端末bへ送信した接続要求信号に対して、ユーザ端末bから応答信号をまだ受信していない状況もあり得るが、この場合には、予め定めた規則に基づいて、ユーザ端末fからの接続要求を受け入れ可能かどうかを判定する。この規則の例としては、ユーザ端末fの端末IDとユーザ端末bの端末IDの大小比較によって判定する例や、ユーザ端末fを利用するユーザのユーザIDとユーザ端末bを利用するユーザのユーザIDの大小比較によって判定する例が挙げられる。他の例として、ユーザ端末bから応答信号をまだ受信していない状況においては、ユーザ端末fからの接続要求を常に拒否するようにしてもよいし、逆に常に受け入れる(すなわちユーザ端末bとの接続の確立よりもユーザ端末fとの接続の確立を優先する)ようにしてもよい。
ステップS71では、CPU21は、ユーザ端末fに『許可』の応答信号と、RAM22に格納されているプレイヤリストを送信する。
ステップS72では、CPU21は、取り消し処理を行う必要があるかどうかを判断し、取り消し処理を行う必要がある場合にはステップS73に進み、そうでない場合にはステップS74に進む。ここでの取り消し処理とは、前述のステップS20でユーザ端末aから別のユーザ端末(ここではユーザ端末b)へ送信した接続要求信号に対してユーザ端末bから応答信号を受信するよりも先に、ステップS70でユーザ端末fからの接続要求を受け入れ可能と判断した場合に、ユーザ端末bに対して接続要求を取り消す旨を通知するための処理である。
ステップS73では、ユーザ端末bに取り消し信号を送信する。
ステップS74では、CPU21は、ユーザ端末aに接続されているクライアント端末が存在するかどうかを判断し、ユーザ端末aに接続されているクライアント端末が存在する場合(すなわち、ユーザ端末aがすでにホスト端末として動作している場合)にはステップS75に進み、そうでない場合にはステップS76に進む。
ステップS75では、CPU21は、ユーザ端末aに接続されている全てのクライアント端末に対して、ユーザ端末fの情報(IPアドレスなど)を送信する。なお、ユーザ端末fの情報は、ユーザ端末aがユーザ端末fから受信した接続要求信号に含まれているものとする。
ステップS76では、CPU21は、ユーザ端末fから接続可否信号を受信したかどうかを判断し、接続可否信号を受信した場合にはステップS78に進み、そうでない場合にはステップS77に進む。
ステップS77では、CPU21は、ユーザ端末fから取り消し信号を受信したかどうかを判断し、ユーザ端末fから取り消し信号を受信した場合には被スター接続処理を終了し、そうでない場合はステップS76に戻る。
ステップS78では、CPU21は、ユーザ端末fから受信した接続可否信号が『OK』かどうかを判断し、『OK』である場合にはステップS79に進み、『NO』である場合には被スター接続処理を終了する。
ステップS79では、CPU21は、ユーザ端末fとの間の接続を確立する。これにより、ユーザ端末aが生成したゲームセッションに、クライアント端末としてユーザ端末fが新たに参加したことになる。
ステップS80では、CPU21は、RAM22に保持されている端末状態が「NULL」であるかどうかを判断し、「NULL」である場合にはステップS81に進み、そうでない場合(すなわち「ホスト」である場合)にはステップS83に進む。
ステップS81では、CPU21は、RAM22に保持されている端末状態を「ホスト」に変更する。
ステップS82では、新規にクライアント端末となったユーザ端末fに「空のクライアント情報」を送信し、被スター接続処理を終了する。なお「クライアント情報」とは、ユーザ端末aに接続されているクライアント端末の情報(IPアドレスなど)である。通常は、新規のクライアント端末に対して、既存のクライアント端末の情報が「クライアント情報」として送信されるのであるが、ここではユーザ端末aはホスト端末になったばかりであって既存のクライアント端末は1台も存在しないため、新規のクライアント端末であるユーザ端末fに対してその旨を通知すべく、「空のクライアント情報」を送信することとしている。
ステップS83では、CPU21は、新規にクライアント端末となったユーザ端末fに、既存のクライアント端末の情報を「クライアント情報」として送信し、被スター接続処理を終了する。
ステップS84では、CPU21は、ユーザ端末fに対して『拒否』または『待機』の応答信号を送信し、被スター接続処理を終了する。『拒否』は、ユーザ端末fからの接続要求を完全に拒否する場合の応答信号であり、『拒否』の応答信号を送る典型的なケースとしては、ユーザ端末fに接続可能なクライアント端末の数が予め定められた上限値を超えた場合が挙げられる。『待機』は、ユーザ端末fからの接続要求に対する回答を一時的に保留する場合の応答信号であり、『待機』の応答信号を送る典型的なケースとしては、ユーザ端末aが他のユーザ端末(例えばユーザ端末b)に対して接続要求を行ったにも関わらずユーザ端末bからそれに対する応答信号をまだ受信していない場合が挙げられる。
ステップS33の被スター接続処理が完了すると、図7のステップS34に進む。
ステップS34では、CPU21は、RAM22に保持されている端末状態が「NULL」であるかどうかを判断し、「NULL」である場合にはステップS35に進み、そうでない場合(すなわち「ホスト」である場合)には前述したステップS28に進む。
ステップS35では、CPU21は、ステップS20で送信した接続要求信号に対して、ユーザ端末bから応答信号(プレイヤリストを含む)を受信したかどうかを判断し、応答信号を受信した場合にはステップS36に進み、そうでない場合にはステップS39に進む。
ステップS36では、CPU21は、ユーザ端末bからの応答信号が『待機』かどうかを判断し、『待機』である場合にはステップS41に進み、そうでない場合(すなわち『許可』もしくは『拒否』である場合)にはステップS37に進む。
ステップS37では、CPU21は、ユーザ端末bからの応答信号が『許可』かどうかを判断し、『許可』である場合にはステップS38に進み、『許可』でない場合(すなわち『拒否』である場合)にはステップS39に進む。
ステップS38では、スター接続処理を実行する。スター接続処理とは、ユーザ端末aが送信した接続要求信号(スター型のピアツーピアネットワークを構築するための接続要求信号)が他のユーザ端末(ここではユーザ端末b)によって受け入れられたときに実行される一連の処理である。以下、図11のフローチャートを参照して、スター接続処理の詳細を説明する。
スター接続処理が開始されると、ステップS90で、CPU21は、ユーザ端末bとの接続が可能かどうかを判断し、ユーザ端末bとの接続が可能な場合はステップS91に進み、そうでない場合はステップS94に進む。
ステップS91では、CPU21は、『OK』の接続可否信号をユーザ端末bへ送信する。
ステップS92では、CPU21は、ユーザ端末bとの接続を確立させる。
ステップS93では、CPU21は、RAM22に保持されている端末状態を「クライアント」に変更し、スター接続処理を終了する。
ステップS94では、CPU21は、『NO』の接続可否信号をユーザ端末bへ送信し、スター接続処理を終了する。
ステップS38のスター接続処理が完了すると、前述した図7のステップS28に進む。
ステップS39では、CPU21は、ステップS13と同様に、アドレス情報サーバ10からアドレス情報リストを取得する。
ステップS40では、CPU21は、アドレス情報サーバ10から取得したアドレス情報リストに基づいて接続要求先を変更する。
ステップS41では、CPU21は、ゲームネットワーク構築処理を終了するかどうかを判断し、ゲームネットワーク構築処理を終了する場合にはメイン処理を終了し、そうでない場合にはステップS20に戻る。
以上のように、本実施形態では、ステップS33の被スター接続処理およびステップS38のスター接続処理によってスター型のピアツーピアネットワークが構築された後、このスター型のピアツーピアネットワークのクライアント端末間の接続が次第に確立され、最終的に完全メッシュ型のピアツーピアネットワークが完成する。
次に、ネットワークゲームプログラムの実行中におけるユーザ端末20の動作の詳細を説明する。なお、ネットワークゲームの進行中におけるユーザ端末20の動作(ゲームデータの送受信処理)は、クライアント端末とホスト端末とで異なる。
図12は、クライアント端末(便宜上「クライアント端末g」と称す)におけるゲーム処理の流れを示すフローチャートである。
ステップS100では、クライアント端末gのCPU21は、クライアント端末gとの間ですでに接続が確立されている(すなわちホスト端末を介さずに直接的に通信可能となっている)クライアント端末(便宜上「クライアント端末h」と称す)宛のゲームデータ(ネットワークゲームの進行に必要なゲームデータであって、例えば、クライアント端末gに設けられたコントローラに対するプレイヤの操作内容を示す操作データなど)を、クライアント端末hに送信する。接続が確立されているかどうかは、RAM22に格納されているプレイヤリストに含まれる接続フラグを参照して判断することができる。この接続フラグは、前述のネットワーク構築プログラムにしたがって、ネットワークゲームの進行中においても更新され得る。
ステップS101では、クライアント端末gのCPU21は、クライアント端末gとの間でまだ接続が確立されていないクライアント端末(便宜上「クライアント端末i」と称す)宛のゲームデータを、ホスト端末に送信する。ホスト端末に送信される信号には、ゲームデータの宛先(ここではクライアント端末i)を示す宛先情報が含まれている。
ステップS102では、クライアント端末gのCPU21は、ホスト端末宛のゲームデータをホスト端末に送信する。
ステップS103では、クライアント端末gのCPU21は、ホスト端末およびクライアント端末(ここではクライアント端末hおよびクライアント端末i)からゲームデータを受信する。
ステップS104では、クライアント端末gのCPU21は、ステップS103において他のユーザ端末から受信したゲームデータを用いてゲーム処理(ゲームキャラクタの移動制御など)を実行する。
ステップS105では、クライアント端末gのCPU21は、ネットワークゲームが終了したかどうかを判断し、終了した場合にはゲーム処理を終了し、そうでない場合にはステップS100に戻る。
各クライアント端末では、上記のステップS100〜ステップS105の処理が周期的に(典型的には60分の1秒の周期で)実行されることによって、ネットワークゲームが進行する。
図13は、ホスト端末におけるゲーム処理の流れを示すフローチャートである。
ステップS110では、ホスト端末のCPU21は、各クライアント端末(ここではクライアント端末g,クライアント端末h,クライアント端末i)宛のゲームデータ(ネットワークゲームの進行に必要なゲームデータであって、例えば、ホスト端末に設けられたコントローラに対するプレイヤの操作内容を示す操作データなど)を、各クライアント端末にそれぞれ送信する。
ステップS111では、ホスト端末のCPU21は、各クライアント端末からゲームデータをそれぞれ受信する。
ステップS112では、ホスト端末のCPU21は、ステップS111において受信したゲームデータの中に、中継すべきゲームデータ(すなわち、前述の宛先情報によって、いずれかのクライアント端末が宛先として指定されているゲームデータ)が含まれているかどうかを判断し、中継すべきゲームデータが存在する場合にはステップS113に進み、そうでない場合にはステップS114に進む。
ステップS113では、ホスト端末のCPU21は、中継すべきゲームデータを、このゲームデータの宛先として指定されているクライアント端末に送信する。
ステップS114では、ホスト端末のCPU21は、ステップS111において他のユーザ端末から受信したゲームデータを用いてゲーム処理(ゲームキャラクタの移動制御など)を実行する。
ステップS115では、ホスト端末のCPU21は、ネットワークゲームが終了したかどうかを判断し、終了した場合にはゲーム処理を終了し、そうでない場合にはステップS110に戻る。
ホスト端末では、上記のステップS110〜ステップS115の処理が周期的に(典型的には60分の1秒の周期で)実行されることによって、ネットワークゲームが進行する。
以上のように、本実施形態では、ネットワークゲームの進行中において、接続が確立されているクライアント端末間ではホスト端末を介さずに直接的にゲームデータの送受信が行われ、接続が確立されていないクライアント端末間ではホスト端末を介してゲームデータの送受信が行われるため、少なくともスター型のピアツーピアネットワークが構築された時点でネットワークゲームを開始することができ、ネットワークゲームのプレイを開始するまでのプレイヤの待機時間が短くてすむ。また、ネットワークゲームのプレイ中において、このスター型のピアツーピアネットワークに基づいてメッシュ型のピアツーピアネットワークが次第に構築されるので、ネットワークゲームのプレイ中におけるホスト端末の処理負担を減らすとともに、ネットワークゲームの実行に必要となるゲームデータの転送時間を減らすことができる。
また、本実施形態によれば、クライアント端末は、少なくともホスト端末とさえ接続されていればゲームネットワークに参加することができるため、仮に一部のクライアント端末間で接続の確立に失敗したとしても、それらのクライアント端末がホスト端末と接続されてさえいればネットワークゲームを進行することができる。よって、従来のメッシュ型のピアツーピアネットワークを利用したゲームネットワークシステムと比較して、ゲームネットワークの構築に失敗してネットワークゲームを開始できないという事態が起こりにくい。
以下では、図14A〜図21を参照して、本実施形態においてピアツーピアネットワークがどのように構築されていくのかを具体例により説明する。
図14A〜図14Eは、2台のユーザ端末(ユーザ端末Aおよびユーザ端末B)が接続されるときの処理の流れを示している。
図14Aでは、まだいずれのユーザ端末とも接続されていないユーザ端末Bから、同じくまだいずれのユーザ端末とも接続されていないユーザ端末Aに対して接続要求信号が送信される。
図14Bでは、ユーザ端末Aからユーザ端末Bへ『許可』の応答信号とプレイヤリストが送信される。
図14Cでは、ユーザ端末Bからユーザ端末Aへ『OK』の接続可否信号が送信される。
図14Dでは、ユーザ端末Aとユーザ端末Bの間の接続が確立される。これ以降、ユーザ端末Aはホスト端末として動作し、ユーザ端末Bはクライアント端末として動作する。
図14Fでは、ユーザ端末Aからユーザ端末Bへ空のクライアント情報が送信される。これにより、ユーザ端末Bは他のクライアント端末がまだ1台も存在しないことを確認することができる。
以上のようにして、ユーザ端末Aとユーザ端末Bの2台のユーザ端末から成るピアツーピアネットワークが構築される。この時点で、必要に応じていつでもネットワークゲームを開始可能な状態となる。
図15A〜図15Eは、上記のようにして構築された2台のユーザ端末(ユーザ端末Aおよびユーザ端末B)から成るピアツーピアネットワークに、さらに別のユーザ端末Cが接続されるときの処理の流れを示している。
図15Aでは、まだいずれのユーザ端末とも接続されていないユーザ端末Cから、ホスト端末であるユーザ端末Aに対して接続要求信号が送信される。
図15Bでは、ユーザ端末Aからユーザ端末Cへ『許可』の応答信号とプレイヤリストが送信され、さらに、ユーザ端末Aからユーザ端末Bへ、ユーザ端末Cの情報が送信される。
図15Cでは、ユーザ端末Cからユーザ端末Aへ『OK』の接続可否信号が送信される。
図15Dでは、ユーザ端末Aとユーザ端末Cの間の接続が確立される。これ以降、ユーザ端末Cはクライアント端末として動作する。
図15Eでは、ユーザ端末Aからユーザ端末Cへ、クライアント情報としてユーザ端末Bの情報が送信される。
以上のようにして、ユーザ端末A〜Cの3台のユーザ端末から成るスター型のピアツーピアネットワークが構築される。
スター型のピアツーピアネットワークが構築された直後は、ユーザ端末Bとユーザ端末Cは、ホスト端末であるユーザ端末Aを介してのみ、互いにゲームデータを送受信することができる。
スター型のピアツーピアネットワークが構築された後は、ネットワークゲームが開始されたか否かに関わらず、これらの3台のユーザ端末から成るメッシュ型のピアツーピアネットワークの構築が進められる。
図16A〜図16Eは、上記のようにして構築された3台のユーザ端末(ユーザ端末A〜C)から成るスター型のピアツーピアネットワークに基づいて、メッシュ型のピアツーピアネットワークが構築されるときの処理の流れを示している。
図16Aでは、クライアント端末であるユーザ端末Bは、前述の接続フラグを参照して、まだユーザ端末Bとの接続が確立されていない別のクライアント端末(ユーザ端末C)が存在していることを確認する。
図16Bでは、ユーザ端末Bからユーザ端末Cに対して接続要求信号が送信される。
図16Cでは、ユーザ端末Cからユーザ端末Bへ『許可』の応答信号とプレイヤリストが送信される。
図16Dでは、ユーザ端末Bからユーザ端末Cへ『OK』の接続可否信号が送信される。
図16Eでは、ユーザ端末Bとユーザ端末Cの間の接続が確立される。これ以降は、ユーザ端末Bとユーザ端末Cは、ホスト端末であるユーザ端末Aを介することなく、互いにゲームデータを送受信することができる。
次に、図17〜図21を参照して、ユーザ端末A〜Dの4台のユーザ端末から成るピアツーピアネットワークが構築されるときの処理の流れについて説明する。
まず、図17に示すように、ユーザ端末A〜Cの3台のユーザ端末から成るスター型のピアツーピアネットワークが構成される。この段階で、ユーザ端末A〜Cの3台のユーザ端末を用いたネットワークゲームを開始することが可能となる。この後、ユーザ端末Bとユーザ端末Cとの間の接続と、ユーザ端末Aとユーザ端末Dとの間の接続の、どちらが先に確立されるかによって、処理の流れが変化する。
図18は、ユーザ端末Aとユーザ端末Dとの間の接続が確立するよりも先に、ユーザ端末Bとユーザ端末Cとの間の接続が確立した場合のピアツーピアネットワークの様子を示している。図19は、この時点でピアツーピアネットワークに所属している各ユーザ端末A〜Cで保持されている他のユーザ端末の情報(IPアドレス等)を示している。ユーザ端末Dはまだこのピアツーピアネットワークに接続されていないので、ユーザ端末Dの情報はまだいずれのユーザ端末にも保持されていない。この後、ユーザ端末Aとユーザ端末Dとの間の接続が確立され、さらに、ユーザ端末Dと各クライアント端末(ユーザ端末Bおよびユーザ端末C)との間の接続が順次確立され、最終的にユーザ端末A〜Dの4台のユーザ端末から成るメッシュ型のピアツーピアネットワークが構築されることになる。
図20は、ユーザ端末Bとユーザ端末Cとの間の接続が確立するよりも先に、ユーザ端末Aとユーザ端末Dとの間の接続が確立した場合のピアツーピアネットワークの様子を示している。図21は、この時点でピアツーピアネットワークに所属している各ユーザ端末A〜Dで保持されている他のユーザ端末の情報(IPアドレス等)を示している。この後、クライアント端末(ユーザ端末B〜D)間の接続が順次確立され、最終的にユーザ端末A〜Dの4台のユーザ端末から成るメッシュ型のピアツーピアネットワークが構築されることになる。
なお、本実施形態によれば、スター型のピアツーピアネットワークが構築された時点ですぐにネットワークゲームを開始することができるが、スター型のピアツーピアネットワークが構築されてからメッシュ型のピアツーピアネットワークの構築が完了するまでにはある程度の時間を要する。メッシュ型のピアツーピアネットワークの構築が完了するまでの間は、一部のクライアント端末間におけるゲームデータのやりとりがホスト端末を介して行われるため、通信の遅延時間が大きく、またホスト端末の処理負担も大きい。そこで、ネットワークゲームのゲームシーケンスを、ネットワークゲームの開始直後はリアルタイム処理を必要としない処理を行い、ある程度の時間が経過してからリアルタイム処理を必要とする処理を開始するようなゲームシーケンスとするのが好ましい。例えば、複数のプレイヤで対戦するレースゲームの場合には、ネットワークゲームの開始直後はプレイヤがレースコースを選択したりマシンをセッティングしたりするための準備処理を実行し、それらの作業が終わってからレース処理(共通のレースコース上で各プレイヤのマシンを走らせる処理)を開始するようにするのが好ましい。準備処理ではリアルタイム処理を必要としない(すなわちユーザ端末間で操作データを随時送受信する必要がない)ため、通信の遅延時間が大きくても、またホスト端末の処理負担が大きくても、特に問題にはならない。一方、レース処理ではリアルタイム処理を必要とする(すなわちユーザ端末間で操作データを随時送受信する必要がある)が、プレイヤがレースコースを選択したりマシンをセッティングしたりしている間にメッシュ型のピアツーピアネットワークが完成(もしくはほぼ完成)しているので、プレイヤは快適にレースゲームをプレイすることができる。
なお、本実施形態では、アドレス情報サーバ10から他のユーザ端末のアドレス情報を取得しているが、本発明はこれに限らず、他の任意の方法でアドレス情報を取得してもよい。
本発明の一実施形態のゲームネットワークシステムの構成を示す図 アドレス情報サーバ10の典型的な構成例 ユーザ端末20の典型的な構成例 アドレス情報サーバ10のRAM12に格納されるユーザ端末情報の一例 ユーザ端末20のRAM22のメモリマップの一例 ネットワーク構築プログラムのメイン処理の流れを示すフローチャート ネットワーク構築プログラムのメイン処理の流れを示すフローチャート ネットワーク構築プログラムの被メッシュ接続処理の流れを示すフローチャート ネットワーク構築プログラムのメッシュ接続処理の流れを示すフローチャート ネットワーク構築プログラムの被スター接続処理の流れを示すフローチャート ネットワーク構築プログラムのスター接続処理の流れを示すフローチャート ネットワークゲームプログラムのクライアントゲーム処理の流れを示すフローチャート ネットワークゲームプログラムのホストゲーム処理の流れを示すフローチャート ピアツーピアネットワークが構築されていく過程を示す図 ピアツーピアネットワークが構築されていく過程を示す図 ピアツーピアネットワークが構築されていく過程を示す図 ピアツーピアネットワークが構築されていく過程を示す図 ピアツーピアネットワークが構築されていく過程を示す図 ピアツーピアネットワークが構築されていく過程を示す図 ピアツーピアネットワークが構築されていく過程を示す図 ピアツーピアネットワークが構築されていく過程を示す図 ピアツーピアネットワークが構築されていく過程を示す図 ピアツーピアネットワークが構築されていく過程を示す図 ピアツーピアネットワークが構築されていく過程を示す図 ピアツーピアネットワークが構築されていく過程を示す図 ピアツーピアネットワークが構築されていく過程を示す図 ピアツーピアネットワークが構築されていく過程を示す図 ピアツーピアネットワークが構築されていく過程を示す図 ピアツーピアネットワークが構築されていく過程を示す図 ピアツーピアネットワークが構築されていく過程を示す図 各端末が保持している端末情報を示す図 ピアツーピアネットワークが構築されていく過程を示す図 各端末が保持している端末情報を示す図 従来のスター型のピアツーピアネットワークの構成例 従来のメッシュ型のピアツーピアネットワークの構成例 従来のメッシュ型のピアツーピアネットワークの構築手法を示すフローチャート 従来のメッシュ型のピアツーピアネットワークの構築手法を示すフローチャート
符号の説明
10 アドレス情報サーバ
11 CPU
12 RAM
13 ハードディスク
14 通信部
20 ユーザ端末
21 CPU
22 RAM
23 ハードディスク
24 通信部
25 入力部
26 表示部

Claims (10)

  1. 複数のユーザ端末で構成されるネットワークゲームシステムにおけるゲームネットワーク構築方法であって、
    複数のユーザ端末のうちの一台をホスト端末として残りをクライアント端末としたスター型のピアツーピアネットワークを構築する第1構築ステップ、
    前記スター型のピアツーピアネットワークに接続された複数のユーザ端末においてネットワークゲームを開始するゲーム開始ステップ、
    前記スター型のピアツーピアネットワークに接続されたクライアント端末同士の接続を順次確立することによって前記スター型のピアツーピアネットワークからメッシュ型のピアツーピアネットワークを構築する第2構築ステップ、および、
    前記ネットワークゲームの開始後、前記メッシュ型のピアツーピアネットワークの構築途中において、(a)すでに接続が確立されたクライアント端末間では、前記ネットワークゲームの進行に必要となるゲームデータを前記ホスト端末を介さずに当該クライアント端末同士で直接送受信し、(b)まだ接続が確立されていないクライアント端末間では、前記ネットワークゲームの進行に必要となるゲームデータを、前記ホスト端末の転送処理により、前記ホスト端末を介して送受信するゲームデータ送受信ステップ、
    を備えるゲームネットワーク構築方法。
  2. 前記第2構築ステップでは、各クライアント端末は、前記スター型のピアツーピアネットワークに接続された他のクライアン端末のうち、当該スター型のピアツーピアネットワークに最も早く接続されたクライアン端末に対して優先的に接続を行う、請求項1に記載のゲームネットワーク構築方法。
  3. 前記第2構築ステップでは、各クライアント端末は、前記スター型のピアツーピアネットワークに接続された他のクライアン端末のうち、最も多くの他のクライアント端末に接続されたクライアン端末に対して優先的に接続を行う、請求項1に記載のゲームネットワーク構築方法。
  4. 前記ネットワークゲームの開始後、前記メッシュ型のピアツーピアネットワークの構築途中において、前記スター型のピアツーピアネットワークにまだ接続されていないユーザ端末を新規のクライアント端末として当該スター型のピアツーピアネットワークに接続する新規接続ステップをさらに備え、
    前記第2構築ステップでは、前記新規のクライアント端末を含むメッシュ型のピアツーピアネットワークを構築する、請求項1に記載のゲームネットワーク構築方法。
  5. 前記ゲーム開始ステップで行われるネットワークゲームには、ゲーム開始直後から所定の条件を満たすまでの間に当該ネットワークゲームに関する設定を行うゲーム準備処理が含まれる、請求項1に記載のゲームネットワーク構築方法。
  6. 前記ゲーム開始ステップでは、前記スター型のピアツーピアネットワークの構築を開始してから所定時間が経過した時点で、当該スター型のピアツーピアネットワークに接続されている複数のユーザ端末においてネットワークゲームを開始する、請求項1に記載のゲームネットワーク構築方法。
  7. 前記ゲーム開始ステップでは、前記スター型のピアツーピアネットワークに接続されたユーザ端末の台数が所定台数に到達した時点で、当該スター型のピアツーピアネットワークに接続されている複数のユーザ端末においてネットワークゲームを開始する、請求項1または4に記載のゲームネットワーク構築方法。
  8. 前記ゲーム開始ステップでは、前記ホスト端末から前記クライアント端末に向けて送信されるゲーム開始信号に応じて、当該スター型のピアツーピアネットワークに接続されている複数のユーザ端末においてネットワークゲームを開始する、請求項1に記載のゲームネットワーク構築方法。
  9. 前記ホスト端末は、当該ホスト端末に設けられた入力部からゲーム開始指示が入力されたことに応じて、前記クライアント端末に向けてゲーム開始信号を送信する、請求項8に記載のゲームネットワーク構築方法。
  10. 複数のユーザ端末で構成されるゲームネットワークシステムであって、
    各ユーザ端末は、
    複数のユーザ端末のうちの一台をホスト端末として残りをクライアント端末としたスター型のピアツーピアネットワークにホスト端末またはクライアント端末として接続する第1接続手段、
    前記スター型のピアツーピアネットワークに接続した後にネットワークゲームを開始するゲーム開始手段、
    前記スター型のピアツーピアネットワークにクライアント端末として接続した後、当該ピアツーピアネットワークに接続されている他のクライアント端末との間の接続を順次確立する第2接続手段、および、
    前記ネットワークゲームの開始後、(a)すでに接続が確立されたクライアント端末に対しては、前記ネットワークゲームの進行に必要となるゲームデータを前記ホスト端末を介さずに直接送受信し、(b)まだ接続が確立されていないクライアント端末に対しては、前記ネットワークゲームの進行に必要となるゲームデータを、前記ホスト端末の転送処理により、前記ホスト端末を介して送受信するゲームデータ送受信手段、
    を備えるゲームネットワークシステム。
JP2008025463A 2008-02-05 2008-02-05 ゲームネットワーク構築方法およびゲームネットワークシステム Active JP5260070B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2008025463A JP5260070B2 (ja) 2008-02-05 2008-02-05 ゲームネットワーク構築方法およびゲームネットワークシステム
DE602008002398T DE602008002398D1 (de) 2008-02-05 2008-03-27 Verfahren zum Aufbau eines Spielnetzwerkes und Spielnetzwerksystem
EP08005893A EP2087929B1 (en) 2008-02-05 2008-03-27 Game network construction method and game network system
US12/078,610 US8079908B2 (en) 2008-02-05 2008-04-02 Game network construction method and game network system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008025463A JP5260070B2 (ja) 2008-02-05 2008-02-05 ゲームネットワーク構築方法およびゲームネットワークシステム

Publications (2)

Publication Number Publication Date
JP2009183410A JP2009183410A (ja) 2009-08-20
JP5260070B2 true JP5260070B2 (ja) 2013-08-14

Family

ID=39885230

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008025463A Active JP5260070B2 (ja) 2008-02-05 2008-02-05 ゲームネットワーク構築方法およびゲームネットワークシステム

Country Status (4)

Country Link
US (1) US8079908B2 (ja)
EP (1) EP2087929B1 (ja)
JP (1) JP5260070B2 (ja)
DE (1) DE602008002398D1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5005210B2 (ja) * 2005-11-11 2012-08-22 任天堂株式会社 ネットワークゲームシステム、ネットワークゲームプログラムおよびネットワーク構築方法
US20100016082A1 (en) * 2008-03-20 2010-01-21 Gdi Game Domain International Plc Game user apparatus
US10524100B2 (en) 2012-09-07 2019-12-31 Samsung Electronics Co., Ltd. Electronic apparatus and method of outputting content by the electronic apparatus
KR101888650B1 (ko) * 2012-09-07 2018-08-14 삼성전자주식회사 애플리케이션 실행 방법 및 이를 위한 단말
US10382548B2 (en) * 2013-06-28 2019-08-13 Tencent Technology (Shenzhen) Company Limited Cross-terminal input method, apparatus and system

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3672341B2 (ja) * 1993-07-21 2005-07-20 富士通株式会社 通信網分離設計方式とその管理方式
JP3467773B2 (ja) * 1996-10-09 2003-11-17 株式会社セガ ゲーム装置、ゲームの処理方法及びゲーム実行方法並びにゲームシステム
US7957356B2 (en) * 2002-05-13 2011-06-07 Misomino Chi Acquisitions L.L.C. Scalable media access control for multi-hop high bandwidth communications
US7453870B2 (en) * 2002-06-12 2008-11-18 Intel Corporation Backplane for switch fabric
US6879574B2 (en) * 2002-06-24 2005-04-12 Nokia Corporation Mobile mesh Ad-Hoc networking
US20040162144A1 (en) * 2003-02-19 2004-08-19 Loose Timothy C. Communication between players at gaming terminals
US7984190B2 (en) * 2004-05-07 2011-07-19 Panasonic Avionics Corporation System and method for managing content on mobile platforms
JP3771245B2 (ja) * 2004-08-25 2006-04-26 コナミ株式会社 ゲーム装置
JP5005210B2 (ja) * 2005-11-11 2012-08-22 任天堂株式会社 ネットワークゲームシステム、ネットワークゲームプログラムおよびネットワーク構築方法
WO2007075332A2 (en) * 2005-12-23 2007-07-05 Wms Gaming Inc. Networks for use in gaming
US20070195808A1 (en) * 2006-02-17 2007-08-23 Wabash National, L.P. Wireless vehicle mesh network
US20070250613A1 (en) * 2006-04-25 2007-10-25 Sbc Knowledge Ventures, L.P. Method and apparatus for configuring a workflow
JP4910534B2 (ja) 2006-07-21 2012-04-04 パナソニック株式会社 送風機羽根車
KR100772886B1 (ko) * 2006-10-27 2007-11-05 삼성전자주식회사 네트워크 정보 제공 장치 및 방법
JP5105096B2 (ja) * 2006-11-22 2012-12-19 日本電気株式会社 通信ネットワーク、情報処理装置およびアドレス割当方法
JP2007128534A (ja) * 2006-12-11 2007-05-24 Nintendo Co Ltd 複数の情報処理装置を用いた選択肢の選択システム

Also Published As

Publication number Publication date
US20090197682A1 (en) 2009-08-06
US8079908B2 (en) 2011-12-20
DE602008002398D1 (de) 2010-10-14
JP2009183410A (ja) 2009-08-20
EP2087929B1 (en) 2010-09-01
EP2087929A1 (en) 2009-08-12

Similar Documents

Publication Publication Date Title
US10610771B2 (en) Program, method, and system of transmitting or receiving message
JP5005210B2 (ja) ネットワークゲームシステム、ネットワークゲームプログラムおよびネットワーク構築方法
CN112074330B (zh) 交互式云游戏的方法、设备和系统
KR102072233B1 (ko) 게임 세션에의 참여를 가능하게 하기 위한 방법들 및 시스템들
JP5260070B2 (ja) ゲームネットワーク構築方法およびゲームネットワークシステム
JP5468247B2 (ja) ゲームシステム
JP4850490B2 (ja) ゲームプログラムおよびゲーム装置
WO2010055720A1 (ja) 無線通信端末、その制御方法、及び情報記憶媒体
JP5301367B2 (ja) マッチング機能を備えたゲームシステム
JP5836919B2 (ja) ゲームシステム、並びにそのゲーム処理中断制御方法及びコンピュータプログラム
US20160198285A1 (en) Method And Internet Of Things System For Controlling An Electronic Device
KR20000060795A (ko) 인터넷을 이용한 다자간 게임 서비스 시스템 및 방법
JP5818752B2 (ja) ゲーム制御装置及びプログラム
WO2020162364A1 (ja) 中継ポイント割り当てサーバ、チャットシステム、クライアント端末、チャットサーバ、およびチャット空間構築方法
US8280960B2 (en) Game system, game terminal therefor, and server device therefor
KR101782863B1 (ko) 게임 데이터 저장을 위한 게임 서버, 이의 게임 데이터 저장 방법 및 이 방법이 기록된 컴퓨터로 판독 가능한 기록 매체
JP2008219431A (ja) データ配信システム及び端末装置及び情報処理方法及びプログラム。
JP2009188552A (ja) 情報配信システムにおける端末装置及びプログラム、並びに再接続処理方法
JP2009086728A (ja) オンラインゲームにおけるサーバ管理システム及びその管理方法
JP3453616B2 (ja) 通信方法、通信システム、メールサーバ、及び記録媒体
JP2008264541A (ja) ジグビー通信を利用した多者間ゲーム装置及び方法。
JP2019004931A (ja) ゲームシステム及びそれに用いるコンピュータプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110114

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110902

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20120713

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130318

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: 20130416

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130425

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

Free format text: PAYMENT UNTIL: 20160502

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5260070

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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