(57)【特許請求の範囲】
【請求項１】
複数の情報処理装置がアクセスポイントを介してサーバ及び他の前記情報処理装置と通信可能な通信システムであって、
前記サーバは、前記複数の情報処理装置の通信接続状態を示す管理情報を記憶し、
各前記情報処理装置は、
特定の前記他の情報処理装置を前記通信の相手として登録する登録手段、
接続可能な前記アクセスポイントを、検索する検索手段、
前記検索手段によって前記接続可能なアクセスポイントが検索されたときに、当該アクセスポイントを介して、前記サーバに接続するサーバ接続手段、
前記サーバ接続手段によって前記サーバに接続したとき、前記登録手段に登録されている他の情報処理装置の前記管理情報を前記サーバから受信する第１受信手段、
前記第１受信手段による受信処理を実行する第１処理実行手段、
前記登録手段に登録されている他の情報処理装置との間で通信接続された状態で所定のアプリケーションを実行する第２処理実行手段、
を備え、
前記第１処理実行手段は、前記第２処理実行手段によって前記所定のアプリケーションが実行されているか否かにかかわらず、前記第１受信手段による受信処理を実行し、
前記検索手段、前記サーバ接続手段、前記第１受信手段、及び前記第１処理実行手段により実行される一連の処理が、所定の周期毎に繰り返し実行され、
各前記情報処理装置は、
前記特定の他の情報処理装置の通信接続状態に所定の変化があったかどうかを判断する第１変化判断手段、および
前記特定の他の情報処理装置の通信接続状態に所定の変化があったと前記第１変化判断手段が判断したときに、当該通信接続状態の変化をユーザに通知する通知手段、を更に
備える、通信システム。
【請求項２】
前記サーバは、
前記アクセスポイントを経由して前記情報処理装置と通信を行う第２通信手段、および
前記情報処理装置が前記サーバ接続手段によってサーバに接続したときに、当該情報処理装置に対して前記特定の他の情報処理装置の管理情報を送信するとともに、前記特定の他の情報処理装置に対して当該情報処理装置の管理情報を送信する第２送信手段を備える、請求項１に記載の通信システム。
【請求項３】
前記通信接続状態は、前記サーバ接続手段によって前記サーバに通信可能に接続しているか否かである、請求項１又は２に記載の通信システム。
【請求項４】
前記通信接続状態は、前記サーバ接続手段によって前記サーバに通信可能に接続しているか否かであり、
前記所定の変化は、前記サーバと通信可能に接続していない状態から通信可能に接続している状態に変化したことである、請求項１に記載の通信システム。
【請求項５】
各前記情報処理装置は、前記サーバに対して自装置の識別情報を送信する第１送信手段を更に備え、
前記通信接続状態は、前記サーバ接続手段によって前記サーバに通信可能に接続しているか否かであり、
前記サーバは、
各前記情報処理装置から前記識別情報を受信する第２受信手段、
前記管理情報を記憶する第２記憶手段、
前記第２受信手段によって前記識別情報が前記情報処理装置から受信されたときに、当該識別情報の送信元の前記情報処理装置が前記サーバと通信可能に接続されていると判断する接続可否判断手段、
前記接続可否判断手段による判断結果に基づいて、前記第２記憶手段に記憶されている前記管理情報を更新する第２更新手段を更に備え、
前記第２送信手段は、前記第２記憶手段に記憶されている前記管理情報を送信する、請求項２に記載の通信システム。
【請求項６】
各前記情報処理装置は、前記サーバ接続手段によって前記サーバに通信可能に接続したときに、前記サーバに対して自装置の識別情報を送信する第１送信手段を更に備え、
前記通信接続状態は、前記サーバ接続手段によって前記サーバに通信可能に接続しているか否かであり、
前記サーバは、
各前記情報処理装置から前記識別情報を受信する第２受信手段、
前記管理情報を記憶する第２記憶手段、
前記第２受信手段によって前記識別情報が前記情報処理装置から受信されたときに、当該識別情報の送信元の前記情報処理装置が前記サーバと通信可能に接続されていると判断する接続可否判断手段、
前記接続可否判断手段による判断結果に基づいて、前記第２記憶手段に記憶されている前記管理情報を更新する第２更新手段を更に備え、
前記第２送信手段は、前記第２記憶手段に記憶されている前記管理情報を送信する、請求項２に記載の通信システム。
【請求項７】
前記接続可否判断手段は、所定の条件を満たしたときに前記識別情報の送信元の前記情報処理装置が前記サーバと通信可能に接続されていないと判断し、
前記第２更新手段は、当該判断に基づいて、前記第２記憶手段に記憶されている当該情報処理装置の前記管理情報を更新し、
前記第２送信手段は、前記接続可否判断手段による判断結果に応じて、当該情報処理装置の前記登録手段によって登録されている前記特定の他の情報処理装置に対して、当該情報処理装置の前記管理情報を送信する、請求項６に記載の通信システム。
【請求項８】
前記第１送信手段は、前記情報処理装置が前記サーバと通信可能に接続されている期間において、前記サーバから前記自装置の識別情報の送信の要求を受信したときに、前記自
装置の識別情報を送信し、
前記所定の条件とは、前記サーバが前記情報処理装置に対して前記識別情報の送信を要求したときに、この要求に応じて当該情報処理装置から前記識別情報を受信することができなかったことである、請求項７に記載の通信システム。
【請求項９】
各前記情報処理装置は、ディスプレイを含む複数種類の報知手段を更に備え、
前記通知手段は、前記ディスプレイとは異なる前記報知手段を用いて前記通知を行う、請求項１に記載の通信システム。
【請求項１０】
前記複数種類の報知手段は、照明手段を含み、
前記通知手段は、前記照明手段を用いて前記通知を行う、請求項９に記載の通信システム。
【請求項１１】
前記情報処理装置は折り畳み機構を更に備え、
前記報知手段は、前記情報処理装置が折り畳まれた状態であっても、前記通知を行うことが可能である、請求項９又は１０に記載の通信システム。
【請求項１２】
前記第２処理実行手段は、前記アクセスポイントを経由しての通信によって前記特定の他の情報処理装置から取得した情報を用いて、前記所定のアプリケーションを実行する、請求項１〜１１に記載の通信システム。
【請求項１３】
各前記情報処理装置は、携帯型の情報処理装置である、請求項１〜１２に記載のシステム。
【請求項１４】
サーバ及び他の情報処理装置とアクセスポイントを介して通信可能な情報処理装置であって、
特定の前記他の情報処理装置を前記通信の相手として登録する登録手段、
接続可能な前記アクセスポイントを、直近に行なわれたユーザの操作に基づくことなく検索する検索手段、
前記検索手段によって前記接続可能なアクセスポイントが検索されたときに、当該アクセスポイントを介して、前記サーバに接続するサーバ接続手段、
前記サーバ接続手段によって前記サーバに接続したとき、前記登録手段に登録されている他の情報処理装置の通信接続状態を示す管理情報を前記サーバから受信する第１受信手段、
前記第１受信手段による受信処理を実行する第１処理実行手段、
前記登録手段に登録されている他の情報処理装置との間で通信接続された状態で所定のアプリケーションを実行する第２処理実行手段、
前記特定の他の情報処理装置の通信接続状態に所定の変化があったかどうかを判断する第１変化判断手段、および、
前記特定の他の情報処理装置の通信接続状態に所定の変化があったと前記第１変化判断手段が判断したときに、当該通信接続状態の変化をユーザに通知する通知手段を備え、
前記第１処理実行手段は、前記第２処理実行手段によって前記所定のアプリケーションが実行されているか否かにかかわらず、前記第１受信手段による受信処理を実行し、
前記検索手段、前記サーバ接続手段、前記第１受信手段、及び前記第１処理実行手段により実行される一連の処理が、所定の周期毎に繰り返し実行される、情報処理装置。
【請求項１５】
サーバ及び他の情報処理装置とアクセスポイントを介して通信可能な情報処理装置のコンピュータを、
特定の前記他の情報処理装置を前記通信の相手として登録する登録手段、
接続可能な前記アクセスポイントを、直近に行なわれたユーザの操作に基づくことなく検索する検索手段、
前記検索手段によって前記接続可能なアクセスポイントが検索されたときに、当該アクセスポイントを介して、前記サーバに接続するサーバ接続手段、
前記サーバ接続手段によって前記サーバに接続したとき、前記登録手段に登録されている他の情報処理装置の通信接続状態を示す管理情報を前記サーバから受信する第１受信手段、
前記第１受信手段による受信処理を実行する第１処理実行手段、
前記登録手段に登録されている他の情報処理装置との間で通信接続された状態で所定のアプリケーションを実行する第２処理実行手段、
前記特定の他の情報処理装置の通信接続状態に所定の変化があったかどうかを判断する第１変化判断手段、および
前記特定の他の情報処理装置の通信接続状態に所定の変化があったと前記第１変化判断手段が判断したときに、当該通信接続状態の変化をユーザに通知する通知手段として機能させ、
前記第１処理実行手段は、前記第２処理実行手段によって前記所定のアプリケーションが実行されているか否かにかかわらず、前記第１受信手段による受信処理を実行し、
前記検索手段、前記サーバ接続手段、前記第１受信手段、及び前記第１処理実行手段により実行される一連の処理が、所定の周期毎に繰り返し実行さる、プログラム。
【請求項１６】
サーバ及び他の情報処理装置とアクセスポイントを介して通信可能な情報処理装置を用いた情報処理方法であって、
特定の前記他の情報処理装置を前記通信の相手として登録する登録ステップ、
接続可能な前記アクセスポイントを、直近に行なわれたユーザの操作に基づくことなく検索する検索ステップ、
前記検索ステップにおいて前記接続可能なアクセスポイントが検索されたときに、当該アクセスポイントを介して、前記サーバに接続するサーバ接続ステップ、
前記サーバ接続ステップによって前記サーバに接続したとき、前記登録ステップで登録されている他の情報処理装置の通信接続状態を示す管理情報を前記サーバから受信する処理を実行する第１処理実行ステップ、
前記登録ステップにおいて登録された他の情報処理装置との間で通信接続された状態で所定のアプリケーションを実行する第２処理実行ステップ、
前記特定の他の情報処理装置の通信接続状態に所定の変化があったかどうかを判断する第１変化判断ステップ、および
前記特定の他の情報処理装置の通信接続状態に所定の変化があったと前記第１変化判断手段が判断したときに、当該通信接続状態の変化をユーザに通知する通知ステップを備え、
第１処理実行ステップは、前記第２処理実行ステップで前記所定のアプリケーションが実行されているか否かにかかわらず、前記管理情報を前記サーバから受信し、
前記検索ステップ、前記サーバ接続ステップ、及び前記第１処理実行ステップにより実行される一連の処理が、所定の周期毎に繰り返し実行される、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、情報処理装置、プログラム及び情報処理方法に関し、より特定的には、特定の他の情報処理装置の通信接続状態を取得する通信システム、情報処理装置、プログラム及び情報処理方法に関する。
【背景技術】
【０００２】
従来、複数の情報処理装置の間で互いに登録（フレンド登録）を行い、フレンド登録を行っている複数の情報処理装置同士で通信を行う通信システムは存在している。例えば、ネットワーゲームシステムでは、複数のゲーム装置でネットワークゲームを行う際に、ゲーム装置は、ネットワークゲームを行う相手方のゲーム装置を予め自機にフレンド登録しておき、フレンド登録しているゲーム装置との間でのみオンラインゲームを行う。このような通信システムでは、情報処理装置は、自機にフレンド登録した他の情報処理装置がオンラインでないときには当該情報処理装置と通信を行うことができない（例えばオンラインゲームを行うことができない）。従って、非特許文献１のネットワークゲームシステムでは、ゲーム装置がフレンド登録したゲーム装置がオンラインであるかオフラインであるかの通信接続状態を取得して表示している。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】［ｏｎｌｉｎｅ］［平成２３年１月２４日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｓｕｐｐｏｒｔ．ｘｂｏｘ．ｃｏｍ／ｊａ−ｊａ／Ｐａｇｅｓ／ｘｂｏｘ−ｌｉｖｅ／ｈｏｗ−ｔｏ／ｃｈａｔ／ｍａｎａｇｉｎｇ−ｆｒｉｅｎｄｓ．ａｓｐｘ＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、非特許文献１のオンラインゲームシステムでは、据置型のゲーム装置同士でオンラインゲームを行うシステムであるため、ゲーム装置がネットワークに常時接続可能である。従って、フレンド登録したゲーム装置がオンラインであるかオフラインであるかの通信接続状態が頻繁に変化しない。非特許文献１におけるオンラインゲームシステムでは、このような状況下において、ゲーム装置がフレンド登録したゲーム装置の通信接続状態を取得する。
【０００５】
それゆえ、本発明の目的は、通信システムを構成する情報処理装置がネットワークに常時接続可能ではない状況下でも、情報処理装置がフレンド登録した特定の他の情報処理装置の通信接続状態を好適に取得することができる通信システム、情報処理装置、プログラム及び情報処理方法を提供することである。
【課題を解決するための手段】
【０００６】
第１の発明の通信システムは、上記目的を達成するために、複数の情報処理装置がアクセスポイントを介してサーバ及び他の情報処理装置と通信可能な通信システムであって、サーバは、複数の情報処理装置の通信接続状態を示す管理情報を記憶し、各情報処理装置は、登録手段、検索手段、サーバ接続手段、および第１受信手段を備える。そして、登録手段は、特定の他の情報処理装置を通信の相手として登録する。検索手段は、接続可能なアクセスポイントを自動的に繰り返し検索する。サーバ接続手段は、検索手段によって接続可能なアクセスポイントが検索されたときに、当該アクセスポイントを介して、サーバに自動的に接続する。第１受信手段は、サーバ接続手段によってサーバに接続したとき、登録手段に登録されている他の情報処理装置の管理情報をサーバから自動的に受信する。
【０００７】
上記構成によれば、情報処理装置において、接続可能なアクセスポイントが自動的に繰り返し検索され、アクセスポイントが検索されたときに、アクセスポイントを介してサーバに自動的に接続され、サーバから管理情報が取得される。この管理情報は、登録手段に登録されている他の情報処理装置の通信接続状態を示す。これによって、情報処理装置は、他の情報処理装置の通信接続状態が変化したときにも、この変化後の通信接続状態を速やかに取得することができる。
【０００８】
第２の発明の通信システムでは、上記サーバは、第２通信手段、および第２送信手段を備えてもよい。そして、第２通信手段は、アクセスポイントを経由して情報処理装置と通信を行う。第２送信手段は、情報処理装置がサーバ接続手段によってサーバに接続したときに、当該情報処理装置に対して特定の他の情報処理装置の管理情報を送信するとともに、特定の他の情報処理装置に対して当該情報処理装置の管理情報を送信する。この構成によれば、情報処理装置は、サーバに接続するだけで、特定の他の情報処理装置の管理情報を受信して特定の他の情報処理装置の通信接続状態を取得することが可能になる。また、情報処理装置は、サーバに接続するだけで、サーバから特定の他の情報処理装置に対して自装置の管理情報が送信され、特定の他の情報処理装置に対して自装置の通信接続状態を取得させることが可能になる。
【０００９】
第３の発明の通信システムでは、上記各情報処理装置は、第１変化判断手段、および通知手段を更に備えてもよい。そして、第１変化判断手段は、特定の他の情報処理装置の通信接続状態に所定の変化があったかどうかを判断する。通知手段は、特定の他の情報処理装置の通信接続状態に所定の変化があったと第１変化判断手段が判断したときに、当該通信接続状態の変化をユーザに通知する。なお、通知手段は、例えば、ディスプレイ、照明手段（ランプ等）、放音手段（スピーカ）、振動手段等の報知手段を用いて通知を行う。この構成によれば、特定の他の情報処理装置の通信接続状態に所定の変化があったときに、ユーザに対して当該変化を速やかに認識させることができる。
【００１０】
第４の発明の通信システムでは、上記通信接続状態は、サーバ接続手段によってサーバに通信可能に接続しているか否かであってもよい。この構成によれば、アクセスポイントを検索することができたときに、情報処理装置が、自装置の通信相手である特定の他の情報処理装置がオンラインであるかオフラインであるかを取得することができる。
【００１１】
第５の発明の通信システムでは、上記通信接続状態は、上記サーバ接続手段によってサーバに通信可能に接続しているか否かであってもよい。また、上記所定の変化は、サーバと通信可能に接続していない状態から通信可能に接続している状態に変化したことであってもよい。この構成によれば、アクセスポイントを検索することができたときに、情報処理装置が、自装置の通信相手である特定の他の情報処理装置がオンラインであるかオフラインであるかを取得することができるとともに、この特定の他の情報処理装置が例えばオフラインからオンラインに変化したときにユーザに対して通信接続状態の変化を通知することができる。
【００１２】
第６の発明の通信システムでは、各情報処理装置は、サーバに対して自装置の識別情報を送信する第１送信手段を更に備えてもよい。そして、通信接続状態は、サーバ接続手段によってサーバに通信可能に接続しているか否かであってもよい。また、サーバは、第２受信手段、第２記憶手段、接続可否判断手段、及び第２更新手段を更に備えてもよい。そして、第２受信手段は、各情報処理装置から識別情報を受信してもよい。第２記憶手段は、管理情報を記憶してもよい。接続可否判断手段は、第２受信手段によって識別情報が情報処理装置から受信されたときに、当該識別情報の送信元の情報処理装置がサーバと通信可能に接続されていると判断してもよい。第２更新手段は、接続可否判断手段による判断結果に基づいて、第２記憶手段に記憶されている管理情報を更新してもよい。また、第２送信手段は、第２記憶手段に記憶されている管理情報を送信してもよい。この構成によれば、サーバは、通信可能である情報処理装置の識別情報を取得することができ、識別情報の送信元の情報処理装置の通信接続状態が、サーバと通信可能に接続されている状態であると判断することができる。そして、この判断結果に基づいて第２記憶手段に記憶されている管理情報が更新される。これによって、サーバに記憶されている管理情報を最新の状態に速やかに更新することが可能になる。そして、このような管理情報が、サーバに接続された情報処理装置に対して送信されるため、信頼性の高い情報を情報処理装置に対して送信することができる。
【００１３】
第７の発明の通信システムでは、上記各情報処理装置は、サーバ接続手段によってサーバに通信可能に接続したときに、サーバに対して自装置の識別情報を自動的に送信する第１送信手段を更に備えてもよい。上記通信接続状態は、サーバ接続手段によってサーバに通信可能に接続しているか否かであってもよい。そして、上記サーバは、第２受信手段、第２記憶手段、接続可否判断手段、第２更新手段を更に備えてもよい。そして、第２受信手段は、各情報処理装置から識別情報を受信する。第２記憶手段は管理情報を記憶する。接続可否判断手段は、第２受信手段によって識別情報が情報処理装置から受信されたときに、当該識別情報の送信元の情報処理装置がサーバと通信可能に接続されていると判断する。第２更新手段は、接続可否判断手段による判断結果に基づいて、第２記憶手段に記憶されている管理情報を更新する。第２送信手段は、第２記憶手段に記憶されている管理情報を送信する。
【００１４】
上記構成によれば、各情報処理装置がサーバに通信可能に接続したときに自装置の識別情報を自動的に送信する。これによって、サーバは、通信可能である情報処理装置の識別情報を取得することができ、識別情報の送信元の情報処理装置の通信接続状態が、サーバと通信可能に接続されている状態であると判断することができる。そして、この判断結果に基づいて第２記憶手段に記憶されている管理情報が更新される。これによって、サーバに記憶されている管理情報を最新の状態に速やかに更新することが可能になる。そして、このような管理情報が、サーバに接続された情報処理装置に対して送信されるため、信頼性の高い情報を情報処理装置に対して送信することができる。
【００１５】
第８の発明の通信システムでは、上記接続可否判断手段は、所定の条件を満たしたときに、識別情報の送信元の情報処理装置がサーバと通信可能に接続されていないと判断してもよい。上記第２情報更新手段は、当該判断に基づいて、上記第２記憶手段に記憶されている当該情報処理装置の管理情報を更新してもよい。上記第２送信手段は当該判断結果に応じて、当該情報処理装置の登録手段によって登録されている特定の他の情報処理装置に対して、当該情報処理装置の管理情報を送信してもよい。
【００１６】
上記構成によれば、情報処理装置によって自装置の識別情報が自動的に繰り返し送信され、所定の条件を満たしたときに（例えばサーバによって、情報処理装置から識別情報が一定期間受信されないときに）、当該情報処理装置がサーバと通信可能に接続されていないと判断してもよい。そして、この判断に基づいて、第２記憶手段に記憶されている当該情報処理装置の管理情報が更新される。これによって、サーバによって、情報処理装置がサーバと通信可能に接続している状態から接続していない状態に変化したときにも、この変化後の通信接続状態を速やかに取得することが可能になる。そして、上記判断結果に応じて、当該情報処理装置に登録されている特定の他の情報処理装置に対して当該情報処理装置の管理情報が送信される。これによって、例えば、当該情報処理装置がサーバと通信可能に接続している状態から接続していない状態に変化したときに、当該情報処理装置に登録されている特定の他の情報処理装置に対して当該情報処理装置の管理情報が送信され、特定の他の情報処理装置に通信接続状態の変化後の管理情報を取得させることができる。
【００１７】
第９の発明の通信システムでは、上記第１送信手段は、情報処理装置がサーバと通信可能に接続されている期間において、サーバから自装置の識別情報の送信の要求を受信したときに、自装置の識別情報を送信してもよい。上記所定の条件とは、前記サーバが識別情報の送信元の情報処理装置に対して識別情報の送信を要求したときに、この要求に応じて当該情報処理装置から識別情報を受信することができなかったことであってもよい。
【００１８】
上記構成によれば、サーバによって情報処理装置に対して識別情報の送信が要求される。この要求に応答した情報処理装置から識別情報が受信されないときにサーバによって当該情報処理装置がサーバと通信可能に接続されていないと判断される。そして、この判断に基づいて、第２記憶手段に記憶されている当該情報処理装置の管理情報が更新される。これによって、サーバによって、情報処理装置がサーバと通信可能に接続している状態から接続していない状態に変化したときにも、この変化後の通信接続状態をに取得することが可能になる。更に、サーバから情報処理装置に対して識別情報の送信が要求され、この要求によっても識別情報を受信することができなかったときにのみ、当該情報処理装置がサーバと通信可能に接続されていないと判断される。このため、信頼性の高い判断を行うことができる。
【００１９】
第１０の発明の通信システムでは、上記各情報処理装置は、ディスプレイを含む複数種類の報知手段を更に備えてもよい。また、上記通知手段は、ディスプレイとは異なる報知手段を用いて通知を行ってもよい。この構成によれば、特定の他の情報処理装置の通信接続状態の変化の通知を、ディスプレイの表示を妨げずに行うことができる。なお、通知手段は、ディスプレイとは異なる報知手段として、例えば、照明手段（ランプ、ＬＥＤ等）、放音手段（スピーカ）、振動手段等を用いてユーザに通知を行う。
【００２０】
第１１の発明の通信システムでは、上記複数種類の報知手段は、照明手段を含んでもよい。そして、上記通知手段は、照明手段を用いて通知を行ってもよい。この構成によれば、視認性よく、特定の他の情報処理装置の通信接続状態の変化の通知を行うことができる。なお、照明手段は、例えば、ランプ、ＬＥＤ等である。
【００２１】
第１２の発明の通信システムでは、情報処理装置は折り畳み機構を更に備えてもよい。そして、報知手段は、情報処理装置が折り畳まれた状態であっても、通知を行うことが可能であってもよい。この構成によれば、ユーザが情報処理装置を操作中でも非操作中でも特定の他の情報処理装置の通信接続状態の変化をユーザに認識させることが可能である。
【００２２】
第１３の発明の通信システムでは、上記各情報処理装置は、アクセスポイントを経由しての通信によって特定の他の情報処理装置から取得した情報を用いて、所定のアプリケーション処理を行うアプリケーション実行手段を更に備えてもよい。この構成によれば、更新頻度が高く信頼性の高い、特定の他の情報処理装置の通信接続状態を取得している。このため、特定の他の情報処理装置の通信接続状態をユーザに通知することで、ネットワークに接続可能である可能性の高いか否かを、ユーザに正確に報知することができる。これによって、ネットワークに接続可能である可能性の高い特定の他の情報処理装置のみを通信の相手方としてユーザに選択させて、このような特定の他の情報処理装置のみを通信の相手方として情報処理装置が所定のアプリケーション処理を実行することができる。
【００２３】
第１４の発明の通信システムでは、上記各情報処理装置は、携帯型の情報処理装置であってもよい。この構成によれば、ユーザに携帯されて移動することで、情報処理装置の通信接続状態が変化し易いが、この様な情報処理装置においても、通信相手である特定の他の情報処理装置の通信接続状態を頻度高く取得して、信頼性の高い情報を取得することができる。
【００２４】
第１５の発明の情報処理装置は、上記目的を達成するために、サーバ及び他の情報処理装置とアクセスポイントを介して通信可能な情報処理装置であって、登録手段、検索手段、サーバ接続手段、および第１受信手段を備える。そして、登録手段は、特定の他の情報処理装置を通信の相手として登録する。検索手段は、接続可能なアクセスポイントを自動的に繰り返し検索する。サーバ接続手段は、検索手段によって接続可能なアクセスポイントが検索されたときに、当該アクセスポイントを介して、サーバに自動的に接続する。第１受信手段は、サーバ接続手段によってサーバに接続したとき、登録手段に登録されている他の情報処理装置の管理情報をサーバから自動的に受信する。
【００２５】
第１６の発明のプログラムは、上記目的を達成するために、サーバ及び他の情報処理装置とアクセスポイントを介して通信可能な情報処理装置のコンピュータを、登録手段、検索手段、サーバ接続手段、および第１受信手段として機能させる。そして、登録手段は、特定の他の情報処理装置を通信の相手として登録する。検索手段は、接続可能なアクセスポイントを自動的に繰り返し検索する。サーバ接続手段は、検索手段によって接続可能なアクセスポイントが検索されたときに、当該アクセスポイントを介して、サーバに自動的に接続する。第１受信手段は、サーバ接続手段によってサーバに接続したとき、登録手段に登録されている他の情報処理装置の管理情報をサーバから自動的に受信する。
【００２６】
第１７の発明の情報処理方法は、上記目的を達成するために、サーバ及び他の情報処理装置とアクセスポイントを介して通信可能な情報処理装置を用いた情報処理方法であって、登録ステップ、検索ステップ、サーバ接続ステップ、および第１受信ステップを含む。登録ステップにおいて、特定の他の情報処理装置を通信の相手として登録する。検索ステップにおいて、接続可能なアクセスポイントを自動的に繰り返し検索する。サーバ接続ステップにおいて、検索ステップにおいて接続可能なアクセスポイントが検索されたときに、当該アクセスポイントを介して、サーバに自動的に接続する。第１受信ステップにおいて、サーバ接続ステップによってサーバに接続したとき、登録ステップで登録されている他の情報処理装置の通信接続状態を示す管理情報をサーバから自動的に受信する。
【００２７】
上記第１５〜第１７の発明によれば、上記第１の発明と同様の作用効果を奏する。
【発明の効果】
【００２８】
本発明によれば、情報処理装置が、自動的に接続可能なアクセスポイントを検索し、検索できたときに、アクセスポイントを介してサーバに自動的に接続し、サーバから自装置で通信相手として登録している情報処理装置の通信接続情報を示す管理情報を取得する。これによって、情報処理装置は、接続可能なアクセスポイントが検索できる度に、自装置に通信相手として登録している情報処理装置の通信接続情報を取得することができる。従って、情報処理装置がネットワークに非常時接続であり、通信相手の情報処理装置の通信接続状態が変化し易い通信システムにおいても、情報処理装置は、通信相手として自機に登録している特定の他の情報処理装置の通信接続状態を速やかに取得することができる。
【図面の簡単な説明】
【００２９】
【図１】本発明の一実施形態にかかる通信システムを示す図
【図２】開状態におけるゲーム装置の正面図
【図３Ａ】閉状態におけるゲーム装置の左側面図
【図３Ｂ】閉状態におけるゲーム装置の正面図
【図３Ｃ】閉状態におけるゲーム装置の右側面図
【図３Ｄ】閉状態におけるゲーム装置の背面図
【図４】ゲーム装置の内部構成を示すブロック図
【図５】サーバの内部の電気的構成の一例を示すブロック図
【図６】フレンド情報、フレンドであるゲーム装置の通信接続状態、及び当該ゲーム装置のフレンド情報等を表示した画面の一例を示す図
【図７】フレンド候補を下側ＬＣＤに表示した画面の一例を示す図
【図８】フレンド登録指示を受け付けたときに上側ＬＣＤ及び下側ＬＣＤに表示される画面の一例を示す図
【図９】メインメモリが記憶するプログラム及び各種データの一例を示す図
【図１０Ａ】フレンドリストテーブルＤ２の一例を示す図
【図１０Ｂ】フレンド候補リストテーブルＤ３の一例を示す図
【図１０Ｃ】通信レベルテーブルＤ４の一例を示す図
【図１１】管理テーブルＤ１０の一例を示す図
【図１２】通信処理の一例を示すフローチャート
【図１３】サーバとの通信処理の一例を示すフローチャート
【図１４】サーバ側通信処理の一例を示すフローチャート
【図１５】サーバ側通信処理の一例を示すフローチャート
【図１６】メイン処理の一例を示すフローチャート
【図１７】フレンド管理処理の一例を示すフローチャート
【図１８】フレンド管理処理の一例を示すフローチャート
【図１９】初回起動設定処理において表示される画面の一例を示す図
【図２０】第２メニュー画面の一例を示す図
【図２１】フレンド登録処理の一例を示すフローチャート
【図２２】フレンド登録処理の一例を示すフローチャート
【図２３】第４メニュー画面の一例を示す図
【図２４】その他のアプリケーションの実行処理の一例を示すフローチャート
【発明を実施するための形態】
【００３０】
以下、図１を用いて、本発明を適用した一実施形態に係る通信システムを説明する。図１は、本発明の一実施形態にかかる通信システムを示す図である。通信システム１は、複数のゲーム装置１００（本発明の情報処理装置の一例に対応）と、このゲーム装置１００にアクセスポイント２００及びネットワーク３００を介して通信可能に接続されたサーバ４００とを備える。
【００３１】
各ゲーム装置１００は、ユーザに携帯されて移動可能な携帯型の装置である。各ゲーム装置１００は、無線通信機能を備え、アクセスポイント２００との通信可能範囲に位置して、アクセスポイント２００に通信可能に接続されているときに、このアクセスポイント２００を介してネットワーク３００に接続された他の通信機器（例えばサーバ４００）と通信を行う。
【００３２】
また、複数のゲーム装置１００は、互いに通信相手として登録（以下、「フレンド登録」と記載する）している場合に限って、アクセスポイント２００及びネットワーク３００を介して所定の通信（例えばネットワークゲームのための通信）を行う。なお、複数のゲーム装置１００は、サーバ４００を介して互いに通信を行っても、サーバ４００を介さずに通信を行ってもよい。
【００３３】
また、各ゲーム装置１００は、自機から所定の距離以内（例えば、１０ｍ〜３０ｍ以内）に位置する他のゲーム装置１００との間で所定の通信プロトコルを用いて近距離無線通信を行う。この近距離無線通信では、アクセスポイント２００及びネットワーク３００を介さずに直接に複数のゲーム装置１００の間で通信を行う。そして、本実施形態では、複数のゲーム装置１００は、相手方のゲーム装置１００のフレンド登録を行うために、近距離無線通信によって互いの装置ＩＤを示す情報を交換し合う。この装置ＩＤとは、各ゲーム装置１００に固有の識別情報であり、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  ａｄｄｒｅｓｓ）アドレスや、このＭＡＣアドレスを用いて作成された情報である。各ゲーム装置１００は受信した装置ＩＤをフレンド登録する。（以下、フレンド登録した他のゲーム装置１００を「フレンドであるゲーム装置１００」と記載する場合があり、フレンドであるゲーム装置１００のユーザを「フレンドであるユーザ」と記載する場合がある。）
【００３４】
なお、図１においては、２台のゲーム装置１００が図示されているが、ゲーム装置１００の台数は２台に限定されず２台を超える台数であってもよい。
【００３５】
サーバ４００は、各ゲーム装置１００にフレンド登録されているゲーム装置１００を記憶し、管理する。すなわち、各ゲーム装置１００は、自機にフレンド登録されているゲーム装置１００の装置ＩＤ（以下、「フレンドＩＤ」と記載する）を、アクセスポイント２００と通信可能に接続されている期間に所定周期毎にサーバ４００に送信する。そして、サーバ４００は、受信したフレンドＩＤをユーザ登録されているゲーム装置１００の装置ＩＤ（以下、「ユーザＩＤ」と記載する）に対応付けて記憶する。なお、本実施形態では、サーバ４００が管理するのはサーバ４００にユーザ登録されているゲーム装置１００についてである。
【００３６】
次に、本実施形態にかかる、通信システム１の特徴を説明する。第１の特徴は、他のゲーム装置１００との間の近距離無線通信が通信状態に関する所定の条件（通信状態条件）を満たすときにのみ、受信した装置ＩＤをフレンド登録することができることである。このため、通信状態条件を通信状態の良好さを表す条件等に設定することで、自機のある程度近くに居る他の情報処理装置のみをフレンド登録の対象とすることが可能となる。
【００３７】
この通信状態条件は、例えば、受信した装置ＩＤを示す情報の信号強度が所定レベル（所定の閾値）より大きいことや、信号強度に基づいて算出した、他のゲーム装置１００との間の通信状態の良さを表す通信レベルが所定レベルよりも大きいこと、等がある。あるいは、自装置から所定数の確認信号を送信して、それを受信した他装置が受信した確認信号と同じ数の確認信号を送信し、その送信された確認信号の数を見ることによって、通信状態の良好さ（または、通信相手との距離）をある程度判断することができるので、そのような確認信号の数を通信状態条件としてもよい。
【００３８】
また、第２の特徴は、ゲーム装置１００が、所定周期毎（例えば、１／６０ｓｅｃ等の短い期間毎）に自動的に通信可能なアクセスポイント２００を検索し、通信可能なアクセスポイント２００が検索されたときに、このアクセスポイント２００と自動的に接続することである。そして、ゲーム装置１００は、当該アクセスポイント２００及びネットワーク３００を介してサーバ４００に自動的に接続し、自機のフレンドであるゲーム装置１００の通信接続状態（例えば、オンライン及びオフラインの何れの状態か）に関する情報（接続状態情報）をサーバ４００から受信するための処理を実行する。
【００３９】
本実施形態の通信システム１では、ゲーム装置１００が、アクセスポイント２００と無線通信を行うことで、当該アクセスポイント２００を介して他のゲーム装置１００と通信を行う。また、ゲーム装置１００は携帯型装置である。従って、ゲーム装置１００は、ユーザに携帯されて移動することで、アクセスポイント２００の通信可能範囲内から頻繁に出入りし、オンライン状態とオフライン状態との間で通信接続状態が頻繁に変化し易い。また、アクセスポイント２００は、例えばユーザの家庭に備えられたような固定のものだけでなく、自宅の外のさまざまな場所に存在するため、ユーザが家の外でゲーム装置１００を使用している場合は、通信接続状態の変化はより頻繁になる。本通信システム１によれば、ゲーム装置１００は、自機がオンライン状態になったときに、自機のフレンドであるゲーム装置１００の通信接続状態を所定周期毎にサーバ４００から取得するため、上述したような通信接続状態が変化し易い状況においても、自機のフレンドであるゲーム装置１００の通信接続状態の変化をすぐに取得することができる。そして、ゲーム装置１００はこの通信接続状態の変化をユーザに通知（報知）することができる。
【００４０】
また、各ゲーム装置１００は、フレンドリストアプリケーションの実行によって、自機のフレンドであるゲーム装置１００の通信接続状態（オンラインかオフラインか）を表示することができる。また、各ゲーム装置１００は、自機のフレンドであるユーザに関連するユーザ情報として、フレンド情報を当該ゲーム装置又はサーバ４００から受信し、受信したフレンド情報を当該ゲーム装置１００の通信接続状態とともに表示する。なお、フレンド情報は、例えば、ユーザ名、キャラクタ情報、ユーザからのメッセージ、お気に入りアプリ識別ＩＤ、現在実行中アプリ識別ＩＤ等がある。通信接続状態及びフレンド情報の表示の態様の詳細は、図６を用いて後述する。
【００４１】
なお、ゲーム装置１００のユーザは、自機のフレンドであるゲーム装置１００がログイン状態であるときに、当該ゲーム装置１００をネットワークゲームの相手として選択したり、チャットを行う相手として選択したりすることができる。
【００４２】
また、上述したネットワーク３００は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）であってもよいし、広域ネットワークであってもよい。
【００４３】
（ゲーム装置の構成）
以下、ゲーム装置１００について説明する。ゲーム装置１００は携帯型のゲーム装置である。図２および図３Ａ〜Ｄに示されるように、ゲーム装置１００は、下側ハウジング１１および上側ハウジング２１を有する。下側ハウジング１１と上側ハウジング２１とは、開閉可能（折り畳み可能）に接続されている。
【００４４】
（下側ハウジングの説明）
図１および図３Ａ〜Ｄに示すように、下側ハウジング１１には、下側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１２、タッチパネル１３、各操作ボタン１４Ａ〜１４Ｌ、アナログスティック１５、ＬＥＤ１６Ａ〜１６Ｃ、挿入口１７、および、マイクロフォン用孔１８が設けられる。
【００４５】
タッチパネル１３は、下側ＬＣＤ１２の画面上に装着されている。下側ハウジング１１の上側面には、タッチペン２８を収納するための挿入口１７（図１および図２Ｄに示す点線）が設けられている。
【００４６】
下側ハウジング１１の内側面（主面）には、十字ボタン１４Ａ（方向入力ボタン１４Ａ）、ボタン１４Ｂ、ボタン１４Ｃ、ボタン１４Ｄ、ボタン１４Ｅ、電源ボタン１４Ｆ、セレクトボタン１４Ｊ、ＨＯＭＥボタン１４Ｋ、およびスタートボタン１４Ｌが、設けられる。
【００４７】
アナログスティック１５は、方向を指示するデバイスである。
【００４８】
下側ハウジング１１の内側面には、マイクロフォン用孔１８が設けられる。マイクロフォン用孔１８の下部には後述する音声入力装置としてのマイク４２（図４参照）が設けられる。
【００４９】
図３ＢおよびＤに示されるように、下側ハウジング１１の上側面には、Ｌボタン１４ＧおよびＲボタン１４Ｈが設けられている。また、図２Ａに示されるように、下側ハウジング１１の左側面には、ゲーム装置１００が備えるスピーカ４３（図４参照）の音量を調整するための音量ボタン１４Ｉが設けられる。
【００５０】
図３Ａに示されるように、下側ハウジング１１の左側面には開閉可能なカバー部１１Ｃが設けられる。このカバー部１１Ｃの内側には、ゲーム装置１００とデータ保存用外部メモリ４５とを電気的に接続するためのコネクタが設けられる。
【００５１】
図３Ｄに示されるように、下側ハウジング１１の上側面には、外部メモリ４４を挿入するための挿入口１１Ｄが設けられる。
【００５２】
図３および図３Ｃに示されるように、下側ハウジング１１の下側面にはゲーム装置１００の電源のＯＮ／ＯＦＦ状況をユーザに通知する第１ＬＥＤ１６Ａ、下側ハウジング１１の右側面にはゲーム装置１００の無線通信の確立状況をユーザに通知する第２ＬＥＤ１６Ｂが設けられる。ゲーム装置１００は他の機器との間で無線通信を行うことが可能であり、下側ハウジング１１の右側面には、この無線通信の機能を有効／無効にする無線スイッチ１９が設けられる（図３Ｃ参照）。
【００５３】
また、下側ハウジング１１における上側ハウジング２１との結合部分の内側には、ユーザに所定の情報を報知するためのＬＥＤ１６Ｃが配置されている。このＬＥＤ１６Ｃは、例えば朱色に点灯することで、自機にフレンド登録されているゲーム装置１００の通信接続状態が変化したこと（例えば、オフライン状態であったがオンライン状態に変化した等）を報知する。なお、上記結合部分は上側ハウジング２１から分離ないし独立しているため、ＬＥＤ１６はゲーム装置１００を折りたたんだ状態においてもユーザから視認される。そのため、ゲーム装置１００が折りたたまれていない（開いた）状態だけでなく、折りたたまれている（閉じた）状態であっても、自機にフレンド登録されているゲーム装置１００の通信接続状態が変化したことを通知することが可能である。
【００５４】
（上側ハウジングの説明）
図２および図３に示すように、上側ハウジング２１には、上側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）２２、外側撮像部２３（外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂ）、内側撮像部２４、３Ｄ調整スイッチ２５、および、３Ｄインジケータ２６が設けられる。
【００５５】
上側ＬＣＤ２２は、立体視可能な画像を表示することが可能な表示装置である。具体的には、パララックスバリア方式の裸眼立体視可能な表示装置である。上側ＬＣＤ２２は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像を視認させることにより、ユーザにとって立体感のある画像（立体視画像）を表示することができる。また、上側ＬＣＤ２２は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる。このように、上側ＬＣＤ２２は、立体視画像を表示する立体表示モードと、画像を平面的に表示する（平面視画像を表示する）平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、例えば、後述する３Ｄ調整スイッチ２５によって行われる。
【００５６】
外側撮像部２３は、上側ハウジング２１の外側面２１Ｄに設けられた２つの撮像部（２３ａおよび２３ｂ）の総称である。外側撮像部（左）２３ａと外側撮像部（右）２３ｂとは、ゲーム装置１００が実行するプログラムによって、ステレオカメラとして使用することが可能である。
【００５７】
内側撮像部２４は、上側ハウジング２１の内側面２１Ｂに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。
【００５８】
３Ｄ調整スイッチ２５は、スライドスイッチであり、上述のように上側ＬＣＤ２２の表示モードを切り替えるために用いられるスイッチである。また、３Ｄ調整スイッチ２５は、上側ＬＣＤ２２に表示された立体視可能な画像（立体画像）の立体感を調整するために用いられる。３Ｄ調整スイッチ２５のスライダ２５ａは、所定方向（上下方向）の任意の位置にスライド可能であり、当該スライダ２５ａの位置に応じて上側ＬＣＤ２２の表示モードが設定される。また、スライダ２５ａの位置に応じて、立体画像の見え方が調整される。
【００５９】
３Ｄインジケータ２６は、上側ＬＣＤ２２が立体表示モードか否かを示すＬＥＤである。
【００６０】
また、上側ハウジング２１の内側面には、スピーカ孔２１Ｅが設けられる。後述するスピーカ４３からの音声がこのスピーカ孔２１Ｅから出力される。
【００６１】
（ゲーム装置１００の内部構成）
次に、図４を参照して、ゲーム装置１００の内部の電気的構成について説明する。図４に示すように、ゲーム装置１００は、上述した各部に加えて、情報処理部３１、メインメモリ３２、外部メモリインターフェイス（外部メモリＩ／Ｆ）３３、データ保存用外部メモリＩ／Ｆ３４、データ保存用内部メモリ３５、無線通信モジュール３６、リアルタイムクロック（ＲＴＣ）３７、加速度センサ３８、電源回路４０、およびインターフェイス回路（Ｉ／Ｆ回路）４１等の電子部品を備えている。
【００６２】
情報処理部３１は、所定のプログラムを実行するためのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１１、画像処理を行うＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１２、ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）３１３を含む。ＣＰＵ３１１は、ゲーム装置１００内のメモリ（例えば外部メモリＩ／Ｆ３３に接続された外部メモリ４４やデータ保存用内部メモリ３５）に記憶されているプログラムを実行することによって、当該プログラムに応じた処理を実行する。なお、ＣＰＵ３１１によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。ＧＰＵ３１２は、ＣＰＵ３１１からの命令に応じて画像を生成し、ＶＲＡＭ３１３に描画する。ＶＲＡＭ３１３に描画された画像は、上側ＬＣＤ２２及び／又は下側ＬＣＤ１２に出力され、上側ＬＣＤ２２及び／又は下側ＬＣＤ１２に当該画像が表示される。
【００６３】
外部メモリＩ／Ｆ３３は、外部メモリ４４を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリＩ／Ｆ３４は、データ保存用外部メモリ４５を着脱自在に接続するためのインターフェイスである。
【００６４】
メインメモリ３２は、情報処理部３１（のＣＰＵ３１１）のワーク領域やバッファ領域として用いられる揮発性の記憶装置である。
【００６５】
外部メモリ４４は、情報処理部３１によって実行されるプログラム等を記憶するための不揮発性の記憶装置である。外部メモリ４４は、例えば読み取り専用の半導体メモリで構成される。
【００６６】
データ保存用外部メモリ４５は、不揮発性の読み書き可能なメモリ（例えばＮＡＮＤ型フラッシュメモリ）で構成され、任意のデータを保存するために用いられる。
【００６７】
データ保存用内部メモリ３５は、読み書き可能な不揮発性メモリ（例えばＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ３５には、無線通信モジュール３６を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【００６８】
無線通信モジュール３６は、例えばＩＥＥＥ８０２．１１ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。また、無線通信モジュール３６は、所定の通信方式（例えば独自プロトコルによる通信や、ＩＥＥＥ８０２．１１ｂ／ｇの規格に準拠した方式、赤外線通信及びＢｌｕｅｔｏｏｔｈ等）により同種の他のゲーム装置１００との間で近距離無線通信を行う機能を有する。なお、無線通信モジュール３６は、他のゲーム装置１００との間で後述するすれちがい通信を行う。
【００６９】
加速度センサ３８は、３軸（ｘｙｚ軸）方向に沿った直線方向の加速度（直線加速度）の大きさを検出する。情報処理部３１は、加速度センサ３８が検出した加速度を示すデータ（加速度データ）を受信して、ゲーム装置１００の姿勢や動きを検出することができる。
【００７０】
ＲＴＣ３７は、時間をカウントして情報処理部３１に出力する。情報処理部３１は、ＲＴＣ３７によって計時された時間に基づき現在時刻（日付）を計算する。電源回路４０は、ゲーム装置１００が有する電源（充電式電池）からの電力を制御し、ゲーム装置１００の各部品に電力を供給する。
【００７１】
Ｉ／Ｆ回路４１には、タッチパネル１３、マイク４２およびスピーカ４３が接続される。Ｉ／Ｆ回路４１は、マイク４２およびスピーカ４３（アンプ）の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するＡ／Ｄ変換およびＤ／Ａ変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル１３からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部３１に出力する。情報処理部３１は、タッチ位置データを取得することにより、タッチパネル１３に対して入力が行われた位置を知ることができる。
【００７２】
操作ボタン１４は、上記各操作ボタン１４Ａ〜１４Ｌからなり、操作ボタン１４から情報処理部３１へは、各操作ボタン１４Ａ〜１４Ｉに対する入力状況（押下されたか否か）を示す操作データが出力される。
【００７３】
下側ＬＣＤ１２および上側ＬＣＤ２２は情報処理部３１に接続される。具体的には、情報処理部３１は、上側ＬＣＤ２２のＬＣＤコントローラ（図示せず）と接続され、当該ＬＣＤコントローラに対して視差バリアのＯＮ／ＯＦＦを制御する。上側ＬＣＤ２２の視差バリアがＯＮになっている場合、情報処理部３１のＶＲＡＭ３１３に格納された右目用画像と左目用画像とが、上側ＬＣＤ２２に出力される。より具体的には、ＬＣＤコントローラは、右目用画像について縦方向に１ライン分の画素データを読み出す処理と、左目用画像について縦方向に１ライン分の画素データを読み出す処理とを交互に繰り返すことによって、ＶＲＡＭ３１３から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に１ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側ＬＣＤ２２の画面に表示される。そして、上側ＬＣＤ２２の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側ＬＣＤ２２の画面には立体視可能な画像が表示される。
【００７４】
外側撮像部２３および内側撮像部２４は、情報処理部３１の指示に従って画像を撮像し、撮像した画像データを情報処理部３１に出力する。
【００７５】
３Ｄ調整スイッチ２５は、スライダ２５ａの位置に応じた電気信号を情報処理部３１に送信する。
【００７６】
情報処理部３１は、３Ｄインジケータ２６の点灯を制御する。例えば、情報処理部３１は、上側ＬＣＤ２２が立体表示モードである場合、３Ｄインジケータ２６を点灯させる。
【００７７】
以下に図５を用いて上記サーバ４００の構成を説明する。図５は、サーバ４００の内部の電気的構成の一例を示すブロック図である。
【００７８】
サーバ４００は、操作部４０１、通信部４０２、ＲＯＭ４０３、ＨＤＤ４０４、ＲＡＭ４０５及びＣＰＵ４０６を有し、これらの間はバス４０７で互いに通信可能に接続されている。
【００７９】
操作部４０１は本サーバ４００の管理者からの操作を受け付ける機能を有する。通信部４０２はネットワーク３００を介して他の装置と通信する機能を有する。ＲＯＭ４０３はこのサーバ４００本体を起動するとともに基本的な機能を実現するためのシステムプログラムが記憶されている。ＨＤＤ４０４は、本サーバ４００にゲーム装置１００との間の通信を行わせる通信プログラムを含むプログラム、及びこのプログラムの実行に必要なデータが記憶されている。ＲＡＭ４０５は、ＣＰＵ４０６の作業領域として機能し、ＨＤＤ４０４から読み出された管理テーブルＤ１０を記憶する。この管理テーブルＤ１０には、ゲーム装置１００の装置ＩＤと、このゲーム装置１００のフレンドであるゲーム装置１００の装置ＩＤ（フレンドＩＤ）が対応づけて登録されている。また、この管理テーブルＤ１０には、登録されている装置ＩＤに対応付けて、対応するゲーム装置１００の接続状態情報（オンラインかオフラインかを示す情報、本発明の管理情報の一例）が登録されている。
【００８０】
ＣＰＵ４０６は、ゲーム装置１００から当該ゲーム装置１００がオンラインであることを示すオンライン通知を受信したときに、管理テーブルＤ１０を参照して、このゲーム装置１００のフレンドであるゲーム装置１００のフレンドＩＤと、このフレンドであるゲーム装置１００の接続状態情報とを取得し、オンライン通知の送信元のゲーム装置１００に対して送信する。また、ＣＰＵ４０６は、オンライン通知を受信したときに、管理テーブルＤ１０に登録されている当該ゲーム装置１００の接続状態情報がオフラインであることを示すときには、当該登録されている接続状態情報をオンラインに変更する。
【００８１】
以下、図６を用いて、フレンドリストアプリケーションの実行によって、ゲーム装置１００に表示される情報を説明する。図６は、フレンド情報、フレンドであるゲーム装置１００の通信接続状態、及び当該ゲーム装置１００のフレンド情報等を表示した画面の一例を示す図である。
【００８２】
下側ＬＣＤ１２には、フレンド情報が表示されたカードの画像Ｇ１（以下、「フレンドカードＧ１」と記載する）、操作子Ｇ２及び操作子Ｇ３が表示されている。
【００８３】
フレンドカードＧ１には、フレンド情報として、フレンドであるユーザを表すキャラクタＧ４と、当該ユーザの名前Ｇ５（以下「ユーザ名Ｇ５」と記載する）とが表示されている。また、フレンドカードＧ１には、フレンドとなるゲーム装置１００のユーザがオンラインであるかオフラインであるかを示す通信接続状態を表すテキストＧ６が表示されている。これによって、ゲーム装置１００のユーザに対して、フレンドカードＧ１に対応するゲーム装置１００がオンラインであるか否かを視覚的に分り易く表示することが可能になる。従って、ユーザは、自機のフレンドとなるゲーム装置１００がオンラインなので当該ゲーム装置１００のユーザを相手としてネットワークゲームを行うように、又はチャットを行うように容易に決定することができる。
【００８４】
なお、複数のゲーム装置１００がフレンド登録されているときには、複数のフレンドカードＧ１を表示することが可能であり、図６では、５台のゲーム装置１００がフレンドとして登録されているが、下側ＬＣＤ１２のスペースの都合上、５台中３台分のゲーム装置１００のフレンドカードＧ１を表示することができる（もちろん、３台分以上のフレンドカードＧ１を表示できるようにしてもよい。）。そして、ユーザがタッチパネル１３をスライド操作することによって、表示するフレンドカードＧ１を切り替えることができる（スライド操作だけでなく、例えばＬボタン１４ＧやＲボタン１４Ｈ等を用いることによる操作であってもよい。以下の操作においても同様である）。また、中央に表示されたフレンドカードＧ１をタッチする操作をタッチパネル１３で受け付けたときに、当該フレンドカードＧ１が選択されたとして、上側ＬＣＤ２２にフレンドカードＧ１が拡大して表示される。この拡大して表示されたフレンドカードＧ１によって、ユーザは選択されたフレンドカードＧ１に表示されたフレンド情報をより視認し易くなる。なお、フレンドカードＧ１が選択されると、当該フレンドカードＧ１の上方に、フレンドであるユーザが作成したメッセージＧ１０が表示される。
【００８５】
操作子Ｇ２は、選択されたフレンドカードＧ１と、当該フレンドカードＧ１に対応するフレンド登録の削除の指示をユーザから受け付けるために表示される。ここで、操作子Ｇ２をタッチする操作をタッチパネル１３で受け付けたときに、当該フレンドカードＧ１が削除され、当該フレンドカードＧ１に対応するフレンド登録も削除される。なお、本実施形態では、複数のゲーム装置１００が互いにフレンド登録していないと相互に通信を行うことができず、何れか一方のゲーム装置１００のフレンド登録を削除すると、他方のゲーム装置１００のフレンド登録も削除されることになる。ただし、他方のユーザに対してフレンド登録を削除したことを知らせないようにするため、他方のゲーム装置上ではフレンドカードＧ１の表示は残ったままになる。
【００８６】
また、操作子Ｇ３は、フレンドとなるゲーム装置１００を新たに追加してフレンド登録するための指示（フレンド登録指示）をユーザから受け付けるためのものであり、ユーザが操作子Ｇ３のタッチする操作をタッチパネル１３で受け付けたときに、新たに追加してフレンド登録を行うための処理（フレンド登録処理）がゲーム装置１００で実行される。フレンド登録処理についての詳細は後述する。
【００８７】
上側ＬＣＤ２２には、上述したような拡大されたフレンドカードＧ１が表示される。拡大されたフレンドカードＧ１には、拡大前のフレンドカードＧ１に表示されていたフレンド情報に加えて、他のフレンド情報も表示される。例えば、フレンドカードＧ１に対応するユーザのお気に入りのアプリケーションの名称（アプリケーション名）Ｇ７、及びこのアプリケーションに対応するアイコンＧ８が表示される。また、フレンドカードＧ１に対応するユーザが現在実行しているアプリケーションの名称（アプリケーション名）Ｇ９、及びこのアプリケーションに対応するアイコンＧ１０が表示される。これによって、フレンドカードＧ１に対応するユーザが現在実行しているアプリケーション名をユーザに知得させることができる。このため、ユーザは自己と同じアプリケーションを実行しているユーザ（ゲーム装置１００）を容易に知得することができる。なお、フレンドリストアプリケーションは、他のアプリケーションの実行中にも実行可能である。このため、ユーザは、他のアプリケーションの実行中に当該アプリケーションにおいてネットワークゲームを行いたくなったときに、フレンドリストアプリケーションの実行をゲーム装置１００に指示し、かつアプリケーション名Ｇ７を表示させることができる。これによって、ユーザが、フレンドであるユーザが現在実行しているアプリケーション名を見ることで、自機と同じアプリケーションを実行しているゲーム装置１００を検索し、ネットワークゲームの相手方となり得るゲーム装置１００を容易に探すことができる。
【００８８】
また、拡大されたフレンドカードＧ１には、ネットワークを介してフレンド登録を行うときに使用するフレンドコードＧ１１が表示される。
【００８９】
以下、図７及び図８を用いて、フレンド登録処理において表示される画面を説明する。フレンド登録処理においては、複数のゲーム装置１００は近距離無線通信を行うことで装置ＩＤを交換することができる。例えば、複数のゲーム装置１００は、装置ＩＤを含んだビーコンを送受信し合う。そして、ゲーム装置１００は、このビーコンの信号強度が通信状態条件（例えば、所定の閾値以上であるとの条件）を満たしたときにのみ、自機のユーザ情報をフレンド情報として交換し合い、フレンド登録可能なゲーム装置１００（フレンド候補）として表示する。
【００９０】
図７は、フレンド候補を下側ＬＣＤ１２に表示した画面の一例を示す図である。この画面には、フレンド候補のフレンドカードＧ１と、フレンドとなるゲーム装置１００の選択を促すテキストＧ１２が表示される。このフレンドカードＧ１にはフレンド情報が表示されるが、このフレンドカードＧ１に表示されるフレンド情報はキャラクタＧ４とユーザ名Ｇ５である。本実施形態では、ゲーム装置１００が、所定時間内に所定の複数台分（例えば３つ分）のゲーム装置１００を限度としてフレンド情報を取得することができる。また、複数のゲーム装置１００についてのフレンド情報を取得したときには、複数のフレンドカードＧ１が表示される。そして、図７では、例として、２台分のゲーム装置１００のフレンド情報を取得して、２つのフレンドカードＧ１を表示する場合を示している。ユーザは、表示されたフレンドカードＧ１の中から１つのフレンドカードＧ１を選択する（例えば１つのフレンドカードＧ１に対してタッチ操作を行う等）ことで、フレンド登録をするゲーム装置１００を選択することができる。
【００９１】
この様に、複数台のゲーム装置１００のフレンド情報を受信した場合でも、ユーザは、キャラクタＧ４及びユーザ名Ｇ５等のフレンド情報を確認しながら、フレンド登録するゲーム装置１００を選択することができる。このため、ゲーム装置１００は、自装置の近距離無線通信可能範囲に、フレンド登録を希望するゲーム装置１００以外の別のゲーム装置１００が有る場合でも、誤って別のゲーム装置１００をフレンド登録することなく正確に希望のゲーム装置１００をフレンド登録することができる。
【００９２】
なお、ビーコンの信号強度が強かった順番で昇順に又は降順に、フレンドカードＧ１を並べて表示してもよい。これによって、ユーザは、フレンド登録を希望するゲーム装置１００を更に正確に特定することができるため、正確に希望のゲーム装置１００をフレンド登録することができる。
【００９３】
以下に、図８を用いて、近距離無線通信によってフレンド登録が行われた際にゲーム装置１００に表示される画面を説明する。図８は、フレンド登録指示を受け付けたときに上側ＬＣＤ２２及び下側ＬＣＤ１２に表示される画面の一例を示す図である。上側ＬＣＤ２２には、フレンド登録されたゲーム装置１００のフレンドカードＧ１が表示される。このフレンドカードＧ１に表示されるフレンド情報の内容は、図６の上側ＬＣＤ２２に表示されるフレンドカードＧ１の内容とほぼ同じである。もっとも、アプリケーション名Ｇ９、及びアイコンＧ１０については、図８で示すフレンドカードＧ１には表示されない。
【００９４】
下側ＬＣＤ１２には、フレンド登録が成功したことを示すテキストＧ１３が表示される。
【００９５】
次に、図９、図１０Ａ〜Ｃを用いて、ゲーム装置１００が、メインメモリ３２に記憶する各種プログラムや各種データについて説明する。
【００９６】
図９は、メインメモリ３２が記憶するプログラム及び各種データの一例を示す図である。各種データはプログラムをゲーム装置１００が実行することに応じて記憶される。メインメモリ３２は、プログラムを記憶するためのプログラム記憶領域３２１、データを記憶するデータ記憶領域３２２、及びフレーム記憶領域３２３を有する。
【００９７】
プログラム記憶領域３２１には、ゲーム装置１００のＣＰＵ３１１に通信処理を実行させるための通信プログラムＰ１、ゲーム装置１００にフレンド管理処理を実行させるためのフレンドリストアプリケーションＰ２、及びその他のアプリケーションＰ３が少なくとも記憶されている。通信処理とは、無線通信モジュール３６を用いて、アクセスポイント２００に自動的に接続してアクセスポイント２００を介してサーバ４００との間で情報を送受信する処理、及び他の情報処理装置１００とすれちがい通信を行う処理を含む。また、フレンド管理処理とは、ユーザに自機のフレンドであるゲーム装置１００のフレンド情報を表示するための処理、及び他のゲーム装置１００をフレンド登録しかつ他のゲーム装置１００に自機をフレンド登録させるための処理であるフレンド登録処理を含む。
【００９８】
データ記憶領域３２２は、ユーザ情報Ｄ１、フレンドリストテーブルＤ２、フレンド候補リストテーブルＤ３、通信レベルテーブルＤ４、キャラクタ画像Ｄ５、アプリケーション名Ｄ６、アイコン画像Ｄ７、及びお気に入りアプリ情報Ｄ８等が記憶されている。
【００９９】
ユーザ情報Ｄ１は、フレンドアプリケーションの実行時にユーザから入力されたユーザに関連する情報である。ユーザ情報Ｄ１は、例えば、ユーザ名、ユーザのフレンドコード、お気に入りアプリケーションのアプリＩＤ、実行中のアプリケーションのアプリＩＤ、ユーザに対応する（例えばユーザに作成された）キャラクタ情報、ユーザに作成されたメッセージ等を含む。なお、アプリＩＤとは、アプリケーションに固有の識別情報である。なお、このユーザ情報Ｄ１は、サーバ４００にユーザ登録を要求する際に、アクセスポイント２００及びネットワーク３００を介してサーバ４００に送信され、管理テーブルＤ１０（図５を参照）に登録される。また、ユーザ情報Ｄ１は、フレンド登録処理において他のゲーム装置１００に対して送信される。他のゲーム装置１００に受信されたときに、ユーザ情報Ｄ１は、自機のフレンド情報として他のゲーム装置１００のフレンドリストテーブルＤ２に記憶される。
【０１００】
フレンドテーブルＤ２は、フレンドであるゲーム装置１００の装置ＩＤと、フレンド情報とを互いに対応付けて登録するためのテーブルである。図１０Ａは、フレンドテーブルＤ２の一例を示す図である。なお、このフレンドテーブルＤ２に登録されるフレンド情報の種類は、上述したユーザ情報Ｄ１と同じである（他のゲーム装置１００から受信したユーザ情報Ｄ１のユーザＩＤがフレンドＩＤとして管理され、ユーザ名がフレンド名として管理される）。また、フレンドテーブルＤ２には、フレンドであるゲーム装置１００の通信接続状態（オンラインかオフラインか）を示す接続状態情報が装置ＩＤに対応付けて登録される。この接続状態情報は、サーバ４００から受信する、フレンドであるゲーム装置１００の接続状態情報に基づいて更新される。なお、サーバ４００は、ゲーム装置１００がサーバ４００にログインしたとき、及びゲーム装置１００のフレンドであるゲーム装置１００の通信接続状態が変化したと判断したときに、当該ゲーム装置１００のフレンドであるゲーム装置１００の接続状態情報を当該ゲーム装置１００に送信する。
【０１０１】
フレンド候補リストテーブルＤ３は、フレンド登録処理において、フレンド登録可能なゲーム装置１００の装置ＩＤ（フレンドＩＤ）と、フレンド情報（フレンド名、フレンドコード、キャラクタ情報）とを互いに対応付けて一時的に登録するためのテーブルである。図１０Ｂは、フレンド候補リストテーブルＤ３の一例を示す図である。なお、このフレンド候補リストテーブルＤ３に装置ＩＤが登録されているゲーム装置１００は、近距離無線通信によって装置ＩＤを含むビーコンを自機と交換し合い、かつこのビーコンの信号強度が通信状態条件に合致しているものである。
【０１０２】
通信レベルテーブルＤ４は、無線通信モジュール３６で受信する信号強度を複数段階（例えば、４段階）に分け、このそれぞれの段階に対応する通信レベルを定義したテーブルである。図１０Ｃは、通信レベルテーブルＤ４の一例を示す図である。ゲーム装置１００は、フレンド登録処理において、装置ＩＤを含むビーコンを受信したときに、通信レベルテーブルＤ４を参照して、このビーコンの信号強度に対応する通信レベルを取得する。そして、ゲーム装置１００は、この通信レベルを用いて、ビーコンの信号強度が通信状態条件を満たすかを判断する。
【０１０３】
キャラクタ画像Ｄ５は、フレンドリストテーブルＤ２に登録されているキャラクタ情報又はユーザ情報Ｄ１に含まれるキャラクタ情報に対応するキャラクタを生成するための画像データである。
【０１０４】
アプリケーション名Ｄ６は、アプリＩＤに対応付けて記憶されており、このアプリＩＤに対応するアプリケーションの名称を示すデータである。アイコン画像Ｄ７は、アプリＩＤに対応付けて記憶されており、このアプリＩＤに対応するアイコンを表す画像データである。
【０１０５】
お気に入りアプリ情報Ｄ８は、フレンドリストテーブルＤ２に登録されているフレンドＩＤに対応するアプリＩＤを示す。お気に入りアプリ情報Ｄ８は、フレンドリストテーブルＤ２に登録されているアプリＩＤに対応するアプリケーション名Ｄ６及びアイコン画像Ｄ７がないときに参照される。すなわち、お気に入りアプリ情報Ｄ８は、対応するアプリケーション名Ｄ６及びアイコン画像Ｄ７がメインメモリ３２に記憶されているアプリＩＤのうち、フレンドリストテーブルＤ２において最新に更新されたアプリＩＤを示す。
【０１０６】
フレーム記憶領域３２３は、他のゲーム装置１００から受信した通信フレーム又は他のゲーム装置１００に送信する通信フレームを記憶するための領域である。
【０１０７】
なお、上記Ｄ１〜Ｄ７は、例えばデータ保存用内部メモリ３５やデータ保存用外部メモリ４５から読み出されてメインメモリ３２に記憶される。
【０１０８】
以下に、図１１を用いて、サーバ４００で記憶する管理テーブルＤ１０を説明する。図１１は、管理テーブルＤ１０の一例を示す図である。管理テーブルＤ１０は、通信システム１を構成する各ゲーム装置１００にフレンド登録されているゲーム装置１００を管理するためのテーブルである。管理テーブルＤ１０には、各ゲーム装置１００の装置ＩＤ、この装置ＩＤに対応するユーザ情報Ｄ１（ユーザ名、フレンドコード、お気に入りアプリＩＤ、実行中アプリＩＤ、キャラクタ情報、メッセージ）、接続状態情報、ログイン判定用フラグ、及びフレンドＩＤが登録されている。なお、管理テーブルＤ１０に装置ＩＤが登録されているゲーム装置１００は、通信システム１を構成する全てのゲーム装置１００ではなく、このゲーム装置１００のうちユーザ登録を要求したゲーム装置１００のみである。
【０１０９】
装置ＩＤとユーザ情報Ｄ１とは、ユーザ登録を要求する際にゲーム装置１００から送信され、サーバ４００で受信して登録されている。そして、接続状態情報は、ゲーム装置１００がオンライン及びオフラインのうち何れの通信接続状態であるかを示す。この接続状態情報は、ゲーム装置１００から受信したオンライン通知に基づいて更新される。なお、ゲーム装置１００は、アクセスポイント２００に接続されている期間に所定周期毎に、自機がオンラインであることを通知するためのオンライン通知を送信する。具体的には、接続状態情報は、ゲーム装置１００からオンライン通知を受信したときにオンラインを示すように更新され、オンライン通知の受信がないときにはオフラインを示すように更新される。なお、オンライン通知の受信がないときに直ぐに更新するのではなく、オンライン通知を受信してから、所定期間受信がないときにのみ更新してもよい。また、サーバ４００がゲーム装置１００に対してオンライン通知を送信するように要求し、これに対してゲーム装置１００から応答が無いような場合に、当該ゲーム装置１００をオフラインと判断してもよい。また、オンライン通知はゲーム装置１００固有の識別情報でもよいし、その他の情報であってもよい。
【０１１０】
ログイン判定用フラグはオンライン通知を受信したときにログイン中かログオフ中かを判定するためのフラグであり、ログイン判定用フラグがオフのときに、ログイン中であるとサーバ４００によって判定される。また、ログイン判定用フラグがオンのときに、ログオフ中であるとサーバ４００によって判定される。
【０１１１】
フレンドＩＤは、装置ＩＤに対応するゲーム装置１００において、フレンド登録されているゲーム装置１００の装置ＩＤである。ゲーム装置１００は、サーバ４００からの要求に応じて、自機のフレンドリストテーブルＤ２に登録されているフレンドＩＤをサーバ４００に送信する。サーバ４００は、受信したフレンドＩＤで管理テーブルＤ１０を更新する。
【０１１２】
以下に、図１２を用いて、ＣＰＵ３１１が実行する通信処理の一例について説明する。なお、図１２のフローチャートは単なる一例に過ぎない。従って、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。後述の図１３〜図１８、図２１、図２２及び図２４のフローチャートについても同様である。
【０１１３】
図１２は、通信処理の一例を示すフローチャートである。本通信処理は、ゲーム装置１００の電源がオンされたときに、無線通信モジュール３６を用いて実行開始される。まず、ＣＰＵ３１１は、今回の処理が通信処理の開始から初回の処理であるかを判定する（Ｓ１）。今回の処理が通信処理の開始から初回の処理であると判定したときには（Ｓ１でＹＥＳ）、ＣＰＵ３１１は、接続可能なアクセスポイント２００を自動的に検索する（Ｓ２）。具体的には、アクセスポイント２００から送信されるビーコンの受信の試みを近距離無線を利用して自動的に行う。ただし、既に接続可能なアクセスポイントが見つかっている場合は（もしくは、アクセスポイントに接続中は）、アクセスポイントの検索を行わないようにしてもよい。そして、ＣＰＵ３１１は、接続可能なアクセスポイント２００が存在したかどうかを判断する（Ｓ３）。例えば、アクセスポイント２００からのビーコンを受信したか否かを判断する。ここで、接続可能なアクセスポイント２００が存在したと判断したときには（Ｓ３でＹＥＳ）、ＣＰＵ３１１は作動中であればタイマを停止させる（Ｓ４）。なお、ＣＰＵ３１１はタイマを作動中でなければ本ステップにおいて何ら処理を行わない。そして、ＣＰＵ３１１は、サーバ４００との間で情報を送受信するための処理（サーバとの通信処理）を実行する（Ｓ５）。なお、サーバとの通信処理についての詳細は図１３を用いて後述する。この後、ＣＰＵ３１１は電源オフの指示がユーザから入力されたかを判断し（Ｓ６）、入力されたと判断したときには（Ｓ６でＹＥＳ）、自機の電源オフをサーバ４００に通知するための電源オフ情報をサーバ４００に送信する（Ｓ７）。この後、ＣＰＵ３１１は通信処理を終了させる。また、電源オフの指示がユーザから入力されていないと判断したときには（Ｓ６でＮＯ）、ＣＰＵ３１１は処理をステップＳ１に戻す。なお、ステップＳ１〜Ｓ６、後述のステップＳ８〜Ｓ１１までの処理は、電源オフの指示がユーザから入力されたと判定されるまで、所定周期毎（例えば１／６０ｓｅｃ毎等の短い周期で）に繰り返し実行される。
【０１１４】
次に、ステップＳ３でＮＯと判断されたときの処理について説明する。接続可能なアクセスポイント２００が存在しないと判断したときには（Ｓ３でＮＯ）、ＣＰＵ３１１はタイマを作動していなければタイマを作動し（計時処理を開始し）、タイマを作動しているときにはタイマをリセットしてタイマのカウント値を初期値に戻す（Ｓ８）。そして、ＣＰＵ３１１はすれちがい通信処理を実行する（Ｓ９）。これによって、アクセスポイント２００に接続不可能なときには、すれちがい通信処理が実行されることになる。
【０１１５】
すれちがい通信処理の内容は次のようなものである。すなわち、ゲーム装置１００が近距離無線通信によってビーコンをブロードキャストで送信する。ゲーム装置１００は、ビーコンを受信した他のゲーム装置１００から接続要求を受けたときに、当該他のゲーム装置１００に接続応答を送信する。この後、ゲーム装置１００は、他のゲーム装置１００と通信を確立して、所定の情報の送受信を行う。この所定の情報とは、例えば、上述したユーザ情報Ｄ１であり、これによって、ゲーム装置１００に自機がすれちがったゲーム装置１００のユーザ情報Ｄ１を取得させることができる。なお、ゲーム装置１００が、他のゲーム装置１００からビーコンを受信したときには、他のゲーム装置１００に対して接続要求を送信して、この後、接続要求を受信した他のゲーム装置１００から接続応答を受信することになる。
【０１１６】
ＣＰＵ３１１は、ステップＳ９のすれちがい通信処理を実行した後に、上述のステップＳ６を実行する。
【０１１７】
次に、ステップＳ１でＮＯと判断されたときの処理について説明する。今回の処理が通信処理の開始から初回の処理ではないと判定したときには（Ｓ１でＮＯ）、ＣＰＵ３１１はタイマを作動中か否かを判断する（Ｓ１０）。なお、このタイマは、接続可能なアクセスポイント２００が存在しないときに、ステップＳ８の実行によって作動される。そして、タイマを作動中でないと判断したときには（Ｓ１０でＮＯ）、ＣＰＵ３１１は後述のステップＳ２に処理を進めて、アクセスポイント２００を自動的に検索する処理を実行する。一方、タイマを作動中であると判断したときには（Ｓ１０でＹＥＳ）、ＣＰＵ３１１はタイマが時間ｔ１の経過を示すか否かを判断する（Ｓ１１）。
【０１１８】
そして、タイマが時間ｔ１の経過を示したときには（Ｓ１１でＹＥＳ）、ＣＰＵ３１１は後述のステップＳ２に処理を進めて、アクセスポイント２００を自動的に検索する処理を実行する。また、タイマが時間ｔ１の経過を示していないときには（Ｓ１１でＮＯ）、ＣＰＵ３１１は、アクセスポイント２００を自動的に検索する処理（Ｓ２）を実行せずに、上記ステップＳ９に処理を進めてすれちがい通信処理を実行する。これによって、ゲーム装置１００は、接続可能なアクセスポイント２００が検索できなかったときには、このときから時間ｔ１が経過するまでは、アクセスポイント２００を検索する処理を行わず、すれちがい通信処理を行う。
【０１１９】
次に、図１３を用いて、上記ステップＳ５におけるサーバとの通信処理を説明する。図１３は、サーバとの通信処理の一例を示すフローチャートである。なお、図１３においては、フレンドであるゲーム装置１００を「フレンド」と単に記載する。まず、ＣＰＵ３１１は、今回の処理が通信処理の開始から初回の処理であるかを判定する（Ｓ２１）。ここで、今回の処理が通信処理の開始から初回の処理であると判定したときに（Ｓ２１でＹＥＳ）、ＣＰＵ３１１はフレンドリストテーブルＤ２に登録されている全ての装置ＩＤに対応する接続状態情報を、オフラインを示すように更新する（Ｓ２２）。この後、ＣＰＵ３１１は、ステップＳ２３に処理を進める。一方、今回の処理が通信処理の開始から初回の処理ではないと判定したときには（Ｓ２１でＮＯ）、ＣＰＵ３１１はステップＳ２２を実行することなく処理をステップＳ２３に進める。
【０１２０】
ステップＳ２３において、ＣＰＵ３１１は、自機の装置ＩＤを含めたオンライン通知をサーバに送信する。そして、ＣＰＵ３１１は、サーバ４００からフレンドＩＤの送信要求を受信したときに（図１４を用いて後述するサーバ側通信処理におけるステップＳ４９又はＳ５６においてサーバ４００から送信される）、フレンドリストテーブルＤ２に登録されている全てのフレンドＩＤを含めた情報をサーバ４００に送信する（Ｓ２４）。この後、ＣＰＵ３１１は、フレンドリスト更新用情報を受信したかどうかを判断する（Ｓ２５）。このフレンドリスト更新用情報は、図１４を用いて後述するサーバ側通信処理におけるステップＳ５３でサーバ４００から送信される情報である。このフレンドリスト更新用情報は、ゲーム装置１００がサーバ４００に対してログインしたときにのみ受信する。なお、フレンドリスト更新用情報は、自機のフレンドである全てのゲーム装置１００の装置ＩＤ、当該装置ＩＤに対応するユーザ情報Ｄ１（すなわち、フレンド情報）、当該装置ＩＤに対応する接続状態情報を含む情報である。フレンドリスト更新用情報を受信したと判断したときには（Ｓ２５でＹＥＳ）、ＣＰＵ３１１は後述のステップＳ２７に処理を進める。なお、フレンドリスト更新用情報を受信したときに、図１７を用いて後述するステップＳ１０３及びＳ１０４を実行してもよい。具体的には、自装置に記憶しているフレンドリストテーブルＤ２を参照して、登録されていないフレンド情報等があるかどうかを判断する。そして、登録されていないフレンド情報があると判断したときには、ＣＰＵ３１１はフレンドリストテーブルＤ２に登録されていないフレンド情報等をサーバ４００から取得するための処理を行う。なお、フレンドリストテーブルＤ２に登録されていないフレンド情報とは、例えば、次のようなものである。フレンドであるユーザが、ユーザ情報Ｄ１を入力するときに、例えば、お気に入りアプリケーション名だけを入力しない等、一部の情報を入力せず、後になって追加して入力する可能性がある。このような一部の情報が、登録されていないフレンド情報である。
【０１２１】
一方、フレンドリスト更新用情報を受信していないと判断したときには（Ｓ２５でＮＯ）、ＣＰＵ３１１は通信接続状態の変更通知を受信したかどうかを判断する（Ｓ２６）。この通信接続状態の変更通知は、図１４を用いて後述するサーバ側通信処理におけるステップＳ５４又はＳ７１においてサーバ４００から送信される情報である。この通信接続状態の変更通知は、自機のフレンドとなるゲーム装置１００の通信接続状態が変更されたときに、サーバ４００から送信される情報であり、自機のフレンドとなるゲーム装置１００の装置ＩＤと、この装置ＩＤに対応する接続状態情報を含む。そして、通信接続状態の変更通知を受信したと判断したときには（Ｓ２６でＹＥＳ）、ＣＰＵ３１１は後述のステップＳ２７に処理を進める。
【０１２２】
次にステップＳ２７の処理について説明する。本ステップにおいては、ＣＰＵ３１１はステップＳ２５又はＳ２６で受信したと判断された情報を用いて、フレンドリストテーブルＤ２に登録されている内容を更新する（Ｓ２７）。例えば、フレンドリスト更新用情報を受信したときには、ＣＰＵ３１１はこの最新の内容でフレンドリストテーブルＤ２のフレンドＩＤ、フレンド情報及び接続状態情報等を更新する。これによって、ゲーム装置１００は、自機がオフラインの期間に行われた自機のフレンドであるゲーム装置１００のフレンド情報の変更を自機のフレンドリストテーブルＤ２に反映させることができる。
【０１２３】
なお、フレンドリストテーブルＤ２のお気に入りアプリＩＤを更新するときに、更新後のアプリＩＤに対応するアプリケーション名Ｄ６及びアイコン画像Ｄ７がメインメモリ３２に記憶されているかどうかを判断し、記憶されているときに限って、このアプリＩＤでお気に入りアプリ情報Ｄ８を更新する。ここで、お気に入りアプリ情報Ｄ８はフレンドＩＤに対応する数だけフレンドＩＤに対応付けて記憶されているので、お気に入りアプリＩＤが更新されたフレンドＩＤのお気に入りアプリ情報Ｄ８が更新される。これによって、お気に入りアプリ情報Ｄ８は、対応するアプリケーション名Ｄ６及びアイコン画像Ｄ７が記憶されているアプリＩＤのうち、最新のアプリＩＤを示すものとなる。このため、フレンドリストテーブルＤ２に登録されているお気に入りアプリＩＤに対応するアイコン画像Ｄ６及びアイコン画像Ｄ７が存在しないときには、お気に入りアプリ情報Ｄ８を用いてアプリケーション名Ｄ６及びアイコン画像Ｄ７を取得して表示することができる。
【０１２４】
そして、ＣＰＵ３１１は、ステップＳ２７において、通信接続状態がオフラインからオンラインに更新されたゲーム装置１００（フレンドであるゲーム装置１００）があるかどうかを判断する（Ｓ２８）。ここで、通信接続状態がオフラインからオンラインに更新されたフレンドであるゲーム装置１００があると判断したときには（Ｓ２８でＹＥＳ）、ＣＰＵ３１１はランプ点灯処理を行う（Ｓ２９）。このランプ点灯処理とは、ＬＥＤ１６Ｃ（図２を参照）を例えば朱色に点灯させる処理である。この処理によって、オフラインからオンラインに変化したゲーム装置１００（フレンドであるゲーム装置１００）があることをユーザに対して報知することができる。なお、本実施形態では、通信接続状態がオンラインからオフラインに更新されたときにはランプ点灯処理をおこなわないが、おこなってもよい。この後、ＣＰＵ３１１はステップＳ３０に処理を進める。一方、通信接続状態がオフラインからオンラインに更新されたフレンドであるゲーム装置１００がないと判断したときには（Ｓ２８でＮＯ）、ＣＰＵ３１１はステップＳ２９を実行せずに処理をステップＳ３０に進める。
【０１２５】
次にステップＳ２６でＮＯと判断されたときの処理を説明する。通信接続状態の変更通知を受信していないと判断したときには（Ｓ２６でＮＯ）、ＣＰＵ３１１は上述したステップＳ２７〜Ｓ２９の処理を実行せずにステップＳ３０に処理を進める。
【０１２６】
続いて、ステップＳ３０の処理を説明する。ＣＰＵ３１１はログインの成功通知を受信したかどうかを判断する（Ｓ３０）。なお、このログインの成功通知は、ゲーム装置１００のサーバ４００へのログインの成功の通知であり、図１４を用いて後述するサーバ側通信処理におけるステップＳ５５において、サーバ４００からゲーム装置１００に対して送信される。そして、ログインの成功通知を受信したと判断したときには（Ｓ３０でＹＥＳ）、ＣＰＵ３１１はログインの成功をユーザに報知するための処理を行う（Ｓ３１）。例えば、ＣＰＵ３１１はログインの成功を上側ＬＣＤ２２（図２を参照）又は下側ＬＣＤ１２（図２を参照）に表示する。この後、ＣＰＵ３１１は処理をステップＳ３２に進める。一方、ログインの成功通知を受信していないと判断したときには（Ｓ３０でＮＯ）、ＣＰＵ３１１は上記ステップＳ３１を実行することなく処理をステップＳ３２に進める。
【０１２７】
ステップＳ３２においては、ＣＰＵ３１１はフレンド情報変更通知を受信したかどうかを判断する（Ｓ３２）。ここで、フレンド情報変更通知を受信したと判断したときには（Ｓ３２でＹＥＳ）、ＣＰＵ３１１はフレンド情報変更通知に含められるフレンドＩＤ、フレンド情報等でフレンドリストテーブルＤ２を更新する（Ｓ３３）。このフレンド情報変更通知は、図１５におけるステップＳ６１においてサーバ４００から送信される。フレンド情報変更通知は、ゲーム装置１００からユーザ情報の変更を受信したサーバ４００が、ゲーム装置１００のフレンドであるゲーム装置１００に対して当該ユーザ情報（すなわちフレンド情報）の変更を通知するものである。なお、お気に入り情報Ｄ８についても、ステップＳ２７で記載したような方法で適宜更新される。この後、ＣＰＵ３１１は本サーバとの通信処理を終了させて図１２のステップＳ６に処理を進める。一方、フレンド情報変更通知を受信していないと判断したときには（Ｓ３２でＮＯ）、ＣＰＵ３１１は、上記ステップＳ３３を実行せずに、本サーバとの通信処理を終了させて図１２のステップＳ６に処理を進める。
【０１２８】
以下、図１４及び図１５を用いて、サーバ４００（図５のＣＰＵ４０６）が実行するサーバ側通信処理を説明する。図１４及び図１５は、サーバ側通信処理の一例を示すフローチャートである。サーバ側通信処理は、ＣＰＵ４０６がＲＡＭ４０５に記憶されている通信プログラム（図略）を実行することで行われる。このサーバ側通信処理は、所定周期毎に繰り返し実行される。
【０１２９】
まず、ＣＰＵ４０６は、管理テーブルＤ１０（図１１を参照）に登録されているゲーム装置１００（ユーザ登録されているゲーム装置１００）から１台のゲーム装置１００を選択する（Ｓ４１）。なお、ゲーム装置１００の選択は、装置ＩＤを選択することで行われる。次に、ＣＰＵ４０６は、選択したゲーム装置１００に対応する電源オフ情報を受信したかどうか（選択した装置ＩＤを含む電源オフ情報を受信したかどうか）を判断する（Ｓ４２）。この電源オフ情報は、図１２のステップＳ７において、ゲーム装置１００から送信される情報であり、これに代えてオフラインに変更する旨の情報やこのゲーム装置１００の装置ＩＤであってもよい。ここで、選択したゲーム装置１００に対応する電源オフ情報を受信していないと判断したときには（Ｓ４２でＮＯ）、ＣＰＵ４０６は、選択したゲーム装置１００からオンライン通知を受信したかどうか（選択した装置ＩＤを含むオンライン通知を受信したかどうか）を判断する（Ｓ４３）。なお、オンライン通知は、図１３におけるステップＳ２３において、ゲーム装置１００から送信され、このゲーム装置１００の装置ＩＤを含む。
【０１３０】
そして、選択したゲーム装置１００からオンライン通知を受信したと判断したときには（Ｓ４３でＹＥＳ）、ＣＰＵ４０６は選択したゲーム装置１００の通信接続状態がオンラインであると判断する（Ｓ４４）。そして、ＣＰＵ４０６は、管理テーブルＤ１０における選択した装置ＩＤに対応するログイン判定用フラグがオンかどうかを判断する（Ｓ４５）。なお、ログイン判定用フラグがオンであるときは、現在ログオフ中であり、ログイン判定用フラグがオフのときには、現在ログイン中である。ここで、ログイン判定用フラグがオンである（現在ログオフ中である）と判断したときには（Ｓ４５でＹＥＳ）、ＣＰＵ４０６は、選択したゲーム装置１００について所定のログイン条件を満たすかどうかを判断する（Ｓ４６）。所定のログイン条件とは、例えば、選択したゲーム装置１００のユーザが不正なユーザとして登録されていないこと等である。
【０１３１】
そして、選択したゲーム装置１００について所定のログイン条件を満たさないと判断したときに（Ｓ４６でＮＯ）、ＣＰＵ４０６は、後述のステップＳ５９に処理を進める。また、選択したゲーム装置１００について所定のログイン条件を満たすと判断したときに（Ｓ４６でＹＥＳ）、ＣＰＵ４０６は、管理テーブルＤ１０における選択した装置ＩＤに対応するログイン判定用フラグをオフにすることで、選択したゲーム装置１００をログインさせる（Ｓ４７）。この後、ＣＰＵ４０６は、管理テーブルＤ１０における選択した装置ＩＤに対応する接続状態情報を、オンラインを示すように変更する（Ｓ４８）。なお、本実施例ではログイン判定用フラグを用いたが、これを用いない態様でもよい。例えば、ログイン条件を満たしていると判断した場合に、管理テーブルの接続状態情報を更新してもよい。そして、ＣＰＵ４０６は、選択したゲーム装置１００に対してフレンドＩＤの送信要求を行い、この要求に応えたゲーム装置１００からフレンドＩＤを受信する（Ｓ４９）。なお、このフレンドＩＤは、図１３におけるステップＳ２４において、ゲーム装置１００から送信されるものである。
【０１３２】
そして、ＣＰＵ４０６は、ステップＳ４９において受信したフレンドＩＤが管理テーブルＤ１０に登録されているフレンドＩＤと異なるかどうかを判断し（Ｓ５０）、異なると判断したときには（Ｓ５０でＹＥＳ）、このフレンドＩＤで選択した装置ＩＤに対応するフレンドＩＤを更新する（Ｓ５１）。この後、ＣＰＵ４０６は後述のステップＳ５２を実行する。一方、受信したフレンドＩＤが管理テーブルＤ１０に登録されているフレンドＩＤと同じであると判断したときには（Ｓ５０でＮＯ）、ＣＰＵ４０６はステップＳ５１を実行せずに後述のステップＳ５２を実行する。
【０１３３】
ステップＳ５２において、ＣＰＵ４０６は、選択した装置ＩＤと、この装置ＩＤ（フレンドＩＤ）に対応するユーザ情報Ｄ１（フレンド名、フレンドコード、お気に入りアプリＩＤ，実行中アプリＩＤ、キャラクタ情報、メッセージ及び接続状態情報）をフレンド情報として含めたフレンドリスト更新用情報を生成する。この後、ＣＰＵ４０６は、フレンドリスト更新用情報をゲーム装置１００に送信する（Ｓ５３）。また、ＣＰＵ４０６は、選択したゲーム装置１００のフレンドであるゲーム装置１００に対して、フレンド通信接続状態の変更通知を送信する（Ｓ５４）。このフレンド通信接続状態の変更通知は、選択したゲーム装置１００の接続状態情報がオフラインからオンラインに変化したことを通知するためのものである。なお、このフレンド通知状態の変更通知は、図１３におけるステップＳ２６において、ゲーム装置１００によって受信される。そして、ＣＰＵ４０６は、ログインの成功通知を選択したゲーム装置１００に対して送信する（Ｓ５５）。この後、ＣＰＵ４０６は、後述のステップＳ５９を実行する。
【０１３４】
次に、ログイン判定用フラグがオフであると判断したとき（Ｓ４５でＮＯ）の処理を説明する。このときには、ＣＰＵ４０６は、選択したゲーム装置１００に対してフレンドＩＤの送信要求を行い、この要求に応えたゲーム装置１００からフレンドＩＤを受信する（Ｓ５６）。なお、このフレンドＩＤは、図１３におけるステップＳ２４において、ゲーム装置１００から送信されるものである。
【０１３５】
そして、ＣＰＵ４０６は、ステップＳ４９において受信したフレンドＩＤが管理テーブルＤ１０に登録されているフレンドＩＤと異なるかどうかを判断し（Ｓ５７）、異なると判断したときには（Ｓ５７でＹＥＳ）、このフレンドＩＤで管理テーブルＤ１０における選択した装置ＩＤに対応するフレンドＩＤを更新する（Ｓ５８）。この後、ＣＰＵ４０６は後述のステップＳ５９を実行する。一方、受信したフレンドＩＤが管理テーブルＤ１０に登録されているフレンドＩＤと同じであると判断したときには（Ｓ５７でＮＯ）、ＣＰＵ４０６はステップＳ５８を実行せずに後述のステップＳ５９を実行する。
【０１３６】
次に、ステップＳ５９の処理を説明する。ＣＰＵ４０６は、選択したゲーム装置１００からユーザ情報変更通知を受信したかどうかを判断する（Ｓ５９）。なお、ユーザ情報変更通知は、ゲーム装置１００に登録されているユーザ情報Ｄ１が変更されたときに、当該ゲーム装置１００からサーバ４００に送信される情報である。このユーザ情報変更通知は、図１７を用いて後述するフレンド管理処理のステップＳ９８においてゲーム装置１００から送信される。ここで、選択したゲーム装置１００からユーザ情報変更通知を受信していないと判断したときには（Ｓ５９でＮＯ）、ＣＰＵ４０６は、後述のステップＳ６２を実行する。一方、選択したゲーム装置１００からユーザ情報変更通知を受信したと判断したときには（Ｓ５９でＹＥＳ）、ＣＰＵ４０６は、受信したユーザ情報変更通知に基づいて、管理テーブルＤ１０における選択した装置ＩＤに対応するユーザ情報Ｄ１を更新する（Ｓ６０）。そして、ＣＰＵ４０６は、管理テーブルＤ１０を参照して、ユーザ情報変更通知の送信元のゲーム装置１００のフレンドＩＤを取得し、このフレンドＩＤのゲーム装置１００に対して更新後のユーザ情報Ｄ１を含めたフレンド情報変更通知を送信する（Ｓ６１）。なお、フレンド情報変更通知は、図１３におけるステップＳ３２においてゲーム装置１００によって受信される。
【０１３７】
そして、ＣＰＵ３１１は、選択したゲーム装置１００から情報送信要求を受信したかどうかを判断する（Ｓ６２）。この情報送信要求は、ゲーム装置１００が、フレンド情報を表示する際に、自機に記憶していないフレンド情報や、アプリケーション名Ｄ６、アイコン画像Ｄ７の送信をサーバ４００に要求するための情報である。この情報送信要求は、図１７を用いて後述するフレンド管理処理のステップＳ１０４において送信される。ここで、選択したゲーム装置１００から情報送信要求を受信したと判断したときには（Ｓ６２でＹＥＳ）、ＣＰＵ３１１は送信を要求されている情報をゲーム装置１００に対して送信する（Ｓ６３）。なお、サーバ４００には、通信システム１で使用される全てのアプリＩＤに対応するアプリケーション名Ｄ６及びアイコン画像Ｄ７が記憶されている。この後、ＣＰＵ３１１は後述のステップＳ６４を実行する。一方、選択したゲーム装置１００から情報送信要求を受信していないと判断したときには（Ｓ６２でＮＯ）、ＣＰＵ３１１上記ステップＳ６３を実行することなく後述のステップＳ６４を実行する。
【０１３８】
そして、ＣＰＵ３１１は、ユーザ登録されている全てのゲーム装置１００について（管理テーブルＤ１０に登録されている全ての装置ＩＤについて）、上記ステップＳ４２の判断を行ったかどうかを判断する（Ｓ６４）。そして、ユーザ登録されている全てのゲーム装置１００について上記ステップＳ４２の判断を行っていないと判断したときには（Ｓ６４でＮＯ）、ＣＰＵ４０６は、ステップＳ４１に処理を戻す。なお、ステップＳ４１では、未だステップＳ４２の判断が行われておらず、ユーザ登録されているゲーム装置１００が新たに選択される。一方、ユーザ登録されている全てのゲーム装置１００について上記ステップＳ４２の判断を行っていると判断したときには（Ｓ６４でＹＥＳ）、ＣＰＵ４０６は、ユーザ登録要求をゲーム装置１００から受信したかどうかを判断する（Ｓ６５）。なお、ユーザ登録要求は、管理テーブルＤ１０に装置ＩＤ及びユーザ情報Ｄ１等の登録を要求する情報であり、図１７を用いて後述するフレンド管理処理におけるステップＳ９３においてゲーム装置１００から送信される。
【０１３９】
そして、ユーザ登録要求をゲーム装置１００から受信したと判断したときには（Ｓ６５でＹＥＳ）、ＣＰＵ４０６は、ユーザ登録要求の送信元のゲーム装置１００をユーザ登録するためのユーザ登録処理を行う（Ｓ６６）。ユーザ登録処理とは、ユーザ登録要求に含まれる、装置ＩＤ及びユーザ情報Ｄ１等を管理テーブルＤ１０に登録する処理である。この後、ＣＰＵ４０６は本サーバ側通信処理を終了させる。一方、ユーザ登録要求をゲーム装置１００から受信していないと判断したときには（Ｓ６５でＮＯ）、ＣＰＵ４０６は、上記ステップＳ６６を実行することなく、本サーバ側通信処理を終了させる。
【０１４０】
続いて、ステップＳ４２でＹＥＳ、及びステップＳ４３でＮＯと判断されたときに処理を説明する。選択したゲーム装置１００に対応する電源オフ情報を受信したと判断したとき（Ｓ４２でＹＥＳ）、または選択したゲーム装置１００からオンライン通知を受信していないと判断したときには（Ｓ４３でＮＯ）、ＣＰＵ４０６は選択したゲーム装置１００をオフラインであると判断する（Ｓ６７）。なお、本実施形態では、オンライン通知を受信していないと判断したときに、直にオフラインであると判断しているが、この構成に代えて、一定期間オンライン通知を受信していないと判断したときに、オフラインであると判断してもよい。また、オンライン通知を受信していないと判断したときに、サーバ４００がオンライン通知の送信をゲーム装置１００に対して要求し、この要求に応じたゲーム装置１００からオンライン通知を受信がなかったときにのみ、オフラインであると判断してもよい。さらに、ゲーム装置１００から自己をオフラインに変更する旨の情報を受信した場合に、オフラインであると判断してもよい。
【０１４１】
そして、ＣＰＵ４０６は、選択した装置ＩＤに対応するログイン判定用フラグがオンかどうかを、管理テーブルＤ１０を参照して判断する（Ｓ６８）。そして、選択した装置ＩＤに対応するログイン判定用フラグがオフである（現在ログイン中である）と判断したときには（Ｓ６８でＹＥＳ）、ＣＰＵ４０６は管理テーブルＤ２０における選択した装置ＩＤに対応するログイン判定用フラグをオンに更新する（Ｓ６９）。この後、ＣＰＵ４０６は、管理テーブルＤ２０における選択した装置ＩＤに対応する接続状態情報を、オフラインを示すように更新する（Ｓ７０）。そして、ＣＰＵ３１１は、選択したゲーム装置１００のフレンドであるゲーム装置１００に対して、フレンド通信接続状態の変更通知を送信する（Ｓ７１）。このフレンド通信接続状態の変更通知は、選択したゲーム装置１００の接続状態情報がオンラインからオフラインに変化したことを通知するためのものである。なお、このフレンド通信接続状態の変更通知は、図１３におけるステップＳ２６において、ゲーム装置１００によって受信される。この後、ＣＰＵ４０６は上述のステップＳ５９に処理を進める。一方、選択した装置ＩＤに対応するログイン判定用フラグがオンであると判断したときには（Ｓ６８でＮＯ）、ＣＰＵ４０６は上記ステップＳ６９〜Ｓ７１を実行することなく処理を上記ステップＳ６４に進める。
【０１４２】
次に、図１６を用いて、ゲーム装置１００（ＣＰＵ３１１）が実行するメイン処理を説明する。なお、図１６においては、「アプリケーション」を「アプリ」と記載する。このメイン処理は、ゲーム装置１００の電源がオンされたときに実行開始される。また、メイン処理は、図１２で示す通信処理とマルチタスクで実行される。図１６は、メイン処理の一例を示すフローチャートである。
【０１４３】
まず、ＣＰＵ３１１は、第１メニュー画面を下側ＬＣＤ１２に表示するための処理を実行する。第１メニュー画面には、ゲーム装置１００で実行可能なアプリケーションが表示される。この第１メニュー画面は、ゲーム装置１００で実行するアプリケーションの選択をユーザにガイドするための画面である（Ｓ８１）。
【０１４４】
次に、ＣＰＵ３１１は、フレンドリストアプリケーションＰ２の実行が選択されたか否かを判断する（Ｓ８２）。フレンドリストアプリケーションＰ２の実行が選択されたと判断したときには（Ｓ８２でＹＥＳ）、ＣＰＵ３１１はフレンド管理処理を実行する（Ｓ８３）。フレンド管理処理についての詳細は図１７を用いて後述する。この後、ＣＰＵ３１１は、電源オフの指示がユーザから入力されたか否かを判断し（Ｓ８４）、入力されたと判断したときには（Ｓ８４でＹＥＳ）、ＣＰＵ３１１は、電源回路４０に電源オフの処理の実行を指示した後、本メイン処理を終了させる。また、電源オフの指示がユーザから入力されたていないと判断したときには（Ｓ８４でＮＯ）、ＣＰＵ３１１はステップＳ８１に処理を戻す。
【０１４５】
続いて、ステップＳ８２でＮＯと判断されたときの処理を説明する。フレンドリストアプリケーションＰ２の実行が選択されていないと判断したときには（Ｓ８２でＮＯ）、ＣＰＵ３１１は、ゲーム装置１００で実行可能なアプリケーションのうち、フレンドアプリケーションＰ２とは別のアプリケーション（他のアプリケーションＰ３）が選択されたか否かを判断する（Ｓ８５）。ここで、他のアプリケーションＰ３が選択されたと判断したときには（Ｓ８５でＹＥＳ）、ＣＰＵ３１１は他のアプリケーションを実行する処理（他のアプリケーション実行処理）を行う（Ｓ８６）。この他のアプリケーションの実行処理についての詳細は図２４を用いて後述する。この後、ＣＰＵ３１１は、ステップＳ８４に処理を進める。また、他のアプリケーションＰ３が選択されていないと判断したときには（Ｓ８５でＮＯ）、ＣＰＵ３１１はステップＳ８６を実行することなく、ステップＳ８４に処理を進める。
【０１４６】
次に、図１７、図１８、図１９〜図２１を用いて、上記ステップＳ８３におけるフレンド管理処理を説明する。図１７及び図１８は、フレンド管理処理の一例を示すフローチャートである。まず、ＣＰＵ３１１は、今回のフレンドリストアプリケーションＰ１の起動が初回であるかを判断する（Ｓ９１）。ここで、今回がフレンドリストアプリケーションＰ１を起動した初回であると判断したときには（Ｓ９１でＹＥＳ）、ＣＰＵ３１１は初回起動設定処理を行う（Ｓ９２）。なお、この初回起動設定処理では、ユーザからユーザ情報Ｄ１を作成するための情報の入力を受け付け、ユーザ情報Ｄ１が生成される。例えば、ユーザ名の入力を受け付けたり、ユーザの入力に基づいてキャラクタ情報の作成等が行われる。他にも、自己がオンラインかどうかを通知するか否かやプレイ中のタイトルをフレンドに通知するか否か等を設定できてもよい。
【０１４７】
図１９は、初回起動設定処理において表示される画面の一例を示す図である。この画面は、ユーザ情報Ｄ１の作成のための全ての情報がユーザから入力された後に上側ＬＣＤ２２に表示され、作成されたユーザ情報Ｄ１をユーザに示すために表示される。この画面には、キャラクタ画像Ｇ４（ユーザ情報Ｄ１に含まれるキャラクタ情報に基づいて生成された画像）、ユーザ名Ｇ５、お気に入りアプリケーション名Ｇ６、お気に入りアプリケーションのアイコンＧ７、メッセージＧ１０及びフレンドコードＧ１１が表示される。
【０１４８】
図１７に戻って、この後、ＣＰＵ３１１は、ステップＳ９２において生成したユーザ情報Ｄ１と自機の装置ＩＤを含めたユーザ登録要求を生成して、サーバ４００に対して送信する（Ｓ９３）。なお、ゲーム装置１００がオフラインであるときにはオンラインになったときにサーバ４００に対してユーザ登録要求を送信すればよい。この後、ＣＰＵ３１１は後述するステップＳ９４を実行する。一方、今回がフレンドリストアプリケーションＰ１を起動した初回でないと判断したときには（Ｓ９１でＮＯ）、ＣＰＵ３１１は上記ステップＳ９２及びＳ９３を実行せずに後述のステップＳ９４を実行する。
【０１４９】
ステップＳ９４において、ＣＰＵ３１１は、第２メニュー画面を表示するための処理を行う。図２０は、第２メニュー画面の一例を示す図である。第２メニュー画面は、下側ＬＣＤ１２に表示され、ユーザ情報Ｄ１の変更の操作をユーザから受け付けるための操作子Ｇ２１と、フレンドであるゲーム装置１００のフレンド情報の表示の指示をユーザから受け付けるための操作子Ｇ２２が表示される。
【０１５０】
図１７に戻って、ＣＰＵ３１１はユーザ情報Ｄ１の変更の操作をユーザから受け付けたかどうかを判断する（Ｓ９５）。ここで、ユーザ情報Ｄ１の変更の操作をユーザから受け付けたと判断したときには（Ｓ９５でＹＥＳ）、ＣＰＵ３１１はユーザ情報Ｄ１の変更をガイドする画面を表示する（Ｓ９６）。そして、ＣＰＵ３１１は、ユーザ情報Ｄ１の変更の操作をユーザから受け付けてメインメモリ３２に記憶するユーザ情報Ｄ１を更新し（Ｓ９７）、更新後のユーザ情報Ｄ１を含めたユーザ情報変更通知を生成してサーバ４００に対して送信する（Ｓ９８）。この後、ＣＰＵ３１１は処理を後述のステップＳ１１２に進める。
【０１５１】
一方、ユーザ情報Ｄ１の変更の操作をユーザから受け付けていないと判断したときには（Ｓ９５でＮＯ）、ＣＰＵ３１１は、フレンド情報の表示の指示をユーザから受け付けたかどうかを判断する（Ｓ９９）。ここで、フレンド情報の表示の指示をユーザから受け付けていないと判断したときには（Ｓ９９でＮＯ）、ＣＰＵ３１１は処理を後述のステップＳ１１２に進める。
【０１５２】
一方、フレンド情報の表示の指示をユーザから受け付けたと判断したときには（Ｓ９９でＹＥＳ）、ＣＰＵ３１１はフレンドリストテーブルＤ２から全てのフレンドＩＤに対応するフレンド情報と接続状態情報を取得する（Ｓ１００）。そして、ＣＰＵ３１１はサーバ４００と通信可能であるかどうかを判断する（Ｓ１０１）。ここで、サーバ４００と通信可能でないと判断したときには（Ｓ１０１でＮＯ）、ＣＰＵ３１１はオフライン用第３メニュー画面を表示する（Ｓ１０２）。このオフライン用第３メニュー画面には、ステップＳ１００において取得したフレンド情報及び接続状態情報等が表示される。このオフライン用第３メニュー画面は、例えば図６を用いて上述したような下側ＬＣＤ１２に表示される画面であるが、全てのフレンドカードＧ１において、接続状態情報を表すテキストＧ６がオフラインと表示される。また、自機がオフラインであることを示すメッセージが上側ＬＣＤ２２又は下側ＬＣＤ１２に表示される。この後、ＣＰＵ３１１は後述するステップＳ１０６に処理を進める。
【０１５３】
また、サーバ４００と通信可能であると判断したときには（Ｓ１０１でＹＥＳ）、ＣＰＵ３１１は、フレンドリストテーブルＤ２を参照して、登録されていないフレンド情報があるかどうかを判断するとともに、対応するアプリケーション名Ｄ６及びアイコン画像Ｄ７のない（メインメモリ３２に記憶されていない）お気に入りアプリＩＤ、及び現在実行中アプリＩＤがあるかどうかを判断する（Ｓ１０３）。ステップＳ１０３でＹＥＳと判断したときには、ＣＰＵ３１１はフレンドリストテーブルＤ２に登録されていないフレンド情報や、メインメモリ３２に記憶されていないアプリケーション名Ｄ６及びアイコン画像Ｄ７をサーバ４００から取得するための処理を行う（Ｓ１０４）。なお、フレンドリストテーブルＤ２に登録されていないフレンド情報とは、例えば、次のようなものである。フレンドであるユーザが、ユーザ情報Ｄ１を入力するときに、例えば、お気に入りアプリケーション名だけを入力しない等、一部の情報を入力せず、後になって追加して入力する可能性がある。この追加して入力された情報が、サーバ４００の管理テーブルＤ１０に記憶されており、かつゲーム装置１００のフレンドリストテーブルＤ２に登録されていないときに、上記登録されていないフレンド情報となる。この処理において、ゲーム装置１００はこれらの情報の送信要求（情報送信要求）をサーバ４００に対して行う。この情報送信要求は、図１５におけるステップＳ６２において、サーバ４００によって受信の有無が判断される。そして、図１５のステップＳ６３においてサーバ４００から送信された情報を、ＣＰＵ３１１は受信してメインメモリ３２に記憶させたり（例えば、アプリケーション名Ｄ６やアイコン画像Ｄ７を記憶させたり）、受信した情報でフレンドリストテーブルＤ２を更新する。この後、ＣＰＵ３１１は後述のステップＳ１０５を実行する。一方、ステップＳ１０３でＮＯと判断したときには、ＣＰＵ３１１は上記ステップＳ１０４を実行することなく後述のステップＳ１０５を実行する。
【０１５４】
ステップＳ１０５において、ＣＰＵ３１１はオンライン用第３メニュー画面を表示する。オンライン用第３メニュー画面には、ステップＳ１００において取得したフレンド情報及び接続状態情報が表示される。このオンライン用第３メニュー画面は、例えば図６を用いて上述したような下側ＬＣＤ１２に表示される画面である。なお、上記ステップＳ９４において、サーバ４００から受信した情報がある場合には、この受信した情報を用いて第３メニュー画面の表示が行われる。
【０１５５】
そして、ＣＰＵ３１１は、オンライン用第３メニュー画面又はオフライン用第３メニュー画面（例えば、図６の下側ＬＣＤ１２に表示される画面等）に表示される複数のフレンドカードＧ１の中から１つがユーザによって選択されたかどうかを判断する（Ｓ１０６）。このフレンドカードＧ１の選択は、例えば、画面中央にフレンドカードＧ１を表示した状態で、当該フレンドカードＧ１に対するタッチ操作をユーザからタッチパネル１３で受け付ける等の方法で行われる。同図ではフレンド名が「さとう」のフレンドカードＧ１が選択されている。ここで、複数のフレンドカードＧ１の中から１つがユーザによって選択されていないと判断したときには（Ｓ１０６でＮＯ）、ＣＰＵ３１１は、後述のステップＳ１１０を実行する。一方、複数のフレンドカードＧ１の中から１つがユーザによって選択されたと判断したときには（Ｓ１０６でＹＥＳ）、ＣＰＵ３１１は選択されたフレンドカードＧ１を拡大して上側ＬＣＤ２２に表示するための処理を行う（Ｓ１０７）。例えば、図６における上側ＬＣＤ２２に表示されている画面が、このとき拡大されて表示されたフレンドカードＧ１を示している。なお、フレンドカードＧ１は拡大表示されるときには拡大前に表示されていなかった種類のフレンド情報（フレンドコードＧ１１等）も表示する。
【０１５６】
そして、ＣＰＵ３１１は、選択されたフレンドカードＧ１の削除の指示をユーザから受け付けたかどうかを判断する（Ｓ１０８）。この削除の指示は、例えば操作子Ｇ２のタッチ操作等で行われる。ここで、選択されたフレンドカードＧ１の削除の指示をユーザから受け付けたと判断したときには（Ｓ１０８でＹＥＳ）、ＣＰＵ３１１は、選択されたフレンドカードＧ１を削除して表示する処理を行うとともに、当該フレンドカードＧ１に対応するフレンド登録（フレンドリストテーブルＤ２に登録されている情報）を削除する（Ｓ１０９）。そして、ＣＰＵ３１１は後述のステップＳ１１０を実行する。一方、選択されたフレンドカードＧ１の削除の指示をユーザから受け付けていないと判断したときには（Ｓ１０８でＮＯ）、ＣＰＵ３１１は、上記ステップＳ１０９を実行することなく、後述のステップＳ１１０を実行する。なお、本フローチャートには表れていないが、フレンドカードＧ１の削除は何回でも行うことができる。また、フレンドカードＧ１の選択を変更することや、フレンドカードＧ１の選択を解除することもできる。
【０１５７】
ステップＳ１１０において、ＣＰＵ３１１は、フレンド登録指示をユーザから受け付けたかどうかを判断する。なお、フレンド登録指示は、例えば操作子Ｇ３のタッチ操作等である。ここで、フレンド登録指示をユーザから受け付けたと判断したときには（Ｓ１１０でＹＥＳ）、ＣＰＵ３１１は、新たに追加してフレンド登録を行うためのフレンド登録処理を実行する（Ｓ１１１）。フレンド登録処理についての詳細は、図２１及び図２２を用いて後述する。そして、ＣＰＵ３１１は後述のステップＳ１１２を実行する。一方、フレンド登録指示をユーザから受け付けていないと判断したときには（Ｓ１１０でＮＯ）、ＣＰＵ３１１は、ステップＳ１１１を実行せずに後述のステップＳ１１２を実行する。
【０１５８】
そして、ＣＰＵ３１１は、フレンドリストアプリケーションＰ２の実行を終了させる指示をユーザから受け付けたかどうかを判断する。そして、フレンドリストアプリケーションＰ２の実行を終了させる指示をユーザから受け付けたと判断したときには（Ｓ１１２でＹＥＳ）、ＣＰＵ３１１はフレンド管理処理を終了させてメイン処理に処理を戻す。一方、フレンドリストアプリケーションＰ２の実行を終了させる指示をユーザから受け付けていないと判断したときには（Ｓ１１２でＮＯ）、ＣＰＵ３１１は処理をステップＳ９１に戻す。
【０１５９】
以下に、図７、図８、及び図２１〜図２３を用いて上記ステップＳ１１１におけるフレンド登録処理を説明する。図２１及び図２２は、フレンド登録処理の一例を示すフローチャートである。まず、ＣＰＵ３１１は、第４メニュー画面を表示するための処理を行う（Ｓ１２１）。第４メニュー画面は、ネットワーク３００を用いてゲーム装置１００にフレンド登録を行わせる指示、近距離無線通信を用いてゲーム装置１００にフレンド登録を行わせる指示、及びフレンド登録を行わない指示のうち何れかの指示の入力をユーザに対してガイドするための画面である。図２３は、第４メニュー画面の一例を示す図である。第４メニュー画面には、操作子Ｇ３１〜Ｇ３３が表示されている。例えば、操作子Ｇ３１のタッチ操作が、近距離無線通信を用いてゲーム装置１００にフレンド登録を行わせる指示操作（以下、近距離フレンド登録指示操作）と記載する）である。また、例えば、操作子Ｇ３２のタッチ操作が、ネットワーク３００を用いてゲーム装置１００にフレンド登録を行わせる指示操作（以下、「ネットワーク経由フレンド登録指示操作」と記載する）である。また、例えば、操作子Ｇ３３のタッチ操作が、フレンド登録を行わない指示操作である。
【０１６０】
図２１に戻って、ＣＰＵ３１１は、近距離フレンド登録指示操作をユーザから受け付けたかどうかを判断する（Ｓ１２２）。ここで、近距離フレンド登録指示操作をユーザから受け付けたと判断したときには（Ｓ１２２でＹＥＳ）、ＣＰＵ３１１は、フレンド登録の対象となる他のゲーム装置１００においても近距離フレンド登録指示操作が要求されることを報知するためのメッセージを例えば上側ＬＣＤ２２に表示する（Ｓ１２３）。そして、ＣＰＵ３１１は、自機の装置ＩＤを含むビーコンをブロードキャストで送信する（Ｓ１２４）。なお、無線通信モジュール３６がすれちがい通信又はサーバとの通信処理を実行しているときには、ＣＰＵ３１１はこの通信の終了を待ってから無線通信モジュール３６を使用してステップＳ１２４の処理を実行する。あるいは、ＣＰＵ３１１はこれらの通信の終了を待たずにすれちがい通信又はサーバとの通信を直ちに中断してステップＳ１２４の処理を実行する。なお、ステップＳ１２４〜後述のステップＳ１４２の処理を実行している間は、ＣＰＵ３１１は図１２で示す通信処理を行わない。この後、ＣＰＵ３１１は、他のゲーム装置１００から閾値ａを超えるビーコンを受信したかどうかを判断する（Ｓ１２５）。ここで、閾値ａとは、処理に使用不可能な程に信号の強度が弱いビーコンを破棄するための値であり、無線通信モジュール３６が、閾値ａを超える信号強度のビーコンのみを取得し、ＣＰＵ３１１に入力する。また、閾値ａは、後述の通り、近距離無線通信を用いたアプリケーションを実行する時に必要な信号強度の閾値としても用いられる。
【０１６１】
そして、他のゲーム装置１００から閾値ａを超えるビーコンを受信していないと判断したとき（Ｓ１２５でＮＯ）、ＣＰＵ３１１は後述のステップＳ１３３に処理を進める。一方、他のゲーム装置１００から閾値ａを超えるビーコンを受信したと判断したとき（Ｓ１２５でＹＥＳ）、ＣＰＵ３１１は受信したビーコンが自機の装置ＩＤを含むかを判断する（Ｓ１２６）。なお、自機の装置ＩＤを含むときには、受信したビーコンは、ステップＳ１２４において自機で送信したビーコンを受信した他のゲーム装置１００が、この自機で送信したビーコンに応答して送信したビーコンである。従って、ステップＳ１２６において肯定と判断されたときには、他のゲーム装置１００が自機と双方向で近距離無線通信可能な状態にある可能性が高い。
【０１６２】
そして、受信したビーコンが自機の装置ＩＤを含まないと判断したときには（Ｓ１２６でＮＯ）、ＣＰＵ３１１は、受信したビーコンを破棄するとともに、ビーコンの送信元のゲーム装置１００の装置ＩＤ、自機の装置ＩＤ及びユーザ情報Ｄ１の一部（例えば、ユーザ名及びキャラクタ情報）を含めたビーコンをブロードキャストで送信する（Ｓ１２７）。なお、受信したビーコンを破棄した理由は、当該ビーコンは、ステップＳ１２４において自機で送信したビーコンに応答して他のゲーム装置１００から送信されたものではないからである。この後、ＣＰＵ３１１は、後述のステップＳ１３３に処理を進める。
【０１６３】
一方、受信したビーコンが自機の装置ＩＤを含むと判断したときには（Ｓ１２６でＹＥＳ）、当該ビーコンはステップＳ１２４において自機で送信したビーコンに応答して他のゲーム装置１００から送信されたものである。このときには、ＣＰＵ３１１は、受信したビーコンの信号強度（ｄＢｍ）で通信レベルテーブルＤ４（図１０Ｃを参照）を参照して、受信したビーコンの信号強度（ｄＢｍ）に対応する通信レベルを決定する（Ｓ１２９）。
【０１６４】
そして、ＣＰＵ３１１は、ステップＳ１２９において決定した通信レベルが一定レベル以上であるか（例えば、通信レベルＬ２以上であるか）を判断する（Ｓ１３０）。なお、この一定レベルをユーザがマニュアルで設定変更できる構成であってもよい。また、本実施形態では、信号強度に基づいて通信レベルを決定し、この通信レベルを用いて信号強度が通信状態条件を満たすかを判断しているが、この構成に代えて通信レベルを用いずに信号強度（ｄＢｍ）を直接用いて信号強度が通信状態条件を満たすか（例えば、信号強度が閾値ｂ（閾値ｂ＞閾値ａ）を超えるか等の条件）を判断してもよい。そして、通信レベルが一定レベル以上でないと判断したときには（Ｓ１３０でＮＯ）、ＣＰＵ３１１は後述のステップＳ１３３に処理を進める。また、通信レベルが一定レベル以上であると判断したときには（Ｓ１３０でＹＥＳ）、ＣＰＵ３１１は受信したビーコンに含まれる他のゲーム装置の装置ＩＤ及びユーザ情報Ｄ１（ユーザ名及びキャラクタ情報）をフレンドＩＤ及びフレンド情報（ユーザ名はフレンド名として登録される）としてフレンド候補リストテーブルＤ３（図１０Ｂを参照）に登録する（Ｓ１３１）。そして、ＣＰＵ３１１は、登録したフレンド情報を表示するための処理を行う（Ｓ１３２）。このステップＳ１３２で表示される画面は、例えば図７で示すようなものである。図７の画面は、上述したように下側ＬＣＤ１２に表示される。この画面において、フレンドカードＧ１が表示され、フレンドカードＧ１内には、他のユーザのフレンド情報（キャラクタ情報に基づくキャラクタＧ４及びユーザ名Ｇ５）が表示される。
【０１６５】
そして、ＣＰＵ３１１は、フレンド候補リストテーブルＤ３に登録されている装置ＩＤの数が一定数（例えば３台）に達するという条件、及びステップ１２２でＹＥＳと判断してから一定時間が経過したという条件のうち何れか一つでも成立したかどうかを判断する（Ｓ１３３）。なお、ステップＳ１２２でＹＥＳと判断されたときに、ＣＰＵ３１１は、タイマを作動させており、これによって一定時間の経過を判断する。ステップＳ１３３でＮＯと判断したときには、ＣＰＵ３１１は、ステップＳ１２４に処理を戻し、ステップＳ１３３ＹＥＳと判断するまで、上記ステップＳ１２４〜Ｓ１３２の処理を繰り返し実行する。なお、ステップＳ１３２において表示される画面には、フレンド候補リストテーブルＤ３に装置ＩＤが登録される都度、登録された装置ＩＤのフレンド情報を表示するフレンドカードＧ１が追加的に表示される。
【０１６６】
一方、ステップＳ１３３でＹＥＳと判断したときには、ＣＰＵ３１１は、フレンド候補リストテーブルＤ３へのフレンドＩＤの登録数が１以上であるかを判断する（Ｓ１３４）。そして、フレンド候補リストテーブルＤ３へのフレンドＩＤの登録数が１以上でないと判断したときには（Ｓ１３４でＮＯ）、フレンド候補となる他のゲーム装置を検索できなかったことになるので、ＣＰＵ３１１は、フレンド候補となる（フレンド候補リストテーブルＤ３にフレンドＩＤを登録するための）他のゲーム装置１００の検索の再実行の指示（再検索指示）をユーザに促すための画面を表示する処理を実行し、この後、再検索指示を受け付けたかどうかを判断する（Ｓ１３５）。そして、再検索指示を受け付けていないと判断したときには（Ｓ１３５でＮＯ）、ＣＰＵ３１１はフレンド登録処理を終了させて処理をフレンド管理処理に戻し、再検索指示を受け付けたと判断したときには（Ｓ１３５でＹＥＳ）、ＣＰＵ３１１は、処理をステップＳ１２３に戻して、再度フレンド候補となる他のゲーム装置１００を検索する（Ｓ１２３〜Ｓ１３４の処理を実行する）。
【０１６７】
次に、ステップＳ１３４でＹＥＳと判断されたときの処理を説明する。フレンド候補リストテーブルＤ３への装置ＩＤの登録数が１以上であると判断したときには（Ｓ１３４でＹＥＳ）、ＣＰＵ３１１は、通信レベル順にフレンド情報（フレンドカードＧ１）を並び替えて表示する（Ｓ１３６）。なお、ステップＳ１３６を実行することなく、ビーコンを受信した順番でフレンドカードＧ１を表示してもよい。そして、ＣＰＵ３１１は、フレンド候補リストテーブルＤ３に登録されているフレンドＩＤから１つのフレンドＩＤを選択する操作（表示されているフレンドカードＧ１から何れかを選択する操作）をユーザから受け付けたかどうかを判断する（Ｓ１３７）。なお、例えば、図７の画面に表示されているフレンドカードＧ１のタップ操作が、フレンドＩＤを選択する操作である。
【０１６８】
ここで、１つのフレンドＩＤを選択する操作をユーザから受け付けていないと判断したときに（Ｓ１３７でＮＯ）、ＣＰＵ３１１はフレンド登録処理を終了させてフレンド管理処理に処理を戻す。一方、１つのフレンドＩＤを選択する操作をユーザから受け付けたと判断したときには（Ｓ１３７でＹＥＳ）、ＣＰＵ３１１は、選択したフレンドＩＤのゲーム装置１００に対して当該ゲーム装置１００を選択したことを通知（選択通知）する（Ｓ１３８）。なお、この選択通知は、他のゲーム装置１００においては、自機のフレンドＩＤが選択されたことの通知である。そして、選択したフレンドＩＤのゲーム装置１００から選択通知を受信したかどうかを判断する（Ｓ１３９）。ここで、選択したフレンドＩＤのゲーム装置１００から選択通知を受信していないと判断したときには（Ｓ１３９でＮＯ）、フレンドリストテーブルＤ２への登録を行わずに、ＣＰＵ３１１は、処理をステップＳ１２３に戻して、再度フレンド候補となる他のゲーム装置１００を検索する（Ｓ１２３〜Ｓ１３８の処理を実行する）。
【０１６９】
一方、選択したフレンドＩＤのゲーム装置１００から選択通知を受信したと判断したときには（Ｓ１３９でＹＥＳ）、ＣＰＵ３１１は、選択したフレンドＩＤのゲーム装置１００との間で、ステップＳ１３１において取得することができたフレンド情報の他のフレンド情報（ユーザ情報Ｄ１に含まれるフレンドコード、お気に入りアプリＩＤ、実行中アプリＩＤ及びメッセージ等）を送受信し合う（Ｓ１４０）。そして、ＣＰＵ３１１は、ステップＳ１４０において受信したフレンド情報と、フレンド候補リストテーブルＤ３に登録されているフレンドＩＤ及びフレンド情報（ユーザ名及びキャラクタ情報等）とを対応付けてフレンドリストテーブルＤ２に登録する（Ｓ１４１）。そして、ＣＰＵ３１１はフレンド候補リストテーブルＤ３に登録されている事項を削除する。この後、ＣＰＵ３１１はフレンド登録を完了したことを示す画面を表示する（Ｓ１４２）。なお、ステップＳ１４２においては、例えば図８で示すような画面が表示される。この後、ＣＰＵ３１１はフレンド登録処理を終了させてフレンド管理処理に処理を戻す。なお、ステップＳ１４２の実行後に、ステップＳ１３７に戻って、残りのフレンド候補からさらに登録するフレンド候補を続けてユーザに選択させてもよい。
【０１７０】
以下に、ステップＳ１２２でＮＯと判断されたときの処理を説明する。ＣＰＵ３１１は、ネットワーク経由フレンド登録指示操作を受け付けたかどうかを判断する（Ｓ１４３）。そして、ネットワーク経由フレンド登録指示操作を受け付けたと判断したときには（Ｓ１４３でＹＥＳ）、ＣＰＵ３１１は自機がオンラインであるかどうかを判断する（Ｓ１４４）。自機がオンラインであると判断したときには（Ｓ１４４でＹＥＳ）、フレンドコードをユーザが入力することによってフレンド登録（フレンドリストテーブルＤ２への登録）を行う。ここで、自機がオンラインでないと判断したときには（Ｓ１４４でＮＯ）、ＣＰＵ３１１は、オフライン状態のためネットワーク経由フレンド登録できないことを表示して（Ｓ１４５）、処理をステップＳ１２１に戻す。また、自機がオンラインであると判断したときには（Ｓ１４４でＹＥＳ）、ＣＰＵ３１１は、フレンドコードの入力のための画面を表示して、他のゲーム装置１００のフレンドコードの入力を受け付ける。入力されたフレンドコードは、サーバ４００に対して送信され、ゲーム装置１００はサーバ４００からフレンドコードに対応するフレンドＩＤ及びフレンド情報を取得したとき、フレンドリストテーブルＤ２に登録する（Ｓ１４６）。この後、ＣＰＵ３１１はフレンド登録処理を終了させてフレンド管理処理に処理を戻す。また、ネットワーク経由フレンド登録指示操作を受け付けていないと判断したときとは（Ｓ１４３でＮＯ）、ＣＰＵ３１１がフレンド登録を行わない指示操作を受け付けたときである。このときには、ＣＰＵ３１１はフレンド登録処理を終了させてフレンド管理処理に処理を戻す。
【０１７１】
以下、図２４を用いて、上記ステップＳ８６におけるその他のアプリケーション実行処理を説明する。図２４は、その他のアプリケーション実行処理の一例を示すフローチャートである。まず、ＣＰＵ３１１は、オンラインゲーム（ネットワーク３００を介したオンラインゲーム）又は近距離無線通信を用いたゲームが選択されているかどうかを判断する（Ｓ１５１）。そして、オンラインゲーム又は近距離無線通信を用いたゲームが選択されていないと判断したときには（Ｓ１５１でＮＯ）、ＣＰＵ３１１は所定のゲーム処理（例えば、仮想三次元空間において、ユーザの操作に基づいてプレイヤキャラクタの位置を変更したり、仮想三次元空間を描画するための処理等）を実行する（Ｓ１５２）。なお、ステップＳ１５２においては、オフラインでゲームがユーザに実行される場合であるため、ゲーム装置１００は自機で記憶するゲーム情報（ゲーム処理の実行に必要な情報）のみに基づいて所定のゲーム処理を実行する。この後、ＣＰＵ３１１は後述のステップＳ１５７を実行する。
【０１７２】
一方、オンラインゲーム又は近距離無線通信を用いたゲームが選択されていると判断したときには（Ｓ１５１でＹＥＳ）、ＣＰＵ３１１はゲームの相手方のゲーム装置１００からゲーム情報を受信したかどうかを判断する（Ｓ１５３）。そして、ゲームの相手方のゲーム装置１００からゲーム情報を受信していないと判断したときには（Ｓ１５３でＮＯ）、ＣＰＵ３１１は、上記ステップＳ１５２の処理を実行する（自機で記憶するゲーム情報のみに基づいて所定のゲーム処理を実行する）。この後、ＣＰＵ３１１は後述のステップＳ１５７を実行する。一方、ゲームの相手方のゲーム装置１００からゲーム情報を受信したと判断したときには（Ｓ１５３でＹＥＳ）、ＣＰＵ３１１は、近距離無線通信を用いたゲームが選択されているかを判断する（Ｓ１５４）。ここで、近距離無線通信を用いたゲームが選択されていないとき、すなわちオンラインゲームが選択されているときには（Ｓ１５４でＮＯ）、ＣＰＵ３１１は受信したゲーム情報を用いて所定のゲーム処理を実行する。一方、近距離無線通信を用いたゲームが選択されていると判断したときには（Ｓ１５４でＹＥＳ）、ＣＰＵ３１１はゲーム情報の信号強度（ｄＢｍ）を測定し、この測定した信号強度（ｄＢｍ）が閾値ａ以下かどうかを判断する（Ｓ１５５）。なお、本実施例ではゲーム情報の信号強度（ｄＢｍ）を測定したが、他の情報処理装置との通信の強度を表すものであれば、他のものを用いてもよい（例えば、ビーコンの信号強度など）。
【０１７３】
信号強度（ｄＢｍ）が閾値ａ以下であると判断したときには（Ｓ１５５でＹＥＳ）、ＣＰＵ３１１はこのゲーム情報を破棄して、上記ステップＳ１５２の処理を実行する（自機で記憶するゲーム情報のみに基づいて所定のゲーム処理を実行する）。この後、ＣＰＵ３１１は後述のステップＳ１５７を実行する。一方、信号強度（ｄＢｍ）が閾値ａを超えていると判断したときには（Ｓ１５５でＮＯ）、ＣＰＵ３１１は受信したゲーム情報を用いて所定のゲーム処理を実行する（Ｓ１５６）。  
【０１７４】
そして、ＣＰＵ３１１はフレンドリストアプリケーションＰ１の実行指示を受け付けたかを判断する（Ｓ１５７）。なお、本実施形態では、その他のアプリケーション実行処理中においても、フレンドアプリケーションＰ１を起動させることができる。ここで、フレンドリストアプリケーションＰ１の実行指示を受け付けたと判断したときには（Ｓ１５７でＹＥＳ）、ＣＰＵ３１１は図１７〜図２３を用いて説明した上記フレンド管理処理を実行する（Ｓ１５８）。そして、ＣＰＵ３１１は、フレンド管理処理において複数のフレンドカードＧ１の中から１つがユーザによって選択されたかどうかを判断する（Ｓ１５９）。
【０１７５】
そして、複数のフレンドカードＧ１の中から１つがユーザによって選択されたと判断したときには（Ｓ１５９でＹＥＳ）、ＣＰＵ３１１は、フレンドカードＧ１に対応するゲーム装置１００をオンラインゲームの相手としてメインメモリ３２に登録し、かつオンラインゲーム又は近距離無線通信を用いたゲームを選択的に設定する（Ｓ１６０）。オンラインゲームと近距離無線通信を用いたゲームから何れを設定するかは、ユーザの選択操作に基づいて決定される。なお、ネットワーク３００やサーバ４００を介してゲーム装置１００同士が通信を行うときには、ＩＰアドレス等の識別情報が必要になる場合がある。この場合には、ステップＳ１６０において、ゲーム装置１００と他のゲーム装置１００が互いにＩＰアドレス等を通知する。そして、ＣＰＵ３１１は、その他のアプリケーション実行処理の終了の指示をユーザから受け付けたかどうかを判断する（Ｓ１６１）。ここで、その他のアプリケーション実行処理の終了の指示をユーザから受け付けたと判断したときには（Ｓ１６１でＹＥＳ）、ＣＰＵ３１１はその他のアプリケーション実行処理を終了させる。一方、その他のアプリケーション実行処理の終了の指示をユーザから受け付けていない判断したときには（Ｓ１６１でＮＯ）、ＣＰＵ３１１は、処理をステップＳ１５１に戻す。
【０１７６】
次に、フレンドリストアプリケーションＰ１の実行指示を受け付けていないと判断したときには（Ｓ１５７でＮＯ）、または複数のフレンドカードＧ１の中から１つがユーザによって選択されていないと判断したときには（Ｓ１５９でＮＯ）の処理について説明する。このときには、ＣＰＵ３１１は、上記ステップＳ１５８〜Ｓ１６０の処理を実行することなく、上記ステップＳ１６１の処理を実行する。そして、ステップＳ１６１において、その他のアプリケーション実行処理の終了の指示をユーザから受け付けていない判断したときには（Ｓ１６１でＮＯ）、ＣＰＵ３１１は、処理をステップＳ１５１に戻す。また、その他のアプリケーション実行処理の終了の指示をユーザから受け付けたと判断したときには（Ｓ１６１でＹＥＳ）、ＣＰＵ３１１はその他のアプリケーション実行処理を終了させる。
【０１７７】
上述したように、本実施形態にかかる通信システム１は、他のゲーム装置１００との間の近距離無線通信が通信状態に関する通信状態条件（例えば、受信したビーコンの信号強度に基づいて決定した、通信レベルが所定レベルよりも大きいこと等の条件）を満たすときにのみ、受信した装置ＩＤをフレンド登録するという特徴（第１の特徴）を備える。これによって、通信状態条件を他の情報処理装置がある程度自機の近くに居ることを表す条件等に設定することで、自機のある程度近くに居る他の情報処理装置のみをフレンド登録の対象とすることができる。これによって、ユーザがフレンド登録を希望しない他のゲーム装置１００を誤ってゲーム装置１００でフレンド登録してしまうことを効果的に防止し、より正確にユーザ所望の他のゲーム装置１００を自己のゲーム装置１００にフレンド登録させることができる。
【０１７８】
また、本実施形態にかかる通信システム１は、自動的に通信可能なアクセスポイント２００を検索して接続し、当該アクセスポイント２００を介して、自機のフレンドである他のゲーム装置１００の通信状態情報（例えば、オンラインか、オフラインかを示す情報）をサーバ４００から受信するという特徴（第２の特徴）を備える。なお、ゲーム装置１００は、携帯型の装置であり、かつ無線通信によってアクセスポイント２００に接続されるため、オフラインであるかオンラインであるかの通信接続状態が変化し易い。本実施形態では、第２の特徴によって、ゲーム装置１００は、アクセスポイント２００に接続する度にサーバ４００から自機のフレンドであるゲーム装置１００の通信接続状態を取得するため、当該通信接続状態の変化を迅速に取得することができる。
【０１７９】
なお、本実施形態の変形例を以下に記載する。
【０１８０】
（１）本実施形態では、その他のアプリケーションＰ３は、ゲーム処理を実行するためのゲームアプリケーションであるが、これに限定されず他の種類のアプリケーションであってもよい。例えば、ゲーム装置１００のユーザと他のゲーム装置１００のユーザ間で通話やチャットを行わせるためのアプリケーション等であってもよい。この場合には、フレンド登録したゲーム装置１００同士に限って通話やチャットのための通信を行う。
【０１８１】
（２）本実施形態では、フレンド登録処理において、ユーザからフレンド候補の選択が行われたときに限って、フレンド登録を行っているが（ステップＳ１３７〜Ｓ１４１）、この構成に限定されない。例えば、ステップＳ１３０において通信レベルが一定レベル以上であると判断されたゲーム装置１００を全て自動的にフレンド登録してもよい。
【０１８２】
（３）本実施例は、本発明をゲーム装置１００に適用したものであるが、本発明はゲーム装置に限定されない。例えば、携帯電話機、簡易型携帯電話機（ＰＨＳ）、ＰＤＡ等の携帯情報端末にも本発明の適用は可能である。
【０１８３】
（４）なお、本実施形態では、１つのサーバ３００で上述したサーバ側通信処理を実行しているが、複数のサーバで上記サーバ側通信処理を分担してもよい。
【符号の説明】
【０１８４】
１００  ゲーム装置
１１  下側ハウジング
１２  下側ＬＣＤ
１３  タッチパネル
１４  操作ボタン
１５  アナログスティック
１６  ＬＥＤ
２１  上側ハウジング
２２  上側ＬＣＤ
２３  外側撮像部
２３ａ  外側撮像部（左）
２３ｂ  外側撮像部（右）
２４  内側撮像部
２５  ３Ｄ調整スイッチ
２６  ３Ｄインジケータ
２８  タッチペン
３１  情報処理部
３１１  ＣＰＵ
３１２  ＧＰＵ
３２  メインメモリ
６０  マーカー
６４Ｌ  左仮想カメラ
６４Ｒ  右仮想カメラ
２００  アクセスポイント
３００  ネットワーク
４００  サーバ
【図１】
0006302614.tif 000002
【図２】
0006302614.tif 000003
【図３Ａ】
0006302614.tif 000004
【図３Ｂ】
0006302614.tif 000005
【図３Ｃ】
0006302614.tif 000006
【図３Ｄ】
0006302614.tif 000007
【図４】
0006302614.tif 000008
【図５】
0006302614.tif 000009
【図６】
0006302614.tif 000010
【図７】
0006302614.tif 000011
【図８】
0006302614.tif 000012
【図９】
0006302614.tif 000013
【図１０Ａ】
0006302614.tif 000014
【図１０Ｂ】
0006302614.tif 000015
【図１０Ｃ】
0006302614.tif 000016
【図１１】
0006302614.tif 000017
【図１２】
0006302614.tif 000018
【図１３】
0006302614.tif 000019
【図１４】
0006302614.tif 000020
【図１５】
0006302614.tif 000021
【図１６】
0006302614.tif 000022
【図１７】
0006302614.tif 000023
【図１８】
0006302614.tif 000024
【図１９】
0006302614.tif 000025
【図２０】
0006302614.tif 000026
【図２１】
0006302614.tif 000027
【図２２】
0006302614.tif 000028
【図２３】
0006302614.tif 000029
【図２４】
0006302614.tif 000030