【文献】
ポケモンカードゲームDP はじめてブック デンゲキニンテンドーDS.ver,メディアワークス,2008年 2月 1日,第16、21頁
【文献】
[InternetArchive]ポケモンカードゲーム「エントリーバトルweb」,[online],2009年 3月18日,URL,https://web.archive.org/web/20090318023732/http://www.pokemon-card.com/howto/battle/entrybattle/battle.html
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0025】
以下、本発明のゲームシステムの一実施形態について説明する。
(1)ゲームシステムの構成
図1は、実施形態のゲームシステムのシステム構成例を示している。
図1に示すように、このゲームシステムは、例えばインターネットなどの通信網NW(ネットワーク)に接続可能な通信端末10a,10b,10c,…と、通信網NWに接続されているゲームサーバ20と、データベースサーバ30とによって構成されている。各通信端末10a,10b,10c,…はそれぞれ、個々のユーザによって操作される端末であり、例えば、携帯端末、スマートフォン、PDA(Personal Digital Assistant)、パーソナルコンピュータ、双方向の通信機能を備えたテレビジョン受像機(いわゆる多機能型のスマートテレビも含む。)などの通信端末である。なお、以下の説明において、各通信端末10a,10b,10c,…に共通して言及するときには、通信端末10と表記する。
このゲームシステムにおいて、ゲームサーバ20は、クライアントである通信端末10と通信可能に構成されており、通信端末10に対してゲーミングサービスを提供する。ゲームサーバ20には、ゲーム用アプリケーションとしてウェブブラウザ上で動作可能なアプリケーションが実装されている。データベースサーバ30は、ゲームを実行する上での後述する様々な情報を格納しており、それらの情報の読み書きのためにゲームサーバ20と例えば有線で接続される。
通信端末10は、ゲームサーバ20によって提供されるウェブページを表示可能なウェブブラウザを備えており、ユーザは、通信端末10をウェブページ上で操作してゲームを実行する。
【0026】
また、
図1には図示していないが、ゲームサーバ20とは別に各通信端末10のユーザを認証するための認証サーバを設けてもよい。また、多くの通信端末10からのアクセスを受け入れるために複数のゲームサーバ20を設ける場合は、その複数のゲームサーバ20間の負荷を調整するためのロードバランサを設けてもよい。また、ゲームサーバ20は単一のサーバ装置として構成してもよいが、機能を分散させた複数のサーバ装置として構成してもよい。
【0027】
(2)通信端末の構成
図2A,
図2B及び
図3を参照して通信端末10について説明する。
図2A及び
図2Bはそれぞれ、通信端末10の外観の例を示す図である。
図2Aは、例えば折り畳み式の携帯端末(携帯電話機)などの釦入力方式の通信端末を例示したものである。
図2Bは、例えばスマートフォンなどのタッチパネル入力方式の通信端末を例示したものである。
図3は、通信端末10の内部構成を示すブロック図である。
図3に示すように、通信端末10は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、画像処理部14、指示入力部15、表示部16、及び、信号送受信部としての通信インタフェース部17を備えており、各部間の制御信号あるいはデータ信号を伝送するためのバス18が設けられている。
【0028】
CPU11は、ROM12内のウェブブラウザをRAM13にロードして実行する。そして、CPU11は、指示入力部15等によってユーザに入力されるURL(Uniform Resource Locator)の適切な指定に基づき、通信インタフェース部17を介して、ゲームサーバ20からウェブページを表示するためのデータ、すなわち、HTML(HyperText Markup Language)文書や当該文書と関連付けられた画像などのオブジェクトのデータ(以下、総称して適宜「HTMLデータ」と表記する。)を、通信インタフェース部17を介して取得し、ウェブブラウザを実行してHTMLデータを解釈する。なお、通信端末10には、ウェブブラウザのブラウザ機能を拡張するための様々なプラグインが実装されていてよい。そのようなプラグインの一例は、アドビシステムズ社(米国)によるフラッシュプレイヤであり、SWF形式のファイルを再生する。あるいは、本実施形態でのHTMLデータを、動画及び音声の再生機能を備えたHTML5形式としてもよい。
【0029】
ウェブブラウザは、ゲームサーバ20とHTTP(HyperText Transfer Protocol)に従った通信を行う。ウェブブラウザは、ユーザによる指示入力部15の操作によってウェブページ上のURL(Uniform Resource Locator)またはメニューが選択されると、ウェブページの更新のために、その選択結果を含むHTTPリクエストをゲームサーバ20に送信する。ウェブブラウザは、HTTPレスポンスとしてゲームサーバ20からHTMLデータを取得し、解釈して、画像処理部14を介してウェブページを表示部16に表示する。
【0030】
画像処理部14は、HTMLデータの解析結果としてCPU11から与えられる表示用画像データに基づいて、表示部16にウェブページを表示する。表示部16は、例えば、マトリクス状に画素単位で配置された薄膜トランジスタを含むLCD(Liquid Cristal Display)モニタであり、表示用画像データに基づいて薄膜トランジスタを駆動することでウェブページの画像を表示画面16aに表示する。
【0031】
通信端末10が釦入力方式の通信端末(
図2A)である場合、指示入力部15は、ユーザの操作入力を受け入れるための方向指示釦と決定釦などの複数の指示入力釦を含む釦群15a、及び、テンキーなどの複数の指示入力釦を含む釦群15bを備え、各釦の押下(操作)入力を認識してCPU11へ出力するためのインタフェース回路を含む。例えば、方向指示釦は、表示部16に表示されているウェブページをスクロールして表示することをCPU11へ指示するために設けられる。また、決定釦は、例えばウェブページ上で複数のURLまたはメニューが表示されるときに、アクティブ表示(例えば強調表示)されているURLまたはメニューをユーザが選択することをCPU11へ指示するために設けられる。なお、通信端末10を小型の携帯端末によって構成する場合には、これらの釦は、ユーザが通信端末10を片手で保持したままその親指で操作(クリック)しやすいように、通信端末10の前面に配置されていることが好ましい。
図2Aに示す例では、釦群15bは、釦群15aの下方に配置され、「0」〜「9」、「*」、「#」(テンキー)が表記された複数の指示入力釦を含む。
【0032】
通信端末10がタッチパネル入力方式の通信端末(
図2B)である場合、指示入力部15は、主として表示画面16aに指先あるいはペンで触れることによるタッチパネル方式の入力を受け付ける。タッチパネル入力方式は、静電容量方式などの公知の方式でよい。なお、
図2Bに示すように、通信端末10がタッチパネル入力方式の場合であっても釦群15aが設けられる場合もある。
【0033】
通信端末10に表示されるウェブページ上のメニューの選択操作は、例えば通信端末10が携帯端末である場合には、方向指示釦の押下操作によってメニューを選択し、決定釦の押下操作によって、選択したメニューを確定することによって行われる。また、選択操作は、例えば通信端末10がタッチパネル入力方式の場合には、ウェブページが表示されている表示画面16a上のメニューの位置を指あるいはペンで指示(タッチ操作)することによって行われる。
【0034】
(3)ゲームサーバの構成
図4を参照してゲームサーバ20の構成について説明する。
ゲームサーバ20は、例えば階層構造の複数のウェブページからなるゲームのウェブサイトを管理しており、通信端末10に対してゲームのウェブサービスを提供する。
図4に示すように、ゲームサーバ20は、CPU21、ROM22、RAM23、データベース(DB)アクセス部24、及び、通信インタフェース部25を備えており、各部間の制御信号あるいはデータ信号を伝送するためのバス26が設けられている。なお、ゲームサーバ20は、ハードウエアに関しては汎用のウェブサーバと同一の構成をとることができる。
【0035】
ROM22には、クライアントである通信端末10のウェブブラウザに対してHTML文書や画像などのオブジェクトの表示(ウェブページの表示)のサービスを提供するアプリケーションプログラムが格納されている。ROM22には、アプリケーションプログラム以外にもCPU21によって参照される各種データが格納されている。
CPU21は、ROM22内のゲームプログラムをRAM23にロードして実行し、通信インタフェース部25を介して、各種の処理を行う。
【0036】
例えば、CPU21は、通信インタフェース部25を介して、ゲームサーバ20のウェブブラウザとの間でHTTPに従った通信を行う。例えば、CPU21は、通信インタフェース部25を介して、通信端末10から受信したHTTPリクエスト(例えば、前述したように、ウェブページ上でのユーザのURLまたはメニューの選択結果を含む。)に基づいて所定のデータ処理や、演算処理を行い、その処理結果を含むHTTPレスポンスをゲームサーバ20のウェブブラウザに返す。HTTPレスポンスには、ウェブページを更新するためのHTMLデータが含まれる。また、ゲームサーバ20が通信端末10のユーザの認証処理を行う場合には、CPU21はその認証処理を行う。
データベースアクセス部24は、CPU21がデータベースサーバ30に対してデータの読み書きを行うときのインタフェースである。
【0037】
(4)データベースサーバの構成
データベースサーバ30(記憶装置)は、大容量のハードディスク装置やRAID(Redundant Arrays of Inexpensive Disks)等の形態の装置等、汎用ストレージで実現できる。データベースサーバ30内の各データベースは、ゲームサーバ20のデータベースアクセス部24を介してCPU21からのデータの読み書きが可能となるように構成されている。
図5に、データベースサーバ30の構成の一例を示す。
図5に示すように、データベースサーバ30は、ユーザデータベース31と、ゲームデータベース32とを備える。
【0038】
本実施形態のゲームサーバ20によって実現されるゲームの一例として、ユーザの通信端末10に対する操作に応じて、ユーザ同士で、あるいはユーザ対CPUでの、ゲーム上で仮想的に保有するモンスターカード(以下、適宜単に「カード」という。)を使用したバトルを行うバトルゲームを採り上げる。このバトルゲームを、以下では適宜、単に「ゲーム」あるいは「本実施形態のゲーム」という。
【0039】
図6に、本実施形態のゲームにおいて適用されるユーザデータベース31の一例を示す。この例では、ユーザデータベース31は、ユーザID(ユーザ識別情報)ごとに、ユーザ名、ユーザ画像、ゲームレベル、使用可能コスト、及び保有カードの各項目についての情報を含む。ユーザデータベース31に含まれる情報は、ゲームサーバ20によって逐次更新されうる。
【0040】
以下の説明では、ユーザデータベース31に含まれるユーザID、あるいはユーザを特定するユーザ名(後述する)ごとのデータを総称してユーザデータという。ユーザデータを構成する各項目のデータは、以下のとおりである。
・ユーザ名
ユーザ名は、ゲームの実行時に通信端末10のユーザを特定するために表示されるユーザ名である。ユーザ名は、例えばユーザによって予め指定される所定長以下のテキストである。ユーザ名は、ゲームサーバ20によって提供されるネットワーク環境(あるいはゲームコミュニティ)上でユーザを特定する名称である。
・ユーザ画像
ユーザ画像は、ゲームの実行時に通信端末10のユーザを特定するために表示される画像であり、例えばユーザによって予め選択されるアバタ画像であってもよい。
・ゲームレベル
ユーザのゲームにおける進行度合いを示すデータであり、ユーザによるゲームの進行に伴って増加する値である。例えば、ゲームレベルは、例えばLv1(レベル1)からLv100(レベル100)までの範囲のレベル値である。ゲームレベルは、本実施形態のゲームにおいて予め規定された規則に従って増加する。ゲームレベルは例えば、バトルでユーザが勝利した数、又はバトルでの勝率が増加するにつれて増加してもよい。
・使用可能コスト
後述するように、本実施形態のゲームでは、各カードに対してコストが対応付けられている。使用可能コストは、ユーザが1回のバトルで使用可能なカードのコストの総和の上限値である。つまり、ユーザは、1回のバトルでは、各カードのコストの総和が使用可能コスト以下となるように、バトルで使用するカードを選択することがもとめられるようにしてもよい。使用可能コストは、例えば、ゲームレベルが大きくなるにつれて大きい値に設定されてもよい。
なお、使用可能コストを設定すること、すなわちユーザが1回のバトルで使用可能なカードのコストの総和の上限値を設定することは必須ではない。
・保有カード
保有カードは、ユーザがゲーム上で保有しているカードである。保有カードについての情報は、保有カードを特定する情報であるカードID(C084等)と、各カードの個数(保有数)とを含む。
【0041】
図5に戻り、ゲームデータベース32は、ゲームサーバ20からのアクセスに基づき、ゲームサーバ20によって実行されたゲームの進行に関する情報を記憶、更新する。ゲームの進行に関する情報は、ゲームの性質によって多様な情報を含みうる。本実施形態のゲームの場合を例に挙げれば、ゲームの進行に関する情報は、異なるユーザ同士のバトルの結果などを含む。ゲームデータベース32はさらに、カードデータベースを記憶する。
図7にカードデータベースの構成例を示す。
図7に示すように、カードデータベースには、カードID毎に、キャラクタ、HP(Hit Point)、攻撃力、防御力、攻撃範囲、攻撃頻度、サイズ、コスト、キャラクタの画像についての情報を含む。各情報の内容は以下のとおりである。
【0042】
・キャラクタ
カードに対応するキャラクタは、カードに表示されるモンスターキャラクタの名称(M3,M8等)についての情報である。キャラクタは、属性に関する情報の一例である。
・HP
カードのHPは、バトルにおけるカードの初期の体力を示すパラメータである。バトル中に敵のカードから攻撃を受けることでカードのHPがゼロになると、そのカードはバトルにおいて消失することになる。
・攻撃力
カードの攻撃力は、バトルにおいてカードの攻撃力を示すパラメータである。カードの攻撃力の値が大きいほど、バトルでは、攻撃対象の敵のカードのHPをより多く低下させることができる。
・防御力
カードの防御力は、バトルにおいて敵のカードの攻撃に対する防御力を示すパラメータである。カードの防御力が大きいほど、バトルでは、敵の攻撃に対する自身のHPが低下し難くなる。
・攻撃範囲
カードの攻撃範囲は、カードの攻撃の射程距離を示すパラメータである。攻撃範囲の値が大きいほど、バトルにおいてより遠くの敵のカードに対して攻撃を加えることができる。
・攻撃頻度
カードの攻撃頻度は、カードが攻撃を加える頻度(つまり、一定時間毎の攻撃の回数)を示すパラメータである。攻撃頻度の値が大きいほど、より頻繁に攻撃を行うことを意味する。
・サイズ
カードのサイズは、後述するバトルフィールドにカードが配置されたときにカードが占めるセルの大きさを示す値である。
図8を参照して後述するように、バトルにおいてカードは、セルによるマトリクスが形成されたバトルフィールドに配置されるが、カードのサイズのX,Yの値は、それぞれ行方向、列方向においてカードが占めるセルの数を示す。同じモンスターキャラクタのカードのサイズは同一である。
・コスト
カードのコストは、そのカードをユーザが、バトルに使用するカード(以下、適宜「バトル使用カード」ともいう。)とするか否かについて検討するときに参照されるパラメータである。本実施形態のゲームでは、バトル使用カードのコストの総和が使用可能コスト以下に制限されるようにしてもよい。なお、攻撃力が大きいほどカードのコストを大きく設定してもよいが、それに限られない。
・画像
カードの画像は、ゲーム画像においてカード上に表示されるキャラクタの画像である。JPG形式はカードの画像ファイル形式の一例に過ぎず、他の画像ファイル形式が用いられてもよい。
【0043】
(5)本実施形態のゲーム
以下、本実施形態のゲームについて、
図8〜9,
図10A〜10F,
図11〜12,及び
図13A〜13Cを参照しながら説明する。
【0044】
(5−1)バトルフィールドとカードの配置
本実施形態のゲームでは、ゲーム空間内にバトルフィールドが設けられ、バトルフィールド上に、バトルを行う各ユーザのカード群が配置される。カード群によるバトルはバトルフィールド内で行われる。
本実施形態のゲームにおいてユーザ間のバトルは非同期で行われる。すなわち、ゲームにアクセスしているユーザが他のユーザとバトルを実行する場合には、バトル相手(他のユーザ)に対応付けられたカードのパラメータを使用して行われ、バトル相手はそのバトルに実時間で関与しない。以下の説明において、ユーザ間のバトルでは、ゲームにアクセスしてバトルの実行を開始したユーザを「実行ユーザ」という。一方、実行ユーザのバトル相手となるユーザを「敵ユーザ」という。
なお、敵ユーザは実際のユーザでなくてもよく、例えば仮想的な敵ユーザ(つまり、コンピュータ)であってもよい。
【0045】
先ず
図8を参照してバトルフィールドについて説明する。
図8は、本実施形態のゲームのバトルフィールドBFの一例について説明するための図である。
図8に示すように、バトルフィールドBFは、実行ユーザのカード群を配置するためのユーザ領域UAaと、敵ユーザのカード群を配置するためのユーザ領域UAbとを含む。
図8の例では、ユーザ領域UAaは、3×6のセルCa(m,n)(m:1〜3の整数,n:1〜6の整数)によるマトリクスで形成されている。ユーザ領域UAbは、3×6のセルCb(m,n)(m:1〜3の整数,n:1〜6の整数)によるマトリクスで形成されている。ユーザ領域UAaとユーザ領域UAbの各カード群は、基準線L0を挟んで互いに対向するようにして配置される。なお、
図8に示すように、上記mは基準線L0を基準としたときの行に相当し、上記nは、左端を基準としたときの列に相当する。実行ユーザのユーザ領域UAaと敵ユーザのユーザ領域UAbの第1行はそれぞれ、第1基準行と第2基準行の一例である。バトル中において、実行ユーザの各カードはユーザ領域UAa内を移動し、敵ユーザの各カードはユーザ領域UAb内を移動するが、互いに基準線L0を越えて移動することはない。
【0046】
なお、
図8において、各ユーザ領域UAa,BFbが3×6のセルのマトリクスで構成しているのは一例に過ぎず、任意の大きさのマトリクスで各領域を形成してよい。
ユーザ領域の大きさは、ユーザのゲームレベルに応じて変更してもよい。例えば、ゲームレベルの上昇とともにユーザ領域を広く設定してもよい。これにより、ユーザは、ゲームレベルが上昇するにつれてより多くのカードを自身のユーザ領域に配置できるようになるため、バトルに有利となる。
ユーザ間のバトルにおいて、両者のゲームレベルに基づいてバトルフィールド内のユーザ領域の大きさを調整してもよい。例えば、ゲームレベルが相対的に高いユーザが、ゲームレベルが相対的に低いユーザとバトルを行うときには、ユーザ領域をより小さくする。例えば
図8において、実行ユーザのゲームレベルが敵ユーザのそれよりも大きいときには、基準線L0を紙面の下方向に移動させてもよい。これによって、ゲームレベルが相対的に高いユーザのカード群は、より少ない枚数のカードで敵ユーザのカード群と対向することになり、ゲームレベルが相対的に高いユーザが不利となる。つまり、ゲームレベルが高いユーザはより少ない枚数のカードしか配置できなくなる。そのため、ゲームレベルが異なるユーザ間のバトルにおいても、拮抗したバトルが期待できる。
【0047】
図8は、一例としてバトルフィールドBFに配置されている各カードのサイズがすべて1×1である場合を示したが、この場合に限られない。例えば
図9に示すように、異なるサイズのカードをバトルフィールドBF内に配置させることが可能である。
図9は、本実施形態のゲームのバトルフィールド内のカードの配置の別の例を示す図である。
図9では、1×1のサイズのカードに加えて、実行ユーザのユーザ領域UAa内に2×2のサイズのカードが2枚配置され、敵ユーザのユーザ領域UAb内に1×3のサイズのカードが2枚配置されている例が示されている。
【0048】
(5−2)バトルの進行
図10A〜10Fは、本実施形態のゲームにおいてユーザ間のバトルが行われるときに通信端末10上に表示される一連のウェブページの例を示す図である。
以下では、実行ユーザが、ユーザ名が「KNM」であるユーザ(以下、ユーザKNM)である場合を例として説明する。
なお、以下の説明において、通信端末10に表示されるウェブページ上で表示されるメニュー、マーク等はウェブページ上で所望の位置に配置されるものであって、通信端末10で視認されるメニュー、マーク等の表示画面上の位置は、ユーザの方向指示釦あるいはタッチパネル操作によるウェブページのスクロール操作によって変化しうる。
【0049】
図10AのウェブページP0は、本実施形態のゲームのトップページの一例であり、個々のユーザIDに応じて構成される。
図10Aの例では、ユーザ画像表示領域101、ユーザデータ表示領域102、及びメニュー表示領域103を含む。
ユーザ画像表示領域101は、実行ユーザKNMのユーザデータに含まれるユーザ画像が表示される領域である。
ユーザデータ表示領域102は、実行ユーザKNMの「ゲームレベル」(図では単に「レベル」)及び「カード数」のデータが表示される領域である。なお、「カード数」は、ユーザの保有カードの総数である。
図10Aに例示するように、「カード数」が「40/60」と表記されている場合、ユーザが保有するカードが40枚であり、最大で保有可能なカードの枚数が60枚であることを示す。最大で保有可能なカードの枚数は、ユーザのゲームレベルに応じて設定されてもよいし、特に設定されなくてもよい。
メニュー表示領域103は、本実施形態のゲームに設けられる基本メニューが表示される領域であり、
図10AのウェブページP0ではメニューm1(「バトル」)が設けられている例を示している。図示しないが、バトル以外のゲームを実行するための他のメニューが設けられてもよい。
【0050】
ウェブページP0上でメニューm1に対する操作入力があった場合、P1に示すようにウェブページが更新される。ウェブページP1には、実行ユーザがバトルフィールド内のユーザ領域UAaにバトルで使用するカード(以下、「バトル使用カード」という。)を配置するためのメニューとして、メニューm2(「自動で配置する」)及びメニューm3(「自分で配置する」)を含む。メニューm2(「自動で配置する」)は、ユーザの保有カードの中から自動的にバトル使用カードを選択して配置を行うためのメニューである。メニューm3(「自分で配置する」)は、ユーザ操作によってユーザの保有カードの中からバトル使用カードをユーザ自らが選択して配置を行うためのメニューである。
【0051】
ウェブページP1においてメニューm3(「自分で配置する」)に対する操作入力があった場合、P2に示すようにウェブページが更新される。ウェブページP2には、ゲーム空間内のユーザ領域UAa内の各セルに対応する複数のセルからなるマトリクス201が表示される。マトリクス201内のいずれかのセルが選択操作することによって、ユーザKNMは、カードを配置したいユーザ領域UAa内のセルを指定することができる。つまり、マトリクス201に対するカード配置がゲーム空間上のユーザ領域UAaにおけるカード配置に反映される。ここでは、例えばマトリクス201内のセル201aが選択操作された場合が想定される。この場合、P3に示すようにウェブページが更新される。ウェブページP3は、ユーザKNMの保有カードの一覧を表示し、この一覧の中から、配置対象のいずれかのカードを選択できるように構成されている。ウェブページP3において例えばモンスターM3のカードが選択された場合、P4に示すようにウェブページが更新される。ウェブページP4において、マトリクス201は、ウェブページP3上で選択されたカードがセル201a上に配置された状態で表示される。
このとき、ウェブページP4に示すように、配置済みのカードのコストの総和(「総コスト」という。)を表示するようにしてもよい。実行ユーザがユーザ領域UAaに配置させるカードの総コストが所定値以下に制限されている場合には、ユーザは、表示される総コストの値に注意を払いつつカードの配置処理を行うことができる。
【0052】
図10Aに示すように、ウェブページP4には、メニューm4(「もっと配置する」),メニューm5(「配置済カードを変更する」),メニューm6(「配置済カードの取消」),及びメニューm7(「現在の配置でバトル」)が設けられてもよい。
メニューm4(「もっと配置する」)は、マトリクス201上の未配置のセルにカードを追加で配置するためのメニューである。メニューm5(「配置済カードを変更する」)は、既にマトリクス201上に配置済みのカードを別のカードに変更するためのメニューである。メニューm6(「配置済カードの取消」)は、既にマトリクス201上に配置済みのカードの配置を取り消すためのメニューである。メニューm7(「現在の配置でバトル」)は、カードの配置処理を完了させて次のステップに進むためのメニュー(つまり、配置終了指示を行うためのメニュー)である。
【0053】
ウェブページP4において、メニューm4(「もっと配置する」)に対する操作入力があった場合、P2と同様にウェブページが更新される。この例では、既にセル201aにカードが配置済みであるため、セル201a以外のセルが選択可能な状態となる。P2→P3→P4→P2→…のウェブページの更新を繰り返すことによって、ユーザはマトリクス201内にカードを順次配置させていくことができる。
ウェブページP4において、マトリクス201に配置済みのいずれかのカードを選択した状態でメニューm5(「配置済カードを変更する」)に対する操作入力があった場合、P3と同様にウェブページが更新される。これによって、選択された配置済みのカードと取り替える別のカードを選択することができる。
ウェブページP4において、マトリクス201に配置済みのいずれかのカードを選択した状態でメニューm6(「配置済カードの取消」)に対する操作入力があった場合、選択されたカードがマトリクス201から削除される。
ウェブページP4において、メニューm7(「現在の配置でバトル」)に対する操作入力があった場合、カード配置処理が終了し、
図10DのP5に示すようにウェブページが更新される。
【0054】
本実施形態では、1つのセルに対して複数のカードを重ねて配置する(以下、適宜「スタックする」ともいう。)ことができる。例えば
図10BのウェブページP2aでは、セル201aに既にカードが配置されている場合が想定されている。この場合に、ユーザが再度セル201aを選択することで、既に配置されているカードの上に別のカードを配置させることができる。ウェブページP2aにおいてセル201aが選択操作された場合、
図10AのP3と同様に、保有カードの一覧が表示される。ここで、モンスターM3のカードが選択された場合、P4aに示すようにウェブページが更新される。ウェブページP4aにおいて、マトリクス201は、セル201aにおいて2枚のカードが重なって配置された状態で表示される。なお、本実施形態では、
図10Bに示すように、同じ属性のカード(つまり、同じモンスターM3のカード)がスタックされる例を挙げるが、同一のセルに複数のカードを重ねて配置させるときにその複数のカードは必ずしも同じ属性でなくてもよいように構成してもよい。
【0055】
図10CのウェブページP4xは、P4,P4aと同様のウェブページの一例であるが、ユーザによるカードの配置が完了した場合の表示例を示している。ウェブページP4xに例示されるマトリクス201は、セル201aに3枚のカード(モンスターM3のカード)が重なって(つまり、スタックされて)配置され、セル201bに2枚のカード(モンスターM5のカード)が重なって配置され、その他のセルには1枚のカード(モンスターは図示せず)が配置された状態で表示されている。
【0056】
なお、本実施形態において、重ねて配置されている複数のカード間の上下関係は、各カードの配置順序を意味している。つまり、最も下に配置されているカードは最初に配置されたカードであり、最も上に配置されているカードは最後に配置されたカードである。この上下関係は、必ずしも重ねて配置されている複数のカードのゲーム画像における上下の位置関係と一致していなくてもよい。例えば、ウェブページP4xのセル201a,201bにスタックされている複数のカードは、後に
図10E等を参照して説明するように、ゲーム空間において直立して表示されるため、各カードの配置順序(スタックの上下関係)とゲーム画像における上下の位置関係は一致しない。
【0057】
1つのセルに対して複数のカードをスタックさせた後に、そのセルを選択した状態でメニューm5(「配置済カードを変更する」)やメニューm6(「配置済カードの取消」)に対する操作入力があった場合には、スタックされた複数のカードのすべてを変更又は取消の対象としてもよいし、スタックされた複数のカードの中から変更又は取消の対象となるカードをユーザに選択できるようにウェブページを更新させてもよい。
【0058】
図10Dに示すように、カード配置処理が終了した後(つまり、メニューm7の操作入力があった後)には、バトル相手となる他のユーザの一覧を含むウェブページP5が表示される。この一覧の中からいずれかのユーザがバトル相手(つまり、敵ユーザ)として選択されると、P6に示すようにウェブページが更新される。この例では、ユーザKNMとユーザABCの間でバトルが行われる例が示されている。ウェブページP6において、メニューm10(「バトル開始」)に対する操作入力があった場合、ユーザKNMとユーザABCの間でバトルが開始される。
【0059】
図10E及び
図10Fは、バトルの開始時点の表示状態を例示するP7、バトル中の表示状態を例示するP8及びP9、バトルの終了時点の表示状態を例示するP10のウェブページを示す。バトルの開始から終了までのウェブページは、アニメーションによって再生されるものであってもよい。ウェブページP7に示すように、例えば、バトルが実行されるときには、ゲーム空間においてバトルフィールドBFを斜め上方の視点から見た画像が表示される。
【0060】
なお、
図10EのウェブページP7では、バトル開始時点において、
図10CのウェブページP4xのマトリクス201に示すようにバトル使用カードが配置された例を示している。つまり、バトルフィールドBFのユーザ領域UAaのセルCa(1,1)、Ca(1,6)に、それぞれ3枚、2枚のカードがスタックされた状態で配置されている。セルCa(1,1)は、ウェブページP4xのセル201aに対応するバトルフィールドBF上のセルであり、セルCa(1,6)は、ウェブページP4xのセル201bに対応するバトルフィールドBF上のセルである。
図10E及び
図10Fでは、バトル開始時点においてスタックされたカードのモンスターキャラクタを表示し、それ以外のカード(つまり、バトル開始時点で同一のセルに1枚のみが配置されたカード)のキャラクタの表示を省略している。
図10E及び
図10Fの各ウェブページでは、バトルフィールドBF内の各セルに配置されたカードがセル上で直立して表示され、各カードのキャラクタをユーザが認識しやすいように構成されている。
【0061】
ウェブページP8に示すように、バトル中には、実行ユーザ及び敵ユーザの各カードによる攻撃が行われていることが実行ユーザに認識できるように、攻撃を行うカードから攻撃対象のカードに向けて、例えばビームが照射される、あるいは飛来物が放出される等の攻撃態様が表示されることが好ましい。バトル中に攻撃を受けたカードのHPがゼロになると、そのカードはバトルフィールドから消失する。
なお、バトルの開始時点において実行ユーザの1つのセルに複数のカードがスタックされていた場合、バトルの進行に伴って、その複数のカードが敵ユーザのカードから攻撃を受けると、複数のカードのうち最も上に配置されているカードから順に、消失していく。ウェブページP7からP8に示すバトルの進行の例では、セルCa(1,1)にスタックされていた3枚のカードが2枚のカードに減少し、セルCa(1,6)にスタックされていた2枚のカードが1枚のカードに減少している。
【0062】
ウェブページP9は、ウェブページP8が表示された時点よりもさらに時間が経過した状態を示しており、ウェブページP8よりもバトルフィールド上のカード数が少なくなっている。
ウェブページP10に示すように、例えば、実行ユーザ又は敵ユーザのいずれか一方のすべてのカードが消失した場合にバトルが終了する。ウェブページP10の例では、実行ユーザの2枚のカードが残留し、敵ユーザのすべてのカードが消失したため、実行ユーザの勝利となる。なお、必ずしも一方のユーザのすべてのカードが消失したことをもって勝敗を決する場合に限られず、所定のバトル時間の後にバトルフィールド内に残留しているカードの枚数が多いユーザの勝利としてもよい。
【0063】
(5−3)バトル中のカードの移動方法
前述したようにバトル中において各カードはバトルフィールド内を移動するが、このカードの移動は所定の規則に従った移動方法を基に行われる。以下では、バトルフィールド上の各セルに配置されたカードがすべて1枚である場合について説明するが、複数のカードがスタックされた場合でもカードの移動方法は同じである。
以下では、カードの移動方法について、
図11及び
図12を参照し、前方移動と横移動に分けて説明する。
図11は、バトルにおけるカードの前方移動について説明するための図である。
図12は、バトルにおけるカードの横移動について説明するための図である。
図11及び
図12はそれぞれ、バトル中のカードの移動態様を説明するために、ゲーム空間を平面視で見たときのバトルフィールドの各セル上のカード配置を示す図である。
バトル中のカードの移動については、前方移動が横移動に優先して行われる。
【0064】
・カードの前方移動
本実施形態のバトルでは、実行ユーザのユーザ領域UAaと敵ユーザのユーザ領域UAbの第1行に配置されているカードが相手のカードに最も近いために攻撃を受けやすく、HPがより早く低下して消失しやすい。そこで、本実施形態のバトルでは、第1行にあるカードが消失した場合、そのカードと同一の列にある後方のカードを前方移動させる。これによって、バトル中では、各カードが前方へ順次前方移動する動作を行う。
カードの前方移動の具体例について、
図11を参照して説明する。ここでは、ステップS1に示すカードの配置状態を想定する。この配置状態で、実行ユーザのユーザ領域UAa内のセルCa(1,3)上のカードが攻撃を受けて消失した場合には(ステップS2)、そのカードの後方のセルCa(2,3)上のカードが第1行へ前方移動する(ステップS3)。なお、図示していないが、ステップS1の時点でセルCa(3,3)上にカードが存在した場合には、そのカードは同様にして前方のセルCa(2,3)へ移動することになる。
【0065】
・カードの横移動
以下の説明において、フィールド全体のカード群の中央位置を示すマトリクス上の列を「全カード中央位置(CL_all)」といい、敵ユーザのカード群の中央位置を示すマトリクス上の列を「敵カード中央位置(CL_opp)」という。
全カード中央位置は、バトルフィールドにおいて、カードが配置されている最も左のセルの列と、カードが配置されている最も右のセルの列との間の中央位置の列を意味する。列間の中央位置がセル間の中央になる場合には、その中央位置の右側の列を全カード中央位置とする。なお、列間の中央位置がセル間の中央になる場合には、その中央位置の左側の列を全カード中央位置としてもよい。
敵カード中央位置は、敵ユーザのユーザ領域UAbにおいて、カードが配置されている最も左のセルの列と、カードが配置されている最も右のセルの列との間の中央位置の列を意味する。列間の中央位置がセル間の中央になる場合には、その中央位置の左側の列を敵カード中央位置とする。なお、列間の中央位置がセル間の中央になる場合には、その中央位置の右側の列を敵カード中央位置としてもよい。
【0066】
[横移動ステップM1]
本実施形態のバトルの一例において、カードの横移動を行うときには先ず、敵ユーザのカード群から行われる。敵ユーザのカード群のうち全カード中央位置上の第1行のカード、及び全カード中央位置よりも右側にある第1行のカードをすべて、左側のセルに横移動させる。移動先のセルに他のカードが存在する場合には移動させない。第1行のカードを横移動させる場合には、そのカードと同一の列で後方にある他のカードも第1行のカードと連動して横移動させる。
[横移動ステップM2]
次に、敵ユーザのカードのうち全カード中央位置よりも左側にある第1行のカードをすべて、右側のセルに横移動させる。移動先のセルに他のカードが存在する場合には移動させない。第1行のカードを横移動させる場合には、そのカードと同一の列で後方にある他のカードも第1行のカードと連動して横移動させる。
[横移動ステップM3]
敵ユーザのカードの横移動が完了すると次に、実行ユーザのカード群の横移動が行われる。実行ユーザのカード群のうち敵カード中央位置上の第1行のカード、及び敵カード中央位置よりも左側にある第1行のカードをすべて、右側のセルに横移動させる。移動先のセルに他のカードが存在する場合には移動させない。第1行のカードを横移動させる場合には、そのカードと同一の列で後方にある他のカードも第1行のカードと連動して横移動させる。
[横移動ステップM4]
次に、実行ユーザのカードのうち敵カード中央位置よりも右側にある第1行のカードを、左側のセルに横移動させる。移動先のセルに他のカードが存在する場合には移動させない。第1行のカードを横移動させる場合には、そのカードと同一の列で後方にある他のカードも第1行のカードと連動して横移動させる。
【0067】
本実施形態のゲームでは、実行ユーザのカード群による攻撃と、敵ユーザのカード群による攻撃が交互に行われ、攻撃が行われる度に、以上のステップM1〜M4のカードの横移動処理が逐次行われる。バトル中にカードが攻撃を受けて順次消失していくため、全カード中央位置及び敵カード中央位置は、その都度変化していくことになる。
なお、上述したように、カードが配置されている最も左のセルの列と、カードが配置されている最も右のセルの列との間の中央位置がセル間の中央になる場合に、その中央位置を基準としたときの全カード中央位置及び敵カード中央位置の決定方法を互いに逆にする(つまり、中央位置を挟んで一方を左側の列、他方を右側の列にする)ことで、全カード中央位置上の敵ユーザのカードと敵ユーザ中央位置上の実行ユーザのカードとが互いに逆方向に交差するように移動する。そのため、上述した横移動において実行ユーザと敵ユーザのカード群がバトル中に対向しやすくなる。
【0068】
次いで、カードの横移動の具体例について、
図12を参照して説明する。ここでは、ステップS4に示すカードの配置状態を想定する。この配置状態の例では、全カード中央位置CL_allは第4列である。そこで、上記ステップM1で述べたように、第4〜6列にある敵ユーザの第1行のカードをすべて、当該カードの後方にあるカードと共に、左側のセルへ横移動させる(ステップS5)。
図12のステップS5では、3枚のカードの移動方向を矢印によって示してある。全カード中央位置CL_allよりも左側にあるセルCb(1,3)上のカードは右側に移動させることができないため、この例では上記ステップM2は実質的に行われない。ステップS5の配置状態(3枚のカードの移動後の状態)では、敵カード中央位置CL_oppは第4列である。そこで次に、上記ステップM3で述べたように、第1〜4列にある実行ユーザの第1行のカードをすべて、当該カードの後方にあるカードと共に、右側のセルへ横移動させる(ステップS6)。
図12のステップS5では、3枚のカードの移動方向を矢印によって示してある。敵カード中央位置CL_oppよりも右側にある実行ユーザのカードは存在しないため、この例では上記ステップM4は実質的に行われない。
【0069】
上述したように、実行ユーザ及び敵ユーザの各カード群では、第1行のカードが消失する度に順次後方のカードが前方移動し、それによって同一の列のカードが隙間を空けずに前方へシフトしていく。また、実行ユーザ及び敵ユーザの各カード群では、いずれかの列のすべてのカードが消失すると、その列の隙間を埋めるようにしてその列に隣接する列に配置されているカードが横方向に移動する。このような前方移動及び横移動によって、バトル中において実行ユーザ及び敵ユーザの各カード群は、カード同士が隣接するようにして、バトルフィールド内を移動することになる。つまり、各ユーザのカード群がバトル中に一体的な移動動作を行うため、実行ユーザがバトルの臨場感を感じることができる。
【0070】
(5−4)バトルのカードの移動例
次に、本実施形態のゲームにおいて、バトルの開始からバトルの終了までの実行ユーザ及び敵ユーザの各カードの移動態様の具体例について、
図13A〜13Cを参照して説明する。
図13A〜13Cは、バトルの開始から終了までのカードの移動態様を説明するために、ゲーム空間を平面視で見たときのバトルフィールドの各セル上のカード配置を示す図である。各図では、カードの移動が矢印によって示される。
本実施形態のバトルは、例えば、上述したように実行ユーザ及び敵ユーザのカード群の攻撃が順番で行われる。各ユーザの攻撃が行われた後に逐次、カードの前方移動、及びカードの横移動が順に行われる。
【0071】
図13A〜13Cに示すバトルでは、
図13AのステップS10に示すように、実行ユーザのユーザ領域UAaと敵ユーザのユーザ領域UAbはそれぞれ、2×6のセルによって構成され、各カードのサイズがすべて1×1である例(つまり、各ユーザのバトル使用カードが12枚である例)が示されている。
本実施形態のバトルでは、各ユーザの攻撃が交互に行われて各攻撃の後に、前方移動、及び横移動の各処理が行われる。バトルの初期では、バトルの開始時点で第1行に配置されている各ユーザのカードが攻撃を受けて消失していくため、例えばステップS11に示すように、カードの前方移動が主体的に行われる。ステップS11では、5枚のカードが第2行から第1行のセルへ移動した場合が示されている。
【0072】
バトルが進行し、ステップS12に示すように各ユーザの領域のいずれかの列にカードが存在しない場合が発生すると、横移動が行われる。ステップS12では、実行ユーザのユーザ領域UAaの第5列と、敵ユーザのユーザ領域UAbの第2列とにカードが存在しない。ステップS12の例では、全カード中央位置CL_allは第4列であるため、第1〜3列にある敵ユーザの2枚のカード(セルCb(1,1),Cb(1,2)上のカード)を右側のセルに移動させる。なお、ステップS12では、第4〜6列にある敵ユーザのカードを左側に移動させることはできない。
敵ユーザの2枚のカードが右側のセルに移動した後の敵カード中央位置CL_oppは、ステップS13に示すように第4列である。そこでステップS13では、第5〜6列にある実行ユーザの2枚のカード(セルCa(1,6),Ca(2,6)上のカード)を左側のセルに移動させる。なお、ステップS13では、第1〜4列にある実行ユーザのカードを右側に移動させることはできない。
【0073】
ステップS13からバトルが進行した結果、第1行のカードが消失してカードの前方移動が行われ、ステップS14のカードの配置状態になった場合を想定する。ステップS14の例では、全カード中央位置CL_allは第4列である。そのため、ステップS15では、第4〜6列にある敵ユーザの1枚のカード(セルCb(1,6)上のカード)を左側のセルに移動させる。なお、ステップS15では、第2〜3列にある敵ユーザのカードを右側に移動させることはできない。
敵ユーザの1枚のカードが左側のセルに移動した後の敵カード中央位置CL_oppは、ステップS15に示すように第3列となる。そこでステップS15では、ステップS14において第1〜3列にあった実行ユーザの3枚のカード(セルCa(1,1),Ca(1,2),Ca(2,2)上のカード)を右側のセルに移動させる。なお、その後に第4〜5列にある実行ユーザのカードを左側に移動させることはできない。
【0074】
ステップS15からバトルが進行した結果、第1行のカードが消失してカードの前方移動が行われ、ステップS16のカードの配置状態になった場合を想定する。ステップS16の例では、全カード中央位置CL_allは第4列である。そのため、ステップS17では、ステップS16において第4〜6列にあった敵ユーザの1枚のカード(セルCb(1,5)上のカード)を左側のセルに移動させる。なお、その後に第2〜3列にある敵ユーザのカードを右側に移動させることはできない。
敵ユーザの1枚のカードが左側のセルに移動した後の敵カード中央位置CL_oppは、ステップS17に示すように第3列となる。この場合、実行ユーザのいずれのカードも移動させることができない。
【0075】
ステップS17からバトルが進行した結果、実行ユーザのセルCa(1,4)上のカードと敵ユーザのセルCb(1,3)上のカードが消失して、ステップS18のカードの配置状態になった場合を想定する。ステップS18の例では、全カード中央位置CL_allは第4列である。そのため、ステップS19では、ステップS18において第4列にあった敵ユーザの1枚のカード(セルCb(1,4)上のカード)を左側のセルに移動させる。なお、ステップS19では、その後に第2列にある敵ユーザのカードを右側に移動させることはできない。
敵ユーザの1枚のカードが左側のセルに移動した後の敵カード中央位置CL_oppは、ステップS19に示すように第2列となる。この場合、ステップS19では、ステップS18において第2〜6列にあった実行ユーザの2枚のカード(セルCa(1,3),Ca(1,5)上のカード)を左側のセルに移動させる。
【0076】
ステップS19における3枚のカードの移動後の攻撃でいずれのカードも消失されなかった場合を想定する。その場合、全カード中央位置CL_allは第3列である。このとき、ステップS20に示すように、第3列にある敵ユーザのカードは左側へ移動させることができず、第2列にある敵ユーザのカードは右側へ移動させることができない。一方、敵カード中央位置CL_oppは第2列であるため、ステップS20に示すように、ステップS19において第4列にあった実行ユーザの1枚のカード(セルCa(1,4)上のカード)を左側のセルに移動させる。
ステップS21では、ステップS20において敵ユーザの領域の第1行にあった2枚のカードが消失した場合が想定される。この場合、敵ユーザのカードがすべて消失したことになるため、実行ユーザの勝利となる。
【0077】
図13A〜13Cのバトルの例で示したように、本実施形態のバトルでは、バトル中の実行ユーザ及び敵ユーザの各カード群を、カード同士が隣接するようにしてバトルフィールド内を移動させる。また、実行ユーザ及び敵ユーザの各カード群の横移動では、先ず敵ユーザのカード群を全カード中央位置に向けて横移動させ、その後に実行ユーザのカード群を敵カード中央位置に向けて横移動させる。そのため、各ユーザの攻撃ターンごとに、実行ユーザ及び敵ユーザのカード群同士が対向するようにしてカード位置が調整されるようになる。そのため、バトル開始からバトル終了まで常に各ユーザのカード群が対峙する形となり、実行ユーザから見てバトルの臨場感がより感じられるとともに、各カードによる攻撃の方向が主としてそのカードの前方に設定されている場合には、そのカードに対向して配置されている相手のカードに効果的に攻撃を加えられるため、バトルの勝敗が迅速に決するようになるという利点もある。
【0078】
(6)ゲーム制御装置が備える機能の概要
次に、上述した本実施形態のゲームを実現するためゲーム制御装置が備える機能について説明する。
本実施形態では、ゲームサーバ20及びデータベースサーバ30によってゲーム制御装置が構成されている。以下では、上述した実施形態のゲームが適用される場合を例として、本実施形態のゲーム制御装置で実現される機能について、
図14を参照して説明する。
図14は、本実施形態のゲーム制御装置で主要な役割を果たす機能を説明するための機能ブロック図である。なお、
図14に示す機能ブロック図において、移動手段57は必須の構成要素ではないが、移動手段57を設けることでより好ましいバトルゲームが実現される。
【0079】
対応付け手段51は、オブジェクトとしてのカードをユーザに対応付ける機能を備える。本実施形態においてカードは、
図7のカードデータベースに示したように、カードごとに、サイズ(つまり、カードが占めるセルの大きさに関する情報)と、バトルにおけるHPとが関連付けられている。カードのサイズは、本発明の「ゲーム空間内に占める領域に関する情報」の一例である。HPは、本発明の第1パラメータの一例である。
本実施形態では、ユーザのカードの取得方法については詳述しないが、様々な方法が採られうる。例えば、ユーザが保持するゲーム上の所定量のポイントや仮想通貨と引き換えに、ユーザにカードが付与されるように構成されてもよい。あるいは、例えばクエスト等の、バトル以外のゲーム要素をユーザが実行することによって、所定の、あるいはランダムな確率でユーザにカードが付与されるように構成されてもよい。カードの付与機会が発生すると、ゲームサーバ20のCPU21は、カードデータベースに記録されているカードの中から抽選でユーザに付与するカードを決定し、その決定したカードをユーザの保有カードとして、例えばユーザデータに記録するようにする。
【0080】
配置手段52は、ゲーム空間内のバトルフィールドのユーザ領域(所定のフィールド)に、ユーザに対応付けられたカード(ユーザの保有カード)のうちバトル使用カード(バトルに使用するカード)を配置する機能を備える。
【0081】
配置手段52の機能は、
図15を参照すると、例えば以下のようにして実現できる。
図15は、バトル使用カードデータのデータ構成の一例を示す図である。バトル使用カードデータは、各バトル使用カードに対応付けて、そのバトルフィールド上の初期位置、バトル中の現在位置、及び残HP(「HPの残量」を示す。)の各データを含み、いずれかのバトル使用カードの現在位置が変化するか、又はいずれかのバトル使用カードが消失する度に作成される。なお、バトル中に各カードの残HPを表示させる場合には、残HPが変化する度にバトル使用カードデータを作成してもよい。
同一の位置に複数のバトル使用カードがスタックされている場合でも、カードごとにデータが記述される。例えば、
図15に示すバトル使用カードデータでは、バトル開始時点においてセルCa(1,1)に3枚のカード(カードC002,C120,C135)がスタックされた場合を示している。また、バトル開始時点においてセルCa(1,2)に2枚のカード(カードC006,C046)がスタックされた場合を示している。
【0082】
なお、バトル使用カードデータの中の各カードの初期位置のデータは、いったん決定された後はバトル中において変更されない。特定のバトルに対して作成される一連のバトル使用カードは、そのバトルの開始から終了までの再生ファイルを作成するための基礎データとなる。作成されたバトル使用カードデータは、ゲームサーバ20のRAM23に記憶される。
ゲームサーバ20のCPU21は、実行ユーザの操作入力を含むHTTPリクエストを通信インタフェース部25を介して取得すると、その操作入力に応じた処理を行い、処理結果を含むHTMLデータを生成してユーザの通信端末10へ送信する。それによって、ユーザの通信端末10にウェブページが表示され、あるいは通信端末10に表示されているウェブページが更新される。
【0083】
(I-1) カードの新規配置
CPU21は、実行ユーザの入力情報がカードの新規配置についての情報である場合、入力情報に基づいてバトル使用カードデータの中の初期配置の欄にデータを書き込む。この入力情報には、実行ユーザの保有カードのうち新たにバトル使用カードとするカード、及びそのカードを配置するセルの選択結果が含まれる。CPU21は、入力情報を取得するとバトル使用カードデータを参照して、実行ユーザに選択されたカードが、選択されたセルに配置可能か否か判断する。CPU21は、選択されたセルにカードを配置可能である場合、そのカードのカードIDと初期位置の欄にデータを書き込む。
カードの新規配置に関する実行ユーザの入力は、例えば、ウェブページP1のメニューm3(「自分で配置する」)に対する操作入力、又はウェブページP4のメニューm4(「もっと配置する」)に対する操作入力に相当する。
【0084】
(I-2) カード配置の変更
CPU21は、実行ユーザの入力情報がカード配置の変更についての情報である場合、入力情報に基づいてバトル使用カードデータを更新する。この入力情報には、実行ユーザの配置済みのバトル使用カード、及びそのカードに代わる新たな保有カードの選択結果が含まれる。CPU21は、入力情報を取得するとバトル使用カードデータを参照して、実行ユーザに新たに選択されたカードが、配置済みのバトル使用カードに代えて配置可能か否か判断する。CPU21は、配置可能である場合、既に配置済みのカードのカードIDに代えて、新たに選択された実行ユーザの保有カードのカードIDを書き込む。
カード配置の変更に関する実行ユーザの入力は、例えば、ウェブページP4において、マトリクス201に配置済みのいずれかのカードを選択した状態でのメニューm5(「配置済カードを変更する」)に対する操作入力に相当する。
【0085】
(I-3) カード配置の取消
CPU21は、実行ユーザの入力情報がカード配置の取消についての情報である場合、入力情報に基づいてバトル使用カードデータを更新する。この入力情報には、配置の取消対象となる実行ユーザのバトル使用カードの情報が含まれる。CPU21は、配置の取消対象となる実行ユーザのバトル使用カードを取得すると、そのバトル使用カードをバトル使用カードデータから消去する。
カード配置の取消に関する実行ユーザの入力は、例えば、ウェブページP4上でマトリクス201に配置済みのいずれかのカードに対する選択入力とメニューm6(「配置済カードの取消」)に対する操作入力に相当する。
【0086】
(I-4) カードの自動配置
CPU21は、ウェブページP1のメニューm2(「自動で配置する」)に対する操作入力を取得すると、実行ユーザの保有カードの中からバトル使用カードを選択してバトル使用カードデータに書き込む。バトル使用カードの選択方法、及びバトル使用カードの配置方法として、例えば以下の方法を採ることができる。CPU21は、カードデータベースを参照して、実行ユーザの保有カードの中から攻撃力と防御力の和が大きい順、及びマトリクス内のセルの所定の配置順で、カードを順次配置していくようにする(つまり、バトル使用カードデータのカードIDと初期位置の欄にデータを書き込む)。あるいはCPU21は、カードデータベースを参照して、1×1の小サイズのカードのうち攻撃力と防御力の和が大きい順にマトリクスの第1行に配置し、比較的大きいサイズ(例えば、2×2等)のカードのうち攻撃力と防御力の和が大きい順に第2行以降のセルに配置する、というようにしてもよい。
【0087】
重畳手段53は、ユーザの入力情報に基づいて、バトルフィールドのユーザ領域に配置されているカードのうちいずれかのカード(第1オブジェクト)上に、ユーザに対応付けられ、かつバトルフィールドに配置されていない他のカード(第2オブジェクト)を重ねて配置する(つまり、スタックする)機能を備える。
なお、本実施形態では、ユーザに対応付けられたカードのうち配置手段52によってユーザ領域に配置可能なカードが存在しない場合に、カードをスタック可能とする。また、本実施形態では、同一のモンスターキャラクタのカード(つまり、同一の属性に関する情報が関連付けられているカード)同士をスタック可能とする場合について説明する。
【0088】
重畳手段53の機能は、配置手段52と同様にして実現できる。すなわち、ゲームサーバ20のCPU21は、実行ユーザの入力情報がカードの新規配置についての情報である場合、入力情報に基づいてバトル使用カードデータの中の初期配置の欄に書き込む。カードの新規配置に関する実行ユーザの入力は、例えば、ウェブページP4のメニューm4(「もっと配置する」)に対する操作入力に相当する。この入力情報には、実行ユーザの保有カードのうち新たにバトル使用カードとするカード、及びそのカードを配置するセルの選択結果が含まれる。
【0089】
CPU21は、入力情報を取得するとバトル使用カードデータを参照して、実行ユーザに選択されたカードが、選択されたセルにおいて他のカードと重ねて配置可能か否か(つまり、スタック可能か否か)判断する。本実施形態では、ユーザ領域に配置可能なカードが存在しない場合にカードをスタック可能である。そこで、ユーザ領域に配置可能なカードが存在しないか否か、及び、選択されたセルに既に配置されているカードと選択されたカードとが同一のモンスターキャラクタのカードであるか否かについて判断される。「ユーザ領域に配置可能なカード」とは、バトルフィールドのユーザ領域上でカードが配置されていない1又は複数のセルが占める領域に配置可能なサイズを備えたカードを意味する。
【0090】
CPU21は、選択されたセルにカードを重ねて配置可能である場合、そのカードのカードIDと初期位置の欄にデータを書き込む。
図15に示したバトル使用カードデータでは、セルCa(1,1)には、カードC002のカードがバトルフィールド上に配置され、このカードの上に順にカードC120,C135の2枚のカードがスタックされた例を示している。
このスタックの例でのCPU21の処理について、以下説明する。CPU21は、ユーザの通信端末10から取得した入力情報に、新たに配置するカードとしてカードC120の選択結果、及び、そのカードの配置するセルとしてセルCa(1,1)の選択結果が含まれている場合、選択されたカードをセルCa(1,1)に配置可能か否かについて判断する。ここでCPU21は先ず、バトル使用カードデータを参照して、(i)初期配置の項目においてすべてのセルにカードのデータが書き込まれているか、あるいはカードのデータが書き込まれていない1又は複数のセルに配置可能な保有カードが存在しないか否かについて判定する。次いでCPU21は、カードデータベースを参照して、(ii)選択されたカードC120が既に配置されているカードC002と同一のモンスターキャラクタのカードであるか否かについて判定する。(i)及び(ii)の条件を共に満たす場合に、CPU21は、選択されたカードC120がセルCa(1,1)に配置可能(つまり、スタック可能)であると判断する。
スタック可能であると判断すると、CPU21は、バトル使用カードデータにおいて、カードID:C002の行の下に新たカードID:C120の行を設ける。CPU21は、カードID:C120の行の初期位置及び現在位置として(1,1)を書き込み、残HPとしてカードC120のカードのHPを書き込む。
カードC135のカードをカード120の上にスタックさせる場合の処理も同様に、バトル使用カードデータにおいて、カードID:C120の行の下に新たカードID:C135の行が設けられる。
【0091】
バトル進行手段54は、実行ユーザと敵ユーザの間のバトルを進行させる機能を備える。
本実施形態のバトル進行方法の例では、実行ユーザと敵ユーザとの間で交互に攻撃が行われる。各ユーザの攻撃ターンでは、各バトル使用カードは、カードデータベース(
図7)の攻撃頻度の値に基づくタイミングで、相手のユーザのカードに対して攻撃を行う。そのため、1回の攻撃ターンにおいて、各ユーザのカード群のうち攻撃を行うカードと攻撃を行わないカードがある。カードが攻撃を行う場合にその攻撃対象となる相手のカードは、カードデータベースの射程距離の値に基づいて決定される。カードの攻撃方向は任意に設定することができるが、好ましくはそのカードが攻撃時点で配置されているセルを基準として前方、又は前方に近い方向に設定される。例えば、カードの攻撃は、そのカードが配置されているセルと同一の列にあるバトル相手のカード、又は当該列に隣接する列にあるバトル相手のカードを対象として行われる。
なお、
図7では、カード毎に攻撃頻度が設定されている例を示したが、攻撃頻度は全カードで同じ値としてもよい。例えば、各ユーザの攻撃ターンですべてのカードが攻撃を行うように設定してもよい。
カードの攻撃方向について上述したが、攻撃を行うカードから攻撃対象のカードまでの距離は、次の観点から設定してもよい。すなわち、一方のユーザのカードが攻撃を行う場合に、相手のカードのうち、カードデータベースの射程距離の範囲内であって、より前方にあるカード(例えば第1列のカード等の、攻撃するカードにより近いカード)を優先的に攻撃対象としてもよい。この場合、その攻撃対象のカードが消失した場合に、そのカードより後方にあるカードの前方移動を促すことになるため、カード全体を前方に進める動きが促進され、バトルがよりダイナミックになる。
また、カードの攻撃方向や攻撃対象のカードの行の優先度を、実行ユーザが指定できるようにしてもよい。
【0092】
本実施形態のバトル進行手段54の機能の実現例では、実行ユーザと敵ユーザの間のバトルの開始の指示がなされた後は、実行ユーザによる操作は必要なく、ゲームサーバ20のCPU21によって作成された再生ファイルが実行ユーザの通信端末10で再生される。再生ファイルのファイル形式は問わないが、例えばSWF形式である。
CPU21は、実行ユーザによるバトル開始の指示を受けると(例えば、
図10Dのメニューm10の選択結果を含むHTTPリクエストを取得すると)、実行ユーザ及び敵ユーザの各バトル使用カードの攻撃処理、HP更新処理、及び移動処理等を実行することで、前述したように、バトルの開始から終了までの再生ファイルの基礎となる一連のバトル使用カードデータを作成する。CPU21は、作成した一連のバトル使用カードデータを基に再生ファイルを作成すると、その再生ファイルを含むHTMLデータを生成して実行ユーザの通信端末10へ送信する。
通信端末10のCPU11は、ゲームサーバ20からHTMLデータを取得すると、ウェブブラウザによって上記再生用ファイルを実行し、バトルを表示部16に表示させる。
【0093】
ゲームサーバ20のCPU21は、実行ユーザのカード配置が完了すると、実行ユーザと敵ユーザの各バトル使用カードのカードデータベース上のデータをRAM23にロードした後に、実行ユーザの攻撃ターン、及び敵ユーザの攻撃ターンにおける攻撃処理を、以下のようにして行う。
CPU21は、実行ユーザの攻撃ターンにおいて、実行ユーザの攻撃処理を実行する。実行ユーザの攻撃処理では、実行ユーザの各カードについて、攻撃タイミングに達したか否かが判断される。カードの攻撃タイミングに達していないと判断した場合には、CPU21はそのカードによる攻撃処理を行わない。カードの攻撃タイミングに達したと判断した場合には、CPU21はそのカードによる攻撃処理を行う。
カードによる攻撃処理では、CPU21は、そのカードの攻撃対象となる敵ユーザのカードを決定する。攻撃対象となる敵ユーザのカードは、攻撃を行うカードが配置されているセルを基準として、そのカードの射程距離の範囲内にあるすべてのカードとしてもよい。その場合、CPU21は、敵ユーザのバトル使用カードデータを参照して、基準としたセルからみて射程距離の範囲内の現在位置の敵ユーザのカードを特定する。CPU21は、特定した敵ユーザのカードのすべてを攻撃対象としてもよいし、特定した敵ユーザのカードの中から所定の条件に沿って、または、無作為に一部のカードを選択し、選択したカードを攻撃対象として決定してもよい。好ましくは、CPU21は、攻撃を行うカードが配置されているセルの列と、当該列に隣接する列とに配置されている敵ユーザのカードのうち、基準としたセルからみて射程距離の範囲内の現在位置の敵ユーザのカードを特定する。
【0094】
なお、本実施形態では、スタックされた複数のカードが射程距離の範囲内に存在する場合には、その複数のカードのうち最も上に配置されているカードから順に攻撃対象とする。例えば、カードC001,C002,C003がこの順にバトル開始時点でスタックされている場合、最も上に配置されているカードC003が最初に攻撃対象のカードとなり、カードC003が消失した場合にはカードC002が次の攻撃対象のカードとなる。
【0095】
敵ユーザの攻撃ターンにおける敵ユーザの攻撃処理は、上述した実行ユーザの攻撃処理と同様であるため、重複説明を省略する。
【0096】
変更手段55は、実行ユーザ(第1ユーザ)と敵ユーザ(第2ユーザ)の間のバトルにおいて、いずれかのユーザのバトル使用カード(オブジェクト)に基づいて、敵ユーザのカード群のうち少なくともいずれかのカードのHPを変更する機能を備える。本実施形態において、カードのHPはオブジェクトに関連付けられたパラメータの一例である。
変更手段55の機能は、以下のようにして実現することができる。ゲームサーバ20のCPU21は、実行ユーザの攻撃ターンにおいて、実行ユーザの各カードの攻撃対象となる敵ユーザのカードを特定すると、特定したカードのHPを低下させる処理を行う。攻撃を受けた敵ユーザのカードのHPの低下量ΔHPは、そのカードの防御力と攻撃を行ったカードの攻撃力とに基づいて、例えば以下のようにして決定される。
ΔHP=Pa×k
Pa:攻撃を行ったカードの攻撃力
k:攻撃を受けた敵ユーザのカードの防御力に応じて決定される係数
なお、敵ユーザのカードの防御力の値が大きい程、係数kが小さい値に設定される。係数kは、例えば0.6〜1.0の範囲の値である。
CPU21は、バトル使用カードデータを作成する時点で各カードの残HPを算出する。
【0097】
なお、上述したHPの低下量の算出方法は一例に過ぎず、攻撃を行ったカードの攻撃力と攻撃を受けたカードの防御力とに基づいて如何なる方法を採ってもよい。例えば、上記ΔHPは、攻撃を行ったカードの攻撃力と防御力の和としてもよい。
実行ユーザの攻撃ターンの場合について説明したが、敵ユーザの攻撃ターンの場合も同様にして攻撃処理を実行することができる。
【0098】
本実施形態の攻撃処理において、スタックされた複数のカードが射程距離の範囲内に存在するときに、CPU21がバトル使用カードデータを参照して、その複数のカードのうち最も上に配置されているカードから順に攻撃対象のカードを特定する場合について説明したが、攻撃を行ったカードの攻撃力に基づくHPの低下量ΔHPが、最も上に配置されているカードの残HP以上である場合には、以下の(i)〜(iii)のいずれかの処理を行うことができる。いずれかの処理を採用することでバトルゲームの進行、あるいはバトル時間を調整することができ、ゲーム設定の自由度が増す。
【0099】
(i) 1度の攻撃力に応じてスタックされている複数のカードに影響が及ぶようにする処理
攻撃を行ったカードの攻撃力が大きい場合には、その攻撃力によって算出されるΔHPの値に応じて、スタックされた複数のカードが上から順に残HPをゼロにするように処理を行ってもよい。例えば、ΔHPが7000であり、スタックされた複数のカードが上から順に残HPが4000, 2000, 2000である場合には、CPU21は、上の2枚のカードの残HPをゼロにし、上から3枚目のカードの残HPを1000にする処理を行う。この処理では、1回の攻撃によって複数のカードが影響を受けるため、バトル開始から終了までの時間を短くすることができる。
(ii) 1度の攻撃力によって1枚のカードにのみ影響が及ぶようにする処理
攻撃を行ったカードの攻撃力が大きい場合に、その攻撃力によって影響を受けるカードを、例えば最も上に配置されているカードに限定してもよい。例えば、ΔHPが7000であり、スタックされた複数のカードが上から順に残HPが4000, 2000, 2000である場合には、CPU21は、最も上のカードの残HPをゼロにする処理を行い、上から2枚目及び3枚目のカードの残HPを変更しない。この処理では、1回の攻撃によって1枚のカードのみが影響を受けるため、バトル開始から終了までの時間が長くなるが、スタックされている複数のカードの各カードのキャラクタが表示されつつ消失していくことになるため、攻撃を受けている対象がユーザに認識しやすいという利点がある。
(iii) 1度の攻撃力に応じてスタックされている複数のカードのうち影響が及ぶカード数を限定する処理
例えば攻撃による影響が及ぶカード数の上限を2枚に限定したときに、ΔHPが10000であり、スタックされた複数のカードの残HPが上のカードから順に4000, 2000, 2000である場合には、CPU21は、上の2枚のカードの残HPをゼロにし、上から3枚目のカードの残HPを変更しないようにしてもよい。
【0100】
なお、複数のカードがスタックされているときのバトル中の攻撃力及び防御力は、各カードの攻撃力及び防御力の総和としてもよい。この場合、バトル中において、カードの消失によってスタックされているカードの枚数が減少していく度に、スタックされている複数のカードの攻撃力及び防御力が変動(減少)する。これに対して、スタックされている複数のカードのバトル開始時点での攻撃力及び防御力の総和と同程度の攻撃力及び防御力を備えた1枚のカードは、バトル開始からバトル終了まで攻撃力及び防御力が変動することがないため、スタックされている複数のカードよりもバトルにおいて有利である。
【0101】
消失手段56は、カードのHPが所定の消失条件を満足した場合に、当該カードをバトルフィールドから消失させる機能を備える。
消失手段56の機能は、以下のようにして実現することができる。ゲームサーバ20のCPU21は、実行ユーザの通信端末10から取得したHTTPリクエストに基づいてバトルの開始から終了までの間の一連のバトル使用カードデータを作成すると、作成した一連のバトル使用カードデータに基づいて再生ファイルを作成する。このときCPU21は、カードの残HPがゼロになると(つまり、消失条件を満足した場合)、カードの現在位置のデータが無効化するようにしてバトル使用カードデータを作成する。これにより、カードの残HPがゼロになった時点から再生ファイルで再生したときにそのカードが消失するようになる。CPU21は、作成した再生ファイルを含むHTMLデータを実行ユーザの通信端末10へ送信する。
【0102】
移動手段57は、実行ユーザと敵ユーザとのバトルにおいて、各ユーザに含まれるカード同士が隣接するように、各ユーザのカード群をバトルフィールド内で移動させる機能を備える。
本実施形態では、移動手段57によるカードの移動では、消失手段56によってバトル中にカードが消失した場合に、消失していない実行ユーザ及び敵ユーザの各々のカード群が、カード同士が隣接するようにしてバトルフィールド内を移動する。その移動態様は限定されるものではないが、本実施形態では一例として、カード同士が隣接するようにしてカード群が移動するようにして、前方移動及び横移動が行われる。このとき、好ましくは、前方移動が横移動に優先して行われる。
以下では、各セルに1枚のカードが配置されている場合の、(II-1) 前方移動処理、及び、(II-2) 横移動処理について順に説明するが、セル上に複数枚のカードがスタックされている場合も1枚のカードの場合と同じである。
【0103】
(II-1) 前方移動処理
CPU21は、実行ユーザ及び敵ユーザのカード群の中で第1行にあるカードが消失したと判断した場合には、そのカードと同一の列にある後方のカードを前方移動させるように、バトル使用カードデータを作成する。つまりCPU21は、前方移動させるカードの現在位置のデータが更新されるようにしてバトル使用カードデータを作成する。
【0104】
(II-2) 横移動処理
[敵ユーザのカードの横移動処理]
CPU21は、フィールド全体のカード群の中央位置を示すマトリクス上の列である全カード中央位置(CL_all)を決定する。ここで、全カード中央位置は、バトルフィールドにおいて、カードが配置されている最も左のセルの列と、カードが配置されている最も右のセルの列との間の中央位置の列である。列間の中央位置がセル間の中央になる場合には、その中央位置の右側の列が全カード中央位置となる。
CPU21は、全カード中央位置を決定すると、敵ユーザのカード群の各カードの処理順序を決定する。この処理順序は以下の(a-1)〜(a-4)の優先順となる。
【0105】
(a-1) 第1行において、全カード中央位置を基準に左から右に配置されているカードの順
(a-2) 第1行以外の各行において、全カード中央位置を基準に左から右に配置されているカードの順
(a-3) 第1行において、全カード中央位置よりも左側にあるカードについて、右から左に配置されているカードの順
(a-4) 第1行以外の各行において、全カード中央位置よりも左側にあるカードについて、右から左に配置されているカードの順
【0106】
CPU21は、(a-1)に示したカードの順で左側のセルに横移動させるようにしてバトル使用カードデータを作成する。つまりCPU21は、横移動させるカードの現在位置のデータが更新されるようにしてバトル使用カードデータを作成する。このとき、移動先のセルに他のカードが存在する場合には移動させない。
CPU21は、(a-2)に示したカードの順で各カードの横移動処理を実行するに当たっては、同一の列にある(a-1)に示したカードの順での各カードの移動結果と連動させて移動させるようにしてバトル使用カードデータを作成する。つまりCPU21は、移動させるカードの現在位置のデータが更新されるようにしてバトル使用カードデータを作成する。
CPU21は、(a-3)に示したカードの順で、右側のセルに横移動させるようにしてバトル使用カードデータを作成する。つまりCPU21は、横移動させるカードの現在位置のデータが更新されるようにしてバトル使用カードデータを作成する。このとき、移動先のセルに他のカードが存在する場合には移動させない。
CPU21は、(a-4)に示したカードの順で各カードの横移動処理を実行するに当たっては、同一の列にある(a-3)に示したカードの順での各カードの移動結果と連動させて移動させるようにしてバトル使用カードデータを作成する。つまりCPU21は、移動させるカードの現在位置のデータが更新されるようにしてバトル使用カードデータを作成する。
【0107】
[実行ユーザのカードの横移動処理]
敵ユーザのカードの横移動処理が完了すると、CPU21は次に、実行ユーザのカード群の横移動処理を実行する。
CPU21は、敵ユーザのカード群の中央位置を示すマトリクス上の列である敵カード中央位置(CL_opp)を決定する。ここで、敵カード中央位置は、敵ユーザのユーザ領域において、カードが配置されている最も左のセルの列と、カードが配置されている最も右のセルの列との間の中央位置の列である。列間の中央位置がセル間の中央になる場合には、その中央位置の左側の列が敵カード中央位置となる。
CPU21は、敵カード中央位置を決定すると、実行ユーザのカード群の各カードの処理順序を決定する。この処理順序は以下の(b-1)〜(b-4)の優先順となる。
【0108】
(b-1) 第1行において、敵カード中央位置を基準に右から左に配置されているカードの順
(b-2) 第1行以外の各行において、敵カード中央位置を基準に右から左に配置されているカードの順
(b-3) 第1行において、敵カード中央位置よりも右側にあるカードについて、左から右に配置されているカードの順
(b-4) 第1行以外の各行において、敵カード中央位置よりも右側にあるカードについて、左から右に配置されているカードの順
【0109】
CPU21は、(b-1)に示したカードの順で、右側のセルに横移動させるようにしてバトル使用カードデータを作成する。つまりCPU21は、横移動させるカードの現在位置のデータが更新されるようにしてバトル使用カードデータを作成する。このとき、移動先のセルに他のカードが存在する場合には移動させない。
CPU21は、(b-2)に示したカードの順で各カードの横移動処理を実行するに当たっては、同一の列にある(b-1)に示したカードの順での各カードの移動結果と連動させて移動させるようにしてバトル使用カードデータを作成する。つまりCPU21は、移動させるカードの現在位置のデータが更新されるようにしてバトル使用カードデータを作成する。
CPU21は、(b-3)に示したカードの順で、左側のセルに横移動させるようにしてバトル使用カードデータを作成する。つまりCPU21は、横移動させるカードの現在位置のデータが更新されるようにしてバトル使用カードデータを作成する。このとき、移動先のセルに他のカードが存在する場合には移動させない。
CPU21は、(b-4)に示したカードの順で各カードの横移動処理を実行するに当たっては、同一の列にある(b-3)に示したカードの順での各カードの移動結果と連動させて移動させるようにしてバトル使用カードデータを作成する。つまりCPU21は、移動させるカードの現在位置のデータが更新されるようにしてバトル使用カードデータを作成する。
【0110】
(7)本実施形態のバトル処理のフロー
次に、本実施形態のバトル処理のフローの一例について、
図16〜21のフローチャートを参照して説明する。
図16は、本実施形態のバトルゲームの全体処理の一例を示すフローチャートである。
図17は、カード配置処理の一例を示すフローチャートである。
図18は、攻撃処理の一例を示すフローチャートである。
図19は、カードの前方移動処理の一例を示すフローチャートである。
図20は、敵ユーザのカードの横移動処理の一例を示すフローチャートである。
図21は、実行ユーザのカードの横移動処理の一例を示すフローチャートである。
【0111】
(7−1)バトルゲームの全体処理(
図16)
図16において、ゲームサーバ20のCPU21は、実行ユーザによるバトル開始の指示を受けた場合(ステップS30:YES)、ステップS32以降の処理を行い、バトル開始の指示を受けていない場合には(ステップS32:NO)、終了する。なお、CPU21は、バトル開始の指示を、例えば
図10Dのメニューm10の選択結果を含むHTTPリクエストを取得したことにより認識する。
【0112】
CPU21は、実行ユーザ及び敵ユーザのカード配置処理(ステップS32;
図17)を実行した後、ステップS34へ進む。本実施形態のバトルゲームでは、実行ユーザと敵ユーザのカードによる攻撃が交互に行うことによる攻撃処理が実行される。そこでCPU21は、実行ユーザの攻撃ターンであると判断した場合には(ステップS34:YES)、実行ユーザの攻撃処理を行う(ステップS36;
図18)。CPU21は、敵ユーザの攻撃ターンであると判断した場合には(ステップS34:NO)、敵ユーザの攻撃処理を行う(ステップS38;
図18)。
CPU21は、実行ユーザ又は敵ユーザのいずれかの攻撃処理を行った後に、敵ユーザと実行ユーザのカードの移動処理を行う。つまりCPU21は、敵ユーザのカードの前方移動処理(ステップS40;
図19)、実行ユーザのカードの前方移動処理(ステップS42;
図19)、敵ユーザのカードの横移動処理(ステップS44;
図20)、実行ユーザのカードの横移動処理(ステップS46;
図21)を順次実行する。これらの処理については、
図19〜21を参照して後述する。
【0113】
CPU21は、ステップS40〜S46の処理の後、実行ユーザ又は敵ユーザのカードがすべて消失した(つまり、すべてのカードの残HPの値がゼロになった)と判断した場合(ステップS48:YES)、バトル終了処理(ステップS50)を行った後に終了する。バトル終了処理には、CPU21が作成した一連のバトル使用カードデータに基づく再生ファイルの作成、その再生ファイルを含むHTMLデータの作成、及び、実行ユーザの通信端末10へのHTMLデータの送信等を含む。
CPU21は、ステップS40〜S46の処理の後、実行ユーザ又は敵ユーザのカードがすべて消失していないと判断した場合(ステップS48:NO)、ステップS34に戻ってバトルの処理を継続する。
【0114】
なお、
図16のフローチャートでは、実行ユーザの攻撃処理(ステップS36)と敵ユーザの攻撃処理(ステップS38)が交互に行われ、各攻撃処理の後にカードの移動処理が行われる場合について例示しているが、この場合に限られない。ステップS36とステップS38を続けて実行し、その後にカードの移動処理を実行するようにしてもよい。
また、
図16のフローチャートでは、実行ユーザによるバトル開始の指示を受けた後に(ステップS30:YES)、カード配置処理を実行する場合を例示しているが、この場合に限られない。カード配置処理はバトルの処理とは無関係に実行できるようにしてもよい。例えば、
図10AのウェブページP0のメニュー表示領域103内にユーザがバトル使用カードを予め編集して登録するためのメニューを設け、バトル開始の指示を認識した時点で、登録されたバトル使用カードデータを読み出すことによって、バトルを実行するようにしてもよい。
【0115】
(7−2)カード配置処理(
図17)
カード配置処理では先ず、実行ユーザによって選択されたメニューが判定される(ステップS100)。ゲームサーバ20のCPU21は、例えば
図10AのウェブページP4のメニューの選択結果を含むHTTPリクエストを取得すると、その選択結果に基づいて処理を実行する。
CPU21は、ウェブページP1(
図10参照)のメニューm3(「自分で配置する」)の選択結果、又はウェブページP4のメニューm4(「もっと配置する」)の選択結果を含むHTTPリクエストを取得すると(ステップS100:m3,m4)、ウェブページP2向けのHTMLデータをユーザの通信端末10へ送信する。ウェブページP2のマトリクス201上でいずれかの未配置セルの選択結果を含むHTTPリクエストを取得すると(ステップS102:YES)、CPU21は、ユーザの保有カードの一覧をユーザに提示する(ステップS104)。つまりCPU21は、保有カードの一覧を含むHTMLデータをユーザの通信端末10へ送信する。これによってユーザの通信端末10には、例えばウェブページP3が表示される。
【0116】
なお、
図17のステップS100には、メニューm2(「自動で配置する」)の選択肢を図示していないが、メニューm2が選択された場合には、CPU21は、所定の基準を基にユーザの保有カードからマトリクス201にカードを配置するとともに、カードのカードIDと初期位置の欄にデータを書き込むことで、バトル使用カードデータを更新する(ステップS112)。
【0117】
ウェブページP3においていずれかの保有カードの選択結果を含むHTTPリクエストを取得すると(ステップS106:YES)、CPU21は、選択されたカードがマトリクス201に配置可能であるか否かを判断する(ステップS108)。
【0118】
ステップS108の判断は、以下に述べるように様々な観点から行われてもよい。
ステップS108では、選択されたセルにカードが配置されておらず、かつステップS106で選択されたカードをマトリクス201上に配置できる領域が存在しない(つまり、十分な空き領域がない)場合には、CPU21はそのカードを配置できないと判断する。例えば、選択されたセルを基準としたマトリクス上の空き領域として1×2の領域が存在するに過ぎない場合に、選択されたカードのサイズが当該空き領域より大きい領域を必要とするサイズ2×2である場合には、そのカードを配置できないと判断される。
ステップS108では、選択されたセルに既にカードが配置されている場合、ステップS106で選択されたカードが既に配置されているカードに対してスタック可能であるか否かについて判断される。本実施形態では、(i)マトリクス201上でカードが配置されていない領域に配置可能なカードが存在しないという条件、及び、(ii)選択されたセルに既に配置されているカードと選択されたカードとが同一のモンスターキャラクタのカードであるという条件を共に満たす場合には選択されたカードが配置可能であると判断され、(i)又は(ii)のいずれかの条件を満たさない場合には選択されたカードが配置できないと判断される。
【0119】
選択されたカードを配置できないと判断した場合には(ステップS108:NO)、CPU21は、ステップS106で選択されたカードの配置を許可せず、選択されたカードが配置できないことを示すテキストを含むHTMLデータをユーザの通信端末10へ送信する。つまり、選択されたカードが配置できないことが通知されて(ステップS110)、再度のカード選択処理(つまり、ステップS106)へ戻る。一方、選択されたカードを配置できると判断した場合には(ステップS108:YES)、CPU21は、ステップS106で選択されたカードのカードIDと初期位置の欄にデータを書き込むことで、バトル使用カードデータを更新する(ステップS112)。
【0120】
次いでCPU21は、カードの配置終了指示がなされたか否か、つまりメニューm7(「現在の配置でバトル」)の選択結果を含むHTTPリクエストを取得したか否かを判定する(ステップS114)。カードの配置終了指示がなされた場合には(ステップS114:YES)、
図16のフローに戻る。カードの配置終了指示がなされない場合には(ステップS114:NO)、つまり例えばウェブページP4(
図10A)でメニューm4〜m6のいずれかのメニューの選択結果を含むHTTPリクエストを取得した場合には、CPU21は、ステップS100に戻って選択されたメニューの処理を実行する。
なお、ユーザのカードの総コストを制限するためのステップS108の処理は必須ではない。つまり、ステップS106でカードの選択がなされた場合には、その選択されたカードを基にステップS112のバトル使用カードデータの更新処理を実行してもよい。
【0121】
CPU21は、ウェブページP4においてメニューm5(「配置済カードを変更する」;
図10A参照)の選択結果を含むHTTPリクエストを取得すると(ステップS100:m5)、マトリクス201上にカードが配置済みのいずれかのセルが選択されている場合には(ステップS116:YES)、ステップS104へ進む。ステップS104以降の処理は、既に説明したとおりである。なお、複数のカードをスタックされているセルが選択された場合には、その複数のカードのすべてを変更対象としてもよいし、スタックされた複数のカードの中から変更の対象となるカードをユーザが選択できるように構成してもよい。
【0122】
CPU21は、ウェブページP4においてメニューm6(「配置済カードの取消」)の選択結果を含むHTTPリクエストを取得すると(ステップS100:m6)、取消対象となる、カードが配置済みのいずれかのセルが選択されている場合には(ステップS118:YES)、選択されたセルに配置されているカードをバトル使用カードデータから消去するようにしてバトル使用カードデータを更新する(ステップS112)。その後、既に説明したようにステップS114の判定処理を行う。なお、複数のカードをスタックされているセルが選択された場合には、その複数のカードのすべてを取消対象としてもよいし、スタックされた複数のカードの中から取消の対象となるカードをユーザが選択できるように構成してもよい。
【0123】
図17のフローチャートでは、選択されたセルにカードを配置可能か否かについてステップS108にて判断されるが、ステップS104にて判断されるようにしてもよい。その場合、ステップS104でユーザに提示されるカード一覧では、十分な空き領域がなく配置できないカードを非表示とするか、配置可能なカードとは異なる態様で(例えば、暗くさせて)表示させるか、あるいは選択できないようにして表示させてもよい。
【0124】
(7−3)攻撃処理(
図18)
以下では、実行ユーザの攻撃ターン(
図16のステップS36)について説明するが、敵ユーザの攻撃ターン(
図16のステップS38)についても同様である。
実行ユーザの攻撃ターンにおいて、ゲームサーバ20のCPU21は、実行ユーザのバトル使用カードの各々について処理対象のカードを順に特定し、ステップS120〜S126の処理を実行する。CPU21は先ず、処理対象のカードについて攻撃タイミングに達したか否かを判断する(ステップS120)。カードの攻撃タイミングに達していないと判断した場合には(ステップS120:NO)、CPU21はそのカードによる攻撃処理を行わずに、ステップS129へ進む。実行ユーザのすべてのカードについて処理が終了していない場合には(ステップS129:NO)、次のカードの処理のためにステップS120へ戻る。
【0125】
カードの攻撃タイミングに達したと判断した場合には(ステップS120:YES)、CPU21はステップS122以降の処理を行う。なお、CPU21は、ステップS120の判断を行うに当たって、カードデータベース(
図7)の攻撃頻度のデータを参照する。攻撃頻度の値が大きいほど、攻撃を行う頻度が多いと判断される。例えば、攻撃頻度の値が「2」であるカードについては、実行ユーザの攻撃ターンにおいて常に攻撃を実行し、攻撃頻度の値が「1」であるカードについては、連続する2回の実行ユーザの攻撃ターンのいずれかにおいて攻撃を実行する、といった具合である。
【0126】
次いでCPU21は、処理対象のカードの射程距離に敵ユーザのカードがあるか否か判定する(ステップS122)。つまりCPU21は、は、処理対象のカードが配置されているセルを基準として、そのカードの射程距離の範囲内のセルに配置されている敵ユーザのカードがあるか否か判定する。処理対象のカードの射程距離に敵ユーザのカードがある場合には(ステップS120:YES)、CPU21は攻撃対象のカードを決定する(ステップS124)。処理対象のカードの射程距離に敵ユーザのカードがない場合には(ステップS122:NO)、ステップS129へ進む。実行ユーザのすべてのカードについて処理が終了していない場合には(ステップS129:NO)、ステップS120へ戻る。
なお、ステップS124においてCPU21は、スタックされた複数のカードが射程距離の範囲内に存在する場合には、バトル使用カードデータを参照して、その複数のカードのうち最も上に配置されているカードから順に攻撃対象のカードを特定する。
【0127】
ステップS124では、処理対象のカードの射程距離の範囲内にある敵ユーザのカードのすべてを攻撃対象のカードとして決定してもよいし、射程距離の範囲内にある敵ユーザのカードの中から所定の条件に沿って、又は、無作為に一部のカードを選択し、選択したカードを攻撃対象のカードとして決定してもよい。好ましくは、CPU21は、射程距離の範囲内にある敵ユーザのカードの中から、処理対象のカードが配置されているセルの列と、当該列に隣接する列とに配置されている敵ユーザのカードを攻撃対象のカードとして決定してもよい。
【0128】
次にCPU21は、攻撃対象のカードのHPを低下させる処理を行う。前述したように、CPU21は、攻撃対象のカードのHPの低下量を、例えば、処理対象のカードの攻撃力と攻撃対象のカードの防御力とに基づいて算出する。なお、複数のカードがスタックされているときのバトル中の攻撃力及び防御力は、各カードの攻撃力及び防御力の総和としてもよい。つまり、バトル中において、カードの消失によってスタックされているカードの枚数が減少していく度に、スタックされている複数のカードの攻撃力及び防御力が減少するようにしてもよい。
CPU21は、算出されたHPの低下量を基に、攻撃対象のカードのHPを更新する(ステップS126)。CPU21は、攻撃対象のカードの残HPがゼロになったと判断した場合には(ステップS127:YES)、攻撃対象のカードの現在位置のデータが無効化されるようにしてバトル使用カードデータを作成する(ステップS128)。CPU21は、攻撃対象のカードの残HPがゼロより大きいと判断した場合には(ステップS127:NO)、ステップS129へ進む。
実行ユーザのすべてのカードについて処理が終了した場合には(ステップS129:YES)、実行ユーザの攻撃ターンが終了する。
【0129】
(7−4)カードの前方移動処理(
図19)
以下では、実行ユーザのカードの前方移動処理について説明するが、敵ユーザのカードの前方移動処理についても同様である。以下では、各セルに1枚のカードが配置されている場合の前方移動処理について説明するが、セル上に複数枚のカードがスタックされている場合の前方移動処理は1枚のカードの場合と同じである。つまり、セルに複数枚のカードがスタックされている場合、その複数枚のすべてのカードの現在位置のデータが連動して更新される。
ゲームサーバ20のCPU21は、実行ユーザの各カードについて
図19に示す処理を実行する。CPU21は先ず、処理対象のカードが第1行にあるか否か判定する(ステップS130)。処理対象のカードが第1行にある場合には(ステップS130:YES)、前方移動ができないためステップS136へ進む。実行ユーザのすべてのカードについて処理が終了していない場合には(ステップS136:NO)、次のカードの処理のためにステップS130へ戻る。
【0130】
処理対象のカードが第1行にいない場合には(ステップS130:NO)、ステップS132へ進む。CPU21は、処理対象のカードが配置されているセルの1つの前のセルに実行ユーザの他のカードがいない場合には(ステップS132:NO)、処理対象のカードを前進させることを決定する(ステップS134)。このとき、CPU21は、前進させるカードの現在位置のデータが更新されるようにしてバトル使用カードデータを作成する。CPU21は、処理対象のカードが配置されているセルの1つの前のセルに実行ユーザの他のカードがある場合には(ステップS132:YES)、処理対象のカードを前進させることができないためステップS134の処理を行わない。
実行ユーザのすべてのカードについて処理が終了した場合には(ステップS136:YES)、実行ユーザのカードの前方移動処理が終了する。
【0131】
(7−5)敵ユーザのカードの横移動処理(
図20)
以下では、各セルに1枚のカードが配置されている場合の敵ユーザのカードの横移動処理について説明するが、セル上に複数枚のカードがスタックされている場合の横移動処理は1枚のカードの場合と同じである。つまり、セルに複数枚のカードがスタックされている場合、その複数枚のすべてのカードの現在位置のデータが連動して更新される。
ゲームサーバ20のCPU21は、フィールド全体のカード群の中央位置を示すマトリクス上の列である全カード中央位置(CL_all)を決定する(ステップS140)。前述したように、全カード中央位置は、バトルフィールドにおいて、カードが配置されている最も左のセルの列と、カードが配置されている最も右のセルの列との間の中央位置の列である。列間の中央位置がセル間の中央になる場合には、その中央位置の右側の列が全カード中央位置となる。
CPU21は、全カード中央位置を決定すると、敵ユーザのカード群の各カードの処理順序を決定する(ステップS142)。この処理順序は、前述したように、以下の(a-1)〜(a-4)に示す優先順である。各カードの処理順序が決定されると、その処理順序に従って各カードについてステップS144〜S154の処理が行われる。
【0132】
(a-1) 第1行において、全カード中央位置を基準に左から右に配置されているカードの順
(a-2) 第1行以外の各行において、全カード中央位置を基準に左から右に配置されているカードの順
(a-3) 第1行において、全カード中央位置よりも左側にあるカードについて、右から左に配置されているカードの順
(a-4) 第1行以外の各行において、全カード中央位置よりも左側にあるカードについて、右から左に配置されているカードの順
【0133】
処理対象のカードが上記(a-1)を満たすカードである間、処理対象のカードが第1行にあり(ステップS144:YES)、かつ全カード中央位置CL_allにあるか、又は全カード中央位置CL_allより右側にあるため(ステップS146:YES)、CPU21は、処理対象のカードを左のセルへ移動させる処理を行う(ステップS148)。なお、移動先のセルに他のカードが存在する場合には移動させない。ステップS148においてCPU21は、移動させるカードの現在位置のデータが更新されるようにしてバトル使用カードデータを作成する。ステップS148の処理が完了すると、敵ユーザのすべてのカードについて処理が終了していない場合には(ステップS154:NO)、次のカードの処理のためにステップS144へ戻る。
【0134】
処理対象のカードが上記(a-2)を満たすカードである間、処理対象のカードが第1行にないため(ステップS144:NO)、
図20の処理の開始時にバトルフィールド上で1つの前のセルにあったカードと同じように(つまり、連動して)、処理対象のカードを移動させる処理を行う(ステップS152)。すなわち、処理対象のカードが2行目以降のセルにあるカードである場合ついては、上記(a-1)を満たすカードに対して既に行われた移動態様と同じようにして移動が行われる。ステップS152においてCPU21は、移動させるカードの現在位置のデータが更新されるようにしてバトル使用カードデータを作成する。ステップS152の処理が完了すると、敵ユーザのすべてのカードについて処理が終了していない場合には(ステップS154:NO)、次のカードの処理のためにステップS144へ戻る。
【0135】
処理対象のカードが上記(a-3)を満たすカードである間、処理対象のカードが第1行にあり(ステップS144:YES)、かつ全カード中央位置CL_allより左側にあるため(ステップS146:NO)、CPU21は、処理対象のカードを右のセルへ移動させる処理を行う(ステップS150)。なお、移動先のセルに他のカードが存在する場合には移動させない。ステップS150においてCPU21は、移動させるカードの現在位置のデータが更新されるようにしてバトル使用カードデータを作成する。ステップS150の処理が完了すると、敵ユーザのすべてのカードについて処理が終了していない場合には(ステップS154:NO)、次のカードの処理のためにステップS144へ戻る。
【0136】
処理対象のカードが上記(a-4)を満たすカードである間、処理対象のカードが第1行にないため(ステップS144:NO)、
図20の処理の開始時にバトルフィールド上で1つの前のセルにあったカードと同じように(つまり、連動して)、処理対象のカードを移動させる処理を行う(ステップS152)。すなわち、処理対象のカードが2行目以降のセルにあるカードである場合ついては、上記(a-3)を満たすカードに対して既に行われた移動態様と同じようにして移動が行われる。ステップS152においてCPU21は、移動させるカードの現在位置のデータが更新されるようにしてバトル使用カードデータを作成する。ステップS152の処理が完了すると、敵ユーザのすべてのカードについて処理が終了していない場合には(ステップS154:NO)、次のカードの処理のためにステップS144へ戻る。
上記(a-4)を満たす処理対象のカードのうち最後のカードについての処理が完了すると、すべての敵ユーザのカードについての横移動処理が終了したことになる(ステップS154:YES)。
【0137】
(7−6)実行ユーザのカードの横移動処理(
図21)
以下では、各セルに1枚のカードが配置されている場合の実行ユーザのカードの横移動処理について説明するが、セル上に複数枚のカードがスタックされている場合の横移動処理は1枚のカードの場合と同じである。つまり、セルに複数枚のカードがスタックされている場合、その複数枚のすべてのカードの現在位置のデータが連動して更新される。
ゲームサーバ20のCPU21は、敵ユーザのカード群の中央位置を示すマトリクス上の列である敵カード中央位置(CL_opp)を決定する(ステップS160)。前述したように、敵カード中央位置は、敵ユーザのユーザ領域において、カードが配置されている最も左のセルの列と、カードが配置されている最も右のセルの列との間の中央位置の列である。列間の中央位置がセル間の中央になる場合には、その中央位置の左側の列が敵カード中央位置となる。
CPU21は、敵カード中央位置を決定すると、実行ユーザのカード群の各カードの処理順序を決定する(ステップS162)。この処理順序は、前述したように、以下の(b-1)〜(b-4)に示す優先順となる。各カードの処理順序が決定されると、その処理順序に従って各カードについてステップS164〜S174の処理が行われる。
【0138】
(b-1) 第1行において、敵カード中央位置を基準に右から左に配置されているカードの順
(b-2) 第1行以外の各行において、敵カード中央位置を基準に右から左に配置されているカードの順
(b-3) 第1行において、敵カード中央位置よりも右側にあるカードについて、左から右に配置されているカードの順
(b-4) 第1行以外の各行において、敵カード中央位置よりも右側にあるカードについて、左から右に配置されているカードの順
【0139】
処理対象のカードが上記(b-1)を満たすカードである間、処理対象のカードが第1行にあり(ステップS164:YES)、かつ敵カード中央位置CL_oppにあるか、又は敵カード中央位置CL_oppより左側にあるため(ステップS166:YES)、CPU21は、処理対象のカードを右のセルへ移動させる処理を行う(ステップS168)。なお、移動先のセルに他のカードが存在する場合には移動させない。ステップS168においてCPU21は、移動させるカードの現在位置のデータが更新されるようにしてバトル使用カードデータを作成する。ステップS168の処理が完了すると、実行ユーザのすべてのカードについて処理が終了していない場合には(ステップS174:NO)、次のカードの処理のためにステップS164へ戻る。
【0140】
処理対象のカードが上記(b-2)を満たすカードである間、処理対象のカードが第1行にないため(ステップS164:NO)、
図21の処理の開始時にバトルフィールド上で1つの前のセルにあったカードと同じように(つまり、連動して)、処理対象のカードを移動させる処理を行う(ステップS172)。すなわち、処理対象のカードが2行目以降のセルにあるカードである場合ついては、上記(b-1)を満たすカードに対して既に行われた移動態様と同じようにして移動が行われる。ステップS172においてCPU21は、移動させるカードの現在位置のデータが更新されるようにしてバトル使用カードデータを作成する。ステップS172の処理が完了すると、実行ユーザのすべてのカードについて処理が終了していない場合には(ステップS174:NO)、次のカードの処理のためにステップS164へ戻る。
【0141】
処理対象のカードが上記(b-3)を満たすカードである間、処理対象のカードが第1行にあり(ステップS164:YES)、かつ敵カード中央位置より右側にあるため(ステップS166:NO)、CPU21は、処理対象のカードを左のセルへ移動させる処理を行う(ステップS170)。なお、移動先のセルに他のカードが存在する場合には移動させない。ステップS170においてCPU21は、移動させるカードの現在位置のデータが更新されるようにしてバトル使用カードデータを作成する。ステップS170の処理が完了すると、実行ユーザのすべてのカードについて処理が終了していない場合には(ステップS174:NO)、次のカードの処理のためにステップS164へ戻る。
【0142】
処理対象のカードが上記(b-4)を満たすカードである間、処理対象のカードが第1行にないため(ステップS164:NO)、
図21の処理の開始時にバトルフィールド上で1つの前のセルにあったカードと同じように(つまり、連動して)、処理対象のカードを移動させる処理を行う(ステップS172)。すなわち、処理対象のカードが2行目以降のセルにあるカードである場合ついては、上記(b-3)を満たすカードに対して既に行われた移動態様と同じようにして移動が行われる。ステップS172においてCPU21は、移動させるカードの現在位置のデータが更新されるようにしてバトル使用カードデータを作成する。ステップS172の処理が完了すると、実行ユーザのすべてのカードについて処理が終了していない場合には(ステップS174:NO)、次のカードの処理のためにステップS164へ戻る。
上記(b-4)を満たす処理対象のカードのうち最後のカードについての処理が完了すると、すべての実行ユーザのカードについての横移動処理が終了したことになる(ステップS174:YES)。
【0143】
以上詳細に説明したように、本実施形態のゲーム制御装置によって実現されるユーザ間のバトルゲームでは、ユーザ同士のカード群の攻防によってカードが消失する場合に、バトルフィールドに残留する各ユーザのカード群が隣接するようにしてバトルフィールド内を移動する。つまり、各ユーザのカード群がバトルの開始から終了まで統率のとれた動きを見せるため、ユーザはバトルゲームにおいて、より臨場感を味わうことができる。
本実施形態のバトルゲームに関するCPU21の攻撃処理では実行ユーザと敵ユーザのカード群の攻撃が交互に実行されるが、ユーザの通信端末10へ送信される再生ファイルを再生した場合には、両者の攻撃が高速に再現される。このとき、攻防の局面の切り替わりで何らかのユーザ操作を要さず、従来のターン制のバトルよりもバトルの表示が興趣性に富んだものとなる。
【0144】
上述したように、本実施形態のバトルゲームでは、ユーザに対応付けられているカードがバトルに使用されるためにフィールドに配置される。このとき、カードは重ねて配置(スタック)可能に構成されている。ユーザ間のバトル中に一方のユーザのカードの攻撃などによって、他方のユーザ(バトル相手)のカードのHP(第1パラメータ)が消失条件を満足すると、例えば攻撃を受けたカードがフィールドから消失する。そのためユーザは、バトルを有利に進めるために、自身に対応付けられているカードをスタックさせることで、フィールド上のカードによるHPの総和を大きくすることを動機付けられる。例えば、ユーザの保有カードの中にゲーム上の利用頻度が低いカードが存在する場合には、そのカードを他のカードにスタックさせて利用することを動機付けられる。つまり、ユーザは利用頻度が低い自身の保有カードを有効利用することができ、保有カードのうち一部のカードのみが頻繁に利用されるという状況を回避することができる。また、複数のカードがスタックされている場合、例えば攻撃を受けたカードが消失していくため、スタックさせたカードの利用結果を、わかりやすい態様でユーザに提示させることができる。上述したように、このゲーム制御装置によれば、ユーザ間でのバトルを行うときに、ユーザに対応付けられているカードをバトルにおいて有効に活用することができる仕組みを実現できる。
【0145】
本実施形態では、各カード(オブジェクト)に、属性に関する情報としてモンスターキャラクタが関連付けられており、重畳手段53は、バトルフィールド上に配置されているカード上に、当該カードと同一のモンスターキャラクタのカードをスタックする場合について説明した。この場合には、同一のモンスターキャラクタの複数のカードが重ねて配置されることになるため、例えば最上位のカードの表示内容を見ることでユーザは、重ねて配置されている複数のカードが示すモンスターキャラクタを直ちに認識することができる。また、例えば、同一のモンスターキャラクタのカードのHP(第1のパラメータ)が同程度である場合には、実行ユーザはバトル中において、スタックされている複数のカードが攻撃を受けている程度を、消失したオブジェクトの数で認識することができる。
なお、複数のカードをスタックさせる場合、その複数のカードが同一のモンスターキャラクタのカードであることを、スタックするための要件としないようにしてもよい。つまり、異なるモンスターキャラクタのカードをスタックできるようにしてもよい。その場合、カードのサイズが同じものについてのみスタックすることができるように設定してもよいし、既に配置されているカードよりもサイズが小さいカードのみスタックすることができるように設定してもよい。後者の場合には、例えば、2×2のサイズのカード、1×2のサイズのカード、1×1のサイズのカードの順にスタック可能とするようにしてもよい。
【0146】
本実施形態では、ユーザ領域に配置可能なカードが存在しないことを、カードをスタック可能であるための条件として規定したが、このような条件を規定しなくてもよい。つまり、バトルフィールドのユーザ領域内においてカードが配置されていない領域に配置可能なサイズを備えたユーザの保有カードが存在する場合であっても、既に配置されているカード上にユーザの保有カードをスタックすることを可能としてもよい。
【0147】
本実施形態において、複数のカードがスタックされている場合にカードが消失する態様は、適宜設定することができる。
図22A及び
図22Bはそれぞれ、カードの消失態様の表示例を示す図である。各図では、
図15に示したように、バトル開始時点においてセルCa(1,1)に3枚のカード(カードC002,C120,C135)が順にスタックされた場合の例を示している。
図22Aは、
図10E及び
図10Fに示したように、ゲーム空間においてカードが直立して表示される場合の例である。
図22AのステップS200aに示すように、バトル開始時点では、カードがスタックされた順(カードC002,C120,C135の順)でカードが重なって配列されている。本実施形態では、最も上にスタックされている(この場合、ゲーム空間において実行ユーザのユーザ領域側に配置されている)カードC135が最初に敵ユーザのカードによる攻撃対象のカードとなって消失する。その結果、ステップS201aに示すように、カードC120が最も上に配置されているカードとなる。ステップS201aの状態でカードC120が敵ユーザのカードによる攻撃対象のカードとなって消失すると、ステップS202aに示すように、カードC002のみが配置されている状態となり、このカードC002が敵ユーザのカードによる攻撃対象のカードとなる。
一方、
図22Bは、
図10E及び
図10Fに示した表示方法とは異なり、ゲーム空間においてカードをバトルフィールドに対して平行に配列させる場合の例である。この場合、ステップS200bに示すように、バトル開始時点では、カードがスタックされた順(カードC002,C120,C135の順)で、ゲーム空間において下から上に向かってカードが重なって配列される。この例では、ステップS201b,S202bに示すように、上のカードから順に敵ユーザのカードによる攻撃対象のカードとなる。
【0148】
(8)変形例
以下、上述した実施形態の変形例についてさらに説明する。
【0149】
(8−1)変形例1
上記ゲーム制御装置において、変更手段55が、複数のカードが重ねて配置されている(つまり、スタックされている)場合には、当該複数のカードのうちHP(第1パラメータ)の変更対象(つまり、攻撃対象)となるカードを、最も上に配置されているカードとする場合について説明した。この場合、例えば異なるモンスターキャラクタ(属性)の複数のスタックしようとするときに、その複数のカードの中で消失するカードの順序を決定することをユーザに検討させることになるため、戦略性の高いバトルゲームを実現することができる。例えば、バトル中では、スタックされている複数のカードのうち最も上のカードから順に消失していくため、複数のカードを重ねる順序を決定することによってユーザは、例えば、バトルの序盤で使用するカードや、バトルの終盤で使用するカードを使い分けるようにすることができる。なお、複数のオブジェクトが重ねて配置されているときの最も上のオブジェクトの位置は、ゲーム空間における上下、左右又は前後のいずれかの方向を基準としたものに限定されない。
攻撃対象となるカードを最も上に配置されているカードとする場合に限られない。変更対象となるカードを、最も下から(つまり、バトルフィールドに配置されているカードを最初に、スタックされているカードの順で)攻撃対象のカードとしてもよい。
【0150】
また、変更手段55は、複数のカードが重ねて配置されている場合には、当該複数のカードのうちHP(第1パラメータ)の変更対象となるカードをランダムに、あるいは所定の規則に従って決定してもよい。この構成では、例えば異なるモンスターキャラクタ(属性)の複数のカードがスタックされている場合に、当該複数のカードのうちHPの変更対象となるカードについてユーザが予測し難くなるため、スタックされている複数のカードのうち消失するカードについてユーザの注目をより惹きつけることができる。また、所定の規則に従ってHPの変更対象となるカードが決定される場合には、例えば異なるモンスターキャラクタの複数のカードをスタックさせる順序をユーザに考えさせる戦略性の高いバトルゲームを実現することができる。
【0151】
例えば、本変形例を実現するためにゲームサーバ20のCPU21は、スタックされた複数のカードが射程距離の範囲内に存在する場合には、攻撃対象とするカードを所定の確率で決定する。例えば、3枚のカードがスタックされている場合、各カードが攻撃対象となる確率をそれぞれ1/3としてもよいし、ランダムに決定される確率としてもよい。CPU21が攻撃対象とするカードを所定の規則に従って決定する場合、所定の規則は、残HPが小さい順であってもよいし、逆に残HPが大きい順であってもよい。スタックされている複数のカードのうち残HPが小さい順に攻撃対象のカードとするという規則を採った場合には、残HPが大きい比較的強いカードがより長くバトルフィールドに残留することになるため、バトルを最後まで見応えのあるものにすることができる。
【0152】
(8−2)変形例2
上述した実施形態において、重畳手段53は、バトルフィールド上に配置されているカード上に重ねて配置可能なカードの数(つまり、スタック可能なカードの枚数)を所定数以下に制限してもよい。この構成では、スタック可能なカードの数が制限されているため、バトルを有利に導くためにユーザに、保有カードの中からスタックするカードの選択を検討させることになり、戦略性の高いバトルゲームを実現することができる。
本変形例を実現するためにゲームサーバ20のCPU21は、例えば実行ユーザのユーザ領域のセルごとにスタックされたカードの数を計数し、計数値が所定値に達したセルについては新たなカードの配置(つまり、バトル使用カードデータへのデータの書き込み)を禁止する。
【0153】
(8−3)変形例3
本変形例に係るゲーム制御装置の機能ブロック図を
図23に示す。
図23に示す機能ブロック図は、
図14に示したものと比較して制限手段58が追加された点で異なる。
本変形例では、カードデータベース(
図7)に示したように、各カードについて、第2パラメータとしてのコストが関連付けられている。制限手段58は、ユーザに対応付けられ、かつバトルフィールド上に配置されているカード、及び、カード上に重ねて配置されているカード(つまり、スタックされているカード)のコストの総和が所定値以下となるように制限する機能を備える。
本変形例では、バトルフィールドに存在するユーザのカードのコストの総和に基づいて、スタックするカードの数が実質的に制限されることになるため、ユーザの保有カードのうちいずれのカードをスタックさせるかについてユーザに検討させることになり、戦略性の高いバトルゲームを実現することができる。
本変形例を実現するために、
図17のカード配置処理のステップS108において、CPU21は、選択されたセルが配置されたときのカードのコストの総和(総コスト)が所定値以下であるか否かに基づいて、選択されたカードが配置可能であるか否かを判断する。総コストが所定値以下である場合には選択されたカードが配置可能であると判断され、総コストが所定値より大きい場合には選択されたカードが配置できないと判断される。
【0154】
(8−4)変形例4
本変形例は、第1の実施形態と比較して、バトル中のカードの横移動方法が異なる。
【0155】
・実行カード中央位置、敵カード中央位置、及び移動カード中央位置の決定方法
本変形例のカードの横移動では、実行カード中央位置と敵カード中央位置が互いに近付くようにして、実行ユーザと敵ユーザのカード群を横移動させる。本変形例では、第1の実施形態で言及した実行カード中央位置と敵カード中央位置の決定方法が異なる。また、移動対象のカードの中央位置を示す移動カード中央位置が定義される。以下、本変形例の実行カード中央位置と敵カード中央位置、及び移動カード中央位置の決定方法について、
図24を参照して説明する。
図24は、本変形例において、敵ユーザのカード群の中央位置を示す敵カード中央位置(CL_opp)、実行ユーザのカード群の中央位置を示す実行カード中央位置(CL_exe)、及び移動処理対象のカードの中央位置を示す移動カード中央位置(CL_mov)を説明するための図である。
図24には、実行ユーザのユーザ領域のマトリクスの一部が示されており、マトリクスの列に沿って、マトリクスの列方向の位置を示す値として0.0,0.5,1.0,…が定義される。例えば、第1列のセルの両端の位置が0.0,1.0であり、第1列のセルの中央位置が0.5である。他の列についても同様である。
図24の例では、マトリクスが6列で構成されているため、列方向の位置を示す値として0.0〜6.0の範囲の値が定義される。
【0156】
本変形例において、実行カード中央位置(CL_exe)を決定するに当たって先ず、実行カードの第1行においてカードが配置されているセルのうち最も左側のセルの左端の位置(「基準位置」という。)を特定する。次いで、実行ユーザのユーザ領域の第1行にカードが配置されているセルの数の1/2の値を求める。実行カード中央位置(CL_exe)は、基準位置を右側に、求めた値だけカードが配置されているセルに沿って移動させた位置である。
図24は、セルCa(1,2)にカードC101、セルCa(1,4)にカードC102、セルCa(1,5)及びセルCa(1,6)に1×2のサイズのカードC103、が配置されている例であるが、この例での実行カード中央位置(CL_exe)は、以下の通りである。
図24の例では、最も左側にカードが配置されているセルはCa(1,2)であるため、基準位置=1.0となる。次いで、第1行にカードが配置されているセルの数は4個である。よって、実行カード中央位置(CL_exe)は、基準位置(1.0)を右側に、カードが配置されているセルに沿って2(=4×1/2)だけ移動させた位置を示す値である4.0となる。
敵カード中央位置(CL_opp)については図示しないが、実行カード中央位置(CL_exe)の場合と同様に、敵ユーザのユーザ領域の第1行に配置されているカードに基づいて決定される。
また、
図24に示す例では、セルCa(1,2)に配置されているカードC101の移動カード中央位置(CL_mov)は1.5であり、セルCa(1,4)に配置されているカードC102の移動カード中央位置(CL_mov)は3.5である。セルCa(1,5)及びセルCa(1,6)に配置されている1×2のサイズのカードC103の移動カード中央位置(CL_mov)は5.0である。
【0157】
・カードの横移動方法
次に、本変形例のカードの横移動方法について説明する。本変形例のカードの横移動は、以下の各ステップに従って行われる。なお以下では、先に敵ユーザのカードを移動し、次いで実行ユーザのカードを移動させる場合について説明するが、逆に、先に実行ユーザのカードを移動し、次いで敵ユーザのカードを移動させてもよい。
【0158】
[横移動ステップM11]
敵ユーザのカードについて横移動を行うに当たって、敵カード中央位置と実行カード中央位置を決定する。次いで、敵カード中央位置と実行カード中央位置の比較結果に基づいて、敵ユーザのカードの移動対象となるカードの順序(つまり、移動順序)を決定し、敵ユーザのカードの横移動が行われる。具体的には、以下の通りである。
(a) 実行カード中央位置が敵カード中央位置よりも左側にある場合(つまり、CL_exe<CL_oppである場合)には、先ず、実行カード中央位置よりも右側にある敵ユーザのカード(つまり、CL_mov>CL_exeとなるカード)を、左にあるカードから順に左のセルへ横移動させる。次いで、実行カード中央位置よりも左側にある敵ユーザのカード(つまり、CL_mov<CL_exeとなるカード)を、右にあるカードから順に右のセルへ横移動させる。
(b) 実行カード中央位置(CL_exe)が敵カード中央位置よりも右側にある場合(つまり、CL_exe>CL_oppである場合)には、先ず、実行カード中央位置よりも左側にある敵ユーザのカード(つまり、CL_mov<CL_exeとなるカード)を、右にあるカードから順に右のセルへ横移動させる。次いで、実行カード中央位置よりも右側にある敵ユーザのカード(つまり、CL_mov>CL_exeとなるカード)を、左にあるカードから順に左のセルへ横移動させる。
なお、実行カード中央位置と敵カード中央位置が同一である場合には、上記(a), (b)のいずれの処理を行ってもよい。
実行カード中央位置と同一の移動カード中央位置にある敵ユーザのカード(つまり、CL_mov=CL_exeとなるカード)は移動させない。移動先のセルに他のカードが存在する場合には移動させない。第1行のカードを横移動させる場合には、そのカードと同一の列で後方にある他のカードも第1行のカードと連動して横移動させる。
【0159】
[横移動ステップM12]
実行ユーザのカードについて横移動を行うに当たって、敵カード中央位置と実行カード中央位置を決定する。敵カード中央位置と実行カード中央位置の比較結果に基づいて、実行ユーザのカードの移動対象となるカードの順序(つまり、移動順序)を決定し、実行ユーザのカードの横移動が行われる。具体的には、以下の通りである。
(c) 敵カード中央位置が実行カード中央位置よりも左側にある場合(つまり、CL_exe>CL_oppである場合)には、先ず、敵カード中央位置よりも右側にある実行ユーザのカード(つまり、CL_mov>CL_oppとなるカード)を、左にあるカードから順に左のセルへ横移動させる。次いで、敵カード中央位置(CL_opp)よりも左側にある実行ユーザのカード(つまり、CL_mov<CL_oppとなるカード)を、右にあるカードから順に右のセルへ横移動させる。
(d) 敵カード中央位置が実行カード中央位置よりも右側にある場合(つまり、CL_exe<CL_oppである場合)には、先ず、敵カード中央位置よりも左側にある実行ユーザのカード(つまり、CL_mov<CL_oppとなるカード)を、右にあるカードから順に右のセルへ横移動させる。次いで、敵カード中央位置よりも右側にある実行ユーザのカード(つまり、CL_mov>CL_oppとなるカード)を、左にあるカードから順に左のセルへ横移動させる。
なお、実行カード中央位置と敵カード中央位置が同一である場合には、上記(c), (d)のいずれの処理を行ってもよい。
敵カード中央位置と同一の移動カード中央位置にある実行ユーザのカード(つまり、CL_mov=CL_oppとなるカード)は移動させない。移動先のセルに他のカードが存在する場合には移動させない。第1行のカードを横移動させる場合には、そのカードと同一の列で後方にある他のカードも第1行のカードと連動して横移動させる。
【0160】
[横移動処理の例外]
横移動ステップM11において、実行カード中央位置と敵カード中央位置の差が0.5以下であり、かつ移動カード中央位置と実行カード中央位置の差が0.5以下であるという条件を満たす場合には、移動対象となるカードが実行カード中央位置を挟んで左右に往復してしまうことが生じうる。そこで、上記条件を満たす場合には、移動対象となる敵ユーザのカードの横移動を禁止する。
横移動ステップM12においても同様に、実行カード中央位置と敵カード中央位置の差が0.5以下であり、かつ移動カード中央位置と敵カード中央位置の差が0.5以下であるという条件を満たす場合には、移動対象となるカードが敵カード中央位置を挟んで左右に往復してしまうことが生じうる。そこで、上記条件を満たす場合には、移動対象となる実行ユーザのカードの横移動を禁止する。
なお、この例外の処理は、移動対象となるカードが左右に1セル分往復してしまう状況を回避することが目的であるため、上記差についての閾値(0.5)は移動単位(1セル)より小さい任意の値でよい。例えば、上記差が0.5以下という条件に限られず、上記差が1未満という条件であってもよい。
【0161】
本変形例のゲームでは、実行ユーザのカード群による攻撃と、敵ユーザのカード群による攻撃が交互に行われ、攻撃が行われる度に、以上のステップM11,M12のカードの横移動処理が逐次行われる。バトル中にカードが攻撃を受けて順次消失していくため、実行カード中央位置及び敵カード中央位置は、その都度変化していくことになる。このとき、例えば、実行ユーザのカードを横移動させる場合に、実行カード中央位置と敵カード中央位置の比較結果に基づいて、敵カード中央位置を基準として左右いずかの側のカードを先に移動させるかについて決定するため、実行カード中央位置と敵カード中央位置の差が早期に小さくなるようにカードの移動が行われるようになる。
【0162】
・バトルのカードの移動例
次に、本変形例において、バトルの開始からバトルの終了までの実行ユーザ及び敵ユーザの各カードの移動態様の具体例について、
図25A〜25Dを参照して説明する。
図25A〜25Dは、バトルの開始から終了までのカードの移動態様を説明するために、ゲーム空間を平面視で見たときのバトルフィールドの各セル上のカード配置を示す図である。各図では、カードの移動が矢印によって示される。
本変形例のバトルは、例えば、上述したように実行ユーザ及び敵ユーザ のカード群の攻撃が順番で行われる。各ユーザの攻撃が行われた後に逐次、カードの前方移動、及びカードの横移動が順に行われる。
【0163】
図25A〜25Dに示すバトルでは、
図25AのステップS210に示すように、実行ユーザのユーザ領域UAaと敵ユーザのユーザ領域UAbはそれぞれ、2×6のセルによって構成され、各カードのサイズがすべて1×1である例(つまり、各ユーザのバトル使用カードが12枚である例)が示されている。
本変形例においても上述した実施形態と同様に、各ユーザの攻撃が交互に行われて各攻撃の後に、前方移動、及び横移動の各処理が行われる。バトルの初期では、バトルの開始時点で第1行に配置されている各ユーザのカードが攻撃を受けて消失していくため、例えばステップS211に示すように、カードの前方移動が主体的に行われる。ステップS211では、6枚のカードが第2行から第1行のセルへ移動した場合が示されている。
【0164】
バトルが進行し、ステップS212に示すように各ユーザの領域のいずれかの列にカードが存在しない場合が発生すると、横移動が行われる。ステップS212では、実行ユーザのユーザ領域UAaの第5列と、敵ユーザのユーザ領域UAbの第2列及び第3列とにカードが存在しない。ステップS212の例では、実行カード中央位置CL_exe=2.5であり、敵カード中央位置CL_opp=4.0である。そのため、敵ユーザのカードを横移動するに当たって先ず、実行カード中央位置CL_exeよりも右側にある敵ユーザのカード(つまり、CL_mov>CL_exeとなるカード)を、左にあるカードから順に左のセルへ横移動させる。つまり、第4〜6列にあるカード群を第4列にあるカードから順に左のセルへ移動させる。次いで、実行カード中央位置CL_exeよりも左側にある敵ユーザのカード(つまり、CL_mov<CL_exeとなるカード)を、右にあるカードから順に右のセルへ横移動させる。つまり、第1列にあるカード群を右のセルへ移動させる。敵ユーザのカードの横移動の様子をステップS213において矢印で示してある。
【0165】
ステップS213の例では、実行カード中央位置CL_exe=2.5であり、敵カード中央位置CL_opp=3.0である。そのため、実行ユーザのカードを横移動するに当たって先ず、敵カード中央位置CL_oppよりも左側にある実行ユーザのカードを、右にあるカード(つまり、CL_mov<CL_oppとなるカード)から順に右のセルへ横移動させる。しかしステップS213の例では、敵カード中央位置CL_oppよりも左側にある実行ユーザのカードを移動させることができない。
次いで、敵カード中央位置よりも右側にある実行ユーザのカード(つまり、CL_mov>CL_oppとなるカード)を、左にあるカードから順に左のセルへ横移動させる。ステップS213の例では、第6列にあるカード群を左のセルへ移動させる。実行ユーザのカードの横移動の様子をステップS214において矢印で示してある。
【0166】
ステップS214からバトルが進行した結果、第1行のカードが消失してカードの前方移動が行われ、ステップS215のカードの配置状態になった場合を想定する。ステップS215の例では、実行カード中央位置CL_exe=2.0であり、敵カード中央位置CL_opp=2.5である。そのため、敵ユーザのカードを横移動するに当たって先ず、実行カード中央位置よりも右側にある敵ユーザのカード(つまり、CL_mov>CL_exeとなるカード)を、左にあるカードから順に左のセルへ横移動させる。つまり、ステップS216に示すように、第5列にある1枚のカード(セルCb(1,5)上のカード)を左のセルへ横移動させる。ステップS216の例では、実行カード中央位置よりも左側にある敵ユーザのカード(つまり、CL_mov<CL_exeとなるカード)を、右にあるカードへ横移動させることはできない。
【0167】
ステップS216の例では、実行カード中央位置CL_exe=2.0であり、敵カード中央位置CL_opp=2.5である。そのため、実行ユーザのカードを横移動するに当たって先ず、敵カード中央位置よりも左側にある実行ユーザのカードを、右にあるカード(つまり、CL_mov<CL_oppとなるカード)から順に右のセルへ横移動させる。しかしステップS216の例では、敵カード中央位置よりも左側にある実行ユーザのカードを移動させることはできない。次いで、敵カード中央位置よりも右側にある実行ユーザのカード(つまり、CL_mov>CL_oppとなるカード)を、左にあるカードから順に左のセルへ横移動させる。つまり、ステップS217に示すように、第5列にある1枚のカード(セルCa(1,5)上のカード)を左のセルへ横移動させる。
【0168】
ステップS217からバトルが進行した結果、第1行のカードが消失してカードの前方移動が行われ、ステップS218のカードの配置状態になった場合を想定する。ステップS218の例では、実行カード中央位置CL_exe=2.0であり、敵カード中央位置CL_opp=2.5である。この場合、敵ユーザのカードは、セルCb(1,3)に配置されているカードのみであるが、このカードは上述した横移動処理の例外規定によって移動させない。つまり、このカードについて移動カード中央位置CL_mov=2.5であるが、実行カード中央位置CL_exeと敵カード中央位置CL_oppの差が0.5以下であり、かつ移動カード中央位置CL_movと実行カード中央位置CL_exeの差が0.5以下であるという条件を満たすため、セルCb(1,3)のカードは移動させない。
なお、ステップS218の例では、実行ユーザのカード群が互いに隣接しており、敵カード中央位置CL_oppとの位置関係から、実行ユーザのカードのいずれのカードも移動させることはできない。
【0169】
ステップS218からバトルが進行した結果、第1行のカードが消失してカードの前方移動が行われ、ステップS219のカードの配置状態になった場合を想定する。ステップS219の例では、実行カード中央位置CL_exe=1.0であり、敵カード中央位置CL_opp=2.5である。そのため、敵ユーザのカードを横移動するに当たって、実行カード中央位置CL_exeよりも右側にある1枚の敵ユーザのカード(つまり、CL_mov>CL_exeとなるカード)を左のセルへ横移動させる。つまり、ステップS220に示すように、セルCb(1,3)に配置されているカードを左のセルへ移動させる。
【0170】
ステップS220の例では、実行カード中央位置CL_exe=1.0であり、敵カード中央位置CL_opp=1.5である。そのため、実行ユーザのカードを横移動するに当たって先ず、敵カード中央位置よりも左側にある実行ユーザのカードを、右にあるカード(つまり、CL_mov<CL_oppとなるカード)から順に右のセルへ横移動させる。つまり、セルCa(1,1)にある実行ユーザのカードを右のセルへ移動させる。次いで、敵カード中央位置よりも右側にある実行ユーザのカード(つまり、CL_mov>CL_oppとなるカード)を、左にあるカードから順に左のセルへ横移動させる。つまり、セルCa(1,4)上のカードを左のセルへ横移動させる。この実行ユーザのカードの横移動の様子をステップS221において矢印で示してある。
【0171】
ステップS222では、ステップS221において敵ユーザの領域の第1行にあった1枚のカードが消失した場合が想定される。この場合、敵ユーザのカードがすべて消失したことになるため、実行ユーザの勝利となる。
【0172】
図25A〜25Dのバトルの例で示したように、本変形例のカードの横移動方法においても、上述した実施形態の横移動方法と同様に、各ユーザの攻撃ターンごとに、実行ユーザ及び敵ユーザのカード群同士が対向するようにしてカード位置が調整されるようになる。そのため、バトル開始からバトル終了まで常に各ユーザのカード群が対峙する形となり、実行ユーザから見てバトルの臨場感がより感じられるとともに、各カードによる攻撃の方向が主としてそのカードの前方に設定されている場合には、そのカードに対向して配置されている相手のカードに効果的に攻撃を加えられるため、バトルの勝敗が迅速に決するようになるという利点もある。
また、本変形例では、例えば敵ユーザのカードを移動させるに当たって、実行カード中央位置を基準として左及び右にあるカードのうち先に移動させるカードを、実行カード中央位置と敵カード中央位置の比較結果に基づいて切り替えるようにしているため、実行カード中央位置と敵カード中央位置の差を少なくするようなカードが優先的に移動するようになる。実行ユーザのカードを移動させる場合も同様である。
【0173】
・カードの横移動処理のフロー
次に、本変形例の横移動処理のフローの一例について、
図26及び
図27のフローチャートを参照して説明する。
図26は、敵ユーザのカードの横移動処理の一例を示すフローチャートである。
図27は、実行ユーザのカードの横移動処理の一例を示すフローチャートである。
なお、本変形例の全体フローは、上述した実施形態と同様に
図16に示したものでよい。本変形例では、
図16の全体フローの中のステップS44及びS44において、
図20及び
図21に代えて、それぞれ
図26及び
図27のフローチャートが実行される。
【0174】
・敵ユーザのカードの横移動処理(
図26)
ゲームサーバ20のCPU21は先ず、バトル使用カードデータを参照して、実行ユーザのカード群の中心位置を示す実行カード中央位置CL_exeと、敵ユーザのカード群の中心位置を示す敵カード中央位置CL_oppとを決定する(ステップS240)。CPU21は、実行カード中央位置CL_exeと敵カード中央位置CL_oppを決定すると、両者の比較結果に基づいて敵ユーザのカード群の各カードの処理順序を決定する(ステップS242)。
【0175】
前述したように、カードの処理順序は、実行カード中央位置CL_exeと敵カード中央位置CL_oppの比較結果次第で異なり、例えば以下の通りとなる。
(a) 実行カード中央位置が敵カード中央位置と同位置であるか、またはそれよりも左側にある場合(つまり、CL_exe≦CL_oppである場合)には、以下の(a-1)〜(a-6)に示す優先順である。
(a-1) 第1行において、実行カード中央位置よりも右側にある敵ユーザのカード(つまり、CL_mov>CL_exeとなるカード)のうち、左から右に配置されているカードの順
(a-2) 第1行以外の各行において、実行カード中央位置よりも右側にある敵ユーザのカード(つまり、CL_mov>CL_exeとなるカード)のうち、左から右に配置されているカードの順
(a-3) 第1行において、実行カード中央位置よりも左側にある敵ユーザのカード(つまり、CL_mov<CL_exeとなるカード)のうち、右から左に配置されているカードの順
(a-4) 第1行以外の各行において、実行カード中央位置よりも左側にある敵ユーザのカード(つまり、CL_mov<CL_exeとなるカード)のうち、右から左に配置されているカードの順
(a-5) 第1行において、実行カード中央位置と同一の列にある敵ユーザのカード(つまり、CL_mov=CL_exeとなるカード)
(a-6) 第1行以外の各行において、実行カード中央位置と同一の列にある敵ユーザのカード(つまり、CL_mov=CL_exeとなるカード)
【0176】
(b) 実行カード中央位置が敵カード中央位置よりも右側にある場合(つまり、CL_exe>CL_oppである場合)には、以下の(b-1)〜(b-6)に示す優先順である。
(b-1) 第1行において、実行カード中央位置よりも左側にある敵ユーザのカード(つまり、CL_mov<CL_exeとなるカード)のうち、右から左に配置されているカードの順
(b-2) 第1行以外の各行において、実行カード中央位置よりも左側にある敵ユーザのカード(つまり、CL_mov<CL_exeとなるカード)のうち、右から左に配置されているカードの順
(b-3) 第1行において、実行カード中央位置よりも右側にある敵ユーザのカード(つまり、CL_mov>CL_exeとなるカード)のうち、左から右に配置されているカードの順
(b-4) 第1行以外の各行において、実行カード中央位置よりも右側にある敵ユーザのカード(つまり、CL_mov>CL_exeとなるカード)のうち、左から右に配置されているカードの順
(b-5) 第1行において、実行カード中央位置と同一の列にある敵ユーザのカード(つまり、CL_mov=CL_exeとなるカード)
(b-6) 第1行以外の各行において、実行カード中央位置と同一の列にある敵ユーザのカード(つまり、CL_mov=CL_exeとなるカード)
【0177】
各カードの処理順序が決定されると、その処理順序に従って各カードについてステップS244〜S258の処理が行われる。
先ずCPU21は、処理対象のカードが第1行に配置されているカードであるか否かについて判定する(ステップS244)。処理対象のカードが第1行に配置されているカードである場合には(ステップS244:YES)、ステップS246へ進み、処理対象のカードが第1行に配置されているカードでない場合には(ステップS244:NO)、ステップS256へ進む。
【0178】
実行カード中央位置CL_exeと敵カード中央位置CL_oppの差の絶対値(|CL_opp−CL_exe|)が0.5以下であり(ステップS246:NO)、かつ処理対象のカードの移動カード中央位置CL_mov
と実行カード中央位置CL_exeの差の絶対値(|CL_mov−CL_exe|)が0.5以下である場合には(ステップS254:YES)、処理対象のカードについて横移動処理を行わずにステップS258へ進む(上記[横移動処理の例外]を参照)。
【0179】
実行カード中央位置CL_exeと敵カード中央位置CL_oppの差の絶対値(|CL_opp−CL_exe|)が0.5より大きいか(ステップS246:YES)、又は処理対象のカードの移動カード中央位置CL_movと実行カード中央位置CL_exeの差の絶対値(|CL_mov−CL_exe|)が0.5より大きい場合には(ステップS254:NO)、ステップS248へ進む。ステップS248では、移動カード中央位置CL_movを実行カード中央位置CL_exeと比較し、その比較結果に基づいて処理が異なる。
【0180】
処理対象のカードが上記(a-1),(b-3)のいずれかを満たすカードである場合、処理対象のカードの移動カード中央位置が実行カード中央位置よりも右側にあるため(ステップS248:CL_mov>CL_exe)、CPU21は、処理対象のカードを左のセルへ移動させる処理を行う(ステップS250)。なお、移動先のセルに他のカードが存在する場合には移動させない。ステップS250においてCPU21は、移動させるカードの現在位置のデータが更新されるようにしてバトル使用カードデータを作成する。ステップS250の処理が完了すると、敵ユーザのすべてのカードについて処理が終了していない場合には(ステップS258:NO)、次のカードの処理のためにステップS244へ戻る。
【0181】
処理対象のカードが上記(a-3),(b-1)のいずれかを満たすカードである場合、その移動カード中央位置が実行カード中央位置よりも左側にあるため(ステップS248:CL_mov<CL_exe)、CPU21は、処理対象のカードを右のセルへ移動させる処理を行う(ステップS252)。なお、移動先のセルに他のカードが存在する場合には移動させない。ステップS252においてCPU21は、移動させるカードの現在位置のデータが更新されるようにしてバトル使用カードデータを作成する。ステップS252の処理が完了すると、敵ユーザのすべてのカードについて処理が終了していない場合には(ステップS258:NO)、次のカードの処理のためにステップS244へ戻る。
【0182】
処理対象のカードが上記(a-5),(b-5)のいずれかを満たすカードである場合、その移動カード中央位置が実行カード中央位置と同一あるため(ステップS248:CL_mov=CL_exe)、CPU21は、処理対象のカードを移動させる処理を行わずにステップS258へ進む。ここで、敵ユーザのすべてのカードについて処理が終了していない場合には(ステップS258:NO)、次のカードの処理のためにステップS244へ戻る。
【0183】
なお、処理対象のカードが上記(a-2),(a-4),(a-6),(b-2),(b-4),(b-6)のいずれかを満たすカードである場合には、そのカードは第1行にないため(ステップS244:NO)、
図26の処理の開始時にバトルフィールド上で1つの前のセルにあったカードと同じように(つまり、連動して)、処理対象のカードを移動させる処理を行う(ステップS256)。すなわち、処理対象のカードが2行目以降のセルにあるカードである場合ついては、上記(a-1),(a-3),(a-5),(b-1),(b-3),(b-5)のいずれかを満たすカードに対して既に行われた移動態様と同じようにして移動が行われる。ステップS256においてCPU21は、移動させるカードの現在位置のデータが更新されるようにしてバトル使用カードデータを作成する。ステップS256の処理が完了すると、敵ユーザのすべてのカードについて処理が終了していない場合には(ステップS258:NO)、次のカードの処理のためにステップS244へ戻る。
【0184】
・実行ユーザのカードの横移動処理(
図27)
ゲームサーバ20のCPU21は先ず、バトル使用カードデータを参照して、実行ユーザのカード群の中心位置を示す実行カード中央位置CL_exeと、敵ユーザのカード群の中心位置を示す敵カード中央位置CL_oppとを決定する(ステップS260)。CPU21は、実行カード中央位置CL_exeと敵カード中央位置CL_oppを決定すると、両者の比較結果に基づいて敵ユーザのカード群の各カードの処理順序を決定する(ステップS262)。
【0185】
前述したように、カードの処理順序は、実行カード中央位置CL_exeと敵カード中央位置CL_oppの比較結果次第で異なり、例えば以下の通りとなる。
(c) 敵カード中央位置が実行カード中央位置よりも左側にある場合(つまり、CL_exe>CL_oppである場合)には、以下の(c-1)〜(c-6)に示す優先順である。
(c-1) 第1行において、敵カード中央位置よりも右側にある実行ユーザのカード(つまり、CL_mov>CL_oppとなるカード)のうち、左から右に配置されているカードの順
(c-2) 第1行以外の各行において、敵カード中央位置よりも右側にある実行ユーザのカード(つまり、CL_mov>CL_oppとなるカード)のうち、左から右に配置されているカードの順
(c-3) 第1行において、敵カード中央位置(CL_opp)よりも左側にある実行ユーザのカード(つまり、CL_mov<CL_oppとなるカード)のうち、右から左に配置されているカードの順
(c-4) 第1行以外の各行において、敵カード中央位置(CL_opp)よりも左側にある実行ユーザのカード(つまり、CL_mov<CL_oppとなるカード)のうち、右から左に配置されているカードの順
(c-5) 第1行において、敵カード中央位置(CL_opp)と同一の列にある実行ユーザのカード(つまり、CL_mov=CL_oppとなるカード)
(c-6) 第1行以外の各行において、敵カード中央位置(CL_opp)と同一の列にある実行ユーザのカード(つまり、CL_mov=CL_oppとなるカード)
【0186】
(d) 敵カード中央位置が実行カード中央位置と同位置であるか、それよりも右側にある場合(つまり、CL_exe≦CL_oppである場合)には、以下の(b-1)〜(b-6)に示す優先順である。
(d-1) 第1行において、敵カード中央位置よりも左側にある実行ユーザのカード(つまり、CL_mov<CL_oppとなるカード)のうち、右から左に配置されているカードの順
(d-2) 第1行以外の各行において、敵カード中央位置よりも左側にある実行ユーザのカード(つまり、CL_mov<CL_oppとなるカード)のうち、右から左に配置されているカードの順
(d-3) 第1行において、敵カード中央位置よりも右側にある実行ユーザのカード(つまり、CL_mov>CL_oppとなるカード)のうち、左から右に配置されているカードの順
(d-4) 第1行以外の各行において、敵カード中央位置よりも右側にある実行ユーザのカード(つまり、CL_mov>CL_oppとなるカード)のうち、左から右に配置されているカードの順
(d-5) 第1行において、敵カード中央位置と同一の列にある実行ユーザのカード(つまり、CL_mov=CL_oppとなるカード)
(d-6) 第1行以外の各行において、敵カード中央位置と同一の列にある実行ユーザのカード(つまり、CL_mov=CL_oppとなるカード)
【0187】
各カードの処理順序が決定されると、その処理順序に従って各カードについてステップS264〜S278の処理が行われる。
先ずCPU21は、処理対象のカードが第1行に配置されているカードであるか否かについて判定する(ステップS264)。処理対象のカードが第1行に配置されているカードである場合には(ステップS264:YES)、ステップS266へ進み、処理対象のカードが第1行に配置されているカードでない場合には(ステップS264:NO)、ステップS276へ進む。
【0188】
実行カード中央位置CL_exeと敵カード中央位置CL_oppの差の絶対値(|CL_opp−CL_exe|)が0.5以下であり(ステップS266:NO)、かつ処理対象のカードの移動カード中央位置CL_movと敵カード中央位置CL_oppの差の絶対値(|CL_mov−CL_opp|)が0.5以下である場合には(ステップS274:YES)、処理対象のカードについて横移動処理を行わずにステップS278へ進む(上記[横移動処理の例外]を参照)。
【0189】
実行カード中央位置CL_exeと敵カード中央位置CL_oppの差の絶対値(|CL_opp−CL_exe|)が0.5より大きいか(ステップS266:YES)、又は処理対象のカードの移動カード中央位置CL_movと敵カード中央位置CL_oppの差の絶対値(|CL_mov−CL_opp|)が0.5より大きい場合には(ステップS274:NO)、ステップS268へ進む。ステップS268では、移動カード中央位置CL_movを敵カード中央位置CL_oppと比較し、その比較結果に基づいて処理が異なる。
【0190】
処理対象のカードが上記(c-1),(d-3)のいずれかを満たすカードである場合、処理対象のカードの移動カード中央位置が敵カード中央位置よりも右側にあるため(ステップS268:CL_mov>CL_opp)、CPU21は、処理対象のカードを左のセルへ移動させる処理を行う(ステップS270)。なお、移動先のセルに他のカードが存在する場合には移動させない。ステップS270においてCPU21は、移動させるカードの現在位置のデータが更新されるようにしてバトル使用カードデータを作成する。ステップS270の処理が完了すると、実行ユーザのすべてのカードについて処理が終了していない場合には(ステップS278:NO)、次のカードの処理のためにステップS264へ戻る。
【0191】
処理対象のカードが上記(c-3),(d-1)のいずれかを満たすカードである場合、その移動カード中央位置が敵カード中央位置よりも左側にあるため(ステップS268:CL_mov<CL_opp)、CPU21は、処理対象のカードを右のセルへ移動させる処理を行う(ステップS272)。なお、移動先のセルに他のカードが存在する場合には移動させない。ステップS272においてCPU21は、移動させるカードの現在位置のデータが更新されるようにしてバトル使用カードデータを作成する。ステップS272の処理が完了すると、実行ユーザのすべてのカードについて処理が終了していない場合には(ステップS278:NO)、次のカードの処理のためにステップS264へ戻る。
【0192】
処理対象のカードが上記(c-5),(d-5)のいずれかを満たすカードである場合、その移動カード中央位置が敵カード中央位置と同一あるため(ステップS268:CL_mov=CL_opp)、CPU21は、処理対象のカードを移動させる処理を行わずにステップS278へ進む。ここで、実行ユーザのすべてのカードについて処理が終了していない場合には(ステップS278:NO)、次のカードの処理のためにステップS264へ戻る。
【0193】
なお、処理対象のカードが上記(c-2),(c-4),(c-6),(d-2),(d-4),(d-6)のいずれかを満たすカードである場合には、そのカードは第1行にないため(ステップS264:NO)、
図27の処理の開始時にバトルフィールド上で1つの前のセルにあったカードと同じように(つまり、連動して)、処理対象のカードを移動させる処理を行う(ステップS276)。すなわち、処理対象のカードが2行目以降のセルにあるカードである場合ついては、上記(c-1),(c-3),(c-5),(d-1),(d-3),(d-5)のいずれかを満たすカードに対して既に行われた移動態様と同じようにして移動が行われる。ステップS276においてCPU21は、移動させるカードの現在位置のデータが更新されるようにしてバトル使用カードデータを作成する。ステップS276の処理が完了すると、実行ユーザのすべてのカードについて処理が終了していない場合には(ステップS278:NO)、次のカードの処理のためにステップS264へ戻る。
【0194】
以上、本発明の実施形態について詳細に説明したが、本発明は上記実施形態に限定されない。また、各実施形態は、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのは勿論である。上記実施形態及び各変形例に記載された技術的事項は適宜組合せて適用してもよい。
【0195】
上述した実施形態及び変形例では、カードの前方方向をマトリクスの行の方向と一致させ、カードの横移動方向をマトリクスの列の方向と一致させる場合について説明したが、この場合に限られない。カードの前方方向をマトリクスの列の方向と一致させ、カードの横移動方向をマトリクスの行の方向と一致させてもよい。その場合には、ウェブページ上で左右に(つまり、横方向に)ユーザのカード同士が対峙してバトルが行われることになる。
上述した実施形態及び変形例では、カードの移動方向を前方又は横方向のいずれかの場合について説明したが、その場合に限られない。例えば、斜め前方(斜め右前、又は斜め左前)に移動するカードを設定してもよい。
上述した実施形態及び変形例において、バトルフィールドが矩形のマトリクスである場合について説明したが、この場合に限られない。実行ユーザ及び敵ユーザのカード群がそれぞれ、カード同士が隣接して移動可能であれば他の形態でもよい。例えば、三角形や六角形(ハニカム形態)などの多角形であってもよい。
上述した実施形態及び変形例において、カード群を横移動させるときのカードの処理順序は、一例に過ぎない。中央位置(全カード中央位置、敵カード中央位置、又は実行カード中央位置)を基準として、左側にあるカードを先に移動させ、次に右側にあるカードを移動させてもよいし、右側にあるカードを先に移動させ、次に左側にあるカードを移動させてもよい。
【0196】
上述した各実施形態では、オブジェクトの一例としてモンスターカードを挙げたが、これに限られない。オブジェクトであれば如何なるものでもよい。例えば、オブジェクトは、ゲーム上のキャラクタやアイテム等を含むものでよく、例えばゲーム上の仮想的な人物や生物、若しくはモンスター等であり、本実施形態で示したように、それらがカードに表示されているものをも含む。
【0197】
上述した実施形態では、ユーザによる通信端末に対する所定の操作入力は、ユーザの通信端末に対する所定の操作釦の押下操作の入力や、タッチパネル機能を備えた通信端末に対する表示画面上のタッチ操作の入力であるとしたが、操作入力はこれに限られない。操作入力は、加速度センサを備えた通信端末を振ることによる操作入力、あるいはジェスチャによる操作入力(ジェスチャ入力)であってもよい。ジェスチャ入力では、撮像機能を備えた通信端末に対する所定のジェスチャを行うことで通信端末がそのジェスチャを画像認識し、予めジェスチャに対応付けられた操作入力を認識する。また、音声認識プログラムを実行可能な通信端末の場合には、操作入力は、音声を入力することにより行われてもよい。
【0198】
上述した実施形態では、ネットワーク上のゲームサーバ20及びデータベースサーバ30によって、
図14に示した各手段が備える機能を実現する構成としたが、この構成に限られない。
図14に示した手段のすべて、あるいは少なくとも一部の手段を通信端末10によって実現する構成としてもよい。通信端末10とゲームサーバ20とでは実質的に同一のハードウエア構成を採るため、上記実施形態に記載したようにして通信端末10によっても各機能を実現できる。
図28A,
図28Bにはそれぞれ、本実施形態のゲーム制御装置の各機能(
図14に示す各機能)について、通信端末10と、ゲームサーバ20及びデータベースサーバ30との間の機能を分担した場合の例を示す。
【0199】
上述した実施形態では、ゲームサーバ20がバトルの開始から終了までの一連のバトル使用カードを基に再生ファイルを作成して通信端末10へ送信し、通信端末10が再生ファイルを再生することによってバトルが動画再生される場合について説明したが、この場合に限られない。例えば、通信端末10が実行ユーザのバトル使用カードデータを記憶しておき、敵ユーザのバトル使用カードデータをバトル開始時点で取得し、通信端末10が再生ファイルを作成するようにしてもよい。この場合、移動手段や変更手段等を実現するためのプログラムは通信端末10のCPU11により実行される。
【0200】
上述した実施形態では、ソーシャルゲームに適用される場合を例として説明したが、これに限られない。例えば、スタンドアローンのゲーム機によっても実現でき、ネットワーク上に置かれたサーバ装置と家庭用オンラインゲーム機とを接続した、いわゆるオンラインゲームシステムにおいても実現できる。