[本開示が示す実施形態の説明]
本開示が示す実施形態の概要を説明する。
(1)本開示の一実施形態に係るゲーム方法は、
(a)ユーザの操作入力に基づいてプレイヤオブジェクトを操作可能な仮想空間、および、所定の課題と関連付けられたクエストを定義するステップと、
(b)前記操作入力に基づいて、前記クエストを指定するステップと、
(c)指定された前記クエストに応じて、第一のフィールドと、前記第一のフィールドから前記プレイヤオブジェクトがシームレスに移動可能なフィールドであって複数の候補フィールドを含む第二のフィールドと、前記第二のフィールドから前記プレイヤオブジェクトがシームレスに移動可能な第三のフィールドと、を含む前記仮想空間を特定するステップと、
(d)これらのフィールドの画像データを所定のタイミングで読み込んで、読み込んだ前記画像データを表示部に表示させるステップと、を含み、
前記第二のフィールドは、前記第一のフィールドから前記第三のフィールドへ前記プレイヤオブジェクトを到達させるためのルートを定義するものであって、
前記ルートは、所定の条件に基づいて、前記複数の候補フィールドから所定の少なくとも一つの候補フィールドが選択されることによって定義される。
上記方法によれば、シームレスフィールドを採用したゲームにおいて、ゲーム性を向上させることができる。
(2)前記複数の候補フィールドのうち少なくとも一つが前記プレイヤオブジェクトの移動を制限することで、複数の前記ルートのうち少なくとも一つのルートを遮断することによって、前記ルートが定義されても良い。
上記方法によれば、プレイヤオブジェクトの導線を所定の条件に基づいて特定のルートに制限することができる。
(3)複数の前記プレイヤオブジェクトによって1つのパーティを編成可能であり、
パーティ編成の内容により、複数の前記ルートの攻略難易度を異ならせても良い。
上記方法によれば、パーティ編成に基づいてゲーム性をさらに高めることができる。
(4)複数の前記ルートのうち前記プレイヤオブジェクトが移動したルートに応じて、前記クエストを達成した際に前記ユーザが獲得するゲーム内価値の量を異ならせても良い。
上記方法によれば、簡便な方法で、ゲーム性を高めることができる。
(5)前記ゲーム方法は、複数のユーザが協同してプレイするマルチプレイゲームに関するゲーム方法であって、
前記所定の条件は、前記クエストを指定した際に、前記ユーザがランダムに関連付けられる条件を含んでも良い。
上記方法によれば、どのようなルートが構築されるかが運要素にも左右されることとなるため、ゲーム性を高めることができる。
(6)本開示の一実施形態に係るプログラムは、上記(1)から(5)のいずれかに記載のゲーム方法をコンピュータに実行させるためのゲームプログラムである。
この構成によれば、シームレスフィールドを採用したゲームにおいて、ゲーム性を向上可能なゲームプログラムを提供することができる。
[本開示が示す実施形態の詳細]
以下、本開示が示す実施形態について図面を参照しながら説明する。なお、本実施形態の説明において既に説明された部材と同一の参照番号を有する部材については、説明の便宜上、その説明は繰り返さない。
本実施形態において、ユーザは、例えばスマートフォンなどの、タッチスクリーンを搭載した情報処理装置を操作して、ゲームサーバと、スマートフォンとの間でゲームに関するデータを送受信しながらゲームを進行させる。ゲームは、ユーザが一人でプレイするシングルプレイと、ユーザが他のユーザとともにプレイするマルチプレイとに対応する。
図1は、実施の形態のゲーム配信システム1の構成を示す図である。図1に示すように、ゲーム配信システム1は、ユーザが使用する情報処理装置(端末機器の一例)と、サーバ20とを含み、これらの装置がネットワーク30によって互いに通信可能に接続されている。
図1の例では、ユーザが使用する情報処理装置として、ユーザ端末10A、ユーザ端末10Bおよびユーザ端末10C(以下、ユーザ端末10A、10B、10Cなどのユーザ端末を総称して「ユーザ端末10」と記載することもある)など複数の携帯端末を示している。ユーザ端末10Aとユーザ端末10Bとは、無線基地局31と通信することにより、ネットワーク30と接続する。ユーザ端末10Cは、家屋などの施設に設置される無線ルータ32と通信することにより、ネットワーク30と接続する。ユーザ端末10は、タッチスクリーンを備える携帯端末であり、例えば、スマートフォン、ファブレット、タブレットなどである。
ユーザ端末10は、ゲームプログラムを実行することにより、ゲームプログラムに応じたゲームをプレイする環境をユーザに対して提供する。ユーザ端末10は、例えば、アプリ等を配信するプラットフォームを介してゲームプログラムをインストールする。ユーザ端末10は、ユーザ端末10にインストールされたゲームプログラム、または、予めプリインストールされているゲームプログラムを実行することで、ユーザによるゲームのプレイを可能とする。ユーザ端末10は、ゲームプログラムを読み込んで実行することにより、サーバ20と通信し、ゲームの進行に応じてゲームに関連するデータをユーザ端末10とサーバ20との間で送受信する。
サーバ20は、ゲームのプレイに必要なデータを、適宜、ユーザ端末10へ送信することで、ユーザ端末10でのゲームのプレイを進行させる。サーバ20は、ゲームをプレイする各ユーザの、ゲームに関連する各種データを管理する。サーバ20は、ユーザ端末10と通信し、各ユーザのゲームの進行に応じて、画像、音声、テキストデータその他のデータをユーザ端末10へ送信する。
ゲームプログラムは、ユーザがゲームをプレイするモードとして、一人のユーザがプレイする場合(シングルプレイ)と、複数人のユーザが協同してプレイする場合(マルチプレイ)とに対応している。例えば、ゲーム配信システム1において、サーバ20が、マルチプレイに参加するユーザを特定して各ユーザの各ユーザ端末10と通信すること等により、マルチプレイでゲームをプレイする環境を各ユーザに提供する。
ゲーム配信システム1は、マルチプレイに対応することにより、例えば、アクションゲームであれば、ユーザ同士が協力してゲームを進行させること、または、ユーザ同士で対戦することなどを可能とする。
図1に示すようにサーバ20は、ハードウェア構成として、通信IF(Interface)22と、入出力IF23と、メモリ25と、ストレージ26と、プロセッサ29とを備え、これらが通信バスを介して互いに接続されている。
通信IF22は、例えばLAN(Local Area Network)規格など各種の通信規格に対応しており、ユーザ端末10など外部の通信機器との間でデータを送受信するためのインタフェースとして機能する。
入出力IF23は、サーバ20への情報の入力を受け付けるとともに、サーバ20の外部へ情報を出力するためのインタフェースとして機能する。入出力IF23は、マウス、キーボード等の情報入力機器の接続を受け付ける入力受付部と、画像等を表示するためのディスプレイ等の情報出力機器の接続を受け付ける出力部とを含む。
メモリ25は、処理に使用されるデータ等を記憶するための記憶装置である。メモリ25は、例えば、プロセッサ29が処理を行う際に一時的に使用するための作業領域をプロセッサ29に提供する。メモリ25は、ROM(Read Only Memory)、RAM(Random Access Memory)等の記憶装置を含んで構成されている。
ストレージ26は、プロセッサ29が読み込んで実行するための各種プログラム及びデータを記憶するための記憶装置である。ストレージ26が記憶する情報は、ゲームプログラム、ゲームプログラムに関連する情報、ゲームプログラムをプレイするユーザの情報その他の情報を含む。ストレージ26は、HDD(Hard Disk Drive)、フラッシュメモリ等の記憶装置を含んで構成されている。
プロセッサ29は、ストレージ26に記憶されるプログラム等を読み込んで実行することにより、サーバ20の動作を制御する。プロセッサ29は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等を含んで構成される。
図2は、ユーザ端末10の構成を示すブロック図である。図2に示すように、ユーザ端末10は、アンテナ110と、無線通信IF120と、タッチスクリーン130(表示部の一例)と、入出力IF140と、記憶部150と、音声処理部160と、マイク170と、スピーカ180と、制御部190とを含む。
アンテナ110は、ユーザ端末10が発する信号を電波として空間へ放射する。また、アンテナ110は、空間から電波を受信して受信信号を無線通信IF120へ与える。
無線通信IF120は、ユーザ端末10が他の通信機器と通信するため、アンテナ110等を介して信号を送受信するための変復調処理などを行う。無線通信IF120は、チューナー、高周波回路などを含む無線通信用の通信モジュールであり、ユーザ端末10が送受信する無線信号の変復調や周波数変換を行い、受信信号を制御部190へ与える。
タッチスクリーン130は、ユーザからの入力を受け付けて、ユーザに対し情報をディスプレイ132に出力する。タッチスクリーン130は、ユーザの入力操作を受け付けるためのタッチパネル131と、メニュー画面やゲームの進行を画面に表示するためのディスプレイ132と、を含む。タッチパネル131は、例えば静電容量方式のものを用いることによって、ユーザの指などが接近したことを検出する。ディスプレイ132は、例えばLCD(Liquid Crystal Display)、有機EL(electroluminescence)その他の表示装置によって実現される。
入出力IF140は、ユーザ端末10への情報の入力を受け付けるとともに、ユーザ端末10の外部へ情報を出力するためのインタフェースとして機能する。
記憶部150は、フラッシュメモリ、RAM(Random Access Memory)等により構成され、ユーザ端末10が使用するプログラム、および、ユーザ端末10がサーバ20から受信する各種データ等を記憶する。
音声処理部160は、音声信号の変復調を行う。音声処理部160は、マイク170から与えられる信号を変調して、変調後の信号を制御部190へ与える。また、音声処理部160は、音声信号をスピーカ180へ与える。音声処理部160は、例えば、音声処理用のプロセッサによって実現される。マイク170は、音声信号の入力を受け付けて制御部190へ出力するための音声入力部として機能する。スピーカ180は、音声信号を、ユーザ端末10の外部へ出力するための音声出力部として機能する。
制御部190は、記憶部150に記憶されるプログラムを読み込んで実行することにより、ユーザ端末10の動作を制御する。制御部190は、例えば、アプリケーションプロセッサによって実現される。
ユーザ端末10がゲームプログラム151を実行する処理について、より詳細に説明する。記憶部150は、ゲームプログラム151と、ゲーム情報152と、ユーザ情報153とを記憶する。ユーザ端末10は、例えば、サーバ20からゲームプログラムをダウンロードして記憶部150に記憶させる。また、ユーザ端末10は、ゲームの進行に伴いサーバ20と通信することで、ゲーム情報152およびユーザ情報153等の各種のデータをサーバ20と送受信する。
ゲームプログラム151は、ユーザ端末10においてゲームを進行させるためのプログラムである。ゲーム情報152は、ゲームプログラム151が参照する各種のデータを含む。ゲーム情報152は、例えば、ゲームにおいて仮想空間に配置するオブジェクトの情報、オブジェクトに対応付けられた効果の情報(ゲームキャラクタに設定されるスキルの情報などを含む)などを含む。ユーザ情報153は、ゲームをプレイするユーザについての情報を含む。ユーザ情報153は、例えば、ゲームをプレイするユーザ端末10のユーザを識別する情報、マルチプレイ時に協働してゲームをプレイする他のユーザを識別する情報などを含む。
制御部190は、ゲームプログラム151を読み込んで実行することにより、入力操作受付部191と、キャラクタ操作検出部193と、オブジェクト制御部195と、表示制御部197と、の各機能を発揮する。
入力操作受付部191は、タッチスクリーン130の出力に基づいて、ユーザの入力操作を受け付ける。具体的には、入力操作受付部191は、ユーザの指などがタッチパネル131に接近したことを、タッチスクリーン130を構成する面の横軸および縦軸からなる座標系の座標として検出する。
入力操作受付部191は、タッチスクリーン130に対するユーザの操作を判別する。入力操作受付部191は、例えば、(1)「接近操作」、(2)「リリース操作」、(3)「タップ操作」、(4)「長押し操作(ロングタッチ操作)」、(5)「ドラッグ操作(スワイプ操作)」などのユーザの操作を判別する。入力操作受付部191が判別するユーザの操作は、上記に限られない。例えば、タッチパネル131が、ユーザがタッチパネル131に対して押下する圧力の大きさを検出可能な機構を有する場合、入力操作受付部191は、ユーザが押下した圧力の大きさを判別する。
(1)「接近操作」とは、ユーザが指などをタッチスクリーン130に接近させる操作である。タッチスクリーン130は、ユーザの指などが接近したこと(ユーザの指などがタッチスクリーン130に接触したことを含む)をタッチパネル131により検出し、検出したタッチスクリーン130の座標に応じた信号を入力操作受付部191へ出力する。制御部190は、タッチスクリーン130へのユーザの指などの接近を検出しない状態から、接近を検出したときに、状態が「タッチオン状態」になったと判別する。
(2)「リリース操作」とは、ユーザがタッチスクリーン130を接近操作している状態を止める操作である。制御部190は、例えば、ユーザが指をタッチスクリーン130に接触させている状態から、指を離す操作をしたときに、ユーザの操作を「リリース操作」と判別する。制御部190は、タッチスクリーン130へのユーザの指などの接近を検出している状態から、接近を検出しない状態になったときに、状態が「タッチオン状態」から「タッチオフ状態」になったと判別する。
(3)「タップ操作」とは、ユーザがタッチスクリーン130に対して指などを接近させる接近操作をした後に、接近操作をした位置でリリース操作を行うことである。入力操作受付部191は、接近操作が検出されない状態(ユーザの指などがタッチスクリーン130から離れており、タッチパネル131がユーザの指などの接近を検出していない状態)から、タッチスクリーン130の出力に基づいて、ユーザの指などが接近したことを検出した場合に、その検出した座標を「初期タッチ位置」として保持する。制御部190は、初期タッチ位置の座標と、リリース操作をした座標とがほぼ同一である場合(接近操作が検出された座標から一定範囲内の座標においてリリース操作の座標が検出された場合)に、ユーザの操作を「タップ操作」と判別する。
(4)「長押し操作」とは、ユーザがタッチスクリーン130を押し続ける操作である。制御部190は、ユーザの操作を検出して接近操作を判別してから、接近操作が検出された座標(あるいは当該座標を含む一定領域内)において接近操作が継続している時間が一定時間を超えた場合に、ユーザの操作を「長押し操作」(「長押し操作」を、「ロングタッチ操作」と称することもある)と判別する。
(5)「ドラッグ操作」とは、ユーザがタッチスクリーン130に指などを接近させた接近状態を維持したまま、指をスライドさせる操作である。
キャラクタ操作検出部193は、タッチスクリーン130に対するユーザの入力操作に基づいて、ゲームに登場するプレイヤキャラクタ(以下、「自キャラクタ」と称することもある)に所定の動作を実行させる入力操作の操作内容を検出する。キャラクタ操作検出部193は、ユーザの入力操作に基づいて、例えば、プレイヤキャラクタを移動させる方向を検出する。すなわち、キャラクタ操作検出部193は、ユーザがプレイヤキャラクタの移動方向を指定する入力操作を受け付ける。
具体的には、キャラクタ操作検出部193は、タッチスクリーン130からユーザの指が離れた状態から、ユーザが指をタッチスクリーン130に接近させて、入力操作受付部191がタッチパネル131にユーザの指が接近したことを検出した座標を初期タッチ位置として、ユーザがドラッグ操作を行った場合に、初期タッチ位置の座標とタッチスクリーン130の検出結果とに基づいて、プレイヤキャラクタの移動方向を検出する。キャラクタ操作検出部193での具体的な処理については、後述する。
オブジェクト制御部195は、ユーザ端末10がゲームプログラムを実行することにより進行されるゲームに登場する各種オブジェクト、および、入力操作受付部191が受け付けたユーザの操作内容に基づいて生成される各種オブジェクト(例えば、GUI(Graphical User Interface)画面)の生成、変形、移動などの処理を制御する。オブジェクト制御部195は、例えば、ユーザがプレイヤキャラクタを移動させるためのタッチスクリーン130に対する入力操作に基づいて、プレイヤキャラクタの移動方向を示す操作オブジェクト40を生成する。操作オブジェクト40の詳細については、後述する。
表示制御部197は、キャラクタ操作検出部193およびオブジェクト制御部195での制御に応じて、ディスプレイ132の表示内容を決定し、決定した表示内容に従った画像、テキスト等の各種の情報をディスプレイ132に出力する。例えば、表示制御部197は、プレイヤキャラクタをディスプレイ132の一定領域に表示させた状態で、入力操作受付部191によって受け付けた入力操作に応じて操作オブジェクト40を表示させつつプレイヤキャラクタに所定の動作(例えば、移動やジャンプ動作)を行わせる画面表示を行う。
図3は、サーバ20の機能的な構成を示すブロック図である。図3を参照して、サーバ20の詳細な構成を説明する。サーバ20は、プログラムに従って動作することにより、通信部220と、記憶部250と、制御部290としての機能を発揮する。
通信部220は、サーバ20がユーザ端末10などの外部の通信機器とネットワーク30を介して通信するためのインタフェースとして機能する。
記憶部250は、ユーザ端末10においてユーザがゲームを進行させるための各種プログラムおよびデータを記憶する。ある局面において、記憶部250は、ゲームプログラム251と、ゲーム情報252と、ユーザ情報253とを記憶する。
ゲームプログラム251は、サーバ20がユーザ端末10と通信して、ユーザ端末10においてゲームを進行させるためのプログラムである。ゲームプログラム251は、ゲームを進行させるための各種データであるゲーム情報252およびユーザ情報253等を参照して、ユーザの入力操作に応じてゲームを進行させる。ゲームプログラム251は、制御部290に実行されることにより、ユーザ端末10とデータを送受信する処理、ユーザ端末10のユーザが行った操作内容に応じてゲームを進行させる処理、ゲームをプレイするユーザの情報を更新する処理などをサーバ20に行わせる。
ゲーム情報252は、ゲームプログラム251が参照する各種のデータを含む。ゲーム情報252は、例えば、オブジェクト管理テーブル252Aと、ミッション管理テーブル252Bと、フィールド管理テーブル252Cと、を含む。
オブジェクト管理テーブル252Aは、ゲームの仮想空間内に配置されるオブジェクトの設定を示す。ユーザ端末10は、ゲームプログラム151を実行することにより、仮想空間内に配置される仮想カメラによって当該仮想空間内に配置されるオブジェクトを撮影した画像をディスプレイ132に表示することでゲームを進行させる。
ここで、オブジェクトとしては、例えば、ユーザが操作するゲームキャラクタを示すオブジェクト、ゲームキャラクタが装着する対象物を示すオブジェクトなど様々なものがある。これらオブジェクトは、ユーザがタッチスクリーン130に対して予め定められた入力操作を行うこと、ゲームの進行に伴い一定の条件を満たすこと、その他の様々な事象の発生を契機として、オブジェクトに対応付けられた処理が行われる。
例えば、あるオブジェクトに対してユーザがタッチスクリーン130に対して接近操作を行うことで、オブジェクトがユーザに選択された状態となる。また、例えば、ユーザがドラッグ操作を行うことで、ユーザに選択されているオブジェクトがユーザの入力操作に応じて移動する等の処理が行われる。また、例えば、ユーザがオブジェクトに対してタッチ操作をすることで、ユーザに対し、ゲームを有利に進めるための報酬が付与される等の処理が行われる。
ミッション管理テーブル252Bは、オブジェクトを識別する情報と、オブジェクトに対応付けられたミッションの情報とを対応付けて記憶する。ここで、ミッションとは、クエストとも呼ばれ、ユーザがクリアすべき所定の課題と関連付けられる。例えば、敵キャラクタを倒したり、所定のキャラクタを救出したりすることでミッションがクリアされると、ユーザがゲームを進行させることができる。ミッションをクリアした場合には、所定の報酬(例えばコイン)をユーザが得る等の、ゲームを有利に進行させられる効果が生じる。ミッション管理テーブル252Bには、各ミッションが、後述の複数のミッション発注所のそれぞれと関連付けられて記憶されている。また、各ミッションの情報には、当該ミッションに関連付けられたミッション対象キャラクタの出現場所、難易度、報酬などの情報が含まれている。
フィールド管理テーブル252Cは、ゲームの仮想空間を構成する複数のフィールド(ゲームステージ)の設定を示す。フィールドは、仮想空間に所定のオブジェクトを配置することにより形成される。ユーザがタッチスクリーン130に対して予め定められた入力操作を行うことや、ゲームの進行に伴い一定の条件を満たすこと等を契機として、フィールドが特定される。ゲームフィールドを特定するための処理の詳細は後述する。
ユーザ情報253は、ゲームをプレイするユーザについての情報である。ユーザ情報253は、ユーザ管理テーブル253Aを含む。ユーザ管理テーブル253Aは、各ユーザを識別する情報と、ユーザがゲームを進行させた度合いを示す情報と、ユーザがゲーム内で保有するアイテム、ゲームキャラクタ、ゲームキャラクタが使用する装着物等の情報などを含む。
制御部290は、記憶部250に記憶されるゲームプログラム251を実行することにより、送受信部291、サーバ処理部292、データ管理部293、マッチング部294、計測部295としての機能を発揮する。
送受信部291は、ゲームプログラム151を実行するユーザ端末10から、各種情報を受信し、ユーザ端末10に対し、各種情報を送信する。ユーザ端末10とサーバ20とは、ユーザに関連付けられるオブジェクトを仮想空間に配置する要求、オブジェクトを削除する要求、オブジェクトを移動させる要求、ユーザが獲得する報酬に応じて各種パラメータを更新する要求、ゲームを進行させるための画像、音声その他のデータ、サーバ20からユーザ端末10へ送信される通知などの情報を送受信する。
サーバ処理部292は、サーバ20全体の動作を制御し、各種のプログラムを呼び出す等によりゲームの進行に必要な処理を行う。サーバ処理部292は、例えば、ユーザ端末10から受信した情報に基づいて、ゲーム情報252、ユーザ情報253、などのデータを更新し、ユーザ端末10に各種データを送信することでゲームを進行させる。
データ管理部293は、サーバ処理部292の処理結果に従って、記憶部250に記憶される各種データを更新する処理、データベースにレコードを追加/更新/削除する処理などを行う。
マッチング部294は、複数のユーザを関連付けるための一連の処理を行う。マッチング部294は、例えば、ユーザがマルチプレイを行うための入力操作を行った場合に、ゲームを協同してプレイさせるユーザを関連付ける処理などを行う。
計測部295は、時間を計測する処理を行う。計測部295は、例えば、仮想空間に配置される各オブジェクトについて時間の経過を計測する。また、計測部295は、ゲームが進行している時間を計測する。サーバ20は、ユーザ端末10から、ユーザ端末10においてゲームプログラム151を実行して計測される各種の計測結果の情報を受信し、受信した情報と、計測部295の計測結果とを照合することで、ユーザ端末10とサーバ20とで、各種の時間に関する情報を同期させる。
図4は、本実施形態に係るユーザ端末10のタッチスクリーン130に表示されるゲーム画面の一例を示す。
図4の画面例は、ユーザが操作する自キャラクタ100(プレイヤオブジェクトの一例)に、所定の動作を行わせるための入力操作を受け付ける画面である。制御部190は、タッチスクリーン130に、ユーザが操作するオブジェクトである自キャラクタ100と、対戦相手(敵)となるオブジェクトである相手キャラクタ200(以下、ミッション対象キャラクタと称する場合もある)とを表示させて、ユーザに対し、自キャラクタ100に所定の動作を行わせるための入力操作を受け付ける。自キャラクタ100および相手キャラクタ200は、ユーザ端末10を縦型となるように置いたときに、その上下方向においてタッチスクリーン130の中央付近(例えば、タッチスクリーン130をその上下方向に三分割したときの中央の領域内)に、例えば、左右方向において進行方向に視野がやや広くなるように表示される。タッチスクリーン130の下方には、例えば地面の断面(図4のドット模様の部分)が表示されている。タッチスクリーン130の下半部、すなわち地面の断面が表示された部分は、後述の操作オブジェクト40を操作するためのスペースとして利用可能である。ユーザは、タッチスクリーン130の任意位置への操作によって、自キャラクタ100を操作することができる。ユーザが、例えば、タッチスクリーン130の左右方向に沿った方向(図4の矢印Aの方向)のドラッグ操作を入力した場合、制御部190は、そのドラッグ操作を受け付けて、自キャラクタ100をドラッグ操作の方向に対応する方向(例えば、矢印Bの方向)に移動させるよう制御する。なお、本例では、制御部190は、ドラッグ操作の方向に基づいて、仮想空間内に規定された二次元フィールドにおいて、自キャラクタ100を上下方向および水平方向に移動させることができる。
タッチスクリーン130の左右方向の端部(図4では左端)には、各種のユーザインターフェース画像300(以下、UI画像と称する)が表示されていても良い。UI画像300には、例えば、マップを表示するためのUI画像300A、キャラクタを変更するためのUI画像300B、スキル(ゲーム内で自キャラクタ100により行われる攻撃アクションの一つ)を発動させるためのUI画像300Cが含まれ得る。
<1.自キャラクタの動作制御>
図5は、キャラクタ操作検出部193が、ユーザの入力操作に応じて自キャラクタ100を移動させる方向を検出する処理を示す図である。キャラクタ操作検出部193は、ユーザがタッチスクリーン130を押していない状態から、指などをタッチパネル131に接近させてタッチスクリーン130を押した位置(初期タッチ位置)を起点と設定する。入力操作受付部191は、ユーザの操作をドラッグ操作と判別している場合に、起点となる座標と、タッチスクリーン130がユーザの指などの接近を検出している座標とに基づいて、自キャラクタ100を移動させる方向を検出する。
図5の状態(A)は、タッチスクリーン130からユーザの指が離れた状態から、ユーザが指をタッチスクリーン130に接近させた状態を示す。入力操作受付部191は、ユーザの指がタッチスクリーン130に接近したことを検出し、検出した座標を初期タッチ位置としてメモリ(例えば、主記憶4または補助記憶5)に保持する。
図5の例では、メモリが保持する初期タッチ位置の座標を、初期タッチ位置座標55として示す。入力操作受付部191は、タッチスクリーン130の検出結果(ユーザの指がタッチスクリーン130に接近している座標、および、ユーザの指がタッチスクリーン130に接近していることを検出していないこと(検出結果「null」))を、一定フレーム分、バッファメモリ53に格納する。バッファメモリ53は、タッチスクリーン130における検出結果を、各フレームについて一定フレーム分(図5の例では、メモリ領域fp〔0〕〜メモリ領域fp〔10〕までの11フレーム分)、格納することができる。バッファメモリ53は、例えばリングバッファとして実現することができる。
状態(A)の例では、ユーザがタッチスクリーン130を押した位置を、押下位置50A(タッチスクリーン130の座標(x0,y0))として示す。
図5の状態(B)は、ユーザがタッチスクリーン130に対してドラッグ操作を行って、タッチスクリーン130に対する押下位置を、押下位置50Aから押下位置50B(タッチスクリーン130の座標(x9,y9))まで10フレーム(メモリ領域fp〔0〕〜メモリ領域fp〔9〕までの10フレーム分)で移動させたことを示す。入力操作受付部191は、タッチスクリーン130の検出結果をバッファメモリ53に格納し、バッファメモリ53に保持される値を参照して、タッチスクリーン130に対するユーザの操作をドラッグ操作と判別する。
図5の状態(C)は、ユーザがタッチスクリーン130を押している位置を、押下位置50Bから押下位置50C(タッチスクリーン130の座標(x14,y14))まで、5フレーム(メモリ領域fp〔10〕、fp〔0〕、fp〔1〕、fp〔2〕、fp〔3〕の5フレーム分)で移動させたことを示す。
図5の状態(D)は、キャラクタ操作検出部193が、状態(B)および状態(C)のそれぞれにおいて、ユーザが自キャラクタ100を移動させる方向を指定する入力操作の検出結果を示す。キャラクタ操作検出部193は、バッファメモリ53において、タッチスクリーン130が検出する押下位置の座標を書き込む対象となるメモリ領域がいずれであるかを示す情報(バッファメモリ53の書き込み位置)を管理している。
状態(B)において、キャラクタ操作検出部193は、入力操作受付部191の判別結果に基づいて、初期タッチ位置を示す座標51A(座標(x0,y0))から座標51B(座標(x9,y9))までユーザがドラッグ操作を行ったことを検出する。キャラクタ操作検出部193は、初期タッチ位置の座標51Aを起点として、座標51Aと座標51Bとによって規定されるベクトル52Bを、自キャラクタ100を移動させる方向として検出する。
状態(C)において、キャラクタ操作検出部193は、入力操作受付部191の判別結果に基づいて、座標51B(座標(x9,y9))から座標51C(座標(x14,y14))までユーザがドラッグ操作を行ったことを検出する。キャラクタ操作検出部193は、初期タッチ位置の座標51Aを起点として、座標51Aと座標51Cとによって規定されるベクトル52Cを、自キャラクタ100を移動させる方向として検出する。
<2.操作オブジェクトの基本構成>
本実施形態に係る操作オブジェクト40(図4参照)は、ユーザのタッチスクリーン130に対する接近操作が検知されるとタッチスクリーン130に表示される。操作オブジェクト40は、ユーザが自キャラクタ100を移動させる方向を示す弾性状のオブジェクトである。操作オブジェクト40は、図6の状態(A)に示すように、指接触時の初期形状として、タッチスクリーン130に接触した位置(例えば、図5の初期タッチ位置座標51A)である接触開始点に関連付けられた基準位置の周囲に、円形状の基部42を有するように形成される。なお、基準位置は、最初に指がタッチスクリーン130に触れた座標でなくても良く、例えば、最初に指が触れたフレームの数フレーム後のフレームにおいて指が触れていた座標であっても良い。
ユーザがタッチスクリーン130上で接触開始点から接触終了点(ここで、接触終了点とは、ユーザの指などがタッチスクリーン130に接触した状態での最終地点を意味する)までドラッグ操作を行うと、図6の状態(B)に示すように操作オブジェクト40は、ユーザの指に引っ張られるような弾性変形を伴う。このとき、操作オブジェクト40は、ドラッグ操作の接触開始点に対応して表示される基部(拡大部)42に加えて、ドラッグ操作の接触終了点(注:指はタッチスクリーン130に接触したままの状態である。)付近に位置する先端部44と、基部42と先端部44との間を接続する接続部46とを含むように構成される。このように操作オブジェクト40は、接触開始点から接触終了点に向けて入力されたドラッグ操作の方向に弾性的に延ばされるように形成される。また、ユーザが接触終了点を接触状態に維持しつつタッチスクリーン130上において更に指などを移動させた場合、先端部44もそれに追従して更に移動し操作オブジェクト40の延びる向きも変化する。ユーザによるドラッグ操作が終了した際に(すなわち、タッチスクリーン130上において接触終了点からユーザの指が離れた際に)、弾性変形した操作オブジェクト40が、その復元力に従って、接触開始点に向けて段階的に萎縮して、図6の状態(A)に示した初期形状に復元するように表示され、一定時間経過後に非表示となる。
なお、図6の状態(A)では、接触開始点を中心に円形状の基部42を形成しているが、必ずしもこれに限定されない。例えば、基部42を接触開始点から一定距離だけ上部または下部にずらして形成しても良い。すなわち、操作オブジェクト40の基部42は、接触開始点に関連付けられた所定の位置(基準位置)に対応して表示されていても良い。また、接触開始点に形成した操作オブジェクト40(基部42)をドラッグ操作に応じて変形させずに、接触開始点から接触終了点に向けて、操作オブジェクトの一部を構成する別のオブジェクトを表示させるようにしても良い。
<3.本ゲームプログラムの動作例の基本構成の説明>
図7を参照して、本ゲームプログラムにおける動作例の基本構成について説明する。
本実施形態に係るゲームプログラムは、ユーザの操作によって活動する自キャラクタ100が、複数のミッション(ゲームステージ)を順次クリアしてゆき、全てのミッションをクリアしたときにゲームクリア(エンディング)となるゲームであり、各ゲームステージやゲームステージを選択するためのステージが途切れなく(すなわち、シームレスに)連続している所謂「シームレスフィールド」を採用している。
図7は、本ゲームプログラムにおけるマルチプレイを実現するためのユーザ端末10およびサーバ20の動作例について説明するフローチャートである。図7に示される処理は、制御部190がゲームプログラム151を、制御部290がゲームプログラム251をそれぞれ実行することにより実現される。
ステップS1000において、ユーザ端末10の制御部190は、サーバ20に対してマルチプレイに参加するための参加リクエストを送信する。ステップS1002において、サーバ20の制御部290は、ユーザが操作するユーザ端末10からの参加リクエストを受け付ける。
ステップS1004において、サーバ20の制御部290は、サーバ処理部292として、マルチプレイに参加するユーザが規定人数に達したと判断したことに応じて、サーバ20側の仮想空間を規定して、当該仮想空間に所定のフィールドを形成するためのオブジェクトを配置する。制御部290は、送受信部291として、フィールドを形成するためのオブジェクトの情報をユーザ端末10に送信する。
ステップS1006において、ユーザ端末10の制御部190は、オブジェクト制御部195として、サーバ20から受信した情報に基づいてゲーム情報152に格納されるオブジェクトをユーザ端末10側の仮想空間に配置する。これにより、制御部190は、仮想空間にフィールドを形成する。
ステップS1008において、ユーザ端末10の制御部190は、オブジェクト制御部195として、ゲーム情報152に格納される自キャラクタ100の情報に従い、自キャラクタ100をフィールドに配置(生成)する。さらに、制御部190は、自キャラクタ100の情報をサーバ20に送信する。
ステップS1010において、サーバ20の制御部290は、データ管理部293として、ユーザ端末10から受信したキャラクタ情報に基づいてユーザ管理テーブル253Aに格納される自キャラクタ100の情報を保存する。なお、同ステップにおいて、制御部290は、マルチプレイに参加する他のユーザ端末10から、当該他のユーザ端末10のユーザが操作するキャラクタ(以下、「他キャラクタ」とも称する)の情報を受信して、ユーザ管理テーブル253Aの情報を保存する。
ステップS1012において、サーバ20の制御部290は、サーバ処理部292として、ユーザ管理テーブル253Aに格納される他キャラクタの情報に基づいて、他キャラクタを生成してフィールドに配置する。さらに、制御部290は、送受信部291として、他キャラクタの情報をユーザ端末10に送信する。
ステップS1014において、ユーザ端末10の制御部190は、オブジェクト制御部195として、サーバ20から受信した他キャラクタの情報に基づいて他キャラクタを生成してフィールドに配置する。
ステップS1016において、サーバ20の制御部290は、サーバ処理部292として、オブジェクト管理テーブル252Aを参照して、ミッションをクリアするための対象であるミッション対象キャラクタを生成してフィールドに配置する。また、制御部290は、ミッション対象キャラクタおよびミッション対象キャラクタと関連付けられたミッションの情報をマルチプレイに参加する各ユーザ端末10に送信する。
ステップS1018において、ユーザ端末10の制御部190は、オブジェクト制御部195として、サーバ20から受信したミッション対象キャラクタの情報に基づいて、ミッション対象キャラクタを生成してフィールドに配置する。
ステップS1020において、ユーザ端末10の制御部190は、キャラクタ操作検出部193として、タッチスクリーン130に対するドラッグ操作を検出し、当該ドラッグ操作のタッチ開始位置およびタッチ継続位置により定まる方向を検出する。制御部190は、キャラクタ操作検出部193が検出した方向に、仮想カメラおよび自キャラクタ100を移動させる。さらに、制御部190は、移動後の自キャラクタ100の仮想空間における位置座標をサーバ20に送信する。なお、他の局面において、制御部190は、仮想空間における自キャラクタ100が向いている方向、自キャラクタ100の移動速度などを併せてサーバ20に送信し得る。
ステップS1022において、サーバ20の制御部290は、サーバ処理部292として、ユーザ端末10から受信した自キャラクタ100の位置座標に基づいて、サーバ20側の仮想空間の自キャラクタ100の位置を更新する。なお、同ステップにおいて、制御部290は、サーバ20側の仮想空間における他キャラクタの位置も更新する。制御部290は、更新した他キャラクタの位置情報をユーザ端末10に送信する。
ステップS1024において、ユーザ端末10の制御部190は、オブジェクト制御部195として、サーバ20から受信した他キャラクタの位置情報に基づいて、仮想空間(フィールド)内において他キャラクタを移動する。
また、ユーザ端末10およびサーバ20はそれぞれ、その他ゲームを進行するために必要な処理を実行する。ゲームを進行するために必要な処理は、一例として、自キャラクタや他キャラクタの攻撃処理、これら攻撃のヒット判定処理、ダメージ処理、ドロップアイテム処理、経験値処理、アイテム取得処理、などが挙げられる。
<4.フィールドを特定するための動作処理の説明>
図8および図9は、本実施形態に係るゲームプログラムを実行して、フィールドを特定するためのユーザ端末およびサーバの制御部の動作処理について説明するためのフローチャートである。図10から図12は、本実施形態に係るゲーム画面の一例を示す図である。図13および図15は、当該ゲームプログラムで実現されるシームレスフィールドの構成を示す模式図であり、図14は本実施形態に係るゲーム画面の一例である。
図8のステップS1100において、ユーザ端末10の制御部190は、ユーザの移動操作により、自キャラクタ100が、図10に示すロビーフィールドRF内のミッション発注所60内に移動したか否かを判断する。ミッション発注所60は、ロビーフィールドRF内の所定の位置に一つ以上配置されている。上述の通り、各ミッション発注所60には、異なる(あるいは少なくとも一部が重複していても良い)ミッションが関連付けられている。
自キャラクタ100がミッション発注所60内に移動したと判定された場合には(ステップS1100のYes)、ステップS1102において、制御部190は、ミッション発注所60が選択されたと判定し、選択されたミッション発注所60に関する情報を生成し、当該情報をサーバ20へ送信する。
ステップS1104において、サーバ20の制御部290は、記憶部250に記憶されているミッション管理テーブル252Bを読み出す。そして、ステップS1106において、制御部290は、ミッション管理テーブル252Bからミッション発注所60に関連付けられた情報(以下、ミッション発注所情報と称する)を取得し、このミッション発注所情報をユーザ端末10へ送信する。なお、上述の通り、ミッション管理テーブル252Bに保存されているミッション発注所情報には、当該ミッション発注所60で選択可能なミッションの内容が含まれている。
ステップS1108において、ユーザ端末10の制御部190は、サーバ20から受信したミッション発注所情報に基づいて、タッチスクリーン130上に、選択されたミッション発注所60に関連付けられた少なくとも一つ(ここでは、2つ)のミッションのメニュー画面65を表示する(図11参照)。メニュー画面65には、例えば、ミッション1として「キャラクタ200を5匹倒せ!」というミッションとともに、ミッション対象キャラクタ200の出現場所、ミッションクリアの難易度、ミッションクリア時の報酬が表示される。また、ミッション2として、「キャラクタXXXを救出せよ!」というミッションとともに、ミッション対象キャラクタXXXの出現場所、ミッションクリアの難易度、ミッションクリア時の報酬が表示される。なお、メニュー画面65の表示は、自キャラクタ100がミッション発注所60内に移動した場合に限られない。例えば、制御部190は、ユーザによりミッション発注所60がタップされた場合などにメニュー画面65を表示しても良い。
続いて、ステップS1110において、制御部190は、ユーザの操作により、表示されたミッション1および2のうちいずれか一つが選択されたか否かを判定する。なお、ユーザは、一度に複数のミッションを選択することもできる。
ミッションが選択されたと判定された場合には(ステップS1110のYes)、ステップS1112において、制御部190は、選択されたミッションについて、タッチスクリーン130上に、パーティ編成のためのメニュー画面67を表示する(図12参照)。メニュー画面67には、「パーティを結成」のボタン67Aと「パーティに参加」のボタン67Bが表示される。
ステップS1114において、制御部190は、ユーザの操作により、表示されたボタン67Aおよびボタン67Bのうちいずれか一つが選択されたか否かを判定する。例えば、「パーティを結成」のボタン67Aが選択されたと判定された場合には(ステップS1114のYes)、ステップS1116において、制御部190は、選択されたボタン67Aに関する情報(以下、ボタン選択情報と称する。)を生成し、当該ボタン選択情報をサーバ20へ送信する。
ステップS1118において、サーバ20の制御部290は、ボタン選択情報を記憶部250のミッション管理テーブル252Bに保存する(ミッション管理テーブル252Bを更新する)。続いて、ステップS1120において、制御部290は、ボタン選択情報に基づいて、ユーザ端末10に対して数桁のランダムな識別番号を割り付け、割り付けた識別番号をユーザ端末10へ送信する。
ステップS1122において、ユーザ端末10の制御部190は、サーバ20から受信した識別番号をタッチスクリーン130に表示する。なお、ユーザ端末10のユーザが、タッチスクリーン130に表示された識別番号を他のユーザに知らせることで、他のユーザが自らのユーザ端末を操作して、ユーザ端末10が結成したパーティに参加することができる。
ステップS1124において、サーバ20の制御部290は、所定人数(例えば4人)のユーザがパーティに参加したか否かを判定する。所定人数のユーザがパーティに参加したと判定された場合には(ステップS1124のYes)、図9に示すステップS1126において、制御部290は、パーティが結成されたことに関する情報(パーティ結成情報と称する。)を生成し、当該パーティ結成情報をユーザ端末10へ送信する。
ステップS1128において、ユーザ端末10の制御部190は、ステップS1110でユーザが選択したミッションを、自キャラクタ100が結成したパーティがクリアするためのフィールドを設定する。
ステップS1128で設定されるフィールドは、ユーザ端末10のユーザが選択したミッションによって適宜変更され得るが、ここでは、例えば、図13に示すように、第一のフィールドF1と、第二のフィールドF2(F21〜F23)と、第三のフィールドF3と、を含むものとする。第一のフィールドF1は、ミッション発注所60でミッションを受注した自キャラクタ100が最初に配置される初期地点を含むフィールドである。第二のフィールドF2は、第一のフィールドF1から自キャラクタ100がシームレスに移動可能なフィールドであって、複数のルートR21〜R23を含む。第三のフィールドF3は、第二のフィールドF2(の各ルートR21〜R23)から自キャラクタ100がシームレスに移動可能なフィールドであって、例えば、対戦相手のボスキャラクタである相手キャラクタ200が配置されている。
第二のフィールドF2は、第一のフィールドF1から第三のフィールドF3へ自キャラクタ100を到達させるための複数のルートを定義している。一例として、図13には、空を飛んで移動する空ルートR21、地上を移動する地上ルートR22、地下のトンネルを移動する地下ルートR23を図示している。これにより、図14に示すように、第一のフィールドF1から第二のフィールドF2へ移動した自キャラクタ100は、空ルートR21、地上ルートR22、地下ルートR23の3つのルートから好きなルートを選択して第三のフィールドF3へ向けて移動することができる。
図13に戻り、これらのルートR21〜R23は、それぞれ、キャラクタの移動を制限しない候補フィールド(以下、移動可能フィールドと称する。)と、キャラクタの移動を(ある程度)制限し得る候補フィールド(以下、移動制限フィールドと称する。)との少なくとも2つの候補フィールドを含む。例えば、空ルートR21は、晴れた状態の移動可能フィールドF211と雨降り状態の移動制限フィールドF212とを含み、地上ルートR22は、川が流れていない状態の移動可能フィールドF221と川が流れている状態の移動制限フィールドF222とを含み、地下ルートR23は、トンネルが掘られた状態の移動可能フィールドF231とトンネル内に地下水が流入している状態の移動制限フィールドF232とを含む。
上記のステップS1128において、ユーザ端末10の制御部190は、例えば、ユーザ端末10が割り付けられた識別番号に基づいて、第二のフィールドF2に含まれる複数のルートR21〜R23のそれぞれについて、移動可能フィールドと移動制限フィールドのいずれかをランダムに選択する。すなわち、選択したミッションに応じてユーザ端末10に識別番号がランダムに割り付けられるため、第二のフィールドF2に含まれる複数のルートR21〜R23のそれぞれについて選択される移動可能フィールドと移動制限フィールドも選択したミッション毎に異なる。このとき、制御部190は、複数のルートR21〜R23のうち少なくとも一つのルートにおいては移動制限フィールドを必ず選択することが好ましい。例えば、図15に示すように、本ステップにおいて、制御部190は、空ルートR21として移動可能フィールドF211を選択し、地上ルートR22として移動制限フィールドF222を選択し、地下ルートR23として移動可能フィールドF231を選択する。このようにして、制御部190は、第一のフィールドF1から第三のフィールドF3へ自キャラクタ100を到達させるためのルートを定義する。
ステップS1130において、制御部190は、ステップS1128で選択した候補フィールドに基づいてフィールド設定情報を生成し、当該フィールド設定情報をサーバ20へ送信する。
ステップS1132において、サーバ20の制御部290は、フィールド設定情報を受信するとともに記憶部250に記憶されているフィールド管理テーブル252Cを読出す。ステップS1134において、制御部290は、フィールド設定情報に基づいて、第一のフィールドF1と、ステップS1124で定義した複数のルートR21〜R23を含む第二のフィールドF2と、第三のフィールドF3とから構成されるミッションクリアのためのシームレスフィールドの画像データ(以下、フィールドデータと称する。)を生成し、当該フィールドデータをユーザ端末10へ送信する。
ステップS1136において、ユーザ端末10の制御部190は、サーバ20からフィールドデータをダウンロードして、フィールドデータの記憶部150への保存および読み込みを開始する。なお、制御部190は、第一のフィールドF1、第二のフィールドF2および第三のフィールドF3のフィールドデータをサーバ20から同時にダウンロードしても良く、所定のタイミングで第一のフィールドF1から順にフィールドデータをダウンロードしても良い。
ステップS1138において、制御部190は、第一のフィールドF1の読込みが完了したか否かを判定する。第一のフィールドF1の読込みが完了したと判定された場合には(ステップS1138のYes)、ステップS1140において、制御部190は、自キャラクタ100をミッション発注所60から第一のフィールドF1へと移動可能にする。
ステップS1142において、サーバ20の制御部290は、ユーザ端末10から受信した自キャラクタ100の位置座標に基づいて、サーバ20側の仮想空間の自キャラクタ100の位置を更新する。そして、制御部290は、更新された自キャラクタ100の位置情報を、ユーザ端末10以外の他のユーザ端末へ送信する。
ステップS1144において、ユーザ端末10の制御部190は、第二のフィールドF2の読込みが完了したか否かを判定する。第二のフィールドF2の読込みが完了したと判定された場合には(ステップS1144のYes)、ステップS1146において、制御部190は、ユーザの操作入力に基づいて、第二のフィールドF2を第一のフィールドF1と連続するようにタッチスクリーン130に表示して、自キャラクタ100を第一のフィールドF1から第二のフィールドF2へと連続的に移動させる。なお、制御部190は、第二のフィールドF2のフィールドデータの読み込み中に、ユーザの操作に基づいて自キャラクタ100を操作する(第一のフィールドF1内で移動させる)ことができる。そして、第二のフィールドF2のフィールドデータの読み込みが完了すると、読み込みが完了した第二のフィールドF2への自キャラクタ100の移動が可能となる。
ステップS1148において、サーバ20の制御部290は、ユーザ端末10から受信した自キャラクタ100の位置座標に基づいて、サーバ20側の仮想空間の自キャラクタ100の位置を更新する。そして、制御部290は、更新された自キャラクタ100の位置情報を、ユーザ端末10以外の他のユーザ端末へ送信する。
自キャラクタ100が第二のフィールドF2へ移動した場合に、ユーザは、図14に示すような分岐点において、複数のルートR21〜R23から好きなルートを選んで自キャラクタ100を移動させることができる。例えば、ユーザが地上ルートR22を選択した場合には、図16の状態(a)および状態(b)に示すように、タッチスクリーン130に川が表示される。ここで、図16の状態(a)は、川に水が流れていない状態、すなわち、上述のステップS1128で地上ルートR22として移動可能フィールドF221が選択されている状態を示している。一方、図16の状態(b)は、川に水が流れている状態、すなわち、上述のステップS1128で地上ルートR22として移動制限フィールドF222が選択されている状態を示している。
図16の状態(a)に示すように、移動可能フィールドF221が選択されている場合は、自キャラクタ100が第二のフィールドF2の地上ルートR22から第三のフィールドF3へ移動することが制限されない。そのため、自キャラクタ100は、ユーザの操作入力に基づいて地上ルートR22をスムーズに移動して第三のフィールドF3へ到達することができる。
一方、図16の状態(b)に示すように、移動制限フィールドF222が選択されている場合には、自キャラクタ100が地上ルートR22から第三のフィールドF3へ移動することが制限される。そのため、自キャラクタ100が第三のフィールドF3に到達するためには、ユーザには、地上ルートR22を移動できるようにキャラクタや装備品を変更したり、あるいは地上ルートR22以外のルートを選んで移動することが要求される。
ステップS1150において、ユーザ端末10の制御部190は、第三のフィールドF3の読込みが完了したか否かを判定する。第三のフィールドF3の読込みが完了したと判定された場合には(ステップS1150のYes)、ステップS1152において、制御部190は、ユーザの操作入力に基づいて、第三のフィールドF3を第二のフィールドF2と連続するようにタッチスクリーン130に表示して、自キャラクタ100を第二のフィールドF2から第三のフィールドF3へと連続的に移動させる。このようにして、ユーザが自キャラクタ100の属性やパーティ編成に基づいて第二のフィールドF2の複数のルートR21〜R23のうちから所望のルートを選択することで、自キャラクタ100を第三のフィールドF3へと到達させることができる。
ステップS1154において、サーバ20の制御部290は、ユーザ端末10から受信した自キャラクタ100の位置座標に基づいて、サーバ20側の仮想空間の自キャラクタ100の位置を更新する。そして、制御部290は、更新された自キャラクタ100の位置情報を、ユーザ端末10以外の他のユーザ端末へ送信する。
自キャラクタ100(を含むパーティ)が第三のフィールドF3へ到達すると、相手キャラクタ200との戦闘が開始される。ステップS1156において、ユーザ端末10の制御部190は、自キャラクタ100が相手キャラクタ200を倒したか否かを判定する。相手キャラクタ200が倒されたと判定された場合には(ステップS1156のYes)、ステップS1158において、制御部190は、タッチスクリーン130上において、自キャラクタ100が現在保有しているコイン数に関する情報を変更し、変更したコイン数に関する情報をサーバ20へ送信する。すなわち、相手キャラクタ200を倒すことで、ユーザは所定量のコイン(ゲーム内価値の一例)を獲得することができる。
ステップS1160において、サーバ20の制御部290は、ユーザ端末10から受信したコイン数の情報に基づいて、記憶部250に記憶されているユーザ管理テーブル253Aを更新する。
以上説明したように、本実施形態に係るゲーム方法によれば、ユーザ端末10の制御部190は、ユーザの操作入力に基づいて自キャラクタ100を操作可能な仮想空間、および、所定の課題と関連付けられたミッション(クエスト)を定義し、ユーザ操作入力に基づいてミッションを指定する。そして、制御部190は、指定されたミッションに応じて、第一のフィールドF1と、複数の候補フィールドF211,F212,F221,F222,F231,F232を含む第二のフィールドF2と、第三のフィールドF3と、を含む仮想空間を特定し、これらのフィールドF1〜F3の画像データを所定のタイミングでサーバ20からダウンロードして読み込んで、読み込んだ画像データをユーザ端末10のタッチスクリーン130に表示させる。ここで、第二のフィールドF2は、第一のフィールドF1から第三のフィールドF3へ自キャラクタ100を到達させるためのルートR21〜R23を定義するものであって、ルートR21〜R23は、所定の条件に基づいて、複数の候補フィールドF211,F212,F221,F222,F231,F232から所定の候補フィールドが選択されることによって定義される。これにより、シームレスフィールドを採用したゲームにおいて、選択したミッションに応じてフィールドがランダムに構築されることとなるため、ユーザはシームレスフィールドの移動操作に飽きることなくゲームを楽しむことができる。すなわち、上記ゲーム方法によれば、ゲーム性を向上させることができる。
また、ルートR21〜R23を定義するための所定の条件は、ミッションを指定した際に、ユーザがランダムに割り付けられる識別番号(すなわち、ユーザがランダムに関連付けられる条件)とすることができる。これにより、どのようなルートが構築されるかが運要素にも左右されることとなるため、ゲーム性をさらに高めることができる。
また、制御部190は、各ルートR21〜R23を定義する際に、複数の候補フィールドF211〜F232のうち移動制限フィールドF212,F222,F232が少なくとも一つ含まれるように、候補フィールドを選択することが好ましい。すなわち、複数のルートR21〜R23のうち少なくとも一つのルートを遮断することによって、第二のフィールドF2が定義されるようにする。これにより、自キャラクタ100の導線を、ユーザ端末10にランダムに割り付けられた識別番号等に基づいて特定のルートに制限することができる。
なお、第二のフィールドF2の各ルートR21〜R23を定義する際に、自キャラクタ100や、当該自キャラクタ100のパーティに参加した他のユーザのキャラクタの属性(すなわち、パーティ編成の内容)に基づいて、ルートR21〜R23の攻略難易度に差が出るように候補フィールドを選択しても良い。攻略難易度に差を出すためには、例えば、各ルートR21〜R23で移動制限フィールドを段階的に複数用意しておき、パーティ編成に応じて選択する移動制限フィールドを異ならせることが好ましい。具体的には、図17に示すように、空ルートR21において、移動可能フィールドF211,F221,F231および移動制限フィールドF212,F222,F232に加えて、移動制限フィールドF212,F222,F232とは移動制限の程度がそれぞれ異なる移動制限フィールドF213(例えば、暴風雨のフィールド),F223(例えば、崖のあるフィールド),F233(例えば、トンネルが完全に水没しているフィールド)を追加しておく。そして、上述のステップS1128で移動制限フィールドを選択する際に、制御部190は、パーティ編成に応じて、制限度の異なる移動制限フィールドを選択する。このような構成とすることで、ルートの構築が、パーティ編成にも左右されるようになるため、ユーザがキャラクタを選択したり、パーティを結成したりする際のゲーム性をさらに高めることができる。
例えば、自キャラクタ100のパーティに参加した他のユーザのキャラクタの属性として、水に強く、陸地の障害物に弱いキャラクタが含まれているものとする。この場合には、当該キャラクタのパラメータは、空ルートR21の暴風雨のフィールドF213や地下ルートR23のトンネルが水没しているフィールドF233において上昇するように設定される。また、当該キャラクタのパラメータは、地上ルートR22の崖のあるフィールドF223において低下するように設定される。従って、所定数以上のキャラクタが上記のような属性を有している場合には、地上ルートR22において、崖のあるフィールドF223を候補フィールドとして指定することによって、攻略難易度を上昇させる。一方、空ルートR21や地下ルートR23では暴風雨のフィールドF213や水没しているフィールドF233を候補フィールドとしてそれぞれ指定することによって、攻略難易度を低くさせる。このように、キャラクタの属性の組み合わせに応じたパーティ編成内容を考慮し、当該パーティの編成内容に応じたフィールドを指定することによって、攻略難易度が調整され得る。
また、第二のフィールドF2の複数のルートR21〜R23のうち、自キャラクタ100が第三のフィールドF3へ到達するために実際に移動したルートに応じて、ミッションをクリアした際にユーザが獲得するコインの量を異ならせても良い。例えば、自キャラクタ100が空ルートR21を移動して第三のフィールドF3へ到達した場合には、自キャラクタ100が地上ルートR22を移動して第三のフィールドF3へ到達した場合よりも多くのコインを獲得できるようにする。これにより、ユーザへ、より困難なルートへ挑戦するための動機づけを与えることができ、ゲーム性をさらに高めることができる。
なお、上記の実施形態では、自キャラクタ100と他のユーザのキャラクタとがパーティを結成して複数のキャラクタが協力してミッションをクリアするための動作処理について例示しているが、この例に限られない。例えば、ユーザが、自己が保有する複数のキャラクタを1つのパーティとしてミッションをクリアする構成としても良い。
以上のように本実施形態のゲーム配信システムを構成するユーザ端末10およびサーバ20の動作について説明してきたが、ユーザ端末10で行われる各処理をサーバ20で行うこととしてもよいし、サーバ20で行われる処理をユーザ端末10で行うこととしてもよい。
例えば、ユーザ端末10は、タッチスクリーン130に対するユーザの入力操作を受け付けて、受け付けた操作内容をサーバ20へ送信する。サーバ20は、ユーザの入力操作をユーザ端末10から受け付けて、第二のフィールドF2の複数のルートR21〜R23を特定し、特定した複数のルートR21〜R23を含む各フィールドF1〜F3のフィールドデータを生成して、生成したフィールドデータを、逐次、ユーザ端末10に送信する。このように、ゲームを進行させるための処理の大部分をサーバ20が担うこととしてもよい。また、ゲームを進行させるための処理の大部分をユーザ端末10が担うこととしてもよい。
上記の実施形態は、本発明の理解を容易にするための例示に過ぎず、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良することができると共に、本発明にはその均等物が含まれることは言うまでもない。