特許第6965314号(P6965314)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グリー株式会社の特許一覧

<>
  • 特許6965314-プログラム、情報処理装置及び制御方法 図000002
  • 特許6965314-プログラム、情報処理装置及び制御方法 図000003
  • 特許6965314-プログラム、情報処理装置及び制御方法 図000004
  • 特許6965314-プログラム、情報処理装置及び制御方法 図000005
  • 特許6965314-プログラム、情報処理装置及び制御方法 図000006
  • 特許6965314-プログラム、情報処理装置及び制御方法 図000007
  • 特許6965314-プログラム、情報処理装置及び制御方法 図000008
  • 特許6965314-プログラム、情報処理装置及び制御方法 図000009
  • 特許6965314-プログラム、情報処理装置及び制御方法 図000010
  • 特許6965314-プログラム、情報処理装置及び制御方法 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6965314
(24)【登録日】2021年10月22日
(45)【発行日】2021年11月10日
(54)【発明の名称】プログラム、情報処理装置及び制御方法
(51)【国際特許分類】
   A63F 13/67 20140101AFI20211028BHJP
   A63F 13/79 20140101ALI20211028BHJP
   A63F 13/58 20140101ALI20211028BHJP
【FI】
   A63F13/67
   A63F13/79
   A63F13/58
