(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来のネットワークゲームシステムでは、見知らぬ相手とも通信できるようになっているので、相手が通信するために必要な自分の情報を持っていれば、自分が相手を全く知らなくても相手から一方的に接続されることがあった。このように、見知らぬ相手といきなりゲームをプレイしなければならないので、匿名性による一部の人間の荒らし行為などのようなルールおよびマナー違反等への不安もあって、一般的なゲームユーザにとっては取っ付き難いという面があった。また、友達同士でプレイするためには予め時刻等を電話やメール等で連絡し合っておいて当該予定通りに行動する必要があるので、面倒であるという問題があった。
【0005】
このように従来のネットワークゲームは、ユーザに不安を抱かせたり煩わしさを感じさせたりする要素を含んでおり、一般のゲームユーザにとって必ずしも参加し易いものではなく、安全にまたは気軽に楽しむことができなかった。
【0006】
一方、特許文献2の技術では、近距離無線通信を行うことによって、近くにいる相手とたとえば互いの顔を見ながら通信ゲームを行うことができるので、安全かつ気軽にゲームを楽しむことができた。しかしながら、無線通信可能な範囲内でしかゲームをプレイすることができないので、プレイヤ達は、帰宅等によって相手と離れた場所に移動してしまうと当該通信ゲームを楽しむことができなかった。
【0007】
それゆえに、この発明の主たる目的は、新規な、通信ゲームシステムならびにそれに用いられるゲーム装置、ゲームプログラム、サーバおよびサーバの通信処理プログラムを提供することである。
【0008】
この発明の他の目的は、参加し易いネットワークゲームを実現できる、通信ゲームシステムおよびそれに用いられるゲーム装置、ゲームプログラム、サーバおよびサーバの通信処理プログラムを提供することである。
【0009】
この発明の更なる目的は、識別情報を登録した相手とだけネットワーク通信をすることができる、通信ゲームシステムおよびそれに用いられるゲーム装置、ゲームプログラム、サーバおよびサーバの通信処理プログラムを提供することである。
【0010】
この発明のその他の目的は、近距離無線によって通信を行った相手と離れた場所でも通信することのできる、通信ゲームシステムならびにそれに用いられるゲーム装置、ゲームプログラム、サーバおよびサーバの通信処理プログラムを提供することである。
【課題を解決するための手段】
【0011】
第1の発
明は、複数のゲーム装置を含む通信ゲームシステムである。各ゲーム装置は、第1記憶手段、登録手段、ネットワーク接続手段、判定手段、および第1通信手段を備える。第1記憶手段は自己の識別情報を記憶する。登録手段は、他のゲーム装置の識別情報である相手識別情報を登録する。ネットワーク接続手段は、ネットワーク通信を行うためにネットワークにアクセス可能なアクセスポイントに接続する。判定手段は、ネットワーク接続手段によってアクセスポイントを介してネットワークに接続している場合において、登録手段によって登録された相手識別情報に対応する他のゲーム装置とネットワーク通信可能であるか否かを判定する。第1通信手段は、判定手段によってネットワーク通信可能であると判定された他のゲーム装置との間でネットワーク通信を行う。
【0012】
第1の発明では、通信ゲームシステムは、たとえばインターネットのようなネットワークを介して通信ゲームを行うためのものであり、複数のゲーム装置(10:後述する実施例で相当する参照符号。以下同じ。)を含む。各ゲーム装置において、第1記憶手段(48、74)は、自己の識別情報を記憶する。実施例では、識別情報としてのIDやプレイヤ名が記憶される。登録手段(42、48、28b、80、S21、S47、S49、S289‐S293)は、他のゲーム装置の識別情報である相手識別情報を登録する。相手識別情報は、他のゲーム装置またはそのプレイヤとの交換によって取得され、実施例ではお友達リストデータとして記憶される。交換のため、たとえばゲーム装置は自己の識別情報を出力してよい。相手識別情報は、たとえば、近距離無線によって通信した他のゲーム装置から取得されてよい。あるいは、相手プレイヤとの間で事前に識別情報を教え合うことによって取得された相手識別情報がプレイヤによって入力されるようにしてもよい。相手プレイヤに教えるために、自己の識別情報はたとえば表示されてよい。ネットワーク接続手段(42、64、S65)は、ネットワーク通信を行うためにアクセスポイント(70)に接続する。アクセスポイントはたとえば家庭内にまたは公衆無線LANに設けられた無線LANアクセスポイントであり、ゲーム装置はアクセスポイントを介してインターネットのようなネットワークに接続する。判定手段(42、S83、S303)は、アクセスポイントを介してネットワークに接続している場合において、登録手段によって登録された相手識別情報に対応する他のゲーム装置とネットワーク通信可能であるか否かを判定する。たとえば接続中であるゲーム装置を示す接続中情報を管理するサーバ(72)がネットワーク上に設けられる場合には、当該サーバに問い合わせて、その結果から判定を行ってよい。第1通信手段(42、64、S93、S95、S305、S307)は、ネットワーク通信可能であると判定された他のゲーム装置との間でネットワーク通信を行う。
【0013】
第1の発明によれば、相手識別情報を登録できるようにした。また、アクセスポイントを介してネットワークにアクセスして、当該登録した相手識別情報に対応する他のゲーム装置とネットワーク通信可能であるか否かを判定するようにした。そして、ネットワーク通信可能であると判定されるときには、当該相手との間でネットワークを介して通信できるようにした。このように、各ゲーム装置は、識別情報を登録した相手との間でネットワーク通信可能か否かを判定し、可能であるときには当該登録した相手との間でネットワーク通信を行うことができる。したがって、識別情報を登録した相手とのみ通信ゲームを行うことができるので、ネットワークゲームに安全かつ気軽に参加することが可能になり、ネットワークゲームを避けていたような一般的なゲームユーザなどにとって参加し易いネットワークゲームを実現できる。また、友達の識別情報を登録するだけで簡単に当該友達とネットワーク通信を行うことが可能になる。
【0014】
第2の発明は、
第1の発明に従属し、各ゲーム装置は、他のゲーム装置と近距離無線によって通信を行う第2通信手段をさらに備える。登録手段は、第2通信手段による通信で他のゲーム装置から受信した相手識別情報を第2記憶手段に記憶する。
【0015】
第2の発明では、ゲーム装置の第2通信手段(42、64、S21、S39、S41、S45、S47)は、他のゲーム装置との間で近距離無線によって通信を行う。登録手段(S49)は、近距離無線通信で他のゲーム装置から受信した相手識別情報を第2記憶手段(48、28b、80)に記憶する。このように、近距離無線によって通信した相手の識別情報を取得して登録することができる。したがって、近距離無線によって通信した友達と離れた後でも、ネットワークを介して通信することができる。
【0016】
第3の発明は、
第2の発明に従属し、ネットワーク上のサーバをさらに備える。各ゲーム装置は、通知手段、および問合せ手段をさらに備えている。通知手段は、自己の識別情報を含みネットワークに接続中であることを示す通知をサーバに送信する。問合せ手段は、第2記憶手段に記憶されている相手識別情報に対応する他のゲーム装置がネットワークに接続中であるか否かの問合せをサーバに送信する。サーバは、接続中リスト記憶手段、第1検出手段、および応答手段を備えている。接続中リスト記憶手段は、通知に基づいてネットワークに接続中であるゲーム装置の少なくとも自己の識別情報およびアドレスを第3記憶手段に記憶する。第1検出手段は、問合せを受信したとき当該受信した相手識別情報が第3記憶手段に記憶されているか否かを検出する。応答手段は、第1検出手段によって相手識別情報が第3記憶手段に記憶されていることが検出されたとき、当該相手識別情報に対応するゲーム装置のアドレスを、問合せを送信したゲーム装置に送信する。ゲーム装置の判定手段は、サーバから受信した問合せに対する結果に基づいて、他のゲーム装置がネットワークに接続中であるか否かを判定する。第1通信手段は、判定手段によって他のゲーム装置がネットワークに接続中であると判定されるとき、サーバから受信したアドレスに基づいて他のゲーム装置との間でネットワーク通信を行う。
【0017】
第3の発明では、通信ゲームシステムは、ネットワーク上に設けられた、つまり、ネットワークを介して接続可能なサーバ(72)をさらに含む。ゲーム装置の通知手段(42、S67、S71、S171)は、自己の識別情報を含みネットワークに接続中であることを示す通知をサーバに送信する。実施例では、通知データは、ID、プレイヤ名、接続アドレスやゲーム名等を含み、たとえば一定時間ごとに送信される。サーバの接続中リスト記憶手段(S203)は、たとえば、通知に基づいて管理され、ネットワークに接続中のゲーム装置の少なくとも識別情報およびアドレスを第3記憶手段(84)に記憶する。実施例では、接続中ゲーム装置のID、プレイヤ名、接続アドレスやゲーム名等を含
む接続中リストデータが記憶される。このように、サーバがネットワークに接続中であるゲーム装置の情報を管理する。ゲーム装置の問合せ手段(42、64、S77、S301)は、登録されている識別情報に対応する他のゲーム装置がネットワークに接続中であるか否かをサーバに問い合わせる。問合せ対象は、登録されているすべての相手識別情報であってもよいし、たとえばプレイヤに選択された一部の相手識別情報であってもよい。実施例では、問合せ対象のゲーム装置の少なくともIDを含む問合せデータが送信される。サーバの第1検出手段(S207、S209、S323、S325)は、問合せを受信したとき、当該受信した相手識別情報が第3記憶手段に記憶されているか否か、つまり、当該相手識別情報に対応するゲーム装置がネットワークに接続中であるか否かを検出する。応答手段(S211、S213、S331、S333)は、相手識別情報が第3記憶手段に記憶されていることが検出されたとき、当該相手識別情報に対応する他のゲーム装置のアドレスを、当該問合せを送信してきたゲーム装置に送信する。また、実施例では、問合せ対象のゲーム装置が接続中でないことが検出されたときには、通信不可を示すデータが送信される。ゲーム装置の判定手段は、サーバから受信した問合せ結果に基づいて、登録されている相手識別情報に対応する他のゲーム装置がネットワークに接続中であるか否かを判定する。つまり、近距離無線によって登録された相手識別情報に対応する他のゲーム装置との間でネットワーク通信可能であるか否かが判定される。第1通信手段(42、64、S93、S95、S305、S307)は、登録された相手識別情報に対応する他のゲーム装置がネットワークに接続中であると判定されるとき、サーバから受信したアドレスに基づいて、当該他のゲーム装置との間でネットワーク通信を行う。このように、ネットワークに接続中のゲーム装置の識別情報をサーバで管理するようにしたので、近距離無線によって登録された相手が接続中であるか否かをサーバで検出することができる。そして、当該相手が接続中であるときには当該相手に接続するための情報(アドレス)をサーバの応答によって取得できる。したがって、近距離無線通信を行って識別情報を登録した相手と離れた場合でも、ネットワークを介して通信することができる。
【0018】
第4の発明は、
第1または2の発明に従属し、各ゲーム装置は、ユーザの操作に応じて入力された相手識別情報を取得する相手入力手段をさらに備える。登録手段は、相手入力手段によって取得された相手識別情報を第2記憶手段に記憶する。
【0019】
第4の発明では、相手入力手段(S289)は、ユーザないしプレイヤによって入力された他のゲーム装置の識別情報を取得する。登録手段(S293)は、入力された相手識別情報を第2記憶手段(48、28b、80)に記憶する。このように、相手の識別情報を手入力によって登録することができる。したがって、遠くに住んでいたりして会えない友達や近距離無線通信を行えない友達とも、識別情報を教え合って手入力で登録することによって、ネットワークを介して通信することができる。
【0020】
第5の発明は、
第4の発明に従属し、ネットワーク上のサーバをさらに備える。各ゲーム装置は、通知手段、および登録相手送信手段をさらに備えている。通知手段は、自己の識別情報を含みネットワークに接続中であることを示す通知をサーバに送信する。登録相手送信手段は、第2記憶手段に記憶されている相手識別情報をサーバに送信する。サーバは、接続中リスト記憶手段、登録相手記憶手段、第2検出手段、および応答手段を備えている。接続中リスト記憶手段は、通知に基づいてネットワークに接続中であるゲーム装置の少なくとも自己の識別情報およびアドレスを第3記憶手段に記憶する。登録相手記憶手段は、ゲーム装置から受信した相手識別情報を当該ゲーム装置ごとに第4記憶手段に記憶する。第2検出手段は、相手識別情報を受信したとき、当該受信した相手識別情報が第3記憶手段に記憶され、かつ、当該相手識別情報を送信したゲーム装置の識別情報が、当該相手識別情報に対応するゲーム装置にとっての相手識別情報として第4記憶手段に記憶されているか否かを検出する。応答手段は、第2検出手段によって、受信した相手識別情報が第3記憶手段に記憶され、かつ、当該相手識別情報を送信したゲーム装置の識別情報が、当該相手識別情報に対応するゲーム装置にとっての相手識別情報として第4記憶手段に記憶されていることが検出されたとき、当該相手識別情報に対応するゲーム装置のアドレスを、当該相手識別情報を送信したゲーム装置に送信する。判定手段は、サーバから受信したデータに基づいて、第2記憶手段に記憶されている相手識別情報に対応する他のゲーム装置がネットワークに接続中であり、かつ、自己の識別情報が当該他のゲーム装置にとっての相手識別情報として登録されているか否かを判定する。第1通信手段は、判定手段によって他のゲーム装置がネットワークに接続中であり、かつ、自己の識別情報が他のゲーム装置の相手識別情報として登録されていると判定されるとき、サーバから受信したアドレスに基づいて他のゲーム装置との間でネットワーク通信を行う。
【0021】
第5の発明では、通信ゲームシステムは、ネットワーク上に設けられた、つまり、ネットワークを介して接続可能なサーバ(72)をさらに含む。ゲーム装置の通知手段(42、S67、S71、S171)は、自己の識別情報を含みネットワークに接続中であることを示す通知をサーバに送信する。実施例では、通知データは、ID、プレイヤ名、接続アドレスやゲーム名等を含み、たとえば一定時間ごとに送信される。サーバの接続中リスト記憶手段(S203)は、たとえば、通知に基づいて管理され、ネットワークに接続中のゲーム装置の少なくとも識別情報およびアドレスを第3記憶手段(84)に記憶する。実施例では、接続中ゲーム装置のID、プレイヤ名、接続アドレスやゲーム名等を含む接続中リストデータが記憶される。このように、サーバがネットワークに接続中であるゲーム装置の情報を管理する。ゲーム装置の登録相手送信手段(42、64、S77、S301)は、登録されている相手識別情報をサーバに送信する。第2記憶手段に記憶されている全ての相手識別情報を含む問合せデータが送信されてよい。サーバの登録相手記憶手段(S321)は、ゲーム装置から受信した相手識別情報を当該ゲーム装置ごとに第4記憶手段(84)に記憶する。実施例では、受信した相手識別情報は、接続中リストデータにおいて、各ゲーム装置ごとのお友達リストデータとして記憶される。このように、サーバは、ネットワークに接続中であるゲーム装置のお友達リストデータも記憶している。第2検出手段(S323−S329)は、相手識別情報を受信したとき、当該受信した相手識別情報が第3記憶手段に記憶され、かつ、相手識別情報を送信してきたゲーム装置の識別情報が、相手識別情報に対応するゲーム装置にとっての相手識別情報として第4記憶手段に記憶されているか否かを検出する。つまり、相手識別情報に対応するゲーム装置がネットワークに接続中であり、かつ、相手識別情報を送信したゲーム装置の識別情報が、当該相手識別情報に対応するゲーム装置のお友達リストデータに登録されているか否かが検出される。応答手段(S331、S333、S337)は、受信した相手識別情報が第3記憶手段に記憶され、かつ、相手識別情報を送信したゲーム装置の識別情報が、当該相手識別情報に対応するゲーム装置にとっての相手識別情報として第4記憶手段に記憶されていることが検出されたとき、受信した相手識別情報に対応するゲーム装置のアドレスを、当該相手識別情報を送信してきたゲーム装置に送信する。また、実施例では、受信した相手識別情報に対応するゲーム装置が接続中でないことが検出されたとき、または、送信してきたゲーム装置の識別情報が、受信した相手識別情報に対応するゲーム装置にとっての相手識別情報として登録されていないことが検出されたときには、当該相手識別情報に対応する他のゲーム装置との通信不可を示すデータが送信される。ゲーム装置の判定手段(42、S83、S303)は、サーバから受信したデータに基づいて、第2記憶手段に記憶されている相手識別情報に対応する他のゲーム装置がネットワークに接続中であり、かつ、自己の識別情報が他のゲーム装置にとっての相手識別情報として登録されているか否かを判定する。このように、識別情報を手入力可能にしている場合には、ネットワーク通信を行うための条件として、互いに識別情報を登録していることを要求するようにしている。このような条件設定によって、互いに識別情報を教え合った友達との間でだけネットワーク通信を行うことができる。また、たとえば、一方が相手の識別情報を不正に取得したような場合にネットワーク通信が行われるのを防止することができる。第1通信手段(42、64、S93、S95、S305、S307)は、登録されている他のゲーム装置がネットワークに接続中であり、かつ、自己の識別情報が当該他のゲーム装置にとっての相手識別情報として登録されていると判定されるとき、サーバから受信したアドレスに基づいて他のゲーム装置との間でネットワーク通信を行う。このように、ネットワークに接続中のゲーム装置の識別情報をサーバで管理し、かつ、各ゲーム装置のお友達リストをサーバで記憶するようにした。したがって、手入力によってまたは近距離無線によって登録された相手が接続中であるか否かをサーバで検出することができるとともに、自己の識別情報が当該相手にとっての相手識別情報として登録されているか否かをサーバで検出することができる。そして、当該相手とネットワーク通信可能であるときには当該相手に接続するための情報(アドレス)をサーバから取得できる。したがって、たとえば、手入力によって識別情報を登録した遠くの友達であっても、または近距離無線通信を行った相手と離れた場合でも、ネットワークを介して通信することができる。
【0022】
第6の発明は、
第4または5の発明に従属し、各ゲーム装置は自己の識別情報を表示する第1表示手段をさらに備える。
【0023】
第6の発明では、ゲーム装置の第1表示手段(42、50、52、60、12、14、S243−S247)は、自己の識別情報を表示する。表示される識別情報、すなわち、手入力によって登録されることになる識別情報は、暗号化された識別情報であってもよい。暗号化された識別情報を表示する場合には、登録手段は取得した識別情報を復号化して登録する。このように、自己の識別情報を表示するようにしたので、各ユーザは、自分の所有するゲーム装置の識別情報を知ることができて友達に伝えることができる。
【0024】
第7の発明は、
第1ないし6のいずれかの発明に従属し、各ゲーム装置のうち、第1のゲーム装置は、第2のゲーム装置とネットワーク通信中の状態にある場合に、第3のゲーム装置から通信接続されたとき、第3のゲーム装置に第2のゲーム装置に対応する相手識別情報を送信するとともに、第2のゲーム装置に第3のゲーム装置に対応する相手識別情報を送信する紹介手段をさらに備える。
【0025】
第7の発明では、第1のゲーム装置は、紹介手段(42、S117、S119、S121)によって、自己の通信相手同士(第2のゲーム装置と第3のゲーム装置)を引き合わせることができる。このように、第1のゲーム装置は、自己の通信相手に登録されていない相手の識別情報に提供することができるので、第2のゲーム装置および第3のゲーム装置は、たとえば、近くで通信したことのない相手や、まだ知り合ってない友達の友達とも、ネットワーク通信可能になる。したがって、ネットワーク通信において通信可能な相手の範囲を広げることができる。
【0026】
第8の発明は、
第1ないし7のいずれかの発明に従属し、各ゲーム装置のうち、第1のゲーム装置は、第2のゲーム装置とネットワーク通信中の状態にある場合に、第2のゲーム装置から第3のゲーム装置に対応する相手識別情報を受信したとき、第3のゲーム装置との間でネットワーク通信を行う第3通信手段をさらに備える。
【0027】
第8の発明では、第1のゲーム装置は、第3通信手段(42、64、S97、S99、S101、S103)によって、通信相手(第2のゲーム装置)から他のゲーム装置(第3のゲーム装置)の識別情報を取得することができ、当該紹介された他のゲーム装置との間でネットワークを介して通信することができる。したがって、たとえば、近くで通信したことのない相手や、まだ知り合っていない友達の友達とも、ネットワークを介して通信することが可能になるので、ネットワーク通信において通信可能な相手の範囲を広げることができる。
【0028】
第9の発明は、
第8の発明に従属し、第1のゲーム装置は、登録判断手段および追加登録手段をさらに備える。登録判断手段は、第3通信手段によってネットワーク通信を行った第3のゲーム装置に対応する相手識別情報を第2記憶手段に記憶するか否かを判断する。追加登録手段は、登録判断手段によって記憶すると判断されたとき、当該第3のゲーム装置に対応する相手識別情報を第2記憶手段に追加的に記憶する。
【0029】
第9の発明では、第1のゲーム装置の登録判断手段(42、S105、S107)は、第3通信手段で通信した、つまり、通信相手から紹介された他のゲーム装置の識別情報を第2記憶手段に登録するか否かを判断する。実施例では、当該識別情報がお友達リストデータに既に登録されているか否かが判断され、また、未登録である場合にはたとえばプレイヤの操作に応じてお友達リストに追加するか否かが判断される。追加登録手段(42、S109)は、登録すると判断されたとき、当該識別情報を第2記憶手段のお友達リストデータに追加する。したがって、識別情報を未だ交換していない相手とネットワークを介して紹介を受けて通信した場合には、その相手の識別情報をお友達リストに登録するか否かを選択することができるので、たとえばプレイヤの希望する相手の識別情報のみを登録することができる。
【0030】
第10の発明は、
第2ないし9のいずれかの発明に従属し、各ゲーム装置は、第1通信手段によるネットワーク通信を行うか第2通信手段による近距離無線通信を行うかを選択する通信方法選択手段をさらに備える。
【0031】
第10の発明では、通信方法選択手段(42、S7−S13、S17、S19)によって、近距離無線通信かネットワーク通信かを選択することができる。実施例では、無線LANアクセスポイントの有無、お友達リストの有無、およびプレイヤの操作に応じて、通信方法が選択される。したがって、近くの相手との通信および遠くの相手との通信を選択的に実行することができる。
【0032】
第11の発
明は、複数のゲーム装置がネットワークを介して通信する通信ゲームシステムにおいて用いられるゲーム装置である。ゲーム装置は、第1記憶手段、登録手段、ネットワーク接続手段、判定手段、および第1通信手段を備える。第1記憶手段は、自己の識別情報を記憶する。登録手段は、他のゲーム装置の識別情報である相手識別情報を登録する。ネットワーク接続手段は、ネットワーク通信を行うためにネットワークにアクセス可能なアクセスポイントに接続する。判定手段は、ネットワーク接続手段によってアクセスポイントを介してネットワークに接続している場合において、登録手段によって登録された相手識別情報に対応する他のゲーム装置とネットワーク通信可能であるか否かを判定する。第1通信手段は、判定手段によってネットワーク通信可能であると判定された他のゲーム装置との間でネットワーク通信を行う。
【0033】
第11の発明は、上述のような通信ゲームシステムに用いられるゲーム装置であり、上述の第1の発明と同様に、近距離無線通信や手入力等で登録された友達とのみネットワーク通信することができ、また、友達から紹介されたその友達とネットワーク通信を行うことができる。したがって、誰もが参加し易いネットワークゲームを実現できる。
【0034】
第12の発
明は、複数のゲーム装置がネットワークを介して通信する通信ゲームシステムにおいて用いられ、少なくとも自己の識別情報を記憶する第1記憶手段を備えるゲーム装置のゲームプログラムである。ゲームプログラムは、ゲーム装置のプロセサに、登録ステップ、ネットワーク接続ステップ、判定ステップ、および第1通信ステップを実行させる。登録ステップは、他のゲーム装置の識別情報である相手識別情報を登録する。ネットワーク接続ステップは、ネットワーク通信を行うためにネットワークにアクセス可能なアクセスポイントに接続する。判定ステップは、ネットワーク接続ステップによってアクセスポイントを介してネットワークに接続している場合において、登録
ステップによって登録された相手識別情報に対応する他のゲーム装置とネットワーク通信可能であるか否かを判定する。第1通信ステップは、判定ステップによってネットワーク通信可能であると判定された他のゲーム装置との間でネットワーク通信を行う。
【0035】
第12の発明は、上述のような通信ゲームシステムに用いられるゲーム装置のゲームプログラムであり、上述の第1の発明および第2の発明と同様の効果を奏する。
【0036】
第13の発
明は、複数のゲーム装置がネットワークを介して通信する通信ゲームシステムにおいて用いられるサーバである。各ゲーム装置は、自己の識別情報を記憶する第1記憶手段と他のゲーム装置の識別情報である相手識別情報を記憶する第2記憶手段を備えている。サーバは、接続中リスト記憶手段、登録相手記憶手段、第2検出手段、および応答手段を備える。接続中リスト記憶手段は、ネットワークに接続中であるゲーム装置から受信した少なくとも自己の識別情報およびアドレスを第3記憶手段に記憶する。登録相手記憶手段は、ゲーム装置から受信した相手識別情報を当該ゲーム装置ごとに第4記憶手段に記憶する。第2検出手段は、相手識別情報を受信したとき、当該相手識別情報が第3記憶手段に記憶され、かつ、当該相手識別情報を送信したゲーム装置の識別情報が、当該相手識別情報に対応するゲーム装置にとっての相手識別情報として第4記憶手段に記憶されているか否かを検出する。応答手段は、第2検出手段によって相手識別情報が第3記憶手段に記憶され、かつ、当該相手識別情報を送信したゲーム装置の識別情報が、当該相手識別情報に対応するゲーム装置の相手識別情報として第4記憶手段に記憶されていることが検出されたとき、当該相手識別情報に対応するゲーム装置のアドレスを、当該相手識別情報を送信してきたゲーム装置に送信する。
【0037】
第13の発明では、サーバは、上述のような複数のゲーム装置がネットワークを介して通信する通信ゲームシステムにおいて用いられる。各ゲーム装置は、上述の第1の発明と同様に、第1記憶手段に自己の識別情報を記憶するとともに、第2記憶手段に相手識別情報を記憶している。このサーバは、各ゲーム装置でプレイヤによる手入力で相手識別情報を登録可能な場合に適用される。サーバの接続中リスト記憶手段(S203)は、ネットワークに接続中であるゲーム装置から受信した少なくとも自己の識別情報およびアドレスを第3記憶手段(84)に記憶する。つまり、サーバはネットワークに接続中であるゲーム装置の識別情報を管理している。実施例では、ゲーム装置の識別情報に対応付けられた接続アドレス、プレイヤ名等を含む接続中リストデータが記憶される。登録相手記憶手段(S321)は、ゲーム装置から受信した相手識別情報をゲーム装置ごとに第4記憶手段(84)に記憶する。つまり、サーバは、各ゲーム装置のお友達リストも記憶する。実施例では、相手識別情報は、接続中リストデータにおいて当該相手識別情報を送信してきたゲーム装置の識別情報に対応付けて記憶される。第2検出手段(S323−S329)は、相手識別情報を受信したとき、相手識別情報が第3記憶手段に記憶され、かつ、相手識別情報を送信したゲーム装置の識別情報が、相手識別情報に対応するゲーム装置にとっての相手識別情報として第4記憶手段に記憶されているか否かを検出する。つまり、相手識別情報に対応するゲーム装置がネットワークに接続中であり、かつ、相手識別情報に対応するゲーム装置でも、当該相手識別情報を送信したゲーム装置の識別情報を登録しているのか否かが検出される。応答手段(S331、S333、S337)は、受信した相手識別情報が第3記憶手段に記憶され、かつ、相手識別情報を送信したゲーム装置の識別情報が、相手識別情報に対応するゲーム装置にとっての相手識別情報として第4記憶手段に記憶されていることが検出されたとき、受信した相手識別情報に対応するゲーム装置のアドレスを、当該相手識別情報を送信したゲーム装置に送信する。つまり、相手識別情報に対応するゲーム装置と当該相手識別情報を送信してきたゲーム装置とがネットワーク通信可能であると判断されるときには、相手識別情報に対応するゲーム装置に接続するための情報を、当該相手識別情報を送信してきたゲーム装置に返信する。また、ネットワーク通信可能でないと判断されるときには、通信不可を示すデータが返信される。このように、サーバで、接続中のゲーム装置の識別情報を管理し、かつ、各ゲーム装置のお友達リストを記憶するようにした。そして、互いの識別情報が互いのゲーム装置で登録されていることが検出されるときに、接続するための情報を返信するようにした。したがって、互いに識別情報を登録しているゲーム装置間でだけネットワーク通信を行わせることができる。このため、たとえば、一方が相手の識別情報を不正に取得して手入力で登録したような場合や、相手識別情報を近距離無線や伝達等で正当に交換したが一方が他方との通信を拒否して登録しなかったような場合等に、ネットワーク通信が行われることを防止することができる。したがって、お互いが識別情報を登録している場合のみネットワークを介して通信を行うことができるので、安全かつ気軽に参加することが可能なネットワークゲームを実現できる。
【0038】
第14の発
明は、複数のゲーム装置がネットワークを介して通信する通信ゲームシステムにおいて用いられるサーバの通信処理プログラムである。各ゲーム装置は、自己の識別情報を記憶する第1記憶手段と他のゲーム装置の識別情報である相手識別情報を記憶する第2記憶手段を備えている。この通信処理プログラムは、サーバのプロセサに、接続中リスト記憶ステップ、登録相手記憶ステップ、第2検出ステップ、および応答ステップを実行させる。接続中リスト記憶ステップは、ネットワークに接続中であるゲーム装置から受信した少なくとも自己の識別情報およびアドレスを第3記憶手段に記憶する。登録相手記憶ステップは、ゲーム装置から受信した相手識別情報を当該ゲーム装置ごとに第4記憶手段に記憶する。第2検出ステップは、相手識別情報を受信したとき、当該相手識別情報が第3記憶手段に記憶され、かつ、当該相手識別情報を送信したゲーム装置の識別情報が、当該相手識別情報に対応するゲーム装置にとっての相手識別情報として第4記憶手段に記憶されているか否かを検出する。応答ステップは、第2検出ステップによって相手識別情報が第3記憶手段に記憶され、かつ、当該相手識別情報を送信したゲーム装置の識別情報が、当該相手識別情報に対応するゲーム装置にとっての相手識別情報として第4記憶手段に記憶されていることが検出されたとき、当該相手識別情報に対応するゲーム装置のアドレスを、当該相手識別情報を送信してきたゲーム装置に送信する。
【0039】
第14の発明は、上述の第13の発明のサーバに対応するプログラムであり、上述の第13の発明と同様な効果を奏する。
第15の発明(請求項1の発明)は、
各々に識別情報が付与されており、他のゲーム装置と通信ゲームを実行する通信ゲーム実行手段を備える複数のゲーム装置を含む通信ゲームシステムであって
、通信ゲーム実行手段によって通信ゲームが実行された後、
他のゲーム装置と識別情報の交換を行うか行わないかを選択させる選択手段、選択手段によって交換を行う選択がされたか交換を行わない選択がされたかを判断する判断手段、判断手段によって識別情報の交換を行う選択がされたことが判断されたとき、他のゲーム装置の識別情報である相手識別情報を登録
し、判断手段によって識別情報の交換を行わない選択がされたことが判断されたとき、他のゲーム装置の識別情報である相手識別情報を登録しない登録手段、および登録手段によって登録された相手識別情報に対応する他のゲーム装置
とネットワーク通信を行う第1通信手段を備える。
第16の発明(請求項2の発明)は、第15の発明に従属し、各ゲーム装置は、他のゲーム装置と近距離無線によって通信を行う第2通信手段をさらに備え、通信ゲーム実行手段は、第2通信手段を用いて通信ゲームを実行する。
第17の発明(請求項3の発明)は、第15または16の発明に従属し、登録手段は、相手識別情報の登録を入力手段からの指示に基づいて行う。
第18の発明(請求項4の発明)は、
各々に識別情報が付与されており、他のゲーム装置と通信ゲームを実行する通信ゲーム実行手段を備える複数のゲーム装置がネットワークを介して通信する通信ゲームシステムにおいて用いられるゲーム装置であって
、通信ゲーム実行手段によって通信ゲームが実行された後、
他のゲーム装置と識別情報の交換を行うか行わないかを選択させる選択手段、選択手段によって交換を行う選択がされたか交換を行わない選択がされたかを判断する判断手段、判断手段によって識別情報の交換を行う選択がされたことが判断されたとき、他のゲーム装置の識別情報である相手識別情報を登録
し、判断手段によって識別情報の交換を行わない選択がされたことが判断されたとき、他のゲーム装置の識別情報である相手識別情報を登録しない登録手段、および登録手段によって登録された相手識別情報に対応する他のゲーム装置
とネットワーク通信を行う第1通信手段を備える。
第19の発明(請求項5の発明)は、
各々に識別情報が付与されており、他のゲーム装置と通信ゲームを実行する通信ゲーム実行手段を備える複数のゲーム装置がネットワークを介して通信する通信ゲームシステムにおいて用いら
れるゲーム装置のゲームプログラムであって、ゲーム装置のプロセサに
、通信ゲーム実行
手段によって通信ゲームが実行された後、
他のゲーム装置と識別情報の交換を行うか行わないかを選択手段が選択させる選択ステップ、選択ステップによって交換を行う選択がされたか交換を行わない選択がされたかを判断手段が判断する判断ステップ、判断ステップによって識別情報の交換を行う選択がされたことが判断されたとき、登録手段が、他のゲーム装置の識別情報である相手識別情報を登録
し、判断ステップによって識別情報の交換を行わない選択がされたことが判断されたとき、他のゲーム装置の識別情報である相手識別情報を登録しない登録ステップ、および
第1通信手段が、登録ステップによって登録された相手識別情報に対応する他のゲーム装置とネットワーク通信を行う第1通信ステップを実行させる。
第20の発明(請求項6の発明)は、
各々に識別情報が付与されており、他のゲーム装置と通信ゲームを実行する通信ゲーム実行手段を備える複数のゲーム装置がネットワークを介して通信する通信ゲームシステムにおいて
実行される通信ゲーム方法であって
、通信ゲーム実行
手段によって通信ゲームが実行された後、
他のゲーム装置と識別情報の交換を行うか行わないかを選択手段が選択させる選択ステップ、選択ステップによって交換を行う選択がされたか交換を行わない選択がされたかを判断する判断ステップ、判断ステップによって識別情報の交換を行う選択がされたことが判断されたとき、登録手段が、他のゲーム装置の識別情報である相手識別情報を登録
し、判断ステップによって識別情報の交換を行わない選択がされたことが判断されたとき、他のゲーム装置の識別情報である相手識別情報を登録しない登録ステップ、および
第1通信手段が、登録ステップによって登録された相手識別情報に対応する他のゲーム装置とネットワーク通信を行う第1通信ステップを含む。
【発明の効果】
【0040】
この発明によれば、他のゲーム装置の識別情報を登録し、当該登録した識別情報に対応するゲーム装置との間でネットワーク通信可能であると判定される場合に、当該相手とネットワーク通信をするようにした。したがって、識別情報を登録した相手とだけネットワーク通信することができるので、参加し易いネットワークゲームを実現できる。
【0041】
近距離無線によって通信した相手との間で識別情報を交換して登録する場合には、その後インターネットなどのネットワークに接続し、たとえばサーバを介して識別情報に基づいて相手が接続中であると判定されるときには当該相手と通信するようにした。したがって、識別情報を交換した相手とネットワークを介して通信することができるので、近距離無線通信によって通信ゲームを行った相手と離れた場所に存在することとなっても通信ゲームを行うことができる。
【0042】
手入力によって相手の識別情報を登録する場合には、相手も自分の識別情報を登録していればネットワークを介して通信可能であると判定される。したがって、直接会えないような友達や知り合いとも識別情報を交換して登録することによってネットワークを介して通信することができる。
【0043】
また、ネットワーク通信において、通信相手に別の通信中の相手を紹介するようにした。したがって、通信可能な相手の範囲を広げることができ、また、紹介された相手の識別情報を登録することによって友達の輪を広げることができる。
【0044】
このように、ネットワーク通信の相手が近距離で通信するような身近な人や識別情報を伝えることのできる知り合いなどから始まって徐々に友達の友達に広がるようにしているので、ネットワークゲームに安全かつ気軽に参加することが可能になる。したがって、ネットワークゲームを避けていたような一般的なゲームユーザなどにとって参加し易いネットワークゲームを実現できる。
【0045】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための形態】
【0047】
図1を参照して、この発明の実施例であるゲーム装置10は、第1の液晶表示器(LCD)12および第2のLCD14を含む。このLCD12およびLCD14は、所定の配置位置となるようにハウジング16に収納される。この実施例では、ハウジング16は、上側ハウジング16aと下側ハウジング16bとによって構成され、LCD12は上側ハウジング16aに収納され、LCD14は下側ハウジング16bに収納される。したがって、LCD12とLCD14とは縦(上下)に並ぶように近接して配置される。
【0048】
なお、この実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
【0049】
図1からも分かるように、上側ハウジング16aは、LCD12の平面形状よりも少し大きな平面形状を有し、一方主面からLCD12の表示面を露出するように開口部が形成される。一方、下側ハウジング16bは、その平面形状が上側ハウジング16aよりも横長に選ばれ、横方向の略中央部にLCD14の表示面を露出するように開口部が形成される。また、下側ハウジング16bには、音抜き孔18が形成されるとともに、操作スイッチ20(20a,20b,20c,20d,20e,20Lおよび20R)が設けられる。
【0050】
また、上側ハウジング16aと下側ハウジング16bとは、上側ハウジング16aの下辺(下端)と下側ハウジング16bの上辺(上端)の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、LCD12の表示面とLCD14の表示面とが対面するように、上側ハウジング16aを回動させて折りたたんでおけば、LCD12の表示面およびLCD14の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング16aと下側ハウジング16bとは、回動可能に連結せずに、それらを一体的(固定的)に設けたハウジング16を形成するようにしてもよい。
【0051】
操作スイッチ20は、方向指示スイッチ(十字スイッチ)20a,スタートスイッチ20b、セレクトスイッチ20c、動作スイッチ(Aボタン)20d、動作スイッチ(Bボタン)20e、動作スイッチ(Lボタン)20Lおよび動作スイッチ(Rボタン)20Rを含む。スイッチ20a,20bおよび20cは、下側ハウジング16bの一方主面において、LCD14の左側に配置される。また、スイッチ20dおよび20eは、下側ハウジング16bの一方主面において、LCD14の右側に配置される。さらに、スイッチ20Lおよびスイッチ20Rは、それぞれ、下側ハウジング16bの上端(天面)の一部であり上側ハウジング16aとの連結部以外の部分において、当該連結部を挟むようにして左右に配置される。
【0052】
方向指示スイッチ20aは、ディジタルジョイスティックとして機能する。4つの押圧部の1つを操作することによって、プレイヤによって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)やカーソルの移動方向の指示等が可能である。スタートスイッチ20bは、プッシュボタンで構成され、ゲームの開始(再開)、や一時停止等のために用いられる。セレクトスイッチ20cは、プッシュボタンで構成され、ゲームモードの選択等のために用いられる。
【0053】
動作スイッチ20dすなわちAボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプする、切る等の任意の動作(アクション)をさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ20eすなわちBボタンは、プッシュボタンで構成され、セレクトスイッチ20cで選択したゲームモードの変更やAボタン20dで決定したアクションの取り消し等のために用いられる。
【0054】
動作スイッチ20L(Lボタン)および動作スイッチ20R(Rボタン)は、プッシュボタンで構成され、Lボタン20LおよびRボタン20Rは、Aボタン20dおよびBボタン20eと同様の操作に用いることができ、また、Aボタン20dおよびBボタン20eの補助的な操作に用いることができる。
【0055】
また、LCD14の上面には、タッチパネル22が装着される。タッチパネル22としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル22は、その上面をスティック24ないしはペン(スタイラスペン)或いは指(以下、これらを「スティック24等」という場合がある。)で、押圧したり、撫でたり、触れたり、叩いたりすることにより操作すると、スティック24等によって操作された(つまり、タッチ入力された)位置の座標を検出して、検出した座標(検出座標)に対応する座標データを出力する。
【0056】
なお、この実施例では、LCD14(LCD12も同じ、または略同じ。)の表示面の解像度は256dot×192dotであり、タッチパネル22の検出精度(操作面)も表示画面に対応して256dot×192dotとしてある。ただし、
図1では、タッチパネル22を分かり易く示すために、タッチパネル22をLCD14と異なる大きさで示してあるが、LCD14の表示画面の大きさとタッチパネル22の操作面の大きさとは同じ大きさである。なお、タッチパネル22の検出精度は、表示画面の解像度よりも低くてもよく、高くてもよい。
【0057】
LCD12およびLCD14には異なるゲーム画面が表示され得る。たとえば、レースゲームでは一方のLCDに運転席からの視点による画面を表示し、他方のLCDにレース(コース)全体の画面を表示することができる。また、RPGでは、一方のLCDにマップやプレイヤキャラクタ等のキャラクタを表示し、他方のLCDにプレイヤキャラクタが所有するアイテムを表示することができる。さらに、一方のLCD(この実施例では、LCD12)にゲームのプレイ画面を表示し、他方のLCD(この実施例では、LCD14)に当該ゲームを操作するための文字情報やアイコン等の画像を含むゲーム画面(操作画面)を表示することができる。さらには、2つのLCD12およびLCD14を合わせて1つの画面として用いることにより、プレイヤキャラクタが倒さなければならない巨大な怪物(敵キャラクタ)を表示することもできる。
【0058】
したがって、プレイヤはスティック24等でタッチパネル22を操作することにより、LCD14の画面に表示されるプレイヤキャラクタ、敵キャラクタ、アイテムキャラクタ、文字情報、アイコン等のキャラクタ画像を指示したり、コマンドを選択したりすることができる。
【0059】
なお、ゲームの種類によっては、その他の入力指示、たとえばLCD14に表示されたアイコンの選択または操作、座標入力指示等に用いることもできる。
【0060】
このように、ゲーム装置10は、2画面分の表示部となるLCD12およびLCD14を有し、いずれか一方(この実施例では、LCD14)の上面にタッチパネル22が設けられるので、2画面(12,14)と2系統の操作部(20,22)とを有する構成になっている。
【0061】
また、この実施例では、スティック24は、たとえば上側ハウジング16aの側面(右側面)近傍に設けられる収納部(穴ないし凹部)26に収納することができ、必要に応じて取り出される。ただし、スティック24を設けない場合には、収納部26を設ける必要もない。
【0062】
さらに、ゲーム装置10はメモリカード(またはゲームカートリッジ)28を含む。このメモリカード28は着脱自在であり、下側ハウジング16bの裏面ないしは底面(下端)に設けられる挿入口30から挿入される。
図1では省略するが、挿入口30の奥部には、メモリカード28の挿入方向先端部に設けられるコネクタ(図示せず)と接合するためのコネクタ46(
図2参照)が設けられており、したがって、メモリカード28が挿入口30に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア42(
図2参照)がメモリカード28にアクセス可能となる。
【0063】
なお、
図1では表現できないが、下側ハウジング16bの音抜き孔18と対応する位置であり、この下側ハウジング16bの内部には、スピーカ32(
図2参照)が設けられる。
【0064】
また、
図1では省略するが、たとえば、下側ハウジング16bの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング16bの底面側には、電源スイッチ、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなども設けられる。
【0065】
図2はゲーム装置10の電気的な構成を示すブロック図である。
図2を参照して、ゲーム装置10は電子回路基板40を含み、この電子回路基板40にはCPUコア42等の回路コンポーネントが実装される。CPUコア42は、バス44を介してコネクタ46に接続されるとともに、RAM48、第1のグラフィック処理ユニット(GPU)50、第2のGPU52、入出カインターフェイス回路(以下、「I/F回路」という。)54、LCDコントローラ60およびワイヤレス通信部64に接続される。
【0066】
コネコタ46には、上述したように、メモリカード28が着脱自在に接続される。メモリカード28は、ROM28aおよびRAM28bを含み、図示は省略するが、ROM28aおよびRAM28bは、互いにバスで接続され、さらに、コネクタ46と接合されるコネクタ(図示せず)に接続される。したがって、上述したように、CPUコア42は、ROM28aおよびRAM28bにアクセスすることができるのである。
【0067】
ROM28aは、ゲーム装置10で実行すべきゲーム(仮想ゲーム)のためのゲームプログラム、画像(キャラクタ画像、背景画像、アイテム画像、アイコン(ボタン)画像、メッセージ画像など)データおよびゲームに必要な音(音楽)のデータ(音データ)等を予め記憶する。RAM(バックアップRAM)28bは、そのゲームの途中データやゲームの結果データを記憶(セーブ)する。
【0068】
RAM48は、バッファメモリないしはワーキングメモリとして使用される。つまり、CPUコア42は、メモリカード28のROM28aに記憶されたゲームプログラム、画像データおよび音データ等をRAM48にロードし、ロードしたゲームプログラムを実行する。また、CPUコア42は、ゲームの進行に応じて発生または取得されるデータ(ゲームデータやフラグデータ等)をRAM48に記憶しつつゲーム処理を実行する。
【0069】
なお、ゲームプログラム、画像データおよび音データ等は、ROM28aから一度に全部または必要に応じて部分的にかつ順次的に読み出され、RAM48に記憶される。
【0070】
ただし、メモリカード28のROM28aには、ゲーム以外の他のアプリケーションについてのプログラムおよび当該アプリケーションの実行に必要な画像データ等が記憶される。また、必要に応じて、音(音楽)データが記憶されてもよい。かかる場合には、ゲーム装置10では、当該アプリケーションが実行される。
【0071】
GPU50およびGPU52は、それぞれ、描画手段の一部を形成し、たとえばシングルチップASICで構成され、CPUコア42からのグラフィックスコマンド(graphics command :作画命令)を受け、そのグラフィックスコマンドに従ってゲーム画像データを生成する。ただし、CPUコア42は、グラフィックスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラム(ゲームプログラムに含まれる。)をGPU50およびGPU52のそれぞれに与える。
【0072】
また、GPU50には、第1のビデオRAM(以下、「VRAM」という。)56が接続され、GPU52には、第2のVRAM58が接続される。GPU50およびGPU52が作画コマンドを実行するにあたって必要なデータ(画像データ:キャラクタデータやテクスチャ等のデータ)は、GPU50およびGPU52が、それぞれ、第1のVRAM56および第2のVRAM58にアクセスして取得する。ただし、CPUコア42は、描画に必要な画像データをRAM48から読み出し、GPU50およびGPU52を介して第1のVRAM56および第2のVRAM58に書き込む。GPU50はVRAM56にアクセスして表示のためのゲーム画像データを作成し、その画像データをVRAM56の描画バッファに記憶する。GPU52はVRAM58にアクセスして描画のためのゲーム画像データを作成し、その画像データをVRAM58の描画バッファに記憶する。描画バッファとしてはフレームバッファまたはラインバッファ等が採用されてよい。
【0073】
VRAM56およびVRAM58は、LCDコントローラ60に接続される。LCDコントローラ60はレジスタ62を含み、レジスタ62はたとえば1ビットで構成され、CPUコア42の指示によって「0」または「1」の値(データ値)を記憶する。LCDコントローラ60は、レジスタ62のデータ値が「0」である場合には、GPU50によって作成されたゲーム画像データをLCD12に出力し、GPU52によって作成されたゲーム画像データをLCD14に出力する。一方、レジスタ62のデータ値が「1」である場合には、LCDコントローラ60は、GPU50によって作成されたゲーム画像データをLCD14に出力し、GPU52によって作成されたゲーム画像データをLCD12に出力する。
【0074】
なお、LCDコントローラ60は、VRAM56およびVRAM58から直接画像データを読み出すことができるし、あるいはGPU50およびGPU52を介してVRAM56およびVRAM58から画像データを読み出すこともできる。
【0075】
また、VRAM56およびVRAM58はRAM48に設けられてもよいし、あるいはその描画バッファおよびZバッファがRAM48に設けられてもよい。
【0076】
I/F回路54には、操作スイッチ20,タッチパネル22およびスピーカ32が接続される。ここで、操作スイッチ20は、上述したスイッチ20a,20b,20c,20d,20e,20Lおよび20Rであり、操作スイッチ20が操作されると、対応する操作信号(操作データ)がI/F回路54を介してCPUコア42に入力される。また、タッチパネル22から出力される操作データ(座標データ)がI/F回路54を介してCPUコア42に入力される。さらに、CPUコア42は、ゲーム音楽(BGM)、効果音またはゲームキャラクタの音声(擬制音)などのゲームに必要な音データをRAM48から読み出し、I/F回路54を介してスピーカ32からその音を出力する。
【0077】
ワイヤレス通信部64は他のゲーム装置10や通信機器との間で無線によってデータを送受信するための通信手段である。ワイヤレス通信部64は、相手方への通信データを無線信号に変調してアンテナから送信し、また、相手方からの無線信号を同じアンテナで受信して通信データに復調する。このワイヤレス通信部64を介して、ゲーム装置10は、他のゲーム装置10との間でデータを通信して通信ゲームを実行する。ワイヤレス通信部64は、たとえばIEEE802.11(Wi−Fi)に対応しており、無線LANによって他のゲーム装置10や通信機器とデータを通信することが可能である。ゲーム装置10は、たとえば近くに存在する他のゲーム装置10との間で無線LANによって通信ゲームを実行してよい。また、ゲーム装置10は、TCP/IPプロトコルを用いてインターネットを介して他のコンピュータ、サーバおよびゲーム装置10等とデータを通信することができる。したがって、ゲーム装置10は、たとえば家庭内LANや公衆無線LANの無線LANアクセスポイントからインターネットサービスプロバイダ(ISP)にアクセスし、ISPを介してインターネットないしWAN(Wide Area Network)のようなネットワークに接続し、離れた場所でインターネットに接続している他のゲーム装置10との間で通信ゲームを実行することができる。
【0078】
なお、この実施例では、ワイヤレス通信部64が無線LAN規格に従って動作する場合を説明するが、他の実施例では、たとえばBluetoothのような他の無線通信規格に従うものであってもよい。
【0079】
また、このワイヤレス通信部64は、たとえば時分割多元接続方式をベースとした無線通信を実行することも可能である。近くの他のゲーム装置10との間での通信ゲームはこの無線通信方式で実行されてよい。たとえば、各ゲーム装置10には1通信サイクル中にタイムスロットが割り当てられ、割り当てられたスロットで自己のデータを送信する。なお、このような無線通信の技術は、本件出願人による特開2004−135778号公報および特開2004−136009号公報などに詳細に開示されるので参照されたい。
【0080】
複数台の上述のようなゲーム装置10を用いて、この実施例の通信ゲームシステムが構成される。この通信ゲームシステムにおいては、
図3に示すような近距離の場合でも
図4に示すような遠距離の場合でも、複数のゲーム装置10間で通信ゲームが行われる。
【0081】
まず、
図3に示すように、複数のゲーム装置10が互いに近くに存在する場合に、複数のゲーム装置10間で近距離無線通信によって通信ゲームが実行される。たとえば、複数のゲーム装置10のうちの1つが親機となり、その他は子機となって、親機と子機との間でデータが通信される。各プレイヤは自機が親機になるか子機になるかをたとえば選択画面で選択する。ゲーム装置10は、親機として機能する場合、通信可能範囲内に存在する子機を探して接続し、子機として機能する場合には通信可能範囲内に存在する参加可能な親機を探して接続する。
【0082】
この近距離の場合の通信ゲームが実行されると、ゲーム装置10の識別情報が複数のゲーム装置10間で自動的または各プレイヤの選択操作に応じて交換される。つまり、各ゲーム装置10は、近距離の場合の通信ゲームによって、当該通信ゲームに参加した相手のゲーム装置10の識別情報を取得できる。たとえば、このような近距離範囲内の通信ゲームは、友達同士の間で行われることが想定されるので、各プレイヤは、友達同士で集まって通信ゲームを行うことによって、友達の所有するゲーム装置10の識別情報を取得できる。取得された他のゲーム装置10の識別情報は、お友達リストデータとして記憶される。
【0083】
この近距離の通信ゲームによって取得できる識別情報は、遠距離の場合の通信のための識別情報である。したがって、近距離の通信ゲームを行って相手の識別情報を取得したプレイヤは、その後相手と離れても、たとえばインターネット等を介した通信によって通信ゲームを行うことができる。
【0084】
図4に示すように、遠距離の場合の通信ゲームは、複数のゲーム装置10間でインターネット等のネットワークを介して実行される。たとえば、各ゲーム装置10は、無線LANアクセスポイントのような各アクセスポイント70を介してインターネットにアクセスする。また、この実施例では、通信ゲームシステムはインターネット上のサーバ72を含み、このサーバ72は各ゲーム装置10のマッチングサーバとして機能する。サーバ72はコンピュータであり、CPU、メモリ、ネットワーク通信のための通信装置等を含み、メモリに記憶されたプログラムに従って動作する。
【0085】
たとえば、ゲーム装置10はアクセスポイント70を介してサーバ72に接続し、自己の識別情報を含みオンライン中(接続中または通信中)であることを示す通知データをサーバ72に送信する。サーバ72は、この通知データを受信することによって、当該識別情報に対応するゲーム装置10が接続中であることを把握する。サーバ72は、受信した識別情報を接続中リストデータとして記憶する。ゲーム装置10による通知データの送信はたとえば一定時間ごとに実行され、サーバ72は通知データを受信しなくなったことに基づいて当該ゲーム装置10が通信中ではなくなったことを把握でき、接続中リストデータを更新する。
【0086】
そして、ゲーム装置10は、友達リストの識別情報を含む問合せデータをサーバ72に送信し、識別情報に対応する他のゲーム装置10がサーバ72に接続中であるか否かを問い合わせる。サーバ72は、問合せの識別情報が接続中リストにある否かを検出し、接続中であると判断される場合には、当該ゲーム装置10の接続アドレスを問い合わせてきたゲーム装置10に返信する。したがって、ゲーム装置10は、相手のゲーム装置10が接続中であることを示す問合せ結果データを受信した場合には、受信したデータから取得した当該相手の接続アドレスに基づいて当該相手のゲーム装置10に接続して、通信ゲームを行うことができる。
【0087】
図5には、ゲーム装置10のRAM48のメモリマップの一例が示される。RAM48は、自己識別データ記憶領域74、サーバアドレス記憶領域76、ゲームデータ記憶領域78、お友達リスト記憶領域80および通信相手情報記憶領域82等を含む。なお、
図5にはメモリマップの一部のみが示されており、RAM48にはゲームの進行に必要な各種データが記憶される。
【0088】
自己識別データ記憶領域74には、自己のID、接続アドレス、プレイヤ名等の情報が記憶される。IDは、通信ゲームにおけるゲーム装置10の識別情報である。このIDは、たとえば、メモリカード28のROM28a、ゲーム装置10のRAM48に含まれる不揮発性メモリ等に予め記憶されていてもよい。しかし、この実施例では、メモリカード28の所有者またはゲーム装置10の所有者が変更した場合に変更可能にするために、IDは、たとえば、この通信ゲームのためのメモリカード28がゲーム装置10に装着されて初期設定としてプレイヤ名の設定が行われるときに生成される。あるいは、IDは、ゲーム装置10の所有者名の設定が行われるとき等に生成されてRAM48の不揮発性メモリ等に記憶されてもよい。このIDの設定方法は任意であるが、IDは唯一無二の値ないし番号に設定される必要がある。一例として、IDは、ゲーム装置10のEthernet(登録商標)デバイスとしても機能するワイヤレス通信部64のMACアドレスに、当該IDが生成される際の時刻情報を付加することによって生成されてよい。時刻情報はたとえばCPUコア42に接続される図示しない時計ICから取得されてよい。
【0089】
また、接続アドレスは、ゲーム装置10がインターネットに接続する際に使用するIPアドレスである。送信データにはこの接続アドレスが送信元IPアドレスとして含められる。接続アドレスは、この実施例ではプライベートIPアドレスである。たとえば、接続アドレスは、無線LANアクセスポイント70のDHCP(Dynamic Host Configuration Protocol)サーバ機能によって割り当てられワイヤレス通信部64のDHCPクライアント機能によって取得されて、RAM48に記憶される。あるいは、接続アドレスは、ゲーム装置10において当該プレイヤによって手動設定されてもよい。プレイヤの契約しているISPあるいは公衆無線LANのアクセスポイント70の接続されるISP等がプライベートIPアドレスをDHCP等で割り振る場合には、送信データの送信元IPアドレスは当該ISPのゲートウェイでグローバルIPアドレスに変換される。一方、プレイヤの契約しているISPあるいは公衆無線LANのアクセスポイント70の接続されるISP等がグローバルIPアドレスをDHCPまたはPPPoE等で割り振りまたは固定のグローバルIPアドレスを配布するような場合には、無線LANアクセスポイント70が、NAPT(Network Address Port Translation)またはIPマスカレード機能を用いて、送信データの送信元IPアドレスを、プライベートアドレスからグローバルアドレスに変換し、またポート番号も変換する。
【0090】
また、プレイヤ名は、たとえば初期設定でプレイヤの操作によって入力される。通信ゲームでは、このプレイヤ名データの含まれた送信データを受信することによって、ゲーム装置10では相手のプレイヤ名を表示することが可能になる。
【0091】
サーバアドレス記憶領域76には、サーバ72またはサーバ72を管理するコンピュータのグローバルIPアドレスおよびポート番号等が記憶される。サーバアドレスは、メモリカード28のROM28aに予め記憶されていてもよいし、プレイヤの操作によって入力されてもよい。サーバ72にデータを送信する場合には、このサーバアドレスが宛先IPアドレスとして送信データに含められる。
【0092】
ゲームデータ記憶領域78には、通信ゲームを実行するためのゲームプログラム、ゲーム画面を生成するための画像データ、音声を出力するための音声データ等が記憶される。
【0093】
お友達リスト記憶領域80には、プレイヤと通信ゲームを行った相手の識別情報を含むお友達リストデータが記憶される。お友達リストデータは、相手のゲーム装置10のIDおよび相手のプレイヤ名の情報等を含む。お友達リストデータは、近距離無線通信で通信ゲームを行った場合に、プレイヤの選択操作に応じてまたは自動的に生成される。さらに、お友達リストデータには、インターネット通信でお友達の紹介を受けた相手(すなわち、友達の友達)の識別情報も、プレイヤの選択操作に応じてまたは自動的に追加され得る。生成または更新されたお友達リストデータは、メモリカード28の不揮発性メモリであるRAM28bに保存される。通信ゲームの開始時等にメモリカード28のRAM28bにお友達リストデータが保存されている場合には、当該データが読み出されてお友達リスト記憶領域80に記憶される。
【0094】
通信相手情報記憶領域82には、インターネット通信ないしネットワーク通信で通信ゲームをするまたは通信中の状態にある通信相手の情報が記憶される。通信相手情報は、相手のゲーム装置10のID、接続アドレスおよびプレイヤ名等を含む。接続アドレスは、通信相手のゲーム装置10のグローバルIPアドレスである。既にお友達リストに登録されている通信相手の接続アドレスは、問合せに応じてサーバ72から取得されて記憶される。また、インターネット通信で通信相手からその友達を紹介された場合には、その友達の情報は、通信相手のゲーム装置10から取得されて記憶される。インターネット通信ゲームで通信相手にデータを送信する際には、この接続アドレスが宛先IPアドレスに設定される。送信データの宛先IPアドレスは、ISPまたは無線LANアクセスポイント70等において、対応するゲーム装置10のプライベートIPアドレス等に変換されるので、送信データは通信相手ゲーム装置10に届けられることとなる。
【0095】
図6には、サーバ72のメモリのメモリマップの一例が示される。サーバ72のメモリは接続中リスト記憶領域84等を含む。なお、
図6にはサーバ72のメモリマップの一部のみが示されており、当該メモリには必要な各種データが生成または取得されて記憶される。
【0096】
接続中リストデータとしては、インターネットに接続中であるゲーム装置10の情報が記憶される。具体的には、接続中のゲーム装置10のID、接続アドレスおよびプレイヤ名等が記憶される。各ゲーム装置10は、インターネットに接続したとき、サーバ72に接続中であることを示す通知データを定期的に送信する。通知データには、当該ゲーム装置のID、プレイヤ名および接続アドレスが含まれる。サーバ72は通知データを受信したときに接続中リストデータを生成しまたは更新する。なお、サーバ72は1つの通信ゲームの管理のために設けられてよい。しかし、サーバ72が複数種類のゲームを管理する場合には、上述の接続中の各ゲーム装置10の情報は、
図6に示すように、ゲーム名(ゲーム識別情報)に関連付けて記憶される。
【0097】
この通信ゲームシステムでは、上述のように、近距離無線通信で通信ゲームを共に実行した相手のゲーム装置10の識別情報がお友達リストとして記憶される。その後、ゲーム装置10は、インターネットに接続してサーバ72に問い合わせた結果、お友達リストに登録された相手のゲーム装置10がインターネットに接続している場合には、サーバ72から当該ゲーム装置10の接続アドレスを取得して当該ゲーム装置10との間でインターネットを介して通信ゲームを実行することができる。さらに、この実施例では、あるゲーム装置10の友達リストに登録されている友達同士が友達ではない場合には、両者を紹介するようにしている。つまり、ゲーム装置10は、通信ゲームを行った友達の友達であるゲーム装置10がインターネットに接続中である場合には、友達からその友達のゲーム装置10の情報を取得することができる。そして、紹介された友達同士で通信ゲームを実行することができ、お友達リストデータに相手の識別情報を登録することができる。したがって、この通信ゲームシステムでは、プレイヤたちの友達の輪を広げつつネットワークゲームを実行することができる。
【0098】
たとえば、
図7にこのインターネット通信ゲームの概要が示される。
図7では、ゲーム装置B(プレイヤ名:「ひろし」)とゲーム装置C(プレイヤ名:「みか」)とが互いのお友達リストデータに登録されており、友達同士である。また、ゲーム装置A(プレイヤ名:「じろう」)とゲーム装置Bもお互いのお友達リストに登録された友達同士である。しかし、ゲーム装置Aとゲーム装置Cとは友達同士ではない。
図7では、ゲーム装置Bとゲーム装置Cとがインターネットを介して通信中である場合が示されている。この場合において、ゲーム装置Aがインターネットに接続して、サーバ72からゲーム装置Bが接続中であるとの問合せ結果を受信したとき、ゲーム装置Aはゲーム装置Bに接続要求を送信して、ゲーム装置Bと通信接続して通信ゲームを実行することが可能である。一方、ゲーム装置Bは、ゲーム装置Cとも通信中の状態にあるので、たとえばゲーム装置Aと通信ゲームを実行した後に、ゲーム装置Aとゲーム装置Cを引き合わせる。つまり、ゲーム装置Bは、ゲーム装置Cの接続アドレス等を含む情報をゲーム装置Aに送信するとともに、ゲーム装置Aの接続アドレス等を含む情報をゲーム装置Cに送信する。したがって、ゲーム装置Aとゲーム装置Cとは、ゲーム装置Bから紹介を受けると、相手に通信接続して通信ゲームを実行することができる。
【0099】
この通信ゲームシステムにおいて通信ゲームを実行する際の動作をフロー図を参照しながら説明する。
図8にはゲーム装置10のゲーム動作の一例が示される。ゲーム処理が開示されると、
図8の最初のステップS1で、CPUコア42は、操作スイッチ20からの操作入力データまたはタッチパネル22からの入力データ等に基づいてプレイヤ名設定を実行する。プレイヤ名の設定はこの通信ゲームを最初にプレイする場合やプレイヤ名を変更する場合等に行われる。CPUコア42は生成したプレイヤ名データを自己識別データ記憶領域74に記憶する。なお、既にプレイヤ名が設定されてメモリカード28のRAM28bに記憶されている場合には、CPUコア42は、先にRAM28bからプレイヤ名データを読み出してRAM48に記憶しておく。
【0100】
次に、ステップS3で、CPUコア42はID生成処理を実行する。たとえば、CPUコア42は、ワイヤレス通信部64のMACアドレスおよび時計ICの時刻情報等に基づいて、ゲーム装置10のIDを生成して、IDデータを自己識別データ記憶領域74に記憶する。IDの生成は、プレイヤ名が最初に設定される場合やプレイヤ名が変更される場合等に実行される。既にIDが生成済みでありメモリカード28のRAM28bに記憶されている場合には、CPUコア42は、先にRAM28bからIDデータを読み出してRAM48に記憶しておく。
【0101】
続いて、CPUコア42は、ステップS5で、たとえば操作スイッチ20からの操作入力データまたはタッチパネル22からのタッチ入力データ等に基づいて、通信ゲームを開始するか否かを判断する。ステップS5で“NO”であれば、つまり、たとえばゲーム開始を指示する入力データが所定時間経過しても検出されなかった場合等には、ゲーム処理を終了する。
【0102】
ステップS5で“YES”であれば、つまり、ゲーム開始を指示する入力データが検出された場合には、CPUコア42は、ステップS7で、ワイヤレス通信部64から取得されるデータに基づいて、無線通信可能範囲に無線LANアクセスポイント70が存在するか否かを判断する。たとえば、ワイヤレス通信部64は、無線LANアクセスポイント70の発する電波を検出した場合には、その存在を示すデータをCPUコア42に与える。
【0103】
ステップS7で“YES”であれば、CPUコア42は、ステップS9でRAM48にお友達リストデータが記憶されているか否かを判断する。ステップS9で“YES”であれば、CPUコア42は、ステップS11で、GPU50または52およびLCDコントローラ等を用いて、遠近両方の友達を選択可能な通信範囲選択画面をLCD12または14に表示する。この通信範囲選択画面では、
図9(A)に示すように、「近くにいる友達」と「遠くにいる友達」の両方が選択可能に表示され、操作スイッチ20またはタッチパネル22の操作によってカーソルで選択することによって、いずれか一方を選択することができる。「近くにいる友達」は、近距離無線通信による通信ゲームに対応し、「遠くにいる友達」はインターネットを介したネットワーク通信ゲームに対応する。この選択画面によって、近くの人と通信するかまたは遠くの人と通信するかをプレイヤに選択させることができる。
【0104】
続いて、ステップS13で、CPUコア42は、操作スイッチ20またはタッチパネル22からの入力データ等に基づいて、選択肢「遠くにいる友達」が選択されたか否かを判断する。ステップS13で“YES”であれば、CPUコア42は、ステップS15で、インターネット通信処理を実行する。この処理によって、インターネットを介した通信ゲームが実行される。このインターネット通信処理の動作は、後述する
図11から
図14に示される。
【0105】
一方、ステップS7で“NO”であれば、つまり、無線LANアクセスポイント70が検出されなかった場合には、処理はステップS17へ進む。また、ステップS9で“NO”であれば、つまり、お友達リストデータが未だ生成されていない場合には、処理はステップS17へ進む。
【0106】
ステップS17では、CPUコア42は、近くの友達のみを選択可能な通信範囲選択画面を表示する。この通信範囲選択画面では、
図9(B)に示すように、「近くにいる友達」のみが選択可能に表示され、「遠くにいる友達」は選択不可能な状態(たとえば薄い色や反転した状態等)で表示され、または表示されなくてもよい。無線LANアクセスポイント70が検出されない場合には、ゲーム装置10がインターネットに接続することができず、インターネット通信を実行することができないので、通信ゲームの選択肢からネットワークゲームが外される。また、お友達リストが未だ記憶されていない場合にも、インターネットを介した通信ゲームを実行する相手が存在しないので、同様に、選択画面の選択肢からネットワークゲームが外される。
【0107】
また、ステップS13で“NO”である場合、またはステップS17を終了すると、CPUコア42は、ステップS19で、操作スイッチ20またはタッチパネル22からの入力データ等に基づいて、選択肢「近くにいる友達」が選択されたか否かを判断する。ステップS19で“NO”であれば、処理はステップS7へ戻る。
【0108】
一方、ステップS19で“YES”であれば、CPUコア42は、ステップS21で無線通信処理を実行する。この処理によって、近距離無線通信による通信ゲームが実行される。この無線通信処理の動作は、後述する
図10に示される。ステップS15またはステップS21を終了すると、このゲーム処理を終了する。
【0109】
図10には、
図8のステップS21における無線通信処理の動作の一例が示される。CPUコア42は、まず、ステップS31で、無線通信可能範囲に存在する他のゲーム装置10を検索する。たとえば、CPUコア42は、ワイヤレス通信部64を用いて、所定のデータをブロードキャスト送信するとともに、他のゲーム装置10から送信される所定のデータの受信を試みる。
【0110】
次に、ステップS33で、CPUコア42は、検索の結果、他のゲーム装置10が見つかったか否かを、ワイヤレス通信部64から取得したデータに基づいて判断する。ステップS33で“YES”であれば、CPUコア42は、ステップS35で、発見されたゲーム装置10に接続するか否かを、たとえば操作スイッチ20またはタッチパネル22からの入力データに基づいて判断する。なお、プレイヤに指示によらずに自動的に接続するか否かを判断してもよい。
【0111】
一方、ステップS33で“NO”であれば、つまり、他のゲーム装置10からのデータが検出されない場合には、処理はステップS37に進む。また、ステップS35で“NO”であれば、つまり、たとえば見つかったゲーム装置10に対する接続を指示する入力データが検出されていない場合には、処理はステップS37に進む。ステップS37では、
CPUコア42は、検索を継続するか否かをたとえば操作スイッチ20またはタッチパネル22からの入力データに基づいて判断する。なお、プレイヤの指示によらずに、たとえば所定時間の経過を検出することによって自動的に、検索を継続するか否かを判断してもよい。ステップS37で“NO”であれば、つまり、たとえば検索の中止を指示する入力データが検出された場合には、この無線通信処理を終了する。一方、ステップS37で“YES”であれば、処理はステップS31に戻る。
【0112】
また、ステップS35で“YES”であれば、つまり、たとえば接続を指示する入力データが検出された場合には、CPUコア42は、ステップS39で、ワイヤレス通信部64を介して、当該他のゲーム装置10との接続処理を実行して、接続を確立する。
【0113】
続いて、ステップS41で、CPUコア42は、ワイヤレス通信部64を介して、通信ゲーム処理を実行する。これによって、接続された他のゲーム装置10との間でデータを送受信しつつ、ゲームやアプリケーションが実行される。
【0114】
そして、ステップS43で、CPUコア42はIDを交換するか否かを判断する。たとえば操作スイッチ20またはタッチパネル22からの入力データ等に基づいて、交換が指示されたか否かが判断される。なお、プレイヤの指示によらずに自動的に交換するか否かを判断してもよい。
【0115】
ステップS43で“YES”であれば、CPUコア42は、ステップS45で、自己識別データ記憶領域74に記憶されている自己のIDとプレイヤ名とを含むデータを、ワイヤレス通信部64を介して他のゲーム装置10に送信する。なお、複数の他のゲーム装置10との間で通信ゲームを実行した場合には、これら複数のゲーム装置10に自己の識別情報を送信する。
【0116】
また、ステップS47で、CPUコア42は、他のゲーム装置10から送信されたIDとプレイヤ名とを含むデータを、ワイヤレス通信部64を介して受信して、RAM48に記憶する。なお、複数の他のゲーム装置10との間で通信ゲームを実行した場合には、これら複数のゲーム装置10の識別情報を受信する。
【0117】
そして、ステップS49で、CPUコア42は、受信したデータからIDとプレイヤ名とを抽出して、当該IDとプレイヤ名とを対応付けてお友達リスト記憶領域80に追加的に記憶する。なお、既にお友達リストデータに登録されている場合には、当該識別情報は追加されない。
【0118】
一方、ステップS43で“NO”であれば、ID交換をしないで処理はステップS51に進む。ステップS51では、通信ゲームを終了するか否かを、たとえば操作スイッチ20またはタッチパネル22からの入力データに基づいて判断する。ステップS51で“NO”であれば、処理はステップS41に戻る。一方、ステップS51で“YES”であれば、この無線通信処理を終了する。なお、図示は省略されるが、ステップS49で、お友達リストに新たなID等が追加された場合には、終了処理等の際に、CPUコア42は、当該お友達リストデータを、他のセーブすべきゲームデータとともにメモリカード28のRAM28bに保存する。
【0119】
図11には、
図8のステップS15におけるインターネット通信処理の動作の一例が示される。
図11の最初のステップS61で、CPUコア42は、
図8のステップS7と同様にして、無線通信可能範囲内に無線LANアクセスポイント70が存在するか否かを判断する。ステップS61で“NO”であれば、インターネットにアクセスできないので、ステップS63で、CPUコア42はエラー表示処理を実行して、LCD12またはLCD14にたとえば「アクセスポイントがありません」のようなエラーメッセージを表示して、このインターネット通信処理を終了する。
【0120】
一方、ステップS61で“YES”であれば、CPUコア42は、ステップS65で、ワイヤレス通信部64を介して、無線LANアクセスポイント70への接続処理を実行し、無線LANアクセスポイント70と接続を確立する。たとえば、この処理によって、ゲーム装置10は、接続アドレス(プライベートIPアドレス)を無線LANアクセスポイント70から取得して、自己識別データ記憶領域74に記憶する。
【0121】
続いて、ステップS67で、CPUコア42は、自己識別データ記憶領域74に記憶されている自己のID、接続アドレスおよびプレイヤ名等の情報を含む接続情報データを、ワイヤレス通信部64を介してサーバ72に送信する。この送信データの宛先IPアドレスにはサーバアドレス記憶領域76に記憶されているサーバアドレスが設定され、送信元IPアドレスには自己識別データ記憶領域74の接続アドレスが設定される。接続アドレスは、たとえば、無線LANアクセスポイント70またはISP等でグローバルIPアドレスに変換されるので、サーバ72はゲーム装置10のグローバルIPアドレスを接続アドレスとしてメモリに記憶でき、当該ゲーム装置10宛にデータを送信できる。
【0122】
そして、ステップS69で、CPUコア42は、アクセスポイント確認処理を開始する。この処理によって、ゲーム装置10の通信可能範囲に無線LANアクセスポイント70が存在しているか否かを常時確認する。CPUコア42はアクセスポイント確認処理を他の処理と並列的に実行する。アクセスポイント確認処理の動作の一例が
図15に示される。
【0123】
図15のステップS151で、CPUコア42は、
図8のステップS7と同様にして、無線通信可能範囲内に無線LANアクセスポイント70が存在するか否かを判断する。ステップS151で“YES”であれば、CPUコア42はステップS153で一定時間が経過したか否かを判断する。ステップS153で“NO”であれば一定時間の経過を待ち、“YES”であればステップS151へ戻る。
【0124】
一方、ステップS151で“NO”であれば、CPUコア42はステップS155でタイムアウトであるか否かを判断する。たとえば、無線LANアクセスポイント70を検出できなくなってから所定時間が経過したか否かを判断する。ステップS155で“NO”であればステップS151へ戻る。一方、ステップS155で“YES”であれば、CPUコア42は、ステップS157で必要なゲームデータをメモリカード28のRAM28bに保存する。また、ステップS159で、CPUコア42は、
図11のステップS63と同様にして、エラーを表示して、このアクセスポイント確認処理およびインターネット通信処理を終了する。
【0125】
図11に戻って、ステップS71では、CPUコア42は通知処理を開始する。この処理によって、ゲーム装置10が接続中であることをサーバ72に常時通知する。CPUコア42は通知処理を他の処理と並列的に実行する。通知処理の動作の一例が
図16に示される。
【0126】
図16のステップS171で、CPUコア42は、通信中ないし接続中であることを示す通知データを、ワイヤレス通信部64を介して、サーバ72に送信する。通知データには、当該ゲーム装置10の識別情報が含まれるので、サーバ72は通知データを受信することによって、当該ゲーム装置10が接続中であるか否かを把握することができる。続いて、ステップS173で、CPUコア42は、一定時間が経過したか否かを判断する。ステップS173で“NO”であれば、一定時間の経過を待ち、“YES”であれば、ステップS171へ戻る。なお、CPUコア42はインターネット通信処理を終了するときはこの通知処理も終了する。
【0127】
図11に戻って、ステップS73では、CPUコア42は、お友達リストデータに基づいて、リストに登録されている相手のプレイヤ名を、GPU50または52およびLCDコントローラ60等を用いてLCD12または14に表示する。
【0128】
続いて、ステップS75で、CPUコア42は、操作スイッチ20またはタッチパネル22からの入力データとプレイヤ名の表示位置データ等に基づいて、表示されたお友達リストから通信ゲームの相手が選択されたか否かを判断する。なお、プレイヤの意思によらずにたとえばランダムでまたは順に相手を選択するようにしてもよい。あるいは、お友達リストの中から複数の相手を選択して一括して問合せをするようにしてもよいし、またはリスト中の全ての相手を選択して一括して問い合わせるようにしてもよい。
【0129】
ステップS75で“YES”であれば、CPUコア42は、ステップS77で選択相手のIDを含む問合せデータを、ワイヤレス通信部64を介してサーバ72に送信する。このように、お友達リストの中から任意の相手を選択して、当該選択相手について問合せを行うことができる。
【0130】
ステップS75で“NO”である場合、またはステップS77を終了すると、CPUコア42は、ステップS79で、問合せの結果をワイヤレス通信部64を介してサーバ72から受信したか否かを判断する。ステップS79で“YES”であれば、CPUコア42は、ステップS81で受信データをRAM48に記憶する。サーバ72に問い合わせたゲーム装置10が接続中である場合には、受信データには当該ゲーム装置10の接続アドレスが含まれ、接続中でない場合には受信データには接続アドレスが含まれていない。続くステップS83で、CPUコア42は、選択相手の接続アドレスを取得したか否かを判断し、“NO”であれば処理は
図12のステップS85へ進む。一方、ステップS83で“YES”であれば、つまり、選択相手が接続中である場合には、処理は
図12のステップS89へ進む。
【0131】
図12のステップS85では、CPUコア42は、操作スイッチ20またはタッチパネル22からの入力データ等に基づいて、通信ゲームのキャンセルであるか否かを判断する。ステップS85で“YES”であれば、つまり、たとえばキャンセルを指示する入力データが検出された場合等には、CPUコア42は、ステップS87で通信ゲームをキャンセルする処理を実行して、このインターネット通信処理を終了する。一方、ステップS85で“NO”であれば、処理はステップS91へ進む。
【0132】
また、
図12のステップS89では、CPUコア42は、相手のプレイヤ名を通信相手選択画面に表示する。この画面の一例が
図17に示され、画面中には、通信可能な友達としてインターネットに接続中であるゲーム装置10に対応するプレイヤ名が表示される。プレイヤは操作スイッチ20またはタッチパネル22を操作して、プレイヤ名をカーソルで指示および決定することによって、この画面で通信ゲームを実行する相手を選択することができる。
【0133】
続いて、ステップS91で、CPUコア42は、操作スイッチ20またはタッチパネル22からの入力データとプレイヤ名の表示位置データ等に基づいて、
図17の画面で通信相手が選択されたか否かを判断する。ステップS91で“NO”であれば、つまり、たとえば通信相手選択画面で通信相手が選択されていない場合には、処理はステップS97へ進む。
【0134】
一方、ステップS91で“YES”であれば、CPUコア42は、ステップS93で、選択された通信相手(便宜上、ゲーム装置xと呼ぶものとする。)への接続処理を実行する。なお、CPUコア42は、選択された通信相手の識別情報、つまり、ID、プレイヤ名および接続アドレス等を通信相手情報記憶領域82に記憶する。たとえば、CPUコア42は、通信相手情報記憶領域82に記憶された当該ゲーム装置xの接続アドレスを宛先IPアドレスとした接続要求を、ワイヤレス通信部64を介して送信し、ゲーム装置xから接続応答を受信することによって、当該ゲーム装置xと接続する。
【0135】
そして、ステップS95でCPUコア42はワイヤレス通信部64を介してゲーム装置xとの間での通信ゲーム処理を実行する。これによって、接続された通信相手との間でデータを送受信しつつ、ゲームやアプリケーション(チャットなども含む。)が実行される。
【0136】
続くステップS97で、CPUコア42は通信相手情報記憶領域82に記憶されている通信相手から他のゲーム装置(便宜上、ゲーム装置yと呼ぶものとする。)の情報を受信したか否かを判断する。この実施例では、通信相手に通信中の状態にあるゲーム装置yが存在する場合には、通信相手が仲介者となって紹介を行うようにしているので、当該ゲーム装置yの情報が通信相手から送信されてくる。
図7の例で言えば、ゲーム装置Cにゲーム装置Bからゲーム装置Aの情報が送信されてくる場合に相当する。
【0137】
ステップS97で“NO”であれば、つまり、通信相手に通信中の他のゲーム装置yがいない場合には、処理は
図13のステップS111へ進む。一方、ステップS97で“YES”であれば、CPUコア42は、ステップS99で、受信したゲーム装置yの情報をRAM48に記憶する。受信データには、ゲーム装置yのID、プレイヤ名、および接続アドレス等の識別情報が含まれるので、CPUコア42は、当該ゲーム装置yの識別情報を通信相手情報記憶領域82に記憶(追加)する。続くステップS101で、CPUコア42は、ステップS93と同様にして、ゲーム装置yへの接続処理を実行して、当該ゲーム装置yと接続する。そして、ステップS103で、CPUコア42は、ステップS95と同様にして、ゲーム装置yとの間で通信ゲーム処理を実行する。このように、ネットワーク通信ゲームにおいては、通信可能な相手の範囲を広げることができ、したがって、近距離無線通信によって識別情報を交換していない相手とも、インターネットを介して通信ゲームを行うことができる。ステップS103を終了すると、処理は
図13のステップS105へ進む。
【0138】
図13のステップS105では、CPUコア42は、ゲーム装置yの情報がお友達リストデータに登録されているか否かを判断する。ステップS105で“NO”であれば、CPUコア42は、ステップS107でお友達リストに当該ゲーム装置yの情報を登録するか否かを判断する。たとえば、操作スイッチ20またはタッチパネル22から登録を指示する入力データが検出されたか否かを判断する。この場合には、プレイヤは希望する相手の識別情報のみをお友達リストに登録することができる。なお、プレイヤの意思に委ねずに、未登録の場合には自動的にお友達リストに登録するものと判断するようにしてもよい。
【0139】
ステップS107で“YES”であれば、CPUコア42は、ステップS109で、ゲーム装置yの情報、すなわち、IDおよびプレイヤ名をお友達リスト記憶領域80に追加する。このようにして、友達から紹介を受けたゲーム装置yの情報を新たな友達の情報として友達リストに加えることができる。ステップS109を終了すると処理はステップS111へ進む。なお、紹介を受けたゲーム装置yからもさらに紹介を受けるようにする場合には、ステップS109の後、
図12のステップS97へ戻るようにしてもよい。また、ステップS105で“YES”である場合、またはステップS107で“NO”である場合には、処理はそのままステップS111へ進む。
【0140】
ステップS111では、CPUコア42は、ワイヤレス通信部64を介して、他のゲーム装置(便宜上ゲーム装置zと呼ぶものとする。)から接続要求を受信したか否かを判断する。接続要求は、ステップS93、ステップS101等のゲーム装置10への接続処理において送信されるデータである。
図7の例で言えば、たとえば、ゲーム装置Cにゲーム装置Aが接続要求を送信する場合に相当する。
【0141】
ステップS111で“YES”であれば、CPUコア42は、ステップS113で、ゲーム装置zへの接続処理を実行して、ゲーム装置zに接続する。なお、接続要求として受信したデータには、ゲーム装置zのID、プレイヤ名、および接続アドレス等の情報が含まれるので、CPUコア42はID、プレイヤ名および接続アドレスを通信相手情報記憶領域82に記憶(追加)する。したがって、当該接続アドレスを宛先IPアドレスとしてデータを送信することで、CPUコア42はたとえばゲーム装置zに接続応答を送信できる。そして、ステップS115で、CPUコア42は、
図12のステップS95と同様にして、ゲーム装置zとの間での通信ゲーム処理を実行する。
【0142】
続いて、ステップS117で、CPUコア42は、他に通信中の相手(便宜上ゲーム装置wと呼ぶものとする。)が存在するか否かを、通信相手情報記憶領域82のデータに基づいて判断する。つまり、ゲーム装置zに対して紹介すべき通信中のゲーム装置wが存在するか否かを判断している。ステップS117で“YES”であれば、CPUコア42は、ステップS119で、ゲーム装置wの情報(ID、プレイヤ名および接続アドレス等)を通信相手情報記憶領域82から読み出して、ワイヤレス通信部64を介してゲーム装置zに送信する。また、ステップS121で、CPUコア42は、ゲーム装置zの情報(ID、プレイヤ名および接続アドレス等)を通信相手情報記憶領域82から読み出して、ワイヤレス通信部64を介してゲーム装置wに送信する。このようにして、ゲーム装置zとゲーム装置wとを仲介することができる。
【0143】
ステップS111で“NO”である場合、ステップS117で“NO”である場合、またはステップS121を終了すると、処理は
図14のステップS123へ進む。
【0144】
図14のステップS123では、CPUコア42は、通信ゲームを終了するか否かを判断する。たとえば、操作スイッチ20またはタッチパネル22から終了を指示する入力データが検出されたか否かを判断する。ステップS123で“YES”であれば、CPUコア42は、ステップS125で、通信相手情報記憶領域82に記憶されている相手に、ワイヤレス通信部64を介して、自己のID等を含む終了通知を送信する。そして、ステップS127でCPUコア42は相手との通信終了処理を実行して、このインターネット通信処理を終了する。
【0145】
一方、ステップS123で“NO”であれば、CPUコア42は、ステップS129で終了通知を受信したか否かを判断する。ステップS129で“YES”であれば、CPUコア42は、ステップS131で、受信した相手との通信終了処理を実行する。たとえば、終了通知から相手のID等を抽出して、当該ID等に対応する通信相手のデータを通信相手情報記憶領域82から削除する。ステップS131を終了し、またはステップS129で“NO”であれば、ネットワークを介した通信ゲームを継続すべく、処理は
図11のステップS75へ戻る。
【0146】
この実施例では、サーバ72は、接続中リストの管理、および問合せに対する応答などの機能を果している。具体的には、ゲーム装置10がインターネットに接続したときに、接続中リストに当該ゲーム装置10の識別情報を登録する。また、友達リストのゲーム装置10が接続中であるか否かの問合せがあったとき、当該問合せられたゲーム装置10が接続中であるか否かを検出して、その結果を応答する。また、接続中のゲーム装置10から定期的に送信される通知に基づいて、接続中リストを更新する。
【0147】
図18には、サーバ72の通信処理の動作の一例が示される。この通信処理は一定時間ごとに繰り返し実行される。
図18の最初のステップS201で、サーバ72の図示しないCPUは、ゲーム装置10から接続情報を受信したか否かを判断する。この接続情報は、インターネットに接続したゲーム装置10から
図11のステップS67で送信される。
【0148】
ステップS201で“YES”であれば、サーバ72のCPUは、当該ゲーム装置を接続中リストに登録する。具体的には、メモリの接続中リスト記憶領域84に、ID、接続アドレス、およびプレイヤ名を記憶(追加)する。なお、このサーバ72が複数種類のゲームを管理する場合には、ゲーム名を含む接続情報を受信するので、ゲームごとに接続中リストデータを作成して管理する。
【0149】
ステップS203を終了し、または、ステップS201で“NO”であれば、サーバ72のCPUは、ステップS205で、ゲーム装置10から問合せを受信したか否かを判断する。この問合せは
図11のステップS77で送信される。ステップS205で“YES”であれば、サーバ72のCPUは、ステップS207で、問合せデータに含まれるID等と、接続中リスト記憶領域84の接続中リストに登録されているID等とを照合する。
【0150】
そして、ステップS209で、サーバ72のCPUは、問合せIDがリストに登録されているか否かを判断する。ステップS209で“YES”であれば、つまり、問合せられたゲーム装置10が通信中である場合には、サーバ72のCPUは、ステップS211で、問合せIDに対応する接続アドレスを接続中リスト記憶領域84から読み出して、当該接続アドレス等含む問合せ結果データを、この問合せを送信してきたゲーム装置10に送信する。
【0151】
一方、ステップS209で“NO”であれば、サーバ72のCPUは、ステップS213で問合せIDに対する通信不可を示す問合せ結果データを、この問合せを送信してきたゲーム装置10に送信する。ステップS211またはステップS213を終了し、または、ステップS205で“NO”であればこの通知処理を終了する。
【0152】
図19には、サーバ72のオンライン確認処理の動作の一例が示される。このオンライン確認処理は一定時間ごとに繰り返し実行される。
図19の最初のステップS221で、サーバ72のCPUは、ゲーム装置10から通信中を示す通知データを受信したか否かを判断する。ゲーム装置10からの通知は、
図16のステップS171で送信される。
【0153】
ステップS221で“YES”であれば、サーバ72のCPUは、ステップS223で、当該ゲーム装置10についての通知の受信時刻を、たとえば図示しない時計ICの出力データから取得して、メモリに記憶する。
【0154】
ステップS223を終了し、またはステップS221で“NO”であれば、サーバ72のCPUは、ステップS225で通知を受信してから所定時間を経過したゲーム装置が存在するか否かを、時計ICから取得した現時刻とメモリに記憶されている最後の受信時刻とに基づいて、判断する。ステップS225で“YES”であれば、サーバ72のCPUは、ステップS227で、接続中リスト記憶領域84から当該ゲーム装置10の情報を削除して、接続中リストデータを更新する。ステップS227を終了し、または、ステップS225で“NO”であれば、このオンライン確認処理を終了する。
【0155】
この実施例によれば、近距離無線通信によってデータを送受信した相手との間で識別情報を交換し、相手の識別情報を登録できるようにした。その後、互いに離れた場所に存在する場合には、インターネットなどのネットワークにアクセスして、たとえばサーバ72を介して当該識別情報に基づいて相手が接続中であるか否かを検出し、相手が接続中である場合には当該相手の接続アドレスを取得して、当該相手とデータを送受信することができる。このように、各ゲーム装置は、識別情報を登録した相手との間でネットワーク通信可能か否かを判定し、可能であるときには当該登録した相手との間でネットワーク通信を行うことができる。したがって、識別情報を交換して登録した相手とのみネットワーク通信することができるので、ネットワークゲームに安全かつ気軽に参加することが可能になり、一般的なゲームユーザなどにとって参加し易いネットワークゲームを実現できる。また、近距離無線通信によって通信ゲームを行った相手と離れた場所に存在することとなってもネットワークを介して通信ゲームを行うことができる。また、近距離無線通信によって友達の識別情報を取得して登録するだけで、簡単に当該友達とネットワーク通信を行うことが可能になる。
【0156】
また、ネットワーク通信においては、通信相手に別の通信中の相手が存在する場合には、紹介によって当該別の相手の識別情報を取得することができるので、これまでに知らなかった相手とも通信を行うことができる。したがって、ネットワーク通信によって通信可能な相手の範囲を広げることができる。また、紹介された相手の識別情報をお友達リストに登録することができるので、ネットワーク通信ゲームによって友達の輪を広げることができる。
【0157】
したがって、この通信ゲームシステムによれば、近くの友達とローカル通信するだけで友達の識別情報を取得してセーブしておくことができるので、その後は距離に関係なく離れた場所であってもその友達と通信ゲームを遊べるようになる。また、ネットワーク通信を行えば、友達の紹介で次々と友達の輪が広まって行くので、最初は友達が少なくてもプレイヤにネットワークゲームを楽しんでもらうことが可能である。しかも、身近な人から徐々に輪が広がるようにしているので、安全である。また、上述の実施例のように無線LAN機能を搭載する場合には、公衆無線LANでも家庭でもインターネットに繋がるので、気軽にネットワーク通信を楽しんでもらうことができる。このように、この通信ゲームシステムによれば、ネットワークゲームに安全かつ気軽に参加することが可能になるので、これまでネットゲームを避けていた一般的なゲームユーザなど、幅広い層の人達に楽しんでもらえる、参加し易いネットワークゲームを実現し提供することができる。
【0158】
なお、上述の実施例では、近距離無線通信を行った相手から取得した当該相手の識別情報をお友達リストに登録するようにした。しかし、相手の識別情報の取得方法は、近距離無線通信に限られない。他の実施例では、たとえば、お友達リストには、ユーザの手動で入力された識別情報を登録するようにしてもよい。このようにすれば、遠くに住んでいたり予定が合わなかったりして滅多に会えない友達や知人との間でも電話やメール等で識別情報を交換して手入力で簡単に当該相手の識別情報を登録することができるので、直接に会うことのできない友達や知人であっても簡単にネットワークを介して通信ゲームをプレイすることができる。
【0159】
具体的には、この実施例では、相手の識別情報が手入力で登録されるので、各プレイヤは、相手に識別情報を伝えるために、自己の識別情報を知る必要がある。このため、この実施例では、自己ID表示モードが準備される。たとえばゲーム開始時のメニュー画面(図示しない)において、プレイヤによる所定の操作スイッチ20またはタッチパネル22の操作によって自己ID表示モードを示す項目またはアイコン等が選択されると、画面上に自己の識別情報が表示される。
【0160】
たとえば
図20に自己ID表示モードにおける動作の一例が示される。
図20のステップS241で、CPUコア42はIDを表示するか否かを判断する。つまり、CPUコア42は、操作スイッチ20からの操作データまたはタッチパネル22からのタッチ入力データ等に基づいて、自己ID表示モードが選択されたか否かを判断する。
【0161】
このステップS241で“YES”であれば、つまり、操作データまたはタッチ入力データが自己ID表示モードの実行を指示するデータであった場合には、CPUコア42は、ステップS243で、自己のIDデータをRAM48の自己識別データ記憶領域74からワークエリアに読み出す。
【0162】
次に、ステップS245で、CPUコア42は、自己のIDを暗号化してユーザキーを生成する。このユーザキーは表示用のIDである。このように、この実施例では、セキュリティのため、IDをそのまま表示しないで、IDを暗号化した記号列ないし文字列(ユーザキー)を生成して表示するようにしている。
【0163】
そして、ステップS247で、CPUコア42は、生成したユーザキーとプレイヤ名とを含む画面(図示しない)をGPU50等を用いて生成してLCD12または14に表示する。プレイヤ名は自己識別データ記憶領域74に記憶されている。なお、各種画面の画像データはROM28aに予め記憶されている。
【0164】
ステップS247を終了すると、この自己ID表示モードの処理を終了する。なお、ステップS241で“NO”であれば、つまり、ID表示モードが選択されていない場合には、ID表示ための処理を実行せず、メイン処理に戻る。
【0165】
このように、自己のID(正確には暗号化したID)を表示することができるので、プレイヤは自己のIDをプレイヤ名とともに友人等に伝えることができる。
【0166】
なお、この実施例では、自己のIDは自己ID生成モードで生成され、自己のプレイヤ名はプレイヤ名設定モードで入力される。自己ID生成モードの動作の一例が
図21に示され、これは上述の実施例における
図8のステップS3での処理に相当する。また、プレイヤ名設定モードの動作の一例が
図22に示され、これは
図8のステップS1での処理に相当する。上述の実施例では自己ID生成モード、プレイヤ名設定モードおよび通信ゲームモードを1つのフロー図(
図8)にまとめて記載していたが、この実施例では、分かり易くするために各モードでフロー図を分けて記載している。メイン処理では各モードの処理が実行され、各モードの実質的な処理は当該モードの起動条件が満足されたと判定されたときに実行される。
【0167】
自己ID生成モードは、たとえば、ゲーム処理の開始が初めて指示されたとき、ゲーム装置10の所有者名の設定がされるとき、あるいは、この通信ゲームのプレイヤ名の設定がされるとき等に実行される。
【0168】
図21のステップS251で、CPUコア42は、IDを生成するか否かを判断する。具体的には、CPUコア42は、操作データまたはタッチ入力データ等に基づいて、ID生成指示と見なせる操作があったか否かを判断する。たとえば、通信ゲームの開始が初めて指示されたか否か、ゲーム装置10の所有者名が入力設定されたか否か、もしくは通信ゲームのプレイヤ名が入力設定されたか否か等が判断される。
【0169】
ステップS251で“YES”であれば、CPUコア42は、ステップS253で、IDを生成する。IDは、たとえば、MACアドレス、現時刻および任意のパスワード等を組み合わせることによって生成される。
【0170】
そして、ステップS255で、CPUコア42は、生成したIDをRAM48の不揮発性メモリ(たとえばフラッシュメモリ)に記憶する。なお、メモリカード28が装着されてゲーム処理が実行されている場合には、生成IDはRAM48の自己識別データ記憶領域74だけでなくメモリカード28のRAM28bにも記憶される。既にIDが記憶されている場合には上書きされる。
【0171】
ステップS255を終了すると、この自己ID生成モードを終了する。なお、ステップS251で“NO”であれば、つまり、ID生成が指示されていないと見なせる場合には、ID生成のための処理を実行しない。また、一旦IDを生成した後にゲーム処理が再起動された場合には、自己IDデータは、たとえば初期設定で、RAM48の不揮発性メモリまたはメモリカード28のRAM28bからRAM48の自己識別データ記憶領域74に読み出されることとなる。
【0172】
また、プレイヤ名設定モードは、たとえば、ゲーム開始時のメニュー画面において、プレイヤによる所定の操作スイッチ20またはタッチパネル22の操作によってプレイヤ名設定モードを示す項目またはアイコン等が選択されるときに実行される。
【0173】
たとえば
図22にプレイヤ名設定モードの動作の一例が示される。
図22のステップS261で、CPUコア42は、プレイヤ名を入力するか否かを判断する。つまり、CPUコア42は、操作スイッチ20からの操作データまたはタッチパネル22からのタッチ入力データ等に基づいて、プレイヤ名設定モードが選択されたか否かを判断する。
【0174】
ステップS261で“YES”であれば、CPUコア42は、ステップS263で、GPU50等を用いてプレイヤ名入力画面(図示しない)をLCD12または14に表示する。また、たとえば、タッチパネル22の設けられるLCD14にキーボードの画像を表示する。プレイヤはこのソフトウェアキーボードへのタッチ入力もしくは操作スイッチ20での入力によって、プレイヤ名を入力することができる。
【0175】
続いて、ステップS265で、CPUコア42は、入力完了であるか否かを判断する。たとえば、操作データまたはタッチ入力データ等に基づいて入力完了を示すアイコンが選択されたか否かを判断する。ステップS265で“NO”であれば、CPUコア42は、ステップS267で入力キャンセルであるか否かを判断する。たとえば、操作データまたはタッチ入力データ等に基づいてキャンセルを示すアイコンが選択されたか否かを判断する。ステップS267で“NO”であれば、処理はステップS263に戻ってプレイヤによる入力の受付を継続する。また、ステップS267で“YES”であれば、プレイヤ名の入力がキャンセルされたので、このプレイヤ名設定モードの処理を終了する。
【0176】
一方、ステップS265で“YES”であれば、CPUコア42は、ステップS269で、入力されたプレイヤ名を取得して、RAM48の自己識別データ記憶領域74に記憶する。なお、プレイヤ名はメモリカード28のRAM28bにも記憶されてよい。既にプレイヤ名が記憶されている場合には上書きされる。
【0177】
ステップS269を終了すると、このプレイヤ名設定モードの処理を終了する。なお、ステップS261で“NO”であれば、プレイヤ名設定のための処理を実行せず、メイン処理に戻る。また、一旦プレイヤ名を設定した後にゲーム処理が再起動された場合には、プレイヤ名データは、たとえば初期設定で、メモリカード28のRAM28bからRAM48の自己識別データ記憶領域74に読み出されることとなる。
【0178】
プレイヤは、相手から識別情報を教えてもらうと、その識別情報を自分の所有するゲーム装置10に手入力で登録する。したがって、この実施例では、相手ID入力モードが準備されている。たとえばゲーム開始時のメニュー画面において、プレイヤによる所定の操作スイッチ20またはタッチパネル22の操作によって相手ID入力モードを示す項目またはアイコン等が選択されると、相手ID入力モードが実行される。この入力モードが選択されると、ID入力画面(図示しない)が表示される。ID入力画面では、プレイヤは、たとえばLCD14に表示されたソフトウェアキーボードをタッチパネル22で操作して、あるいは操作スイッチ20を操作して、相手の識別情報を入力することができる。入力された相手の識別情報はお友達リスト記憶領域80に追加される。なお、プレイヤによって入力される識別情報はユーザキーであるので、ユーザキーを復号化することによってIDを取得し、このIDをお友達リストに記憶する。
【0179】
図23に相手ID入力モードの動作の一例が示される。
図23の最初のステップS281で、CPUコア42は、他のゲーム装置10のIDを入力するか否かを判定する。つまり、CPUコア42は、操作スイッチ20からの操作データまたはタッチパネル22からのタッチ入力データ等に基づいて、相手ID入力モードが選択されたか否かを判断する。
【0180】
ステップS281で“YES”であれば、CPUコア42は、ステップS283で、GPU50等を用いてID入力画面をLCD12または14に表示する。また、上述のプレイヤ名の入力の場合と同様に、たとえば、タッチパネル22の設けられるLCD14にキーボードの画像を表示し、ソフトウェアキーボードへのタッチ入力もしくは操作スイッチ20での入力によって、相手IDを入力することができるようにする。
【0181】
続いて、ステップS285で、CPUコア42は、入力完了であるか否かを判断する。たとえば、操作データまたはタッチ入力データ等に基づいて入力完了を示すアイコンが選択されたか否かを判断する。ステップS285で“NO”であれば、CPUコア42は、ステップS287で入力キャンセルであるか否かを判断する。たとえば、操作データまたはタッチ入力データ等に基づいてキャンセルを示すアイコンが選択されたか否かを判断する。ステップS287で“NO”であれば、処理はステップS283に戻ってプレイヤによる入力の受付を継続する。また、ステップS287で“YES”であれば、相手IDの入力がキャンセルされたので、この相手ID入力モードの処理を終了する。
【0182】
一方、ステップS285で“YES”であれば、CPUコア42は、ステップS289で、入力されたユーザキーとプレイヤ名を取得してRAM48のワークエリアに記憶する。続いて、ステップS291で、CPUコア42は、取得したユーザキーを復号化して、相手のIDを取得する。そして、ステップS293で、CPUコア42は、取得したIDとプレイヤ名とを対応付けて、お友達リスト記憶領域80に追加する。なお、メモリカード28のRAM28bにお友達リストが記憶されている場合には、当該RAM28bのお友達リストにも、取得した相手のIDおよびプレイヤ名を追加的に記憶する。
【0183】
ステップS293を終了すると、この相手ID入力モードを終了する。なお、ステップS281で“NO”であれば、相手ID入力のための処理を実行せず、メイン処理に戻る。また、一旦お友達リストデータが生成された後にゲーム処理が再起動された場合には、お友達リストデータは、たとえば初期設定で、メモリカード28のRAM28bからRAM48のお友達リスト記憶領域80に読み出されることとなる。
【0184】
このようにして、友達から知らせてもらった識別情報を、手入力で自分のゲーム装置10に登録することができる。なお、この実施例では、セキュリティのため、識別情報としてID自体ではなく、IDを暗号化して得たユーザキーを表示し、また入力させるようにしたが、他の実施例では、IDをそのまま表示し入力させるようにしてもよい。
【0185】
図24には通信ゲームモードの動作の一例が示される。たとえばゲーム開始時のメニュー画面において、プレイヤによる所定の操作スイッチ20またはタッチパネル22の操作によって通信ゲームモードを示す項目またはアイコン等が選択されると、通信ゲームモードが実行される。この
図24の通信ゲームモードの処理は、上述の
図8のステップS5からステップS21の処理と同様であり、同一の参照符号を付して、重複する説明を省略する。
【0186】
なお、この実施例では、手入力とともに近距離無線通信処理でも相手の識別情報をお友達リストに登録することができるようにしている。しかし、他の実施例では、手入力のみで相手の識別情報を登録するようにしてもよい。その場合、ゲーム装置10は近距離無線通信のための機能を備えなくてよい。
【0187】
通信ゲームモードにおいてネットワーク通信が選択された場合には、ゲーム装置10は、自己のIDや接続アドレス等の接続情報のほかに、お友達リスト記憶領域80のお友達リストデータをサーバ72に送信する。この実施例では、お友達リストデータの送信は、当該お友達リストに登録されている他のゲーム装置10とネットワーク通信可能であるか否かの問合せを兼ねている。お友達リストデータを送信するのは、サーバ72でゲーム装置10同士が互いに相手の識別情報を登録しているか否かをチェックするためである。
【0188】
この実施例では、ネットワーク通信の相手の識別情報を、近距離無線通信だけでなく手入力でも登録可能にしたので、たとえば、識別情報が漏れた場合や不正に取得された場合等には、片方のゲーム装置10だけが相手の識別情報を登録しているという事態になり得る。このような片方登録の場合にネットワーク通信が実行されてしまうのを防止するために、サーバ72で各ゲーム装置10のお友達リストを管理し、双方のゲーム装置10がそれぞれ相手の識別情報を登録しているか否かをチェックする。なお、直接の伝達や近距離無線通信等で正当に相手の識別情報を交換したにもかかわらず相手または自分が識別情報を登録しなかった場合にも、当該相手と自分との間ではネットワーク通信が実行されない。このように、プレイヤは相手とのネットワーク通信を拒否したい場合には、当該相手の識別情報を取得しても登録しなければよい。
【0189】
たとえば
図25および
図26にこの実施例のインターネット通信処理における動作の一例の一部が示される。
図25のステップS61からステップS71の処理は上述の実施例と同様であり、同一の参照符号を付して重複する説明を省略する。
【0190】
ステップS71で通知処理を開始した後、CPUコア42は、続くステップS301で、お友達リスト記憶領域80に登録されている相手のIDおよびプレイヤ名を含む問合せをワイヤレス通信部64を介してサーバ72に送信する。なお、送信される問合せデータには、少なくとも自己のIDがさらに含まれる。この実施例では、お友達リストに登録されている全ての相手のIDおよびプレイヤ名を送信する、つまり、お友達リストデータを送信することによって、お友達リスト中の全ての他のゲーム装置10についてネットワーク通信可能であるか否かの問合せを送信する。なお、他の実施例では、お友達リストに記憶されている相手のIDのみを送信するようにしてもよい。
【0191】
続いて、ステップS79で、CPUコア42は、ステップS301で送信した問合せに対する結果をサーバ72から受信したか否かを判断する。ステップS79で“YES”であれば、CPUコア42は、ステップS81で、受信データをRAM48のワークエリアに記憶する。
【0192】
続くステップS303で、CPUコア42は、相手の接続アドレスを取得したか否かを判断する。たとえば、サーバ72は、問合せIDに対応する他のゲーム装置10とネットワーク通信可能であると判定される場合には、当該IDに対応付けて当該相手の接続アドレスを送信し、問合せIDに対応する他のゲーム装置10とネットワーク通信不可であると判定される場合には、当該IDに対応付けて通信不可を示すデータを送信する。このため、ここでは、CPUコア42は、受信データにおいて、少なくとも1つの接続アドレスが問合せIDに対応付けられて記憶されているか否かを判断する。このようにして、受信した問合せ結果に基づいて、お友達リストに登録されている他のゲーム装置との間でネットワーク通信可能であるか否かを判定する。
【0193】
なお、ステップS303で“NO”の場合、またはステップS79で“NO”の場合には、処理は
図26のステップS85へ進む。
【0194】
一方、ステップS303で“YES”であれば、CPUコア42は、
図26のステップS305で、接続アドレスを取得できた相手(便宜上、ゲーム装置xと呼ぶものとする。)への接続処理を実行する。複数の接続アドレスを取得できた場合には、複数のゲーム装置xのそれぞれに対して通信接続する。なお、CPUコア42は、接続アドレスを取得できた相手の識別情報、つまり、ID、プレイヤ名および接続アドレス等を通信相手情報記憶領域82に記憶する。そして、ステップS307で、CPUコア42はワイヤレス通信部64を介してゲーム装置xとの間での通信ゲーム処理を実行する。複数のゲーム装置10と通信接続できた場合には、複数のゲーム装置xのそれぞれとの間で通信ゲーム処理を実行する。
【0195】
ステップS307を終了すると、処理はステップS97へ進む。また、ステップS85で“NO”であれば、つまり、ユーザの操作によってキャンセルが選択されていなかったり問合せが未だタイムアウトになっていなかったりする場合等には、処理はステップS97へ進む。ステップS97以降の処理は上述の実施例と同様であり、また、ステップS103の続きおよびステップS97で“NO”である場合の続きも上述の実施例(
図13および
図14)と同様であり、重複する説明は省略する。
【0196】
ゲーム装置10からお友達リストデータが送信されると、サーバ72は、各ゲーム装置10ごとにそのデータを記憶する。たとえば
図27に示すように、サーバ72は、接続中リスト記憶領域84において、ゲーム装置10のID等に対応付けて、当該ゲーム装置10のお友達リストを記憶する。お友達リストは、相手のIDおよびプレイヤ名を含む。つまり、この実施例では、サーバ72は、接続中リストでネットワークに接続中のゲーム装置10のID、プレイヤ名および接続アドレスを管理するばかりでなく、当該ゲーム装置10のお友達リストも記憶している。したがって、サーバ72でゲーム装置10同士が互いに相手の識別情報を登録しているか否かをチェックして、識別情報を相互に登録していないゲーム装置10同士の間ではネットワーク通信が実行されないようにすることができる。
【0197】
サーバ72は、お友達リストすなわち問合せを送信してきたゲーム装置10が、当該お友達リストに登録されている他のゲーム装置10との間でネットワーク通信が可能であるか否かを判断する。具体的には、サーバ72は、受信したお友達リスト中の相手IDのそれぞれが、接続中のゲーム装置10のIDとして接続中リストデータに記憶されているか否かを検出する。さらに、サーバ72は、接続中であることが検出された他のゲーム装置10のお友達リストのなかに、問合せを送信してきたゲーム装置10のIDが登録されているか否かを検出する。サーバ72は、お友達リストに登録されている相手が接続中であり、かつ、当該相手のお友達リストに当該ゲーム装置10の識別情報が登録されていると判定される場合には、当該相手とネットワーク通信が可能であると判定して、当該相手の接続アドレスを当該ゲーム装置10に返信する。一方、お友達リストに登録されている相手が接続中ではない場合、および問合せを送信してきたゲーム装置10が相手のお友達リストに登録されていない場合には、当該相手とネットワーク通信が不可であると判定して、当該相手とは通信不可である旨を返信する。
【0198】
たとえば
図28に、この実施例のサーバ72の通信処理における動作の一例が示される。
図28のステップS201からステップS205の処理は、上述の
図18と同様であり、同一の参照符号を付して重複する説明を省略する。
【0199】
図28のステップS205で“YES”であれば、つまり、ゲーム装置10から問合せを受信した場合には、サーバ72のCPUは、当該ゲーム装置10のお友達リストを接続中リストに登録する。つまり、CPUは、問合せデータ(お友達リストデータを含む)を受信して、当該受信データから当該ゲーム装置10のお友達リストデータを抽出する。そして、当該ゲーム装置10のIDに対応付けて、お友達リストデータに含まれる全ての相手のIDおよびプレイヤ名を接続中リスト記憶領域84に記憶する。
【0200】
なお、サーバ72のCPUは、受信したお友達リスト中の相手のIDが正規の番号ないし文字列であるか否かをチェックし、正規と判定されたIDだけを接続中リストのお友達リストとして記憶するようにしてよい。また、接続中リストデータにおけるお友達リストには、相手のプレイヤ名を記憶せずに相手のIDのみを記憶するようにしてもよい。
【0201】
続いて、ステップS323で、サーバ72のCPUは、問合せデータに含まれる相手のIDと、接続中リスト記憶領域84に記憶されている接続中のゲーム装置10のIDとを照合して、お友達リストに含まれる相手が接続中であるか否かを検出する。なお、問合せデータに複数の相手IDが含まれる場合、1つのIDを選択して、当該1つのIDについて検出を行う。
【0202】
そして、ステップS325で、サーバ72のCPUは、問合せられたIDが接続中リストに登録されているか否かを判断する。ステップS325で“YES”であれば、つまり、問合せられたゲーム装置10がネットワークに接続中である場合には、サーバ72のCPUは、ステップS327で、当該登録されているIDのお友達リストを参照する。つまり、当該接続中と判定されたIDに対応付けられたお友達リストに登録されているIDと、問合せを送信してきたゲーム装置10のIDとを照合して、相手のお友達リストに当該問合せを送信してきたゲーム装置10のIDが登録されているか否かを検出する。
【0203】
続くステップS329で、サーバ72のCPUは、問合せをしたゲーム装置10のIDが、接続中と判定された他のゲーム装置10のお友達リストに登録されているか否かを判断する。ステップS329で“YES”であれば、サーバ72のCPUは、当該問合せられた接続中のIDに対応する接続アドレスを、接続中リスト記憶領域84から読み出して、当該問合せられたIDに対して当該接続アドレスを問合せ結果として記憶する。つまり、問い合わせられたIDに対応付けてその接続アドレスを記憶した問合せ結果データを生成する。
【0204】
一方、ステップS329で“NO”であれば、つまり、問合せられたIDが接続中リストに記憶されているが、当該問合せIDのお友達リストに問合せを送信してきたゲーム装置10のIDが登録されていない場合には、一方のゲーム装置10のみで相手の識別情報が登録されているに過ぎないので、識別情報が交換されていないもの、または他方がネットワーク通信を拒否しているものと見なして、処理はステップS333に進む。
【0205】
また、ステップS325で“NO”であれば、つまり、問い合わせられたIDがネットワークに接続していない場合には、処理はステップS333に進む。
【0206】
ステップS333では、サーバ72のCPUは、当該問い合わせられたIDに対して通信不可を問合せ結果として記憶する。つまり、問い合わせられたIDに対応付けて通信不可を示すデータを記憶した問合せ結果データを生成する。
【0207】
ステップS331またはステップS333を終了すると、サーバ72のCPUは、ステップS335で、全ての問合せIDについてネットワーク通信の可否の確認済みであるか否かを判断する。ステップS335で“NO”であれば、つまり、ステップS321で取得したお友達リストに含まれるIDのうちステップS323からステップS333の処理を実行していないIDが残っている場合には、処理はステップS323へ戻って、残りの問合せIDについての確認を行う。このようにして、各問合せIDに対する通信の可否が記憶された問合せ結果データが生成される。
【0208】
そして、ステップS335で“YES”であれば、サーバ72のCPUは、ステップS337で、生成した問合せ結果データを、問合せを送信してきたゲーム装置10に送信する。ステップS337を終了するとこの通信処理を終了する。
【0209】
この実施例によれば、手入力で相手の識別情報を登録することができるので、直接に会うことのできない遠く離れた友達であっても、ネットワークを介して通信ゲームを行うことができる。また、お互いに相手の識別情報をお友達リストに登録していることをネットワーク通信の条件としたので、全く知らない相手からいきなり通信接続されてしまったり、識別情報を不正に入手した見知らぬ相手と通信してしまったりすることを防止できる。
【0210】
また、上述の各実施例では、ゲーム装置10の近距離無線通信において、通信ゲーム処理を実行した後に識別情報の交換を行うようにしていた。具体的には、
図10に示すように、CPUコア42は、ステップS41で通信ゲーム処理を実行した後、ステップS43からステップS49で識別情報の交換を実行していた。しかし、他の実施例では、近距離無線通信では、特にゲームやアプリケーションなどの通信ゲーム処理を行わなくても、識別情報の交換のみを行えるようにしてもよい。このようにすれば、通信ゲームやアプリケーションを実行しなくても、相手の識別情報を簡単に取得して、お友達リストに簡単に登録することが可能になる。
【0211】
この他の実施例の無線通信処理における動作の一例が
図29に示される。
図29では、
図10の各ステップと同様な処理には、同一の参照符号を付して、重複する説明を省略する。
【0212】
図29のステップS39で他のゲーム装置10との接続処理を実行した後、CPUコア42は、ステップS43で、当該他のゲーム装置10との間でIDを交換するか否かを判断する。CPUコア42は、ステップS43で“YES”であれば、ステップS45からステップS49でIDの交換およびお友達リストへの登録を実行し、“NO”であれば、そのままステップS351へ進む。
【0213】
ステップS351では、CPUコア42は、通信ゲームを継続するか否かを判断する。たとえば、CPUコア42は、操作スイッチ20またはタッチパネル22からの入力データ等に基づいて、通信ゲームの継続が指示されたか否かを判断する。
【0214】
ステップS351で“YES”であれば、CPUコア42は、ステップS353で、
図10のステップS41と同様にして通信ゲーム処理を実行する。続いて、CPUコア42はステップS51で通信ゲームを終了するか否かを判断し、“NO”であれば処理はステップS43へ戻る。一方、ステップS51で“YES”の場合、または、ステップS351で“NO”の場合には、この無線通処理を終了する。
【0215】
また、上述の各実施例では、ネットワーク上にサーバ72を設けて、サーバ72で接続中リストへの識別情報の登録および削除などの接続中リストの管理、問合せに応じた接続リストの照合(問合せIDに対する接続可否の検出)および検出結果の送信などの処理を実行していた。しかし、他の実施例では、ネットワーク上にサーバ72を設けずに、たとえば、複数のゲーム装置10のうちのいずれかもしくは幾つかが、あるいは、複数のゲーム装置10のそれぞれが、サーバ72としての機能を実行するようにしてもよい。