本開示に係るゲームシステムについて、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。以下の説明では、図面の説明において同一の要素には同一の符号を付し、重複する説明を繰り返さない。
図1は、ゲームシステム1の全体的な構成を示す模式図である。本実施形態では、ゲームシステム1は、複数のユーザに街づくりシミュレーションゲーム(以下、街づくりゲーム)を提供する。図1に示すように、ゲームシステム1は、複数のユーザ端末100と、ゲームサーバ200と、を含む。各ユーザ端末100とゲームサーバ200とは、ネットワーク2を介して接続されている。ネットワーク2は、インターネット、図示しない無線基地局によって構築される各種移動通信システム(たとえば、所謂3G、4G移動通信システム、LTE(Long Term Evolution))、または所定のアクセスポイントによってインターネットに接続可能な無線ネットワーク(たとえばWi-Fi(登録商標))を含み得る。
(ユーザ端末の物理的構成)
ユーザ端末100は、スマートフォン、フィーチャーフォン、PDA(Personal Digital Assistant)、またはタブレット型コンピュータ等の携帯端末であることがより好ましい。図1に示すように、ユーザ端末100は、通信バスによって互いに電気的に接続されたプロセッサ10と、メモリ11と、ストレージ12と、通信インターフェース(IF)13と、入出力IF14と、タッチスクリーン15とを備える。
入出力IF14は、USB(Universal Serial Bus)等を介した各種データ入出力機能、および音声入出力機能を備える。
タッチスクリーン15は、入力部151と表示部152とを組み合わせた電子部品である。入力部151は、タッチセンシティブなデバイスであり、たとえばタッチパッド等によって構成される。表示部152は、たとえば液晶ディスプレイ、または有機EL(Electro-Luminescence)ディスプレイ等によって構成される。入力部151は、タッチスクリーン15に対するユーザの指やスタイラスといった物体の接触または近接を検知し、操作入力として受け付ける。入力部151は、当該操作入力に含まれるユーザの作用(主に、タッチ操作、スワイプ操作、フリック操作、およびタップ操作等の物理的接触操作)が入力された画面位置の情報を検知して、該情報を外部へ情報信号として出力する機能を備える。タッチスクリーン15は、タッチセンシティブであればよい。タッチセンシティブなデバイスは、静電容量方式、抵抗膜方式等のどのような方式を採用したものであってもよい。
(ゲームサーバおよびユーザ端末の物理的構成)
ゲームサーバ200は、ゲームに関する各種サービスを各ユーザ端末100に提供する。ゲームサーバ200は、ワークステーションまたはパーソナルコンピュータ等の汎用コンピュータであることが、より好ましい。図1に示すように、ゲームサーバ200は、通信バスによって互いに電気的に接続されたプロセッサ20と、メモリ21と、ストレージ22と、通信インターフェース(IF)23と、入出力IF24とを備える。
プロセッサ10、20は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等を含んで構成される。プロセッサ10は、ユーザ端末100全体の動作を制御する。プロセッサ20は、ゲームサーバ200全体の動作を制御する。
メモリ11、21は、ROM(Read Only Memory)およびRAM(Random Access Memory)等の揮発性記憶装置で構成され得る主記憶装置を含んで構成される。
ストレージ12、22は、フラッシュメモリまたはHDD(Hard Disk Drive)などの不揮発性記憶装置によって構成され得る補助記憶装置を含んで構成される。メモリ11には、プロセッサ10がストレージ12からロードした各種プログラムおよびデータが一時的に記憶される。メモリ21には、プロセッサ20がストレージ22からロードした各種プログラムおよびデータが一時的に記憶される。これによりメモリ11は、プロセッサ10に対して作業領域を提供する。メモリ21は、プロセッサ20に対して作業領域を提供する。
ゲームサーバ200のストレージ22には、ゲームプログラム等のゲームデータが格納される。ユーザ端末100のストレージ12には、ゲームサーバ200からダウンロードされるゲームプログラム等のゲームデータが格納される。当該ゲームプログラムは、メモリ11、21に展開される。プロセッサ10は、メモリ11に展開されるゲームプログラムを実行する。プロセッサ20は、メモリ21に展開されるゲームプログラムを実行する。メモリ11には、プロセッサ10が当該ゲームプログラムに従って動作している間に生成した各種ゲームデータも一時的に格納される。メモリ21には、プロセッサ20が当該ゲームプログラムに従って動作している間に生成した各種ゲームデータも一時的に格納される。
通信IF13、23は、ユーザ端末100とゲームサーバ200との間で各種データを送受信するための通信制御機能を備える。通信制御機能には、たとえば、無線LAN(Local Area Network)接続機能、有線LAN、無線LAN、携帯電話回線網を介したインターネット接続機能、近距離無線通信機能等が含まれる。
本実施形態では、各種データは、所定のゲームプログラム、ユーザ情報、ゲーム情報等のゲームデータ、それらをユーザ端末100とゲームサーバ200との間に送受信させる指示、および、ゲームを進行させるための指示を含む。
たとえばプロセッサ10は、通信IF13を介してユーザIDをゲームサーバ200に送信することによって、当該ユーザIDに関連付けられたゲームオブジェクト(保有する建物等)に関する情報をゲームサーバ200から受信する。また、プロセッサ10は、ユーザ作用に基づいてゲーム空間G内にオブジェクトOを配置した場合には、その結果として取得されたゲームポイントを、通信IF13を介してゲームサーバ200に送信する。
ゲームサーバ200の入出力IF24は、マウス、キーボード等の情報入力機器である入力部、および、液晶ディスプレイ等の出力部を備えており、コンピュータの情報をモニタリングするために用いられる。
(ゲーム画面例)
図2は、街づくりゲームのゲーム画面の一例を示す図である。ユーザは、図2に示されるような仮想的なゲーム空間G内の平面PLに、各種の建物オブジェクトOを配置することによって街づくりゲームを進行する。ゲーム空間Gは、たとえば複数の格子で形成された平面と、空または遠景等を示す背景とを含んで構成されている。本実施形態では、複数の建物オブジェクトOのそれぞれが1つ以上の格子上に配置される。
建物オブジェクトを配置するために必要な格子数は、建物オブジェクトごとに決定されている。各ユーザは、建物オブジェクトOをゲーム空間G内に配置することによって、ゲームポイントを取得できる。ゲームポイントは、たとえば建物オブジェクトごとに関連付けられた「人口」P、ゲーム内通貨としての「コイン」C1、「ダイヤ」C2、およびその他の各種ゲーム内アイテムを含む。
ユーザは、街づくりゲームのプレイ時に、ゲーム空間G1に様々な建物オブジェクトを配置させたり、あるいは人口PおよびコインC1等の各種のアイテムを取得したりすることを通じて、ゲーム空間Gに構築される自身の仮想的な街を徐々に発展させてゆく。ユーザは、このような仮想的な街の発展を通じて、街づくりゲームをプレイする際の楽しさを享受することができる。
(ユーザ端末の機能的構成)
図3は、ユーザ端末100の機能的構成を示す図である。ユーザ端末100は、プロセッサ10、メモリ11、ストレージ12、通信IF13、および入出力IF14等の協働によって、制御部110および記憶部120として機能し得る。記憶部120にはゲームプログラムが格納されている。このゲームプログラムは、主記憶上に展開されかつ制御部110において実行される。また、本実施形態では、このゲームプログラムは、プロセッサ10およびメモリ11を備えるユーザ端末100に対し、街づくりゲームを進行させる制御部110および記憶部120としてユーザ端末100を機能させるプログラムである。
制御部110は、当該ゲームプログラムによって、作用受付部111、端末処理部112、タイマー部113、端末判定部114、表示制御部115、報酬計算部116、および送受信部117として機能し得る。制御部110が当該ゲームプログラムに従って動作している問に生成した各種ゲームデータ、および制御部110によって利用される各種ゲームデータも、主記憶上に一時的に格納される。
作用受付部111は、タッチスクリーン15の入力部151に対するユーザの作用を検知する。作用受付部111は、タッチスクリーン15およびその他の入出力IF14を介したコンソールによる操作指示等から、いかなる入力がなされたかを判別し、その結果を端末処理部112等の必要な要素に出力する。作用受付部111は、タッチスクリーン15に対する作用入力がなされた場合には、入力位置の座標情報および作用の種類(タッチ操作、スライド動作等)を検知する。また、作用受付部111は、連続して検知されていた入力が途切れることを検知することによって、タッチスクリーン15から接触入力が解除されたことを検知する。
端末処理部112は、ユーザ端末100全体の動作を制御し、各要素間におけるデータの送受信、およびゲームの実行に必要な演算処理その他の処理を行う。端末処理部112は、たとえば、作用受付部111によって検知された作用に基づいて、ゲームプログラムに従ったゲームを展開させ、その結果を示すゲーム画像を描画するよう、表示制御部115に指示する。また、端末処理部112は、タッチスクリーン15に対する操作入力に基づいて仮想空間内におけるゲームオブジェクトを操作する。また、端末処理部112は、タッチスクリーン15に対する操作入力および演算処理の結果等に基づいて、記憶部120に記憶されている各種データの更新等の処理を行う。なお、端末処理部112は、ゲームの進行状態に応じて、ゲーム空間の視野を指定するための仮想カメラの位置を制御してもよい。
タイマー部113は、ゲーム空間G内における時間の経過を計測する。タイマー部113は、ゲーム空間G内に配置された各オブジェクトOについて、個別に時間を計測する機能を有する。タイマー部113は、たとえば、各オブジェクトOがゲーム空間G内に配置された時間を記憶部120に記憶させ、その後に経過した時間を測定する。タイマー部113は、測定することによって得られる時間情報を端末判定部114に提供する。端末判定部114は、各オブジェクトOが建築中オブジェクトから建築済オブジェクトに変化するまでの建築時間が経過したか否か、オブジェクトOによって生産されたアイテムの累積量が蓄積量に達したか否か、および、オブジェクトOがアクティブスキルを発動できるようになるまでのクールタイムが経過したか否かを、それぞれ判定できる。
端末判定部114は、端末処理部112から受信した判定要求に基づいて、記憶部120に記憶された各種ユーザ情報およびゲーム情報を参照し、ゲーム進行に必要な各種の条件を判定する。端末判定部114は、たとえば、ゲーム空間G内に配置されたオブジェクトOが所定の条件を満たしているか否かを判定する。端末判定部114は、タイマー部113および記憶部120を参照して、オブジェクトOの時間情報を取得し、各オブジェクトOに設定されたユーザに付与されるゲームポイントを算出するための基礎となる条件を満たしているか否かを判定する。
表示制御部115は、ゲームサーバ200から受信したユーザ情報、ゲームプログラムによる演算結果、およびユーザの入力部151に対する作用に基づいて、表示部152に表示されるゲーム空間GおよびオブジェクトO等の画像を生成する。
本実施形態では、ユーザ端末100は、ユーザがゲーム空間Gに配置したオブジェクトの種類および配置位置に関する情報をゲームサーバ200から取得し、この情報を用いてゲーム空間Gの画像を生成する。表示制御部115は、端末処理部112によるゲーム進行制御に応じて表示画像を更新する。
報酬計算部116は、作用受付部111から受信した操作に基づいて、各ユーザに提供される報酬を算出して、ユーザに付与する。たとえば報酬計算部116は、オブジェクトの周囲の状況に基づいて当該オブジェクトにおけるゲームポイントとしての人口Pを算出し、ユーザに付与する。報酬計算部116は、ユーザが他のユーザのゲーム空間において実施した行動履歴に基づいて、当該ユーザに付与する所定のゲームポイントを算出し、ユーザに付与してもよい。
送受信部117は、ゲームサーバ200から各種情報を受信したり、ゲームサーバ200に各種情報を送信したりする。送受信部117は、制御部110の制御によって各種情報をゲームサーバ200に対して送信する。ゲームサーバ200は、ネットワーク2および通信IF23を介して当該情報を受信し、送受信部211が情報の内容を識別して受け付ける。送受信部117は、たとえば、ユーザ端末100上で動作可能なゲームプログラム、ユーザ情報、ゲーム画面等のゲーム空間情報、ゲームポイント、ゲームパラメータ、報酬等のゲーム情報、および各種通知を、ゲームサーバ200から受信することができる。一方、送受信部117は、ユーザ情報、ゲームポイント、ゲームパラメータ、報酬等のゲーム情報、および各種指示を、ゲームサーバ200に送信することができる。
記憶部120には、制御部110が前述の各部として機能するために必要なデータが記憶されている。当該データとしては、たとえば、ゲームプログラム、ゲーム情報、およびユーザ情報が含まれる。ゲーム情報としては、オブジェクト管理テーブル、パッシブスキル管理テーブル、およびアクティブスキル管理テーブル等が挙げられる。ユーザ情報としては、ユーザ管理テーブル等が挙げられる。
(ゲームサーバの機能的構成)
図4は、ゲームサーバ200の機能的構成を示すブロック図である。ゲームサーバ200は、各ユーザ端末100にゲーム進行に必要な情報を提供するゲーム提供機能を有している。ゲームサーバ200は、ユーザ端末100から各種の指示を受信し、ユーザ端末100上で動作可能なゲームプログラム、Webページ(ゲーム画面等)、ユーザ情報およびゲームパラメータ等の各種ゲームデータ、各種通知等を送信する。ゲームサーバ200は、プロセッサ20、メモリ21、ストレージ22、通信IF23、入出力IF24等の協働によって、制御部210および記憶部220として機能し得る。
図4に示すように、制御部210は、記憶部220に格納されたゲームプログラムによって、送受信部211、サーバ処理部212、データ管理部213、マッチング部214、計測部215として機能し得る。本実施形態では、このゲームプログラムは、プロセッサ20およびメモリ21を備えるゲームサーバ200に対し、街づくりゲームを進行させる制御部210および記憶部220としてゲームサーバ200を機能させるプログラムである。
送受信部211は、各ユーザ端末100から送信される各種情報を受信したり、各ユーザ端末100に各種情報を送信したりする。
各ユーザ端末100は、制御部110の制御に基づいて各種情報をゲームサーバ200に対して送信する。ゲームサーバ200は、ネットワーク2および通信IF23を介して当該情報を受信し、送受信部211が情報の内容を識別して受け付ける。
送受信部211は、記憶部220に格納されている各種管理テーブルを参照する。送受信部211は、必要に応じてデータ管理部213によって更新された各種管理テーブルを参照して、必要な処理を実行する。当該情報には、各ユーザに関連付けられるオブジェクトを、ゲーム空間内に配置する操作、削除する操作、移動する操作、購入売却する操作、および買収する操作等の各種要求が含まれる。
また、送受信部211は、ユーザ端末100上で動作可能なゲームプログラム、ユーザ情報、ゲーム画面等のゲーム空間情報、ゲームポイント、ゲームパラメータ、報酬等のゲーム情報、各種通知等をユーザ端末100に送信する。
サーバ処理部212は、ゲームサーバ200全体の動作を制御し、各要素間におけるデータの送受信、および、ゲームの進行に必要な演算処理を行う。サーバ処理部212は、たとえば、送受信部211が受信したユーザ端末100からの情報または要求に基づいて、ゲームプログラムに従った演算処理を実行する。そして、その結果としての各種ユーザ情報、ゲーム情報等の等のゲームデータ、およびゲームプログラム等を、通信IF13を介してユーザ端末100に送信することによって、ユーザ端末100においてさらにゲームを進行させる。
データ管理部213は、サーバ処理部212における各種演算結果に基づいて、記憶部220に格納されている各種ゲームデータ、およびデータベースのレコードを、追加、更新、または削除することによって、必要な処理を実行する。
たとえば送受信部211は、ユーザがゲーム空間GにオブジェクトOを配置するようにユーザ端末100に作用を与えると、その結果としてユーザが保有するオブジェクト情報およびゲームポイントに関する情報をユーザ端末100から受信する。サーバ処理部212は、受信された情報に基づいて必要な処理を実行し、一方、データ管理部213はユーザ情報およびゲーム情報を更新する。
また、たとえば、送受信部211がユーザ端末100からゲーム空間Gにオブジェクトを配置する要求を受信した場合、データ管理部213は、ゲーム空間Gに配置されるオブジェクトの情報を、ユーザ情報と、オブジェクトの配置位置等に関するゲーム情報とに関連付けて記憶する。また、各ユーザおよびオブジェクトに関連するゲームポイントに変動が生じた場合には、当該変動の結果に関する情報を各オブジェクトの情報と関連付けるように、ユーザ情報を更新する。
マッチング部214は、複数のユーザを所定のゲーム空間に関連付ける。たとえばマッチング部214は、ユーザが自身のゲーム空間Gにおいて他のユーザのゲーム空間Gを訪問するように指定すると、当該ユーザを他のユーザのゲーム空間Gに一時的に関連付ける。
計測部215は、ゲーム空間G内における時間の経過を計測する。計測部215は、タイマー部113と同様に、ゲーム空間G内に配置された各オブジェクトOについて、個別に時間を計測する機能を有する。計測部215は、ゲーム空間Gの時間情報を計測し、タイマー部113におけるゲーム空間Gの時間情報と照合する。これにより、ユーザ端末100とゲームサーバ200においてゲーム空間Gの時間情報が同期され、各種時間情報の計測および判定を円滑に実施し得る。
記憶部220には、ゲームプログラムおよびユーザの認証プログラム等が格納されている。また、記憶部220には、ユーザ管理テーブル等のユーザ情報、オブジェクト管理テーブル、パッシブスキル管理テーブル、アクティブスキル管理テーブル等のゲーム情報を管理するデータベースが構築されていてもよい。
(ユーザ管理テーブル)
図5は、ユーザ管理テーブル300の一例を示す図である。ユーザ管理テーブル300は、各ユーザが保有するゲームポイント、ゲームパラメータ、およびオブジェクト等に関するユーザ情報を管理する。ユーザ管理テーブル300は、ゲームサーバ200の記憶部220および/またはユーザ端末100の記憶部120に記憶される。ゲームサーバ200の記憶部220には、全ユーザのユーザ管理テーブル300がそれぞれ個別に記憶されていることが好ましい。図5に示すように、ユーザ管理テーブル300には、ユーザIDと、ユーザが保有するゲームポイントに関する情報と、各ユーザが保有する建物等のオブジェクトに関する情報とが、互いに関連付けて格納されている。
ユーザIDは、各ユーザを識別するための識別子である。ゲームポイントに関する情報は、図5に示す保有コイン、保有アイテム、および保有ダイヤを少なくとも含む。これらはそれぞれ、ユーザが保有するコイン、アイテム、およびダイヤの量(数)である。
オブジェクトに関する情報は、図5に示す保有オブジェクト、配置エリア、配置位置、状態、経過時間、および保有人口を少なくとも含む。配置エリアは、ゲーム空間G1において建物オブジェクトが配置されるエリアである。エリアについては後述する。配置位置は、エリアにおいて建物オブジェクトが配置される位置である。状態は、建物オブジェクトが建築中であるかまたは建築済であるかといった、建物のオブジェクトの現状を表す情報である。経過時間は、建物オブジェクトがゲーム空間Gに配置された時点から経過した時間、または、建物オブジェクトが建築済となった時点から経過した時間である。建物オブジェクトが、アイテムまたはコイン等のゲームポイントを一定時間ごとに生産する場合、経過時間は、ユーザにゲームポイントを前回付与した時点から経過した時間であってもよい。保有人口は、建物オブジェクトに関連付けられたゲームポイントとしての人口である。
ユーザ管理テーブル300には、各建物オブジェクトの保有人口の合計値が、当該ユーザに関連付けられたゲームポイントとして格納されている(図示せず)。ユーザ管理テーブル300には、オブジェクトに関する情報として、各オブジェクトのレベル、およびレベルによる各建物のパラメータ補正値も格納されている(図示せず)。
(オブジェクト管理テーブル)
図6は、オブジェクト管理テーブル301の一例を示す図である。オブジェクト管理テーブル301は、各建物オブジェクトに関連付けられる情報を管理する。オブジェクト管理テーブル301は、ゲームサーバ200の記憶部220および/またはユーザ端末100の記憶部120に記憶される。図6に示すように、オブジェクト管理テーブル301には、各建物オブジェクトの名称と、属性(種類)と、当該建物オブジェクトに関する各種の情報とが、互いに関連付けられて格納されている。各種の情報としては、保有可能人口、電力供給量、電力消費量、生産アイテム、生産能力、貯蓄量、および建築時間が挙げられる。
保有可能人口は、建物オブジェクトが保有可能な人口Pの数である。電力供給量は、建物オブジェクトが他の各建物オブジェクトに対して供給可能な電力量である。電力消費量は、建物オブジェクトが稼働するために必要な電力の消費量である。各建物オブジェクトが稼働することによって、人口Pまたはコインなどのゲームポイントを建物オブジェクトからユーザに付与することが可能になる。
生産物は、建物オブジェクトが生産可能なゲームポイントである。生産物は、コインおよび各種のアイテムを含む。図6によれば、八百屋および魚屋はコインを生産し、畑は、アイテムの一種である野菜を生産する。生産能力は、建物オブジェクトが有する生産物を生産する能力である。生産能力は、たとえば、一定時間ごとに建物オブジェクトが生産するゲームポイントの量(数)である。本実施形態では、一定時間は1分である。図6によれば、八百屋は1分ごとに10個のコインを生産し、魚屋は1分ごとに50個のコインを生産し、畑は1分ごとに1個の野菜を生産する。
貯蓄量は、建物オブジェクトが生産した生産物を、建物オブジェクトに蓄積できる最大量である。アイテムの生産能力を有する建物オブジェクトは、貯蓄量を上限として、生産したアイテムを自らに貯蓄することができる。貯蓄とは、建築オブジェクトが生産したアイテムを、当該建物オブジェクトに関連付けることを意味する。図6によれば、八百屋は、最大で500個のコインを貯蓄する。魚屋は、最大で5000個のコインを貯蓄する。畑は、最大で10個の野菜を貯蓄する。建物オブジェクトは、コインまたはアイテムの累積生産量が貯蓄量に達した後、コインまたはアイテムの生産を停止する。
建築時間は、各建物オブジェクトが建築中建物としてゲーム空間Gに配置されてから建築済建物に変化するまでに必要な時間である。
パッシブスキル管理テーブルは、各建物オブジェクトに関連付けられるパッシブスキルを管理する。パッシブスキル管理テーブルには、各建物オブジェクトの名称と、パッシブスキルの内容(効果)と、パッシブスキルの有効範囲とが、互いに関連付けて格納されている。有効範囲とは、パッシブスキルの効果が及ぼされる範囲のことである。パッシブスキルを有する建物オブジェクトは、その有効範囲内に配置される他の建物オブジェクトに対して自動的に(ユーザによる作用が無くとも)パッシブスキルを発動する。
アクティブスキル管理テーブルは、各建物オブジェクトに関連付けられるアクティブスキルを管理する。アクティブスキル管理テーブルには、各建物オブジェクトの名称と、アクティブスキルの内容(効果)とが、互いに関連付けて格納されている。アクティブスキルに有効範囲が存在する場合、当該有効範囲も建物オブジェクトの名称に関連付けてアクティブスキル管理テーブルに格納されている。ここでいう有効範囲とは、アクティブスキルの効果が及ぼされる範囲である。アクティブスキルを有する建物オブジェクトは、当該建物オブジェクトに対するユーザの作用(操作入力)に基づいて、アクティブスキルを発動する。
図7は、街づくりゲームにおける複数のゲーム空間G1〜G4を示す図である。図7に示すように、本実施形態に係るゲーム空間Gは、ゲーム空間G1〜G4を含む。各ユーザA〜Dは、それぞれ独自の各ゲーム空間G1〜G4に関連付けられる。ユーザA〜Dは、他のユーザに関連付けられる他のゲーム空間G1〜G4を、互いに訪問することが可能である。ここでいう訪問とは、ユーザが他のユーザの仮想的な街を仮想的に訪問することを意図する。訪問時、ゲームシステム1は、各ユーザを他のユーザのゲーム空間Gに一時的に関連付ける。訪問が終了すると、ゲームシステム1は、ユーザに対する他のユーザのゲーム空間Gの関連付けを解消すると共に、ユーザを当該ユーザのゲーム空間Gに再び関連付ける。
ユーザAのゲーム空間G1は、複数の異なるエリアA1〜A3を有する。一方、ユーザBのゲーム空間G2は、複数の異なるエリアA11〜A13を有する。ユーザAは、エリアA1〜A3を自由に行き来することができ、各エリアA1〜A3に建物オブジェクトを配置することができる。ユーザBは、エリアA11〜A13を自由に行き来することができ、各エリアA11〜A13に建物オブジェクトを配置することができる。図示しないが、ユーザCのゲーム空間G3およびユーザDのゲーム空間G4にも、それぞれ複数のエリアを有する。
街づくりゲームにおいて、あるユーザは、他のユーザをフォローすることによって、他のユーザを自身のフレンドとして登録することができる。フレンドとは、ユーザが、特に交流することを目的として選択した他のユーザである。ゲームサーバ200のユーザ管理テーブル300において、あるユーザのユーザ情報は、基本的に、他のユーザ情報とは関連付けられていない。一方、あるユーザのユーザ情報と、そのユーザのフレンドである他のユーザのユーザ情報とは、ゲームサーバ200のユーザ管理テーブル300において互いに関連付けられている。
あるユーザが所持するユーザ端末100のユーザ管理テーブル300には、あるユーザのユーザIDと、そのユーザのフレンドである他のユーザのユーザIDとが、互いに関連付けられて格納されている。たとえばユーザAがユーザBをフォローしている場合、ユーザAの所持するユーザ端末100のユーザ管理テーブル300には、ユーザAのユーザIDとユーザAのフレンドであるユーザBのユーザIDとが互いに関連付けて格納されている。同様に、ユーザBがユーザAをフォローしている場合、ユーザBの所持するユーザ端末100のユーザ管理テーブル300において、ユーザBのユーザIDとユーザBのフレンドであるユーザAのユーザIDとが互いに関連付けて格納されている。二人のユーザが互いをフォローしている状態は、特に相互フォローと呼ばれる。
ゲームシステム1では、ユーザ端末100が備える機能の少なくとも一部は、ゲームサーバ200が備えるように構成されていてもよい。また、ゲームサーバ200が備える機能の少なくとも一部は、ユーザ端末100が備えるように構成されていてもよい。すなわち、本実施形態におけるゲームプログラムが実行されるコンピュータは、上述のユーザ端末100およびゲームサーバ200を含む情報処理装置等から任意に選択され得る。
(街づくりゲームの進行)
図8は、ゲームシステム1によって実行される処理の流れを示すフローチャートの一例である。以下では、ユーザAが、ユーザ端末100と同じ構成の第1ユーザ端末100−1を所持しており、この端末を用いて街づくりゲームをプレイする例を説明する。
図9は、ユーザAに関連付けられるゲーム空間G1の一例を模式的に示す図である。この図に示す例では、ゲーム空間G1には道路Rが配置されている。道路Rは建築オブジェクトの一種である。詳しくは後述するが、道路Rを介してライフラインから建物オブジェクトに電力を共有することができる。
ユーザAは、第1ユーザ端末100−1に表示されたショップSに含まれる複数の建物オブジェクトSOから、所望の建物オブジェクトSOを長押しして選択する。次に、選択したオブジェクトSOを、ゲーム空間G1内の平面PL1における所定位置にドラッグする。ステップS101において、作用受付部111は、入力部151に対するユーザAによる作用を検知する。ステップS102において、作用受付部111は、検知したユーザAによる作用を、建物オブジェクトをゲーム空間内に配置させるためのオブジェクト配置要求として受け付ける。
ステップS103において、表示制御部115は、オブジェクト配置要求に基づいて平面PL1に建築中建物BOを配置する。図9の例では、ゲーム空間G1に5つの異なる建築中建物BOが配置される。ステップS104において、送受信部117は、建築中建物BOがゲーム空間G1に配置されたことを示すゲーム空間情報を、ゲームサーバ200に送信する。
ステップS201において、送受信部211は、ゲーム空間情報を受信する。ステップS202において、データ管理部213は、受信されたゲーム空間情報に基づいてユーザ情報(ユーザ管理テーブル300)を更新する。
ステップS105において、タイマー部113は、建築中建物BOがゲーム空間G1に配置された時点からの経過時間の計測を開始する。ステップS106において、タイマー部113は、各建築中建物BOの経過時間が経過した否かを判定する。ステップS106においてYESの場合、ステップS107において、作用受付部111が、建築中建物BOに対するユーザ作用(たとえばタップ操作)を受け付けたか否かを判定する。ステップS107においてYESの場合、ステップS108において、表示制御部115が、各建築中建物BOを、対応する建築済建物O1〜O5に変化させる。
図10は、建築済建物O1〜O5が配置されるゲーム空間G1の一例を示す図である。この図の例では、建築済建物O1〜O5として、マンションO1、公園O2、発電所O3、商店O4、および消防署O5がゲーム空間G1に配置されている。
マンションO1は、所定の規則に基づいて算出される人口を保有する。公園O2は、有効範囲内に配置された建築済建物の人口を増加させるパッシブスキルを有する。発電所O3は、ライフラインの一種であり、道路Rを通じて発電所O3に接続される他の建築済建物に電力を供給する。また、発電所O3は、有効範囲内に配置された建築済建物の人口を減少させるパッシブスキルを有する。マンションO1の人口Pは、これらのパッシブスキルの影響を受けて増減する。商店O4は、コインを生産するパッシブスキルを有する。消防署O5は、他の建物で発生した火事を解決するアクティブスキルを有する。
ステップS106およびステップS107のいずれかにおいてNOの場合、すなわち、建築中建物の経過時間が経過せず、または、建築中建物BOに対するユーザ作用が受け付けられない場合、図8に示す処理はステップS106およびステップS107をループし続ける。
ステップS109において、端末判定部114は、各建築済建物にライフラインから電力が供給されているか否かを判定する。ステップS109においてYESの場合、ステップS110において、端末処理部112が、電力供給が必要な各建築済建物を稼働させる。図10に示す例では、発電所O3が道路Rに隣接して配置されているので、当該道路Rに隣接するマンションO1、商店O4、および消防署O5に対して発電所O3から電力が供給される。これにより、マンションO1、商店O4、消防署O5が、供給される電力によって稼働する。公園O2は電力を必要としない建物なので、道路Rに隣接していなくても稼働する。
図示しないが、建築済建物は、稼働して一定時間が経過すると、建築済建物に規定されるアクティブスキルを発動可能な状態になる。このとき、作用受付部111が、建築済建物に対するユーザAの作用を受け付けると、建築済建物におけるアクティブスキルが発動される。これにより、ユーザAに所定のゲームポイントが付与されたり、ゲーム空間G1に配置される建築中建物の状態が変化したり、または建築済建物におけるアイテムの生産量が増加したりするなど、一定の利益がユーザAに提供される。
ステップS110において、端末処理部112が建築済建物を稼働させると、タイマー部113は、各建築済建物の経過時間の計測を開始する。ステップS111において、報酬計算部116は、ゲーム空間G1に配置された各建築済建物に関連付けられる人口Pを算出し、ゲームポイントとしてユーザに付与する。
ステップS112において、送受信部117は、建築中建物が建築済建物に変化した情報およびユーザに付与された人口Pに関する情報を含む更新情報を、ゲームサーバ200に送信する。ステップS203において、ゲームサーバ200の送受信部211は、送信された更新情報を受信する。ステップS204において、データ管理部213は、受信した更新情報に基づいて、ユーザAのユーザ情報(ユーザ管理テーブル300)を更新する。
建築済建物は、再度建築中建物に変化されてもよい。たとえば、建築済建物を増築させたり、レベルアップさせたりすることによって、保有可能人口および/またはコイン生産量が増加するようにしてもよい。この場合、表示制御部115は、建築済建物を再度建築中建物に変化させ、一方、タイマー部113は、経過時間の計測を再度開始する(ステップS105と同様)。次に作用受付部111は、建築済建物の増築またはレベルアップに必要な建築時間(増築時間)経過後に、建築済建物に対するユーザ作用を受け付ける(ステップS106〜ステップS107と同様)。以上の処理によって、表示制御部115は、建築中建物を増築またはレベルアップ後の建築済建物に変化させてもよい(ステップS108と同様)。その後のゲームポイント更新処理についても、前述のステップS109〜ステップS112およびステップS203〜ステップS204が適用され得る。
(人口Pの増減)
図11は、マンションO1の人口Pを増減させる処理の流れを説明するフローチャートの一例である。ステップS113において、表示制御部115は、建築中建物を建築済み建物に変化させる。これにより表示制御部115は、図10に示すように、ゲーム空間G1の平面PL1に、建築済建物としてのマンションO1、公園O2、発電所O3、商店O4、および消防署O5を配置する。
ステップS114において、報酬計算部116は、オブジェクト管理テーブル301を参照することによって、マンションO1の保有可能人口を特定する。ステップS115において、報酬計算部116は、オブジェクト管理テーブル301を参照することによって、マンションO1が平面PL1に配置されることによってマンションO1が保有可能となる初期人口を特定する。
ステップS116において、端末判定部114は、マンションO1が他の建築済建物の有効範囲に属しているか否を判定する。図10の例では、端末判定部114は、マンションO1が、公園O2の有効範囲E1と、発電所O3の有効範囲E2に属していると判定する。端末判定部114は、判定結果を報酬計算部116に通知する。
ステップS117において、報酬計算部116は、通知された判定結果に基づいて、パッシブスキル管理テーブルを参照することによって、公園O2および発電所O3のパッシブスキルの内容をそれぞれ特定する。ステップS118において、報酬計算部116は、各パッシブスキルの影響を受けたマンションO1の保有人口を算出する。具体的には、マンションO1の初期人口に、公園O2のパッシブスキルによる人口増加分を加算し、さらに、加算後の人口から発電所O3のパッシブスキルによる人口減少分を減算する。
ステップS119において、報酬計算部116は、算出したマンションO1の人口Pを、ゲームポイントとしてユーザAに付与する。ステップS119において、送受信部117は、ユーザAに付与された人口Pに関する情報を含む更新情報を、ゲームサーバ200に送信する。ステップS205において、送受信部211は、当該更新情報を受信する。ステップS206において、データ管理部213は、受信された更新情報に基づいて、ユーザAのユーザ情報(ユーザ管理テーブル300)を更新する。
(対戦ゲーム)
図12は、対戦型の街づくりゲームに対応するゲーム空間Gを示す図である。ゲームシステム1は、対戦型の街づくりゲームをユーザAにプレイさせることができる。対戦型の街づくりゲームを、必要に応じて対戦ゲームと記載する。対戦ゲームでは、ユーザAと、ゲームプログラムによって制御されるノンプレーヤキャラクタ(NPC)とが、同一のゲーム空間Gにおいてそれぞれの街を構築することによって、対戦する。
対戦ゲームには、対戦ゲームに関する各種の条件が予め規定されている。各種の条件は、たとえば、終了条件、勝利条件、および敗北条件を含む。終了条件は、ゲームシステム1が対戦ゲームを終了させるための条件である。終了条件は、たとえば、対戦ゲームの開始から一定時間が経過することである。終了条件は、たとえば、対戦ゲームの開始から一定時間が経過する前に、ユーザAが勝利条件または敗北条件を満たすことである。
勝利条件は、対戦ゲームにおいてユーザAがNPCに勝利するための条件である。勝利条件は、たとえば、ユーザAが、対戦ゲーム中に、NPCが保有する特定の建物オブジェクト(たとえば本社)に特定の作用(たとえば買収)を与えることである。敗北条件は、ユーザAがNPCに敗北するための条件である。敗北条件は、たとえば、NPCが、対戦ゲーム中に、ユーザAが保有する特定の建物オブジェクト(たとえば本社)に特定の作用(たとえば買収)を与えることである。
ゲームシステム1は、対戦ゲームをプレイするための複数の異なるステージを、ユーザAに提供する。各ステージは、特定のゲーム空間Gおよび特定のNPCに対応する。ステージごとに、対応するゲーム空間Gの属性が異なり得る。ゲーム空間Gの属性は、たとえば、ゲーム空間Gの大きさ、ならびにゲーム空間Gに予め配置されるオブジェクトの種類および数を含む。ステージごとに、対応するNPCが異なり得る。
ユーザAは、複数のステージの中からいずれかのステージを選択する。ゲームシステム1は、選択されたステージに対応するゲーム空間Gを構築し、このゲーム空間GにユーザAを関連付ける。ユーザAは、関連付けられたゲーム空間Gにおいて、選択したステージに対応するNPCと対戦する。
各ステージに対応するゲーム空間Gには、ゲーム空間Gの構築時に配置される各オブジェクトに関する情報が、予め規定されている。オブジェクトに関する情報は、ゲーム空間Gにおいてオブジェクトが配置される位置を少なくとも含む。
本実施形態では、第1ステージに対応するゲーム空間Gに、本社H1(第1オブジェクト)に対応する位置(第1位置)と、本社H2(第1オブジェクト)に対応する位置(第1位置)とが、予め規定されている。第1ステージに対応するゲーム空間Gを、必要に応じてゲーム空間G11と表記する。ゲーム空間G11には、さらに、予めグループ化された複数の樹木T1〜T6(複数のオブジェクト)に対応する複数の位置が、予め規定されている。複数の樹木T1〜T6は、アイテムが関連付けられていない樹木T2〜T6(第2オブジェクト)と、アイテムが予め関連付けられている樹木T1(第3オブジェクト)とを含む。樹木T1は、アイテムが樹木T1に予め関連付けられている点で、樹木T2〜T6とは異なる属性を有する。
(ステージ管理テーブル)
図13は、対戦ゲームの第1ステージに対応するステージ管理テーブル302の一例を示す図である。ステージ管理テーブル302は、ゲーム空間G11の構築時にゲーム空間G11に予め配置される各オブジェクトに関する情報を管理する。ステージ管理テーブル302は、ゲームサーバ200の記憶部220および/またはユーザ端末100の記憶部120に記憶される。図13に示すように、ステージ管理テーブル302には、オブジェクトに関する情報として、グループID、オブジェクトID、アイテムID、および配置位置が、互いに関連付けて格納されている。
オブジェクトIDは、各オブジェクトを一意に識別するための識別子である。ステージ管理テーブル302には、オブジェクトIDとして、「H1」〜「H2」および「T1」〜「T6」が格納されている。「H1」および「H2」は、それぞれ、本社H1およびH2に対応する。「T1」〜「T6」は、それぞれ樹木T1〜T6に対応する。
グループIDは、オブジェクトが属する各グループを一意に識別する識別子である。本社H1およびH2のグループIDは「なし」である。「なし」は、いずれのグループにも対応しないため、本社H1およびH2は予めグループ化されていない。樹木T1〜T6のグループIDは「1」である。「1」は第1グループに対応するため、樹木T1〜T6は、第1グループに属する。樹木T1〜T6は予めグループ化されている。
アイテムIDは、オブジェクトに予め関連付けられている各アイテムを一意に識別する識別子である。ステージ管理テーブル302において、本社H1およびH2のアイテムIDは「なし」である。「なし」は、いずれのアイテムにも対応しない。したがって本社H1およびH2にはアイテムが予め関連付けられていない。樹木T1のアイテムIDは「N1」である。「N1」は、指輪N1に対応する。したがって樹木T1には指輪N1が予め関連付けられている。樹木T2〜T5のアイテムIDは「なし」であるため、樹木T2〜T5にはアイテムが予め関連付けられていない。
指輪N1は、対戦ゲームのプレイ中にユーザAが用いることができるアイテムの一種である。指輪N1は、ユーザAに対戦ゲームをより有利に進めさせる能力を有する。指輪N1の能力は、たとえば、ユーザAの街に配置される特定の建物オブジェクトをレベルアップさせることである。
配置位置は、オブジェクトに対応する位置である。配置位置は、ゲーム空間G11の構築時にゲーム空間G11においてオブジェクトが配置される位置でもある。ステージ管理テーブル302において、本社H1およびH2の配置位置は、それぞれ「X1/Y1」および「X7/Y8」である。樹木T1〜T6の配置位置は、それぞれ「X2/Y5」、「X4/Y3」、「X4/Y8」、「X5/Y6」、「X6/Y1」、および「X7/Y5」である。
(ゲーム空間G11の構築)
図14は、第1ユーザ端末100−1によって実行される、ゲーム空間G11を構築するための処理の流れを示すフローチャートの一例である。ステップS121において、端末処理部112は、ユーザAによって選択された第1ステージに対応するステージ管理テーブル302を特定する。端末処理部112は、特定されたステージ管理テーブル302を参照し、各オブジェクトに対応する各グループIDを特定する。
端末処理部112は、本社H1に対応するグループIDが「なし」であることに基づいて、本社H1がグループ化されていないことを特定する。端末処理部112は、ステージ管理テーブル302に格納されている、本社H1に対応する配置位置を、「X1/Y1」から変更しない。端末処理部112は、本社H2に対応するグループIDが「なし」であることに基づいて、本社H1がグループ化されていないことを特定する。端末処理部112は、ステージ管理テーブル302に格納されている本社H1に対応する配置位置を、「X7/Y8」から変更しない。
(配置位置の入れ替え)
端末処理部112は、樹木T1〜T6に対応するグループIDがいずれも「1」であることに基づいて、樹木T1〜T6がグループ化されていることを特定する。ステップS122おいて、端末処理部112は、この特定結果に基づいて、ステージ管理テーブル302に格納されている、樹木T1〜T6に対応する複数の配置位置を、ランダムに入れ替える。
端末処理部112は、たとえば、樹木T1〜T6に対応する6つの配置位置からランダムに2つの配置位置を選択し、選択した2つの配置位置を互いに入れ替える。端末処理部112は、この入れ替え処理を、規定回数、繰り返し実行する。入れ替え処理の結果、ステージ管理テーブル302において、樹木T1〜T6に対応する各配置位置がランダムに入れ替わる。この入れ替え処理が繰り返し実行されることによって、ある樹木に対応する配置位置が他の樹木の配置位置に入れ替わった後に元の配置位置に戻ることも、起こり得る。
図15は、樹木T1〜T6に対応する各配置位置がランダムに入れ替えられたステージ管理テーブル302の一例を示す図である。入れ替え処理の完了後、図13に示すステージ管理テーブル302は、たとえば、図15に示すステージ管理テーブル302に更新される。
(オブジェクトの配置)
図16は、ゲーム空間G11を示す図である。表示制御部115は、ステージ管理テーブル302に基づいて、たとえば、図16に示すように各オブジェクトをゲーム空間G11に配置させる。
表示制御部115は、ステージ管理テーブル302を参照することによって、本社H1に対応する配置位置を特定する。ステップS123において、表示制御部115は、ユーザAの本社H1を、ゲーム空間G11における本社H1に対応する配置位置に配置させる。詳細には、表示制御部115は、平面PLにおける「X1/Y1」に対応する格子上に、本社H1を配置させる。本社H1は、平面PLの横方向(X方向)に並ぶ2つの格子を占める。
表示制御部115は、ステージ管理テーブル302を参照することによって、本社H2に対応する配置位置を特定する。ステップS124において、表示制御部115は、NPCの本社H2を、ゲーム空間G11における本社H2に対応する配置位置に配置させる。詳細には、表示制御部115は、平面PLにおける「X7/Y8」に対応する格子上に、本社H2を配置させる。本社H2は、平面PLのX方向に並ぶ2つの格子を占めるように配置される。
表示制御部115は、ステージ管理テーブル302を参照することによって、樹木T1に対応する入れ替え後の配置位置を特定する。ステップS125において、表示制御部115は、指輪N1が関連付けられている樹木T1を、ゲーム空間Gにおける、樹木T1に対応する入れ替え後の配置位置に配置させる。詳細には、表示制御部115は、平面PLにおける「X4/Y3」に対応する格子上に、樹木T1を配置させる。樹木T1は、平面PLにおける1つの格子を占めるように配置される。
表示制御部115は、ステージ管理テーブル302を参照することによって、樹木T2〜T6に対応する入れ替え後の各配置位置を特定する。ステップS126において、表示制御部115は、指輪N1が関連付けられていない樹木T2〜T6を、ゲーム空間G11における、樹木T2〜T6に対応する入れ替え後の各配置位置に配置させる。詳細には、表示制御部115は、平面PLにおける「X2/Y5」に対応する格子上に、樹木T2を配置させる。表示制御部115は、平面PLにおける「X7/Y5」に対応する格子上に、樹木T3を配置させる。表示制御部115は、平面PLにおける「X4/Y8」に対応する格子上に、樹木T4を配置させる。表示制御部115は、平面PLにおける「X6/Y1」に対応する格子上に、樹木T5を配置させる。表示制御部115は、平面PLにおける「X5/Y6」に対応する格子上に、樹木T6を配置させる。樹木T2〜T6は、平面PLにおける1つの格子上を占めるように配置される。
(対戦ゲームの進行)
表示制御部115は、ステージ管理テーブル302に規定されるすべてのオブジェクトをゲーム空間G11に配置させることによって、ゲーム空間G11の構築を完了させる。第1ユーザ端末100−1は、ゲーム空間G11の構築後、対戦ゲームの第1ステージを開始させる。第1ユーザ端末100−1は、ユーザAの操作入力に基づいてユーザAに関連付けられる建物オブジェクトをゲーム空間G11に配置させることによって、対戦ゲームを進行させる。第1ユーザ端末100−1は、第1ステージのNPCに対応する対戦アルゴリズムに基づいて、NPCに関連付けられる各種の建物オブジェクトをゲーム空間G11に配置させることによっても、対戦ゲームを進行させることができる。
ユーザAは、ゲーム空間G11におけるオブジェクトが配置されていない格子上に、ユーザAの建物オブジェクトを配置させることができる。したがってユーザAは、樹木T1〜T6が配置されている格子上に建物オブジェクトを配置させることができない。樹木T1〜T6は、ユーザAの操作入力に基づいてゲーム空間G11から削除されることが可能なオブジェクトである。ユーザAは、樹木T1〜T6が削除された後の各格子上に、ユーザAの建物オブジェクトを新たに配置させることができる。そこでユーザAは、対戦ゲーム中に自身の街をより発展させるために、樹木T1〜T6を削除しようとする。
樹木T1〜T6の外観は、互いに同一である。表示制御部115は、樹木T1〜T6に指輪N1が関連付けられているか否かを示す情報(たとえば画像)を、表示部152に表示させない。ユーザAは、図16に示すゲーム空間G11を視認しただけでは、樹木T1〜T6のうちいずれに指輪N1が関連付けられているかを、把握することができない。
図17は、指輪N1が関連付けられている樹木T1が削除されたゲーム空間G11を示す図である。表示制御部115は、たとえば、図16に示すゲーム空間G11に配置されている樹木T1に対するユーザAの操作入力(たとえばタップ入力)に基づいて、ゲーム空間G11から樹木T1を削除する。表示制御部115は、樹木T1の削除後、樹木T1が配置されていた格子上に、樹木T1に関連付けられている指輪N1を配置させる。この結果、図16にゲーム空間G11は、図17に示すゲーム空間G11に更新される。
ユーザAは、図17に示すゲーム空間G11を視認することによって、樹木T1を削除すればゲーム空間G11に指輪N1が配置されることを認識する。ユーザAは、ゲーム空間G11に配置されている指輪N1を、対戦ゲームのプレイ中に取得することができる。報酬計算部116は、たとえば、指輪N1に対するユーザAの操作入力(たとえばタップ入力)に基づいて、指輪N1をユーザAに付与する。ユーザAは、付与された指輪N1を用いることによって、たとえば、指輪N1に対応するユーザAの建物オブジェクトをレベルアップさせることができる。第1ユーザ端末100−1は、樹木T1の削除を通じて指輪N1をユーザAに付与することによって、樹木T1〜T6の削除をいっそうユーザAに促すことができる。
(第1ステージの再プレイ)
ユーザAは、対戦ゲームの各ステージを、繰り返し最初から再プレイすることができる。第1ユーザ端末100−1は、たとえば、ユーザAが第2ステージをプレイする権利を、ユーザAが第1ステージをクリアした場合に初めてユーザAに付与することによって、第1ステージを繰り返しプレイすることをユーザAに促すことができる。ユーザAは、たとえば、対戦ゲームの第1ステージが終了した後、第1ステージを再選択する。第1ユーザ端末100−1は、ユーザAによって第1ステージが再選択されたことに基づいて、図14に示す一連の処理を実行することによって、ゲーム空間G11を再構築する。端末処理部112は、樹木T1〜T6の各配置位置をランダムに入れ替えることによって、ゲーム空間G11における樹木T1〜T6の配置パターンを、ゲーム空間G11を構築するたびに高確率で異ならせることができる。
図18は、樹木T1〜T6に対応する各配置位置がランダムに入れ替えられたステージ管理テーブル302の他の例を示す図である。端末処理部112は、たとえば、ゲーム空間G11の構築時に樹木T1〜T6の各配置位置を入れ替えることによって、図13に示すステージ管理テーブル302を、図18に示すステージ管理テーブル302に更新することができる。
図19は、ゲーム空間G11の他の例を示す図である。表示制御部115は、たとえば、図18に示す更新後のステージ管理テーブル302に基づいて、各オブジェクトを、図19に示すようにゲーム空間G11に配置させる。図19に示すゲーム空間G11は、図16に示すゲーム空間G11と同様に、第1ステージに対応するゲーム空間である。第1ユーザ端末100−1は、図19に示すゲーム空間G11の構築後、対戦ゲームの第1ステージを開始させる。
図19に示すゲーム空間G11において本社H1が配置されている位置は、図16と同一である。図19に示すゲーム空間G11において本社H2が配置されている位置は、図16と同一である。図19に示すゲーム空間G11において樹木T1〜T4およびT6が配置されている位置は、図16と異なっている。図19に示すゲーム空間G11において樹木T5が配置されている位置は、図16と同一である。
樹木T1〜T6の外観は、互いに同一である。表示制御部115は、樹木T1〜T6に指輪N1が関連付けられているか否かを示す情報(画像)を、表示部152に表示させない。したがってユーザAは、図19に示すゲーム空間G11を視認しただけでは、図16と同様に、樹木T1〜T6のうちいずれに指輪N1が予め関連付けられているかを、把握することができない。
表示制御部115は、ゲーム空間G11の構築時に、樹木T1〜T6を、ステージ管理テーブル302において樹木T1〜T6に対応しない配置位置に配置させることはない。ゲーム空間G11において樹木T1〜T6が配置されている各位置は、図13に示すステージ管理テーブル302に予め格納されている樹木T1〜T6に対応する各配置位置のうちいずれかと、同一である。図19に示すゲーム空間G11における樹木T1〜T6の各配置位置は、図16に示すゲーム空間G11における樹木T1〜T6の各配置位置のいずれかと、同一である。したがってユーザAは、図19に示すゲーム空間G11と、図16に示すゲーム空間G11とを、ゲーム画面上で区別することができない。
図20は、指輪N1が関連付けられていない樹木T4が削除されたゲーム空間G11を示す図である。表示制御部115は、たとえば、図19に示すゲーム空間G11に配置されている樹木T4に対するユーザAの操作入力(たとえばタップ入力)に基づいて、ゲーム空間G11から樹木T4を削除する。図19に示すゲーム空間G11において、樹木T4にはアイテムが予め関連付けられていない。表示制御部115は、樹木T4の削除後、樹木T4が配置されていた格子上に、オブジェクトを配置させない。この結果、図19にゲーム空間G11は、図20に示すゲーム空間G11に更新される。
ユーザAは、図20に示すゲーム空間G11を視認することによって、最初からプレイし直した第1ステージでは、樹木T4を削除してもゲーム空間G11に指輪N1が配置されないことを認識する。ユーザAは、以前プレイした第1ステージでは、ゲーム空間G11において今回と同じ位置に配置されていた樹木(すなわち樹木T1)を削除したことによって指輪N1がゲーム空間G11に配置されたことを、記憶している。ユーザAは、これらの認識および記憶に基づいて、指輪N1を取得できる樹木T1が必ずしも同一の位置に配置されているとは限らないことを、理解する。
(本実施形態の利点)
第1ユーザ端末100−1は、ゲーム空間G11の構築時、本社H1に対応する配置位置を、他のオブジェクト(本社H2、樹木T1など)に対応する配置位置と入れ替えない。これにより、ゲーム空間G11において本社H1が配置されている位置は、第1ステージに対応する対戦ゲームをユーザAがプレイし直すたびに変わることがない。本社H2も同様である。本社H1およびH2の配置位置が常に固定されるので、第1ステージが最初から開始されるたびにゲーム空間G11の構成が大きく変わり過ぎることを、防止することができる。
第1ユーザ端末100−1は、ユーザAが対戦ゲームの第1ステージをプレイするたびに、ゲーム空間G11における指輪N1が関連付けられている樹木T1の配置位置を、変化させることができる。ユーザAは、樹木T1〜T6のうち指輪N1を取得することができる樹木T1を、ゲーム空間G11を視認しただけでは特定することができない。したがってユーザAは、対戦ゲームの第1ステージのプレイ時に、樹木T1〜T6の中から指輪N1を毎回探す必要があるため、第1ステージを新鮮な気持ちで毎回プレイすることができる。第1ユーザ端末100−1は、ユーザAが同じ攻略方法によって第1ステージを何度も容易に攻略することを、防止することができる。
予めグループ化されている樹木T1〜T6は、いずれも、ゲーム空間G11における同一の大きさの範囲(1つの格子)を占めるオブジェクトである。したがって表示制御部115は、樹木T1〜T6を、ゲーム空間G11における対応する入れ替え後の各配置位置に確実に配置させることができる。
(第2ステージの例)
ユーザAは、第1ステージとは異なる第2ステージを選択することもできる。本実施形態では、第2ステージに対応するゲーム空間Gに、本社H1に対応する位置と、本社H2に対応する位置とが、予め規定されている。第2ステージに対応するゲーム空間Gを、必要に応じてゲーム空間G12と表記する。ゲーム空間G12には、さらに、予めグループ化された複数のオブジェクトに対応する複数の位置が、予め規定されている。複数の建物オブジェクトは、樹木T1〜T4(第2オブジェクト)と、岩W1〜岩W2(第3オブジェクト)とを含む。岩W1〜W2は、岩W1〜W2の外観が樹木T1〜T4の外観と異なる点で、樹木T2〜T4とは異なる属性を有する。
図21は、第2ステージに対応するステージ管理テーブル303の一例を示す図である。ステージ管理テーブル303は、ゲーム空間G12の構築時にゲーム空間G12に予め配置される各オブジェクトに関する情報を管理する。ステージ管理テーブル303は、ゲームサーバ200の記憶部220および/またはユーザ端末100の記憶部120に記憶される。図21に示すように、ステージ管理テーブル303には、オブジェクトに関する情報として、グループID、オブジェクトID、および配置位置が、互いに関連付けて格納されている。
ステージ管理テーブル303には、オブジェクトIDとして、「H1」〜「H2」、「T1」〜「T4」、および「W1」〜「W2」が格納されている。「H1」および「H2」は、それぞれ、本社H1およびH2に対応する。「T1」〜「T4」は、それぞれ樹木T1〜T4に対応する。「W1」〜「W4」は、それぞれ岩W1〜W1に対応する。
本社H1およびH2のグループIDは「なし」である。本社H1およびH2はグループ化されていない。樹木T1〜T4のグループIDは「1」である。岩W1〜W2のグループIDは「1」である。「1」は第1グループに対応するため、樹木T1〜T4および岩W1〜W2は、第1グループに属する。すなわち樹木T1〜T4および岩W1〜W2はグループ化されている。
ステージ管理テーブル303において、本社H1およびH2の配置位置は、それぞれ「X1/Y1」および「X7/Y8」である。樹木T1〜T4の配置位置は、それぞれ「X1/Y4」、「X3/Y7」、「X4/Y1」、および「X4/Y3」である。岩W1〜W2の配置位置は、それぞれ「X5/Y5」および「X8/Y6」である。
(ゲーム空間G12の構築)
図22は、第1ユーザ端末100−1によって実行される、ゲーム空間G12を構築するための処理の流れを示すフローチャートの一例である。ステップS131において、端末処理部112は、ユーザAによって選択された第2ステージに対応するステージ管理テーブル303を特定する。端末処理部112は、本社H1および本社H2の配置位置を、ステージ管理テーブル303に予め規定されている値のまま維持する。端末処理部112は、樹木T1〜T4および岩W1〜W2に対応するグループIDがいずれも「1」であることに基づいて、樹木T1〜T4および岩W1〜W2がグループ化されていることを特定する。ステップS132において、端末処理部112は、この特定結果に基づいて、ステージ管理テーブル303に格納されている、グループ化された樹木T1〜T4および岩W1〜W2に対応する複数の配置位置のそれぞれを、ランダムに入れ替える。
図23は、予めグループ化された樹木T1〜T4および岩W1〜W2に対応する配置位置のそれぞれがランダムに入れ替えられたステージ管理テーブル303を示す図である。入れ替え処理の完了後、図21に示すステージ管理テーブル303は、図23に示すステージ管理テーブル303に更新される。
図24は、ゲーム空間G12を示す図である。表示制御部115は、たとえば、ステージ管理テーブル303に基づいて、図24に示すように各オブジェクトをゲーム空間G12に配置させる。ステップS133およびS134は、ステップS123およびS124とそれぞれ同一であるため、説明を繰り返さない。表示制御部115は、ステージ管理テーブル303を参照することによって、樹木T1〜T4に対応する入れ替え後の各配置位置を特定する。ステップS135において、表示制御部115は、樹木T1〜T4を、ゲーム空間Gにおける、樹木T1〜T4に対応する入れ替え後の各配置位置に配置させる。表示制御部115は、ステージ管理テーブル303を参照することによって、岩W1〜W2に対応する入れ替え後の各配置位置を特定する。ステップS136において、表示制御部115は、樹木T1〜T4とは異なる外観を有する岩W1〜W2を、ゲーム空間G12における、岩W1〜W2に対応する入れ替え後の各配置位置に配置させる。
表示制御部115は、ステージ管理テーブル303に規定されるすべてのオブジェクトをゲーム空間G12に配置させることによって、ゲーム空間G12の構築を完了させる。第1ユーザ端末100−1は、ゲーム空間G12の構築後、対戦ゲームの第2ステージを開始させる。
(第2ステージの再プレイ)
第1ユーザ端末100−1は、ユーザAによって第2ステージが再選択されたことに基づいて、図22に示す一連の処理を実行することによって、ゲーム空間G12を構築する。端末処理部112は、樹木T1〜T4および岩W1〜W2に対応する各配置位置をランダムに入れ替えることによって、樹木T1〜T4および岩W1〜W2と、入れ替れ後の各配置位置との対応関係を、ゲーム空間G12を構築するたびに高確率で異ならせる。
図25は、予めグループ化された樹木T1〜T4および岩W1〜W2に対応する各配置位置がランダムに入れ替えられたステージ管理テーブル303の他の例を示す図である。端末処理部112は、たとえば、ゲーム空間G12の構築時に樹木T1〜T4および岩W1〜W2の各配置位置を入れ替えることによって、図21に示すステージ管理テーブル303を、図25に示すステージ管理テーブル303に更新することができる。
図26は、ゲーム空間G12の他の例を示す図である。表示制御部115は、たとえば、図25に示す更新後のステージ管理テーブル303に基づいて、各オブジェクトを、図26に示すようにゲーム空間G12に配置させる。図26に示すゲーム空間G12は、図24に示すゲーム空間G12と同様に、第2ステージに対応するゲーム空間である。第1ユーザ端末100−1は、図26に示すゲーム空間G12の構築後、対戦ゲームの第2ステージを開始させる。
図26に示すゲーム空間G12において本社H1が配置されている位置は、図24と同一である。図26に示すゲーム空間G12において本社H2が配置されている位置は、図24と同一である。図26に示すゲーム空間G12において樹木T1〜T4および岩W1〜W2が配置されている各位置は、図24と異なっている。ユーザAは、図26に示すゲーム空間G12を視認することによって、最初からプレイし直した第2ステージでは、樹木T1〜T4および岩W1〜W2の配置パターンが、以前にプレイした第2ステージとは異なっていることを、認識する。
第1ユーザ端末100−1は、ゲーム空間G12を構築するたびに、樹木T1〜T4および岩W1〜W2の配置パターンを異ならせることができる。したがってユーザAは、第2ステージのプレイを開始するたびに、全体として異なる外観のゲーム空間G12を視認するため、第2ステージを新鮮な気持ちで毎回プレイすることができる。
(付記事項)
本発明の一側面に係る内容を列記すると以下のとおりである。
(項目1)本実施形態において、プロセッサ(10)およびメモリ(11)を備えるコンピュータであるユーザ端末(100)において実行されるゲームプログラムについて説明した。本実施形態のある局面によると、ゲームプログラムに基づくゲームは、建物オブジェクトがゲーム空間に配置されることによって進行する。ゲーム空間に、第1オブジェクトに対応する第1位置と、第2オブジェクトと、第2オブジェクトとは異なる属性を有する第3オブジェクトとを含む予めグループ化された複数のオブジェクトに対応する複数の第2位置とが、予め規定されている。ゲームプログラムは、プロセッサに、第1オブジェクトを、ゲーム空間における第1位置に配置させるステップ(S123、S124)と、複数の第2位置のそれぞれをランダムに入れ替えるステップ(S122)と、複数のオブジェクトのそれぞれを、ゲーム空間における、オブジェクトに対応する入れ替え後の第2位置に配置させるステップ(S125、S126)と、を実行させる。ユーザに街づくりゲームの同一ステージを新鮮な気持ちで繰り返しプレイさせることができる。
(項目2) (項目1)において、第2オブジェクトにアイテムが予め関連付けられておらず、第3オブジェクトにアイテムが予め関連付けられている。
(項目3) (項目1)または(項目2)において、第3オブジェクトの外観は、第2オブジェクトの外観と異なる。
(項目4) (項目1)〜(項目3)のいずれかにおいて、複数のオブジェクトは、
ゲーム空間における同一の大きさを有する範囲を占める。複数のオブジェクトを、ゲーム空間における対応する入れ替え後の各位置に確実に配置させることができる。
(項目5) 本実施形態において、プロセッサ(10)およびメモリ(11)を備えるコンピュータであるユーザ端末(100)がゲームプログラムを実行する方法について説明した。本実施形態のある局面によると、ゲームプログラムに基づくゲームは、建物オブジェクトがゲーム空間に配置されることによって進行する。ゲーム空間に、第1オブジェクトに対応する第1位置と、第2オブジェクトと、第2オブジェクトとは異なる属性を有する第3オブジェクトとを含む予めグループ化された複数のオブジェクトに対応する複数の第2位置とが、予め規定されている。方法は、プロセッサが、第1オブジェクトを、ゲーム空間における第1位置に配置させるステップ(S123、S124)と、複数の第2位置のそれぞれをランダムに入れ替えるステップ(S122)と、複数のオブジェクトのそれぞれを、ゲーム空間における、オブジェクトに対応する入れ替え後の第2位置に配置させるステップ(S125、S126)と、を含む。ユーザに街づくりゲームの同一ステージを新鮮な気持ちで繰り返しプレイさせることができる。
(項目6) 本実施形態において、ゲームプログラムを記憶する記憶部(120)と、情報処理装置の動作を制御する制御部(110)と、表示部(152)と、を備えた情報処理装置であるユーザ端末(100)について説明した。本実施形態のある局面によると、ゲームプログラムに基づくゲームは、建物オブジェクトがゲーム空間に配置されることによって進行する。ゲーム空間に、第1オブジェクトに対応する第1位置と、第2オブジェクトと、第2オブジェクトとは異なる属性を有する第3オブジェクトとを含む予めグループ化された複数のオブジェクトに対応する複数の第2位置とが、予め規定されている。制御部(110)は、第1オブジェクトを、ゲーム空間における第1位置に配置させ、複数の第2位置のそれぞれをランダムに入れ替え、複数のオブジェクトのそれぞれを、ゲーム空間における、オブジェクトに対応する入れ替え後の第2位置に配置させる。ユーザに街づくりゲームの同一ステージを新鮮な気持ちで繰り返しプレイさせることができる。
(ソフトウェアによる実現例)
ユーザ端末100、ゲームサーバ200の制御ブロック(制御部110、制御部210)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、制御部110、制御部210は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、前記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、前記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が前記プログラムを前記記録媒体から読み取って実行することによって、本発明の目的が達成される。前記記録媒体としては、「一時的でない有形の媒体」、たとえば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、前記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークまたは放送波等)を介して前記コンピュータに供給されてもよい。なお、本発明は、前記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
上述した実施の形態は、本発明の理解を容易にするための例示に過ぎず、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良することができると共に、本発明にはその均等物が含まれることは言うまでもない。
また、本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、実施形態中にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。