図1は、実施の形態に係るゲームシステムの構成を示す。ゲームシステム1において、複数のゲーム装置10と、複数のゲーム装置10の間で実行されるゲームを管理する管理サーバ100は、インターネット6を介して接続される。
実施の形態に係るゲーム装置10は、ユーザが設定した時刻が到来したことをユーザに報知するために、その時刻にアラーム音を鳴らすとともに、ゲームを起動する。この機能は、主として目覚まし時計として用いられることを企図している。ユーザに、単に時刻の到来を報知するだけでなく、簡単なゲームに挑戦させることで、ユーザが確実に眠りから覚めるようにすることができ、一度は目が覚めたものの再度眠りに落ちてしまう事態を低減することができる。
管理サーバ100は、ゲーム装置10から、ユーザが設定した時刻を受け付けると、同じ時刻を設定している他の複数のユーザとグループ化する。ゲーム装置10は、ユーザが設定した時刻が到来すると、管理サーバ100により生成されたグループに属する他のユーザのゲーム装置10との間で連携してゲームを実行する。ユーザは、ゲームに成功すると、まだゲームに成功していない他のユーザのゲーム装置10に音声を出力させるなどして、他のユーザの目覚めをサポートすることができる。グループに属するユーザの全てがゲームに成功しないと、グループとしてゲームに成功したことにならないので、ユーザは、同じグループに属する他のユーザに迷惑を掛けないようにするために、一人だけでゲームをする場合よりも緊張感を持って真剣にゲームに取り組むと考えられる。これにより、より確実にユーザの目覚めを促進することができる。グループとしてゲームに成功することにより、より大きな達成感をユーザに与えることができ、爽やかな目覚めを提供することができる。また、他のユーザと連携してゲームに挑戦することにより、他のユーザとの連帯感が生まれ、新たなユーザと知り合う契機を提供することができる。
図2は、管理サーバの構成を示す。管理サーバ100は、通信部130、制御部140、ユーザデータベース160、グループデータベース162を備える。制御部140は、マッチング要求受付部141、グループ生成部142、グループ配属部143、オブザーバ参加受付部144、グループ情報送信部145、及び履歴情報管理部146を含む。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
図3は、ユーザデータベース160の内部データの例を示す。ユーザデータベース160は、ユーザに関する情報を格納する。ユーザデータベース160には、ユーザID欄111、装置ID欄112、IPアドレス欄113、設定時刻欄114、グループID欄115、利用回数欄116、失敗回数欄117、成功回数欄118、最短時間欄119、最長時間欄120、及び平均時間欄121が設けられている。ユーザID欄111は、ユーザを一意に識別するIDを格納する。装置ID欄112は、ユーザが使用するゲーム装置のIDを格納する。IPアドレス欄113は、ゲーム装置に割り当てられたIPアドレスを格納する。設定時刻欄114は、ユーザが設定した時刻を格納する。グループID欄115は、ユーザが配属されたグループのIDを格納する。利用回数欄116は、ユーザが本実施の形態のシステムを利用した回数を格納する。失敗回数欄117は、ユーザがゲームに失敗した回数、すなわち、目覚まし機能により起きられなかった回数を格納する。成功回数欄118は、ユーザが属するグループの全員がゲームに成功した回数を格納する。最短時間欄119、最長時間欄120、平均時間欄121は、それぞれ、ゲームが起動されてからユーザがゲームに成功するまで、すなわち、ユーザが起きるまでに要した時間の最短時間、最長時間、平均時間を格納する。ユーザデータベース160には、その他の履歴情報、例えば、他のユーザをサポートした回数、他のユーザにサポートされた回数、他のユーザからのサポートを無視した回数などが格納されてもよい。
図4は、グループデータベース162の内部データの例を示す。グループデータベース162には、グループID欄131、設定時刻欄132、装置ID欄133、ユーザID欄134、IPアドレス欄135、ステータス欄136が設けられている。グループID欄131は、グループを一意に識別するIDを格納する。設定時刻欄132は、グループに属するゲーム装置において設定された時刻を格納する。前述したように、本実施の形態では、同じ時刻、又は、所定の範囲内の時刻が設定されたゲーム装置をグループ化するので、グループに属するゲーム装置において設定された時刻又は時刻の範囲は共通である。装置ID欄133は、グループに属するゲーム装置のIDを格納する。ユーザID欄134は、グループに属するユーザのIDを格納する。IPアドレス欄135は、グループに属するゲーム装置のIPアドレスを格納する。ステータス欄136は、ユーザが、ゲームを起動する時刻を設定してゲームに参加している通常のユーザであるか、ゲームを起動する時刻を設定せずに、後述するオブザーバとしてゲームに参加しているユーザであるかを示す情報を格納する。装置ID欄133、ユーザID欄134、IPアドレス欄135、及びステータス欄136は、グループに属するユーザの数だけ設けられる。本実施の形態では、1つのグループは最大で12名のユーザを含むので、装置ID欄133、ユーザID欄134、IPアドレス欄135、及びステータス欄136は、12名分設けられる。
図2に戻り、通信部130は、インターネット6を介した他の装置との間の通信を制御する。マッチング要求受付部141は、ゲーム装置10から、ユーザが設定した時刻を受け付け、同じ時刻、又は、所定の範囲内の時刻を設定している他のユーザとのマッチングの要求を受け付ける。マッチング要求受付部141は、ユーザから設定時刻を受け付けるときに、ユーザIDとパスワードなどを用いてユーザを認証してもよい。マッチング要求受付部141は、ゲーム装置10からマッチング要求を受け付けるときに、新たなグループを生成して自身がホストになるのか、既存のグループを検索してマッチしたグループに属するのかの選択を受け付ける。以下、前者を「クリエイト要求」と呼び、後者を「スキャン要求」と呼ぶ。後述するように、ゲーム装置10は、管理サーバ100にマッチングを要求する際に、グループの定員数の逆数の確率、すなわち、本実施の形態では、12分の1の確率でクリエイト要求を発し、残りの12分の11の確率でスキャン要求を発する。
グループ生成部142は、マッチング要求受付部141がゲーム装置10からクリエイト要求を受け付けると、同じ時刻、又は、所定の範囲内の時刻を設定しているユーザのグループを新たに生成する。グループ生成部142は、グループを新たに生成すると、新たなグループにIDを割り当て、設定時刻とともにグループデータベース162に登録する。また、グループ生成部142は、設定時刻を受け付けたゲーム装置10の情報を、先頭の装置ID欄133、ユーザID欄134、IPアドレス欄135、及びステータス欄136に、グループのホストの情報として登録する。設定時刻が到来したときに起動されるゲームにおいて、グループ内にホストの役割を果たすゲーム装置10の存在が必要となる場合は、このゲーム装置10がホストとなることを示すために、ステータス欄136にホストであることを示す情報を格納してもよい。
グループ配属部143は、マッチング要求受付部141がゲーム装置10からスキャン要求を受け付けると、グループデータベース162を参照して、設定時刻が同じ、又は所定の範囲内で、まだ空きがある既存のグループを検索する。設定時刻が同じ、又は所定の範囲内で、定員数に達していないグループが発見された場合、グループ配属部143は、そのグループにゲーム装置10を配属し、グループデータベース162に、装置ID、ユーザID、IPアドレス、及びステータスを登録する。設定時刻が同じ、又は所定の範囲内で、定員数に達していないグループが発見されなかった場合、グループ配属部143は、所定回数検索を繰り返し、それでも発見されなかった場合は、グループ生成部142に新たなグループを生成させて、そのグループにゲーム装置10を配属する。
オブザーバ参加受付部144は、グループデータベース162を参照して、グループのリストをゲーム装置10へ提示し、グループへの参加を受け付ける。前述したように、本実施の形態のゲームシステムにおいては、同じグループに属するユーザの間で、先に起きたユーザがまだ起きていないユーザを起こすためのインタラクションを行い、グループに属するユーザ全員が所定時間内に起きることを目指すゲームを実行する。オブザーバ参加受付部144は、このゲームに、他のユーザを起こすだけを目的として、自身が起こしてもらうことを目的としないユーザの参加を受け付ける。このユーザを、以下、「オブザーバ」と呼ぶ。
図5は、オブザーバ参加受付部144によりゲーム装置10に提示される画面の例を示す。画面300には、現在生成されているグループのリストが表示されている。グループ151は、既に12名のユーザが配属されており、定員に達しているので、オブザーバが参加することはできないが、その他のグループ152、153、154は、まだ定員に達していないので、オブザーバが参加することができる。オブザーバ参加受付部144は、ユーザからグループに対するオブザーバとしての参加を受け付けると、グループデータベース162の該当するグループのレコードに、オブザーバの情報を登録する。
前述したように、グループ生成部142は、グループの定員数の逆数に当たる確率で新たにグループを生成するので、既存のグループの全てが定員に達する前に新たにグループが生成される可能性が高い。これにより、定員に達していないグループが存在する状態を維持することができ、オブザーバがグループに参加する余地を残すことができる。
オブザーバ参加受付部144は、グループ生成部142により新たなグループが生成されたり、グループ配属部143によりグループに新たなユーザが配属されたりして、グループデータベース162が更新されると、グループのリストの表示を更新する。
グループ生成部142により生成されたグループに、グループ配属部143及びオブザーバ参加受付部144によりユーザが追加され、グループの定員に達すると、以降、そのグループへのユーザの追加は締め切られる。グループ配属部143及びオブザーバ参加受付部144は、グループが定員に達していなくても、設定時刻の所定の第2時間前になると、新たなユーザの配属及び新たなオブザーバの参加を締め切って、グループに属するユーザを確定する。定員に達しないで締め切られたグループには、後述するように、ゲーム装置10において、ノンプレイヤーキャラクタが定員に達するまで追加される。
グループ情報送信部145は、ゲーム装置10に、そのゲーム装置10のユーザが配属されたグループの情報を送信する。グループ情報送信部145は、ゲーム装置10が、同じグループに属する他のユーザのゲーム装置10との間で、ピアツーピア接続して直接通信することを可能とするために、各ゲーム装置10のIPアドレスを送信する。グループ情報送信部145は、グループ配属部143によりゲーム装置10がグループに配属されたときに、既にそのグループに配属されている他のゲーム装置10の情報をグループデータベース162から読み出して送信し、以降、そのグループに新たにゲーム装置10が配属されるごとに、新たに配属されたゲーム装置10の情報を送信してもよい。または、グループへのユーザの追加が締め切られ、グループに属するユーザが確定されたときに、グループに配属されている他のゲーム装置10の情報を一括して送信してもよい。前者の場合、各ゲーム装置10は、グループにゲーム装置10が追加されるごとに、そのゲーム装置10との間で事前にピアツーピア接続を確立して待機することができる。後者の場合、通信量を低減することができる。
設定された時刻が到来すると、各ゲーム装置10がアラーム音を出力するとともに、ゲームを起動し、同じグループに属する他のゲーム装置10との間で通信を行いながらゲームを進行させる。管理サーバ100は、ゲームの進行に直接関与しない。
履歴情報管理部146は、各ゲーム装置10から、ゲームの結果を取得して、ユーザデータベース160に登録する。履歴情報管理部146は、各ゲーム装置10から、履歴情報の提示を要求されると、ユーザデータベース160から、そのゲーム装置10のユーザの履歴情報を読み出して提示する。
つづいて、本実施の形態に係るゲーム装置10の外観構成および回路構成を説明する。以下に示すゲーム装置10は、携帯型のゲーム機であるが、他の種類の携帯型端末装置であってもよい。
[前面部の構成]
図6(a)は、ゲーム装置10の前面を示す。ゲーム装置10は、横長の筐体により形成され、ユーザが把持する左右の領域は、円弧状の外郭を有している。ゲーム装置10の前面には、矩形のタッチパネル50が設けられる。タッチパネル50は、表示装置20と、表示装置20の表面を覆う透明な前面タッチパッド21から構成される。表示装置20は有機EL(Electro-Liminescence)パネルであり、画像を表示する。なお表示装置20は液晶パネルなどの表示手段であってもよい。前面タッチパッド21は、同時にタッチされた複数ポイントの検出機能をもつマルチタッチパッドであって、タッチパネル50はマルチタッチスクリーンとして構成される。
タッチパネル50の右側には、菱形の頂点にそれぞれ位置する△ボタン22a、○ボタン22b、×ボタン22c、□ボタン22d(以下、総称する場合には「操作ボタン22」とよぶ)が設けられ、タッチパネル50の左側には、上キー23a、左キー23b、下キー23c、右キー23d(以下、総称する場合には「方向キー23」とよぶ)が設けられる。ユーザは方向キー23を操作して、上下左右および斜方の8方向を入力できる。方向キー23の下側には左スティック24aが設けられ、また操作ボタン22の下側には右スティック24bが設けられる。ユーザは左スティック24aまたは右スティック24b(以下、総称する場合には「アナログスティック24」とよぶ)を傾動して、方向および傾動量を入力する。筐体の左右頂部には、Lボタン26a、Rボタン26bが設けられる。操作ボタン22、方向キー23、アナログスティック24、Lボタン26a、Rボタン26bは、ユーザが操作する操作手段を構成する。
操作ボタン22の近傍に、前面カメラ30が設けられる。左スティック24aの左側および右スティック24bの右側には、それぞれ音声を出力する左スピーカ25aおよび右スピーカ25b(以下、総称する場合には「スピーカ25」とよぶ)が設けられる。また左スティック24aの下側にHOMEボタン27が設けられ、右スティック24bの下側にSTARTボタン28およびSELECTボタン29が設けられる。
[背面部の構成]
図6(b)は、ゲーム装置10の背面を示す。ゲーム装置10の背面には、背面カメラ31および背面タッチパッド32が設けられる。背面タッチパッド32は、前面タッチパッド21と同様に、マルチタッチパッドとして構成される。ゲーム装置10は、前面および背面において、2つのカメラおよびタッチパッドを搭載している。
[上面部の構成]
図7(a)は、ゲーム装置10の上面を示す。既述したように、ゲーム装置10の上面の左右端側に、Lボタン26a、Rボタン26bがそれぞれ設けられる。Lボタン26aの右側には電源ボタン33が設けられ、ユーザは、電源ボタン33を押下することで、電源をオンまたはオフする。なおゲーム装置10は、操作手段が操作されない時間(無操作時間)が所定時間続くと、サスペンド状態に遷移する電力制御機能を有している。ゲーム装置10がサスペンド状態に入ると、ユーザは電源ボタン33を押下することで、ゲーム装置10をサスペンド状態からアウェイク状態に復帰させることができる。
ゲームカードスロット34は、ゲームカードを差し込むための差込口であり、この図では、ゲームカードスロット34がスロットカバーにより覆われている状態が示される。なおゲームカードスロット34の近傍に、ゲームカードがアクセスされているときに点滅するLEDランプが設けられてもよい。アクセサリ端子35は、周辺機器(アクセサリ)を接続するための端子であり、この図ではアクセサリ端子35が端子カバーにより覆われている状態が示される。アクセサリ端子35とRボタン26bの間には、ボリュームを調整するための−ボタン36aと+ボタン36bが設けられている。
[下面部の構成]
図7(b)は、ゲーム装置10の下面を示す。メモリカードスロット37は、メモリカードを差し込むための差込口であり、この図では、メモリカードスロット37が、スロットカバーにより覆われている状態が示される。ゲーム装置10の下面において、音声入出力端子38、マイク39およびマルチユース端子40が設けられる。マルチユース端子40はUSB(Universal Serial Bus)に対応し、USBケーブルを介して他の機器と接続できる。
[左側面部の構成]
図7(c)は、ゲーム装置10の左側面を示す。ゲーム装置10の左側面には、SIMカードの差込口であるSIMカードスロット41が設けられる。
[ゲーム装置の回路構成]
図8は、ゲーム装置10の回路構成を示す。各構成はバス92によって互いに接続されている。無線通信モジュール71はIEEE802.11b/g等の通信規格に準拠した無線LANモジュールによって構成され、AP2を介して、外部ネットワークに接続する。なお無線通信モジュール71は、ブルートゥース(登録商標)プロトコルの通信機能を有してもよい。携帯電話モジュール72は、ITU(International Telecommunication Union;国際電気通信連合)によって定められたIMT−2000(International Mobile Telecommunication 2000)規格に準拠した第3世代(3rd Generation)デジタル携帯電話方式に対応し、携帯電話網4に接続する。SIMカードスロット41には、携帯電話の電話番号を特定するための固有のID番号が記録されたSIMカード74が挿入される。SIMカード74がSIMカードスロット41に挿入されることで、携帯電話モジュール72は、携帯電話網4との間で通信可能となる。
CPU(Central Processing Unit)60は、メインメモリ64にロードされたプログラムなどを実行する。GPU(Graphics Processing Unit)62は、画像処理に必要な計算を実行する。メインメモリ64は、RAM(Random Access Memory)などにより構成され、CPU60が使用するプログラムやデータなどを記憶する。ストレージ66は、NAND型フラッシュメモリ(NAND-type flash memory)などにより構成され、内蔵型の補助記憶装置として利用される。
モーションセンサ67は、ゲーム装置10の動きを検出し、地磁気センサ68は、3軸方向の地磁気を検出する。GPS制御部69は、GPS衛星からの信号を受信し、現在位置を算出する。前面カメラ30および背面カメラ31は、画像を撮像し、画像データを入力する。前面カメラ30および背面カメラ31は、CMOSイメージセンサ(Complementary Metal Oxide Semiconductor Image Sensor)によって構成される。
表示装置20は、有機EL表示装置であり、陰極および陽極に電圧を印加することで発光する発光素子を有する。省電力モードでは、電極間に印加する電圧を通常よりも低くすることで、表示装置20を減光状態とすることができ、電力消費を抑えられる。なお表示装置20はバックライトを備えた液晶パネル表示装置であってもよい。省電力モードでは、バックライトの光量を下げることで、液晶パネル表示装置を減光状態として、電力消費を抑えることができる。
インタフェース90において、操作部70は、ゲーム装置10における各種操作手段を含み、具体的には、操作ボタン22、方向キー23、アナログスティック24、Lボタン26a、Rボタン26b、HOMEボタン27、STARTボタン28、SELECTボタン29、電源ボタン33、−ボタン36a、+ボタン36bを含む。前面タッチパッド21および背面タッチパッド32は、マルチタッチパッドであり、前面タッチパッド21は、表示装置20の表面に重ね合わせて配置される。スピーカ25は、ゲーム装置10の各機能により生成される音声を出力し、マイク39は、ゲーム装置10の周辺の音声を入力する。音声入出力端子38は、外部のマイクからステレオ音声を入力し、外部のヘッドホンなどへステレオ音声を出力する。
ゲームカードスロット34には、ゲームファイルを記録したゲームカード76が差し込まれる。ゲームカード76は、データの書込可能な記録領域を有しており、ゲームカードスロット34に装着されると、メディアドライブにより、データの書込/読出が行われる。メモリカードスロット37には、メモリカード78が差し込まれる。メモリカード78は、メモリカードスロット37に装着されると、外付け型の補助記憶装置として利用される。マルチユース端子40は、USB端子として利用でき、USBケーブル80を接続されて、他のUSB機器とデータの送受信を行う。アクセサリ端子35には、周辺機器が接続される。
図9は、実施の形態に係るゲーム装置10の構成を示す。ゲーム装置10は、通信部230、制御部240、ゲームデータ保持部260、NPCデータ保持部262、画面生成部266を備える。これらの構成も、ハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できる。
制御部240は、ゲームのプログラムが格納された記録媒体などからプログラムを読み出して実行し、インタフェース90が受け付けたユーザからの操作入力に基づいて、ゲームを進行させる。ゲームデータ保持部260は、ゲームの進行に必要な情報を保持する。NPCデータ保持部262は、ノンプレイヤキャラクタに関する情報を保持する。画面生成部266は、制御部240により制御されるゲームの画面を生成し、表示装置20に表示させる。
制御部240は、時刻設定部241、マッチング要求送信部242、グループ情報取得部243、自PC制御部244、他PC制御部245、NPC制御部246、インタラクション受信部247、インタラクション送信部248、ゲーム制御部249を含む。
時刻設定部241は、ユーザから到来を報知すべき時刻の設定を受け付ける。マッチング要求送信部242は、設定された時刻に実行されるゲームを連携して行う他のユーザとのマッチングを管理サーバ100へ要求する。グループ情報取得部243は、管理サーバ100から、マッチングの結果として、ゲーム装置10が配属されたグループに属する他のゲーム装置10の情報を取得する。ゲーム制御部249は、設定された時刻にゲームを開始し、ゲームの進行を制御する。ゲーム制御部249は、報知部の機能も有し、設定された時刻にスピーカ25からアラーム音を出力する。
設定された時刻にゲームが開始される前に、管理サーバ100においてマッチングを実行する必要があるので、マッチング要求送信部242は、設定された時刻よりも前に処理を開始する必要がある。しかし、本実施の形態に係る機能を提供するアプリケーション(以下、「目覚ましアプリ」と呼ぶ)は、通常、ユーザが眠る前に起床時刻を設定し、そのまま放置しておくという使い方がされるので、前処理を開始すべき時刻が到来したときに、ゲーム装置10がサスペンドされている場合もある。このような場合、例えば、以下のような手順でゲームが開始される。
目覚ましアプリが起動されて、時刻設定部241により時刻が設定された後、目覚ましアプリが起動された状態のまま、設定された時刻より第1の時間前の時刻が到来すると、マッチング要求送信部242は、マッチング要求を管理サーバ100へ送信する。設定された時刻より第2の時間前の時刻まで、グループ情報取得部243により同じグループの他のゲーム装置10の情報が取得され、設定された時刻に、アラーム音が出力されるとともに、ゲーム制御部249によりゲームが開始される。
目覚ましアプリは、時刻設定部241により時刻が設定されると、ゲーム装置10のシステムタイマ(図示せず)に、設定された時刻よりも第1の時間前の時刻を、サスペンド状態から復帰すべき時刻として設定する。このとき、サスペンド状態から復帰すべき時刻を設定したアプリケーションの情報が、システムコントローラ又はメインメモリ64のシステム領域に記録される。目覚ましアプリにより時刻が設定された後、電源ボタンの操作により、又は、無操作のまま所定時間が経過することにより、ゲーム装置10がサスペンド状態に移行すると、CPU60の電源はオフされるが、メインメモリ64は通電状態のまま保持される。システムタイマが、設定された時刻が到来したと判定すると、ゲーム装置10は、レジューム機能により、サスペンド状態になる直前の状態に復帰する。目覚ましアプリが起動された状態でサスペンド状態に移行していた場合は、目覚ましアプリが起動された状態に復帰するので、上述したように、マッチング要求送信部242がマッチング要求を管理サーバ100へ送信して、前処理が開始される。目覚ましアプリを終了又は非アクティブ状態にした後にサスペンド状態に移行していた場合は、レジューム機能は、サスペンド状態から復帰すべき時刻を設定したアプリケーションが何であったかという情報を、システムコントローラ又はメインメモリ64のシステム領域から読み出して、目覚ましアプリを起動する。目覚ましアプリが起動されると、マッチング要求送信部242がマッチング要求を管理サーバ100へ送信して、前処理が開始される。目覚ましアプリにより時刻が設定された後、目覚ましアプリが終了され、他のアプリケーションが実行されているときにサスペンド状態に移行していた場合は、レジューム機能により、他のアプリケーションが起動された状態に復帰する。この場合、他のアプリケーションを終了させて目覚ましアプリを起動してもよいし、他のアプリケーションが起動されたままの状態で目覚まし状態を起動させなくてもよい。後者の場合、本実施の形態のゲームは開始されないが、設定された時刻にアラーム音が出力されてもよい。
マッチング要求送信部242は、前述したように、所定の確率で「クリエイト要求」又は「スキャン要求」を管理サーバ100へ送信する。マッチング要求送信部242は、グループの定員数の逆数の確率、すなわち、本実施の形態では、12分の1の確率でクリエイト要求を発し、残りの12分の11の確率でスキャン要求を発する。これにより、グループの数が多くなり過ぎたり、少な過ぎたりする事態を低減することができる。早朝など、ユーザが集中する時間帯には、他の時間帯よりも多くのグループを新たに生成するために、他の時間帯よりも高い確率でクリエイト要求を送信してもよい。これにより、新たなグループの生成が間に合わず、管理サーバ100のグループ配属部143が空いているグループを何度も検索しなければならない事態を低減することができる。また逆に、クリエイト要求を送信した後、一定期間中に他のメンバが参加してこなかった場合は、一度クリエイト要求をキャンセルして、改めてスキャン要求を送信してもよい。
グループ情報取得部243は、管理サーバ100から、ゲーム装置10が配属されたグループに関する情報を取得する。グループ情報取得部243は、同じグループに配属されている他のゲーム装置10のIPアドレスを取得して、通信部230へ伝達する。通信部230は、IPアドレスをもとに、他のゲーム装置10との間でピアツーピア接続を確立する。
ゲーム制御部249は、ユーザが設定した時刻が到来すると、スピーカ25からアラーム音を出力するとともに、ゲームを開始する。ユーザがゲームに成功すると、ゲーム制御部249は、アラーム音の出力を停止する。自PC制御部244、他PC制御部245、及びNPC制御部246は、後述するように、それぞれ、ゲーム画面に表示される自PCアイコン、他PCアイコン、及びNPCアイコンを制御する。インタラクション受信部247は、同じグループに属する他のゲーム装置10からのインタラクションを受信し、ゲームに反映させる。インタラクション送信部248は、ユーザの操作入力に応じて、同じグループに属する他のゲーム装置10へインタラクションを送信する。
図10は、ゲーム画面の例を示す。ゲーム画面300には、ユーザのアバター又はプレイヤーズキャラクタ(PC)が表示されたアイコン301が表示されている。このアイコン301を、以降、自PCアイコン301と呼ぶ。自PC制御部244は、自PCアイコン301を画面300内でランダムに移動させる。ユーザが、自PCアイコン301を所定回数タップすると、ゲーム制御部249は、ゲームに成功したと判定する。ユーザが自PCアイコン301をタップすべき回数は、1回であってもよいし、複数回であってもよく、ゲームの開始時にゲーム制御部249によりランダムに決定されてもよい。
図11は、ゲーム画面の例を示す。自装置のユーザよりも先に、同じグループに属する他のゲーム装置10のユーザがゲームに成功すると、そのゲーム装置10のユーザのアバター又はプレイヤーズキャラクタが表示されたアイコン302及び304がゲーム画面300に表示される。このアイコン302及び304を、以降、他PCアイコン302及び304と呼ぶ。他PCアイコン302及び304は、その外側にオブジェクト303及び305を伴っている。他PC制御部245は、他PCアイコン302及び304と、オブジェクト303及び305を、ゲーム画面300内でランダムに移動させる。
他PCアイコン302及び304と、オブジェクト303及び305は、自PCアイコン301よりも上に表示されるので、他PCアイコン302及びオブジェクト303が自PCアイコン301と重なって表示されるとき、自PCアイコン301は、他PCアイコン302及びオブジェクト303の下に隠れてしまう。自PCアイコン301のうち、他PCアイコン302又はオブジェクト303の下に隠れている部分をタップしても、ゲーム制御部249は、ゲームに成功したと判定しない。したがって、他のゲーム装置10のユーザがゲームに成功するほど、ゲーム画面300に多くの他PCアイコン及びオブジェクトが表示されて、自PCアイコン301をタップしてゲームに成功するのが困難となる。
他PC制御部245は、ゲーム画面310に表示されている他PCアイコン302及び304に対応する音声をスピーカ25へ出力する。この音声は、予めゲームデータ保持部260に格納されていてもよいし、グループ情報取得部243又はインタラクション受信部247により、他のゲーム装置10から取得してもよい。この音声は、例えば、ユーザを起床させるための励ましあるいは叱咤の声であってもよい。ユーザが、他PCアイコン302又は304に対して、タップなどの操作入力を行ったときに、他PC制御部245は、その他PCアイコン302又は304に対応する音声の音量やピッチなどを変更する。
図12は、ゲーム画面の例を示す。ユーザが、他PCアイコン302又はオブジェクト303に対してドラッグ又はフリックなどの操作入力を行ったときに、他PC制御部245は、他PCアイコン302及びオブジェクト303を、ドラッグ又はフリックされた方向へ移動させる。これにより、ユーザは、自PCアイコン301をタップしてゲームに成功しやすくすることができる。他PC制御部245は、ユーザが他PCアイコン302又はオブジェクト303に対してフリックなどの操作入力を行ったときに、他PCアイコン302及びオブジェクト303を、ゲーム画面310の外側に移動させてもよい。このとき、他PC制御部245は、ゲーム画面310の外側に移動された他PCアイコン302に対応する音声の出力を停止してもよい。他PC制御部245は、ユーザが、ゲーム装置10を上下又は左右に振る動作を行ったことを、モーションセンサ67、地磁気センサ68、及びGPS制御部69などから取得される情報に基づいて検知したときに、他PCアイコン302及びオブジェクト303を、振られた方向に移動させてもよい。このとき、他PCアイコン302及びオブジェクト303を、ゲーム画面310の外側に移動させてもよい。
図13は、ゲーム画面の例を示す。ユーザが、自PCアイコン301をタップすると、ゲーム制御部249は、ゲームに成功したと判定し、スピーカ25へのアラーム音の出力を停止するとともに、同じグループに属する他の全てのゲーム装置10に対して、ゲームに成功した旨をブロードキャストする。このとき、同じグループに属する他のゲーム装置10において、ユーザがまだゲームに成功していない場合は、そのゲーム装置10のゲーム画面310に、他PC制御部245により、ゲームに成功したゲーム装置10の他PCアイコンが表示される。ユーザが既にゲームに成功していた場合は、後述するように、そのゲーム装置10のゲーム画面320において、ゲームに成功したゲーム装置10の他PCアイコンに付されていたオブジェクトが消去される。ゲーム制御部249は、ゲームに成功した旨をユーザに提示した後、図14に示すゲーム画面に移行させる。
図14は、ゲーム画面の例を示す。ゲーム画面320には、同じグループに属する他のゲーム装置10の他PCアイコン322a、322bが表示されている。他PCアイコンのうち、オブジェクト324とともに表示されているものは、そのアイコンに対応するゲーム装置10のユーザが、まだゲームに成功していないことを示す。ゲーム制御部249は、ゲームに成功した旨の情報をまだ受信していないゲーム装置10に対応する他PCアイコン322aにはオブジェクト324を付して、既に受信しているゲーム装置10に対応する他PCアイコン322bにはオブジェクト324を付さずに表示する。グループの定員数を所定数に固定することにより、ゲーム画面320のレイアウトを同一にすることができる。これにより、シンプルで分かりやすいユーザインタフェースとすることができるとともに、必要なデータ量などを低減することができる。
ゲーム画面320において、ユーザが、ゲームに未成功のゲーム装置10に対応する他PCアイコンに対して、タップなどの操作入力を行うと、インタラクション送信部248は、そのゲーム装置10に、ユーザがインタラクションを行った旨をユニキャストする。送信先のゲーム装置10においては、インタラクション受信部247がインタラクションを受信し、その内容に応じて、図11に示したゲーム画面310において、インタラクションを反映させる。例えば、図11に示したゲーム画面310において、他PCアイコン302又はオブジェクト303が拡大又は縮小されてもよいし、移動されてもよいし、対応する音声が出力されてもよいし、対応する音声の音量又はピッチが変更されてもよい。これにより、ユーザは、まだゲームに成功していない他のユーザに対して、ゲームの成功を促すようなインタラクションを行うことができる。
図15は、ゲーム画面の例を示す。ゲーム制御部249は、同じグループに属する全てのゲーム装置10から、ゲームに成功した旨の情報を受信したとき、又は、いずれかのゲーム装置10から、同じグループに属する全てのゲーム装置10がゲームに成功した旨の情報を受信したときに、グループ全体がゲームに成功した旨を示すゲーム画面330を表示する。ゲーム制御部249は、同じグループに属する全てのゲーム装置10から、ゲームに成功した旨の情報を受信したとき、同じグループに属する全てのゲーム装置10がゲームに成功した旨の情報を、同じグループに属する全てのゲーム装置10に対してブロードキャストする。これにより、通信不良により、いずれかのゲーム装置10からゲームに成功した旨の情報を受信できなかったとしても、最終的にグループ全体がゲームに成功したことを知ることができる。ゲーム制御部249は、ゲームが終了すると、ゲームの結果を管理サーバ100へ送信する。
NPC制御部246は、ゲーム装置10が配属されたグループの構成メンバが定員に達しなかったときに、足りない人数分のノンプレイヤーキャラクタ(NPC)をグループに追加し、追加されたNPCを制御する。前述したように、設定時刻から所定の第2時間前の時刻が到来すると、管理サーバ100において、グループへの新たなユーザの追加が締め切られ、グループの構成メンバが確定される。グループ情報取得部243が管理サーバ100から情報を取得したグループの構成メンバの数が、グループの定員に達していない場合、NPC制御部246は、ゲーム制御部249がゲームを開始する前に、NPCデータ保持部262にデータが格納されているNPCのうち、いずれのNPCをグループに追加するかを、所定の条件に基づいて判定し、追加すると判定されたNPCのデータをNPCデータ保持部262から読み出す。ゲーム開始時のゲーム画面310では、NPCアイコンがすぐには表示されていなくてもよいので、NPC制御部246は、ゲーム制御部249がゲームを開始した直後にNPCを追加してもよい。
NPC制御部246は、NPCについて設定されている各種の属性などのパラメータを参照して、NPCの行動をシミュレートする。NPC制御部246は、人工知能などの技術を用いてNPCの行動をシミュレートしてもよい。NPC制御部246は、NPCの属性に基づいて、NPCがゲームに成功する時刻、すなわち、NPCが起きる時刻を決定する。NPCがユーザよりも早く起きると決定された場合は、図11に示すように、先に起きたNPCのアイコン(以下、「NPCアイコン」と呼ぶ)がオブジェクトとともにゲーム画面310に表示される。NPC制御部246は、NPCアイコンをゲーム画面310内で移動させる。また、NPC制御部246は、NPCがユーザのゲーム装置10にインタラクションを送信したものとして、NPCアイコンのサイズや表示態様を変更したり、対応する音声の音量やピッチを変更したりする。
NPCが起きると決定された時刻よりもユーザの方が先に起きて、自PCアイコン301をタップしてゲームに成功すると、ゲーム画面310にはNPCアイコンは表示されず、図14に示したゲーム画面320において、NPCアイコンがオブジェクトとともに表示される。ユーザが、NPCアイコンに対してインタラクションを行うと、NPC制御部246は、そのインタラクションに基づいて、NPCが起きる時刻を再度決定する。例えば、ユーザがNPCに対してインタラクションを行うたびに、NPCが起きる時刻を所定時間早めてもよい。
グループに追加されたNPCは、各ゲーム装置10において個別に制御されるので、NPCが起きる時刻はグループ内で統一されない。したがって、あるゲーム装置10においては、全員がゲームに成功していても、他のゲーム装置10においては、NPCがまだゲームに成功していないという事態が発生する。ゲーム制御部249は、NPC以外のグループの構成メンバのゲーム装置10の全てから、ゲームに成功した旨の情報を取得すると、グループ全体がゲームに成功した旨を他のゲーム装置10の全てにブロードキャストしつつ、自装置における判定においては、NPCも含めて全員がゲームに成功したときに、グループ全体がゲームに成功したと判定する。例えば、12人中、9人がユーザであり、3人がNPCであった場合に、9人のユーザと3人のNPCの全てがゲームに成功すると、9人のグループにおいてゲームに成功したと判定し、9人のユーザと3人のNPCのいずれかがゲームに失敗すると、グループ全体がゲームに失敗したと判定する。別の例においては、グループ全体がゲームに成功したか否かを判定する際に、NPCがゲームに成功したか否かは考慮されなくてもよい。この場合、ゲーム制御部249は、NPC以外のグループの構成メンバのゲーム装置10の全てから、ゲームに成功した旨の情報を取得すると、その時点で自装置のNPCが起きていたか否かにかかわらず、グループ全体がゲームに成功したと判定する。これにより、NPCが追加されたことにより、グループ全体のゲームの成否が、それぞれのゲーム装置10において異なってしまうことを防ぐことができる。
NPCの属性などのパラメータは、NPCをグループに追加するたびにランダムに生成されてもよいし、ゲームデータ保持部260に保持されていてもよい。有名人やキャラクタなどのアバターとパラメータを含むNPCのデータが、何らかの特典としてユーザに与えられてもよい。例えば、NPCのデータが、追加コンテンツとして、管理サーバ100などからダウンロードされ、NPCデータ保持部262に格納されてもよい。NPCデータ保持部262に格納された複数のNPCのうち、優先的に選択されるべきNPCをユーザが指定できるようにしてもよい。この場合、NPC制御部246は、グループ情報取得部243が管理サーバ100から情報を取得したグループの構成メンバの数が、グループの定員に達していない場合、まず、ユーザから指定されたNPCをグループに追加し、それでもグループの定員に達しない場合は、さらに所定の条件によりNPCを選択して追加する。ユーザにより選択されたNPCが必ずグループに含まれるようにするために、例えば、マッチング要求送信部242は、グループの定員から、ユーザにより選択されたNPCの数を減じた数を定員とするグループの生成を管理サーバ100へ要求してもよい。これにより、ユーザは、好みの人物やキャラクタなどに起こしてもらう楽しみを味わうことができる。NPCのパラメータは、グループに追加されたときのユーザとのインタラクションなどに基づいて変更され、ゲームデータ保持部260に保持されてもよい。NPCアイコンは、NPCであることが視覚的に認識できるように、他PCアイコンとは異なる表示態様でゲーム画面に表示されてもよいし、他PCアイコンと視覚的に区別できないように、他PCアイコンと同じ表示態様でゲーム画面に表示されてもよい。
図16は、本実施の形態に係るゲーム制御方法の手順を示すフローチャートである。時刻設定部241がユーザから時刻の設定を受け付けると(S100)、マッチング要求送信部242は、設定時刻から第1時間前の時刻が到来するまで待機し(S102のN)、その時刻が到来すると(S102のY)、クリエイト要求を送信するかスキャン要求を送信するかを決定し(S104)、設定時刻を管理サーバ100へ送信する(S106)。グループ情報取得部243が、管理サーバ100から、グループの構成メンバのゲーム装置10の情報を取得すると(S108のY)、通信部230は、そのゲーム装置10との間でピアツーピア接続を確立する(S110)。グループの構成メンバのゲーム装置10の情報を取得しないときは(S108のN)、S110をスキップする。グループ情報取得部243は、設定時刻から第2時間前の時刻が到来するまで(S112のN)、S108及びS110を繰り返し、その時刻が到来すると(S112のY)、グループが定員に達しているか判定する(S114)。定員に達していない場合(S114のN)、NPC制御部246は、定員に達するまでNPCを追加する(S116)。定員に達している場合(S114のY)、S116をスキップする。ゲーム制御部249は、設定時刻が到来するまで待機し(S118のN)、設定時刻が到来すると(S118のY)、ゲームを実行する(S120)。
図17は、図16のS120の詳細な手順を示すフローチャートである。自PC制御部244は、ゲーム画面に自PCアイコンを表示し、ゲーム画面内で自PCアイコンを移動させる(S130)。ユーザが自PCアイコンをタップすると(S132のY)、ゲーム制御部249はゲームに成功したと判定し、その旨を他のゲーム装置10へブロードキャストして(S142)、グループの構成メンバのアイコンを一覧表示する(S144)。ユーザが自PCアイコンをタップしない間は(S132のN)、グループ情報取得部243が、他の構成メンバが起床した旨の情報を取得すると(S134のY)、他PC制御部245がゲーム画面に他PCアイコンを表示し、ゲーム画面内で他PCアイコンを移動させる(S136)。また、インタラクション受信部247が、既に起床している他の構成メンバからインタラクションを受信すると(S138のY)、ゲーム制御部249は、インタラクションの内容に応じて、他PCアイコンの表示態様を変更したり、対応する音声を変更したりして、インタラクションを実行する(S140)。他の構成メンバが起床していないとき(S134のN)、インタラクションを受信しないとき(S138のN)は、S130に戻る。ユーザが自PCアイコンをタップするまでの間、S130からS140の手順が繰り返される。
図18は、図17のS144の詳細な手順を示すフローチャートである。ゲーム制御部249は、同じグループに属する他の構成メンバの他PCアイコンをゲーム画面に一覧表示する(S150)。このとき、まだ起床していないメンバの他PCアイコンにはオブジェクトが付される。ユーザが、まだ起床していないメンバに対してインタラクションを送信する操作入力を行うと(S152のY)、インタラクション送信部248は、そのメンバのゲーム装置10へインタラクションを送信する(S154)。インタラクションを送信しない場合は(S152のN)、S154をスキップする。グループ情報取得部243が、他の構成メンバが起床した旨の情報を取得すると(S156のY)、他PC制御部245は、その構成メンバの他PCアイコンに付されていたオブジェクトを消去する(S158)。NPCを除く全ての構成メンバから起床した旨の情報を取得した場合は(S160のY)、グループ全体がゲームに成功した旨を示す情報をブロードキャストする(S162)。NPCも含めて全ての構成メンバが起床していた場合は、グループ全体がゲームに成功した旨をゲーム画面に表示する(S164)。他の構成メンバが起床した旨の情報を取得しないとき(S156のN)、まだ起床していない構成メンバがいるとき(S160のN)は、S150に戻る。
以上、本発明を実施例をもとに説明した。この実施例は例示であり、その各構成要素や各処理プロセスの組合せにいろいろな変形が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
実施の形態においては、クリエイト要求を送信するかスキャン要求を送信するかをゲーム装置10のマッチング要求送信部242が決定したが、別の例においては、ゲーム装置10側ではクリエイト要求とスキャン要求を区別せずにマッチング要求を管理サーバ100へ送信し、管理サーバ100のマッチング要求受付部141が、新たなグループを生成するのか、既存のグループに配属するのかを決定してもよい。