<本発明の実施の形態>
[全体構成]
図1は本実施形態におけるゲームシステムの全体構成例を示す図である。図1に示すように、ゲームシステムは、ゲームのプレーヤA,B毎に用意されるプレーヤ端末1と、ゲームサーバ2とを備えて構成される。プレーヤ端末1とゲームサーバ2とは、通信回線Nに接続可能で、相互に通信可能である。
通信回線Nは、データ通信が可能な通信路を意味する。すなわち、通信回線Nは、直接接続のための専用線(専用ケーブル)やイーサネット(登録商標)等によるLANの他、電話通信網やケーブル網、インターネット等の通信網を含み、通信方法については有線/無線を問わない。
プレーヤ端末1は、ゲームプログラムを実行することのできるコンピュータであり、無線通信基地局等を介して通信回線Nに接続し、ゲームサーバ2とデータ通信を行うことができる。プレーヤ端末1は、例えば、スマートフォンや、携帯電話機、携帯型ゲーム装置、据置型家庭用ゲーム装置、業務用ゲーム装置、パソコン、タブレット型コンピュータ、据置型家庭用ゲーム装置のコントローラ等である。プレーヤ端末1は、基本的には、複数存在し、各プレーヤにより操作される。
ゲームサーバ2は、単数又は複数のサーバ装置や記憶装置等を含んで構成されたサーバシステムである。ゲームサーバ2は、本実施形態のゲームを運営するための各種サービスを提供し、ゲームの運営に必要なデータの管理や、プレーヤ端末1でのゲームの実行に必要なゲームプログラムやデータの配信等を行うことができる。
図2はプレーヤ端末1の一例であるスマートフォンの装置構成例を示す図である。図2に示すように、プレーヤ端末1は、ディスプレイ11と、ディスプレイ11と一体構成されるタッチ操作パネル12と、スピーカ13とを備える。また、プレーヤ端末1には、図示されていない制御基板、内蔵バッテリー、電源ボタン、音量調節ボタン等が設けられている。
制御基板には、CPUやGPU、DSP等の各種マイクロプロセッサ、ASIC、VRAMやRAM、ROM等の各種ICメモリ、携帯電話基地局と無線通信するための無線通信モジュール等が搭載されている。また、制御基板には、タッチ操作パネル12のドライバ回路といった、いわゆるI/F回路(インターフェース回路)等が搭載されている。これら制御基板に搭載されている各要素は、それぞれがバス回路等を介して電気的に接続され、データの読み書きや信号の送受信が可能に接続されている。
本実施の形態では、上述のようなゲームシステムを、第1プレーヤAが保有するゲーム要素と、対戦相手となる第2プレーヤBが保有するゲーム要素とを使用した対戦ゲームに適用した例を説明する。対戦ゲームで使用されるゲーム要素は、主に、ふたつのゲーム要素がある。
第1ゲーム要素はキャラクタであり、画像、仮想的又は実体のある物品等に化体して表現される。画像は、静止画及び動画を含む。仮想的又は実体のある物品の一例としては、例えば、コンピュータに表示される仮想的なカードや、実体のあるカード等である。尚、物品は、カードに限られることなく、物品に対応付けられたゲーム要素を特定可能に構成された物品であれば、カードに限られるものではない。物品は、例えばゲーム要素の外観を有するフィギュア等の造形物であってもよい。
以下の説明では、実行するゲームにおいて、第1ゲーム要素は、プレーヤ(コンピュータに操作されるノンプレーヤも含む)のカードの操作に基づいて行動制御がなされるキャラクタであるものとし、カードには対応するキャラクタの図柄(該キャラクタの外観を示した画像)が付されるものとして説明する。更に、これに限られるものではなく、キャラクタは、実行されるゲームのアイテムや発動する効果等、その他のゲーム要素を特定するものであってもよいことは言うまでもない。
デッキは、所定数の第1ゲーム要素から構成される。所定数の第1ゲーム要素がプレーヤのデッキとして設定される。例えば、第1ゲーム要素がコンピュータに表示される仮想的なカードである場合、デッキはプレーヤにより選択された所定枚数のカードから構成されたカード群である。プレーヤは、設定したデッキのうち、希望するデッキを選択し、そのデッキを構成するカードを使用してゲームを行う。
更に、本実施の形態が適用される対戦ゲームでは、第1ゲーム要素とは異なる第2ゲーム要素が加わる。
第2ゲーム要素は、第1ゲーム要素と同様にキャラクタではあるが、かならずしも仮想的又は実体のある物品と対応付けられる必要はない。そして、第2ゲーム要素は、第1ゲーム要素とは異なり、ゲーム内の対戦においてプレーヤ(コンピュータに操作されるノンプレーヤも含む)の操作対象とされるものではなく、少なくともプレーヤが操作可能なフェーズにおいてゲームの進行に係る情報である操作補助情報をプレーヤに提供するという性質を備える。
別の言い方をすると、第2ゲーム要素は、プレーヤ(コンピュータに操作されるノンプレーヤも含む)の操作に基づいて行動制御がなされる第1ゲーム要素とは異なり、ゲーム内において自律的又は自発的に、操作補助情報を提供するものともいえる。
操作補助情報は、ゲームの進行に係る情報であれば、種類は問わないが、例えば、操作方法の情報、第1ゲーム要素の選択又は行動に対する情報(カードの選択、攻撃対象とすべき対戦相手のカード等のアドバイス情報)、ゲームの進行を有利にする情報(ゲームの対戦結果を有利にするカードの種類の提示等のアドバイス情報)等である。
更に、第2ゲーム要素は、プレーヤが保有する第1ゲーム要素をゲーム内において使用する。第1ゲーム要素を使用するとは、ゲーム内において第1ゲーム要素の選択又は行動を決定することを含む。第1ゲーム要素が例えばカードであるとすると、第2ゲーム要素は、ゲーム内の対戦において、プレーヤが保有するカードの選択又は行動を自律的又は自発的に決定する。別の言い方をするならば、コンピュータに操作されるノンプレーヤの機能のように、プレーヤによって行われる第1ゲーム要素の選択又は行動等の決定と同様な動作を行うということである。但し、従来からあるノンプレーヤは、人間のプレーヤの代わりにコンピュータに操作されるものであるが、第2ゲーム要素は人間のプレーヤと別個独立に存在し、プレーヤが保有する第1ゲーム要素を使用する点で異なる。
また、第2ゲーム要素は、キャラクタ情報を持つ。このキャラクタ情報は、第2ゲーム要素の属性情報である。キャラクタ情報は、第2ゲーム要素の自律的又は自発的な行動(第1ゲーム要素の使用)に影響を与える。別の言い方をするならば、キャラクタ情報は第2ゲーム要素の能力であり、この能力の相違によって第2ゲーム要素の自律的又は自発的な行動(操作補助情報の提供、第1ゲーム要素の使用)が異なるということである。そして、このキャラクタ情報は、取得した第2ゲーム要素により異なる。キャラクタ情報は、プレーヤのゲームの進行に応じて変化する。キャラクタ情報は、複数のパラメータを持つことが可能である。例えば、本実施の形態では、キャラクタ情報は、プレーヤのゲームの結果により得られる経験値により変化するパラメータ(以下、レベルと記載する)と、プレーヤが使用する第1ゲーム要素の使用頻度によって変化するパラメータ(以下、カード理解度と記載する)と、プレーヤが使用する第1ゲーム要素の種類の使用割合によって変化するパラメータ(以下、パーソナリティと記載する)と、プレーヤが所定のイベントを達成することによって変化するパラメータ(以下、シンクロレベルと記載する)とを含む。更に、後述するように、第2ゲーム要素が対戦を行った場合等、第2ゲーム要素自身のゲームの進行に応じて得られた経験値などによっても変化可能である。
第2ゲーム要素は複数あっても良く、各第2ゲーム要素は初期の段階において異なるキャラクタ情報を持つようにしても良い。そして、プレーヤは、キャラクタ情報が異なる複数の第2ゲーム要素から、希望する第2ゲーム要素を選択するようにしても良い。
第2ゲーム要素の自律的又は自発的な行動は、ゲームサーバ2が備えるAI機能によって行われる。このAI機能は、多くの対戦ゲームのゲーム進行の内容とその結果等を教師データとし、機械学習して得られた学習モデルによって可能である。機械学習の方法は、深層学習(ディープラーニング)、強化学習、又は、それらの組み合わせが代表的なものであるが、これに限られない。尚、学習モデルは、第2ゲーム要素のキャラクタ情報に応じて異なる行動を出力することが可能である。これを実現する方法としては、例えば、第2ゲーム要素のキャラクタ情報が高い程、最適解を探索する時間を多くするなどし、第2ゲーム要素のキャラクタ情報が高い程、ある状況に対処するより最適な解が得られる学習モデル等がある。
上述した第2ゲーム要素を、以下の説明ではバディと記載する場合がある。
第1ゲーム要素及び第2ゲーム要素は、主に対戦に使用されるゲーム要素である。本実施の形態では、第1ゲーム要素及び第2ゲーム要素に加えて、第1ゲーム要素又は第2ゲーム要素に交換可能なゲーム要素、第1ゲーム要素及び第2ゲーム要素に効果を与えるゲーム要素、第1ゲーム要素及び第2ゲーム要素の外観を変更するゲーム要素等がある。このような基本的に対戦に使用されないゲーム要素をアイテムと記載する。アイテムは、ゲーム運営側が主に提供する。アイテムは、例えば、第1ゲーム要素又は第2ゲーム要素を取得するためのゲーム内通貨や、第1ゲーム要素又は第2ゲーム要素に交換可能なチケット、第1ゲーム要素又は第2ゲーム要素の外観(表現形態)を変更可能にするチケット等である。また、アイテムは第1ゲーム要素又は第2ゲーム要素自体であることも妨げない。
[ゲーム内容の概略]
次に、実施の形態の説明の理解を助けるために、プレーヤ端末1のディスプレイ11の表示画面を用いて、ゲームの概要を説明する。
本実施形態のゲームでは、プレーヤは、ゲームオブジェクトである仮想的なゲームカード(キャラクタが化体した第1ゲーム要素、以下、単に「カード」という。)をゲーム内で用いる。カードは複数種類用意され、各々に関連付けられたキャラクタの能力、レアリティ、属性(色)、数字等の組合せによって区別される。キャラクタの能力は、例えば、コンピュータ制御の敵キャラクタや他プレーヤ等の対戦相手との対戦プレイ(バトル)に用いるレベルや攻撃力、HPといった能力パラメータ値が定められている。
カードは、アカウント登録時において対戦プレイ(バトル)に最低限必要な枚数が付与される他、ゲーム中に取得したり、課金アイテムとして購入によって取得したり、ガチャと呼ばれる抽選によって取得することができる。加えて、カードは、実体のあるゲームカード(以下、「リアルカード」という。)を入手し、入手したリアルカードをゲーム内で使用可能とするための登録手続きをすることによっても獲得できる。具体的には、プレーヤA,Bは、リアルカードの登録手続きを行うと、そのリアルカードと対応付けられたカード種類のカードを取得することができる。
そして、プレーヤAは、保有しているカードのうちの所定枚数(例えば40枚)でデッキを編成し、デッキを用いた対戦プレイ(バトル)に挑む。デッキを用いた対戦プレイ(バトル)は、デッキを構成するカード(デッキカード)に定められているキャラクタの能力パラメータ値とカード属性の設定値を用いて、対戦相手との勝敗を決めるものである。
ゲームを開始する前に、プレーヤA,Bは、アカウント登録をする。このアカウント登録時において、プレーヤ端末1により提示された複数種類の第2ゲーム要素(以下、バディと記載する)から好みのバディを選択することにより、各プレーヤA,Bと共にグループを構成するバディがそれぞれ設定される。この選択したバディの能力や性格の相違により、後のゲームプレイスタイルが変化する可能性がある。そして、各プレーヤA,Bは、保有しているカードのうちの所定枚数(例えば40枚)でデッキを編成する。デッキの編成は、ホーム画面等からカードメニューをタッチ操作し、その1つとして提示されるデッキ編成メニューから行うことができる。対戦プレイ(バトル)は、ログイン後に表示されるホーム画面からバトルメニューを選択操作することで開始される。
図3はプレーヤ端末1のディスプレイ11に表示される対戦ゲームのバトル画面の一例を示した図である。ディスプレイ11に表示されるバトル画面は、自プレーヤの領域である第1プレーヤ領域40と、対戦する相手プレーヤの領域である第2プレーヤ領域41とを備えている。また、第1プレーヤ領域40と第2プレーヤ領域41との境界には、現在実行することが可能な操作の情報を表示する操作情報42が表示される。
まず、使用する自デッキを構成するカードがランダムに並び替えられて(シャッフル)、デッキの構成するカードの配列順番が決定される。
第1プレーヤ領域40、第2プレーヤ領域41の各領域は、手札領域43と、フィールド領域44と、ベース領域45と、ライフ領域46とを備える。手札領域43には、デッキより取得されたカード(手札)が配置される。尚、ゲーム当初においては、デッキより所定の枚数のカードを取得するが、取得したカードのうち、プレーヤに希望に沿わないカードはデッキに戻し、戻したカード数と同数のカードを再度取得することができる(以下、このような動作をマリガンと記載することがある)。
フィールド領域44には、手札領域43又ベース領域45からプレーヤにより選択されたカードが配置される。所定のコストを消費することにより、手札領域43のカードをフィールド領域44に配置することができる。フィールド領域44に配置されたカードは、カードの行動又は効果を発動することができる。ベース領域45は、フィールド領域44にカードを配置するためのコストとして消費されるカードやマナアイテムが配置される。ライフ領域46は、ライフ(HP)を持つプレーヤの領域であるプレーヤライフ領域47と、同様にライフを持つ第1オブジェクト(フォース)の領域であるフォースライフ領域48とを備える。プレーヤライフ領域47には、プレーヤに対応する第2オブジェクトと、プレーヤが持つライフの値とが表示される。フォースライフ領域48には、第1オブジェクトと、第1オブジェクトが持つライフの値とが表示される。第1オブジェクトは、ゲームにおいて特定の効果を発揮するものである。尚、本例では、第2オブジェクトとして、バディの画像が表示される。
バトルは、プレーヤAのターンと、対戦相手であるプレーヤBのターンとが交互に実行される。各ターンは、スタンバイフェーズ、マナフェーズ(カード使用準備フェーズ)、メインフェーズ(対戦フェーズ)等の複数のフェーズから構成される。
スタンバイフェーズは、デッキから1枚引いたカードを手札領域43に配置する等のステップから構成される。マナフェーズでは、プレーヤが自分のベース領域45にカード又はマナアイテムを配置することができる。
メインフェーズでは、プレーヤは、キャラクタの召喚、相手への攻撃(アタック)、カード効果の発動、カードの移動等を実行することができる。キャラクタの召喚とはコストの消費を条件としてカードをフィールド領域44に配置することである。
相手への攻撃(アタック)は、アタック指定ステップ、フラッシュタイミングステップ、ブロック指定ステップ、バトル解決ステップ等の複数のステップから構成される。アタック指定ステップは、自プレーヤが攻撃対象を相手のプレーヤとフォースから選択するステップである。フラッシュタイミングステップは、特殊効果を有する特定のカードを自プレーヤと相手プレーヤが互いに使用できるステップである。ブロック指定ステップは、相手プレーヤが、第2プレーヤ領域41のフィールド領域44に配置されているカードを用いて、自プレーヤからの攻撃をブロックするか否かを選択することができるステップである。バトル解決ステップは、アタックの結果を判定し、判定結果に基づいて、アタック側のカードやブロック側のカードを消滅させる、相手のプレーヤ又はフォースのライフを減らす等の解決処理を行うステップである。
カード効果の発動は、手札領域43に配置されている、特殊効果を有する特定のカード(例えば、マジックカード)について、その効果を、コストの消費を条件として発動するものである。また、カードの移動は、フィールド領域44とベース領域45との間でカードを移動させるものである。なお、プレーヤは、キャラクタの召喚、相手への攻撃(アタック)、カード効果の発動、カードの移動等のいずれも行わずに対戦フェーズを終了してもよい。
このような一連のフェーズからなるターンを、プレーヤAのチームと対戦相手のプレーヤBのチームとが交互に繰り返し、いずれかのプレーヤのライフが0になる、又は、デッキのカードが0枚になることにより、勝敗が決定する。その対戦結果によって、プレーヤのランク、バディの経験値及びバディのキャラクタ情報(変化能力情報)が変化する。
上述の例は、プレーヤAとプレーヤBとが対戦する通常の対戦プレイであり、バディは対戦中において、各プレーヤA,Bのバディは、プレーヤA,Bに対してアドバイスを提供する。
また、第2のゲーム要素(バディ)が自律的又は自発的な行動(カードの使用)を実行できることを利用して、チーム戦も可能である。例えば、プレーヤAとプレーヤAのバディとがひとつのチームを編成し、プレーヤBとプレーヤBのバディとがひとつのチームを編成する。そして、プレーヤAとプレーヤBのバディとが対戦して勝敗を決する第1戦と、プレーヤBとプレーヤAのバディとが対戦して勝敗を決する第2戦とからひとつのチーム対戦を構成する態様である。尚、このようなチーム戦において、各プレーヤとプレーヤのバディとが使用するデッキは、プレーヤが保有するデッキから設定する。設定するデッキは、プレーヤとプレーヤのバディとで同一であっても良いし、プレーヤとプレーヤのバディとで異なるデッキを使用しても良い。
また、第2のゲーム要素(バディ)が自律的又は自発的な行動(カードの使用)を実行できることを利用して、運営側が用意する第2ゲーム要素(ノンプレーヤ)とプレーヤとが対戦することも可能である。
このような対戦において、上述したマリガンのような、デッキより所定の枚数のカードを取得した後、取得したカードのうちプレーヤに希望に沿わないカードをデッキに戻す動作を行う場合、デッキのカードの配列の順番が問題となる。何故なら、デッキ型の対戦ゲームでは、ランダムに並べられたカードの順番によって、ゲームの展開が大きく変わる。ゲームの途中でシャッフルが無いゲームであれば、最初にシャッフルする際に、一つの疑似乱数を用いてシャッフルすることで、同じ状態を容易に再現できるが、ゲーム中、特に、一度シャッフルを行ってデッキを構成するカードの配列が決定した後に、最初の手札のうちからプレーヤが任意の枚数のカードの引き直しを行い、元のカードをデッキのランダムの位置に戻すと言うルール(マリガン)がある場合、単純にシャッフルすると、その時点でデッキの状態が大きく変わってしまう。
図4は単純にシャッフルする場合のデッキのカードの配列順番を説明するための図である。図4の例では、デッキは8枚のカードから構成され、配列順番は、上からカード1、カード2、~カード8の順番である。この配列順番において、プレーヤが上から3枚のカード(カード1、カード2及びカード3)を引き、カード2及びカード3をカード4及びカード5と交換(引き直し)する場合を考える。デッキに残ったカードは、カード6、カード7及びカード8であり、デッキに戻されるカードはカード2及びカード3である。疑似乱数を用いて、カード2、カード3、カード6、カード7及びカード8の乱数値を求め、この乱数値でソートすると、図4の例のように、デッキのカードの配列順序がカード7、カード2、カード6、カード8及びカード9となり、元のデッキに残っていたカード6、カード7及びカード8の配列順序が狂ってしまう。このような状態が起きると、デッキ(山札)の上から(配列番号が小さい)順にカードを取っていくゲームでは、その後のゲームの展開を大きく変えてしまう。
そこで、本発明の実施の形態は、ゲーム開始当初にランダムにカードが配列されたデッキ(ゲーム要素群)のうちプレーヤに公開され、かつ、デッキに戻すカードと、プレーヤに公開されずにデッキに残ったカードとを合体させて新たなデッキを作る際、プレーヤに公開されずにデッキに残ったカードの配列順序を維持しつつ、新たなデッキのカードの配列順番を決定する。
図5、図6は本発明の実施の形態の概要を説明するための図である。図5、図6の例では、図4と同様に、デッキは8枚のカードから構成され、配列順番は、上からカード1、カード2、~カード8の順番である。この配列順序において、プレーヤが上から3枚のカード(カード1、カード2及びカード3)を引き、カード2及びカード3をカード4及びカード5と交換(引き直し)する場合を考える。デッキに残ったカードはカード6、カード7及びカード8であり、デッキに戻されるカードはカード2及びカード3である。
最初にデッキ内にランダムで配置されたカードのうち、プレーヤ(自プレーヤ又は対戦プレーヤを含む)に公開されていないカードはシャッフルの際にその位置に居続けても、ランダム性が損なわれないと見なす事ができる。ここで、プレーヤに公開されていないカードはデッキに残ったカード6、カード7及びカード8はである。
一方、一度でもプレーヤに公開されて、特定の位置に戻されるカードは、シャッフルの際に、ランダムな位置にセットしないと、シャッフルを行ったことにはならい。ここで、プレーヤに公開されたカードは、カード2及びカード3はである。
そこで、本実施の形態は、デッキに残った、プレーヤに公開されていないカード6、カード7及びカード8の配列順序を維持するため、カード6、カード7及びカード8の配列の間に、デッキに戻されるカードであるカード2及びカード3(プレーヤに公開されたカード)をランダムに配置する。ここで、注意すべきは、かならずしもカード間である必要はない。カード6の上、カード8の下に、カード2又はカード3が配置されても良い。また、挿入されるカードは、かならずしもカード間に1枚である必要はない。重要なのは、プレーヤに公開されていないカードの配列順番は維持し、プレーヤに公開されたカードはカード毎にランダムに挿入される配列位置を決定することである。
本例では、カード6とカード7との間にカード2を配置し、カード8の下にカード3を配置している。その結果、デッキの新しいカードの配列順番は、カード6、カード7、カード2、カード8、カード3の順番となる。この配列順番は、シャフル前のカード6、カード7、カード8という配列順序を保っている。
本実施の形態は、上述のような配列制御を行うことにより、マリガンのような、デッキより所定の枚数のカードを取得した後、取得したカードのうちプレーヤに希望に沿わないカードをデッキに戻して交換する動作を行う場合、その動作の前後で、デッキのカードの配列順序が大きく変わってしまうことを防止することができる。
[機能構成及び動作]
図7はプレーヤ端末1の機能構成例を示すブロック図である。
図7に示すように、プレーヤ端末1は、操作入力部51と、処理部52と、画像表示部53と、音出力部54と、通信部55と、記憶部56とを備える。
操作入力部51は、プレーヤがゲームに関する各種操作を入力するためのものであり、操作入力に応じた操作入力信号を処理部52に出力する。操作入力部51の機能は、例えば、タッチ操作パッド、ホームボタン、ボタンスイッチや、ジョイスティック、トラックボールといった直接プレーヤAが指で操作する素子はもちろん、加速度センサや角速度センサ、傾斜センサ、地磁気センサといった、運動や姿勢を検知する素子等によっても実現できる。図2では、タッチ操作パネル12がこれに該当する。
処理部52は、記憶部56に格納されるプログラムやデータ、操作入力部51からの操作入力信号等に基づいてプレーヤ端末1の動作を統括的に制御する。処理部52の機能は、例えば、CPUやGPU等のマイクロプロセッサ、ASIC、ICメモリ等の電子部品によって実現できる。この処理部52は、主な機能部として、ゲーム演算部61と、画像生成部62と、音生成部63と、通信制御部64とを備える。
ゲーム演算部61は、本実施形態のゲームを実現するための種々のゲーム処理を実行し、処理結果を画像生成部62や音生成部63に出力する。ゲーム演算部61は、プレーヤ情報管理部70と、カードアイテム管理部71と、デッキ設定部72と、バディ設定部73と、対戦実行部74と、ゲーム管理部75とを含む。
プレーヤ情報管理部70は、ユーザ情報データD1を用いて、プレーヤの情報を管理する。管理する情報は、プレーヤのニックネーム(プレーヤ名)や、ゲーム内ユーザ識別情報(ユーザID)等の基本的なユーザ情報、バディの識別情報、プレーヤランク及びバディレベル等を管理する。図8はユーザ情報データD1の一例を示す図である。
カードアイテム管理部71は、記憶部56に格納されている保有カードアイテムデータD2と、カードキャラクタデータD3を用いて、プレーヤの保有及び使用の有無を含む、ゲームシステムが提供可能なカードの管理を行う。
保有カードアイテムデータD2は、ゲームシステムが提供可能なカードのカード識別情報と、そのカードをプレーヤが保有しているかの有無を示す保有フラグと、そのカードをプレーヤが使用可能かを示す使用許可フラグとが、関連付けられたデータ群と、ゲームシステムが提供可能なアイテムのアイテム識別情報と、そのアイテムのプレーヤの保有数とが、関連付けられたデータ群と、である。
図8は保有カードアイテムデータD2の一例を示した図である。図8では、カード識別情報のフィールドには、ゲームシステムが提供可能なカードのカード識別情報が記載されている。そして、そのカード識別情報のカードを、プレーヤが保有している場合には保有フラグのフィールドに“1”が設定され、プレーヤが保有していない場合には保有フラグのフィールドに“0”が設定されている。また、そのカード識別情報のカードを、プレーヤが使用可能な場合には使用可能フラグのフィールドに“1”が設定され、プレーヤが使用不可能な場合には使用許可フラグのフィールドに“0”が設定されている。また、アイテム識別情報のフィールドには、ゲームシステムが提供可能なアイテムのアイテム識別情報が記載されている。そして、そのアイテム識別情報のアイテムを、プレーヤが保有している場合には保有数のフィールドに“保有数”が設定されている。図8は保有カードアイテムデータD2の一例を示したものであり、これに限定されるものではない。尚、保有フラグのフィールドに“0”が設定されていても、使用可能フラグのフィールドに“1”が設定される場合がある。例えば、プレーヤが保有していないカードであっても、一時的に、プレーヤにそのカードを使用させる場合などである。
カードアイテムキャラクタデータD3は、カード又はアイテムの識別情報と、そのカード又はアイテムのキャラクタ情報とが関連付けられたデータである。図10はカードアイテムキャラクタデータD3の一例を示した図である。図10では、カード識別情報とキャラクタ情報(キャラクタの画像、カード名、カード種類、コスト数、属性、種族、能力、攻撃力、ヒットポイント及びレアリティ)とが関連付けられている。また、アイテム識別情報とキャラクタ情報(キャラクタの画像、アイテム名、効果)とが関連付けられている。尚、図10はカードアイテムキャラクタデータD3の一例を示したものであり、これに限定されるものではない。
カードアイテム管理部71は、ゲームサーバ2と通信を介して、新しく提供可能なカード、アイテムがある場合、そのカード又はアイテムの識別情報とその識別情報のカードアイテムキャラクタデータD3とを取得する。そして、カードアイテム管理部71は、取得したカード識別情報を保有カードアイテムデータD2に追記し、そのカード識別情報の保有フラグを“0”に、使用可能フラグのフィールドを“0”に設定する。また、取得したカードキャラクタデータD3を記憶部56に格納する。そして、プレーヤが新たにカードを取得・保有した場合、カード管理部71は、保有カードアイテムデータD3のカード識別情報の保有フラグを“1”に、使用可能フラグのフィールドを“1”に設定する。同様に、カードアイテム管理部71は、取得したアイテム識別情報を保有カードアイテムデータD2に追記し、そのアイテム識別情報の保有数を“0”に設定する。また、取得したカードアイテムキャラクタデータD3を記憶部56に格納する。そして、プレーヤが新たにアイテムを取得・保有した場合、カードアイテム管理部71は、保有カードアイテムデータD3のアイテム識別情報の保有数を、保有した数に設定する。
デッキ設定部72は、保有カードアイテムデータD2とカードアイテムキャラクタデータD3とを用いて、現在、デッキを構成するカードに使用可能なカード(原則保有カード)を提示し、ユーザの操作により、提示されたカードからデッキを構成するカードを選択し、デッキを設定(編集)する。設定されたデッキは、プレーヤが対戦で使用するだけでなく、プレーヤのバディも使用することができる。デッキ設定部72は、設定されたデッキの名称と、そのデッキの識別情報(デッキID)と、そのデッキを構成する各カードのカード識別情報とを関連付けたデッキ設定データD4を生成し、記憶部56に格納する。図11はデッキ設定データD4の一例を示す図である。図11の例では、プレーヤAのデッキ1のデッキ設定データD4の例であり、デッキID“D001”のデッキ1がカード識別情報”0001”、”0006”~カード識別情報”0450”のカードから構成されていることを示している例である。尚、図11はデッキ設定データD3の一例を示したものであり、これに限定されるものではない。
バディ設定部73は、プレーヤA,Bは、アカウント登録時において、複数のバディ(第2ゲーム要素)から、プレーヤにより選択されたバディに関する情報を、バディ設定データD4を用いて管理する。バディ設定データD4は、メニュー設定より選択されたバディのキャラクタ情報である。このバディのキャラクタ情報はゲームの進行に伴って変化するが、変化した場合には変化後のキャラクタ情報がゲームサーバ2から通知され、キャラクタ情報は更新される。図12はプレーヤAのバディ設定データD5の一例を示す図である。図12の例では、バディ設定データD5は、バディ識別情報、バディの画像、バディ名、レベル、キャラクタ情報を含んでいる。図12はバディ設定データD5の一例を示したものであり、これに限定されるものではない。アカウント登録時のバディ(第2ゲーム要素)のレベル及びキャラクタ情報は初期値(最も低い値)に設定される。また、バディが変更された場合は、前のバディのレベル及びキャラクタ情報は引き継がず、変更後のバディ(第2ゲーム要素)のレベル及びキャラクタ情報を初期値(最も低い値)に設定される。また、バディ設定部73は、対戦中又はその他のメニュー画面において、バディの画像情報を画像生成部62に出力する。
対戦実行部74は、設定されたデッキを使用して、プレーヤ同士の通常対戦や、プレーヤとノンプレーヤとの対戦を実行する。対戦実行部74は、対戦の開始にあたり、対戦に使用するデッキのデッキIDを送信する。
対戦実行部74は、デッキを構成するカードの配列順番を示すカード配列情報を、ゲームサーバ2から受信する。カード配列情報は、デッキを構成する各カードのカード識別情報とそのカードのカード配列順番とが関連付けられた情報である。そして、対戦実行部74は、デッキを構成するカード(カード識別情報)を、カード配列順番に従って、プレーヤに視認できないように配列する。対戦実行部74は、このような動作を、カード配列情報を受信する毎に行う。
対戦実行部74は、プレーヤの指示によって、デッキから順次カードを取って、カードのキャラクタが視認できるような状態で表示する。
対戦実行部74は、マリガン(デッキより所定の枚数のカードを取得した後、その一部を引き直す)時において、デッキのカード配列順番に従って、そのデッキから所定の枚数のカードを、プレーヤに提示する。そして、対戦実行部74は、プレーヤに選択され、引き直しの対象となるカードのカード識別情報を、ゲームサーバ2に送信する。また、引き直しの結果、新たに得られたカードを、プレーヤに提示する。
ゲーム管理部75は、ゲーム全体の進行を管理する。
画像生成部62は、ゲーム演算部61の処理結果に基づいて1フレーム時間(例えば1/60秒)で1枚のゲーム画面を生成し、生成したゲーム画面の画像信号を画像表示部103に出力する。画像生成部63の機能は、例えば、GPUやデジタルシグナルプロセッサ(DSP)等のプロセッサ、ビデオ信号IC、ビデオコーデック等のプログラム、フレームバッファ等の描画フレーム用ICメモリ、テクスチャデータの展開用に使用されるICメモリ等によって実現できる。
音生成部63は、ゲーム演算部61の処理結果に基づいてゲームに関する効果音やBGM、操作補助情報の音声情報、各種操作音等の音信号を生成し、音出力部54に出力する。音生成部64の機能は、例えば、デジタルシグナルプロセッサ(DSP)や音声合成IC等のプロセッサ、音声ファイルを再生可能なオーディオコーデック等によって実現できる。
通信制御部64は、ゲームサーバ2とのデータ通信のための通信接続及びデータ処理を行う。
画像表示部53は、画像生成部63から入力される画像信号に基づいて各種ゲーム画面を表示する。画像表示部53の機能は、例えば、フラットパネルディスプレイ、ブラウン管(CRT)、プロジェクター、ヘッドマウントディスプレイといった表示装置によって実現できる。図2では、画像表示部53は、ディスプレイ11に該当する。
音出力部54は、音生成部64から入力される音信号に基づいてゲームに関する効果音等を音出力するためのものである。図2では、音出力部54は、スピーカ13に該当する。
通信部55は、通信回線Nと接続して通信を実現する。通信部55の機能は、例えば、無線通信機、モデム、TA(ターミナルアダプタ)、有線用の通信ケーブルのジャックや制御回路等によって実現できる。
記憶部56には、プレーヤ端末1を動作させ、プレーヤ端末1が備える種々の機能を実現するためのプログラムや、このプログラムの実行中に使用されるデータ等が予め記憶され、或いは処理の都度一時的に記憶される。記憶部56は、例えばRAMやROM、フラッシュメモリ等のICメモリ、ハードディスク等の磁気ディスク、CD-ROMやDVD等の光学ディスク等によって実現できる。
記憶部56には、システムプログラムと、ゲームプログラムとが格納される。システムプログラムは、プレーヤ端末1のコンピュータとしての基本機能を実現するためのプログラムである。ゲームプログラムは、処理部52をゲーム演算部61として機能させるためのプログラムである。このプログラムは、プレーヤがアカウント登録を済ませるとゲームサーバ2又は他のアプリ配信サーバ等から配信される。
また、記憶部56には、ユーザ情報データD1、保有カードアイテムデータD2、カードアイテムキャラクタデータD3、デッキ設定データD4及びバディ設定データD5が格納される。尚、その他にも、カードのキャラクタ及びバディの画像を表示するためのモデルデータやテクスチャデータ、モーションデータ、エフェクトデータ、ゲーム画面の背景画像、効果音等の音データ等が適宜ゲームに必要なデータとして配信され、記憶部56に格納される。
次に、ゲームサーバ2の構成を説明する。図13はゲームサーバ2の機能構成例を示すブロック図である。
ゲームサーバ2は、処理部91と、通信部92と、記憶部93とを備える。
処理部91は、プレーヤ管理部101と、AI処理部102と、対戦実行部103と、配列制御部104と、ゲーム管理部105とを備える。
プレーヤ管理部101は、ユーザ情報データG1を用いて、アカウントやゲームの進行状況等を、プレーヤ端末1のプレーヤ毎に管理する。ユーザ情報データG1は、ゲームに参加しているプレーヤの基本データであり、プレーヤ毎のユーザ情報データG1を記録している。図12はユーザ情報データG1の一例を示した図である。図14の例では、プレーヤのユーザ識別情報D1と、保有カードアイテムデータD2と、デッキ設定データD4と、バディ設定データD5と、を含んでいる。尚、図14はユーザ情報データG1の一例を示したものであり、これに限定されるものではない。
AI処理部102は、多くの対戦ゲームのゲーム進行の内容とその結果等の教師データを機械学習して得られた学習モデルを有する。この学習モデルは、バディのキャラクタ情報(バディの能力)に応じて出力内容が異なる。このような学習モデルの例としては、バディのキャラクタ情報(バディの能力)が高い程、最適解を探索する時間を多くするなどし、バディのキャラクタ情報(バディの能力)が高い程、ある状況に対処するより最適な解が得られる学習モデルある。機械学習の方法は、深層学習(ディープラーニング)が代表的なものであるが、これに限られない。AI処理部102は、プレーヤ端末1から送信されるカード設定情報、プレーヤ端末1のプレーヤのバディのキャラクタ情報を入力し、そのカード設定情報の状況における操作補助情報(アドバイス情報)又はバディのカード操作情報を出力する。カード操作情報は、カードの移動、攻撃対象、防御方法などの情報である。尚、アルゴリズムは、バディのキャラクタ情報に応じてカード操作情報の内容が異なるので、プレーヤ端末1から送信されるカード設定情報が同一であっても、プレーヤのバディのキャラクタ情報が異なれば、異なる操作補助情報(アドバイス情報)又はカード操作情報を出力する可能性がある。
対戦実行部103は、プレーヤ対プレーヤの対戦を実行するばかりでなく、AI処理部102の出力を受けて、対戦中のバディの補助情報など提供及び挙動の情報を、プレーヤ端末1に出力する。
配列制御部104は、デッキを構成するカードの配列順序を制御するものであり、対戦開始時のマリガン、対戦時にデッキからカードを抜き取られることによるカードの配列順番の変更を管理する。これらの管理は、配列管理テーブルT1を用いて行われる。
配列制御部104は、対戦開始時に、プレーヤが使用するデッキのデッキIDを取得する。配列制御部104は、取得したデッキIDを用いて、ユーザ情報データG1から、デッキIDのデッキを構成するカードのカード識別情報を取得する。そして、配列制御部104は、所定の疑似乱数式を用いて、各カード識別情報の乱数値を算出する。そして、算出した乱数値をソート値として、カード識別情報を昇順にソートし、開戦当初のデッキの配列順番を決定する。使用する乱数式は、シードをセットする事が出来、同じシードでは次の値が同じになる事が保証されており、乱数を発生する毎にシード値の変更が可能な一般的な符号なし整数型の疑似乱数式を使用する。例えば、Nbitの疑似乱数Ran[0~(2^N-1)]である。尚、0~(2^N-1)は、発生する乱数値の取りうる範囲を示す。
図15は配列管理テーブルT1の一例を示した図である。配列管理テーブルT1は、デッキ中の配列順番と、デッキを構成するカードのカード識別情報と、疑似乱数式に用いられるシード値と、プレーヤに公開されたか否かを示す公開フラグと、配列順番を決定するに用いられるソート値とが関連付けられて記憶される。図15の例では、理解を容易にするため、対戦当初のデッキを構成するカードの枚数が8枚の例を示しており、デッキを構成するカードのカード識別情報が“001”から“008”である例を示している。そして、カード毎に、疑似乱数式Ran[0~7]を用いて発生した乱数値をソート値としている例を示している。その結果、デッキのカードの配列順番は、“001”から“008”の順である。尚、図15の各カードの疑似乱数に用いられシード値であるが、後述するマリガン時に使用するシード値が設定されている。このシード値は、カード毎に異なるように、疑似乱数式Ran[0~7]を用いて発生した各カードの乱数値に、各カードのカード識別情報の値を加えたものである。
次に、配列制御部104の動作を説明する。理解を容易にするために、図15の例を用いて説明する。尚、以下の説明では、プレーヤに公開する順序は、配列番号が小さい順とする。また、カードの交換によりデッキに戻すカードは、デッキ(山札)の一番下である配列番号の下位番号に戻されるものとする。
配列制御部104は、対戦当初にシャフルが行われた後の配列管理テーブルT1として、図15の状態で保持している。ここで、図16の(A)に示すように、プレーヤがデッキから3枚のカードをマリガンする場合を考える。すると、デッキの配列順番が一番小さい(デッキの一番上にある)カードから順番に3枚のカードを、プレーヤに対して公開する。すなわち、デッキの配列順番1、配列順番2、配列順番3のカード識別情報“001”,“002”,“003”が、プレーヤ端末1に送信される。そして、図16の(B)に示すように、デッキに残ったカードの配列順番は繰り上がる。このとき、配列管理テーブルT1の状態を示したのが図17(A)である。
図17の(A)は、図16の(B)の状態の配列管理テーブルT1を示したものであり、プレーヤに公開されたカード識別情報“001”,“002”,“003”の配列順番が“0”にリセットされ、公開フラグに“1”がセットされている。更に、デッキに残っている(プレーヤに公開されていない)カード識別情報“004”から“008”の配列順番が“1”から“5”に更新されている。
更に、図16の(C)のように、プレーヤに公開されたカード識別情報“001”,“002”,“003”のカードのうち、カード識別情報“002”のカードを手元に残し、カード識別情報“001”,“003”のカードをカード識別情報“004”,“005”に交換する場合を考える。図17の(B)は、図16の(C)の状態の配列管理テーブルT1を示したものであり、プレーヤに新たに公開されたカード識別情報“004”,“005”の配列順番が“0”にリセットされ、公開フラグに“1”がセットされている。更に、デッキに残っている(プレーヤに公開されていない)カード識別情報“006”から“008”の配列順番が“1”から“3”に更新されている。また、デッキに戻ったカード識別情報“001”,“003”の公開フラグに“1”がセットされている。尚、デッキに戻ったカード識別情報“001”,“003”のカードは、ゲームルール上、双方とも、デッキ(山札)の一番下に戻され、その後シャッフルされる。従って、この時点では配列順番を考慮しないので、マリガン終了後のデッキの総枚数である“5”を、カード識別情報“001”,“003”の配列番号として便宜的に設定する。
次に、デッキに残ったカードのシャフル(配列番号の再付与)の方法を説明する。
シャフル(配列番号の再付与)の対象となるカードは、配列番号が“0”以外のカードである。図17の(B)の配列管理テーブルT1によれば、対象となるカードは、カード識別情報“001”,“003”,“006”,“007”及び“008”のカードである。
しかし、配列制御部104は、カード識別情報“001”,“003”,“006”,“007”及び“008”のカードの全てについて乱数値を求めるのではなく、公開フララグの有無によって処理方法を変える。配列制御部104は、公開フララグの“1”であるカード識別情報“001”,“003”のカードについては、各カード識別情報のシード値をセットした乱数式Ran[0~4]から乱数値を求め、乱数値をソート値とする。ここでは、カード識別情報“001”の乱数値が“3”であり、カード識別情報“003”の乱数値が“1”であったものとする。すると、カード識別情報“001”のソート値は“3”となり、カード識別情報“003”のソート値は“1”となる。
一方、配列制御部104は、公開フララグの“0”であるカード識別情報“006”,“007”及び“008”のカードについては、乱数値を求めることなく、カード識別情報“006”,“007”及び“008”のその配列番号を反映したソート値を生成して付与する。ここでは、便宜的に、
(Y*10)/(X+)1): Yはカードの配列番号、Xはデッキに残るカード枚数
とする。
すると、カード識別情報“006”のソート値は10/6であり、カード識別情報“007”のソート値は20/6であり、カード識別情報“008”のソート値は30/6である。
この状態の配列管理テーブルT1の状態は、図18の(A)である。そして、配列制御部104は、各カード識別情報のソート値を用いてカードをソートし、カードの配列番号を決定する。この決定後の配列管理テーブルT1の状態は、図18の(B)である。
図18の(B)からわかるように、カード識別情報“006” ,“007”及び“008”の配列順序を維持しつつ、カード識別情報“001”,“003”,“006”,“007”及び“008”のカードの配列番号の再付与ができている。すなわち、順番の途中に他のカードが配列される場合があるが、カード識別情報“006”、カード識別情報“007”、カード識別情報“008”の順番は変わらない。
ここで、留意すべき点は、上述のように一度シャフルを行ったカードは、プレーヤに対して公開されていないものとみなすことができる。そこで、デッキに残っているカードの公開フラグを“0”にリセットする。また、一度乱数値を求めたカードのシード値は、そのままの値を維持すると、次の乱数の発生時にも同じ乱数値になってしまい、ランダム性を担保できない。そこで、新しいシード値を設定する。新しいシード値は、シャフル時に得られた乱数値とカード識別情報との和である。
このようにして、配列制御部104は、マリガンのようなデッキをシャフルする動作を行う。
上述した例では、カードの総枚数をデッキから抜かれるたびに減らす方法を取ったが、これに限られない。総枚数を、初期にデッキを構成する総枚数を継続して使用することも可能である。上記の例の場合では、プレーヤに公開されたカード識別情報“001”及び“003”のカードについては疑似乱数式をRan[0~7]を用い、プレーヤに公開されていないカード識別情報“006”,“007”及び“008”についてのソート値のXは8とし、Yは初期の配列順番(カード識別情報“006”=6、カード識別情報“007”=7、カード識別情報“008”=8)を用いる。
重要なことは、
(1)プレーヤに公開されたカードについては、カード毎にランダムに、デッキにおけるカードの配列位置を決定するような乱数値によりソート値を求める、
(2)プレーヤに公開されてないカードについては、カード毎にランダムに決定するのではなく、各カードがデッキ内における配列順序を保てるようなソート値を求める、
(3)(1)、(2)で求めたソート値で、カードの配列順番を決定する、
ことである。
更に、上述した例は、デッキを構成するカードが全て異なる(例えば、カード識別情報が異なる)場合を説明した。しかし、デッキを構成するカードには同一又は同種のカードが複数枚含まれる場合が多い。このような場合、同一又は同種のカードに対して異なる乱数値が出現するような乱数式やシード値を与えると、複数の同一又は同種のカードを取得してその一部をデッキに戻す場合など、戻す同一又は同種のカードによって、デッキの配置場所が異なってしまうという現象が起きる。例えば、プレーヤが2枚の同一カードを引き、その一枚をデッキに戻す場合、同じカードにもかかわらず、デッキに戻すカードによって、デッキに戻る位置が異なるという状態が起きる。このような状態は、プレーヤが行うプレイングの本質と違う所で、ゲームの結果が変わってしまう現象なので、好ましくない。
そこで、本実施の形態では、同一又は同種とみなさせるカードについては、シャッフル時に異なる乱数値とならないように、ひとつの乱数生成方法を共通して使用する。例えば、同一の乱数生成式及びシード値などである。
図19はデッキに同一のカードが複数含まれている場合の配列管理テーブルT1の一例を示した図である。図19の例では、デッキにカード識別番号“002”のカードが2枚含まれている場合の例である。図19に示されるように、配列番号2のカード識別番号“002”のカードと配列番号5のカード識別番号“002”のカードとは、同一のシード値b1がセットされており、同一の疑似乱数式Ran[0~7]を用いる。従って、配列番号2のカード識別番号“002”のカードと配列番号5のカード識別番号“002”のカードとのどちらのカードがデッキに戻されても、同じ乱数値になり、戻すカードによって配列番号が異なるという不都合は生じない。
ゲーム管理部105は、ゲーム全体を管理する。
通信部92は、通信回線Nと接続して通信を実現する。
記憶部93には、システムプログラムと、ゲームプログラムとが格納される。システムプログラムは、ゲームサーバ2のコンピュータとしての基本機能を実現するためのプログラムである。ゲームプログラムは、処理部91を、プレーヤ管理部101と、AI処理部102と、対戦実行部103と、配列制御部104と、ゲーム管理部105として機能させるためのプログラムである。
更に、記録部92は、ユーザ情報データG1と、カードデータとが格納されている。
カードデータは、本ゲームで使用されるカード全てのカードデータである。基本的に、上述したカードアイテムキャラクタデータD3と同様なデータを、ゲームで使用される全てのカード及びアイテムについて格納している。尚、カードデータには、本ゲームで使用されるバディの基本データ(バディ識別情報、キャラクタ画像、バディ名、レベルの初期値、カード理解度の初期値、パーソナリティの初期値及びシンクロレベルの初期値)を含んでも良い。
本実施の形態は、プレーヤに公開されていないカードの配列に、カード毎にランダムに公開されたカードを配置している。これにより、カードの配列を変更するための動作(シャッフル)を行う場合、プレーヤに公開されていないカードの配列順序を維持しつつ、カードを再配列することができる。この結果、デッキより所定の枚数のカードを取得した後、取得したカードのうちプレーヤに希望に沿わないカードをデッキに戻す動作を行って再度シャッフルを行う場合であっても、デッキのカードの配列順番が大きく変化し、デッキの状態が変わってしまうことを防ぐことができる。これにより、プレーヤはプレイングに専念することができるので、プレーヤのゲームに対する興趣性を高めることができる。
<本発明の実施の形態の変形例>
上述した本発明の実施の形態では、プレーヤ端末1とゲームサーバ2との間が通信可能であり、ゲームサーバ2が配列の制御を行い、その結果がプレーヤ端末1に表示される場合を説明した。
しかし、本発明はこのような態様に限られない。例えば、アーケードゲーム機や、通信を行わないでゲーム可能なアプリケーションがインストールされた端末等、単独でゲーム処理を行う装置についても適用可能である。
以上の実施の形態では、仮想的なゲームカードを用いたカードゲームを例示したが、適用可能なゲームのジャンルは限定されない。例えば、第1ゲーム要素に関連付けたキャラクタを選手とするスポーツの対戦ゲームとしてもよいし、第1ゲーム要素に関連付けたキャラクタの育成ゲーム等であってもよい。
また、上記の実施の形態の一部又は全部は、以下の付記のようにも記載されるが、以下には限られない。
[付記1]
ランダムに配列されたN(Nは自然数)個のゲーム要素から成るゲーム要素群のうちM(M<NかつMは自然数)個のゲーム要素がプレーヤに公開され、プレーヤに公開されたM(M<NかつMは自然数)個のゲーム要素のうちのP(P≦MかつPは自然数)個のゲーム要素と、前記プレーヤに公開されていない(N-M)個のゲーム要素とを合体させた新たなゲーム要素群のゲーム要素の配列順番を制御するコンピュータであって、
実行命令が格納されたメモリと、プロセッサとを備え、
前記プロセッサは、前記実行命令により、
前記プレーヤに公開されていない(N-M)個のゲーム要素の配列順序を維持しつつ、新たなゲーム要素群の(N-M+P)個のゲーム要素の配列順番を決定する配列制御処理
を実行するコンピュータ。
以上、好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも上記実施の形態に限定されるものではなく、その技術的思想の範囲内において様々に変形し実施することが出来る。