<ゲーム概要>
本発明の1つの実施形態に係るゲームシステムは、各ユーザが予め登録した、複数のカードからなるデッキを用いたユーザ同士の対戦を実現する、シミュレーション型のオンライン対戦カードゲームを実行する。
図1は、ユーザ同士が対戦する際の、各ユーザが所有する表示装置に表示される、対戦画面の画面構成を示している。対戦画面100は、対戦相手のユーザの手持ちカードが表示される相手エリア101、自身の手持ちカードが表示される自エリア102、及び各ユーザのカードが並べられ、カード毎に設定されたパラメータに応じて、カードに描かれたキャラクタ同士が戦闘を行う戦闘エリア103から構成される。
相手エリア101及び自エリア102にはそれぞれ、ユーザの分身となるアバター104、対戦に使用するデッキを構成するカードがランダムに設定された順序で積み上げられたカード山105、戦闘エリア103に配置するカードの待機エリア106、使用不可能になったカードが配置される廃棄エリア107、アバター104の体力ゲージ等を含むゲージ108が含まれる。
ユーザ同士の対戦は、各ユーザが自身のエリアのカード山105からカードを1枚ずつ取得するターン制で行われる。カード山105から取得されたカードは、待機エリア106に置かれた後、所定数のターンが経過後に戦闘エリア103に移動され、当該カードに描かれたキャラクタが戦闘可能な状態になる。なお、カード山105に積み上げられたカードは、次に取得されるカードがわからないよう、例えば裏返された状態で表示される。また、各カードには描かれたキャラクタに応じた待機時間(ターン数)が設定されており、待機エリア106に置かれてからカードに応じた待機時間の経過後に、当該カードは戦闘エリア103に移動される。
カードが戦闘エリア103に移動されると、同じく戦闘エリア103に置かれている相手ユーザのカードとの間で、描かれているキャラクタ同士の戦闘イベントが実行される。当該キャラクタ同士の戦闘イベントの結果、体力がなくなったキャラクタのカードは、使用不可能な状態となり、廃棄エリア107に移動される。なお、戦闘エリア103に相手ユーザのカードが置かれていない場合は、戦闘エリア103に移動したカードに描かれたキャラクタの攻撃対象は、相手ユーザのアバター104となる。
このように、ユーザ同士が戦闘エリア103にカードを出し合うことにより対戦は進行し、デッキのカードが全て廃棄エリア107に移動された、あるいはアバター104の体力ゲージが0になったユーザが当該対戦の敗者となる。
<システム構成>
上述のようなユーザ同士のオンライン対戦カードゲームのゲームプログラムを実行するゲームシステムのシステム構成について説明する。図2は、本実施形態のゲームシステムの例示的な構成を示している。
本実施形態のゲームシステムでは、各ユーザが使用する例えばPC等のユーザ端末202aあるいはbは、ネットワーク203を介してゲームサーバ201に接続する。各ユーザは、ユーザ端末202上において、例えばインターネットブラウザを起動し、ゲームサーバ201が提供するURLにアクセスしてゲームサーバ201にログイン処理を行うことにより、上述したオンライン対戦カードゲームのサービスを利用することができる。
ゲームサーバ201は、オンライン対戦カードゲームに登録しているユーザの管理、及びオンライン対戦カードゲームに係るゲームプログラムの実行を行う。ゲームサーバ201はゲームプログラムに従って、ユーザ端末202で実行されているブラウザにおいて所定の表示を行うようにネットワーク203を介して情報を出力する。ゲームサーバ201においてゲームプログラムを実行することにより、ユーザ端末202を使用する各ユーザのデッキ編成、及びユーザ同士の対戦を実現する。なお、ユーザ端末202の各々は、例えば表示装置及びポインティングデバイスを有するPCであってよい。
(ゲームサーバ201の機能構成)
ここで、ゲームサーバ201の機能構成について図3を用いて詳細に説明する。
CPU301は、ゲームサーバ201が備える各ブロックの動作を制御する。具体的にはCPU301は、例えばROM302に記憶されている本実施形態のオンライン対戦カードゲームのゲームプログラムを読み出し、RAM303に展開して実行することにより、各ブロックの動作を制御する。
ROM302は、不揮発性メモリであり、本実施形態のオンライン対戦カードゲームのゲームプログラムに加えて、例えば各ブロックの動作及びゲームプログラム上で用いる動作パラメータを記憶する。
RAM303は、揮発性メモリであり、ゲームプログラムの展開領域としてだけでなく、例えば各ブロックの動作において出力された中間データの一時的な記憶領域としても用いられる。
ネットワークI/F306は、ゲームサーバ201をネットワーク203に接続するためのインタフェースであり、所定のプロトコルに準拠した通信接続を実現する。ゲームサーバ201は、ネットワークI/F306を介してネットワーク203に接続されることにより、同じくネットワーク203に接続されているユーザ端末202からのログイン要求を受信する。またゲームサーバ201は、当該ゲームサーバ201にログインしたユーザ端末202との間で、ネットワークI/F306を介して情報の送受信を行う。
例えば1人のユーザが使用するユーザ端末202に対してゲームサーバ201からの情報送信を行う場合は、まず当該ユーザがゲームサーバ201にログインした際に、使用しているユーザ端末202を特定するアドレス情報をCPU301が当該ユーザのユーザID(各ユーザ固有の識別情報)に関連付けて、後述するユーザ管理データベース304に記憶する。CPU301は、ゲームプログラムの実行において当該ユーザIDについて生成した情報を、当該ユーザIDに関連付けられたアドレス情報で定義された通信経路を用いてユーザ端末202に送信する。
ユーザ管理データベース304は、上述したように、ゲームサーバ201にログインする全てのユーザについて、各ユーザに固有のユーザIDを割り当てて管理する。ユーザ管理データベース304において管理される情報(ユーザデータ)は、ユーザIDに限らず、例えば図14(a)に示すように、各ユーザの階級を示す階級ID1402、各ユーザが所有するカードの情報1405及び作成したデッキの情報1406等のユーザ情報を含む。当該ユーザ情報は、それぞれのユーザIDに関連付けられて管理される。
なお、ユーザ管理データベース304への新規ユーザの登録は、ユーザ端末202からのネットワーク203を介した登録要求がネットワークI/F306において受信された場合に、CPU301が行う。CPU301は、ネットワークI/F306において受信された登録要求に含まれる情報を取得し、当該登録要求を行なったユーザに対して固有のユーザIDを割り当てるとともに、例えばユーザ名1403や接続端末アドレス情報1404等の取得した情報を当該ユーザIDに関連付けて記憶する。なお、ユーザIDは、ユーザ管理データベース304への登録順の情報を含むようにCPU301が所定の規則に従って生成してもよいし、ユーザにより指定された文字列の情報を用いてもよい。ユーザにより指定された文字列の情報を用いる場合は、ユーザIDにはさらに、ユーザ管理データベース304の内部IDとして登録順を示すIDが割り当てられるものとする。
カードデータベース305は、本実施形態のオンライン対戦カードゲームにおいて使用する全種類のカードの情報を管理する。カードは、各々異なるカードIDが割り当てられたカードデータとして管理される。例えば図14(d)に示すように、カードデータには、カードに描かれているキャラクタのキャラクタ名1441や、ゲーム上での当該キャラクタの攻撃力や防御力等のパラメータ1442の情報が含まれる。パラメータ1442は、それぞれのカードのカードID1440に関連付けられている。なお、上述した各ユーザの所有するカードの情報1405は、例えば全種類のカードIDに対して所有するか否かの論理型の情報、及び所有する枚数を示す情報等であり、ユーザIDに関連付けてユーザ管理データベース304に記憶される。
グラフィックデータベース307は、本実施形態のオンライン対戦カードゲームにおいて、ユーザ端末202の表示装置に表示するグラフィカルユーザインタフェース(GUI)を生成するデータ群を記憶する。CPU301は、ユーザ端末202におけるユーザ入力、及びゲームの進行に応じたGUIを生成するデータ群をグラフィックデータベース307より読み出し、ネットワークI/F306からネットワーク203を介して各ユーザのユーザ端末202に送信する。
グループデータベース308は、本実施形態のオンライン対戦カードゲームにおいて、後述する公式リーグにおけるユーザ振り分け単位である「グループ」ごとに作られたグループテーブルを管理する。グループテーブルには、グループに振り分けされたユーザのユーザIDが追加される。各グループテーブルは、例えば図14(c)のように、固有のグループID1430が割り当てられて管理される。本実施形態のオンライン対戦カードゲームでは、公式リーグに参加するユーザを、付与さえている後述の階級が同一であるユーザでグループが構成されるように振り分ける。このため各グループテーブルには、階級ID1431が含まれ、当該階級IDと同一の階級IDが付与されたユーザの情報(1432、1433)が含まれる。
このように構成された本実施形態のゲームシステムにおいて、ユーザに提供されるゲーム及びその処理について、以下に説明する。
<ゲーム種類>
ユーザがゲームサーバ201にログインすると、図4に示すようなメニュータブを有する画面がユーザ端末202の表示装置に表示される。メニュータブ401a乃至dに示されるように、本実施形態のオンライン対戦カードゲームでは、ユーザに対し、「フリーバトル」(401a)、「オリジナルリーグ」(401b)、「公式リーグ」(401c)、「迎撃戦」(401d)の4つのゲームを提供する。
提供されるゲームは、それぞれ以下のような特徴を有する。
・フリーバトル :ユーザが、現在ゲームシステムに登録している他のユーザの中から
対戦ユーザを任意に選択し、当該対戦ユーザが予めフリーバトル用
に設定したデッキと対戦を行う(なお、フリーバトルに限りデッキ
構築の手間を省くためにもオリジナルリーグ用又は公式リーグ用に
設定したデッキで代用するようにしても良い)。
・オリジナルリーグ:1人のユーザがホストとなり、ホストが設定したレギュレーション
で複数のユーザの参加を募って開催するリーグ戦。
・公式リーグ :ゲームシステム上で開催される、ユーザの戦績によって順位付けを
行う、公式リーグ用のデッキを編成済みの全ユーザが参加となるリ
ーグ戦。リーグ戦の会期が長期化しないよう、全ユーザは1以上の
グループに振り分けされて対戦を行う。
・迎撃戦 :他のユーザにフリーバトルの対戦ユーザとして選択された際の対戦
の内容及び結果の表示を行う。
なお、本実施形態においては「リーグ戦」とは、リーグ戦内の1グループに参加しているユーザ同士の総当たり戦を行うものとして説明するが、例えばトーナメント戦や、予め定められた会期内で実行可能な所定数の対戦を行うものであってもよい。
<デッキ編成・登録>
図14(a)に示すように、本実施形態のオンライン対戦カードゲームでは、ユーザはゲームの種類ごとに、1枚以上のカードで構成される「デッキ」を編成することができる。デッキの情報1406は、ユーザIDに関連付けられてユーザ管理データベース304に管理される。デッキの情報を示すデッキテーブルは、図14(b)に示すように、ユーザが管理するデッキを識別するデッキID1420、ゲームの種類を示すゲームID1421、及びデッキを構成する1枚以上のカードのカードID1422が含まれる。本実施形態では、1人のユーザは自身が所有しているカードを用いて、以下のデッキ編成処理によって複数のデッキを編成可能である。またさらに、後述するデッキ登録処理によって、編成したデッキを使用するゲームを選択して登録することにより、選択されたゲームを示すゲームIDが関連付けられたデッキを、当該ユーザのユーザIDに関連付けてユーザ管理データベース304に記憶することができる。
(デッキ編成処理)
ここで、本実施形態のゲームシステムにおける、ユーザ端末202からの登録要求を受けてユーザ管理データベース304に追加されたユーザ(以下、操作ユーザ)のそれぞれが、各ゲームについてデッキを編成する際に実行されるデッキ編成処理について、図6のフローチャートを用いて説明する。当該フローチャートに対応する処理は、CPU301が、例えばROM302に記憶されている対応する処理プログラムを読み出し、RAM303に展開して実行することにより実現することができる。なお、本デッキ編成処理は、図4に示した表示画面において「デッキ」メニュー402が操作ユーザによって選択されることによりデッキメニューの表示画面に遷移し、さらに当該遷移画面においてプルダウンメニュー701の「デッキ作成・編集」メニューが選択されたことを示す情報を、CPU301がネットワークI/F306を介して受信した際に開始されるものとして説明する。
なお、図7(a)はプルダウンメニュー701の「デッキ作成・編集」メニューが選択された際にユーザ端末202の表示装置に表示される表示画面である。当該デッキ作成・編集を行う表示画面には、プルダウンメニュー701、デッキリスト702、新規作成ボタン703、デッキ編成領域704、所有カード領域705、総コスト706、及び最大コスト707が含まれる。
プルダウンメニュー701は、デッキの新規作成あるいは既に作成されたデッキの編集を行う「デッキの作成・編集」メニュー、あるいは作成されたデッキを各ゲームに登録する「デッキの登録」メニューが含まれる、ユーザ選択型のメニューリストである。
デッキリスト702は、操作ユーザが作成したデッキの一覧であり、各デッキは選択可能に配置されている。デッキリスト702に表示されるデッキの情報は、当該操作ユーザのユーザIDに関連付けられて編成デッキ情報としてユーザ管理データベース304に記憶されている。デッキリスト702において各デッキは、例えば当該デッキに含まれているカードの情報のうち、1つの代表カードに対応するグラフィックデータで構成されたアイコンとして表示される。具体的にはデッキに含まれる代表カードのカードIDをCPU301が取得し、当該カードIDに関連付けられたグラフィックデータをグラフィックデータベース307から読み出してアイコンを作成して表示させる。
なお、代表カードは、例えばデッキの属性を決定する基準(ベース)として選択されたリーダーカード、当該デッキに最初に登録されたカード、あるいは操作ユーザにより任意に選択されたカードであってよい。
新規作成ボタン703は、操作ユーザがデッキの新規作成指示を行うためのGUIである。使用するユーザ端末202のポインティングデバイスを用いて、操作ユーザが新規作成ボタン703を選択することにより、ユーザ端末202からゲームサーバ201にデッキの新規作成要求がネットワーク203を介して送信される。
デッキ編成領域704は、新規にデッキを作成する、あるいは既に作成したデッキを編集する際に、デッキに追加されたカードが表示される領域である。操作ユーザは後述する所有カード領域705よりデッキに追加するカードを選択し、デッキ編成領域704に当該カードのアイコンをドラッグアンドドロップすることにより、デッキの作成を行うことができる。
所有カード領域705は、操作ユーザが所有するカードの一覧が表示される領域である。操作ユーザが所有するカードの情報は、当該操作ユーザのユーザIDに関連付けられてユーザ管理データベース304に記憶されている。CPU301は、例えば当該デッキ作成・編集の表示画面を表示する際に、ユーザIDに関連付けられている所有カード情報を読み出す。上述したように所有カード情報は、全種類のカードのカードIDそれぞれについて、所有するか否かの論理型の情報及び所有する枚数を示す情報を含む。CPU301は、所有すること示す情報が含まれているカードのカードIDと、当該カードの枚数の情報に従って、当該カードIDに関連付けられたグラフィックデータをグラフィックデータベース307より読み出して所有カード領域705に描画する。
なお、操作ユーザが作成したデッキ間においてカードの重複を許さず、既にデッキに登録されているカードは、所有カード領域705に表示されないものであってもよい。例えばCPU301は、1人のユーザに対してデッキ作成・編集の表示画面を表示する際に、当該ユーザのユーザIDに関連付けられてユーザ管理データベース304に記憶されている編成デッキ情報を参照し、全デッキテーブルに含まれるカードIDである編成済みカードIDの情報を取得する。そしてCPU301は、所有するカードのカードIDのうち、編成済みのカードIDではないカードIDについて、当該カードIDに関連付けられたグラフィックデータをグラフィックデータベース307より読み出して所有カード領域705に描画する。このように、既にデッキに登録されているカードを所有カード領域705に表示しないことで、操作ユーザが作成するデッキにおいてカードが重複することを回避してもよい。
なお、既にデッキに登録されているカードは所有カード領域705に表示されるが、当該領域において選択したカードをデッキに追加しようとした場合に、当該カードのカードIDが編成済みのカードIDに含まれる場合は追加しない構成であってもよい。また、既にデッキに登録されているカードは所有カード領域705に表示されるが、選択不可能に表示する構成であってもよい。
総コスト706及び最大コスト707は、作成するデッキについての条件を示す情報である。オンライン対戦カードゲームでは、ユーザ同士の対戦が公平に行えるように「コスト」という概念が設けられる。各カードには、「コスト」として予め設定された点数が設けられている。操作ユーザは、1つのデッキについて、当該デッキに含まれるカードのコストの合計(総コスト)が予め設定された最大コスト以下となるように編成する必要がある。コストは、例えばレアカード等の、ゲームを有利に展開可能な付加価値を有するカードであるほど高く設定される。また、1つのデッキに多数のレアカードが含めらることができないように最大コストを設定することで、ユーザ同士の対戦において戦況の展開が一方的になることを回避できる。
上述したように、本実施形態のオンライン対戦カードゲームの全カードは、各々異なるカードIDに対して、カードに描かれたキャラクタのパラメータの情報が関連付けられて、カードデータベース305に記憶されている。カードの各々は、描かれているキャラクタに応じてコストが設定されており、CPU301は、作成あるいは編集中のデッキに追加されたカード各々のコストを合算することにより、総コスト706に表示する総コストを示す情報を取得する。また、最大コスト707の情報は、デッキを構成するカードの総コストの最大値である。最大コストの値は、例えばデッキのベースとして選択されたカードに応じて決定される値であってもよいし、ゲームに応じて固定、あるいは当該オンライン対戦カードゲームにおいて不変の値であってもよい。
保存ボタン708は、操作ユーザが、デッキ編成領域704に追加されたカードをデッキとしての登録指示を行うためのGUIである。使用するユーザ端末202のポインティングデバイスを用いて、操作ユーザが保存ボタン708を選択することにより、ユーザ端末202からゲームサーバ201にデッキの登録要求がネットワーク203を介して送信される。
なお、以下のデッキ編成処理の説明では、デッキの新規作成を行う際の処理について説明するが、以下の処理は既に作成されているデッキの編集を行う際にもS601及びS602の処理を除いて適用可能である。
S601で、CPU301は、操作ユーザの使用するユーザ端末202より、デッキの新規作成要求がなされたか否かを判断する。具体的にはCPU301は、デッキ作成・編集を行う表示画面において、操作ユーザが新規作成ボタン703を選択したことを示す情報をネットワークI/F306を介して受信したか否かを判断する。CPU301は、デッキの新規作成要求を受信したと判断した場合は処理をS602に移し、受信していないと判断した場合は本ステップの処理を繰り返す。
S602で、CPU301は、新規作成するデッキに対して未割り当てのデッキIDを割り当て、当該デッキIDに関連付けたデッキテーブルをRAM303に作成する。なお、未割り当てのデッキIDは、当該操作ユーザに対して未割り当てのデッキIDであればよい。
S603で、CPU301は、デッキへのカード追加指示がなされたか否かを判断する。具体的にはCPU301は、当該操作ユーザによって、所有カード領域705に表示されているカードが選択され、デッキ編成領域704にドラッグアンドドロップされたことを示す情報を、ネットワークI/F306を介して受信したかにより、デッキへのカード追加指示がなされたか否かを判断する。CPU301は、デッキへのカード追加指示がなされたと判断した場合は処理をS604に移し、追加指示がなされていないと判断した場合は処理をS605に移す。
なお、CPU301はデッキへのカードの追加指示がなされたと判断した場合、選択されたカードのカードIDを示す情報をネットワークI/F306より取得するものとする。
S604で、CPU301は、選択されたカードのカードIDの情報を、S602で作成したデッキテーブルに追加する。またCPU301は追加したカードIDのコストの情報をカードデータベース305より取得し、例えばRAM303に記憶されている総コストの値に加算して、対応する総コスト706の表示を更新する。
S605で、CPU301は、操作ユーザの使用するユーザ端末202より、デッキの登録要求がなされたか否かを判断する。具体的にはCPU301は、操作ユーザが保存ボタン708を選択したことを示す情報をネットワークI/F306を介して受信したか否かを判断する。CPU301は、デッキの登録要求を受信したと判断した場合は処理をS606に移し、登録要求を受信していないと判断した場合は処理をS603に戻す。
S606で、CPU301は、S602で作成したデッキテーブルに追加されているカードのコストの合計(総コスト)が、最大コストの値以下であるか否かを判断する。具体的にはCPU301は、例えばRAM303に記憶されている総コストの値及び最大コストの値を取得し比較を行う。CPU301は、総コストが最大コスト以下であると判断した場合は、RAM303に記憶されているデッキID及びデッキテーブルの情報を、操作ユーザのユーザIDに関連付けてユーザ管理データベース304に記憶して本デッキ編成処理を完了する。またCPU301は、総コストが最大コストより大きいと判断した場合は、総コストが最大コストを超えていることを示す通知をユーザ端末202に送信して、処理をS603に移す。具体的にはCPU301は、例えば総コストが最大コストを超えていることを示す通知のグラフィックデータをグラフィックデータベース307より読み出す。そしてCPU301は、当該グラフィックデータを現在の表示画面に重畳表示する指示と共に、ネットワークI/F306を介して当該グラフィックデータをユーザ端末202に送信する。
このようにすることで、ユーザの各々は、所有する1枚以上のカードで構成されるデッキを作成することができる。
(デッキ登録処理)
次に、デッキ編成処理によって作成されたデッキを、本実施形態のオンライン対戦カードゲームの任意のゲームについて使用するデッキとして登録するデッキ登録処理について、図8のフローチャートを用いて説明する。当該フローチャートに対応する処理は、CPU301が、例えばROM302に記憶されている対応する処理プログラムを読み出し、RAM303に展開して実行することにより実現することができる。なお、本デッキ編成処理は、図4に示した表示画面において「デッキ」メニュー402が操作ユーザにより選択することによりデッキメニューの表示画面に遷移し、さらに当該遷移画面においてプルダウンメニュー701の「デッキ登録」メニューが選択されたことを示す情報を、CPU301がネットワークI/F306を介して受信した際に開始されるものとして説明する。
なお、図7(b)はプルダウンメニュー701の「デッキ登録」メニューが選択された際にユーザ端末202の表示装置に表示される表示画面である。当該デッキ登録を行う表示画面には、プルダウンメニュー701、ゲーム選択リスト710、デッキ候補領域711、登録ボタン712、デッキ選択領域713、選択デッキ714、及びデッキ構成表示領域715が含まれる。
ゲーム選択リスト710は、デッキを登録するゲームを選択するプルダウンリストである。本実施形態ではゲーム選択リスト710のプルダウンリストには、選択可能なゲームとして、上述した「フリーバトル」、「オリジナルリーグ」、「公式リーグ」、及び「迎撃戦」が含まれる。
デッキ候補領域711は、登録候補のデッキをストックする領域である。操作ユーザは、後述するデッキ選択領域713より登録候補としてデッキを選択し、デッキ候補領域711に当該デッキのアイコンをドラッグアンドドロップすることにより、当該デッキを登録候補としてデッキ候補領域711に表示することができる。
登録ボタン712は、操作ユーザがデッキ候補領域711にストックされた登録候補のデッキ(群)を、ゲーム選択リスト710で選択されているゲームで使用するデッキとして登録する指示を行うためのGUIである。使用するユーザ端末202のポインティングデバイスを用いて、操作ユーザが登録ボタン712を選択することにより、ユーザ端末202からゲームサーバ201に登録候補のデッキの登録要求がネットワーク203を介して送信される。なお、登録ボタン712は、例えばデッキ候補領域711に登録候補のデッキがストックされていない場合、あるいはデッキ候補領域711にストックされているデッキが登録予定のゲームのレギュレーションを満たしていない場合等は、選択不可能な状態で表示されてもよい。
デッキ選択領域713は、上述したデッキ編成処理により作成された、操作ユーザのユーザIDに関連付けられてユーザ管理データベース304に記憶されているデッキが選択可能に表示される領域である。本実施形態では、デッキ選択領域713に表示されるデッキは、上述した「フリーバトル」、「オリジナルリーグ」、「公式リーグ」、及び「迎撃戦」のいずれのゲームにも登録がなされていないデッキが表示されるものとする。具体的には、CPU301はユーザ管理データベース304に記憶されている、操作ユーザのユーザIDに関連付けられているデッキのうち、デッキを使用するゲームIDの情報が関連付けられていないデッキテーブルの情報を読み出す。なお、本実施形態では、ゲームへの登録が未登録であるデッキのみがデッキ選択領域713に表示されるものとし説明するが、本発明の実施はこれに限られない。例えば、デッキ選択領域713において、既にゲームに登録されているデッキは、既に登録されていることを示す通知とともに表示されてもよいし、選択できない状態で表示されてもよい。そしてデッキリスト702と同様に、当該デッキのデッキテーブルに含まれているカードIDのうち、1つの代表カードのカードIDをCPU301が取得し、当該カードIDに関連付けられたグラフィックデータをグラフィックデータベース307から読み出してアイコンを作成してデッキ選択領域713に表示させる。
選択デッキ714は、デッキ選択領域713において操作ユーザにより選択されているデッキを示している。デッキ構成表示領域715には、選択デッキ714を構成するカードが表示される。
S801で、CPU301は、操作ユーザの使用するユーザ端末202よりデッキの選択指示がなされたか否かを判断する。具体的にはCPU301は、操作ユーザによって、デッキ選択領域713に表示されている当該操作ユーザのユーザIDに関連付けられたデッキが選択されたことを示す情報を、ネットワークI/F306を介して受信したかにより、デッキの選択指示がなされたか否かを判断する。CPU301は、デッキの選択指示がなされたと判断した場合は処理をS802に移し、選択指示がなされていないと判断した場合は処理をS803に移す。
S802で、CPU301は、操作ユーザにより選択されたデッキを示すデッキIDの情報を取得し、操作ユーザのユーザIDに関連付けられている、当該デッキIDが付されたデッキテーブルをユーザ管理データベース304より読み出す。そしてCPU301は、読み出したデッキテーブルに含まれるカードIDの各々を参照し、カードIDに関連付けられたグラフィックデータをグラフィックデータベース307より読み出してデッキ構成表示領域715に描画する。
S803で、CPU301は、選択された選択デッキ714を登録候補とするための指示がなされたか否かを判断する。具体的にはCPU301は、操作ユーザによって、デッキ選択領域713に表示されているデッキのうちの選択デッキ714が、デッキ候補領域711にドラッグアンドドロップされたことを示す情報を、ネットワークI/F306を介して受信したかにより、選択デッキ714が登録候補とするための指示がなされたか否かを判断する。CPU301は、選択デッキ714が登録候補とするための指示がなされたと判断した場合は処理をS804に移し、指示がなされていないと判断した場合は処理をS805に移す。
S804で、CPU301は、選択デッキ714のデッキIDを、RAM303に登録候補のデッキIDとして記憶する。なお、登録候補のデッキIDは複数設定可能であるものとし、登録候補のデッキIDの情報はリストとしてRAM303に記憶されてもよい。
S805で、CPU301は、登録候補のデッキをゲーム選択リスト710において選択されているゲームで使用するデッキとする登録要求がなされたか否かを判断する。具体的にはCPU301は、操作ユーザによって、登録ボタン712を選択されたことを示す情報を、ネットワークI/F306を介して受信したかにより、登録候補のデッキの登録要求がなされたか否かを判断する。CPU301は、登録候補のデッキの登録要求がなされたと判断した場合は処理をS806に移し、登録要求がなされていないと判断した場合は処理をS801に戻す。
S806で、CPU301は、RAM303に記憶されている登録候補のデッキIDの情報を読み出す。またCPU301は、ゲーム選択リスト710で選択されているゲームに対応するゲームIDの情報を取得する。そしてCPU301は、登録候補のデッキIDに対応するデッキテーブルに対して、ゲームIDを関連付けてユーザ管理データベース304に記憶し、本デッキ登録処理を完了する。なお、ゲーム選択リスト710で選択されているゲームに対応するゲームIDの情報は、ゲーム選択リスト710で選択されているゲームに応じて更新されてRAM303に格納されていてもよいし、本ステップにおいてゲーム選択リスト710で選択されている項目を参照し、当該項目に対応付けられたゲームIDをROM302より取得してもよい。
このようにすることで、操作ユーザは、デッキ編成処理で作成したデッキを、使用するゲームごとに登録することができる。なお、各ゲームについて登録されたデッキは、各ゲームを開始する際に一覧から操作ユーザが選択する、あるいは自動的に選択されるものとする。
なお、本実施形態では、操作ユーザは「デッキの作成・編集」及び「デッキの登録」を「デッキ」メニュー402を選択した際に表示される表示画面において行うものとして説明したが、デッキの作成や登録方法はこれに限られない。例えば、図4に示すメニュータブ401a乃至dのいずれかが選択された際に表示される、各ゲームについての表示画面において、対応するゲームのデッキを作成及び登録できるものであってもよい。
<カード種類>
本実施形態のオンライン対戦カードゲームでは、各ユーザは2種類のカードを対戦に使用できる。カードの種類の一方は、ユーザの各々が現実世界で購入したリアルカードを、例えば当該リアルカードに印刷された個体識別番号をゲームシステムに登録することにより、恒久的に取得できる「所有カード」である。また、もう一方のカードの種類は、ユーザの各々がゲーム内の「ショップ」において購入することにより、一時的に取得できる「レンタルカード」である。
レンタルカードは、例えばゲームに勝利することにより取得できる、ゲーム内の仮想マネーを用いて購入が可能である。一時的に取得されたレンタルカードは、デッキ編成に用いる等、通常の所有カードと同等に使用することができる。なお、操作ユーザが取得したレンタルカードの情報は、例えば当該操作ユーザのユーザIDに関連付けられてユーザ管理データベース304に記憶されている所有カード情報とは別に、当該ユーザ管理データベース304において当該操作ユーザのユーザIDに関連付けられて管理されてよい。ユーザが取得したレンタルカードの情報は、例えば所有カード情報と同様に、全カードのカードIDに対してレンタルカードとして所有するか否かを示す論理型の情報、及び各カードを取得した枚数が含まれる。当該レンタルカードの情報は、所有する当該操作ユーザのユーザIDに関連付けられて、ユーザ管理データベース304に記憶されていればよい。
なお、取得したレンタルカードを操作ユーザが使用可能な期間は、例えば1対戦、1回のログイン中、あるいは所定の時間等、予め定められているものとする。
<ショップ>
ここで、上述したレンタルカードの購入が可能なショップについて図9を用いて以下に説明する。図9は、図4に示した表示画面において「ショップ」メニュー403が操作ユーザによって選択された際に遷移する、ショップメニューの表示画面を示している。
本実施形態のオンライン対戦カードゲームでは、リアルカードの販売形態に合わせて、ゲーム内でも同様の販売形態を実現する。図示されるように、本実施形態のオンライン対戦カードゲームにおけるレンタルカードの取得は、ウエハース(菓子)の袋に封入されている1枚のカードを取得する形態、所謂カードダス(登録商標)等の仮想マネーを挿入してダイアルを回すことにより2枚のカードを取得する形態、及びカードのみが封入された袋(パック)から3枚のカードを取得する形態のいずれかを選択することで行うことができる。図9の選択ボタン901乃至903は、それぞれ3つの取得形態に対応しており、CPU301は、操作ユーザにより当該選択ボタンのいずれかが選択された情報をネットワークI/F306を介して受信すると、それぞれの取得形態に応じたグラフィックデータをグラフィックデータベース307より読み出して表示画面を描画してユーザ端末202に送信する。
(レンタルカード購入演出)
図10乃至図12は、各取得形態に対応した画面遷移を説明するための図である。CPU301は、例えば操作ユーザが所有するユーザ端末202のポインティングデバイスを使用して表示画面における所定の構成要素に対してポイント入力を行なったことを示す情報をネットワークI/F306より受信する。そしてCPU301は当該受信に応じて、遷移する画面のグラフィックデータをグラフィックデータベース307より取得し、ネットワークI/F306を介してユーザ端末202に順次送信するものとする。
操作ユーザが図9の表示画面において選択ボタン901を選択したこと示す情報をネットワークI/F306を介して受信した場合、CPU301は、図10(a)の菓子箱1001(菓子袋の集合)を選択する画面のグラフィックデータをグラフィックデータベース307より読み出す。そしてCPU301は、菓子箱1001のグラフィックデータを図9の表示画面に重畳表示する指示と共に、菓子箱1001のグラフィクデータをネットワークI/F306を介して操作ユーザの使用するユーザ端末202に送信する。
菓子箱は、「第1弾」、「第2弾」、・・・といった、リアルカードの登場時期に対応した集合に分けられており、1つの菓子箱に並べられた菓子袋の画像からは、同一の登場時期のカードが得られる。本実施形態のオンライン対戦カードゲームにおいて使用する全種類のカードの各々が、リアルカードの登場時期に対応した集合のうちのいずれに属するかの情報は、例えば各カードのカードIDに含まれる数字より判別可能であってよい。例えばCPU301は、カードデータベース305より各登場時期に対応した集合に含まれるカードIDに含まれる数字の範囲の情報を取得することで、選択された菓子箱の菓子袋から得られるカードの候補を特定できる。即ち、当該範囲内の数字がカードIDに含まれるカードが、菓子袋から得られるカードの候補となる。1つの登場時期のレンタルカードをユーザが取得する場合、CPU301は、例えば当該候補のカードIDの中からランダムに選択したカードIDを、操作ユーザが一時的に所有するレンタルカードとして、操作ユーザのユーザIDに関連付けてユーザ管理データベース304に記憶すればよい。
操作ユーザにより左ボタン1002あるいは右ボタン1003が選択された場合、CPU301はネットワークI/F306を介して当該選択を示す情報を受信し、所望の菓子箱が中央に表示されたグラフィックデータをグラフィックデータベース307より読み出す。そしてCPU301は、当該グラフィックデータを図9の表示画面に重畳表示する指示と共に、当該グラフィックデータを送信する。
またCPU301は、操作ユーザが当該菓子箱のGUIに対してポイント入力を行ったことをネットワークI/F306を介して受信すると、1つの菓子箱1004のみのグラフィックデータをグラフィックデータベース307より読み出す。そしてCPU301は、菓子箱1001を選択するグラフィックデータに代えて、当該1つの菓子箱1004のみのグラフィックデータを図9の表示画面に重畳表示する指示と共に、菓子箱1004のみのグラフィックデータをユーザ端末202に送信する。なお、本実施形態では当該菓子箱1004のグラフィックデータには、複数の菓子袋の画像が例えばレイヤ構造を有して分離可能に含まれているものとする。
さらに菓子箱1004に含まれる1つの菓子袋1005の画像に対して操作ユーザがポイント入力を行って選択したことをネットワークI/F306を介して受信すると、CPU301は、図10(b)のような選択された菓子袋1005が菓子箱1004から飛び出すように移動させる指示をユーザ端末202に送信する。これにより、ユーザ端末202の表示装置では、菓子箱1004から選択した菓子袋1005が飛び出す遷移の様が表示される。またCPU301は、当該菓子袋1005の移動後、菓子袋1005のみを図9の画面に重畳表示する描画指示をネットワークI/F306を介してユーザ端末202に送信する。
その後、菓子袋1005のみが表示される表示画面において、操作ユーザにより当該菓子袋1005に対するポイント入力が行われたことをネットワークI/F306を介して受信すると、CPU301は、菓子袋が破れた図10(c)のグラフィックデータをグラフィックデータベース307より読み出す。そしてCPU301は、菓子袋1005のみのグラフィックデータに代えて、当該菓子袋が破れたグラフィックデータを図9の表示画面に重畳表示する指示と共に、当該菓子袋が破れたグラフィックデータをネットワークI/F306を介してユーザ端末202に送信する。
またこのときCPU301は、ランダムに決定したカードIDに対応するグラフィックデータ(カード画像1006)をグラフィックデータベース307より読み出して、ネットワークI/F306を介してユーザ端末202に送信する。なおCPU301は、当該カード画像を、菓子袋が破れたグラフィックデータの下から所定の速度で順次露出する描画指示をユーザ端末202に送信するものとする。このようにすることで、図10(c)に示すように、菓子袋の中から封入されていたカード画像1006が露出する演出を操作ユーザに対して与える。
またカード画像1006の全体が露出された後、CPU301は当該カード画像1006のみを図9の表示画面に重畳表示する指示を送信する。このとき、CPU301はさらに、レンタルカードを取得したことを通知するグラフィックデータをグラフィックデータベース307より読み出し、当該グラフィックデータを重畳表示する指示と共に当該グラフィックデータをユーザ端末202に送信する。なお、CPU301は、例えばROM302に記憶されている菓子の咀嚼音の音声データを読み出してユーザ端末202に送信し、カード画像1006のみを表示させる指示と共に当該音声データをユーザ端末202において再生させる。このようにすることで、現実世界において菓子の購入によりカードを入手する場合と同等の演出効果を操作ユーザに与えることができる。
また、操作ユーザが図9の表示画面において選択ボタン902を選択したことを示す情報をネットワークI/F306を介して受信した場合、CPU301は、図11(a)のカード筐体1101(カードを排出する筐体)を選択する画面のグラフィックデータをグラフィックデータベース307より読み出す。そしてCPU301は、1101のグラフィックデータを図9の表示画面に重畳表示する指示と共に、カード筐体1101のグラフィックデータをネットワークI/F306を介してユーザ端末202に送信する。操作ユーザにより左ボタン1102あるいは右ボタン1103が選択された場合、CPU301はネットワークI/F306を介して当該選択を示す情報を受信し、所望のカード筐体が中央に表示されたグラフィックデータ(図11(b))をグラフィックデータベース307より読み出す。そしてCPU301は、当該グラフィックデータを図9の表示画面に重畳表示する指示と共に、当該グラフィックデータを送信する。
またCPU301は、操作ユーザが当該カード筐体のGUIに対してポイント入力を行なったことをネットワークI/F306を介して受信すると、1つのカード筐体1104のみのグラフィックデータをグラフィックデータベース307より読み出す。そしてCPU301は、カード筐体1101を選択するグラフィックデータに代えて、当該1つのカード筐体1104のみのグラフィックデータを図9の表示画面に重畳表示する指示と共に、カード筐体1104のグラフィックデータをユーザ端末202に送信する。なお、本実施形態ではカード筐体1104のグラフィックデータは、2枚の裏向き(カードの背面が描かれた状態)のカード画像が例えばレイヤ構造を有して分離可能に含まれているものとする。
さらにカード筐体1104のダイアル1105に対して操作ユーザがポイント入力を行ったこおとをネットワークI/F306を介して受信すると、CPU301は、当該ポイント入力の回数に応じてカード筐体1104のグラフィックデータに含まれるカード画像1106が、図11(c)及び(d)のように順次露出する描画指示をユーザ端末202に送信する。
またCPU301は、ランダムに決定した2つのカードIDに対応するグラフィックデータをグラフィックデータベース307より読み出して、ネットワークI/F306を介してユーザ端末202に送信する。そしてカード画像1106の全体が露出された後、CPU301は、カード筐体1104及びカード画像1106のグラフィックデータに代えて、ランダムに決定したカードのグラフィックデータを図9の表示画面に重畳表示する指示を送信する。このとき、CPU301はさらに、レンタルカードを取得したことを通知するグラフィックデータをグラフィックデータベース307より読み出し、当該グラフィックデータを重畳表示する指示と共に当該グラフィックデータをユーザ端末202に送信する。このようにするこおとで、現実世界においてカード筐体でカードを入手する場合と同等の演出効果を操作ユーザに与えることができる。
また、操作ユーザが図9の表示画面において選択ボタン903を選択したことを示す情報をネットワークI/F306を介して受信した場合、CPU301は、図12(a)のカードパック1201(カードが封入された袋)を選択する画面のグラフィックデータをグラフィックデータベース307より読み出す。そしてCPU301は、カードパック1201のグラフィックデータを図9の表示画面に重畳表示する指示と共に、カードパック1201のグラフィックデータをネットワークI/F306を介してユーザ端末202に送信する。操作ユーザにより左ボタン1202あるいは右ボタン1203を選択された場合、CPU301はネットワークI/F306を介して当該選択を示す情報を受信し、所望のカードパックが中央に表示されたグラフィックデータをグラフィックデータベース307より読み出す。そしてCPU301は、当該グラフィックデータを図9の表示画面に重畳表示する指示と共に当該グラフィックデータを送信する。
またCPU301は、操作ユーザが当該カードパックのGUIに対してポイント入力を行なったことをネットワークI/F306を介して受信すると、1つのカードパック1204のみのグラフィックデータ(図12(b))をグラフィックデータベース307より読み出す。そしてCPU301は、カードパック1201を選択するグラフィックデータに変えて、当該1つのカードパック1204のみのグラフィックデータを図9の表示画面に重畳表示する指示と共に、カードパック1204のグラフィックデータをユーザ端末202に送信する。
その後、カードパック1204のみが表示される表示画面において、操作ユーザにより当該カードパック1204に対するポイント入力が行われたことをネットワークI/F306を介して受信すると、CPU301は、当該ポイント入力に応じて、カードパック1204のグラフィックデータを図12(c)のように分裂させる描画指示をユーザ端末202に送信する。当該カードパック1204のグラフィックデータの分裂は、カードパックの包装が裁断されたことを示す演出効果を操作ユーザに与える。
またこのときCPU301は、ランダムに決定した3つのカードIDに対応するグラフィックデータ(カード画像1205)をグラフィックデータベース307より読み出して、ネットワークI/F306を介してユーザ端末202に送信する。なおCPU301は、当該カード画像を、分裂したカードパック1204のグラフィックデータの下から所定の速度で順次露出する描画指示をユーザ端末202送信するものとする。このようにすることで、図12(d)に示すように、カードパックの中から封入されていたカード画像1205が露出する演出を操作ユーザに対して与える。
またカード画像1205の全体が露出された後、CPU301は当該カード画像1205のみを図9の表示画面に重畳表示する指示を送信する。このとき、CPU301はさらに、レンタルカードを取得したことを通知するグラフィックデータをグラフィックデータベース307より読み出し、当該グラフィックデータを重畳表示する指示と共に当該グラフィックデータをユーザ端末202に送信する。このようにすることで、現実世界においてカードパックの購入によりカードを入手する場合と同等の演出効果を操作ユーザに与えることができる。
このように、本実施形態のオンライン対戦カードゲームでは、現実世界においてリアルカードを購入する手段と同様の方法をゲーム上で用意することで、レンタルカードの取得を行う直感的な表示画面遷移を操作ユーザに対して提示することができる。
<階級制度>
本実施形態のオンライン対戦カードゲームでは、公式リーグにおけるユーザの対戦戦績に基づく、図5(a)に示すような5段階の階級制度を設けている。各階級には上限ユーザ数(Ucmax1、Ucmax2、Ucmax3、Ucmax4、及びUcmax5)が設定されている。階級のそれぞれは階級IDによって識別され、当該階級IDがユーザIDに関連付けてユーザ管理データベース304に記憶されることにより、ユーザには階級が付与されることになる。
ゲームシステム上で開催される公式リーグでは、ユーザを振り分けて対戦を行う単位であるグループにユーザを振り分けて対戦を行う。公式リーグの各グループに属するユーザは、同一の階級IDが付与されたユーザで構成される。また公式リーグでは、シーズンと呼ばれる所定の会期ごとにユーザのグループ分けが行われる。グループ分けされたユーザは、シーズン終了時の公式リーグのグループ内順位に応じて、階級の昇格あるいは降格が実行される。具体的には、階級の昇格あるいは降格の条件は階級のグループごとに例えば図5(b)のように定められており、各階級間では公式リーグの1シーズンごとに決められた人数のユーザの階級が変動する。
例えば、階級の1つであるC3では、当該階級の1つのグループにおいて、1シーズン終了後の順位が1〜3位の3名(昇格人数Uup)のユーザは1つ上の階級のC2に昇格する。また、順位が11〜16位の6名(降格人数Udown)のユーザは1つ下の階級のC4に降格する。また、順位が4〜10位の7名(残留人数Ustay)のユーザについては階級の変更はなく、階級C3に残留する。図示されるように、C3のグループ総数は1600であるため、1シーズン終了後にはC3全体で1600×3=4800人(昇格総人数Uupt)のユーザがC2に昇格し、1600×6=9600人(降格総人数Udownt)のユーザがC4に降格することになる。
<フリーバトル>
以下、本実施形態のオンライン対戦カードゲームにおいて提供されるフリーバトルの詳細について、以下に説明する。
上述したようにフリーバトルでは、操作ユーザはゲームシステムに登録されている他のユーザを任意に選択することにより対戦を行うことができる。具体的には操作ユーザは、ゲームシステムに登録されている他のユーザのうち、迎撃戦用のデッキを編成済みのユーザと対戦を行うことができる。操作ユーザが対戦可能な他のユーザの情報は、図4に示すようにフリーバトルリスト404に一覧表示され、操作ユーザは当該画面において他のユーザを選択することで、フリーバトルを行うことができる。
(フリーバトルリスト更新処理)
ここで、本実施形態のゲームシステムにおける、各ユーザに対して表示されるフリーバトルリストに表示されるユーザの更新するフリーバトルリスト更新処理について、図13のフローチャートを用いて説明する。当該フローチャートに対応する処理は、CPU301が、例えばROM302に記憶されている対応する処理プログラムを読み出し、RAM303に展開して実行することにより実現することができる。なお、本フリーバトルリスト更新処理は、操作ユーザによってフリーバトルのメニュータブ401aが選択された際に開始されるものとして説明する。
また、本実施形態ではネットワークI/F306を介してユーザ端末202よりユーザのログイン要求を受け付けた場合、CPU301はログイン要求を受け付けたユーザのユーザIDに関連付けて、最後にログイン要求を受け付けた日時の情報1408(図14(a))をユーザ管理データベース304に記憶させるものとする。
S1301で、CPU301は、操作ユーザに付与されている階級の情報を取得する。具体的にはCPU301は、当該操作ユーザのユーザIDに関連付けられている階級IDの情報を、ユーザ管理データベース304より読み出す。
S1302で、CPU301は、ゲームシステムに登録されているユーザであって、操作ユーザに付与されている階級と同一の階級が付与されたユーザを、最後にログイン要求を受け付けた日時が新しい順にソートしたリストを作成する。具体的にはCPU301は、まずフリーバトルに参加可能なユーザのユーザID(参加ユーザID)を取得するために、ユーザ管理データベース304に記憶されている各ユーザのユーザIDについて、当該ユーザIDに関連付けて迎撃戦用のデッキが登録されているユーザのユーザIDの情報を取得する。なお、CPU301は取得したフリーバトルの参加ユーザIDの情報をRAM303に記憶する。
そしてCPU301は、フリーバトルの参加ユーザIDの各々について、関連付けられている階級IDの情報をユーザ管理データベース304より読み出し、当該階級IDがS1301で取得した操作ユーザに付与されている階級IDと同一であるか否かを判断する。CPU301は、階級IDの情報が同一であると判断した場合は、参加ユーザIDと、当該参加ユーザIDに関連付けられている最終ログイン日時の情報とをユーザ管理データベース304より取得し、RAM303の同一階級リストに順次追加する。そして、全ての参加ユーザIDについて階級IDが同一であるか否かの判断が完了すると、CPU301は最終ログイン日時の情報を参照することで、RAM303に記憶されている同一階級リストをログイン日時の情報が降順となるようにソートする。
S1303で、CPU301は、フリーバトルに参加可能なユーザであって、操作ユーザに付与されている階級より1つ上位の階級が付与されたユーザを、最後にログイン要求を受け付けた日時が新しい順にソートしたリストを作成する。具体的にはCPU301は、フリーバトルの参加ユーザIDをRAM303より取得する。なお、本ステップで取得するフリーバトルの参加ユーザIDからは、S1302で同一階級リストに追加されたユーザIDは除外して取得してもよい。またCPU301は、フリーバトルの参加ユーザIDの各々について、関連付けられている階級IDの情報をユーザ管理データベース304より読み出し、当該階級IDが操作ユーザに付与されている階級より1つ上位の階級の階級IDと同一であるか否かを判断する。CPU301は、階級IDの情報が同一であると判断した場合は、参加ユーザIDと、当該参加ユーザIDに関連付けられている最終ログイン日時の情報とをユーザ管理データベース304より取得し、RAM303の上位階級リストに順次追加する。そして、全ての参加ユーザIDについて階級IDが、操作ユーザに付与されている階級より1つ上位の階級の階級IDが付与されているか否かの判断が完了すると、CPU301は最終ログイン日時の情報を参照することで、RAM303に記憶されている上位階級リストをログイン日時が降順となるようにソートする。
なお、操作ユーザに付与されている階級がC1であり、1つ上位の階級が存在しない場合は、本ステップの処理は実行しなくてよい。また、本実施形態では操作ユーザに付与されている階級より1つ上位の階級が付与された、フリーバトルに参加可能なユーザの上位階級リストを作るものとして説明するが、上位階級リストは操作ユーザよりも上位の階級が付与された、フリーバトルに参加可能なユーザのユーザIDで構成されてもよい。
S1304で、CPU301は、フリーバトルに参加可能なユーザであって、操作ユーザに付与されている階級より1つ下位の階級が付与されたユーザを、最後にログイン要求を受け付けた日時が新しい順にソートしたリストを作成する。具体的にはCPU301は、フリーバトルの参加ユーザIDをRAM303より取得する。なお、本ステップで取得するフリーバトルの参加ユーザIDからは、S1302で同一階級リストに追加されたユーザID、及びS1303で上位階級リストに追加されたユーザIDは除外して取得してもよい。またCPU301は、フリーバトルの参加ユーザIDの各々について、関連付けられている階級IDの情報をユーザ管理データベース304より読み出し、当該階級IDが操作ユーザに付与されている階級より1つ下位の階級の階級IDと同一であるか否かを判断する。CPU301は、階級IDの情報が同一であると判断した場合は、参加ユーザIDと、当該参加ユーザIDに関連付けられている最終ログイン日時の情報とををユーザ管理データベース304より取得し、RAM303の下位階級リストに順次追加する。そして、全ての参加ユーザIDについて階級IDが、操作ユーザに付与されている階級より1つ下位の階級の階級IDが付与されているか否かの判断が完了すると、CPU301は最終ログイン日時の情報を参照することで、RAM303に記憶されている下位階級リストをログイン日時が降順となるようにソートする。
なお、操作ユーザに付与されている階級がC5であり、1つ下位の階級が存在しない場合は、本ステップの処理は実行しなくてよい。また、本実施形態では操作ユーザに付与されている階級より1つ下位の階級が付与された、フリーバトルに参加可能なユーザの下位階級リストを作るものとして説明するが、下位階級リストは操作ユーザよりも下位の階級が付与された、フリーバトルに参加可能なユーザのユーザIDで構成されてもよい。
S1305で、CPU301は、RAM303より更新前のフリーバトルリストで先頭のページに含められていたユーザのユーザIDの情報を取得する。本実施形態のオンライン対戦カードゲームでは、CPU301は、フリーバトルリストの先頭のページに含められるユーザIDの情報を、更新の度にRAM303に記憶するものとする。本実施形態では、フリーバトルリストの1ページには図4に示すように6人のユーザの情報が含められる。
S1306で、CPU301は、S1302乃至S1304でRAM303に作成した、同一階級リスト、上位階級リスト、及び下位階級リストを用いて、まずフリーバトルリストの先頭の1ページに表示するユーザを決定する。具体的にはCPU301は、まずフリーバトルリストに対応する、空のフリーバトルテーブルをRAM303に作成する。そして、当該テーブルに対して同一階級リスト、上位階級リスト、及び下位階級リストからソート順にユーザIDを選択して追加する。なお、このとき更新前のフリーバトルリストで先頭のページに含められていたユーザは、再び先頭ページに表示されないように、CPU301は当該ユーザのユーザIDは先頭ページへの追加対象から除外するものとする。
例えば、上述したようにフリーバトルリストに先頭ページに含められるユーザが6人である場合、CPU301は同一階級リストからソート順、即ちログイン日時の降順でユーザIDを選択してフリーバトルリストに追加する。なお、本実施形態では操作ユーザは、操作ユーザに付与されている階級と同一の階級が付されたユーザと円滑に対戦を開始できるように、フリーバトルリストの先頭ページには基本的には当該同一の階級が付されたユーザが表示されるものとする。しかしながら、例えば操作ユーザが新たに作成したデッキを試したい場合、あるいは対戦の練習を行いたい場合は、操作ユーザより上位あるいは下位のユーザとの対戦を所望することがある。このため、本実施形態のオンライン対戦カードゲームでは、フリーバトルリストの先頭ページには、操作ユーザよりも上位あるいは下位の階級が付与されたユーザが少なくとも1人ずつ含まれるものとする。
つまりCPU301は、フリーバトルテーブルの先頭ページ、即ち当該テーブルの上位6名分のフィールドに対して、同一階級リストに含まれる4人のユーザのユーザID、上位階級リスト及び下位階級リストのそれぞれから1人のユーザのユーザIDを追加する。このときCPU301は、追加されているユーザIDがログイン日時の降順にソートされた、同一階級リスト、上位階級リスト、及び下位階級リストのそれぞれから、所定の数のユーザのユーザIDを取得してフリーバトルテーブルに追加する。なお、CPU301は、フリーバトルテーブルに追加したユーザIDについては、同一階級リスト、上位階級リスト、及び下位階級リストのそれぞれから削除してよい。
S1307で、CPU301は、同一階級リスト、上位階級リスト、及び下位階級リストのそれぞれに含まれる残りのユーザIDを、フリーバトルテーブルに追加する。このときCPU301は、例えば各ユーザIDに関連付けられた最終ログイン日時の情報を参照して、ログイン日時の新しい順にユーザIDをフリーバトルテーブルに追加してもよい。また、先頭ページ以外のページには、操作ユーザと同一の階級が付与されたユーザIDのみ、あるいは当該同一の階級が付与されたユーザIDが優先的にフリーバトルテーブルに追加されてもよい。
なお、S1306において、同一階級リスト、上位階級リスト、あるいは下位階級リストに含まれるユーザIDの数が、フリーバトルテーブルの先頭ページ分のフィールドに追加する、対応する階級のユーザ数に満たないことがある。この場合、CPU301はS1307においてフリーバトルテーブルの先頭ページ分のフィールドに、残りのユーザIDを追加すればよい。
また、S1307でフリーバトルテーブルに追加するユーザIDは、同一階級リスト、上位階級リスト、及び下位階級リストに含まれるユーザIDであるものとして説明したが、フリーバトルに参加可能な全てのユーザのユーザID、即ち全階級が付与されたユーザのユーザIDであってもよい。
このようにすることで、操作ユーザがフリーバトルを行う際に、最終ログイン日時が現在時刻に近いユーザがフリーバトルリストに表示される。最終ログイン日時が現在時刻に近いユーザは、例えば新たなリアルカードが導入された際に、当該新たなリアルカードを登録することにより得られた所有カードを含んだデッキを使用している可能性が高い。即ち、最終ログイン日時が現在時刻に近いユーザを、フリーバトルリストの先頭ページに表示することで、ユーザは新たなカードを使用するユーザと対戦を行うことができる。
以上説明したように、本実施形態のゲームシステムは複数のゲームモード毎にデッキを作成する、あるいはネットワーク対戦を円滑に開始することができる。具体的にはゲームシステムは、登録要求を受信し、登録要求を行なったユーザに固有のユーザIDを関連付けてユーザ管理データベースに登録する。またゲームシステムは、登録されているユーザの各々について、当該ユーザのユーザIDに関連付けられている複数のカードのうち、1枚以上のカードのカードIDをデッキテーブルに追加し、複数のゲーム形式のいずれかのゲームIDに関連付けて、異なるデッキIDを有するデッキを作成する。ゲームシステムは、ゲーム形式の選択要求をユーザ端末より受け付けた場合に、当該ゲーム形式のゲームIDに関連付けられたデッキテーブルを表示する。
このようにすることで、ユーザにより複数のゲーム形式のうちのいずれかが選択された場合に、当該ゲーム型式で使用するデッキとして作成したデッキの一覧を、ユーザに対して提示することができる。このため、ユーザは1つのゲーム形式でゲームを行う際に、他のゲーム形式用に作成したデッキを誤って選択することなくゲームを行うことができる。