JP7199203B2 - ゲームプログラムを検査するためのシステム、方法、プログラム、機械学習支援装置、及びデータ構造 - Google Patents

ゲームプログラムを検査するためのシステム、方法、プログラム、機械学習支援装置、及びデータ構造 Download PDF

Info

Publication number
JP7199203B2
JP7199203B2 JP2018215657A JP2018215657A JP7199203B2 JP 7199203 B2 JP7199203 B2 JP 7199203B2 JP 2018215657 A JP2018215657 A JP 2018215657A JP 2018215657 A JP2018215657 A JP 2018215657A JP 7199203 B2 JP7199203 B2 JP 7199203B2
Authority
JP
Japan
Prior art keywords
game
user
medium
card
media
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018215657A
Other languages
English (en)
Other versions
JP2019164753A5 (ja
JP2019164753A (ja
Inventor
修一 倉林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cygames Inc
Original Assignee
Cygames Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cygames Inc filed Critical Cygames Inc
Priority to JP2018215657A priority Critical patent/JP7199203B2/ja
Publication of JP2019164753A publication Critical patent/JP2019164753A/ja
Publication of JP2019164753A5 publication Critical patent/JP2019164753A5/ja
Priority to JP2022203454A priority patent/JP7474832B2/ja
Application granted granted Critical
Publication of JP7199203B2 publication Critical patent/JP7199203B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/67Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor adaptively or by learning from player actions, e.g. skill level adjustment or by storing successful combat sequences for re-use

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、ゲームプログラムを検査するためのシステム、方法、プログラム、機械学習支援装置及びデータ構造に関する。
近年、ネットワークを通じて複数のプレイヤが参加可能なオンラインゲームを楽しむプレイヤが増えている。当該ゲームは、スマートフォンなどの携帯端末装置がゲーム運営者のサーバ装置と通信を行うゲームシステムなどにより実現され、携帯端末装置を操作するプレイヤは、他のプレイヤと対戦プレイを行うことができる。
ゲーム運営者は、ゲームを提供するにあたっては、ゲームプログラムを検査してバグを検出しておく必要がある。一般的に、このような検査を効率化する技術は、Quality Assurance(QA)技術と呼ばれる。
従来、QA技術の1つとして、プログラムの実行を伴わない静的検査を自動的に実行する静的コード解析がある。この静的コード解析は、検証対象となるプログラムのソースコードの形式や内容を解析することにより、潜在的な問題や仕様との齟齬を検出する。UNIX(登録商標)システム上では、lintなどのプログラムの形式を確認するツールが古くから提供されており、また商用製品ではcoverityが良く知られている(非特許文献1、2)。しかし、ソースコードから実行時の振る舞いを網羅的に検証することは困難であるため、動的な解析と併用する必要があった。
動的な解析は、プログラムの実行を伴う動的検査であって、所謂テストプレイと呼ばれるものであり、古くからQAプロセスの一環として実行されてきた。テストプレイは、デバッガーやテスターと呼ばれる専門の技術者がゲームを実際にプレイすることにより問題を発見する手法であり、高い効果が期待できる。このようなQAを行うにあたっては、ゲーム内のプレイヤの行動の組み合わせは膨大であるため、ゲーム運営者は、その組み合わせの中から、実行される可能性が高い順にゲームプログラム動作させてバグを検出する必要がある。
Darwin, Ian F. Checking C Programs with Lint. ISBN 0-937175-30-7. Synopsys, Inc. Coverity, https://www.synopsys.com/software-integrity.html
QAを行うゲームとして、カードやキャラクタなどの組み合わせ(以下、「カード組み合わせ」という。)に応じて様々なアクションが実行されるデジタルコレクタブルカードゲーム(DCCG)と呼ばれるカードゲームが挙げられる。カード組み合わせは、ゲームの戦略性を飛躍的に向上させるものの、一方で、検証するべき状況の数も爆発的に増大させる。例えば、手持ちのカードをゲームフィールド(場)に出して対戦するカードバトルゲームにおいて、1000枚のカードが存在し、平均8ターンの対戦が行われるとき、場に約16回カードが出されることになる。このとき、場の状況のパターンは、1000の16乗の組み合わせになり、実質的にほぼ無限の組み合わせが発生することになる。このような無限のカード組み合わせについて、人力でのテストプレイにより網羅的に検証することは、膨大な人数と膨大な時間を投入する必要があるため、極めて困難であった。
本発明は、このような課題を解決するためになされたものであり、ユーザにより実行される可能性がより高い行動の推論を行い、ゲームプログラムを検査することが可能なシステム等を提供することを主目的とする。
上記の目的を達成するために、本発明の一態様としてのシステムは、複数の媒体を含んで構成される所有媒体群からユーザが媒体を選択して該媒体をゲームフィールドに出すことで進行するゲームのゲームプログラムを検査するためのシステムであって、ユーザの操作に応じて作成される、前記ゲームフィールド及び前記所有媒体群を含んで構成されるゲーム状態が含む前記媒体に関する媒体情報を含むゲームログを、該ゲームログが格納されるゲームサーバから取得するゲームログ取得部と、前記取得されたゲームログに基づいて前記ゲーム状態が含む前記媒体情報を表すマトリクスを時間軸上に並べた配列データを作成することによりテンソルデータを作成するテンソルデータ作成部と、前記作成されたテンソルデータを学習データとして用いて機械学習を行うことにより学習モデルを生成する学習部と、前記学習モデルを用いて任意の前記ゲーム状態においてユーザが選択する前記媒体を推論する推論部と、前記ゲームが進行したときの前記ゲーム状態におけるユーザによる前記媒体の選択として前記推論部により推論される前記媒体を用いて前記ゲームプログラムを実行することにより該ゲームプログラムを検査する検査部と、を備えることを特徴とする。
また、本発明において好ましくは、前記マトリクスは、前記ゲームが備える前記媒体の種類と前記ゲーム状態を構成する前記ゲームフィールド及び前記所有媒体群の種別とのいずれか一方を行とし、他方を列とし、前記テンソルデータ作成部は、前記マトリクスの各要素に前記媒体の有無に関する情報を格納する。
また、本発明において好ましくは、前記テンソルデータ作成部は、前記ゲームログ取得部が新たに取得したゲームログに基づいて前記配列データを作成することにより新たなテンソルデータを作成する。
また、本発明において好ましくは、前記ゲームログは、ユーザを識別するための情報を含み、前記テンソルデータ作成部は、前記配列データを、ユーザの種類を示すユーザ軸上にユーザごとに格納することによりテンソルデータを作成する。
また、本発明において好ましくは、前記ゲームは、複数のユーザが各々の前記所有媒体群から前記媒体を選択して該媒体を前記ゲームフィールドに出して対戦する対戦ゲームであり、前記ゲームログは、前記テンソルデータ作成部は、前記配列データを、追記回数を示す追記回数軸上に格納することによりテンソルデータを作成する。
また、本発明において好ましくは、前記ゲームが備える前記媒体の種類は、ユーザにより選択されたクラスに応じて異なるものであり、前記ゲームログは、クラスを識別するための情報を含み、前記テンソルデータ作成部は、前記配列データを、クラスの種類を示すクラス軸上にクラスごとに格納することによりテンソルデータを作成する。
また、本発明において好ましくは、前記推論部は、前記ゲームに新たな種類の前記媒体が追加されるとき、追加される前記媒体と前記ゲームが備える前記媒体との関係を示す変換マトリクスを更に用いて任意の前記ゲーム状態においてユーザが選択する前記媒体を推論する。
また、本発明において好ましくは、前記学習モデルは、ニューラルネットワークモデルである。
また、本発明において好ましくは、前記推論部は、ユーザが選択する前記媒体の尤度を所定の閾値と比較して、より尤もらしい尤度を持つ前記媒体を出力し、前記検査部は、ユーザによる前記媒体の選択として前記推論部により出力される前記媒体を用いて前記ゲームプログラムを実行することにより該ゲームプログラムを検査する。
また、本発明において好ましくは、前記検査部は、ユーザによる前記媒体の選択として前記推論部により出力される前記媒体のうち、より尤もらしい尤度を持つ前記媒体から順番に用いて前記ゲームプログラムを実行することにより該ゲームプログラムを検査する。
また、本発明において好ましくは、前記検査部は、前記ゲームプログラムをヘッドレスモードで実行することにより該ゲームプログラムを検査する。
また、本発明において好ましくは、前記所有媒体群は、前記ゲームの進行に応じて決定される、ユーザが選択可能な第1の媒体群と、ユーザが選択不可能な第2の媒体群とから構成され、前記推論部は、前記学習モデルを用いて任意の前記ゲーム状態においてユーザが選択する前記媒体を前記第1の媒体群から推論する。
また、上記の目的を達成するために、本発明の一態様としての方法は、複数の媒体を含んで構成される所有媒体群からユーザが媒体を選択して該媒体をゲームフィールドに出すことで進行するゲームのゲームプログラムを検査するための方法であって、ユーザの操作に応じて作成される、前記ゲームフィールド及び前記所有媒体群を含んで構成されるゲーム状態が含む前記媒体に関する媒体情報を含むゲームログを、該ゲームログが格納されるゲームサーバから取得するステップと、前記取得されたゲームログに基づいて前記ゲーム状態が含む前記媒体情報を表すマトリクスを時間軸上に並べた配列データを作成することによりテンソルデータを作成するステップと、前記作成されたテンソルデータを学習データとして用いて機械学習を行うことにより学習モデルを生成するステップと、前記学習モデルを用いて任意の前記ゲーム状態においてユーザが選択する前記媒体を推論するステップと、前記ゲームが進行したときの前記ゲーム状態におけるユーザによる前記媒体の選択として前記推論される前記媒体を用いて前記ゲームプログラムを実行することにより該ゲームプログラムを検査するステップと、を有することを特徴とする。
また、上記の目的を達成するために、本発明の一態様としてのプログラムは、上記の方法の各ステップをコンピュータに実行させることを特徴とする。
また、上記の目的を達成するために、本発明の一態様としての機械学習支援装置は、複数の媒体を含んで構成される所有媒体群からユーザが媒体を選択して該媒体をゲームフィールドに出すことで進行するゲームにおけるユーザが選択する媒体を推論するための学習モデルを、機械学習により生成するための学習データを作成する機械学習支援装置であって、ユーザの操作に応じて作成される、前記ゲームフィールド及び前記所有媒体群を含んで構成されるゲーム状態が含む前記媒体に関する媒体情報を含むゲームログを、該ゲームログが格納されるゲームサーバから取得するゲームログ取得部と、前記取得されたゲームログに基づいて前記ゲーム状態が含む前記媒体情報を表すマトリクスを時間軸上に並べた配列データを作成することによりテンソルデータを作成するテンソルデータ作成部と、を備えることを特徴とする。
また、上記の目的を達成するために、本発明の一態様としてのデータ構造は、複数の媒体を含んで構成される所有媒体群からユーザが媒体を選択して該媒体をゲームフィールドに出すことで進行するゲームにおけるユーザが選択する媒体を推論するための学習モデルを、機械学習により生成するための学習データのデータ構造であって、ユーザの操作に応じて作成される、前記ゲームフィールド及び前記所有媒体群を含んで構成されるゲーム状態が含む前記媒体に関する媒体情報を含むゲームログに基づいて、前記ゲーム状態が含む前記媒体情報を表すマトリクスを時間軸上に並べた配列データを作成することにより作成されるテンソルデータを含み、コンピュータに、前記テンソルデータを学習データとして用いて機械学習を行わせることにより学習モデルを生成させ、該学習モデルを用いて任意の前記ゲーム状態において、より尤もらしい尤度を持つ前記媒体に関する推論情報を出力させる、ことを特徴とする。
本発明によれば、ユーザにより実行される可能性がより高い行動の推論を行い、ゲームプログラムを検査することができる。
本発明の一実施形態による検査システムの全体構成図である。 ニューラルネットワークモデルの一例を示す図である。 本発明の一実施形態による情報処理装置のハードウェア構成を示すブロック図である。 本発明の一実施形態によるゲームサーバのハードウェア構成を示すブロック図である。 ユーザの端末装置のディスプレイに表示されるゲーム画面の一例である。 本発明の一実施形態による検査サーバのハードウェア構成を示すブロック図である。 本発明の一実施形態による検査システムの機能ブロック図の一例を示す図である。 ログデータベースに格納されるゲームログの一例を示す図である。 ある一時点におけるカード情報マトリクスの一例を示す図である。 ある一時点におけるカード情報マトリクスの一例を示す図である。 テンソルデータ作成部が作成する3次元配列データの一例を示す図である。 テンソルデータ作成部が作成する3次元配列データの一例を示す図である。 3次元配列データを、ユーザ軸、追記回数軸、及びクラス軸の3軸上に配置したテンソルデータモデルの一例を示す図である。 既存のカードと新規のカードとの関係を示す変換マトリクスの一例を示す図である。 検査サーバ及び情報処理装置による検査処理のフローチャートの一例を示す図である。
以下、図面を参照して、本発明の実施形態による、ゲームプログラムを検査するための検査システムについて説明する。
本発明の実施形態による検査システム1の技術的特徴の1つは、ゲームの進行状況に合わせて蓄積されていくゲームログを、ディープニューラルネットワーク(DNN)技術を用いて学習可能な形式であるテンソル構造へ、追記的に写像することである。このような構成により、ユーザの行動を反映するゲームログを用いて、ニューラルネットワークモデル(NNモデル)を生成し、人間らしい手を算出する仕組みを構築する。これにより、ある特定のゲーム状態において、人間が採用する可能性が高い行動を自動的に選択するAIボットを作成し、このAIボットによりテストプレイを繰り返させることで、ユーザが遭遇する確率が高いバグから優先的に発見し続けることが可能となる。
ここで機械学習やニューラルネットワーク(NN)について簡単に説明する。機械学習とは、入力値と出力値のデータから、そこに潜むパターンを獲得することを目的とした学習方法である。ニューラルネットワークは、機械学習で用いられる枠組みの1つであり、入出力値から入力関係を表す関数を学習(近似)する機能を有する。
図2は、NN(4層DNN)の一例を示す図である。図2に示す4層DNNは、入力として入力値x、y、zに対応した3つのノード、出力として出力値uに対応した1つのノードを有する。4層DNNは、2層の中間層を有し、中間層の各ノードが重みを持っている。4層DNNは、大量の入出力データを利用することで、各ノードの適切な重みを生成することができ、これは一般的にディープラーニングと呼ばれる。ここで、NNはゲームログをそのまま学習することはできないため、NNに学習させるデータはn次元のテンソルデータ構造とする必要がある。n次元のテンソルデータは、プログラム処理上、n次元の配列として扱う配列データである。なお、図2に示すNNの層の数、ノード数は、1つの例示であることは理解される。
図1は、本発明の一実施形態による検査システム1の全体構成図である。図1に示すように、検査システム1は、情報処理装置10と、ゲームサーバ20と、検査サーバ30とを備え、これらはインターネットなどのネットワーク2に接続され、互いに通信可能である。
図3は本発明の一実施形態による情報処理装置10のハードウェア構成を示すブロック図である。本実施形態による情報処理装置10は、一般的なサーバやPC等と同様の構成を含む。情報処理装置10は、プロセッサ11、入力装置12、出力装置13、記憶装置14、及び通信装置15を備える。これらの各構成装置はバス16によって接続される。なお、バス16と各構成装置との間には必要に応じてインタフェースが介在しているものとする。1つの例では、情報処理装置10は、複数のコンピュータやサーバ装置を含んで構成される。
プロセッサ11は、情報処理装置10全体の動作を制御するものであり、例えばCPU及びGPUである。情報処理装置10は機械学習を行うため、好ましくは、プロセッサ11は、グラフィクス描画以外の汎用処理を行うためのGPUを含む。このような構成とすることにより、例えば1000を超えるコアを同時に動かして並列処理させ、計算速度を向上させることが可能となる。プロセッサ11は、記憶装置14に格納されているプログラムやデータを読み込んで実行することにより、様々な処理を実行する。
入力装置12は、情報処理装置10に対するユーザからの入力を受け付けるユーザインタフェースであり、例えば、タッチパネル、タッチパッド、キーボード、又はマウスである。出力装置13は、ユーザに情報処理装置10の出力情報を出力又は表示するものであり、例えば、画像を出力するディスプレイやプリンタである。
記憶装置14は、主記憶装置及び補助記憶装置を含む。主記憶装置は、例えばRAMのような半導体メモリである。RAMは、情報の高速な読み書きが可能な揮発性の記憶媒体であり、プロセッサ11が情報を処理する際の記憶領域及び作業領域として用いられる。主記憶装置は、読み出し専用の不揮発性記憶媒体であるROMを含んでいてもよい。この場合、ROMはファームウェア等のプログラムを格納する。補助記憶装置は、様々なプログラムや、各プログラムの実行に際してプロセッサ11が使用するデータを格納する。補助記憶装置は、例えばハードディスク装置であるが、情報を格納できるものであればいかなる不揮発性ストレージ又は不揮発性メモリであってもよく、着脱可能なものであっても構わない。補助記憶装置は、例えば、オペレーティングシステム(OS)、ミドルウェア、アプリケーションプログラム、これらのプログラムの実行に伴って参照され得る各種データなどを格納する。
通信装置15は、ネットワーク2を介して他のコンピュータとの間でデータの授受を行う。例えば通信装置15は、イーサネット(登録商標)ケーブル等を用いた有線通信や移動体通信、無線LAN等の無線通信を行い、ネットワーク2へ接続する。
図4は本発明の一実施形態によるゲームサーバ20のハードウェア構成を示すブロック図である。本実施形態によるゲームサーバ20は、一般的なサーバと同様の構成を含む。1つの例では、ゲームサーバ20は、公知のサーバコンピュータである。ゲームサーバ20は、プロセッサ21、入力装置22、出力装置23、記憶装置24、及び通信装置25を備える。これらの各構成装置はバス26によって接続される。なお、バス26と各構成装置との間には必要に応じてインタフェースが介在しているものとする。プロセッサ21、入力装置22、出力装置23、記憶装置24、及び通信装置25の各要素は、前述したプロセッサ11、入力装置12、出力装置13、記憶装置14、及び通信装置15に各々対応するものであり、同様の構成を有するため、説明は省略する。1つの例では、ゲームサーバ20は、複数のサーバ装置を含んで構成される。
ゲームサーバ20は、ゲームをプレイする各ユーザの端末装置とネットワークを介して接続される。ユーザの端末装置は、好ましくはスマートフォンであるが、パーソナルコンピュータ、タブレット端末、携帯電話機などとすることができる。
例えば、各ユーザは端末装置にインストールされたゲームアプリを起動すると、端末装置はゲームサーバ20にアクセスし、ゲームサーバ20は、各端末装置からのアクセスを受け付けて、ネットワークを介したゲームサービスを提供する。このとき、ゲームサーバ20は、各ユーザのゲームログを含むゲーム情報を記憶装置24に記憶して管理する。本実施形態においては、ゲームサーバ20は、データベースサーバ機能を備える。この場合、記憶装置24はデータベース用のデータ(例えばテーブル)やプログラムを記憶し、プログラムが実行されることにより、データベースは実現される。ゲームサーバ20が複数のサーバ装置を含んで構成される場合、そのうちの1又は複数のサーバ装置をデータベースサーバとすることもできる。なお、ゲームサーバ20と各ユーザの端末装置が接続されるネットワークは、ネットワーク2であってもよい。
ゲームサーバ20の記憶装置24は、ゲーム用のアプリケーションであるゲームプログラムを記憶し、ゲームサーバ20は、各ユーザの端末装置と通信して、ゲームを提供する。ゲームサーバ20は、ユーザの端末装置でのゲーム操作入力に応じてゲームを実行し、その実行結果をユーザの端末装置に送信する。
本実施形態におけるゲームサーバ20が提供するゲームは、いわゆるコレクタブルカードゲームである。具体的には、本実施形態のゲームは、複数のカードを含んで構成される所有カード群からユーザがカードを選択して当該カードをゲームフィールドに出すことで、カードやクラスの組み合わせに応じて様々なイベントが実行されて進行するものとする。また、本実施形態のゲームは、複数のユーザが所有カード群からカードを選択してゲームフィールド43に出して対戦する対戦ゲームである。本実施形態のゲームにおいて、各カードは、カードID、カード種別、ヒットポイント、攻撃力、属性などのパラメータを含むカード定義情報を有し、各クラスは、クラス定義情報を有する。カード種別は、カードがキャラクタ又はアイテムであることを示す情報である。
図5は、ユーザの端末装置のディスプレイに表示されるゲーム画面の一例であり、ユーザ端末装置を操作するユーザ自身である自ユーザと他のユーザ端末装置を操作する他ユーザのカードバトルのゲーム画面40を示すものである。ゲーム画面40は、自ユーザの手札である第1のカード群42aと、他ユーザの手札である第1のカード群42bとを示している。ゲームは、自ユーザが他ユーザの第1のカード群42bの内容を確認できないように構成される。
各ユーザが所有する所有カード群は、ユーザの手札である第1のカード群42と、ユーザの山札である第2のカード群44から構成され、一般的にカードデッキと呼ばれるものである。ユーザが所有する各カード41が第1のカード群42に含まれるか第2のカード群44に含まれるかは、ゲームの進行に応じて決定される。第1のカード群42は、ユーザが選択可能であり、ゲームフィールド43に出すことが可能なカード群であり、第2のカード群44は、ユーザが選択不可能なカード群である。所有カード群は、複数のカード41から構成されるものであるが、ゲームの進行上、所有カード群は1枚のカード41から構成される場合もある。ゲームは、各ユーザが第1のカード群42(42a、42b)の各々からゲームフィールド43にカード41を出すことで、進行する。なお、各ユーザのカードデッキは、すべて異なる種類のカード41により構成されてもよいし、同じ種類のカード41を一部含んで構成されてもよい。また、自ユーザのカードデッキを構成するカード41の種類は、他ユーザのカードデッキを構成するカード41の種類と異なってもよい。他の例では、各ユーザが所有する所有カード群は、第1のカード群42のみから構成される。
ゲーム画面40は、自ユーザの選択したキャラクタ45aと、他ユーザの選択したキャラクタ45bを示す。本実施形態において、ユーザが選択するキャラクタは、カードと関連付けられているキャラクタとは異なるものであり、所有カード群のタイプを示すクラスを定める。本実施形態のゲームは、クラスに応じて、ユーザが所有するカード41が異なるように構成される。1つの例では、本実施形態のゲームは、各ユーザのカードデッキを構成することができるカードの種類が、クラスに応じて異なるように構成される。1つの例では、本実施形態のゲームは、カード41をゲームフィールド43に出すことにより生じる効果は、カード定義情報に設定されるパラメータにより異なるように構成される。
ただし、カード41(カード群)は、キャラクタやアイテムなどの媒体(媒体群)とすることができ、所有カード群は、ユーザが所有する複数の媒体を含んで構成される所有媒体群とすることができる。例えば媒体群がキャラクタとアイテムの媒体により構成される場合、ゲーム画面40は、カード41として、キャラクタ又はアイテムそのものを示すこととなる。また、本明細書においては、ゲーム状態が、ある一時点における又はある1つの場面におけるゲーム全体の状態を示すものとする。ゲーム状態は、ゲームフィールド43の情報及び所有カード群の情報を含んで構成される。具体的には、本実施形態におけるゲーム状態は、ある一時点(1つの場面)におけるゲームフィールド43に出されているカード41の情報と自ユーザの所有カード群(又は第1のカード群42)のカード41の情報とを少なくとも含むものであればよい。例えば、自ユーザが第1のカード群42aからカードA1をゲームフィールド43に出した場合、所有カード群からカードA1が無くなり、ゲームフィールド43にカードA1が出されたことをゲーム状態から確認することができる。
1つの例では、本実施形態のゲームは、1つの対戦(カードバトル)が複数のターンを含む対戦ゲームであり、各ターンにおいて、自ユーザ又は他ユーザは、第1のカード群42からカードを選択し、ゲームフィールド43に出すことで進行する。1つの例では、キャラクタ45bはノンプレイヤキャラクタである。1つの例では、本実施形態のゲームは、ゲーム画面40上の一のカード又はキャラクタに対するユーザ操作に応答して、他のカード又はキャラクタのヒットポイントや攻撃力などのパラメータを変更する。1つの例では、本実施形態のゲームは、特定のゲーム状態になるなどの所定条件を満たした場合、各ユーザのカードデッキ又は各ユーザのカードデッキ以外からゲームフィールド43にカードが出される。1つの例では、本実施形態のゲームは、特定のゲーム状態になるなどの所定条件を満たした場合、当該所定条件に対応するカードをゲームフィールドから除外又は自ユーザ若しくは他ユーザのカードデッキに移動する。1つの例では、本実施形態のゲームは、スペルカードなどのような特定のカードを各ユーザのカードデッキからゲームフィールド43に出した場合、所定の効果を発揮すると同時にゲームフィールド43から当該特定カードを消滅させる。
図6は本発明の一実施形態による検査サーバ30のハードウェア構成を示すブロック図である。本実施形態による検査サーバ30は、一般的なサーバと同様の構成を含む。1つの例では、検査サーバ30は、公知のサーバコンピュータである。検査サーバ30は、プロセッサ31、記憶装置34、及び通信装置35を備える。これらの各構成装置はバス36によって接続される。なお、バス36と各構成装置との間には必要に応じてインタフェースが介在しているものとする。プロセッサ31、記憶装置34、及び通信装置35の各要素は、前述したプロセッサ11、記憶装置14、及び通信装置15に各々対応するものであり、同様の構成を有するため、説明は省略する。1つの例では、検査サーバ30は、複数のサーバ装置を含んで構成される。
なお本実施形態では、検査サーバ30は、ヘッドレス化による処理の高速化を目的として、入出力装置を備えない構成としているが、入出力装置を備えることもできる。また情報処理装置10又はゲームサーバ20が検査サーバ30の機能を有するように構成することもできる。
好適な1つの例では、検査サーバ30は、他のプロセスと隔離されたゲームアプリ(ゲームプログラム)を複数並行して実行するサーバシステムである。検査サーバ30は、dockerなどのOSレベルの仮想化技術である「コンテナ」と呼ばれる技術を用いて上述のゲームアプリを仮想化する。このような構成とすることにより、1台のサーバ装置で、同時に複数のゲームアプリを並列に実行することが可能となる。
また上記の仮想化されたゲームプログラムについて、検査サーバ30は、ヘッドレスモードでゲームプログラムを実行するか、又はヘッドレスのゲームプログラムを実行する。ヘッドレス化されたゲームプログラムは、律速要素となりうるグラフィックとサウンドを必要としないため、プロセッサ31単独でゲーム内容を高速に、短時間でゲームプログラムを実行することが可能となる。これにより、ゲームプログラムの実行を伴う動的検査を効率的に行うことが可能となる。
本実施形態においては、検査サーバ30は、データベースサーバ機能を備える。この場合、記憶装置34はデータベース用のデータ(例えばテーブル)やプログラムを記憶し、プログラムが実行されることにより、データベースは実現される。検査サーバ30が複数のサーバ装置を含んで構成される場合、そのうちの1又は複数のサーバ装置をデータベースサーバとすることもできる。
図7は本発明の一実施形態による検査システム1の機能ブロック図の一例を示す図である。これらの機能は、各装置のプロセッサ11、21、31により各々プログラムが実行されることにより実現される。本実施形態においては、各種機能がプログラム読み込みにより実現されるため、1つのパート(機能)の一部を他のパートが有していてもよい。ただし、各機能の一部又は全部を実現するための電子回路等を構成することにより、ハードウェアによってこれらの機能は実現してもよい。
ゲームサーバ20は、図7に示すとおり、ログデータベース61を備える。ゲームサーバ20は、ユーザがゲームをプレイする度に、ログデータベース61にゲームの進行状況を示すゲームログを追記的に格納する。ゲームログは、ユーザの操作に応じて作成される、ゲーム状態が含むカードに関するカード情報を含む。
図8は、ログデータベース61に格納されるゲームログの一例を示す図である。図8に示すとおり、ゲームログは、「ユーザXの操作ログX1」などのゲームの進行状況を示す各ログにより構成され、ゲームサーバ20は、ログデータベース61に、各ログを時系列に沿って逐次的に格納する。「ユーザXの操作ログX1」などの各ログは、時間情報、ユーザを識別するためのユーザID、操作種別、シーケンス番号などの情報を含み、ユーザの行動を記録することができるものである。本実施形態においては、ゲームログは情報処理装置10が用いるものであるが、当該ゲームログは、障害対応やカスタマーサポートなどの幅広い用途に使用されるログである。そのため、ゲームログに含まれる情報を用いることで、ゲームログを取得した時点のゲーム状態におけるゲームフィールド43のカード情報と所有カード群(又は第1のカード群42)のカード情報とを把握することができる。
情報処理装置10は、図7に示すように、ゲームログ取得部62と、テンソルデータ作成部63と、学習部64と、推論部65とを備える。ゲームログ取得部62は、ログデータベース61からゲームログを取得する。
テンソルデータ作成部63は、ゲームログ取得部62により取得されたゲームログに基づいてゲーム状態が含むカード情報を表すカード情報マトリクスを時間軸上に並べた配列データを作成することによりテンソルデータを作成する。テンソルデータ作成部63は、ある一時点におけるゲーム状態をマトリクスとして、ゲームログを拡張可能なテンソル構造に写像することにより、機械学習可能なデータを生成する。ユーザの行動後のカード情報マトリクスは、ユーザの行動前のカード情報マトリクスに対してユーザがとった行動を示すこととなり、正解ラベルとして用いることができる。この正解ラベルは、任意のゲーム状態において大多数のユーザが選択するカードを推論するための正解ラベルである。
図9、図10は、ある一時点におけるカード情報マトリクスの一例を示す図である。カード情報マトリクスは、ゲームが備えるカードの種類を行とし、ゲームフィールド43及び所有カード群の種別を列とし、ある一時点における、すなわちあるゲーム状態におけるマトリクスの各要素にカードの有無に関する情報が格納される。ただし、マトリクスの各要素にカードの数量に関する情報が格納されてもよい。
例えば、図9に示すカード情報マトリクスは、ステージのカードA1に「1」が格納され、ステージのカードA2に「0」が格納されている。これは、このゲーム状態において、ゲームフィールド43には、カードA1は出されており、カードA2は出されていないことを示している。同様に、図9に示すカード情報マトリクスは、デッキのカードA1に「0」が格納され、デッキのカードA2に「1」が格納されている。これは、このゲーム状態において、所有カード群には、カードA1は含まれておらず、カードA2は含まれていることを示している。
このように、カード情報マトリクスは、ある一時点における、1つの対戦のゲームフィールド43のカード情報とユーザの所有カード群のカード情報を、n種類のカードに対応するn次元のベクトルとして表現したものである。本実施形態において、カード情報マトリクスにおける所有カード群のカード情報は、自ユーザの所有カード群であって、他ユーザの所有カード群は含まない。ただし、ゲームの内容によっては、カード情報マトリクスは、他ユーザの所有カード群を含むように構成することもできる。なお、カード情報マトリクスの行と列は、入れ替えても構わない。
図10は、図9のゲーム状態において、ユーザがカードA2をゲームフィールド43に出した後のカード情報マトリクスを示している。図10に示すカード情報マトリクスは、図9のカード情報マトリクスと比較すると、ステージのカードA2に格納される情報は「0」から「1」となり、デッキのカードA2に格納される情報は「1」から「0」となる。
このように、カード情報マトリクスを用いることにより、ユーザがカード選択操作を行うなどアクションを起こし、ゲームフィールド43のカード情報及び所有カード群のカード情報に変化が現れた場合、マトリクス内の値の変化として検出することが可能となる。ただし、変形例として、カード情報マトリクスの列の要素は、ゲームフィールド43及び第1のカード群42とすることもできるし、ゲームフィールド43、所有カード群、及び第1のカード群42とすることもできる。
テンソルデータ作成部63は、図11に示すように、カード情報マトリクスをすべてのアクションごとに時間軸上に並べることにより、1つのカードバトルごとに、図12に示すような3次元配列データを作成する。したがって、1つのカードバトルは、場/デッキ(ゲームフィールド43/所有カード群)の種別の軸と、カードの種類の軸と、アクション回数を示す時間軸との3次元のテンソルで表現される。
ここで、ゲームログにはユーザIDやクラスが含まれるため、テンソルデータ作成部63は、3次元配列データをユーザごとに、クラスごとに、及び追記回数ごとに分類して、蓄積することができる。テンソルデータ作成部63は、3次元配列データを、ユーザの種類を示すユーザ軸上にユーザごとに、追記回数を示す追記回数軸上に追記回数ごとに、及びクラスの種類を示すクラス軸上にクラスごとに、格納することによりテンソルデータを更に作成する。図13は、3次元配列データを、ユーザ軸、追記回数軸、及びクラス軸の3軸上に配置したテンソルデータモデルの一例を示す図である。
したがって、テンソルデータ作成部63が作成するテンソルデータは、場/デッキの種別と、カードの種類と、アクション回数と、ユーザの種類と、追記回数と、クラスの種類とのデータを格納する6次元のテンソルデータである。ここで追記回数とは、テンソルデータ作成部63が6次元のテンソルデータを作成するにあたって、追記回数以外の5次元のテンソルデータを追記した回数を示すものである。当該5次元のテンソルデータは1つのカードバトルごとに生成されるため、追記回数は、結果としてバトル回数を示すものとなる。
ただし、テンソルデータは、以下の変形例のように構成することもできる。1つの変形例では、テンソルデータ作成部63が作成するテンソルデータは、上記の3次元配列データ、すなわち3次元のテンソルデータである。1つの変形例では、テンソルデータ作成部63が作成するテンソルデータは、3次元配列データを、ユーザ軸、追記回数軸、及びクラス軸の3軸のいずれか1つの軸上に配置した4次元のテンソルデータである。1つの変形例では、テンソルデータ作成部63が作成するテンソルデータは、3次元配列データを、ユーザ軸、追記回数軸、及びクラス軸の3軸のいずれか2つの軸上に配置した5次元のテンソルデータである。その他、テンソルデータ作成部63が作成するテンソルデータは、上記に示すテンソルデータに他の1又は複数の次元を追加したn次元(n≧4)のテンソルデータとすることもできる。
ログデータベース61は、ユーザがゲームをプレイしている間は追記的に格納され続けるものである。好適な1つの例では、情報処理装置10は、テンソルデータ差分検出部を更に備える。テンソルデータ差分検出部は、例えばテンソルデータ作成部63が作成したテンソルデータの最後の更新時間と、ゲームログ取得部62によるゲームログ取得時間とを比較することにより、ゲームログの追加分を抽出する。このようにして、テンソルデータ作成部63は、ゲームログ取得部62が新たに取得したゲームログに基づいて配列データを作成することによりテンソルデータを作成する。ゲームログ取得部62又はテンソルデータ作成部63が、テンソルデータ差分検出部の機能を有していてもよい。
1つの変形例では、テンソルデータ作成部63は、図12に示した3次元構造の配列データを、例えばND4Jのような疎行列を効率的に格納するシステムを用いて、テンソルデータを作成する。これにより、テンソルデータは多次元構造であるため、単純に多次元配列として格納すると、大部分のセルがゼロとなる配列となり、メモリ空間の効率が悪いという問題点を解消することが可能となる。
上記の例示においては、説明の便宜上、テンソルデータ作成部63は、カードの有無に応じて、カード情報マトリクスの各要素に「0」又は「1」を格納するものとして説明したが、これに限定されない。ただし、機械学習可能なデータとしてテンソルデータを作成するため、テンソルデータ作成部63は、カードの有無及びカードの枚数に応じて、カード情報マトリクスの各要素に「0」~「1」の実数を格納することが好ましい。例えばステージが含むことができるカードの枚数が最大5枚である場合において、ステージがカードA1を含まず、カードA2を1枚含み、カードA3を3枚含む場合、テンソルデータ作成部63は、ステージのカードA1の要素に「0」を格納し、ステージのカードA2の要素に「0.2」を格納し、ステージのカードA3の要素に「0.6」を格納する。
学習部64は、作成されたテンソルデータを学習データとして用いて機械学習を行うことによりニューラルネットワークモデルを生成する。学習データは、入力データとその正解ラベルの対となる出力データから構成されるものである。例えばテンソルデータ作成部63が作成するテンソルデータが3次元配列データの場合、アクション回数の軸に沿って隣接するカード情報マトリクスは、アクション回数が小さい方が入力データとなり、アクション回数が大きい方が出力データとなる。すなわち、ある一時点におけるカード情報マトリクスは、アクション回数が1つ前の入力データとしてのカード情報マトリクスの出力データとなり、アクション回数が1つ後の出力データとしてのカード情報マトリクスの入力データとなる。
学習部64は、公知のニューラルネットワークを使用して、ニューラルネットワークモデルを生成することができる。本実施形態のニューラルネットワークは、多層のニューラルネットワーク、すなわちディープニューラルネットワークを含むことができる。学習部64は、好ましくは、図2に示すような、中間層を2つ以上有するディープニューラルネットワークを使用する。例えば、学習部64は、Deeplearning4j(登録商標)、TensorFlow(登録商標)、Chainer(登録商標)などのフレームワークを用いることができる。なお学習部64は、例えばランダムフォレスト法による学習モデルなどのニューラルネットワークモデル以外の他の学習モデルを作成することもできる。
推論部65は、学習部64が生成したニューラルネットワークモデル(学習モデル)を用いて、任意のゲーム状態においてユーザが選択するカードを推論する。ある一時点のゲーム状態におけるカード情報は、カード情報マトリクスにより表される。例えば、テンソルデータ作成部63が3次元のテンソルデータを作成する場合、推論部65は、ある一時点のゲーム状態を表すカード情報マトリクスを入力すると、ユーザが次に選択するカードを推論(出力)する。
1つの例では、推論部65は、ユーザが選択するカードの尤度を所定の閾値と比較して、より尤もらしい尤度を持つカードを出力(決定)する。具体的には、推論部65は、所定の閾値以上(又は所定の閾値を超える)の尤度を持つカードに関する情報である推論情報を出力する。推論情報は、所定の閾値以上の尤度を持つカードに関する情報(例えばカードID)を含む。推論情報は、カードIDごとの尤度に関する情報を含むこともできるし、推論部65は、尤度が高いカードから順番に出力することもできる。本実施形態では、尤度が高いほど、尤もらしさが高い(より尤もらしい)ものとする。ただし、変形例として、尤度が低いほど尤もらしさが高くなるように設定することもでき、この場合、推論部65は、所定の閾値以下(又は所定の閾値未満)の尤度を持つカードを出力する。閾値は、予めゲーム運営者などにより設定される。閾値は、推論部65により出力されるカードがユーザにより選択可能な全カードのうちの10%以下となるように決定することが好ましい。これにより、推論部65が、1つのゲーム状態において、1つのカードのみ決定し続けてしまうことを防止することが可能となる。なおこの場合、推論部65が出力する推論情報は、当該ゲーム状態におけるユーザが選択する尤度が高いカードに関する情報であれば、上記に限定されない。推論部65は、構築された学習モデルを用いて、データの推論を行うことができる公知の推論実行モジュールを使用して、データを推論(出力)することができる。例えば、推論部65は、CoreMLなどのフレームワークを用いることができる。
1つの例では、ゲーム運営者などによりゲームに1又は複数の新たな種類のカードが追加されるとき、推論部65は追加されるカードと該追加される前のゲームが備えるカードとの関係を示す変換マトリクスを更に用いて任意のゲーム状態においてユーザが選択するカードを推論する。図14は、ゲームが現在備える既存のカードパックAと新規カードパックBとの関係を示す変換マトリクスの一例を示す図である。推論部65は、入出力においてこの変換マトリクスをフィルタとして用いることにより、既存のカードとの関係を介して、学習データの存在しない新規カードパックのユーザが選択する可能性が高いカードを推論する。このような構成とすることにより、ゲームに新たにカードを追加する場合、ゲームログが取得できていない追加されたカードのデバッグを効率的に行うことが可能となる。この変換マトリクスは、カードの仕様や機能の趣旨を鑑みて、ゲーム運営者などにより設定される。例えば、図14に示す変換マトリクスにおいては、新規カードB1は、既存カードA1の割合が0.9、既存カードAnの割合が0.1となるようなカードであり、ほぼ既存カードA1と同様の仕様又は機能の趣旨を有することが分かる。なお、新規カードパックBは、新規に追加したカードだけではなく、新規に追加したカードを含むゲームが備えるすべてのカードの種類を含むものとしてもよい。他の例では、推論部65は、入力又は出力においてのみ変換マトリクスをフィルタとして用いる。他の例では、学習部64は、作成されたテンソルデータを学習データとして用いて機械学習を行う場合、当該テンソルデータに対して変換マトリクスをフィルタとして用いて学習データを再生成し、ニューラルネットワークモデルを生成する。このような構成とすることにより、ゲームログが含まない新規カードパックに関する情報を反映させたニューラルネットワークモデルを生成することが可能となる。
検査サーバ30は、図7に示すように、検査部66及び検査履歴データベース67を備える。検査部66は、ゲームが進行したときのゲーム状態におけるユーザによるカードの選択として推論部65により推論されるカードを用いてゲームプログラムを実行することによりゲームプログラムを検査する。
具体的には、検査部66は、ゲームプログラムを実行し、ユーザによるカードの選択が必要となるときには、そのときのゲーム状態に関する情報、例えばカード情報マトリクスを推論部65に受け渡す。推論部65は、生成された学習モデルを用いて、検査部66より受け取ったカード情報マトリクスからユーザが次に選択するカードを推論し、その情報を検査部66に受け渡す。検査部66は、推論部65により出力されたカードをユーザにより選択されたカードとして用いて、ゲームプログラムを実行することによりゲームプログラムを検査する。好ましくは、検査部66は、ユーザによるカードの選択として、推論部65により出力されるカードのうち、尤度の高いカードから順番に用いてゲームプログラムを実行することによりゲームプログラムを検査する。検査部66は、上記の動作を繰り返し、任意の不整合状態を検出した場合、又はセグメンテーション違反のような明示的な例外をOSより検出した場合などにバグを検出する。1つの例では、一般的な商用製品としてのゲームは、不整合状態を検出する機能を備えるため、検査部66は、一般的にゲームが備える不整合状態検出機能を用いて、バグを検出する。
検査履歴データベース67は、検査部66がゲームプログラムを実行することにより実際に検査を行った、ゲーム状態に関する情報と、そのときのユーザ選択カードとして用いたカード情報とを記憶する。検査部66は、検査履歴データベース67を参照することにより、例えば任意のゲーム状態において、以前にユーザ選択カードとして用いたカードを再び選択してゲームプログラムを実行することを防止することが可能となる。
図15は、本実施形態における検査サーバ30及び情報処理装置10による検査処理のフローチャートの一例を示す図である。まずステップ101で、検査サーバ30は、ゲームプログラムを実行し、ユーザによるカード選択が必要になると、ステップ102で、そのときのゲーム状態に関する情報を情報処理装置10に送信する。好適な1つの例では、そのときのゲーム状態に関する情報は、そのときのカード情報マトリクスである。
次にステップ103で、情報処理装置10は、ゲーム状態に関する情報を受信し、その情報を入力として、生成されたNNモデルを用いることにより、ユーザが選択するカードをランク付けて決定する。このとき、情報処理装置10は、ユーザが選択する尤度が閾値以上のカードを決定し、決定されたカードの中で尤度が高い順番にカードをソートする。例えば情報処理装置10は、ユーザが選択する尤度が高いカードから、「0」番目、「1」番目…、と番号を割り当てる。番号の割り当ては、ゲーム状態ごとに行われる。このように尤度が最も高いカード以外のカードを選択する余地を残すことにより、情報処理装置10が、1つのゲーム状態において、ユーザが選択するカードとして1つのカードのみ決定し続けてしまうことを防止することが可能となる。
次にステップ104で、情報処理装置10は、ランク付けしたカードのi番目を選択する。ここでは、ユーザが選択する可能性が高いカードから選択するため、iの初期値は「0」となる。
次にステップ105で、情報処理装置10は、当該ゲーム状態に関する情報及び選択されたカード情報の組み合わせが検査履歴データベース67に格納されているか否かについて検査サーバ30に問い合わせのデータを送信し、検査サーバ30はそれに対して応答する。当該ゲーム状態に関する情報及び選択されたカード情報の組み合わせが検査履歴データベース67に格納されていない場合、検査処理はステップ108へ進み、格納されている場合、検査処理はステップ106へ進む。
ステップ106では、情報処理装置10は、ステップ104で選択されたi番目の次のi+1番目のランク付けしたカードの有無を判定する。カードが有る場合、検査処理は、ステップ107へ進んでiを1つ増加し、ステップ104へ戻る。カードが無い場合、検査処理は、ステップ108へ進む。ここでステップ108へ進む場合、情報処理装置10は、好ましくは、iの値を初期値として、ランク付けしたカードの0番目のカードを選択する。
ステップ108では、情報処理装置10は、選択されたカードの情報を検査サーバ30へ送信する。
次にステップ109で、検査サーバ30は、選択されたカードの情報を受信し、そのカードを選択する操作を行い、ゲームプログラムを実行する。
次に、ステップ110で、検査サーバ30は、ゲームプログラムを継続して実行する場合はステップ101へ戻り、ゲームプログラムの実行を終了する場合、本検査処理を終了する。例えば、検査サーバ30は、任意の不整合状態を検出した場合、又はセグメンテーション違反のような明示的な例外をOSより検出した場合など、ゲームプログラムが異常終了した場合、本検査処理を終了する。好ましくは、検査サーバ30は、上記のようなバグを検出した場合、検査サーバ30とネットワークを介して接続された管理者用パソコンなどに、バグ検出に関する情報を送信するように構成される。
次に、本発明の実施形態による検査システム1の主な作用効果について説明する。本実施形態では、テンソルデータ作成部63は、ゲームの進行状況に合わせて蓄積されていくゲームログであって、ゲームフィールド43と所有カード群のカード情報を含むゲームログから、例えば図13に示すような構造を持つテンソルデータを作成する。学習部64は、機械学習可能な形式に作成されたテンソルデータを用いて機械学習を行うことによりNNモデル(学習モデル)を生成し、推論部65は、生成されたNNモデルを用いて任意のゲーム状態においてユーザが選択するカードを推論する。検査部66は、ゲームが進行したときのゲーム状態におけるユーザによるカードの選択として推論部65により推論されるカードを用いてゲームプログラムを実行することによりゲームプログラムを検査する。
このように、テンソルデータ作成部63が、ユーザの行動を反映するゲームログから機械学習可能なテンソルデータ構造を作成する構成とすることにより、任意のゲーム状態において人間が選択する可能性が高いカードを推論するための学習モデルを生成することが可能となる。
また本実施形態では、テンソルデータ作成部63が作成するテンソルデータにおいては、テンソル内の各要素は、カードの有無に応じて、例えば「0」~「1」の実数が格納される。そのため、テンソルデータ作成部63が作成するテンソルデータ構造は、ゲーム運営者などによりゲームの内容が一部変更された場合、例えば一部のカード定義情報が変更された場合や新たな種類のカードが追加された場合であっても、構造自体には影響が無いものである。また本実施形態では、情報処理装置10は、ゲームログの追加分を抽出し、当該新たに取得したゲームログに基づいて3次元配列データを作成することによりテンソルデータを作成する。例えば、図13に示すテンソルデータ構造においては、情報処理装置10は、新たに作成された3次元配列データを、ユーザ軸、追記回数軸、及びクラス軸で構成される座標上に格納する。この場合、情報処理装置10は、新規ユーザからゲームログを取得した場合、テンソルデータ作成部63は、3次元配列データを新たなユーザ軸の座標に格納する。新たなクラスの種類のゲームログ、又は新たなバトル回数のゲームログを取得した場合においても同様である。このような構成とすることにより、本実施形態では、テンソルデータ作成部63が作成するテンソルデータの構造は不変であるため、継続的にNNモデルに学習させることが可能となる。このように、本実施形態による検査システム1は、テンソルデータが継続的に拡張されること前提として追記型のモデルを採用しており、長期間運用されるゲームタイトルに適したものである。
また本実施形態では、主として学習部64及び推論部65により、任意のゲーム状態において、人間が選択する可能性が高いカードを自動的に選択するAIボットを実現している。検査部66は、このAIボットを用いて、テストプレイを行うことで、ユーザが遭遇する確率が高いバグから優先的に発見し続けることが可能となる。
例えば、従来のQAでは、ユーザの操作ログの膨大な組み合わせの中から、エンジニアが経験的に設定した優先度で検証を行っており、実際のユーザの操作動向を定量的に反映することは困難であった。特に、継続的に提供されるオンラインゲームでは、ユーザの動向も時間に伴い変化するため、ユーザの実際の動向をQAプロセスに反映することが求められていた。上記のような構成とすることにより、本実施形態では、人力でのテストプレイによる網羅的な検証が極めて困難な実質的に無限の組み合わせが発生するカードバトルゲーム等において、ユーザのプレイ傾向を反映させて、ユーザが遭遇する確率が高いバグを優先的に発見することが可能となる。なお、本実施形態では、特定のバグ検出方式には一切依存しておらず、アプリ側でバグの発生そのものを検出可能でさえあれば、任意の原因のバグを検出することが可能である。
また本実施形態では、ゲームに新たなカードが追加されるとき、推論部65は、追加されるカードとゲームが備えるカードとの関係を示す変換マトリクスを更に用いて任意のゲーム状態においてユーザが選択するカードを推論する。学習データが存在しない新規なカードを追加する場合、上記のように変換マトリクスをNNモデルの入出力部分にフィルタとして用いることにより、ゲームログの存在しないカードについて、検査システム1がゲームプログラムを検査することが可能となる。これにより、新規カードパックの追加時のコールドスタート問題、すなわち学習すべきデータが存在しない状態で推論をする必要があるという問題に、変換マトリクスを用いて対応することが可能となる。
上記の作用効果は、特に言及が無い限り、他の実施形態や他の実施例においても同様である。
本発明の他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現するプログラムや該プログラムを格納したコンピュータ読み取り可能な記憶媒体とすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現するための学習データのデータ構造とすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を単独で実現する電子装置とすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現する方法とすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現するプログラムをコンピュータに供給することができるサーバとすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現する仮想マシンとすることもできる。
本発明の他の実施形態では、情報処理装置10は、機械学習支援装置と、機械学習装置と、推論装置とを備える。例えば機械学習支援装置は、ゲームログ取得部62及びテンソルデータ作成部63を備え、機械学習装置は、学習部64を備え、推論装置は、推論部65を備えるものであり、各々コンピュータなどにより実現される。
以上に説明した処理又は動作において、あるステップにおいて、そのステップではまだ利用することができないはずのデータを利用しているなどの処理又は動作上の矛盾が生じない限りにおいて、処理又は動作を自由に変更することができる。また以上に説明してきた各実施例は、本発明を説明するための例示であり、本発明はこれらの実施例に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。
1 検査システム
2 ネットワーク
10 情報処理装置
11 プロセッサ
12 入力装置
13 出力装置
14 記憶装置
15 通信装置
16 バス
20 ゲームサーバ
21 プロセッサ
22 入力装置
23 出力装置
24 記憶装置
25 通信装置
26 バス
30 検査サーバ
31 プロセッサ
34 記憶装置
35 通信装置
40 ゲーム画面
41 カード
42 第1のカード群
43 ゲームフィールド
44 第2のカード群
45 キャラクタ
61 ログデータベース
62 ゲームログ取得部
63 テンソルデータ作成部
64 学習部
65 推論部
66 検査部
67 検査履歴データベース

Claims (15)

  1. 複数の媒体を含んで構成される所有媒体群からユーザが媒体を選択してゲームフィールドに出すことで進行するゲームにおいて、追記的に格納されるゲームログからユーザにより選択されうる媒体を推論するためのシステムであって、
    ユーザの操作に応じて格納される、前記ゲームフィールド及び前記所有媒体群を含んで構成されるゲーム状態が含む媒体に関する媒体情報を含むゲームログを、該ゲームログが格納されるゲームサーバから取得するゲームログ取得部と、
    前記取得されたゲームログに基づいて配列データを作成することによりテンソルデータを作成するテンソルデータ作成部と、
    前記作成されたテンソルデータを学習データとして用いて機械学習を行うことにより学習モデルを生成する学習部と、
    前記学習モデルを用いて任意の前記ゲーム状態においてユーザにより選択されうる媒体を推論する推論部と、
    を備える、システム。
  2. 前記配列データは、前記ゲーム状態が含む前記媒体情報を表すマトリクスを所定の順序に並べたものであり、
    前記テンソルデータ作成部は、前記マトリクスの各要素に媒体の有無に関する情報を格納する、請求項1に記載のシステム。
  3. 前記テンソルデータ作成部は、
    前記ゲームログ取得部が新たに取得したゲームログに基づいて前記配列データを作成することにより新たなテンソルデータを作成する、請求項1又は2に記載のシステム。
  4. 前記ゲームログは、ユーザを識別するための情報を含み、
    前記テンソルデータ作成部は、前記配列データを、ユーザの種類を示すユーザ軸上にユーザごとに格納することによりテンソルデータを作成する、請求項1から3のいずれか1項に記載のシステム。
  5. 前記ゲームは、複数のユーザが各々の前記所有媒体群から媒体を選択して前記ゲームフィールドに出して対戦する対戦ゲームであり、
    前記テンソルデータ作成部は、前記配列データを、追記回数を示す追記回数軸上に格納することによりテンソルデータを作成する、請求項1から4のいずれか1項に記載のシステム。
  6. 前記ゲームが備える媒体の種類は、ユーザにより選択されたクラスに応じて異なるものであり、
    前記ゲームログは、クラスを識別するための情報を含み、
    前記テンソルデータ作成部は、前記配列データを、クラスの種類を示すクラス軸上にクラスごとに格納することによりテンソルデータを作成する、請求項1から5のいずれか1項に記載のシステム。
  7. 前記推論部は、前記ゲームに新たな種類の媒体が追加されるとき、追加される媒体と前記ゲームが備える媒体との関係を示す変換マトリクスを更に用いて任意の前記ゲーム状態においてユーザが選択する媒体を推論する、請求項1から6のいずれか1項に記載のシステム。
  8. 前記学習モデルは、ニューラルネットワークモデルである、請求項1から7のいずれか1項に記載のシステム。
  9. 前記ゲームが進行したときの前記ゲーム状態における媒体の選択として前記推論部により推論される媒体を用いて前記ゲームのゲームプログラムを実行する実行部を備える、請求項1から8のいずれか1項に記載のシステム。
  10. 前記推論部は、ユーザが選択する媒体の尤度を所定の閾値と比較して、前記所定の閾値以上の尤度を持つ媒体を出力し、
    前記実行部は、ユーザによる媒体の選択として前記推論部により出力される前記媒体を用いて前記ゲームプログラムを実行する、請求項9に記載のシステム。
  11. 前記実行部は、ユーザによる媒体の選択として前記推論部により出力される媒体のうち、より尤もらしい尤度を持つ媒体から順番に用いて前記ゲームプログラムを実行する、請求項10に記載のシステム。
  12. 前記実行部は、前記ゲームプログラムをヘッドレスモードで実行する、請求項9から11のいずれか1項に記載のシステム。
  13. 前記所有媒体群は、前記ゲームの進行に応じて決定される、ユーザが選択可能な第1の媒体群と、ユーザが選択不可能な第2の媒体群とから構成され、
    前記推論部は、前記学習モデルを用いて任意の前記ゲーム状態においてユーザが選択する媒体を前記第1の媒体群から推論する、請求項1から12のいずれか1項に記載のシステム。
  14. 複数の媒体を含んで構成される所有媒体群からユーザが媒体を選択してゲームフィールドに出すことで進行するゲームにおいて、追記的に格納されるゲームログからユーザにより選択されうる媒体を推論するための、コンピュータによって実行される方法であって、
    ユーザの操作に応じて作成される、前記ゲームフィールド及び前記所有媒体群を含んで構成されるゲーム状態が含む媒体に関する媒体情報を含むゲームログを、該ゲームログが格納されるゲームサーバから取得するステップと、
    前記取得されたゲームログに基づいて配列データを作成することによりテンソルデータを作成するステップと、
    前記作成されたテンソルデータを学習データとして用いて機械学習を行うことにより学習モデルを生成するステップと、
    前記学習モデルを用いて任意の前記ゲーム状態においてユーザにより選択されうる媒体を推論するステップと、
    を有する、方法。
  15. 請求項14に記載の方法の各ステップをコンピュータに実行させるプログラム。
JP2018215657A 2018-11-16 2018-11-16 ゲームプログラムを検査するためのシステム、方法、プログラム、機械学習支援装置、及びデータ構造 Active JP7199203B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018215657A JP7199203B2 (ja) 2018-11-16 2018-11-16 ゲームプログラムを検査するためのシステム、方法、プログラム、機械学習支援装置、及びデータ構造
JP2022203454A JP7474832B2 (ja) 2018-11-16 2022-12-20 ゲームプログラムを検査するためのシステム、方法、プログラム、機械学習支援装置、及びデータ構造

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018215657A JP7199203B2 (ja) 2018-11-16 2018-11-16 ゲームプログラムを検査するためのシステム、方法、プログラム、機械学習支援装置、及びデータ構造

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018052703A Division JP6438612B1 (ja) 2018-03-20 2018-03-20 ゲームプログラムを検査するためのシステム、方法、プログラム、機械学習支援装置、及びデータ構造

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2022203454A Division JP7474832B2 (ja) 2018-11-16 2022-12-20 ゲームプログラムを検査するためのシステム、方法、プログラム、機械学習支援装置、及びデータ構造

Publications (3)

Publication Number Publication Date
JP2019164753A JP2019164753A (ja) 2019-09-26
JP2019164753A5 JP2019164753A5 (ja) 2021-05-27
JP7199203B2 true JP7199203B2 (ja) 2023-01-05

Family

ID=68066217

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2018215657A Active JP7199203B2 (ja) 2018-11-16 2018-11-16 ゲームプログラムを検査するためのシステム、方法、プログラム、機械学習支援装置、及びデータ構造
JP2022203454A Active JP7474832B2 (ja) 2018-11-16 2022-12-20 ゲームプログラムを検査するためのシステム、方法、プログラム、機械学習支援装置、及びデータ構造

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2022203454A Active JP7474832B2 (ja) 2018-11-16 2022-12-20 ゲームプログラムを検査するためのシステム、方法、プログラム、機械学習支援装置、及びデータ構造

Country Status (1)

Country Link
JP (2) JP7199203B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6768982B1 (ja) * 2020-03-19 2020-10-14 株式会社Cygames プログラム検証のための方法、プログラム、システム及びサーバ
CN112446424B (zh) * 2020-11-16 2024-02-27 桂林力港网络科技股份有限公司 一种字牌游戏数据处理方法、系统及存储介质
JP7155447B2 (ja) * 2021-01-21 2022-10-18 株式会社Cygames ユーザが選択するアクションを予測するための学習済みモデルを生成するための方法等

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009140454A (ja) 2007-12-11 2009-06-25 Sony Corp データ処理装置、データ処理方法、及びプログラム
JP2014131554A (ja) 2013-01-07 2014-07-17 Dna:Kk ゲーム媒体を推奨するサーバ装置及びプログラム
JP2018015542A (ja) 2016-07-14 2018-02-01 株式会社コナミデジタルエンタテインメント ゲームシステム、ゲーム装置及びプログラム
JP2019503540A (ja) 2016-01-14 2019-02-07 アップテイク テクノロジーズ、インコーポレイテッド ローカライズ型のテンポラルモデル予測

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5879899B2 (ja) 2011-10-12 2016-03-08 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
JP5826721B2 (ja) 2012-07-19 2015-12-02 日本電信電話株式会社 欠損値予測装置及び商品推薦装置及び方法及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009140454A (ja) 2007-12-11 2009-06-25 Sony Corp データ処理装置、データ処理方法、及びプログラム
JP2014131554A (ja) 2013-01-07 2014-07-17 Dna:Kk ゲーム媒体を推奨するサーバ装置及びプログラム
JP2019503540A (ja) 2016-01-14 2019-02-07 アップテイク テクノロジーズ、インコーポレイテッド ローカライズ型のテンポラルモデル予測
JP2018015542A (ja) 2016-07-14 2018-02-01 株式会社コナミデジタルエンタテインメント ゲームシステム、ゲーム装置及びプログラム

Also Published As

Publication number Publication date
JP2019164753A (ja) 2019-09-26
JP7474832B2 (ja) 2024-04-25
JP2023040035A (ja) 2023-03-22

Similar Documents

Publication Publication Date Title
JP6438612B1 (ja) ゲームプログラムを検査するためのシステム、方法、プログラム、機械学習支援装置、及びデータ構造
JP7474832B2 (ja) ゲームプログラムを検査するためのシステム、方法、プログラム、機械学習支援装置、及びデータ構造
US10783057B2 (en) Testing as a service for cloud gaming
JP2018116695A (ja) コンピューティングリソースによって処理される複数のゾーンへの3dシーンの自動区分化
Albaghajati et al. Video game automated testing approaches: An assessment framework
Kelly et al. Emergent solutions to high-dimensional multitask reinforcement learning
US11789846B2 (en) Method and system for using stacktrace signatures for bug triaging in a microservice architecture
US20210394071A1 (en) System and method for extracting combinations of arbitrary numbers of media, included in possessed medium group and having high frequencies of occurrence
CN108830383A (zh) 用于展示机器学习建模过程的方法及系统
Shi et al. Online level generation in Super Mario Bros via learning constructive primitives
Amiri-Chimeh et al. Rings: A game with a purpose for test data generation
McGregor et al. Interactive visualization for testing markov decision processes: MDPVIS
Carta Metadata and video games emulation: an effective bond to achieve authentic preservation?
WO2023022149A1 (ja) 不具合原因を推定するための方法、プログラム、システム、及び装置
KR102641885B1 (ko) 게임 제공 장치에서 결제 분석 정보를 제공하는 방법 및 게임 제공 장치
Nova et al. Charting the uncharted with GUR: how AI playtesting can supplement expert evaluation
Lott et al. Python Object-Oriented Programming: Build robust and maintainable object-oriented Python applications and libraries
Niederkofler et al. Knowledge models for diagnosing postharvest diseases of apples
Taesiri et al. A video game testing method utilizing deep learning
Barros et al. Big data analytics in cloud gaming: Players' patterns recognition using artificial neural networks
Dočkalová Burská et al. Using data clustering to reveal trainees’ behavior in cybersecurity education
CN116974879A (zh) 用于测试信息技术资产的测试计划的基于机器学习生成
Vermillion et al. Linking normative and descriptive research with serious gaming
US20240184660A1 (en) Method, program, system, and device for estimating cause of problem
Barus et al. Mobile game testing: Case study of a puzzle game genre

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210319

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210409

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220418

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220616

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220812

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221121

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221220

R150 Certificate of patent or registration of utility model

Ref document number: 7199203

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150