以下、本発明の実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必要構成要件であるとは限らない。
1.構成
図1は、本実施形態のゲームシステムを示す。本実施形態では、複数の端末10とサーバ20(サーバシステム)とによって構成される。つまり、図1に示すように、本実施形態のゲームシステムは、サービスを提供するサーバ20(サーバ装置)と、端末10(10A、10B、10C・・・)とが、ネットワークに接続可能に構成される。
サーバ20は、端末10からの要求に応じてオンラインゲームサービスを提供する情報処理装置である。サーバ20は、1又は複数のサーバ(認証サーバ、マッチングサーバ、ゲーム処理サーバ、通信サーバ、課金サーバ、データベースサーバ等)により構成することができる。
本実施形態では、端末10において、ゲームが実行され、サーバ20において、端末10で実行されるゲームの進行制御処理などが実行される。また、サーバ20では、プレーヤのアカウント情報や、端末10で実行されるゲームのゲーム結果、当該ゲームで使用可
能なゲーム媒体(キャラクタ、アイテム等)や、ゲーム内通貨などの情報が管理される。
端末10は、位置情報を取得可能な携帯端末(スマートフォン、タブレット型端末、携帯電話、携帯型ゲーム機等)などの情報処理装置であり、インターネット(WAN)、LANなどのネットワークを介してサーバ20に接続可能な装置である。なお、端末10とサーバ20との通信回線は、有線でもよいし無線でもよい。
図2に本実施形態のサーバ20の機能ブロック図の一例を示す。なお本実施形態のサーバは図2の構成要素(各部)の一部を省略した構成としてもよい。
記憶部270は、処理部200の各部としてコンピュータを機能させるためのプログラムや各種データを記憶するとともに、処理部200のワーク領域として機能し、その機能はハードディスク、RAMなどにより実現できる。記憶部270は、格納部272(例えばデータベース)を含む。
格納部272は、本実施形態のゲームシステムで実行されるオンラインゲームに参加する複数のプレーヤそれぞれのプレーヤ情報を格納する。例えば、格納部272は、複数のプレーヤそれぞれのプレーヤ識別情報(プレーヤIDや、プレーヤが使用する端末IDなど)に対応づけて、プレーヤ名(プレーヤアカウント)、パスワード、端末10の宛先情報(IPアドレス等)などを、プレーヤ情報として格納する。また、格納部272は、プレーヤとフレンド関係(所定の関係の一例)にある他のプレーヤを特定するための情報を、プレーヤ情報として格納する。また、格納部272は、プレーヤ識別情報に対応づけて、プレーヤが保有するゲーム媒体やゲーム内通貨に関する情報を、プレーヤ情報として格納する。
通信部296は端末10や他のサーバとの間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
処理部200(プロセッサ)は、端末10から送信され通信部296を介して受信したデータ、プログラムなどに基づいて、プレーヤ情報の管理、ログイン/ログアウトに関する処理、ゲーム進行制御処理、通信制御処理などの各種処理を行う。処理部200は記憶部270をワーク領域として各種処理を行う。処理部200の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。処理部200は、記憶制御部210と、ゲーム進行制御部212とを含む。
記憶制御部210は、現実空間における端末10(プレーヤ端末)の位置情報を端末10から取得し、取得した位置情報を端末10に関連付けて記憶部270(格納部272)に記憶させる。記憶制御部210は、第1のゲームタイミングにおける位置情報を取得して第1位置情報として記憶部270に記憶させ、第2のゲームタイミングにおける位置情報を第2位置情報として記憶部270に記憶させる。第1のゲームタイミングは、例えば、所与のゲーム実行開始タイミングであり、ゲーム開始時のタイミングであってもよいし、その前後のタイミングであってもよい。第2のゲームタイミングは、例えば、ゲーム終了(ゲームクリア、ゲームクリアの失敗、所定の制限時間や制限ターン数の経過など)時のタイミングであってもよいし、ゲーム上の区切りタイミング(ターン経過時など)であってもよいし、第1のゲームタイミングから所定時間毎のタイミングであってもよい。
ゲーム進行制御部212は、端末10の位置情報に基づきゲーム情報を生成し、生成したゲーム情報に基づき端末10で実行されるゲームの進行を制御する。ゲーム進行制御部
212は、ゲーム情報として、端末10の現在位置の地図情報に基づいてゲームマップを生成してもよい。また、ゲーム進行制御部212は、記憶部に記憶された第1位置情報と第2位置情報とを比較して一致するか否かを判定し、判定結果に応じてゲームの実行を制御する。なお、第1位置情報で特定される位置と第2位置情報で特定される位置間の距離が所定距離以下である場合に、第1位置情報と第2位置情報とが一致すると判定してもよい。
第2のゲームタイミングがゲーム終了時のタイミング又はゲーム上の区切りタイミングである場合、ゲーム進行制御部212は、第1位置情報と第2位置情報とが一致する場合に、ゲーム開始時のゲーム条件(ゲームマップ等)を引き継いでゲームを実行させ、第1位置情報と第2位置情報とが一致しない場合は、ゲーム条件をリセットし、第2のゲームタイミング以降に取得した位置情報に基づき生成したゲーム情報に基づいてゲームを実行させてもよい。また、ゲーム進行制御部212は、第1位置情報と第2位置情報とが一致するか否かに応じて、ゲームのコンティニューの条件(コンティニュー可能とする条件や、コンティニューした際のパラメータ)を変更してもよい。また、ゲーム進行制御部212は、第1位置情報と第2位置情報とが一致する場合に、プレーヤと所定の関係にあり且つ当該プレーヤと現在位置が一致する他のプレーヤに対し、当該プレーヤと同じゲーム条件でゲームをプレイ可能にさせてもよい。
第2のゲームタイミングが第1のゲームタイミングから所定時間毎のタイミングである場合、ゲーム進行制御部212は、第1位置情報と前記第2位置情報とが一致しなくなった場合に、その時点におけるゲームの進行内容を保存し、第2のゲームタイミング以降に取得した位置情報に基づき生成したゲーム情報に基づいてゲームを実行させ、その後、新たに取得した位置情報と第1位置情報とが一致した場合に、保存したゲームの進行内容に基づきゲームを再開させてもよい。
また、ゲーム進行制御部212は、第1位置情報と第2位置情報とが一致しなくなるまでに要した時間に応じてゲームの進行を制御してもよい。また、ゲーム進行制御部212は、第1位置情報と第2位置情報とが一致しない場合、第1位置情報と第2位置情報の組み合わせが所定条件を満たす場合には、プレーヤに特典を付与してもよい。
図3に、本実施形態の端末10の機能ブロック図の一例を示す。なお本実施形態の端末は図3の構成要素(各部)の一部を省略した構成としてもよい。
入力部150は、プレーヤからの入力情報を入力(検出)するための機器であり、プレーヤの入力情報(操作情報)を処理部100に出力する。入力部150の機能は、タッチパネル、タッチパッド、マウス、方向キーやボタン、キーボード等の入力機器により実現することができる。
測位部160は、GPS等の測位衛星からの測位衛星信号を受信し、受信した測位衛星信号に基づき端末10の現在位置を測位し、位置情報(緯度、経度、標高等の測位情報)を処理部100に出力する。測位部160の機能は、測位衛星信号受信回路、プロセッサ、プログラムなどにより実現できる。
記憶部170は、処理部100の各部としてコンピュータを機能させるためのプログラムや各種データを記憶するとともに、処理部100のワーク領域として機能し、その機能はハードディスク、RAMなどにより実現できる。
表示部190は、処理部100で生成されたゲーム画像を出力するものであり、その機能は、入力部150としても機能するタッチパネル、LCD或いはHMD(ヘッドマウン
トディスプレイ)などのディスプレイにより実現できる。
音出力部192は、処理部100で生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
通信部196はサーバ20や他の端末10との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
なお、サーバ20が有する情報記憶媒体や記憶部に記憶されている処理部100の各部としてコンピュータを機能させるためのプログラムや各種データを、ネットワークを介して受信し、受信したプログラムやデータを記憶部170に記憶してもよい。このようにプログラムや各種データを受信して端末を機能させる場合も本発明の範囲内に含む。
処理部100(プロセッサ)は、入力部150からの入力情報(操作情報)、測位部160からの位置情報、プログラム、通信部196を介して受信したデータなどに基づいて、ゲーム処理、画像生成処理、音生成処理、などの処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。処理部100は、ゲーム処理部110、画像生成部120、音生成部130を含む。
ゲーム処理部110は、入力部150からの入力情報や、測位部160からの位置情報、サーバ20から受信した情報(ゲーム情報など)に基づいて、ゲームを実行する処理を行う。ゲーム処理部110は、例えば、位置情報に基づきサーバ20で生成されたゲームマップにおいて入力情報に基づいてオブジェクトが移動するゲームや、位置情報に基づいて仮想空間内においてゲームイベントが発生するゲームを実行する。また、ゲーム処理部110は、第1のゲームタイミング及び第2のゲームタイミングにおいて、測位部160からの位置情報をサーバ20に送信する。
画像生成部120は、処理部100で行われる種々の処理の結果に基づいて描画処理を行い、これによりゲーム画像を生成し、表示部190に出力する。画像生成部120は、オブジェクト空間(ゲーム空間)内において仮想カメラ(所与の視点)から見える画像(いわゆる3次元画像)を生成してもよい。
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
また処理部100は、ゲームを開始した場合には、ゲームを開始したことを通知するための情報をサーバ20に送信し、ゲームが終了した場合には、ゲーム結果や各種ゲームパラメータに関するゲーム結果情報(プレーヤが保有するゲーム媒体やゲーム内通貨に関する情報、ゲーム進行状況等)をサーバ20に送信する。サーバ20は、ゲーム装置(端末10)から送信された、ゲーム結果情報に基づいて、各プレーヤに対応付けられた各種データの更新処理を行う。なお、端末10側で生成したゲーム結果情報をサーバ20に送信する例に限らず、ゲーム実行中に端末10からサーバ20に順次送信される各種の情報に基づいて、サーバ20側でゲーム結果情報を生成するようにしてもよい。また、ゲームが終了したか否かも、端末10側で判断してもよいし、サーバ20側で判断してもよい。
また、本実施形態のゲームシステムをサーバシステムとして構成してもよい。サーバシステムは、1又は複数のサーバ(認証サーバ、ゲーム処理サーバ、通信サーバ、課金サーバ、データベースサーバ等)により構成することができる。この場合には、サーバシステ
ムは、ネットワークを介して接続された1又は複数の端末(例えば、スマートフォン、携帯電話、携帯型ゲーム機等)から送信された操作入力(端末の入力部に入力されたデータ)や位置情報に基づいて、ゲーム処理部110の処理を行って、画像を生成するための画像生成用データを生成し、生成した画像生成用データを各端末に対して送信する。ここで、画像生成用データとは、本実施形態の手法により生成された画像を各端末において表示するためのデータであり、画像データそのものでもよいし、各端末が画像を生成するために用いる各種データ(オブジェクトデータ、ゲーム処理結果データ等)であってもよい。このように、記憶制御部210、ゲーム進行制御部212及びゲーム処理部110の処理を、全てサーバで実行するように構成してもよいし、全て端末で実行するように構成してもよいし、サーバと端末で分散して実行するように構成してもよい。本発明は、スマートフォン等で実行されるゲームアプリやブラウザゲーム、携帯型ゲーム機用のゲームソフトなどに適用することができる。
2.本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
2-1.第1の実施形態
第1の実施形態では、サーバ20において、端末10の現在位置の地図情報に基づいてゲームマップ(ゲーム情報の一例)を生成し、端末10において、プレーヤの操作に基づき当該ゲームマップ内をオブジェクト(キャラクタ)が移動するゲームを実行する。
ゲーム開始時(所与のゲーム実行開始タイミング、第1のゲームタイミング)において、端末10は位置情報(ゲーム開始時の現在位置)をサーバ20に送信し、サーバ20は、当該位置情報を第1位置情報として当該端末10のプレーヤに関連付けて記憶部270に記憶する。
図4に示すように、サーバ20は、第1位置情報に基づいて、現実世界の地図情報(道路や建物の形状や配置、地形、標高等の地図情報)から現在位置を含む(例えば、現在位置を中心とする)矩形のエリアを切り出し、当該矩形のエリアから道路(車道や歩道)を抽出してゲームマップGMを生成する。抽出された道路は、ゲームマップGMにおいてキャラクタ(プレーヤキャラクタ、敵キャラクタ)が移動する通路PWとなる。この際、道路の幅が一定となるように補正してもよい。
図5に示すように、ゲームマップGMには、4種類のオブジェクトとして、プレーヤキャラクタPC、敵キャラクタEC、第1のアイテムIT1及び第2のアイテムIT2が配置される。プレーヤキャラクタPCは、一定の速度で通路PWを移動し、プレーヤの方向指示入力(上下左右のいずれかの方向を指示する操作)があった場合に、方向指示入力で指示された方向に対応する方向に移動可能であれば、当該方向に移動する(移動方向を変更する)。なお、プレーヤキャラクタPCが通路PWの行き止まり地点に到達した場合、当該地点で折り返すようにしてもよいし、他の行き止まり地点に出現する(ワープする)ようにしてもよい。敵キャラクタECは所与のアルゴリズムに従って一定の速度で通路PWを移動し、プレーヤキャラクタPCが「通常モード」(初期状態)の敵キャラクタECと接触すると、ゲームオーバ(ゲームクリアの失敗)となり、ゲームを終了する。プレーヤキャラクタPCが第1のアイテムIT1に接触すると、当該第1のアイテムIT1は消滅する。また、プレーヤキャラクタPCが第2のアイテムIT2に接触すると、当該第2のアイテムIT2が消滅するとともに、一定時間の間、敵キャラクタECが「劣勢モード」となる。プレーヤキャラクタPCが「劣勢モード」の敵キャラクタECと接触すると、当該敵キャラクタECは消滅する。そして、ゲームマップGM内の全ての第1のアイテムIT1を消滅させることができた場合、ゲームクリアとなり、ゲームを終了する。
ゲームクリア時(ゲーム終了時、第2のゲームタイミングの一例)において、端末10は位置情報(ゲームクリア時の現在位置)をサーバ20に送信し、サーバ20は、当該位置情報を第2位置情報として当該端末10のプレーヤに関連付けて記憶部270に記憶する。そして、サーバ20は、プレーヤの第1位置情報と第2位置情報とを比較し、両者が一致する(プレーヤがゲーム開始時からゲームクリア時まで同じ場所に留まった)場合には、同じゲームマップGMで(ゲーム開始時のゲーム条件で)再度プレイできるようにゲーム進行を制御する。このとき、ゲームレベルを初期値の「レベル1」から「レベル2」に上げて、より高い難易度で同じゲームマップGMを用いたゲームをプレイできるようにする。ゲームレベルを上げるとは、例えば、ゲームマップGMに配置される敵キャラクタECや第1のアイテムIT1の数を多くしたり、ゲームマップGMに配置される第2のアイテムIT2の数を少なくしたりすることである。なお、難易度を上げた上で同じゲームマップGMを用いたゲームをプレイできるようにすることに代えて(或いは、加えて)、プレーヤに特典(レアアイテム等)を付与した上で同じゲームマップGMを用いたゲームをプレイできるようにしてもよい。
一方、プレーヤの第1位置情報と第2位置情報とが一致しない(プレーヤがゲーム開始時の場所から移動した)場合には、サーバ20は、ゲーム開始時のゲームマップGMをリセットして、図6に示すように、ゲームクリア時以降に取得した位置情報(第2位置情報、或いは、ゲームクリア時より後に新たに取得した位置情報)に基づき新たなゲームマップGMを生成し、新たなゲームマップGMで初期値のレベル(「レベル1」)のゲームをプレイできるようにゲーム進行を制御する。
このように、プレーヤがゲーム開始時からゲームクリア時まで同じ場所に留まった場合に、当該プレーヤはより高い難易度で同じゲームマップを用いたゲームのプレイを続けることができるため、同じ場所でゲームプレイを続ける機会(動機)をプレーヤに提供することができる。また、プレーヤがゲーム開始時から移動した場合には、移動後の場所に基づく新たなゲームマップを用いたゲームをプレイするようにすることで、ゲーム開始時の場所から移動したにも関わらずゲーム開始時の場所に基づくゲームマップを用いたゲームを続けてプレイできてしまうことを防止することができ、プレーヤの不公平感をなくすことができる。
また、ゲームオーバ時(ゲーム終了時、第2のゲームタイミングの一例)において、端末10は位置情報(ゲームオーバ時の現在位置)をサーバ20に送信し、サーバ20は、当該位置情報を第2位置情報として当該端末10のプレーヤに関連付けて記憶部270に記憶するようにしてもよい。この場合、サーバ20は、プレーヤの第1位置情報と第2位置情報とを比較し、両者が一致する(プレーヤがゲーム開始時からゲームオーバ時まで同じ場所に留まった)場合には、無条件でゲームのコンティニュー(ゲームオーバ時のゲーム状況からゲームを再開すること)ができるようにし、プレーヤの第1位置情報と第2位置情報とが一致しない場合には、所与の条件(コンティニューの条件)を満たした場合のみ、ゲームのコンティニューができるようにしてもよい。コンティニューの条件を満たすとは、例えば、ゲーム内通貨や「スタミナ」等のパラメータを消費することである。また、第1位置情報と第2位置情報とが一致する場合には、ゲームオーバ時のゲーム状況(プレーヤキャラクタのパラメータ等)でゲームを再開できるようにし、第1位置情報と第2位置情報とが一致しない場合には、ゲームオーバ時のプレーヤキャラクタのパラメータ(体力値など)を減少させた状態でゲームを再開できるようにしてもよい。このように、プレーヤがゲーム開始時からゲームオーバ時まで同じ場所に留まった場合に、当該プレーヤはより有利な条件でゲームのコンティニューができるため、同じ場所でゲームプレイを続ける機会(動機)をプレーヤに提供することができる。なお、第1位置情報と第2位置情報とが一致しない場合、第1位置情報で特定される位置と第2位置情報で特定される位置間の距離(ゲーム開始時からゲームオーバ時までの移動距離)が大きいほど、コンティニ
ューの条件を厳しくする(例えば、コンティニューに必要なゲーム内通貨やパラメータの消費量を大きくする)ようにしてもよい。
また、プレーヤの第1位置情報と第2位置情報(ゲームクリア時の現在位置)とが一致した場合に、プレーヤとフレンド関係にある他のプレーヤの現在位置を取得し、当該プレーヤの第2位置情報で特定される位置と当該他のプレーヤの現在位置が一致する場合に、当該他のプレーヤに対し、当該プレーヤと同じゲーム条件(ゲームレベル等)でゲームをプレイ可能にさせてもよい。例えば、プレーヤが「レベル1」のゲームのゲームクリア時まで同じ場所で留まったことで「レベル2」のゲームがプレイ可能になった場合、当該プレーヤとフレンド関係にある他のプレーヤが当該場所に来ると、当該他のプレーヤは、「レベル1」のゲームをプレイすることなく、「レベル2」のゲームをプレイすることができる。このように、プレーヤがゲーム開始時からゲームクリア時まで同じ場所に留まった場合に、当該プレーヤのフレンドが当該プレーヤと同じゲーム条件でプレイ可能になるため、同じ場所でゲームプレイを続ける機会(動機)をプレーヤに提供することができる。
また、ゲーム上の区切りタイミングにおける位置情報を取得して第2位置情報とし、第1位置情報と第2位置情報が一致する場合に、同じゲームマップGMで再度プレイできる(一致しない場合は、ゲームマップGMをリセットする)ようにしたり、無条件でゲームのコンティニューができるようにしたり、プレーヤとフレンド関係にあり且つ当該プレーヤと現在位置が一致する他のプレーヤに当該プレーヤと同じゲーム条件でゲームをプレイ可能にさせたりしてもよい。ゲーム上の区切りタイミングとは、例えばプレーヤキャラクタPCの残機があり、プレーヤキャラクタPCが敵キャラクタECと接触すると残機を消費してコンティニューでき、残機が0の状態でプレーヤキャラクタPCが敵キャラクタECと接触するとゲームオーバとなる場合の、残機が増減したタイミングであってもよい。
また、ゲーム終了時における位置情報を取得して第2位置情報とすることに代えて、ゲーム開始時から所定時間(例えば、1分)毎のタイミング(第2のゲームタイミングの他の例)における位置情報を取得して第2位置情報とする(第2位置情報をゲーム開始時から所定時間毎に更新する)ようにしてもよい。この場合、サーバ20は、プレーヤの第1位置情報と第2位置情報を所定時間毎に比較し、両者が一致しなくなった(プレーヤがゲーム開始時の場所から移動した)場合に、その時点におけるゲームの進行内容(プレイ中のゲームマップGM、ゲームレベル、ゲームマップGMにおける各オブジェクトの位置、スコア、達成度などのゲーム状況)を当該プレーヤに関連付けて保存する(記憶部270に記憶する)。そして、図6に示すように、第1位置情報と第2位置情報とが一致しなくなった時点以降に取得した位置情報(一致しなくなった時点の第2位置情報、或いは、その時点より後に新たに取得した位置情報)に基づき新たなゲームマップGMを生成し、新たなゲームマップGMでゲームをプレイできるようにゲーム進行を制御する。この間も第2位置情報は所定時間毎に更新され、プレーヤの第1位置情報と最新の第2位置情報とが一致した(プレーヤが最初のゲーム開始時の場所に戻ってきた)場合には、当該プレーヤに関連付けて保存されたゲームの進行内容に基づいてゲームを再開させる制御を行う。
このように、プレーヤがゲーム開始時の場所から移動した場合に、その時点でのゲームの進行内容が保存され、その後当該プレーヤがゲーム開始時の場所に戻ることを条件として、当該プレーヤはゲームを再開して保存されたゲーム内容の続きをプレイすることができるため、プレーヤの不公平感をなくしつつ、ゲーム開始時の場所から移動してしまったプレーヤに対してもゲームを楽しむ機会を提供することができる。
なお、ゲームの進行内容の保存期間を設け、ゲームの進行内容が保存されてから当該保存期間が経過する前に、第1位置情報と第2位置情報とが一致した場合のみ、保存されたゲームの進行内容に基づいてゲームを再開させるようにしてもよい。この場合、ゲームレ
ベル(保存したゲームマップGMのゲームレベル、或いは、プレーヤのゲームレベル)に応じて保存期間を変化させ、ゲームレベルが高いほど保存期間が長くなるようにしてもよい。また、プレーヤがゲーム内通貨や所定のポイントを消費した場合に、消費量に応じて保存期間を長くするようにしてもよい。また、ゲームの進行内容が保存されたときの位置から所定距離だけ離れるまで(或いは、ゲームの進行内容が保存されてからの移動距離が所定距離に達するまで)当該ゲームの進行内容を保存するようにしてもよい。
また、プレーヤの第1位置情報と第2位置情報(ゲームクリア時の現在位置、ゲームオーバ時の現在位置、ゲーム上の区切りタイミングにおける現在位置、或いは、ゲーム開始時から所定時間毎に更新される現在位置)とが一致しない場合、第1位置情報と第2位置情報の組み合わせが所定条件を満たす場合には、プレーヤに特典を付与するようにしてもよい。例えば、第1位置情報で特定される場所と第2位置情報で特定される場所とが所定の関係(例えば、姉妹都市や友好都市)の関係であったり、第1位置情報で特定される位置と第2位置情報で特定される位置間の距離が所定距離(或いは、所定距離範囲内、所定距離以上)であったり、第1位置情報で特定される標高と第2位置情報で特定される標高との差(標高差)が所定値以上であったりした場合に、所定条件を満たすとしてプレーヤに特典を付与してもよい。プレーヤに特典を付与するとは、例えば、プレーヤにゲーム媒体やゲーム内通貨等を付与することであってもよいし、特別に(無条件で)ゲームのコンティニューをプレーヤに許可することであってもよいし、第1位置情報に基づき生成したゲームマップGMとゲーム終了時以降に取得した位置情報に基づき生成したゲームマップGMとを接続して新たなゲームマップ(第1位置情報に基づき生成したゲームマップGMの通路PW上の所定地点とゲーム終了時以降に取得した位置情報に基づき生成したゲームマップGMの通路PW上の所定地点間をキャラクタが移動可能なマップ)を生成し、当該新たなゲームマップを用いたゲームをプレイ可能にすることであってもよい。
また、第1位置情報と第2位置情報とが一致しなくなるまでに要した時間に応じてゲームの進行を制御するようにしてもよい。例えば、第1位置情報と第2位置情報とが一致しなくなるまでに要した時間が所定時間より短い場合、ゲームマップGMのリセット(ゲーム条件のリセット)やゲームの進行内容の保存を行わないようにしてもよい。これにより、測位誤差によるリセット等を防止することができる。また、第1位置情報と第2位置情報とが一致しなくなるまでに要した時間が長いほど、リセット後のゲーム開始状況が有利になる(例えば、ゲームの難易度が下がる)ようにしたり、ゲームの進行内容の保存時により有利な特典を付与するようにしてもよい。
2-2.第2の実施形態
第2の実施形態では、端末10において、現在位置(所定時間毎に取得した位置情報)に基づいてゲーム空間(現実空間に対応する仮想三次元空間)内をプレーヤキャラクタが移動するゲームを実行し、サーバ20において、端末10の現在位置に基づいてゲームイベント(プレーヤキャラクタと敵キャラクタとが対戦するイベント)を発生させる。
図7に、端末10の表示部190に表示されるゲーム画面の一例を示す。図7に示すゲーム画面GIは、ゲーム空間GS内の仮想カメラから見た画像である。ゲーム空間GSには、プレーヤキャラクタPCが配置され、複数の特定地点SPが設定されている。現実空間においてプレーヤ(端末10)が移動すると、プレーヤキャラクタPCは、プレーヤの移動方向に応じた方向に向けて、プレーヤの移動距離に応じた距離だけ、ゲーム空間GS内を移動する。また、ゲーム空間GS内の仮想カメラはプレーヤキャラクタPCに追従して移動する。プレーヤキャラクタPCが特定地点SPに到達すると(プレーヤの現在位置が特定地点SPに対応する現実空間での特定位置と一致すると)、プレーヤキャラクタPCと当該特定地点SPに関連付けられた敵キャラクタ(例えば、レイドボス)とが対戦するイベントが発生する。当該イベントにおいて、プレーヤが所定の操作を行うとプレーヤ
キャラクタPCが敵キャラクタを攻撃し、また、所与のアルゴリズムに従って敵キャラクタもプレーヤキャラクタPCを攻撃する。プレーヤキャラクタPCが敵キャラクタを攻撃すると、プレーヤキャラクタPCの攻撃力と敵キャラクタの防御力に応じて敵キャラクタの体力値が減少する。また、敵キャラクタがプレーヤキャラクタPCを攻撃すると、敵キャラクタの攻撃力とプレーヤキャラクタPCの防御力に応じてプレーヤキャラクタPCの体力値が減少する。そして、プレーヤキャラクタPCの体力値が先に0になった場合には、ゲームオーバとなり、イベントを終了する。また、敵キャラクタの体力値が先に0になった場合には、ゲームクリアとなり、イベントを終了する。また、イベントに制限時間を設け、制限時間経過時において、プレーヤキャラクタPCの体力値が敵キャラクタの体力値未満である場合にゲームオーバとし、プレーヤキャラクタPCの体力値が敵キャラクタの体力値以上である場合にゲームクリアとしてもよい。
サーバ20は、イベント開始時の端末10の現在位置(プレーヤキャラクタPCが特定地点SPに到達したときの端末10の位置情報)を第1位置情報として当該端末10のプレーヤに関連付けて記憶部270に記憶する。
また、イベントのゲームクリア時(ゲーム終了時)において、端末10は位置情報(ゲームクリア時の現在位置)をサーバ20に送信し、サーバ20は、当該位置情報を第2位置情報として当該端末10のプレーヤに関連付けて記憶部270に記憶する。そして、サーバ20は、プレーヤの第1位置情報と第2位置情報とを比較し、両者が一致する(プレーヤがイベント開始時からゲームクリア時まで同じ場所に留まった)場合には、同じ敵キャラクタを対戦相手として(イベント開始時のゲーム条件で)再度イベントをプレイできるようにゲーム進行を制御する。このとき、ゲームレベルを初期値の「レベル1」から「レベル2」に上げて、より高い難易度で同じ敵キャラクタと対戦するイベントをプレイできるようにする。ゲームレベルを上げるとは、例えば、敵キャラクタのパラメータ(攻撃力、防御力、体力値の初期値)を増加させることである。なお、難易度を上げた上で同じ敵キャラクタと対戦するイベントをプレイできるようにすることに代えて(或いは、加えて)、プレーヤに特典(レアアイテム等)を付与した上で同じ敵キャラクタと対戦するイベントをプレイできるようにしてもよい。
一方、プレーヤの第1位置情報と第2位置情報とが一致しない(プレーヤがイベント開始時の場所から移動した)場合には、サーバ20は、その後プレーヤキャラクタPCが別の特定地点SPに到達した(プレーヤの現在位置が別の特定地点SPに対応する現実空間での位置に一致した)ときに、当該特定地点SPに関連付けられた新たな敵キャラクタと対戦するイベントを発生させる。
このように、プレーヤがイベント開始時からゲームクリア時まで同じ場所に留まった場合に、当該プレーヤはより高い難易度で同じ敵キャラクタと対戦するイベントのプレイを続けることができるため、同じ場所でゲームプレイを続ける機会(動機)をプレーヤに提供することができる。また、プレーヤがイベント開始時から移動した場合には、移動後の場所に基づく新たなイベント(新たな敵キャラクタとの対戦ゲーム)をプレイするようにすることで、イベント開始時の場所から移動したにも関わらずイベント開始時の場所に基づくイベントを続けてプレイできてしまうことを防止することができ、プレーヤの不公平感をなくすことができる。
また、第1の実施形態と同様に、イベントのゲームオーバ時(ゲーム終了時)において、端末10は位置情報(ゲームオーバ時の現在位置)をサーバ20に送信し、サーバ20は、当該位置情報を第2位置情報として当該端末10のプレーヤに関連付けて記憶部270に記憶するようにしてもよい。この場合、サーバ20は、プレーヤの第1位置情報と第2位置情報とを比較し、両者が一致する(プレーヤがイベントのゲーム開始時からゲーム
オーバ時まで同じ場所に留まった)場合には、無条件でゲームのコンティニューができるようにし、プレーヤの第1位置情報と第2位置情報とが一致しない場合には、所与の条件を満たした場合のみ、ゲームのコンティニューができるようにしてもよい。
また、プレーヤの第1位置情報と第2位置情報(ゲームクリア時の現在位置)とが一致した場合に、プレーヤとフレンド関係にある他のプレーヤの現在位置を取得し、当該プレーヤの第2位置情報で特定される位置と当該他のプレーヤの現在位置が一致する場合に、当該他のプレーヤに対し、当該プレーヤと同じゲーム条件(ゲームレベル等)でイベントをプレイ可能にさせてもよい。
また、ゲーム上の区切りタイミングにおける位置情報を取得して第2位置情報とし、第1位置情報と第2位置情報が一致する場合に、同じ敵キャラクタと対戦するイベントを再度プレイできる(一致しない場合は、イベントをリセットする)ようにしたり、無条件でゲームのコンティニューができるようにしたり、プレーヤとフレンド関係にあり且つ当該プレーヤと現在位置が一致する他のプレーヤに当該プレーヤと同じゲーム条件でイベントをプレイ可能にさせたりしてもよい。ゲーム上の区切りタイミングとは、例えばターンが経過したタイミングであってもよいし、イベント内で敵キャラクタが波状攻撃してくる場合の、各波の攻撃が行われる(終わる、始まる)タイミングであってもよい。
また、イベント終了時(イベントのゲームクリア時、ゲームオーバ時)における位置情報を取得して第2位置情報とすることに代えて、イベント開始時から所定時間毎のタイミングにおける位置情報を取得して第2位置情報とするようにしてもよい。この場合、サーバ20は、プレーヤの第1位置情報と第2位置情報を所定時間毎に比較し、両者が一致しなくなった(プレーヤがイベント開始時の場所から移動した)場合に、その時点におけるイベントの進行内容(プレイ中のイベント(特定地点SP)、プレーヤキャラクタPC及び敵キャラクタの体力値、経過ターン数、制限時間の残り時間などのゲーム状況)を当該プレーヤに関連付けて保存する(記憶部270に記憶する)。そして、その後プレーヤキャラクタPCが別の特定地点SPに到達したときに、当該特定地点SPに関連付けられた新たな敵キャラクタと対戦するイベントを発生させる。この間も第2位置情報は所定時間毎に更新され、プレーヤの第1位置情報と最新の第2位置情報とが一致した(プレーヤキャラクタPCが最初の特定地点SPに戻ってきた)場合には、当該プレーヤに関連付けて保存されたイベントの進行内容に基づいてイベント(最初の特定地点SPに関連付けられた敵キャラクタと対戦するイベント)を再開させる制御を行う。
このように、プレーヤがイベント開始時の場所から移動した場合に、その時点でのイベントの進行内容が保存され、その後当該プレーヤがイベント開始時の場所に戻ることを条件として、当該プレーヤはイベントを再開して保存されたゲーム内容の続きをプレイすることができるため、プレーヤの不公平感をなくしつつ、イベント開始時の場所から移動してしまったプレーヤに対してもゲームを楽しむ機会を提供することができる。
また、第1の実施形態と同様に、プレーヤの第1位置情報と第2位置情報(イベントのゲームクリア時の現在位置、ゲームオーバ時の現在位置、ゲーム上の区切りタイミングにおける現在位置、或いは、イベント開始時から所定時間毎に更新される現在位置)とが一致しない場合、第1位置情報と第2位置情報の組み合わせが所定条件を満たす場合には、プレーヤに特典を付与するようにしてもよい。
また、第1位置情報と第2位置情報とが一致しなくなるまでに要した時間に応じてゲームの進行を制御するようにしてもよい。例えば、第1位置情報と第2位置情報とが一致しなくなるまでに要した時間が所定時間より短い場合、イベントのリセット(ゲーム条件のリセット)やゲームの進行内容の保存を行わないようにしてもよい。また、第1位置情報
と第2位置情報とが一致しなくなるまでに要した時間が長いほど、リセット後のゲーム開始状況が有利になる(例えば、イベントの難易度が下がる)ようにしたり、ゲームの進行内容の保存時により有利な特典を付与するようにしてもよい。
3.処理
3-1.第1の実施形態
次に、第1の実施形態のゲームシステム(サーバ20)の処理の一例について図8、図9のフローチャートを用いて説明する。図8は、ゲーム終了時における位置情報を取得して第2位置情報とする場合の処理の流れを示すフローチャートである。
まず、記憶制御部210は、ゲーム開始時における位置情報を端末10から受信したか否かを判断し(ステップS10)、当該位置情報を受信した場合(ステップS10のY)には、当該位置情報を第1位置情報として端末10に関連付けて記憶部270に記憶させる(ステップS11)。次に、ゲーム進行制御部212は、第1位置情報に基づいて、第1位置情報で特定される位置の地図情報からゲームマップGMを生成し(ステップS12)、当該ゲームマップGMを用いたゲームをプレイするための情報(ゲーム情報)を端末10に送信する(ステップS13)。
次に、記憶制御部210は、ゲーム終了(ゲームクリア)時における位置情報を端末10から受信したか否かを判断し(ステップS14)、当該位置情報を受信した場合(ステップS14のY)には、当該位置情報を第2位置情報として端末10に関連付けて記憶部270に記憶させる(ステップS15)。次に、ゲーム進行制御部212は、端末10に関連付けられて記憶された第1位置情報と第2位置情報とを比較し(ステップS16)、両者が一致する(両者の差が所定値以下である)か否かを判断する(ステップS17)。第1位置情報と第2位置情報が一致しない場合(ステップS17のN)には、ステップS10に移行し、ゲーム開始時の位置情報を新たに取得して第1位置情報として記憶する(或いは、ステップS14で取得した位置情報を第1位置情報として記憶する)。第1位置情報と第2位置情報が一致する場合(ステップS17のY)には、ゲーム進行制御部212は、より高い難易度(ゲームレベル)で同じゲームマップGM(ステップS13で生成したゲームマップGM)を用いたゲームをプレイするための情報を端末10に送信し(ステップS18)、ステップS14に移行する。
図9は、ゲーム開始時から所定時間毎のタイミングにおける位置情報を取得して第2位置情報とする場合の処理の流れを示すフローチャートである。なお、図9のステップS20~S23については、図8のステップS10~S13と同様であるから説明を適宜省略する。
ステップS24において、記憶制御部210は、ゲーム開始時から所定時間毎のタイミングにおける位置情報を端末10から受信したか否かを判断し、当該位置情報を受信した場合(ステップS24のY)には、当該位置情報で、端末10に関連付けて記憶部270に記憶される第2位置情報を更新する(ステップS25)。次に、ゲーム進行制御部212は、端末10に関連付けられて記憶された第1位置情報と第2位置情報とを比較し(ステップS26)、両者が一致するか否かを判断する(ステップS27)。ゲーム開始時から所定時間毎のタイミングにおける位置情報を受信していない場合(ステップS24のN)、第1位置情報と第2位置情報が一致する場合(ステップS27のY)には、ゲーム進行制御部212は、ゲーム終了を通知する情報を端末10から受信したか否かを判断し(ステップS28)、当該情報を受信していない場合(ステップS28のN)には、ステップS24に移行し、当該情報を受信した場合(ステップS28のY)には、ステップS20に移行する。
第1位置情報と第2位置情報が一致しない場合(ステップS27のN)には、ゲーム進行制御部212は、端末10で実行中のゲームを中断させ、当該ゲームの進行内容を端末10に関連付けて記憶部270に記憶させる(ステップS29)。次に、ゲーム進行制御部212は、ゲームの進行内容の保存期間が経過したか否かを判断し(ステップS30)、保存期間が経過した場合(ステップS30のY)には、記憶部270に記憶されたゲームの進行内容を削除(或いは、削除フラグをセット)し、ステップS20に移行する。保存期間が経過していない場合(ステップS30のN)には、記憶制御部210は、ゲーム開始時から所定時間毎のタイミングにおける位置情報を端末10から受信したか否かを判断し(ステップS31)、当該位置情報を受信した場合(ステップS31のY)には、当該位置情報で第2位置情報を更新する(ステップS32)。次に、ゲーム進行制御部212は、端末10に関連付けられて記憶された第1位置情報と第2位置情報とを比較し(ステップS33)、両者が一致するか否かを判断する(ステップS34)。ゲーム開始時から所定時間毎のタイミングにおける位置情報を受信していない場合(ステップS31のN)、第1位置情報と第2位置情報が一致しない場合(ステップS34のN)には、ステップS30に移行する。第1位置情報と第2位置情報が一致する場合(ステップS34のY)には、ゲーム進行制御部212は、記憶部270に記憶されたゲームの進行内容に基づいて端末10においてゲームを再開させる制御を行い(ステップS35)、ステップS24に移行する。
3-2.第2の実施形態
次に、第2の実施形態のゲームシステム(サーバ20)の処理の一例について図10、図11のフローチャートを用いて説明する。図10は、ゲーム終了時における位置情報を取得して第2位置情報とする場合の処理の流れを示すフローチャートである。
まず、記憶制御部210は、位置情報を端末10から受信したか否かを判断し(ステップS40)、位置情報を受信した場合(ステップS40のY)には、当該位置情報で特定される位置が、ゲーム空間GS内の特定地点SPに対応する現実空間内の特定地点と一致するか否かを判断し(ステップS41)、一致する場合(ステップS41のY)には、当該位置情報を第1位置情報として端末10に関連付けて記憶部270に記憶させる(ステップS42)。次に、ゲーム進行制御部212は、第1位置情報に基づいて、第1位置情報で特定される位置(特定地点SP)に関連付けられた敵キャラクタと対戦するイベントを発生し(ステップS43)、当該イベントをプレイするための情報(ゲーム情報)を端末10に送信する(ステップS44)。
次に、記憶制御部210は、イベント終了(イベントのゲームクリア)時における位置情報を端末10から受信したか否かを判断し(ステップS45)、当該位置情報を受信した場合(ステップS45のY)には、当該位置情報を第2位置情報として端末10に関連付けて記憶部270に記憶させる(ステップS46)。次に、ゲーム進行制御部212は、端末10に関連付けられて記憶された第1位置情報と第2位置情報とを比較し(ステップS47)、両者が一致する(両者の差が所定値以下である)か否かを判断する(ステップS48)。第1位置情報と第2位置情報が一致しない場合(ステップS48のN)には、ステップS40に移行する。第1位置情報と第2位置情報が一致する場合(ステップS48のY)には、ゲーム進行制御部212は、より高い難易度(ゲームレベル)で同じ敵キャラクタと対戦するイベントをプレイするための情報を端末10に送信し(ステップS49)、ステップS45に移行する。
図11は、ゲーム開始時から所定時間毎のタイミングにおける位置情報を取得して第2位置情報とする場合の処理の流れを示すフローチャートである。なお、図11のステップS50~S54については、図10のステップS40~S44と同様であるから説明を適宜省略する。
ステップS55において、記憶制御部210は、イベント開始時から所定時間毎のタイミングにおける位置情報を端末10から受信したか否かを判断し、当該位置情報を受信した場合(ステップS55のY)には、当該位置情報で、端末10に関連付けて記憶部270に記憶される第2位置情報を更新する(ステップS56)。次に、ゲーム進行制御部212は、端末10に関連付けられて記憶された第1位置情報と第2位置情報とを比較し(ステップS57)、両者が一致するか否かを判断する(ステップS58)。イベント開始時から所定時間毎のタイミングにおける位置情報を受信していない場合(ステップS55のN)、第1位置情報と第2位置情報が一致する場合(ステップS58のY)には、ゲーム進行制御部212は、イベントを終了する(ゲームクリアやゲームオーバとなった、制限時間が経過した)か否かを判断し(ステップS59)、イベントを終了しない場合(ステップS59のN)には、ステップS55に移行し、イベントを終了する場合(ステップS59のY)には、ステップS50に移行する。
第1位置情報と第2位置情報が一致しない場合(ステップS58のN)には、ゲーム進行制御部212は、端末10で実行中のイベントのゲームを中断させ、当該イベントの進行内容を端末10に関連付けて記憶部270に記憶させる(ステップS60)。次に、ゲーム進行制御部212は、イベントの進行内容の保存期間が経過したか否かを判断し(ステップS61)、保存期間が経過した場合(ステップS61のY)には、記憶部270に記憶されたイベントの進行内容を削除(或いは、削除フラグをセット)し、ステップS50に移行する。保存期間が経過していない場合(ステップS61のN)には、記憶制御部210は、イベント開始時から所定時間毎のタイミングにおける位置情報を端末10から受信したか否かを判断し(ステップS62)、当該位置情報を受信した場合(ステップS62のY)には、当該位置情報で第2位置情報を更新する(ステップS63)。次に、ゲーム進行制御部212は、端末10に関連付けられて記憶された第1位置情報と第2位置情報とを比較し(ステップS64)、両者が一致するか否かを判断する(ステップS65)。ゲーム開始時から所定時間毎のタイミングにおける位置情報を受信していない場合(ステップS62のN)、第1位置情報と第2位置情報が一致しない場合(ステップS65のN)には、ステップS61に移行する。第1位置情報と第2位置情報が一致する場合(ステップS65のY)には、ゲーム進行制御部212は、記憶部270に記憶されたイベントの進行内容に基づいて端末10においてイベントのゲームを再開させる制御を行い(ステップS66)、ステップS55に移行する。
本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。