[1.システムの全体構成]
以下、本実施形態の一例に係るゲームシステム、情報処理装置、情報処理プログラム、および、ゲーム処理方法について説明する。図1は、本実施形態におけるゲームシステムの構成の一例を示すブロック図である。図1に示すように、ゲームシステムは、サーバ10と、複数の端末装置1とを含む。これらのサーバ10または端末装置1は、インターネットおよび/またはモバイル通信網等のネットワーク8に接続可能である。サーバ10は、ネットワーク8を介して各端末装置1と通信可能である。端末装置1は、他の端末装置1およびサーバ10とネットワーク8を介して通信可能である。詳細は後述するが、端末装置1は、他の端末装置1と通信を行うことによって、当該他の端末装置1のユーザ(換言すれば、プレイヤ)との間で複数人プレイのゲームを行うためのものである。なお、図1においては、端末装置1を2つのみ示しているが、ゲームシステムには、3つ以上の端末装置が含まれていてもよい。詳細は後述するが、ゲームシステムに含まれる端末装置の数は、後述するロビーへのプレイヤの入室状況に応じて変化する。
(1−1.端末装置の構成の具体例)
図2〜図9を参照して、本実施形態における端末装置1の一例について説明する。本実施形態における端末装置1の一例は、本体装置(情報処理装置;本実施例ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(図3参照)。また、端末装置1は、本体装置2に画像を表示する態様での利用と、テレビ等の他の表示装置(例えば、据置型モニタ)に画像を表示させる態様での利用が可能である。前者の態様において、端末装置1は、携帯型装置(例えば、携帯ゲーム機)として利用することができる。また、後者の態様において、端末装置1は、据置型装置(例えば、据置型ゲーム機)として利用することができる。上記のように、端末装置1は、複数の装置によって構成される情報処理システム(換言すれば、端末システム)ということもできる。なお、この端末システムは、本体装置2に装着されない無線コントローラをも含むことができる。
図2は、本体装置2に左コントローラ3および右コントローラ4を装着した状態を示す図である。図2に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、端末装置1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
図3は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。図2および図3に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。左コントローラ3は、本体装置2の左側面(図2に示すx軸正方向側の側面)に装着することができ、本体装置2の左側面に沿って図2に示すy軸方向にスライドさせることによって本体装置2に着脱可能となっている。また、右コントローラ4は、本体装置2の右側面(図2に示すx軸負方向側の側面)に装着することができ、本体装置2の右側面に沿って図2に示すy軸方向にスライドさせることによって本体装置2に着脱可能となっている。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
図4は、本体装置2の一例を示す六面図である。図4に示すように、本体装置2は、略板状のハウジング11を備える。本実施例において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
図4に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施例においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施例においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、図7に示すスピーカ88)を備えている。図4に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
図4に示すように、本体装置2は、ハウジング11の左側面において左レール部材15を備える。左レール部材15は、左コントローラ3を本体装置2に着脱可能に装着するための部材である。左レール部材15は、ハウジング11の左側面において、上下方向に沿って延びるように設けられる。左レール部材15は、左コントローラ3のスライダ(すなわち、図5に示すスライダ40)と係合可能な形状を有しており、左レール部材15とスライダ40とによってスライド機構が形成される。このスライド機構によって、左コントローラ3を本体装置2に対してスライド可能かつ着脱可能に装着することができる。また、ハウジング11の右側面には、左側面に設けられる構成と同様の構成として、右レール部材19が備えられる。
また、本体装置2は、左側端子17を備える。左側端子17は、本体装置2が左コントローラ3と有線通信を行うための端子である。左側端子17は、左コントローラ3が本体装置2に装着された場合に、左コントローラ3の端子(図5に示す端子42)と接触する位置に設けられる。また、本体装置2は右側端子21を備える。右側端子21は、本体装置2が右コントローラ4と有線通信を行うための端子である。右側端子21は、右コントローラ4が本体装置2に装着された場合に、右コントローラ4の端子(図6に示す端子64)と接触する位置に設けられる。
図4に示すように、本体装置2は、第1スロット23を備える。第1スロット23は、ハウジング11の上側面に設けられる。第1スロット23は、第1の種類の記憶媒体を装着可能な形状を有する。第1の種類の記憶媒体は、例えば、端末装置1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。第1の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。図4に示すように、電源ボタン28は、ハウジング11の上側面に設けられる。電源ボタン28は、本体装置2の電源のオン/オフを切り替えるためのボタンである。
本体装置2は、音声入出力端子(具体的には、イヤホンジャック)25を備える。すなわち、本体装置2は、音声入出力端子25にマイクやイヤホンを装着することができる。図4に示すように、音声入出力端子25は、ハウジング11の上側面に設けられる。
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。図4に示すように、下側端子27は、ハウジング11の下側面に設けられる。本体装置2がクレードルに装着された場合、下側端子27は、クレードルの端子に接続される。本実施例において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。クレードルは、左コントローラ3および右コントローラ4を本体装置2から取り外した状態で本体装置2のみを載置することが可能である。また、さらに他の例として、クレードルは、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置を載置することも可能である。そして、クレードルは、本体装置2とは別体の外部表示装置の一例である据置型モニタ(例えば、据置型テレビ)と通信可能である(有線通信であってもよいし、無線通信であってもよい)。上記一体型装置または本体装置2単体をクレードルに載置した場合、端末装置1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、本実施例においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
以上に説明した、ハウジング11に設けられる各構成要素(具体的には、ボタン、スロット、端子等)の形状、数、および設置位置は、任意である。例えば、他の実施例においては、電源ボタン28およびスロット23のうちのいくつかは、ハウジング11の他の側面あるいは背面に設けられてもよい。また、他の実施例においては、本体装置2は、上記各構成要素のうちいくつかを備えていない構成であってもよい。
図5は、左コントローラ3の一例を示す六面図である。図5に示すように、左コントローラ3は、ハウジング31を備える。本実施例において、ハウジング31は、略板状である。また、ハウジング31の主面(換言すれば、表側の面、すなわち、図2に示すz軸負方向側の面)は、大略的には矩形形状である。また、本実施例においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、図2に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。なお、ハウジング31の形状は任意であり、他の実施例においては、ハウジング31は略板状でなくてもよい。また、ハウジング31は、矩形形状でなくてもよく、例えば半円状の形状等であってもよい。また、ハウジング31は、縦長の形状でなくてもよい。
ハウジング31の上下方向の長さは、本体装置2のハウジング11の上下方向の長さとほぼ同じである。また、ハウジング31の厚さ(すなわち、前後方向の長さ、換言すれば、図2に示すz軸方向の長さ)は、本体装置2のハウジング11の厚さとほぼ同じである。したがって、左コントローラ3が本体装置2に装着された場合(図2参照)には、ユーザは、本体装置2と左コントローラ3とを一体の装置のような感覚で把持することができる。
左コントローラ3は、アナログスティック32を備える。図5に示すように、アナログスティック32が、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。アナログスティック32は、ハウジング31の主面に平行な全方向(すなわち、上下左右および斜め方向を含む、360°の方向)に傾倒可能なスティック部材を有する。ユーザは、スティック部材を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施例においては、スティック部材を(ハウジング31に垂直な方向に)押下する入力が可能である。すなわち、アナログスティック32は、スティック部材の傾倒方向および傾倒量に応じた方向および大きさの入力と、スティック部材に対する押下入力とを行うことが可能な入力部である。
左コントローラ3は、4つの操作ボタン33〜36(具体的には、右方向ボタン33、下方向ボタン34、上方向ボタン35、および、左方向ボタン36)を備える。図5に示すように、これら4つの操作ボタン33〜36は、ハウジング31の主面においてアナログスティック32の下側に設けられる。これらの操作ボタン33〜36は、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。また、左コントローラ3は録画ボタン37を備える。また、左コントローラ3は−(マイナス)ボタン47を備える。
左コントローラ3の主面に設けられる各操作部(具体的には、アナログスティック32および上記各ボタン33〜37、47)は、左コントローラ3が本体装置2に装着される場合、一体型装置を把持するユーザの例えば左手の親指によって操作される。また、左コントローラ3が本体装置2から外された状態において両手で横向きに把持されて使用される場合、上記各操作部は、左コントローラ3を把持するユーザの例えば左右の手の親指で操作される。具体的には、この場合、アナログスティック32はユーザの左手の親指で操作され、各操作ボタン33〜36はユーザの右手の親指で操作される。
左コントローラ3は、第1Lボタン38を備える。また、左コントローラ3は、ZLボタン39を備える。これらの操作ボタン38および39は、上記操作ボタン33〜36と同様、本体装置2で実行される各種プログラムに応じた指示を行うために用いられる。図5に示すように、第1Lボタン38は、ハウジング31の側面のうちの左上部分に設けられる。また、ZLボタン39は、ハウジング31の側面から裏面にかけての左上部分(厳密には、ハウジング31を表側から見たときの左上部分)に設けられる。つまり、ZLボタン39は、第1Lボタン38の後側(図2に示すz軸正方向側)に設けられる。左コントローラ3が本体装置2に装着される場合、第1Lボタン38およびZLボタン39は、一体型装置における左上部分に配置されることになる。
左コントローラ3は、上述のスライダ40を備えている。図5に示すように、スライダ40は、ハウジング31の右側面において、上下方向に延びるように設けられる。スライダ40は、本体装置2の左レール部材15(より具体的には、左レール部材15の溝)と係合可能な形状を有している。
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。端子42は、左コントローラ3が本体装置2に装着された場合に、本体装置2の左側端子17(図4)と接触する位置に設けられる。
また、左コントローラ3は、第2Lボタン43および第2Rボタン44を備える。これらのボタン43および44は、他の操作ボタン33〜36と同様、本体装置2で実行される各種プログラムに応じた指示を行うために用いられる。図5に示すように、第2Lボタン43および第2Rボタン44は、スライダ40の装着面に設けられる。
図6は、右コントローラ4の一例を示す六面図である。図6に示すように、右コントローラ4は、ハウジング51を備える。本実施例において、ハウジング51は、略板状である。また、ハウジング51の主面(換言すれば、表側の面、すなわち、図2に示すz軸負方向側の面)は、大略的には矩形形状である。また、本実施例においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
右コントローラ4のハウジング51は、左コントローラ3のハウジング31と同様、その上下方向の長さは、本体装置2のハウジング11の上下方向の長さとほぼ同じであり、その厚さは、本体装置2のハウジング11の厚さとほぼ同じである。したがって、右コントローラ4が本体装置2に装着された場合(図2参照)には、ユーザは、本体装置2と右コントローラ4とを一体の装置のような感覚で把持することができる。
右コントローラ4は、左コントローラ3と同様、方向入力部としてアナログスティック52を備える。本実施例においては、アナログスティック52は、左コントローラ3のアナログスティック32と同じ構成である。また、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ4は、左コントローラ3と同様、4つの操作ボタン53〜56(具体的には、Aボタン53、Bボタン54、Xボタン55、および、Yボタン56)を備える。また、右コントローラ4は、+(プラス)ボタン57を備える。また、右コントローラ4は、ホームボタン58を備える。
右コントローラ4の主面に設けられる各操作部(具体的には、アナログスティック52および上記各ボタン53〜58)は、右コントローラ4が本体装置2に装着される場合、一体型装置を把持するユーザの例えば右手の親指によって操作される。また、右コントローラ4が本体装置2から外された状態において両手で横向きに把持されて使用される場合、上記各操作部は、右コントローラ4を把持するユーザの例えば左右の手の親指で操作される。具体的には、この場合、アナログスティック52はユーザの左手の親指で操作され、各操作ボタン53〜56はユーザの右手の親指で操作される。
右コントローラ4は、第1Rボタン60を備える。また、右コントローラ4は、ZRボタン61を備える。図6に示すように、第1Rボタン60は、ハウジング51の側面のうちの右上部分に設けられる。また、ZRボタン61は、ハウジング51の側面から裏面にかけての右上部分(厳密には、ハウジング51を表側から見たときの右上部分)に設けられる。つまり、ZRボタン61は、第1Rボタン60の後側(図2に示すz軸正方向側)に設けられる。
右コントローラ4は、左コントローラ3と同様のスライダ機構を備えている。すなわち、右コントローラ4は、上述のスライダ62を備えている。
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。端子64は、右コントローラ4が本体装置2に装着された場合に、本体装置2の右側端子21(図4)と接触する位置に設けられる。
また、右コントローラ4は、左コントローラ3と同様、第2Lボタン65および第2Rボタン66を備える。これらのボタン65および66は、他の操作ボタン53〜56と同様、本体装置2で実行される各種プログラムに応じた指示を行うために用いられる。
なお、上記左コントローラ3および右コントローラ4において、ハウジング31または51に設けられる各構成要素(具体的には、スライダ、スティック、およびボタン等)の形状、数、および、設置位置は任意である。例えば、他の実施例においては、左コントローラ3および右コントローラ4は、アナログスティックとは別の種類の方向入力部を備えていてもよい。また、スライダ40または62は、本体装置2に設けられるレール部材15または19の位置に応じた位置に配置されてよく、例えば、ハウジング31または51の主面または裏面に配置されてもよい。また、他の実施例においては、左コントローラ3および右コントローラ4は、上記各構成要素のうちいくつかを備えていない構成であってもよい。
図7は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、図4に示す構成の他、図7に示す各構成要素81〜98を備える。これらの構成要素81〜98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
本体装置2は、CPU(Central Processing Unit)81を備える。CPU81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、厳密にはCPU機能、GPU機能等の複数の機能を含むSoC(System−on−a−chip)である。CPU81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、各スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、CPU81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
本体装置2は、第1スロットインターフェース(以下、「I/F」と略記する。)91を備える。第1スロットI/F91は、CPU81に接続される。第1スロットI/F91は、第1スロット23に接続され、第1スロット23に装着された第1の種類の記憶媒体(例えば、SDカード)に対するデータの読み出しおよび書き込みを、CPU81の指示に応じて行う。
CPU81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、CPU81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施例においては、ネットワーク通信部82は、第1の通信態様としてWi−Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、CPU81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施例においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
CPU81は、上述の左側端子17、右側端子21、および、下側端子27に接続される。CPU81は、左コントローラ3と有線通信を行う場合、左側端子17を介して左コントローラ3へデータを送信するとともに、左側端子17を介して左コントローラ3から操作データを受信する。また、CPU81は、右コントローラ4と有線通信を行う場合、右側端子21を介して右コントローラ4へデータを送信するとともに、右側端子21を介して右コントローラ4から操作データを受信する。また、CPU81は、クレードルと通信を行う場合、下側端子27を介してクレードルへデータを送信する。このように、本実施例においては、本体装置2は、左コントローラ3および右コントローラ4との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置または本体装置2単体がクレードルに装着された場合、本体装置2は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、ユーザは、複数の左コントローラ3および複数の右コントローラ4を用いて本体装置2に対する入力を行うことができる。
本体装置2は、タッチパネル13の制御を行う回路であるタッチパネルコントローラ86を備える。タッチパネルコントローラ86は、タッチパネル13とCPU81との間に接続される。タッチパネルコントローラ86は、タッチパネル13からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、CPU81へ出力する。
また、ディスプレイ12は、CPU81に接続される。CPU81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、CPU81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
また、本体装置2は、加速度センサ89を備える。本実施形態においては、加速度センサ89は、所定の3軸(例えば、図2に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサ89は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。
また、本体装置2は、角速度センサ90を備える。本実施形態においては、角速度センサ90は、所定の3軸(例えば、図2に示すxyz軸)回りの角速度を検出する。なお、角速度センサ90は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。
上記の加速度センサ89および角速度センサ90は、CPU81に接続され、加速度センサ89および角速度センサ90の検出結果は、CPU81へ出力される。CPU81は、上記の加速度センサ89および角速度センサ90の検出結果に基づいて、本体装置2の動きおよび/または姿勢に関する情報を算出することが可能である。なお、本実施形態においては、本体装置2の動き、姿勢、および/または位置を算出するための慣性センサとして、加速度センサおよび角速度センサを用いているが、他の実施形態では他の種類のセンサが用いられてもよい。
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびCPU81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、CPU81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。また、電力制御部97は、電源ボタン28に接続される。電力制御部97は、電源ボタン28に対する入力に基づいて、上記各部への電力供給を制御する。すなわち、電力制御部97は、電源ボタン28に対して電源をオフする操作が行われた場合、上記各部の全部または一部への電力供給を停止し、電源ボタン28に対して電源をオンする操作が行われた場合、電力制御部97は、上記各部の全部または一部への電力供給を開始する。また、電力制御部97は、電源ボタン28に対する入力を示す情報(具体的には、電源ボタン28が押下されているか否かを示す情報)をCPU81へ出力する。
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
図8は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、図7で示しているため図8では省略している。
左コントローラ3は、本体装置2との間で通信を行う通信制御部101を備える。図8に示すように、通信制御部101は、端子42を含む各構成要素に接続される。本実施例においては、通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行うことが可能である。通信制御部101は、左コントローラ3が本体装置2に対して行う通信方法を制御する。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行う。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行う。コントローラ通信部83と通信制御部101との間の無線通信は、例えばBluetooth(登録商標)の規格に従って行われる。
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
左コントローラ3は、各ボタン103(具体的には、ボタン33〜39、43、44、46、47)を備える。また、左コントローラ3は、アナログスティック(図8では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
左コントローラ3は、慣性センサを備える。具体的には、加速度センサ104を備える。また、角速度センサ105を備える。本実施例においては、加速度センサ104は、所定の3軸(例えば、図5に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサ104は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。本実施例においては、角速度センサ105は、所定の3軸(例えば、図5に示すxyz軸)回りの角速度を検出する。なお、角速度センサ105は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。加速度センサ104および角速度センサ105は、それぞれ通信制御部101に接続される。そして、加速度センサ104および角速度センサ105の検出結果は、適宜のタイミングで繰り返し通信制御部101へ出力される。
通信制御部101は、各入力部(具体的には、各ボタン103、アナログスティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、または、センサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。また、本体装置2は、左コントローラ3の動きおよび/または姿勢に関する情報を、操作データ(具体的には、加速度センサ104および角速度センサ105の検出結果)に基づいて算出することができる。
左コントローラ3は、振動によってユーザに通知を行うための振動子107を備える。本実施例においては、振動子107は、本体装置2からの指令によって制御される。すなわち、通信制御部101は、本体装置2からの上記指令を受け取ると、当該指令に従って振動子107を駆動させる。ここで、左コントローラ3は、増幅器106を備える。通信制御部101は、上記指令を受け取ると、指令に応じた制御信号を増幅器106へ出力する。増幅器106は、通信制御部101からの制御信号を増幅して、振動子107を駆動させるための駆動信号を生成して振動子107へ与える。これによって振動子107が動作する。
左コントローラ3は、電力供給部108を備える。本実施例において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。電力制御回路は、バッテリから上記各部への電力供給を制御する。また、バッテリは、端子42に接続される。本実施例においては、左コントローラ3が本体装置2に装着される場合、所定の条件下で、バッテリは、端子42を介して本体装置2からの給電によって充電される。
図8に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、アナログスティック52、慣性センサ(加速度センサ114および角速度センサ115)を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
また、右コントローラ4は、振動子117および増幅器116を備える。振動子117および増幅器116は、左コントローラ3の振動子107および増幅器106と同様に動作する。すなわち、通信制御部111は、本体装置2からの指令に従って、増幅器116を用いて振動子117を動作させる。
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。すなわち、電力供給部118は、バッテリから給電を受ける各部への電力供給を制御する。また、右コントローラ4が本体装置2に装着される場合、所定の条件下で、バッテリは、端子64を介して本体装置2からの給電によって充電される。
本実施形態における端末装置1は、1人のユーザが用いることも可能であるし、複数人のユーザが同時に用いることも可能である。すなわち、コントローラが本体装置2に装着されている場合であっても装着されていない場合であっても、ユーザは、2つのコントローラ3および4のいずれか一方または両方を把持して操作を行うことが可能である。さらに、2つのコントローラ3および4が本体装置2から外されている場合、以下に示すように、複数人のユーザが同時に端末装置1を用いることが可能である。
図9は、左コントローラ3および右コントローラ4を本体装置2から外した状態でゲームを行う様子の一例を示す図である。図9に示すように、コントローラ3および4が本体装置2から外されている場合、2人のユーザのうちの第1のユーザが左コントローラ3を操作することができ、第2のユーザが右コントローラ4を操作することができる。これによって、2人のユーザが同時に端末装置1を用いることができる、すなわち、単一の端末装置1において複数人プレイが可能となる。さらに、端末システムが、2つのコントローラ3および4以外にも、端末装置1と無線通信可能なコントローラを含む場合は、3人以上のユーザが同時に端末装置1を用いることができる。
なお、複数人プレイの場合、本体装置2のディスプレイ12(あるいは、上述した本体装置2とは別体の外部表示装置)の画面領域が分割されて用いられてもよいし、分割されずに用いられてもよい。ディスプレイ12の画面領域が分割されて用いられる場合、例えば図9に示すように、ディスプレイ12には、第1のユーザのためのゲーム画像と、第2のユーザのためのゲーム画像とが表示されてもよい。
(1−2.サーバの構成の具体例)
図10は、サーバ10の構成の一例を示すブロック図である。図10に示す、サーバ10が備える各構成は、1以上の情報処理装置によって実現される。ここで、本明細書では、「サーバ」とは、1つの情報処理装置(すなわち、サーバ装置)を指す他、そのサーバの機能が複数のサーバ装置によって実現される場合にはサーバ装置群(すなわち、サーバシステム)全体を指す意味である。つまり、「サーバ」とは、サーバ装置であってもよいし、サーバシステムであってもよい。なお、本実施形態におけるサーバ10のハードウェア構成は、従来のサーバのためのハードウェア構成と同様であってもよい。
図10に示すように、サーバ10は、処理部121および記憶部122を備える。処理部121は、サーバ10の各部122および123に電気的に接続される。処理部121は、CPUおよびメモリを有する。サーバ10においては、CPUがメモリを用いて、記憶部122に記憶されたプログラムを実行することによって各種の情報処理が実行される。記憶部122は、処理部121がアクセス可能な任意の記憶装置(記憶媒体とも言う)である。記憶部122は、処理部121において実行されるプログラム、処理部121による情報処理に用いられるデータ、および、当該情報処理によって得られたデータ等を記憶する。本実施形態においては、記憶部122は、後述するロビーのマッチングのためにサーバ側で実行される情報処理のためのプログラムを少なくとも記憶する。
サーバ10は、通信部123を備える。通信部123は、ネットワーク8に接続し、ネットワーク8を介して他の装置(例えば、端末装置1)と通信を行う機能を有する。図10に示す他、サーバ10は、入出力インターフェースとして、入力部および表示部を備えていてもよい。
本実施形態において、サーバ10は、ゲームのマッチングサーバの機能を有しており、端末装置を用いて他の端末装置のプレイヤと複数人プレイを行うプレイヤ(すなわち、端末装置1のユーザ)のマッチングを行う。具体的には、サーバ10は、端末装置1からの要求に応じて、ゲームのための仮想的なロビーを設定する処理、および、設定されたロビーにプレイヤを仮想的に入室させる処理を実行する。ここで、ロビーとは、複数人でゲームをプレイするプレイヤに提供される仮想的な場所であり、単一のロビーに入室しているプレイヤ同士で複数人プレイのゲームが行われる。
なお、詳細は後述するが、本実施形態においては、1つのロビーから1つのゲームが行われるだけでなく、1つのロビーから、複数種類のゲームが、それぞれ異なる複数のプレイヤによって行われることがある。つまり、本実施形態においては、まず、プレイヤが入室するロビーを決定するためのマッチング(すなわち、ロビーのマッチング)が行われ、さらに、ロビー内において、ゲームをプレイするプレイヤのマッチング(すなわち、ゲームのマッチング)が行われる。このゲームのマッチングによって、ロビー内のプレイヤがプレイするゲームと、ロビー内のプレイヤのうちでそのゲームに参加するプレイヤとが決定される。
[2.ゲームシステムにおける処理の概要]
(2−1.ロビーの設定・入室に関する処理)
図11は、ロビーの設定処理、および、設定されたロビーへのプレイヤの入室処理の流れの一例を示す図である。本実施形態においては、図11に示すように、ロビーの設定(作成とも言う)と、ロビーのマッチング(すなわち、ロビーに入室するプレイヤの決定)とがサーバ10によって実行される。
本実施形態において、新たなロビーの作成は、端末装置からの要求に応じて行われる。すなわち、図11において、端末装置1aは、例えばプレイヤによる指示に応じて、ロビー作成要求をサーバ10へ送信する(ステップS1)。ロビー作成要求は、端末装置1aのプレイヤを識別するためのプレイヤ識別情報(例えば、プレイヤのIDやアカウント名)を含む。本実施形態においては、ロビー作成要求(後述するロビー入室要求も同様である)は、端末装置1において所定のゲームプログラムが実行される場合に行うことが可能である。つまり、本実施形態においては、端末装置1において実行可能な所定のゲームプログラムによる機能の1つのとして、ロビー作成要求を行う機能、および、後述するロビー入室要求を行う機能が端末装置1に提供される。なお、他の実施形態において、ロビー作成要求およびロビー入室要求は、任意のタイミングで行うことが可能であってもよい。
サーバ10は、端末装置1aからのロビー作成要求に応じて、ロビーを新たに作成する(ステップS2)。本実施形態において、サーバ10は、ロビーを管理するためのロビー設定情報を記憶部122に記憶している。ロビー設定情報は、ロビーに入室するプレイヤのグループ(換言すれば、複数のゲームをプレイ可能なプレイヤのグループ)を示すグループ情報と言える。具体的には、ロビー設定情報は、グループに含まれる各プレイヤを示すプレイヤ情報(例えば、プレイヤ識別情報)を含む。また、ロビー設定情報は、作成されたロビーの識別情報を含む。
ロビー作成要求を受信した場合、サーバ10は、新たに作成したロビーの識別情報と、ロビー作成要求の送信元の端末装置1aのプレイヤのプレイヤ識別情報とを関連付けたロビー設定情報を新たに記憶する。このように、サーバ10は、ロビーに入室中の状態であるプレイヤを示すプレイヤ情報を含むようにプレイヤ情報を更新する。これによって、ロビー設定情報を用いてロビーの入室状態を管理することができる。
上記ステップS2において、サーバ10は、ロビーを作成すると、ロビー作成通知を端末装置1aへ送信する。ロビー作成通知を受信すると、端末装置1aは、設定されたロビー内における情報処理(以下、「ロビー処理」と呼ぶ。図24参照)の実行を開始する(ステップS3)。上記ステップS1〜S3の処理によって、端末装置1aのプレイヤは、ロビーを新たに設定することができる。
上記ステップS1〜S3の処理によって設定されたロビーに対して、端末装置1aとは別の端末装置1bのプレイヤが入室する場合、端末装置1bは、例えばプレイヤによる指示に応じて、ロビー入室要求をサーバ10へ送信する(ステップS4)。ロビー入室要求は、端末装置1bのプレイヤのプレイヤ識別情報を含む。
サーバ10は、端末装置1bからのロビー入室要求に応じて、端末装置1bのプレイヤを入室させるロビーを決定する(すなわち、ロビーのマッチングを行う)(ステップS5)。このとき、サーバ10は、端末装置1bのプレイヤのプレイヤ識別情報を含むように、入室先のロビーに関するロビー設定情報を更新する。したがって、ロビー設定情報は、ロビーに入室中の状態であるプレイヤを示すプレイヤ情報を含むように更新される。これによって、サーバ10は、ロビー設定情報を用いてロビーの入室状態を管理することができる。なお、本実施形態においては、ロビーに入室中の状態とは、ロビーにおいてゲームをプレイしていない状態と、ロビーからゲームをプレイしている(換言すれば、ロビーにおいてマッチングされたゲームをプレイしている)状態とを含む。
なお、ロビーのマッチングの方法は、任意であって、どのようなルールおよびアルゴリズムによって入室先のロビーが決定されてもよい。また、ロビーのマッチングの方法としては、従来の方法が用いられてもよい。
また、本実施形態においては、上述のように、2人のプレイヤが1つの端末装置1を同時に用いることが可能である。そのため、サーバ10は、1つの端末装置1を用いる2人のプレイヤが同時にロビーに入室することを許可する。具体的には、2人のプレイヤがロビーに入室する場合、上記ステップS1またはS4において、端末装置1は、2人のプレイヤのプレイヤ識別情報を含む上記ロビー作成要求またはロビー入室要求をサーバ10へ送信する。上記ロビー作成要求またはロビー入室要求を送信する際、端末装置1は、例えば、1人のプレイヤをロビーに入室させる要求を送信するか、それとも、2人のプレイヤをロビーに入室させる要求を送信するかを、プレイヤからの指示に応じて決定するようにしてもよい。
2人のプレイヤのプレイヤ識別情報を含む上記ロビー作成要求またはロビー入室要求を受信すると、サーバ10は、要求に係る2人のプレイヤをロビーに入室させる。すなわち、サーバ10は、要求に含まれる2人のプレイヤのプレイヤ識別情報を含むロビー設定情報を記憶する。なお、詳細は後述するが、1つのロビーに入室した、1つの端末装置を用いる2人のプレイヤは、ロビーにおいて「ペアのプレイヤ」として取り扱われる。本実施形態においては、ロビー設定情報は、ペアのプレイヤであるか否かを示す情報を含む。
なお、サーバ10は、ペアのプレイヤに関するロビー入室要求を受信した場合、当該ロビー入室要求を行ったペアのプレイヤが、他のペアのプレイヤがすでに入室しているロビーに入室しやすくなる(あるいは入室する)ように、ロビーのマッチングを行うようにしてもよい。これによれば、ペアのプレイヤは、ペアのプレイヤが入室しているロビーに入室しやすくなるので、ロビーからペアのプレイヤ同士でゲームを行いやすくすることができる。
以上のように、本実施形態においては、サーバ10は、複数(ここでは、2人)のプレイヤが操作する端末装置からの要求に応じて、当該複数のプレイヤそれぞれを仮想的にロビーに入室させる。したがって、本実施形態によれば、例えば、単一の端末装置を用いてロビーとは無関係のゲーム(例えば、オフラインのゲーム等)をプレイしていた2人のプレイヤが、そのまま2人でロビーからのゲームプレイを行うことができる。このように、本実施形態においては、単一の端末装置を複数人でプレイする場合においてロビーからのゲームプレイを行いやすくすることができ、ロビーからのゲームプレイを行う動機付けをプレイヤに与えることができる。
上記ステップS5において入室先のロビーを決定すると、サーバ10は、新たなプレイヤが入室したことを示す入室通知を各端末装置へ送信する(ステップS6)。入室通知は、ロビーに入室済みのプレイヤの端末装置(ここでは、端末装置1a)と、新たに入室するプレイヤの端末装置(ここでは、端末装置1b)とへ送信される。ロビーに入室済みのプレイヤの端末装置1aへ送信される入室通知は、新たに入室するプレイヤに関する情報(例えば、プレイヤ識別情報)と、当該プレイヤの端末装置との通信を可能とするための接続情報(例えば、端末装置のアドレス情報)を含む。一方、新たに入室するプレイヤの端末装置1bへ送信される入室通知は、ロビーに入室済みのプレイヤに関する情報(例えば、プレイヤ識別情報)と、当該プレイヤの端末装置との通信を可能とするための接続情報(例えば、端末装置のアドレス情報)を含む。
サーバ10からの入室通知を受信すると、端末装置1a(すなわち、ロビーに入室済みのプレイヤの端末装置)は、新たなプレイヤの端末装置1bとの通信を確立する処理を行う(ステップS7)。一方、サーバ10からの入室通知を受信すると、端末装置1b(すなわち、新たに入室するプレイヤの端末装置)は、ロビーに入室済みのプレイヤの端末装置1aとの通信を確立する処理とを行う(ステップS8)。なお、ステップS7およびS8における他の端末装置との通信を確立する処理は、入室通知に含まれる上記接続情報を用いて行われる。端末装置1bは、他の端末装置との通信が確立すると、ロビー処理(図25参照)を開始する(ステップS9)。
上記ステップS7およびS8の処理によって、端末装置1aと端末装置1bとの間で通信可能となる。本実施形態においては、以後に実行されるロビー処理においては、端末装置間の通信はP2P(ピア・トゥ・ピア)で行われる。
なお、図11においては、1つ目の端末装置1aの要求に応じて作成されたロビーに2つ目の端末装置1bのプレイヤが入室する場合の処理を示したが、3つ目以降の端末装置のプレイヤが当該ロビーに入室する場合の処理は、ステップS4〜S8の処理と同様である。この場合、プレイヤがロビーに入室済みの端末装置におけるロビー処理の実行中に、ステップS4〜S8の処理が実行されることで、新たなプレイヤがロビーに入室する。
本実施形態において、サーバ10は、ロビーに入室可能なプレイヤの数を制限する。本実施形態においては、サーバ10は、プレイヤがロビーに入室中の端末装置の数を所定の入室可能数(ここでは、8つ)を上限とするように、ロビーのマッチングを行う。つまり、プレイヤがロビーに入室中の端末装置の数が上記入室可能数に達しているロビーに対しては、新たなプレイヤを入室させないように、ロビーのマッチングが行われる。なお、詳細は後述するが、本実施形態においては、1つの端末装置を用いて2人のプレイヤがロビーに入室可能である。そのため、ロビーには16人のプレイヤが入室可能である。このように、本実施形態では、サーバ10は、プレイヤがロビーに入室中の端末装置の数に制限を設けるが、他の実施形態においては、ロビーに入室中のプレイヤの数に制限を設けるようにしてもよい。
また、ロビーに入室しているプレイヤがロビーを退室するための方法は、任意である。例えば、退室するプレイヤの端末装置1は、当該プレイヤのプレイヤ識別情報を含む退室要求をサーバ10へ送信する。退室要求を受信したサーバ10は、退室するプレイヤのプレイヤ識別情報を削除するように、ロビー設定情報を更新する。また、サーバ10は、退室したプレイヤのプレイヤ識別情報を含む退室通知を、ロビーに入室中の各端末装置へ送信する。なお、退室するプレイヤの端末装置1は、他の端末装置(例えば、後述する親端末装置)へ送信してもよい。このとき、当該他の端末装置は、退室するプレイヤのプレイヤ識別情報を含む退室要求をサーバ10へ送信する。
なお、本実施形態において、ロビーを作成するための方法、および、プレイヤを入室または退室させるための方法は、任意であり、上記の方法とは異なる他の方法が用いられてもよい(従来の方法が用いられてもよい)。例えば、他の実施形態においては、端末装置は、入室を希望するロビーに関する条件を含むロビー入室要求をサーバ10に送信してもよく、このとき、当該条件を満たすロビーが入室先として決定されてもよい(例えば、後述する“(4−1.ロビーの設定に関する変形例)” を参照)。また例えば、他の実施形態においては、ロビーの作成、入室と退室の管理、および、ロビーのマッチングに関する処理は、サーバ10に代えて、端末装置において実行されてもよい(例えば、図26参照)。
(2−2.ロビーからプレイ可能なゲーム)
図12は、ロビー内のプレイヤがプレイ可能なゲーム群(換言すれば、ロビーからプレイ可能なゲーム群)の一例を示す図である。図12に示すように、本実施形態においては、ロビー内のプレイヤがプレイ可能なゲームは、複数種類用意されている。なお、本実施形態においては、用意されるゲームは、複数人プレイのゲームである。図12に示す例では、ゲームG1は、参加人数が2人の、対戦形式のゲーム(例えば、プレイヤキャラクタ同士が戦うゲーム)である。また、ゲームG2は、参加人数が2人の、各プレイヤが協力して敵を倒す形式のゲーム(例えば、プレイヤキャラクタが協力して敵キャラクタを倒すゲーム)である。また、ゲームG3は、参加人数が3人の、各プレイヤが獲得ポイントを競う形式のゲーム(例えば、的を撃ってポイントを獲得するミニゲーム)である。このように、本実施形態においては、ロビーからプレイ可能なゲームとして、参加人数が異なる複数のゲーム(換言すれば、ゲーム群)が用意されている。詳細は後述するが、本実施形態においては、上記ゲーム群からゲームが選択されるとともに、当該ゲームに参加するプレイヤがロビー内から選択される。
なお、図12においては、参加人数が2人または3人のゲームを示しているが、ロビー内のプレイヤがプレイ可能なゲーム群は、参加人数が4人以上のゲームを含んでいてもよい。また、上記ゲーム群には、参加人数に幅があるゲーム(例えば、参加人数が2〜4人のゲーム)が含まれていてもよい。なお、上記ゲーム群に含まれる各ゲームの参加人数は、ロビーに入室可能なプレイヤの数よりも小さい数に設定される。また、ゲームの種類(換言すれば、形式)は任意であり、上記ゲーム群には、互いに異なる種類のゲームが含まれていてもよいし、同じ種類のゲームのみが含まれていてもよい。
本実施形態においては、端末装置がアクセス可能な記憶部(例えば、フラッシュメモリ84、または、第1スロット23に装着される記憶媒体)に記憶されるゲームプログラムに、上記ゲーム群の各ゲーム処理(および、後述する1人用ゲームのゲーム処理)を実行するためのプログラムが含まれている。上記ゲーム群に含まれるゲームを行う場合、端末装置1は、上記プログラムを実行する。
(2−3.ロビーからプレイされるゲームの決定)
次に、ロビーからプレイされるゲームと、そのゲームに参加するプレイヤとを選択(決定とも言う)する処理(「ゲーム選択処理」と呼ぶ)について説明する。本実施形態においては、ロビーに入室中のプレイヤの端末装置のうちの1つが、親端末装置に設定される。本実施形態においては、親端末装置が上記ゲーム選択処理を実行する。なお、親端末装置の設定方法は任意である。本実施形態においては、上述のロビー作成要求を行った端末装置(例えば、図11に示す端末装置1a)が、親端末装置に設定されるものとする。すなわち、ロビー作成要求を行った端末装置は、その後、親端末装置としてロビー処理を実行する。
なお、親端末装置のプレイヤがロビーから退出した場合、親端末装置以外の他の端末装置(「子端末装置」と呼ぶ)から1つの端末装置が、新たな親端末装置に設定される。新たな親端末装置の設定方法は任意であり、例えば、ロビーに入室した順序に基づいて新たな親端末装置が設定されてもよい。
以下、図13〜図17を参照して、あるロビーに関してゲーム選択処理が実行される具体例について説明する。図13〜図17は、ロビーにおけるプレイヤの状態の一例を示す図である。ロビーに入室中のプレイヤは、ゲームをプレイ中の状態、または、ゲームをプレイしていない待機中の状態をとり得る。
図13に示す状態(a)は、プレイヤP1によって設定されたロビーに、プレイヤP2が新たに入室した状態である。本実施形態において、親端末装置は、上記のゲーム選択処理において、ロビーに入室中のプレイヤのうちで待機中のプレイヤの人数に応じて、開始すべきゲーム(および参加プレイヤ)を決定する。具体的には、状態(a)では、2人のプレイヤが待機中であるので、親端末装置は、用意されるゲーム群(図12参照)のうちから、参加人数が2人のゲームを選択する。また、親端末装置は、選択したゲームの参加プレイヤとして、待機中である2人のプレイヤP1およびP2を選択する。なお、ゲーム選択処理におけるゲームの選択方法(すなわち、ゲーム群から、開始すべきゲームを選択する方法)について詳細は後述するが、本実施形態においては、ゲーム群に含まれる各ゲームがまんべんなくプレイされるように、ゲームが選択される。また、各プレイヤがまんべんなく他のプレイヤとゲームをプレイするように、参加プレイヤが選択される。
以上のようにして、ゲーム選択処理によってゲームおよび参加プレイヤが選択されると、参加プレイヤの各端末装置において当該ゲームのゲーム処理の実行が開始される。図13に示す状態(b)は、プレイヤP1とプレイヤP2とが参加するゲームG1がプレイ中である状態である。
図14に示す状態(c)は、状態(b)の後、ゲームG1のプレイ中に、新たなプレイヤP3およびプレイヤP4がロビーに入室した状態である。状態(c)では、2人のプレイヤP3およびプレイヤP4が待機中である。そのため、親端末装置は、用意されるゲーム群のうちから、参加人数が2人のゲームを選択する。ここでは、ゲームG1とは異なるゲームG2が選択され、選択したゲームG2の参加プレイヤとして、待機中である2人のプレイヤP3およびP4が選択されるものとする。その結果、プレイヤP3およびP4の各端末装置においてゲームG2のゲーム処理の実行が開始される。図14に示す状態(d)は、プレイヤP1とプレイヤP2とが参加するゲームG1がプレイ中であり、プレイヤP3とプレイヤP4とが参加するゲームG2がプレイ中である状態である。このように、本実施形態においては、1つのロビー内において、あるゲームのプレイ中に他のゲームについてのマッチングが行われることがあり、また、異なるゲームが同時にプレイされる(換言すれば、異なる端末装置において、異なるゲームのゲーム処理が実行される)ことがある。
図15に示す状態(e1)は、状態(d)の後、新たなプレイヤP5がロビーに入室し、ゲームG1が終了した状態である。なお、本実施形態において、ゲームが終了する条件は任意である。例えば、対戦形式のゲームであれば、一方のプレイヤキャラクタが倒されたこと、あるいは、ゲーム開始からの時間が制限時間に達したこと等に応じて、ゲームが終了する。また例えば、各プレイヤが協力して敵を倒す形式のゲームであれば、プレイヤキャラクタが全て倒されたこと、敵を倒したこと、あるいは、ゲーム開始からの時間が制限時間に達したこと等に応じて、ゲームが終了する。また、各プレイヤが獲得ポイントを競う形式のゲームであれば、プレイヤキャラクタのいずれかが所定のポイントを獲得したこと、あるいは、ゲーム開始からの時間が制限時間に達したこと等に応じて、ゲームが終了する。
本実施形態においては、ゲームが終了すると、親端末装置は、ゲームをプレイしていた各プレイヤについて、ロビーに入室中である状態を維持し、ロビー内において待機中の状態とする(見かけ上は、プレイヤをロビーに再入室させている、と言うこともできる。)。これによれば、ゲームの終了後にプレイヤは、ロビーへ入室する指示(すなわち、上記ロビー入室要求を行うための指示)を再度行う必要がないので、プレイヤの手間を省くことができる。
状態(e1)では、3人のプレイヤP1、プレイヤP2、およびプレイヤP5が待機中である。そのため、親端末装置は、用意されるゲーム群のうちから、参加人数が3人のゲームを選択する。ここでは、参加人数が3人のゲームG3が選択され、選択したゲームG3の参加プレイヤとして、待機中である3人のプレイヤP1,P2,およびP5が選択される。その結果、プレイヤP1,P2,およびP5の各端末装置においてゲームG3のゲーム処理の実行が開始される。図15に示す状態(f1)は、プレイヤP3とプレイヤP4とが参加するゲームG2がプレイ中であり、プレイヤP1とプレイヤP2とプレイヤP5とが参加するゲームG3がプレイ中である状態である。
上記のように、本実施形態においては、親端末装置は、複数のゲーム群から、待機中の状態であるプレイヤの人数に応じてゲームを自動的に(すなわち、プレイヤがゲームを指定することなく)選択し、当該待機中のプレイヤから、選択したゲームの参加プレイヤを自動的に(すなわち、プレイヤが参加プレイヤを指定することなく)選択する。例えば、上記状態(a)では、待機中のプレイヤが2人であるので、参加人数が2人のゲームが選択され、上記状態(e1)では、待機中のプレイヤが3人であるので、参加人数が3人のゲームが選択される。このように、本実施形態においては、待機中のプレイヤの人数に応じた参加人数のゲームが選択される。これによれば、プレイヤが、ゲームの参加人数が揃うまで待ち続けなければならない状況を生じにくくすることができ、プレイヤに与えられる待ち時間を軽減することができる。
(終了間近であるゲームの判定)
一方、図16に示す状態(e2)は、状態(d)の後、新たなプレイヤP5がロビーに入室し、ゲームG1が終了した状態であって、かつ、ゲームG2が終了間近である状態である。状態(e2)は、ゲームG2が終了間近である点で、状態(e1)とは異なっている。ここで、ゲームが終了間近である状態とは、例えば、下記の状態である。
・いずれかのプレイヤキャラクタの体力が所定量以下となっている状態
・ゲームの制限時間が経過するまでの残り時間が所定時間以下となっている状態
・いずれかのプレイヤキャラクタの獲得ポイントが所定量以上となっている状態
詳細は後述するが、本実施形態においては、親端末装置は、ゲーム状況(例えば、プレイヤキャラクタの体力、残り時間、獲得ポイント等)に基づいて、ゲームが終了間近であるか否かを判定する。上記状態(e2)は、ゲームG2が終了間近であると親端末装置によって判定された状態である。
上記状態(e2)のように、ゲームが終了間近であると判定される場合、親端末装置は、状態(e1)とは異なり、ゲーム選択処理の実行を待機する。そして、終了間近であると判定されたゲームの終了後に、親端末装置はゲーム選択処理を実行する。具体的には、状態(e2)の後、ゲームG2が終了すると、5人のプレイヤG1〜G5が待機中となる。そのため、親端末装置は、待機中のプレイヤの人数に応じて、ゲームと参加プレイヤとを選択する。ここでは、親端末装置は、参加人数が2人のゲームG4を選択するとともに、ゲームG4の参加プレイヤとしてプレイヤP1とプレイヤP3とを選択し、さらに、参加人数が3人のゲームG5を選択するとともに、ゲームG5の参加プレイヤとしてプレイヤP2とプレイヤP4とプレイヤP5とを選択する。その結果、プレイヤP1およびP3の各端末装置においてゲームG4のゲーム処理の実行が開始され、また、プレイヤP2,P4およびP5の各端末装置においてゲームG5のゲーム処理の実行が開始される。図15に示す状態(f2)は、プレイヤP1とプレイヤP3とが参加するゲームG4がプレイ中であり、プレイヤP2とプレイヤP4とプレイヤP5とが参加するゲームG5がプレイ中である状態である。
上記のように、本実施形態においては、親端末装置は、終了が近いゲームがあると判定された場合、終了が近いと判定されたゲームが終了するまで新たなゲームの選択を行わず、終了が近いと判定されたゲームの終了後に新たなゲームの選択を行う。ここで、上記状態(f2)においては、状態(f1)に比べて、プレイヤは、これまでプレイしていない他のプレイヤとゲームをプレイしていることがわかる。このように、本実施形態においては、終了が近いと判定されたゲームが終了してから新たなゲームの選択を行うことによって、ゲームおよび参加プレイヤの選択のバリエーションを増やすことができ、それによってより好ましい選択を行うことが可能となる。
図17は、ペアのプレイヤがロビーに入室している状態の一例を示す図である。上述のように、本実施形態においては、1つの端末装置を2人で用いることが可能であり、1つの端末装置を用いる2人のプレイヤが1つのロビーにそれぞれ入室することが可能である。本実施形態においては、親端末装置は、1つのロビーに入室した、1つの端末装置を用いる2人のプレイヤを「ペアのプレイヤ」として取り扱う。ペアのプレイヤについては、次のようにゲーム選択処理が実行される。
本実施形態においては、親端末装置は、例えば図17に示す状態(g1)のように、ペアのプレイヤの両方が1つのゲームに参加するように、ゲームおよび参加プレイヤを決定することが可能である。図17に示す状態(g1)は、プレイヤP1と、プレイヤP3と、ペアのプレイヤP6およびP7とが参加するゲームG6がプレイ中であり、プレイヤP2とプレイヤP4とプレイヤP5とが参加するゲームG5がプレイ中である状態である。
また、親端末装置は、例えば図17に示す状態(g2)のように、ペアのプレイヤの一方が1つのゲームに参加するように、ゲームおよび参加プレイヤを決定することも可能である。図17に示す状態(g2)は、プレイヤP1と、プレイヤP3と、ペアのプレイヤのうち一方であるプレイヤP6とが参加するゲームG7がプレイ中であり、プレイヤP2とプレイヤP4とプレイヤP5とが参加するゲームG5がプレイ中である状態である。なお、ペアのプレイヤの一方をゲームに参加するようにゲームおよび参加プレイヤを決定する場合、親端末装置は、ペアのプレイヤがそれぞれ実質的に均等にゲームに参加するように、参加プレイヤを決定する。例えば、上記の場合、親端末装置は、ペアのプレイヤを交互にゲームに参加させるように、参加プレイヤを決定する。
また、親端末装置は、ペアのプレイヤの一方があるゲームに参加している間に、他方のプレイヤが他のゲームに参加するように、ゲームおよび参加プレイヤを決定することはない。例えば、状態(g2)において、プレイヤP7がゲームG7とは異なるゲームに参加するようにゲーム選択処理が実行されることはない。これによれば、1つの端末装置において、同時に2つの異なるゲームのゲーム処理が実行されることを避けることができ、端末装置における処理負荷の軽減を図ることができる。
(2−4.ロビー画像の表示例)
次に、図18〜図21を参照して、端末装置1のディスプレイ12に表示されるロビー画像について説明する。ロビー画像は、ロビーの状態を示す画像であり、具体的には、ロビーに入室しているプレイヤ、および、当該プレイヤの状態を示す。本実施形態においては、プレイヤが待機中である状態において、当該プレイヤの端末装置にロビー画像が表示される。なお、プレイヤがゲームのプレイ中(ただし、後述する1人用ゲームのプレイ中を除く)においては、当該プレイヤの端末装置にはゲーム画像が表示される。
図18は、ロビー画像の一例を示す図である。なお、図18は、図15に示す状態(e1)において表示されるロビー画像を示す。図18に示すように、ロビー画像は、プレイヤアイコン141〜145と、ゲームアイコン132とを含む。
プレイヤアイコンは、ロビーに入室中のプレイヤを示す画像である。プレイヤアイコンは、ロビーに入室中のプレイヤ毎に生成されて表示される。すなわち、図18に示す例では、ロビー画像は、プレイヤP1〜P5の5人のプレイヤのそれぞれを示す5つのプレイヤアイコン141〜145を含む。本実施形態においては、プレイヤアイコンは、プレイヤ名を示す画像(例えば、図18中における「P1」)を含む。また、プレイヤアイコンは、プレイヤが操作するプレイヤキャラクタの画像(具体的には、キャラクタの顔を示す画像)を含む。プレイヤアイコンは、プレイヤを識別可能な任意の画像でよい。例えば、他の実施形態においては、プレイヤアイコンは、プレイヤのアバターの画像を含んでいてもよい。
ゲームアイコンは、ロビーからプレイ中(換言すれば、ゲーム処理が実行中)のゲームを示す画像である。図18に示す例では、ゲームG2がプレイ中であるので、ロビー画像は、ゲームG2を示すゲームアイコン132を含む。なお、ゲームアイコンは、ロビーからプレイ中のゲーム毎に生成されて表示される(図19参照)。
本実施形態においては、図18に示すように、ゲームに参加しているプレイヤのプレイヤアイコン(図18においては、プレイヤアイコン143および144)は、当該ゲームのゲームアイコン(図18においては、ゲームアイコン132)に関連付けて表示される。具体的には、ゲームに参加しているプレイヤのプレイヤアイコンは、当該ゲームのゲームアイコンに接触して(換言すれば、合体して)表示される。なお、プレイヤアイコンとゲームアイコンとを関連付けて表示するための表示態様は任意である。例えば、他の実施形態においては、ゲームアイコンと、それに関連付けられるプレイヤアイコンとが線によって接続されて表示されてもよい。
一方、図18に示すように、待機中のプレイヤのプレイヤアイコン(図18においては、プレイヤアイコン141,142,および145)は、ゲームアイコンには関連付けられずに表示される。
上記のように、本実施形態においては、ロビーからゲームが実行されている場合、ロビー画像は、プレイ中のゲームを示すゲームアイコン132に対して、当該プレイ中のゲームの参加プレイヤを示すプレイヤアイコン143および144が関連付けられた画像と、待機中のプレイヤを示すプレイヤアイコン141,142,および145とを含む。これによれば、端末装置は、ロビーからプレイ中のゲームと、当該ゲームの参加プレイヤと、ロビー内において待機中のプレイヤとを、ロビー画像によってプレイヤにわかりやすく提示することができる。
図18に示すように、ロビーからゲームが実行されている場合、ロビー画像は、ゲーム状況画像153および154を含む。ゲーム状況画像は、ゲームをプレイ中のプレイヤに関するゲーム状況を示す。図18に示す例においては、ゲーム状況画像153および154は、プレイヤがゲーム中において操作するプレイヤキャラクタの体力を示すゲージ画像である。なお、ゲーム状況画像が示すゲーム状況の具体的な内容は任意である。ゲーム状況画像は、プレイヤキャラクタの状態(例えば、上記体力や、プレイヤキャラクタが獲得したポイント等)を示すものであってもよいし、ゲームの残り時間を示すものであってもよい。また、後述するように、ゲーム状況画像が示すゲーム状況は、ゲームに応じて異なっていてもよい(図19参照)。
また、ゲーム状況画像は、ゲームをプレイ中のプレイヤのプレイヤアイコンに関連付けて表示される。図18に示す例においては、プレイヤP3に関するゲーム状況を示すゲーム状況画像153が、当該プレイヤP3のプレイヤアイコン143に関連付けて表示され、プレイヤP4に関するゲーム状況を示すゲーム状況画像154が、当該プレイヤP4のプレイヤアイコン144に関連付けて表示される。なお、本実施形態においては、プレイヤアイコンとゲーム状況画像とは互いに近接して表示されることによって関連付けて表示される。なお、プレイヤアイコンとゲーム状況画像とを関連付けて表示する具体的な方法は任意である。
上記のように、本実施形態においては、ロビー画像は、プレイ中のゲームの参加プレイヤに関する情報(例えば、プレイヤアイコンにより示される情報)と、当該ゲームの状況に関する情報(例えば、ゲーム状況画像により示される情報)とを少なくとも含む。これによれば、ゲームをプレイしていない他のプレイヤ(つまり、ロビー画像が表示される端末装置のプレイヤ)に対して、プレイ中のゲームの状況を知らせることができる。
なお、他の実施形態においては、上記「ゲームの状況に関する情報」は、ゲーム状況画像によって示される情報に限らず、他の画像によって示されてもよい。例えば、他の実施形態においては、端末装置は、プレイヤアイコンを用いて、ゲームの状況に関する情報をプレイヤに提示するようにしてもよい。具体的には、端末装置は、ゲーム中におけるプレイヤキャラクタの状況に応じて、プレイヤキャラクタに対応するプレイヤアイコンの表示態様を変化させるようにしてもよい。例えば、端末装置は、プレイヤキャラクタが攻撃を受けた場合に、当該プレイヤキャラクタに対応するプレイヤアイコンを振動するように動かして表示したり、プレイヤキャラクタの体力に応じてプレイヤアイコンの色を変化させて表示したりしてもよい。
図19は、ゲームが新たに開始される際において表示されるロビー画像の一例を示す図である。なお、図19は、上記状態(e1)から状態(f1)となる場合、すなわち、ゲームG3がプレイヤP1,P2,P5によって開始される場合に表示されるロビー画像の一例を示している。
状態(e1)において、ゲームG3が新たに開始されることが決定されると、端末装置(ここでは、プレイヤP1,P2,およびP5の端末装置)は、ゲームG3のゲームアイコン133が出現するロビー画像を生成して表示する(図19(a))。次に、上記端末装置は、プレイヤP1,P2,およびP5の各プレイヤアイコン141,142,および145がそれぞれ、ゲームG3のゲームアイコン133に近づくように移動する動画(換言すれば、アニメーション)をロビー画像として生成して表示する。
さらに、上記端末装置は、各プレイヤアイコン141,142,および145がそれぞれ、ゲームG3のゲームアイコン133に関連付けられたロビー画像を生成して表示する(図19(b))。このとき、各プレイヤアイコン141,142,および145に対して、それぞれ、ゲーム状況画像151,152,および155が関連付けられて表示される。なお、本実施形態においては、ゲームG3は、プレイヤキャラクタが所定数のポイントを獲得すると勝利となるゲームである。そのため、ゲーム状況画像151,152,および155は、それぞれ、対応するプレイヤキャラクタの現時点での獲得ポイント(現時点では、開始前なので、それぞれ「0」である)を示す。
なお、図19(b)に示すロビー画像が表示された後、プレイヤP1,P2,およびP5の端末装置では、ロビー画像がゲームG3のゲーム画像に切り替わり、ゲームG3のゲーム処理が開始される。
上記のように、本実施形態においては、端末装置は、ゲームおよび参加プレイヤが選択されると、選択されたゲームを示すゲームアイコンに対して、選択された参加プレイヤを示すプレイヤアイコンが関連付けられる画像(換言すれば、動画)を生成する(図19)。これによって、次に開始されるゲームと、そのゲームに参加するプレイヤとを、ロビー画像を見るプレイヤに対してわかりやすく認識させることができる。
図20は、ペアのプレイヤが入室している場合に表示されるロビー画像の一例を示す図である。本実施形態においては、ペアのプレイヤのプレイヤアイコンは、互いに関連付けられて表示される。具体的には、図20に示すように、ペアのプレイヤP6およびP7のプレイヤアイコン146および147は、一体化した表示態様で表示される。なお、ペアのプレイヤのプレイヤアイコンを関連付けて表示する具体的な方法は任意である。また、本実施形態においては、ペアのプレイヤのプレイヤアイコンは、互いに一体化した状態のままで移動する。
上記のように、本実施形態においては、端末装置は、単一の端末装置を操作する複数のプレイヤ(すなわち、ペアのプレイヤ)を示すそれぞれのプレイヤアイコンを互いに関連付けた画像を生成する。これによれば、ペアのプレイヤであるかそうでないプレイヤであるかを、ロビー画像を見るプレイヤに対してわかりやすく認識させることができる。なお、本実施形態においては、ゲーム選択処理におけるゲームの選択方法が、待機中のプレイヤのうちにペアのプレイヤが存在するか否かによって異なる(後述するステップS14。)。したがって、ペアのプレイヤであるかそうでないプレイヤであるかを各プレイヤに対してわかりやすく認識させることが有効である。
図20(a)は、ペアのプレイヤの両方がゲームに参加している場合において表示されるロビー画像の一例を示す。図20(a)に示すように、ペアのプレイヤのプレイヤアイコン146および147は、ペアでないプレイヤのプレイヤアイコンと同様、プレイヤがプレイ中のゲームのゲームアイコン136に関連付けられて表示される。ここで、ペアのプレイヤの両方がゲームに参加している場合には、図20(a)に示すように、両方のプレイヤアイコン146および147がそれぞれ同じ表示態様で表示される。また、両方のプレイヤアイコン146および147のそれぞれに対してゲーム状況画像156および157が関連付けられて表示される。
図20(b)は、ペアのプレイヤの一方のみがゲームに参加している場合において表示されるロビー画像の一例を示す。上記の場合も、ペアのプレイヤの両方がゲームに参加している場合と同様、ペアのプレイヤのプレイヤアイコン146および147は、プレイヤがプレイ中のゲームのゲームアイコン136に関連付けられて表示される。ここで、ペアのプレイヤの一方のみがゲームに参加している場合には、ペアのプレイヤのうちでゲームに参加しているプレイヤを識別することができる表示態様で、各プレイヤアイコンが表示される。具体的には、ゲームに参加しているプレイヤのプレイヤアイコン146と、ゲームに参加していないプレイヤのプレイヤアイコン147とが、互いに異なる表示態様で表示される(図20(b)においては、異なる色で表示される。なお、図20(b)においては、色が異なることを斜線で表している。)。また、ゲームに参加しているプレイヤのプレイヤアイコン146に対してゲーム状況画像156が関連付けられて表示され、ゲームに参加していないプレイヤのプレイヤアイコン147に対してはゲーム状況画像が関連付けられずに表示される。
上記のように、本実施形態においては、ペアのプレイヤの両方がゲームに参加する場合と、一方がゲームに参加する場合とで、ペアのプレイヤのプレイヤアイコンの表示態様が異なる。これによって、ペアのプレイヤのうちで誰がゲームに参加しているのかを、ロビー画像を見るプレイヤに対してわかりやすく認識させることができる。
なお、図20に示されるように、単一の端末装置がペアのプレイヤによって用いられる場合であっても(端末装置が1人のプレイヤによって用いられる場合と同様)、当該端末装置は、ディスプレイ12の画面領域を分割せずに、1つのロビー画像をディスプレイ12に表示する。
(1人用ゲーム)
上述のように、本実施形態においては、ゲーム選択処理によって選択されるゲームは、複数人プレイのゲームである。ここで、本実施形態においては、端末装置は、ゲーム選択処理における選択対象となる複数人プレイのゲーム群の他に、待機中のプレイヤがプレイ可能な1人用ゲームを用意する。すなわち、端末装置は、待機中のプレイヤによる指示に応じて、1人用ゲームのゲーム処理を実行する。以下、1人用ゲームについて説明する。
本実施形態においては、端末装置は、自機のディスプレイ12にロビー画像が表示されている場合(すなわち、プレイヤが待機中である場合)、1人用ゲームの開始指示を受け付ける。例えば、ロビー画像は、1人用ゲームの開始指示を示すボタン画像を含んでいてもよく、端末装置は、当該ボタン画像がプレイヤによって選択されることに応じて、1人用ゲームのゲーム処理を開始してもよい。このように、本実施形態においては、ロビーにおいて待機中である場合、プレイヤは、所望により1人用ゲームをプレイすることができるので、待機中の待ち時間においてプレイヤが退屈しにくくすることができる。
本実施形態においては、1人用ゲームは、ゲームプレイ中にプレイヤから終了指示があったことに応じて、終了される。端末装置は、終了指示に応じて1人用ゲームを終了し、その後、ロビー画像をディスプレイ12に表示する。
図21は、1人用ゲームのゲーム画像の一例を示す図である。図21は、プレイヤキャラクタ161が的162を撃つ1人用ゲームのゲーム画像を示している。なお、1人用ゲームの内容は任意であり、複数種類の1人用ゲームが用意されてもよい。
図21に示すように、1人用ゲームのプレイ中においては、1人用ゲームのゲーム画像に加えて、プレイヤアイコン141〜145およびゲームアイコン131および132(ロビー画像と言うこともできる)が表示される。したがって、本実施形態においては、1人用ゲームのプレイ中において、プレイヤは、ロビーの状態を知ることができる。例えば、1人用ゲームのプレイ中において、プレイヤは、ロビー画像によってロビーの状態を知り、ロビーの状態に応じて1人用ゲームを終了することができる。
なお、1人用ゲームをプレイ中のプレイヤは、待機中の状態であるとして管理される。すなわち、1人用ゲームをプレイ中のプレイヤ以外の他のプレイヤの端末装置にロビー画像が表示される場合、当該ロビー画像においては、1人用ゲームをプレイ中のプレイヤのプレイヤアイコンは、待機中を示す(換言すれば、ゲームのプレイ中でない状態を示す)。なお、他の実施形態においては、端末装置は、1人用ゲームのプレイ中であることを示すプレイヤアイコンを表示するようにしてもよい。
また、本実施形態においては、1人用ゲームは、1人用ゲームをプレイするプレイヤの終了指示によって終了する他、当該プレイヤが参加するゲームがゲーム選択処理によって新たに選択された場合にも終了する。なお、この場合は、プレイヤによる終了指示がなくても、端末装置は1人用ゲームのゲーム処理を終了する。したがって、本実施形態においては、プレイヤが待機中に1人用ゲームをプレイしていることが理由でゲームにマッチングされない、ということはない。なお、他の実施形態においては、端末装置は、1人用ゲームを終了する前にプレイヤに対して通知を行うようにしてもよい。このとき、端末装置は、プレイヤに終了指示を促すようにしてもよく、終了指示が行われた場合に1人用ゲームを終了するようにしてもよい。
なお、上記のように、本実施形態においては、1人用ゲームのプレイ中においてプレイヤはロビーの状態を知ることができる(図21)。例えば、1人用ゲームのプレイ中であるプレイヤが参加するゲームがゲーム選択処理によって新たに選択される際には、当該ゲームのゲームアイコンが出現し、当該プレイヤのプレイヤアイコンがゲームアイコンに関連付けられる動画が、1人用ゲームのゲーム画像とともに表示される。したがって、プレイヤは、1人用ゲームが強制的に終了する(つまり、終了指示がなくても終了する)場合であっても、上記プレイヤアイコンの移動によって、1人用ゲームがもうすぐ終了することを知ることができる。
[3.端末装置における処理の具体例]
(3−1.親端末装置における処理)
図22〜図24を参照して、親端末装置として機能する端末装置において実行される情報処理の具体例について説明する。図22は、親端末装置における処理に用いられる情報の一例を示す図である。図22に示す情報は、親端末装置の記憶部(例えば、DRAM85)に記憶される。
図22に示すように、親端末装置はロビー情報を記憶する。ロビー情報は、ロビーの状態(例えば、ロビーに入室しているプレイヤ、当該プレイヤの状態、ロビーからプレイ中のゲーム、および/または、当該ゲームに参加しているプレイヤ等)を示す。本実施形態において、ロビー情報は、入室中のプレイヤに関する、プレイヤ情報、状態情報、および履歴情報を含む。プレイヤ情報、状態情報、および履歴情報は、それぞれが関連付けられてプレイヤ毎に記憶される。上記ロビー情報も、サーバ10に記憶されるロビー設定情報と同様に、複数のゲームをプレイ可能なプレイヤのグループを示すグループ情報であると言える。
プレイヤ情報は、プレイヤを識別可能な情報であり、例えば、上述のプレイヤ識別情報を示す。状態情報は、プレイヤの状態を示し、具体的には、プレイヤが待機中の状態であるか、ゲームをプレイ中の状態であるか、および、プレイ中の場合はどのゲームをプレイ中かを示す。履歴情報は、プレイヤのゲームプレイに関する履歴を示す。本実施形態においては、履歴情報は、入室中のロビーからプレイヤがプレイしたゲームを示す情報(プレイした順番を含む)と、当該ゲームに参加していた他のプレイヤを示す情報とを含む。詳細は後述するが、履歴情報は、ゲーム選択処理において、開始するゲームを選択するために用いられる。
図23は、ロビー情報の具体例を示す図である。なお、図23は、上述の状態(e1)を示すロビー情報の例である。図23において、ロビー情報は、プレイヤP1を示すプレイヤ情報と、待機中を示す状態情報と、ゲームG1をプレイヤP2とプレイした履歴を示す履歴情報とを含む。ロビー情報は、プレイヤP2を示すプレイヤ情報と、待機中を示す状態情報と、ゲームG1をプレイヤP1とプレイした履歴を示す履歴情報とを含む。また、プレイヤP3およびP4について、ロビー情報は、ゲームG2をプレイ中であることを示す状態情報を含み、また、プレイ履歴がないことを示す履歴情報とを含む。プレイヤP5について、ロビー情報は、待機中を示す状態情報と、プレイ履歴がないことを示す履歴情報とを含む。親端末装置は、上記ロビー情報によって、ロビーにおける状態を管理することができる。
図22に示すように、親端末装置はゲーム状況情報を記憶する。ゲーム状況情報は、ロビーからプレイ中のゲームに関する状況を示す。例えば、ゲーム状況情報は、プレイヤキャラクタの体力、プレイヤキャラクタの獲得ポイント、および/またはゲームの残り時間を示す。ゲーム状況情報は、ゲーム毎に記憶され、ゲーム毎に異なる情報を含んでいてもよい。親端末装置は、子端末装置のうちのゲーム管理端末から状況通知情報を受信し、受信した状況通知情報に基づいてゲーム状況情報を更新する。詳細は後述するが、ゲーム管理端末は、各端末装置において行われる複数人プレイのゲームの進行を管理する端末装置である。また、状況通知情報は、ゲームの状況を示す情報を含み、例えば、プレイヤキャラクタの体力、プレイヤキャラクタの獲得ポイント、および/またはゲームの残り時間等の情報を含む。詳細は後述するが、ゲーム状況情報は、ロビー画像に含まれるゲーム状況画像を生成するため等に用いられる。なお、ゲーム状況情報は、対応するゲームが終了した場合には削除される。
図24は、親端末装置によって実行される処理(「親端末処理」と記載する)の流れを示すフローチャートである。なお、図24に示す一連の処理は、上述したサーバ10からのロビー作成通知(ステップS2)を受信したことに応じて開始される(ステップS3)。
なお、本実施形態では、端末装置1のCPU81が図24(または図25)に示す各ステップの処理を実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、CPU以外のプロセッサや専用回路が実行するようにしてもよい。また、図24に示すフローチャート(後述する図25におけるフローチャートについても同様)における各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。
親端末処理においては、まずステップS11において、CPU81は、他の装置からの情報を受信する。すなわち、CPU81は、サーバ10および他の端末装置(すなわち、同じロビーにプレイヤが入室している他の端末装置)から、ネットワーク通信部82を介して情報を受信する。例えば、CPU81は、サーバ10から上述の入室通知を受信する。また、CPU81は、ロビーからゲームがプレイ中である場合には、後述するゲーム管理端末から状況通知情報を受信し、自機においてゲーム処理の実行中である場合には、同じゲームを実行中の他の端末装置から、ゲーム処理に関する情報を受信する。ステップS11の後、ステップS12の処理が実行される。
ステップS12において、CPU81は、記憶部に記憶されているロビー情報およびゲーム状況情報を更新する。ロビー情報は、例えば、ステップS11で受信した情報に基づいて更新される。すなわち、サーバ10から入室通知を受信した場合、CPU81は、新たに入室するプレイヤに関するプレイヤ情報、状態情報、および履歴情報を追加するように、ロビー情報を更新する。また、ゲーム管理端末から状況通知情報を受信した場合において、状態情報および履歴情報の内容に変更が生じるのであれば(例えば、ゲームを終了する旨を示す情報を含む状況通知情報を受信した場合)、CPU81は、これらの情報を変更するようにロビー情報を更新する。なお、上述のように、ゲームを終了する旨を示す情報を含む状況通知情報を受信した場合であっても、CPU81は、ゲームをプレイしていた各プレイヤについて、ロビーに入室中である状態を維持し、ロビー内において待機中の状態とするように、ロビー情報を更新する。また、親端末装置で実行中のゲーム処理によって状態情報および履歴情報の内容に変更が生じる場合も、CPU81は、これらの情報を変更するようにロビー情報を更新する。
また、ゲーム状況情報は、例えば、ステップS11で受信した情報に基づいて更新される。すなわち、ゲーム管理端末から状況通知情報を受信した場合、CPU81は、状況通知情報に基づいて、必要に応じてゲーム状況情報を更新する。また、親端末装置で実行中のゲーム処理によってゲーム状況情報の内容に変更が生じる場合も、CPU81は、ゲーム状況情報を更新する。ステップS12の後、ステップS13の処理が実行される。
ステップS13において、CPU81は、プレイ中のゲームであって、終了間近のゲームがあるか否かを判定する。本実施形態においては、ステップS13の判定は、記憶部に記憶されているゲーム状況情報(例えば、プレイヤキャラクタの体力、プレイヤキャラクタの獲得ポイント、および/または、ゲームの残り時間)に基づいて行われる。すなわち、CPU81は、ゲーム状況情報に基づいて、上記“(終了間近であるゲームの判定)”で述べた「終了間近である状態」であるゲームがあるか否かを判定する。ステップS13の判定結果が否定である場合、ステップS14の処理が実行される。一方、ステップS13の判定結果が肯定である場合、ステップS14およびS15の処理がスキップされて、後述するステップS16の処理が実行される。つまり、終了間近のゲームがある場合には、ゲーム選択処理(ステップS14)がスキップされる。
ステップS14において、CPU81は、上述のゲーム選択処理を実行する。すなわち、ロビーにおいて待機中のプレイヤの人数に基づいて、次に開始されるゲームと、当該ゲームの参加プレイヤが決定される。
本実施形態においては、CPU81は、下記の基準を考慮するようにゲームと参加プレイヤとを決定する。
・1人のプレイヤが残るようなゲームは選択されにくい(例えば、5人のプレイヤが待機中である場合に、参加人数が4人のゲームは選択されにくい)。
・最近一緒にプレイしていないプレイヤ同士が同じゲームをプレイしやすくなるようにゲームおよび参加プレイヤが選択される。
・プレイヤが最近プレイしていないゲームが選択されやすい。
・最近プレイされたゲームと類似するゲーム(例えば、ルールが類似するゲーム)は選択されにくい。
・ペアのプレイヤが待機中である場合は、ペアで参加できるゲームが選択されやすい。
本実施形態においては、CPU81は、ロビー情報に含まれる履歴情報に基づいて上記基準を考慮する。なお、CPU81は、ゲーム選択処理における選択にランダム性を持たせてもよい。すなわち、CPU81は、上記基準を考慮しつつ、乱数を用いてゲームおよび参加プレイヤを選択するようにしてもよい。
上記のように、本実施形態においては、親端末装置は、ロビーに入室中の状態において複数のプレイヤがプレイしたゲームに関する履歴に基づいてゲームを選択する。これによれば、プレイヤにとってより好ましいゲームを選択することができる。例えば、同じゲームばかりが選択されることによってプレイヤがゲームに飽きてしまう可能性を低減することができる。また例えば、ロビーにおいて用意されたゲーム群をまんべんなくプレイヤに提供することができる。
なお、上記ステップS14において、CPU81は、上記の基準を考慮した場合に、選択すべき適切なゲームが無いと判断する場合は、ゲーム(および参加プレイヤ)を選択せずにステップS14の処理を終了してもよい。この場合、次にゲームが終了したことに応じて、ゲームおよび参加プレイヤが選択されることとなる。これによれば、適切でないゲームおよび参加プレイヤの組み合わせが選択される可能性を低減することができる。
なお、CPU81は、次にゲームが終了するまでの待ち時間が長くなるか否かを判定してもよい。そして、待ち時間が長くなると判定される場合は、(選択すべき適切なゲームが無いと判断する場合であっても)ステップS14においてゲームおよび参加プレイヤを選択してもよい。一方、待ち時間が長くなると判定されない場合(かつ、選択すべき適切なゲームが無いと判断する場合には)、ステップS14においてゲームおよび参加プレイヤを選択しないようにしてもよい。なお、待ち時間が長くなるか否かの判定は、終了間近のゲームがあるか否かの判定(ステップS13)と同様に、ゲーム状況情報に基づいて行うことができる。上記のように、ゲーム選択処理において考慮される基準は、待ち時間が長くなるか否かの判定結果に応じて(換言すれば、待ち時間に応じて)変更されてもよい。
なお、ステップS14において、待機中のプレイヤの人数が0人または1人の場合、CPU81は、ゲームおよび参加プレイヤの決定を行わない。この場合、CPU81は、ステップS14およびS15の処理を実行せずに、ステップS16の処理に進む。
また、ステップS14において、ゲームおよび参加プレイヤが決定された場合、CPU81は、決定された内容を反映するように、記憶部に記憶されているロビー情報を更新する。以上のステップS14の後、ステップS15の処理が実行される。
ステップS15において、CPU81は、ステップS14で決定されたゲームに関するゲーム管理端末を設定する。上述のように、ゲーム管理端末は、各端末装置において行われる複数人プレイのゲームの進行を管理する端末装置である。例えば、ゲーム管理端末は、ゲームの進行に用いられるデータを管理(換言すれば、記憶)する。なお、上記データは、各端末装置におけるゲーム処理に用いられるデータであって、例えば、残り時間、各プレイヤキャラクタの体力、および、各プレイヤキャラクタの獲得ポイント等のデータである。ゲームを行う各端末装置は、ゲーム管理端末において管理されるデータに基づいてゲーム処理を実行する。なお、上記ステップS14でゲームが決定されていない場合、ステップS15においてはゲーム管理端末は設定されない。
本実施形態においては、ステップS14で決定されたゲームに参加するプレイヤの各端末装置のうちから1つの端末装置がゲーム管理端末として選択される。ここで、ステップS14で決定されたゲームに親端末装置のプレイヤが参加しない場合には、CPU81は、ゲームに参加するプレイヤの各端末装置のうちから1つの端末装置をゲーム管理端末に設定する。この場合におけるゲーム管理端末の選択方法は任意であり、ゲーム管理端末は、ランダムに決定されてもよいし、所定の条件(例えば、ロビーに入室した順序)に基づいて決定されてもよい。
なお、ステップS14で決定されたゲームに親端末装置のプレイヤが参加する場合には、CPU81は、自機(すなわち、親端末装置)をゲーム管理端末に設定してもよい。これによれば、親端末装置は、子端末装置から状況通知情報を取得しなくてもよいので、端末装置間の通信量を低減することができる。また、他の実施形態においては、ステップS14で決定されたゲームに親端末装置のプレイヤが参加する場合であっても、CPU81は、子端末装置からゲーム管理端末を選択してもよい。これによれば、親端末装置における処理負荷を軽減することができる。ステップS15の後、ステップS16の処理が実行される。
ステップS16において、CPU81は、各種の情報を子端末装置へ情報を送信する。具体的には、CPU81は、ロビー画像の生成に用いられる情報を、プレイヤがロビーに入室中である各子端末装置へ送信する。具体的には、CPU81は、上記ステップS12および/またはS14で更新されたロビー情報に含まれるプレイヤ情報および状態情報と、上記ステップS12で更新されたゲーム状況情報とを各子端末装置へ送信する。
また、ステップS14でゲームが決定された場合には、CPU81は、当該ゲームの参加プレイヤの子端末装置へ、ゲームを開始する旨の要求(ゲーム開始要求と呼ぶ)を送信する。上記の場合、さらに、CPU81は、ステップS15でゲーム管理端末に設定された子端末装置へ、ゲーム管理端末として動作する旨の要求(ゲーム管理要求と呼ぶ)をゲーム開始要求とともに送信する。ステップS16の後、ステップS17の処理が実行される。
ステップS17において、CPU81は、自機(すなわち、親端末装置)においてゲームを開始するか否かを判定する。ステップS17の判定は、例えば、ステップS14で決定した参加プレイヤに自機のプレイヤが含まれるか否かを判定することによって行われる。ステップS17の判定結果が肯定である場合、ステップS18の処理が実行される。一方、ステップS17の判定結果が否定である場合、ステップS18の処理がスキップされて、後述するステップS19の処理が実行される。
ステップS18において、CPU81は、ステップS14で決定されたゲームのゲーム処理を開始する。すなわち、CPU81は、第1スロット23に装着される記憶媒体から、当該ゲームのゲーム処理を実行するためのプログラムを読み出し、プログラムの実行を開始する。なお、このとき、1人用ゲームのゲーム処理を実行中である場合は、CPU81は、1人用ゲームのゲーム処理の実行を終了する。ステップS18の後、ステップS19の処理が実行される。
ステップS19において、CPU81は、自機においてゲーム処理の実行中(換言すれば、ゲームプレイ中)であるか否かを判定する。すなわち、CPU81は、上記ステップS18で開始されたゲーム処理の実行中、または、1人用ゲームのゲーム処理の実行中であるか否かを判定する。ステップS19の判定結果が否定である場合、ステップS20の処理が実行される。一方、ステップS19の判定結果が肯定である場合、後述するステップS23の処理が実行される。
ステップS20において、CPU81は、ロビー画像をディスプレイ12に表示する。すなわち、CPU81は、記憶部に記憶されるロビー情報およびゲーム状況情報に基づいてロビー画像を生成し、生成したロビー画像をディスプレイ12に表示する。なお、本実施形態においては、ロビー画像が表示される場合(すなわち、端末装置のプレイヤが待機中であって、1人用ゲームがプレイされていない場合)には、ステップS20の処理が所定時間(すなわち、1フレーム時間)に1回の割合で実行される。ステップS20の後、ステップS21の処理が実行される。
ステップS21において、CPU81は、1人用ゲームを開始するか否かを判定する。ここで、CPU81は、本体装置2の入力部(すなわち、タッチパネルおよびボタン)から取得されるデータ、および、コントローラから受信される操作データに基づいて、プレイヤによる操作(換言すれば、指示)を判別する。ステップS21において、CPU81は、1人用ゲームの開始指示がプレイヤによって行われたか否かを判定する。ステップS21の判定結果が肯定である場合、ステップS22の処理が実行される。一方、ステップS21の判定結果が否定である場合、上記ステップS11の処理が再度実行される。
ステップS22において、CPU81は、1人用ゲームのゲーム処理を開始する。すなわち、CPU81は、第1スロット23に装着される記憶媒体から、1人用ゲームのゲーム処理を実行するためのプログラムを読み出し、プログラムの実行を開始する。ステップS22の後、上記ステップS11の処理が再度実行される。
一方、ステップS23において、CPU81は、ゲーム処理を実行する。すなわち、CPU81は、ステップS18でゲーム処理(すなわち、複数人プレイゲームのゲーム処理)が開始された後は、当該ゲーム処理を実行し、ステップS22で1人用ゲームのゲーム処理が開始された後は、当該1人用ゲームのゲーム処理を実行する。なお、本実施形態においては、ステップS19の判定結果が肯定となる期間においては、ステップS23の処理は、所定時間(すなわち、1フレーム時間)に1回の割合で実行される。
なお、ステップS23において、複数人プレイゲームのゲーム処理が実行される場合、ゲーム画像が生成されてディスプレイ12に表示される。この場合、ロビー画像は生成・表示されない。一方、ステップS23において、1人用ゲームのゲーム処理が実行される場合、ゲーム画像およびロビー画像が生成されてディスプレイ2に表示される(図21)。ステップS23の後、上記ステップS11の処理が再度実行される。
(3−2.子端末装置における処理)
図25は、子端末装置によって実行される処理(「子端末処理」と記載する)の流れを示すフローチャートである。なお、図25に示す一連の処理は、上述したサーバ10からの入室通知(ステップS6)を受信したことに応じて開始される。
ステップS31において、CPU81は、他の装置からの情報を受信する。ステップS31の処理は、上記ステップS11の処理と同様である。ただし、ステップS31を実行する端末装置は子端末装置である。したがって、CPU81は、上記ステップS16の処理によって親端末装置から送信されてくる情報を受信する。また、ステップS31においては、CPU81は、ゲーム管理端末から状況通知情報を受信することはない。ステップS31の後、ステップS32の処理が実行される。
ステップS32において、CPU81は、自機においてゲームを開始するか否かを判定する。ステップS32の判定は、ステップ31において親端末装置からの上記ゲーム開始要求が受信されたか否かによって行われる。ステップS32の判定結果が肯定である場合、ステップS33の処理が実行される。一方、ステップS32の判定結果が否定である場合、ステップS33の処理がスキップされて、後述するステップS34の処理が実行される。
ステップS33において、CPU81は、ステップS31で受信したゲーム開始要求に係るゲームのゲーム処理を開始する。ステップS33の処理は、上記ステップS18の処理と同様である。なお、ステップS33においてもステップS18と同様、1人用ゲームのゲーム処理を実行中である場合、CPU81は、1人用ゲームのゲーム処理の実行を終了する。ステップS33の後、ステップS34の処理が実行される。
ステップS34において、CPU81は、自機においてゲーム処理の実行中(換言すれば、ゲームプレイ中)であるか否かを判定する。すなわち、CPU81は、上記ステップS33で開始されたゲーム処理の実行中、または、1人用ゲームのゲーム処理の実行中であるか否かを判定する。ステップS34の判定結果が否定である場合、ステップS35の処理が実行される。一方、ステップS34の判定結果が肯定である場合、後述するステップS38の処理が実行される。
ステップS35において、CPU81は、ロビー画像をディスプレイ12に表示する。すなわち、CPU81は、上記ステップS31で親端末装置から受信した情報(すなわち、ロビー情報に含まれるプレイヤ情報および状態情報と、ゲーム状況情報)に基づいてロビー画像を生成し、生成したロビー画像をディスプレイ12に表示する。なお、本実施形態においては、ロビー画像が表示される場合(すなわち、端末装置のプレイヤが待機中である場合)であって、1人用ゲームがプレイされていない場合には、ステップS35の処理が所定時間(すなわち、1フレーム時間)に1回の割合で実行される。ステップS35の後、ステップS36の処理が実行される。
上記のように、本実施形態においては、親端末装置から子端末装置へ、ロビー画像を生成するための情報が送信される。すなわち、親端末装置は、ロビーの状態を示す情報を子端末装置へ送信し、子端末装置は、親端末装置から送信される情報に基づいてロビー画像を生成する。これによれば、親端末装置において管理されるロビーの状態を反映したロビー画像を子端末装置において表示することができる。すなわち、各端末装置におけるプレイヤに対してロビーの状態を提示することができる。
なお、親端末装置において表示されるロビー画像と、子端末装置において表示されるロビー画像とは、ロビーの状態(例えば、ロビーに入室しているプレイヤ、および、当該プレイヤの状態)として同じ状態を示すものであればよく、完全に一致している必要はない。例えば、親端末装置において表示されるロビー画像と、子端末装置において表示されるロビー画像とでは、プレイヤアイコンおよびゲームアイコンの表示位置が異なっていてもよい。すなわち、親端末装置から子端末装置へ送信される情報には、プレイヤアイコンおよびゲームアイコンの表示位置を特定するための情報が含まれていなくてもよい。これによれば、親端末装置と子端末装置との間における通信量を低減することができる。
ステップS36において、CPU81は、1人用ゲームを開始するか否かを判定する。ステップS36の処理は、上記ステップS21と同様である。ステップS36の判定結果が肯定である場合、ステップS37の処理が実行される。一方、ステップS36の判定結果が否定である場合、上記ステップS31の処理が再度実行される。
ステップS37において、CPU81は、1人用ゲームのゲーム処理を開始する。ステップS37の処理は、上記ステップS22と同様である。ステップS37の後、上記ステップS31の処理が再度実行される。
一方、ステップS38において、CPU81は、ゲーム処理を実行する。ステップS38の処理は、上記ステップS23と同様である。ステップS38の後、ステップS39の処理が実行される。
ステップS39において、CPU81は、自機がゲーム管理端末であるか否かを判定する。ステップS39の判定は、ステップS38においてゲーム処理を実行中のゲームについて、親端末装置からゲーム開始要求とともにゲーム管理要求を受信したか否かによって行うことができる。ステップS39の判定結果が肯定である場合、ステップS40の処理が実行される。一方、ステップS39の判定結果が否定である場合、上記ステップS31の処理が再度実行される。
ステップS40において、CPU81は、状況通知情報を親端末装置へ送信する。すなわち、CPU81は、ステップS38のゲーム処理の結果得られる、ゲームの状況を示す情報(例えば、プレイヤキャラクタの体力、プレイヤキャラクタの獲得ポイント、および/またはゲームの残り時間等)を、状況通知情報として親端末装置へ送信する。また、ステップS38においてゲーム処理を実行中のゲームを終了する場合には、CPU81は、ゲームを終了する旨を示す情報を含む状況通知情報を親端末装置へ送信する。ステップS40の後、上記ステップS31の処理が再度実行される。
(3−3.親端末装置の変更)
図24および図25においては図示しないが、上記親端末処理または子端末処理における一連の処理の実行中において、CPU81は、ロビーを退出する退出指示をプレイヤが行ったことに応じて、当該一連の処理を終了する。本実施形態においては、ディスプレイ12にロビー画像が表示される状態において、プレイヤは、退出指示を行うことが可能である。例えば、ロビー画像は、退出指示を示すボタン画像を含んでいてもよく、CPU81は、当該ボタン画像がプレイヤによって選択されることに応じて、上記一連の処理を終了してもよい。
なお、上述のように、親端末装置のプレイヤがロビーを退出した場合、子端末装置のうちから1つの端末装置が新たな親端末装置に設定される。親端末装置は、記憶部に記憶されているロビー情報およびゲーム状況情報を、所定のタイミングで他の端末装置に送信する。これによって、これらの情報は、ロビーに入室している各プレイヤの全参加端末間で常に同期されている。親端末装置が退出した場合、いずれかの端末が新たな親端末装置に設定され、新たな親端末装置は、最後に取得されたロビー情報およびゲーム状況情報に基づいて、それまで実行していた子端末処理(図25)に代えて、親端末処理(図24)を実行する。これによって、新たな親端末装置は、ロビーを退出する親端末装置から、ロビーに関する情報を引き継ぎ、ロビーの管理を行うことができる。親端末装置がネットワークから切断された場合にも同様の処理が行われる。また、ゲーム管理端末についても同様の処理が行われ、退出や切断時にゲーム管理端末が引き継がれるようにしてもよい。
[4.変形例]
(4−1.ロビーの設定に関する変形例)
他の実施形態においては、サーバ10は、入室するロビーの指定、または、入室するロビーに関する条件の指定をプレイヤから受け付け、これらの指定に基づいてロビーのマッチングを行うようにしてもよい。他の実施形態においては、端末装置1は、上記ロビー入室要求(ステップS4)として、入室を希望するロビーを指定する要求、または、入室を希望するロビーの条件を指定する要求をサーバ10へ送信してもよい。例えば、上記ステップS4の処理においては、まず、サーバ10において設定されているロビーの一覧を示す画像が端末装置1bに表示されてもよい。そして、入室を希望するロビーをプレイヤが選択したことに応じて、端末装置1は、選択されたロビーの識別情報を含むロビー入室要求をサーバ10へ送信してもよい。
また例えば、端末装置1は、入室を希望するロビーの条件の入力をプレイヤから受け付け、入力された条件を含むロビー入室要求をサーバ10へ送信してもよい。上記条件は、例えば、プレイヤの端末装置において登録されている他のプレイヤ(例えば、フレンド登録されているプレイヤ)に関する条件であってもよい。例えば、端末装置1は、登録されている他のプレイヤの一覧を示す画像を表示し、当該他のプレイヤの1つを指定する指示をプレイヤから受け付けてもよい。そして、プレイヤが他のプレイヤを指定する入力を行ったことに応じて、端末装置1は、当該他のプレイヤを示す入室要求(すなわち、指定された他のプレイヤのプレイヤ識別情報を含む入室要求)をサーバ10へ送信してもよい。このとき、サーバ10は、入室要求が示すプレイヤが入室中のロビーに、入室要求を送信した端末装置のプレイヤを入室させる。なお、各プレイヤに対してランク付け(例えば、ゲームの対戦成績に基づくランク付け)が行われる場合には、上記条件は、ランクに関する条件であってもよい。
また、他の実施形態においては、ロビーの設定および入室に関する処理は、サーバに代えて、端末装置において実行されてもよい。図26は、本実施形態の変形例における、ロビーの設定処理、および、設定されたロビーへのプレイヤの入室処理の流れの一例を示す図である。なお、図26に示す変形例においては、端末装置間の通信によってロビーが設定されるので、ゲームシステムは、サーバを含まない構成であってもよい。
図26に示す変形例においては、まず、端末装置1aは、ロビーを作成する(ステップS41)。すなわち、端末装置1aは、上述のロビー情報を生成して記憶部に記憶する。なお、ここでは、ロビーを設定した端末装置1aが親端末装置となるものとする。
ステップS41の後、親端末装置1aと、他の端末装置(子端末装置とする)1bとの間で、通信が確立する。本変形例においては、端末装置は、上述したローカル通信によって端末装置間の通信を確立する。ただし、端末装置間の通信はローカル通信に限らず、ネットワーク8を介した通信であってもよい。本変形例においては、親端末装置1aで作成されたロビーに入室する場合、子端末装置1bのプレイヤは、所定の操作によって、子端末装置1bと親端末装置1aとの通信を確立させる。なお、端末装置間で通信を確立するための方法は任意であり、従来の方法と同様の方法であってもよい。
子端末装置1bとの通信が確立すると(換言すれば、親端末装置1aとの通信が確立した子端末装置が発生すると)、親端末装置1aは、ロビー設定情報を子端末装置1bへ送信する(ステップS42)。本変形例において、ロビー設定情報は、作成されたロビーの識別情報と、親端末のプレイヤのプレイヤ識別情報とを含む。
子端末装置1bは、親端末装置1aからロビー設定情報を受信した後、ロビー入室要求を親端末装置1aへ送信する(ステップS43)。例えば、子端末装置1bは、ロビー設定情報を受信したことに応じて、ロビーに関する情報(例えば、ロビーを作成したプレイヤの情報)を表示し、プレイヤからの入室指示を受け付ける。入室指示は、例えば、ロビーを示す画像を選択する操作や、あるいは、「ロビーに入室しますか」といった問合せに承認する操作によって行われる。プレイヤが入室指示を行ったことに応じて、子端末装置1bは、ロビー入室要求を親端末装置1aへ送信する。
親端末装置1aは、子端末装置1bからロビー入室要求を受信すると、ロビー情報を更新する(ステップS44)。すなわち、ロビー情報は、ロビー入室要求に係るプレイヤに関する情報を含むように更新される。なお、このとき、ロビーにすでに入室している子端末装置がある場合、新たにロビーに入室する子端末装置は、入室済みの子端末装置との間で通信を確立することによって、ロビー入室後は子端末装置間でローカル通信を行うようにする。
本変形例においては、親端末装置1aと子端末装置1bとの通信が確立する度に、当該親端末装置1aと子端末装置1bとの間でステップS42〜S44の処理が実行される。これによって、子端末装置1bのプレイヤがロビーに入室される(換言すれば、ロビー情報にプレイヤが登録される)。
本変形例では、親端末装置1aは、上記ステップS44の後、親端末装置1aのプレイヤから、ロビー処理を開始する指示を受け付ける。そして、当該指示があったことに応じて、親端末装置1aは、開始要求を子端末装置1bへ送信する(ステップS45)。その後、親端末装置1aは、ロビー処理を開始する(ステップS46)。一方、子端末装置1bは、親端末装置1aから開始要求を受信すると、ロビー処理を開始する(ステップS47)。以上によって、各端末装置においてロビー処理が開始され、それ以降は、上記実施形態と同様にロビー処理が実行される。
以上のように、上記変形例においては、親端末装置1aのプレイヤによる指示に応じてロビー処理が開始される。ここで、上記変形例においても上記実施形態と同様に、プレイヤによる指示がなくても(例えば、子端末装置のプレイヤがロビーに1人入室したことに応じて)ロビー処理が開始されてもよい。また、ロビー処理が開始された後も、親端末装置1aは、新たな子端末装置との通信が確立することに応じて、(例えば上記ステップS42〜S44の処理によって)新たなプレイヤのロビーへの入室を受け付けるようにしてもよい。
また、上記実施形態においては、上記変形例と同様に、親端末装置1aのプレイヤによる指示に応じてロビー処理が開始されるようにしてもよい。
上記の変形例によれば、例えばフレンド登録されたプレイヤ同士でロビーに入室したり、(端末装置間でローカル通信を行う場合には)知り合いのプレイヤ同士でロビーに入室したりすることが可能となる。これらの場合であっても、上記実施形態と同様、各プレイヤは、ゲームを1回プレイする毎にロビーへ入室する指示を行う必要がないので、ゲームを繰り返しプレイする場合におけるプレイヤの手間を省くことができる。
また、他の実施形態においては、ゲームシステムは、ロビーの生成および入退室を行うための機能として、(a)上記実施形態におけるロビーのマッチングを行う機能(すなわち、条件無しの入室要求に応じてマッチングを行う機能)と、(b)上記変形例における、条件を含む入室要求に応じてマッチングを行う機能と、(c)上記変形例における、ローカル通信によってロビーの生成およびプレイヤの入退室を行う機能という3つの機能(またはそのうちの2つの機能)を有していてもよい。
また、上記実施形態においては、ロビーに入室可能な端末装置の数(上述の入室可能数)を固定値(例えば、8つ)としたが、他の実施形態においては、サーバ10は、所定の条件下で、当該入室可能数を変化させるようにしてもよい。上記所定の条件は、例えば、他のプレイヤを示す入室要求が端末装置からサーバ10へ送信される実施形態において、「入室要求が示すプレイヤが入室するロビーにおける端末装置の数が入室可能数(すなわち、変更前の入室可能数)であること」である。つまり、あるロビーにおける端末装置の数が変更前の入室可能数に達していても、入室要求が、当該ロビーに入室中のプレイヤを示すものである場合、サーバ10は、入室可能数を変更(すなわち、増加)して、当該入室要求を送信したプレイヤを当該ロビーに入室させてもよい。なお、入室可能数は、所定数(例えば、2つ)を限度として増加可能であってもよい。上記によれば、よりプレイヤの希望に合ったロビーのマッチングを行うことができる。
(4−2.ゲーム選択処理に関する変形例)
上記実施形態においては、ゲーム選択処理においては、プレイされるゲームおよび参加プレイヤは自動的に選択された。ここで、他の実施形態においては、ゲームおよび参加プレイヤを自動的に選択する場合に用いられる条件をプレイヤが設定できるようにしてもよい。例えば、端末装置は、ゲーム選択処理において、プレイヤが予め指定したゲームについては選択されないようにしてもよい。また例えば、端末装置は、ゲーム選択処理において設定される複数の基準(例えば、上記ステップS14で述べた基準)のうちで、プレイヤが指定した基準を用いて、ゲーム選択処理を実行するようにしてもよい。例えば、上記“(4−1.ロビーの設定に関する変形例)”で述べた変形例のように、フレンド登録されたプレイヤ同士でロビーに入室したり、知り合いのプレイヤ同士でロビーに入室したりする場合には、予めプレイヤ間で決めておいた条件を指定して、ロビーにおけるゲームを行うようにしてもよい。
(4−3.ロビーにおけるルールに関する変形例)
他の実施形態においては、端末装置は、ロビーからプレイされる複数回のゲームの結果に応じた処理を実行するようにしてもよい。例えば、端末装置は、複数回のゲームの結果に基づいて、勝者となるプレイヤを決定するようにしてもよい。具体的には、親端末装置は、1回のゲーム毎に参加プレイヤに対してゲームの結果に応じたポイントを付与し、先に所定数のポイントを獲得したプレイヤを勝者として決定するようにしてもよい。
(4−4.親端末装置とゲーム管理端末の設定に関する変形例)
上記実施形態においては、親端末装置は、ゲーム選択処理を実行し(ステップS14)、また、ゲーム選択処理によってゲームが選択されたことに応じて、選択された参加プレイヤが操作する端末装置のうちの1つの端末装置をゲーム管理端末に設定する(ステップS15)。また、ゲーム管理端末に設定された端末装置は、ゲーム選択処理によって選択されたゲームのゲーム処理に用いられるデータを管理する。このとき、ゲーム選択処理によって選択されたゲームを行う端末装置は、ゲーム管理端末において管理されるデータに基づいてゲーム処理を実行する。これによれば、ロビーから複数のゲームが実行される場合に、ロビーを管理する親端末装置の処理負担を軽減することができる。
ここで、他の実施形態において、上記親端末装置とゲーム管理端末とを設定する構成を採用する場合においては、ゲーム選択処理は任意の方法でゲームおよび参加プレイヤを選択してもよい。例えば、プレイヤがゲームおよび参加プレイヤを指定する方法でゲームおよび参加プレイヤが選択されてもよい。また、上記実施形態と同様、ゲーム管理端末は、親端末装置へ状況通知情報を送信してもよく、このとき、親端末装置は、状況通知情報に基づいてロビー画像を生成したり、ロビー画像を生成するための情報を子端末装置へ送信してもよい。
(4−5.サーバと端末装置とにおける処理に関する変形例)
他の実施形態においては、上記実施形態および変形例において、サーバ側において実行された処理の一部は、端末側において実行されてもよい。また、他の実施形態においては、上記実施形態および変形例において端末側において実行された処理の一部は、サーバ側において実行されてもよい。