(58)【調査した分野】(Int.Cl.,DB名)
前記第2のゲーム装置は、前記第1のゲーム装置にて実行される前記ゲームアプリケーションとは異なるアプリケーションを実行している場合に、当該実行されているアプリケーション画像とともに、前記受信したフレームに含まれる前記ゲームアプリケーションに関する情報を同時に表示する、請求項2に記載のゲームシステム。
前記第1のゲーム装置は、前記元の通信を継続しているときに、再度、使用している通信チャネル以外の別の通信チャネルに切り替えて、前記フレームをブロードキャストする、請求項1〜5のいずれか1項に記載のゲームシステム。
前記第2のゲーム装置は、先に受信したフレームに含まれるデータとは異なるデータを含むフレームを新たに受信すると、当該新たに受信したフレームに対して処理を実行する、請求項1〜9のいずれか1項に記載のゲームシステム。
予め定められた複数の通信チャネルのうちいずれか1つの通信チャネルを使用して通信を行なう通信機能を備えたゲーム装置で実行される処理プログラムであって、前記処理プログラムは前記ゲーム装置に
使用している通信チャネル以外の通信チャネルに切り替えて、前記ゲーム装置が使用している通信チャネルの情報以外の所定のデータを含むフレームをブロードキャストするステップを実行させ、使用している通信チャネルにて他のゲーム装置から前記フレームを受信すると、当該受信したフレームに対する処理を実行し、
前記ブロードキャスト後に元の通信チャネルに切り替えて元の通信を継続するステップを実行させ、
前記フレーム内の前記所定のデータは、前記ゲーム装置にて実行される通信を使用するゲームアプリケーションに関する情報を含む、処理プログラム。
【発明を実施するための形態】
【0027】
本実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0028】
[A.ゲームシステム]
本実施の形態に従うゲームシステム1の概要について説明する。
図1は、本実施の形態に従うゲームシステム1の概要を説明するための図である。
【0029】
図1を参照して、ゲームシステム1は、無線通信により互いに情報を遣り取り可能な複数のゲーム装置100,150−1,150−2,150−3,…,200,…を含む。ゲーム装置の各々は、一種の情報処理装置であって、予め定められた複数の通信チャネルのうちいずれか1つの通信チャネルを使用して通信を行なう通信機能を有している。ゲーム装置の各々は、実行されるアプリケーションに応じて、他のゲーム装置との間で無線通信が可能になっている。
【0030】
無線通信としては、例えば、IEEE(Institute of Electrical and Electronic Engineers)802.11規格に従う無線LAN(Local Area Network)、IEEE802.15.1規格に従うBluetooth(登録商標)、IEEE802.15.4規格に従うZigBee(登録商標)、赤外線通信などの近距離無線方式を用いることができる。あるいは、LTE(Long Term Evolution)規格下の端末間(D2D:Device to Device)通信などを用いることができる。
【0031】
図1には、ゲーム装置100およびゲーム装置150−1〜150−3が通信によりデータを遣り取りするアプリケーションを実行しており、これらのゲーム装置が同一の通信グループを形成している状態を示す。
【0032】
通信グループの一形態として、通信グループに属する複数のゲーム装置のうち、1つのゲーム装置がマスターとして機能し、その他のゲーム装置がスレーブとして機能する。本明細書において、「マスター」および「スレーブ」とは、主として通信処理における区別(順位)を付けるために用いる属性を意味する。すなわち、「マスター」および「スレーブ」は、一種のモードに相当する。
【0033】
複数のゲーム装置のうち、「マスター」として機能するゲーム装置を予め定められた規則に従って固定的に決定してもよいし、所定の時間間隔または所定のイベント毎に、「マスター」として機能するゲーム装置を規則的または不規則的に決定してもよい。「マスター」として機能するゲーム装置以外のゲーム装置は、「スレーブ」として機能することになる。このように、ゲーム装置の各々は、内部判断または外部からの指令に応じて、マスター装置として動作する「マスター」モードとスレーブ装置として「スレーブ」モードのいずれかを設定するモード設定機能を有している。
【0034】
例えば、「マスター」は、対象の通信グループにおいて使用される通信チャネルや当該通信グループを特定する識別情報などを管理するとともに、「スレーブ」の送信タイミングなどを制御してもよい。「スレーブ」は、「マスター」からの指示に従って、送信すべきデータを送信する。一般的には、ゲーム装置の各々は、マスターおよびスレーブのいずれとしても機能できるようになっており、各ゲーム装置でのアプリケーションの実行タイミングや実行内容などに応じて、マスターとして機能するゲーム装置が決定される。例えば、あるゲーム装置において何らかのアプリケーションが実行され、当該ゲーム装置のユーザがゲームへの参加を呼び掛けるとともに、他のゲーム装置のユーザが当該呼び掛けに応答することで、通信グループが形成されるような場合には、最初の参加を呼び掛けたゲーム装置がマスターとして機能することにしてもよい。なお、特定のゲーム装置のみがマスターとして機能できるようにしてもよい。このように、ある通信グループにおいては、マスターとして機能するゲーム装置とスレーブとして機能するゲーム装置との間で、通信チャネルを使用した通信が行なわれる。
【0035】
このように、各ゲーム装置は、設定されたモード(「マスター」または「スレーブ」)で、他のゲーム装置(情報処理装置)との間で通信を行なうことになる。
【0036】
例えば、「マスター」として機能するゲーム装置は、自端末の識別子を含む所定のビーコン信号を断続的に送信することで、「スレーブ」として機能するゲーム装置に対して通信グループの検知および監視を行なわせるようにしてもよい。
【0037】
なお、「マスター」と「スレーブ」との区分に類似して、「親機」と「子機」との区分を採用してもよい。
【0038】
以下の説明においては、ある通信グループに属するゲーム装置を「マスター」(あるいは、「マスター装置」)または「スレーブ」(あるいは、「スレーブ装置」)とその機能に着目して区別して参照することもある。
【0039】
図1に示す状態において、ゲーム装置の各々は、複数の通信チャネル(チャネルA,チャネルB,チャネルC,…)のうちいずれかの通信チャネルを利用することが可能であり、ゲーム装置100およびゲーム装置150−1〜150−3を含む通信グループでは、チャネルAを使用してデータを遣り取りしているとする。このような状態において、ゲーム装置100は、ゲーム装置150−1〜150−3との間のチャネルAでの通信を一時的に中断し、他の通信チャネルにて任意のデータを含むフレームをブロードキャストする。ゲーム装置100は、使用している通信チャネル(チャネルA)以外の通信チャネル(チャネルB,チャネルC,…)に切り替えて、所定のデータを含むフレームをブロードキャストする。一連のブロードキャストが終了すると、元の通信チャネルに切り替えて元の通信を継続する。
【0040】
ここで、ゲーム装置200は、チャネルBを使用して通信を行なっている状態であるとする。ゲーム装置200は、ゲーム装置100から通信チャネルを異ならせて順次送信されるいずれかのフレームを受信すると、当該受信したフレームを処理して、必要に応じて処理結果を表示または出力する。
図1に示す例では、ゲーム装置200は、ゲーム装置100がチャネルBにてブロードキャストされたフレームを受信することができる。このように、ゲーム装置200は、使用している通信チャネルにてフレームを受信すると、当該受信したフレームに対する処理を実行する。
【0041】
ゲーム装置100がブロードキャストするフレームに含まれるデータは、特に限定されないが、例えば、ゲーム装置100を含む通信グループ内で実行されている通信を使用するアプリケーション(ゲームアプリケーション)に関する情報を含んでいてもよい。より具体的には、実行されているアプリケーション(ゲームアプリケーション)の経過情報、勝敗、参加しているユーザ、新たに参加するユーザを募集しているか否か、などの情報を含み得る。ゲーム装置200は、このような情報を含むフレームを受信すると、当該受信した情報をゲーム装置200のディスプレイなどで通知してもよい。このような通知を見て、ゲーム装置200のユーザは、ゲーム装置100を含む通信グループに参加することもできるようにしてもよい。
【0042】
図1に示す例では、ゲーム装置200は、ゲーム装置100およびゲーム装置150−1〜150−3とは異なる通信チャネルにて通信を行なっているが、ゲーム装置100からブロードキャストされるフレームを受信することで、ゲーム装置100を含む通信グループで実行されているアプリケーションの情報などを受信することができる。このように、本実施の形態に従うゲームシステム1では、複数のゲーム装置間で予め接続を確立していなくとも、各種のデータを比較的単純な手順で遣り取りできる。
【0043】
説明の便宜上、
図1には、ゲーム装置100がゲーム装置150−1〜150−3との間で通信グループを形成している例を示すが、必ずしも通信グループを形成している必要はない。例えば、ゲーム装置100が通信を使用する何らかのアプリケーションを実行中に、ある通信チャネルにてアクセスポイントに接続されているような場合においても、他のゲーム装置に対して、フレームを送信するようにしてもよい。
【0044】
また、フレームを受信するゲーム装置(
図1に示す例では、ゲーム装置200)は、例えば、スタンバイ状態などの非通信状態であってもよい。ゲーム装置200は、スタンバイ状態において、所定周期毎またはイベント毎に通信機能をアクティブ化して、何らかのデータを受信するか否かの確認(スキャン動作)を行なうようにしてもよい。
【0045】
上述したようなフレームのブロードキャストは、例えば、無線LANにおいて定義されているアクションフレーム(Action Frames)を用いて実現してもよいし、Bluetoothにおいて定義されているBluetooth Low Energy(BLE)のAdvertisingパケットを用いて実現してもよい。
【0046】
図1には、説明の便宜上、マスターとして機能するゲーム装置100のみがフレームをブロードキャストする構成について例示したが、スレーブとして機能するゲーム装置150−1〜150−3の一部または全部についても、フレームをブロードキャストするようにしてもよい。この点については、以下の説明においても同様である。このとき、同一の通信グループに属する他のゲーム装置からブロードキャストされたフレームについては、実質的な処理を行なわず、受信したフレームを廃棄するという処理を行なうようにしてもよい。
【0047】
マスターおよびスレーブからそれぞれ送信されるフレームに含まれるデータは実質的に同一であってもよいが、それぞれの機能に応じたデータを含ませるようにしてもよい。例えば、マスターからブロードキャストされるフレームには、通信グループおよび使用されている通信チャネルなどのネットワークに関する情報を含め、スレーブからブロードキャストされるフレームには、スレーブとして機能しているゲーム装置のユーザに関する情報(当該ユーザのプロフィール、当該ユーザに対応するキャラクタ情報など)を含めるようにしてもよい。
【0048】
また、スレーブとして機能するゲーム装置は、マスターからの指示を受けて、フレームをブロードキャストするようにしてもよいし、マスターとは独立して、独自の条件に従って、フレームをブロードキャストするようにしてもよい。
【0049】
このように、特定のゲーム装置の間でローカル通信を行なっている場合であっても、他の通信グループに属するゲーム装置または通信を行なっていないゲーム装置との間で、より自由に情報を交換することができる。
【0050】
[B.ゲーム装置のハードウェア構成]
次に、ゲームシステム1に含まれるゲーム装置のハードウェア構成について説明する。典型的には、ゲーム装置の各々は、いずれも同一のハードウェア構成を有しているとし、以下では、ゲーム装置100を例にして説明する。すなわち、
図1に示すゲーム装置150およびゲーム装置200についても、ゲーム装置100と同一のハードウェア構成を有している場合を典型例として説明する。但し、ゲーム装置が互いに異なるハードウェア構成を有していてもよい。
【0051】
図2は、本実施の形態に従うゲームシステム1に含まれるゲーム装置100のハードウェア構成を示す模式図である。ゲーム装置100は、通信機能を有する任意のコンピュータを用いることができるが、以下では、携帯型(あるいは、可搬型)のゲーム装置として実装した例について説明するが、これに限らず、据置型のゲーム装置として実装されてもよい。
【0052】
図2を参照して、ゲーム装置100は、プロセッサ102と、主記憶部104と、補助記憶部106と、外部インターフェイス112と、ディスプレイ114と、操作部116と、音声出力部118と、無線通信部120と、加速度センサ122と、ジャイロセンサ124とを含む。これらのコンポーネントは、バス126を介して、互いにデータ通信可能に接続されている。
【0053】
プロセッサ102は、ゲーム装置100が提供する処理を実行するための処理主体(処理手段)である。プロセッサ102は、補助記憶部106に格納されているオペレーティングシステム(OS)108およびアプリケーションプログラム110を読み込んで主記憶部104に展開して、後述するようなゲーム処理情報処理を実行する。
【0054】
主記憶部104は、プロセッサ102がアクセス可能な任意の記憶装置(記憶媒体)であり、例えば、DRAM(Dynamic Random Access Memory)などの揮発性記憶装置を用いて実装される。
【0055】
補助記憶部106は、例えば、ハードディスクやフラッシュメモリなどの不揮発性記憶媒体を用いて実装される。あるいは、補助記憶部106は、例えば、光ディスクおよびカートリッジなどのゲーム装置100に着脱可能な記憶媒体を用いて実装してもよい。この場合、ゲーム装置100と任意の記憶媒体との組み合わせがゲームシステムとして構成されてもよい。
【0056】
外部インターフェイス112は、任意のメモリカードまたは外部装置などとの間のデータの遣り取りを仲介する。外部インターフェイス112は、例えば、メモリカードと電気的に接続してデータの読み書きを行なうリーダライタ、外部装置との間でデータを遣り取りするUSB(Universal Serial Bus)インターフェイスなどを用いて実装される。
【0057】
ディスプレイ114は、プロセッサ102で実行される情報処理の結果として生成される画像を表示する。ディスプレイ114には、他の装置から受信した画像が表示される場合もある。ディスプレイ114の数は複数であってもよい。また、1または複数の他のディスプレイをゲーム装置100が利用する構成であってもよい。
【0058】
操作部116は、主として、ゲーム装置100のユーザからの操作を受け付ける。操作部116は、例えば、押ボタン、操作レバー、タッチパネル、マウスなどを用いて実装される。操作部116は、ゲーム装置100とは別体の、有線または無線で接続されるコントローラであってもよい。
【0059】
音声出力部118は、プロセッサ102で実行される情報処理の結果として生成される音声を出力する。音声出力部118には、他の装置から受信した音声が出力される場合もある。音声出力部118は、例えば、ディスプレイ周辺に配置された1または複数のスピーカと、当該スピーカを駆動するアンプとを用いて実装される。あるいは、音声出力部118は、ヘッドフォンと電気的に接続するためのコネクタと、コネクタと介して接続されるヘッドフォンを駆動するアンプとを用いて実装されてもよい。
【0060】
無線通信部120は、他の装置との間で無線信号を介してデータを送受信する。無線通信部120は、例えば、無線LAN、Bluetooth、ZigBee、赤外線通信などの通信方式をサポートする。
図2には、無線通信部120のブロックを集合的に描くが、複数種類の無線通信機能が実装されていてもよいし、単一種類の無線通信機能が宛先に応じて複数用意されていてもよい。なお、無線通信部120はプロセッサ102と一体化されていてもよい。
【0061】
加速度センサ122は、ゲーム装置100に生じる加速度を検出するデバイスである。ジャイロセンサ124は、ゲーム装置100の傾きなどを検出するデバイスである。加速度センサ122およびジャイロセンサ124の少なくとも一方もしくは両方を用いて、ゲーム装置100を把持してユーザが行なう動作を検出することができる。
【0062】
図2には、ゲーム装置100を一体の装置として描くが、複数の装置の集合体として実装してもよい。すなわち、ゲーム装置100を複数の独立した装置の組み合わせによって実装してもよい。例えば、プロセッサ102、ディスプレイ114、操作部116、および、音声出力部118に相当するエレメントを有する第1の装置と、無線通信部120に相当するエレメントを有する第2の装置とを着脱可能に接続される構成であってもよい。このような構成は、ゲーム装置に代えて、ゲームシステムと称されてもよい。あるいは、プロセッサ102、主記憶部104、補助記憶部106に相当するエレメントを有する本体装置と、ディスプレイ114、操作部116、音声出力部118を有する端末装置とが別体である構成を採用してもよい。
【0063】
他の実施形態として、ゲーム装置100において実行される情報処理の少なくとも一部が、ネットワーク(広域ネットワークおよび/またはローカルネットワーク)上に分散配置された1または複数の他の装置によって実行されるようにしてもよい。
【0064】
さらに、
図2に示すようなゲーム装置100に代えて、携帯電話、スマートフォン、タブレット、汎用的なパーソナルコンピュータ上でアプリケーションを実行させることで、本明細書において説明するゲーム装置100が有する機能と同様の機能を実現するようにしてもよい。
【0065】
[C.フレームのブロードキャストシーケンス]
次に、本実施の形態に従うゲーム装置に実装されるフレームのブロードキャストに係るシーケンスについて説明する。
図3は、本実施の形態に従うゲーム装置がフレームをブロードキャストする際のシーケンスを示すタイムチャートである。
【0066】
図3を参照して、3つのゲーム装置100,200,300は、互いに通信可能な距離内に存在しているとする。例えば、ゲーム装置100はチャネルAにて他のゲーム装置などとの間で通信を行なっており、ゲーム装置200はチャネルBにて他のゲーム装置などとの間で通信を行なっているとする。
【0067】
ゲーム装置100およびゲーム装置200は、インターネットなどに接続するために、アクセスポイントとの間で通信を行なっている場合もある。すなわち、ゲーム装置がインターネット接続している場合であっても、近くに存在するゲーム装置からブロードキャストされるフレームを受信できるようにしてもよい。
【0068】
一方、ゲーム装置300は、通信を使用するアプリケーションを実行していないとする。但し、ゲーム装置300の無線通信部120の物理層およびデータリンク層は周期的または連続的にアクティブに維持されており、送信されるフレームの有無を所定周期毎に探索する、バックグラウンドスキャンを実行しているとする。
【0069】
説明の簡素化のため、
図3に示す例では、チャネルA、チャネルB、チャネルCの3つの通信チャネルを使用できる場合につい例示する。
【0070】
ゲーム装置100および200は、他のゲーム装置などとの間で通信を行なう際には、典型的には、ユニキャストにて特定の1つの宛先へデータを送信するようにしてもよいし、マルチキャストにて特定の複数の宛先へデータを送信してもよい。すなわち、複数の通信チャネルのうち、1つの通信チャネル(主たる通信チャネル)を使用して通信を行なっている場合には、ブロードキャストのように不特定の宛先へデータを送信するのではなく、特定の1または複数の宛先へデータを送信するようになっている。
【0071】
このような通信状態において、ゲーム装置100は、主たる通信に使用しているチャネルAを含めて、3つの通信チャネルを順次切り替えてフレームを周期的にブロードキャストする。具体的には、ゲーム装置100は、あるタイミングでチャネルAにてフレームをブロードキャストする(符号11参照)。その後、ゲーム装置100は、チャネルBにてフレームをブロードキャストする(符号12参照)。このチャネルBでのフレームのブロードキャスト後、元の通信チャネル(チャネルA)に切り替えて通信が継続される。さらにその後、ゲーム装置100は、チャネルCにてフレームをブロードキャストする(符号13参照)。このチャネルCでのフレームのブロードキャスト後、元の通信チャネル(チャネルA)に切り替えて通信が継続される。
【0072】
あるゲーム装置は、いずれかの通信チャネルでフレームをブロードキャストした後、当該ブロードキャストされたフレームを受信するかもしれない他のゲーム装置との間で確認応答(Acknowledgement)などを受信するような処理は行なわず、元の通信処理を継続することが好ましい。これは、フレームをブロードキャストする処理が割り込むことによって、本来の通信処理のパフォーマンスを低下させないようにするためである。このように、ゲーム装置100は、フレームのブロードキャスト後に、当該フレームを受信し得る他のゲーム装置との通信を行なうことなく、即座に元の通信チャネルに切り替える。
【0073】
ゲーム装置100では、このようなフレームのブロードキャストが繰り返される。
図3に示すように、ゲーム装置100は、使用している通信チャネルにおいてもフレームをブロードキャストする。すなわち、使用可能な通信チャネルのすべてにおいてフレームをブロードキャストすることで、周囲に存在するゲーム装置に対して各種の通知を行なうことができる。但し、ゲーム装置100は、使用している通信チャネルにおいてはユニキャストまたはマルチキャストで通信しており、同一の通信チャネルにおいてフレームを送信する場合には、ユニキャストまたはマルチキャストでの通信を一時的に中断することになる。例えば、
図1に示す例において、ゲーム装置100は、チャネルAでのユニキャストまたはマルチキャストでの通信を中断し、チャネルAにおいてフレームをブロードキャストすることになる。
【0074】
このようなチャネルA〜チャネルCをそれぞれ用いたブロードキャストは、例えば、周期T2で順次繰り返し行なわれる。各通信チャネルでのフレームのブロードキャストが完了すると、元の通信チャネルでの通信が再開されるので、各フレームのブロードキャストに要する時間T1は、フレームのブロードキャストに要する時間に応じて固定的に定まる(例えば、1msec)ことになる。但し、フレームのブロードキャストを冗長的に実行できるように、各フレームのブロードキャストに要する時間T1を任意に設定できるようにしてもよい。この場合、時間T1の期間内において、フレームを複数回ブロードキャストするようにしてもよい。
【0075】
図3に示すように、ゲーム装置100は、フレームをブロードキャスト後に、本来の通信チャネルであるチャネルAに切り替えて、通信を継続する。そして、ゲーム装置100は、その元の通信を継続しているときに、再度、使用している通信チャネル(チャネルA)以外の別の通信チャネル(
図3に示す例では、チャネルBまたはチャネルC)に切り替えて、フレームをブロードキャストする。
【0076】
同様に、ゲーム装置200は、主たる通信に使用しているチャネルBを含めて、3つの通信チャネルを順次切り替えてフレームを周期的にブロードキャストする。具体的には、ゲーム装置200は、あるタイミングでチャネルAにてフレームをブロードキャストする(符号21参照)。このチャネルAでのフレームのブロードキャスト後、元の通信チャネルBに切り替えて通信が継続される。その後、ゲーム装置200は、チャネルBにてフレームをブロードキャストする(符号22参照)。さらにその後、ゲーム装置200は、チャネルCにてフレームをブロードキャストする(符号23参照)。このチャネルCでのフレームのブロードキャスト後、元の通信チャネルBに切り替えて通信が継続される。
【0077】
ゲーム装置100がフレームをブロードキャストする周期と、ゲーム装置200がフレームをブロードキャストする周期とは、同一にしてもよいし、異なるものとしてもよい。ブロードキャストする周期が同一であっても、ゲーム装置間では、その開始タイミングなどの同期を取らないので、通常は、各々のゲーム装置が異なるタイミングでフレームをブロードキャストすることになる。
【0078】
図3に示す例では、ゲーム装置100がチャネルBにてフレームをブロードキャストしたタイミング(符号12参照)において、ゲーム装置200はチャネルBにて通信を行なっているので、ゲーム装置200は、ゲーム装置100からブロードキャストされたフレームを受信することができる。
【0079】
一方、ゲーム装置200がチャネルAにてフレームをブロードキャストしたタイミング(符号21参照)において、ゲーム装置100はチャネルAにて通信を行なっているので、ゲーム装置100は、ゲーム装置200からブロードキャストされたフレームを受信することができる。
【0080】
図3に示すように、各ゲーム装置は、設定されたモードが「マスター」であるか「スレーブ」であるかに関わらず、先に通信機能によって行なわれている通信を一時的に中断して、所定のデータを含むフレームをブロードキャストする機能を有している。このように、ゲーム装置100およびゲーム装置200は、それぞれ異なる通信チャネルにて他のゲーム装置などとの間でそれぞれ通信を行なっているが、ブロードキャストされるフレームに含まれる互いの情報を取得することができる。
【0081】
また、ゲーム装置300は、周期的またはイベント毎にバックグラウンドスキャンを行なっており、使用可能な通信チャネルにおいて送信されているデータを探索し、何らかのデータを受信できれば、その受信したデータに対して必要な処理を行なうことができる。
【0082】
図3に示す例では、ゲーム装置300は、周期T4毎にバックグランドスキャンを行なう。バックグランドスキャンの一例として、ゲーム装置300は、時間T3に亘ってチャネルAで受信待ちを行ない、その後、時間T3に亘ってチャネルBで受信待ちを行ない、その後、時間T3に亘ってチャネルCで受信待ちを行なう(符号31参照)。そして、ゲーム装置300は、所定期間だけ休止の状態(スリープ状態)で待ち、再度同様に、時間T3に亘ってチャネルAで受信待ちを行ない、その後、時間T3に亘ってチャネルBで受信待ちを行ない、その後、時間T3に亘ってチャネルCで受信待ちを行なう(符号32参照)。このような時間T3毎に通信チャネルを切り替えて各通信チャネルで受信待ちを行なうことで、他のゲーム装置から送信されるフレームなどを受信することができる。
【0083】
図3には、3つの通信チャネルを連続的に切り替える方法について例示したが、これに限らず、周期T4毎に通信チャネルを切り替えるような方法を採用してもよい。すなわち、チャネルAで受信待ちを行なった後、周期T4だけ休止の状態(スリープ状態)で待ち、続いて、チャネルBで受信待ちを行なうといったシーケンスを採用してもよい。
【0084】
図3に示す例では、ゲーム装置300は、最初のバックグランドスキャン(符号31参照)においてチャネルAで受信待ちを行なっている期間内に、ゲーム装置100からチャネルAにてブロードキャストされたフレームを受信することができる。また、ゲーム装置300は、2番目のバックグランドスキャン(符号32参照)においてチャネルBで受信待ちを行なっている期間内に、ゲーム装置200からチャネルCにてブロードキャストされたフレームを受信することができる。
【0085】
バックグラウンドスキャンは、ゲーム装置300の電源が完全に遮断されていなければ、実行されるようにしてもよい。例えば、ゲーム装置300において、何らかのアプリケーションが実行されているか否かに関わらず、バックグランドスキャンが繰り返し実行されてもよい。すなわち、ゲーム装置300は、実行しているアプリケーションとは独立して、ゲーム装置100またはゲーム装置200からブロードキャストされるフレームをスキャンするようにしてもよい。
【0086】
説明の便宜上、
図3においては、送信されるフレームのみを図示するが、フレームの送信に先だって、通信チャネルの情報などを含むビーコンを所定期間に亘って送信してもよい。このようなビーコンの送信により、受信待ちの状態であるゲーム装置での受信をより確実にできる。
【0087】
このように、通信を使用するアプリケーションを実行していないゲーム装置300であっても、他のゲーム装置からブロードキャストされるフレームを受信し、当該受信したフレームに含まれる情報を取得することができる。
【0088】
なお、上述の説明においては、ゲーム装置100が通信を使用するアプリケーションを実行している場合に、各チャネルにてフレームをブロードキャストする処理を例示したが、ゲーム装置100が通信を使用するアプリケーションを実行していない場合であっても、定期的に、各チャネルにてフレームをブロードキャストするようにしてもよい。
【0089】
[D.応用例]
次に、上述のようなフレームによる通知の応用例のいくつかについて説明する。
【0090】
(d1:実施中のゲームアプリケーションの通知および参加)
図4は、本実施の形態に従うゲームシステム1の利用形態の一例を説明するための模式図である。
【0091】
図4(A)には、ゲーム装置100およびゲーム装置150において通信を使用するゲームアプリケーションが実行されている例を示す。具体的には、ゲーム装置100がマスターとして機能し、ゲーム装置150がスレーブとして機能しつつ、対戦型のゲームアプリケーションをそれぞれのユーザがプレイしている状態を示す。一方で、ゲーム装置200では、何らのアプリケーションも実行されていないとする。但し、ゲーム装置200では、バックグランドスキャンが行なわれており、他のゲーム装置などから送信されるフレームが周期的に探索されている。
【0092】
このような状態において、ゲーム装置200がゲーム装置100から何らかのフレームを受信したとする。このフレームには、ゲーム装置100にて実行される通信を使用するゲームアプリケーションに関する情報が含まれているとする。すると、
図4(B)に示すように、ゲーム装置200は、受信したフレームの内容に応じて、ユーザに対する通知動作を行なう。この通知動作としては、例えば、ゲーム装置200の表面に露出して配置されている任意のインジケータの点灯/点滅(符号210参照)、ゲーム装置200に装着されているマイクからの通知音の発生(符号212参照)、および、ゲーム装置200本体の震動(符号214)などであってもよい。すなわち、ユーザに対して、視覚的、聴覚的、触覚的な刺激を与えることで、受信したフレームに基づく通知を行なうようにしてもよい。
【0093】
例えば、ゲーム装置100からブロードキャストされたフレームには、ゲーム装置100で実行されているゲームアプリケーションの情報などが含まれており、この情報に基づいて、ゲーム装置200のディスプレイには、「近くでレースゲームが開催されています!」といったメッセージ202が表示されてもよい。
【0094】
ゲーム装置200では、このようなメッセージ202に応答して、その実行されているゲームアプリケーションの観戦または参加の操作を受け付ける画面が表示されてもよい。そして、
図4(C)に示すように、ゲーム装置200もゲーム装置100およびゲーム装置150が構成する通信グループに参加し、ゲーム装置200においてゲームアプリケーションを実行できるようにしてもよい。
【0095】
ゲーム装置100からブロードキャストされたフレームに含まれるデータには、ゲーム装置100が使用している通信チャネルの情報が含まれる。ゲーム装置200は、このフレーム内の通信チャネルの情報に基づいて、参加先の通信グループで使用される通信チャネルを特定することになる。なお、通信チャネルの情報は、ゲーム装置100からブロードキャストされたフレームに加えて、あるいは、フレームに代えて、ビーコンなどに含めて送信されるようにしてもよい。
【0096】
(d2:他の通信グループで実施中のアプリケーションの通知および参加)
図5は、本実施の形態に従うゲームシステム1の利用形態の別の一例を説明するための模式図である。
図5には、2つの通信グループが形成されている例を示す。具体的には、通信グループ1は、マスターとして機能するゲーム装置100ならびにスレーブとして機能するゲーム装置150−1および150−2からなり、通信グループ2は、マスターとして機能するゲーム装置200ならびにスレーブとして機能するゲーム装置250からなる。
【0097】
通信グループ1において、通信を使用するゲームアプリケーションが実行されているとする。また、通信グループ2においては、通信グループ1において実行されるゲームアプリケーションとは異なるアプリケーションが実行されているとする。
【0098】
各通信グループのマスターとして機能するゲーム装置から送信されるフレームには、各ゲーム装置にて実行される通信を使用するゲームアプリケーションに関する情報が含まれているとする。例えば、通信グループ1のマスターであるゲーム装置100からブロードキャストされたフレームを通信グループ2のマスターであるゲーム装置200が受信することで、ゲーム装置200には、通信グループ1で実行されているゲームアプリケーションの状況などが通知されてもよい。
【0099】
すなわち、ゲーム装置200は、ゲーム装置100にて実行されるゲームアプリケーションとは異なるアプリケーションを実行している場合に、当該実行されているアプリケーション画像とともに、受信したフレームに含まれるゲーム装置100において実行されるゲームアプリケーションに関する情報を同時に表示してもよい。具体的な一例として、「グループ1:XXXグランプリ」といったゲーム装置100において実行されているアプリケーションの名前や、「参加者:ユーザA,ユーザB,ユーザC」といった参加しているユーザの名前などを含むメッセージ204が表示されてもよい。
【0100】
さらに、ゲーム装置200で受信したフレームに基づく情報をスレーブであるゲーム装置250に対して配信するようにしてもよい。この場合、ゲーム装置250においても、ゲーム装置200において表示されているのと同様のメッセージ206が表示されてもよい。なお、ゲーム装置250に表示されるメッセージ206の内容は、ゲーム装置200において表示される内容と同一である必要はなく、さらに多くの情報を同時に表示するようにしてもよいし、より簡略的に表示するようにしてもよい。
【0101】
このように、フレームを受信したゲーム装置は、その受信したフレームに含まれるデータに基づく情報を表示する。このような情報の表示によって、他の通信グループにおけるゲームアプリケーションの状況を自通信グループに属するゲーム装置間でシェアすることができ、他の通信グループへの参加などのきっかけをつくり、ゲームアプリケーションの楽しみを広げることができる。
【0102】
さらに、
図5に示す状態において、通信グループ2に属する一部または全部のゲーム装置が通信グループ1に参加するようにしてもよい。
図6は、
図5に示す状態において、通信グループ2に属するゲーム装置が通信グループ1に参加した状態を示す模式図である。
【0103】
図6に示すように、例えば、ゲーム装置200およびゲーム装置250のそれぞれのユーザが、通信グループ1に属するゲーム装置100からブロードキャストされたフレームに含まれるデータに基づくメッセージを見て、通信グループ1で実行されているゲームアプリケーションに参加する操作を行なうこともできる。
【0104】
例えば、通信グループ1ではチャネルAにて通信を行なっており、通信グループ2ではチャネルBにて通信を行なっていたとする。この場合、通信グループ2に属していたゲーム装置200およびゲーム装置250は、使用する通信チャネルをチャネルBからチャネルAに切り替えて元の通信を継続することになる。すなわち、ゲーム装置200およびゲーム装置250は、受信したフレームに基づいて、ゲーム装置100が使用している通信チャネルに切り替えて、ゲーム装置100との間で通信を行なう。
【0105】
上述したように、ゲーム装置100からブロードキャストされたフレーム内のデータは、ゲーム装置100が使用している通信チャネルの情報を含んでいてもよい。このような通信チャネルの情報を含ませることで、フレームを受信したゲーム装置がフレームをブロードキャストしたゲーム装置が属している通信グループに参加する際の処理をより簡素化できる。
【0106】
(d3:実施中のゲームアプリケーションの観戦)
上述の説明においては、ブロードキャストされたフレームを受信したゲーム装置が当該フレームをブロードキャストしたゲーム装置が属する通信グループに参加する処理例について説明したが、当該通信グループにおいて実行されているゲームアプリケーションの状況を観戦するだけの処理を選択可能にしてもよい。すなわち、参加の場合には、参加したゲーム装置においてゲームの経過情報が表示されるとともに、当該ゲーム装置に対するユーザ操作が他のゲーム装置へも送信されることになる。一方、観戦の場合には、観戦しているゲーム装置に対してゲームの経過情報の情報が提供されるものの、当該ゲーム装置に対するユーザ操作は他のゲーム装置へ送信されない。
【0107】
つまり、参加および観戦のいずれの場合においても、ゲーム装置で実行されるゲームアプリケーションのゲーム進行に応じて生成される画像データおよび音声データなどの情報が参加または観戦しているゲーム装置へ継続的に送信される。参加の場合には、新たに参加するゲーム装置に与えられたユーザ操作が当該ゲーム装置から関連する他のゲーム装置へ送信されるように通信処理が切り替えられる。
【0108】
但し、いずれの場合においても、基本的には、参加または観戦先の通信グループにて使用されている通信チャネルに切り替える必要がある。
【0109】
上述した応用例は、あくまでも一例にすぎず、本実施の形態に従うフレームによる通知はさまざまな局面での応用が可能である。
【0110】
[E.フレームのデータ構造]
次に、本実施の形態に従うゲーム装置が送信するフレームのデータ構造の一例について説明する。
図7は、本実施の形態に従うゲーム装置が送信するフレーム50のデータ構造の一例を示す模式図である。
図7には、典型例として、IEEE802.11規格に従う無線LANを用いて実装した場合に用いられるフレーム50の構造例を示す。
【0111】
図7を参照して、フレーム50は、MAC(Media Access Control address)ヘッダ部51と、カテゴリ部52と、ベンダOUI(Organizationally Unique Identifier)部53と、サブタイプ部54と、長さ部55と、データ部56と、FCS(Frame Check Sequence)部57とを含む。
【0112】
MACヘッダ部51は、典型的には、通信グループを特定する識別子として、BSSID(Basic Service Set IDentifier)を格納する。このBSSIDは、典型的には、マスターとして機能するゲーム装置が有するMACアドレスが用いられる。フレーム50内のデータとして、フレーム50をブロードキャストするゲーム装置が属している通信グループの識別情報を含むことになる。フレーム50を受信したゲーム装置は、MACヘッダ部51に格納されるBSSIDの値に基づいて、他の通信グループから送信されたフレーム50であるか否かを判断することができる。すなわち、フレーム50を受信したゲーム装置は、フレーム50内の識別情報に基づいて、受信したフレーム50に含まれる所定のデータを利用するか否かを判断するようにしてもよい。例えば、ある通信グループに属するゲーム装置が、同一の通信グループに属する他のゲーム装置から送信されたフレーム50を受信したとしても、そのフレーム50を破棄する処理を実行する一方で、他の通信グループに属するゲーム装置から送信されたフレーム50については表示などに用いる処理を実行するようにしてもよい。つまり、同一の通信グループ内でフレームが送受信されることがあるが、BSSIDやMACアドレスなどに基づいて、そのようなフレームの情報を使用しないことで、フレームに対する処理をより効率化できる。
【0113】
カテゴリ部52は、ベンダ特有の情報を格納する。基本的には、カテゴリ部52には、ゲーム装置の製造者などに応じた特殊値が設定される。ベンダOUI部53は、典型的には、ベンダを特定するための情報を格納する。基本的には、ベンダOUI部53には、ゲーム装置の製造者などに応じた固有値が設定される。
【0114】
本実施の形態に従うゲームシステム1に固有な情報をカテゴリ部52およびベンダOUI部53に割り当てることで、本実施の形態に従う機能が実装されたゲーム装置のみがフレームを受信して処理することになるので、他の通信装置に影響を与えることなく、任意のデータを格納することができる。
【0115】
サブタイプ部54は、フレーム50の用途を示す識別情報を格納する。例えば、上述したような通知を行なうためのアクションフレームとして用いられる場合、あるいは、接続を確立するための探索要求信号(プローブ要求)または探索応答信号(プローブ応答)として用いられる場合などを示す識別情報が格納される。
【0116】
長さ部55は、データ部56に格納されるデータの長さを示す情報を格納する。データ部56は、フレーム50にて送信されるデータ本体を格納する。
【0117】
FCS部57は、データ誤り検出に用いるCRC(Cyclic Redundancy Check:巡回冗長検査)値などを格納する。
【0118】
データ部56には、任意のデータを格納することが可能であり、上述したように、送信元のゲーム装置にて実行される、通信を使用するゲームアプリケーションに関する情報を含むようにしてもよい。
【0119】
[F.ゲーム装置のソフトウェア構成]
次に、本実施の形態に従うゲーム装置のソフトウェア構成について説明する。
図8は、本実施の形態に従うゲームシステム1に含まれるゲーム装置100のソフトウェア構成を示す模式図である。
図8に示すゲーム装置に含まれる各モジュールは、典型的には、プロセッサ102がオペレーティングシステム108およびアプリケーションプログラム110を実行することで実現される。但し、
図8に示すそれぞれのモジュールをソフトウェアモジュールとして実装するのではなく、その全部または一部をASIC(Application Specific Integrated Circuit)などのハードウェアを用いて実装してもよい。
【0120】
図8を参照して、ゲーム装置100は、そのソフトウェアコンポーネントとして、通信モジュール160と、アプリケーション実行モジュール162と、フレームデータ生成モジュール164と、通信チャネル制御モジュール166と、識別モジュール168と、フレームデータ処理モジュール170とを含む。
【0121】
通信モジュール160は、実際の無線通信を行なう主体であり、無線通信部120(
図2)をその全部または一部とする。
【0122】
アプリケーション実行モジュール162は、ゲームアプリケーションなどの任意のアプリケーションを実行する主体であり、通信を使用するアプリケーションの場合には、ゲーム経過に伴って他のゲーム装置へ送信するアプリケーションデータを生成するとともに、他のゲーム装置から受信したアプリケーションデータに基づいてゲーム経過の処理を行なう。
【0123】
フレームデータ生成モジュール164は、アプリケーション実行モジュール162でのアプリケーションの実行状況に応じて、フレームに含めるべきデータであるフレームデータを生成する。
【0124】
通信チャネル制御モジュール166は、
図3に示すような、通信チャネルの切り替えに係る制御を実行する。
【0125】
識別モジュール168は、通信モジュール160にて受信されたデータ(パケット/フレーム)をそのヘッダなどの情報に基づいて処理すべきものであるか否かを判断し、処理すべきものと判断されたデータを、アプリケーション実行モジュール162またはフレームデータ処理モジュール170へ出力する。
【0126】
フレームデータ処理モジュール170は、他のゲーム装置から受信したフレームを処理し、そのフレームに含まれるデータを適宜加工した上で、フレームデータ処理結果として、アプリケーション実行モジュール162へ出力する。アプリケーション実行モジュール162では、フレームデータ処理結果に基づいて、
図4(C)および
図5に示すようなメッセージを表示する。フレームデータ処理モジュール170で実行される処理については、任意に定めることができる。あるいは、ユーザが予め設定した好みに従って、どのような処理を実行するのかを選択できるようにしてもよい。
【0127】
フレームデータ処理モジュール170は、先に受信したフレームに含まれるデータとは異なるデータを含むフレームを新たに受信した場合に、当該新たに受信したフレームに対して処理を実行するようにしてもよい。つまり、先に受信しているフレームに含まれるデータと同一のデータを重複受信する場合もあり、このような場合には、その重複受信したデータを破棄するようにして、処理を効率化してもよい。
【0128】
[G.処理手順]
次に、本実施の形態に従うゲームシステム1において実行される処理手順について説明する。
【0129】
図9は、本実施の形態に従うゲームシステム1において実行される処理手順を示すフローチャートである。
図10は、
図9に示される受信処理の処理手順を示すフローチャートである。
図9および
図10に示す各ステップは、典型的には、プロセッサ102がOS108およびアプリケーションプログラム110を実行することで実現される。
【0130】
図9を参照して、プロセッサ102は、通信を使用するゲームアプリケーションが実行されているか否かを判断する(ステップS100)。すなわち、複数の通信チャネルのうちいずれか1つの通信チャネルを使用して通信が行なわれているか否かが判断される。
【0131】
通信を使用するゲームアプリケーションが実行されていれば(ステップS100においてYESの場合)、周期的なフレームのブロードキャストが実行される。具体的には、プロセッサ102は、フレームの送信周期が到来したか否かを判断する(ステップS102)。フレームの送信周期が到来していなければ(ステップS102においてNOの場合)、フレームの送信周期が到来するまで待つ。フレームの送信周期が到来していれば(ステップS102においてYESの場合)、プロセッサ102は、実行されているゲームアプリケーションに関する情報を収集するとともに、現在の通信状態に係る情報を収集してフレームを生成する(ステップS104)。そして、プロセッサ102は、無線通信部120に指示を与えて、現在の通信(ユニキャスト/マルチキャスト)を一時的に停止する(ステップS106)とともに、フレームを前回ブロードキャストした通信チャネルとは異なる通信チャネルでステップS104において生成したフレームをブロードキャストする(ステップS108)。
【0132】
そして、プロセッサ102は、無線通信部120が何らかのデータを受信したか否かを判断する(ステップS110)。無線通信部120が何らかのデータを受信していれば(ステップS110においてYESの場合)、ステップS200以下の受信処理が実行される。無線通信部120が何らのデータも受信していなければ(ステップS110においてNOの場合)、ステップS100以下の処理が繰り返される。
【0133】
これに対して、通信を使用するゲームアプリケーションが実行されていなければ(ステップS100においてNOの場合)、バックグラウンドスキャンが実行される。より具体的には、プロセッサ102は、バックグラウンドスキャンの実行周期が到来したか否かを判断する(ステップS112)。バックグラウンドスキャンの実行周期が到来していなければ(ステップS112においてNOの場合)、バックグラウンドスキャンの実行周期が到来するまで待つ。バックグラウンドスキャンの実行周期が到来していれば(ステップS112においてYESの場合)、プロセッサ102は、無線通信部120に指示を与えて、無線通信部120をアクティブ化する(ステップS114)とともに、複数の通信チャネルのうち1つの通信チャネルを選択し、受信待ち状態を所定期間維持する(ステップS116)。そして、プロセッサ102は、無線通信部120が何らかのデータを受信したか否かを判断する(ステップS118)。無線通信部120が何らかのデータを受信していれば(ステップS118においてYESの場合)、ステップS200以下の受信処理が実行される。
【0134】
無線通信部120が何らのデータも受信していなければ(ステップS118においてNOの場合)、または、ステップS200以下の受信処理の実行後、プロセッサ102は、複数の通信チャネルのうちすべての通信チャネルが選択済であるか否かを判断する(ステップS120)。複数の通信チャネルのうち選択されていない通信チャネルが存在すれば(ステップS120においてNOの場合)、ステップS116の処理が実行される。複数の通信チャネルのうちすべての通信チャネルが選択済であれば(ステップS120においてYESの場合)、プロセッサ102は、無線通信部120に指示を与えて、無線通信部120をスリープ状態に移行させる(ステップS122)とともに、ステップS100以下の処理を再度実行する。
【0135】
図10を参照して、プロセッサ102は、受信したフレームに含まれる識別情報(BSSIDおよび/またはMACアドレス)に基づいて、当該受信したフレームが自装置が属する通信グループの他のゲーム装置からブロードキャストされたものか否かを判断する(ステップS200)。
【0136】
当該受信したフレームが自装置が属する通信グループの他のゲーム装置からブロードキャストされたものである場合(ステップS200においてYESの場合)、プロセッサ102は、当該受信したフレームを破棄する(ステップS202)。そして、処理は
図9に示すフローチャートの対応するステップへ戻る。
【0137】
これに対して、当該受信したフレームが自装置が属する通信グループの他のゲーム装置からブロードキャストされたものではない場合(ステップS200においてNOの場合)、プロセッサ102は、当該受信したフレームに含まれるデータと同一のデータを既に受信しているか否かを判断する(ステップS204)。当該受信したフレームに含まれるデータと同一のデータを既に受信していれば(ステップS204においてYESの場合)、プロセッサ102は、当該受信したフレームを破棄する(ステップS202)。そして、処理は
図9に示すフローチャートの対応するステップへ戻る。
【0138】
当該受信したフレームに含まれるデータと同一のデータを受信していなければ(ステップS204においてNOの場合)、プロセッサ102は、当該受信したフレームに含まれるデータを取得および格納し(ステップS206)、(先に収集および格納したデータを含めて)収集および格納したデータが目的の処理を実行するのに十分なものであるか否かを判断する(ステップS208)。
【0139】
収集および格納したデータが目的の処理を実行するのに十分でなければ(ステップS208においてNOの場合)、収集および格納したデータはそのまま維持されまま(ステップS210)、処理は
図9に示すフローチャートの対応するステップへ戻る。
【0140】
収集および格納したデータが目的の処理を実行するのに十分であければ(ステップS208においてYESの場合)、プロセッサ102は、(必要に応じて先に収集および格納したデータを加えて)収集および格納したデータに基づいて画面出力などの処理を実行する(ステップS212)。そして、処理は
図9に示すフローチャートの対応するステップへ戻る。
【0141】
[H.利点]
本実施の形態に従うゲームシステムによれば、特定のゲーム装置の間で通信グループを形成して通信を行なっている場合であっても、その通信グループからブロードキャストされるフレームを受信できる範囲に存在する他のゲーム装置は、当該通信グループで実行されているゲームアプリケーションの進捗情報などの各種情報を取得することができる。そして、当該他のゲーム装置のユーザは、その取得された各種情報を知ることで、当該通信グループで実行されているゲームアプリケーションに関心を持つことができ、さらに、観戦または参加といった積極的な関与も可能になっている。
【0142】
このように、本実施の形態に従うゲームシステムによれば、ゲーム装置間で予め特段の接続を確立していなくとも各種情報を容易に交換でき、その結果、ゲーム装置を介したユーザのコミュニケーションを促進することができる。
【0143】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。