JP7366223B1 - ゲームを検査するためのシステム、方法、及びプログラム - Google Patents

ゲームを検査するためのシステム、方法、及びプログラム Download PDF

Info

Publication number
JP7366223B1
JP7366223B1 JP2022173314A JP2022173314A JP7366223B1 JP 7366223 B1 JP7366223 B1 JP 7366223B1 JP 2022173314 A JP2022173314 A JP 2022173314A JP 2022173314 A JP2022173314 A JP 2022173314A JP 7366223 B1 JP7366223 B1 JP 7366223B1
Authority
JP
Japan
Prior art keywords
game
log
user
version
virtual
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
JP2022173314A
Other languages
English (en)
Other versions
JP2024064603A (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 JP2022173314A priority Critical patent/JP7366223B1/ja
Application granted granted Critical
Publication of JP7366223B1 publication Critical patent/JP7366223B1/ja
Priority to PCT/JP2023/038505 priority patent/WO2024090476A1/ja
Publication of JP2024064603A publication Critical patent/JP2024064603A/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/45Controlling the progress of the video game
    • A63F13/49Saving the game status; Pausing or ending the game
    • A63F13/497Partially or entirely replaying previous game actions
    • 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
    • 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
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • 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
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • 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
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • A63F13/795Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for finding other players; for building a team; for providing a buddy list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】ゲームのバージョン間不整合を検出することが可能なシステムを提供することを目的の1つとする。【解決手段】本発明の一実施形態のシステムは、ユーザの操作に応じてゲーム状態が更新されうるゲームのバージョン間不整合を検出するためのシステムであって、システムは、ユーザ端末又はユーザ端末のソフトウェア環境を仮想化するために生成された仮想インスタンスを用いて第1のバージョンのゲームを実行し、一のゲームログに含まれる操作ログに基づいてゲームプレイを実行し、ゲーム状態を取得する、第1の処理部と、仮想インスタンスを用いて第2のバージョンのゲームを実行し、一のゲームログに含まれる操作ログに基づいてゲームプレイを実行し、ゲーム状態を取得する、第2の処理部と、第1の処理部により取得されたゲーム状態と第2の処理部により取得されたゲーム状態との比較に基づいてバージョン間不整合を検出する、不整合検出部と、を備える。【選択図】図1

Description

本発明は、ゲームを検査するためのシステム、方法、及びプログラムに係わり、特にゲームのバージョン間不整合を検出するためのシステム、方法、及びプログラムに関する。
近年、ネットワークを通じて複数のプレイヤが参加可能なオンラインゲームを楽しむプレイヤが増えている。当該ゲームは、携帯端末装置がゲーム運営者のサーバ装置と通信を行うゲームシステムなどにより実現され、携帯端末装置を操作するプレイヤは、他のプレイヤと対戦プレイを行うことができる。ゲーム運営者は、ゲームを提供するにあたっては、ゲームプログラムを検査してバグを検出しておく必要がある。例えば特許文献1はユーザにより実行される可能性がより高いアクションの推論を行い、ゲームプログラムを検査することが可能なシステム等を開示している。
特許第6438612号
オンラインゲームとして、カードやキャラクタなどの組み合わせ(以下、「カード組み合わせ」という。)に応じて様々なアクションが実行されるデジタルコレクタブルカードゲーム(DCCG)と呼ばれるカードゲームが知られている。例えばオンラインゲームを長期間運用するとき、ゲームアプリのバージョンアップなどに伴って、ゲームアプリ内部の実装やバグ修正、ライブラリの仕様変更に伴い、製作者が意図しないゲームにおける挙動(ゲームルール)の変更が起きてしまうことがある。また、製作者の意図からずれた挙動での実装がリリースされ、ユーザの間で定着してしまった後に、正規の挙動を実装することで結果としてゲームにおける挙動の変更が生じてしまうことがある。従来、このようなバージョン間の意図しないゲームにおける挙動の変更、すなわちゲームのバージョン間不整合を検出するには、人手による確認のみが有効な手段であった。しかし、例えばDCCGは、カードの種類が爆発的に増大するものが多く、網羅的に不整合を確認することが不可能であった。
1つの側面では、本発明は、このような課題を解決するためになされたものであり、ゲームを検査することが可能なシステムを提供することを目的の1つとする。
〔1〕本発明の一実施形態のシステムは、
ユーザの操作に応じてゲーム状態が更新されうるゲームのバージョン間不整合を検出するためのシステムであって、
前記システムは、
ユーザ端末又はユーザ端末のソフトウェア環境を仮想化するために生成された仮想インスタンスを用いて第1のバージョンの前記ゲームを実行し、一のゲームログに含まれる操作ログに基づいてゲームプレイを実行し、ゲーム状態情報を取得する、第1の処理部と、
仮想インスタンスを用いて第2のバージョンの前記ゲームを実行し、前記一のゲームログに含まれる操作ログに基づいてゲームプレイを実行し、ゲーム状態情報を取得する、第2の処理部と、
前記第1の処理部により取得されたゲーム状態情報と前記第2の処理部により取得されたゲーム状態情報との比較に基づいてバージョン間不整合を検出する、検査部と、
を備える、システムである。
〔2〕本発明の一実施形態では、
前記ゲームは、対戦型ゲームであり、ゲームログは、マッチングされた第1のユーザ及び第2のユーザの操作ログを含み、
前記第1の処理部は、2つの仮想インスタンスを用いて第1のバージョンの前記ゲームを実行し、該2つの仮想インスタンスをマッチングさせ、一方の仮想インスタンスにおいては一のゲームログに含まれる第1のユーザの操作ログに基づいてゲームプレイを実行し、他方の仮想インスタンスにおいては該一のゲームログに含まれる第2のユーザの操作ログに基づいてゲームプレイを実行し、ゲーム状態情報を取得し、
前記第2の処理部は、2つの仮想インスタンスを用いて第2のバージョンの前記ゲームを実行し、該2つの仮想インスタンスをマッチングさせ、一方の仮想インスタンスにおいては前記一のゲームログに含まれる第1のユーザの操作ログに基づいてゲームプレイを実行し、他方の仮想インスタンスにおいては前記一のゲームログに含まれる第2のユーザの操作ログに基づいてゲームプレイを実行し、ゲーム状態情報を取得する、
〔1〕に記載のシステムである。
〔3〕本発明の一実施形態では、
前記システムは、取得されたゲームログから、第1のユーザの操作ログと第2のユーザの操作ログをそれぞれ取得する、〔2〕に記載のシステムである。
〔4〕本発明の一実施形態では、
前記ゲームのゲームログは、第1のバージョンの前記ゲームをユーザがプレイすることにより取得されるゲームログである、〔1〕から〔3〕のいずれか1つに記載のシステムである。
〔5〕本発明の一実施形態では、
ゲーム状態情報は、所定の形式で出力可能なデータであり、
前記第1の処理部及び前記第2の処理部は、それぞれ、実行されるゲームプレイに応じて得られる複数のゲーム状態情報を取得し、
前記検査部は、対応する前記第1の処理部により取得されたゲーム状態情報と前記第2の処理部により取得されたゲーム状態情報とのマッチング度合いに基づいてバージョン間不整合を検出する、
〔1〕から〔4〕のいずれか1つに記載のシステムである。
〔6〕本発明の一実施形態では、
前記第1の処理部及び前記第2の処理部は、少なくともグラフィック処理及びサウンド処理が無効化されるように、仮想インスタンスにおいてゲームをヘッドレスモードで実行する、〔1〕から〔5〕のいずれか1つに記載のシステムである。
〔7〕本発明の一実施形態の方法は、
ユーザの操作に応じてゲーム状態が更新されうるゲームのバージョン間不整合を検出するための、コンピュータにより実行される方法であって、
ユーザ端末又はユーザ端末のソフトウェア環境を仮想化するために生成された仮想インスタンスを用いて第1のバージョンの前記ゲームを実行し、一のゲームログに含まれる操作ログに基づいてゲームプレイを実行し、ゲーム状態情報を取得する第1の取得ステップと、
仮想インスタンスを用いて第2のバージョンの前記ゲームを実行し、前記一のゲームログに含まれる操作ログに基づいてゲームプレイを実行し、ゲーム状態情報を取得する第2の取得ステップと、
前記第1の取得ステップにおいて取得されたゲーム状態情報と前記第2の取得ステップにおいて取得されたゲーム状態情報との比較に基づいてバージョン間不整合を検出するステップと、
を含む、方法である。
〔8〕本発明の一実施形態では、
前記ゲームは、対戦型ゲームであり、
ゲームログは、マッチングされた第1のユーザ及び第2のユーザの操作ログを含み、
前記第1の取得ステップでは、2つの仮想インスタンスを用いて第1のバージョンの前記ゲームを実行し、該2つの仮想インスタンスをマッチングさせ、一方の仮想インスタンスにおいては一のゲームログに含まれる第1のユーザの操作ログに基づいてゲームプレイを実行し、他方の仮想インスタンスにおいては該一のゲームログに含まれる第2のユーザの操作ログに基づいてゲームプレイを実行し、ゲーム状態情報を取得し、
前記第2の取得ステップでは、2つの仮想インスタンスを用いて第2のバージョンの前記ゲームを実行し、該2つの仮想インスタンスをマッチングさせ、一方の仮想インスタンスにおいては前記一のゲームログに含まれる第1のユーザの操作ログに基づいてゲームプレイを実行し、他方の仮想インスタンスにおいては前記一のゲームログに含まれる第2のユーザの操作ログに基づいてゲームプレイを実行し、ゲーム状態情報を取得する、
〔7〕に記載の方法である。
〔9〕本発明の一実施形態のプログラムは、〔7〕又は〔8〕の方法の各ステップをコンピュータに実行させる、プログラムである。
1つの側面では、本発明によれば、ゲームを検査することができる。
本発明の一実施形態のシステムの全体構成図である。 本発明の一実施形態の管理サーバのハードウェア構成を示すブロック図である。 本発明の一実施形態の仮想インスタンスサーバのハードウェア構成を示すブロック図である。 本発明の一実施形態のテスト用ゲームサーバのハードウェア構成を示すブロック図である。 本発明の一実施形態のシステムの機能ブロック図の一例である。 本発明の一実施形態のシステムの機能ブロック図の一例である。 本発明の一実施形態のシステムの処理のフローチャートを示す図である。 ユーザ端末Tのディスプレイに表示されるゲームGのゲーム画面の一例を示す図である。
以下、図面を参照して、本発明の実施形態について説明する。本発明の実施形態のシステムは、ユーザの操作に応じて盤面が更新されうるゲーム(ゲームプログラム又はゲームアプリ)のバージョン間不整合を検出することでゲームを検査するためのシステムである。本発明の実施形態では、バージョン間不整合は、ゲームアプリのバージョンアップなどに伴って、ゲームアプリ内部の実装、バグ修正若しくはライブラリの仕様変更に伴って生じるゲーム運営者(製作者)が意図しないゲームにおける挙動の変更、又はゲーム運営者の意図からずれた挙動での実装がリリースされ、ユーザの間で定着してしまった後に、ゲームアプリのバージョンアップなどに伴って、正規の挙動を実装することで結果として生じるゲームにおける挙動の変更を意味するものである。
本発明の実施形態のゲームは、ある盤面においてユーザ操作に基づいてアクション(攻撃やイベントなど)が実行されると、盤面が更新されるような対戦型カードゲームである。以下の説明では、本発明の実施形態のゲームは、例えば異なるバージョンのゲームが同じタイトルのゲームであることを示すために、便宜上「ゲームG」と呼ぶが、ゲームGは、特定のゲームに限定されるものではなく、任意の対戦型カードゲームとすることができる。本発明の実施形態では、「盤面」は、「ゲーム状態」の1つの例であるが、「ゲーム状態」は「盤面」そのものを表すこともできる。本発明の実施形態のゲームGは、スマートフォンなどの携帯用端末でプレイ可能なオンラインゲームであり、ゲーム運営者は必要に応じてアップデート可能なゲームである。本発明の実施形態では、第1のバージョンのゲームGは、ユーザがプレイ可能なリリース中のゲームであり、第2のバージョンのゲームGは、リリースされる予定の、第1のバージョンのゲームGよりも新しいバージョンのゲームである。例えばバージョン3のゲームGがバージョン4のゲームGにアップデートされる場合、第1のバージョンはバージョン3であり、第2のバージョンがバージョン4である。本発明の実施形態では、アプリは、スマートフォンやタブレット端末にインストールされるアプリを意味することができ、またアプリケーション全般を意味することもできる。本発明の実施形態では、ゲームは、ゲームプログラム又はゲームアプリを意味することもできる。本明細書においては、説明の便宜上、必要以上に詳細な説明は省略する場合がある。
本発明の実施形態のゲームGは、オンラインゲームを提供する一般的なゲームサーバと同様の構成を備えるゲームサーバS(図示せず)により提供される。ゲームサーバSは、実際にユーザがゲームをプレイする際に、例えばスマートフォンなどのユーザ端末T(図示せず)によってアクセスされるサーバである。例えばユーザ端末Tは、所定のゲームアプリAを介して、ゲームサーバSに接続し、ユーザID及びパスワードなどを用いて識別、認証されると、ユーザは、該ユーザ端末Tを介して、該ユーザIDのユーザとしてゲームGをプレイすることができる。テスト用ゲームサーバ30は、ゲームサーバSと同一の構成を備えることができるが、仮想インスタンスサーバ20からのアクセスのみ受け付ける点でゲームサーバSと異なる。ゲームサーバSが提供するゲームGは、第1のバージョンのゲームGである。
ゲームサーバSは、ゲーム用のアプリケーション(ゲームプログラム)を記憶し、ゲームをプレイする各ユーザのユーザ端末Tとネットワークを介して接続される。各ユーザがユーザ端末TにインストールされたゲームアプリAを実行している間、端末装置TはゲームサーバSと通信を行い、ゲームサーバSは、ネットワークを介したゲームサービスを提供する。ゲームサーバSは、ユーザ端末Tを介して、ユーザからバトルゲームの開始の要求を受け付け、2人のユーザ(第1のユーザと第2のユーザ)をマッチングし、バトルゲームを開始する。1つのバトルゲームは、2人のユーザがマッチングされると開始され、勝敗が決定されるか、引き分けが決定されるか、又は無効試合が決定されると終了する。なお、本明細書において、バトルゲームは単にバトルと表現する場合がある。
図8は、ユーザ端末Tのディスプレイに表示されるゲームGのゲーム画面40の一例を示す図である。ゲーム画面40は、自ユーザと他ユーザのカードバトルのゲーム画面を示すものである。本発明の実施形態のゲームGは、複数のカードを含んで構成される所有カード群からユーザがカードを選択して当該カードを場(ゲームフィールド)43に出すことで、カードやクラスの組み合わせに応じて様々なイベントが実行されて進行する。ゲームGは、ユーザ端末Tを操作するユーザ自身である自ユーザと他のユーザ端末Tを操作する他ユーザの各々が所有カード群からカードを選択して場43に出して対戦する対戦ゲームである。1つの例では、ゲームGにおいて、各カード41は、カードID、カード種別、ヒットポイント、攻撃力、属性などのパラメータを含むカード定義情報を有し、各クラスは、クラス定義情報を有する。
ゲーム画面40は、自ユーザの手札である第1のカード群42aと、他ユーザの手札である第1のカード群42bとを示している。第1のカード群42a及び第1のカード群42bは、キャラクタ、アイテム又はスペルに関連付けられたカード41を含む。ゲームGは、自ユーザが他ユーザの第1のカード群42bのカード41を確認できないように構成される。ゲーム画面40は、自ユーザの山札である第2のカード群44a及び他ユーザの山札である第2のカード群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は、カードと関連付けられるキャラクタとは異なるものであり、所有カード群のタイプを示すクラスを定める。1つの例では、ゲームGは、クラスに応じて、ユーザが所有するカード41が異なるように構成される。1つの例では、ゲームGは、各ユーザのカードデッキを構成することができるカードの種類が、クラスに応じて異なるように構成される。ただし、ゲームGは、クラスを含まないこともできる。この場合、ゲームGは、上記のようなクラスによる限定を行わず、ゲーム画面40は、自ユーザの選択したキャラクタ45aと、他ユーザの選択したキャラクタ45bとを表示しないものとすることもできる。
ゲームサーバSは、ユーザ端末TがゲームアプリAを実行する間、すなわちユーザ端末TがゲームGを実行する間、ゲームに関するログデータであるゲームログを記憶する。ゲームログは、対戦する各ユーザのユーザ操作を再現可能なログであるリプレイログを含むものであり、マッチングされた第1のユーザ及び第2のユーザの操作ログを含むものである。
本発明の実施形態のゲームGは、1つの対戦(カードバトル)が複数のターンを含む対戦ゲームである。1つの例では、ゲームGでは、各ターンにおいて、自ユーザ又は他ユーザは、自身のカード41を選択するなどの操作を行うことにより、相手のカード41若しくはキャラクタ45を攻撃することができる、又は自身のカード41を使用して所定の効果若しくはイベントを発生させることができる。1つの例では、ゲームGでは、自ユーザがカード41を選択して攻撃する場合、攻撃対象として相手のカード41又はキャラクタ45を選択できる。1つの例では、ゲームGでは、自ユーザがカード41を選択して攻撃する場合、カードによっては、攻撃対象が自動で選択される。1つの例では、ゲームGでは、ゲーム画面40上の一のカード又はキャラクタに対するユーザ操作に応答して、他のカード又はキャラクタのヒットポイントや攻撃力などのパラメータが変更される。1つの例では、ゲームGでは、盤面が所定条件を満たした場合、当該所定条件に対応するカード41を場43から除外又は自ユーザ若しくは他ユーザのカードデッキに移動する。例えば、リプレイログは、上述するような情報の履歴を網羅的に含むものとすることができる。
本発明の実施形態では、ゲームサーバSが記憶するゲームログは、1つのバトルごとの、対戦する各ユーザのユーザ操作を再現可能なログであるリプレイログを含む。例えば1つのバトルのリプレイログ(ゲームログ)は、バトル開始からバトル終了までのリプレイログ(ゲームログ)又はバトル開始からバトル中止までのリプレイログ(ゲームログ)である。リプレイログは、アクションのデータを含む。1つの例では、1つのバトルごとのリプレイログは、ターンごとかつユーザごとの、各ユーザが選択したカード41と、これに関連する攻撃の情報とを含む。1つの例では、1つのバトルごとのリプレイログは、ターンごとかつユーザごとの、各ユーザが選択したカード41と、これに関連する発生した所定の効果とを含む。
盤面情報は、少なくとも、ユーザがゲームプレイを通じて、例えばゲーム操作やゲーム画面上の表示を通じて、視認又は認知できる情報を示すものである。盤面情報は、場43に出されているカード41のデータを含む。盤面情報の各々は、ゲームの進行に応じたその時々の盤面に対応するデータである。盤面情報は、自ユーザの第1のカード群42a(又は所有カード群)のカード41の情報を含むことができるとともに、他ユーザの第1のカード群42b(又は所有カード群)のカード41の情報を含むことができる。ゲームログは、盤面の変化を記録する盤面情報履歴データを含み、したがって、ゲームログは、各バトルのバトル開始時の盤面情報及びバトル終了時の盤面情報を含むものである。盤面情報履歴データは、各バトルのリプレイログのそれぞれに関連付けられて記憶される。
アクションのデータは、ユーザにより選択又は決定された操作(入力)と、この操作によりゲームプログラム(ゲームサーバS)が決定(実行)した内容とを含むものである。リプレイログに含まれるアクションのデータは、ユーザの操作(例えばゲームプレイに関するユーザ入力)を示すデータである操作ログを含むものである。アクションは、ある盤面においてユーザ操作に基づいて実行され、当該盤面を変化させうるものである。例えば、ユーザ操作はユーザがカード41などを選択することであり、アクションは、ユーザがカード41などを選択することにより実行されるものである。リプレイログに含まれるアクションのデータの各々は、盤面の各々においてユーザ操作に基づいて実行されたアクションに対応するデータである。
1つの例では、1つのアクションは、一のカード41又はキャラクタ45の他のカード41又はキャラクタ45に対する攻撃である。この場合、例えばアクションのデータは、ユーザ操作により選択された攻撃者のカード41又はキャラクタ45及び攻撃対象のカード41又はキャラクタ45と、その攻撃量(ダメージ量)とを含むものである。1つの例では、1つのアクションは、一のカード41又はキャラクタ45による所定の効果の発生である。この場合、例えばアクションのデータは、ユーザ操作により選択された所定の効果を発生させるカード41及びその対象のカード41又はキャラクタ45と、その効果量(例えばヒットポイントの回復量)を含むものである。
1つの例では、リプレイログは、各盤面において実行されたアクションのデータの列により定義される。1つのバトルのリプレイログReplaylognは、時間順に並べられたアクションと、最終的に勝敗が決した最終状態とをこの順番で含む配列であり、式(1)で表すことができる。
Figure 0007366223000002
(1)
ここで、Replaylognはn番目のリプレイログ(例えばn番目のバトル)を示し、Actioniは、i番目に実行されたアクションを示し、Win_Loseは、勝敗、引き分け、又は無効試合が決した状態を示す。
1つの例では、盤面情報履歴データは、バトルゲームをプレイすることで生成される盤面情報の列により定義される。1つのバトルの盤面情報履歴データStatelognは、式(2)で表すことができる。
Figure 0007366223000003
(2)
ここで、Stateiは、i番目の盤面情報を示す。State0は、バトル開始時の盤面情報を示し、Stateeは、勝敗、引き分け、又は無効試合などのバトル終了時の盤面情報を示す。
1つの例では、Stateiは、場43に出されているカード41及びユーザの所有するカード41の集合であり、式(3)で表すことができる。
Figure 0007366223000004
(3)
ここで、
Figure 0007366223000005
は、場43に出されている第1のユーザ(先攻)側の0番目のカードからna番目のカードであり、
Figure 0007366223000006
は、場43に出されている第2のユーザ(後攻)側の0番目のカードからnb番目のカードであり、
Figure 0007366223000007
は、第1のユーザ(先攻)の手札に入っている0番目のカードからnc番目のカードであり、
Figure 0007366223000008
は、第2のユーザ(後攻)の手札に入っている0番目のカードからnd番目のカードである。例えば場43に出されている第1のユーザのカードが1枚の場合、Stateiは、場43に出されている第1のユーザのカードとして、
Figure 0007366223000009
のデータのみ有し、0枚の場合、Stateiは、場43に出されている第1のユーザのカードとして、カードが無いことを示すデータを含む。場43に出されている第2のユーザのカードや手札に入っているカードなどについても同様である。
Figure 0007366223000010
は、カード41そのもの以外の情報であり、例えばカード41やキャラクタ45に関連付けられた所定のポイントなどのデータである。
1つの例では、各々のカードcardiは、式(4)で表すことができる。
Figure 0007366223000011
(4)
ここで、nameとはカードの名称を示すテキストデータであり、explanationとは、カードの能力やスキルを説明したテキストデータである。
図1は、本発明の一実施形態のシステム1の全体構成図である。図1に示すように、システム1は、管理サーバ10と、仮想インスタンスサーバ20と、テスト用ゲームサーバ30とを含み、管理サーバ10と、仮想インスタンスサーバ20と、テスト用ゲームサーバ30とはインターネットなどのネットワーク2に接続され、互いに通信可能である。
本発明の実施形態では、システム1のゲームサービスを構成するすべての要素の仮想化を実現した仮想環境が用いられる。例えば管理サーバ10、仮想インスタンスサーバ20、及びテスト用ゲームサーバ30のそれぞれは、仮想マシン又はクラウドシステムなどの仮想サーバにより実現される。仮想環境に関する技術は、例えば特開2021-145939号公報に記載された技術を用いることができる。システム1は、1つの装置であってもよいし、複数の装置を含んで構成されてもよい。説明の便宜上、以下のハードウェア構成の説明においては、管理サーバ10、仮想インスタンスサーバ20、及びテスト用ゲームサーバ30のそれぞれが、1つの装置により実現される場合について説明する。
図2は本発明の一実施形態の管理サーバ10のハードウェア構成を示すブロック図である。管理サーバ10は、プロセッサ11、入力装置12、表示装置13、記憶装置14、及び通信装置15を備える。これらの各構成装置はバス16によって接続される。なお、バス16と各構成装置との間には必要に応じてインタフェースが介在しているものとする。
プロセッサ11は、管理サーバ10全体の動作を制御する。例えばプロセッサ11は、CPUである。プロセッサ11は、記憶装置14に格納されているプログラムやデータを読み込んで実行することにより、様々な処理を実行する。プロセッサ11は、複数のプロセッサから構成されてもよい。
入力装置12は、管理サーバ10に対するユーザからの入力を受け付けるユーザインタフェースであり、例えば、タッチパネル、タッチパッド、キーボード、マウス、又はボタンである。表示装置13は、プロセッサ11の制御に従って、アプリケーション画面などを管理サーバ10のユーザに表示するディスプレイである。
記憶装置14は、主記憶装置及び補助記憶装置を含む。主記憶装置は、例えば情報の高速な読み書きが可能な揮発性メモリであり、プロセッサ11が情報を処理する際の記憶領域及び作業領域として用いられる。補助記憶装置は、様々なプログラムや、各プログラムの実行に際してプロセッサ11が使用するデータを格納する。補助記憶装置は、不揮発性ストレージ又は不揮発性メモリであり、例えばeMMC、UFS、SSDのようなフラッシュメモリであり、着脱可能なものであってもよい。
通信装置15は、ネットワークを介してユーザ端末又はサーバなどの他のコンピュータとの間でデータの授受を行うことが可能なモジュール、デバイス、又は装置である。通信装置15は、無線通信用のデバイスやモジュールなどとすることもできるし、有線通信用のデバイスやモジュールなどとすることもできる。
図3は本発明の一実施形態の仮想インスタンスサーバ20のハードウェア構成を示すブロック図である。仮想インスタンスサーバ20は、プロセッサ21、入力装置22、表示装置23、記憶装置24、及び通信装置25を備える。これらの各構成装置はバス26によって接続される。なお、バス26と各構成装置との間には必要に応じてインタフェースが介在しているものとする。プロセッサ21、入力装置22、表示装置23、記憶装置24、及び通信装置25の各要素は、前述したプロセッサ11、入力装置12、表示装置13、記憶装置14、及び通信装置15に各々対応するものであり、同様の構成を有するため、説明は省略する。仮想インスタンスサーバ20は、入力装置22及び表示装置23を備えなくてもよい。
図4は本発明の一実施形態のテスト用ゲームサーバ30のハードウェア構成を示すブロック図である。テスト用ゲームサーバ30は、プロセッサ31、入力装置32、表示装置33、記憶装置34、及び通信装置35を備える。これらの各構成装置はバス36によって接続される。なお、バス36と各構成装置との間には必要に応じてインタフェースが介在しているものとする。プロセッサ31、入力装置32、表示装置33、記憶装置34、及び通信装置35の各要素は、前述したプロセッサ11、入力装置12、表示装置13、記憶装置14、及び通信装置15に各々対応するものであり、同様の構成を有するため、説明は省略する。テスト用ゲームサーバ30は、入力装置32及び表示装置33を備えなくてもよい。
システム1は、第1のバージョンのゲームGと第2のバージョンのゲームGを実行し、リプレイログから取得(生成)した2人のユーザの操作ログどおりの操作で実行ボットにゲームをプレイさせ、結果として生成される2つのバージョンにおける盤面情報の履歴を比較することにより、ゲームGのバージョン間不整合を検出するためのシステムである。
図5は本発明の実施形態のシステム1の機能ブロック図の一例である。管理サーバ10は、ゲーム実行制御部50、検査部53、ゲームログデータベース(ゲームログDB)54、第1のゲーム状態データベース(第1のゲーム状態DB)55、及び第2のゲーム状態データベース(第2のゲーム状態DB)56を備える。ゲーム実行制御部50は、第1のゲーム実行制御部51及び第2のゲーム実行制御部52を備える。仮想インスタンスサーバ20は、第1の仮想インスタンス制御部61及び第2の仮想インスタンス制御部62を備える。テスト用ゲームサーバ30は、第1のバージョンのゲームGを提供する処理を制御する第1のゲームサーバ制御部71、及び第2のバージョンのゲームGを提供する処理を制御する第2のゲームサーバ制御部72を備える。
本発明の実施形態では、管理サーバ10、仮想インスタンスサーバ20、及びテスト用ゲームサーバ30は、仮想環境により実現されるものであるが、管理サーバ10、仮想インスタンスサーバ20、及びテスト用ゲームサーバ30のそれぞれが1つの装置により実現される場合、システム1が備えるこれらの機能は、例えば、管理サーバ10のプロセッサ11、仮想インスタンスサーバ20のプロセッサ21、及びテスト用ゲームサーバ30のプロセッサ31の少なくとも1つがプログラムを実行し、必要に応じて記憶装置14、記憶装置24、及び記憶装置34の少なくとも1つにデータを記憶することにより、又は、これに加えて、必要に応じて、管理サーバ10、仮想インスタンスサーバ20、テスト用ゲームサーバ30の間でデータを受け渡し若しくは受け取ることにより実現される。ゲームログDB54、第1のゲーム状態DB55、及び第2のゲーム状態DB56の少なくとも1つは、記憶装置14のみにより実現されてもよい。このように各種機能がプログラム読み込みにより実現されるため、1つの機能部(例えばソフトウェアモジュール)の一部又は全部を他の機能部が有していてもよい。本発明の実施形態では、システム1が備えるこれらの機能は、管理サーバ10、仮想インスタンスサーバ20、及びテスト用ゲームサーバ30のそれぞれが1つの装置により実現される場合の動作に準じた各構成要素の動作により、実現することができる。
ゲームログDB54は、ゲームサーバSが記憶したゲームログを記憶する。ゲームログDB54が記憶するリプレイログは、式(1)で表されるデータ形式のリプレイログである。ゲームログDB54は、バトルごとのリプレイログを記憶し、リプレイログのそれぞれは、バトル開始時の盤面情報を関連付けて記憶する。本発明の実施形態では、システム1は、1つのバトルのリプレイログごとに、ゲームGのバージョン間の不整合の有無を判定する。この判定対象の1つのバトルのリプレイログを対象リプレイログと呼ぶ。例えばゲームログDB54は、不整合を検証しようとする複数の対象リプレイログと、当該対象リプレイログに関連するデータとを含むゲームログを記憶するものであればよい。
ゲーム実行制御部50は、1つの対象リプレイログ(Replaylogn)から第1のユーザ(例えば先手ユーザ)の操作ログ及び第2のユーザ(例えば後手ユーザ)の操作ログをそれぞれ取得(生成)する。1つの例では、ゲーム実行制御部50は、対象リプレイログから操作ログに関連する部分を抽出し、各ユーザの操作ログを生成する。ゲーム実行制御部50は、対象リプレイログに関連付けられた盤面情報履歴データからバトル開始時の盤面情報を取得し、第1のユーザ及び第2のユーザのバトル開始時のカードデッキを生成する。
第1のゲーム実行制御部51は、第1の仮想インスタンス制御部61及び第1のゲームサーバ制御部71の動作を制御し、仮想インスタンス63に第1のバージョンのゲームGを実行させ、対象リプレイログから生成した操作ログに基づいてゲームプレイを実行させ、盤面情報を取得する。第2のゲーム実行制御部52は、第2の仮想インスタンス制御部62及び第2のゲームサーバ制御部72の動作を制御し、仮想インスタンス64に第2のバージョンのゲームGを実行させ、対象リプレイログから生成した操作ログに基づいてゲームプレイを実行させ、盤面情報を取得する。
第1の仮想インスタンス制御部61は、第1のゲーム実行制御部51からの制御信号に従って、ゲームをプレイするユーザ端末又はユーザ端末のソフトウェア環境を仮想化するための仮想インスタンス63を生成する。第2の仮想インスタンス制御部62は、第2のゲーム実行制御部52からの制御信号に従って、ゲームをプレイするユーザ端末又はユーザ端末のソフトウェア環境を仮想化するための複数の仮想インスタンス64を生成する。仮想インスタンス63は、第1のバージョンのゲームGを実行するための仮想インスタンスであり、第1のゲームサーバ制御部71と接続され、第1のバージョンのゲームGを実行できるように構成される。仮想インスタンス64は、第2のバージョンのゲームGを実行するための仮想インスタンスであり、第2のゲームサーバ制御部72と接続され、第2のバージョンのゲームGを実行できるように構成される。
1つの例では、第1の仮想インスタンス制御部61は、N個(Nは自然数)の対象リプレイログに対して、2N個の仮想インスタンス63を生成し、第2の仮想インスタンス制御部62は、N個の対象リプレイログに対して、2N個の仮想インスタンス64を生成する。第1の仮想インスタンス制御部61は、対象リプレイログに関連付けられた盤面情報に基づいて、1つの対象リプレイログに対して生成した2個の仮想インスタンス63の一方に第1のユーザのバトル開始時のデッキを割り当て、他方に第2のユーザのバトル開始時のデッキを割り当て、これらの仮想インスタンス63に第1のゲームサーバ制御部71に対してバトル開始要求を送信させる。第2の仮想インスタンス制御部62は、対象リプレイログに関連付けられた盤面情報に基づいて、1つの対象リプレイログに対して生成した2個の仮想インスタンス64の一方に第1のユーザのバトル開始時のデッキを割り当て、他方に第2のバトル開始時のユーザのデッキを割り当て、これらの仮想インスタンス64に第2のゲームサーバ制御部72に対してバトル開始要求を送信させる。
仮想インスタンス63、64はユーザ端末又はユーザ端末のソフトウェア環境を仮想化するための仮想インスタンスであり、例えば、docker(登録商標)等の「コンテナ」と呼ばれるオペレーティングシステム・レベルの仮想化技術を用いることにより実現できる。docker(登録商標)は、Linux(登録商標)カーネルが提供するLinux(登録商標)コンテナを制御し、プロセス単位での仮想化、すなわち、CPUの利用とファイルシステムの利用を、他のプロセスから分離された空間を提供することができる。各コンテナ同士は相互に分離されているため、あたかも、オペレーティングシステム内で、唯一動作するゲームアプリとしてふるまうことが可能になる。そのため、各コンテナにおいてゲームアプリを実行して、ゲームアプリのプロセスを起動することにより、ユーザ端末におけるゲームアプリの実行を仮想的に実現することができる。したがって、1つのサーバ装置において複数の仮想インスタンスを生成して、同時に複数のゲームアプリを隔離して並列に実行し、検証用結果を生成することができる。本発明の実施形態においては、仮想インスタンス63、64としてdocker(登録商標)の「コンテナ」を用いる。例えば仮想インスタンス63、64のそれぞれは、仮想化されたスマートフォンである。
第1のゲームサーバ制御部71は、バトル開始要求を受け付けた仮想インスタンス63から対戦する2つの仮想インスタンス63を選択してマッチングさせ、マッチングした仮想インスタンス63でバトルゲームを実行する。第2のゲームサーバ制御部72は、バトル開始要求を受け付けた仮想インスタンス64から対戦する2つの仮想インスタンス64を選択してマッチングさせ、マッチングした仮想インスタンス64でバトルゲームを実行する。
第1のゲーム実行制御部51は、第1の仮想インスタンス制御部61が1つの対象リプレイログに対して生成した2個の仮想インスタンス63の一方に第1のユーザのデッキを割り当て他方に第2のユーザのデッキを割り当てる際、2つの仮想インスタンス63に同一のIDを付す又は関連付ける。このIDは、対象リプレイログを一意に特定できるものであればよい。第1のゲームサーバ制御部71は、同一のIDが付された又は関連付けられた2つの仮想インスタンス63をマッチングするように構成される。同様に、第2のゲーム実行制御部52は、第2の仮想インスタンス制御部62が1つの対象リプレイログに対して生成した2個の仮想インスタンス64の一方に第1のユーザのデッキを割り当て他方に第2のユーザのデッキを割り当てる際、2つの仮想インスタンス64に同一のIDを付す又は関連付ける。第2のゲームサーバ制御部72は、同一のIDが付された又は関連付けられた2つの仮想インスタンス64をマッチングするように構成される。
本発明の実施形態では、仮想インスタンス63は、ユーザ端末においてゲームをプレイするために実行されるゲームアプリAを、ヘッドレスモードで実行することにより第1のバージョンのゲームGを実行する。例えば、第1のゲーム実行制御部51又は第1の仮想インスタンス制御部61は、少なくともグラフィック処理及びサウンド処理が無効化されるように、ユーザ端末においてゲームをプレイするために実行されるゲームアプリAを、オートパイロットで、仮想インスタンス63においてヘッドレスモードで実行することにより第1のバージョンのゲームGを実行する。仮想インスタンス64は、ゲームアプリAを、ヘッドレスモードで実行することにより第2のバージョンのゲームGを実行する。例えば、第2のゲーム実行制御部52又は第2の仮想インスタンス制御部62は、少なくともグラフィック処理及びサウンド処理が無効化されるように、ゲームアプリAを、オートパイロットで、仮想インスタンス64においてヘッドレスモードで実行することにより第2のバージョンのゲームGを実行する。
仮想インスタンス63は、第1のバージョンのゲームGを実行し、操作ログに基づいてゲームプレイを実行し、アクションを実行するごとに盤面情報を出力する。仮想インスタンス64は、第2のバージョンのゲームGを実行し、操作ログに基づいてゲームプレイを実行し、アクションを実行するごとに盤面情報を出力する。
第1のゲーム実行制御部51は、仮想インスタンス63が出力する盤面情報を取得し、盤面情報が時間順に並べられた盤面情報履歴データを生成し、第1のゲーム状態DB55に記憶する。第2のゲーム実行制御部52は、仮想インスタンス64が出力する盤面情報を取得し、盤面情報が時間順に並べられた盤面情報履歴データを生成し、第2のゲーム状態DB56に記憶する。仮想インスタンス63、64は、例えばJSON、XML、CSVなどの差分が取れるデータ形式で盤面情報を出力する。盤面情報は、式(3)で表されるデータである。第1のゲーム実行制御部51及び第2のゲーム実行制御部52が生成する盤面情報履歴データは、式(2)で表されるデータ形式の盤面情報履歴データである。
検査部54は、一の対象リプレイログから生成された操作ログに基づいてゲームプレイを実行する仮想インスタンス63から取得された盤面情報から第1のゲーム実行制御部51が生成した盤面情報履歴データ(Statelogn)と、該一の対象リプレイログから生成された操作ログに基づいてゲームプレイを実行する仮想インスタンス64から取得された盤面情報から第2のゲーム実行制御部52が生成した盤面情報履歴データ(Statelog´n)との比較に基づいてバージョン間不整合を検出する。ここで、第1のゲーム実行制御部51が生成した盤面情報履歴データ(Statelogn)におけるi番目の盤面情報
Figure 0007366223000012
が、第2のゲーム実行制御部52が生成した盤面情報履歴データ(Statelog´n)におけるi番目の盤面情報
Figure 0007366223000013
と一致しない場合、
すなわち、
Figure 0007366223000014
の場合、検査部54は、不整合を検出する又は不整合有りと判定する。すなわち、システム1は、当該対象リプレイログから生成された操作ログに基づくゲームプレイがバージョン間不整合を発生させることを検出する。すべてのi(i=0~e)において、
Figure 0007366223000015
である場合、検査部54は、不整合を検出しない又は不整合無しと判定する。
上記より、検査部54は、一の対象リプレイログから生成された操作ログに基づいてゲームプレイを実行する仮想インスタンス63から取得された盤面情報(Statei)と、該一の対象リプレイログから生成された操作ログに基づいてゲームプレイを実行する仮想インスタンス64から取得された盤面情報(State´i)との比較に基づいてバージョン間不整合を検出する不整合検出部ということができる。
図6は、システム1全体の観点から見た本発明の実施形態のシステム1の機能ブロック図の一例である。システム1は、第1の処理部81、第2の処理部82、検査部83、ゲームログDB84、第1のゲーム状態DB85、及び第2のゲーム状態DB86を備える。図5に示す機能ブロック図は、図6に示す機能ブロック図の詳細の一例である。検査部83、ゲームログDB84、第1のゲーム状態DB85、及び第2のゲーム状態DB86は、検査部54、ゲームログDB54、第1のゲーム状態DB55、及び第2のゲーム状態DB56に対応する機能部である。
第1の処理部81は、第1のゲーム実行制御部51、第1の仮想インスタンス制御部61、及び第1のゲームサーバ制御部71を備え、第2の処理部82は、第2のゲーム実行制御部52、第2の仮想インスタンス制御部62、及び第2のゲームサーバ制御部72を備える。
第1の処理部81は、2つの仮想インスタンス63を用いて第1のバージョンのゲームGを実行し、該2つの仮想インスタンス63をマッチングさせ、一方の仮想インスタンス63においては対象リプレイログに含まれる第1のユーザの操作ログに基づいてゲームプレイを実行し、他方の仮想インスタンス63においては対象リプレイログに含まれる第2のユーザの操作ログに基づいてゲームプレイを実行し、盤面情報を取得する。同様に、第2の処理部82は、2つの仮想インスタンス64を用いて第2のバージョンのゲームGを実行し、該2つの仮想インスタンス64をマッチングさせ、一方の仮想インスタンス64においては対象リプレイログに含まれる第1のユーザの操作ログに基づいてゲームプレイを実行し、他方の仮想インスタンス64においては対象リプレイログに含まれる第2のユーザの操作ログに基づいてゲームプレイを実行し、盤面情報を取得する。検査部83は、第1の処理部81から取得された盤面情報(Statei)と、第2の処理部82から取得された盤面情報(State´i)との比較に基づいてバージョン間不整合を検出する。1つの例では、第1の処理部81及び第2の処理部82のそれぞれは、操作ログどおりの操作でゲームをプレイさせ、盤面情報を出力させる実行ボットととして具現化することができる。
図7は、本発明の一実施形態のシステム1の処理のフローチャートの一例を説明する図である。
ステップS1で、第1の処理部81は、仮想インスタンス63を用いて第1のバージョンのゲームGを実行する。ステップS2で、第1の処理部81は、仮想インスタンス63を用いて対象リプレイログに含まれる操作ログに基づいてゲームプレイを実行し、盤面情報を取得する。ステップS3で、第2の処理部82は、仮想インスタンス64を用いて第2のバージョンのゲームGを実行する。ステップS4で、第2の処理部82は、仮想インスタンス64を用いて対象リプレイログに含まれる操作ログに基づいてゲームプレイを実行し、盤面情報を取得する。ステップS5で、検査部54は、ステップS2で取得された盤面情報とステップS4で取得された盤面情報とに基づいて不整合の有無を判定し、バージョン間不整合を検出する。
本フローチャートにおいて、ステップS1とS2がこの順番で実行が開始され、ステップS3とS4がこの順番で実行が開始され、ステップS2とS4が実行された後にステップS5が実行されれば、他のステップの順番は変更されてもよい。なお、本フローチャートは、ステップS1が実行されている状態でステップS2が実行され(ステップS2が実行されている間はステップS1が実行され)、ステップS3が実行されている状態でステップS4が実行される。例えば、ステップS1とS3の実行が同時に開始され、ステップS2とS4の実行が同時に開始されてもよい。
次に、本発明の実施形態のシステム1の主な作用効果について説明する。
従来、ゲームのバージョン間不整合を検出するには、人手による確認のみが有効な手段であったが、例えばDCCGのような対戦型カードゲームは、カードの種類が爆発的に増大するものが多く、網羅的に不整合を確認することが不可能であった。No Contest不具合を自動的に検出可能な技術はあるものの、バージョン間不整合を人手で確認するために、デバッグ工程の多くの時間を割く必要があった。
本発明の実施形態では、システム1を構成する管理サーバ10、仮想インスタンスサーバ20、及びテスト用ゲームサーバ30の仮想化を実現した仮想環境が用いられ、例えば第1の処理部81、第2の処理部82、及び検査部83などのシステム1の機能部が実現される。第1の処理部81は、第1のバージョンのゲームGのプレイ環境を再現し、運用中のゲームサーバSが取得したリプレイログから取得(生成)した操作ログのとおりにゲームGをプレイさせ、アクションが実行されて変化する盤面情報を取得(生成)する。第2の処理部82は、第2のバージョンのゲームGのプレイ環境を再現し、運用中のゲームサーバSが取得したリプレイログから取得(生成)した操作ログのとおりにゲームGをプレイさせ、アクションが実行されて変化する盤面情報を取得(生成)する。
このような構成とすることにより、検査部83は、2つの盤面情報のパターンマッチを行うのみで、ゲームGの異なるバージョン間の不整合を検出することができる。例えば、これにより、特定のどのゲーム状態(盤面)とアクションの組み合わせで不整合が起きるかを機械的に特定することができ、更に、多くのユーザ(理想的にはすべてのユーザ)のリプレイログについて不整合を検証することができるため、エンドユーザに提示したゲームソフトウェアのすべての挙動を網羅的に検証することが可能となる。したがって、例えば本発明の実施形態により、長期運用タイトルのデバッグ工数を削減することができる。
このように、クライアントからサーバまでの全て含めてゲーム環境全体を仮想化し、任意のバージョンのゲームのプレイ環境を再現し、実際のリプレイログを用いてバージョン間不整合を見つける技術は未だ提案されていない。
また、本発明の実施形態は、これまで死蔵されてきた膨大な量のリプレイログを、異なるバージョンのゲームGの整合性を検証するというゲームの品質向上の資源に変換することができるものである。
上記の作用効果は、特に言及が無い限り、他の実施形態や変形例においても同様である。
本発明の実施形態のシステム1は、1つの装置であってもよい。本発明の実施形態は、上記で説明したシステム1の機能やフローチャートに示す情報処理を実現する方法又はプログラム若しくは該プログラムを格納したコンピュータ読み取り可能な記憶媒体とすることもできる。また本発明の実施形態は、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現するプログラムをコンピュータに供給することができるサーバとすることもできる。他の実施形態や変形例においても同様である。
本発明の実施形態のシステム1は、例えば同じタイトルの異なるバージョンのゲームGを検査した結果、不整合を検出することが可能なシステムである。したがって、本発明の実施形態のシステム1は、ゲームを検査することが可能なシステムを提供するという課題を解決することを目的としたゲームを検査するためのシステムとすることができる。この実施形態では、検査部54は、一の対象リプレイログから生成された操作ログに基づいてゲームプレイを実行する仮想インスタンス63から取得された盤面情報から第1のゲーム実行制御部51が生成した盤面情報履歴データ(Statelogn)と、該一の対象リプレイログから生成された操作ログに基づいてゲームプレイを実行する仮想インスタンス64から取得された盤面情報から第2のゲーム実行制御部52が生成した盤面情報履歴データ(Statelog´n)とを比較して不整合の有無を判定する機能部とすることができる。例えば検査部54は、第1のゲーム実行制御部51が生成した盤面情報履歴データ(Statelogn)におけるi番目の盤面情報
Figure 0007366223000016
と、第2のゲーム実行制御部52が生成した盤面情報履歴データ(Statelog´n)におけるi番目の盤面情報
Figure 0007366223000017
とが一致するか否かを、すべてのi(i=0~e)において判定し、その結果を出力するように構成される。この場合、検査部54は、不整合の有無を判定するが、不整合の検出を行わなくてもよい。上記については、検査部83も同様である。
本発明の変形実施形態では、システム1は、例えば1つのゲームを検査するためのシステムとすることができる。例えばこの変形実施形態では、第1の処理部81と第2の処理部82は同じバージョンのゲームを実行する。例えばこの場合、第2の処理部82も、2つの仮想インスタンス64を用いて第1のバージョンのゲームGを実行し、2つの仮想インスタンス64においてゲームプレイを実行し、盤面情報を取得する。このような構成とすることにより、ある1つのバージョンのゲームの動作の不具合を検査することが可能となる。
本発明の1又は複数の実施形態では、ゲームログDB54が記憶するゲームサーバSにより記憶されるゲームログは、乱数のシード値を含むことができる。例えば乱数のシード値のそれぞれは、リプレイログのそれぞれに関連付けられて記憶される、又はリプレイログに含まれるアクションのデータのうちの乱数を用いて実行されたアクションのデータ(乱数処理を実行したデータ)のそれぞれに関連付けられて記憶される。例えば、あるバトルゲームを通して乱数を生成する際に1つの乱数のシード値が用いられる場合、当該シード値がそのバトルゲームにおいて取得されたリプレイログに関連付けられてゲームログの一部として記憶される。例えばこの実施形態では、第1のゲーム実行制御部51は、仮想インスタンス63に第1のバージョンのゲームGを実行させ、対象リプレイログから生成した操作ログに基づいてゲームプレイを実行させるとともに、第1のゲームサーバ制御部71に乱数処理を実行させる際には、対象リプレイログに関連付けられた乱数のシード値又は対象リプレイログの対象のアクションのデータに関連付けられた乱数のシード値を用いて乱数処理を実行させ、盤面情報を取得する。この例示では、第2のゲーム実行制御部52の処理についても第1のゲーム実行制御部51の処理と同様である。また例えばこの実施形態では、第1の処理部81は、2つの仮想インスタンス63を用いて第1のバージョンのゲームGを実行し、該2つの仮想インスタンス63をマッチングさせ、一方の仮想インスタンス63においては対象リプレイログに含まれる第1のユーザの操作ログに基づいてゲームプレイを実行し、他方の仮想インスタンス63においては対象リプレイログに含まれる第2のユーザの操作ログに基づいてゲームプレイを実行し、乱数処理を実行する際には対象リプレイログに関連付けられた乱数のシード値又は対象リプレイログの対象のアクションのデータに関連付けられた乱数のシード値を用いて乱数処理を実行し、盤面情報を取得する。この例示では、第2の処理部82の処理についても第1の処理部81の処理と同様である。このような構成とすることにより、第1のゲームサーバ制御部71(第1の処理部81)及び第2のゲームサーバ制御部72(第2の処理部82)のアクションを実行する際の乱数が同じ値に設定されるように構成することができる。これにより、同一の操作ログの操作によって完全に同一の盤面情報を生成することが可能となる。
本発明の1又は複数の実施形態では、管理サーバ10、仮想インスタンスサーバ20、及びテスト用ゲームサーバ30のそれぞれは、1又は複数の装置を含んで構成されるものとすることもできる。
本発明の1又は複数の実施形態では、ゲームGにおいて、カード41(カード群)は、キャラクタやアイテムなどの媒体(媒体群)とすることができ、所有カード群は、ユーザが所有する複数の媒体を含んで構成される所有媒体群とすることができる。例えば媒体群がキャラクタとアイテムの媒体により構成される場合、ゲーム画面40は、カード41として、キャラクタ又はアイテムそのものを示すこととなる。
本発明の1又は複数の実施形態では、ゲームGのバージョン間の不整合の有無を判定する対象リプレイログは、可能な限り多くのユーザのリプレイログであってもよいし、ランキング上位のユーザのリプレイログであってもよいし、プレイ頻度が高いユーザのリプレイログであってもよいし、任意のサンプリングユーザのリプレイログであってもよい。
本発明の1又は複数の実施形態では、ゲームGは、対戦型カードゲームでなくてもよい。1つの例では、ゲームGは、1人用のゲームとすることもできる。ゲームGが1人用のゲームの場合、ゲームログDB54が記憶するゲームサーバSにより記憶されるゲームログは、1人のユーザのユーザ操作を再現可能なログであるリプレイログを含むものである。この場合、例えば第1の仮想インスタンス制御部61は、N個の対象リプレイログに対して、N個の仮想インスタンス63を生成し、第2の仮想インスタンス制御部62は、N個の対象リプレイログに対して、N個の仮想インスタンス64を生成する。この場合、第1のゲームサーバ制御部71及び第2のゲームサーバ制御部72は、仮想インスタンス63、64のマッチングを行わない。この場合、ゲーム実行制御部50は、1つの対象リプレイログから1人のユーザの操作ログを生成する。この場合、第1の処理部81は、仮想インスタンス63を用いて第1のバージョンのゲームGを実行し、対象リプレイログから生成された操作ログに基づいてゲームプレイを実行し、盤面情報を取得し、第2の処理部82は、仮想インスタンス64を用いて第2のバージョンのゲームGを実行し、対象リプレイログから生成された操作ログに基づいてゲームプレイを実行し、盤面情報を取得し、検査部83は、第1の処理部81から取得された盤面情報(Statei)と、第2の処理部から取得された盤面情報(State´i)との比較に基づいてバージョン間不整合を検出する。この場合、例えば、盤面情報は、第2のユーザに関する情報を含む必要がないため、式(3)で表されるデータとは異なる第2のユーザに関する情報を含まない形式のデータである。このように、本発明の実施形態のシステム1は、対戦型カードゲーム以外のゲームにも適用することができる。ゲームGが対戦型カードゲームでない場合、第1の処理部81及び第2の処理部から各々取得されたStatei及びState´iは、盤面情報ではないゲーム状態情報であってもよい。本発明の実施形態のシステム1は、3人以上のユーザが参加する対戦型カードゲームにも適用することができる。
本発明の1又は複数の実施形態では、第1のバージョンのゲームGと第2のバージョンのゲームGは異なるバージョンのゲームであればよく、リリース中のゲームとリリースされる予定のゲームに限定されない。
本発明の1又は複数の実施形態では、第2のバージョンのゲームGは、第1のバージョンのゲームGとは異なるプラットフォームに対応したゲームであってもよい。例えば第1のバージョンのゲームGがiOS用のゲームであり、第2のバージョンのゲームGがAndroid用のゲームであってもよい。このように、異なるプラットフォームに対応したゲームは、異なるプラットフォーム向けのバイナリデータにより作成されるため、動作保証する必要がある。したがって、このような実施形態においても、ゲームのバージョン間不整合の有無を判定することが必要である。
本発明の実施形態では、ゲームGは、ウェブアプリのゲームを想定しているが、これに限定されない。本発明の1又は複数の実施形態では、ゲームGは、ブラウザゲームなどであってもよい。
本発明の1又は複数の実施形態では、ゲームログDB54が記憶するゲームサーバSにより記憶されるゲームログは、1つのバトルごとのリプレイログに代えて、所定のイベント又は所定の時間ごとのリプレイログを含んでもよい。この実施形態では、対象リプレイログは、1つの所定のイベント又は所定の時間のリプレイログとなる。
本発明の1又は複数の実施形態では、ゲームログDB54が記憶するゲームサーバSにより記憶されるゲームログは、各バトルのバトル開始時の盤面情報又はバトル終了時の盤面情報を含むものであれば、各バトルの盤面情報履歴データを含まなくてもよい。この場合、バトル開始時の盤面情報又はバトル終了時の盤面情報は、リプレイログに関連付けられて記憶される。ゲームログがバトル開始時の盤面情報を含まない場合、ゲーム実行制御部50は、リプレイログ及びバトル終了時の盤面情報からバトル開始時の盤面情報を生成することができ、第1の仮想インスタンス制御部61及び第2の仮想インスタンス制御部62は、仮想インスタンス63、64にバトル開始時のデッキを割り当てることができる。
本発明の1又は複数の実施形態では、リプレイログは、バトル開始時の盤面情報と、バトル終了時の盤面情報とを含むことができる。この場合、ゲームログは、各バトルの盤面情報履歴データを含まなくてもよい。
本発明の1又は複数の実施形態では、リプレイログに含まれるアクションのデータは、ユーザ操作によりゲームプログラムが決定した内容を含まないものであってものであってもよい。この場合、アクションのデータは、ユーザの操作ログである。
本発明の1又は複数の実施形態では、第1の仮想インスタンス制御部61は、1つの対象リプレイログに対して、2つの仮想インスタンス63を生成せずに、予め生成されてゲームプレイが実行されていない仮想インスタンスの中から2つの仮想インスタンスを選択し、一方に第1のユーザのバトル開始時のデッキを割り当て、他方に第2のユーザのバトル開始時のデッキを割り当ててもよい。同様に、第2の仮想インスタンス制御部62は、1つの対象リプレイログに対して、2つの仮想インスタンス64を生成せずに、予め生成されてゲームプレイが実行されていない仮想インスタンスの中から2つの仮想インスタンスを選択し、一方に第1のユーザのバトル開始時のデッキを割り当て、他方に第2のユーザのバトル開始時のデッキを割り当ててもよい。
本発明の1又は複数の実施形態では、検査部54は、
Figure 0007366223000018

Figure 0007366223000019
が完全一致、すなわち
Figure 0007366223000020
でなくても、±Nまでの差分の許容範囲を設定するなど、マッチング度合いに基づいて不整合を検出するように構成されてもよい。このような構成とすることにより、不整合検出の誤差の範囲を調整することができ、一部の誤差を許容する構成とすることができる。例えばこの場合、ゲームサーバSが記憶するゲームログに含まれる乱数のシード値を用いずに、より実際のゲームサーバSに近い環境で動作を確認することができる。したがって、この場合、ゲームサーバSが記憶するゲームログは、乱数のシード値を含まなくてもよい。
本発明の実施形態では、システム1は、同時に複数の対象リプレイログを対象として、ゲームGのバージョン間の不整合検出を行うこともできる。
本発明の実施形態において、ヘッドレスモードとは、GPUにアクセスするグラフィック処理を無効化し、さらに、音源チップにアクセスするサウンド処理、および、外部サーバへのアクセス処理を無効化するモードである。これにより、CPU、メモリ、二次記憶装置のみを使用する状態、すなわち、コンテナ内部に閉じたリソースへのアクセスのみでゲームを実行することができるため、人間が閲覧することを前提としたアニメーション処理スピード、人間が聞くことを前提とした音声の再生スピードといった律速要因(速度を決める要因)を排除することができるようになる。さらに、これらのグラフィック機器やサウンド機器は、一般的にCPUの外にある外部機器として実装されており、CPUと外部機器との間のI/O処理にかかる同期のための待ち時間も省略することができる。これにより、人間のための演出や、外部機器のための同期待ちといったウェイト処理を省いた、CPU単独の処理速度のみに依存するノー・ウェイト(No Wait)処理で、ゲームを高速に動作させることができるから、より短時間でバトルゲームの実行を行うことができる。
本発明の1又は複数の実施形態では、ゲームプログラム(ゲームアプリ)をヘッドレスモードで実行することは、ヘッドレスモードでゲームプログラムを実行することと、ヘッドレス化されたゲームプログラムを実行することのいずれであってもかまわない。ゲームをヘッドレス状態で進行させることができれば、どのような態様での実行であってもかまわない。広く普及しているゲームエンジンであるUnityにおいてはGUIからヘッドレスモードを選択するだけで容易にヘッドレス化されたゲームプログラムを生成することが可能である。すなわち、ユーザ端末用のゲームプログラムを再利用して、検証用のゲームプログラムを容易に用意することができる。本発明の1又は複数の実施形態では、ゲームプログラムをヘッドレスモードではない、通常モードで実行してもよい。
本発明の1又は複数の実施形態では、システム1は、第1の処理部81を備えない構成とすることができる。この実施形態では、システム1は、第1のゲーム実行制御部51、第1の仮想インスタンス制御部61、仮想インスタンス63、及び第1のゲームサーバ制御部71を備えない。この実施形態では、検査部83は、ゲームログDB54が記憶するゲームサーバSにより記憶されたゲームログが含む盤面情報履歴に含まれる盤面情報(Statei)と、第2の処理部82から取得された盤面情報(State´i)との比較に基づいてバージョン間不整合を検出することができる。この実施形態では、ゲームログDB54が記憶するゲームサーバSにより記憶されるゲームログは、乱数のシード値を含み、例えば第2の処理部82は、乱数処理を実行する際には対象リプレイログの対象のアクションのデータに関連付けられた乱数のシード値を用いて乱数処理を実行する実施形態であることが好ましい。
本発明の変形実施形態では、システム1が備える各機能部は、その一部又は全部を実現するための電子回路等を構成することによりハードウェアによって実現することもできる。
以上に説明した処理又は動作において、あるステップにおいて、そのステップではまだ利用することができないはずのデータを利用しているなどの処理又は動作上の矛盾が生じない限りにおいて、処理又は動作を自由に変更することができる。また以上に説明してきた各実施例は、本発明を説明するための例示であり、本発明はこれらの実施例に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。例えば、本発明の実施形態のシステム1と同様の作用効果を備える場合、ゲームログDB54が記憶するリプレイログは、式(1)で表されるデータ形式のものに限定されず、第1のゲーム実行制御部51及び第2のゲーム実行制御部52が生成する盤面情報履歴データは式(2)で表されるデータ形式のものに限定されず、盤面情報は、式(3)で表されるデータに限定されない。
1:システム、2:ネットワーク、10:管理サーバ、11:プロセッサ、12:表示装置、13:入力装置、14:記憶装置、15:通信装置、16:バス、20:仮想インスタンスサーバ、21:プロセッサ、22:表示装置、23:入力装置、24:記憶装置、25:通信装置、26:バス、30:テスト用ゲームサーバ、31:プロセッサ、32:表示装置、33:入力装置、34:記憶装置、35:通信装置、40:ゲーム画面、41:カード、42:手札、42a、42b:第1のカード群、43:場、44:山札、44a、44b:第2のカード群、45:キャラクタ、50:ゲーム実行制御部、51:第1のゲーム実行制御部、52:第2のゲーム実行制御部、53:検査部、54:ゲームログDB、55:第1のゲーム状態DB、56:第2のゲーム状態DB、61:第1の仮想インスタンス制御部、62:第2の仮想インスタンス制御部、63:仮想インスタンス、64:仮想インスタンス、71:第1のゲームサーバ制御部、72:第2のゲームサーバ制御部、81:第1の処理部、82:第2の処理部、83:検査部、84:ゲームログDB、85:第1のゲーム状態DB、86:第2のゲーム状態DB

Claims (9)

  1. ユーザの操作に応じてゲーム状態が更新されうるゲームのバージョン間不整合を検出するためのシステムであって、
    前記システムは、
    一のゲームログについて前記ゲームのバージョン間不整合を検証するため、仮想化されたユーザ端末である仮想インスタンス又はユーザ端末のソフトウェア環境を仮想化するために生成された仮想インスタンスを用いて、前記一のゲームログに含まれるユーザ操作を再現可能な操作ログに基づいて第1のバージョンの前記ゲームのゲームプレイを実行し、ゲーム状態情報を取得する、第1の処理部と、
    前記一のゲームログについて前記ゲームのバージョン間不整合を検証するため、仮想インスタンスを用いて前記一のゲームログに含まれるユーザ操作を再現可能な操作ログに基づいて第2のバージョンの前記ゲームのゲームプレイを実行し、ゲーム状態情報を取得する、第2の処理部と、
    前記第1の処理部により取得されたゲーム状態情報と前記第2の処理部により取得されたゲーム状態情報との比較に基づいてバージョン間不整合を検出する、検査部と、
    を備える、システム。
  2. 前記ゲームは、対戦型ゲームであり、前記一のゲームログは、マッチングされた第1のユーザ及び第2のユーザの操作を再現可能な第1のユーザの操作ログ及び第2のユーザの操作ログを含み、
    前記第1の処理部は、2つの仮想インスタンスを用いて第1のバージョンの前記ゲームを実行し、該2つの仮想インスタンスをマッチングさせ、一方の仮想インスタンスにおいては前記一のゲームログに含まれる第1のユーザの操作ログに基づいてゲームプレイを実行し、他方の仮想インスタンスにおいては該一のゲームログに含まれる第2のユーザの操作ログに基づいてゲームプレイを実行し、ゲーム状態情報を取得し、
    前記第2の処理部は、2つの仮想インスタンスを用いて第2のバージョンの前記ゲームを実行し、該2つの仮想インスタンスをマッチングさせ、一方の仮想インスタンスにおいては前記一のゲームログに含まれる第1のユーザの操作ログに基づいてゲームプレイを実行し、他方の仮想インスタンスにおいては前記一のゲームログに含まれる第2のユーザの操作ログに基づいてゲームプレイを実行し、ゲーム状態情報を取得する、
    請求項1に記載のシステム。
  3. 前記システムは、取得されたゲームログから、第1のユーザの操作ログと第2のユーザの操作ログをそれぞれ取得する、請求項2に記載のシステム。
  4. 前記ゲームのゲームログは、第1のバージョンの前記ゲームをユーザがプレイすることにより取得されるゲームログである、請求項3に記載のシステム。
  5. ゲーム状態情報は、所定の形式で出力可能なデータであり、
    前記第1の処理部及び前記第2の処理部は、それぞれ、実行されるゲームプレイに応じて得られる複数のゲーム状態情報を取得し、
    前記検査部は、対応する前記第1の処理部により取得されたゲーム状態情報と前記第2の処理部により取得されたゲーム状態情報とのマッチング度合いに基づいてバージョン間不整合を検出する、
    請求項1から4のいずれか1項に記載のシステム。
  6. 前記第1の処理部及び前記第2の処理部は、少なくともグラフィック処理及びサウンド処理が無効化されるように、仮想インスタンスにおいてゲームをヘッドレスモードで実行する、請求項1に記載のシステム。
  7. ユーザの操作に応じてゲーム状態が更新されうるゲームのバージョン間不整合を検出するための、コンピュータにより実行される方法であって、
    一のゲームログについて前記ゲームのバージョン間不整合を検証するため、仮想化されたユーザ端末である仮想インスタンス又はユーザ端末のソフトウェア環境を仮想化するために生成された仮想インスタンスを用いて、前記一のゲームログに含まれるユーザ操作を再現可能な操作ログに基づいて第1のバージョンの前記ゲームのゲームプレイを実行し、ゲーム状態情報を取得する第1の取得ステップと、
    前記一のゲームログについて前記ゲームのバージョン間不整合を検証するため、仮想インスタンスを用いて前記一のゲームログに含まれるユーザ操作を再現可能な操作ログに基づいて第2のバージョンの前記ゲームのゲームプレイを実行し、ゲーム状態情報を取得する第2の取得ステップと、
    前記第1の取得ステップにおいて取得されたゲーム状態情報と前記第2の取得ステップにおいて取得されたゲーム状態情報との比較に基づいてバージョン間不整合を検出するステップと、
    を含む、方法。
  8. 前記ゲームは、対戦型ゲームであり、
    前記一のゲームログは、マッチングされた第1のユーザ及び第2のユーザの操作を再現可能な第1のユーザの操作ログ及び第2のユーザの操作ログを含み、
    前記第1の取得ステップでは、2つの仮想インスタンスを用いて第1のバージョンの前記ゲームを実行し、該2つの仮想インスタンスをマッチングさせ、一方の仮想インスタンスにおいては前記一のゲームログに含まれる第1のユーザの操作ログに基づいてゲームプレイを実行し、他方の仮想インスタンスにおいては該一のゲームログに含まれる第2のユーザの操作ログに基づいてゲームプレイを実行し、ゲーム状態情報を取得し、
    前記第2の取得ステップでは、2つの仮想インスタンスを用いて第2のバージョンの前記ゲームを実行し、該2つの仮想インスタンスをマッチングさせ、一方の仮想インスタンスにおいては前記一のゲームログに含まれる第1のユーザの操作ログに基づいてゲームプレイを実行し、他方の仮想インスタンスにおいては前記一のゲームログに含まれる第2のユーザの操作ログに基づいてゲームプレイを実行し、ゲーム状態情報を取得する、
    請求項7に記載の方法。
  9. 請求項7又は8に記載の方法コンピュータに実行させるプログラム。
JP2022173314A 2022-10-28 2022-10-28 ゲームを検査するためのシステム、方法、及びプログラム Active JP7366223B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022173314A JP7366223B1 (ja) 2022-10-28 2022-10-28 ゲームを検査するためのシステム、方法、及びプログラム
PCT/JP2023/038505 WO2024090476A1 (ja) 2022-10-28 2023-10-25 ゲームを検査するためのシステム、方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022173314A JP7366223B1 (ja) 2022-10-28 2022-10-28 ゲームを検査するためのシステム、方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP7366223B1 true JP7366223B1 (ja) 2023-10-20
JP2024064603A JP2024064603A (ja) 2024-05-14

Family

ID=88372769

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022173314A Active JP7366223B1 (ja) 2022-10-28 2022-10-28 ゲームを検査するためのシステム、方法、及びプログラム

Country Status (2)

Country Link
JP (1) JP7366223B1 (ja)
WO (1) WO2024090476A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013105358A (ja) 2011-11-15 2013-05-30 Japan Research Institute Ltd プログラムの新旧バージョンに対する差分比較テストシステム及びテスト方法
JP2013250807A (ja) 2012-05-31 2013-12-12 Sony Computer Entertainment Inc 情報処理装置および情報処理システム
JP2020108733A (ja) 2018-11-09 2020-07-16 株式会社ソニー・インタラクティブエンタテインメント データ処理システムおよび方法
JP7053931B1 (ja) 2021-08-17 2022-04-12 株式会社Cygames 不具合原因を推定するための方法、プログラム、システム、及び装置
JP2022103451A (ja) 2018-03-07 2022-07-07 トヨタ自動車株式会社 ソフトウェアの整合性を確認する装置及びこれを備えた車両、ソフトウェアの整合性を確認する方法及びプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019193771A (ja) * 2019-01-24 2019-11-07 株式会社Cygames ゲームにおけるユーザの不正を検出するためのシステム、サーバ、プログラム及び方法
JP7362371B2 (ja) * 2019-09-03 2023-10-17 株式会社バンダイナムコエンターテインメント 処理システム及びプログラム
JP6768982B1 (ja) * 2020-03-19 2020-10-14 株式会社Cygames プログラム検証のための方法、プログラム、システム及びサーバ

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013105358A (ja) 2011-11-15 2013-05-30 Japan Research Institute Ltd プログラムの新旧バージョンに対する差分比較テストシステム及びテスト方法
JP2013250807A (ja) 2012-05-31 2013-12-12 Sony Computer Entertainment Inc 情報処理装置および情報処理システム
JP2022103451A (ja) 2018-03-07 2022-07-07 トヨタ自動車株式会社 ソフトウェアの整合性を確認する装置及びこれを備えた車両、ソフトウェアの整合性を確認する方法及びプログラム
JP2020108733A (ja) 2018-11-09 2020-07-16 株式会社ソニー・インタラクティブエンタテインメント データ処理システムおよび方法
JP7053931B1 (ja) 2021-08-17 2022-04-12 株式会社Cygames 不具合原因を推定するための方法、プログラム、システム、及び装置

Also Published As

Publication number Publication date
JP2024064603A (ja) 2024-05-14
WO2024090476A1 (ja) 2024-05-02

Similar Documents

Publication Publication Date Title
JP6438612B1 (ja) ゲームプログラムを検査するためのシステム、方法、プログラム、機械学習支援装置、及びデータ構造
US8961321B2 (en) Management of gaming data
US9623327B2 (en) Determining triggers for cloud-based emulated games
US8387015B2 (en) Scalable automated empirical testing of media files on media players
JP6473259B1 (ja) ゲームにおけるユーザの不正を検出するためのシステム、サーバ、プログラム及び方法
US11040285B1 (en) Secure anti-cheat system
US20150179021A1 (en) System and method for allocating playing positions among players in a squares game
JP7474832B2 (ja) ゲームプログラムを検査するためのシステム、方法、プログラム、機械学習支援装置、及びデータ構造
JP7366223B1 (ja) ゲームを検査するためのシステム、方法、及びプログラム
US20230016371A1 (en) Method, program, system, and server for program verification
WO2019083747A1 (en) SYNCHRONIZATION OF EVENTS FOR COMPUTER DEVELOPMENT SYSTEM
JP2019193771A (ja) ゲームにおけるユーザの不正を検出するためのシステム、サーバ、プログラム及び方法
JP7454082B1 (ja) ゲーム媒体セットを出力するシステム、方法、及びプログラム
JP7463591B1 (ja) ゲーム媒体セットを出力するためのシステム、情報処理装置、方法、及びプログラム
US11014007B2 (en) Methods and systems for video game streaming transaction support
US20100029355A1 (en) Real-Time Sequential Game Play
US20230050195A1 (en) Interaction based skill measurement for players of a video game
Eichhorn et al. Well Played, Suspect!–Forensic examination of the handheld gaming console “Steam Deck”
US20230347256A1 (en) Program, information processing device, method, and system
JP2024034073A (ja) ゲームプログラム、ゲーム装置および情報処理方法
Zhang Why Are We Permanently Stuck in an Elevator? A Software Engineering Perspective on Game Bugs
Bertrand et al. 15, 000 video games in the library Challenges in the dissemination of interactive digital objects.
Goodwin et al. Testing: Working Right, All the Time
Maynard Metadata and the Digital Preservation of Video Games
TW201600155A (zh) 視窗遊戲伺服器及其遊戲方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230214

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20230214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230420

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230616

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230821

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231010

R150 Certificate of patent or registration of utility model

Ref document number: 7366223

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150