(57)【特許請求の範囲】
【請求項１】
互いにネットワークを介してサーバと通信可能な複数のゲーム装置を用いるネットワークゲームシステムであって、
前記複数のゲーム装置の中には、所定のゲームを実行するための製品版のゲープログラムを有する第１ゲーム装置と、当該製品版のゲームプログラムに対応する体験版のゲームプログラムを有する第２ゲーム装置とが存在し、
前記第１ゲーム装置は、
前記第２ゲーム装置からの接続を許容する接続受付を前記サーバに対して行う接続受付手段を備え、
前記第２ゲーム装置は、
前記体験版のゲームプログラムを実行することにより、前記第１ゲーム装置への接続要求を前記サーバに対して行う接続要求手段、
前記サーバからの接続許可情報を受信する接続情報受信手段、および
前記接続情報受信手段によって接続許可情報を受信したとき、当該接続許可情報が示す第１ゲーム装置との間で通信することにより、前記体験版のゲームプログラムに基づく通信ゲームを行う通信ゲーム処理手段を備え、
前記サーバは、
前記第２ゲーム装置から接続要求を受けたとき、前記第１ゲーム装置が接続受付を行っているか否かを判別する接続受付判別手段、および
前記接続受付判別手段によって接続受付を行っていることが判別されたとき、少なくとも当該接続受付を行っている第１ゲーム装置に関する接続許可情報を、前記接続要求を行った第２ゲーム装置に送信する接続許可情報送信手段を備え、
前記第２ゲーム装置同士を接続しての通信ゲームは行えない、ネットワークゲームシステム。
【請求項２】
前記複数のゲーム装置の各々は、少なくとも他のゲーム装置を識別するための識別情報を前記サーバに送信する他機識別情報送信手段をさらに備え、
前記サーバは、
各々のゲーム装置から受信した識別情報を、当該各々のゲーム装置に割り当てられるとともに、前記サーバで管理される他機識別情報記憶領域に書き込む他機識別情報登録手段、および
前記接続受付判別手段によって接続受付を行っていることが判別されたとき、前記接続要求を行った前記第２ゲーム装置の識別情報が前記接続受付を行った前記第１ゲーム装置の他機識別情報記憶領域に登録されているかどうかを判別する登録判別手段をさらに備え、
前記接続許可情報送信手段は、前記登録判別手段によって前記第２ゲーム装置の識別情報が登録されていることが判別されたとき、当該第２ゲーム装置に接続許可情報を送信する、請求項１記載のネットワークゲームシステム。
【請求項３】
前記サーバは、前記第２ゲーム装置から接続要求を受けたとき、当該第２ゲーム装置の他機識別情報記憶領域に登録されている識別情報を当該第２ゲーム装置側において少なくとも選択可能にした選択情報を、当該第２ゲーム装置に送信する選択情報送信手段、および前記第２ゲーム装置から通知される識別情報を受信する識別情報受信手段をさらに備え、
前記第２ゲーム装置は、前記選択情報を受信する選択情報受信手段、および前記選択情報受信手段によって受信された選択情報に基づいて選択された前記第１ゲーム装置の識別情報を前記サーバに通知する接続相手通知手段をさらに備え、
前記登録判別手段は、前記識別情報受信手段によって受信された識別情報が示す第１ゲーム装置の他機識別情報記憶領域に、当該識別情報を通知した第２ゲーム装置の識別情報が登録されているか否かを判別する、請求項２記載のネットワークゲームシステム。
【請求項４】
前記サーバは、前記第１ゲーム装置から接続受付を受けたとき、当該第１ゲーム装置の接続状態を接続可能状態に設定し、前記第２ゲーム装置から接続要求を受けたとき、当該第２ゲーム装置の接続状態を接続要求状態に設定する接続状態設定手段をさらに備え、
前記選択情報は、他のゲーム装置の接続状態をさらに含み、
前記第２ゲーム装置は、前記選択情報に基づいて、他のゲーム装置および当該他のゲーム装置の接続状態を表示手段に表示する他機情報表示手段をさらに備える、請求項３記載のネットワークゲームシステム。
【請求項５】
前記識別情報はゲームの種類を識別するためのゲーム種別情報をさらに含み、
前記接続要求手段は、前記接続要求として自己の識別情報を前記サーバに送信し、
前記選択情報送信手段は、前記接続要求手段から送信された識別情報に含まれるゲーム種別情報と同じゲーム種別情報を含む、かつ当該第２ゲーム装置の他機識別情報記憶領域に登録されている識別情報を当該第２ゲーム装置側において少なくとも選択可能にした選択情報を当該第２ゲーム装置に送信する、請求項３または４記載のネットワークゲームシステム。
【請求項６】
前記体験版のゲームプログラムは、前記製品版のゲームプログラムの一部の通信ゲーム処理プログラムである、請求項１ないし５のいずれかに記載のネットワークゲームシステム。
【請求項７】
ネットワークを介してサーバと通信可能なゲーム装置であって、
体験版のゲームプログラムを実行することにより、当該体験版に対応する製品版のゲームプログラムを有する他のゲーム装置への接続要求を前記サーバに対して行う接続要求手段、
前記サーバからの接続許可情報を受信する接続情報受信手段、および
前記接続情報受信手段によって接続許可情報を受信したとき、当該接続許可情報が示す他のゲーム装置との間で通信することにより、前記体験版のゲームプログラムに基づく通信ゲームを行う通信ゲーム処理手段を備え、
前記体験版のゲームプログラムを有する他のゲーム装置との間で接続しての通信ゲームは行えない、ゲーム装置。
【請求項８】
ネットワークを介してサーバと通信可能なゲーム装置のゲームプログラムであって、
前記ゲームプログラムは体験版のゲームプログラムであって、当該体験版のゲームプログラムを実行させることにより、
前記ゲーム装置のコンピュータを、
前記体験版に対応する製品版のゲームプログラムを有する他のゲーム装置への接続要求を前記サーバに対して行う接続要求手段、
前記サーバからの接続許可情報を受信する接続情報受信手段、および
前記接続情報受信手段によって接続許可情報を受信したとき、当該接続許可情報が示す他のゲーム装置との間で通信することにより、通信ゲームを行う通信ゲーム処理手段として機能させ、
前記体験版のゲームプログラムを有する他のゲーム装置との間で接続しての通信ゲームは行えない、ゲームプログラム。
【請求項９】
ネットワークを介してサーバと通信可能なゲーム装置のゲーム制御方法であって、
前記ゲーム装置は、体験版のゲームプログラムを実行することにより、
（ａ）通信手段を用いて、前記体験版のゲームプログラムを有する他のゲーム装置への接続要求を前記サーバに対して行えず、前記体験版に対応する製品版のゲームプログラムを有する他のゲーム装置への接続要求を前記サーバに対して行い、
（ｂ）前記通信手段を用いて、前記サーバからの接続許可情報を受信し、そして
（ｃ）前記ステップ（ｂ）において接続許可情報を受信したとき、前記通信手段を用いて、当該接続許可情報が示す他のゲーム装置と接続して通信することにより、通信ゲームを行う、ゲーム制御方法。
【請求項１０】
互いに通信可能な複数のゲーム装置を用いるゲームシステムであって、
前記複数のゲーム装置の中には、所定のゲームを実行するための製品版のゲームプログラムを有する第１ゲーム装置と、当該製品版のゲームプログラムに対応する体験版のゲームプログラムを有する第２ゲーム装置とが存在し、
前記第１ゲーム装置と前記第２ゲーム装置の接続を制御する接続制御手段を備え、
前記第１ゲーム装置は、
前記製品版のゲームプログラムを実行することにより、前記接続制御手段の制御に基づいて接続された前記第２ゲーム装置との間で通信ゲームを行う第１通信ゲーム処理手段を備え、
前記第２ゲーム装置は、
前記体験版のゲームプログラムを実行することにより、前記接続制御手段の制御に基づいて接続された前記第１ゲーム装置との間で通信ゲームを行う第２通信ゲーム処理手段を備え、
前記接続制御手段は、前記第２ゲーム装置同士を接続しない、ゲームシステム。
【請求項１１】
他のゲーム装置と通信可能なゲーム装置であって、
製品版のゲームプログラムに対応する体験版のゲームプログラムを実行することにより、通信手段を用いて、前記製品版のゲームプログラムを有する前記他のゲーム装置と接続して通信ゲームを行う通信ゲーム処理手段を備え、
前記通信ゲーム処理手段は、前記体験版のゲームプログラムを有する前記他のゲーム装置と接続しない、ゲーム装置。
【請求項１２】
他のゲーム装置と通信可能なゲーム装置のゲームプログラムであって、
前記ゲームプログラムは製品版のゲームプログラムに対応する体験版のゲームプログラムであって、当該体験版のゲームプログラムを実行させることにより、
前記ゲーム装置のコンピュータを、
通信手段を用いて、前記製品版のゲームプログラムを有する前記他のゲーム装置と接続して通信ゲームを行う通信ゲーム処理手段として機能させ、
前記通信ゲーム処理手段は、前記体験版のゲームプログラムを有する前記他のゲーム装置と接続しない、ゲームプログラム。
【請求項１３】
他のゲーム装置と通信可能なゲーム装置のゲーム制御方法であって、
前記ゲーム装置のコンピュータは、製品版のゲームプログラムに対応する体験版のゲームプログラムを実行することにより、
（ａ）通信手段を用いて、前記体験版のゲームプログラムを有する前記他のゲーム装置と接続せずに、前記製品版のゲームプログラムを有する前記他のゲーム装置と接続し、そして
（ｂ）前記通信手段を用いて、前記ステップ（ａ）において接続した前記他のゲーム装置との間で通信ゲームを行う、ゲーム制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はネットワークゲームシステム、ゲーム装置およびゲームプログラムに関し、特にたとえば、互いにネットワークを介してサーバと通信可能な複数のゲーム装置を用いるネットワークゲームのための、ネットワークゲームシステム、ゲーム装置およびゲームプログラムに関する。
【背景技術】
【０００２】
従来のネットワークゲームシステムでは、たとえば、プレイヤは、端末（コンピュータ、ゲーム専用機、携帯電話機など）からネットワークを介してサーバに接続し、当該サーバに接続している他の端末（他のプレイヤ）の中からゲームの相手を選択（決定）する。そして、プレイヤは、選択した相手と一緒にゲーム（対戦ゲーム、ロールプレイングゲームなど）をプレイしていた。
【０００３】
また、この種の背景技術のネットワークゲームシステムの一例が特許文献１に開示される。この特許文献１に開示されるネットワークシステムでは、対戦サービスプログラムとして囲碁ゲームを実行するためのゲームプログラムを内蔵した端末を用いて碁会所サーバに接続することにより、碁会所サーバを介して、対戦サービスプログラムを内蔵した他の端末と通信対戦ゲームを行うことができる。
【特許文献１】特開２００２−４５５７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１のネットワークシステムでは、碁会所サーバに接続して通信対戦ゲームを行うなどのサービスを受けることができるのは、対戦サービスプログラムを内蔵した端末に限定される。つまり、製品版のゲームプログラムを有する端末のみがネットワークにおけるサービスの提供を受けることができる。そのため、対戦サービスプログラムを内蔵していない端末は、通信対戦ゲームに参加することができないという問題があった。したがって、製品版のゲームプログラムを購入する前に、そのゲームを体験することができなかった。
【０００５】
それゆえに、この発明の主たる目的は、新規な、ネットワークゲームシステム、ゲーム装置およびゲームプログラムを提供することである。
【０００６】
この発明の他の目的は、通信ゲームに手軽に参加できる、ネットワークゲームシステム、ゲーム装置およびゲームプログラムを提供することである。
【０００７】
この発明のその他の目的は、製品版のゲームプログラムを有するゲーム装置とその体験版のゲームプログラムを有するゲーム装置との間で通信ゲームをプレイできる、ネットワークゲームシステム、ゲーム装置およびゲームプログラムを提供することである。
【課題を解決するための手段】
【０００８】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００９】
第１の発明は、互いにネットワークを介してサーバと通信可能な複数のゲーム装置を用いるネットワークゲームシステムであって、複数のゲーム装置の中には、所定のゲームを実行するための製品版のゲープログラムを有する第１ゲーム装置と、当該製品版のゲームプログラムに対応する体験版のゲームプログラムを有する第２ゲーム装置とが存在する。第１ゲーム装置は、第２ゲーム装置からの接続を許容する接続受付をサーバに対して行う接続受付手段を備える。第２ゲーム装置は、体験版のゲームプログラムを実行することにより、第１ゲーム装置への接続要求をサーバに対して行う接続要求手段、サーバからの接続許可情報を受信する接続情報受信手段、および接続情報受信手段によって接続許可情報を受信したとき、当該接続許可情報が示す第１ゲーム装置との間で通信することにより、体験版のゲームプログラムに基づく通信ゲームを行う通信ゲーム処理手段を備える。サーバは、第２ゲーム装置から接続要求を受けたとき、第１ゲーム装置が接続受付を行っているか否かを判別する接続受付判別手段、および接続受付判別手段によって接続受付を行っていることが判別されたとき、少なくとも当該接続受付を行っている第１ゲーム装置に関する接続許可情報を、接続要求を行った第２ゲーム装置に送信する接続許可情報送信手段を備え、第２ゲーム装置同士を接続しての通信ゲームは行えない。
【００１０】
第１の発明では、ネットワークゲームシステム（１１０）は、互いにネットワーク（１０８）を介してサーバ（１０６）と通信可能な複数のゲーム装置（１２）を用いる。複数のゲーム装置の中には、所定のゲームを実行するための製品版のゲープログラム（２００）を有する第１ゲーム装置と、当該製品版のゲームプログラムに対応する体験版のゲームプログラム（２００´）を有する第２ゲーム装置とが存在する。第１ゲーム装置では、接続受付手段（４０，Ｓ１７１）が第２ゲーム装置からの接続を許容する接続受付をサーバに対して行う。つまり、第１ゲーム装置のプレイヤは、通信ゲームの相手を募集する。一方、第２ゲーム装置では、体験版のゲームプログラムが実行されることにより、接続要求手段（４０，Ｓ２０９）が、第１ゲーム装置への接続要求をサーバに対して行う。サーバでは、接続受付判別手段（Ｓ３４５）が、第２ゲーム装置から接続要求を受けたとき（Ｓ３４２で“ＹＥＳ”）、第１ゲーム装置が接続受付を行っているか否かを判別する。そして、接続受付判別手段によって接続受付を行っていることが判別されたとき（Ｓ３４５で“ＹＥＳ”）、接続許可情報送信手段（Ｓ３４９）は、少なくとも当該接続受付を行っている第１ゲーム装置に関する接続許可情報（たとえば、第１ゲーム装置のＩＰアドレス）を、接続要求を行った第２ゲーム装置に送信する。すると、第２ゲーム装置では、接続情報受信手段（４０，Ｓ２１１）がサーバからの接続許可情報を受信する。そして、第２ゲーム装置では、接続情報受信手段によって接続許可情報を受信したとき（Ｓ２１１で“ＹＥＳ”）、通信ゲーム処理手段（Ｓ２１５）が、当該接続許可情報が示す第１ゲーム装置との間で通信することにより（Ｓ２１３）、体験版のゲームプログラムに基づく通信ゲームを行う。第２ゲーム装置は、接続要求を行うが、接続受付を行わないので、第２通信ゲーム装置同士を接続しての通信ゲームは行えない。
【００１１】
第１の発明によれば、サーバは、体験版のゲームプログラムを有する第２ゲーム装置からの要求に応じて製品版のゲームプログラムを有する第１ゲーム装置の接続先を通知して、第１ゲーム装置と第２ゲーム装置との間で通信ゲームを行うので、無料で配布される体験版のゲームプログラムを取得して通信ゲームに手軽に参加することができる。また、製品版のゲームプログラムを有するゲーム装置と体験版のゲームプログラムを有するゲーム装置との間で通信ゲームをプレイすることができる。
【００１２】
第２の発明は第１の発明に従属し、複数のゲーム装置の各々は、少なくとも他のゲーム装置を識別するための識別情報をサーバに送信する他機識別情報送信手段をさらに備える。サーバは、各々のゲーム装置から受信した識別情報を、当該各々のゲーム装置に割り当てられるとともに、サーバで管理される他機識別情報記憶領域に書き込む他機識別情報登録手段、および接続受付判別手段によって接続受付を行っていることが判別されたとき、接続要求を行った第２ゲーム装置の識別情報が接続受付を行った第１ゲーム装置の他機識別情報記憶領域に登録されているかどうかを判別する登録判別手段をさらに備える。接続許可情報送信手段は、登録判別手段によって第２ゲーム装置の識別情報が登録されていることが判別されたとき、当該第２ゲーム装置に接続許可情報を送信する。
【００１３】
第２の発明では、各ゲーム装置は、他機識別情報送信手段（４０，Ｓ１４９）をさらに備える。この他機識別情報送信手段は、他のゲーム装置を識別するための識別情報（実施例では、通信ゲーム毎に割り当てられるプロファイルＩＤ）をサーバに送信する。サーバでは、他機識別情報登録手段（Ｓ３２５）が、各々のゲーム装置から受信した識別情報を、当該各々のゲーム装置に割り当てられるとともに、サーバで管理される他機識別情報記憶領域（１２２）に書き込む。また、サーバでは、接続受付判別手段によって接続受付を行っていることが判別されたとき（Ｓ３４５で“ＹＥＳ”）、登録判別手段（Ｓ３４７）が、接続要求を行った第２ゲーム装置の識別情報が接続受付を行った第１ゲーム装置の他機識別情報記憶領域に登録されているかどうかを判別する。つまり、第１ゲーム装置が、少なくとも接続要求を行った第２ゲーム装置の識別情報を登録しているかどうかを判別しているのである。そして、接続許可情報送信手段は、登録判別手段によって第２ゲーム装置の識別情報が登録されていることが判別されたとき（Ｓ３４７で“ＹＥＳ”）、当該第２ゲーム装置に接続許可情報を送信する。
【００１４】
第２の発明によれば、要求元の第２ゲーム装置の識別情報が要求先の第１ゲーム装置の他機識別情報記憶領域に登録されているかどうかを判別し、登録されている場合に接続許可情報を送信するので、識別情報を非公開にすれば、知人や友達との間で識別情報を教え合って、そのような相手と通信ゲームをプレイすることができる。したがって、不特定の相手と通信ゲームをプレイする場合に比べて、安心して通信ゲームに参加することができる。
【００１５】
第３の発明は第２の発明に従属し、サーバは、第２ゲーム装置から接続要求を受けたとき、当該第２ゲーム装置の他機識別情報記憶領域に登録されている識別情報を当該第２ゲーム装置側において少なくとも選択可能にした選択情報を、当該第２ゲーム装置に送信する選択情報送信手段、および第２ゲーム装置から通知される識別情報を受信する識別情報受信手段をさらに備える。第２ゲーム装置は、選択情報を受信する選択情報受信手段、および選択情報受信手段によって受信された選択情報に基づいて選択された第１ゲーム装置の識別情報をサーバに通知する接続相手通知手段をさらに備える。登録判別手段は、識別情報受信手段によって受信された識別情報が示す第１ゲーム装置の他機識別情報記憶領域に、当該識別情報を通知した第２ゲーム装置の識別情報が登録されているか否かを判別する。
【００１６】
第３の発明では、サーバの選択情報送信手段（Ｓ３３９）は、第２ゲーム装置から接続要求を受けたとき、当該第２ゲーム装置の他機識別情報記憶領域に登録されている識別情報を当該第２ゲーム装置側において少なくとも選択可能にした選択情報（実施例では、個別リクエスト状態リスト）を作成し（Ｓ３３７）、当該第２ゲーム装置に送信する。第２ゲーム装置では、選択情報受信手段（４０，Ｓ２０３）が選択情報を受信し、接続相手通知手段（４０，Ｓ２０９）が選択情報に基づいて選択された第１ゲーム装置の識別情報をサーバに通知する。すると、サーバでは、識別情報受信手段（Ｓ３４１）が第２ゲーム装置から通知される識別情報を受信する。そして、登録判別手段は、識別情報受信手段によって受信された識別情報が示す第１ゲーム装置の他機識別情報記憶領域に、当該識別情報を通知した第２ゲーム装置の識別情報が登録されているか否かを判別する。
【００１７】
第３の発明によれば、第２ゲーム装置では選択情報に基づいて第１ゲーム装置を選択するので、知人や友達のようなプレイヤを選択し、安心して通信ゲームに参加することができる。
【００１８】
第４の発明は第３の発明に従属し、サーバは、第１ゲーム装置から接続受付を受けたとき、当該第１ゲーム装置の接続状態を接続可能状態に設定し、第２ゲーム装置から接続要求を受けたとき、当該第２ゲーム装置の接続状態を接続要求状態に設定する接続状態設定手段をさらに備え、選択情報は、他のゲーム装置の接続状態をさらに含み、第２ゲーム装置は、選択情報に基づいて、他のゲーム装置および当該他のゲーム装置の接続状態を表示手段に表示する他機情報表示手段をさらに備える。
【００１９】
第４の発明では、サーバは接続状態設定手段（Ｓ３２９，Ｓ３３３）をさらに備える。この接続状態設定手段は、第１ゲーム装置から接続要求を受けたとき（Ｓ３２７で“ＹＥＳ”）、この第１ゲーム装置の接続状態を接続可能状態（実施例では、通信ゲームの相手を募集している状態）に設定する。また、接続状態設定手段は、第２ゲーム装置からの接続要求を受けたとき（Ｓ３３１で“ＹＥＳ”）、この第２ゲーム装置の接続状態を接続要求状態（実施例では、募集中の通信ゲームへの参加を要求している状態）に設定する。たとえば、選択情報は、他のゲーム装置の接続状態を含む。第２ゲーム装置では、他機情報表示手段（４０，Ｓ２０５）が、選択情報に基づいて、他のゲーム装置および当該他のゲーム装置の接続状態を表示手段に表示する。
【００２０】
第４の発明によれば、他のゲーム装置の接続状態を表示するので、第２ゲーム装置のプレイヤは所望の第１ゲーム装置を容易に選択することができる。
【００２１】
第５の発明は第３の発明または第４の発明に従属し、識別情報はゲームの種類を識別するためのゲーム種別情報をさらに含み、接続要求手段は、接続要求として自己の識別情報をサーバに送信し、選択情報送信手段は、接続要求手段から送信された識別情報に含まれるゲーム種別情報と同じゲーム種別情報を含む、かつ当該第２ゲーム装置の他機識別情報記憶領域に登録されている識別情報を当該第２ゲーム装置側において少なくとも選択可能にした選択情報を当該第２ゲーム装置に送信する。
【００２２】
第５の発明では、識別情報はゲームの種類を識別するためのゲーム種別情報（実施例では、ゲームコードないしアプリＩＤ）を含む。また、接続要求手段は、接続要求として自己（第２ゲーム装置）の識別情報をサーバに送信する。すると、サーバでは、接続要求手段（第２ゲーム装置）からの識別情報（接続要求）を受ける。サーバでは、選択情報送信手段が、接続要求手段から送信された識別情報に含まれるゲーム種別情報と同じゲーム種別情報を含む、かつ当該第２ゲーム装置の他機識別情報記憶領域に登録されている識別情報を当該第２ゲーム装置側において少なくとも選択可能にした選択情報を作成する。そして、作成された選択情報が当該第２ゲーム装置に送信される。
【００２３】
第５の発明によれば、ゲームの種別に応じた選択情報を送信するので、たとえば、サーバが複数種類の通信ゲームの仲介を行う場合であっても、所望の通信ゲームに参加することができる。
【００２４】
第６の発明は第１の発明ないし第５の発明のいずれかに従属し、体験版のゲームプログラムは、製品版のゲームプログラムの一部の通信ゲーム処理プログラムである。
【００２５】
第６の発明では、体験版のゲームプログラムは、製品版のゲームプログラムの一部の通信処理プログラム（２１２ａ，２１２ｂ，２１２ｄ，２１２ｅ，２２０ｂ，２２０ｃ）である。
【００２６】
第６の発明によれば、製品版のゲームプログラムを有していなくても、体験版のゲームプログラムを実行することにより、製品版のゲームプログラムを有しているプレイヤと通信ゲームをプレイすることができる。
【００２７】
第７の発明は、ネットワークを介してサーバと通信可能なゲーム装置であって、体験版のゲームプログラムを実行することにより、当該体験版に対応する製品版のゲームプログラムを有する他のゲーム装置への接続要求をサーバに対して行う接続要求手段、サーバからの接続許可情報を受信する接続情報受信手段、および接続情報受信手段によって接続許可情報を受信したとき、当該接続許可情報が示す他のゲーム装置との間で通信することにより、体験版のゲームプログラムに基づく通信ゲームを行う通信ゲーム処理手段を備え、体験版のゲームプログラムを有する他のゲーム装置との間で接続しての通信ゲームは行えない、ゲーム装置である。
【００２８】
第７の発明においても、第１の発明と同様に、通信ゲームに手軽に参加することができる。
【００２９】
第８の発明は、ネットワークを介してサーバと通信可能なゲーム装置のゲームプログラムであって、ゲームプログラムは体験版のゲームプログラムであって、当該体験版のゲームプログラムを実行させることにより、ゲーム装置のコンピュータを、体験版に対応する製品版のゲームプログラムを有する他のゲーム装置への接続要求をサーバに対して行う接続要求手段、サーバからの接続許可情報を受信する接続情報受信手段、および接続情報受信手段によって接続許可情報を受信したとき、当該接続許可情報が示す他のゲーム装置との間で通信することにより、通信ゲームを行う通信ゲーム処理手段として機能させ、体験版のゲームプログラムを有する他のゲーム装置との間で接続しての通信ゲームは行えない。
第９の発明は、ネットワークを介してサーバと通信可能なゲーム装置のゲーム制御方法であって、ゲーム装置は、体験版のゲームプログラムを実行することにより、（ａ）通信手段を用いて、体験版のゲームプログラムを有する他のゲーム装置への接続要求をサーバに行えず、体験版に対応する製品版のゲームプログラムを有する他のゲーム装置への接続要求をサーバに対して行い、（ｂ）通信手段を用いて、サーバからの接続許可情報を受信し、そして（ｃ）ステップ（ｂ）において接続許可情報を受信したとき、通信手段を用いて、当該接続許可情報が示す他のゲーム装置と接続して通信することにより、通信ゲームを行う、ゲーム制御方法である。
第１０の発明は、互いに通信可能な複数のゲーム装置を用いるゲームシステムであって、複数のゲーム装置の中には、所定のゲームを実行するための製品版のゲープログラムを有する第１ゲーム装置と、当該製品版のゲームプログラムに対応する体験版のゲームプログラムを有する第２ゲーム装置とが存在し、第１ゲーム装置と第２ゲーム装置の接続を制御する接続制御手段を備え、第１ゲーム装置は、製品版のゲームプログラムを実行することにより、接続制御手段の制御に基づいて接続された第２ゲーム装置との間で通信ゲームを行う第１通信ゲーム処理手段を備え、第２ゲーム装置は、体験版のゲームプログラムを実行することにより、接続制御手段の制御に基づいて接続された第１ゲーム装置との間で通信ゲームを行う第２通信ゲーム処理手段を備え、接続制御手段は、第２ゲーム装置同士を接続しない、ゲームシステムである。
第１１の発明は、他のゲーム装置と通信可能なゲーム装置であって、製品版のゲームプログラムに対応する体験版のゲームプログラムを実行することにより、通信手段を用いて、製品版のゲームプログラムを有する他のゲーム装置と接続して通信ゲームを行う通信ゲーム処理手段を備え、通信ゲーム処理手段は、体験版のゲームプログラムを有する他のゲーム装置と接続しない、ゲーム装置である。
第１２の発明は、他のゲーム装置と通信可能なゲーム装置のゲームプログラムであって、ゲームプログラムは製品版のゲームプログラムに対応する体験版のゲームプログラムであって、当該体験版のゲームプログラムを実行させることにより、ゲーム装置のコンピュータを、通信手段を用いて、製品版のゲームプログラムを有する他のゲーム装置と接続して通信ゲームを行う通信ゲーム処理手段として機能させ、通信ゲーム処理手段は、体験版のゲームプログラムを有する他のゲーム装置と接続しない、ゲームプログラムである。
第１３の発明は、他のゲーム装置と通信可能なゲーム装置のゲーム制御方法であって、ゲーム装置のコンピュータは、製品版のゲームプログラムに対応する体験版のゲームプログラムを実行することにより、（ａ）通信手段を用いて、体験版のゲームプログラムを有する他のゲーム装置と接続せずに、製品版のゲームプログラムを有する他のゲーム装置と接続し、そして（ｂ）通信手段を用いて、ステップ（ａ）において接続した他のゲーム装置との間で通信ゲームを行う、ゲーム制御方法である。
【００３０】
第８ないし第１３の発明においても、第１の発明と同様に、通信ゲームに手軽に参加することができる。
【発明の効果】
【００３１】
この発明によれば、製品版のゲームプログラムを有する第１ゲーム装置と、それに対応する体験版のゲームプログラムを有する第２ゲーム装置との間で通信ゲームをプレイできるので、無料で配布される体験版のゲームプログラムを取得して通信ゲームに手軽に参加することができる。
【００３２】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００３３】
図１を参照して、この発明の一実施例であるゲームシステム１０は、ビデオゲーム装置（以下、単に「ゲーム装置」という。）１２およびコントローラ２２を含む。なお、図示は省略するが、この実施例のゲーム装置１２は、最大４つのコントローラ２２と通信可能に設計されている。また、ゲーム装置１２と各コントローラ２２とは、無線によって接続される。たとえば、無線通信は、Ｂｌｕｅｔｏｏｔｈ（登録商標）規格に従って実行されるが、赤外線や無線ＬＡＮなど他の規格に従って実行されてもよい。さらには、有線で接続されても良い。
【００３４】
ゲーム装置１２は、略直方体のハウジング１４を含み、ハウジング１４の前面にはディスクスロット１６が設けられる。ディスクスロット１６から、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク１８が挿入されて、ハウジング１４内のディスクドライブ５４（図２参照）に装着される。図示は省略するが、ディスクスロット１６の周囲には、ＬＥＤと導光板とが配置され、様々な処理に応答させて、ディスクスロット１６を点灯または点滅させることが可能である。
【００３５】
また、ゲーム装置１２のハウジング１４の前面であり、その上部には、電源ボタン２０ａおよびリセットボタン２０ｂが設けられ、その下部には、イジェクトボタン２０ｃが設けられる。さらに、リセットボタン２０ｂとイジェクトボタン２０ｃとの間であり、ディスクスロット１６の近傍には、外部メモリカード用コネクタカバー２８が設けられる。この外部メモリカード用コネクタカバー２８の内側には、外部メモリカード用コネクタ６２（図２参照）が設けられ、図示しない外部メモリカード（以下、単に「メモリカード」という。）が挿入される。メモリカードは、光ディスク１８から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム１０を利用してプレイしたゲームのゲームデータ（ゲームの結果データまたは途中データ）を保存（セーブ）しておいたりするために利用される。ただし、上記のゲームデータの保存は、メモリカードに対して行うことに代えて、たとえばゲーム装置１２の内部に設けられるフラッシュメモリ４４（図２参照）のような内部メモリに対して行うようにしてもよい。また、メモリカードは、内部メモリのバックアップメモリとして用いるようにしてもよい。さらに、ゲーム装置１２では、ゲーム以外の他のアプリケーションを実行することも可能であり、かかる場合には、メモリカードには当該他のアプリケーションのデータを保存することができる。
【００３６】
なお、メモリカードとしては、汎用のＳＤカードを用いることができるが、メモリスティックやマルチメディアカード（登録商標）のような他の汎用のメモリカードを用いることもできる。
【００３７】
図１では省略するが、ゲーム装置１２のハウジング１４の後面には、ＡＶケーブルコネクタ５８（図２参照）が設けられ、そのＡＶコネクタ５８を用いて、ＡＶケーブル３２ａを通してゲーム装置１２にモニタ３４およびスピーカ３４ａを接続する。このモニタ３４およびスピーカ３４ａは典型的にはカラーテレビジョン受像機であり、ＡＶケーブル３２ａによって、ゲーム装置１２からの映像信号がカラーテレビのビデオ入力端子に入力され、ゲーム装置１２からの音声信号が音声入力端子に入力される。したがって、カラーテレビ（モニタ）３４の画面上にたとえば３次元（３Ｄ）ビデオゲームのゲーム画像が表示され、左右のスピーカ３４ａからゲーム音楽や効果音などのステレオゲーム音声が出力される。また、モニタ３４の周辺（この実施例では、モニタ３４の上側）には、２つの赤外ＬＥＤ（マーカ）３４ｍ，３４ｎを備えるマーカ部３４ｂが設けられる。このマーカ部３４ｂは、電源ケーブル３２ｂを通してゲーム装置１２に接続される。したがって、マーカ部３４ｂには、ゲーム装置１２から電源が供給される。これによって、マーカ３４ｍ，３４ｎは発光し、それぞれモニタ３４の前方に向けて赤外光を出力する。
【００３８】
なお、ゲーム装置１２の電源は、一般的なＡＣアダプタ（図示せず）によって与えられる。ＡＣアダプタは家庭用の標準的な壁ソケットに差し込まれ、ゲーム装置１２は、家庭用電源（商用電源）を、駆動に適した低いＤＣ電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
【００３９】
このゲームシステム１０において、ユーザまたはプレイヤがゲーム（またはゲームに限らず、他のアプリケーション）をプレイするために、ユーザはまずゲーム装置１２の電源をオンし、次いで、ユーザはビデオゲーム（もしくはプレイしたいと思う他のアプリケーション）のプログラムを記録している適宜の光ディスク１８を選択し、その光ディスク１８をゲーム装置１２のディスクドライブ５４にローディングする。応じて、ゲーム装置１２がその光ディスク１８に記録されているプログラムに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはゲーム装置１２に入力を与えるためにコントローラ２２を操作する。たとえば、入力手段２６のどれかを操作することによってゲームもしくは他のアプリケーションをスタートさせる。また、入力手段２６に対する操作以外にも、コントローラ２２自体を動かすことによって、動画オブジェクト（プレイヤオブジェクト）を異なる方向に移動させ、または３Ｄのゲーム世界におけるユーザの視点（カメラ位置）を変化させることができる。
【００４０】
ただし、ビデオゲームや他のアプリケーションのプログラムは、ゲーム装置１２の内部メモリ（フラッシュメモリ４２（図２参照））に記憶（インストール）しておき、当該内部メモリから実行するようにしてもよい。かかる場合には，光ディスク１８のような記憶媒体に記憶されたプログラムを内部メモリにインストールしてもよいし、ダウンロードされたプログラムを内部メモリにインストールしてもよい。
【００４１】
図２は図１実施例のビデオゲームシステム１０の電気的な構成を示すブロック図である。図示は省略するが、ハウジング１４内の各コンポーネントは、プリント基板に実装される。図２に示すように、ゲーム装置１２には、ＣＰＵ４０が設けられ、ゲームプロセッサとして機能する。また、ＣＰＵ４０には、システムＬＳＩ４２が接続される。このシステムＬＳＩ４２には、外部メインメモリ４６、ＲＯＭ／ＲＴＣ４８、ディスクドライブ５４およびＡＶ  ＩＣ５６が接続される。
【００４２】
外部メインメモリ４６は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりして、ＣＰＵ４０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ４８は、いわゆるブートＲＯＭであり、ゲーム装置１２の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ５４は、光ディスク１８からプログラムやテクスチャデータ等を読み出し、ＣＰＵ４０の制御の下で、後述する内部メインメモリ４２ｅまたは外部メインメモリ４６に書き込む。
【００４３】
システムＬＳＩ４２には、入出力プロセッサ４２ａ、ＧＰＵ(Graphics Processor Unit)４２ｂ，ＤＳＰ(Digital Signal Processor)４２ｃ，ＶＲＡＭ４２ｄおよび内部メインメモリ４２ｅが設けられ、図示は省略するが、これらは内部バスによって互いに接続される。
【００４４】
入出力プロセッサ（Ｉ／Ｏプロセッサ）４２ａは、データの送受信を実行したり、データのダウンロードを実行したりする。データの送受信やダウンロードについては後述する。
【００４５】
ＧＰＵ４２ｂは、描画手段の一部を形成し、ＣＰＵ４０からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、ＣＰＵ４０は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをＧＰＵ４２ｂに与える。
【００４６】
図示は省略するが、上述したように、ＧＰＵ４２ｂにはＶＲＡＭ４２ｄが接続される。ＧＰＵ４２ｂが作画コマンドを実行するにあたって必要なデータ（画像データ：ポリゴンデータやテクスチャデータなどのデータ）は、ＧＰＵ４２ｂがＶＲＡＭ４２ｄにアクセスして取得する。ただし、ＣＰＵ４０は、描画に必要な画像データを、ＧＰＵ４２ｂを介してＶＲＡＭ４２ｄに書き込む。ＧＰＵ４２ｂは、ＶＲＡＭ４２ｄにアクセスして描画のためのゲーム画像データを作成する。
【００４７】
なお、この実施例では、ＧＰＵ４２ｂがゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外の任意のアプリケーションを実行する場合には、ＧＰＵ４２ｂは当該任意のアプリケーションについての画像データを生成する。
【００４８】
また、ＤＳＰ４２ｃは、オーディオプロセッサとして機能し、内部メインメモリ４２ｅや外部メインメモリ４６に記憶されるサウンドデータや音波形（音色）データを用いて、スピーカ３４ａから出力する音、音声或いは音楽に対応するオーディオデータを生成する。
【００４９】
上述のように生成されたゲーム画像データおよびオーディオデータは、ＡＶ  ＩＣ５６によって読み出され、ＡＶコネクタ５８を介してモニタ３４およびスピーカ３４ａに出力される。したがって、ゲーム画面がモニタ３４に表示され、ゲームに必要な音（音楽）がスピーカ３４ａから出力される。
【００５０】
また、入出力プロセッサ４２ａには、フラッシュメモリ４４、無線通信モジュール５０および無線コントローラモジュール５２が接続されるとともに、拡張コネクタ６０およびメモリカード用コネクタ６２が接続される。また、無線通信モジュール５０にはアンテナ５０ａが接続され、無線コントローラモジュール５２にはアンテナ５２ａが接続される。
【００５１】
入出力プロセッサ４２ａは、無線通信モジュール５０を介して、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。ただし、ネットワークを介さずに、直接的に他のゲーム装置と通信することもできる。入出力プロセッサ４２ａは、定期的にフラッシュメモリ４４にアクセスし、ネットワークへ送信する必要があるデータ（「送信データ」とする）の有無を検出し、当該送信データが有る場合には、無線通信モジュール５０およびアンテナ５０ａを介してネットワークに送信する。また、入出力プロセッサ４２ａは、他のゲーム装置から送信されるデータ（「受信データ」とする）を、ネットワーク、アンテナ５０ａおよび無線通信モジュール５０を介して受信し、当該受信データをフラッシュメモリ４４に記憶する。ただし、受信データが一定の条件を満たさない場合には、当該受信データはそのまま破棄される。さらに、入出力プロセッサ４２ａは、ダウンロードサーバ（図８に示す１０４，１０６など）からダウンロードしたデータ（ダウンロードデータとする）をネットワーク、アンテナ５０ａおよび無線通信モジュール５０を介して受信し、そのダウンロードデータをフラッシュメモリ４４に記憶する。
【００５２】
また、入出力プロセッサ４２ａは、コントローラ２２から送信される入力データをアンテナ５２ａおよび無線コントローラモジュール５２を介して受信し、内部メインメモリ４２ｅまたは外部メインメモリ４６のバッファ領域に記憶（一時記憶）する。入力データは、ＣＰＵ４０の処理（たとえば、ゲーム処理）によって利用された後、バッファ領域から消去される。
【００５３】
なお、この実施例では、上述したように、無線コントローラモジュール５２は、Ｂｌｕｅｔｏｏｔｈ規格に従ってコントローラ２２との間で通信を行う。
【００５４】
さらに、入出力プロセッサ４２ａには、拡張コネクタ６０およびメモリカード用コネクタ６２が接続される。拡張コネクタ６０は、ＵＳＢやＳＣＳＩのようなインターフェイスのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、コントローラ２２とは異なる他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ６０に有線ＬＡＮアダプタを接続し、無線通信モジュール５０に代えて当該有線ＬＡＮを利用することもできる。メモリカード用コネクタ６２には、メモリカードのような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ４２ａは、拡張コネクタ６０やメモリカード用コネクタ６２を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【００５５】
詳細な説明は省略するが、図１にも示したように、ゲーム装置１２（ハウジング１４）には、電源ボタン２０ａ，リセットボタン２０ｂおよびイジェクトボタン２０ｃが設けられる。電源ボタン２０ａは、システムＬＳＩ４２に接続される。この電源ボタン２０ａがオンされると、システムＬＳＩ４２には、ゲーム装置１２の各コンポーネントに図示しないＡＣアダプタを経て電源が供給され、通常の通電状態となるモード（「通常モード」と呼ぶこととする）が設定される。一方、電源ボタン２０ａがオフされると、システムＬＳＩ４２には、ゲーム装置１２の一部のコンポーネントのみに電源が供給され、消費電力を必要最低限に抑えるモード（以下、「スタンバイモード」という）が設定される。
【００５６】
この実施例では、スタンバイモードが設定された場合には、システムＬＳＩ４２は、入出力プロセッサ４２ａ、フラッシュメモリ４４、外部メインメモリ４６、ＲＯＭ／ＲＴＣ４８および無線通信モジュール５０、無線コントローラモジュール５２以外のコンポーネントに対して、電源供給を停止する指示を行う。したがって、この実施例では、スタンバイモードにおいて、ＣＰＵ４０がアプリケーションを実行することはない。
【００５７】
なお、システムＬＳＩ４２には、スタンバイモードにおいても電源が供給されるが、ＧＰＵ４２ｂ、ＤＳＰ４２ｃおよびＶＲＡＭ４２ｄへのクロックの供給を停止することにより、これらを駆動しないようにして、消費電力を低減するようにしてある。
【００５８】
また、図示は省略するが、ゲーム装置１２のハウジング１４内部には、ＣＰＵ４０やシステムＬＳＩ４２などのＩＣの熱を外部に排出するためのファンが設けられる。スタンバイモードでは、このファンも停止される。
【００５９】
ただし、スタンバイモードを利用したくない場合には、スタンバイモードを利用しない設定にしておくことにより、電源ボタン２０ａがオフされたときに、すべての回路コンポーネントへの電源供給が完全に停止される。
【００６０】
また、通常モードとスタンバイモードとの切り替えは、コントローラ２２の電源スイッチ２６ｈのオン／オフの切り替えによって、遠隔操作によって行うことが可能である。当該遠隔操作を行わない場合には、スタンバイモードにおいて無線コントローラモジュール５２ａへの電源供給を行わない設定にしてもよい。
【００６１】
リセットボタン２０ｂもまた、システムＬＳＩ４２に接続される。リセットボタン２０ｂが押されると、システムＬＳＩ４２は、ゲーム装置１２の起動プログラムを再起動する。イジェクトボタン２０ｃは、ディスクドライブ５４に接続される。イジェクトボタン２０ｃが押されると、ディスクドライブ５４から光ディスク１８が排出される。
【００６２】
図３（Ａ）ないし図３（Ｅ）は、コントローラ２２の外観の一例を示す。図３（Ａ）はコントローラ２２の先端面を示し、図３（Ｂ）はコントローラ２２の上面を示し、図３（Ｃ）はコントローラ２２の右側面を示し、図３（Ｄ）はコントローラ２２の下面を示し、そして、図３（Ｅ）はコントローラ２２の後端面を示す。
【００６３】
図３（Ａ）ないし図３（Ｅ）を参照して、コントローラ２２は、たとえばプラスチック成型によって形成されたハウジング２２ａを有している。ハウジング２２ａは、略直方体形状であり、ユーザが片手で把持可能な大きさである。ハウジング２２ａ（コントローラ２２）には、入力手段（複数のボタンないしスイッチ）２６が設けられる。具体的には、図３（Ｂ）に示すように、ハウジング２２ａの上面には、十字キー２６ａ，１ボタン２６ｂ，２ボタン２６ｃ，Ａボタン２６ｄ，−ボタン２６ｅ，ＨＯＭＥボタン２６ｆ，＋ボタン２６ｇおよび電源スイッチ２６ｈが設けられる。また、図３（Ｃ）および図３（Ｄ）に示すように、ハウジング２２ａの下面に傾斜面が形成されており、この傾斜面に、Ｂトリガースイッチ２６ｉが設けられる。
【００６４】
十字キー２６ａは、４方向プッシュスイッチであり、矢印で示す４つの方向、前（または上）、後ろ（または下）、右および左の操作部を含む。この操作部のいずれか１つを操作することによって、プレイヤによって操作可能なキャラクタまたはオブジェクト（プレイヤキャラクタまたはプレイヤオブジェクト）の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
【００６５】
１ボタン２６ｂおよび２ボタン２６ｃは、それぞれ、押しボタンスイッチである。たとえば３次元ゲーム画像を表示する際の視点位置や視点方向、すなわち仮想カメラの位置や画角を調整する等のゲームの操作に使用される。または、１ボタン２６ｂおよび２ボタン２６ｃは、Ａボタン２６ｄおよびＢトリガースイッチ２６ｉと同じ操作或いは補助的な操作をする場合に用いるようにしてもよい。
【００６６】
Ａボタンスイッチ２６ｄは、押しボタンスイッチであり、プレイヤキャラクタまたはプレイヤオブジェクトに、方向指示以外の動作、すなわち、打つ（パンチ）、投げる、つかむ（取得）、乗る、ジャンプするなどの任意のアクションをさせるために使用される。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かすなどを指示することができる。また、ロールプレイングゲーム（ＲＰＧ）やシミュレーションＲＰＧにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。また、Ａボタンスイッチ２６ｄは、ゲーム画面上でポインタ（指示画像）が指示するアイコンないしボタン画像の決定を指示するために使用される。たとえば、アイコンやボタン画像が決定されると、これらに対応して予め設定されている指示ないし命令（ゲームのコマンド）を入力することができる。
【００６７】
−ボタン２６ｅ、ＨＯＭＥボタン２６ｆ、＋ボタン２６ｇおよび電源スイッチ２６ｈもまた、押しボタンスイッチである。−ボタン２６ｅは、ゲームモードを選択するために使用される。ＨＯＭＥボタン２６ｆは、ゲームメニュー（メニュー画面）を表示するために使用される。＋ボタン２６ｇは、ゲームを開始（再開）したり、一時停止したりするなどのために使用される。電源スイッチ２６ｈは、ゲーム装置１２の電源を遠隔操作によってオン／オフするために使用される。
【００６８】
なお、この実施例では、コントローラ２２自体をオン／オフするための電源スイッチは設けておらず、コントローラ２２の入力手段２６のいずれかを操作することによってコントローラ２２はオンとなり、一定時間（たとえば、３０秒）以上操作しなければ自動的にオフとなるようにしてある。
【００６９】
Ｂトリガースイッチ２６ｉもまた、押しボタンスイッチであり、主として、弾を撃つなどのトリガを模した入力を行ったり、コントローラ２２で選択した位置を指定したりするために使用される。また、Ｂトリガースイッチ２６ｉを押し続けると、プレイヤオブジェクトの動作やパラメータを一定の状態に維持することもできる。また、一定の場合には、Ｂトリガースイッチ２６ｉは、通常のＢボタンと同様に機能し、Ａボタン２６ｄによって決定したアクションやコマンドなどを取り消すなどのために使用される。
【００７０】
また、図３（Ｅ）に示すように、ハウジング２２ａの後端面に外部拡張コネクタ２２ｂが設けられ、また、図３（Ｂ）に示すように、ハウジング２２ａの上面であり、後端面側にはインジケータ２２ｃが設けられる。外部拡張コネクタ２２ｂは、コントローラ２２とは異なる拡張コントローラ（図示せず）を接続するためなどに使用される。インジケータ２２ｃは、たとえば、４つのＬＥＤで構成される。たとえば、インジケータ２２ｃでは、４つのうちのいずれか１つを点灯させることにより、点灯したＬＥＤに応じて、コントローラ２２の識別情報（コントローラ番号）を示すことができる。また、インジケータ２２ｃでは、点灯させるＬＥＤの個数によってコントローラ２２の電池残量を示すこともできる。
【００７１】
さらに、コントローラ２２は、撮像情報演算部８０（図４参照）を有しており、図３（Ａ）に示すように、ハウジング２２ａの先端面には撮像情報演算部８０の光入射口２２ｄが設けられる。また、コントローラ２２は、スピーカ８６（図４参照）を有しており、このスピーカ８６は、図３（Ｂ）に示すように、ハウジング２２ａの上面であり、１ボタン２６ｂとＨＯＭＥボタン２６ｆとの間に設けられる音抜き孔２２ｅに対応して、ハウジング２２ａ内部に設けられる。
【００７２】
なお、図３（Ａ）ないし図３（Ｅ）に示したコントローラ２２の形状や、各入力手段２６の形状、数および設置位置等は単なる一例に過ぎず、それらが適宜改変された場合であっても、本発明を実現できることは言うまでもない。
【００７３】
図４はコントローラ２２の電気的な構成を示すブロック図である。この図４を参照して、コントローラ２２はプロセッサ７０を含み、このプロセッサ７０には、内部バス（図示せず）によって、外部拡張コネクタ２２ｂ、入力手段２６、メモリ７２、加速度センサ７４、無線モジュール７６、撮像情報演算部８０、ＬＥＤ８２（インジケータ２２ｃ）、バイブレータ８４、スピーカ８６および電源回路８８が接続される。また、無線モジュール７６には、アンテナ７８が接続される。
【００７４】
なお、簡単のため、図４では省略するが、上述したように、インジケータ２２ｃは４つのＬＥＤ８２によって構成される。
【００７５】
プロセッサ７０は、コントローラ２２の全体制御を司り、入力手段２６、加速度センサ７４および撮像情報演算部８０によって入力された情報（入力情報）を、入力データとして無線モジュール７６およびアンテナ７８を介してゲーム装置１２に送信（入力）する。このとき、プロセッサ７０は、メモリ７２を作業領域ないしバッファ領域として用いる。また、上述した入力手段２６（２６ａ−２６ｉ）からの操作信号（操作データ）は、プロセッサ７０に入力され、プロセッサ７０は操作データを一旦メモリ７２に記憶する。
【００７６】
加速度センサ７４は、コントローラ２２の縦方向（ｙ軸方向）、横方向（ｘ軸方向）および前後方向（ｚ軸方向）の３軸で各々の加速度を検出する。この加速度センサ７４は、典型的には、静電容量式の加速度センサであるが、他の方式のものを用いるようにしてもよい。
【００７７】
たとえば、加速度センサ７４は、第１所定時間毎に、ｘ軸，ｙ軸，ｚ軸の各々についての加速度（ａｘ，ａｙ，ａｚ）を検出し、検出した加速度のデータ（加速度データ）をプロセッサ７０に入力する。たとえば、加速度センサ７４は、各軸方向の加速度を、−２．０ｇ〜２．０ｇ（ｇは重力加速度である。以下、同じ。）の範囲で検出する。プロセッサ７０は、加速度センサ７４から与えられる加速度データを、第２所定時間毎に検出し、一旦メモリ７２に記憶する。
【００７８】
プロセッサ７０は、操作データ、加速度データおよび後述するマーカ座標データの少なくとも１つを含む入力データを作成し、作成した入力データを、第３所定時間（たとえば、５ｍｓｅｃ）毎にゲーム装置１２に送信する。
【００７９】
なお、図３（Ａ）−図３（Ｅ）では省略したが、この実施例では、加速度センサ７４は、ハウジング２２ａ内部の基板上の十字キー２６ａが配置される付近に設けられる。
【００８０】
ここで、加速度センサ７４から出力される加速度データに基づいて、ゲーム装置１２のプロセッサ（たとえば、ＣＰＵ４０）またはコントローラ２２のプロセッサ（たとえば、プロセッサ７０）などのコンピュータが処理を行うことによって、コントローラ２２に関するさらなる情報を推測または算出（判定）することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。
【００８１】
たとえば、コントローラ２２に１軸の加速度センサ７４を搭載し、当該コントローラ２２が静的な状態であることを前提としてコンピュータ側で処理する場合、すなわち、加速度センサ７４によって検出される加速度が重力加速度のみであるとして処理する場合、コントローラ２２が現実に静的な状態であれば、検出された加速度データに基づいてコントローラ２２の姿勢が重力方向に対して傾いているか否かまたはどの程度傾いているかを知ることができる。具体的には、加速度センサ７４の検出軸が鉛直下方向である状態を基準としたとき、１Ｇ（重力加速度）がかかっているか否かだけで傾いているか否かを知ることができるし、その大きさによってどの程度傾いているかを知ることもできる。
【００８２】
また、コントローラ２２に多軸の加速度センサ７４を搭載する場合には、さらに各軸の加速度データに対して処理を施すことによって、重力方向に対してどの程度傾いているかをより詳細に知ることができる。この場合において、加速度センサ７４の出力に基づいて、プロセッサ７０がコントローラ２２の傾き角度のデータを算出する処理を行ってもよいが、当該傾き角度のデータの算出処理を行うことなく、加速度センサ７４からの出力に基づいて、おおよその傾きを推定できるような処理としてもよい。このように、加速度センサ７４をプロセッサ７０と組み合わせることによって、コントローラ２２の傾き、姿勢または位置を判定することができる。
【００８３】
一方、加速度センサ７４が動的な状態を前提とする場合には、重力加速度成分に加えて加速度センサの動きに応じた加速度を検出するので、重力加速度成分を所定の処理により除去すれば、動きの方向などを知ることができる。具体的には、加速度センサ７４を搭載するコントローラ２２がユーザの手で動的に加速されて動かされている場合に、加速度センサ７４によって生成される加速度データを処理することによって、コントローラ２２の様々な動きおよび／または位置を算出することができる。
【００８４】
なお、加速度センサ７４が動的な状態であることを前提とする場合であっても、加速度センサ７４の動きに応じた加速度を所定の処理により除去すれば、重力方向に対する傾きを知ることができる。他の実施例では、加速度センサ７４は、加速度データをプロセッサ７０に出力する前に、内蔵の加速度検出手段から出力される加速度信号（加速度データ）に対して所望の処理を行うための、組込み式の信号処理装置また他の種類の専用の処理装置を備えてもよい。たとえば、組込み式または専用の処理装置は、加速度センサ７４が静的な加速度（たとえば、重力加速度）を検出するためのものである場合、検知された加速度データをそれに相当する傾斜角（あるいは、他の好ましいパラメータ）に変換するものであってもよい。
【００８５】
無線モジュール７６は、たとえばＢｌｕｅｔｏｏｔｈの技術を用いて、所定周波数の搬送波を入力データで変調し、その微弱電波信号をアンテナ７８から放射する。つまり、入力データは、無線モジュール７６によって微弱電波信号に変調されてアンテナ７８（コントローラ２２）から送信される。この微弱電波信号が上述したゲーム装置１２に設けられた無線コントローラモジュール５２によって受信される。受信された微弱電波は、復調および復号の処理を施され、したがって、ゲーム装置１２（ＣＰＵ４０）は、コントローラ２２からの入力データを取得することができる。そして、ＣＰＵ４０は、取得した入力データとアプリケーションプログラム（ゲームプログラム）とに従ってアプリケーションの処理（ゲーム処理）を行う。
【００８６】
さらに、上述したように、コントローラ２２には、撮像情報演算部８０が設けられる。この撮像情報演算部８０は、赤外線フィルタ８０ａ、レンズ８０ｂ、撮像素子８０ｃおよび画像処理回路８０ｄによって構成される。赤外線フィルタ８０ａは、コントローラ２２の前方から入射する光から赤外線のみを通過させる。上述したように、モニタ３４の表示画面近傍（周辺）に配置されるマーカ３４０ｍおよび３４０ｎは、モニタ３４の前方に向かって赤外光を出力する赤外ＬＥＤである。したがって、赤外線フィルタ８０ａを設けることによってマーカ３４０ｍおよび３４０ｎの画像をより正確に撮像することができる。レンズ８０ｂは、赤外線フィルタ８０ａを透過した赤外線を集光して撮像素子８０ｃへ出射する。撮像素子８０ｃは、たとえばＣＭＯＳセンサあるいはＣＣＤのような固体撮像素子であり、レンズ８０ｂによって集光された赤外線を撮像する。したがって、撮像素子８０ｃは、赤外線フィルタ８０ａを通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子８０ｃによって撮像された画像を撮像画像と呼ぶ。撮像素子８０ｃによって生成された画像データは、画像処理回路８０ｄで処理される。画像処理回路８０ｄは、撮像画像内における撮像対象（マーカ３４０ｍおよび３４０ｎ）の位置を算出し、第４所定時間毎に、当該位置を示す各座標値を撮像データ（後述するマーカ座標データ）としてプロセッサ７０に出力する。なお、画像処理回路８０ｄにおける処理については後述する。
【００８７】
図５は、コントローラ２２を用いてゲームプレイするときの状態を概説する図解図である。図５に示すように、ビデオゲームシステム１０でコントローラ２２を用いてゲームをプレイする際、プレイヤは、一方の手でコントローラ２２を把持する。厳密に言うと、プレイヤは、コントローラ２２の先端面（撮像情報演算部８０が撮像する光の入射口２２ｄ側）がマーカ３４０ｍおよび３４０ｎの方を向く状態でコントローラ２２を把持する。ただし、図１からも分かるように、マーカ３４０ｍおよび３４０ｎは、モニタ３４の画面の横方向と平行に配置されている。この状態で、プレイヤは、コントローラ２２が指示する画面上の位置を変更したり、コントローラ２２と各マーカ３４０ｍおよび３４０ｎとの距離を変更したりすることによってゲーム操作を行う。
【００８８】
図６は、マーカ３４０ｍおよび３４０ｎと、コントローラ２２との視野角を説明するための図である。図６に示すように、マーカ３４０ｍおよび３４０ｎは、それぞれ、視野角θ１の範囲で赤外光を放射する。また、撮像情報演算部８０の撮像素子８０ｃは、コントローラ２２の視線方向を中心とした視野角θ２の範囲で入射する光を受光することができる。たとえば、マーカ３４０ｍおよび３４０ｎの視野角θ１は、共に３４°（半値角）であり、一方、撮像素子８０ｃの視野角θ２は４１°である。プレイヤは、撮像素子８０ｃが２つのマーカ３４０ｍおよび３４０ｎからの赤外光を受光することが可能な位置および向きとなるように、コントローラ２２を把持する。具体的には、撮像素子８０ｃの視野角θ２の中にマーカ３４０ｍおよび３４０ｎの少なくとも一方が存在し、かつ、マーカ３４０ｍまたは３４０ｎの少なくとも一方の視野角θ１の中にコントローラ２２が存在する状態となるように、プレイヤはコントローラ２２を把持する。この状態にあるとき、コントローラ２２は、マーカ３４０ｍおよび３４０ｎの少なくとも一方を検知することができる。プレイヤは、この状態を満たす範囲でコントローラ２２の位置および向きを変化させることによってゲーム操作を行うことができる。
【００８９】
なお、コントローラ２２の位置および向きがこの範囲外となった場合、コントローラ２２の位置および向きに基づいたゲーム操作を行うことができなくなる。以下では、上記範囲を「操作可能範囲」と呼ぶ。
【００９０】
操作可能範囲内でコントローラ２２が把持される場合、撮像情報演算部８０によって各マーカ３４０ｍおよび３４０ｎの画像が撮像される。すなわち、撮像素子８０ｃによって得られる撮像画像には、撮像対象である各マーカ３４０ｍおよび３４０ｎの画像（対象画像）が含まれる。図７は、対象画像を含む撮像画像の一例を示す図である。対象画像を含む撮像画像の画像データを用いて、画像処理回路８０ｄは、各マーカ３４０ｍおよび３４０ｎの撮像画像における位置を表す座標（マーカ座標）を算出する。
【００９１】
撮像画像の画像データにおいて対象画像は高輝度部分として現れるため、画像処理回路８０ｄは、まず、この高輝度部分を対象画像の候補として検出する。次に、画像処理回路８０ｄは、検出された高輝度部分の大きさに基づいて、その高輝度部分が対象画像であるか否かを判定する。撮像画像には、対象画像である２つのマーカ３４０ｍおよび３４０ｎに対応する画像３４０ｍ’および３４０ｎ’のみならず、窓からの太陽光や部屋の蛍光灯の光によって対象画像以外の画像が含まれていることがある。高輝度部分が対象画像であるか否かの判定処理は、対象画像である画像３４０ｍ’および３４０ｎ’と、それ以外の画像とを区別し、対象画像を正確に検出するために実行される。具体的には、当該判定処理においては、検出された高輝度部分が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度部分が所定範囲内の大きさである場合には、当該高輝度部分は対象画像を表すと判定される。逆に、高輝度部分が所定範囲内の大きさでない場合には、当該高輝度部分は対象画像以外の画像を表すと判定される。
【００９２】
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度部分について、画像処理回路８０ｄは当該高輝度部分の位置を算出する。具体的には、当該高輝度部分の重心位置を算出する。ここでは、当該重心位置の座標をマーカ座標と呼ぶ。また、重心位置は撮像素子８０ｃの解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子８０ｃによって撮像された撮像画像の解像度が１２６×９６であるとし、重心位置は１０２４×７６８のスケールで算出されるものとする。つまり、マーカ座標は、（０，０）から（１０２４，７６８）までの整数値で表現される。
【００９３】
なお、撮像画像における位置は、撮像画像の左上を原点とし、下向きをＹ軸正方向とし、右向きをＸ軸正方向とする座標系（ＸＹ座標系）で表現されるものとする。
【００９４】
また、対象画像が正しく検出される場合には、判定処理によって２つの高輝度部分が対象画像として判定されるので、２箇所のマーカ座標が算出される。画像処理回路８０ｄは、算出された２箇所のマーカ座標を示すデータを出力する。出力されたマーカ座標のデータ（マーカ座標データ）は、上述したように、プロセッサ７０によって入力データに含まれ、ゲーム装置１２に送信される。
【００９５】
ゲーム装置１２（ＣＰＵ４０）は、受信した入力データからマーカ座標データを検出すると、このマーカ座標データに基づいて、モニタ３４の画面上におけるコントローラ２２の指示位置（指示座標）と、コントローラ２２からマーカ３４０ｍおよび３４０ｎまでの各距離とを算出することができる。具体的には、２つのマーカ座標の中点の位置から、コントローラ２２の向いている位置すなわち指示位置が算出される。また、撮像画像における対象画像間の距離が、コントローラ２２と、マーカ３４０ｍおよび３４０ｎとの距離に応じて変化するので、２つのマーカ座標間の距離を算出することによって、ゲーム装置１２はコントローラ２２とマーカ３４０ｍおよび３４０ｎとの間の距離を把握できる。
【００９６】
図８は上述のゲーム装置１２を用いた通信システム（ネットワークゲームシステム１１０を含む。）１００の一例を示す図解図である。図８に示すように、通信システム１００は、複数のゲーム装置１２を含み、各ゲーム装置１２はインターネットやＬＡＮのようなネットワーク１０８を介して、メールサーバ１０２、配信サーバ１０４およびゲームサーバ１０６に接続される。このようなネットワーク１０８に接続されることによって、メールサーバ１０２を介したメッセージの送受信や配信サーバ１０４またはゲームサーバ１０６からのデータのダウンロードを行うことが可能となる。
【００９７】
なお、この実施例では、複数のゲーム装置１２がネットワーク１０８に接続されている場合について説明するが、通信ゲームは２台または３台以上のゲーム装置１２でプレイするため、少なくとも２台のゲーム装置１２がネットワーク１０８に接続されていればよい。また、配信サーバ１０４は、ダウンロードデータ（コンテンツ）の種類に応じて複数設けられてもよい。さらに、ゲームサーバ１０６は、ゲームの種類に応じて複数設けられてもよい。後述するように、この実施例では、ゲームサーバ１０６は、ゲームプログラムを配信するサーバとしても機能する。ただし、ゲームサーバ１０６とは別個独立に、ゲームプログラムを配信するサーバを設けるようにしてもよい。たとえば、配信サーバ１０４がそのゲームプログラムを配信するようにしてもよい。
【００９８】
また、ネットワーク１０８にはＰＣも接続され、さらに、携帯電話網（図示せず）を介して携帯電話機も接続される。それら以外にも、様々な電子機器をネットワーク１０８に接続して、メールサーバ１０２を介してゲーム装置１２とメッセージの送受信を行うことができる。
【００９９】
ゲーム装置１２同士は、ネットワーク１０８を介して通信可能である。プレイヤが入力したメッセージやゲーム装置１２で生成したメッセージは、電子メールの形式に変換され、ネットワーク１０８およびメールサーバ１０２を介して、ゲーム装置１２同士で送受信（やり取り）される。このため、メールサーバ１０２は、汎用的なメールサーバを用いることができる。したがって、ゲーム装置１２は、ＰＣや携帯電話機のような端末（他のゲーム装置１２以外の端末）との間でメッセージすなわち電子メールをやり取りすることも可能である。このようなゲーム装置１２におけるメッセージの送受信の処理は、ユーザが送受信指示を行わなくとも所定のスケジュールで自動的に実行されるので、ユーザは定期的なチェック作業を自ら行わなくとも、メッセージを受け取った状態でゲームをプレイしたり、他のアプリケーションを実行したりすることができる。また、ゲーム装置１２は、アドレス帳（後述する本体フレンドリスト４４ｄ）に宛先を登録したゲーム装置１２またはゲーム装置１２以外の端末（以下、単に「他の端末」ということがある）との間でのみメッセージの送受信を行うようにすることもでき、したがって汎用的なメールシステムを用いてもスパムメールのような不要なメッセージをユーザが受け取らないようにすることが可能である。
【０１００】
また、ゲーム装置１２は、受信したメッセージをモニタ３４に表示するためのアプリケーションである伝言板機能を実行することができる。ただし、その他のアプリケーション（ゲーム等）に依存する固有のメッセージであって、当該アプリケーションによってのみ利用されるデータについては、当該アプリケーションでのみ読み取り可能とすることができる。したがって、特定のユーザのみにメッセージを送りたい場合には、個々のアプリケーションに依存するデータをメッセージに含めて送信すれば、伝言板機能では読めない形式にすることができる。ただし、アプリケーションの種類に拘わらず参照可能なメッセージは、伝言板機能によってモニタ３４に表示して誰でも参照する（読む）ことができる。
【０１０１】
伝言板機能は、受信したメッセージをモニタ３４に表示する機能を有するアプリケーションであり、ネットワーク１０８から取得したメッセージを表示する。ただし、他のゲーム装置１２や他の端末から受信したメッセージのみならず、自身宛に作成したメッセージを同様に表示することもできる。したがって、ゲーム装置１２がネットワーク１０８に接続されていない場合であっても、家庭内の伝言板ないし個人用のメモ帳として、この伝言板機能を利用することができるし、ゲーム等のアプリケーションによって生成された記録を後から伝言板機能によって閲覧できるようにしておくこともできる。このとき、ゲーム装置１２において生成されたメッセージを、ネットワーク１０８から取得したメッセージと同様の形式（本実施例においては電子メール形式）で同じ領域に記憶しておくようにすれば、表示のための処理を個別に用意する必要がなくなる。たとえば、メモまたは伝言を生成する際に電子メール形式のデータに変換を行ったり、ゲームプログラムの処理において電子メール形式のデータを生成したりすればよい。
【０１０２】
図９は、ゲーム装置１２に内蔵されるフラッシュメモリ４４に記憶されるデータの構成を模式的に示した図解図である。この図９を用いて、本実施例におけるメッセージの送受信処理とダウンロード処理について概要を説明する。
【０１０３】
なお、図９で説明するダウンロード処理は、タスクに従って入出力プロセッサ４２ａによって実行されるが、後述するように、プレイヤの指示に従ってＣＰＵ４０によって実行される場合もある。
【０１０４】
ゲーム装置１２は、メールサーバ１０２とメッセージの送受信を行い、配信サーバ１０４やゲームサーバ１０６からデータのダウンロードを行い、２種類の通信処理を行う。メッセージの送受信処理およびタスク（図１０参照）に従うダウンロード処理は、入出力プロセッサ４２ａによって実行される。
【０１０５】
フラッシュメモリ４４は、記憶領域として、送信メッセージボックス４４ａ、受信メッセージボックス４４ｂ、管理用ファイル４４ｃ、本体フレンドリスト４４ｄ、タスクリスト４４ｅ、セーブ領域４４ｆ、データベース４４ｇおよび本体アプリ領域４４ｈを含む。
【０１０６】
送信メッセージボックス４４ａは、ゲーム装置１２から他のゲーム装置１２や他の端末に送信する電子メール形式のメッセージ（送信データ）を記憶する領域である。図９からも分かるように、送信データは、メールサーバ１０２に送信される。したがって、ゲーム装置１２は、メールサーバ１０２およびネットワーク１０８を介して、他のゲーム装置１２にメッセージを送信することができる。入出力プロセッサ４２ａは、所定のスケジュールに基づいて（たとえば、１０分毎に）送信メッセージボックス４４ａを参照し、送信データが記憶されている場合には、記憶されている送信データをネットワーク１０８に送信する。送信データがネットワーク１０８に送信されると、当該送信データは送信メッセージボックス４４ａから削除される。
【０１０７】
したがって、電子メールの送信を入出力プロセッサ４２ａがアプリケーションとは独立に行うので、伝言板機能やゲーム等、ＣＰＵ４０で実行されるアプリケーションでは、メッセージの作成後、当該メッセージを電子メール形式で送信メッセージボックス４４ａに記録しておく処理を行うだけで、メッセージをネットワーク１０８に対して送信することができる。
【０１０８】
なお、本実施例においては、より汎用的な電子メール形式のデータをメールサーバ１０２との間で送受信するが、データの形式は電子メールに限られず、さまざまなフォーマットにて転用可能である。特にゲーム装置１２同士の通信に限られる場合は、汎用的なフォーマットでなくとも良いし、他の端末と通信する場合であっても、当該他の端末で処理可能なフォーマットであれば適用することができる。また、電子メールを受信する端末からのアクセスがあるまで、当該電子メールを保持する性質のものであれば、メールサーバ１０２以外の種類のサーバを適用することもできる。
【０１０９】
また、何らかの理由でゲーム装置１２の送信機能が停止されていたり、通信障害が発生したりしている場合には、送信データの送信が行われないため、送信メッセージボックス４４ａのデータ量が一杯になる可能性がある。かかる場合には、送信メッセージボックス４４ａへの送信メッセージの登録を受け付けないようにする。
【０１１０】
受信メッセージボックス４４ｂは、他のゲーム装置１２、他の端末や配信サーバ１０４から送信される電子メール形式のメッセージ（受信データ）を記憶する領域である。図９からも分かるように、受信データは、メールサーバ１０２、配信サーバ１０４、ゲームサーバ１０６から送信される。入出力プロセッサ４２ａは、所定のスケジュールに基づいて（たとえば、１０分毎に）メールサーバ１０２にアクセスして、当該メールサーバ１０２に新着メールがあるかどうかを確認し、新着メールがある場合に、当該新着メールを受信して受信データとして受信メッセージボックス４４ｂに記憶する。受信メッセージボックス４４ｂでは、受信データは、アプリケーションによって開かれ（使用され）、削除されるか、当該受信メッセージボックス４４ｂが一杯になるまで保持される。ただし、受信メッセージボックス４４ｂが一杯になると、新たな受信データを受信する毎に、最も古い受信データから順に削除される。また、ゲーム装置１２が通常モードである場合に、受信メッセージボックス４４ｂに保持された受信データは、ゲームデータのようなアプリケーションに依存するデータが添付されたものを除いて、ヘッダ情報に従ってデータベース４４ｇに移動され、伝言板機能によって読み出し可能な状態となる。
【０１１１】
なお、メールサーバ１０２からの受信データは、他のゲーム装置１２や他の端末からのメッセージである。また、配信サーバ１０４やゲームサーバ１０６からの受信データは、配信サーバ１０４やゲームサーバ１０６の管理者等からの複数ユーザに対するお知らせのようなメッセージである。たとえば、配信サーバ１０４やゲームサーバ１０６の管理者等からは、新作のゲームアプリケーション（ゲームソフト）の情報やゲーム内におけるイベントの情報などのメッセージが送信（通知）される。配信サーバ１０４やゲームサーバ１０６から受信したデータを受信メッセージボックス４４ｂに記憶する処理の詳細については後述する。
【０１１２】
管理用ファイル４４ｃは、ゲーム装置１２についての管理情報であり、ゲーム装置１２の識別情報、ユーザのプロファイルなど、ゲーム装置１２固有の情報が記憶され、必要に応じて読み出される。詳細な説明は省略するが、たとえば、ユーザのプロファイルとしては、アプリケーションの実行により、アプリケーション毎に割り当てられるユーザの識別情報（後述するプロファイルＩＤを含む）が該当する。
【０１１３】
本体フレンドリスト４４ｄは、いわゆる電子メールのアドレス帳に相当し、登録した他のゲーム装置１２の識別情報（またはメールアドレス）および他の端末のメールアドレスが記述される。この本体フレンドリスト４４ｄは、伝言板機能を実行する場合に参照可能であるのみならず、各種アプリケーションからも参照可能である。
【０１１４】
ただし、本体フレンドリスト４４ｄに記述された他のゲーム装置１２の識別情報および他の端末のメールアドレスのうち、フレンド登録（アドレス登録）が実行された他のゲーム装置１２の識別情報または他の端末のメールアドレスから送信された電子メール（受信データ）以外は受信メッセージボックス４４ｂから削除される。つまり、送信元が不明である場合には、受信データがフィルタリングされる。これによって、スパムメールのような所望でない電子メールを自動的に削除することができる。
【０１１５】
タスクリスト４４ｅは、配信サーバ１０４やゲームサーバ１０６からデータをダウンロードするスケジュールを表すタスクのリストであって、ゲーム装置１２の必要のために予め登録されたタスクやユーザによって任意に登録されたタスクをそれぞれ記憶する。それぞれのタスクが実行されることによって、ダウンロード処理が行われることになる。ただし、この実施例では、１つのアプリケーションにおいては、１つのタスクを登録することができる。
【０１１６】
図１０に、各タスクに含まれる属性情報の一例を示す。１つのタスクには、タスクの識別情報（タスクＩＤ）、アプリケーションの識別情報（アプリＩＤ）、配信元のＵＲＬ、残りダウンロード回数、タスクの起動間隔、リトライマージン、コンテンツ更新間隔およびファイル名が含まれる。
【０１１７】
タスクＩＤは、当該タスクを一意に識別するためのＩＤである。アプリＩＤは、当該タスクを登録したアプリケーションを一意に識別するためのＩＤである。このアプリＩＤは、タスクの登録処理を行ったアプリケーションに応じて決定される。
【０１１８】
配信元のＵＲＬは、配信元（配信サーバ１０４やゲームサーバ１０６）の場所を示し、ダウンロードデータのファイル名までを含む。この配信元のＵＲＬは、ユーザによって設定されたり、アプリケーションによって自動的に設定されたりする。
【０１１９】
残りダウンロード回数は、ダウンロードを実行可能な回数を示す。この実施例では、ゲーム装置１２（入出力プロセッサ４２ａ）がダウンロードデータを受信するために、ネットワーク１０８（配信サーバ１０４やゲームサーバ１０６）に接続要求（リクエスト）を送信すると、通常の場合において、残りダウンロード回数が１減算される。そして、残りダウンロード回数が０になると、当該タスクはタスクリスト４４ｅから削除され、当該タスクは実行不能となる。このように、残りダウンロード回数を設定することにより、必要な期間においてダウンロードデータの配信を行わせることができ、ダウンロードデータの配信が不要になった場合には、無駄なダウンロード処理を実行し続けることを防ぐことができる。
【０１２０】
タスクの起動間隔は、タスクを実行する時間間隔であり、具体的には、タスクを実行してから次に当該タスクを実行するまでの時間（期間）を意味する。ただし、タスクを登録した時点では、その登録時刻を基準にして、次に当該タスクを実行する時間が決定される。このタスクの起動間隔は、ユーザによって設定されたり、ダウンロードデータ（コンテンツ）の種類に応じて自動的に設定されたりする。
【０１２１】
リトライマージンは、タスクの起動間隔によって決まる次回のタスクの実行時刻（予定時刻）を超過することが許容される時間である。たとえば、ゲーム装置１２の電源が完全にオフされている場合や、ネットワーク１０８に障害が生じている場合等には、ダウンロード処理（タスク）を実行することができない。その後、ダウンロード処理（タスク）を実行可能な状態になったときに、当該タスクの予定時刻を大幅に超過している場合には、当該タスクの実行によってダウンロードされるダウンロードデータ自体が既に不要になっている場合がある。したがって、タスク登録時に上記リトライマージンを設定し、タスクの起動間隔に応じてタスクの予定時刻が決定されると、リトライマージンに応じて、リトライが許容される時刻（リトライ許容時刻）が決定される。このリトライ許容時刻を越えると、当該タスクは実行されず、その後、タスクリスト４４ｅから削除される。このリトライマージンは、ユーザによって設定されたり、ダウンロードデータの種類に応じて自動的に設定されたりする。
【０１２２】
コンテンツ更新間隔は、配信元のＵＲＬに関して当該配信元で設定されるコンテンツ（ダウンロードデータ）を更新する間隔の平均値である。したがって、ダウンロードデータの種類によっては、このコンテンツ更新間隔が示すダウンロードデータを更新する間隔の平均値を考慮して、タスク起動間隔が設定される。具体的には、タスク起動間隔をコンテンツ更新間隔よりも長い時間に設定しておけば、同じダウンロードデータを重複して取得するような無駄を無くすことができる。逆に、タスク起動間隔をコンテンツ更新間隔よりも短い時間に設定しておけば、更新されるコンテンツのダウンロードを逃すことが無くなる。更新間隔の平均値は、予め想定されている値でもよいし、ダウンロードを実行する毎に配信サーバ１０４やゲームサーバ１０６から更新間隔の平均値を取得してタスクを更新するようにしてもよい。
【０１２３】
ファイル名は、ダウンロードデータを保存する場合に付与するファイル名であり、たとえば、オプションによって指定可能である。ただし、ダウンロードデータにはファイル名が付されているため、ファイル名を指定しなくても所定のファイル名でデータを取得することは可能である。
【０１２４】
なお、タスクの実行については後で詳細に説明する。ダウンロードデータは、その識別情報（アプリＩＤ）が示すアプリケーションにおいて利用することができる。たとえば、ゲームのアプリケーションにおいては、ダウンロードデータは、当該ゲームについての追加マップ、追加キャラクタ、追加アイテムなどのデータである。
【０１２５】
図９に戻って、セーブ領域４４ｆは、アプリケーションのデータを保存（セーブ）する領域であり、領域内にダウンロードボックス４４０を含む。ダウンロードボックス４４０は、上述したように、タスクに従って配信サーバ１０４やゲームサーバ１０６からダウンロードされたダウンロードデータが記憶される領域である。ただし、ダウンロードボックス４４０には、ユーザの指示に従って、ＣＰＵ４０によって、配信サーバ１０４やゲームサーバ１０６からダウンロードされたダウンロードデータも記憶される。
【０１２６】
詳細な説明は省略するが、ダウンロードデータには、タスクが登録されたアプリケーションやＣＰＵ４０が実行中のアプリケーションを識別するためのアプリＩＤが予め付されている。ただし、アプリＩＤは必ずしもダウンロードデータに予め付されている必要はなく、他の実施例としては、ダウンロードボックス４４０に登録する際に、タスクの属性情報が示すアプリＩＤを参照して、これを付すようにしてもよい。したがって、様々な種類のアプリケーションについてのダウンロードデータがダウンロードボックス４４０に記憶されている場合であっても、そのアプリＩＤによって各ダウンロードデータを識別することができる。また、セーブ領域４４ｆは、アプリケーション毎に領域が確保されている。したがって、他の実施例としては、ダウンロードデータに対応したアプリケーションのデータを記憶する領域内にアプリケーション毎のダウンロードボックスを設けることも考えられる。
【０１２７】
データベース４４ｇは、上述の伝言板機能によって利用される、日付毎のメッセージを格納しておく領域であり、他のアプリケーションからも参照可能である。上述したように、受信データは受信メッセージボックス４４ｂに記憶されるが、受信メッセージボックス４４ｂの容量は有限であり、一杯になると、受信データは古いものから順に削除される。したがって、メッセージの長期間保存や共用化のために、データベース４４ｇを設け、受信データ（メッセージ）は、たとえばゲームデータが添付されたもののような、個々のアプリケーションでしか利用しないものを除いて、受信メッセージボックス４４ｂからデータベース４４ｇに移動される。このとき、メッセージのヘッダ情報が参照され、日付毎に管理されるデータベース４４ｇの各領域に記憶される。たとえば、伝言板日時指定の情報として年月日および時間が記述されている場合には、当該受信データは指定された年月日に対応する領域に記憶される。ただし、メッセージのヘッダ情報に日時等の指定が無ければ、当該メッセージを受信した日に対応する領域に、当該メッセージは記憶される。日付毎の領域の管理方法としては、たとえば日付毎にフォルダを設定し、メッセージを対応するフォルダ内に保存するようにすればよい。また、保存する際のファイル名を、時刻を表すファイル名にしてもよい。
【０１２８】
なお、図示は省略するが、メモリカードがメモリカード用コネクタ６２に装着されている場合には、データベース４４ｇの内容はメモリカードに自動的またはユーザの指示によりバックアップすることができる。
【０１２９】
本体アプリ領域４４ｈは、本体機能として組み込まれたアプリケーションのプログラム（ソフト）を記憶する領域である。たとえば、ゲーム装置１２を起動した際のメニュープログラムや、伝言板機能、フレンド登録機能のようなゲーム装置１２自体の機能（本体機能）のアプリケーションは、本体アプリ領域４４ｈに記憶（インストール）されている。つまり、ゲーム装置１２は、光ディスク１８に記憶されているゲーム等のプログラムを読み出してアプリケーションを実行することも、フラッシュメモリ４４に記憶されているプログラムを読み出してアプリケーションを実行することも可能である。また、本体アプリ領域４４ｈに記憶されるプログラムは上述のソフト以外にも追加することが可能である。
【０１３０】
ここで、入出力プロセッサ４２ａによって実行されるダウンロード処理の概要について説明する。ただし、ダウンロード処理は、上述したタスクに記述される配信元のＵＲＬに設定されたサーバ（この実施例では、配信サーバ１０４，ゲームサーバ１０６）に対して実行される。図１１（Ａ）に示すように、或るタスクがタスクリスト４４ｅに登録されると、その時刻ｔ１を基準に当該タスクがスケジューリングされる。たとえば、図１１（Ａ）に示す例では、タスクの実行間隔Ｔ１に従って時刻（予定時刻）ｔ２に当該タスクがスケジューリングされる。なお、この実行間隔Ｔ１が、当該タスクの属性情報のタスク起動間隔に相当する。時刻は、ＲＯＭ／ＲＴＣ４８から得ることができる。タスクが実行されると、当該実行時刻に実行間隔Ｔ１を加えた予定時刻に、次回タスクが実行される。ダウンロードのタスクは、ダウンロードの実行とともに残りダウンロード回数が１減算され、このとき、次回タスクを実行する予定時刻（実行予定時刻）がスケジューリングされる。
【０１３１】
図１１（Ｂ）に示すように、入出力プロセッサ４２ａの内部では、処理の単位時間となる所定時間毎にトリガが発生し、当該トリガ発生時に、トリガ発生時刻と、前述のメッセージの送受信を行う予定時刻や、ダウンロードを行う予定時刻等とを比較する処理が行われ、予定時刻を超過している場合に当該処理が起動することになる。したがって、トリガの発生時よりも後にタスクがスケジューリングされている場合には、当該タスクは次回のトリガの発生時に実行されるため、タスクの実際の実行時刻は、図１１（Ａ）でスケジューリングした予定時刻ｔ２から若干遅れてしまうことがある。
【０１３２】
また、図１１（Ｃ）に示すように、スタンバイモードではなく、ゲーム装置１２の電源が完全にオフされた場合のように、タスクの実行自体が停止される場合も有り得る。かかる場合には、再びゲーム装置１２が起動した後にタスクが実行されることになるが、タスクの実行時刻にかなりの遅れが生じてしまうことがある。
【０１３３】
なお、タスクの実行は、アプリケーションからの要求によって、一時的に停止させたり、再開させたりすることが可能であって、そのような場合にもタスクの実行時刻に遅れが生じる可能性がある。
【０１３４】
このように、タスクの実行時刻の遅延が発生した場合、ダウンロードするデータが既に不要なものになっている場合があるので、遅延が発生した場合に、当該タスクの実行を許容するか否かを決定するために、タスクの属性情報として、リトライマージンが設定されている。具体的には、タスクを実行するとき、タスクの実行を開始する時点（現在時刻）が、タスクの実行予定時刻にリトライマージンが示す時間を加算したリトライ許容時刻を越えているかどうかを判断する。そして、現在時刻がリトライ許容時刻を越えている場合には、タスクの実行は行わずに、当該タスクはタスクリスト４４ｅから削除される。一方、現在時刻がリトライ許容時刻に満たない場合には、当該タスクを実行し、以降の処理を続行する。
【０１３５】
具体的には、入出力プロセッサ４２ａは、図１２に示すフロー図に従ってタスクに従うダウンロード処理を実行する。このダウンロード処理は、入出力プロセッサ４２ａがＣＰＵ４０と独立に実行するものであって、上述のスタンバイモード時であっても実行される。また、ＣＰＵ４０がアプリケーションを実行している間であっても、独立に実行されている。ただし、このダウンロード処理は、タスクが登録されている状態で、上述のように、入出力プロセッサ４２ａ内でトリガが発生する毎に実行され続ける。また、ダウンロード処理は、タスク毎に実行される。
【０１３６】
この図１２に示すように、入出力プロセッサ４２ａはステップＳ１で、タスクを実行するためのトリガ（タスク実行トリガ）の発生を検出する。ステップＳ１で“ＮＯ”であれば、つまりタスク実行トリガが無ければ、そのままステップＳ１に戻る。一方、ステップＳ１で“ＹＥＳ”であれば、つまりタスク実行トリガが有れば、ステップＳ３で、当該タスクの実行予定時刻であるかどうかを判断する。厳密に言うと、ここでは、入出力プロセッサ４２ａは、現在時刻が実行予定時刻以降であるかどうかを判断する。
【０１３７】
ステップＳ３で“ＮＯ”であれば、つまり当該タスクの実行予定時刻でなければ、そのままステップＳ１に戻る。一方、ステップＳ３で“ＹＥＳ”であれば、つまり当該タスクの実行予定時刻であれば、ステップＳ５で、リトライ許容時刻を過ぎているかどうかを判断する。ステップＳ５で“ＹＥＳ”であれば、つまりリトライ許容時刻を過ぎていれば、ステップＳ７で、当該タスクをタスクリスト４４ｅから消去して、ダウンロード処理を終了する。
【０１３８】
ただし、ダウンロード処理はタスク毎に実行されるので、リトライ許容時刻を過ぎたタスクに関するダウンロード処理が終了するという意味であって、他のタスクについてはそれ以降もトリガ発生とともにダウンロード処理が起動（実行）されることになる。
【０１３９】
一方、ステップＳ５で“ＮＯ”であれば、つまりリトライ許容時刻を過ぎていなければ、ステップＳ９で、サーバ（１０４，１０６）に接続要求を送信する。つまり、入出力プロセッサ４２ａは、当該タスクの属性が示すコンテンツすなわちダウンロードデータの配信元のＵＲＬにアクセス要求を送信するのである。続いて、ステップＳ１１で、当該タスクの残りダウンロード回数を１減算する。ここで、図示は省略するが、入出力プロセッサ４２ａは、残りダウンロード回数が０になった時点で、当該タスクをタスクリスト４４ｅから消去し、次回のダウンロードが行われないようにする。ステップＳ１３では、次回のタスク実行予定時刻をスケジューリングする。
【０１４０】
そして、ステップＳ１５では、サーバ（１０４，１０６）との接続に成功したかどうかを判断する。ステップＳ１５で“ＮＯ”であれば、つまりサーバ（１０４，１０６）との接続に失敗すれば、そのままステップＳ１に戻る。なお、この実施例では、入出力プロセッサ４２ａは、サーバ（１０４，１０６）との接続に失敗すると、直にステップＳ１に戻るようにしてあるが、所定回数接続要求を送信しても（たとえば、３回のリトライ）、接続に成功しない場合に、ステップＳ１に戻るようにしてもよい。また、ネットワーク１０８やサーバ（１０４，１０６）にエラーが発生している場合には、リトライを行わないようにしてもよい。さらに、そのようなエラーが発生している場合には、上述の残りダウンロード回数の減算を行うとダウンロードが行われないまま終了してしまう可能性があるので、ステップＳ１１の処理を、ステップＳ１５とステップＳ１７との間で実行するようにしてもよい。
【０１４１】
ステップＳ１５で“ＹＥＳ”であれば、つまりサーバ（１０４，１０６）との接続に成功すれば、ステップＳ１７で、ダウンロードを実行する。つまり、入出力プロセッサ４２ａは、ダウンロードデータを取得する。そして、ステップＳ１９で、ダウンロードデータがメッセージ配信用のデータであるかどうかを判断する。たとえば、メッセージ配信用のデータを電子メール形式のデータとし、入出力プロセッサ４２ａは、取得したダウンロードデータが電子メールの形式であるかどうかを判断する。または、メッセージ配信用のデータであることを示す情報をダウンロードデータに含め、ダウンロード実行後にゲーム装置１２において電子メール形式のデータに変換するようにしてもよい。たとえば、メッセージ配信用のデータとして配信される内容としては、配信元（配信サーバ１０４，ゲームサーバ１０６）から、新しいアプリケーションの配信を開始したことのメッセージや或るアプリケーションについての追加データを配信したことのメッセージが考えられる。
【０１４２】
ステップＳ１９で“ＹＥＳ”であれば、つまりダウンロードデータがメッセージ配信用のデータである場合には、ステップＳ２１で、当該ダウンロードデータを受信データとして受信メッセージボックス４４ｂに格納して、ステップＳ１に戻る。一方、ステップＳ１９で“ＮＯ”であれば、つまりダウンロードデータがメッセージ配信用のデータでない場合には、ステップＳ２３で、当該ダウンロードデータをダウンロードボックス４４０に格納して、ステップＳ１に戻る。
【０１４３】
なお、受信メッセージボックス４４ｂに格納されたメッセージ配信用のデータは、その後、伝言板機能によってモニタ３４に出力され、配信元からのメッセージがプレイヤに通知される。
【０１４４】
たとえば、２台以上のゲーム装置１２、ゲームサーバ１０６およびネットワーク１０８によって、ネットワークゲームシステム１１０が構成される。ただし、ネットワークゲームシステム１１０は、メールサーバ１０２や配信サーバ１０４を含んでもよい。
【０１４５】
このようなネットワークゲームシステム１１０では、ネットワーク１０８に接続される或るゲーム装置１２がネットワーク１０８に接続される他のゲーム装置１２との間で、通信ゲームをプレイすることができる。以下、具体的に説明するが、この実施例では、親機は通信ゲームへの参加を募集するゲーム装置１２を意味し、子機は通信ゲームへの参加を希望するゲーム装置１２を意味する。また、この実施例のネットワークゲームシステム１１０では、所定のゲームについての製品版のゲームプログラムを有するゲーム装置１２と、製品版に対応する体験版のゲームプログラムを有するゲーム装置１２とが混在する。
【０１４６】
図１３を参照して、製品版のゲームプログラム２００は、スタンドアロンのゲームプログラム２１０、ネットワーク接続のゲームプログラム２１２およびゲームデータ２２０を含む。スタンドアロンのゲームプログラム２１０は、他のゲーム装置１２と通信をしないで、この製品版のゲームプログラム２００を有するゲーム装置１２単体でゲームをプレイするためのプログラムである。このスタンドアロンのゲームプログラム２１０は、１人プレイ用ゲームプログラム２１０ａおよび複数人プレイ用ゲームプログラム２０ｂを含む。１人プレイ用ゲームプログラム２１０ａは、ゲーム装置１２を用いて１人でゲームをプレイするためのプログラムである。複数人プレイ用ゲームプログラム２０ｂは、ゲーム装置１２を用いて２人以上でゲームをプレイするためのプログラムである。
【０１４７】
ネットワーク接続のゲームプログラム２１２は、他のゲーム装置１２と通信することにより、通信ゲームをプレイするためのプログラムである。このネットワーク接続のゲームプログラム２１２は、プロファイルＩＤの作成要求プログラム２１２ａ、ともだち登録プログラム２１２ｂ、募集プログラム２１２ｃ、参加プログラム２１２ｄおよび通信用ゲームプログラム２１２ｅによって構成される。
【０１４８】
プロファイルＩＤの作成要求プログラム２１２ａは、この通信ゲームにおいて主としてユーザ認証のために使用するユーザないしプレイヤのプロファイルＩＤの作成要求（この実施例では、仮プロファイルＩＤ）をゲームサーバ１０６に送信するためのプログラムである。ただし、作成要求するプロファイルＩＤは、ゲーム装置１２自身（自己）のプロファイルＩＤである。ともだち登録プログラム２１２ｂは、通信ゲームの相手として決定することが可能なともだち（ユーザないしプレイヤ）のリスト（ゲームフレンドリスト）に、ともだちの名称（名前，ニックネーム，呼名など）と、そのともだちのプロファイルＩＤとを登録するためのプログラムである。
【０１４９】
募集プログラム２１２ｃは、通信ゲームをプレイするに先立って、当該通信ゲームをプレイする相手を募集するためのプログラムである。この実施例では、ゲームサーバ１０６が通信ゲームの相手を仲介するため、当該募集プログラム２１２ｃを実行することにより、通信ゲームをプレイする相手の募集受付の要求がゲームサーバ１０６に送信される。参加プログラム２１２ｄは、通信ゲームをプレイするに先立って、当該通信ゲームへの参加を要求するためのプログラムである。上述したように、この実施例では、ゲームサーバ１０６が通信ゲームの相手を仲介するため、当該参加プログラム２１２ｄを実行することにより、通信ゲームへの参加の要求がゲームサーバ１０６に送信される。つまり、この製品版のゲームプログラム２００を有するゲーム装置１２は、親機(募集プログラムを実行するゲーム装置１２)または子機（参加プログラムを実行するゲーム装置１２）として通信ゲームに参加することができる。通信用ゲームプログラム２１２ｅは、通信ゲームをプレイするためのプログラムであって、当該通信ゲームのメインルーチンを処理するためのプログラムである。この通信用ゲームプログラム２１２ｅは、通信ゲームの参加者を募集したり、通信ゲームへの参加を要求したりして、通信ゲームの相手が決定された後に実行される。
【０１５０】
ゲームデータ２２０は、スタンドアロン用のデータ２２０ａ、ネットワーク接続用のデータ２２０ｂおよび共通のデータ２２０ｃを含む。スタンドアロン用のデータ２２０ａは、ゲーム装置１２単体でゲームをプレイする場合にのみ用いられる画像データ（ポリゴンやテクスチャなどのデータ。以下、同じ。）などのデータである。ネットワーク接続用のデータ２２０ｂは、通信ゲームをプレイする場合にのみ用いられる画像データなどのデータである。共通のデータは、ゲーム装置１２単体でゲームをプレイする場合および通信ゲームをプレイする場合に共通して用いられる画像データなどのデータである。
【０１５１】
また、図１４を参照して、体験版のゲームプログラム２００´は、ネットワーク接続のゲームプログラム２１２´およびゲームデータ２２０´を含む。図１３および図１４を参照して分かるように、この体験版のゲームプログラム２００´は、製品版のゲームプログラム２００の一部によって構成される。具体的には、体験版のゲームプログラム２００´には、スタンドアロンのゲームプログラム２１０は含まれていない。つまり、通信ゲームのみが実行可能である。
【０１５２】
なお、図１４に示す体験版のゲームプログラム２００´においては、図１３に示した製品版のゲームプログラム２００に含まれるプログラムやゲームデータのうち、同じプログラムや同じゲームデータについては同じ参照符号を付してある。また、同じプログラムや同じゲームデータについての重複した説明は省略することにする。
【０１５３】
図１４から分かるように、ネットワーク接続のゲームプログラム２１２´には、募集プログラム２１２ｃは含まれていない。つまり、体験版のゲームプログラム２００´を有するゲーム装置１２では、通信ゲームへの参加の要求ができるだけである。言い換えると、当該ゲーム装置１２は通信ゲームにおいて子機としてのみ機能する。また、体験版のゲームプログラム２００´には、スタンドアロンのゲームプログラム２１０は含まれず、ゲーム装置１２単体でのゲームをプレイすることができない。このため、ゲームデータ２２０´には、スタンドアロン用の画像データ２２０ａも記憶されない。
【０１５４】
図１５および図１６は、第１のゲーム装置１２と第２のゲーム装置１２とが通信ゲームをプレイするまでの流れの一例を時系列に従って示した説明図である。ここでは、簡単のため、２台のゲーム装置１２がネットワーク１０８を介して通信することにより、通信ゲームをプレイするまでの処理について説明するが、３台以上のゲーム装置１２が通信ゲームをプレイできることは言うまでもない。この場合、１台のゲーム装置１２が親機として働き、他のすべてのゲーム装置１２が子機として働く。また、通信ゲームをプレイするプレイヤ同士は、少なくとも知人であることを前提する。
【０１５５】
なお、図１５および図１６では、説明の都合上、第１のゲーム装置１２と第２のゲーム装置１２との処理がほぼ同時期に実行されるように示してあるが、必ずしも同時期である必要はない。
【０１５６】
図１５に示すように、第１のゲーム装置１２は、ゲームサーバ１０６の管理者（運営者）またはゲームサーバ１０６を用いてゲームを提供する提供者から製品版のゲームプログラム２００を記憶した光ディスク１８を購入する。ただし、製品版のゲームプログラム２００が収録された光ディスク１８を店頭で購入してもよい。または、後述する体験版のゲームプログラム２００´と同様に、製品版のゲームプログラム２００をゲームサーバ１０６からダウンロード可能にしてもよい。なお、製品版のゲームプログラム２００をゲームサーバ１０６からダウンロードする場合には、プリペイドカードやクレジットカード決済等により課金処理が行われる。
【０１５７】
一方、第２のゲーム装置１２は、体験版のゲームプログラム２００´をゲームサーバ１０６から無料でダウンロードする。つまり、体験版のゲームプログラム２００´をゲームサーバ１０６からダウンロードする場合には、課金処理は行われない。ただし、体験版のゲームプログラム２００´が収録された光ディスク１８を無料で入手できるようにしてもよい。かかる場合には、体験版のゲームプログラム２００´は、たとえば、他のゲームについての製品版のゲームプログラムを記憶した光ディスク１８におまけとして記憶されたり、雑誌の付録の光ディスク１８に記憶されたり、無料で配布される光ディスク１８に記憶されたりする。
【０１５８】
ここで、第１のゲーム装置１２で、製品版のゲームプログラム２００が起動されると、図１７（Ａ）に示すメニュー画面３００が当該第１のゲーム装置１２に接続されるモニタ３４に表示される。図１７（Ａ）に示すように、このメニュー画面３００には、４つのボタン画像（またはアイコン）３０２，３０４，３０６，３０８が設けられる。このメニュー画面３００では、すべてのボタン画像３０２−３０８を選択（オン）することができる。ボタン画像３０２がオンされると、第１のゲーム装置１２単体で、１人プレイ用のゲームをプレイすることができる。また、ボタン画像３０４がオンされると、第１のゲーム装置１２単体で、複数人プレイ用のゲームをプレイすることができる。さらに、ボタン画像３０６がオンされると、他のゲーム装置１２との間で通信ゲームをプレイすることが選択される。さらにまた、ボタン画像３０８がオンされると、後述するように、ゲームフレンド（通信ゲームの相手）のプロファイルＩＤを登録したり、当該第１のゲーム装置１２の（自己の）プロファイルＩＤを見たりすることができる。
【０１５９】
また、第２のゲーム装置１２で、体験版のゲームプログラム２００´が起動されると、図１７（Ｂ）に示すようなメニュー画面３００´がモニタ３４に表示される。このメニュー画面３００´では、メニュー画面３００と同様に、ボタン画像３０２−３０８が表示される。ただし、ボタン画像３０２とボタン画像３０４とはグレーアウトされ、オン（選択）することはできない。つまり、この実施例の体験版のゲームプログラム２００´では、製品版のゲームプログラム２００においてプレイすることができるゲーム装置１２単体のゲームを、プレイすることができないのである。
【０１６０】
なお、この実施例では、製品版のゲームプログラム２００を購入すると、他にプレイできるゲームがあることを知らせるために、メニュー画面３００´において、ボタン画像３０２およびボタン画像３０４をグレーアウトで表示してあるが、これに限定される必要はない。ボタン画像３０２およびボタン画像３０４は表示しなくてもよいし、ボタン画像３０２およびボタン画像３０４を選択可能に表示しておき、ボタン画像３０２およびボタン画像３０４が選択されたときに、体験版ではプレイできない旨のメッセージをモニタ３４に表示するようにしてもよい。
【０１６１】
ここで、製品版のゲームプログラム２００が初めて起動された場合に、ボタン画像３０６がオンされると、第１のゲーム装置１２は通信ゲームで使用するプロファイルＩＤの作成をゲームサーバ１０６に要求する。同様に、体験版のゲームプログラム２００´が初めて起動された場合には、ボタン画像３０６がオンされると、第２のゲーム装置１２は通信ゲームで使用するプロファイルＩＤの作成をゲームサーバ１０６に要求する。このようにするのは、プロファイルＩＤが未作成であり、しかも、通信ゲームの相手のプロファイルＩＤが未登録だからである。
【０１６２】
ただし、製品版のゲームプログラム２００や体験版のゲームプログラム２００´を起動するのが２回目以降であっても、自己のプロファイルＩＤが登録されていない場合（たとえば、１回目の起動のときにボタン画像３０６がオンされなかった場合等）には、自己のプロファイルＩＤの作成がゲームサーバ１０６に要求される。
【０１６３】
図１５に戻って、第１のゲーム装置１２は、自己のプロファイルＩＤの作成をゲームサーバ１０６に要求する。第２のゲーム装置１２もまた、自己のプロファイルＩＤの作成をゲームサーバに１０６に要求する。
【０１６４】
ゲームサーバ１０６は、第１のゲーム装置１２や第２のゲーム装置１２からのプロファイルＩＤの作成要求を受けて、各々のプロファイルＩＤを作成する。そして、ゲームサーバ１０６は、作成したプロファイルＩＤを第１のゲーム装置１２および第２のゲーム装置１２の各々に送信する。
【０１６５】
この実施例では、プロファイルＩＤは、ゲーム装置１２の無線通信モジュール５０のＭＡＣアドレスと、ゲームコード（ゲームの種類を示すＩＤ（アプリＩＤ））と、乱数（８バイト）とから構成される。ただし、ゲームサーバ１０６からゲーム装置１２に送信されるプロファイルＩＤには、ＣＲＣ(Cyclic Redundancy Check)チェック用のデータが付加される。
【０１６６】
第１のゲーム装置１２および第２のゲーム装置１２の各々は、ゲームサーバ１０６から送信されたプロファイルＩＤを受信して、フラッシュメモリ４４内の管理用ファイル４４ｃに記憶する。詳細な説明は省略するが、このように、ゲームサーバ１０６から第１のゲーム装置１２や第２のゲーム装置１２にプロファイルＩＤを送信（配信）する場合には、ゲームサーバ１０６が第１のゲーム装置１２や第２のゲーム装置１２を宛先として直接的に送信するようにしてもよく、第１のゲーム装置１２や第２のゲーム装置１２がダウンロード処理を実行するようにしてもよい。ただし、ダウンロード処理は、上述したように、タスクに従って実行することができ、また、ユーザないしプレイヤの指示に従って実行することもできる。
【０１６７】
続いて、第１のゲーム装置１２のユーザ（プレイヤ）と第２のゲーム装置１２のプレイヤとは、互いに自己のプロファイルＩＤを教え合う。たとえば、プレイヤ同士が、プロファイルＩＤを、口頭で教え合ってもよいし、手紙や電子メールで教えあってもよい。また、上述したように、第１のゲーム装置１２と第２のゲーム装置１２とで、メッセージを送受信することにより、プロファイルＩＤを教え合うこともできる。したがって、第１のゲーム装置１２では、第２のゲーム装置１２のプロファイルＩＤを通信ゲームのフレンドリスト（ゲームフレンドリスト）に登録することができる。一方、第２のゲーム装置１２では、第１のゲーム装置１２のプロファイルＩＤをゲームフレンドリストに登録することができる。
【０１６８】
ここで、図１７（Ａ）に示すメニュー画面３００において（図１７（Ｂ）に示すメニュー画面３００´も同様）、ボタン画像３０８が選択されると、図１８に示すような友達設定のサブメニュー画面４００がモニタ３４に表示される。このサブメニュー画面４００には、３つのボタン画像４０２，４０４，４０６が表示される。ボタン画像４０２が選択されると、通信ゲームをプレイすることを許容する相手（ゲームフレンド）を登録することができる。具体的には、図１９（Ａ）に示すようなゲームフレンドのプロファイルＩＤの登録画面４２０がモニタ３４に表示される。この登録画面４２０には、入力欄４２２および入力欄４２４が設けられるとともに、ボタン画像４２６およびボタン画像４２８が設けられる。入力欄４２２には、ゲームフレンドとして登録したプレイヤの名前（名称）が入力される。また、入力欄４２４には、ゲームフレンドとして登録するプレイヤのプロファイルＩＤ（ＣＲＣチェック用のデータ付加されている）が入力される。入力欄４２２に名前が入力され、入力欄４２４にプロファイルＩＤが入力された状態で、ボタン画像４２６がオンされると、プレイヤおよびプロファイルＩＤが図２０に示すようなフレンドリストに登録される。しかし、登録画面４２０でボタン画像４２８がオンされると、ゲームフレンドの登録がキャンセルされ、サブメニュー画面４００に戻る。
【０１６９】
ここで、図２０に示すように、ゲームフレンドリストでは、プレイヤの名前ないし名称（プレイヤの識別情報でも可）に対応して、当該プレイヤ（ゲーム装置１２）に対して決定されたプロファイルＩＤが記述される。ただし、図２０では、簡単のため、プロファイルＩＤを５つのアルファベット文字で表現してある。図示は省略するが、このゲームフレンドリストは、フラッシュメモリ４４に設けられるセーブ領域４４ｆのうちの当該アプリケーション（この実施例のゲームアプリケーション）に割り当てられた領域に記憶される。
【０１７０】
図１８に戻って、サブメニュー画面４００でボタン画像４０４がオンされると、図１９（Ｂ）に示すような自己のプロファイルＩＤの表示画面４４０がモニタ３４に表示される。図１９（Ｂ）に示すように、表示画面４４０には、表示領域４４２およびボタン画像４４４が設けられる。表示領域４４２には、ゲームサーバ１０６で作成され、ゲーム装置１２に登録された自己のプロファイルＩＤが表示される。ここでも、簡単のため、プロファイルＩＤを５つのアルファベットで示してある。ただし、厳密に言うと、プロファイルＩＤにＣＲＣチェック用のデータが付加された文字列が表示される。また、ボタン画像４４４がオンされると、上述したサブメニュー画面４００に戻る。つまり、プレイヤは、表示画面４４０で自己のプロファイルＩＤを確認して、上述したように、他のプレイヤ（知人ないし友達）とプロファイルＩＤを教え合うのである。
【０１７１】
図１８に戻って、サブメニュー画面４００でボタン画像４０６がオンされると、サブメニュー画面４００を終了して、上述したメニュー画面３００に戻る。
【０１７２】
第１のゲーム装置１２と第２のゲーム装置１２とで互いのプロファイルＩＤがゲームフレンドリストに登録されると、図１６に示すように、第１のゲーム装置１２は、第２のゲーム装置１２のプロファイルＩＤをゲームサーバ１０６に送信する。一方、第２のゲーム装置１２は、第１のゲーム装置１２のプロファイルＩＤをゲームサーバ１０６に送信する。
【０１７３】
ゲームサーバ１０６では、第１のゲーム装置１２および第２のゲーム装置１２から送信されたプロファイルＩＤを受信すると、これらをゲームフレンドリストに登録する。後で詳細に説明するが、ゲームサーバ１０６は、プレイヤ（ゲーム装置１２）毎のデータ（プレイヤデータ）を管理し、このプレイヤデータに対応するプレイヤのゲームフレンドリストが含まれる。図示は省略するが、ゲームサーバ１０６で管理されるプレイヤデータに含まれるゲームフレンドリストは、当該プレイヤのゲーム装置１２に登録されている当該ゲームについてのゲームフレンドリストの内容と同じである。したがって、ここでは、ゲームサーバ１０６は、第１のゲーム装置１２のゲームフレンドリストに第２のゲーム装置１２のプロファイルＩＤを登録し、第２のゲーム装置１２のゲームフレンドリストに第１のゲーム装置１２のプロファイルＩＤを登録する。
【０１７４】
その後、第１のゲーム装置１２は、プレイヤの指示に従って、ゲームサーバ１０６にともだちの募集要求を行う。具体的には、第１のゲーム装置１２において、図１７（Ａ）に示すメニュー画面３００でボタン画像３０６がオンされ、図２１に示す通信対戦のサブメニュー画面５００がモニタ３４に表示され、さらに、このサブメニュー画面５００でボタン画像５０２がオンされる。
【０１７５】
ここで、図２１に示すサブメニュー画面５００は、通信ゲームに親機として参加するか、子機として参加するかを決定するための画面である。つまり、製品版のゲームプログラム２００を有するゲーム装置１２では、親機または子機を選択して、通信ゲームに参加することができるのである。ボタン画像５０２がオンされると、親機として通信ゲームに参加するべく、ともだちの募集要求がゲームサーバ１０６に行われる。ボタン画像５０４がオンされると、募集中の通信ゲームに子機として参加するべく、参加要求がゲームサーバ１０６に行われる。このように、製品版のゲームプログラム２００を有する第１のゲーム装置１２は、子機として通信ゲームに参加することもできるが、このことは、本願発明の本質的な内容ではないため、図１５および図１６を用いた説明においては省略してある。また、ボタン画像５０６がオンされると、通信ゲームへの参加をキャンセルして、図１７（Ａ）に示すメニュー画面３００に戻る。
【０１７６】
一方、第２のゲーム装置１２は、ゲームサーバ１０６に対して、通信ゲームへの参加要求を行う。ここで、体験版のゲームプログラム２００´を有する第２のゲーム装置１２では、上述したように、通信ゲームへの参加要求しかできないため、メニュー画面３００´でボタン画像３０６がオンされた場合であっても、上述したようなサブメニュー画面５００は表示されず、そのまま参加要求がゲームサーバ１０６に行われる。
【０１７７】
ゲームサーバ１０６は、ともだちの募集要求や参加要求を受けると、各ゲームフレンドの通信ゲームについてのリクエストの状態を示すリスト（個別リクエスト状態リスト）を、第１のゲーム装置１２（親機）および第２のゲーム装置１２（子機）に送信する。後で説明するが、個別リクエスト状態リストには、プレイヤ名に対してリクエスト状態（募集，参加，オンライン，オフライン）が記述される。
【０１７８】
親機および子機では、個別リクエスト状態リストを受信すると、当該当該リクエスト状態リストがモニタ３４に表示され、プレイヤに報知される。たとえば、図２２に示すような個別リクエスト状態リストの表示画面６００がモニタ３４に表示される。ただし、この表示画面６００は、参加要求した場合の例であり、子機で表示される。図２２に示すように、表示画面６００には、画面上部に表示領域６０２が設けられ、その下側にリクエスト状態の表示部６０４が設けられる。表示領域６０２には、通信ゲーム（図２２では、ゲームＡ）の相手である親機を選択すべき旨のメッセージが表示される。また、表示部６０４には、プレイヤの名前に対応してリクエスト状態が記述されたテーブルが表示される。
【０１７９】
ここで、リクエスト状態が「募集」であれば、当該通信ゲームの参加者を募集している状態（募集中）であることを示す。また、リクエスト状態が「参加」であれば、当該通信ゲームへの参加要求を行っている状態であることを示す。さらに、リクエスト状態が「オンライン」であれば、ネットワーク１０８に接続しているが、未だ募集要求も参加要求も行っていない状態を示す。さらにまた、リクエスト状態が「オフライン」であれば、ゲームサーバ１０６に接続していない状態を示す。ただし、ゲームサーバ１０６に接続していない状態としては、ゲーム装置１２同士（ここで、第１のゲーム装置１２と第２のゲーム装置１２）がネットワーク１０８を介して通信ゲームを行っている状態、または、ゲーム装置１２の電源がオフ（スタンバイモードを含む）である状態が該当する。
【０１８０】
なお、親機で表示されるリクエスト状態の表示画面については図示を省略する。簡単に説明すると、親機では、参加要求があるのを待機するため、図２２に示すような表示画面６００の表示領域６０２には、参加要求があるまで待機すべき旨のメッセージが表示される。また、表示領域６０４には、図２２に示すような個別リクエスト状態リストが表示される。ただし、参加要求が長時間無い場合に、参加要求を待ち続けるのは酷であるため、ともだちの募集要求を終了することを選択するためのボタン画像がさらに表示される。したがって、親機において、プレイヤが募集の終了を選択すると、その旨がゲームサーバ１０６に通知され、したがって、当該親機についてのリクエスト状態が更新される。具体的には、リクエスト状態が、「募集」から「オンライン」に変更される。ただし、親機がゲームサーバ１０６との通信を終了したり、電源を切ったりした場合には、リクエスト状態が「募集」から「オフライン」に変更される。
【０１８１】
子機では、図２２に示した表示画面６００において、通信ゲームに参加するための親機を、個別リクエスト状態リストのテーブルから選択する。ただし、ここで選択可能な相手は、リクエスト状態が「募集」となっている親機（プレイヤ）だけである。所望の親機が選択されると、図１６に示すように、子機は、ゲームサーバ１０６に対して当該親機への接続要求を行う。ゲームサーバ１０６は、子機からの接続要求を受信すると、当該接続要求をリクエスト状態リストに従って照合する。具体的には、ゲームサーバ１０６は、子機から接続要求のあった親機についてのリクエスト状態を調べて、そのリクエスト状態が「募集」であるかどうかを判断する。また、当該親機のゲームフレンドリストに当該子機のプロファイルＩＤが登録されているかどうかを判断する。
【０１８２】
ゲームサーバ１０６は、当該親機のリクエスト状態が「募集」であり、かつ当該親機のゲームフレンドリストに当該子機のプロファイルＩＤが登録されている場合には、照合の結果が正しいと判断して、子機からの接続要求を受け入れるべく、当該親機の接続アドレス（たとえば、ＩＰアドレス）を送信する。したがって、その後、親機と子機とはネットワーク１０８を介して直接通信（ピア・ツー・ピア）して、通信ゲームを行うことができる。
【０１８３】
ただし、ゲームサーバ１０６は、当該親機のリクエスト状態が「募集」でなかったり、当該親機のゲームフレンドリストに当該子機のプロファイルＩＤが登録されていなかったりする場合には、照合の結果が正しくないと判断して、子機からの接続要求を受け入れることができないと判断して、当該子機に接続不可を示すメッセージを通知する。
【０１８４】
図２３は、図８に示したゲームサーバ１０６の管理するデータベース（図示せず）のメモリマップを示す。図示は省略するが、データベース（ＤＢ）は、ゲームサーバ１０６の内部または外部に設けることができる。図２３を参照して、ゲームサーバ１０６のＤＢには、体験版プログラム記憶領域１２０、ゲーム別プレイヤデータ記憶領域１２２、リクエスト状態リスト記憶領域１２４などが設けられる。体験版プログラム記憶領域１２０には、少なくとも１種類の体験版のゲームプログラム（２００´）が記憶される。
【０１８５】
ゲーム別プレイヤデータ記憶領域１２２には、ゲームサーバ１０６が提供するゲーム毎のプレイヤデータが記憶される。たとえば、ゲームＡに関するプレイヤデータの記憶領域１３０には、プレイヤａデータを記憶する記憶領域１４０，プレイヤｂデータを記憶する記憶領域１４２，…が設けられる。
【０１８６】
記憶領域１４０には、さらに３つの記憶領域１４０ａ，１４０ｂ，１４０ｃが設けられる。記憶領域１４０ａには、プレイヤａに対して決定されたプロファイルＩＤが記憶され、記憶領域１４０ｂには、プレイヤａのプレイヤ名が記憶され、記憶領域１４０ｃには、プレイヤａのゲームフレンドリストが記憶される。ただし、プレイヤａのゲーム装置１２は、ゲームＡの通信ゲームを実行して、ゲームサーバ１０６に接続済みであり、プロファイルＩＤは既に作成されている。また、プレイヤａのゲームフレンドが登録されていない場合には、ゲームフレンドリストには何ら記載されていない。
【０１８７】
同様に、記憶領域１４２には、さらに３つの記憶領域１４２ａ，１４２ｂ，１４２ｃが設けられる。ただし、プレイヤｂは、ゲームＡの通信ゲームを未だ実行しておらず、ゲームサーバ１０６に未接続であるため、プロファイルＩＤは作成されていない。つまり、記憶領域１４２ａには、何も設定されていない。同様に、記憶領域１４２ｂにはプレイヤ名は登録されておらず、また、記憶領域１４２ｃのゲームフレンドリストには何ら記載されていない。
【０１８８】
なお、説明の都合上、図２３においては、ゲームサーバ１０６に未接続のプレイヤｂについてのプレイヤデータの記憶領域１４２が既に確保されているように示してあるが、実際には、プレイヤｂ（ゲーム装置１２）がゲームサーバ１０６に接続し、当該プレイヤｂについてのプロファイルＩＤを作成したときに、記憶領域１４２は確保されるのである。
【０１８９】
また、図示は省略するが、ゲームＡとは異なるゲームＢ或いはその他のゲームについても同様に、プレイヤデータが記憶される。
【０１９０】
全リクエスト状態リスト記憶領域１２４には、全リクエスト状態リスト１２４ａが記憶される。この全リクエスト状態リスト１２４ａは、ゲームサーバ１０６で管理する全てのプレイヤについてのリクエスト状態が記憶される。全リクエスト状態リスト１２４ａでは、プレイヤ名に対応して、ゲーム名およびリクエスト状態が記述される。ただし、リクエスト状態がオフラインである場合には、ゲーム名の欄には何ら記述されない。
【０１９１】
したがって、上述したように、ゲーム装置１２から個別リクエスト状態リストの要求があると、ゲームサーバ１０６は、まず、当該ゲーム装置１２（プレイヤ）についてのゲームフレンドリストを参照して、当該ゲームフレンドリストに登録されているプレイヤを検出する。次に、ゲームサーバ１０６は、全リクエスト状態リスト１２４ａを参照して、検出したプレイヤのうち、要求元のゲーム装置１２と同じゲームを実行中のゲーム装置１２（プレイヤ）およびそのリクエスト状態を抽出することにより、個別リクエスト状態リストを作成する。そして、ゲームサーバ１０６は、作成した個別リクエスト状態リストを、要求元のゲーム装置１２に送信する。
【０１９２】
以下、ゲーム装置１２およびゲームサーバ１０６の具体的な処理について、フロー図を用いて説明することにする。ただし、厳密に言うと、ゲーム装置１２においては、主として、ＣＰＵ４０が処理を実行する。また、同様に、ゲームサーバ１０６においても、主として、ＣＰＵ（図示せず）が処理を実行する。
【０１９３】
図２４は体験版のダウンロード処理を示すフロー図である。この体験版のダウンロード処理は、プレイヤの指示に従ってゲーム装置１２のＣＰＵ４０が実行する。なお、図１２を用いて説明したように、入出力プロセッサ４２ａがタスクに従ってダウンロード処理を実行することにより、体験版のゲームプログラム（２００´）をダウンロードすることもできる。
【０１９４】
図２４を参照して、ＣＰＵ４０は、体験版のダウンロード処理を開始すると、ステップＳ３１で、ゲームサーバ１０６に接続する。続くステップＳ３３では、体験版リストを要求する。図示は省略するが、体験版リストは、体験版のゲームプログラム２００´についてのリストであり、たとえば、ゲームソフトのタイトルが記述される。続くステップＳ３５では、ゲームサーバ１０６からの体験版リストを取得する。そして、ステップＳ３７で、取得した体験版リストをモニタ３４に表示する。つまり、プレイヤは、体験版リストを見て、ダウンロードする体験版のゲームプログラム２００´を決定するのである。
【０１９５】
次のステップＳ３９では、体験版のゲームプログラム２００´を決定したかどうかを判断する。ステップＳ３９で“ＮＯ”であれば、つまり体験版のゲームプログラム２００´を決定していなければ、ステップＳ４１で、キャンセルかどうかを判断する。つまり、体験版のゲームプログラム２００´のダウンロードを中止するかどうかを判断する。ステップＳ４１で“ＹＥＳ”であれば、つまりキャンセルであれば、そのまま体験版のダウロード処理を終了する。図示は省略するが、このとき、ゲームサーバ１０６の接続状態は解除される。一方、ステップＳ４１で“ＮＯ”であれば、つまりキャンセルでなければ、体験版のゲームプログラム２００´の選択中であると判断して、ステップＳ３９に戻る。
【０１９６】
また、ステップＳ３９で“ＹＥＳ”であれば、つまり体験版のゲームプログラム２００´を決定すると、ステップＳ４３で、該当する（決定した）体験版のゲームプログラム２００´の配信要求をゲームサーバ１０６に送信する。そして、ステップＳ４５で、体験版のゲームプログラム２００´の受信を完了したかどうかを判断する。ステップＳ４５で“ＹＥＳ”であれば、つまり体験版のゲームプログラム２００´の受信を完了すれば、ステップＳ４７で、受信した体験版のゲームプログラム２００´をフラッシュメモリ４４に格納して、体験版のダウンロード処理を終了する。
【０１９７】
しかし、ステップＳ４５で“ＮＯ”であれば、つまり体験版のゲームプログラム２００´の受信を完了していなければ、ステップＳ４９で、タイムアウトであるかどうかを判断する。詳細な説明は省略するが、ゲーム装置１２では、体験版のダウンロード処理を開始すると同時に、図示しない内部タイマをスタートして、一定時間（たとえば、１０分）をカウントするようにしてある。この一定時間を超える場合には、体験版のダウンロード処理のタイムアウトであると判断するようにしてある。これは、ネットワーク１０８に通信障害が発生していたり、ゲームサーバ１０６に対する不適切な処理を防止したりするためである。
【０１９８】
ステップＳ４９で“ＮＯ”であれば、つまりタイムアウトでなければ、そのままステップＳ４５に戻る。一方、ステップＳ４９で“ＹＥＳ”であれば、つまりタイムアウトであれば、ステップＳ５１で、エラー表示を行って、体験版のダウンロード処理を終了する。たとえば、ステップＳ５１では、タイムアウトになり、体験版のゲームプログラム２００´のダウンロードを中止した旨および後でダウンロード処理を実行し直す必要がある旨のメッセージがモニタ３４に表示される。また、図示は省略するが、タイムアウトになった場合には、ゲームサーバ１０６との接続状態は解除される。
【０１９９】
なお、図示等は省略するが、ゲームサーバ１０６のＤＢで製品版のゲームプログラム２００を管理し、当該製品版のゲームプログラム２００のダウンロードを可能にした場合には、図２４に示した体験版のダウンロード処理とほぼ同じ処理が実行される。ただし、製品版のゲームプログラム２００をダウンロードする場合には、たとえば、当該ゲームプログラム２００の受信を完了した時点で課金する処理が実行される。この課金処理は、ゲームサーバ１０６側で実行するようにしてもよい。
【０２００】
図２５は、ゲーム装置１２（ＣＰＵ４０）の製品版のゲーム全体処理のフロー図である。つまり、この製品版のゲーム全体処理は、製品版のゲームプログラム２００を有しているゲーム装置１２において実行される。ＣＰＵ４０は、製品版のゲーム全体処理を開始すると、ステップＳ６１で、図１７（Ａ）に示したようなメニュー画面３００をモニタ３４に表示する。続くステップＳ６３では、ともだち設定が選択されたかどうかを判断する。つまり、メニュー画面３００のボタン画像３０８がオンされたかどうかを判断する。
【０２０１】
ステップＳ６３で“ＹＥＳ”であれば、つまりともだち設定が選択されれば、ステップＳ６５で、後述するともだち設定処理（図２７および図２８参照）を実行して、ステップＳ７９に進む。一方、ステップＳ６３で“ＮＯ”であれば、つまりともだち設定が選択されていなければ、ステップＳ６７で、通信対戦が選択されたかどうかを判断する。つまり、メニュー画面３００のボタン画像３０６がオンされたかどうかを判断する。
【０２０２】
ステップＳ６７で“ＮＯ”であれば、つまり通信対戦が選択されていなければ、そのままステップＳ７９に進む。一方、ステップＳ６７で“ＹＥＳ”であれば、つまり通信対戦が選択されれば、ステップＳ６９で、図２１に示したような通信対戦のサブメニュー画面５００をモニタ３４に表示する。次のステップＳ７１では、ともだちを募集するかどうかを判断する。つまり、サブメニュー画面５００のボタン画像５０２がオンされたかどうかを判断する。ステップＳ７１で“ＹＥＳ”であれば、つまりともだちを募集する場合には、ステップＳ７３で、後述する親機処理（図２９参照）を実行して、ステップＳ７９に進む。
【０２０３】
しかし、ステップＳ７１で“ＮＯ”であれば、つまりともだちを募集しない場合には、ステップＳ７５で、募集中の通信ゲームに参加するかどうかを判断する。つまり、サブメニュー画面５００のボタン画像５０４がオンされたかどうかを判断する。ステップＳ７５で“ＹＥＳ”であれば、つまり募集中の通信ゲームに参加する場合には、ステップＳ７７で、後述する子機処理（図３０参照）を実行して、ステップＳ７９に進む。一方、ステップＳ７５で“ＮＯ”であれば、つまり募集中の通信ゲームに参加しない場合には、そのままステップＳ７９に進む。
【０２０４】
なお、ここでは、簡単のため、ステップＳ７５で“ＮＯ”の場合には、そのままステップＳ７９に進むようにしてあるが、上述したように、サブメニュー画面５００でボタン画像５０６がオンされた場合には、メニュー画面３００に戻る。したがって、ステップＳ７５で“ＮＯ”と判断された後に、メニュー画面３００に戻るかどうかを判断して、“ＹＥＳ”ならステップＳ６１に戻り、“ＮＯ”ならステップＳ７９に進むようにすればよい。
【０２０５】
ステップＳ７９では、その他の処理かどうかを判断する。ここでは、メニュー画面３００で、ボタン画像３０２またはボタン画像３０４がオンされたかどうかを判断したり、既にボタン画像３０２，３０４がオンされている場合には、ゲーム装置１２単体でのゲーム処理を実行するかどうかを判断したりする。ステップＳ７９で“ＮＯ”であれば、つまりその他の処理でなければ、そのままステップＳ８３に進む。一方、ステップＳ７９で“ＹＥＳ”であれば、つまりその他の処理であれば、ステップＳ８１で、ゲーム装置１２単体でのゲーム処理を開始したり、そのゲーム処理を進行させたりして、ステップＳ８３に進む。
【０２０６】
ステップＳ８３では、最初に戻るかどうかを判断する。つまり、メニュー画面３００に戻るかどうかを判断する。ステップＳ８３で“ＹＥＳ”であれば、つまり最初に戻る場合には、ステップＳ６１に戻る。一方、ステップＳ８３で“ＮＯ”であれば、つまり最初に戻らない場合には、そのまま製品版のゲーム全体処理を終了する。
【０２０７】
なお、図示は省略するが、初めて製品版のゲーム全体処理を実行する場合のように、自己のプロファイルＩＤが登録されていない場合に、ステップＳ６７で通信対戦が選択されたと判断すると、強制的にステップＳ６５の処理を実行して、プレイヤに自己のプロファイルＩＤの登録を行わせるようにしてある。
【０２０８】
図２６は、ゲーム装置１２（ＣＰＵ４０）の体験版のゲーム全体処理を示すフロー図である。つまり、この体験版のゲーム全体処理は、体験版のゲームプログラム２００´を有しているゲーム装置１２において実行される。ＣＰＵ４０は、体験版のゲーム全体処理を開始すると、ステップＳ９１で、図１７（Ｂ）に示したようなメニュー画面３００´をモニタ３４に表示する。続くステップＳ９３では、ともだち設定が選択されたかどうかを判断する。つまり、メニュー画面３００´のボタン画像３０８がオンされたかどうかを判断する。
【０２０９】
ステップＳ９３で“ＹＥＳ”であれば、つまりともだち設定が選択されれば、ステップＳ９５で、後述するともだち設定処理（図２７および図２８参照）を実行して、ステップＳ１０１に進む。一方、ステップＳ９３で“ＮＯ”であれば、つまりともだち設定が選択されていなければ、ステップＳ９７で、通信対戦が選択されたかどうかを判断する。つまり、メニュー画面３００´のボタン画像３０６がオンされたかどうかを判断する。
【０２１０】
ステップＳ９７で“ＮＯ”であれば、つまり通信対戦が選択されていなければ、そのままステップＳ１０１に進む。一方、ステップＳ９７で“ＹＥＳ”であれば、つまり通信対戦が選択されていれば、ステップＳ９９で、後述する子機処理（図３０参照）を実行して、ステップＳ１０１に進む。
【０２１１】
ステップＳ１０１では、最初に戻るかどうかを判断する。ステップＳ１０１で“ＹＥＳ”であれば、つまり最初に戻る場合には、ステップＳ９１に戻る。一方、ステップＳ１０１で“ＮＯ”であれば、つまり最初に戻らない場合には、そのまま体験版のゲーム全体処理を終了する。
【０２１２】
なお、図示は省略するが、初めて体験版のゲーム全体処理が実行された場合のように、自己のプロファイルＩＤが登録されていない場合に、ステップＳ９７で通信対戦が選択されたことが判断されると、強制的にステップＳ９５の処理を実行して、プレイヤに自己のプロファイルＩＤを登録させるようにしてある。
【０２１３】
図２７および図２８は、図２５に示したステップＳ６５および図２６に示したステップＳ９５のともだち設定処理のフロー図である。図２７を参照して、ＣＰＵ４０はともだち設定処理を開始すると、ステップＳ１２１で、自己のプロファイルＩＤがあるかどうかを判断する。ここでは、ＣＰＵ４０は、フラッシュメモリ４４の管理用ファイル４４ｃに当該ゲームについてのプロファイルＩＤが記憶されているかどうかを判断する。上述したように、プロファイルＩＤは、当該ゲームを識別可能なアプリＩＤを含むため、複数のゲームについてのプロファイルＩＤが記憶されている場合であっても容易に判断することができる。
【０２１４】
ステップＳ１２１で“ＹＥＳ”であれば、つまり自己のプロファイルＩＤがあれば、そのままステップＳ１２９に進む。一方、ステップＳ１２１で“ＮＯ”であれば、つまり自己のプロファイルＩＤがなければ、ステップＳ１２３で、ゲームサーバ１０６に、プロファイルＩＤの作成要求を送信する。たとえば、製品版のゲームプログラム２００または体験版のゲームプログラム２００´に予め設定（記憶）されている仮のプロファイルＩＤがゲームサーバ１０６に送信される。
【０２１５】
続くステップＳ１２５では、プロファイルＩＤを受信したかどうかを判断する。ステップＳ１２５で“ＮＯ”であれば、つまりプロファイルＩＤを受信していなければ、そのまま同じステップＳ１２５に戻る。一方、ステップＳ１２５で“ＹＥＳ”であれば、つまりプロファイルＩＤを受信すれば、ステップＳ１２７で、受信したプロファイルＩＤをフラッシュメモリ４４の自己のプロファイルＩＤエリア（管理用ファイル４４ｃ）に格納して、ステップＳ１２９に進む。
【０２１６】
ステップＳ１２９では、図１８に示した友達設定のサブメニュー画面４００をモニタ３４に表示する。続くステップＳ１３１では、自己のプロファイルＩＤを見るかどうかを判断する。つまり、サブメニュー画面４００のボタン画像４０４がオンされたかどうかを判断する。ステップＳ１３１で“ＮＯ”であれば、つまり自己のプロファイルＩＤを見ない場合には、図２８のステップＳ１３７に進む。
【０２１７】
しかし、ステップＳ１３１で“ＹＥＳ”であれば、つまり自己のプロファイルＩＤを見る場合には、ステップＳ１３３で、自己のプロファイルＩＤを表示する。つまり、図１９（Ｂ）に示したような自己のプロファイルＩＤの表示画面４４０がモニタ３４に表示される。このとき、表示領域４４２には、管理用ファイル４４ｃに格納されている当該ゲームについての自己のプロファイルＩＤが表示される。そして、ステップＳ１３５では、サブメニュー画面４００に戻るかどうかを判断する。具体的には、表示画面４４０のボタン画像４４４がオンされたかどうかを判断する。ステップＳ１３５で“ＮＯ”であれば、つまりサブメニュー画面４００に戻らない場合には、そのまま同じステップＳ１３５に戻る。一方、ステップＳ１３５で“ＹＥＳ”であれば、つまりサブメニュー画面４００に戻る場合には、ステップＳ１２９に戻る。
【０２１８】
図２８に示すように、ステップＳ１３７では、他人のプロファイルＩＤを登録するかどうかを判断する。つまり、サブメニュー画面４００のボタン画像４０２がオンされたかどうかを判断する。ステップＳ１３７で“ＮＯ”であれば、つまり他人のプロファイルＩＤを登録しない場合には、そのままステップＳ１５５に進む。一方、ステップＳ１３７で“ＹＥＳ”であれば、つまり他人のプロファイルＩＤを登録する場合には、ステップＳ１３９で、図１９（Ａ）に示したようなゲームフレンドのプロファイルＩＤの登録画面４２０をモニタ３４に表示する。
【０２１９】
続いて、ステップＳ１４１では、入力が完了したかどうかを判断する。ここでは、登録画面４２０において、入力欄４２２にゲームフレンドの名前が入力され、入力欄４２４にそのゲームフレンドのプロファイルＩＤが入力され、ボタン画像４２６がオンされたかどうかを判断する。ステップＳ１４１で“ＮＯ”であれば、つまり入力が完了していなければ、同じステップＳ１４１に戻る。一方、ステップＳ１４１で“ＹＥＳ”であれば、つまり入力が完了すれば、ステップＳ１４３で、入力されたプロファイルＩＤを、これに付されたＣＲＣのチェック用データに基づいて照合する。
【０２２０】
次のステップＳ１４５では、照合結果が一致を示すかどうかを判断する。ステップＳ１４５で“ＹＥＳ”であれば、つまり照合結果が一致を示す場合には、プロファイルＩＤが正しいと判断して、ステップＳ１４７で、入力されたプロファイルＩＤをゲームフレンドリストに格納し、ステップＳ１４９で、入力されたプロファファイルＩＤをゲームサーバ１０６に送信して、ステップＳ１５５に進む。
【０２２１】
ただし、ステップＳ１４９では、入力されたプロファイルＩＤを、ゲームサーバ１０６を宛先とする送信データとして送信メッセージボックス４４ａに登録しておき、その後のメッセージ送受信処理によって、ゲームサーバ１０６に送信するようにしてもよい。
【０２２２】
また、ステップＳ１４５で“ＮＯ”であれば、つまり照合結果が一致を示さない場合には、ステップＳ１５１で、エラー表示を実行し、ステップＳ１５３で、再入力するかどうかを判断する。図示等は省略するが、登録画面４２０において、ゲームフレンドの名前またはプロファイルＩＤ或いはその両方が入力されずに、ボタン画像４２６がオンされた場合にも、ステップＳ１４５で“ＮＯ”と判断される。また、図示は省略するが、ステップＳ１５１では、たとえば、プロファイルＩＤが正しく入力されていない旨および再入力するか（登録し直すか）否かを質問する旨のメッセージとともに、再入力するか否かを選択するためのボタン画像がモニタ３４に表示される。ステップＳ１５３で“ＹＥＳ”であれば、つまり再入力することが選択されると、ステップＳ１３９に戻る。一方、ステップＳ１５３で“ＮＯ”であれば、つまり再入力しないことが選択されると、ステップＳ１５５に進む。
【０２２３】
ステップＳ１５５では、キャンセルかどうかを判断する。つまり、サブメニュー画面４００のボタン画像４０６がオンされたかどうかを判断する。ステップＳ１５５で“ＮＯ”であれば、つまりキャンセルでなければ、そのまま図２７に示したステップＳ１２９に戻る。一方、ステップＳ１５５で“ＹＥＳ”であれば、つまりキャンセルであれば、全体処理にリターンする。
【０２２４】
なお、図示は省略するが、ステップＳ１５５で“ＹＥＳ”の場合には、「最初に戻る」ことを示すフラグがオン（成立）される。したがって、図２５のステップＳ８３または図２６のステップＳ１０１において“ＹＥＳ”となり、メニュー画面３００またはメニュー画面３００´に戻る。その後、当該「最初に戻る」ことを示すフラグがオフ（不成立）される。
【０２２５】
図２９は図２５に示したステップＳ７３の親機処理のフロー図である。図２９に示すように、ＣＰＵ４０は親機処理を開始すると、ステップＳ１７１で、ゲームサーバ１０６にともだちの募集要求を送信する。具体的には、ＣＰＵ４０は、フラッシュメモリ４４の管理用ファイル４４ｃに格納してある自己のプロファイルＩＤを、アプリＩＤ（ゲームの識別情報）および募集要求である旨の情報とともに、ゲームサーバ１０６に送信する。続くステップＳ１７３で、ゲームサーバ１０６から送信された個別リクエスト状態リストを受信し、ステップＳ１７５で、受信した個別リクエスト状態リストをモニタ３４に表示する。
【０２２６】
そして、ステップＳ１７７で、相手からの接続要求があるかどうかを判断する。具体的には、ゲームフレンドリストに登録されている友達（プレイヤ）が所有するゲーム装置１２からの接続要求があるかどうかを判断する。ただし、ゲームフレンドリストに登録されているプレイヤであるかどうかの判断は、後述するように、ゲームサーバ１０６で行われる。したがって、ここで接続要求がある場合には、その相手（要求元）は、ゲームフレンドリストに登録されたプレイヤであると言える。したがって、接続要求のあったゲーム装置１２との間で通信ゲームをプレイする場合に、安心してプレイすることができる。
【０２２７】
ステップＳ１７７で“ＮＯ”であれば、つまり相手からの接続要求がなければ、そのままステップＳ１８１に進む。一方、ステップＳ１７７で“ＹＥＳ”であれば、つまり相手からの接続要求があれば、ステップＳ１７９で、相手との接続処理を実行して、ステップＳ１８１に進む。詳細な説明は省略するが、ステップＳ１７９では、相手から接続先アドレス（ＩＰアドレス）を受け取って、接続状態を確立する。
【０２２８】
ステップＳ１８１では、募集を継続するかどうかを判断する。ここで、募集を継続するかどうかを判断するのは、プレイヤの指示によって、募集が中止される場合があるからである。募集が中止されるのは、たとえば、参加を希望するゲーム装置１２が長時間現れない場合や３人以上でプレイ可能な通信ゲームにおいて、所望の人数でプレイヤの参加を締め切る場合である。図示は省略するが、ステップＳ１８１の処理に先立って、たとえば、募集を継続するか否かを選択する旨のメッセージおよびそのいずれかを選択するためのボタン画像がモニタ３４に表示される。
【０２２９】
ステップＳ１８１で“ＹＥＳ”であれば、つまり募集を継続する場合には、ステップＳ１７１に戻る。つまり、募集を継続することがゲームサーバ１０６に通知される。一方、ステップＳ１８１で“ＮＯ”であれば、つまり募集を辞める場合には、ステップＳ１８３で、接続相手との間で対戦ゲーム（通信ゲーム）処理を実行し、通信ゲームを終了した後に、全体処理にリターンする。
【０２３０】
なお、図示は省略するが、相手からの接続要求が全くない状態で、募集を止めた場合には、ＣＰＵ４０は、ステップＳ１８３の処理を実行せずに、そのまま全体処理にリターンする。
【０２３１】
また、図示は省略するが、親機処理を終了して全体処理にリターンする場合には、「最初に戻る」ことを示すフラグがオン（成立）される。したがって、図２５のステップＳ８３において“ＹＥＳ”となり、メニュー画面３００に戻る。その後、当該「最初に戻る」ことを示すフラグがオフ（不成立）される。
【０２３２】
図３０は図２５に示したステップＳ７７および図２６に示したステップＳ９９の子機処理のフロー図である。図３０に示すように、ＣＰＵ４０は子機処理を開始すると、ステップＳ２０１で、ゲームサーバ１０６に参加要求を送信する。具体的には、ＣＰＵ４０は、フラッシュメモリ４４の管理用ファイル４４ｃに格納してある自己のプロファイルＩＤを、アプリＩＤ（ゲームの識別情報）および参加要求である旨の情報とともに、ゲームサーバ１０６に送信する。
【０２３３】
続くステップＳ２０３では、ゲームサーバ１０６から送信された個別リクエスト状態リストを受信し、ステップＳ２０５では、受信した個別リクエスト状態リストを表示する。具体的には、図２２に示したようなリクエスト状態リストの表示画面６００がモニタ３４に表示される。そして、ステップＳ２０７では、接続相手を決定したかどうかを判断する。ここでは、表示画面６００において、プレイヤが接続相手を決定したかどうかを判断する。
【０２３４】
ステップＳ２０７で“ＮＯ”であれば、つまり接続相手を決定していなければ、そのままステップＳ２２１に進む。一方、ステップＳ２０７で“ＹＥＳ”であれば、つまり接続相手を決定すれば、ステップＳ２０９で、決定された相手のプロファイルＩＤを付加した接続要求をサーバに送信する。ここでは、ＣＰＵ４０は、決定された相手のプロファイルＩＤをフラッシュメモリ４４のセーブ領域４４ｆに記憶されたゲームフレンドリストから検索する。
【０２３５】
続いて、ステップＳ２１１では、ゲームサーバ１０６からの接続先アドレスを受信したかどうかを判断する。つまり、決定した相手のゲーム装置１２のＩＰアドレスを受信したかどうかを判断する。ステップＳ２１１で“ＹＥＳ”であれば、つまり接続先アドレスを受信すれば、ステップＳ２１３で、接続相手への接続処理を実行する。ここでは、ＣＰＵ４０は、接続先アドレス（親機のＩＰアドレス）宛に、接続要求（自身のＩＰアドレス）を送信する。そして、ステップＳ２１５で、接続相手との間で対戦ゲーム（通信ゲーム）処理を実行し、通信ゲームを終了した後に、全体処理にリターンする。
【０２３６】
また、ステップＳ２１１で“ＮＯ”であれば、つまり接続先アドレスを受信していなければ、ステップＳ２１７で、接続不可メッセージを受信したかどうかを判断する。後述するが、ゲームサーバ１０６は、ステップＳ２０９において送信したプロファイルＩＤを有するゲーム装置１２（親機）のゲームフレンドリストに当該ゲーム装置１２（子機）のプロファイルＩＤが存在しない場合には、その子機宛に接続不可メッセージが送信される。つまり、知人や友達でないプレイヤ同士では、通信ゲームをプレイすることができない。
【０２３７】
ステップＳ２１７で“ＮＯ”であれば、つまり接続不可メッセージを受信していなければ、そのままステップＳ２２１に進む。一方、ステップＳ２１７で“ＹＥＳ”であれば、つまり接続不可メッセージを受信すれば、ステップＳ２１９で、エラー表示を実行して、ステップＳ２２１に進む。たとえば、ステップＳ２１９では、決定した（希望の）相手とは通信ゲームをプレイすることができない旨のメッセージとともに、参加を辞めるかどうかを選択すべき旨のメッセージおよび選択するためのボタン画像がモニタ３４に表示される。
【０２３８】
ステップＳ２２１では、参加を辞めるかどうかを判断する。ステップＳ２２１で“ＮＯ”であれば、つまり参加を辞めない場合には、ステップＳ２０１に戻る。一方、ステップＳ２２１で“ＹＥＳ”であれば、つまり参加を辞める場合には、そのまま全体処理にリターンする。
【０２３９】
なお、図示は省略するが、子機処理を終了して全体処理にリターンする場合には、「最初に戻る」ことを示すフラグがオン（成立）される。したがって、図２５のステップＳ８３または図２６のステップＳ１０１において“ＹＥＳ”となり、メニュー画面３００またはメニュー画面３００´に戻る。その後、当該「最初に戻る」ことを示すフラグがオフ（不成立）される。
【０２４０】
図３１−図３４は、ゲームサーバ１０６のＣＰＵ（図示せず）の全体処理を示すフロー図である。図３１に示すように、ゲームサーバ１０６のＣＰＵは全体処理を開始すると、ステップＳ３０１で、体験版リストの要求を受信したかどうかを判断する。ステップＳ３０１で“ＮＯ”であれば、つまり体験版リスト要求を受信していなければ、そのままステップＳ３０５に進む。一方、ステップＳ３０１で“ＹＥＳ”であれば、つまり体験版リスト要求を受信すれば、ステップＳ３０３で、要求元のゲーム装置１２に体験版リストを送信して、ステップＳ３０５に進む。
【０２４１】
ステップＳ３０５では、ダウンロード要求を受信したかどうかを判断する。ステップＳ３０５で“ＮＯ”であれば、つまりダウンロード要求を受信していなければ、そのまま図３２に示すステップＳ３０９に進む。一方、ステップＳ３０５で“ＹＥＳ”であれば、つまりダウンロード要求を受信すれば、ステップＳ３０７で、要求元のゲーム装置１２に、要求のあった体験版データすなわち体験版のゲームプログラム２００´を送信して、ステップＳ３０９に進む。
【０２４２】
なお、図示は省略するが、製品版のゲームプログラム２００をダウンロードにより販売する場合には、ステップＳ３０１−Ｓ３０７と同様の処理がゲームサーバ１０６の全体処理の中で実行される。
【０２４３】
図３２に示すステップＳ３０９では、プロファイルＩＤの作成要求つまり仮プロファイルＩＤを受信したかどうかを判断する。ステップＳ３０９で“ＮＯ”であれば、つまり仮プロファイルＩＤを受信していなければ、そのままステップＳ３２３に進む。一方、ステップＳ３０９で“ＹＥＳ”であれば、つまり仮プロファイルＩＤを受信すれば、ステップＳ３１１で、当該仮プロファイルＩＤが使用可能かどうかを判断する。ここでは、ゲームサーバ１０６は、データベースのゲーム別プレイヤデータ記憶領域１２２内の当該ゲームについての記憶領域（１３０，１３２，…）を参照して、受信した仮プロファイルＩＤと同じプロファイルＩＤが記憶されているかどうかを検索する。そして、ゲームサーバ１０６は、受信した仮プロファイルＩＤと同じプロファイルＩＤが記憶されている場合には、当該仮プロファイルＩＤを使用不可と判断し、逆に仮プロファイルと同じプロファイルＩＤが記憶されていない場合には、当該仮プロファイルを使用可能と判断する。
【０２４４】
ステップＳ３１１で“ＹＥＳ”であれば、つまり仮プロファイルＩＤが使用可能であれば、当該仮プロファイルＩＤをプロファイルＩＤに決定し、ステップＳ３１７に進む。一方、ステップＳ３１１で“ＮＯ”であれば、つまり仮プロファイルが使用不可であれば、プロファイルＩＤを新規に作成し、ステップＳ３１７に進む。ただし、プロファイルＩＤにおいて、本体のＭＡＣアドレスとゲームコード（アプリＩＤ）とは固定であるため、ステップＳ３１５では、乱数が変更されるとともに、プロファイルＩＤに付加されるＣＲＣのチェック用データも変更される。
【０２４５】
ステップＳ３１７では、要求元のゲーム装置１２のプレイヤについてのデータ領域（ゲーム別プレイヤデータ記憶領域１２２に設けられる当該要求元のゲーム装置１２のプレイヤについての記憶領域）にプロファイルＩＤの記憶領域を作成する。続く、ステップＳ３１９では、プロファイルＩＤを作成した記憶領域に書き込み、ステップＳ３２１で、当該プロファイルＩＤを要求元のゲーム装置１２に送信する。
【０２４６】
続いて、ステップＳ３２３では、プロファイルＩＤを受信したかどうかを判断する。ステップＳ３２３で“ＮＯ”であれば、つまりプロファイルＩＤを受信していなければ、そのまま図３３に示すステップＳ３２７に進む。一方、ステップＳ３２３で“ＹＥＳ”であれば、つまりプロファイルＩＤを受信すれば、ステップＳ３２５で、受信したプロファイルＩＤを、送信元のプレイヤについてのゲームフレンドリストに書き込み、ステップＳ３２７に進む。
【０２４７】
図３３に示すように、ステップＳ３２７では、ともだちの募集要求を受信したかどうかを判断する。ステップＳ３２７で“ＹＥＳ”であれば、つまりともだち募集要求を受信すれば、ステップＳ３２９で、要求元のゲーム装置１２のリクエスト状態を募集に更新して、ステップＳ３３５に進む。つまり、ステップＳ３２９では、ゲームサーバ１０６のＣＰＵは、全リクエスト状態リスト記憶領域１２４に記憶される全リクエスト状態リスト１２４ａにおいて、当該要求元のゲーム装置１２のプレイヤについてのリクエスト状態を募集に変更するのである。
【０２４８】
また、ステップＳ３２７で“ＮＯ”であれば、つまりともだち募集を受信しなければ、ステップＳ３３１で、参加要求を受信したかどうかを判断する。ステップＳ３３１で“ＮＯ”であれば、つまり参加要求を受信していなければ、そのままステップＳ３３５に進む。一方、ステップＳ３３１で“ＹＥＳ”であれば、つまり参加要求を受信すれば、ステップＳ３３３で、要求元のゲーム装置１２のプレイヤについてのリクエスト状態を参加に更新して、ステップＳ３３５に進む。つまり、ステップＳ３３３では、ゲームサーバ１０６のＣＰＵは、全リクエスト状態リスト記憶領域１２４に記憶される全リクエスト状態リスト１２４ａにおいて、当該要求元のゲーム装置のプレイヤについてのリクエスト状態を参加に変更するのである。
【０２４９】
ステップＳ３３５では、受信したプロファイルＩＤから実行中のゲーム（通信ゲーム）を判別し、ステップＳ３３７では、ステップＳ３３５において判別された通信ゲームについての個別リクエスト状態リストを、要求元のゲームフレンドリストに基づいて作成する。つまり、ステップＳ３３７では、要求元のゲーム装置１２のプレイヤについてのゲームフレンドリストに記述されたプレイヤのうち、当該要求元のゲーム装置１２と同じ通信ゲームを実行しているプレイヤおよびそのリクエスト状態を、全リクエスト状態リスト１２４ａを参照することにより抽出し、当該要求元のゲーム装置１２のプレイヤに提示する個別リクエスト状態リストを作成する。そして、ステップＳ３３９では、ともだちの募集要求または参加要求の要求元のゲーム装置１２に個別リクエスト状態リストを送信する。
【０２５０】
続いて、図３４に示すステップＳ３４１では、接続要求を受信したかどうかを判断する。ステップＳ３４１で“ＮＯ”であれば、つまり接続要求を受信していなければ、そのまま図３１に示したステップＳ３０１に戻る。一方、ステップＳ３４１で“ＹＥＳ”であれば、つまり接続要求を受信すれば、ステップＳ３４３で、接続先のリクエスト状態を検出する。つまり、ステップＳ３４３では、ゲームサーバ１０６のＣＰＵは、全リクエスト状態リスト１２４ａを参照して、接続先のゲーム装置１２についてのプレイヤのリクエスト状態を検出する。
【０２５１】
続くステップＳ３４５では、リクエスト状態が募集であるかどうかを判断する。ステップＳ３４５で“ＮＯ”であれば、つまりリクエスト状態が募集でなければ、ステップＳ３５１で、要求元のゲーム装置１２に接続不可メッセージを送信して、ステップＳ３０１に戻る。一方、ステップＳ３４５で“ＹＥＳ”であれば、つまりリクエスト状態が募集であれば、ステップＳ３４７で、接続先のゲームフレンドリストに接続元（接続要求元）のプレイヤが登録されているかどうかを判断する。ここでは、ゲームサーバ１０６のＣＰＵは、接続先のゲーム装置１２のプレイヤについてのゲームフレンドリストを参照して、当該ゲームフレンドリストに接続元のゲーム装置１２のプレイヤ（プロファイルＩＤ）が登録されているかどうかを判断する。
【０２５２】
ただし、ここでは、接続元のゲーム装置１２（プレイヤ）のゲームフレンドリストに接続先のゲーム装置１２（プレイヤ）のプロファイルＩＤが登録されているかどうかを調べる必要はない。なぜならば、個別リクエスト状態リストには、接続元のゲーム装置１２のゲームフレンドリストに登録されているプロファイルＩＤを有するゲーム装置１２（プレイヤ）が記述され、ここから接続先のゲーム装置１２（プレイヤ）が選択されるからである。
【０２５３】
ステップＳ３４７で“ＮＯ”であれば、つまり接続先のゲームフレンドリストに接続元のプレイヤが登録されていなければ、そのままステップＳ３５１に進む。一方、ステップＳ３４７で“ＹＥＳ”であれば、つまり接続先のゲームフレンドリストに接続元のプレイヤが登録されていれば、ステップＳ３４９で、要求元のゲーム装置１２に接続先アドレス（この実施例では、接続先の親機のＩＰアドレス）を送信して、ステップＳ３０１に戻る。
【０２５４】
この実施例によれば、無料で配布される体験版のゲームプログラムを有する第２のゲーム装置は、それに対応する製品版のゲームプログラムを有する、かつ当該第２のゲーム装置をゲームフレンドリストに登録している第１のゲーム装置との間でのみ、通信ゲームをプレイできる。つまり、製品版のゲームプログラムを必要としないので、無料で通信ゲームを体験することができる。また、ゲームフレンドリストに登録されている相手（ゲームフレンドリストを交換して登録している相手）のみと通信ゲームをプレイできるので、不特定のプレイヤと通信ゲームをプレイする場合に比べて参加しやすいネットワークゲームを実現することができる。
【０２５５】
また、この実施例によれば、体験版のゲームプログラムは通信ゲームに必要なゲームプログラムおよびデータを備えるので、製品版のゲームプログラムを有するゲーム装置と体験版のゲームプログラムを有するゲーム装置との間で通信ゲームを実行することができる。
【０２５６】
なお、この実施例では、体験版のゲームプログラムを有する第２のゲーム装置がゲームサーバに接続要求を送信すると、ゲームサーバは接続要求の示す第１のゲーム装置のゲームフレンドリストを参照して、接続の可否を判断するようにしてあるが、製品版のゲームプログラムおよび体験版のゲームプログラムのそれぞれに固有の識別情報を含ませておき、接続要求先のゲーム装置が有しているゲームプログラムが製品版のゲームプログラムか体験版のゲームプログラムかを当該識別情報に基づいて判別し、接続の可否を判断するようにしてもよい。このようにすれば、接続の可否を容易に判断することができ、したがって、体験版のゲームプログラムを有する第２のゲーム装置同士を誤って接続してしまうことを防止することができる。また、このことは、製品版のゲームプログラムについても同様であり、製品版のゲームプログラムに固有の識別情報を含ませておき、当該識別情報に基づいて募集要求の可否を容易に判断することが可能である。
【０２５７】
また、この実施例では、上述したように、本体フレンドリストに登録されているプレイヤ同士では、メッセージの送受信により、プロファイルＩＤを知らせることもできる。したがって、たとえば、ゲーム装置が自己のプロファイルＩＤを登録したとき、本体フレンドリストに登録されたすべてのプレイヤのゲーム装置に対して当該プロファイルＩＤを含むメッセージを送信するようにし、また、他のゲーム装置から送信されたプロファイルＩＤを含むメッセージを受信したとき、当該メッセージに含まれるプロファイルＩＤをゲームフレンドリストに登録するようにすれば、自動的にプロファイルＩＤを交換し、ゲームフレンドリストに登録することができる。
【０２５８】
さらに、この実施例では、体験版のゲームプログラムはゲームサーバに予め記憶されているようにしたが、製品版のゲームプログラムに体験版のゲームプログラムを含ませておき、製品版のゲームプログラムを有するゲーム装置からゲームサーバに体験版のゲームプログラムをアップロードし、当該製品版のゲームプログラムを有するゲーム装置のゲームフレンドリストに登録されたプレイヤのゲーム装置に対してはアップロードされた体験版のゲームプログラムを配信するようにしてもよい。
【０２５９】
また、この実施例では、ゲーム装置とモニタとが個別に設けられたビデオゲームシステムを用いたネットワークゲームシステムについてのみ説明したが、これに限定される必要はない。ゲームシステムに代えて、ゲーム機能を備える汎用のコンピュータ、または、ゲーム装置とモニタとが一体的に形成された携帯型のゲーム装置やゲーム機能を備える携帯電話機、ＰＣ、ＰＤＡのような携帯端末を用いることもできる。
【図面の簡単な説明】
【０２６０】
【図１】図１はこの発明のゲームシステムの一実施例を示す図解図である。
【図２】図２は図１に示すゲームシステムの電気的な構成を示すブロック図である。
【図３】図３は図１に示すコントローラの外観を説明するための図解図である。
【図４】図４は図３に示すコントローラの電気的な構成を示すブロック図である。
【図５】図５は図１に示すコントローラを用いてゲームプレイするときの状態を概説するための図解図である。
【図６】図６は図１に示すマーカおよびコントローラの視野角を説明するための図解図である。
【図７】図７は対象画像を含む撮像画像の一例を示す図解図である。
【図８】図８はこの発明の通信システムの一例を示す図解図である。
【図９】図９はゲーム装置に内蔵されるフラッシュメモリの記憶領域を模式的に示す図解図である。
【図１０】図１０はこの実施例のダウンロードのタスクリストの一例を示す図解図である。
【図１１】図１１はタスクのスケジューリングおよび実行時刻を説明するための図解図である。
【図１２】図１２は図２に示す入出力プロッサのダウンロード処理を示すフロー図である。
【図１３】図１３は製品版のゲームプログラムの一例を示す図解図である。
【図１４】図１４は図１３に示す製品版のゲームプログラムに対する体験版のゲームプログラムの一例を示す図解図である。
【図１５】図１５はゲームサーバを介して２台のゲーム装置が通信ゲームをプレイするまでの流れの一部を説明する説明図である。
【図１６】図１６はゲームサーバを介して２台のゲーム装置が通信ゲームをプレイするまでの流れの他の一部であって、図１５に続く説明図である。
【図１７】図１７はモニタに表示されるメニュー画面の一例を示す図解図である。
【図１８】図１８はモニタに表示される友達設定のサブメニュー画面の一例を示す図解図である。
【図１９】図１９はモニタに表示されるゲームフレンドのプロファイルＩＤの登録画面の一例および自己のプロファイルＩＤの表示画面の一例を示す図解図である。
【図２０】図２０はサーバおよびゲーム装置の各々に記憶されるゲームフレンドリストを示す図解図である。
【図２１】図２１は通信対戦のサブメニュー画面の一例を示す図解図である。
【図２２】図２２は個別リクエスト状態リストの表示画面の一例を示す図解図である。
【図２３】図２３はゲームサーバの内部メモリのメモリマップの一例を示す図解図である。
【図２４】図２４はゲーム装置の体験版ダウンロード処理を示すフロー図である。
【図２５】図２５はゲーム装置の製品版のゲーム全体処理を示すフロー図である。
【図２６】図２６はゲーム装置の体験版のゲーム全体処理を示すフロー図である。
【図２７】図２７はゲーム装置のともだち設定処理の一部を示すフロー図である。
【図２８】図２８はゲーム装置のともだち設定処理の他の一部を示すフロー図であって、図２７に後続するフロー図である。
【図２９】図２９はゲーム装置の親機処理を示すフロー図である。
【図３０】図３０はゲーム装置の子機処理を示すフロー図である。
【図３１】図３１はゲームサーバの全体処理の一部を示すフロー図である。
【図３２】図３２はゲームサーバの全体処理の他の一部であって、図３１に後続するフロー図である。
【図３３】図３３はゲームサーバの全体処理のその他の一部であって、図３２に後続するフロー図である。
【図３４】図３４はゲームサーバの全体処理のさらに他の一部であって、図３３に後続するフロー図である。
【符号の説明】
【０２６１】
１０  …ゲームシステム
１２  …ゲーム装置
１８  …光ディスク
２２  …コントローラ
３４  …モニタ
３４ａ  …スピーカ
４０  …ＣＰＵ
４２  …システムＬＳＩ
４２ａ  …入出力プロセッサ
４２ｂ  …ＧＰＵ
４２ｃ  …ＤＳＰ
４２ｄ  …ＶＲＡＭ
４２ｅ  …内部メインメモリ
４４  …フラッシュメモリ
４６  …外部メインメモリ
４８  …ＲＯＭ／ＲＴＣ
５０  …無線通信モジュール
５２  …無線コントローラモジュール
５４  …ディスクドライブ
５６  …ＡＶ  ＩＣ
５８  …ＡＶコネクタ
６０  …拡張コネクタ
６２  …メモリカード用コネクタ
７０  …プロセッサ
７４  …加速度センサ
８０  …画像情報演算部
８０ｃ  …撮像素子
８０ｄ  …画像処理回路
１００  …通信システム
１０２  …メールサーバ
１０４  …配信サーバ
１０６  …ゲームサーバ
１０８  …ネットワーク
【図１】
0005430054.tif 000002
【図２】
0005430054.tif 000003
【図３】
0005430054.tif 000004
【図４】
0005430054.tif 000005
【図５】
0005430054.tif 000006
【図６】
0005430054.tif 000007
【図７】
0005430054.tif 000008
【図８】
0005430054.tif 000009
【図９】
0005430054.tif 000010
【図１０】
0005430054.tif 000011
【図１１】
0005430054.tif 000012
【図１２】
0005430054.tif 000013
【図１３】
0005430054.tif 000014
【図１４】
0005430054.tif 000015
【図１５】
0005430054.tif 000016
【図１６】
0005430054.tif 000017
【図１８】
0005430054.tif 000018
【図１９】
0005430054.tif 000019
【図２０】
0005430054.tif 000020
【図２１】
0005430054.tif 000021
【図２２】
0005430054.tif 000022
【図２３】
0005430054.tif 000023
【図２４】
0005430054.tif 000024
【図２５】
0005430054.tif 000025
【図２６】
0005430054.tif 000026
【図２７】
0005430054.tif 000027
【図２８】
0005430054.tif 000028
【図２９】
0005430054.tif 000029
【図３０】
0005430054.tif 000030
【図３１】
0005430054.tif 000031
【図３２】
0005430054.tif 000032
【図３３】
0005430054.tif 000033
【図３４】
0005430054.tif 000034
【図１７】
0005430054.tif 000035