JP7053931B1 - 不具合原因を推定するための方法、プログラム、システム、及び装置 - Google Patents

不具合原因を推定するための方法、プログラム、システム、及び装置 Download PDF

Info

Publication number
JP7053931B1
JP7053931B1 JP2021132934A JP2021132934A JP7053931B1 JP 7053931 B1 JP7053931 B1 JP 7053931B1 JP 2021132934 A JP2021132934 A JP 2021132934A JP 2021132934 A JP2021132934 A JP 2021132934A JP 7053931 B1 JP7053931 B1 JP 7053931B1
Authority
JP
Japan
Prior art keywords
log data
game
game state
combination
action
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
JP2021132934A
Other languages
English (en)
Other versions
JP2023027673A (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 JP2021132934A priority Critical patent/JP7053931B1/ja
Application granted granted Critical
Publication of JP7053931B1 publication Critical patent/JP7053931B1/ja
Priority to CN202280068971.2A priority patent/CN118103821A/zh
Priority to PCT/JP2022/030951 priority patent/WO2023022149A1/ja
Publication of JP2023027673A publication Critical patent/JP2023027673A/ja
Priority to US18/444,056 priority patent/US20240184660A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • 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/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • 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/45Controlling the progress of the video game
    • A63F13/49Saving the game status; Pausing or ending the game
    • 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/70Game security or game management aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】ゲームログデータから不具合原因を推定することが可能な方法を提供する。【解決手段】本発明の一実施形態の方法は、ユーザにより選択されたアクションに応じて進行し、ゲーム状態が更新されるゲームにおいて、ゲームログデータから不具合原因を推定するための方法であって、異常を示すラベルが付与されたログデータ配列である異常ログデータ配列のうちの一の異常ログデータ配列が含む不具合発生前のアクションと該アクションに関連するゲーム状態が含む所定のゲーム状態要素との組み合わせがゲームログデータに含まれる異常ログデータ配列において存在する度合と、該組み合わせがゲームログデータに含まれる正常を示すラベルが付与されたログデータ配列である正常ログデータ配列において存在する度合とに基づいて、該組み合わせが不具合を発生させる原因か否かを決定するステップ、を含む。【選択図】図1

Description

本発明は、不具合原因を推定するための方法、プログラム、システム、及び装置に関し、特にゲームログデータから不具合原因を推定するための方法、プログラム、システム、及び装置に関する。
近年、ネットワークを通じて複数のプレイヤが参加可能なオンラインゲームを楽しむプレイヤが増えている。当該ゲームは、携帯端末装置がゲーム運営者のサーバ装置と通信を行うゲームシステムなどにより実現され、携帯端末装置を操作するプレイヤは、他のプレイヤと対戦プレイを行うことができる。
ゲーム運営者は、ゲームを提供するにあたっては、ゲームプログラムを検査してバグを検出しておく必要がある。一般的に、このような検査を効率化する技術は、Quality Assurance(QA)技術と呼ばれる。
特許第6438612号
「Cygames、ゲームデバッグ自動化 AIシステム開発」、[online]、[令和3年7月27日検索]、インターネットURL:https://www.nikkan.co.jp/articles/view/00591096
QAを行うゲームとして、カードやキャラクタなどの組み合わせ(以下、「カード組み合わせ」という。)に応じて様々なアクションが実行されるデジタルコレクタブルカードゲーム(DCCG)と呼ばれるカードゲームが挙げられる。カードの種類の増大は、ゲームの戦略性を飛躍的に向上させる一方で、検証するべき状況の数も爆発的に増大させる。このように爆発的に増大するカード組み合わせについて、人力でのテストプレイにより網羅的に検証することは、膨大な人数と膨大な時間を投入する必要があるため、極めて困難であった。QAに関するシステムとしては、例えば特許文献1はユーザにより実行される可能性がより高いアクションの推論を行い、ゲームプログラムを検査することが可能なシステム等を開示している。またQAに関するシステムとしては、例えば、AI技術を用いたゲームデバッグの自動化が実現されている(非特許文献1)。
このような中で、ゲーム運営者にとっては、ゲームにおける組み合わせパターンに由来する不具合の原因が分かれば、ゲーム運営やゲーム開発の更なる効率化が期待できるため、その不具合原因を推定することが求められていた。本発明は、このような課題を解決するためになされたものであり、ゲームログデータから不具合原因を推定することが可能な方法等を提供することを目的とする。
〔1〕本発明の一実施形態の方法は、
ユーザにより選択されたアクションに応じて進行し、ゲーム状態が更新されるゲームにおいて、ゲームログデータから不具合原因を推定するための、コンピュータにより実行される方法であって、該ゲーム状態は複数のゲーム状態要素を含んで構成され、該ゲームログデータは複数のログデータ配列を含み、ログデータ配列の各々は正常又は異常を示すラベルが付与されるものであり、該方法は、
異常を示すラベルが付与されたログデータ配列である異常ログデータ配列のうちの一の異常ログデータ配列が含む不具合発生前のアクションと該アクションに関連するゲーム状態が含む所定のゲーム状態要素との組み合わせがゲームログデータに含まれる異常ログデータ配列において存在する度合と、該組み合わせがゲームログデータに含まれる正常を示すラベルが付与されたログデータ配列である正常ログデータ配列において存在する度合とに基づいて、該組み合わせが不具合を発生させる原因か否かを決定するステップ、を含む方法である。
〔2〕本発明の一実施形態では、
前記決定するステップは、一の異常ログデータ配列が含む不具合発生前のアクションと該アクションに関連するゲーム状態が含む所定のゲーム状態要素との組み合わせがゲームログデータに含まれる異常ログデータにおいて存在する度合に基づく値の、該組み合わせがゲームログデータに含まれる正常ログデータ配列において存在する度合に基づく値に対する比率が所定値以上であるときに、該組み合わせが不具合を発生させる原因であると決定することを含む、〔1〕に記載の方法である。
〔3〕本発明の一実施形態では、
ログデータ配列の各々に対して正常又は異常を示すラベルを付与するステップを含む、〔1〕又は〔2〕に記載の方法である。
〔4〕本発明の一実施形態では、
前記方法は、
一の異常ログデータ配列が含む不具合発生前のアクションに関連するゲーム状態が含むゲーム状態要素から所定のゲーム状態要素を抽出するステップを含み、
前記決定するステップは、一の異常ログデータ配列が含む不具合発生前のアクションと前記抽出された所定のゲーム状態要素との組み合わせがゲームログデータに含まれる異常ログデータ配列において存在する度合と、該組み合わせがゲームログデータに含まれる正常ログデータ配列において存在する度合とに基づいて、該組み合わせが不具合を発生させる原因か否かを決定することを含む、〔1〕から〔3〕のいずれか1つに記載の方法である。
〔5〕本発明の一実施形態では、
前記決定するステップは、一の異常ログデータ配列が含む不具合発生直前の1つのアクションと該アクションの直前のゲーム状態が含む所定のゲーム状態要素との組み合わせがゲームログデータに含まれる異常ログデータ配列において存在する度合と、該組み合わせがゲームログデータに含まれる正常ログデータ配列において存在する度合とに基づいて、該組み合わせが不具合を発生させる原因か否かを決定することを含む、〔1〕から〔4〕のいずれか1つに記載の方法である。
〔6〕本発明の一実施形態では、
前記決定するステップは、一の異常ログデータ配列が含む不具合発生直前の2以上のアクションと該2以上のアクションの各々の直前のゲーム状態の各々が含む所定のゲーム状態要素との組み合わせがゲームログデータに含まれる異常ログデータ配列において存在する度合と、該組み合わせがゲームログデータに含まれる正常ログデータ配列において存在する度合とに基づいて、該組み合わせが不具合を発生させる原因か否かを決定することを含む、〔1〕から〔4〕のいずれか1つに記載の方法である。
〔7〕本発明の一実施形態のプログラムは、〔1〕から〔6〕のいずれか1つに記載の方法の各ステップをコンピュータに実行させる。
〔8〕本発明の一実施形態の推定システムは、
ユーザにより選択されたアクションに応じて進行し、ゲーム状態が更新されるゲームにおいて、ゲームログデータから不具合原因を推定するための推定システムであって、該ゲーム状態は複数のゲーム状態要素を含んで構成され、該ゲームログデータは複数のログデータ配列を含むものであり、該推定システムは、
ログデータ配列の各々に対して正常又は異常を示すラベルを付与し、
異常を示すラベルが付与されたログデータ配列である異常ログデータ配列のうちの一の異常ログデータ配列が含む不具合発生前のアクションと該アクションに関連するゲーム状態が含む所定のゲーム状態要素との組み合わせがゲームログデータに含まれる異常ログデータ配列において存在する度合と、該組み合わせがゲームログデータに含まれる正常を示すラベルが付与されたログデータ配列である正常ログデータ配列において存在する度合とに基づいて、該組み合わせが不具合を発生させる原因か否かを決定する、推定システムである。
〔9〕本発明の一実施形態の推定装置は、
ユーザにより選択されたアクションに応じて進行し、ゲーム状態が更新されるゲームにおいて、ゲームログデータから不具合原因を推定するための推定装置であって、該ゲーム状態は複数のゲーム状態要素を含んで構成され、該ゲームログデータは複数のログデータ配列を含み、ログデータ配列の各々は正常又は異常を示すラベルが付与されており、
異常を示すラベルが付与されたログデータ配列である異常ログデータ配列のうちの一の異常ログデータ配列が含む不具合発生前のアクションと該アクションに関連するゲーム状態が含む所定のゲーム状態要素との組み合わせがゲームログデータに含まれる異常ログデータ配列において存在する度合と、該組み合わせがゲームログデータに含まれる正常を示すラベルが付与されたログデータ配列である正常ログデータ配列において存在する度合とに基づいて、該組み合わせが不具合を発生させる原因か否かを決定する、推定装置である。
本発明によれば、ゲームログデータから不具合原因を推定することができる。
本発明の一実施形態の推定装置のハードウェア構成を示すブロック図である。 本発明の一実施形態の推定装置の機能ブロック図である。 ユーザの端末装置のディスプレイに表示される本実施形態のゲームのゲーム画面の一例である。 ReplaylogMatrixnの一例を示す図である。 本発明の一実施形態の推定装置の推定処理を示すフローチャートである。決定処理を示すフローチャートである。
以下、図面を参照して、本発明の実施形態について説明する。本発明の実施形態の推定装置10は、ユーザ(プレイヤ)により選択されたアクションに応じて進行し、ゲーム状態が更新されるゲームにおいて、ゲームログデータから不具合原因を推定するための推定装置である。例えば上記のゲームは、あるゲーム状態においてユーザがアクションを選択すると、選択されたアクション(攻撃やイベントなど)が実行され、ゲーム状態が更新されるようなゲームであり、例えば対戦型カードゲームである。
推定装置10は、1又は複数の装置を含んで構成される不具合原因を推定するための推定システムの1つの例であるが、以下の実施形態においては、説明の便宜上、1つの装置として説明する。本実施形態では、ゲーム状態又はアクションは、ゲーム状態のデータ又はアクションのデータを意味することができる。
本実施形態において説明する対戦型カードゲーム(本実施形態のゲーム)は、一般的なオンラインゲームと同様に、1又は複数のサーバ装置を含んで構成されるゲームサーバにより提供される。ゲームサーバは、ゲーム用のアプリケーションであるゲームプログラムを記憶し、ゲームをプレイする各ユーザの端末装置とネットワークを介して接続される。各ユーザが端末装置にインストールされたゲームアプリを実行している間、端末装置はゲームサーバと通信を行い、ゲームサーバは、ネットワークを介したゲームサービスを提供する。このとき、ゲームサーバは、ゲームに関するログデータであるゲームログデータを記憶する。当該ゲームログデータは、複数のログデータ配列(ログデータ要素配列)を含み、1つのログデータ配列は、複数のログデータ要素を含む。例えば1つのログデータ配列は、1つのバトルの履歴を示すものであり、当該バトルに関する複数のログデータ要素を含むものである。また、例えば1つのログデータ要素は、1つのゲーム状態においてユーザが実行したアクションを示すデータや当該1つのゲーム状態を示すデータである。ただし、ログデータ配列の各々は、1つのバトル以外の所定のイベント又は所定の時間などに関連する複数のログデータ要素を含むログデータ要素の集合とすることもできる。例えば、ゲームログデータはリプレイログであり、ログデータ配列はリプレイログ要素配列であり、ログデータ要素はリプレイログ要素である。
本実施形態では、クライアント(ユーザの端末装置)、ゲームサーバ、データベースサーバ、通信用サーバ等の、ゲームサービスを構成する全ての要素の仮想化、すなわち、エンドツーエンドの仮想化を実現した仮想環境が用いられる。その仮想環境において、AIが自動プレイを行うことにより、ゲームサービスの挙動をログデータとして取得することができる。この仕組みにより、リプレイログへのラベル付けを容易に実装することができる。1つの例では、当該仮想環境は、自動プレイ中にエラーを検出することなく終了できた場合のログデータに「正常」というラベルを付与し、自動プレイ中にエラーを検出した場合のログデータに「異常」というラベルを付与する。このような構成とすることにより、リプレイログへのラベル付けを容易に行うことが可能となる。ただし、本実施形態では、説明の便宜上、推定装置10がラベルを付与する機能を備えるものとして説明する。なお、仮想環境に関する技術は、例えば特開2019-193702号公報に記載されている。ただし、ログデータの取得方法は、上記の方法に限定されない。
本実施形態のゲームは、複数のカードを含んで構成される所有カード群からユーザがカードを選択して当該カードを場(ゲームフィールド)43に出すことで、カードやクラスの組み合わせに応じて様々なイベントが実行されて進行する。また本実施形態のゲームは、ユーザ端末装置を操作するユーザ自身である自ユーザと他のユーザ端末装置を操作する他ユーザの各々が所有カード群からカードを選択して場43に出して対戦する対戦ゲームである。本実施形態のゲームにおいて、各カード41は、カードID、カード種別、ヒットポイント、攻撃力、属性などのパラメータを含むカード定義情報を有し、各クラスは、クラス定義情報を有する。
図3は、ユーザの端末装置のディスプレイに表示される本実施形態のゲームのゲーム画面の一例である。ゲーム画面は、自ユーザと他ユーザのカードバトルのゲーム画面40を示すものである。ゲーム画面40は、自ユーザの手札42aと、他ユーザの手札42bとを示している。手札42a及び手札42bは、キャラクタ、アイテム又はスペルに関連付けられたカード41を含む。ゲームは、自ユーザが他ユーザの手札42bのカード41を確認できないように構成される。ゲーム画面40は、自ユーザの山札44a及び他ユーザの山札44bも示している。なお、自ユーザ又は他ユーザは、実際のプレイヤではなく、ゲームAIなどのコンピュータにより操作されてもよい。
各ユーザが所有する所有カード群は、ユーザの手札42(42a又は42b)及びユーザの山札44(44a又は44b)から構成され、一般的にカードデッキと呼ばれるものである。ユーザが所有する各カード41が手札42に含まれるか山札44に含まれるかは、ゲームの進行に応じて決定される。手札42は、ユーザが選択可能であり、場43に出すことが可能なカード群であり、山札44は、ユーザが選択不可能なカード群である。所有カード群は、複数のカード41から構成されるものであるが、ゲームの進行上、所有カード群は1枚のカード41から構成される場合もある。なお、各ユーザのカードデッキは、すべて異なる種類のカード41により構成されてもよいし、同じ種類のカード41を一部含んで構成されてもよい。また、自ユーザのカードデッキを構成するカード41の種類は、他ユーザのカードデッキを構成するカード41の種類と異なってもよい。また、各ユーザが所有する所有カード群は、手札42のみから構成されてもよい。
ゲーム画面40は、自ユーザの選択したキャラクタ45aと、他ユーザの選択したキャラクタ45bとを示す。ユーザが選択するキャラクタ45a、45bは、カードと関連付けられるキャラクタとは異なるものであり、所有カード群のタイプを示すクラスを定める。本実施形態のゲームは、クラスに応じて、ユーザが所有するカード41が異なるように構成される。1つの例では、本実施形態のゲームは、各ユーザのカードデッキを構成することができるカードの種類が、クラスに応じて異なるように構成される。ただし、本実施形態のゲームは、クラスを含まないこともできる。この場合、本実施形態のゲームは、上記のようなクラスによる限定を行わず、ゲーム画面40は、自ユーザの選択したキャラクタ45aと、他ユーザの選択したキャラクタ45bとを表示しないものとすることもできる。
本実施形態のゲームの詳細としては、以下のようなゲームを想定している。
・1つの対戦(カードバトル)が複数のターンを含む対戦ゲームである。
・カードデッキは、40枚のカード41から構成され、対戦開始時における各ユーザの手札42と山札44のカード41の合計は、各々40枚である。
・自ユーザ又は他ユーザは、各ターンにおいて、自身のカード41を選択するなどの操作を行うことにより、相手のカード41若しくはキャラクタ45を攻撃することができ、又は、所定の効果若しくはイベントを発生させることができる。
・カード41は、ユーザ1の手札42a、ユーザ2の手札42b、ユーザ1の山札44a、ユーザ2の山札44b、場43、墓場、消滅、拡張的な場所A、拡張的な場所B、又は無のいずれかの場所に存在する。
・一のカード41が一のユーザの手札42から場43に出された場合、一のユーザの手札42から1枚カードが減り、場43のカードが一枚増える。
・場43に出されたカード41は、他のカード41が場に出されることにより、消滅するか、墓場に置かれるか、又は他の拡張的な場所に置かれる。
・カード41は、手札42から場43に出したときに効果を発動して新たなカードを生成するカードを含み、生成されたカード(トークンカード)は、対戦開始時の各ユーザの手札42と山札44のカード41に含まれないカードである。
・トークンカードの枚数は、カードデッキを構成するカード41により異なるが、20枚程度であることが多い。
・手札42又は山札44にあるカード41は、強化効果などの状態変化をすることがある。
・手札42にあるカード41は、他のカード41と融合することがある。
・墓場に置かれたカード41は、場43に戻ることがあり、又は無に置かれることがある。
・場43に出されたカード41は、進化や状態変化などの付加的な状態を持つ。
リプレイログは、上述するような情報の履歴を網羅的に含むものとすることができる。上述の本実施形態のゲームは、1つの例示であって、これに限定されるものではないが、本実施形態の推定装置10が対象とするゲームは、所定の枚数のカードが、状態変化を伴いながら所定の場所を移動し、勝敗が決するようなゲームである。
図1は本発明の一実施形態の推定装置10のハードウェア構成を示すブロック図である。推定装置10は、プロセッサ11、入力装置12、表示装置13、記憶装置14、及び通信装置15を備える。これらの各構成装置はバス16によって接続される。なお、バス16と各構成装置との間には必要に応じてインタフェースが介在しているものとする。推定装置10は、一般的なサーバやPC等と同様の構成を含む。
プロセッサ11は、推定装置10全体の動作を制御する。例えばプロセッサ11は、CPUである。プロセッサ11は、記憶装置14に格納されているプログラムやデータを読み込んで実行することにより、様々な処理を実行する。プロセッサ11は、複数のプロセッサから構成されてもよい。
入力装置12は、推定装置10に対するユーザからの入力を受け付けるユーザインタフェースであり、例えば、タッチパネル、タッチパッド、キーボード、マウス、又はボタンである。表示装置13は、プロセッサ11の制御に従って、アプリケーション画面などを推定装置10のユーザに表示するディスプレイである。
記憶装置14は、主記憶装置及び補助記憶装置を含む。主記憶装置は、例えばRAMのような半導体メモリである。RAMは、情報の高速な読み書きが可能な揮発性の記憶媒体であり、プロセッサ11が情報を処理する際の記憶領域及び作業領域として用いられる。主記憶装置は、読み出し専用の不揮発性記憶媒体であるROMを含んでいてもよい。補助記憶装置は、様々なプログラムや、各プログラムの実行に際してプロセッサ11が使用するデータを格納する。補助記憶装置は、情報を格納できるものであればいかなる不揮発性ストレージ又は不揮発性メモリであってもよく、着脱可能なものであっても構わない。
通信装置15は、ネットワークを介してユーザ端末又はサーバなどの他のコンピュータとの間でデータの授受を行うことが可能なモジュール、デバイス、又は装置である。通信装置15は、無線通信用のデバイスやモジュールなどとすることもできるし、有線通信用のデバイスやモジュールなどとすることもできる。
推定装置10は、ゲームに関するログデータであるリプレイログを、ゲームサーバから取得できるように構成される。リプレイログは、1つのバトルごとのログデータであるリプレイログ要素配列を複数含んで構成される。リプレイログは、ゲーム状態のデータ及びアクションのデータを含む。例えばリプレイログ要素配列の各々は、時間の経過に沿って並べられたゲーム状態のデータ及びアクションのデータを含む。この場合、ゲーム状態のデータやアクションのデータの各々がリプレイログ要素である。1つの例では、リプレイログ要素配列は、ターンごとかつユーザごとの、各ユーザが選択したカード41と、これに関連する攻撃の情報とを含む。1つの例では、リプレイログ要素配列は、ターンごとかつユーザごとの、各ユーザが選択したカード41と、これに関連する発生した所定の効果又はイベントの情報とを含む。ただし、リプレイログ要素配列は、1つのバトル以外の予め決められた単位ごとのログデータであってもよい。
ゲーム状態のデータは、ゲーム内のすべての場所(例えばユーザ1の手札42a、ユーザ2の手札42b、ユーザ1の山札44a、ユーザ2の山札44b、場43、墓場、消滅、操縦、融合素材、無)に存在するカード41に関するデータを含む。ゲーム状態のデータの各々は、ゲームの進行に応じたその時々のゲーム状態に対応するデータである。ただし、ゲーム状態は、少なくとも、ユーザがゲームプレイを通じて、例えばゲーム操作やゲーム画面上の表示を通じて、視認又は認知できる情報を示すものであれば、上記に限定されない。
アクションは、あるゲーム状態においてユーザ操作により実行され、当該ゲーム状態を変化させうるものである。例えばアクションは、一のカード41若しくはキャラクタ45の他のカード41若しくはキャラクタ45に対する攻撃であり、又は一のカード41若しくはキャラクタ45による所定の効果若しくはイベントの発生などである。例えばアクションは、ユーザがカード41などを選択することにより実行される。アクションのデータの各々は、ゲーム状態の各々においてユーザにより選択されたアクションに対応するデータである。1つの例では、アクションのデータは、一のゲーム状態において、ユーザが攻撃させようとするカード41と攻撃対象のカード41を選択したことを示すデータを含む。1つの例では、アクションのデータは、一のゲーム状態において、ユーザが使用するカード41を選択したことを示すデータを含む。
本実施形態では、リプレイログは、場43の状態を示す木構造のテキストデータのゲーム状態のデータと、そのゲーム状態においてユーザが実行したアクションのデータの列により定義される。1つのリプレイログ要素配列Replaylognは、初期のゲーム状態と最初のアクションの対と、アクションの影響を受けた結果としてのゲーム状態と次のアクションの対とを含み、かつ最終的に勝敗が決した最終のゲーム状態で終端した配列又は進行が不可能なエラーが生じた最終のゲーム状態で終端した配列であり、式(1)で表すことができる。
Figure 0007053931000002
(1)
ここで、Replaylognはn番目のリプレイログ要素配列を示し、Stateiは、i番目のゲーム状態を示し、Actioniは、i番目に実行されたアクションを示し、Stateeは、勝敗、引き分け、又は無効試合などの最終のゲーム状態を示す。なお、n番目のリプレイログ要素配列ReplaylognのStateiとActioniであることを明示するため、式(1)は、以下の式で表すこともできる。
Figure 0007053931000003
以下の説明において、
Figure 0007053931000004
のnのような上付き添字は、特に言及が無い限り、Replaylogを識別するための識別番号又は識別子に対応する文字として示される。
1つの例では、ゲームの1つの場面の状態を表すStateiは、ゲーム内のすべての場所に存在するカード41の集合であり、式(2)に示すベクトルSvi(Stateベクトル)で表すことができる。
Figure 0007053931000005
(2)
ここで、card1~cardkは、各カードを示すカード要素であり、カードの状態をcard.stateとしてカードのID内にエンコードしたものであり、Sviは、式(2)に示すように、k次元のベクトルとして表される。対戦開始時の2人のユーザの手札42と山札44のカード41の合計が80枚であり、ゲームの進行中に生成されるトークンカードが約20枚であることから、kは、大凡100である。本実施形態では、説明の便宜上、以下ではk=100として説明するが、この値に限定されない。また本実施形態では、card1~cardkは、k種類のカードを示すものである。
本実施形態では、カードの状態は、表1に示す26通りであり、card1~cardkの各々において26通りのIDを持つ。このように、状態の異なるカードは、異なる識別子を持つように構成される。
Figure 0007053931000006
このように、card.stateを用いたStateiを用いることにより、ゲームのある特定のシーンの状態を、k次元の数値ベクトルとしてエンコードすることができる。また、このベクトルの次元数は、1つのバトル内では不変であるため、Stateベクトルの配列を、行列としてモデル化することができる。したがって、式(3)に表すように、1つのリプレイログ要素配列(replaylogn)は、1つの行列、ReplaylogMatrixnとしてモデル化できる。
Figure 0007053931000007
(3)
1つの例では、ゲーム内に2000種類のカードがあるとき、Stateベクトルは、cardj(j=1~2000)の2000次元のベクトルである。この場合、ゲームの1つの場面の状態を52000(=2000×26)個のIDの組み合わせとして表現することができる。なお、この場合、1つのバトル(リプレイログ要素配列)において、多くの種類のカードは出現せず、出現しないカードは、表1に示す26通りのいずれの状態でもないため、表1に示すIDを持たないこととなる。
図2は本発明の一実施形態の推定装置10の機能ブロック図である。推定装置10は、ラベリング部21、ゲーム状態配列データ生成部22、アクション配列データ生成部23、データ抽出部24、及び決定部25を備える。本実施形態においては、記憶装置14に記憶されている又は通信装置15を介して受信したプログラムがプロセッサ11により実行されることによりこれらの機能が実現される。このように、各種機能がプログラム読み込みにより実現されるため、1つのパート(機能)の一部又は全部を他のパートが有していてもよい。ただし、各機能の一部又は全部を実現するための電子回路等を構成することによりハードウェアによってもこれらの機能は実現してもよい。
ラベリング部21は、リプレイログに含まれるリプレイログ要素配列の各々に対して正常又は異常を示すラベルを付与する。ラベリング部21は、正常終了したリプレイログ要素配列に対しては正常を示すラベルを付与し、異常終了したリプレイログ要素配列に対しては異常を示すラベルを付与する。このようにして、リプレイログが含むリプレイログ要素配列は、正常を示すラベルが付与されたリプレイログ要素配列である正常ログデータ配列(正常ログデータ要素配列)の集合Rと、異常を示すラベルが付与されたリプレイログ要素配列である異常ログデータ配列(異常ログデータ要素配列)の集合Iとに分けられる。本実施形態では、ゲームサービスを構成する全ての要素の仮想化を実現した仮想システムが、ゲームサービスの挙動をログデータとして取得することができる。1つの例では、仮想システムは、10万回以上のバトルを実行し、バトルの結果、クライアント側のエラーログ、サーバ側のエラーログ、及びリプレイログのスナップショットなどを網羅的に保存する。なお、ラベルを付与することは、フラグを立てることなどの同等の機能を意味することができる。
1つの例では、ラベリング部21は、式(4)に示すlabel関数を用いて実現される。
Figure 0007053931000008
(4)
label関数は、i番目のReplaylogiに対応するクライアント側又はサーバ側ログデータであるcslog_iを参照する。cslog_iは、Replaylogiに関連付けて、ゲームサーバと、ゲームが実行されるクライアントとに記憶されるログである。label関数は、Replaylogiが正常終了した場合はRegularラベルを返却し、Replaylogiが異常終了した場合、すなわち不具合が発生した場合はIrregularラベルを返却する。
label関数は、ログデータ内の文字列照合のみで実装することができる。例えば、無効試合(NO CONTEST)の場合、サーバ側のエラーログ内に“NO CONTEST”という文字列が記録されているため、label関数は、この文字列を検索することで不具合が生じたか否かを判定することができる。例えば、クライアント側エラーの場合、label関数は、“NullPointerException”のようなスタックトレースに出力される所定のエラー文字列を照合することにより、不具合が生じたか否かを判定することができる。
ゲーム状態配列データ生成部22は、一のリプレイログ要素配列から、ゲーム状態のデータを時間順に並べたゲーム状態配列データ(ReplaylogMatrixn)を生成する。ゲーム状態配列データ生成部22は、集合Rが含むリプレイログ要素配列の各々と、集合Iが含むリプレイログ要素配列の各々において、ゲーム状態配列データを生成する。1つの例では、ゲーム状態配列データは、生成元のリプレイログ要素配列と関連付けられている。
1つの例では、ゲーム状態配列データ生成部22は、式(5)に示すencode_state関数を用いて実現される。
Figure 0007053931000009
(5)
encode_state関数は、リプレイログ要素配列Replaylognが含むすべてのゲーム状態を式(2)で示すStateベクトルに変換し、式(3)で示すReplaylogMatrixnに変換する。ReplaylogMatrixnは、Stateベクトルの配列であり、i番目のStateベクトル
Figure 0007053931000010
は、当該リプレイログ要素配列において初期のゲーム状態からi回変化したゲーム状態に対応するベクトルである。Stateベクトルの各々は、ゲーム中に扱われる100枚のカードの状態を網羅的に記録したものである。
図4は、ReplaylogMatrixnの一例を示す図である。行の要素のc1~c2600は、card1~card100の各々の26の状態を表し、例えばc1~c26は、card1の26の状態を表す。列の要素は、各々Stateベクトルに対応し、1行目がSv0、最終行目がSveに対応し、上から下へ時間順に並んでいる。行列の各要素は、「0」か「1」が格納され、そのときのゲーム状態が含むカード状態であれば「1」が格納され、そうでない場合は「0」が格納される。
アクション配列データ生成部23は、一のリプレイログ要素配列から、アクションのデータを時間順に並べたアクション配列データを生成する。アクション配列データ生成部23は、集合Rが含むリプレイログ要素配列の各々においてアクション配列データRactionを生成し、集合Iが含むリプレイログ要素配列の各々においてアクション配列データIactionを生成する。1つの例では、アクション配列データは、生成元のリプレイログ要素配列と関連付けられている。
1つの例では、アクション配列データ生成部23は、式(6)に示すencode_action関数を用いて実現される。
Figure 0007053931000011
(6)
encode_action関数は、リプレイログ要素配列を受け取り、リプレイログ要素配列が含むアクションのデータを抽出したRaction又はIactionのアクション配列データを生成する。
Figure 0007053931000012
は、Replaylognの最初のアクションを示し、
Figure 0007053931000013
は、Replaylognの最後のアクションを示す。集合Rが含むα番目のReplaylogαから生成されるアクション配列データRactionと、集合Iが含むβ番目のReplaylogβから生成されるアクション配列データIactionは、式(7)、式(8)のようにモデル化される。
Figure 0007053931000014
(7)
Figure 0007053931000015
(8)
データ抽出部24は、一の異常ログデータ配列が含む不具合発生前のアクションに関連するゲーム状態が含むカード要素から所定のカード要素を抽出する。所定のカード要素は、ゲーム状態が含むカード要素の少なくとも一部のカード要素である。1つの例では、データ抽出部24は、不具合原因を推定する対象の異常ログデータ配列の各々において、異常ログデータ配列が含む不具合発生前のアクションに関連するゲーム状態が含むカード要素から所定のカード要素を抽出する。本実施形態では、データ抽出部24は、一の異常ログデータ配列が含む不具合発生直前のアクションの直前の1つのゲーム状態が含むカード要素から所定のカード要素を抽出する。
1つの例では、データ抽出部24は、式(9)に示すcombination関数を用いて実現される。
Figure 0007053931000016
(9)
combination関数は、1つのゲーム状態を示すStateベクトルから、カード要素w個(card0、card2…cardq)の組み合わせを抽出(出力)する。データ抽出部24は、combination関数を用いて、一の異常ログデータ配列が含む不具合発生直前のアクションの直前の1つのゲーム状態(Stateベクトル)が含むカード要素から、カード要素w個の組み合わせを抽出する。このカード要素w個が、所定のカード要素であり、Sと呼ぶ。カード要素Sは、予め決められたw個(1≦w≦k)のカード要素であってもよいし、設定された規則に従ってゲーム状態に応じて抽出されたw個のカード要素であってもよい。なお、式(9)において、card0、card2…cardqの表記は1つの例示であって、これに限定されない。1つの例では、データ抽出部24は、アクション配列データIactionにより不具合発生直前のアクションを認識し、該アクションの直前の1つのゲーム状態Stateベクトルを取得し、該ゲーム状態が含むカード要素Sを抽出し、出力する。
決定部25は、不具合原因を推定する対象の一の異常ログデータ配列が含む不具合発生前のアクションと該アクションに関連するゲーム状態が含む所定のカード要素との組み合わせがリプレイログに含まれる異常ログデータ配列において存在する(含まれる)度合と、該組み合わせがリプレイログに含まれる正常ログデータ配列において存在する(含まれる)度合とに基づいて、該組み合わせが不具合を発生させる原因か否かを決定する。1つの例では、決定部25は、一の異常ログデータ配列が含む不具合発生前のアクションと該アクションに関連するゲーム状態が含む所定のカード要素との組み合わせがリプレイログに含まれる異常ログデータ配列において存在する度合に基づく値の、該組み合わせがリプレイログに含まれる正常ログデータ配列において存在する度合に基づく値に対する比率が所定値以上であるときに、該組み合わせが不具合を発生させる原因であると決定する。本実施形態では、決定部25は、一の異常ログデータ配列が含む不具合発生直前の1つのアクションと該アクションの直前の1つのゲーム状態が含む所定のカード要素との組み合わせがリプレイログに含まれる異常ログデータ配列において存在する度合と、該組み合わせがリプレイログに含まれる正常ログデータ配列において存在する度合とに基づいて、該組み合わせが不具合を発生させる原因か否かを決定する。
1つの例では、決定部25は、式(10)に示す相関ルール学習関数(SimulatedConfidence関数)を用いて実現される。
Figure 0007053931000017
(10)
ここで、Apは、不具合原因を推定する対象の不具合の発生直前のアクションを示し、SpはApの直前のゲーム状態が含むカード要素Sを示し、freq(Ap,Sp|Sp∈I)は、リプレイログに含まれる異常ログデータ配列においてSpを含むゲーム状態とApがこの順番(時間順)で存在(出現)する頻度を示す。換言すると、freq(Ap,Sp|Sp∈I)は、リプレイログに含まれる異常ログデータ配列におけるAとSの共起頻度を示す。S’pは、正常ログデータ配列に含まれるSpと同一のカード要素Sを示し、freq(Ap,S’p|S’p∈I)は、リプレイログに含まれる正常ログデータ配列においてS’pを含むゲーム状態とApがこの順番(時間順)で存在(出現)する頻度を示す。相関ルール学習関数は、不具合発生直前のアクションApと、その直前のゲーム状態が含むカード要素Spとの、不具合発生に関する相関関係の強さを示すものである。決定部25は、相関ルール学習関数の出力値が閾値tを超えるApとSpとのペアを、「不具合を引き起こす原因要素」として特定する。決定部25は、相関ルール学習関数を実装する場合、最初にfreq(Ap,Sp|Sp∈I)を計算し、計算値が閾値itを超えるApとSp(S’p)のペアをfreq(Ap,S’p|S’p∈I)の計算対象として、当該関数を用いる。なお、式(10)は、ゼロによる除算を防止するために1などの所定値を分母に加えてもよい。或いは、分子や分母に所定の値を加算又は減算することにより、相関関係の出力値を調整してもよい。
1つの例では、決定部25は、freq(Ap,Sp|Sp∈I)を算出するとき、IactionからアクションApと同じアクションAiを抽出し、Stateベクトルを参照して抽出したアクションAiの直前のゲーム状態に含まれるカード要素がSpと同じものを含む異常ログデータ配列の数を算出する。この場合、決定部25は、freq(Ap,S’p|S’p∈I)を算出するとき、RactionからアクションApと同じアクションAiを抽出し、Stateベクトルを参照して抽出したアクションAiの直前のゲーム状態に含まれるカード要素がSp(S’p)と同じものを含む正常ログデータ配列の数を算出する。
次に、本発明の一実施形態の推定装置10の推定処理について図5に示したフローチャートを用いて説明する。
ステップ101において、ラベリング部21は、リプレイログに含まれるリプレイログ要素配列の各々に対して正常又は異常を示すラベルを付与する。
ステップ102において、データ抽出部24は、不具合原因を推定する対象の一の異常ログデータ配列が含む不具合発生前のアクションに関連するゲーム状態が含むカード要素から所定のカード要素を抽出する。
ステップ103において、決定部25は、不具合原因を推定する対象の一の異常ログデータ配列が含む不具合発生前のアクションと該アクションに関連するゲーム状態が含む所定のカード要素との組み合わせがリプレイログに含まれる異常ログデータ配列において存在する度合と、該組み合わせがリプレイログに含まれる正常ログデータ配列において存在する度合とに基づいて、該組み合わせが不具合を発生させる原因か否かを決定する。
次に、本発明の実施形態の推定装置10の主な作用効果について説明する。
本実施形態では、ゲームを構成するサービスすべてをエンドツーエンドで仮想化し、その仮想環境から、ゲームサービスの挙動をログデータとして取得することができる。この仕組みにより、リプレイログ要素配列の各々に対する正常又は異常を示すラベルの付与を容易に実装することができる。そして本実施形態では、決定部25は、不具合原因を推定する対象の一の異常ログデータ配列が含む不具合発生前のアクションと該アクションに関連するゲーム状態が含む所定のカード要素との組み合わせがリプレイログに含まれる異常ログデータ配列において存在する度合と、該組み合わせがリプレイログに含まれる正常ログデータ配列において存在する度合とに基づいて、該組み合わせが不具合を発生させる原因か否かを決定する。
不具合原因の推定に関しては、従来、プログラム解析技術を用いるアプローチや、バグレポートにデータマイニング技術を適用するアプローチがあるが、これらは、PVPゲームにおける無効試合や、クライアント/サーバ間のデータや挙動の不整合などのゲーム固有の不具合を網羅的に検出することはできなかった。特に、近年のゲームは、プログラムコード本体よりも、ゲーム内で使用するデータが果たす役割が増大しており、従来技術では検出できない、データ由来の不具合が多発している。
本実施形態のような構成とすることにより、原因を明らかにするためには人手の解析を必要とした、ゲームにおける組み合わせパターンに由来する不具合の原因を、ゲームログから自動的に見つけ出す(推定する)ことが可能となる。これにより、ゲーム運営やゲーム開発の更なる効率化を実現することが可能となる。
また本実施形態の推定装置10の大きな優位性は、これまで死蔵されてきた膨大な量の正常系リプレイログを、データマイニングにおける相関ルール学習(本実施形態における相関ルール学習関数の算出)に適用可能な情報資源に変換できることである。本実施形態が示す方式のように、ゲームを構成するサービスすべてをエンドツーエンドで仮想化し、その仮想環境から得られるあらゆるログデータを対象としてデータマイニングを適用する方式は提案されていない。このような仮想環境によるリプレイログを活用することにより、デバッグをより効率化することが可能となる。
また本実施形態の推定方法は、ターン制の対戦ゲームに幅広く適用可能なものであり、人間のプレイ傾向を模倣するAIによるデバッグを様々なジャンルに広げることが可能となる。また本実施形態の不具合を推定するための方法は、リプレイログが継続的に拡張される場合に対応可能な方法であり、長期間運用されるゲームタイトルに適したものである。また本実施形態においては、AIが自動プレイを担うため、新たにリリースされた新規カードに対しても、ゲームログデータから不具合原因を推定することが可能となる。また本実施形態における相関ルール学習は、極めて汎用性の高いアルゴリズムであり、特定のゲームジャンルや特定のデータには依存していない。したがって、ゲームのルールの変化に応じて、自動的にリプレイログ行列の次元数を増減させられるため、メンテナンスコストを低減させることが可能となる。
上記の作用効果は、特に言及が無い限り、他の実施形態や変形例においても同様である。
本発明の他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現するプログラムや該プログラムを格納したコンピュータ読み取り可能な記憶媒体とすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現する方法とすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現するプログラムをコンピュータに供給することができるサーバとすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現する仮想マシン又はクラウドシステムとすることもできる。
本発明の実施形態において、カード41(カード群)は、キャラクタやアイテムなどの媒体(媒体群)とすることができ、所有カード群は、ユーザが所有する複数の媒体を含んで構成される所有媒体群とすることができる。例えば媒体群がキャラクタとアイテムの媒体により構成される場合、ゲーム画面40は、カード41として、キャラクタ又はアイテムそのものを示すこととなる。同様にして、カード要素は、カードに限定されない媒体要素であるゲーム状態要素とすることができる。
本発明の実施形態において、カード要素の各々が持つカードの状態は、26通りに限定されず、任意の数の状態とすることができる。例えば、カードの状態について、card1~cardkの各々において30通りのIDを持ち、式(2)におけるk=10000の場合、図4に示すReplaylogMatrixnの列の要素はC1~C300000の30万個となる。またカード要素のカードの状態が識別できれば、カード要素が持つカード状態の情報は、本実施形態が示す方法に限定されない。
本発明の1又は複数の実施形態では、式(2)に示すcard1~cardkは、k種類のカードを示すものであるが、k種類のカードのうちの少なくとも一部のカードは、同一のカードであってもよい。この実施形態では、ゲーム状態配列データ生成部22は、そのときのゲーム状態が含むカード状態に応じて、ReplaylogMatrixnの行列の各要素に「0」又は「1」のいずれかを格納するように構成される。
本発明の1又は複数の実施形態では、式(2)に示すcard1~cardkは、すべて種類が異なるk種類のカードを示すものとすることができる。この実施形態においては、ゲーム状態配列データ生成部22は、ReplaylogMatrixnの行列の要素に「0」又は「1」以外の数値又は情報を格納することができる。例えばある1つのゲーム状態において同一のカードの状態(card.state)を持つ同一のカードが複数枚(例えば3枚)存在する場合(例えばある1つのゲーム状態において同一のカードが1人のユーザの手札に複数存在する場合)、ゲーム状態配列データ生成部22は、ReplaylogMatrixnの行列の対応する要素に、その数量(例えば「3」)又は該数量に対応する情報を格納するように構成される。
本発明の実施形態においては、ゲームサービスをエンドツーエンドで仮想化し、その仮想環境から、ゲームサービスの挙動をログデータとして取得することができる。仮想環境においては、処理の高速化を目的としてヘッドレスモードでゲームが実行されるため、クライアントはディスプレイを備えなくてもよい。図3が示すゲーム画面の例示は、ゲームの内容を説明するためのものであって、実際にディスプレイにゲーム画面を表示する必要はない。
本発明の実施形態においては、推定装置10以外の他のシステム、例えばゲームサービスをエンドツーエンドで仮想化した仮想環境が、ラベリング部21の機能を備えることができ、この場合、推定装置10は、ラベリング部21の機能を備えなくてもよい。この実施形態では、推定装置10は、正常又は異常を示すラベルが付与されたリプレイログを他のシステム(仮想環境)から受信できるように構成される。この実施形態では、図5に示すフローチャートはステップ101を含まなくてもよい。
本発明の変形例では、データ抽出部24は、一の異常ログデータ配列が含む不具合発生直前のM個(M≧2)のアクションの各々の直前のゲーム状態の各々が含むカード要素から所定のカード要素を各々抽出する。
本変形例においては、例えばM=2の場合、データ抽出部24は、式(9)に示すcombination関数の代わりに、式(11)に示すcombination関数を用いて実現される。
Figure 0007053931000018
(11)
combination関数は、ゲーム状態配列データにおいて隣接する2つのStateベクトルの各々から、カード要素w個(card0、card2…cardq)の組み合わせを各々抽出(出力)する。データ抽出部24は、combination関数を用いて、一の異常ログデータ配列が含む不具合発生直前の2個のアクションの各々の直前のゲーム状態の各々が含むカード要素から、カード要素w個の組み合わせを各々抽出する。この2個のカード要素w個の組み合わせの各々が、所定のカード要素であり、Sと呼ぶ。w個のカード要素は、予め決められたw個(1≦w≦k)のカード要素であってもよいし、設定された規則に従ってゲーム状態に応じて抽出されたw個のカード要素であってもよい。なお、式(11)において、card0、card2…cardqの表記は1つの例示であって、これに限定されない。例えば、データ抽出部24は、アクション配列データIactionにより不具合発生直前の2個のアクションを認識し、該アクションの各々の直前のゲーム状態Stateベクトルを各々取得し、該ゲーム状態の各々が含むカード要素Sを各々抽出し、出力する。
本変形例においては、決定部25は、一の異常ログデータ配列が含む不具合発生直前の2以上のアクションと該2以上のアクションの各々の直前のゲーム状態の各々が含む所定のカード要素との組み合わせがリプレイログに含まれる異常ログデータ配列において存在する度合と、該組み合わせがリプレイログに含まれる正常ログデータ配列において存在する度合とに基づいて、該組み合わせが不具合を発生させる原因か否かを決定する。
本変形例においては、例えばM=2の場合、決定部25は、式(12)に示す相関ルール学習関数(SimulatedConfidence関数)を用いて実現される。
Figure 0007053931000019
(12)
p-1とApは、不具合原因を推定する対象の不具合の発生直前の2個のアクションを示し、Sp-1とSpは、各々Ap-1とApの直前のゲーム状態が含むカード要素w個(カード要素S)を示す。freq(Ap-1,Ap,Sp-1,Sp|Sp∈I)は、リプレイログに含まれる異常ログデータ配列において、Sp-1を含むゲーム状態とAp-1とSpを含むゲーム状態とApがこの順番(時間順)で存在(出現)する頻度を示す。S’pとS’p-1のそれぞれは、正常ログデータ配列に含まれるSp-1とSpと同一のカード要素Sを示し、freq(Ap-1,Ap,S’p-1,S’p|S’p∈I)は、リプレイログに含まれる正常ログデータ配列において、S’p-1を含むゲーム状態とAp-1とS’pを含むゲーム状態とApがこの順番(時間順)で存在(出現)する頻度を示す。決定部25は、相関ルール学習関数の出力値が閾値tを超えるAp-1、Ap、Sp-1、Spの組み合わせを、「不具合を引き起こす原因要素」として特定する。決定部25は、相関ルール学習関数を実装する場合、最初にfreq(Ap-1,Ap,Sp-1,Sp|Sp∈I)を計算し、計算値が閾値itを超えるAp-1、Ap、Sp-1、Spの組み合わせをfreq(Ap-1,Ap,S’p-1,S’p|S’p∈I)の計算対象として、当該関数を用いる。
本発明の変形例では、決定部25の処理以外の配列データの生成やデータ抽出の方法などは、本実施形態で説明したゲーム状態配列データ生成部22、アクション配列データ生成部23、及びデータ抽出部24の処理とは異なる処理を実行してもよい。この場合、図5に示すフローチャートはステップ102を含まなくてもよい。
本発明の変形例では、ゲーム内に2000種類のカードがあるとき、Stateベクトルは、cj(j=1~2000)のうち少なくとも1度出現したカードに関するカード要素N個を含むN次元ベクトルである。この場合、Nは、バトルごとに、すなわちリプレイログ要素群ごとに、異なる値となりうるものである。
以上に説明した処理又は動作において、あるステップにおいて、そのステップではまだ利用することができないはずのデータを利用しているなどの処理又は動作上の矛盾が生じない限りにおいて、処理又は動作を自由に変更することができる。また以上に説明してきた各実施例は、本発明を説明するための例示であり、本発明はこれらの実施例に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。
10 推定装置
11 プロセッサ
12 入力装置
13 表示装置
14 記憶装置
15 通信装置
16 バス
21 ラベリング部
22 ゲーム状態配列データ生成部
23 アクション配列データ生成部
24 データ抽出部
25 決定部
40 ゲーム画面
41 カード
42 手札
43 場
44 山札
45 キャラクタ

Claims (9)

  1. ユーザにより選択されたアクションに応じて進行し、ゲーム状態が更新されるゲームにおいて、ゲームログデータから不具合原因を推定するための、コンピュータにより実行される方法であって、該ゲーム状態は複数のゲーム状態要素を含んで構成され、該ゲームログデータは複数のログデータ配列を含み、ログデータ配列の各々は正常又は異常を示すラベルが付与されるものであり、該方法は、
    異常を示すラベルが付与されたログデータ配列である異常ログデータ配列のうちの一の異常ログデータ配列が含む不具合発生前のアクションと該アクションに関連するゲーム状態が含む所定のゲーム状態要素との組み合わせがゲームログデータに含まれる異常ログデータ配列において存在する度合と、該組み合わせがゲームログデータに含まれる正常を示すラベルが付与されたログデータ配列である正常ログデータ配列において存在する度合とに基づいて、該組み合わせが不具合を発生させる原因か否かを決定するステップ、を含む
    方法。
  2. 前記決定するステップは、一の異常ログデータ配列が含む不具合発生前のアクションと該アクションに関連するゲーム状態が含む所定のゲーム状態要素との組み合わせがゲームログデータに含まれる異常ログデータにおいて存在する度合に基づく値の、該組み合わせがゲームログデータに含まれる正常ログデータ配列において存在する度合に基づく値に対する比率が所定値以上であるときに、該組み合わせが不具合を発生させる原因であると決定することを含む、請求項1に記載の方法。
  3. ログデータ配列の各々に対して正常又は異常を示すラベルを付与するステップを含む、請求項1又は2に記載の方法。
  4. 前記方法は、
    一の異常ログデータ配列が含む不具合発生前のアクションに関連するゲーム状態が含むゲーム状態要素から所定のゲーム状態要素を抽出するステップを含み、
    前記決定するステップは、一の異常ログデータ配列が含む不具合発生前のアクションと前記抽出された所定のゲーム状態要素との組み合わせがゲームログデータに含まれる異常ログデータ配列において存在する度合と、該組み合わせがゲームログデータに含まれる正常ログデータ配列において存在する度合とに基づいて、該組み合わせが不具合を発生させる原因か否かを決定することを含む、
    請求項1から3のいずれか1項に記載の方法。
  5. 前記決定するステップは、一の異常ログデータ配列が含む不具合発生直前の1つのアクションと該アクションの直前のゲーム状態が含む所定のゲーム状態要素との組み合わせがゲームログデータに含まれる異常ログデータ配列において存在する度合と、該組み合わせがゲームログデータに含まれる正常ログデータ配列において存在する度合とに基づいて、該組み合わせが不具合を発生させる原因か否かを決定することを含む、請求項1から4のいずれか1項に記載の方法。
  6. 前記決定するステップは、一の異常ログデータ配列が含む不具合発生直前の2以上のアクションと該2以上のアクションの各々の直前のゲーム状態の各々が含む所定のゲーム状態要素との組み合わせがゲームログデータに含まれる異常ログデータ配列において存在する度合と、該組み合わせがゲームログデータに含まれる正常ログデータ配列において存在する度合とに基づいて、該組み合わせが不具合を発生させる原因か否かを決定することを含む、請求項1から4のいずれか1項に記載の方法。
  7. 請求項1から6のいずれか1項に記載の方法の各ステップをコンピュータに実行させるプログラム。
  8. ユーザにより選択されたアクションに応じて進行し、ゲーム状態が更新されるゲームにおいて、ゲームログデータから不具合原因を推定するための推定システムであって、該ゲーム状態は複数のゲーム状態要素を含んで構成され、該ゲームログデータは複数のログデータ配列を含むものであり、該推定システムは、
    ログデータ配列の各々に対して正常又は異常を示すラベルを付与し、
    異常を示すラベルが付与されたログデータ配列である異常ログデータ配列のうちの一の異常ログデータ配列が含む不具合発生前のアクションと該アクションに関連するゲーム状態が含む所定のゲーム状態要素との組み合わせがゲームログデータに含まれる異常ログデータ配列において存在する度合と、該組み合わせがゲームログデータに含まれる正常を示すラベルが付与されたログデータ配列である正常ログデータ配列において存在する度合とに基づいて、該組み合わせが不具合を発生させる原因か否かを決定する、
    推定システム。
  9. ユーザにより選択されたアクションに応じて進行し、ゲーム状態が更新されるゲームにおいて、ゲームログデータから不具合原因を推定するための推定装置であって、該ゲーム状態は複数のゲーム状態要素を含んで構成され、該ゲームログデータは複数のログデータ配列を含み、ログデータ配列の各々は正常又は異常を示すラベルが付与されており、
    異常を示すラベルが付与されたログデータ配列である異常ログデータ配列のうちの一の異常ログデータ配列が含む不具合発生前のアクションと該アクションに関連するゲーム状態が含む所定のゲーム状態要素との組み合わせがゲームログデータに含まれる異常ログデータ配列において存在する度合と、該組み合わせがゲームログデータに含まれる正常を示すラベルが付与されたログデータ配列である正常ログデータ配列において存在する度合とに基づいて、該組み合わせが不具合を発生させる原因か否かを決定する、
    推定装置。
JP2021132934A 2021-08-17 2021-08-17 不具合原因を推定するための方法、プログラム、システム、及び装置 Active JP7053931B1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2021132934A JP7053931B1 (ja) 2021-08-17 2021-08-17 不具合原因を推定するための方法、プログラム、システム、及び装置
CN202280068971.2A CN118103821A (zh) 2021-08-17 2022-08-16 用于估计问题原因的方法、程序、系统以及装置
PCT/JP2022/030951 WO2023022149A1 (ja) 2021-08-17 2022-08-16 不具合原因を推定するための方法、プログラム、システム、及び装置
US18/444,056 US20240184660A1 (en) 2021-08-17 2024-02-16 Method, program, system, and device for estimating cause of problem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021132934A JP7053931B1 (ja) 2021-08-17 2021-08-17 不具合原因を推定するための方法、プログラム、システム、及び装置

Publications (2)

Publication Number Publication Date
JP7053931B1 true JP7053931B1 (ja) 2022-04-12
JP2023027673A JP2023027673A (ja) 2023-03-02

Family

ID=81260053

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021132934A Active JP7053931B1 (ja) 2021-08-17 2021-08-17 不具合原因を推定するための方法、プログラム、システム、及び装置

Country Status (4)

Country Link
US (1) US20240184660A1 (ja)
JP (1) JP7053931B1 (ja)
CN (1) CN118103821A (ja)
WO (1) WO2023022149A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7366223B1 (ja) 2022-10-28 2023-10-20 株式会社Cygames ゲームを検査するためのシステム、方法、及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003126551A (ja) * 2001-10-25 2003-05-07 Chun Soft:Kk ゲームシステムにおけるバグ検出方法、バグ発生回避方法、バグ検出プログラム、バグ発生回避プログラム及び記録媒体
JP2007267876A (ja) * 2006-03-30 2007-10-18 Namco Bandai Games Inc プログラム、情報記憶媒体、ゲーム装置およびゲーム装置管理装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6438612B1 (ja) * 2018-03-20 2018-12-19 株式会社Cygames ゲームプログラムを検査するためのシステム、方法、プログラム、機械学習支援装置、及びデータ構造
US10783057B2 (en) * 2018-11-21 2020-09-22 Sony Interactive Entertainment LLC Testing as a service for cloud gaming

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003126551A (ja) * 2001-10-25 2003-05-07 Chun Soft:Kk ゲームシステムにおけるバグ検出方法、バグ発生回避方法、バグ検出プログラム、バグ発生回避プログラム及び記録媒体
JP2007267876A (ja) * 2006-03-30 2007-10-18 Namco Bandai Games Inc プログラム、情報記憶媒体、ゲーム装置およびゲーム装置管理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7366223B1 (ja) 2022-10-28 2023-10-20 株式会社Cygames ゲームを検査するためのシステム、方法、及びプログラム
WO2024090476A1 (ja) * 2022-10-28 2024-05-02 株式会社Cygames ゲームを検査するためのシステム、方法、及びプログラム

Also Published As

Publication number Publication date
US20240184660A1 (en) 2024-06-06
JP2023027673A (ja) 2023-03-02
WO2023022149A1 (ja) 2023-02-23
CN118103821A (zh) 2024-05-28

Similar Documents

Publication Publication Date Title
JP6438612B1 (ja) ゲームプログラムを検査するためのシステム、方法、プログラム、機械学習支援装置、及びデータ構造
US10282280B1 (en) Automated scalable video game testing system
US10384133B1 (en) Systems and methods for automatically measuring a video game difficulty
Andersen et al. The impact of tutorials on games of varying complexity
KR101892739B1 (ko) 게임 운영 시나리오 생성 장치 및 그 방법
US20240184660A1 (en) Method, program, system, and device for estimating cause of problem
JP6612306B2 (ja) 情報処理装置及び情報処理プログラム
Kim et al. Detection of auto programs for MMORPGs
JP7474832B2 (ja) ゲームプログラムを検査するためのシステム、方法、プログラム、機械学習支援装置、及びデータ構造
US20210394071A1 (en) System and method for extracting combinations of arbitrary numbers of media, included in possessed medium group and having high frequencies of occurrence
KR20120080400A (ko) 클러스터링 기법을 이용한 온라인 게임 내 비정상 캐릭터 검출 시스템 및 그 방법
US20220387897A1 (en) Systems and methods for video streaming analysis
WO2021015073A1 (ja) 媒体推薦システム、テーブル作成システム、媒体推薦装置、及びテーブル作成方法
KR101725067B1 (ko) 온라인 게임의 비정상 유저 검출 방법 및 시스템
CA3196793A1 (en) Game moment implementation system and method of use thereof
JP7454726B1 (ja) ゲーム媒体セットを生成するためのシステム、方法、及びプログラム
JP2019107549A (ja) データ分析装置及びデータ分析プログラム
KR101689595B1 (ko) 온라인 게임과 연동되는 웹 사이트에서 게임내 캐릭터들간 연관성 표시장치 및 그 방법
Estupiñán et al. Looking into engagement trajectories in interactive digital narrative using process mining
Rodrigues et al. Procedural Level Generation to Improve a Digital Math Game's Development: Does it Impact Player Experience?
Guglielmo et al. Predicting Tetris Performance Using Early Keystrokes
KR20200040182A (ko) 작업장 계정 검출 장치 및 방법
Haron et al. Performance Evaluation of an Online Text-Based Strategy Game
Estupinan Vesga et al. When Did I Lose Them? Using Process Mining to Study User Engagement in Interactive Digital Narratives
Thunputtarakul et al. Data Analysis for Ghost AI Creation in Commercial Fighting Games.

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211224

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20211224

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: 20220202

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220304

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220331

R150 Certificate of patent or registration of utility model

Ref document number: 7053931

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150