【請求項の数】6
【全頁数】15
(21)【出願番号】特願2019-148444(P2019-148444)
(22)【出願日】2019年8月13日
(65)【公開番号】特開2020-28709(P2020-28709A)
(43)【公開日】2020年2月27日
【審査請求日】2019年8月13日
(31)【優先権主張番号】特願2018-154672(P2018-154672)
(32)【優先日】2018年8月21日
(33)【優先権主張国】JP
【前置審査】
(73)【特許権者】
【識別番号】504437801
【氏名又は名称】グリー株式会社
(74)【代理人】
【識別番号】110002871
【氏名又は名称】特許業務法人坂本国際特許商標事務所
(72)【発明者】
【氏名】森田 想平
(72)【発明者】
【氏名】細谷 伊佐武
(72)【発明者】
【氏名】尾崎 嘉彦
【審査官】 岸 智史
(56)【参考文献】
【文献】 特開平08−030804(JP,A)
【文献】 特許第6345866(JP,B1)
【文献】 特開2013−084175(JP,A)
【文献】 特開2018−029860(JP,A)
【文献】 米田 聡,「[CEDEC 2017]ゲームの品質管理はAIに任せる時代!? スクウェア・エニックスが活用法を語る」,4Gamer.net [online],2017年09月02日,[2020年7月1日検索],https://www.4gamer.net/games/328/G032883/20170902004/
【文献】 眞鍋 和子,遺伝的アルゴリズムによる人工知能を用いたゲームバランス調整,スクウェア・エニックス テクノロジー推進部HP [online],2017年09月01日,[2020年12月18日検索],http://www.jp.square-enix.com/tech/library/pdf/cedec2017_manabe.pdf
【文献】 aueki,モリカトロン、ゲームAI勉強会を開催。AIでゲームはどう変わっていくのか?,GamesIndustry.biz Japan Edition [online],2018年01月05日,[2020年12月18日検索],https://jp.gamesindustry.biz/article/1712/17122001/
【文献】 強化学習をバランス調整に活用。『逆転オセロニア』が目指す、ゲーム開発の近未来,フルスイング [online],2018年01月09日,[2020年12月18日検索],https://fullswing.dena.com/archives/335
(58)【調査した分野】(Int.Cl.,DB名)
A63F 9/24、13/00−13/98
(57)【特許請求の範囲】
【請求項1】
情報処理装置に、
ゲーム内に登場させる新規の第1のゲーム媒体に、前記第1のゲーム媒体の強さに影響を与える特定パラメータを設定する設定処理を行う設定ステップと、
前記特定パラメータが設定された前記第1のゲーム媒体と前記ゲームをプレイしているユーザにより設定された既存の第2のゲーム媒体の情報を含むユーザデータとを用いて所定の対戦ゲームパートに係るシミュレーション処理を実行するシミュレーション実行ステップと、
を実行させ、
前記シミュレーション実行ステップでは、前記第1のゲーム媒体と前記第2のゲーム媒体とを用いた前記所定の対戦ゲームパートに係る前記シミュレーション処理を実行し、
前記シミュレーション処理では、前記第2のゲーム媒体の強さに影響を与えるパラメータは固定され、
前記シミュレーション処理の実行に基づき取得される評価情報と目標評価情報との差を最小化する最適化問題として、前記特定パラメータを調整しつつ前記設定処理及び前記シミュレーション処理を交互に繰り返し実行することにより前記特定パラメータの最適解を求めるプログラム。
【請求項2】
ゲーム内に登場させる新規の第1のゲーム媒体に、前記第1のゲーム媒体の強さに影響を与える特定パラメータを設定する設定処理を行う設定処理部と、
前記特定パラメータが設定された前記第1のゲーム媒体と前記ゲームをプレイしているユーザにより設定された既存の第2のゲーム媒体の情報を含むユーザデータとを用いて所定の対戦ゲームパートに係るシミュレーション処理を実行するシミュレーション実行部と
を備え、
前記シミュレーション実行部は、前記第1のゲーム媒体と前記第2のゲーム媒体とを用いた前記所定の対戦ゲームパートに係る前記シミュレーション処理を実行し、
前記シミュレーション処理では、前記第2のゲーム媒体の強さに影響を与えるパラメータは固定され、
前記シミュレーション処理の実行に基づき取得される評価情報と目標評価情報との差を最小化する最適化問題として、前記特定パラメータを調整しつつ前記設定処理及び前記シミュレーション処理を交互に繰り返し実行することにより前記特定パラメータの最適解を求める情報処理装置。
【請求項3】
情報処理装置により実行される制御方法であって、
ゲーム内に登場させる新規の第1のゲーム媒体に、前記第1のゲーム媒体の強さに影響を与える特定パラメータを設定する設定処理を行う設定ステップと、
前記特定パラメータが設定された前記第1のゲーム媒体と前記ゲームをプレイしているユーザにより設定された既存の第2のゲーム媒体の情報を含むユーザデータとを用いて所定の対戦ゲームパートに係るシミュレーション処理を実行するシミュレーション実行ステップと、
を備え、
前記シミュレーション実行ステップでは、前記第1のゲーム媒体と前記第2のゲーム媒体とを用いた前記所定の対戦ゲームパートに係る前記シミュレーション処理を実行し、
前記シミュレーション処理では、前記第2のゲーム媒体の強さに影響を与えるパラメータは固定され、
前記シミュレーション処理の実行に基づき取得される評価情報と目標評価情報との差を最小化する最適化問題として、前記特定パラメータを調整しつつ前記設定処理及び前記シミュレーション処理を交互に繰り返し実行することにより前記特定パラメータの最適解を求める制御方法。
【請求項4】
請求項1に記載のプログラムであって、
前記設定処理及び前記シミュレーション処理を交互に繰り返し実行することにより求められた前記最適解が、前記ゲーム内において前記第1のゲーム媒体の前記特定パラメータとして使用されるプログラム。
【請求項5】
請求項1に記載のプログラムであって、
前記シミュレーション実行ステップでは、前記第1のゲーム媒体が含まれる第1のデッキと、前記第2のゲーム媒体が含まれる第2のデッキとの対戦ゲームパートに係る前記シミュレーション処理を実行するプログラム。
【請求項6】
請求項1に記載のプログラムであって、
前記最適解が求められる途中の段階で調整される前記特定パラメータを用いて得られる、前記最適解以外の前記特定パラメータが、前記ゲーム内において前記第1のゲーム媒体の前記特定パラメータとして使用されるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報処理装置及び制御方法に関する。
【背景技術】
【0002】
味方キャラクタと敵キャラクタとを対戦させるゲームシステムが知られている(特許文献1)。特許文献1に記載されたゲームシステムでは、ユーザが、複数の味方キャラクタを選択することにより複数のキャラクタを含むデッキを編成し、編成されたデッキを用いて敵キャラクタや他のユーザのデッキと対戦する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2014−195611号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、キャラクタ同士を対戦させるゲームにおいては、ゲームバランスを考慮してゲームに登場するキャラクタの強さを適切に調整することが重要である。一般的に、キャラクタの強さは、キャラクタに設定される攻撃力等のパラメータを調整することにより決定される。しかしながら、例えばロールプレイングゲーム等の非常に多くのキャラクタが登場するゲームの場合には、ゲームデザイナーが1つ1つのキャラクタに設定されるパラメータを手動で調整することは困難である。また、オンラインゲームのように、次々に新しいキャラクタを実装するゲームの場合には、既存の多くのキャラクタの強さを考慮して新しいキャラクタに設定されるパラメータを調整する必要がある。
【0005】
本発明は、上述のような事情に基づいてなされたものであり、ゲームに登場させるゲーム媒体に設定するパラメータの最適値を容易に取得可能なプログラム、情報処理装置及び制御方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するためになされた本発明の一態様に係るプログラムは、情報処理装置に、ゲーム内に登場させるゲーム媒体にパラメータを設定する設定処理を行う設定ステップと、前記パラメータが設定された前記ゲーム媒体と前記ゲームをプレイしているユーザにより設定されたゲーム媒体の情報を含むユーザデータとを用いて所定の対戦ゲームパートに係るシミュレーション処理を実行するシミュレーション実行ステップとを実行させ、前記シミュレーション処理の実行に基づき取得される評価情報と目標評価情報との差を最小化する最適化問題として、前記設定処理により前記パラメータを変化させつつ前記シミュレーション処理を繰り返し実行することにより前記パラメータの最適解を求める。
【0007】
上記課題を解決するためになされた本発明の一態様に係る情報処理装置は、ゲーム内に登場させるゲーム媒体にパラメータを設定する設定処理を行う設定処理部と、前記パラメータが設定された前記ゲーム媒体と前記ゲームをプレイしているユーザにより設定されたゲーム媒体の情報を含むユーザデータとを用いて所定の対戦ゲームパートに係るシミュレーション処理を実行するシミュレーション実行部とを備え、前記シミュレーション処理の実行に基づき取得される評価情報と目標評価情報との差を最小化する最適化問題として、前記設定処理により前記パラメータを変化させつつ前記シミュレーション処理を繰り返し実行することにより前記パラメータの最適解を求める。
【0008】
上記課題を解決するためになされた本発明の一態様に係る制御方法は、情報処理装置により実行される制御方法であって、ゲーム内に登場させるゲーム媒体にパラメータを設定する設定処理を行う設定ステップと、前記パラメータが設定された前記ゲーム媒体と前記ゲームをプレイしているユーザにより設定されたゲーム媒体の情報を含むユーザデータとを用いて所定の対戦ゲームパートに係るシミュレーション処理を実行するシミュレーション実行ステップとを備え、前記シミュレーション処理の実行に基づき取得される評価情報と目標評価情報との差を最小化する最適化問題として、前記設定処理により前記パラメータを変化させつつ前記シミュレーション処理を繰り返し実行することにより前記パラメータの最適解を求める。
【発明の効果】
【0009】
本発明の一態様に係るプログラム、情報処理装置又は制御方法は、ゲームに登場させるゲーム媒体に設定するパラメータの最適値を容易に取得できる。
【図面の簡単な説明】
【0010】
図1】本発明の一実施形態に係る情報処理装置(サーバ装置)を含むシステムの全体構成を概略的に示す図である。
図2図1のシステムのサーバ装置の機能的構成を示す図である。
図3図1のシステムのゲームデータベースに記憶されるユーザの所有するキャラクタのデータの一例を示す図である。
図4図3のデータの続きを示す図である。
図5図1のシステムのゲームデータベースに記憶されるユーザの所有する装備のデータの一例を示す図である。
図6図1のシステムのゲームデータベースに記憶される各ユーザのデッキ設定データの一例を示す図である。
図7】対戦ゲームパートの一例を示すフローチャートである。
図8図2のサーバ装置における最適化処理の一例を示すフローチャートである。
図9】シミュレーション処理を実行する度に調整されるパラメータの値を記憶したデータの一例を示す図である。
図10】サーバ装置と同様の機能を有する情報処理装置を使用したシステムを示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態について図を参照しつつ詳説する。
【0012】
[システムの概要]
システム1は、図1に示すように、サーバ装置10と、サーバ装置10と通信可能に接続されるゲームデータベース30と、サーバ装置10と通信可能に接続される開発用端末50とを含んで構成されている。システム1は、図示しないゲームシステムで実行されるゲームへ新たに登場させるゲーム媒体を設計するためのシステムであり、新規のゲーム媒体に設定するパラメータの最適値を求めることができる。
【0013】
ここで、ゲーム媒体とは、パラメータを設定可能なゲームオブジェクトを示し、例えば、味方キャラクタ、敵キャラクタ、複数のキャラクタを含むデッキ、武器や防具等のキャラクタ用の装備品、回復用等のアイテム、建物や障害物等の物体、ゲーム空間内に定められる危険地帯等の仮想領域、等のゲーム内に登場する任意のゲーム媒体を含む。また、パラメータとは、ゲーム媒体の性能の大小を規定するためのステータスを示し、例えば、ゲーム媒体がキャラクタの場合は、攻撃力、防御力、スキル威力、スキル発動率等を含み、ゲーム媒体がデッキの場合は、デッキに含まれるキャラクタの組み合わせ等を含み、ゲーム媒体が装備品の場合は、攻撃力、防御力、耐久値等を含み、ゲーム媒体がアイテムの場合は、回復力等を含み、ゲーム媒体が建物や障害物等の物体の場合は、耐久値等を含み、ゲーム媒体が危険地帯等の仮想領域の場合は、時間経過とともに付与されるダメージ等を含む。すなわち、パラメータとは、対戦ゲームにおいて参照されるステータスやゲームの進行に係る難易度を決定する際に定められるステータス等を含む。
【0014】
対象となるゲームシステムで実行されるゲームは、例えば、装備品を装備したキャラクタ同士を対戦させる所定の対戦ゲームパートを含むゲームであり、このゲームに登場するゲーム媒体(キャラクタ、デッキ及びキャラクタの装備品)にはそれぞれの性能を示すパラメータが設定される。なお、対戦ゲームパートは、複数のキャラクタを含むデッキとゲームに登場する敵キャラクタとを対戦させるものであってもよいし、複数のデッキ同士を対戦させるものであってもよい。
【0015】
まず、システム1は、ゲーム内に登場させる新規のゲーム媒体に初期パラメータを設定する。新規のゲーム媒体に対する初期パラメータの設定は、後述する開発用端末50で作成されるマスターデータに基づき行われる。
【0016】
次に、システム1は、初期パラメータを設定した新規のゲーム媒体と既存のゲーム媒体とを用いて対戦ゲームパートに係るシミュレーション処理を実行する。既存のゲーム媒体の情報は、後述するゲームデータベース30に記憶されるユーザデータから取得される。ここで、対戦ゲームパートに係るシミュレーション処理とは、模擬的かつ自動的に当該対戦ゲームパートを1又は複数回実行する処理を示し、例えば、対戦ゲームパートにおいてユーザの操作が要求される場合には所定のアルゴリズムにより生成される代替操作情報を用いることによって対戦ゲームパートが実行される。
【0017】
次に、システム1は、シミュレーション処理の実行に基づき評価情報を取得する。ここで、評価情報とは、パラメータを設定した新規のゲーム媒体の評価に関する情報を示し、例えば、新規のゲーム媒体を特定の既存ゲーム媒体と複数回対戦させて得られる対戦勝率、新規のゲーム媒体が新規のデッキである場合に当該デッキを既存ゲーム媒体により構成される複数のデッキのそれぞれと対戦させて得られる対戦結果、新規のゲーム媒体を複数の既存ゲーム媒体のそれぞれと対戦させて得られる各既存ゲーム媒体から受けるダメージの分散等を含む。
【0018】
そして、システム1は、評価情報を目的関数とし、新規のゲーム媒体に設定されたパラメータを変数とした最適化問題を解くことより当該パラメータの最適解を求める。すなわち、システム1は、評価情報と予め設定された目標評価情報との差を最小化する最適化問題として、パラメータを調整しつつ設定処理及びシミュレーション処理を交互に繰り返し実行することにより当該パラメータの最適解を求める。
【0019】
[システムの構成]
サーバ装置10は、ゲーム媒体に設定するパラメータの最適解を導出する情報処理装置であり、ネットワークNを介してゲームデータベース30及び開発用端末50と接続されている。サーバ装置10は、図1に示すように、各種演算を実行する制御部11と、各種プログラムやデータを記憶する記憶部12と、他の装置とデータの送受信を行う通信部13とを有している。
【0020】
ゲームデータベース30は、図示しないゲームシステムにより実行されるゲームに係るデータを格納する記憶装置であり、当該ゲームをプレイしているユーザの所有する既存のゲーム媒体の情報及び当該ユーザにより設定されるゲーム媒体の情報を含むユーザデータを記憶する。ここで、ユーザにより設定されるゲーム媒体の情報とは、ユーザの所有するゲーム媒体の内、ユーザがゲーム内での役割を設定したゲーム媒体の情報を示し、例えば、キャラクタに設定された装備品の情報、デッキに設定された複数のキャラクタの情報等を含む。ゲームデータベース30には、ゲームシステムのデータベースからユーザデータを含む必要なデータがコピーされる。また、サーバ装置10は、最適化処理を実行する際に、このゲームデータベース30に記憶されているユーザデータを取得する。
【0021】
開発用端末50は、開発者であるゲームデザイナーがゲーム媒体を設計するための情報処理装置である。開発用端末50は、サーバ装置10において最適化処理が実行される際に、ゲームデザイナーが設計した新規のゲーム媒体の情報と最適化処理に用いられる目標評価情報を含むマスターデータをサーバ装置10へ送信する。マスターデータには、上述のように、新規のゲーム媒体に初期パラメータを設定するためのデータが含まれる。
〔サーバ装置の機能構成〕
サーバ装置10は、図2に示すように、ゲームデータベース30から取得したユーザデータを記憶するユーザデータ記憶部110と、開発用端末50から取得したマスターデータを記憶するマスターデータ記憶部120と、新規のゲーム媒体にパラメータを設定する設定処理を行う設定処理部130と、新規のゲーム媒体と既存のゲーム媒体とを用いて対戦ゲームパートに係るシミュレーション処理を実行するシミュレーション実行部140と、新規のゲーム媒体に設定するパラメータを調整するパラメータ調整部150とを備えている。これらの各機能は、記憶部12に記憶されるプログラムに基づき動作する制御部11によって実現される。サーバ装置10は、新規のゲーム媒体に設定するパラメータを調整しつつ、設定処理及びシミュレーション処理を交互に繰り返し実行する最適化処理を行うように構成されている。
【0022】
ユーザデータ記憶部110は、ゲームデータベース30から取得したユーザデータを記憶部12に記憶する。ユーザデータには、新規のゲーム媒体の実装対象となるゲームをプレイしているユーザの所有する既存のゲーム媒体の情報及び当該ユーザにより設定される既存のゲーム媒体の情報が含まれる。
【0023】
マスターデータ記憶部120は、開発用端末50から取得したマスターデータを記憶部12に記憶する。マスターデータには、新規のゲーム媒体の情報と新規のゲーム媒体に初期パラメータを設定するためのデータと最適化処理に用いられる目標評価情報とが含まれる。
【0024】
設定処理部130は、新規のゲーム媒体にパラメータを設定する設定処理を行う。設定処理部130は、最適化処理の実行中に設定処理を複数回実行する。具体的には、設定処理部130は、最初の設定処理時に、マスターデータに基づいて新規のゲーム媒体に初期パラメータを設定し、2回目以降の設定処理時に、新規のゲーム媒体に設定されたパラメータを調整されたパラメータに置き換えるように設定処理を行う。
【0025】
シミュレーション実行部140は、設定処理によりパラメータを設定された新規のゲーム媒体とユーザデータにより特定される既存のゲーム媒体とを用いて対戦ゲームパートに係るシミュレーション処理を実行する。シミュレーション処理では、上述のように、対戦ゲームパートが模擬的かつ自動的に1又は複数回実行される。また、シミュレーション実行部140は、最適化処理の実行中にシミュレーション処理を複数回実行する。具体的には、シミュレーション実行部140は、設定処理部130で新規のゲーム媒体にパラメータが設定されるごとにシミュレーション処理を実行する。
【0026】
パラメータ調整部150は、新規のゲーム媒体に設定するパラメータの調整を行う。具体的には、パラメータ調整部150は、シミュレーション実行部140でシミュレーション処理が実行されるごとにシミュレーション処理の実行結果から目的関数として評価情報を取得し、この評価情報とゲームデザイナーが予め定める目標評価情報との差を最小化する最適化問題の変数として、新規のゲーム媒体に再設定するパラメータ(調整されたパラメータ)を決定する。パラメータの調整に利用するアルゴリズムとしては、公知のアルゴリズムを用いることができるが、シミュレーション処理自体がブラックボックス関数である場合は、勾配法によるアルゴリズムは利用できない。したがって、例えば、ランダムサーチ、グリッドサーチ、遺伝的アルゴリズムによる最適化、ベイズ最適化等のアルゴリズムが最適化するパラメータに応じて選択できる。また、パラメータの調整において、パラメータの探索範囲を限定する等の制約条件を課すことができる。なお、ゲームデザイナーが予め定める目標評価情報を満たすパラメータの最適解が複数存在する可能性があるが、そのうちのどのパラメータが導き出されてもよい。ただし、複数の最適解が存在する場合、なるべく全てのパラメータがパラメータの探索範囲(制約条件)の中央に寄る最適解が選択されると好ましい。また、目標評価情報を満たすパラメータの最適解が得られない場合には、その旨を通知して最適化処理を終了してもよい。
【0027】
最適化処理においては、シミュレーション処理の実行回数を減らし、短時間でパラメータの最適解を得るために、様々な工夫を加えることができる。例えば、実験計画法等を用いて、前回の探索結果を元に、徐々に探索空間を狭めていくことができる。また例えば、新規のゲーム媒体が、特定の既存のゲーム媒体より強く、他の特定の既存のゲーム媒体より弱いという挟み撃ち問題とすることにより、探索空間を狭めてもよい。また例えば、新規のゲーム媒体に設定するパラメータを線形のパラメータのみとすることにより、局所解を気にせずに探索空間を狭めることができるようにしてもよい。なお、パラメータは、探索を行う前に正規化(0から1の範囲へ変換)されてもよい。
〔ゲームデータベース〕
ここで、ゲームデータベース30に記憶されるユーザデータに含まれるユーザの所有する既存のゲーム媒体の情報の一例として、ユーザの所有するキャラクタのデータ及び装備品のデータを示す。キャラクタには、図3に示すように、キャラクタを識別するためのキャラクタIDやキャラクタの名前を示すキャラクタ名に加えて、HP(ヒット・ポイント)、MP(マジック・ポイント)、攻撃力、防御力、魔法による攻撃力を示す魔攻力、対戦における行動順を決定するための敏捷、及びクリティカル攻撃の発生率に影響を与える器用がパラメータとして関連付けられている。これらのパラメータは、新規のキャラクタを追加する際の調整対象となる。また、キャラクタは、装備品を装備することができ、キャラクタには、キャラクタに装着される装備品の装備IDが更に関連付けられている。
【0028】
またキャラクタには、図4に示すように、対戦中にキャラクタが発動可能な3つのスキル(スキル1、スキル2及びスキル3)、対戦中に所定の条件を満たす場合に発動可能となる必殺技、及び当該キャラクタが他のキャラクタのアシストキャラクタとして設定された場合に対戦開始時に発動可能となるアシストスキルがパラメータとして更に関連付けられている。これらのパラメータも、新規のキャラクタを追加する際の調整対象となる。例えば、スキルが、当該スキルの威力(攻撃力や回復力)、発動率及び持続時間(毒や睡眠等の状態異常の継続時間)の少なくともいずれかにより性能が定まるものであるとすると、キャラクタに設定されるスキルを調整対象とする場合には、威力、発動率及び持続時間の少なくともいずれかの最適解が求められる。なお、キャラクタには、これら以外のパラメータが関連付けられていてもよい。
【0029】
装備品には、図5に示すように、装備品を識別するための装備IDや装備品の名前を示す装備名に加えて、攻撃力、防御力、魔攻力、装備品が発動可能な効果を示す特性がパラメータとして関連付けられている。これらのパラメータは、新規の装備品を追加する際の調整対象となる。装備品は、キャラクタに装着されると、設定されたパラメータが当該キャラクタの対応するパラメータに加算又は追加されるように構成されている。なお、装備品には、これら以外のパラメータが関連付けられていてもよい。
【0030】
また、ゲームデータベース30に記憶されるユーザデータに含まれるユーザにより設定されるゲーム媒体の情報の一例として、各ユーザのデッキ設定データを示す。ユーザには、図6に示すように、ユーザを識別するためのユーザIDやユーザにより設定されたデッキを識別するためのデッキIDに加えて、パーティーキャラクタとして設定された6つのキャラクタ(1〜6)、アシストキャラクタとして設定された6つのキャラクタ(1〜6)が関連付けられている。つまり、デッキには、これらのキャラクタの組み合わせがパラメータとして関連付けられている。したがって、これらのパラメータは、新規のデッキを追加する際の調整対象となる。なお、アシストキャラクタは、1つのパーティーキャラクタに対して1つずつ対応付け可能であり、設定されたパラメータが当該パーティーキャラクタの対応するパラメータに加算又は追加されるとともに、アシストスキルが発動可能となるように構成されている。また、ユーザには、自動的に対戦を進行させる場合のキャラクタの行動方針を指定する作戦、自動的に対戦を進行させる場合の必殺技の使用方針を指定する必殺技パターンが更に関連付けられている。
【0031】
[対戦ゲームパート]
対象となるゲームシステムで実行されるゲームの対戦ゲームパートについて説明する。図7は、対戦ゲームパートの一例を示すフローチャートである。この対戦ゲームパートは、2つのデッキ同士を対戦させるものであり、各デッキに設定されたパーティーキャラクタ(6つのキャラクタ)同士を対戦させる。なお、この対戦ゲームパートは、シミュレーション実行部140におけるシミュレーション処理で1又は複数回実行される対戦ゲームパートと実質的に同じである。
【0032】
対戦が開始されると、デッキに設定された6つのアシストキャラクタのいずれか1つが選択され、選択されたアシストキャラクタのアシストスキルが発動する(S100)。アシストスキルは各デッキに対応して発動する。以後、対戦はターン制で進行し、全てのキャラクタは、設定された敏捷で決定される行動順に従って行動する。行動順の到来したキャラクタの行動が攻撃である場合(S102Yes)、キャラクタは、設定された攻撃力で対戦相手のキャラクタを攻撃する(S104)。攻撃を受けたキャラクタのHPは、攻撃するキャラクタの攻撃力及び攻撃を受けたキャラクタの防御力に基づく計算により算出されるダメージ量だけ減少する。行動順の到来したキャラクタの行動がスキル使用である場合(S106Yes)、キャラクタは、設定されたスキルを発動する(S108)。例えば、発動するスキルが攻撃魔法である場合は、キャラクタは、設定された魔攻力及び設定されたスキル威力に応じて対戦相手のキャラクタを攻撃する。対戦中に必殺技の発動条件を満たし、かつキャラクタの行動として必殺技の使用が指定された場合(S110Yes)、キャラクタは、設定された必殺技を発動する(S112)。そして、対戦に参加するキャラクタのいずれかのHPが0となった場合(S114Yes)、当該キャラクタを対戦から除外する。また、いずれかのデッキに設定された全てのキャラクタが対戦から除外された場合、すなわちいずれかのデッキのキャラクタが全滅した場合(S116Yes)、対戦スコアの集計等の終了処理を実行し(S118)、対戦ゲームパートを終了する。
【0033】
[サーバ装置の動作]
次に、サーバ装置10の動作フローについて説明する。図8は、サーバ装置10における最適化処理の一例を示すフローチャートである。
【0034】
サーバ装置10は、ゲームデータベース30からユーザデータを取得して記憶部12に記憶する(S200)。このユーザデータには、新規のゲーム媒体の実装対象となるゲームをプレイしているユーザの所有する既存のゲーム媒体の情報及び当該ユーザにより設定される既存のゲーム媒体の情報が含まれる。
【0035】
次に、サーバ装置10は、開発用端末50からマスターデータを取得して記憶部12に記憶する(S202)。このマスターデータには、新規のゲーム媒体の情報、このゲーム媒体に初期パラメータを設定するための情報、及び目標評価情報が含まれる。
【0036】
マスターデータを取得すると、サーバ装置10は、マスターデータに基づいて新規のゲーム媒体に初期パラメータを設定する(S204)。例えば、新規のゲーム媒体がキャラクタであり、キャラクタに設定されるパラメータがスキルである場合、サーバ装置10は、ゲームデザイナーにより予め定められる所定の威力、発動率及び持続時間を有するスキルをキャラクタに設定する。
【0037】
次に、サーバ装置10は、初期パラメータを設定された新規のゲーム媒体とユーザデータにより特定される既存のゲーム媒体とを用いて対戦ゲームパートに係るシミュレーション処理を実行する(S206)。例えば、サーバ装置10は、上述の新規のキャラクタと既存のキャラクタとを含むデッキと、既存のキャラクタのみを含む特定のデッキとを複数回対戦させるシミュレーション処理を実行する。
【0038】
シミュレーション処理の実行が完了すると、サーバ装置10は、シミュレーション処理の実行結果から目的関数として評価情報を取得し、この評価情報とマスターデータに含まれる目標評価情報との差を算出し、この差に基づき最適化が完了したか否かを判定する(S208)。サーバ装置10は、パラメータの最適化が完了したと判定する場合に(S208YES)、最適化処理を終了する。この判定は、上記差が最小となり、パラメータの最適解が得られた場合に肯定されるが、最適化処理を開始してから所定の時間が経過する場合、又は最適化処理を開始してから所定回数以上のシミュレーション処理が実行される場合に肯定されてもよい。例えば、サーバ装置10は、上述のデッキ同士を複数回対戦させるシミュレーション処理の実行結果から、新規のキャラクタ含むデッキ側の対戦勝率を評価情報として取得し、この対戦勝率とゲームデザイナーにより設定される目標対戦勝率(目標評価情報)との差を算出し、この差が最小となっているか否かを判定する。
【0039】
サーバ装置10は、パラメータの最適化が完了していないと判定する場合に(S208NO)、評価情報と目標評価情報との差が小さくなるように、新規のゲーム媒体に設定するパラメータの調整を行う(S210)。例えば、サーバ装置10は、新規のキャラクタ含むデッキ側の対戦勝率が目標対戦勝率より低い場合は、新規のキャラクタ含むデッキ側の対戦勝率が上昇するように、新規のゲーム媒体の性能を向上させる方向にスキルの威力、発動率及び持続時間を調整し、新規のキャラクタ含むデッキ側の対戦勝率が目標対戦勝率より高い場合は、新規のキャラクタ含むデッキ側の対戦勝率が下降するように、新規のゲーム媒体の性能を低下させる方向にスキルの威力、発動率及び持続時間を調整する。
【0040】
新規のゲーム媒体に設定するパラメータが調整されると、S204へ戻り、サーバ装置10は、新規のゲーム媒体に設定されたパラメータを調整されたパラメータに置き換えるようにパラメータを設定する。以後、サーバ装置10は、パラメータの最適化が完了するまでこれらの処理を繰り返す。
【0041】
[その他の実施形態]
本発明は、上記実施形態に限定されない。
【0042】
例えば、最適化処理(図8)における任意の段階で得られる、調整されたパラメータの値を利用することができる。
【0043】
具体的には、サーバ装置10が、パラメータの最適化が完了していないと判定する場合(S208NO)であっても、当該パラメータの値、すなわち、シミュレーション処理を実行(S206)する前に設定されたパラメータの値(S204)を記憶してもよい。この場合、サーバ装置10が、パラメータの最適化が完了したと判定する(S208YES)まで、最適化処理(S204〜S206)を繰り返す都度、当該パラメータの値を記憶してもよいし、所定の条件を満たすパラメータの値のみを記憶してもよい。これらのパラメータの値は、例えば、開発用端末50またはサーバ装置10の記憶部12に記憶することができる。
【0044】
図9は、シミュレーション処理を実行(S206)する度に調整されるパラメータの値を記憶したデータの一例を示す図である。図9は、「パラメータ名」が「パラメータ1」〜「パラメータ4」である、4つのパラメータが最適化の対象となっており、10回の最適化処理(S204〜S206)を繰り返した例を示している。図9における「評価情報の差分」は、上記のシミュレーション処理の実行結果から得られる評価情報と、マスターデータに含まれる目標評価情報との差分である。この例は、10回目の最適化処理(S204〜S206)により、サーバ装置10がパラメータの最適化が完了したと判定した場合(S208YES)だけでなく、10回の最適化処理(S204〜S206)を繰り返しても、最後までサーバ装置10がパラメータの最適化が完了していないと判定した場合(S208NO)も含まれる。
【0045】
図9に示すように、パラメータ1〜パラメータ4の初期値は、1回目の最適化処理(S204〜S206)により調整され、「初期値」から「1回目」の値に更新される。以降、同様に、N(N=2〜10)回目の最適化処理(S204〜S206)により、パラメータ1〜パラメータ4の値は、「N−1回目」の値から「N回目」の値に更新される。
【0046】
ゲームデザイナーは、記憶されたパラメータの値(図9)の中から、任意のパラメータの値を選択することができる。例えば、ゲーム媒体に設定されるべきパラメータの値として、「8回目」の値を選択し、実際に当該ゲーム媒体にこのパラメータの値を設定することができる。
【0047】
また、例えば、調整された任意のパラメータの値を初期値として用い、さらに、この初期値の近傍に限定して最適化処理(S204〜S206)を繰り返すことにより、この初期値の近傍においてパラメータの値の最適化を実行することもできる。
【0048】
さらに、例えば、選択されたパラメータの値をサンプルデータとして入力した機械学習を行い、選択されたパラメータの値が示す法則やバランスなど、ゲームデザイナー自身が認識していなかった情報を抽出することもできる。抽出された情報は、パラメータの値を設定するためのアルゴリズム等を構築する際に利用することもできる。
【0049】
また、選択されたパラメータの値に対して、遺伝的アルゴリズムなどの進化的最適化手法を適用することもできる。この場合、例えば、選択されたパラメータの値に近似する一群のパラメータの値の組の集合を最初の世代(シード、または初期値)とし、交叉・突然変異などの操作によって次の世代(解)を求める処理を繰り返すことで、最適解を探索することができる。
【0050】
このように、最適化処理(S204〜S206)により調整されたパラメータの値の中から選択されたパラメータの値を利用して、最終的にゲーム媒体に設定されるパラメータの値を得ることにより、最適化処理(S204〜S206)の繰り返しのみでは抽出できないようなパラメータの値をゲーム媒体に設定することが可能となる。例えば、パラメータの値の設定に、目標評価情報(目的関数)とは異なる観点におけるゲームデザイナーの評価などを反映させることができる。このため、パラメータの値を、様々な評価の観点に基づき、厳密に設定することも可能となる。また、ゲームデザイナーに対し、ゲーム媒体に設定されるべきパラメータに関する新たな知見を提供することができる。さらに、最適化処理(S204〜S206)だけでは、パラメータの値が収束せず、上記のシミュレーション処理の実行結果から得られる評価情報と、マスターデータに含まれる目標評価情報との差分が充分に小さくならない場合がある。このような場合に、最適化処理(S204〜S206)により調整されたパラメータの値の中から選択されたパラメータの値を適切に利用することにより、当該差分をよりゼロに近づけることができる。これにより、パラメータの値をより厳密に設定することが可能となる。
【0051】
また、調整対象となるパラメータ及び目標評価情報は、上記実施形態で例示したものに限定されない。
【0052】
例えば、新規のゲーム媒体としてキャラクタを選択し、当該キャラクタと既存のキャラクタとを含むデッキを構成する場合、当該デッキに含まれるキャラクタの組み合わせを調整対象のパラメータとし、当該キャラクタを含むデッキが既存のキャラクタのみを含むデッキと比較して最も強いデッキであることを目標評価情報として、パラメータを調整してもよい。この場合のシミュレーション処理は、これらデッキ同士を対戦させるものであってもよいし、これらデッキと所定の敵キャラクタ(ボスキャラクタ)とを対戦させるものであってもよい。また、パラメータの調整に利用するアルゴリズムとしては、例えば、上記の遺伝的アルゴリズム等の進化的最適化方法を用いることができる。また、効率的に探索するために、遺伝的アルゴリズムのシード(初期値)として既存の最強パーティ(ユーザデータ)を利用するとよい。
【0053】
また例えば、新規のゲーム媒体としてゲームイベントに登場させる敵キャラクタ(ボスキャラクタ)を選択する場合、当該敵キャラクタに設定されるスキルの威力、発動率及び持続時間を調整対象のパラメータとし、当該敵キャラクタを既存のキャラクタのみを含む複数のデッキのそれぞれと対戦させて得られる各デッキから受けるダメージの分散を目標評価情報として、パラメータを調整してもよい。ダメージの最大値の範囲を制限する制約条件を課すとよい。この場合のシミュレーション処理は、当該敵キャラクタと上位ユーザ群の設定したデッキとを対戦させるものであると、ゲームイベントのゲームバランスを適正化する上で好ましい。また、パラメータと当該ダメージの分散との関係は線形的ではないので、パラメータの調整に利用するアルゴリズムとしては、例えば、効率的に大域的最適解を発見できるベイズ最適化によるパラメータ探索方法を用いると好ましい。
【0054】
また、最適化する対象としては、上述した各種のパラメータ(例えばキャラクタに係るパラメータ)といった数値に限られない。例えば、ゲームシーンを踏まえ、キャラクタのセリフ(パラメータの他の一例)を設定することも可能である。この場合、既存のキャラクタのスクリプトやユーザのコメント等を教師情報として用い、既知の自然言語処理手法を介し、本発明を用いて最適化できる。この場合、目標評価情報は、ゲームシナリオ上で辿れないシナリオが存在しないように設定されてもよい。例えば、キャラクタのセリフ等に応じてゲームシナリオ上の分岐で辿るルートが異なるようなゲーム仕様である場合、ストーリーに不整合が生じたり所望のエンディングに到達できなかったりする等の不都合(バグ)が生じうる。目標評価情報は、このような不都合が生じる可能性を実質的に無くすように設定されてもよい。
【0055】
上記実施形態では、システム1が、サーバ装置10と、ゲームデータベース30と、開発用端末50とを含んで構成されるものについて説明したが、システム1の構成はこれに限定されない。例えば、システム1に含まれる構成を全て含む単一の情報処理装置が採用されてもよい。また、システム1に含まれる構成をサーバ装置と開発用端末に適宜、割り当てることもできる。
【0056】
図10は、サーバ装置10と同様の機能を有する情報処理装置20を使用したシステムを示す図である。
【0057】
図10の例では、情報処理装置20は、ゲーム媒体に設定するパラメータの最適解を導出する装置であり、ネットワークNを介することなく、直接的に開発用端末50と接続されている。また、情報処理装置20は、開発用端末50およびネットワークNを介してゲームデータベース30と接続されている。情報処理装置20は、図10に示すように、各種演算を実行する制御部21と、各種プログラムやデータを記憶する記憶部22と、他の装置とデータの送受信を行う通信部23とを有している。制御部21、記憶部22および通信部23は、それぞれサーバ装置10の制御部11、記憶部12および通信部13と同様の機能を有する。
【0058】
また、情報処理装置20は、機能的な構成として、サーバ装置10のユーザデータ記憶部110、マスターデータ記憶部120、設定処理部130、シミュレーション実行部140およびパラメータ調整部150と同様の構成(不図示)を備える。
【符号の説明】
【0059】
1 システム
10 サーバ装置
11 制御部
12 記憶部
13 通信部
20 情報処理装置
21 制御部
22 記憶部
23 通信部
30 ゲームデータベース
50 開発用端末
110 ユーザデータ記憶部
120 マスターデータ記憶部
130 設定処理部
140 シミュレーション実行部
150 パラメータ調整部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10