(57)【特許請求の範囲】
【請求項１】
通信機能を有する情報処理装置のコンピュータにおいて実行される通信制御プログラムであって、
送信先の異なる複数のデータを順次取得する取得手段、
前記取得手段が取得したデータを、所定のサイズを有する記憶手段に順次格納する格納制御手段、
前記記憶手段に格納された複数のデータを含む送信データを生成する送信データ生成手段、
前記送信データをブロードキャストまたはマルチキャストで送信する送信手段として、前記コンピュータを機能させ、
前記格納制御手段は、前記取得手段が取得したデータを前記記憶手段に格納可能か否かを判定し、
前記送信データ生成手段は、前記格納制御手段によって前記データを格納不可能と判定された場合、前記記憶手段に格納された少なくとも２つのデータと当該少なくとも２つのデータのそれぞれの送信先情報とを含む前記送信データを生成し、
前記送信手段は、前記送信データ生成手段が生成した送信データを送信する、通信制御プログラム。
【請求項２】
前記格納制御手段は、前記取得手段が取得したデータを前記記憶手段に格納不可能と判定した場合、前記送信手段によって送信されたデータを前記記憶手段から消去するとともに、当該取得手段が取得したデータを前記記憶手段に格納する、請求項１に記載の通信制御プログラム。
【請求項３】
前記記憶手段に格納されたデータを送信するための所定の条件が満たされたか否かを判定する第１判定手段として、前記コンピュータを機能させ、
前記送信データ生成手段は、前記第１判定手段によって前記所定の条件が満たされたと判定された場合、前記記憶手段に格納された少なくとも２つのデータと当該少なくとも２つのデータのそれぞれの送信先情報とを含む前記送信データを生成し、
前記送信手段は、前記送信データ生成手段が生成した送信データを送信する、請求項１又は２に記載の通信制御プログラム。
【請求項４】
前記記憶手段に格納されてから所定時間が経過したデータが存在するか否かを判定する第２判定手段として、前記コンピュータをさらに機能させ、
前記送信データ生成手段は、前記第２判定手段によって前記所定時間が経過したデータが存在すると判定された場合、前記所定時間が経過したデータを少なくとも含む前記送信データを生成し、
前記送信手段は、前記送信データ生成手段が生成した送信データを送信する、請求項１から３の何れかに記載の通信制御プログラム。
【請求項５】
前記取得手段によって取得されたデータを即時送信するか否かを判定する第３判定手段として、前記コンピュータをさらに機能させ、
前記送信データ生成手段は、前記第３判定手段によって前記データを即時送信すると判定された場合、当該データを含む前記送信データを生成し、
前記送信手段は、前記送信データ生成手段が生成した送信データを送信する、請求項１から４の何れかに記載の通信制御プログラム。
【請求項６】
前記取得手段は、他の情報処理装置から送られたデータを取得し、
前記送信データ生成手段は、前記複数のデータのそれぞれの送信元情報を前記送信データにさらに含める、請求項１から５の何れかに記載の通信制御プログラム。
【請求項７】
他の情報処理装置から送られた前記送信データを受信し、当該送信データに含まれる前記送信先情報に基づいて、少なくとも自機宛のデータを取り出すデータ取り出し手段として、前記コンピュータをさらに機能させる、請求項１から６の何れかに記載の通信制御プログラム。
【請求項８】
前記格納制御手段は、前記取得手段が取得したデータを第１記憶領域または第２記憶領域に格納し、
前記送信データ生成手段は、前記第１記憶領域および前記第２記憶領域の何れか一方に格納された少なくとも２つのデータを含む前記送信データを生成する、請求項１から７の何れかに記載の通信制御プログラム。
【請求項９】
前記取得手段が取得する各データは、送信先で処理可能なひとまとまりのデータである、請求項１から８の何れかに記載の通信制御プログラム。
【請求項１０】
前記送信データ生成手段は、前記送信先情報をフレームのデータ部分に含めて前記送信データを生成する、請求項１から９の何れかに記載の通信制御プログラム。
【請求項１１】
前記送信データ生成手段は、前記送信元情報をフレームのデータ部分に含めて前記送信データを生成する、請求項６に記載の通信制御プログラム。
【請求項１２】
送信先の異なる複数のデータを順次取得する取得手段と、
前記取得手段が取得したデータを、所定のサイズを有する記憶手段に順次格納する格納制御手段と、
前記記憶手段に格納された複数のデータを含む送信データを生成する送信データ生成手段と、
前記送信データをブロードキャストまたはマルチキャストで送信する送信手段とを備え、
前記格納制御手段は、前記取得手段が取得したデータを前記記憶手段に格納可能か否かを判定し、
前記送信データ生成手段は、前記格納制御手段によって前記データを格納不可能と判定された場合、前記記憶手段に格納された少なくとも２つのデータと当該少なくとも２つのデータのそれぞれの送信先情報とを含む前記送信データを生成し、
前記送信手段は、前記送信データ生成手段が生成した送信データを送信する、通信制御装置。
【請求項１３】
送信先の異なる複数のデータを順次取得する取得ステップと、
前記取得ステップで取得したデータを、所定のサイズを有する記憶手段に順次格納する格納制御ステップと、
前記記憶手段に格納された複数のデータを含む送信データを生成する送信データ生成ステップと、
前記送信データをブロードキャストまたはマルチキャストで送信する送信ステップとを含み、
前記格納制御ステップは、前記取得ステップで取得したデータを前記記憶手段に格納可能か否かを判定し、
前記送信データ生成ステップは、前記格納制御ステップで前記データを格納不可能と判定された場合、前記記憶手段に格納された少なくとも２つのデータと当該少なくとも２つのデータのそれぞれの送信先情報とを含む前記送信データを生成し、
前記送信ステップは、前記送信データ生成ステップが生成した送信データを送信する、通信制御方法。
【請求項１４】
通信機能を有する第１情報処理装置と第２情報処理装置とを含む情報処理システムであって、
前記第１情報処理装置は、
送信先の異なる複数のデータを順次取得する取得手段と、
前記取得手段が取得したデータを、所定のサイズを有する記憶手段に順次格納する格納制御手段と、
前記記憶手段に格納された複数のデータを含む送信データを生成する送信データ生成手段と、
前記送信データをブロードキャストまたはマルチキャストで送信する送信手段とを含み、
前記格納制御手段は、前記取得手段が取得したデータを前記記憶手段に格納可能か否かを判定し、
前記送信データ生成手段は、前記格納制御手段によって前記データを格納不可能と判定された場合、前記記憶手段に格納された少なくとも２つのデータと当該少なくとも２つのデータのそれぞれの送信先情報とを含む前記送信データを生成し、
前記送信手段は、前記送信データ生成手段が生成した送信データを送信し、
前記第２情報処理装置は、
前記送信データを受信し、少なくとも当該送信データに含まれる自機宛のデータを取り出すデータ取り出し手段を含む、情報処理システム。
【請求項１５】
通信機能を有する情報処理装置のコンピュータにおいて実行される通信制御プログラムであって、
送信先の異なる複数のデータを順次取得する取得手段、
前記取得手段が取得したデータを、所定のサイズを有する記憶手段に順次格納する格納制御手段、
前記記憶手段に格納された複数のデータを含む送信データを生成する送信データ生成手段、
所定の宛先アドレスを指定して前記送信データを送信する送信手段として、前記コンピュータを機能させ、
前記格納制御手段は、前記取得手段が取得したデータを前記記憶手段に格納可能か否かを判定し、
前記送信データ生成手段は、前記格納制御手段によって前記データを格納不可能と判定された場合、前記記憶手段に格納された少なくとも２つのデータと当該少なくとも２つのデータのそれぞれの送信先情報とを含む前記送信データを生成し、
前記送信手段は、前記送信データ生成手段が生成した送信データを送信する、通信制御プログラム。
【請求項１６】
送信先の異なる複数のデータを順次取得する取得手段と、
前記取得手段が取得したデータを、所定のサイズを有する記憶手段に順次格納する格納制御手段と、
前記記憶手段に格納された複数のデータを含む送信データを生成する送信データ生成手段と、
所定の宛先アドレスを指定して前記送信データを送信する送信手段とを備え、
前記格納制御手段は、前記取得手段が取得したデータを前記記憶手段に格納可能か否かを判定し、
前記送信データ生成手段は、前記格納制御手段によって前記データを格納不可能と判定された場合、前記記憶手段に格納された少なくとも２つのデータと当該少なくとも２つのデータのそれぞれの送信先情報とを含む前記送信データを生成し、
前記送信手段は、前記送信データ生成手段が生成した送信データを送信する、通信制御装置。
【請求項１７】
送信先の異なる複数のデータを順次取得する取得ステップと、
前記取得ステップで取得したデータを、所定のサイズを有する記憶手段に順次格納する格納制御ステップと、
前記記憶手段に格納された複数のデータを含む送信データを生成する送信データ生成ステップと、
所定の宛先アドレスを指定して前記送信データを送信する送信ステップとを備え、
前記格納制御ステップは、前記取得ステップで取得したデータを前記記憶手段に格納可能か否かを判定し、
前記送信データ生成ステップは、前記格納制御ステップで前記データを格納不可能と判定された場合、前記記憶手段に格納された少なくとも２つのデータと当該少なくとも２つのデータのそれぞれの送信先情報とを含む前記送信データを生成し、
前記送信ステップは、前記送信データ生成手段が生成した送信データを送信する、通信制御方法。
【請求項１８】
通信機能を有する第１情報処理装置と第２情報処理装置とを含む情報処理システムであって、
前記第１情報処理装置は、
送信先の異なる複数のデータを順次取得する取得手段と、
前記取得手段が取得したデータを、所定のサイズを有する記憶手段に順次格納する格納制御手段と、
前記記憶手段に格納された複数のデータを含む送信データを生成する送信データ生成手段と、
所定の宛先アドレスを指定して前記送信データを送信する送信手段とを含み、
前記格納制御手段は、前記取得手段が取得したデータを前記記憶手段に格納可能か否かを判定し、
前記送信データ生成手段は、前記格納制御手段によって前記データを格納不可能と判定された場合、前記記憶手段に格納された少なくとも２つのデータと当該少なくとも２つのデータのそれぞれの送信先情報とを含む前記送信データを生成し、
前記送信手段は、前記送信データ生成手段が生成した送信データを送信し、
前記第２情報処理装置は、
前記送信データを受信し、少なくとも当該送信データに含まれる自機宛のデータを取り出すデータ取り出し手段を含む、情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のデータを効率よく送信する通信制御装置、通信制御プログラム、通信制御方法、および、情報処理システムに関する。
【背景技術】
【０００２】
従来、複数のデータを１つのフレームに含めて送信する装置が存在する。例えば、特許文献１では、送信側は１つのフレームに１つの受信側において用いられる複数のデータを含めて送信し、受信側は当該フレームを受信する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−２５６２４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の装置では、上記複数のデータの送信先は単一の受信側に限られる。
【０００５】
それ故、本発明の目的は、送信先の異なる複数のデータを効率よく送信することが可能な通信制御装置、通信制御プログラム、通信制御方法、および、情報処理システムを提供することである。
【課題を解決するための手段】
【０００６】
本発明は、上記の課題を解決するために、以下の構成を採用した。
【０００７】
本発明は、通信機能を有する情報処理装置のコンピュータにおいて実行される通信制御プログラムである。通信制御プログラムは、上記コンピュータを、送信データ生成手段と、送信手段として機能させる。送信データ生成手段は、送信先の異なる複数のデータを含む送信データを生成する。送信手段は、上記送信データをブロードキャストまたはマルチキャストで送信する。
【０００８】
上記によれば、送信先の異なる複数のデータをまとめて送信することができる。これにより、個々のデータを別々に送信するよりも、効率よく複数のデータを複数の機器に対して送信することができる。
【０００９】
本発明の他の構成では、上記送信データ生成手段は、各データごとの送信先情報を上記送信データに含ませてもよい。
【００１０】
上記によれば、各データに加えて当該各データの送信先情報を送信することができる。
【００１１】
本発明の他の構成では、通信制御プログラムは、取得手段と、格納制御手段としてさらに機能させてもよい。取得手段は、上記複数のデータを順次取得する。格納制御手段は、上記取得手段が取得したデータを記憶手段に順次格納する。上記送信データ生成手段は、上記記憶手段に格納された少なくとも２つのデータと当該少なくとも２つのデータのそれぞれの送信先情報とを含む上記送信データを生成する。
【００１２】
上記によれば、順次取得されたデータを一時的に記憶手段に格納し、格納した複数のデータをまとめて送信することができる。
【００１３】
本発明の他の構成では、上記通信制御プログラムは、上記記憶手段に格納されたデータを送信するための所定の条件が満たされたか否かを判定する第１判定手段として、上記コンピュータを機能させてもよい。上記送信データ生成手段は、上記第１判定手段によって上記所定の条件が満たされたと判定された場合、上記記憶手段に格納された少なくとも２つのデータと当該少なくとも２つのデータのそれぞれの送信先情報とを含む上記送信データを生成する。上記送信手段は、上記送信データ生成手段が生成した送信データを送信する。
【００１４】
上記によれば、所定の条件が満たされた場合、記憶手段に格納されたデータを送信することができる。これにより、例えば、データが遅延することを防止することができる。
【００１５】
本発明の他の構成では、上記通信制御プログラムは、上記記憶手段に格納されてから所定時間が経過したデータが存在するか否かを判定する第２判定手段として、上記コンピュータをさらに機能させてもよい。上記送信データ生成手段は、上記第２判定手段によって上記所定時間が経過したデータが存在すると判定された場合、上記所定時間が経過したデータを少なくとも含む上記送信データを生成する。上記送信手段は、上記送信データ生成手段が生成した送信データを送信する。
【００１６】
上記によれば、データが格納されてから所定時間が経過すると当該データは送信される。これにより、データの遅延を防止することができる。
【００１７】
本発明の他の構成では、上記記憶手段は、所定のサイズを有し、上記格納制御手段は、上記取得手段が取得したデータを上記記憶手段に格納可能か否かを判定する。上記送信データ生成手段は、上記格納制御手段によって上記データを格納不可能と判定された場合、上記記憶手段に格納された少なくとも２つのデータと当該少なくとも２つのデータのそれぞれの送信先情報とを含む上記送信データを生成する。上記送信手段は、上記送信データ生成手段が生成した送信データを送信する。
【００１８】
上記によれば、例えば、記憶手段の空き容量が小さくデータを記憶することができない場合、記憶手段に格納したデータを送信することができる。ある程度まとまった複数のデータをまとめて送信することができ、データを効率的に送信することができる。
【００１９】
本発明の他の構成では、上記通信制御プログラムは、上記取得手段によって取得されたデータを即時送信するか否かを判定する第３判定手段として、上記コンピュータをさらに機能させてもよい。上記送信データ生成手段は、上記第３判定手段によって上記データを即時送信すると判定された場合、当該データを含む上記送信データを生成する。上記送信手段は、上記送信データ生成手段が生成した送信データを送信する。
【００２０】
上記によれば、取得したデータを即時に送信することができる。これにより、例えば、遅延させたくないデータを即時に送信することができる。
【００２１】
本発明の他の構成では、上記取得手段は、他の情報処理装置から送られたデータを取得してもよい。上記送信データ生成手段は、上記複数のデータのそれぞれの送信元情報を上記送信データにさらに含める。
【００２２】
上記によれば、他の装置から送信されたデータに送信元情報を含めて送信することができる。
【００２３】
本発明の他の構成では、上記通信制御プログラムは、他の情報処理装置から送られた上記送信データを受信し、当該送信データに含まれる上記送信先情報に基づいて、少なくとも自機宛のデータを取り出すデータ取り出し手段として、上記コンピュータをさらに機能させてもよい。
【００２４】
上記によれば、他の装置から送信された送信データに含まれる複数のデータのうち、少なくとも自機宛のデータを取り出すことができる。
【００２５】
本発明の他の構成では、上記格納制御手段は、上記取得手段が取得したデータを第１記憶領域または第２記憶領域に格納してもよい。上記送信データ生成手段は、上記第１記憶領域および上記第２記憶領域の何れか一方に格納された少なくとも２つのデータを含む上記送信データを生成する。
【００２６】
上記によれば、取得したデータを異なる２つの記憶領域に格納することができる。
【００２７】
本発明の他の構成では、上記取得手段が取得する各データは、送信先で処理可能なひとまとまりのデータであってもよい。
【００２８】
上記によれば、送信先で処理可能なひとまとまりのデータを複数取得して、当該複数のデータをまとめて送信することができる。これにより、効率よくデータを送信することができる。
【００２９】
本発明の他の構成では、上記送信データ生成手段は、上記送信先情報をフレームのデータ部分に含て上記送信データを生成してもよい。
【００３０】
上記によれば、上記送信先情報をフレームのデータ部分に含めることができる。
【００３１】
本発明の他の構成では、上記送信データ生成手段は、上記送信元情報をフレームのデータ部分に含めて上記送信データを生成してもよい。
【００３２】
上記によれば、上記送信元情報をフレームのデータ部分に含めることができる。
【００３３】
また、本発明は、上記通信制御プログラムを実行する通信制御装置の形態で実施されてもよい。また、本発明は、通信制御方法であってもよい。
【００３４】
本発明の他の構成は、通信機能を有する第１情報処理装置と第２情報処理装置とを含む情報処理システムである。上記第１情報処理装置は、送信データ生成手段と、送信手段とを含む。送信データ生成手段は、送信先の異なる複数のデータを含む送信データを生成する。送信手段は、上記送信データをブロードキャストまたはマルチキャストで送信する。また、上記第２情報処理装置は、上記送信データを受信し、少なくとも当該送信データに含まれる自機宛のデータを取り出すデータ取り出し手段を含む。
【００３５】
上記によれば、第１情報処理装置は、送信先の異なる複数のデータをまとめて複数の機器に送信することができ、効率よく複数のデータを送信することができる。また、第２情報処理装置は、上記送信データを受信して自機宛のデータを取り出すことができる。
【００３６】
本発明の他の構成は、通信機能を有する情報処理装置のコンピュータにおいて実行される通信制御プログラムである。当該通信制御プログラムは、前記コンピュータを、送信データ生成手段と、送信手段として機能させる。送信データ生成手段は、送信先の異なる複数のデータを含む送信データを生成する。送信手段は、所定の宛先アドレスを指定して前記送信データを送信する。
【００３７】
上記によれば、例えば、所定の宛先アドレスとしてブロードキャストアドレスが指定された場合、上記複数のデータをネットワーク全体に送信することができる。また、例えば、所定の宛先アドレスとしてユニキャストアドレスが指定された場合、上記複数のデータを１つの機器に送信することができる。
【発明の効果】
【００３８】
本発明によれば、送信先の異なる複数のデータを効率よく送信することができる。
【図面の簡単な説明】
【００３９】
【図１】開状態におけるゲーム装置１０の正面図
【図２】閉状態におけるゲーム装置１０の左側面図、正面図、右側面図および背面図
【図３】ゲーム装置１０の内部構成を示すブロック図
【図４】本実施形態に係るゲームが実行される際に複数のゲーム装置１０によって構成されるネットワークを示す図
【図５】本実施形態に係るゲームが実行された場合にゲーム装置の上側ＬＣＤ２２に表示される画像の一例を示す図
【図６】マスターにおいて生成されるクライアントの登録テーブル８０を示す図
【図７】各ゲーム装置１０のメモリ（メインメモリ３２や無線通信モジュール３６内のメモリ等）のメモリマップを示す図
【図８】各ゲーム装置１０において実行される設定処理の流れを示すフローチャート
【図９】マスターによって定期的に送信されるビーコンのフレームフォーマットを示す図
【図１０】ステップＳ５において画面に表示される画像の一例を示す図
【図１１】マスターとして機能するゲーム装置１０の処理（マスター処理）の詳細を示すフローチャート
【図１２】クライアントとして機能するゲーム装置１０の処理（クライアント処理）の詳細を示すフローチャート
【図１３】オーディエンスとして機能するゲーム装置１０の処理（オーディエンス処理）の詳細を示すフローチャート
【図１４】各ゲーム装置１０の状態の遷移を示す図
【図１５】マスターのデータ送信処理の概要を示す図
【図１６】マスターから送信されたフレームをクライアントが受信した場合、クライアントで行われる受信処理の概要を示す図
【図１７】マスターにおいて行われるデータ送信処理（マスター）の詳細を示すフローチャート
【図１８】クライアントにおいて行われるデータ送信処理（クライアント）の詳細を示すフローチャート
【図１９】クライアントにおいて行われるデータ受信処理の詳細を示すフローチャート
【図２０】オーディエンスにおいて行われるデータ受信処理（オーディエンス）の詳細を示すフローチャート
【図２１】マスターにおいて行われるデータ受信処理（マスター）の詳細を示すフローチャート
【図２２】マスターを経由してクライアントＣ１から全端末にデータが送信される様子を示す図
【図２３】クライアントＣ１から直接全端末にデータを送信する様子を示す図
【発明を実施するための形態】
【００４０】
（ゲーム装置の構成）
以下、本発明の一実施形態に係るゲーム装置について説明する。図１は、開状態におけるゲーム装置１０の外観を示す正面図である。図２（ａ）は閉状態におけるゲーム装置１０の左側面図であり、図２（ｂ）は閉状態におけるゲーム装置１０の正面図であり、図２（ｃ）は閉状態におけるゲーム装置１０の右側面図であり、図２（ｄ）は閉状態におけるゲーム装置１０の背面図である。ゲーム装置１０は携帯型のゲーム装置であり、図１および図２に示すように折り畳み可能に構成されている。図１は、開いた状態（開状態）におけるゲーム装置１０を示し、図２は、閉じた状態（閉状態）におけるゲーム装置１０を示している。ゲーム装置１０は、撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置１０は、交換可能なメモリカード内に記憶され、または、サーバや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像などのコンピュータグラフィックス処理により生成された画像を画面に表示したりすることができる。
【００４１】
まず、図１および図２を参照して、ゲーム装置１０の外観構成について説明する。図１および図２に示されるように、ゲーム装置１０は、下側ハウジング１１および上側ハウジング２１を有する。下側ハウジング１１と上側ハウジング２１とは、開閉可能（折り畳み可能）に接続されている。
【００４２】
（下側ハウジングの説明）
まず、下側ハウジング１１の構成について説明する。図１および図２に示すように、下側ハウジング１１には、下側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１２、タッチパネル１３、各操作ボタン１４Ａ〜１４Ｌ、アナログスティック１５、ＬＥＤ１６Ａ〜１６Ｂ、挿入口１７、および、マイクロフォン用孔１８が設けられる。以下、これらの詳細について説明する。
【００４３】
図１に示すように、下側ＬＣＤ１２は下側ハウジング１１に収納される。下側ＬＣＤ１２の画素数は、例えば、３２０ｄｏｔ×２４０ｄｏｔ（横×縦）であってもよい。下側ＬＣＤ１２は、後述する上側ＬＣＤ２２とは異なり、画像を（立体視可能ではなく）平面的に表示する表示装置である。なお、本実施形態では表示装置としてＬＣＤを用いているが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側ＬＣＤ１２として、任意の解像度の表示装置を利用することができる。
【００４４】
図１に示されるように、ゲーム装置１０は、入力装置として、タッチパネル１３を備えている。タッチパネル１３は、下側ＬＣＤ１２の画面上に装着されている。なお、本実施形態では、タッチパネル１３は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。本実施形態では、タッチパネル１３として、下側ＬＣＤ１２の解像度と同解像度（検出精度）のものを利用する。ただし、必ずしもタッチパネル１３の解像度と下側ＬＣＤ１２の解像度が一致している必要はない。また、下側ハウジング１１の上側面には挿入口１７（図１および図２（ｄ）に示す点線）が設けられている。挿入口１７は、タッチパネル１３に対する操作を行うために用いられるタッチペン２８を収納することができる。なお、タッチパネル１３に対する入力は通常タッチペン２８を用いて行われるが、タッチペン２８に限らずユーザの指でタッチパネル１３に対する入力をすることも可能である。
【００４５】
各操作ボタン１４Ａ〜１４Ｌは、所定の入力を行うための入力装置である。図１に示されるように、下側ハウジング１１の内側面（主面）には、各操作ボタン１４Ａ〜１４Ｌのうち、十字ボタン１４Ａ（方向入力ボタン１４Ａ）、ボタン１４Ｂ、ボタン１４Ｃ、ボタン１４Ｄ、ボタン１４Ｅ、電源ボタン１４Ｆ、セレクトボタン１４Ｊ、ＨＯＭＥボタン１４Ｋ、およびスタートボタン１４Ｌが、設けられる。十字ボタン１４Ａは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン１４Ａ〜１４Ｅ、セレクトボタン１４Ｊ、ＨＯＭＥボタン１４Ｋ、およびスタートボタン１４Ｌには、ゲーム装置１０が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン１４Ａは選択操作等に用いられ、各操作ボタン１４Ｂ〜１４Ｅは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン１４Ｆは、ゲーム装置１０の電源をオン／オフするために用いられる。
【００４６】
アナログスティック１５は、方向を指示するデバイスである。アナログスティック１５は、そのキートップが、下側ハウジング１１の内側面に平行にスライドするように構成されている。アナログスティック１５は、ゲーム装置１０が実行するプログラムに応じて機能する。例えば、３次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置１０によって実行される場合、アナログスティック１５は、当該所定のオブジェクトを３次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトはアナログスティック１５のキートップがスライドした方向に移動される。なお、アナログスティック１５として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いても良い。
【００４７】
また、下側ハウジング１１の内側面には、マイクロフォン用孔１８が設けられる。マイクロフォン用孔１８の下部には後述する音声入力装置としてのマイク４２（図３参照）が設けられ、当該マイク４２がゲーム装置１０の外部の音を検出する。
【００４８】
図２（ｂ）および（ｄ）に示されるように、下側ハウジング１１の上側面には、Ｌボタン１４ＧおよびＲボタン１４Ｈが設けられている。Ｌボタン１４ＧおよびＲボタン１４Ｈは、例えば、撮像部のシャッターボタン（撮影指示ボタン）として機能することができる。また、図２（ａ）に示されるように、下側ハウジング１１の左側面には、音量ボタン１４Ｉが設けられる。音量ボタン１４Ｉは、ゲーム装置１０が備えるスピーカの音量を調整するために用いられる。
【００４９】
図２（ａ）に示されるように、下側ハウジング１１の左側面には開閉可能なカバー部１１Ｃが設けられる。このカバー部１１Ｃの内側には、ゲーム装置１０とデータ保存用外部メモリ４５とを電気的に接続するためのコネクタ（図示せず）が設けられる。データ保存用外部メモリ４５は、コネクタに着脱自在に装着される。データ保存用外部メモリ４５は、例えば、ゲーム装置１０によって撮像された画像のデータを記憶（保存）するために用いられる。
【００５０】
また、図２（ｄ）に示されるように、下側ハウジング１１の上側面には、ゲーム装置１０とゲームプログラムを記録した外部メモリ４４を挿入するための挿入口１１Ｄが設けられ、その挿入口１１Ｄの内部には、外部メモリ４４と電気的に着脱自在に接続するためのコネクタ（図示せず）が設けられる。当該外部メモリ４４がゲーム装置１０に接続されることにより、所定のゲームプログラムが実行される。
【００５１】
また、図１および図２（ｃ）に示されるように、下側ハウジング１１の下側面にはゲーム装置１０の電源のＯＮ／ＯＦＦ状況をユーザに通知する第１ＬＥＤ１６Ａ、下側ハウジング１１の右側面にはゲーム装置１０の無線通信の確立状況をユーザに通知する第２ＬＥＤ１６Ｂが設けられる。ゲーム装置１０は他の機器との間で無線通信を行うことが可能であり、第２ＬＥＤ１６Ｂは、無線通信の機能が有効である場合に点灯する。ゲーム装置１０は、例えば、ＩＥＥＥ８０２．１１ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。下側ハウジング１１の右側面には、この無線通信の機能を有効／無効にする無線スイッチ１９が設けられる（図２（ｃ）参照）。
【００５２】
なお、図示は省略するが、下側ハウジング１１には、ゲーム装置１０の電源となる充電式電池が収納され、下側ハウジング１１の側面（例えば、上側面）に設けられた端子を介して当該電池を充電することができる。
【００５３】
（上側ハウジングの説明）
次に、上側ハウジング２１の構成について説明する。図１および図２に示すように、上側ハウジング２１には、上側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）２２、外側撮像部２３（外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂ）、内側撮像部２４、３Ｄ調整スイッチ２５、および、３Ｄインジケータ２６が設けられる。以下、これらの詳細について説明する。
【００５４】
図１に示すように、上側ＬＣＤ２２は上側ハウジング２１に収納される。上側ＬＣＤ２２の画素数は、例えば、８００ｄｏｔ×２４０ｄｏｔ（横×縦）であってもよい。なお、本実施形態では上側ＬＣＤ２２は液晶表示装置であるとしたが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置などが利用されてもよい。また、上側ＬＣＤ２２として、任意の解像度の表示装置を利用することができる。
【００５５】
上側ＬＣＤ２２は、立体視可能な画像を表示することが可能な表示装置である。また、本実施例では、実質的に同一の表示領域を用いて左目用画像と右目用画像が表示される。具体的には、左目用画像と右目用画像が所定単位で（例えば、１列ずつ）横方向に交互に表示される方式の表示装置である。または、左目用画像と右目用画像とが時間的に交互に表示され、メガネを用いてユーザの左目に左目用画像が右目に右目用画像が視認される方式の表示装置であってもよい。本実施例では、裸眼立体視可能な表示装置である。そして、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式（視差バリア方式）のものが用いられる。本実施形態では、上側ＬＣＤ２２はパララックスバリア方式のものとする。上側ＬＣＤ２２は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像（立体画像）を表示する。すなわち、上側ＬＣＤ２２は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像を視認させることにより、ユーザにとって立体感のある立体画像（立体視可能な画像）を表示することができる。また、上側ＬＣＤ２２は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる（上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである）。このように、上側ＬＣＤ２２は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する（平面視画像を表示する）平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する３Ｄ調整スイッチ２５によって行われる。
【００５６】
外側撮像部２３は、上側ハウジング２１の外側面（上側ＬＣＤ２２が設けられた主面と反対側の背面）２１Ｄに設けられた２つの撮像部（２３ａおよび２３ｂ）の総称である。外側撮像部（左）２３ａと外側撮像部（右）２３ｂの撮像方向は、いずれも当該外側面２１Ｄの外向きの法線方向である。外側撮像部（左）２３ａと外側撮像部（右）２３ｂとは、ゲーム装置１０が実行するプログラムによって、ステレオカメラとして使用することが可能である。外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂは、それぞれ所定の共通の解像度を有する撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【００５７】
内側撮像部２４は、上側ハウジング２１の内側面（主面）２１Ｂに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部２４は、所定の解像度を有する撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【００５８】
３Ｄ調整スイッチ２５は、スライドスイッチであり、上述のように上側ＬＣＤ２２の表示モードを切り替えるために用いられるスイッチである。また、３Ｄ調整スイッチ２５は、上側ＬＣＤ２２に表示された立体視可能な画像（立体画像）の立体感を調整するために用いられる。３Ｄ調整スイッチ２５のスライダ２５ａは、所定方向（上下方向）の任意の位置にスライド可能であり、当該スライダ２５ａの位置に応じて上側ＬＣＤ２２の表示モードが設定される。また、スライダ２５ａの位置に応じて、立体画像の見え方が調整される。具体的には、スライダ２５ａの位置に応じて、右目用画像および左目用画像の横方向の位置のずれ量が調整される。
【００５９】
３Ｄインジケータ２６は、上側ＬＣＤ２２が立体表示モードか否かを示す。３Ｄインジケータ２６は、ＬＥＤであり、上側ＬＣＤ２２の立体表示モードが有効の場合に点灯する。なお、３Ｄインジケータ２６は、上側ＬＣＤ２２が立体表示モードになっており、かつ、立体視画像を表示するプログラム処理が実行されているときに限り、点灯するようにしてもよい。
【００６０】
また、上側ハウジング２１の内側面には、スピーカ孔２１Ｅが設けられる。後述するスピーカ４３からの音声がこのスピーカ孔２１Ｅから出力される。
【００６１】
（ゲーム装置１０の内部構成）
次に、図３を参照して、ゲーム装置１０の内部の電気的構成について説明する。図３は、ゲーム装置１０の内部構成を示すブロック図である。図３に示すように、ゲーム装置１０は、上述した各部に加えて、情報処理部３１、メインメモリ３２、外部メモリインターフェイス（外部メモリＩ／Ｆ）３３、データ保存用外部メモリＩ／Ｆ３４、データ保存用内部メモリ３５、無線通信モジュール３６、リアルタイムクロック（ＲＴＣ）３８、加速度センサ３９、電源回路４０、およびインターフェイス回路（Ｉ／Ｆ回路）４１等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング１１（または上側ハウジング２１でもよい）内に収納される。
【００６２】
情報処理部３１は、所定のプログラムを実行するためのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１１、画像処理を行うＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１２等を含む情報処理手段である。情報処理部３１のＣＰＵ３１１は、ゲーム装置１０内のメモリ（例えば外部メモリＩ／Ｆ３３に接続された外部メモリ４４やデータ保存用内部メモリ３５）に記憶されているプログラムを実行することによって、当該プログラムに応じた処理を実行する。なお、情報処理部３１のＣＰＵ３１１によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部３１は、ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）３１３を含む。情報処理部３１のＧＰＵ３１２は、情報処理部３１のＣＰＵ３１１からの命令に応じて画像を生成し、ＶＲＡＭ３１３に描画する。そして、情報処理部３１のＧＰＵ３１２は、ＶＲＡＭ３１３に描画された画像を上側ＬＣＤ２２及び／又は下側ＬＣＤ１２に出力し、上側ＬＣＤ２２及び／又は下側ＬＣＤ１２に当該画像が表示される。
【００６３】
情報処理部３１には、メインメモリ３２、外部メモリＩ／Ｆ３３、データ保存用外部メモリＩ／Ｆ３４、および、データ保存用内部メモリ３５が接続される。外部メモリＩ／Ｆ３３は、外部メモリ４４を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリＩ／Ｆ３４は、データ保存用外部メモリ４５を着脱自在に接続するためのインターフェイスである。
【００６４】
メインメモリ３２は、情報処理部３１（のＣＰＵ３１１）のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ３２は、上記プログラムに基づく処理に用いられる各種データを一時的に記憶したり、外部（外部メモリ４４や他の機器等）から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ３２として例えばＰＳＲＡＭ（Ｐｓｅｕｄｏ−ＳＲＡＭ）を用いる。
【００６５】
外部メモリ４４は、情報処理部３１によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ４４は、例えば読み取り専用の半導体メモリで構成される。外部メモリ４４が外部メモリＩ／Ｆ３３に接続されると、情報処理部３１は外部メモリ４４に記憶されたプログラムを読み込むことができる。情報処理部３１が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ４５は、不揮発性の読み書き可能なメモリ（例えばＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ４５には、外側撮像部２３で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ４５がデータ保存用外部メモリＩ／Ｆ３４に接続されると、情報処理部３１はデータ保存用外部メモリ４５に記憶された画像を読み込み、上側ＬＣＤ２２及び／又は下側ＬＣＤ１２に当該画像を表示することができる。
【００６６】
データ保存用内部メモリ３５は、読み書き可能な不揮発性メモリ（例えばＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ３５には、無線通信モジュール３６を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【００６７】
無線通信モジュール３６は、例えばＩＥＥＥ８０２．１１ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。無線通信モジュール３６は情報処理部３１に接続される。情報処理部３１は、無線通信モジュール３６を用いてインターネットを介して他の機器との間でデータを送受信したりすることができる。なお、無線通信モジュール３６は、ＩＥＥＥ８０２．１１ｂ／ｇ規格以外の独自の通信方式をサポートしてもよい。
【００６８】
また、情報処理部３１には、加速度センサ３９が接続される。加速度センサ３９は、３軸（ｘｙｚ軸）方向に沿った直線方向の加速度（直線加速度）の大きさを検出する。加速度センサ３９は、下側ハウジング１１の内部に設けられる。加速度センサ３９は、図１に示すように、下側ハウジング１１の長辺方向をｘ軸、下側ハウジング１１の短辺方向をｙ軸、下側ハウジング１１の内側面（主面）に対して垂直な方向をｚ軸として、各軸の直線加速度の大きさを検出する。なお、加速度センサ３９は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ３９は１軸又は２軸方向を検出する加速度センサであってもよい。情報処理部３１は、加速度センサ３９が検出した加速度を示すデータ（加速度データ）を受信して、ゲーム装置１０の姿勢や動きを検出することができる。
【００６９】
また、情報処理部３１には、ＲＴＣ３８および電源回路４０が接続される。ＲＴＣ３８は、時間をカウントして情報処理部３１に出力する。情報処理部３１は、ＲＴＣ３８によって計時された時間に基づき現在時刻（日付）を計算する。電源回路４０は、ゲーム装置１０が有する電源（下側ハウジング１１に収納される上記充電式電池）からの電力を制御し、ゲーム装置１０の各部品に電力を供給する。
【００７０】
また、情報処理部３１には、Ｉ／Ｆ回路４１が接続される。Ｉ／Ｆ回路４１には、マイク４２およびスピーカ４３が接続される。具体的には、Ｉ／Ｆ回路４１には、図示しないアンプを介してスピーカ４３が接続される。マイク４２は、ユーザの音声を検知して音声信号をＩ／Ｆ回路４１に出力する。アンプは、Ｉ／Ｆ回路４１からの音声信号を増幅し、音声をスピーカ４３から出力させる。また、タッチパネル１３はＩ／Ｆ回路４１に接続される。Ｉ／Ｆ回路４１は、マイク４２およびスピーカ４３（アンプ）の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するＡ／Ｄ変換およびＤ／Ａ変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル１３からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部３１に出力する。タッチ位置データは、タッチパネル１３の入力面において入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル１３からの信号の読み込み、および、タッチ位置データの生成を所定時間に１回の割合で行う。情報処理部３１は、タッチ位置データを取得することにより、タッチパネル１３に対して入力が行われた位置を知ることができる。
【００７１】
操作ボタン１４は、上記各操作ボタン１４Ａ〜１４Ｌからなり、情報処理部３１に接続される。操作ボタン１４から情報処理部３１へは、各操作ボタン１４Ａ〜１４Ｉに対する入力状況（押下されたか否か）を示す操作データが出力される。情報処理部３１は、操作ボタン１４から操作データを取得することによって、操作ボタン１４に対する入力に従った処理を実行する。
【００７２】
下側ＬＣＤ１２および上側ＬＣＤ２２は情報処理部３１に接続される。下側ＬＣＤ１２および上側ＬＣＤ２２は、情報処理部３１（のＧＰＵ３１２）の指示に従って画像を表示する。本実施形態では、情報処理部３１は、上側ＬＣＤ２２に立体画像（立体視可能な画像）を表示させる。
【００７３】
具体的には、情報処理部３１は、上側ＬＣＤ２２のＬＣＤコントローラ（図示せず）と接続され、当該ＬＣＤコントローラに対して視差バリアのＯＮ／ＯＦＦを制御する。上側ＬＣＤ２２の視差バリアがＯＮになっている場合、情報処理部３１のＶＲＡＭ３１３に格納された右目用画像と左目用画像とが、上側ＬＣＤ２２に出力される。より具体的には、ＬＣＤコントローラは、右目用画像について縦方向に１ライン分の画素データを読み出す処理と、左目用画像について縦方向に１ライン分の画素データを読み出す処理とを交互に繰り返すことによって、ＶＲＡＭ３１３から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に１ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側ＬＣＤ２２の画面に表示される。そして、上側ＬＣＤ２２の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側ＬＣＤ２２の画面には立体視可能な画像が表示される。
【００７４】
外側撮像部２３および内側撮像部２４は、情報処理部３１に接続される。外側撮像部２３および内側撮像部２４は、情報処理部３１の指示に従って画像を撮像し、撮像した画像データを情報処理部３１に出力する。
【００７５】
３Ｄ調整スイッチ２５は、情報処理部３１に接続される。３Ｄ調整スイッチ２５は、スライダ２５ａの位置に応じた電気信号を情報処理部３１に送信する。
【００７６】
また、３Ｄインジケータ２６は、情報処理部３１に接続される。情報処理部３１は、３Ｄインジケータ２６の点灯を制御する。例えば、情報処理部３１は、上側ＬＣＤ２２が立体表示モードである場合、３Ｄインジケータ２６を点灯させる。
【００７７】
また、情報処理部３１には、角速度センサ４６が接続される。角速度センサ４６は、各軸（ｘ軸、ｙ軸、ｚ軸）周りの角速度を検出する。ゲーム装置１０は、角速度センサ４６が逐次検出する角速度に基づいて、実空間におけるゲーム装置１０の姿勢を算出することができる。具体的には、ゲーム装置１０は、角速度センサ４６によって検出された各軸周りの角速度を時間で積分することによって、各軸周りのゲーム装置１０の回転角を算出することができる。以上がゲーム装置１０の内部構成の説明である。
【００７８】
（通信処理の概要）
次に、図面を参照して、本発明の一実施形態に係る通信処理の概要について説明する。ゲーム装置１０は、無線通信モジュール３６によって例えばＩＥＥＥ８０２．１１．ｂ／ｇの規格に準拠した方式により、他のゲーム装置と通信可能である。本実施形態では、複数のゲーム装置１０が、ＩＥＥＥ８０２．１１．ｂ／ｇの規格に一部準拠した方式により互いに接続されることによって、ゲームが進行する。
【００７９】
図４は、本実施形態に係るゲームが実行される際に複数のゲーム装置１０によって構成されるネットワークを示す図である。図４に示すように、本実施形態では、複数のゲーム装置１０のうち、１台のゲーム装置１０ａがマスターとして機能し、ゲーム装置１０ｂおよびゲーム装置１０ｃがクライアントＣ１およびクライアントＣ２として機能する（ゲーム装置１０ａ〜１０ｃは参加モードで動作する）。また、本実施形態では、マスター、クライアントＣ１およびクライアントＣ２とは別のゲーム装置１０ｄが、オーディエンス（観戦者）として機能する（ゲーム装置１０ｄは非参加モードで動作する）。オーディエンスは、マスターおよびクライアント間で進行するゲームの観戦のみを行う。なお、クライアントとしてゲームに参加可能なゲーム装置１０の台数は、例えば最大で１５に設定される。また、オーディエンスとしてゲームに参加可能なゲーム装置１０の台数には制限は設けられない。
【００８０】
図５は、本実施形態に係るゲームが実行された場合にゲーム装置の上側ＬＣＤ２２に表示される画像の一例を示す図である。図５に示すように、例えば、ゲーム装置１０ａ〜１０ｄの上側ＬＣＤ２２には複数のゲームキャラクタが表示され、複数のゲームキャラクタがカートに乗ってコース上を走行するレースゲームが行われる。具体的には、ゲーム装置１０ａ〜１０ｃの上側ＬＣＤ２２には、マスター（ゲーム装置１０ａ）のユーザによって操作されるゲームキャラクタ１０１、クライアントＣ１（ゲーム装置１０ｂ）のユーザによって操作されるゲームキャラクタ１０２、および、クライアントＣ２（ゲーム装置１０ｃ）のユーザによって操作されるゲームキャラクタ１０３が表示される。また、図５に示す画像は、オーディエンス（ゲーム装置１０ｄ）の上側ＬＣＤ２２にも表示される。オーディエンスは、レースゲームには当事者として参加しないが、ゲーム装置１０ａ〜１０ｃの間で進行するレースゲームの観戦者として参加して、当該レースゲームを見ることができる。なお、各ゲーム装置１０の画面に表示される画像は異なっていてもよく、例えば、視点が異なる画像がそれぞれのゲーム装置１０において表示されてもよい。例えば、マスターの画面には、マスターにおいて操作されるゲームキャラクタ１０１を中心とした画像が表示され、クライアントＣ１の画面にはクライアントＣ１で操作されるゲームキャラクタ１０２を中心とした画像が表示されてもよい。また、オーディエンスの画面には、マスターおよび各クライアントとは視点が異なる画像が表示されてもよい。また、オーディエンスにおいて、仮想空間の画像を表示せずに、ゲーム状況を認識可能な情報（例えば、コースマップの画像、数値や文字等）が画面に表示されてもよい。
【００８１】
図４に示すように、マスター（ゲーム装置１０ａ）と、クライアントＣ１（ゲーム装置１０ｂ）との間では、まず、認証が行われる。同様に、マスター（ゲーム装置１０ａ）と、クライアントＣ２（ゲーム装置１０ｃ）との間も、認証が行われる。マスターとクライアントＣとの間で認証が行われると、マスターは認証したクライアントＣの識別情報（ＭＡＣアドレス）を自機に登録し、登録したクライアントＣとの間で、操作データ（例えば操作ボタン１４等に対する操作データ）等を送受信する。同様に、クライアントは、マスターとの間で認証が行われると、マスターの識別情報（ＭＡＣアドレス）を自機に登録する。これによって、マスターとクライアントＣとの間でデータがやり取りされて、ゲームが進行する。一方、マスター（ゲーム装置１０ａ）と、オーディエンス（ゲーム装置１０ｄ）との間では、認証は行われず、マスターにはオーディエンスの識別情報（ＭＡＣアドレス）は登録されない。オーディエンスは、マスターの識別情報（ＭＡＣアドレス）を自機に登録する。オーディエンスは、マスターおよびクライアントＣから送信されるデータの受信のみを行い、マスターおよびクライアントＣから送信されるデータに基づいてゲーム画像を生成して、自機の上側ＬＣＤ２２に当該ゲーム画像を表示する。マスターと、オーディエンスとの間では、認証のための通信は一切行われないため、オーディエンスはマスターおよびクライアントＣに認識されない。
【００８２】
図６は、マスターにおいて生成されるクライアントの登録テーブル８０を示す図である。図６に示すように、マスターには、認証が完了したクライアントのＭＡＣアドレス、ユーザ名、および、ＩＤが記憶される。ユーザ名は、各ゲーム装置のユーザによって割り当てられた名前である。ＩＤは、マスターが各クライアントを登録する際に、各クライアントに割り当てる番号であり、例えば、１〜１５までの整数値である。マスターは、認証が完了したクライアントを図６に示すテーブルに、例えば最大で１５台まで登録する。一方、オーディエンスはマスターの登録テーブル８０には登録されない。
【００８３】
各ゲーム装置では、ゲームが実行される前に設定処理が行われる。当該設定処理が行われることによって、ゲーム装置が上記マスター、クライアント、および、オーディエンスの何れかで動作するかが決定される。本実施形態では、各ゲーム装置１０のユーザが、自身が使用するゲーム装置をマスター、クライアント、および、オーディエンスの何れで動作させるかを選択する。
【００８４】
（設定処理）
次に、ゲーム装置１０において行われる設定処理について説明する。図７は、各ゲーム装置１０のメモリ（メインメモリ３２や無線通信モジュール３６内のメモリ等）のメモリマップを示す図である。
【００８５】
図７に示すように、ゲーム装置１０のメモリには、通信プログラム７１、モードデータ７２、および、識別情報７３が記憶される。通信プログラム７１は、通信を制御するプログラムとゲームプログラムとを含む。具体的には、通信プログラム７１は、後述する各処理（設定処理、マスター処理、クライアント処理、オーディエンス処理、データ送信処理、および、データ受信処理）を実行するためのプログラムである。モードデータ７２は、ゲーム装置１０を、マスター、クライアント、および、オーディエンスの何れのモードで動作させるかを示すデータである。識別情報７３は、自機がどのマスターに接続しているかを識別するための識別情報であり、具体的には、マスターのＭＡＣアドレスである。ゲーム装置１０がマスターとして機能する場合、識別情報７３には自機のＭＡＣアドレスが記憶される。図７に示すデータの他、各ゲーム装置１０のメモリには、それぞれのモードに応じて、種々のデータが記憶される。例えば、マスターには、図６に示す登録テーブル８０を示すデータ等が記憶される。また、マスターおよびクライアントのメモリには、後述する個別送信データを格納するための領域である個別送信箱１１０、および、全送信データを格納するための領域である全送信箱１２０が設けられる。また、例えば、各ゲーム装置のメモリには、ゲーム処理に用いられる各種のデータが記憶される。
【００８６】
図８は、各ゲーム装置１０において実行される設定処理の流れを示すフローチャートである。ゲーム装置１０の電源が投入されると、ゲーム装置１０の情報処理部３１（ＣＰＵ３１１）は、ＲＯＭ（図示せず）に記憶されている起動プログラムを実行し、これによってメインメモリ３２等の各ユニットが初期化される。次に、ＲＯＭに記憶されたプログラムがメモリ（具体的には、メインメモリ３２）に読み込まれ、情報処理部３１のＣＰＵ３１１によって当該プログラムの実行が開始される。図８のフローチャートに示す処理は、以上の処理が完了した後に情報処理部３１によって行われる。
【００８７】
まず、ステップＳ１において、情報処理部３１は、マスターになるか否かの選択画面を上側ＬＣＤ２２または下側ＬＣＤ１２に表示する。例えば、下側ＬＣＤ１２には、自機をマスターとして機能させるか否かをユーザに選択させるためのアイコンが表示される。次に、情報処理部３１は、ステップＳ２の処理を実行する。
【００８８】
ステップＳ２において、情報処理部３１は、マスターが選択されたか否かを判定する。例えば、情報処理部３１は、タッチパネル１３が検出したタッチ位置に基づいて、マスターを選択するためのアイコンがタッチされたか否かを判定する。マスターが選択された場合、情報処理部３１は、次にステップＳ３の処理を実行する。一方、マスターが選択されなかった場合、情報処理部３１は、次にステップＳ４の処理を実行する。
【００８９】
ステップＳ３において、情報処理部３１は、自機をマスターモードに設定する。具体的には、情報処理部３１は、モードデータ７２にマスターであることを示す値を格納するとともに、識別情報７３に自機のＭＡＣアドレスを設定する。次に情報処理部３１は、図８に示す設定処理を終了する。
【００９０】
一方、ステップＳ４において、情報処理部３１は、ビーコンを受信したか否かを判定する。ここで、ビーコンは、マスターによってブロードキャストで定期的（例えば、１００ｍｓｅｃ毎）に送信される管理（マネジメント）フレームである。マスターとして機能するゲーム装置１０が自機の近くに存在する場合、情報処理部３１は、マスターから定期的に送信されるビーコンを受信する。
【００９１】
図９は、マスターによって定期的に送信されるビーコンのフレームフォーマットを示す図である。図９に示すように、ビーコンには、送信元アドレス（マスターのＭＡＣアドレス）、ＢＳＳＩＤ（マスターのＭＡＣアドレスと一致する）、ゲームＩＤ、接続数、最大接続数、接続済みリスト、および、観戦許可フラグが含まれる。送信元アドレスおよびＢＳＳＩＤは、当該フレームのヘッダ部分に埋め込まれている。また、ゲームＩＤ、接続数、最大接続数、接続済みリスト、および、観戦許可フラグは、ベンダー固有の情報要素としてフレームのボディ部分に含められる情報である。ゲームＩＤは、各ゲーム装置１０で行われるゲームを識別するためのＩＤである。また、接続数は、現在マスターの登録テーブル８０に登録されているクライアント（認証済みのクライアント）の数である。最大接続数は、マスターが許容するクライアントの最大接続数（１５）にマスター自身を加えた数であり、例えば、１６に設定されている。接続済みリストは、現在マスターに登録されているクライアント（登録テーブル８０に登録されたクライアント）を示す情報のリストであり、例えば、登録されているクライアントのユーザ名のリストである。観戦許可フラグは、オーディエンスによる観戦を許可するか否かを示す情報である。
【００９２】
ステップＳ４において、情報処理部３１は、ビーコンを受信した場合、次にステップＳ５の処理を実行する。一方、情報処理部３１は、ビーコンを受信しなかった場合、次にステップＳ６の処理を実行する。
【００９３】
ステップＳ５において、情報処理部３１は、マスターおよびクライアントのリストの表示、および、選択画面の表示をする。ここでは、情報処理部３１は、ステップＳ４で受信したビーコンに含まれる接続済みリストに基づいて、現在マスターに登録されているクライアントのリストを上側ＬＣＤ２２または下側ＬＣＤ１２に表示する。例えば、図４に示すゲーム装置１０ａがマスターとして機能しており、ゲーム装置１０ｃがクライアントとしてマスターに登録されている場合、情報処理部３１は、ゲーム装置１０ａおよびゲーム装置１０ｃを示すアイコンを下側ＬＣＤ１２に表示する。なお、ステップＳ４において、送信元が異なる複数のビーコンを受信した場合（すなわち、自機の近くにマスターとして機能するゲーム装置１０が複数存在する場合）、情報処理部３１は、各マスターとそれに登録されているクライアントとを表示する。これにより、ユーザは、どのマスターに接続するか（どのマスターによって構成されるネットワークに接続するか）を選択する。また、情報処理部３１は、自機をクライアントとして動作させるか、オーディエンスとして動作させるかをユーザに選択させるためのアイコンを上側ＬＣＤ２２または下側ＬＣＤ１２に表示する。例えば、下側ＬＣＤ１２には、ゲームに参加することを示すアイコンと、ゲームを観戦することを示すアイコンとが表示され、ユーザにどちらか一方のアイコンを選択させる。図１０は、ステップＳ５において画面に表示される画像の一例を示す図である。図１０に示すように、自機の近くにマスターＭ１０およびマスターＭ２０の２台のマスターが検出された場合（すなわち、異なる２つの端末からビーコンを受信した場合）、例えば下側ＬＣＤ１２の画面にはマスターによって構成されるグループ（ネットワーク）毎にリストが表示される。例えば、マスターＭ１０、クライアントＣ１１およびクライアントＣ１２によって構成されるグループ１と、マスターＭ２０、クライアントＣ２１およびクライアントＣ２２によって構成されるグループ２とが、表示される。例えば、ユーザは、表示されたグループの何れかを選択する。そして、ユーザは、その選択したグループに対して、ゲームに参加するか（クライアントとして動作させるか）、ゲームを観戦するか（オーディエンスとして動作させるか）を選択する。情報処理部３１は、次にステップＳ７の処理を実行する。
【００９４】
一方、ステップＳ６において、情報処理部３１は、所定時間経過したか否かを判定する。所定時間が経過した場合、自機の近くにマスターとして機能するゲーム装置１０を見つけることが出来なかったため、情報処理部３１は、ステップＳ１の処理を再び実行する。一方、所定時間が経過していない場合、情報処理部３１は、ステップＳ４の処理を再び実行する。
【００９５】
ステップＳ７において、情報処理部３１は、ゲームに参加することを示すアイコンが選択されたか否かを判定する。具体的には、情報処理部３１は、タッチパネル１３が検出したタッチ位置に基づいて、ゲームに参加することを示すアイコン（すなわち、自機をクライアントとして動作させることを示すアイコン）が選択されたか否かを判定する。判定結果が肯定の場合、情報処理部３１は、次にステップＳ８の処理を実行する。判定結果が否定の場合、情報処理部３１は、次にステップＳ９の処理を実行する。
【００９６】
ステップＳ８において、情報処理部３１は、自機をクライアントモードに設定する。具体的には、情報処理部３１は、モードデータ７２にクライアントであることを示す値を格納する。その後、情報処理部３１は、図８に示す設定処理を終了する。
【００９７】
ステップＳ９において、情報処理部３１は、自機をオーディエンスモードに設定する。具体的には、情報処理部３１は、モードデータ７２にオーディエンスであることを示す値を格納する。その後、情報処理部３１は、図８に示す設定処理を終了する。
【００９８】
以上のようにして、各ゲーム装置１０は、マスターモード、クライアントモード、および、オーディエンスモードの何れかに設定される。このようにして各ゲーム装置のモードが設定されると、各ゲーム装置は、設定されたモードに応じてそれぞれ異なる処理を実行する。
【００９９】
（マスター処理）
次に、マスターで行われる処理の詳細について説明する。図１１は、マスターとして機能するゲーム装置１０の処理（マスター処理）の詳細を示すフローチャートである。
【０１００】
図８に示す設定処理が行われて、ゲーム装置１０がマスターに設定されると図１１に示すマスター処理が、マスターの情報処理部３１および無線通信モジュール３６によって実行される。
【０１０１】
まず、ステップＳ１０において、マスターは、ビーコンの送信を開始する。ステップＳ１０においてビーコンの送信を開始すると、マスターは、以降のステップＳ１１〜ステップＳ２０の処理を行う間、定期的に（例えば、１００ｍｓｅｃ毎に）ビーコンを送信する。次に、マスターは、ステップＳ１１の処理を実行する。
【０１０２】
ステップＳ１１において、マスターは、クライアントから接続要求（登録フレーム）があったか否かを判定する。具体的には、マスターは、クライアントから接続要求を示すフレーム（オーセンティケーションフレーム）を受信したか否かを判定する。判定結果が肯定の場合、マスターは、次にステップＳ１２の処理を実行する。一方、判定結果が否定の場合、マスターは、次にステップＳ１６の処理を実行する。
【０１０３】
ステップＳ１２において、マスターは、認証処理を開始して、ステップＳ１３の処理を実行する。
【０１０４】
ステップＳ１３において、マスターは、接続を許可するか否かを判定する。マスターは、接続を許可すると判定した場合、次にステップＳ１４の処理を実行する。一方、マスターは、マスターは、接続を拒否すると判定した場合、次にステップＳ１５の処理を実行する。例えば、マスターは、ステップＳ１３において、所定の認証方式による認証処理を行うことによって、接続要求を送信した端末の接続を許可するか否かを判定する。また、ステップＳ１３において、マスターは、登録テーブル８０を参照して、現在登録されているクライアントの数が最大接続数（例えば、１５）より小さいか否かを判定する。本実施形態では、オープンシステム認証による認証が行われるものとする。すなわち、マスターは、ステップＳ１３において、現在登録されているクライアントの数が最大接続数より小さければ、接続要求を送信したクライアントの接続を許可し、現在接続されているクライアントの数が最大接続数以上であれば、当該クライアントの接続を拒否する。
【０１０５】
ステップＳ１４において、マスターは、接続要求を送信したクライアントとの接続を確立した後、当該クライアントを自機に登録する。具体的には、マスターは、当該クライアントに対して接続許可を示すフレーム（オーセンティケーションフレーム）を送信するとともに、当該クライアントとの間でアソシエーションフレームをやり取りすることでアソシエーション処理を実行する。アソシエーション処理の後、マスターとクライアントとはアプリケーションレベルでの登録処理を行う。具体的には、クライアントが、マスターに対して、ユーザ名を含む登録要求のためのフレームを送信する。登録要求のためのフレームを受信したマスターは、当該ユーザ名を含む情報を取得して、当該クライアントのためのＩＤを付与する。次に、マスターは、当該クライアントに対して登録許可のフレームを送信する。当該登録許可のフレームには、当該クライアントのユーザ名やＩＤ等の情報に加えて、マスターおよび他の全ての登録済みのクライアントのユーザ名やＩＤ等の情報が含まれる。これにより、マスターとクライアントとの間でアプリケーションレベルでの登録処理が行われる。そして、当該登録処理が完了すると、マスターは、当該クライアントを登録テーブル８０に登録する。このとき、マスターは、当該クライアントのＭＡＣアドレス、ユーザ名、および、ＩＤを登録テーブル８０に登録する。これにより、マスターは、当該クライアントを自機に登録する。
【０１０６】
なお、上記アプリケーションレベルでの登録処理は必ずしも行われなくてもよい。すなわち、クライアントとマスターとの間でオーセンティケーションフレームおよびアソシエーションフレームのやり取りが行われた後、マスターおよびクライアントは、相互に登録してもよい。ステップＳ１４の処理の後、マスターは、次にステップＳ１６の処理を実行する。
【０１０７】
一方、ステップＳ１５において、マスターは、接続要求を送信したクライアントに対して、接続拒否を示すフレームを送信する。ここでは、マスターは、接続要求を送信したクライアントを登録テーブル８０に登録しない。マスターは、次にステップＳ１６の処理を実行する。
【０１０８】
ステップＳ１６において、マスターは、ゲームを開始するか否かの判定を行う。判定結果が肯定の場合、マスターは、各クライアントにゲームを開始することを示すコマンドを送信し、次にステップＳ１７の処理を実行する。判定結果が否定の場合、マスターは、ステップＳ１１の処理を再び実行する。例えば、マスターは、登録されたクライアントの数が最大接続数に達した場合、ゲームを開始すると判定してもよいし、ステップＳ１１の処理の実行を開始してから所定時間が経過した場合に、ゲームを開始すると判定してもよい。ステップＳ１１〜Ｓ１６の処理が繰り返し行われることによって、マスターに１以上のクライアントが登録され、ゲームが開始される。
【０１０９】
ステップＳ１７において、マスターは、プローブリクエスト（探索フレーム）を受信したか否かを判定する。具体的には、マスターは、オーディエンスから送信されるプローブリクエストを受信したか否かを判定する。後述するように、オーディエンスは、基本的にはデータの受信のみを行うが、プローブリクエストをマスターに対して送信することにより、マスターに対して情報を送信することができる。オーディエンスが送信するプローブリクエストについては、後述する。判定結果が肯定の場合、マスターは、次にステップＳ１８の処理を実行する。判定結果が否定の場合、マスターは、次にステップＳ１９の処理を実行する。
【０１１０】
ステップＳ１８において、マスターは、受信したプローブリクエストに応じた処理を行い、当該処理の結果をプローブレスポンス（探索応答フレーム）として、オーディエンスに送信する。マスターは、次にステップＳ１９の処理を実行する。
【０１１１】
ステップＳ１９において、マスターは、データの送受信処理を行う。ここでは、マスターが、ゲーム処理のためのデータ（自機において行われた操作を示す操作情報や自機で操作されるゲームキャラクタに関する情報等を示すデータ）をクライアントに対して送信したり、クライアントから送信される、ゲーム処理のためのデータを受信したりする。マスターにおいて行われるデータ送受信処理の詳細については後述する。次に、マスターは、ステップＳ２０の処理を実行する。
【０１１２】
ステップＳ２０において、マスターは、ゲーム処理を実行する。ここでは、マスターは、ステップＳ１９で受信したデータ、および、自機において行われた操作（操作ボタン１４やアナログスティック１５、タッチパネル１３等に対して行われた操作）に応じて、ゲーム処理を行う。例えば、マスターは、自機において行われた操作に基づいて、自機で操作されるゲームキャラクタ１０１の動作を決定したり当該ゲームキャラクタ１０１の位置情報を更新したりする。また、マスターは、ステップＳ１９において、例えば、クライアントＣ１から受信した操作情報、または、クライアントＣ１から受信したゲームキャラクタ１０２の位置情報に基づいて、当該ゲームキャラクタ１０２の位置を更新する。また、マスターは、仮想空間内の仮想カメラの位置や視線方向を決定して、各ゲームキャラクタを当該仮想カメラで撮像することにより、画像を生成する。そして、マスターは、上側ＬＣＤ２２に生成した画像を表示する。ステップＳ２０の処理の後、マスターは、ステップＳ１７の処理を再び実行する。
【０１１３】
以上のように、ステップＳ１７〜ステップＳ２０の処理が繰り返し実行されることによって、ゲームが進行する。なお、ユーザによってゲームが終了された場合や、レースゲームが終了した場合は、図１１に示すマスター処理は終了する。
【０１１４】
（クライアント処理）
次に、クライアントで行われる処理の詳細について説明する。図１２は、クライアントとして機能するゲーム装置１０の処理（クライアント処理）の詳細を示すフローチャートである。
【０１１５】
図８に示す設定処理が行われて、ゲーム装置１０がクライアントに設定されると図１２に示すクライアント処理が、クライアントの情報処理部３１および無線通信モジュール３６によって実行される。
【０１１６】
まず、ステップＳ３０において、クライアントは、ＪＯＩＮ処理を実行する。具体的には、クライアントは、上記設定処理のステップＳ５で選択されたマスターから送信されたビーコンを受信して、マスターとの同期を行う（ＪＯＩＮする）。クライアントは、次にステップＳ３１の処理を実行する。
【０１１７】
ステップＳ３１において、クライアントは、接続要求を送信する。具体的には、クライアントは、マスターに対して接続要求を示すフレーム（オーセンティケーションフレーム）を送信する。次に、クライアントは、ステップＳ３２の処理を実行する。
【０１１８】
ステップＳ３２において、クライアントは、マスターとの間で認証処理を行う。本実施形態では、オープンシステム認証による認証処理が行われるため、クライアントは、次にステップＳ３３の処理を行う。
【０１１９】
ステップＳ３３において、クライアントは、マスターから接続が許可されたか否かを判定する。具体的には、クライアントは、接続許可を示すフレーム（ステップＳ１４で送信されたフレーム）を受信した場合、次にステップＳ３４の処理を実行する。一方、クライアントは、接続拒否を示すフレーム（ステップＳ１５で送信されたフレーム）を受信した場合、図１２に示すクライアント処理を終了する。
【０１２０】
ステップＳ３４において、クライアントは、マスターとの間で接続を確立する。具体的には、クライアントは、マスターとの間でアソシエーションフレームをやり取りすることでアソシエーション処理を実行する。アソシエーション処理の後、マスターとクライアントとの間で、上記アプリケーションレベルでの登録処理が行われる。具体的には、クライアントは、マスターに対して自機のユーザ名と上記所定の情報とを含む上記登録要求のためのフレームを送信し、当該マスターから上記登録許可のフレームを受信する。そして、当該登録処理が完了した後、クライアントは、当該マスターのＭＡＣアドレスを識別情報７３としてメモリに記憶することにより、マスターを自機に登録する。クライアントは、次にステップＳ３５の処理を行う。
【０１２１】
ステップＳ３５において、クライアントは、ゲームを開始する。具体的には、クライアントは、マスターからゲームの開始を示すコマンドが送られた場合、ゲームを開始する。クライアントは、次にステップＳ３６の処理を行う。
【０１２２】
ステップＳ３６において、クライアントは、データの送受信処理を行う。ここでは、ゲーム処理のためのデータ（自機において行われた操作を示す操作情報や自機で操作されるゲームキャラクタに関する情報等を示すデータ）をマスターあるいは他のクライアントに対して送信したり、マスターあるいは他のクライアントから送信される、ゲーム処理のためのデータを受信したりする。クライアントにおいて行われるデータ送受信処理の詳細については、後述する。次に、クライアントは、ステップＳ３７の処理を実行する。
【０１２３】
ステップＳ３７において、クライアントは、ゲーム処理を実行する。ここでは、クライアントは、ステップＳ３６で受信したデータ、および、自機において行われた操作（操作ボタン１４やアナログスティック１５、タッチパネル１３等に対して行われた操作）に応じて、ゲーム処理を行う。例えば、クライアントは、自機において行われた操作に基づいて、自機で操作されるゲームキャラクタ１０２の動作を決定したり当該ゲームキャラクタ１０２の位置情報を更新したりする。また、クライアントは、ステップＳ３６において、他のゲーム装置１０から受信した操作情報、または、他のゲーム装置１０から受信した当該他のゲーム装置１０で操作されるゲームキャラクタの位置情報に基づいて、当該ゲームキャラクタの位置を更新する。また、クライアントは、仮想空間内の仮想カメラの位置や視線方向を決定して、各ゲームキャラクタを当該仮想カメラで撮像することにより、画像を生成する。そして、クライアントは、上側ＬＣＤ２２に生成した画像を表示する。ステップＳ３７の処理の後、クライアントは、ステップＳ３６の処理を再び実行する。
【０１２４】
ステップＳ３６およびステップＳ３７の処理が繰り返し実行されることでゲームが進行する。なお、ユーザによってゲームが終了された場合（ユーザが自機のゲームを終了した場合やマスターのユーザによってゲームが終了された場合）や、レースゲームが終了した場合は、図１２に示すクライアント処理は終了する。
【０１２５】
（オーディエンス処理）
次に、オーディエンスで行われる処理の詳細について説明する。図１３は、オーディエンスとして機能するゲーム装置１０の処理（オーディエンス処理）の詳細を示すフローチャートである。
【０１２６】
図８に示す設定処理が行われて、ゲーム装置１０がオーディエンスに設定されると図１３に示すオーディエンス処理が、オーディエンスの情報処理部３１および無線通信モジュール３６によって実行される。
【０１２７】
まず、ステップＳ４０において、オーディエンスは、ＪＯＩＮ処理を実行する。ステップＳ４０の処理は、クライアントにおいて行われるステップＳ３０の処理と同じである。具体的には、オーディエンスは、上記設定処理のステップＳ５で選択されたマスターから送信されたビーコンを受信して、当該マスターとの同期を行う（ＪＯＩＮする）。オーディエンスは、次にステップＳ４１の処理を実行する。なお、所定時間以内にビーコンを受信しない場合、オーディエンスは、オーディエンス処理を終了する。
【０１２８】
ステップＳ４１において、オーディエンスは、観戦許可フラグがＯＮか否かを判定する。具体的には、オーディエンスは、ステップＳ４０で受信したビーコンに含まれる観戦許可フラグ（図９参照）がＯＮか否かを判定する。判定結果が肯定の場合、オーディエンスは、次にステップＳ４２の処理を実行する。判定結果が否定の場合、オーディエンスは、図１３に示すオーディエンス処理を終了する。
【０１２９】
ステップＳ４２において、オーディエンスは、オーディエンス動作を開始する。具体的には、オーディエンスは、ステップＳ４０で受信したビーコンに含まれるマスターのＭＡＣアドレスを識別情報７３としてメモリに記憶することにより、自機にマスターを登録する。オーディエンスは、次にステップＳ４３の処理を実行する。
【０１３０】
ステップＳ４３において、オーディエンスは、ビーコンを受信する。具体的には、オーディエンスは、登録したマスターからのビーコンを受信する。オーディエンスは、次にステップＳ４４の処理を実行する。
【０１３１】
ステップＳ４４において、オーディエンスは、観戦許可フラグがＯＮか否かを判定する。ステップＳ４４の処理はステップＳ４１の処理と同じである。オーディエンスは、定期的にマスターから送られるビーコンを受信して、当該ビーコンに含まれる観戦許可フラグがＯＮか否かを判定する。判定結果が肯定の場合、オーディエンスは、次にステップＳ４５の処理を実行する。判定結果が否定の場合、オーディエンスは、識別情報７３をクリアして、図１３に示すオーディエンス処理を終了する。
【０１３２】
ステップＳ４５において、オーディエンスは、プローブリクエストを送信するか否かを判定する。ステップＳ４５においては、第１の判定、および、第２の判定が行われる。
【０１３３】
具体的には、オーディエンスは、第１の判定として、例えば所定のボタンが押されたか否かを判定する。上述のように、オーディエンスとして機能するゲーム装置１０のユーザは、自機の画面を見ることによって、マスターおよびクライアントの間で行われるゲームを観戦することができる。この場合において、オーディエンスのユーザは、例えば、オーディエンスとして機能するゲーム装置１０において所定の操作（例えば、ボタン１４Ｂ等）を行うことで、マスターに対して所定の情報を送信することができる。マスターは所定の情報をオーディエンスから受け取ると、それに応じたゲーム処理を行う。例えば、オーディエンスとして機能するゲーム装置１０の所定の操作が行われた場合、オーディエンスは、マスターに対してプローブリクエストフレームを送信する。当該プローブリクエストフレームのヘッダ部分には、マスターのＭＡＣアドレスが含まれる。また、当該プローブリクエストフレームのボディ部分には、ベンダー固有の情報要素が含まれ、当該情報要素には所定の操作に応じたゲーム処理に用いられるデータが含まれる。マスターは、プローブリクエストフレームを受信することによって、当該所定の操作に応じたデータを取得する。そして、マスターは、当該データに基づいて、所定の処理を実行する。具体的には、例えば、マスターは、予めゲーム装置１０に記憶された歓声を示す音声データを再生する。これにより、オーディエンスからの歓声をゲームに反映することができる。また、マスターは、オーディエンスからプローブリクエストを受信した場合、当該プローブリクエストのボディ部分に含まれる上記所定の操作に応じたデータを取り出して、当該データを含むフレームを他のクライアントに対して送信する。各クライアントは、マスターからのフレームを受信し、上記所定の操作に応じたデータに基づいて、マスターと同様の処理を行う。なお、マスターは、プローブリクエストを受信しても当該プローブリクエストを送信したオーディエンスを自機に登録しない。
【０１３４】
また、オーディエンスは、第２の判定として、プローブリクエストを送信可能か否かを判定する。具体的には、オーディエンスは、自機が所定のモード（ＲＯＰＳモードと呼ぶ）か否かを判定する。オーディエンスが所定のモードの場合、プローブリクエストの送信は禁止され、オーディエンスは、受信のみ可能となる。
【０１３５】
図１４は、各ゲーム装置１０の状態の遷移を示す図である。図１４に示すように、マスターは、定期的にビーコンをブロードキャストで送信する。当該ビーコンには、アウェイク状態を維持する期間Ｔを示す情報等が含まれる。ビーコンを受信してからの期間Ｔは、マスター、各クライアント、および、オーディエンスは、アウェイク状態を維持し、通信が可能となる。例えば、図１４に示すように、アウェイク状態においてマスターは、各端末（クライアントおよびオーディエンス）に対してブロードキャストでデータＢＣ１を送信することが可能であり、各端末は当該データを受信可能である。一方、マスターがビーコンを送信してから期間Ｔが経過すると、マスター及び各端末は仮眠状態（省電力状態）に移行する。仮眠状態では、マスター及び各端末は、データの送受信機能が制限されるため、データは送信されない。その後、さらに時間が経過すると、マスターは再びビーコンを送信して、マスター及び各端末は再びアウェイク状態に移行する（ビーコンが送信される直前にマスター及び各端末はデータの送受信が可能な状態になる）。このように、マスターおよび各端末は、それぞれ同期して電力モードの切り替えを繰り返す。
【０１３６】
オーディエンスは、所定のモード（ＲＯＰＳモード）に設定されている場合において、上記ビーコンによる電力モードの切り替えに加えて、マスターから送信されるデータに基づいて、仮眠状態に切り替えられる。例えば、マスターは、送信するデータＢＣ２に、所定のフラグＭを含めることができる。オーディエンスは、Ｍ＝１がセットされたデータＢＣ２を受信すると、アウェイク状態を維持する。一方、オーディエンスは、ＲＯＰＳモードが有効になっている状態で、Ｍ＝０がセットされたデータＢＣ３を受信すると、自機を仮眠状態に切り替える。ＲＯＰＳモードが無効になっている場合は、オーディエンスは、所定のフラグＭの値に応じて仮眠状態に移行しない。ＲＯＰＳモードでは、オーディエンスは、上記プローブリクエストの送信を禁止し、マスターおよびクライアントから送られたデータの受信のみを行う。ＲＯＰＳモードの有効／無効の設定は、例えば、オーディエンスとして機能するゲーム装置において、オーディエンスのユーザによって設定されてもよい。
【０１３７】
なお、第１の判定として所定の操作が行われたか否かを判定したが、例えば、第１の判定として、所定のタイミングになったか否かを判定してもよい。すなわち、例えば、オーディエンスは自動で上記ゲーム処理に用いられるデータを含むプローブリクエストを送信してもよい。
【０１３８】
以上のように、ステップＳ４５において、オーディエンスは、第１の判定（所定の操作が行われたか否か等の判定）、および、第２の判定（プローブリクエストを送信可能か否かの判定）を行う。何れの判定結果も肯定である場合、オーディエンスは、次にステップＳ４６の処理を実行する。一方、オーディエンスは、第１の判定および第２の判定の判定結果が何れか一方でも否定である場合、次にステップＳ４８の処理を実行する。
【０１３９】
ステップＳ４６において、オーディエンスは、プローブリクエストを送信する。具体的には、オーディエンスは、上記ゲーム処理に用いられるデータを含むプローブリクエストを、マスターに対して送信する。オーディエンスは、次にステップＳ４７の処理を実行する。
【０１４０】
ステップＳ４７において、オーディエンスは、プローブレスポンスを受信する。具体的には、オーディエンスは、マスターから送信されるプローブレスポンスを受信する。オーディエンスは、次にステップＳ４８の処理を実行する。
【０１４１】
ステップＳ４８において、オーディエンスは、データ受信処理を行う。ここでは、オーディエンスは、マスターから送信されるブロードキャストデータおよびクライアントから送信されるブロードキャストデータを受信する。なお、オーディエンスにおいて行われるデータ受信処理の詳細については、後述する。オーディエンスは、次にステップＳ４９の処理を実行する。
【０１４２】
ステップＳ４９において、オーディエンスは、ゲーム処理を実行する。具体的には、オーディエンスは、ステップＳ４８で受信したブロードキャストデータに基づいて、マスターおよびクライアントで操作されるゲームキャラクタの動作を決定したり、ゲームキャラクタの位置情報を更新したりする。また、オーディエンスは、仮想空間内の仮想カメラの位置や視線方向を決定して、各ゲームキャラクタを当該仮想カメラで撮像することにより、画像を生成する。そして、オーディエンスは、上側ＬＣＤ２２に生成した画像を表示する。これにより、マスターおよびクライアントの上側ＬＣＤ２２に表示される画像と同じ画像が、オーディエンスの上側ＬＣＤ２２に表示される。なお、オーディエンスにおいて決定される仮想カメラの位置や視線方向は、マスターおよびクライアントにおけるそれと異なっていてもよい。この場合、オーディエンスの画面には、マスターおよびクライアントにおいて表示される画像とは異なる画像が表示される。ステップＳ４９の処理の後、オーディエンスは、ステップＳ４３の処理を再び実行する。
【０１４３】
ステップＳ４３からステップＳ４９の処理が繰り返し実行されることによって、オーディエンスの上側ＬＣＤ２２にはゲームが進行する様子が表示される。
【０１４４】
以上のようにして、本実施形態に係るゲームでは、複数（または単数）のクライアントがマスターと接続されて、１つのゲームが進行する。オーディエンスは、マスターおよびクライアントから送信されるブロードキャストデータを受信することによって、マスターおよびクライアント間で進行するゲームを観戦することができる。
【０１４５】
（データ送信処理の概要）
次に、データの送受信処理について、説明する。まず、図１５を参照して、マスターにおいて行われるデータ送信処理の概要について説明する。
【０１４６】
図１５は、マスターのデータ送信処理の概要を示す図である。図１５に示すように、マスターには、個別送信データを格納する個別送信箱１１０、および、全送信データを格納する全送信箱１２０が用意される。
【０１４７】
個別送信データは、ある端末（マスターまたはクライアント）から、個別に他の端末に送信するデータである。個別送信データは、例えば、マスターからクライアントＣ１に送信するデータＵＤ１０、または、クライアントＣ１からクライアントＣ２に送信するデータＵＤ１１である。マスターからクライアントＣ１に送信するデータＵＤ１０は、クライアントＣ１において処理可能なひとまとまりのデータ（ゲーム処理に用いられるデータ）であり、例えば、マスターにおいて行われた操作に応じたデータである。当該データＵＤ１０をクライアントＣ１が受信すると、クライアントＣ１は、当該データＵＤ１０を用いて所定の処理を行う。同様に、クライアントＣ１からクライアントＣ２に送信するデータＵＤ１１は、クライアントＣ２において処理可能なひとまとまりのデータであり、例えば、クライアントＣ１において行われた操作に応じたデータである。
【０１４８】
全送信データは、マスターから全てのクライアントに送信するデータである。全送信データは、例えば、マスターから全クライアントに送信するデータＢＤ２０、または、マスターから全クライアントに送信するデータＢＤ２１である。個別送信データと同様に、データＢＤ２０およびデータＢＤ２１は、送信先で処理可能なひとまとまりのデータである。例えば、データＢＤ２０およびデータＢＤ２１は、送信元（この場合マスター）において行われた操作に応じたデータであり、これらのデータを受信した端末は、各データに基づいて所定の処理を行う。
【０１４９】
マスターは、クライアントに個別に送信する複数の個別送信データを一時的に個別送信箱１１０に格納する。また、マスターは、全てのクライアントに送信する複数の全送信データを一時的に全送信箱１２０に格納する。
【０１５０】
具体的には、図１５に示すように、マスターがアプリケーションを実行することによって、マスターからクライアントＣ１に送信するデータＵＤ１０を生成した場合、当該データＵＤ１０を即時にクライアントＣ１に送信せず、個別送信箱１１０に一時的に格納する。データＵＤ１０は、比較的小さいサイズのデータ（例えば、１００Ｂｙｔｅ程度）である。また、マスターは、クライアントＣ１からクライアントＣ２に送信するデータＵＤ１１をクライアントＣ１から受け取った場合、当該データＵＤ１１を即時にクライアントＣ２に送信せず、個別送信箱１１０に一時的に格納する。データＵＤ１１は、クライアントＣ１からクライアントＣ２に送信されるデータであり、マスターを経由して送信されるデータである。データＵＤ１１は、比較的小さいサイズのデータ（例えば、１００Ｂｙｔｅ程度）である。同様に、マスターがアプリケーションを実行することによって、マスターから全クライアントに送信するデータＢＤ２０を生成した場合、当該データＢＤ２０を即時にブロードキャストで送信せず、全送信箱１２０に一時的に格納する。また、マスターから全クライアントに送信するデータＢＤ２１をアプリケーションが生成した場合、当該データＢＤ２１を即時にブロードキャストで送信せず、全送信箱１２０に一時的に格納する。データＢＤ２０およびデータＢＤ２１は、比較的小さいサイズのデータ（例えば、１００Ｂｙｔｅ程度）である。
【０１５１】
より具体的には、マスターがデータＵＤ１０を個別送信箱１１０に格納する場合、マスターは、当該データＵＤ１０に付加情報１３０を付加する。付加情報１３０には、データＵＤ１０の送信元および送信先に関する情報が含まれる。また、付加情報１３０には、付加情報１３０とデータＵＤ１０とを含めたデータのサイズに関する情報が含まれる。例えば、データＵＤ１０の送信元および送信先に関する情報は、マスターおよびクライアントＣ１のＩＤ（またはＭＡＣアドレスでもよい）である。例えば、データＵＤ１０の送信元に関する情報は、マスターのＩＤ（またはＭＡＣアドレス）である。また、データＵＤ１０の送信先に関する情報は、クライアントＣ１のＩＤ（またはＭＡＣアドレス）である。同様に、マスターがデータＵＤ１１を個別送信箱１１０に格納する場合、マスターは、当該データＵＤ１１に付加情報１３１を付加する。付加情報１３１には、データＵＤ１１の送信元および送信先に関する情報が含まれる。また、付加情報１３１には、付加情報１３１とデータＵＤ１１とを含めたデータのサイズに関する情報が含まれる。例えば、データＵＤ１１の送信元および送信先に関する情報は、それぞれクライアントＣ１およびクライアントＣ２のＩＤ（またはＭＡＣアドレス）である。
【０１５２】
また、同様に、マスターがデータＢＤ２０を全送信箱１２０に格納する場合、マスターは、当該データＢＤ２０に付加情報１３２を付加する。付加情報１３２には、データＢＤ２０の送信元および送信先に関する情報が含まれる。また、付加情報１３２には、付加情報１３２とデータＢＤ２０とを含めたデータのサイズに関する情報が含まれる。例えば、データＢＤ２０の送信元および送信先に関する情報は、それぞれマスターおよび全端末（マスターやクライアント、オーディエンスを含めたネットワーク全体）であることを示すＩＤ（またはブロードキャストアドレスでもよい）である。同様に、マスターがデータＢＤ２１を全送信箱１２０に格納する場合、マスターは、当該データＢＤ２１に付加情報１３３を付加する。付加情報１３３には、データＢＤ２１の送信元および送信先に関する情報が含まれる。また、付加情報１３３には、付加情報１３３とデータＢＤ２１とを含めたデータのサイズに関する情報が含まれる。例えば、データＢＤ２１の送信元および送信先に関する情報は、それぞれマスターおよび全端末であることを示すＩＤ（またはブロードキャストアドレスでもよい）である。
【０１５３】
個別送信箱１１０は、所定のサイズ（例えば、１５００Ｂｙｔｅ）を有する。マスターは、個別送信箱１１０にデータを格納する際に、個別送信箱１１０の空きサイズに基づいて、データを格納することができるか否かを判定する。マスターは、これ以上個別送信箱１１０にデータを格納することができないと判定した場合、個別送信箱１１０に格納された全てのデータを取り出して、当該全てのデータを含む１つのフレームを生成する。例えば、マスターは、これ以上個別送信箱１１０にデータを格納することができないと判定した場合、ＵＤ１０およびＵＤ１１を含む１つのフレーム１５０を生成し、当該フレーム１５０を送信する。図１５に示すように、フレーム１５０のヘッダ部分には、送信先ＭＡＣアドレスとしてブロードキャストアドレスが指定される。また、フレーム１５０のデータ部分には、付加情報１３０が付加されたデータＵＤ１０、および、付加情報１３１が付加されたデータＵＤ１１が含まれる。さらに、フレーム１５０のデータ部分には、当該データ部分に含まれるデータの数（図１５に示す例では、２）が含まれる。このように、マスターは、マスターからクライアントＣ１へ送信するデータＵＤ１０、および、クライアントＣ１からクライアントＣ２へ送信するデータＵＤ１１を１つのフレーム１５０に含ませて、ブロードキャストで送信する。
【０１５４】
同様に、全送信箱１２０は、所定のサイズ（例えば、１５００Ｂｙｔｅ）を有し、マスターは、全送信箱１２０にデータを格納する際に、全送信箱１２０の空きサイズに基づいて、データを格納することができるか否かを判定する。マスターは、これ以上全送信箱１２０にデータを格納することができないと判定した場合、全送信箱１２０に格納された全てのデータを取り出して、当該全てのデータを含む１つのフレーム１６０を生成する。図１５に示すように、フレーム１６０のヘッダ部分には、送信先ＭＡＣアドレスとしてブロードキャストアドレスが指定される。また、フレーム１６０のデータ部分には、付加情報１３２が付加されたデータＢＤ２０、および、付加情報１３３が付加されたデータＢＤ２１が含まれる。さらに、フレーム１６０のデータ部分には、当該データ部分に含まれるデータの数（図１５に示す例では、２）が含まれる。このように、マスターは、サイズの小さいデータＢＤ２０、および、データＢＤ２１を１つのフレーム１６０に含ませて、ブロードキャストで送信する。
【０１５５】
なお、クライアントにおいても、マスターと同様、上記個別送信データを格納する個別送信箱１１０、上記全送信データを格納する全送信箱１２０が用意される。しかしながら、クライアントにおいては、他のクライアントから送信されたデータを、別のクライアントに送信することはない。従って、クライアントの個別送信箱１１０には、自機から他のクライアントに送信するデータのみが、複数格納される。
【０１５６】
（データ受信処理の概要）
次に、データ受信処理の概要について説明する。上記のようにしてマスターから送信されたフレームを各クライアントが受信した場合、各クライアントは、受信したフレームに含まれる、自機宛のデータのみを取得する。図１６は、マスターから送信されたフレームをクライアントが受信した場合、クライアントで行われる受信処理の概要を示す図である。
【０１５７】
図１６に示すように、フレーム１５０をマスターが送信した場合、クライアントＣ１およびクライアントＣ２は、フレーム１５０を受信する。フレーム１５０を受信したクライアントＣ１は、当該フレーム１５０に含まれる１番目のデータ（付加情報１３０とデータＵＤ１０とを含むデータ）の付加情報１３０を参照し、当該データが自機宛のデータか否かを判定する。１番目のデータはマスターからクライアントＣ１へ送信されたデータであるため、クライアントＣ１は、データＵＤ１０を含む１番目のデータのみを取り出す。次に、クライアントＣ１は、２番目のデータ（付加情報１３１とデータＵＤ１１とを含むデータ）の付加情報１３１を参照して、当該２番目のデータが自機宛のデータか否かを判定する。２番目のデータの始まりは、１番目のデータの付加情報１３０が示す当該データのサイズに基づいて決定できる。２番目のデータはクライアントＣ１からクライアントＣ２へ送信されたデータであるため、クライアントＣ１は、２番目のデータを破棄する。
【０１５８】
また、フレーム１５０を受信したクライアントＣ２は、当該フレーム１５０に含まれる１番目のデータ（付加情報１３０とデータＵＤ１０とを含むデータ）の付加情報１３０を参照し、当該データが自機宛のデータか否かを判定する。１番目のデータはマスターからクライアントＣ１へ送信されたデータであるため、クライアントＣ２は、当該１番目のデータを破棄する。次に、クライアントＣ２は、２番目のデータ（付加情報１３１とデータＵＤ１１とを含むデータ）の付加情報１３１を参照して、当該２番目のデータが自機宛のデータか否かを判定する。２番目のデータはクライアントＣ１からクライアントＣ２へ送信されたデータであるため、クライアントＣ２は、データＵＤ１１を含む２番目のデータのみを取り出す。
【０１５９】
また、フレーム１６０についても、各クライアントで上記と同様の処理が行われて、各データが取り出される。この場合、各クライアントは、フレーム１６０に含まれる全てのデータ（データＢＤ２０およびデータＢＤ２１）を取り出す。具体的には、フレーム１６０の１番目のデータ（付加情報１３２とデータＢＤ２０とを含むデータ）の付加情報１３２には、宛先が全端末に指定されている。このため、クライアントＣ１およびクライアントＣ２は、データＢＤ２０を含む１番目のデータを取り出す。同様に、フレーム１６０の２番目のデータ（付加情報１３３とデータＢＤ２１とを含むデータ）の付加情報１３３には、宛先が全端末に指定されているため、クライアントＣ１およびクライアントＣ２は、データＢＤ２１を含む２番目のデータを取り出す。
【０１６０】
このようにして、各クライアントは、マスターから送信されたフレームの中から、自機宛および全クライアント宛のデータのみを取り出し、それ以外のデータは全て破棄する。
【０１６１】
（データ送信処理の詳細）
次に、データ送信処理の詳細について、説明する。まず、図１７を参照して、マスターにおいて行われるデータ送信処理の詳細について、説明する。
【０１６２】
（マスターのデータ送信処理）
図１７は、マスターにおいて行われるデータ送信処理（マスター）の詳細を示すフローチャートである。なお、図１７に示すステップＳ５０〜ステップＳ６１の処理は、所定の時間間隔で繰り返し実行される。
【０１６３】
まず、ステップＳ５０において、マスターは、個別送信箱１１０および全送信箱１２０にデータを格納してから所定時間が経過している場合、格納されているデータを全て送信する。個別送信箱１１０および全送信箱１２０にデータを格納してから所定時間が経過していない場合、マスターは、格納されているデータを送信しない。具体的には、マスターは、個別送信箱１１０にデータが格納されている場合、当該個別送信箱１１０に格納されたデータのうち、最も古いデータが格納されてから所定時間が経過したか否かを判定する。判定結果が肯定の場合、マスターは、個別送信箱１１０に格納された全てのデータを取り出し、当該全てのデータを含む１つのフレームを生成して、当該フレームをブロードキャストで送信する。生成されるフレームのヘッダ部分には、マスターのＭＡＣアドレスが含まれる。
【０１６４】
同様に、マスターは、全送信箱１２０にデータが格納されている場合、当該全送信箱１２０に格納されたデータのうち、最も古いデータが格納されてから所定時間が経過したか否かを判定する。判定結果が肯定の場合、マスターは、全送信箱１２０に格納された全てのデータを取り出し、当該全てのデータを含む１つのフレームを生成して、当該フレームをブロードキャストで送信する。生成されるフレームのヘッダ部分には、マスターのＭＡＣアドレスが含まれる。ステップＳ５０の処理の後、マスターは、次にステップＳ５１の処理を実行する。
【０１６５】
ステップＳ５１において、マスターは、送信すべきデータを取得する。ここで取得される送信すべきデータは、例えば、マスター自身（アプリケーション層）が生成したデータ（マスターにおいて行われた操作に応じたデータ等、ゲーム処理の過程で生成したデータ）である。また、ここで取得される送信すべきデータは、例えば、あるクライアントから受信した、マスターを経由して他のクライアントに送信されるデータである。また、ここで取得される送信すべきデータは、例えば、あるクライアントから受信した、マスターを経由して全端末に送信されるデータである。より具体的には、送信すべきデータは、例えば、図１５に示すＵＤ１０、ＵＤ１１、ＢＤ２０、ＢＤ２１である。例えば、マスターは、自機の操作ボタン１４に対する操作が行われた場合、当該操作に応じたデータを生成する。マスターは、ステップＳ５１において、当該生成したデータを取得する。また、例えば、クライアントＣ１からマスターを経由してクライアントＣ２にデータが送信される場合、マスターは、クライアントＣ１からのデータを受信する（マスターのデータ受信処理については後述する）。マスターは、ステップＳ５１において、当該受信したデータを取得する。マスターは、次にステップＳ５２の処理を実行する。
【０１６６】
ステップＳ５２において、マスターは、取得したデータが個別送信データか否かを判定する。具体的には、マスターは、ステップＳ５１で取得したデータが、各クライアントに個別に送信するデータ（上記ＵＤ１０やＵＤ１１）か否かを判定する。例えば、マスターから他のクライアントに個別のデータを送信するための操作が行われた場合、マスターは、取得したデータが、クライアントに個別に送信するデータであると判定する。判定結果が肯定の場合、マスターは、次にステップＳ５３の処理を実行する。一方、判定結果が否定の場合、マスターは、次にステップＳ５７の処理を実行する。
【０１６７】
ステップＳ５３において、マスターは、取得したデータを個別送信箱１１０に格納可能か否かを判定する。具体的には、マスターは、ステップＳ５１で取得したデータと、個別送信箱１１０に格納されたデータのサイズとに基づいて、ステップＳ５１で取得したデータを個別送信箱１１０に格納可能か否かを判定する。判定結果が肯定の場合、マスターは、次にステップＳ５４の処理を実行する。一方、判定結果が否定の場合、マスターは、次にステップＳ５６の処理を実行する。
【０１６８】
ステップＳ５４において、マスターは、ステップＳ５１で取得したデータを個別送信箱１１０に格納する。具体的には、マスターは、ステップＳ５１で取得したデータに付加情報を付加して、個別送信箱１１０に格納する。より具体的には、マスターは、付加情報として、当該データの送信元および送信先に関する情報、および、サイズに関する情報を付加する。マスターは、次にステップＳ５５の処理を実行する。
【０１６９】
ステップＳ５５において、マスターは、取得したデータを即時送信すべきか否かを判定する。例えば、マスターは、ステップＳ５１でデータを取得した際に、アプリケーション層から指定されるパラメータに基づいて、取得したデータを即時送信すべきか否かを判定する。判定結果が肯定の場合、マスターは、次にステップＳ５６の処理を実行する。一方、判定結果が否定の場合、マスターは、次にステップＳ５７の処理を実行する。
【０１７０】
一方、ステップＳ５６において、マスターは、個別送信箱１１０に格納された全てのデータを取り出し、当該全てのデータを含む１つのフレームを生成して、当該フレームをブロードキャストで送信する（ブロードキャストフレームを送信する）。生成されるフレームのヘッダ部分には、マスターのＭＡＣアドレスが含まれる。ステップＳ５６の処理が行われることによって、個別送信箱１１０に格納された全てのデータ（上記ＵＤ１０およびＵＤ１１）がブロードキャストで送信されて、個別送信箱１１０は空になる。そして、マスターは、フレームを送信した後、ステップＳ５３で個別送信箱１１０に格納されなかったデータに付加情報を付加して、空になった個別送信箱１１０に当該データを格納する。なお、ステップＳ５１で取得したデータのサイズが個別送信箱１１０のサイズよりも大きい場合、マスターは、当該データを個別送信箱１１０に格納できないため、当該データを複数のフレームに分割して送信する。
【０１７１】
また、取得したデータを個別送信箱１１０に格納不可能（ステップＳ５３の判定結果が否定）であり、かつ、取得したデータを即時送信すべきである場合、マスターは、個別送信箱１１０に格納された全てのデータを含む１つのフレームを生成して送信する。その後、マスターは、ステップＳ５１で取得した、即時送信すべきデータと当該データの付加情報（送信先および送信元に関する情報）とを含む１つのフレームをさらに生成して、当該フレームを送信する。これにより、個別送信箱１１０に格納された全てのデータが送信されるとともに、ステップＳ５１で取得した即時送信すべきデータが送信される。
【０１７２】
また、マスターは、ステップＳ５６において、自機の状態が仮眠状態である場合、生成したフレームをメモリに一時的に保存し、自機の状態がアウェイク状態に移行した後で、当該フレームを送信する。すなわち、仮眠状態ではデータの送信が制限されるため、マスターは、仮眠状態からアウェイク状態に移行した後にフレームを送信する。マスターは、仮眠状態のときにフレームを生成してメモリに一時的に保存する場合、当該フレームに含まれる上記所定のフラグＭに１を設定する。また、マスターは、アウェイク状態のときにフレームを生成した場合、当該フレームに含まれる上記所定のフラグＭに０を設定し、当該フレームを送信する。フレームを受信したオーディエンスは、上述のようにＲＯＰＳモードが有効である場合、上記所定のフラグＭの値に応じてアウェイク状態を維持したり、仮眠状態に移行したりする。ステップＳ５６の処理の後、マスターは、図１７に示す送信処理を終了する。
【０１７３】
ステップＳ５７において、マスターは、ステップＳ５１で取得したデータが全送信データか否かを判定する。具体的には、マスターは、ステップＳ５１で取得したデータが、全クライアントに送信するデータ（上記ＢＤ２０やＢＤ２１）か否かを判定する。例えば、マスターにおいて操作されるゲームキャラクタ１０１に対する操作（操作ボタン１４等に対する操作）が行われた場合、マスターは、取得したデータが、全クライアントに送信するデータであると判定する。判定結果が肯定の場合、マスターは、次にステップＳ５８の処理を実行する。一方、判定結果が否定の場合、マスターは、図１７に示す処理を終了する。
【０１７４】
ステップＳ５８において、マスターは、全送信箱１２０にデータを格納可能か否かを判定する。具体的には、マスターは、ステップＳ５１で取得したデータと、全送信箱１２０の空きサイズとに基づいて、ステップＳ５１で取得したデータを全送信箱１２０に格納可能か否かを判定する。判定結果が肯定の場合、マスターは、次にステップＳ５９の処理を実行する。一方、判定結果が否定の場合、マスターは、次にステップＳ６１の処理を実行する。
【０１７５】
ステップＳ５９において、マスターは、ステップＳ５１で取得したデータを全送信箱１２０に格納する。具体的には、マスターは、ステップＳ５１で取得したデータに付加情報を付加して、全送信箱１２０に格納する。より具体的には、マスターは、付加情報として、当該データの送信元および送信先に関する情報、および、サイズに関する情報を付加する。ここで、送信先の情報として、全端末であることを示す情報が付加される。ステップＳ５９の処理の後、マスターは、次にステップＳ６０の処理を実行する。
【０１７６】
ステップＳ６０において、マスターは、データを即時送信すべきか否かを判定する。例えば、マスターは、ステップＳ５１でデータを取得した際に、アプリケーション層から指定されるパラメータに基づいて、データを即時送信すべきか否かを判定する。データを即時送信すべきと判定した場合、マスターは、ステップＳ５１で取得したデータを全送信箱１２０に格納して、次にステップＳ６１の処理を実行する。一方、判定結果が否定の場合、マスターは、図１７に示す送信処理を終了する。
【０１７７】
一方、ステップＳ６１において、マスターは、全送信箱１２０に格納された全てのデータを取り出し、当該データを含む１つのフレームを生成して、当該フレームをブロードキャストで送信する。生成されるフレームのヘッダ部分には、マスターのＭＡＣアドレスが含まれる。ステップＳ６１の処理が行われることによって、全送信箱１２０に格納された全てのデータ（上記ＢＤ２０およびＢＤ２１）が、ブロードキャストで送信される。そして、マスターは、フレームを送信した後、ステップＳ５９で全送信箱１２０に格納されなかったデータに付加情報を付加して、空になった全送信箱１２０に当該データを格納する。なお、ステップＳ５１で取得したデータのサイズが全送信箱１２０のサイズよりも大きい場合、マスターは、当該データを全送信箱１２０に格納できないため、当該データを複数のフレームに分割して送信する。また、ステップＳ５８において全送信箱１２０にステップＳ５１で取得したデータを格納することができないと判定され、かつ、当該ステップＳ５１で取得したデータが即時送信すべきデータである場合、マスターは、全送信箱１２０に格納された全てのデータを含む１つのフレームを送信した後、ステップＳ５１で取得したデータを含む１つのフレームをさらに送信する。ステップＳ６１の処理の後、マスターは、図１７に示す送信処理を終了する。
【０１７８】
（クライアントのデータ送信処理）
次に、図１８を参照して、クライアントにおいて行われるデータ送信処理の詳細について、説明する。図１８は、クライアントにおいて行われるデータ送信処理（クライアント）の詳細を示すフローチャートである。図１８において、図１７と同じ処理については同一の符号を付して説明を省略する。
【０１７９】
クライアントにおいて行われるデータ送信処理では、個別送信箱１１０に格納されたデータは、ブロードキャストではなく、ユニキャストでマスターに送信される。
【０１８０】
まず、クライアントは、図１７におけるステップＳ５０の処理の替わりに、ステップＳ６５の処理を行う。ステップＳ６５において、クライアントは、個別送信箱１１０および全送信箱１２０にデータを格納してから所定時間が経過している場合、格納されているデータを全て送信する。個別送信箱１１０および全送信箱１２０にデータを格納してから所定時間が経過していない場合、クライアントは、格納されているデータを送信しない。この場合において、クライアントは、個別送信箱１１０に格納されたデータをブロードキャストで送信する替わりに、当該データをユニキャストでマスターに送信する。具体的には、クライアントは、個別送信箱１１０にデータが格納されている場合、当該個別送信箱１１０に格納されたデータのうち、最も古いデータが格納されてから所定時間が経過したか否かを判定する。判定結果が肯定の場合、クライアントは、個別送信箱１１０に格納された全てのデータを取り出し、当該全てデータを含む１つのフレームを生成して、当該フレームをユニキャストでマスターに送信する。
【０１８１】
同様に、クライアントは、全送信箱１２０にデータが格納されている場合、当該全送信箱１２０に格納されたデータのうち、最も古いデータが格納されてから所定時間が経過したか否かを判定する。判定結果が肯定の場合、クライアントは、全送信箱１２０に格納された全てのデータを取り出し、当該全てデータを含む１つのフレームを生成して、当該フレームをブロードキャストで送信する。この場合において、生成されるフレームのヘッダ部分には、送信元アドレスとして自機（クライアント）のＭＡＣアドレスとともに、ＢＳＳＩＤとしてマスターのＭＡＣアドレスが含まれる。ステップＳ６５の処理の後、クライアントは、次にステップＳ６６の処理を実行する。
【０１８２】
ステップＳ６６において、クライアントは、送信すべきデータを取得する。ここで、送信すべきデータは、クライアント自身が生成したデータ（自機において行われた操作に応じたデータ等、ゲーム処理の過程で生成したデータ）である。クライアントは、マスターのように他の端末から送信されたデータを別の端末に転送することはないため、ステップＳ６６においては、クライアントは、クライアント自身が生成したデータを取得する。次に、クライアントは、ステップＳ６７の処理を実行する。
【０１８３】
ステップＳ６７において、クライアントは、ステップＳ６６で取得したデータがマスターを経由して送信するデータか否かを判定する。具体的には、クライアントは、取得したデータが個別送信データ（他のクライアントに個別に送信するデータ）である場合、マスターを経由して送信するデータであると判定する。また、クライアントは、取得したデータが全送信データ（全端末に送信するデータ）であっても、所定の条件を満たす場合、マスターを経由して送信するデータであると判定する。例えば、取得したデータの種類が所定の種類（例えば、自機で行われた操作に応じたデータであって全端末と共有すべきデータ）である場合、または、アプリケーション層から指定された場合、クライアントは、取得したデータが全送信データであっても、当該データはマスターを経由して送信するデータであると判定する。
【０１８４】
図２２は、マスターを経由してクライアントＣ１から全端末にデータが送信される様子を示す図である。図２２に示すように、クライアントＣ１は、自機で生成したデータＤ１を含むフレーム２００を生成して、当該フレーム２００をマスターに対して送信する。フレーム２００のヘッダ部分には、宛先ＭＡＣアドレスとしてマスターのＭＡＣアドレスが指定される。また、フレーム２００には、データＤ１と付加情報２０１とが含まれる。付加情報２０１は、データＤ１の送信元および送信先を示す情報である。具体的には、送信元の情報はクライアントＣ１を示す情報であり、送信先の情報は全端末（マスター、クライアントＣ２、および、オーディエンスを含む全端末）を示す情報である。フレーム２００を受信したマスターは、データＤ１とその付加情報２０１とを取り出し、これらデータＤ１および付加情報２０１を全送信箱１２０に格納し、データＤ１および付加情報２０１を含むフレームをブロードキャストで送信する。
【０１８５】
ステップＳ６７において判定結果が肯定の場合、クライアントは、次にステップＳ５３の処理を実行する。一方、判定結果が否定の場合、クライアントは、次にステップＳ６８の処理を実行する。
【０１８６】
クライアントは、ステップＳ５３からステップＳ５５の処理を行った後、ステップＳ６８の処理を実行する。
【０１８７】
ステップＳ６８において、クライアントは、ステップＳ６６で取得したデータが各端末に直接全送信するデータか否かを判定する。ここで、直接全送信するデータとは、クライアントから直接他のすべての端末に対してブロードキャストするデータである。クライアントは、マスターを経由せずに全ての端末に対してブロードキャストでデータを送信することが可能である。
【０１８８】
図２３は、クライアントＣ１から直接全端末にデータを送信する様子を示す図である。図２３に示すように、クライアントＣ１は、例えば自機で生成したデータＤ２を含むフレーム２１０を生成して、当該フレーム２１０を全端末にブロードキャストで送信する。フレーム２１０のヘッダ部分には、宛先ＭＡＣアドレスとしてブロードキャストアドレスが指定される。また、フレーム２１０には、データＤ２と付加情報２１１とが含まれる。付加情報２１１は、データＤ２の送信元（クライアントＣ１）および送信先（全端末）を示す情報である。各端末（マスター、クライアントＣ２、および、オーディエンス）は、フレーム２１０を受信して、データＤ２を取得する。このように、クライアントは、マスターを経由せずに直接全端末に対してデータを送信することが可能である。
【０１８９】
ステップＳ６８において判定結果が肯定の場合、クライアントは、次にステップＳ５８の処理を実行する。一方、判定結果が否定の場合、クライアントは、図１８に示す処理を終了する。
【０１９０】
また、クライアントは、図１７のステップＳ５６の処理の替わりに、ステップＳ６９の処理を実行する。
【０１９１】
ステップＳ６９において、クライアントは、個別送信箱１１０に格納された全てのデータを取り出し、当該全てのデータを含む１つのフレームを生成して、当該フレームをユニキャストでマスターに送信する（ユニキャストフレームを送信する）。ステップＳ６９の処理は、生成したフレームをブロードキャストではなくユニキャストでマスターに送信することを除いて、図１７のステップＳ５６の処理と同様である。以上で図１８の説明を終了する。
【０１９２】
このようにして、クライアントにおいては、個別送信箱１１０に格納したデータをユニキャストでマスターに送信する。
【０１９３】
（データ受信処理の詳細）
次に、データ受信処理の詳細について、説明する。まず、図１９を参照して、クライアントにおいて行われるデータ受信処理の詳細について、説明する。
【０１９４】
（クライアントのデータ受信処理）
図１９は、クライアントにおいて行われるデータ受信処理の詳細を示すフローチャートである。
【０１９５】
まず、ステップＳ７０において、クライアントは、フレームを受信する。具体的には、クライアントは、自機宛のフレーム、または、ブロードキャストで送信されたフレームのみを受信する。より具体的には、クライアントは、送信先アドレスが自機のＭＡＣアドレスと一致するフレームを受信する。また、クライアントは、送信先アドレスがブロードキャストアドレスであるフレームであって、かつ、自機のメモリに記憶した識別情報７３（マスターのＭＡＣアドレス）と一致する情報を含むフレームを受信する。マスターあるいは他のクライアントが送信したブロードキャストフレームには、ＢＳＳＩＤ（マスターのＭＡＣアドレスと一致する）が含まれるため、クライアントは、当該ＢＳＳＩＤが識別情報７３と一致する場合、当該ブロードキャストフレームを受信する。クライアントは、次にステップＳ７１の処理を実行する。
【０１９６】
ステップＳ７１において、クライアントは、ステップＳ７０で取得したフレームのデータ部分を参照して、当該フレームに含まれるデータの数（図１５参照）を取得する。クライアントは、次にステップＳ７２の処理を実行する。
【０１９７】
ステップＳ７２において、クライアントは、変数ｉに１をセットし、次にステップＳ７３の処理を実行する。
【０１９８】
ステップＳ７３において、クライアントは、ｉ番目のデータの付加情報を取得する。すなわち、クライアントは、ステップＳ７０で取得したフレームのデータ部分のうち、ｉ番目のデータの付加情報（送信元および送信先に関する情報、サイズに関する情報）を取得する。クライアントは、次にステップＳ７４の処理を実行する。
【０１９９】
ステップＳ７４において、クライアントは、ｉ番目のデータが自機または全端末宛か否かを判定する。ここで、全端末とは、ネットワーク内の全ての端末であり、マスター、クライアント、および、オーディエンスを含む。具体的には、クライアントは、ステップＳ７３で取得した付加情報のうち、送信先に関する情報を参照して、ｉ番目のデータが自機または全端末宛のデータか否かを判定する。より具体的には、クライアントは、送信先に関する情報が、自機のＩＤと一致するか否か（または自機のＭＡＣアドレスと一致するか否か）を判定する。また、クライアントは、送信先に関する情報が、全端末であることを示す値か否か（またはブロードキャストアドレスか否か）を判定する。判定結果が肯定の場合、クライアントは、次にステップＳ７５の処理を実行する。一方、判定結果が否定の場合、クライアントは、次にステップＳ７６の処理を実行する。
【０２００】
ステップＳ７５において、クライアントは、ｉ番目のデータ（図１６参照）を取り出す。なお、取り出されたｉ番目のデータは、メモリに格納される。そして、上述したゲーム処理（ステップＳ３７）において、メモリに格納されたｉ番目のデータを用いたゲーム処理が行われる。例えば、ｉ番目のデータに含まれる付加情報が示す送信元の情報（例えば、送信元がマスターであることを示す情報）と当該ｉ番目のデータに含まれるデータ本体（例えば、データＵＤ１０）とを用いて、ゲーム処理が行われる。クライアントは、次にステップＳ７６の処理を実行する。
【０２０１】
ステップＳ７６において、クライアントは、変数ｉに１を加算して、次にステップＳ７７の処理を実行する。
【０２０２】
ステップＳ７７において、クライアントは、変数ｉがステップＳ７１で取得したデータの数よりも大きいか否かを判定し、判定結果が肯定の場合、図１９に示す受信処理を終了する。一方、判定結果が否定の場合、クライアントは、ステップＳ７３の処理を再び実行する。
【０２０３】
ステップＳ７３〜ステップＳ７７の処理が繰り返し行われることによって、受信したフレームに含まれるデータのうち、自機または全クライアント宛のデータのみが取り出される。
【０２０４】
（オーディエンスのデータ受信処理）
次に、図２０を参照して、オーディエンスにおいて行われるデータ受信処理の詳細について、説明する。図２０は、オーディエンスにおいて行われるデータ受信処理（オーディエンス）の詳細を示すフローチャートである。なお、図２０において、図１９と同じ処理については同一の符号を付して説明を省略する。
【０２０５】
まず、ステップＳ８０において、オーディエンスは、フレームを受信する。具体的には、オーディエンスは、ブロードキャストで送信されたフレームを受信する。より具体的には、オーディエンスは、送信先アドレスがブロードキャストアドレスであるフレームであって、かつ、自機のメモリに記憶した識別情報７３（マスターのＭＡＣアドレス）と一致する情報を含むフレームを受信する。マスターあるいはクライアントが送信したブロードキャストフレームには、ＢＳＳＩＤが含まれるため、オーディエンスは、当該ＢＳＳＩＤが識別情報７３と一致する場合、当該ブロードキャストフレームを受信する。オーディエンスは、次にステップＳ７１からステップＳ７３の処理を実行する。
【０２０６】
ステップＳ７３の処理の後、オーディエンスは、ステップＳ８１の処理を実行する。
【０２０７】
ステップＳ８１において、オーディエンスは、ステップＳ７３で取得したｉ番目のデータが全端末宛か否かを判定する。具体的には、オーディエンスは、ステップＳ７３で取得した付加情報のうち、送信先に関する情報を参照して、ｉ番目のデータが全端末宛のデータか否かを判定する。より具体的には、オーディエンスは、送信先に関する情報が、全端末であることを示す値か否か（またはブロードキャストアドレスか否か）を判定する。判定結果が肯定の場合、オーディエンスは、次にステップＳ８２の処理を実行する。一方、判定結果が否定の場合、オーディエンスは、次にステップＳ７６の処理を実行する。
【０２０８】
ステップＳ８２において、オーディエンスは、ｉ番目のデータを取り出す。取り出されたｉ番目のデータは、メモリに格納される。そして、上述したゲーム処理（ステップＳ４９）において、メモリに格納されたｉ番目のデータを用いたゲーム処理が行われる。例えば、ｉ番目のデータに含まれる付加情報が示す送信元および送信先の情報と、当該ｉ番目のデータに含まれるデータ本体とを用いて、ゲーム処理が行われる。このように、オーディエンスは受信したフレームに含まれる全端末宛のデータを用いてゲーム処理を行うことにより、マスターおよび各クライアントで行われた操作に応じたゲーム処理の結果を得ることができる。オーディエンスは、次にステップＳ７６およびステップＳ７７の処理を実行する。
【０２０９】
このようにして、オーディエンスでは、フレームに含まれる全てのデータが個別に取り出され、当該個別に取り出されたデータに基づいて、ゲーム処理が行われる。
【０２１０】
（マスターのデータ受信処理）
次に、図２１を参照して、マスターにおいて行われるデータ受信処理の詳細について、説明する。図２１は、マスターにおいて行われるデータ受信処理（マスター）の詳細を示すフローチャートである。なお、図２１において、図１９と同じ処理については同一の符号を付して説明を省略する。
【０２１１】
まず、マスターは、ステップＳ９０の処理を行う。具体的には、マスターは、自機宛のフレーム、または、ブロードキャストで送信されたフレームを受信する。より具体的には、マスターは、送信先アドレスが自機（マスター）のＭＡＣアドレスと一致するフレームを受信する。また、マスターは、送信先アドレスがブロードキャストアドレスであるフレームであって、かつ、マスターのＭＡＣアドレスと一致する情報（ＢＳＳＩＤ）を含むフレームを受信する。ステップＳ９０の処理の後、マスターは、次にステップＳ７１およびステップＳ７２の処理を実行する。ステップＳ７２の処理の後、マスターは、ステップＳ９１の処理を行う。
【０２１２】
ステップＳ９１において、マスターは、ｉ番目のデータを取り出す。マスターは、取り出したｉ番目のデータについて、当該データの付加情報が示す送信先に応じた処理を行う。例えば、マスターは、取り出したｉ番目のデータが自機宛のデータである場合、当該ｉ番目のデータをメモリに記憶する。そして、上述したゲーム処理（ステップＳ２０）において、メモリに記憶されたｉ番目のデータが用いられる。また、マスターは、取り出したｉ番目のデータが他のクライアント宛のデータである場合、メモリに当該他のクライアント宛のデータ（取り出したｉ番目のデータ）を記憶する。そして、上述したデータ送信処理のステップＳ５１において、当該他のクライアント宛のデータが取得され、当該他のクライアント宛のデータが上記個別送信箱１１０に格納され、他のクライアントに送信される。また、マスターは、取り出したｉ番目のデータが全端末宛のデータである場合、メモリに当該全端末宛のデータ（取り出したｉ番目のデータ）を記憶する。そして、上述したデータ送信処理のステップＳ５１において、当該全端末宛のデータが取得され、当該全端末宛のデータが全送信箱１２０に格納され、全端末に送信される。
【０２１３】
ステップＳ９１の処理の後、マスターは、次にステップＳ７６およびステップＳ７７の処理を実行する。
【０２１４】
このようにして、マスターでは、フレームに含まれる全てのデータが個別に取り出され、当該個別に取り出されたデータがゲーム処理に用いられたり、クライアントに送信されたりする。
【０２１５】
以上のように、本実施形態では、マスターおよびクライアントは、相互に登録して互いに通信する。これにより、マスターおよびクライアント間でゲームが進行する。具体的には、ゲームが開始される前に、クライアントは、自機をマスターに登録させるために接続要求をマスターに送信する。マスターは当該接続要求を受信して、当該接続要求に対する応答をクライアントに送信するとともに、当該クライアントの識別情報（ＭＡＣアドレス）を自機に登録する。クライアントは、接続要求に対する応答を受信したことに応じて、自機にマスターの識別情報（ＭＡＣアドレス）を登録する。これにより、マスターおよびクライアントは、相互に登録する。一方、オーディエンスは、マスターには登録されずに、マスターを一方的に自機に登録する。すなわち、オーディエンスは、マスターに対して接続要求を送信することなく、マスターからのビーコンを受信して、当該ビーコンに含まれるマスターの識別情報（ＭＡＣアドレス）を自機に登録する。そして、オーディエンスは、マスターおよびクライアントが送信したデータを受信して、マスターおよびクライアント間で進行するゲームを観戦する。
【０２１６】
このように、オーディエンスはマスターには登録されないため、マスターはオーディエンスを管理する必要がない。従って、マスターおよびクライアント間で進行するゲームを観戦するオーディエンスの数には制限はなく、より多くのゲーム装置１０がオーディエンスとしてゲームに参加してもマスターの管理負荷が増大することはない。このため、例えば、複数人が参加して進行するゲームを、大多数のユーザが観戦することができる。
【０２１７】
また、本実施形態では、クライアントは、他のクライアントへのデータをマスターを経由して送信する。このため、クライアント間の距離が離れていたり、クライアント間に電波を妨害するものが存在したりすることによってクライアント間で直接通信ができない場合でも、クライアントは他のクライアントへデータを送信することができる。
【０２１８】
また、本実施形態では、マスター（あるいはクライアント）は、送信すべき比較的小さいサイズのデータを取得した場合、即時に当該データを送信せず、一時的にメモリに蓄積する。そして、マスターは、蓄積した複数のデータをまとめて１つのフレームで送信する。この場合において、マスターは、複数のデータのそれぞれについて、送信先および送信元に関する情報を付加する。
【０２１９】
このように、複数の比較的小さいサイズのデータを１つのフレームにまとめて送信することにより、各データを個々に送信する場合と比較して、データを送信する速度が速くなる。すなわち、フレームには送信すべきデータ本体にヘッダ等の情報が付加されるため、１つのデータを１つのフレームに含めて複数のフレームを送信するよりも、複数のデータを１つのフレームに含めて送信する方が、効率がよい。上記実施形態のような複数のゲーム装置が無線通信で接続されて進行するゲームの場合、各ゲーム装置間では比較的小さいサイズのデータが頻繁にやり取りされることが多い。このような場合、各データを各フレームに含めてそれぞれ送信すると、データを送受信する速度が遅くなり、ゲームの進行の障害となることがある。しかしながら、本実施形態では、複数のデータを１つのフレームにまとめて送信するため、効率的にデータを送受信することができる。
【０２２０】
（変形例）
なお、上記実施形態では、クライアントおよびオーディエンスはマスターのＭＡＣアドレスを登録し、マスターはクライアントのＭＡＣアドレスを登録した。他の実施形態では、各端末を識別可能な識別情報であれば、どのような情報を登録してもよい。
【０２２１】
また、上記実施形態では、マスターはビーコンを送信し、クライアントは当該ビーコンを受信（パッシブスキャン）したことに応じて、接続要求を当該ビーコンを送信したマスターに対して送信することにより、マスターとクライアントとは相互に接続（登録）した。他の実施形態では、アクティブスキャンにより、マスターとクライアントとが相互に接続されてもよい。すなわち、クライアントがプローブリクエストを送信し、当該プローブリクエストに応じて、マスターがプローブレスポンス（管理フレームの一種）を送信してもよい。そして、クライアントがマスターからのプローブレスポンスを受信したことに応じて、クライアントが接続要求を送信してもよい。
【０２２２】
また、上記実施形態では、マスターとクライアントとの間での認証はオープンシステム認証であるとしたが、他の実施形態では、他の認証方式でマスターとクライアントとが認証されてもよい。
【０２２３】
また、上記実施形態では、各ゲーム装置がＩＥＥＥ８０２．１１の規格に従って通信を行うこととしたが、他の実施形態では、どのような規格によって通信が行われてもよい。
【０２２４】
また、上記実施形態では、順次取得したデータを個別送信箱１１０等に順次格納した。他の実施形態では、各データは順次取得される必要はなく、個別送信箱１１０等に格納される必要はない。例えば、アプリケーションが同時に宛先の異なる複数のデータを生成した場合、個別送信箱１１０等に当該複数のデータを格納せずに、当該複数のデータと宛先の情報とを含む１つのフレームを生成して、送信してもよい。
【０２２５】
また、上記実施形態では、取得したデータを個別送信箱１１０等に格納することができない場合、すなわち、個別送信箱１１０等に空き領域がない場合、個別送信箱１１０等のデータを送信した。また、個別送信箱１１０等にデータを格納してから所定時間経過した場合、格納された全てのデータを送信した。さらに、取得したデータが即時送信すべきデータである場合、当該即時送信すべきデータとともに個別送信箱１１０等に格納されたデータを送信した。他の実施形態では、これら３つの条件に限らず、格納されたデータを送信するための所定の条件が満たされた場合に、格納されたデータを送信してもよい。例えば、所定の時間間隔で自動的に格納されたデータを送信するようにしてもよいし、各ゲーム装置１０においてゲームの状態が所定の状態になった場合に、格納されたデータを送信してもよい。
【０２２６】
また、上記実施形態では、個別送信箱１１０等に格納された全てのデータを１つのフレームに含めて送信した。他の実施形態では、個別送信箱１１０等に格納された全てのデータを送信せずに、個別送信箱１１０等に格納されたデータのうちの少なくとも２つのデータを１つのフレームに含めて送信してもよい。例えば、最も古いデータから数えてＮ個目までのデータが１つのフレームで送信されてもよい。
【０２２７】
また、上記実施形態では、マスターはブロードキャストでデータを送信したが、他の実施形態では、マルチキャストでデータを送信してもよい。
【０２２８】
また、上記実施形態では、携帯型ゲーム装置を想定して各ゲーム装置が無線通信を行うこととしたが、他の実施形態では、バッテリで動作する情報処理装置であってもよいし、常時電力供給を受ける情報処理装置であってもよい。また、情報処理装置は、有線で通信を行うものであってもよい。この場合、各情報処理装置は、ＨＵＢ等で接続され、データ通信を行う。
【０２２９】
また、他の実施形態においては、上述した処理の一部又は全部は、１又は複数の専用回路によって行われてもよい。また、上記処理は、ゲーム装置１０が備える複数のコンピュータ（ＣＰＵ３１１や無線通信モジュール３６内の処理部等）によって行われてもよい。
【０２３０】
また、上述した通信方法は、ゲーム装置１０以外の携帯型情報処理装置、例えば、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）や無線ＬＡＮ機能を有する高機能携帯電話、独自の通信方式により他の機器と通信可能に構成された携帯型情報処理装置等において適用されてもよい。
【符号の説明】
【０２３１】
１０  ゲーム装置
１４  操作ボタン
１５  アナログスティック
３１  情報処理部
３２  メインメモリ
３６  無線通信モジュール
３１１  ＣＰＵ
８０  登録テーブル
１０１、１０２、１０３  ゲームキャラクタ
１１０  個別送信箱
１２０  全送信箱
１３０、１３１、１３２、１３３  付加情報
【図１】
0005883962.tif 000002
【図２】
0005883962.tif 000003
【図３】
0005883962.tif 000004
【図４】
0005883962.tif 000005
【図５】
0005883962.tif 000006
【図６】
0005883962.tif 000007
【図７】
0005883962.tif 000008
【図８】
0005883962.tif 000009
【図９】
0005883962.tif 000010
【図１０】
0005883962.tif 000011
【図１１】
0005883962.tif 000012
【図１２】
0005883962.tif 000013
【図１３】
0005883962.tif 000014
【図１４】
0005883962.tif 000015
【図１５】
0005883962.tif 000016
【図１６】
0005883962.tif 000017
【図１７】
0005883962.tif 000018
【図１８】
0005883962.tif 000019
【図１９】
0005883962.tif 000020
【図２０】
0005883962.tif 000021
【図２１】
0005883962.tif 000022
【図２２】
0005883962.tif 000023
【図２３】
0005883962.tif 000024