JP5728249B2 - 情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法 - Google Patents

情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法 Download PDF

Info

Publication number
JP5728249B2
JP5728249B2 JP2011040935A JP2011040935A JP5728249B2 JP 5728249 B2 JP5728249 B2 JP 5728249B2 JP 2011040935 A JP2011040935 A JP 2011040935A JP 2011040935 A JP2011040935 A JP 2011040935A JP 5728249 B2 JP5728249 B2 JP 5728249B2
Authority
JP
Japan
Prior art keywords
information processing
processing unit
data
unit
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011040935A
Other languages
English (en)
Other versions
JP2012176127A (ja
Inventor
裕基 水口
裕基 水口
大江 徹
徹 大江
田中 聖也
聖也 田中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2011040935A priority Critical patent/JP5728249B2/ja
Priority to US13/369,653 priority patent/US8989666B2/en
Priority to EP12155334.1A priority patent/EP2491991B1/en
Priority to EP20160936.9A priority patent/EP3679997B1/en
Publication of JP2012176127A publication Critical patent/JP2012176127A/ja
Priority to US14/635,457 priority patent/US10981068B2/en
Application granted granted Critical
Publication of JP5728249B2 publication Critical patent/JP5728249B2/ja
Priority to US17/201,555 priority patent/US11612820B2/en
Priority to US18/110,540 priority patent/US20230191262A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/71Game security or game management aspects using secure communication between game devices and game servers, e.g. by encrypting game data or authenticating players
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/31Communication aspects specific to video games, e.g. between several handheld game devices at close range
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/32Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections
    • A63F13/327Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections using wireless networks, e.g. Wi-Fi® or piconet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/34Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using peer-to-peer connections
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/352Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/85Providing additional services to players
    • A63F13/86Watching games played by other players
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/25Output arrangements for video game devices
    • A63F13/26Output arrangements for video game devices having at least one additional display device, e.g. on the game controller or outside a game booth
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/803Driving vehicles or craft, e.g. cars, airplanes, ships, robots or tanks
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/90Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
    • A63F13/92Video game devices specially adapted to be hand-held while playing
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/401Secure communication, e.g. using encryption or authentication
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/402Communication between platforms, i.e. physical link to protocol
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/404Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network characterized by a local network connection
    • A63F2300/405Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network characterized by a local network connection being a wireless ad hoc network, e.g. Bluetooth, Wi-Fi, Pico net
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/408Peer to peer connection
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/532Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing using secure communication, e.g. by encryption, authentication
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/57Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of game services offered to the player
    • A63F2300/577Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of game services offered to the player for watching a game played by other players

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Child & Adolescent Psychology (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、複数の情報処理装置が接続されて同一のアプリケーションが実行される情報処理システム、当該情報処理システムに含まれる情報処理装置と情報処理プログラム、および、情報処理方法に関する。
従来、複数の情報処理装置が互いに接続されて、当該複数の装置間で共通のプログラムを実行するものが存在する。例えば、特許文献1に記載のゲーム装置は、2つの無線通信機能を有し、他のゲーム装置と接続して共通のゲームプログラムを実行することにより、1つのゲームを行うことができる。具体的には、特許文献1では、例えば2台のゲーム装置が互いに接続されて対戦型のゲームが行われるとともに、当該2台のゲーム装置間で行われる対戦型ゲームを観戦する観戦モードで他のゲーム装置を動作させることができる。より具体的には、特許文献1に記載のゲーム装置は、まず、他のゲーム装置に対して通信接続要求を送信することにより特定小電力無線による通信を確立した後、所定の操作が行われて観戦モードで動作する。
特開2008−148927号公報
しかしながら、特許文献1に記載のゲーム装置では、観戦モードで動作させるために、接続先のゲーム装置に対して接続要求を送信して当該接続先のゲーム装置との間で通信を確立する必要がある。この場合、接続先のゲーム装置には観戦モードで動作するゲーム装置を登録して管理する必要がある。このため、観戦モードのゲーム装置の数が多いと接続先のゲーム装置の負荷が増大したり、ゲームを観戦することができるゲーム装置の数を制限したりする必要がある。
それ故、本発明の目的は、複数の装置が通信して共通のアプリケーションを実行する場合において、装置の管理負荷を低減することが可能な情報処理システム、情報処理装置、情報処理プログラム、情報処理方法を提供することである。
本発明は、上記の課題を解決するために、以下の構成を採用した。
本発明は、操作部と通信機能とを有し、所定の通信アプリケーションを実行可能な情報処理ユニットを複数含む情報処理システムである。上記情報処理システムには、第1情報処理ユニットと、第2情報処理ユニットと、第3情報処理ユニットとが含まれる。上記第1情報処理ユニットは、管理フレーム送信手段と、第1相互登録手段と、第1データ受信手段と、第1実行手段と、第1送信手段とを含む。管理フレーム送信手段は、第1識別情報を含む管理フレームを送信する。第1相互登録手段は、上記第2情報処理ユニットから送られる登録フレームを受信し、当該受信した登録フレームに基づいて上記第2情報処理ユニットを識別する第2識別情報を自機に登録することにより、相互通信の相手として上記第2情報処理ユニットを自機に登録する。第1データ受信手段は、上記第1相互登録手段が自機に登録した上記第2識別情報が示す上記第2情報処理ユニットから送信されたデータを受信する。第1実行手段は、上記第1データ受信手段が受信したデータを用いて上記通信アプリケーションを実行する。第1送信手段は、上記第1情報処理ユニットの操作部において行われた操作に基づく第1データを上記第1識別情報とともに送信する。上記第2情報処理ユニットは、管理フレーム受信手段と、第2相互登録手段と、第2データ受信手段と、第2実行手段と、第2送信手段とを含む。管理フレーム受信手段は、上記管理フレームを受信する。第2相互登録手段は、上記管理フレーム受信手段が上記管理フレームを受信したことに応じて、上記第1情報処理ユニットに上記第2識別情報を登録させるために、当該第1情報処理ユニットに対して上記第2識別情報を含む上記登録フレームを送信するとともに、上記第1情報処理ユニットから送信された管理フレームに含まれる上記第1識別情報を自機に登録することにより、相互通信の相手として上記第1情報処理ユニットを自機に登録する。第2データ受信手段は、上記第2相互登録手段が自機に登録した上記第1識別情報が示す上記第1情報処理ユニットから送信されたデータを受信する。第2実行手段は、上記第2データ受信手段が受信したデータを用いて上記通信アプリケーションを実行する。第2送信手段は、上記第2情報処理ユニットの操作部において行われた操作に基づく第2データを上記第1識別情報とともに送信する。上記第3情報処理ユニットは、第3登録手段と、第3データ受信手段と、第3実行手段とを含む。第3登録手段は、上記第1情報処理ユニットに自機の識別情報を登録させるための登録フレームを送信せずに、上記第1情報処理ユニットから送信された管理フレームに含まれる上記第1識別情報を自機に登録することにより、上記第1情報処理ユニットを自機に一方的に登録する。第3データ受信手段は、上記第3登録手段が自機に一方的に登録した上記第1識別情報に基づいて、上記第1情報処理ユニットが送信した上記第1データおよび上記第2情報処理ユニットが送信した上記第2データを受信する。第3実行手段は、上記第3データ受信手段が受信したデータを用いて上記通信アプリケーションを実行する。上記第1実行手段および第2実行手段は、それぞれ、上記第1データ受信手段または第2データ受信手段により受信したデータを用いて上記通信アプリケーションを実行することにより、上記第1情報処理ユニットの操作部および上記第2情報処理ユニットの操作部において行われた操作を用いて上記通信アプリケーションを実行する。上記第3実行手段は、上記第3データ受信手段が受信したデータを用いて上記通信アプリケーションを実行することにより、上記第1情報処理ユニットの操作部および上記第2情報処理ユニットの操作部において行われた操作を用いて実行される上記通信アプリケーションの実行状況を提示する。
上記によれば、第1情報処理ユニットと第2情報処理ユニットとは、相互に識別情報を登録し、データの送受信を行う。一方、第3情報処理ユニットは、第1情報処理ユニットを一方的に自機に登録し、第1情報処理ユニットには第3情報処理ユニットは登録されない。このため、第3情報処理ユニットは、第1情報処理ユニットに登録されずに、第1情報処理ユニットおよび第2情報処理ユニットにおいて行われた操作に応じたアプリケーションを実行することができる。
本発明の他の構成では、上記第1情報処理ユニットは、他の情報処理ユニットから送信される探索のための探索フレームを受信して、当該探索フレームに対する応答を示す探索応答フレームを送信可能であってもよい。上記第3情報処理ユニットは、第3データを上記探索フレームに含めて、当該探索フレームを上記第1情報処理ユニットに送信する探索フレーム送信手段を含む。また、上記第1情報処理ユニットの上記第1実行手段は、上記第3情報処理ユニットが送信した上記探索フレームに含まれる上記第3データを用いて上記通信アプリケーションを実行する。
上記によれば、第3情報処理ユニットは、探索フレームに第3データを含ませて第1情報処理ユニットに送信することができる。そして、第1情報処理ユニットは、第3データを用いてアプリケーションを実行することができる。
本発明の他の構成では、上記第3データは、上記第3情報処理ユニットの操作部において行われた操作に基づくデータであってもよい。上記第1情報処理ユニットの上記第1実行手段は、上記第3データを用いて上記通信アプリケーションを実行する。
上記によれば、第1情報処理ユニットは、第3データを受信して通信アプリケーションを実行することにより、第3情報処理ユニットの操作部において行われた操作を通信アプリケーションの実行結果に反映することができる。
本発明の他の構成では、上記第1情報処理ユニットの上記第1送信手段は、上記探索フレームに含まれる上記第3データをさらに送信してもよい。上記第2情報処理ユニットの上記第2データ受信手段は、上記第1情報処理ユニットが送信した上記第3データを更に受信する。上記第2情報処理ユニットの上記第2実行手段は、上記第3データを用いて上記通信アプリケーションを実行する。
上記によれば、第3情報処理ユニットが第1情報処理ユニットに送信した第3データを第2情報処理ユニットは受信することができる。これにより、例えば、第2情報処理ユニットは、第3情報処理ユニットにおいて行われた操作に応じた処理を行うことができる。
本発明の他の構成では、上記第1情報処理ユニットの上記第1送信手段は、上記探索応答フレームに所定のデータを含ませて、当該探索応答フレームを送信してもよい。上記第3情報処理ユニットの上記第3データ受信手段は、上記第1情報処理ユニットから送信された上記探索応答フレームを受信して、上記所定のデータを取得する。
上記によれば、第3情報処理ユニットは、探索応答フレームを受信することにより第1情報処理ユニットからの所定のデータを取得することができる。
本発明の他の構成では、上記第1情報処理ユニットの上記第1送信手段は、上記第1データをブロードキャストまたはマルチキャストで送信してもよい。上記第3情報処理ユニットの上記第3データ受信手段は、自機に登録された上記第1識別情報に基づいて、上記第1情報処理ユニットからブロードキャストまたはマルチキャストで送信された上記第1データを受信する。
上記によれば、第1情報処理ユニットは、第1データをブロードキャストまたはマルチキャストで送信することができ、第3情報処理ユニットは当該データを受信することができる。
本発明の他の構成では、上記管理フレームには、上記第1情報処理ユニットに既に登録されている情報処理ユニットに関する情報が含まれてもよい。
上記によれば、第1情報処理ユニットに既に登録されている情報処理ユニットに関する情報を管理フレームに含めることができる。これにより、第2情報処理ユニットおよび第3情報処理ユニットは、既に第1情報処理ユニットに登録されている情報処理ユニットの情報を取得することができる。
本発明の他の構成では、上記第2情報処理ユニットおよび上記第3情報処理ユニットは、上記管理フレームに含まれる、上記第1情報処理ユニットに既に登録されている情報処理ユニットに関する情報を用いて、所定の処理を行ってもよい。
上記によれば、第2情報処理ユニットおよび第3情報処理ユニットは、既に登録されている情報処理ユニットに関する情報を用いて、所定の処理を行うことができる。例えば、既に登録されている情報処理ユニットのリストを表示したり、第1情報処理ユニットに登録されている情報処理ユニットが増減した場合に、増減したことを示す情報を表示したりすることができる。
本発明の他の構成では、上記管理フレームには、上記第3情報処理ユニットによる上記通信アプリケーションの実行を許可するか否かを示す実行可否情報が含まれてもよい。上記第3情報処理ユニットは、上記実行可否情報に基づいて、上記第1データおよび上記第2データを受信するか否か、または、上記通信アプリケーションを実行するか否かを判定する実行判定手段をさらに含む。
上記によれば、第1情報処理ユニットは、第3情報処理ユニットによる通信アプリケーションの実行を許可したり禁止したりすることができる。例えば、第1情報処理ユニットは、第1情報処理ユニットと第2情報処理ユニットとの間で実行される通信アプリケーションの第3情報処理ユニットによる視聴を禁止することができる。
本発明の他の構成では、上記第2情報処理ユニットおよび上記第3情報処理ユニットは、複数の上記第1情報処理ユニットから上記管理フレームを受信した場合、当該複数の上記第1情報処理ユニットに関する情報をユーザに提示して選択させる選択手段を含んでもよい。上記第2情報処理ユニットの上記第2相互登録手段は、ユーザが選択した上記第1情報処理ユニットに対して上記登録フレームを送信するとともに、当該選択した上記第1情報処理ユニットを自機に登録する。上記第3情報処理ユニットの上記第3登録手段は、ユーザが選択した上記第1情報処理ユニットを自機に一方的に登録する。
上記によれば、第2情報処理ユニットおよび第3情報処理ユニットのユーザは、複数の第1情報処理ユニットの中から1つの第1情報処理ユニットを選択して登録することができる。
本発明の他の構成では、上記第1情報処理ユニットの上記第1送信手段は、上記第1データおよび上記第1データ受信手段が受信した上記第2情報処理ユニットからの上記第2データを送信してもよい。上記第3情報処理ユニットの上記第3データ受信手段は、自機に登録された上記第1識別情報に基づいて、上記第1情報処理ユニットから送信された上記第1データおよび上記第2データを受信する。
上記によれば、第1情報処理ユニットは、第2情報処理ユニットから送られた第2データを受信して、当該データを送信することができる。すなわち、第3情報処理ユニットは、第2情報処理ユニットからの第2データを第1情報処理ユニットを経由して受信することができる。これにより、第2情報処理ユニットと第3情報処理ユニットとの距離が離れている場合でも、第3情報処理ユニットは、第1情報処理ユニットを経由して第2情報処理ユニットからのデータを受信することができる。
本発明の他の構成では、上記第1情報処理ユニット、上記第2情報処理ユニット、および、上記第3情報処理ユニットは、IEEE802.11規格に従って通信してもよい。上記第1情報処理ユニットの上記管理フレーム送信手段は、ビーコンを送信する。上記第2情報処理ユニット上記管理フレーム受信手段は、上記ビーコンを受信する。上記第1情報処理ユニットの上記第1相互登録手段および上記第2情報処理ユニットの上記第2相互登録手段は、上記登録フレームとしてオーセンティケーションフレームおよびアソシエーションフレームをやり取りして、相互に登録を行う。上記第3情報処理ユニットの上記第3登録手段は、上記第1情報処理ユニットと上記第3情報処理ユニットの間で上記オーセンティケーションフレームおよび上記アソシエーションフレームをやり取りせずに、上記第1情報処理ユニットから送信されたビーコンに含まれる上記第1識別情報を自機に一方的に登録する。
本発明の他の構成では、上記第1情報処理ユニット、上記第2情報処理ユニット、および、上記第3情報処理ユニットは、IEEE802.11規格に従って通信してもよく、上記探索フレームは、プローブリクエストであってもよい。
本発明の他の構成では、上記探索応答フレームは、プローブレスポンスであってもよい。
上記によれば、第1、第2および第3情報処理ユニットは、IEEE802.11規格に従って通信することができる。
本発明の他の構成では、上記第1情報処理ユニットは、所定の周期でアウェイク状態と省電力状態とを繰り返してもよい。上記第1情報処理ユニットの上記管理フレーム送信手段は、上記所定の周期を示す情報を含む管理フレームを定期的に送信する。上記第2情報処理ユニットは、自機に登録した上記第1識別情報が示す上記第1情報処理ユニットから送信された上記管理フレームに基づいて、上記所定の周期と同期してアウェイク状態と省電力状態とを繰り返す。上記第3情報処理ユニットは、自機に登録した上記第1識別情報が示す上記第1情報処理ユニットから送信された上記管理フレームに基づいて、上記所定の周期と同期してアウェイク状態と省電力状態とを繰り返す。
上記によれば、第1情報処理ユニットと同期して第2情報処理ユニットおよび第3情報処理ユニットは、アウェイク状態と省電力状態とを繰り返すことができる。これにより電力消費を抑えながら通信を行うことができる。
本発明の他の構成では、上記第3情報処理ユニットは、所定のモードに設定されている場合、上記第1情報処理ユニットから送られた上記第1データに基づいて、自機を省電力状態に設定してもよい。上記探索フレーム送信手段は、上記所定のモードに設定されている場合、上記探索フレームの送信を制限する。上記第3データ受信手段は、上記所定のモードに設定されている場合でも、上記第1情報処理ユニットおよび上記第2情報処理ユニットが送信した上記第1データおよび上記第2データを受信する。上記第3実行手段は、上記所定のモードに設定されている場合でも、上記第3データ受信手段が受信したデータを用いて上記通信アプリケーションを実行することにより、上記第1情報処理ユニットの操作部および上記第2情報処理ユニットの操作部において行われた操作を用いて実行される上記通信アプリケーションの実行状況を提示する。
上記によれば、第3情報処理ユニットは、所定のモードの場合、第1情報処理ユニットから送られた第1データに基づいて省電力状態に設定して、電力消費を抑えることができる。また、所定のモードの場合、上記探索フレームの送信を制限することができる。また、探索フレームの送信が制限されている場合でも、データを受信することができ、通信アプリケーションを実行することができる。
また、本発明の他の構成は、通信機能を有し、所定の通信アプリケーションを実行可能な情報処理ユニットを複数含む情報処理システムである。前記情報処理システムには、前記通信アプリケーションを参加モードで実行する参加情報処理ユニットと、前記通信アプリケーションを非参加モードで実行する非参加情報処理ユニットとが含まれる。前記参加情報処理ユニットは、相互登録手段と、第1実行手段とを含む。相互登録手段は、少なくとも1つの他の前記参加情報処理ユニットとの間で、所定の認証処理の後、互いの識別情報を登録する。第1実行手段は、所定のデータを自己の識別情報とともに送信するとともに、前記相互登録手段が登録した前記識別情報が示す前記情報処理ユニットから送信されたデータを用いて前記参加モードで通信アプリケーションを実行し、当該実行結果を提示する。前記非参加情報処理ユニットは、一方的登録手段と、第2実行手段とを含む。一方的登録手段は、前記参加情報処理ユニットとの間で前記認証処理を行うことなく、前記参加情報処理ユニットの少なくとも1つの前記識別情報を自機に一方的に登録する。第2実行手段は、前記一方的登録手段が登録した前記識別情報が示す前記参加情報処理ユニットから送信されたデータを用いて、前記参加モードで実行される前記通信アプリケーションの実行状況を提示する。
上記によれば、参加情報処理ユニットは他の参加情報処理ユニットとの間で認証処理が行われて、互いの識別情報を登録する。非参加情報処理ユニットは、参加情報処理ユニットとの間で認証処理を行わずに、参加情報処理ユニットの少なくとも1つの識別情報を自機に一方的に登録する。また、非参加情報処理ユニットは、自機に登録した参加情報処理ユニットからのデータを用いて通信アプリケーションを実行する。これにより、参加情報処理ユニットに非参加情報処理ユニットの識別情報が登録されずに、非参加情報処理ユニットは、参加情報処理ユニットから送信されたデータを用いて、通信アプリケーションを実行することができる。
また、本発明は、上記情報処理システムにおいて行われる情報処理方法であってもよい。
本発明の他の構成では、所定の通信アプリケーションを実行可能な操作部と通信機能とを有する第1および第2情報処理ユニットにおいて行われた操作に基づいた処理を行う情報処理ユニットである。上記第1情報処理ユニットは、第1識別情報を含む管理フレームを送信し、上記第2情報処理ユニットから送られる登録フレームを受信し、当該受信した登録フレームに基づいて上記第2情報処理ユニットを識別する第2識別情報を自機に登録する。また、上記第1情報処理ユニットは、自機に登録した上記第2識別情報が示す上記第2情報処理ユニットから送信されたデータを受信して、当該データを用いて上記通信アプリケーションを実行することにより、上記第1情報処理ユニットの操作部および上記第2情報処理ユニットの操作部において行われた操作に基づいて進行される上記通信アプリケーションの実行結果を提示するとともに、上記第1情報処理ユニットの操作部において行われた操作に基づく第1データを上記第1識別情報とともに送信する。また、上記第2情報処理ユニットは、上記管理フレームを受信したことに応じて、上記第1情報処理ユニットに上記第2識別情報を登録させるために、当該第1情報処理ユニットに対して上記第2識別情報を含む上記登録フレームを送信するとともに、上記第1情報処理ユニットから送信された管理フレームに含まれる上記第1識別情報を自機に登録する。また、第2情報処理ユニットは、自機に登録した上記第1識別情報が示す上記第1情報処理ユニットから送信されたデータを受信して、当該データを用いて上記通信アプリケーションを実行することにより、上記第1情報処理ユニットの操作部および上記第2情報処理ユニットの操作部において行われた操作に基づいて進行される上記通信アプリケーションの実行結果を提示するとともに、上記第2情報処理ユニットの操作部において行われた操作に基づく第2データを上記第1識別情報とともに送信する。この場合において、上記情報処理ユニットは、登録手段と、データ受信手段と、実行手段とを備える。登録手段は、上記第1情報処理ユニットに自機の識別情報を登録させるための登録フレームを送信せずに、上記第1情報処理ユニットから送信された管理フレームに含まれる上記第1識別情報を自機に登録することにより、上記第1情報処理ユニットを自機に一方的に登録する。データ受信手段は、上記登録手段が自機に一方的に登録した上記第1識別情報に基づいて、上記第1情報処理ユニットが送信した上記第1データおよび上記第2情報処理ユニットが送信した上記第2データを受信する。実行手段は、上記データ受信手段が受信したデータを用いて上記通信アプリケーションを実行することにより、上記第1情報処理ユニットの操作部および上記第2情報処理ユニットの操作部において行われた操作に基づいて進行される上記通信アプリケーションの実行結果を提示する。
上記によれば、情報処理ユニットは、第1情報処理ユニットおよび第2情報処理ユニットに感知されずに、第1情報処理ユニットと第2情報処理ユニットとの間で送受信されるデータを受信し、当該データを用いて通信アプリケーションを実行することができる。
本発明の他の構成では、上記情報処理ユニットにおいて行われる情報処理プログラムであってもよい。
本発明によれば、複数の装置が通信して共通のアプリケーションを実行する場合において、装置の管理負荷を低減することができる。
開状態におけるゲーム装置10の正面図 閉状態におけるゲーム装置10の左側面図、正面図、右側面図および背面図 ゲーム装置10の内部構成を示すブロック図 本実施形態に係るゲームが実行される際に複数のゲーム装置10によって構成されるネットワークを示す図 本実施形態に係るゲームが実行された場合にゲーム装置の上側LCD22に表示される画像の一例を示す図 マスターにおいて生成されるクライアントの登録テーブル80を示す図 各ゲーム装置10のメモリ(メインメモリ32や無線通信モジュール36内のメモリ等)のメモリマップを示す図 各ゲーム装置10において実行される設定処理の流れを示すフローチャート マスターによって定期的に送信されるビーコンのフレームフォーマットを示す図 ステップS5において画面に表示される画像の一例を示す図 マスターとして機能するゲーム装置10の処理(マスター処理)の詳細を示すフローチャート クライアントとして機能するゲーム装置10の処理(クライアント処理)の詳細を示すフローチャート オーディエンスとして機能するゲーム装置10の処理(オーディエンス処理)の詳細を示すフローチャート 各ゲーム装置10の状態の遷移を示す図 マスターのデータ送信処理の概要を示す図 マスターから送信されたフレームをクライアントが受信した場合、クライアントで行われる受信処理の概要を示す図 マスターにおいて行われるデータ送信処理(マスター)の詳細を示すフローチャート クライアントにおいて行われるデータ送信処理(クライアント)の詳細を示すフローチャート クライアントにおいて行われるデータ受信処理の詳細を示すフローチャート オーディエンスにおいて行われるデータ受信処理(オーディエンス)の詳細を示すフローチャート マスターにおいて行われるデータ受信処理(マスター)の詳細を示すフローチャート マスターを経由してクライアントC1から全端末にデータが送信される様子を示す図 クライアントC1から直接全端末にデータを送信する様子を示す図
(ゲーム装置の構成)
以下、本発明の一実施形態に係るゲーム装置について説明する。図1は、開状態におけるゲーム装置10の外観を示す正面図である。図2(a)は閉状態におけるゲーム装置10の左側面図であり、図2(b)は閉状態におけるゲーム装置10の正面図であり、図2(c)は閉状態におけるゲーム装置10の右側面図であり、図2(d)は閉状態におけるゲーム装置10の背面図である。ゲーム装置10は携帯型のゲーム装置であり、図1および図2に示すように折り畳み可能に構成されている。図1は、開いた状態(開状態)におけるゲーム装置10を示し、図2は、閉じた状態(閉状態)におけるゲーム装置10を示している。ゲーム装置10は、撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置10は、交換可能なメモリカード内に記憶され、または、サーバや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像などのコンピュータグラフィックス処理により生成された画像を画面に表示したりすることができる。
まず、図1および図2を参照して、ゲーム装置10の外観構成について説明する。図1および図2に示されるように、ゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に接続されている。
(下側ハウジングの説明)
まず、下側ハウジング11の構成について説明する。図1および図2に示すように、下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14L、アナログスティック15、LED16A〜16B、挿入口17、および、マイクロフォン用孔18が設けられる。以下、これらの詳細について説明する。
図1に示すように、下側LCD12は下側ハウジング11に収納される。下側LCD12の画素数は、例えば、320dot×240dot(横×縦)であってもよい。下側LCD12は、後述する上側LCD22とは異なり、画像を(立体視可能ではなく)平面的に表示する表示装置である。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側LCD12として、任意の解像度の表示装置を利用することができる。
図1に示されるように、ゲーム装置10は、入力装置として、タッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上に装着されている。なお、本実施形態では、タッチパネル13は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。本実施形態では、タッチパネル13として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度が一致している必要はない。また、下側ハウジング11の上側面には挿入口17(図1および図2(d)に示す点線)が設けられている。挿入口17は、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13に対する入力は通常タッチペン28を用いて行われるが、タッチペン28に限らずユーザの指でタッチパネル13に対する入力をすることも可能である。
各操作ボタン14A〜14Lは、所定の入力を行うための入力装置である。図1に示されるように、下側ハウジング11の内側面(主面)には、各操作ボタン14A〜14Lのうち、十字ボタン14A(方向入力ボタン14A)、ボタン14B、ボタン14C、ボタン14D、ボタン14E、電源ボタン14F、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lが、設けられる。十字ボタン14Aは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン14A〜14E、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lには、ゲーム装置10が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは選択操作等に用いられ、各操作ボタン14B〜14Eは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン14Fは、ゲーム装置10の電源をオン/オフするために用いられる。
アナログスティック15は、方向を指示するデバイスである。アナログスティック15は、そのキートップが、下側ハウジング11の内側面に平行にスライドするように構成されている。アナログスティック15は、ゲーム装置10が実行するプログラムに応じて機能する。例えば、3次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置10によって実行される場合、アナログスティック15は、当該所定のオブジェクトを3次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトはアナログスティック15のキートップがスライドした方向に移動される。なお、アナログスティック15として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いても良い。
また、下側ハウジング11の内側面には、マイクロフォン用孔18が設けられる。マイクロフォン用孔18の下部には後述する音声入力装置としてのマイク42(図3参照)が設けられ、当該マイク42がゲーム装置10の外部の音を検出する。
図2(b)および(d)に示されるように、下側ハウジング11の上側面には、Lボタン14GおよびRボタン14Hが設けられている。Lボタン14GおよびRボタン14Hは、例えば、撮像部のシャッターボタン(撮影指示ボタン)として機能することができる。また、図2(a)に示されるように、下側ハウジング11の左側面には、音量ボタン14Iが設けられる。音量ボタン14Iは、ゲーム装置10が備えるスピーカの音量を調整するために用いられる。
図2(a)に示されるように、下側ハウジング11の左側面には開閉可能なカバー部11Cが設けられる。このカバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ45とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ45は、コネクタに着脱自在に装着される。データ保存用外部メモリ45は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。
また、図2(d)に示されるように、下側ハウジング11の上側面には、ゲーム装置10とゲームプログラムを記録した外部メモリ44を挿入するための挿入口11Dが設けられ、その挿入口11Dの内部には、外部メモリ44と電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。当該外部メモリ44がゲーム装置10に接続されることにより、所定のゲームプログラムが実行される。
また、図1および図2(c)に示されるように、下側ハウジング11の下側面にはゲーム装置10の電源のON/OFF状況をユーザに通知する第1LED16A、下側ハウジング11の右側面にはゲーム装置10の無線通信の確立状況をユーザに通知する第2LED16Bが設けられる。ゲーム装置10は他の機器との間で無線通信を行うことが可能であり、第2LED16Bは、無線通信の機能が有効である場合に点灯する。ゲーム装置10は、例えば、IEEE802.11b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチ19が設けられる(図2(c)参照)。
なお、図示は省略するが、下側ハウジング11には、ゲーム装置10の電源となる充電式電池が収納され、下側ハウジング11の側面(例えば、上側面)に設けられた端子を介して当該電池を充電することができる。
(上側ハウジングの説明)
次に、上側ハウジング21の構成について説明する。図1および図2に示すように、上側ハウジング21には、上側LCD(Liquid Crystal Display:液晶表示装置)22、外側撮像部23(外側撮像部(左)23aおよび外側撮像部(右)23b)、内側撮像部24、3D調整スイッチ25、および、3Dインジケータ26が設けられる。以下、これらの詳細について説明する。
図1に示すように、上側LCD22は上側ハウジング21に収納される。上側LCD22の画素数は、例えば、800dot×240dot(横×縦)であってもよい。なお、本実施形態では上側LCD22は液晶表示装置であるとしたが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。また、本実施例では、実質的に同一の表示領域を用いて左目用画像と右目用画像が表示される。具体的には、左目用画像と右目用画像が所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。または、左目用画像と右目用画像とが時間的に交互に表示され、メガネを用いてユーザの左目に左目用画像が右目に右目用画像が視認される方式の表示装置であってもよい。本実施例では、裸眼立体視可能な表示装置である。そして、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、上側LCD22はパララックスバリア方式のものとする。上側LCD22は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像(立体画像)を表示する。すなわち、上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像を視認させることにより、ユーザにとって立体感のある立体画像(立体視可能な画像)を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる(上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである)。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する3D調整スイッチ25によって行われる。
外側撮像部23は、上側ハウジング21の外側面(上側LCD22が設けられた主面と反対側の背面)21Dに設けられた2つの撮像部(23aおよび23b)の総称である。外側撮像部(左)23aと外側撮像部(右)23bの撮像方向は、いずれも当該外側面21Dの外向きの法線方向である。外側撮像部(左)23aと外側撮像部(右)23bとは、ゲーム装置10が実行するプログラムによって、ステレオカメラとして使用することが可能である。外側撮像部(左)23aおよび外側撮像部(右)23bは、それぞれ所定の共通の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
内側撮像部24は、上側ハウジング21の内側面(主面)21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。3D調整スイッチ25のスライダ25aは、所定方向(上下方向)の任意の位置にスライド可能であり、当該スライダ25aの位置に応じて上側LCD22の表示モードが設定される。また、スライダ25aの位置に応じて、立体画像の見え方が調整される。具体的には、スライダ25aの位置に応じて、右目用画像および左目用画像の横方向の位置のずれ量が調整される。
3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。なお、3Dインジケータ26は、上側LCD22が立体表示モードになっており、かつ、立体視画像を表示するプログラム処理が実行されているときに限り、点灯するようにしてもよい。
また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられる。後述するスピーカ43からの音声がこのスピーカ孔21Eから出力される。
(ゲーム装置10の内部構成)
次に、図3を参照して、ゲーム装置10の内部の電気的構成について説明する。図3は、ゲーム装置10の内部構成を示すブロック図である。図3に示すように、ゲーム装置10は、上述した各部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、リアルタイムクロック(RTC)38、加速度センサ39、電源回路40、およびインターフェイス回路(I/F回路)41等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312等を含む情報処理手段である。情報処理部31のCPU311は、ゲーム装置10内のメモリ(例えば外部メモリI/F33に接続された外部メモリ44やデータ保存用内部メモリ35)に記憶されているプログラムを実行することによって、当該プログラムに応じた処理を実行する。なお、情報処理部31のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部31は、VRAM(Video RAM)313を含む。情報処理部31のGPU312は、情報処理部31のCPU311からの命令に応じて画像を生成し、VRAM313に描画する。そして、情報処理部31のGPU312は、VRAM313に描画された画像を上側LCD22及び/又は下側LCD12に出力し、上側LCD22及び/又は下側LCD12に当該画像が表示される。
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、および、データ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ44を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ45を着脱自在に接続するためのインターフェイスである。
メインメモリ32は、情報処理部31(のCPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、上記プログラムに基づく処理に用いられる各種データを一時的に記憶したり、外部(外部メモリ44や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。
外部メモリ44は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ44は、例えば読み取り専用の半導体メモリで構成される。外部メモリ44が外部メモリI/F33に接続されると、情報処理部31は外部メモリ44に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ45は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ45には、外側撮像部23で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ45がデータ保存用外部メモリI/F34に接続されると、情報処理部31はデータ保存用外部メモリ45に記憶された画像を読み込み、上側LCD22及び/又は下側LCD12に当該画像を表示することができる。
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
無線通信モジュール36は、例えばIEEE802.11b/gの規格に準拠した方式により、無線LANに接続する機能を有する。無線通信モジュール36は情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したりすることができる。なお、無線通信モジュール36は、IEEE802.11b/g規格以外の独自の通信方式をサポートしてもよい。
また、情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。加速度センサ39は、下側ハウジング11の内部に設けられる。加速度センサ39は、図1に示すように、下側ハウジング11の長辺方向をx軸、下側ハウジング11の短辺方向をy軸、下側ハウジング11の内側面(主面)に対して垂直な方向をz軸として、各軸の直線加速度の大きさを検出する。なお、加速度センサ39は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ39は1軸又は2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受信して、ゲーム装置10の姿勢や動きを検出することができる。
また、情報処理部31には、RTC38および電源回路40が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路40は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
また、情報処理部31には、I/F回路41が接続される。I/F回路41には、マイク42およびスピーカ43が接続される。具体的には、I/F回路41には、図示しないアンプを介してスピーカ43が接続される。マイク42は、ユーザの音声を検知して音声信号をI/F回路41に出力する。アンプは、I/F回路41からの音声信号を増幅し、音声をスピーカ43から出力させる。また、タッチパネル13はI/F回路41に接続される。I/F回路41は、マイク42およびスピーカ43(アンプ)の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部31に出力する。タッチ位置データは、タッチパネル13の入力面において入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。情報処理部31は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われた位置を知ることができる。
操作ボタン14は、上記各操作ボタン14A〜14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に従った処理を実行する。
下側LCD12および上側LCD22は情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(のGPU312)の指示に従って画像を表示する。本実施形態では、情報処理部31は、上側LCD22に立体画像(立体視可能な画像)を表示させる。
具体的には、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された右目用画像と左目用画像とが、上側LCD22に出力される。より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像が表示される。
外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示に従って画像を撮像し、撮像した画像データを情報処理部31に出力する。
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダ25aの位置に応じた電気信号を情報処理部31に送信する。
また、3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。例えば、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。
また、情報処理部31には、角速度センサ46が接続される。角速度センサ46は、各軸(x軸、y軸、z軸)周りの角速度を検出する。ゲーム装置10は、角速度センサ46が逐次検出する角速度に基づいて、実空間におけるゲーム装置10の姿勢を算出することができる。具体的には、ゲーム装置10は、角速度センサ46によって検出された各軸周りの角速度を時間で積分することによって、各軸周りのゲーム装置10の回転角を算出することができる。以上がゲーム装置10の内部構成の説明である。
(通信処理の概要)
次に、図面を参照して、本発明の一実施形態に係る通信処理の概要について説明する。ゲーム装置10は、無線通信モジュール36によって例えばIEEE802.11.b/gの規格に準拠した方式により、他のゲーム装置と通信可能である。本実施形態では、複数のゲーム装置10が、IEEE802.11.b/gの規格に一部準拠した方式により互いに接続されることによって、ゲームが進行する。
図4は、本実施形態に係るゲームが実行される際に複数のゲーム装置10によって構成されるネットワークを示す図である。図4に示すように、本実施形態では、複数のゲーム装置10のうち、1台のゲーム装置10aがマスターとして機能し、ゲーム装置10bおよびゲーム装置10cがクライアントC1およびクライアントC2として機能する(ゲーム装置10a〜10cは参加モードで動作する)。また、本実施形態では、マスター、クライアントC1およびクライアントC2とは別のゲーム装置10dが、オーディエンス(観戦者)として機能する(ゲーム装置10dは非参加モードで動作する)。オーディエンスは、マスターおよびクライアント間で進行するゲームの観戦のみを行う。なお、クライアントとしてゲームに参加可能なゲーム装置10の台数は、例えば最大で15に設定される。また、オーディエンスとしてゲームに参加可能なゲーム装置10の台数には制限は設けられない。
図5は、本実施形態に係るゲームが実行された場合にゲーム装置の上側LCD22に表示される画像の一例を示す図である。図5に示すように、例えば、ゲーム装置10a〜10dの上側LCD22には複数のゲームキャラクタが表示され、複数のゲームキャラクタがカートに乗ってコース上を走行するレースゲームが行われる。具体的には、ゲーム装置10a〜10cの上側LCD22には、マスター(ゲーム装置10a)のユーザによって操作されるゲームキャラクタ101、クライアントC1(ゲーム装置10b)のユーザによって操作されるゲームキャラクタ102、および、クライアントC2(ゲーム装置10c)のユーザによって操作されるゲームキャラクタ103が表示される。また、図5に示す画像は、オーディエンス(ゲーム装置10d)の上側LCD22にも表示される。オーディエンスは、レースゲームには当事者として参加しないが、ゲーム装置10a〜10cの間で進行するレースゲームの観戦者として参加して、当該レースゲームを見ることができる。なお、各ゲーム装置10の画面に表示される画像は異なっていてもよく、例えば、視点が異なる画像がそれぞれのゲーム装置10において表示されてもよい。例えば、マスターの画面には、マスターにおいて操作されるゲームキャラクタ101を中心とした画像が表示され、クライアントC1の画面にはクライアントC1で操作されるゲームキャラクタ102を中心とした画像が表示されてもよい。また、オーディエンスの画面には、マスターおよび各クライアントとは視点が異なる画像が表示されてもよい。また、オーディエンスにおいて、仮想空間の画像を表示せずに、ゲーム状況を認識可能な情報(例えば、コースマップの画像、数値や文字等)が画面に表示されてもよい。
図4に示すように、マスター(ゲーム装置10a)と、クライアントC1(ゲーム装置10b)との間では、まず、認証が行われる。同様に、マスター(ゲーム装置10a)と、クライアントC2(ゲーム装置10c)との間も、認証が行われる。マスターとクライアントCとの間で認証が行われると、マスターは認証したクライアントCの識別情報(MACアドレス)を自機に登録し、登録したクライアントCとの間で、操作データ(例えば操作ボタン14等に対する操作データ)等を送受信する。同様に、クライアントは、マスターとの間で認証が行われると、マスターの識別情報(MACアドレス)を自機に登録する。これによって、マスターとクライアントCとの間でデータがやり取りされて、ゲームが進行する。一方、マスター(ゲーム装置10a)と、オーディエンス(ゲーム装置10d)との間では、認証は行われず、マスターにはオーディエンスの識別情報(MACアドレス)は登録されない。オーディエンスは、マスターの識別情報(MACアドレス)を自機に登録する。オーディエンスは、マスターおよびクライアントCから送信されるデータの受信のみを行い、マスターおよびクライアントCから送信されるデータに基づいてゲーム画像を生成して、自機の上側LCD22に当該ゲーム画像を表示する。マスターと、オーディエンスとの間では、認証のための通信は一切行われないため、オーディエンスはマスターおよびクライアントCに認識されない。
図6は、マスターにおいて生成されるクライアントの登録テーブル80を示す図である。図6に示すように、マスターには、認証が完了したクライアントのMACアドレス、ユーザ名、および、IDが記憶される。ユーザ名は、各ゲーム装置のユーザによって割り当てられた名前である。IDは、マスターが各クライアントを登録する際に、各クライアントに割り当てる番号であり、例えば、1〜15までの整数値である。マスターは、認証が完了したクライアントを図6に示すテーブルに、例えば最大で15台まで登録する。一方、オーディエンスはマスターの登録テーブル80には登録されない。
各ゲーム装置では、ゲームが実行される前に設定処理が行われる。当該設定処理が行われることによって、ゲーム装置が上記マスター、クライアント、および、オーディエンスの何れかで動作するかが決定される。本実施形態では、各ゲーム装置10のユーザが、自身が使用するゲーム装置をマスター、クライアント、および、オーディエンスの何れで動作させるかを選択する。
(設定処理)
次に、ゲーム装置10において行われる設定処理について説明する。図7は、各ゲーム装置10のメモリ(メインメモリ32や無線通信モジュール36内のメモリ等)のメモリマップを示す図である。
図7に示すように、ゲーム装置10のメモリには、通信プログラム71、モードデータ72、および、識別情報73が記憶される。通信プログラム71は、通信を制御するプログラムとゲームプログラムとを含む。具体的には、通信プログラム71は、後述する各処理(設定処理、マスター処理、クライアント処理、オーディエンス処理、データ送信処理、および、データ受信処理)を実行するためのプログラムである。モードデータ72は、ゲーム装置10を、マスター、クライアント、および、オーディエンスの何れのモードで動作させるかを示すデータである。識別情報73は、自機がどのマスターに接続しているかを識別するための識別情報であり、具体的には、マスターのMACアドレスである。ゲーム装置10がマスターとして機能する場合、識別情報73には自機のMACアドレスが記憶される。図7に示すデータの他、各ゲーム装置10のメモリには、それぞれのモードに応じて、種々のデータが記憶される。例えば、マスターには、図6に示す登録テーブル80を示すデータ等が記憶される。また、マスターおよびクライアントのメモリには、後述する個別送信データを格納するための領域である個別送信箱110、および、全送信データを格納するための領域である全送信箱120が設けられる。また、例えば、各ゲーム装置のメモリには、ゲーム処理に用いられる各種のデータが記憶される。
図8は、各ゲーム装置10において実行される設定処理の流れを示すフローチャートである。ゲーム装置10の電源が投入されると、ゲーム装置10の情報処理部31(CPU311)は、ROM(図示せず)に記憶されている起動プログラムを実行し、これによってメインメモリ32等の各ユニットが初期化される。次に、ROMに記憶されたプログラムがメモリ(具体的には、メインメモリ32)に読み込まれ、情報処理部31のCPU311によって当該プログラムの実行が開始される。図8のフローチャートに示す処理は、以上の処理が完了した後に情報処理部31によって行われる。
まず、ステップS1において、情報処理部31は、マスターになるか否かの選択画面を上側LCD22または下側LCD12に表示する。例えば、下側LCD12には、自機をマスターとして機能させるか否かをユーザに選択させるためのアイコンが表示される。次に、情報処理部31は、ステップS2の処理を実行する。
ステップS2において、情報処理部31は、マスターが選択されたか否かを判定する。例えば、情報処理部31は、タッチパネル13が検出したタッチ位置に基づいて、マスターを選択するためのアイコンがタッチされたか否かを判定する。マスターが選択された場合、情報処理部31は、次にステップS3の処理を実行する。一方、マスターが選択されなかった場合、情報処理部31は、次にステップS4の処理を実行する。
ステップS3において、情報処理部31は、自機をマスターモードに設定する。具体的には、情報処理部31は、モードデータ72にマスターであることを示す値を格納するとともに、識別情報73に自機のMACアドレスを設定する。次に情報処理部31は、図8に示す設定処理を終了する。
一方、ステップS4において、情報処理部31は、ビーコンを受信したか否かを判定する。ここで、ビーコンは、マスターによってブロードキャストで定期的(例えば、100msec毎)に送信される管理(マネジメント)フレームである。マスターとして機能するゲーム装置10が自機の近くに存在する場合、情報処理部31は、マスターから定期的に送信されるビーコンを受信する。
図9は、マスターによって定期的に送信されるビーコンのフレームフォーマットを示す図である。図9に示すように、ビーコンには、送信元アドレス(マスターのMACアドレス)、BSSID(マスターのMACアドレスと一致する)、ゲームID、接続数、最大接続数、接続済みリスト、および、観戦許可フラグが含まれる。送信元アドレスおよびBSSIDは、当該フレームのヘッダ部分に埋め込まれている。また、ゲームID、接続数、最大接続数、接続済みリスト、および、観戦許可フラグは、ベンダー固有の情報要素としてフレームのボディ部分に含められる情報である。ゲームIDは、各ゲーム装置10で行われるゲームを識別するためのIDである。また、接続数は、現在マスターの登録テーブル80に登録されているクライアント(認証済みのクライアント)の数である。最大接続数は、マスターが許容するクライアントの最大接続数(15)にマスター自身を加えた数であり、例えば、16に設定されている。接続済みリストは、現在マスターに登録されているクライアント(登録テーブル80に登録されたクライアント)を示す情報のリストであり、例えば、登録されているクライアントのユーザ名のリストである。観戦許可フラグは、オーディエンスによる観戦を許可するか否かを示す情報である。
ステップS4において、情報処理部31は、ビーコンを受信した場合、次にステップS5の処理を実行する。一方、情報処理部31は、ビーコンを受信しなかった場合、次にステップS6の処理を実行する。
ステップS5において、情報処理部31は、マスターおよびクライアントのリストの表示、および、選択画面の表示をする。ここでは、情報処理部31は、ステップS4で受信したビーコンに含まれる接続済みリストに基づいて、現在マスターに登録されているクライアントのリストを上側LCD22または下側LCD12に表示する。例えば、図4に示すゲーム装置10aがマスターとして機能しており、ゲーム装置10cがクライアントとしてマスターに登録されている場合、情報処理部31は、ゲーム装置10aおよびゲーム装置10cを示すアイコンを下側LCD12に表示する。なお、ステップS4において、送信元が異なる複数のビーコンを受信した場合(すなわち、自機の近くにマスターとして機能するゲーム装置10が複数存在する場合)、情報処理部31は、各マスターとそれに登録されているクライアントとを表示する。これにより、ユーザは、どのマスターに接続するか(どのマスターによって構成されるネットワークに接続するか)を選択する。また、情報処理部31は、自機をクライアントとして動作させるか、オーディエンスとして動作させるかをユーザに選択させるためのアイコンを上側LCD22または下側LCD12に表示する。例えば、下側LCD12には、ゲームに参加することを示すアイコンと、ゲームを観戦することを示すアイコンとが表示され、ユーザにどちらか一方のアイコンを選択させる。図10は、ステップS5において画面に表示される画像の一例を示す図である。図10に示すように、自機の近くにマスターM10およびマスターM20の2台のマスターが検出された場合(すなわち、異なる2つの端末からビーコンを受信した場合)、例えば下側LCD12の画面にはマスターによって構成されるグループ(ネットワーク)毎にリストが表示される。例えば、マスターM10、クライアントC11およびクライアントC12によって構成されるグループ1と、マスターM20、クライアントC21およびクライアントC22によって構成されるグループ2とが、表示される。例えば、ユーザは、表示されたグループの何れかを選択する。そして、ユーザは、その選択したグループに対して、ゲームに参加するか(クライアントとして動作させるか)、ゲームを観戦するか(オーディエンスとして動作させるか)を選択する。情報処理部31は、次にステップS7の処理を実行する。
一方、ステップS6において、情報処理部31は、所定時間経過したか否かを判定する。所定時間が経過した場合、自機の近くにマスターとして機能するゲーム装置10を見つけることが出来なかったため、情報処理部31は、ステップS1の処理を再び実行する。一方、所定時間が経過していない場合、情報処理部31は、ステップS4の処理を再び実行する。
ステップS7において、情報処理部31は、ゲームに参加することを示すアイコンが選択されたか否かを判定する。具体的には、情報処理部31は、タッチパネル13が検出したタッチ位置に基づいて、ゲームに参加することを示すアイコン(すなわち、自機をクライアントとして動作させることを示すアイコン)が選択されたか否かを判定する。判定結果が肯定の場合、情報処理部31は、次にステップS8の処理を実行する。判定結果が否定の場合、情報処理部31は、次にステップS9の処理を実行する。
ステップS8において、情報処理部31は、自機をクライアントモードに設定する。具体的には、情報処理部31は、モードデータ72にクライアントであることを示す値を格納する。その後、情報処理部31は、図8に示す設定処理を終了する。
ステップS9において、情報処理部31は、自機をオーディエンスモードに設定する。具体的には、情報処理部31は、モードデータ72にオーディエンスであることを示す値を格納する。その後、情報処理部31は、図8に示す設定処理を終了する。
以上のようにして、各ゲーム装置10は、マスターモード、クライアントモード、および、オーディエンスモードの何れかに設定される。このようにして各ゲーム装置のモードが設定されると、各ゲーム装置は、設定されたモードに応じてそれぞれ異なる処理を実行する。
(マスター処理)
次に、マスターで行われる処理の詳細について説明する。図11は、マスターとして機能するゲーム装置10の処理(マスター処理)の詳細を示すフローチャートである。
図8に示す設定処理が行われて、ゲーム装置10がマスターに設定されると図11に示すマスター処理が、マスターの情報処理部31および無線通信モジュール36によって実行される。
まず、ステップS10において、マスターは、ビーコンの送信を開始する。ステップS10においてビーコンの送信を開始すると、マスターは、以降のステップS11〜ステップS20の処理を行う間、定期的に(例えば、100msec毎に)ビーコンを送信する。次に、マスターは、ステップS11の処理を実行する。
ステップS11において、マスターは、クライアントから接続要求(登録フレーム)があったか否かを判定する。具体的には、マスターは、クライアントから接続要求を示すフレーム(オーセンティケーションフレーム)を受信したか否かを判定する。判定結果が肯定の場合、マスターは、次にステップS12の処理を実行する。一方、判定結果が否定の場合、マスターは、次にステップS16の処理を実行する。
ステップS12において、マスターは、認証処理を開始して、ステップS13の処理を実行する。
ステップS13において、マスターは、接続を許可するか否かを判定する。マスターは、接続を許可すると判定した場合、次にステップS14の処理を実行する。一方、マスターは、マスターは、接続を拒否すると判定した場合、次にステップS15の処理を実行する。例えば、マスターは、ステップS13において、所定の認証方式による認証処理を行うことによって、接続要求を送信した端末の接続を許可するか否かを判定する。また、ステップS13において、マスターは、登録テーブル80を参照して、現在登録されているクライアントの数が最大接続数(例えば、15)より小さいか否かを判定する。本実施形態では、オープンシステム認証による認証が行われるものとする。すなわち、マスターは、ステップS13において、現在登録されているクライアントの数が最大接続数より小さければ、接続要求を送信したクライアントの接続を許可し、現在接続されているクライアントの数が最大接続数以上であれば、当該クライアントの接続を拒否する。
ステップS14において、マスターは、接続要求を送信したクライアントとの接続を確立した後、当該クライアントを自機に登録する。具体的には、マスターは、当該クライアントに対して接続許可を示すフレーム(オーセンティケーションフレーム)を送信するとともに、当該クライアントとの間でアソシエーションフレームをやり取りすることでアソシエーション処理を実行する。アソシエーション処理の後、マスターとクライアントとはアプリケーションレベルでの登録処理を行う。具体的には、クライアントが、マスターに対して、ユーザ名を含む登録要求のためのフレームを送信する。登録要求のためのフレームを受信したマスターは、当該ユーザ名を含む情報を取得して、当該クライアントのためのIDを付与する。次に、マスターは、当該クライアントに対して登録許可のフレームを送信する。当該登録許可のフレームには、当該クライアントのユーザ名やID等の情報に加えて、マスターおよび他の全ての登録済みのクライアントのユーザ名やID等の情報が含まれる。これにより、マスターとクライアントとの間でアプリケーションレベルでの登録処理が行われる。そして、当該登録処理が完了すると、マスターは、当該クライアントを登録テーブル80に登録する。このとき、マスターは、当該クライアントのMACアドレス、ユーザ名、および、IDを登録テーブル80に登録する。これにより、マスターは、当該クライアントを自機に登録する。
なお、上記アプリケーションレベルでの登録処理は必ずしも行われなくてもよい。すなわち、クライアントとマスターとの間でオーセンティケーションフレームおよびアソシエーションフレームのやり取りが行われた後、マスターおよびクライアントは、相互に登録してもよい。ステップS14の処理の後、マスターは、次にステップS16の処理を実行する。
一方、ステップS15において、マスターは、接続要求を送信したクライアントに対して、接続拒否を示すフレームを送信する。ここでは、マスターは、接続要求を送信したクライアントを登録テーブル80に登録しない。マスターは、次にステップS16の処理を実行する。
ステップS16において、マスターは、ゲームを開始するか否かの判定を行う。判定結果が肯定の場合、マスターは、各クライアントにゲームを開始することを示すコマンドを送信し、次にステップS17の処理を実行する。判定結果が否定の場合、マスターは、ステップS11の処理を再び実行する。例えば、マスターは、登録されたクライアントの数が最大接続数に達した場合、ゲームを開始すると判定してもよいし、ステップS11の処理の実行を開始してから所定時間が経過した場合に、ゲームを開始すると判定してもよい。ステップS11〜S16の処理が繰り返し行われることによって、マスターに1以上のクライアントが登録され、ゲームが開始される。
ステップS17において、マスターは、プローブリクエスト(探索フレーム)を受信したか否かを判定する。具体的には、マスターは、オーディエンスから送信されるプローブリクエストを受信したか否かを判定する。後述するように、オーディエンスは、基本的にはデータの受信のみを行うが、プローブリクエストをマスターに対して送信することにより、マスターに対して情報を送信することができる。オーディエンスが送信するプローブリクエストについては、後述する。判定結果が肯定の場合、マスターは、次にステップS18の処理を実行する。判定結果が否定の場合、マスターは、次にステップS19の処理を実行する。
ステップS18において、マスターは、受信したプローブリクエストに応じた処理を行い、当該処理の結果をプローブレスポンス(探索応答フレーム)として、オーディエンスに送信する。マスターは、次にステップS19の処理を実行する。
ステップS19において、マスターは、データの送受信処理を行う。ここでは、マスターが、ゲーム処理のためのデータ(自機において行われた操作を示す操作情報や自機で操作されるゲームキャラクタに関する情報等を示すデータ)をクライアントに対して送信したり、クライアントから送信される、ゲーム処理のためのデータを受信したりする。マスターにおいて行われるデータ送受信処理の詳細については後述する。次に、マスターは、ステップS20の処理を実行する。
ステップS20において、マスターは、ゲーム処理を実行する。ここでは、マスターは、ステップS19で受信したデータ、および、自機において行われた操作(操作ボタン14やアナログスティック15、タッチパネル13等に対して行われた操作)に応じて、ゲーム処理を行う。例えば、マスターは、自機において行われた操作に基づいて、自機で操作されるゲームキャラクタ101の動作を決定したり当該ゲームキャラクタ101の位置情報を更新したりする。また、マスターは、ステップS19において、例えば、クライアントC1から受信した操作情報、または、クライアントC1から受信したゲームキャラクタ102の位置情報に基づいて、当該ゲームキャラクタ102の位置を更新する。また、マスターは、仮想空間内の仮想カメラの位置や視線方向を決定して、各ゲームキャラクタを当該仮想カメラで撮像することにより、画像を生成する。そして、マスターは、上側LCD22に生成した画像を表示する。ステップS20の処理の後、マスターは、ステップS17の処理を再び実行する。
以上のように、ステップS17〜ステップS20の処理が繰り返し実行されることによって、ゲームが進行する。なお、ユーザによってゲームが終了された場合や、レースゲームが終了した場合は、図11に示すマスター処理は終了する。
(クライアント処理)
次に、クライアントで行われる処理の詳細について説明する。図12は、クライアントとして機能するゲーム装置10の処理(クライアント処理)の詳細を示すフローチャートである。
図8に示す設定処理が行われて、ゲーム装置10がクライアントに設定されると図12に示すクライアント処理が、クライアントの情報処理部31および無線通信モジュール36によって実行される。
まず、ステップS30において、クライアントは、JOIN処理を実行する。具体的には、クライアントは、上記設定処理のステップS5で選択されたマスターから送信されたビーコンを受信して、マスターとの同期を行う(JOINする)。クライアントは、次にステップS31の処理を実行する。
ステップS31において、クライアントは、接続要求を送信する。具体的には、クライアントは、マスターに対して接続要求を示すフレーム(オーセンティケーションフレーム)を送信する。次に、クライアントは、ステップS32の処理を実行する。
ステップS32において、クライアントは、マスターとの間で認証処理を行う。本実施形態では、オープンシステム認証による認証処理が行われるため、クライアントは、次にステップS33の処理を行う。
ステップS33において、クライアントは、マスターから接続が許可されたか否かを判定する。具体的には、クライアントは、接続許可を示すフレーム(ステップS14で送信されたフレーム)を受信した場合、次にステップS34の処理を実行する。一方、クライアントは、接続拒否を示すフレーム(ステップS15で送信されたフレーム)を受信した場合、図12に示すクライアント処理を終了する。
ステップS34において、クライアントは、マスターとの間で接続を確立する。具体的には、クライアントは、マスターとの間でアソシエーションフレームをやり取りすることでアソシエーション処理を実行する。アソシエーション処理の後、マスターとクライアントとの間で、上記アプリケーションレベルでの登録処理が行われる。具体的には、クライアントは、マスターに対して自機のユーザ名と上記所定の情報とを含む上記登録要求のためのフレームを送信し、当該マスターから上記登録許可のフレームを受信する。そして、当該登録処理が完了した後、クライアントは、当該マスターのMACアドレスを識別情報73としてメモリに記憶することにより、マスターを自機に登録する。クライアントは、次にステップS35の処理を行う。
ステップS35において、クライアントは、ゲームを開始する。具体的には、クライアントは、マスターからゲームの開始を示すコマンドが送られた場合、ゲームを開始する。クライアントは、次にステップS36の処理を行う。
ステップS36において、クライアントは、データの送受信処理を行う。ここでは、ゲーム処理のためのデータ(自機において行われた操作を示す操作情報や自機で操作されるゲームキャラクタに関する情報等を示すデータ)をマスターあるいは他のクライアントに対して送信したり、マスターあるいは他のクライアントから送信される、ゲーム処理のためのデータを受信したりする。クライアントにおいて行われるデータ送受信処理の詳細については、後述する。次に、クライアントは、ステップS37の処理を実行する。
ステップS37において、クライアントは、ゲーム処理を実行する。ここでは、クライアントは、ステップS36で受信したデータ、および、自機において行われた操作(操作ボタン14やアナログスティック15、タッチパネル13等に対して行われた操作)に応じて、ゲーム処理を行う。例えば、クライアントは、自機において行われた操作に基づいて、自機で操作されるゲームキャラクタ102の動作を決定したり当該ゲームキャラクタ102の位置情報を更新したりする。また、クライアントは、ステップS36において、他のゲーム装置10から受信した操作情報、または、他のゲーム装置10から受信した当該他のゲーム装置10で操作されるゲームキャラクタの位置情報に基づいて、当該ゲームキャラクタの位置を更新する。また、クライアントは、仮想空間内の仮想カメラの位置や視線方向を決定して、各ゲームキャラクタを当該仮想カメラで撮像することにより、画像を生成する。そして、クライアントは、上側LCD22に生成した画像を表示する。ステップS37の処理の後、クライアントは、ステップS36の処理を再び実行する。
ステップS36およびステップS37の処理が繰り返し実行されることでゲームが進行する。なお、ユーザによってゲームが終了された場合(ユーザが自機のゲームを終了した場合やマスターのユーザによってゲームが終了された場合)や、レースゲームが終了した場合は、図12に示すクライアント処理は終了する。
(オーディエンス処理)
次に、オーディエンスで行われる処理の詳細について説明する。図13は、オーディエンスとして機能するゲーム装置10の処理(オーディエンス処理)の詳細を示すフローチャートである。
図8に示す設定処理が行われて、ゲーム装置10がオーディエンスに設定されると図13に示すオーディエンス処理が、オーディエンスの情報処理部31および無線通信モジュール36によって実行される。
まず、ステップS40において、オーディエンスは、JOIN処理を実行する。ステップS40の処理は、クライアントにおいて行われるステップS30の処理と同じである。具体的には、オーディエンスは、上記設定処理のステップS5で選択されたマスターから送信されたビーコンを受信して、当該マスターとの同期を行う(JOINする)。オーディエンスは、次にステップS41の処理を実行する。なお、所定時間以内にビーコンを受信しない場合、オーディエンスは、オーディエンス処理を終了する。
ステップS41において、オーディエンスは、観戦許可フラグがONか否かを判定する。具体的には、オーディエンスは、ステップS40で受信したビーコンに含まれる観戦許可フラグ(図9参照)がONか否かを判定する。判定結果が肯定の場合、オーディエンスは、次にステップS42の処理を実行する。判定結果が否定の場合、オーディエンスは、図13に示すオーディエンス処理を終了する。
ステップS42において、オーディエンスは、オーディエンス動作を開始する。具体的には、オーディエンスは、ステップS40で受信したビーコンに含まれるマスターのMACアドレスを識別情報73としてメモリに記憶することにより、自機にマスターを登録する。オーディエンスは、次にステップS43の処理を実行する。
ステップS43において、オーディエンスは、ビーコンを受信する。具体的には、オーディエンスは、登録したマスターからのビーコンを受信する。オーディエンスは、次にステップS44の処理を実行する。
ステップS44において、オーディエンスは、観戦許可フラグがONか否かを判定する。ステップS44の処理はステップS41の処理と同じである。オーディエンスは、定期的にマスターから送られるビーコンを受信して、当該ビーコンに含まれる観戦許可フラグがONか否かを判定する。判定結果が肯定の場合、オーディエンスは、次にステップS45の処理を実行する。判定結果が否定の場合、オーディエンスは、識別情報73をクリアして、図13に示すオーディエンス処理を終了する。
ステップS45において、オーディエンスは、プローブリクエストを送信するか否かを判定する。ステップS45においては、第1の判定、および、第2の判定が行われる。
具体的には、オーディエンスは、第1の判定として、例えば所定のボタンが押されたか否かを判定する。上述のように、オーディエンスとして機能するゲーム装置10のユーザは、自機の画面を見ることによって、マスターおよびクライアントの間で行われるゲームを観戦することができる。この場合において、オーディエンスのユーザは、例えば、オーディエンスとして機能するゲーム装置10において所定の操作(例えば、ボタン14B等)を行うことで、マスターに対して所定の情報を送信することができる。マスターは所定の情報をオーディエンスから受け取ると、それに応じたゲーム処理を行う。例えば、オーディエンスとして機能するゲーム装置10の所定の操作が行われた場合、オーディエンスは、マスターに対してプローブリクエストフレームを送信する。当該プローブリクエストフレームのヘッダ部分には、マスターのMACアドレスが含まれる。また、当該プローブリクエストフレームのボディ部分には、ベンダー固有の情報要素が含まれ、当該情報要素には所定の操作に応じたゲーム処理に用いられるデータが含まれる。マスターは、プローブリクエストフレームを受信することによって、当該所定の操作に応じたデータを取得する。そして、マスターは、当該データに基づいて、所定の処理を実行する。具体的には、例えば、マスターは、予めゲーム装置10に記憶された歓声を示す音声データを再生する。これにより、オーディエンスからの歓声をゲームに反映することができる。また、マスターは、オーディエンスからプローブリクエストを受信した場合、当該プローブリクエストのボディ部分に含まれる上記所定の操作に応じたデータを取り出して、当該データを含むフレームを他のクライアントに対して送信する。各クライアントは、マスターからのフレームを受信し、上記所定の操作に応じたデータに基づいて、マスターと同様の処理を行う。なお、マスターは、プローブリクエストを受信しても当該プローブリクエストを送信したオーディエンスを自機に登録しない。
また、オーディエンスは、第2の判定として、プローブリクエストを送信可能か否かを判定する。具体的には、オーディエンスは、自機が所定のモード(ROPSモードと呼ぶ)か否かを判定する。オーディエンスが所定のモードの場合、プローブリクエストの送信は禁止され、オーディエンスは、受信のみ可能となる。
図14は、各ゲーム装置10の状態の遷移を示す図である。図14に示すように、マスターは、定期的にビーコンをブロードキャストで送信する。当該ビーコンには、アウェイク状態を維持する期間Tを示す情報等が含まれる。ビーコンを受信してからの期間Tは、マスター、各クライアント、および、オーディエンスは、アウェイク状態を維持し、通信が可能となる。例えば、図14に示すように、アウェイク状態においてマスターは、各端末(クライアントおよびオーディエンス)に対してブロードキャストでデータBC1を送信することが可能であり、各端末は当該データを受信可能である。一方、マスターがビーコンを送信してから期間Tが経過すると、マスター及び各端末は仮眠状態(省電力状態)に移行する。仮眠状態では、マスター及び各端末は、データの送受信機能が制限されるため、データは送信されない。その後、さらに時間が経過すると、マスターは再びビーコンを送信して、マスター及び各端末は再びアウェイク状態に移行する(ビーコンが送信される直前にマスター及び各端末はデータの送受信が可能な状態になる)。このように、マスターおよび各端末は、それぞれ同期して電力モードの切り替えを繰り返す。
オーディエンスは、所定のモード(ROPSモード)に設定されている場合において、上記ビーコンによる電力モードの切り替えに加えて、マスターから送信されるデータに基づいて、仮眠状態に切り替えられる。例えば、マスターは、送信するデータBC2に、所定のフラグMを含めることができる。オーディエンスは、M=1がセットされたデータBC2を受信すると、アウェイク状態を維持する。一方、オーディエンスは、ROPSモードが有効になっている状態で、M=0がセットされたデータBC3を受信すると、自機を仮眠状態に切り替える。ROPSモードが無効になっている場合は、オーディエンスは、所定のフラグMの値に応じて仮眠状態に移行しない。ROPSモードでは、オーディエンスは、上記プローブリクエストの送信を禁止し、マスターおよびクライアントから送られたデータの受信のみを行う。ROPSモードの有効/無効の設定は、例えば、オーディエンスとして機能するゲーム装置において、オーディエンスのユーザによって設定されてもよい。
なお、第1の判定として所定の操作が行われたか否かを判定したが、例えば、第1の判定として、所定のタイミングになったか否かを判定してもよい。すなわち、例えば、オーディエンスは自動で上記ゲーム処理に用いられるデータを含むプローブリクエストを送信してもよい。
以上のように、ステップS45において、オーディエンスは、第1の判定(所定の操作が行われたか否か等の判定)、および、第2の判定(プローブリクエストを送信可能か否かの判定)を行う。何れの判定結果も肯定である場合、オーディエンスは、次にステップS46の処理を実行する。一方、オーディエンスは、第1の判定および第2の判定の判定結果が何れか一方でも否定である場合、次にステップS48の処理を実行する。
ステップS46において、オーディエンスは、プローブリクエストを送信する。具体的には、オーディエンスは、上記ゲーム処理に用いられるデータを含むプローブリクエストを、マスターに対して送信する。オーディエンスは、次にステップS47の処理を実行する。
ステップS47において、オーディエンスは、プローブレスポンスを受信する。具体的には、オーディエンスは、マスターから送信されるプローブレスポンスを受信する。オーディエンスは、次にステップS48の処理を実行する。
ステップS48において、オーディエンスは、データ受信処理を行う。ここでは、オーディエンスは、マスターから送信されるブロードキャストデータおよびクライアントから送信されるブロードキャストデータを受信する。なお、オーディエンスにおいて行われるデータ受信処理の詳細については、後述する。オーディエンスは、次にステップS49の処理を実行する。
ステップS49において、オーディエンスは、ゲーム処理を実行する。具体的には、オーディエンスは、ステップS48で受信したブロードキャストデータに基づいて、マスターおよびクライアントで操作されるゲームキャラクタの動作を決定したり、ゲームキャラクタの位置情報を更新したりする。また、オーディエンスは、仮想空間内の仮想カメラの位置や視線方向を決定して、各ゲームキャラクタを当該仮想カメラで撮像することにより、画像を生成する。そして、オーディエンスは、上側LCD22に生成した画像を表示する。これにより、マスターおよびクライアントの上側LCD22に表示される画像と同じ画像が、オーディエンスの上側LCD22に表示される。なお、オーディエンスにおいて決定される仮想カメラの位置や視線方向は、マスターおよびクライアントにおけるそれと異なっていてもよい。この場合、オーディエンスの画面には、マスターおよびクライアントにおいて表示される画像とは異なる画像が表示される。ステップS49の処理の後、オーディエンスは、ステップS43の処理を再び実行する。
ステップS43からステップS49の処理が繰り返し実行されることによって、オーディエンスの上側LCD22にはゲームが進行する様子が表示される。
以上のようにして、本実施形態に係るゲームでは、複数(または単数)のクライアントがマスターと接続されて、1つのゲームが進行する。オーディエンスは、マスターおよびクライアントから送信されるブロードキャストデータを受信することによって、マスターおよびクライアント間で進行するゲームを観戦することができる。
(データ送信処理の概要)
次に、データの送受信処理について、説明する。まず、図15を参照して、マスターにおいて行われるデータ送信処理の概要について説明する。
図15は、マスターのデータ送信処理の概要を示す図である。図15に示すように、マスターには、個別送信データを格納する個別送信箱110、および、全送信データを格納する全送信箱120が用意される。
個別送信データは、ある端末(マスターまたはクライアント)から、個別に他の端末に送信するデータである。個別送信データは、例えば、マスターからクライアントC1に送信するデータUD10、または、クライアントC1からクライアントC2に送信するデータUD11である。マスターからクライアントC1に送信するデータUD10は、クライアントC1において処理可能なひとまとまりのデータ(ゲーム処理に用いられるデータ)であり、例えば、マスターにおいて行われた操作に応じたデータである。当該データUD10をクライアントC1が受信すると、クライアントC1は、当該データUD10を用いて所定の処理を行う。同様に、クライアントC1からクライアントC2に送信するデータUD11は、クライアントC2において処理可能なひとまとまりのデータであり、例えば、クライアントC1において行われた操作に応じたデータである。
全送信データは、マスターから全てのクライアントに送信するデータである。全送信データは、例えば、マスターから全クライアントに送信するデータBD20、または、マスターから全クライアントに送信するデータBD21である。個別送信データと同様に、データBD20およびデータBD21は、送信先で処理可能なひとまとまりのデータである。例えば、データBD20およびデータBD21は、送信元(この場合マスター)において行われた操作に応じたデータであり、これらのデータを受信した端末は、各データに基づいて所定の処理を行う。
マスターは、クライアントに個別に送信する複数の個別送信データを一時的に個別送信箱110に格納する。また、マスターは、全てのクライアントに送信する複数の全送信データを一時的に全送信箱120に格納する。
具体的には、図15に示すように、マスターがアプリケーションを実行することによって、マスターからクライアントC1に送信するデータUD10を生成した場合、当該データUD10を即時にクライアントC1に送信せず、個別送信箱110に一時的に格納する。データUD10は、比較的小さいサイズのデータ(例えば、100Byte程度)である。また、マスターは、クライアントC1からクライアントC2に送信するデータUD11をクライアントC1から受け取った場合、当該データUD11を即時にクライアントC2に送信せず、個別送信箱110に一時的に格納する。データUD11は、クライアントC1からクライアントC2に送信されるデータであり、マスターを経由して送信されるデータである。データUD11は、比較的小さいサイズのデータ(例えば、100Byte程度)である。同様に、マスターがアプリケーションを実行することによって、マスターから全クライアントに送信するデータBD20を生成した場合、当該データBD20を即時にブロードキャストで送信せず、全送信箱120に一時的に格納する。また、マスターから全クライアントに送信するデータBD21をアプリケーションが生成した場合、当該データBD21を即時にブロードキャストで送信せず、全送信箱120に一時的に格納する。データBD20およびデータBD21は、比較的小さいサイズのデータ(例えば、100Byte程度)である。
より具体的には、マスターがデータUD10を個別送信箱110に格納する場合、マスターは、当該データUD10に付加情報130を付加する。付加情報130には、データUD10の送信元および送信先に関する情報が含まれる。また、付加情報130には、付加情報130とデータUD10とを含めたデータのサイズに関する情報が含まれる。例えば、データUD10の送信元および送信先に関する情報は、マスターおよびクライアントC1のID(またはMACアドレスでもよい)である。例えば、データUD10の送信元に関する情報は、マスターのID(またはMACアドレス)である。また、データUD10の送信先に関する情報は、クライアントC1のID(またはMACアドレス)である。同様に、マスターがデータUD11を個別送信箱110に格納する場合、マスターは、当該データUD11に付加情報131を付加する。付加情報131には、データUD11の送信元および送信先に関する情報が含まれる。また、付加情報131には、付加情報131とデータUD11とを含めたデータのサイズに関する情報が含まれる。例えば、データUD11の送信元および送信先に関する情報は、それぞれクライアントC1およびクライアントC2のID(またはMACアドレス)である。
また、同様に、マスターがデータBD20を全送信箱120に格納する場合、マスターは、当該データBD20に付加情報132を付加する。付加情報132には、データBD20の送信元および送信先に関する情報が含まれる。また、付加情報132には、付加情報132とデータBD20とを含めたデータのサイズに関する情報が含まれる。例えば、データBD20の送信元および送信先に関する情報は、それぞれマスターおよび全端末(マスターやクライアント、オーディエンスを含めたネットワーク全体)であることを示すID(またはブロードキャストアドレスでもよい)である。同様に、マスターがデータBD21を全送信箱120に格納する場合、マスターは、当該データBD21に付加情報133を付加する。付加情報133には、データBD21の送信元および送信先に関する情報が含まれる。また、付加情報133には、付加情報133とデータBD21とを含めたデータのサイズに関する情報が含まれる。例えば、データBD21の送信元および送信先に関する情報は、それぞれマスターおよび全端末であることを示すID(またはブロードキャストアドレスでもよい)である。
個別送信箱110は、所定のサイズ(例えば、1500Byte)を有する。マスターは、個別送信箱110にデータを格納する際に、個別送信箱110の空きサイズに基づいて、データを格納することができるか否かを判定する。マスターは、これ以上個別送信箱110にデータを格納することができないと判定した場合、個別送信箱110に格納された全てのデータを取り出して、当該全てのデータを含む1つのフレームを生成する。例えば、マスターは、これ以上個別送信箱110にデータを格納することができないと判定した場合、UD10およびUD11を含む1つのフレーム150を生成し、当該フレーム150を送信する。図15に示すように、フレーム150のヘッダ部分には、送信先MACアドレスとしてブロードキャストアドレスが指定される。また、フレーム150のデータ部分には、付加情報130が付加されたデータUD10、および、付加情報131が付加されたデータUD11が含まれる。さらに、フレーム150のデータ部分には、当該データ部分に含まれるデータの数(図15に示す例では、2)が含まれる。このように、マスターは、マスターからクライアントC1へ送信するデータUD10、および、クライアントC1からクライアントC2へ送信するデータUD11を1つのフレーム150に含ませて、ブロードキャストで送信する。
同様に、全送信箱120は、所定のサイズ(例えば、1500Byte)を有し、マスターは、全送信箱120にデータを格納する際に、全送信箱120の空きサイズに基づいて、データを格納することができるか否かを判定する。マスターは、これ以上全送信箱120にデータを格納することができないと判定した場合、全送信箱120に格納された全てのデータを取り出して、当該全てのデータを含む1つのフレーム160を生成する。図15に示すように、フレーム160のヘッダ部分には、送信先MACアドレスとしてブロードキャストアドレスが指定される。また、フレーム160のデータ部分には、付加情報132が付加されたデータBD20、および、付加情報133が付加されたデータBD21が含まれる。さらに、フレーム160のデータ部分には、当該データ部分に含まれるデータの数(図15に示す例では、2)が含まれる。このように、マスターは、サイズの小さいデータBD20、および、データBD21を1つのフレーム160に含ませて、ブロードキャストで送信する。
なお、クライアントにおいても、マスターと同様、上記個別送信データを格納する個別送信箱110、上記全送信データを格納する全送信箱120が用意される。しかしながら、クライアントにおいては、他のクライアントから送信されたデータを、別のクライアントに送信することはない。従って、クライアントの個別送信箱110には、自機から他のクライアントに送信するデータのみが、複数格納される。
(データ受信処理の概要)
次に、データ受信処理の概要について説明する。上記のようにしてマスターから送信されたフレームを各クライアントが受信した場合、各クライアントは、受信したフレームに含まれる、自機宛のデータのみを取得する。図16は、マスターから送信されたフレームをクライアントが受信した場合、クライアントで行われる受信処理の概要を示す図である。
図16に示すように、フレーム150をマスターが送信した場合、クライアントC1およびクライアントC2は、フレーム150を受信する。フレーム150を受信したクライアントC1は、当該フレーム150に含まれる1番目のデータ(付加情報130とデータUD10とを含むデータ)の付加情報130を参照し、当該データが自機宛のデータか否かを判定する。1番目のデータはマスターからクライアントC1へ送信されたデータであるため、クライアントC1は、データUD10を含む1番目のデータのみを取り出す。次に、クライアントC1は、2番目のデータ(付加情報131とデータUD11とを含むデータ)の付加情報131を参照して、当該2番目のデータが自機宛のデータか否かを判定する。2番目のデータの始まりは、1番目のデータの付加情報130が示す当該データのサイズに基づいて決定できる。2番目のデータはクライアントC1からクライアントC2へ送信されたデータであるため、クライアントC1は、2番目のデータを破棄する。
また、フレーム150を受信したクライアントC2は、当該フレーム150に含まれる1番目のデータ(付加情報130とデータUD10とを含むデータ)の付加情報130を参照し、当該データが自機宛のデータか否かを判定する。1番目のデータはマスターからクライアントC1へ送信されたデータであるため、クライアントC2は、当該1番目のデータを破棄する。次に、クライアントC2は、2番目のデータ(付加情報131とデータUD11とを含むデータ)の付加情報131を参照して、当該2番目のデータが自機宛のデータか否かを判定する。2番目のデータはクライアントC1からクライアントC2へ送信されたデータであるため、クライアントC2は、データUD11を含む2番目のデータのみを取り出す。
また、フレーム160についても、各クライアントで上記と同様の処理が行われて、各データが取り出される。この場合、各クライアントは、フレーム160に含まれる全てのデータ(データBD20およびデータBD21)を取り出す。具体的には、フレーム160の1番目のデータ(付加情報132とデータBD20とを含むデータ)の付加情報132には、宛先が全端末に指定されている。このため、クライアントC1およびクライアントC2は、データBD20を含む1番目のデータを取り出す。同様に、フレーム160の2番目のデータ(付加情報133とデータBD21とを含むデータ)の付加情報133には、宛先が全端末に指定されているため、クライアントC1およびクライアントC2は、データBD21を含む2番目のデータを取り出す。
このようにして、各クライアントは、マスターから送信されたフレームの中から、自機宛および全クライアント宛のデータのみを取り出し、それ以外のデータは全て破棄する。
(データ送信処理の詳細)
次に、データ送信処理の詳細について、説明する。まず、図17を参照して、マスターにおいて行われるデータ送信処理の詳細について、説明する。
(マスターのデータ送信処理)
図17は、マスターにおいて行われるデータ送信処理(マスター)の詳細を示すフローチャートである。なお、図17に示すステップS50〜ステップS61の処理は、所定の時間間隔で繰り返し実行される。
まず、ステップS50において、マスターは、個別送信箱110および全送信箱120にデータを格納してから所定時間が経過している場合、格納されているデータを全て送信する。個別送信箱110および全送信箱120にデータを格納してから所定時間が経過していない場合、マスターは、格納されているデータを送信しない。具体的には、マスターは、個別送信箱110にデータが格納されている場合、当該個別送信箱110に格納されたデータのうち、最も古いデータが格納されてから所定時間が経過したか否かを判定する。判定結果が肯定の場合、マスターは、個別送信箱110に格納された全てのデータを取り出し、当該全てのデータを含む1つのフレームを生成して、当該フレームをブロードキャストで送信する。生成されるフレームのヘッダ部分には、マスターのMACアドレスが含まれる。
同様に、マスターは、全送信箱120にデータが格納されている場合、当該全送信箱120に格納されたデータのうち、最も古いデータが格納されてから所定時間が経過したか否かを判定する。判定結果が肯定の場合、マスターは、全送信箱120に格納された全てのデータを取り出し、当該全てのデータを含む1つのフレームを生成して、当該フレームをブロードキャストで送信する。生成されるフレームのヘッダ部分には、マスターのMACアドレスが含まれる。ステップS50の処理の後、マスターは、次にステップS51の処理を実行する。
ステップS51において、マスターは、送信すべきデータを取得する。ここで取得される送信すべきデータは、例えば、マスター自身(アプリケーション層)が生成したデータ(マスターにおいて行われた操作に応じたデータ等、ゲーム処理の過程で生成したデータ)である。また、ここで取得される送信すべきデータは、例えば、あるクライアントから受信した、マスターを経由して他のクライアントに送信されるデータである。また、ここで取得される送信すべきデータは、例えば、あるクライアントから受信した、マスターを経由して全端末に送信されるデータである。より具体的には、送信すべきデータは、例えば、図15に示すUD10、UD11、BD20、BD21である。例えば、マスターは、自機の操作ボタン14に対する操作が行われた場合、当該操作に応じたデータを生成する。マスターは、ステップS51において、当該生成したデータを取得する。また、例えば、クライアントC1からマスターを経由してクライアントC2にデータが送信される場合、マスターは、クライアントC1からのデータを受信する(マスターのデータ受信処理については後述する)。マスターは、ステップS51において、当該受信したデータを取得する。マスターは、次にステップS52の処理を実行する。
ステップS52において、マスターは、取得したデータが個別送信データか否かを判定する。具体的には、マスターは、ステップS51で取得したデータが、各クライアントに個別に送信するデータ(上記UD10やUD11)か否かを判定する。例えば、マスターから他のクライアントに個別のデータを送信するための操作が行われた場合、マスターは、取得したデータが、クライアントに個別に送信するデータであると判定する。判定結果が肯定の場合、マスターは、次にステップS53の処理を実行する。一方、判定結果が否定の場合、マスターは、次にステップS57の処理を実行する。
ステップS53において、マスターは、取得したデータを個別送信箱110に格納可能か否かを判定する。具体的には、マスターは、ステップS51で取得したデータと、個別送信箱110に格納されたデータのサイズとに基づいて、ステップS51で取得したデータを個別送信箱110に格納可能か否かを判定する。判定結果が肯定の場合、マスターは、次にステップS54の処理を実行する。一方、判定結果が否定の場合、マスターは、次にステップS56の処理を実行する。
ステップS54において、マスターは、ステップS51で取得したデータを個別送信箱110に格納する。具体的には、マスターは、ステップS51で取得したデータに付加情報を付加して、個別送信箱110に格納する。より具体的には、マスターは、付加情報として、当該データの送信元および送信先に関する情報、および、サイズに関する情報を付加する。マスターは、次にステップS55の処理を実行する。
ステップS55において、マスターは、取得したデータを即時送信すべきか否かを判定する。例えば、マスターは、ステップS51でデータを取得した際に、アプリケーション層から指定されるパラメータに基づいて、取得したデータを即時送信すべきか否かを判定する。判定結果が肯定の場合、マスターは、次にステップS56の処理を実行する。一方、判定結果が否定の場合、マスターは、次にステップS57の処理を実行する。
一方、ステップS56において、マスターは、個別送信箱110に格納された全てのデータを取り出し、当該全てのデータを含む1つのフレームを生成して、当該フレームをブロードキャストで送信する(ブロードキャストフレームを送信する)。生成されるフレームのヘッダ部分には、マスターのMACアドレスが含まれる。ステップS56の処理が行われることによって、個別送信箱110に格納された全てのデータ(上記UD10およびUD11)がブロードキャストで送信されて、個別送信箱110は空になる。そして、マスターは、フレームを送信した後、ステップS53で個別送信箱110に格納されなかったデータに付加情報を付加して、空になった個別送信箱110に当該データを格納する。なお、ステップS51で取得したデータのサイズが個別送信箱110のサイズよりも大きい場合、マスターは、当該データを個別送信箱110に格納できないため、当該データを複数のフレームに分割して送信する。
また、取得したデータを個別送信箱110に格納不可能(ステップS53の判定結果が否定)であり、かつ、取得したデータを即時送信すべきである場合、マスターは、個別送信箱110に格納された全てのデータを含む1つのフレームを生成して送信する。その後、マスターは、ステップS51で取得した、即時送信すべきデータと当該データの付加情報(送信先および送信元に関する情報)とを含む1つのフレームをさらに生成して、当該フレームを送信する。これにより、個別送信箱110に格納された全てのデータが送信されるとともに、ステップS51で取得した即時送信すべきデータが送信される。
また、マスターは、ステップS56において、自機の状態が仮眠状態である場合、生成したフレームをメモリに一時的に保存し、自機の状態がアウェイク状態に移行した後で、当該フレームを送信する。すなわち、仮眠状態ではデータの送信が制限されるため、マスターは、仮眠状態からアウェイク状態に移行した後にフレームを送信する。マスターは、仮眠状態のときにフレームを生成してメモリに一時的に保存する場合、当該フレームに含まれる上記所定のフラグMに1を設定する。また、マスターは、アウェイク状態のときにフレームを生成した場合、当該フレームに含まれる上記所定のフラグMに0を設定し、当該フレームを送信する。フレームを受信したオーディエンスは、上述のようにROPSモードが有効である場合、上記所定のフラグMの値に応じてアウェイク状態を維持したり、仮眠状態に移行したりする。ステップS56の処理の後、マスターは、図17に示す送信処理を終了する。
ステップS57において、マスターは、ステップS51で取得したデータが全送信データか否かを判定する。具体的には、マスターは、ステップS51で取得したデータが、全クライアントに送信するデータ(上記BD20やBD21)か否かを判定する。例えば、マスターにおいて操作されるゲームキャラクタ101に対する操作(操作ボタン14等に対する操作)が行われた場合、マスターは、取得したデータが、全クライアントに送信するデータであると判定する。判定結果が肯定の場合、マスターは、次にステップS58の処理を実行する。一方、判定結果が否定の場合、マスターは、図17に示す処理を終了する。
ステップS58において、マスターは、全送信箱120にデータを格納可能か否かを判定する。具体的には、マスターは、ステップS51で取得したデータと、全送信箱120の空きサイズとに基づいて、ステップS51で取得したデータを全送信箱120に格納可能か否かを判定する。判定結果が肯定の場合、マスターは、次にステップS59の処理を実行する。一方、判定結果が否定の場合、マスターは、次にステップS61の処理を実行する。
ステップS59において、マスターは、ステップS51で取得したデータを全送信箱120に格納する。具体的には、マスターは、ステップS51で取得したデータに付加情報を付加して、全送信箱120に格納する。より具体的には、マスターは、付加情報として、当該データの送信元および送信先に関する情報、および、サイズに関する情報を付加する。ここで、送信先の情報として、全端末であることを示す情報が付加される。ステップS59の処理の後、マスターは、次にステップS60の処理を実行する。
ステップS60において、マスターは、データを即時送信すべきか否かを判定する。例えば、マスターは、ステップS51でデータを取得した際に、アプリケーション層から指定されるパラメータに基づいて、データを即時送信すべきか否かを判定する。データを即時送信すべきと判定した場合、マスターは、ステップS51で取得したデータを全送信箱120に格納して、次にステップS61の処理を実行する。一方、判定結果が否定の場合、マスターは、図17に示す送信処理を終了する。
一方、ステップS61において、マスターは、全送信箱120に格納された全てのデータを取り出し、当該データを含む1つのフレームを生成して、当該フレームをブロードキャストで送信する。生成されるフレームのヘッダ部分には、マスターのMACアドレスが含まれる。ステップS61の処理が行われることによって、全送信箱120に格納された全てのデータ(上記BD20およびBD21)が、ブロードキャストで送信される。そして、マスターは、フレームを送信した後、ステップS59で全送信箱120に格納されなかったデータに付加情報を付加して、空になった全送信箱120に当該データを格納する。なお、ステップS51で取得したデータのサイズが全送信箱120のサイズよりも大きい場合、マスターは、当該データを全送信箱120に格納できないため、当該データを複数のフレームに分割して送信する。また、ステップS58において全送信箱120にステップS51で取得したデータを格納することができないと判定され、かつ、当該ステップS51で取得したデータが即時送信すべきデータである場合、マスターは、全送信箱120に格納された全てのデータを含む1つのフレームを送信した後、ステップS51で取得したデータを含む1つのフレームをさらに送信する。ステップS61の処理の後、マスターは、図17に示す送信処理を終了する。
(クライアントのデータ送信処理)
次に、図18を参照して、クライアントにおいて行われるデータ送信処理の詳細について、説明する。図18は、クライアントにおいて行われるデータ送信処理(クライアント)の詳細を示すフローチャートである。図18において、図17と同じ処理については同一の符号を付して説明を省略する。
クライアントにおいて行われるデータ送信処理では、個別送信箱110に格納されたデータは、ブロードキャストではなく、ユニキャストでマスターに送信される。
まず、クライアントは、図17におけるステップS50の処理の替わりに、ステップS65の処理を行う。ステップS65において、クライアントは、個別送信箱110および全送信箱120にデータを格納してから所定時間が経過している場合、格納されているデータを全て送信する。個別送信箱110および全送信箱120にデータを格納してから所定時間が経過していない場合、クライアントは、格納されているデータを送信しない。この場合において、クライアントは、個別送信箱110に格納されたデータをブロードキャストで送信する替わりに、当該データをユニキャストでマスターに送信する。具体的には、クライアントは、個別送信箱110にデータが格納されている場合、当該個別送信箱110に格納されたデータのうち、最も古いデータが格納されてから所定時間が経過したか否かを判定する。判定結果が肯定の場合、クライアントは、個別送信箱110に格納された全てのデータを取り出し、当該全てデータを含む1つのフレームを生成して、当該フレームをユニキャストでマスターに送信する。
同様に、クライアントは、全送信箱120にデータが格納されている場合、当該全送信箱120に格納されたデータのうち、最も古いデータが格納されてから所定時間が経過したか否かを判定する。判定結果が肯定の場合、クライアントは、全送信箱120に格納された全てのデータを取り出し、当該全てデータを含む1つのフレームを生成して、当該フレームをブロードキャストで送信する。この場合において、生成されるフレームのヘッダ部分には、送信元アドレスとして自機(クライアント)のMACアドレスとともに、BSSIDとしてマスターのMACアドレスが含まれる。ステップS65の処理の後、クライアントは、次にステップS66の処理を実行する。
ステップS66において、クライアントは、送信すべきデータを取得する。ここで、送信すべきデータは、クライアント自身が生成したデータ(自機において行われた操作に応じたデータ等、ゲーム処理の過程で生成したデータ)である。クライアントは、マスターのように他の端末から送信されたデータを別の端末に転送することはないため、ステップS66においては、クライアントは、クライアント自身が生成したデータを取得する。次に、クライアントは、ステップS67の処理を実行する。
ステップS67において、クライアントは、ステップS66で取得したデータがマスターを経由して送信するデータか否かを判定する。具体的には、クライアントは、取得したデータが個別送信データ(他のクライアントに個別に送信するデータ)である場合、マスターを経由して送信するデータであると判定する。また、クライアントは、取得したデータが全送信データ(全端末に送信するデータ)であっても、所定の条件を満たす場合、マスターを経由して送信するデータであると判定する。例えば、取得したデータの種類が所定の種類(例えば、自機で行われた操作に応じたデータであって全端末と共有すべきデータ)である場合、または、アプリケーション層から指定された場合、クライアントは、取得したデータが全送信データであっても、当該データはマスターを経由して送信するデータであると判定する。
図22は、マスターを経由してクライアントC1から全端末にデータが送信される様子を示す図である。図22に示すように、クライアントC1は、自機で生成したデータD1を含むフレーム200を生成して、当該フレーム200をマスターに対して送信する。フレーム200のヘッダ部分には、宛先MACアドレスとしてマスターのMACアドレスが指定される。また、フレーム200には、データD1と付加情報201とが含まれる。付加情報201は、データD1の送信元および送信先を示す情報である。具体的には、送信元の情報はクライアントC1を示す情報であり、送信先の情報は全端末(マスター、クライアントC2、および、オーディエンスを含む全端末)を示す情報である。フレーム200を受信したマスターは、データD1とその付加情報201とを取り出し、これらデータD1および付加情報201を全送信箱120に格納し、データD1および付加情報201を含むフレームをブロードキャストで送信する。
ステップS67において判定結果が肯定の場合、クライアントは、次にステップS53の処理を実行する。一方、判定結果が否定の場合、クライアントは、次にステップS68の処理を実行する。
クライアントは、ステップS53からステップS55の処理を行った後、ステップS68の処理を実行する。
ステップS68において、クライアントは、ステップS66で取得したデータが各端末に直接全送信するデータか否かを判定する。ここで、直接全送信するデータとは、クライアントから直接他のすべての端末に対してブロードキャストするデータである。クライアントは、マスターを経由せずに全ての端末に対してブロードキャストでデータを送信することが可能である。
図23は、クライアントC1から直接全端末にデータを送信する様子を示す図である。図23に示すように、クライアントC1は、例えば自機で生成したデータD2を含むフレーム210を生成して、当該フレーム210を全端末にブロードキャストで送信する。フレーム210のヘッダ部分には、宛先MACアドレスとしてブロードキャストアドレスが指定される。また、フレーム210には、データD2と付加情報211とが含まれる。付加情報211は、データD2の送信元(クライアントC1)および送信先(全端末)を示す情報である。各端末(マスター、クライアントC2、および、オーディエンス)は、フレーム210を受信して、データD2を取得する。このように、クライアントは、マスターを経由せずに直接全端末に対してデータを送信することが可能である。
ステップS68において判定結果が肯定の場合、クライアントは、次にステップS58の処理を実行する。一方、判定結果が否定の場合、クライアントは、図18に示す処理を終了する。
また、クライアントは、図17のステップS56の処理の替わりに、ステップS69の処理を実行する。
ステップS69において、クライアントは、個別送信箱110に格納された全てのデータを取り出し、当該全てのデータを含む1つのフレームを生成して、当該フレームをユニキャストでマスターに送信する(ユニキャストフレームを送信する)。ステップS69の処理は、生成したフレームをブロードキャストではなくユニキャストでマスターに送信することを除いて、図17のステップS56の処理と同様である。以上で図18の説明を終了する。
このようにして、クライアントにおいては、個別送信箱110に格納したデータをユニキャストでマスターに送信する。
(データ受信処理の詳細)
次に、データ受信処理の詳細について、説明する。まず、図19を参照して、クライアントにおいて行われるデータ受信処理の詳細について、説明する。
(クライアントのデータ受信処理)
図19は、クライアントにおいて行われるデータ受信処理の詳細を示すフローチャートである。
まず、ステップS70において、クライアントは、フレームを受信する。具体的には、クライアントは、自機宛のフレーム、または、ブロードキャストで送信されたフレームのみを受信する。より具体的には、クライアントは、送信先アドレスが自機のMACアドレスと一致するフレームを受信する。また、クライアントは、送信先アドレスがブロードキャストアドレスであるフレームであって、かつ、自機のメモリに記憶した識別情報73(マスターのMACアドレス)と一致する情報を含むフレームを受信する。マスターあるいは他のクライアントが送信したブロードキャストフレームには、BSSID(マスターのMACアドレスと一致する)が含まれるため、クライアントは、当該BSSIDが識別情報73と一致する場合、当該ブロードキャストフレームを受信する。クライアントは、次にステップS71の処理を実行する。
ステップS71において、クライアントは、ステップS70で取得したフレームのデータ部分を参照して、当該フレームに含まれるデータの数(図15参照)を取得する。クライアントは、次にステップS72の処理を実行する。
ステップS72において、クライアントは、変数iに1をセットし、次にステップS73の処理を実行する。
ステップS73において、クライアントは、i番目のデータの付加情報を取得する。すなわち、クライアントは、ステップS70で取得したフレームのデータ部分のうち、i番目のデータの付加情報(送信元および送信先に関する情報、サイズに関する情報)を取得する。クライアントは、次にステップS74の処理を実行する。
ステップS74において、クライアントは、i番目のデータが自機または全端末宛か否かを判定する。ここで、全端末とは、ネットワーク内の全ての端末であり、マスター、クライアント、および、オーディエンスを含む。具体的には、クライアントは、ステップS73で取得した付加情報のうち、送信先に関する情報を参照して、i番目のデータが自機または全端末宛のデータか否かを判定する。より具体的には、クライアントは、送信先に関する情報が、自機のIDと一致するか否か(または自機のMACアドレスと一致するか否か)を判定する。また、クライアントは、送信先に関する情報が、全端末であることを示す値か否か(またはブロードキャストアドレスか否か)を判定する。判定結果が肯定の場合、クライアントは、次にステップS75の処理を実行する。一方、判定結果が否定の場合、クライアントは、次にステップS76の処理を実行する。
ステップS75において、クライアントは、i番目のデータ(図16参照)を取り出す。なお、取り出されたi番目のデータは、メモリに格納される。そして、上述したゲーム処理(ステップS37)において、メモリに格納されたi番目のデータを用いたゲーム処理が行われる。例えば、i番目のデータに含まれる付加情報が示す送信元の情報(例えば、送信元がマスターであることを示す情報)と当該i番目のデータに含まれるデータ本体(例えば、データUD10)とを用いて、ゲーム処理が行われる。クライアントは、次にステップS76の処理を実行する。
ステップS76において、クライアントは、変数iに1を加算して、次にステップS77の処理を実行する。
ステップS77において、クライアントは、変数iがステップS71で取得したデータの数よりも大きいか否かを判定し、判定結果が肯定の場合、図19に示す受信処理を終了する。一方、判定結果が否定の場合、クライアントは、ステップS73の処理を再び実行する。
ステップS73〜ステップS77の処理が繰り返し行われることによって、受信したフレームに含まれるデータのうち、自機または全クライアント宛のデータのみが取り出される。
(オーディエンスのデータ受信処理)
次に、図20を参照して、オーディエンスにおいて行われるデータ受信処理の詳細について、説明する。図20は、オーディエンスにおいて行われるデータ受信処理(オーディエンス)の詳細を示すフローチャートである。なお、図20において、図19と同じ処理については同一の符号を付して説明を省略する。
まず、ステップS80において、オーディエンスは、フレームを受信する。具体的には、オーディエンスは、ブロードキャストで送信されたフレームを受信する。より具体的には、オーディエンスは、送信先アドレスがブロードキャストアドレスであるフレームであって、かつ、自機のメモリに記憶した識別情報73(マスターのMACアドレス)と一致する情報を含むフレームを受信する。マスターあるいはクライアントが送信したブロードキャストフレームには、BSSIDが含まれるため、オーディエンスは、当該BSSIDが識別情報73と一致する場合、当該ブロードキャストフレームを受信する。オーディエンスは、次にステップS71からステップS73の処理を実行する。
ステップS73の処理の後、オーディエンスは、ステップS81の処理を実行する。
ステップS81において、オーディエンスは、ステップS73で取得したi番目のデータが全端末宛か否かを判定する。具体的には、オーディエンスは、ステップS73で取得した付加情報のうち、送信先に関する情報を参照して、i番目のデータが全端末宛のデータか否かを判定する。より具体的には、オーディエンスは、送信先に関する情報が、全端末であることを示す値か否か(またはブロードキャストアドレスか否か)を判定する。判定結果が肯定の場合、オーディエンスは、次にステップS82の処理を実行する。一方、判定結果が否定の場合、オーディエンスは、次にステップS76の処理を実行する。
ステップS82において、オーディエンスは、i番目のデータを取り出す。取り出されたi番目のデータは、メモリに格納される。そして、上述したゲーム処理(ステップS49)において、メモリに格納されたi番目のデータを用いたゲーム処理が行われる。例えば、i番目のデータに含まれる付加情報が示す送信元および送信先の情報と、当該i番目のデータに含まれるデータ本体とを用いて、ゲーム処理が行われる。このように、オーディエンスは受信したフレームに含まれる全端末宛のデータを用いてゲーム処理を行うことにより、マスターおよび各クライアントで行われた操作に応じたゲーム処理の結果を得ることができる。オーディエンスは、次にステップS76およびステップS77の処理を実行する。
このようにして、オーディエンスでは、フレームに含まれる全てのデータが個別に取り出され、当該個別に取り出されたデータに基づいて、ゲーム処理が行われる。
(マスターのデータ受信処理)
次に、図21を参照して、マスターにおいて行われるデータ受信処理の詳細について、説明する。図21は、マスターにおいて行われるデータ受信処理(マスター)の詳細を示すフローチャートである。なお、図21において、図19と同じ処理については同一の符号を付して説明を省略する。
まず、マスターは、ステップS90の処理を行う。具体的には、マスターは、自機宛のフレーム、または、ブロードキャストで送信されたフレームを受信する。より具体的には、マスターは、送信先アドレスが自機(マスター)のMACアドレスと一致するフレームを受信する。また、マスターは、送信先アドレスがブロードキャストアドレスであるフレームであって、かつ、マスターのMACアドレスと一致する情報(BSSID)を含むフレームを受信する。ステップS90の処理の後、マスターは、次にステップS71およびステップS72の処理を実行する。ステップS72の処理の後、マスターは、ステップS91の処理を行う。
ステップS91において、マスターは、i番目のデータを取り出す。マスターは、取り出したi番目のデータについて、当該データの付加情報が示す送信先に応じた処理を行う。例えば、マスターは、取り出したi番目のデータが自機宛のデータである場合、当該i番目のデータをメモリに記憶する。そして、上述したゲーム処理(ステップS20)において、メモリに記憶されたi番目のデータが用いられる。また、マスターは、取り出したi番目のデータが他のクライアント宛のデータである場合、メモリに当該他のクライアント宛のデータ(取り出したi番目のデータ)を記憶する。そして、上述したデータ送信処理のステップS51において、当該他のクライアント宛のデータが取得され、当該他のクライアント宛のデータが上記個別送信箱110に格納され、他のクライアントに送信される。また、マスターは、取り出したi番目のデータが全端末宛のデータである場合、メモリに当該全端末宛のデータ(取り出したi番目のデータ)を記憶する。そして、上述したデータ送信処理のステップS51において、当該全端末宛のデータが取得され、当該全端末宛のデータが全送信箱120に格納され、全端末に送信される。
ステップS91の処理の後、マスターは、次にステップS76およびステップS77の処理を実行する。
このようにして、マスターでは、フレームに含まれる全てのデータが個別に取り出され、当該個別に取り出されたデータがゲーム処理に用いられたり、クライアントに送信されたりする。
以上のように、本実施形態では、マスターおよびクライアントは、相互に登録して互いに通信する。これにより、マスターおよびクライアント間でゲームが進行する。具体的には、ゲームが開始される前に、クライアントは、自機をマスターに登録させるために接続要求をマスターに送信する。マスターは当該接続要求を受信して、当該接続要求に対する応答をクライアントに送信するとともに、当該クライアントの識別情報(MACアドレス)を自機に登録する。クライアントは、接続要求に対する応答を受信したことに応じて、自機にマスターの識別情報(MACアドレス)を登録する。これにより、マスターおよびクライアントは、相互に登録する。一方、オーディエンスは、マスターには登録されずに、マスターを一方的に自機に登録する。すなわち、オーディエンスは、マスターに対して接続要求を送信することなく、マスターからのビーコンを受信して、当該ビーコンに含まれるマスターの識別情報(MACアドレス)を自機に登録する。そして、オーディエンスは、マスターおよびクライアントが送信したデータを受信して、マスターおよびクライアント間で進行するゲームを観戦する。
このように、オーディエンスはマスターには登録されないため、マスターはオーディエンスを管理する必要がない。従って、マスターおよびクライアント間で進行するゲームを観戦するオーディエンスの数には制限はなく、より多くのゲーム装置10がオーディエンスとしてゲームに参加してもマスターの管理負荷が増大することはない。このため、例えば、複数人が参加して進行するゲームを、大多数のユーザが観戦することができる。
また、本実施形態では、クライアントは、他のクライアントへのデータをマスターを経由して送信する。このため、クライアント間の距離が離れていたり、クライアント間に電波を妨害するものが存在したりすることによってクライアント間で直接通信ができない場合でも、クライアントは他のクライアントへデータを送信することができる。
また、本実施形態では、マスター(あるいはクライアント)は、送信すべき比較的小さいサイズのデータを取得した場合、即時に当該データを送信せず、一時的にメモリに蓄積する。そして、マスターは、蓄積した複数のデータをまとめて1つのフレームで送信する。この場合において、マスターは、複数のデータのそれぞれについて、送信先および送信元に関する情報を付加する。
このように、複数の比較的小さいサイズのデータを1つのフレームにまとめて送信することにより、各データを個々に送信する場合と比較して、データを送信する速度が速くなる。すなわち、フレームには送信すべきデータ本体にヘッダ等の情報が付加されるため、1つのデータを1つのフレームに含めて複数のフレームを送信するよりも、複数のデータを1つのフレームに含めて送信する方が、効率がよい。上記実施形態のような複数のゲーム装置が無線通信で接続されて進行するゲームの場合、各ゲーム装置間では比較的小さいサイズのデータが頻繁にやり取りされることが多い。このような場合、各データを各フレームに含めてそれぞれ送信すると、データを送受信する速度が遅くなり、ゲームの進行の障害となることがある。しかしながら、本実施形態では、複数のデータを1つのフレームにまとめて送信するため、効率的にデータを送受信することができる。
(変形例)
なお、上記実施形態では、クライアントおよびオーディエンスはマスターのMACアドレスを登録し、マスターはクライアントのMACアドレスを登録した。他の実施形態では、各端末を識別可能な識別情報であれば、どのような情報を登録してもよい。
また、上記実施形態では、マスターはビーコンを送信し、クライアントは当該ビーコンを受信(パッシブスキャン)したことに応じて、接続要求を当該ビーコンを送信したマスターに対して送信することにより、マスターとクライアントとは相互に接続(登録)した。他の実施形態では、アクティブスキャンにより、マスターとクライアントとが相互に接続されてもよい。すなわち、クライアントがプローブリクエストを送信し、当該プローブリクエストに応じて、マスターがプローブレスポンス(管理フレームの一種)を送信してもよい。そして、クライアントがマスターからのプローブレスポンスを受信したことに応じて、クライアントが接続要求を送信してもよい。
また、上記実施形態では、マスターとクライアントとの間での認証はオープンシステム認証であるとしたが、他の実施形態では、他の認証方式でマスターとクライアントとが認証されてもよい。
また、上記実施形態では、各ゲーム装置がIEEE802.11の規格に従って通信を行うこととしたが、他の実施形態では、どのような規格によって通信が行われてもよい。
また、上記実施形態では、順次取得したデータを個別送信箱110等に順次格納した。他の実施形態では、各データは順次取得される必要はなく、個別送信箱110等に格納される必要はない。例えば、アプリケーションが同時に宛先の異なる複数のデータを生成した場合、個別送信箱110等に当該複数のデータを格納せずに、当該複数のデータと宛先の情報とを含む1つのフレームを生成して、送信してもよい。
また、上記実施形態では、取得したデータを個別送信箱110等に格納することができない場合、すなわち、個別送信箱110等に空き領域がない場合、個別送信箱110等のデータを送信した。また、個別送信箱110等にデータを格納してから所定時間経過した場合、格納された全てのデータを送信した。さらに、取得したデータが即時送信すべきデータである場合、当該即時送信すべきデータとともに個別送信箱110等に格納されたデータを送信した。他の実施形態では、これら3つの条件に限らず、格納されたデータを送信するための所定の条件が満たされた場合に、格納されたデータを送信してもよい。例えば、所定の時間間隔で自動的に格納されたデータを送信するようにしてもよいし、各ゲーム装置10においてゲームの状態が所定の状態になった場合に、格納されたデータを送信してもよい。
また、上記実施形態では、個別送信箱110等に格納された全てのデータを1つのフレームに含めて送信した。他の実施形態では、個別送信箱110等に格納された全てのデータを送信せずに、個別送信箱110等に格納されたデータのうちの少なくとも2つのデータを1つのフレームに含めて送信してもよい。例えば、最も古いデータから数えてN個目までのデータが1つのフレームで送信されてもよい。
また、上記実施形態では、マスターはブロードキャストでデータを送信したが、他の実施形態では、マルチキャストでデータを送信してもよい。
また、上記実施形態では、携帯型ゲーム装置を想定して各ゲーム装置が無線通信を行うこととしたが、他の実施形態では、バッテリで動作する情報処理装置であってもよいし、常時電力供給を受ける情報処理装置であってもよい。また、情報処理装置は、有線で通信を行うものであってもよい。この場合、各情報処理装置は、HUB等で接続され、データ通信を行う。
また、他の実施形態においては、上述した処理の一部又は全部は、1又は複数の専用回路によって行われてもよい。また、上記処理は、ゲーム装置10が備える複数のコンピュータ(CPU311や無線通信モジュール36内の処理部等)によって行われてもよい。
また、上述した通信方法は、ゲーム装置10以外の携帯型情報処理装置、例えば、PDA(Personal Digital Assistant)や無線LAN機能を有する高機能携帯電話、独自の通信方式により他の機器と通信可能に構成された携帯型情報処理装置等において適用されてもよい。
10 ゲーム装置
14 操作ボタン
15 アナログスティック
31 情報処理部
32 メインメモリ
36 無線通信モジュール
311 CPU
80 登録テーブル
101、102、103 ゲームキャラクタ
110 個別送信箱
120 全送信箱
130、131、132、133 付加情報

Claims (20)

  1. 操作部と通信機能とを有し、所定の通信アプリケーションを実行可能な情報処理ユニットを複数含む情報処理システムであって、
    前記情報処理システムには、第1情報処理ユニットと、第2情報処理ユニットと、第3情報処理ユニットとが含まれ、
    前記第1情報処理ユニットは、
    第1識別情報を含む管理フレームを送信する管理フレーム送信手段と、
    前記第2情報処理ユニットから送られる登録フレームを受信し、当該受信した登録フレームに基づいて前記第2情報処理ユニットを識別する第2識別情報を自機に登録することにより、相互通信の相手として前記第2情報処理ユニットを自機に登録する第1相互登録手段と、
    前記第1相互登録手段が自機に登録した前記第2識別情報が示す前記第2情報処理ユニットから送信されたデータを受信する第1データ受信手段と、
    前記第1データ受信手段が受信したデータを用いて前記通信アプリケーションを実行する第1実行手段と、
    前記第1情報処理ユニットの操作部において行われた操作に基づく第1データを前記第1識別情報とともに送信する第1送信手段とを含み、
    前記第2情報処理ユニットは、
    前記管理フレームを受信する管理フレーム受信手段と、
    前記管理フレーム受信手段が前記管理フレームを受信したことに応じて、前記第1情報処理ユニットに前記第2識別情報を登録させるために、当該第1情報処理ユニットに対して前記第2識別情報を含む前記登録フレームを送信するとともに、前記第1情報処理ユニットから送信された管理フレームに含まれる前記第1識別情報を自機に登録することにより、相互通信の相手として前記第1情報処理ユニットを自機に登録する第2相互登録手段と、
    前記第2相互登録手段が自機に登録した前記第1識別情報が示す前記第1情報処理ユニットから送信されたデータを受信する第2データ受信手段と、
    前記第2データ受信手段が受信したデータを用いて前記通信アプリケーションを実行する第2実行手段と、
    前記第2情報処理ユニットの操作部において行われた操作に基づく第2データを前記第1識別情報とともに送信する第2送信手段とを含み、
    前記第3情報処理ユニットは、
    前記第1情報処理ユニットに自機の識別情報を登録させるための登録フレームを送信せずに、前記第1情報処理ユニットから送信された管理フレームに含まれる前記第1識別情報を自機に登録することにより、前記第1情報処理ユニットを自機に一方的に登録する第3登録手段と、
    前記第3登録手段が自機に一方的に登録した前記第1識別情報に基づいて、前記第1情報処理ユニットが送信した前記第1データおよび前記第2情報処理ユニットが送信した前記第2データを受信する第3データ受信手段と、
    前記第3データ受信手段が受信したデータを用いて前記通信アプリケーションを実行する第3実行手段とを含み、
    前記第1実行手段および第2実行手段は、それぞれ、前記第1データ受信手段または第2データ受信手段により受信したデータを用いて前記通信アプリケーションを実行することにより、前記第1情報処理ユニットの操作部および前記第2情報処理ユニットの操作部において行われた操作を用いて前記通信アプリケーションを実行し、
    前記第3実行手段は、前記第3データ受信手段が受信したデータを用いて前記通信アプリケーションを実行することにより、前記第1情報処理ユニットの操作部および前記第2情報処理ユニットの操作部において行われた操作を用いて実行される前記通信アプリケーションの実行状況を提示する、情報処理システム。
  2. 前記第1情報処理ユニットは、他の情報処理ユニットから送信される探索のための探索フレームを受信して、当該探索フレームに対する応答を示す探索応答フレームを送信可能であり、
    前記第3情報処理ユニットは、第3データを前記探索フレームに含めて、当該探索フレームを前記第1情報処理ユニットに送信する探索フレーム送信手段を含み、
    前記第1情報処理ユニットの前記第1実行手段は、前記第3情報処理ユニットが送信した前記探索フレームに含まれる前記3データを用いて前記通信アプリケーションを実行する、請求項1に記載の情報処理システム。
  3. 前記第3データは、前記第3情報処理ユニットの操作部において行われた操作に基づくデータであり、
    前記第1情報処理ユニットの前記第1実行手段は、前記3データを用いて前記通信アプリケーションを実行する、請求項2に記載の情報処理システム。
  4. 前記第1情報処理ユニットの前記第1送信手段は、前記探索フレームに含まれる前記第3データをさらに送信し、
    前記第2情報処理ユニットの前記第2データ受信手段は、前記第1情報処理ユニットが送信した前記第3データを更に受信し、
    前記第2情報処理ユニットの前記第2実行手段は、前記第3データを用いて前記通信アプリケーションを実行する、請求項2または3に記載の情報処理システム。
  5. 前記第1情報処理ユニットの前記第1送信手段は、前記探索応答フレームに所定のデータを含ませて、当該探索応答フレームを送信し、
    前記第3情報処理ユニットの前記第3データ受信手段は、前記第1情報処理ユニットから送信された前記探索応答フレームを受信して、前記所定のデータを取得する、請求項2から4の何れかに記載の情報処理システム。
  6. 前記第1情報処理ユニットの前記第1送信手段は、前記第1データをブロードキャストまたはマルチキャストで送信し、
    前記第3情報処理ユニットの前記第3データ受信手段は、自機に登録された前記第1識別情報に基づいて、前記第1情報処理ユニットからブロードキャストまたはマルチキャストで送信された前記第1データを受信する、請求項1から5の何れかに記載の情報処理システム。
  7. 前記管理フレームには、前記第1情報処理ユニットに既に登録されている情報処理ユニットに関する情報が含まれる、請求項1から6の何れかに記載の情報処理システム。
  8. 前記第2情報処理ユニットおよび前記第3情報処理ユニットは、前記管理フレームに含まれる、前記第1情報処理ユニットに既に登録されている情報処理ユニットに関する情報を用いて、所定の処理を行う、請求項7に記載の情報処理システム。
  9. 前記管理フレームには、前記第3情報処理ユニットによる前記通信アプリケーションの実行を許可するか否かを示す実行可否情報が含まれ、
    前記第3情報処理ユニットは、前記実行可否情報に基づいて、前記第1データおよび前記第2データを受信するか否か、または、前記通信アプリケーションを実行するか否かを判定する実行判定手段をさらに含む、請求項1から8の何れかに記載の情報処理システム。
  10. 前記第2情報処理ユニットおよび前記第3情報処理ユニットは、複数の前記第1情報処理ユニットから前記管理フレームを受信した場合、当該複数の前記第1情報処理ユニットに関する情報をユーザに提示して選択させる選択手段を含み、
    前記第2情報処理ユニットの前記第2相互登録手段は、ユーザが選択した前記第1情報処理ユニットに対して前記登録フレームを送信するとともに、当該選択した前記第1情報処理ユニットを自機に登録し、
    前記第3情報処理ユニットの前記第3登録手段は、ユーザが選択した前記第1情報処理ユニットを自機に一方的に登録する、請求項1から9の何れかに記載の情報処理システム。
  11. 前記第1情報処理ユニットの前記第1送信手段は、前記第1データおよび前記第1データ受信手段が受信した前記第2情報処理ユニットからの前記第2データを送信し、
    前記第3情報処理ユニットの前記第3データ受信手段は、自機に登録された前記第1識別情報に基づいて、前記第1情報処理ユニットから送信された前記第1データおよび前記第2データを受信する、請求項1から10の何れかに記載の情報処理システム。
  12. 前記第1情報処理ユニット、前記第2情報処理ユニット、および、前記第3情報処理ユニットは、IEEE802.11規格に従って通信し、
    前記第1情報処理ユニットの前記管理フレーム送信手段は、ビーコンを送信し、
    前記第2情報処理ユニット前記管理フレーム受信手段は、前記ビーコンを受信し、
    前記第1情報処理ユニットの前記第1相互登録手段および前記第2情報処理ユニットの前記第2相互登録手段は、前記登録フレームとしてオーセンティケーションフレームおよびアソシエーションフレームをやり取りして、相互に登録を行い、
    前記第3情報処理ユニットの前記第3登録手段は、前記第1情報処理ユニットと前記第3情報処理ユニットの間で前記オーセンティケーションフレームおよび前記アソシエーションフレームをやり取りせずに、前記第1情報処理ユニットから送信されたビーコンに含まれる前記第1識別情報を自機に一方的に登録する、請求項1から11の何れかに記載の情報処理システム。
  13. 前記第1情報処理ユニット、前記第2情報処理ユニット、および、前記第3情報処理ユニットは、IEEE802.11規格に従って通信し、
    前記探索フレームは、プローブリクエストである、請求項1から12の何れかに記載の情報処理システム。
  14. 前記探索応答フレームは、プローブレスポンスである、請求項13に記載の情報処理システム。
  15. 前記第1情報処理ユニットは、所定の周期でアウェイク状態と省電力状態とを繰り返し、
    前記第1情報処理ユニットの前記管理フレーム送信手段は、前記所定の周期を示す情報を含む管理フレームを定期的に送信し、
    前記第2情報処理ユニットは、自機に登録した前記第1識別情報が示す前記第1情報処理ユニットから送信された前記管理フレームに基づいて、前記所定の周期と同期してアウェイク状態と省電力状態とを繰り返し、
    前記第3情報処理ユニットは、自機に登録した前記第1識別情報が示す前記第1情報処理ユニットから送信された前記管理フレームに基づいて、前記所定の周期と同期してアウェイク状態と省電力状態とを繰り返す、請求項1から14の何れかに記載の情報処理システム。
  16. 前記第3情報処理ユニットは、所定のモードに設定されている場合、前記第1情報処理ユニットから送られた前記第1データに基づいて、自機を省電力状態に設定し、
    前記探索フレーム送信手段は、前記所定のモードに設定されている場合、前記探索フレームの送信を制限し、
    前記第3データ受信手段は、前記所定のモードに設定されている場合でも、前記第1情報処理ユニットおよび前記第2情報処理ユニットが送信した前記第1データおよび前記第2データを受信し、
    前記第3実行手段は、前記所定のモードに設定されている場合でも、前記第3データ受信手段が受信したデータを用いて前記通信アプリケーションを実行することにより、前記第1情報処理ユニットの操作部および前記第2情報処理ユニットの操作部において行われた操作を用いて実行される前記通信アプリケーションの実行状況を提示する、請求項2から5の何れかに記載の情報処理システム。
  17. 通信機能を有し、所定の通信アプリケーションを実行可能な情報処理ユニットを複数含む情報処理システムであって、
    前記情報処理システムには、前記通信アプリケーションを参加モードで実行する参加情報処理ユニットと、前記通信アプリケーションを非参加モードで実行する非参加情報処理ユニットとが含まれ、
    前記参加情報処理ユニットは、
    少なくとも1つの他の前記参加情報処理ユニットとの間で、所定の認証処理の後、互いの識別情報を登録する相互登録手段と、
    所定のデータを自己の識別情報とともに送信するとともに、前記相互登録手段が登録した前記識別情報が示す前記情報処理ユニットから送信されたデータを用いて前記参加モードで通信アプリケーションを実行し、当該実行結果を提示する第1実行手段とを含み、
    前記非参加情報処理ユニットは、
    前記参加情報処理ユニットとの間で前記認証処理を行うことなく、前記参加情報処理ユニットの少なくとも1つの前記識別情報を自機に一方的に登録する一方的登録手段と、
    前記一方的登録手段が登録した前記識別情報が示す前記参加情報処理ユニットから送信されたデータを用いて、前記参加モードで実行される前記通信アプリケーションの実行状況を提示する第2実行手段とを含み、
    前記参加情報処理ユニットは、前記非参加情報処理ユニットの識別情報を自機に登録することなく、前記通信アプリケーションを実行する、情報処理システム。
  18. 操作部と通信機能とを有し、所定の通信アプリケーションを実行可能な情報処理ユニットを複数含む情報処理システムにおいて行われる情報処理方法であって、
    前記情報処理システムには、第1情報処理ユニットと、第2情報処理ユニットと、第3情報処理ユニットとが含まれ、
    前記第1情報処理ユニットにおいて、
    第1識別情報を含む管理フレームを送信する管理フレーム送信ステップと、
    前記第2情報処理ユニットから送られる登録フレームを受信し、当該受信した登録フレームに基づいて前記第2情報処理ユニットを識別する第2識別情報を自機に登録することにより、相互通信の相手として前記第2情報処理ユニットを自機に登録する第1相互登録ステップと、
    前記第1相互登録ステップにおいて自機に登録した前記第2識別情報が示す前記第2情報処理ユニットから送信されたデータを受信する第1データ受信ステップと、
    前記第1データ受信ステップにおいて受信したデータを用いて前記通信アプリケーションを実行することにより、前記第1情報処理ユニットの操作部および前記第2情報処理ユニットの操作部において行われた操作に基づいて進行される前記通信アプリケーションの実行結果を提示する第1実行ステップと、
    前記第1情報処理ユニットの操作部において行われた操作に基づく第1データを前記第1識別情報とともに送信する第1送信ステップとが実行され、
    前記第2情報処理ユニットにおいて、
    前記管理フレームを受信する管理フレーム受信ステップと、
    前記管理フレーム受信ステップにおいて前記管理フレームを受信したことに応じて、前記第1情報処理ユニットに前記第2識別情報を登録させるために、当該第1情報処理ユニットに対して前記第2識別情報を含む前記登録フレームを送信するとともに、前記第1情報処理ユニットから送信された管理フレームに含まれる前記第1識別情報を自機に登録することにより、相互通信の相手として前記第1情報処理ユニットを自機に登録する第2相互登録ステップと、
    前記第2相互登録ステップにおいて自機に登録した前記第1識別情報が示す前記第1情報処理ユニットから送信されたデータを受信する第2データ受信ステップと、
    前記第2データ受信ステップにおいて受信したデータを用いて前記通信アプリケーションを実行することにより、前記第1情報処理ユニットの操作部および前記第2情報処理ユニットの操作部において行われた操作に基づいて進行される前記通信アプリケーションの実行結果を提示する第2実行ステップと、
    前記第2情報処理ユニットの操作部において行われた操作に基づく第2データを前記第1識別情報とともに送信する第2送信ステップとが実行され、
    前記第3情報処理ユニットにおいて、
    前記第1情報処理ユニットに自機の識別情報を登録させるための登録フレームを送信せずに、前記第1情報処理ユニットから送信された管理フレームに含まれる前記第1識別情報を自機に登録することにより、前記第1情報処理ユニットを自機に一方的に登録する第3登録ステップと、
    前記第3登録ステップにおいて自機に一方的に登録した前記第1識別情報に基づいて、前記第1情報処理ユニットが送信した前記第1データおよび前記第2情報処理ユニットが送信した前記第2データを受信する第3データ受信ステップと、
    前記第3データ受信ステップにおいて受信したデータを用いて前記通信アプリケーションを実行することにより、前記第1情報処理ユニットの操作部および前記第2情報処理ユニットの操作部において行われた操作に基づいて進行される前記通信アプリケーションの実行結果を提示する第3実行ステップとが実行される、情報処理方法。
  19. 所定の通信アプリケーションを実行可能な操作部と通信機能とを有する第1および第2情報処理ユニットにおいて行われた操作に基づいた処理を行う情報処理ユニットであって、
    前記第1情報処理ユニットは、
    第1識別情報を含む管理フレームを送信し、前記第2情報処理ユニットから送られる登録フレームを受信し、当該受信した登録フレームに基づいて前記第2情報処理ユニットを識別する第2識別情報を自機に登録し、
    自機に登録した前記第2識別情報が示す前記第2情報処理ユニットから送信されたデータを受信して、当該データを用いて前記通信アプリケーションを実行することにより、前記第1情報処理ユニットの操作部および前記第2情報処理ユニットの操作部において行われた操作に基づいて進行される前記通信アプリケーションの実行結果を提示するとともに、前記第1情報処理ユニットの操作部において行われた操作に基づく第1データを前記第1識別情報とともに送信し、
    前記第2情報処理ユニットは、
    前記管理フレームを受信したことに応じて、前記第1情報処理ユニットに前記第2識別情報を登録させるために、当該第1情報処理ユニットに対して前記第2識別情報を含む前記登録フレームを送信するとともに、前記第1情報処理ユニットから送信された管理フレームに含まれる前記第1識別情報を自機に登録し、
    自機に登録した前記第1識別情報が示す前記第1情報処理ユニットから送信されたデータを受信して、当該データを用いて前記通信アプリケーションを実行することにより、前記第1情報処理ユニットの操作部および前記第2情報処理ユニットの操作部において行われた操作に基づいて進行される前記通信アプリケーションの実行結果を提示するとともに、前記第2情報処理ユニットの操作部において行われた操作に基づく第2データを前記第1識別情報とともに送信し、
    前記情報処理ユニットは、
    前記第1情報処理ユニットに自機の識別情報を登録させるための登録フレームを送信せずに、前記第1情報処理ユニットから送信された管理フレームに含まれる前記第1識別情報を自機に登録することにより、前記第1情報処理ユニットを自機に一方的に登録する登録手段と、
    前記登録手段が自機に一方的に登録した前記第1識別情報に基づいて、前記第1情報処理ユニットが送信した前記第1データおよび前記第2情報処理ユニットが送信した前記第2データを受信するデータ受信手段と、
    前記データ受信手段が受信したデータを用いて前記通信アプリケーションを実行することにより、前記第1情報処理ユニットの操作部および前記第2情報処理ユニットの操作部において行われた操作に基づいて進行される前記通信アプリケーションの実行結果を提示する実行手段とを備える、情報処理ユニット。
  20. 所定の通信アプリケーションを実行可能な操作部と通信機能とを有する第1および第2情報処理ユニットにおいて行われた操作に基づいた処理を行う情報処理ユニットのコンピュータにおいて実行される情報処理プログラムであって、
    前記第1情報処理ユニットは、
    第1識別情報を含む管理フレームを送信し、前記第2情報処理ユニットから送られる登録フレームを受信し、当該受信した登録フレームに基づいて前記第2情報処理ユニットを識別する第2識別情報を自機に登録し、
    自機に登録した前記第2識別情報が示す前記第2情報処理ユニットから送信されたデータを受信して、当該データを用いて前記通信アプリケーションを実行することにより、前記第1情報処理ユニットの操作部および前記第2情報処理ユニットの操作部において行われた操作に基づいて進行される前記通信アプリケーションの実行結果を提示するとともに、前記第1情報処理ユニットの操作部において行われた操作に基づく第1データを前記第1識別情報とともに送信し、
    前記第2情報処理ユニットは、
    前記管理フレームを受信したことに応じて、前記第1情報処理ユニットに前記第2識別情報を登録させるために、当該第1情報処理ユニットに対して前記第2識別情報を含む前記登録フレームを送信するとともに、前記第1情報処理ユニットから送信された管理フレームに含まれる前記第1識別情報を自機に登録し、
    自機に登録した前記第1識別情報が示す前記第1情報処理ユニットから送信されたデータを受信して、当該データを用いて前記通信アプリケーションを実行することにより、前記第1情報処理ユニットの操作部および前記第2情報処理ユニットの操作部において行われた操作に基づいて進行される前記通信アプリケーションの実行結果を提示するとともに、前記第2情報処理ユニットの操作部において行われた操作に基づく第2データを前記第1識別情報とともに送信し、
    前記コンピュータを、
    前記第1情報処理ユニットに自機の識別情報を登録させるための登録フレームを送信せずに、前記第1情報処理ユニットから送信された管理フレームに含まれる前記第1識別情報を自機に登録することにより、前記第1情報処理ユニットを自機に一方的に登録する登録手段と、
    前記登録手段が自機に一方的に登録した前記第1識別情報に基づいて、前記第1情報処理ユニットが送信した前記第1データおよび前記第2情報処理ユニットが送信した前記第2データを受信するデータ受信手段と、
    前記データ受信手段が受信したデータを用いて前記通信アプリケーションを実行することにより、前記第1情報処理ユニットの操作部および前記第2情報処理ユニットの操作部において行われた操作に基づいて進行される前記通信アプリケーションの実行結果を提示する実行手段として機能させる、情報処理プログラム。
JP2011040935A 2011-02-25 2011-02-25 情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法 Active JP5728249B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2011040935A JP5728249B2 (ja) 2011-02-25 2011-02-25 情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法
US13/369,653 US8989666B2 (en) 2011-02-25 2012-02-09 Information processing system, information processing apparatus, computer-readable storage medium having stored therein information processing program, and information processing method
EP20160936.9A EP3679997B1 (en) 2011-02-25 2012-02-14 Information processing system, information processing apparatus, information processing program, and information processing method
EP12155334.1A EP2491991B1 (en) 2011-02-25 2012-02-14 Information processing system, information processing apparatus, information processing program, and information processing method
US14/635,457 US10981068B2 (en) 2011-02-25 2015-03-02 Information processing system, information processing apparatus, computer-readable storage medium having stored therein information processing program, and information processing method
US17/201,555 US11612820B2 (en) 2011-02-25 2021-03-15 Information processing system, information processing apparatus, computer-readable storage medium having stored therein information processing program, and information processing method
US18/110,540 US20230191262A1 (en) 2011-02-25 2023-02-16 Information Processing System, Information Processing Apparatus, Computer-Readable Storage Medium Having Stored Therein Information Processing Program, and Information Processing Method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011040935A JP5728249B2 (ja) 2011-02-25 2011-02-25 情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法

Publications (2)

Publication Number Publication Date
JP2012176127A JP2012176127A (ja) 2012-09-13
JP5728249B2 true JP5728249B2 (ja) 2015-06-03

Family

ID=45566941

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011040935A Active JP5728249B2 (ja) 2011-02-25 2011-02-25 情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法

Country Status (3)

Country Link
US (4) US8989666B2 (ja)
EP (2) EP3679997B1 (ja)
JP (1) JP5728249B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7460588B2 (en) 2005-03-03 2008-12-02 Adaptive Spectrum And Signal Alignment, Inc. Digital subscriber line (DSL) state and line profile control
JP5728249B2 (ja) 2011-02-25 2015-06-03 任天堂株式会社 情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法
JP6443717B2 (ja) * 2014-06-30 2018-12-26 パナソニックIpマネジメント株式会社 通信システム、及び通信方法
JP6646991B2 (ja) * 2015-10-01 2020-02-14 任天堂株式会社 情報処理システム、情報処理方法、情報処理装置、および、情報処理プログラム
US11065548B2 (en) 2018-02-28 2021-07-20 Sony Interactive Entertainment LLC Statistical driven tournaments
US10953335B2 (en) 2018-02-28 2021-03-23 Sony Interactive Entertainment Inc. Online tournament integration
US10814228B2 (en) 2018-02-28 2020-10-27 Sony Interactive Entertainment LLC Statistically defined game channels
US10953322B2 (en) 2018-02-28 2021-03-23 Sony Interactive Entertainment LLC Scaled VR engagement and views in an e-sports event
US10792576B2 (en) * 2018-02-28 2020-10-06 Sony Interactive Entertainment LLC Player to spectator handoff and other spectator controls
US10818142B2 (en) 2018-02-28 2020-10-27 Sony Interactive Entertainment LLC Creation of winner tournaments with fandom influence
JP7225177B2 (ja) 2020-09-29 2023-02-20 任天堂株式会社 通信システム、通信方法、通信装置、および通信プログラム

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG43795A1 (en) 1988-03-31 1997-11-14 At & T Corp Arrangement for switching concentrated telecommunications packet traffic
US5555244A (en) 1994-05-19 1996-09-10 Integrated Network Corporation Scalable multimedia network
US6246684B1 (en) 1997-12-24 2001-06-12 Nortel Networks Limited Method and apparatus for re-ordering data packets in a network environment
US20060010512A1 (en) * 2001-12-28 2006-01-12 Allen Stephen M Nitrogen transport metabolism
EP1137306A1 (en) 2000-03-24 2001-09-26 BRITISH TELECOMMUNICATIONS public limited company Optical signalling system
KR100372899B1 (ko) * 2000-04-04 2003-02-25 주식회사 게임위즈 인터넷을 통한 게임방송방법 및 그 장치
US20030026252A1 (en) 2001-07-31 2003-02-06 Thunquest Gary L. Data packet structure for directly addressed multicast protocol
JP3868248B2 (ja) 2001-10-05 2007-01-17 沖電気工業株式会社 パケット送信装置、パケット受信装置、パケット多重方法、パケット分離方法
JP4002452B2 (ja) 2002-02-28 2007-10-31 松下電器産業株式会社 記憶装置および記憶方法
US7403542B1 (en) * 2002-07-19 2008-07-22 Qlogic, Corporation Method and system for processing network data packets
KR100884120B1 (ko) 2003-06-04 2009-02-17 미쓰비시덴키 가부시키가이샤 송신기 및 통신 방법
JP4029063B2 (ja) * 2003-06-17 2008-01-09 任天堂株式会社 ゲームシステム、ゲーム装置およびゲームプログラム
JP3916601B2 (ja) * 2003-12-16 2007-05-16 株式会社コナミデジタルエンタテインメント 通信システム、サーバ装置、端末、サービス方法、端末方法、および、プログラム
JP4781743B2 (ja) * 2005-05-06 2011-09-28 任天堂株式会社 通信ゲームシステム
JP3950899B2 (ja) 2005-08-03 2007-08-01 株式会社日立コミュニケーションテクノロジー ビット同期回路
US8025572B2 (en) * 2005-11-21 2011-09-27 Microsoft Corporation Dynamic spectator mode
US7654495B2 (en) * 2006-01-11 2010-02-02 Broan-Nutone Llc Hanger assembly
WO2007090196A2 (en) 2006-02-01 2007-08-09 Coco Communications Corp. Protocol link layer
JP2007325630A (ja) * 2006-06-06 2007-12-20 Namco Bandai Games Inc プログラム、情報記憶媒体及びプレーヤ端末
US9526995B2 (en) * 2006-11-22 2016-12-27 Sony Interactive Entertainment America Llc Video game recording and playback with visual display of game controller manipulation
JP5013843B2 (ja) * 2006-12-18 2012-08-29 パナソニック株式会社 ゲーム機器およびゲームシステム
US8553692B2 (en) 2007-03-09 2013-10-08 Cisco Technology, Inc. Generic UDP multiplexing for voice over internet protocol (VOIP)
JP2009218652A (ja) 2008-03-07 2009-09-24 Fujitsu Telecom Networks Ltd フレーム伝送システム及びフレーム伝送方法
JP5191830B2 (ja) 2008-07-22 2013-05-08 パナソニック株式会社 無線基地局、無線通信端末、無線通信システム
US9320067B2 (en) * 2008-11-24 2016-04-19 Qualcomm Incorporated Configuration of user equipment for peer-to-peer communication
JP5347648B2 (ja) * 2009-03-30 2013-11-20 富士通株式会社 プログラム、情報処理装置及び状態出力方法
EP3537834A1 (en) 2009-11-24 2019-09-11 Electronics and Telecommunications Research Institute Method for transmitting a response request frame and a response frame in a multi-user based wireless communication system
JP5572494B2 (ja) * 2010-07-07 2014-08-13 任天堂株式会社 情報処理システム、情報処理プログラム、情報処理装置、情報処理方法
US20120076072A1 (en) 2010-09-24 2012-03-29 Marc Jalfon System and method for maintaining privacy in a wireless network
JP5707171B2 (ja) 2011-02-25 2015-04-22 任天堂株式会社 通信制御装置、通信制御プログラム、通信制御方法、および、情報処理システム
JP5728249B2 (ja) 2011-02-25 2015-06-03 任天堂株式会社 情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法

Also Published As

Publication number Publication date
US11612820B2 (en) 2023-03-28
EP3679997B1 (en) 2021-05-05
US20150165321A1 (en) 2015-06-18
US20210197091A1 (en) 2021-07-01
EP3679997A1 (en) 2020-07-15
US10981068B2 (en) 2021-04-20
EP2491991A2 (en) 2012-08-29
JP2012176127A (ja) 2012-09-13
US8989666B2 (en) 2015-03-24
US20120220241A1 (en) 2012-08-30
EP2491991A3 (en) 2016-08-03
EP2491991B1 (en) 2020-04-15
US20230191262A1 (en) 2023-06-22

Similar Documents

Publication Publication Date Title
JP5728249B2 (ja) 情報処理システム、情報処理装置、情報処理プログラム、および、情報処理方法
JP5688297B2 (ja) 通信システム、情報処理装置、通信プログラムおよび通信方法
US9186581B2 (en) Communication system, information processing apparatus, computer-readable storage medium, and communication method
US8784202B2 (en) Apparatus and method for repositioning a virtual camera based on a changed game state
JP5941620B2 (ja) 情報処理プログラム、情報処理装置、情報処理方法、及び情報処理システム
US9832771B2 (en) Communication control apparatus, computer-readable storage medium having stored therein communication control program, communication control method, and information processing system
CN112774185B (zh) 牌类虚拟场景中的虚拟牌控制方法、装置及设备
CN108184130B (zh) 模拟器系统、直播方法、装置及存储介质
JP5883962B2 (ja) 通信制御装置、通信制御プログラム、通信制御方法、および、情報処理システム
JP5858626B2 (ja) 無線通信プログラム、情報処理装置、および通信制御方法
JP5695936B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、および、情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150305

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150325

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150406

R150 Certificate of patent or registration of utility model

Ref document number: 5728249

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250