JP2021145939A - プログラム検証のための方法、プログラム、システム及びサーバ - Google Patents

プログラム検証のための方法、プログラム、システム及びサーバ Download PDF

Info

Publication number
JP2021145939A
JP2021145939A JP2020049336A JP2020049336A JP2021145939A JP 2021145939 A JP2021145939 A JP 2021145939A JP 2020049336 A JP2020049336 A JP 2020049336A JP 2020049336 A JP2020049336 A JP 2020049336A JP 2021145939 A JP2021145939 A JP 2021145939A
Authority
JP
Japan
Prior art keywords
game
joint
deck
combination
virtual instances
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.)
Granted
Application number
JP2020049336A
Other languages
English (en)
Other versions
JP6768982B1 (ja
Inventor
修一 倉林
Shuichi Kurabayashi
修一 倉林
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 JP2020049336A priority Critical patent/JP6768982B1/ja
Application granted granted Critical
Publication of JP6768982B1 publication Critical patent/JP6768982B1/ja
Priority to CN202180022038.7A priority patent/CN115297937B/zh
Priority to PCT/JP2021/009342 priority patent/WO2021187245A1/ja
Publication of JP2021145939A publication Critical patent/JP2021145939A/ja
Priority to US17/932,521 priority patent/US20230016371A1/en
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/70Game security or game management aspects
    • A63F13/73Authorising game programs or game devices, e.g. checking authenticity
    • 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/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/33Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
    • A63F13/335Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
    • 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
    • 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/75Enforcing rules, e.g. detecting foul play or generating lists of cheating players
    • 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
    • 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)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】プログラム検証のための方法、プログラム、システム、サーバ及び方法を提供すること。【解決手段】複数のゲーム媒体を含むデッキを用いて他のプレイヤとの共同ゲームのためのゲームプログラムの検証を行うためのシステムによって実行される方法であって、デッキ集合は複数のデッキを含み、デッキ組合せは一つの共同ゲームを行うために用いられるデッキの組合せであり、デッキ組合せ集合は複数のデッキの組合せを含み、前記方法は、ゲームをプレイするユーザ端末またはユーザ端末のソフトウェア環境を仮想化するために生成された複数の仮想インスタンスにおいてゲームプログラムを実行し、所定の検証網羅性に達するまで、第1のモードで共同ゲームを実行し、所定の検証網羅性に達した後、第2のモードで共同ゲームを実行する、ことを含む方法。【選択図】図1

Description

本発明は、プログラム、より具体的には、ゲームプログラムの検証を行うための方法、プログラム、システム、サーバ及び方法に関する。
近年、スマートフォンやPC等の汎用的な電子装置上で動作し、オープンなネットワークを通じてサーバと通信して、他のユーザとのバトルによる対戦のような共同ゲームを楽しませるオンラインゲームが広く普及している。このようなオンラインゲームにおいては、カードのようなゲーム媒体が多数用意され、そこからプレイヤによって選択された複数のゲーム媒体を含むデッキを用いてバトルを行う形式が知られている。バトルにおいて用いられるデッキの組合せによって、不具合が発生したり、勝率が偏ったりする可能性があるため、デッキの組合せを考慮したソフトウェアとしてのゲームプログラムの挙動を検証する必要がある。
特開2019−193702号公報
このような検証の手法としては、ソフトウェアテストが良く知られている。人手によるソフトウェアテストでカバーできる範囲は狭いため、ゲーム媒体が多数用意されて、膨大な数のデッキの組合せがあるテストを実現することは大きな課題となっている。また、ゲームに使用するサーバや、スマートフォンなどの上で動作するゲームアプリを、実際の環境にできるだけ近い状態で検証を行うことが望ましい。特許文献1は、ゲームアプリを実環境に近い状態で、サーバサイドで高速・並列に実行する仮想化技術を開示する。しかしながら、特許文献1はゲームのプレイヤがゲームデータの不正な改ざんなどを行っていないかの検証を行うためのシステムを開示するものであり、多数のデッキの組合せに基づくゲームプログラムの挙動の妥当性を網羅的に検証可能なシステムは実現されていない。
本発明は上記の課題に鑑みてなされたものであり、以下のような特徴を有している。すなわち、本発明の一つの実施形態としての方法は、複数のゲーム媒体を含むデッキを用いて他のプレイヤとの共同ゲームのためのゲームプログラムの検証を行うためのシステムによって実行される方法であって、デッキ集合は複数のデッキを含み、デッキ組合せは一つのバトルを行うために用いられるデッキの組合せであり、デッキ組合せ集合は複数のデッキの組合せを含み、前記方法は、共同ゲームをプレイするユーザ端末またはユーザ端末のソフトウェア環境を仮想化するために生成された複数の仮想インスタンスを用いてゲームプログラムを実行し、所定の検証網羅性に達するまで、第1のモードで共同ゲームを実行し、所定の検証網羅性に達した後、第2のモードで共同ゲームを実行する、ことを含み、前記所定の検証網羅性に達するまで、第1のモードで共同ゲームを実行することは、前記デッキ集合に含まれるデッキを割り当てられた仮想インスタンスのゲーム状態を共同ゲーム開始可能状態とし、共同ゲーム開始可能状態とされた仮想インスタンスから共同ゲームを行うための仮想インスタンスの組を決定し、決定された各組の仮想インスタンスを用いて共同ゲームを実行し、共同ゲームに用いられたデッキの組合せを含む共同ゲーム結果を生成し、デッキ組合せ集合と共同ゲーム結果に基づいて、所定の検証網羅性に達したかを決定し、所定の検証網羅性に達したと決定されるまで、共同ゲーム開始可能状態とすること、仮想インスタンスの組を決定すること、共同ゲーム結果を生成すること、所定の検証網羅性に達したかを決定することを繰り返し実行する、ことを含み、所定の網羅性に達した後、前記第2のモードで共同ゲームを実行することは、共同ゲームを実行するための仮想インスタンスの組を決定し、デッキ組合せ集合及び共同ゲーム結果に基づいて決定された検証未完了のデッキの組合せのデッキの各々を前記決定された組の仮想インスタンスの各々に割り当て、前記決定された組のうちの一組の仮想インスタンスのゲーム状態を共同ゲーム開始可能状態とし、共同ゲーム開始可能状態とされた前記一組の仮想インスタンスを用いて共同ゲームを実行し、共同ゲームに用いられたデッキの組合せを含む共同ゲーム結果を生成する、ことを含む。
また、前記仮想インスタンスを用いて実行される共同ゲームは、仮想インスタンスにおいてゲームプログラムをヘッドレスモードで実行することにより、少なくともグラフィック処理及びサウンド処理を無効化して実行されてもよい。
前記第1のモードで共同ゲームを実行することにおいて、仮想インスタンスの複数の組を決定することは、乱数に基づいて仮想インスタンスの複数の組を決定すること、ゲーム状態が共同ゲーム開始可能状態となった仮想インスタンスから順次選択されて決定すること、及び各仮想インスタンスに関連付けられた優先度に基づいて決定すること、の少なくとも一つを含んでもよい。
前記第2のモードで共同ゲームを実行することにおいて、前記決定された組のうちの一組の仮想インスタンスのゲーム状態を共同ゲーム開始可能状態とすることは、所定の時間間隔毎に、前記決定された組のうちの一組の仮想インスタンスのゲーム状態を共同ゲーム開始可能状態とし、共同ゲーム開始可能状態とされた前記一組の仮想インスタンスを用いて共同ゲームを実行することは、前記所定の時間間隔の間に、共同ゲーム開始可能状態とされた前記一組の仮想インスタンスを共同ゲームを実行するための組として決定する、ことを含んでもよい。
前記第2のモードで共同ゲームを実行することは、すべてのデッキの組合せが検証完了条件を満たすまで、仮想インスタンスの組を決定すること、仮想インスタンスに割り当てること、共同ゲーム開始可能状態とすること、共同ゲーム結果を生成することを繰り返し実行することを含んでもよい。
デッキの組合せの検証完了条件は、そのデッキの組合せを用いて所定回数、共同ゲームを実行することを含んでもよい。
前記所定の検証網羅性は、実行された共同ゲームの実行回数を実行すべき共同ゲームの実行回数で除算して得られる検証完了率に基づいて決定され、デッキの組合せの検証完了条件を越える回数実行された場合には、検証完了条件に定められた回数が実行されたものとして実行回数を算出してもよい。
前記仮想インスタンスを用いて共同ゲームを実行することは、プレイヤのプレイ履歴から生成された学習モデルを用いて実行することを含んでもよい。
また、本発明の一つの実施形態としてのプログラムは、前記方法を1以上のコンピュータに実行させるためのプログラムとすることができる。
本発明の一つの実施形態としてのシステムは、複数のゲーム媒体を含むデッキを用いて他のプレイヤとの共同ゲームのためのゲームプログラムの検証を行うためのシステムであって、デッキ集合は複数のデッキを含み、デッキ組合せは一つの共同ゲームを行うために用いられるデッキの組合せであり、デッキ組合せ集合は複数のデッキの組合せを含み、前記システムは、共同ゲームをプレイするユーザ端末またはユーザ端末のソフトウェア環境を仮想化するために生成された複数の仮想インスタンスを用いてゲームプログラムを実行し、所定の検証網羅性に達するまで、第1のモードで共同ゲームを実行し、所定の検証網羅性に達した後、第2のモードで共同ゲームを実行し、前記所定の検証網羅性に達するまで、第1のモードで共同ゲームを実行することは、前記デッキ集合に含まれるデッキを割り当てられた仮想インスタンスのゲーム状態を共同ゲーム開始可能状態とし、共同ゲーム開始可能状態とされた仮想インスタンスから共同ゲームを行うための仮想インスタンスの組を決定し、決定された各組の仮想インスタンスを用いて共同ゲームを実行し、共同ゲームに用いられたデッキの組合せを含む共同ゲーム結果を生成し、デッキ組合せ集合と共同ゲーム結果に基づいて、所定の検証網羅性に達したかを決定し、所定の検証網羅性に達したと決定されるまで、共同ゲーム開始可能状態とすること、仮想インスタンスの組を決定すること、共同ゲーム結果を生成すること、所定の検証網羅性に達したかを決定することを繰り返し実行する、ことを含み、前記所定の網羅性に達した後、第2のモードで共同ゲームを実行することは、共同ゲームを実行するための仮想インスタンスの組を決定し、デッキ組合せ集合及び共同ゲーム結果に基づいて決定された検証未完了のデッキの組合せのデッキの各々を前記決定された組の仮想インスタンスの各々に割り当て、前記決定された組のうちの一組の仮想インスタンスのゲーム状態を共同ゲーム開始可能状態とし、共同ゲーム開始可能状態とされた前記一組の仮想インスタンスを用いて共同ゲームを実行し、共同ゲームに用いられたデッキの組合せを含む共同ゲーム結果を生成する、ことを含む。
前記システムは、ゲームサーバ、管理サーバ及び仮想インスタンスサーバを含み、仮想インスタンスサーバが、ゲームをプレイするユーザ端末またはユーザ端末のソフトウェア環境を仮想化するために生成された複数の仮想インスタンスを用いてゲームプログラムを実行し、前記第1のモードで共同ゲームを実行することにおいて、管理サーバが、前記デッキ集合に含まれるデッキを割り当てられた仮想インスタンスのゲーム状態を共同ゲーム開始可能状態とし、ゲームサーバが、共同ゲーム開始可能状態とされた仮想インスタンスから共同ゲームを行うための仮想インスタンスの組を決定し、決定された各組の仮想インスタンスを用いて共同ゲームを実行し、共同ゲームに用いられたデッキの組合せを含む共同ゲーム結果を生成し、管理サーバが、デッキ組合せ集合と共同ゲーム結果に基づいて、所定の検証網羅性に達したかを決定し、前記第2のモードで共同ゲームを実行することにおいて、管理サーバが、共同ゲームを実行するための仮想インスタンスの組を決定し、デッキ組合せ集合及び共同ゲーム結果に基づいて決定された検証未完了のデッキの組合せのデッキの各々を前記決定された組の仮想インスタンスの各々に割り当て、前記決定された組のうちの一組の仮想インスタンスのゲーム状態を共同ゲーム開始可能状態とし、ゲームサーバが、共同ゲーム開始可能状態とされた前記一組の仮想インスタンスを用いて共同ゲームを実行し、共同ゲームに用いられたデッキの組合せを含む共同ゲーム結果を生成する。
本発明の一つの実施形態としての管理サーバは、複数のゲーム媒体を含むデッキを用いて他のプレイヤとの共同ゲームのためのゲームプログラムの検証を行うための管理サーバであって、デッキ集合は複数のデッキを含み、デッキ組合せは一つの共同ゲームを行うために用いられるデッキの組合せであり、デッキ組合せ集合は複数のデッキの組合せを含み、仮想インスタンスサーバにおいて共同ゲームをプレイするユーザ端末またはユーザ端末のソフトウェア環境を仮想化するために生成された複数の仮想インスタンスを用いてゲームプログラムを実行し、前記管理サーバは、所定の検証網羅性に達するまで、第1のモードで共同ゲームを実行し、所定の検証網羅性に達した後、第2のモードで共同ゲームを実行し、前記第1のモードで共同ゲームを実行することは、前記デッキ集合に含まれるデッキを割り当てられた仮想インスタンスのゲーム状態を共同ゲーム開始可能状態とし、共同ゲーム開始可能状態とされた仮想インスタンスから共同ゲームを行うために決定された仮想インスタンスの組の各組の仮想インスタンスを用いて共同ゲームが実行されて生成された共同ゲームに用いられたデッキの組合せを含む共同ゲーム結果及びデッキ組合せ集合に基づいて、所定の検証網羅性に達したかを決定し、所定の検証網羅性に達したと決定されるまで、共同ゲーム開始可能状態とすること、所定の検証網羅性に達したかを決定することを繰り返し実行する、ことを含み、前記第2のモードで共同ゲームを実行することは、共同ゲームを実行するための仮想インスタンスの組を決定し、デッキ組合せ集合及び共同ゲーム結果に基づいて決定された検証未完了のデッキの組合せのデッキの各々を前記決定された組の仮想インスタンスの各々に割り当て、前記決定された組のうちの一組の仮想インスタンスのゲーム状態を共同ゲーム開始可能状態とする、ことを含む。
本発明によれば、2つのモードで共同ゲームを実行することで効率的に多数のデッキの組合せを網羅的に検証可能なゲームプログラム検証システムを実現することを可能とする。
本発明の一実施形態に係るシステムの構成である。 本発明の一実施形態に係るシステムのハードウェア構成図である。 本発明の一実施形態に係るシステムの機能ブロック図である。 本発明の一実施形態に係るヘッドレスモードの概念図である。 本発明の一実施形態に係る情報処理のフローチャートである。 本発明の一実施形態に係る検証完了率推移の一例を示す図である。 本発明の一実施形態に係る情報処理のフローチャートである。 本発明の一実施形態に係る情報処理のフローチャートである。 本発明の一実施形態に係る情報処理のフローチャートである。 本発明の一実施形態に係る情報処理のフローチャートである。
以下、図面を参照して、本発明の一つの実施形態を説明する。本実施形態に係るプログラム検証システム100は、図1に示すように、ネットワーク150を介して接続された管理サーバ110、仮想インスタンスサーバ120及びゲームサーバ130を備えるシステムによって実現することができる。本実施形態において仮想インスタンスサーバ120及びゲームサーバ130は各々2以上のサーバを含むサーバ群とするが、1つのサーバのみによって実現することもできる。本発明におけるゲームは他のプレイヤと共同して進行させる共同ゲームである。本実施形態においては、他のプレイヤとの対戦を行うバトルゲームとする。複数のプレイヤが共通のノンプレイヤキャラクタと対戦するゲームとすることもできる。
図2は本実施形態に係る管理サーバ110、仮想インスタンスサーバ120及びゲームサーバ130のハードウェア構成を示すブロック図である。管理サーバ110、仮想インスタンスサーバ120及びゲームサーバ130は、ネットワーク150を介して互いに通信しつつゲームプログラムの検証を行うことができる装置であり、図2に示したとおり、処理装置211、221、231、出力装置212、222、232、入力装置213、223、233、記憶装置216、226、236、通信装置217、227、237及びバス218、228、238を備えることができる。各記憶装置においては、プログラム219、229、239が記憶される。ゲームプログラムは、ユーザ端末、仮想インスタンス及びゲームサーバで実行されるゲームプログラムを含む。プログラムをアプリと呼ぶことがある。
処理装置211、221、231の各々は、プログラム219、229、239、入力装置213、223、233からの入力データまたは通信装置217、227、237から受信したデータ等に基づいて各種の処理を行う。処理装置211、221、231は、管理サーバ110、仮想インスタンスサーバ120及びゲームサーバ130の各々が備える各装置を制御するプロセッサを備えており、プロセッサが含むレジスタや記憶装置216、226、236をワーク領域として各種処理を行う。
これらの各構成部はバス218、228、238によって接続されるが、それぞれが必要に応じて個別に接続される形態であってもかまわない。出力装置212、222、232は、処理装置211、221、231の制御に従って、画面の表示や音声を出力する。入力装置213、223、233は、キーボード、タッチパネル、タッチパッド、入力ボタン等のようにユーザからの入力を受け付ける機能を有するものである。
記憶装置216、226、236は、メインメモリ、バッファメモリ及びストレージを含み、揮発性メモリであるRAM及び不揮発性メモリであるeMMC、UFS、SSDのようなフラッシュメモリを用いた記憶装置及び磁気記憶装置等の一般的なコンピュータが備える記憶装置である。記憶装置216、226、236は、外部メモリを含むこともできる。通信装置217、227、237は、移動体通信、無線LAN等の無線通信やイーサネット(登録商標)ケーブル、USBケーブル等を用いた有線通信を行う。
本実施形態においては、ゲームサーバ130は、実際にプレイヤがゲームをプレイする際にユーザ端末(図示せず)によってアクセスされてゲームを実行するために使用されるゲームサーバと可能な限り同一構成であるクローンとする。実際のゲームサーバを使用してもかまわない。
ゲームサーバ130の記憶装置236に格納されたプログラム239は、実際にプレイヤによりゲームを実行するために使用されるサーバ用のゲームプログラムを含む。仮想インスタンスサーバ120における記憶装置226に記憶されるプログラムは、ユーザ端末において実行されるゲームプログラム(ゲームアプリ)と同様に動作するプログラムを含み、ゲームプログラムの検証に用いるその他のプログラムも含む。管理サーバ110における記憶装置216はプログラムの検証に用いるプログラム219及び229を格納する。
図3は本発明のシステム100の機能ブロック図の一例を示す。管理サーバ110は、検証バトルデータ生成部311、検証制御部312、検証結果格納部313を備える。各仮想インスタンスサーバ120は、仮想インスタンス制御部320、複数の仮想インスタンス321を備え、各ゲームサーバ130は、仮想インスタンスの組をマッチングさせるマッチング部331及びマッチングさせた仮想インスタンスの組において実行されるバトルを実行するバトル実行部332を備える。他の実施形態においては、いずれのサーバがいずれの機能部を有してもよい。例えば、管理サーバ110が仮想インスタンス制御部320及び仮想インスタンス321を有することも可能である。また、1つのサーバがすべての機能部を有することもできる。
本実施形態において検証システム100は、複数のゲーム媒体を含むデッキを用いて他のプレイヤとのバトルを行うゲームのためのゲームプログラムの検証を行うためのシステムである。バトルにおいては、各プレイヤが自己のデッキを用いて対戦を行う。デッキは、ゲーム媒体としてのカードを一つ以上含んで構成される。デッキ組合せは、一つのバトルを行うために用いられるデッキの組合せである。例えば、プレイヤAとプレイヤBとがバトルを行う場合、プレイヤAのデッキAとプレイヤBのデッキBとが一つのデッキ組合せである。デッキ集合はゲームプログラムの検証を行う際に検証の対象となる複数のデッキの集合であり、デッキ組合せ集合は検証の対象となる複数のデッキ組合せである。
検証バトルデータ生成部311は、ゲームプログラムの検証を行うために用いる検証バトルデータを決定する。本実施形態においては、検証バトルデータは、検証対象となるデッキ集合及びデッキ組合せ集合を含む。デッキ集合は検証対象となるすべてのカードにより構成可能なすべてのデッキを含み、デッキ組合せ集合はすべての組合せ可能なデッキの組合せとすることができる。検証バトルデータは、ゲームシステムを管理するゲームシステム管理者によって管理サーバへ入力されたデータに基づいて生成されることができる。
本実施形態においては、ゲームシステム管理者が新たに追加されたカードを含むすべてのカードについての情報を検査対象として管理サーバ110へ入力する。管理サーバ110の検証バトルデータ生成部311は、このデータに基づいて構成可能なすべてのデッキ及びその組合せのためのデッキ集合及びデッキ組合せ集合を含む検証バトルデータを生成する。一部のカードのみを検証対象としたり、一部のデッキ組合せのみを検証対象としてもよい。変形例として、ゲームシステム管理者がすべての検証対象となるデッキ集合を入力してもよいし、デッキ集合及びデッキ組合せ集合を入力してもよい。検証バトルデータには例えば表1に示すようなデッキ集合データ及び表2に示すようなデッキ組合せ集合データが含まれる。
Figure 2021145939
Figure 2021145939
本実施形態においては、デッキは3つのカードによって構成され、一つのバトルは2人のプレイヤ間で実行されるものとする。各プレイヤが1つずつのデッキを使用してバトルを行い、2つのデッキを含む一組のデッキ組合せを用いて一つのバトルが実行される。
表1において、デッキ識別番号に対してデッキを構成する3つのカード識別番号が関連付けられている。カード識別番号はゲーム媒体としてのカードの種類を識別するための番号である。例えば、デッキ識別番号1で識別されるデッキは、カード識別番号213、512及び392の3枚のカードによって構成されるデッキであることを示す。
表2においては、デッキ組合せ識別番号に対して2つのデッキを識別するデッキ識別番号が関連付けられている。デッキ組合せ識別番号は、デッキ組合せを識別するための識別番号である。本検証システムにおいては、デッキ組合せ集合データに含まれるすべてのデッキ組合せについて検証するものとする。各デッキ組合せ識別番号についての検証の完了条件を1回の実行とし、同一のデッキ組合せについて複数回の実行が要求される場合には、同一のデッキ組合せについて複数のデッキ組合せ識別番号を生成することができる。各デッキ組合せ識別番号に所定回数の完了条件を関連付けて記憶し、デッキ組合せ識別番号の完了条件を所定回数以上実行されることとすることもできる。
検証制御部312は、所定の検証網羅性に達するまで、第1のモードでバトルを実行し、所定の検証網羅性に達した後、第2のモードでバトルを実行することができる。
第1のモードでバトルを実行することは、デッキ集合に含まれるデッキを割り当てられた仮想インスタンスのゲーム状態をバトル開始可能状態(共同ゲーム開始可能状態)とし、バトル開始可能状態とされた仮想インスタンスからバトルを行うために決定された仮想インスタンスの複数の組の各組の仮想インスタンスを用いてバトルが実行されて生成されたバトルに用いられたデッキの組合せを含むバトル結果(共同ゲーム結果)及びデッキ組合せ集合に基づいて、所定の検証網羅性に達したかを決定し、所定の検証網羅性に達したと決定されるまで、バトル開始可能状態とすること、所定の検証網羅性に達したかを決定することを繰り返し実行する、ことを含むことができる。
検証網羅性は、すべての検証対象のうちのどの程度の検証対象の検証が完了したかを示すものである。本実施形態において検証網羅性は検証完了率を用いることとし、検証完了率は検証対象となる実行総数のうち実行が完了した実行数の割合である。
例えば、一つのデッキ組合せ識別番号に対して一回の実行を行う場合には、実行が完了したデッキ組合せ識別番号数を検証対象となるデッキ組合せ識別番号の総数で除算すれば検証完了率を取得できる。一つのデッキ組合せを複数回実行することが検証完了条件として設定されている場合には、実行されたバトルの実行回数を実行すべきバトルの実行回数で除算して得られる値を検証完了率することができるが、デッキの組合せの検証完了条件を越える回数実行された場合には、検証完了条件に定められた回数が実行されたものとして実行回数を算出することが好ましい。
第2のモードでバトルを実行することは、バトルを実行するための仮想インスタンスの組を決定し、デッキ組合せ集合及びバトル結果に基づいて決定された検証未完了のデッキの組合せのデッキの各々を決定された仮想インスタンスの各々に割り当て、所定の時間間隔毎に、前記決定された仮想インスタンスの組のうちの一組の仮想インスタンスのゲーム状態をバトル開始可能状態とする、ことを含むことができる。所定の時間間隔の間に、バトルを実行するためのバトル開始可能状態とされた一組の仮想インスタンスをバトルを実行するための組として決定してもよい。
デッキの組合せの検証が完了したか未完了であるかは、そのデッキ組合せのための検証完了条件を満たすか否かによって決定することができる。本実施形態においては、完了条件は、デッキ組合せに割り当てられたデッキ組合せ識別番号に対して1回実行されることとするが、デッキ組合せ識別番号毎に定められた所定の回数以上実行されることとしてもよい。
仮想インスタンスを用いたバトルの実行は、実際に行われたプレイヤのプレイ履歴に基づいて学習モデルを予め生成しておき、これに基づいてバトルを実行してもよい。これによって、ノンプレイヤキャラクタ同士のバトルによる検証であるものの、実際のプレイヤが取る振る舞いに近い振る舞いに基づいたバトルの検証を行うことが可能となる。
検証結果格納部313は、バトル実行部332及び仮想インスタンス321を用いて実行されたバトルのバトル結果を格納する。バトル結果は、ゲームサーバ130のバトル結果格納部333に格納され、仮想インスタンス制御部320がこれを監視して、更新があるとバトル結果を取得して、管理サーバ110へ送信するものとする。バトル結果は、バトルが正常終了したか、異常終了したか、いずれのデッキを用いた仮想インスタンスが勝利したか等のデータを含む。
変形例として、バトルが終了すると仮想インスタンス321がバトル結果を取得して、仮想インスタンス制御部320を介して、管理サーバ110へ送信してもよい。さらなる変形例として、仮想インスタンス制御部320が、外部のデータサーバ(図示せず)へバトル結果を送信して、データベース内に格納され、管理サーバ110がデータサーバへアクセスして取得してもよい。ゲームサーバ130からデータサーバへ送信されてもよい。
仮想インスタンス制御部320は、検証制御部312からの制御信号に従って、ゲームをプレイするユーザ端末またはユーザ端末のソフトウェア環境を仮想化するための複数の仮想インスタンスを生成し、各仮想インスタンス321にデッキを割り当て、ゲーム状態をバトル開始可能状態とする。
仮想インスタンス321はユーザ端末またはユーザ端末のソフトウェア環境を仮想化するための仮想インスタンスであり、例えば、docker(登録商標)等の「コンテナ」と呼ばれるオペレーティングシステム・レベルの仮想化技術を用いることにより実現できる。docker(登録商標)は、Linux(登録商標)カーネルが提供するLinuxコンテナを制御し、プロセス単位での仮想化、すなわち、CPUの利用とファイルシステムの利用を、他のプロセスから分離された空間を提供することができる。各コンテナ同士は相互に分離されているため、あたかも、オペレーティングシステム内で、唯一動作するゲームアプリとしてふるまうことが可能になる。そのため、各コンテナにおいてゲームアプリを実行して、ゲームアプリのプロセスを起動することにより、ユーザ端末におけるゲームアプリの実行を仮想的に実現することができる。したがって、1つのサーバ装置において複数の仮想インスタンスを生成して、同時に複数のゲームアプリを隔離して並列に実行し、検証用結果を生成することができる。本実施形態においては、仮想インスタンス321としてdocker(登録商標)の「コンテナ」を用いる。
本実施形態においては、仮想インスタンス321を用いた検証用バトル処理は、ユーザ端末においてゲームをプレイするために実行されるゲームアプリを、オートパイロットで、ヘッドレスモードで実行することにより実行される。本実施形態においてヘッドレスモードとは、GPUにアクセスするグラフィック処理を無効化し、さらに、音源チップにアクセスするサウンド処理、および、外部サーバへのアクセス処理を無効化するモードである。これにより、CPU、メモリ、二次記憶装置のみを使用する状態、すなわち、コンテナ内部に閉じたリソースへのアクセスのみでゲームを実行することができるため、人間が閲覧することを前提としたアニメーション処理スピード、人間が聞くことを前提とした音声の再生スピードといった律速要因(速度を決める要因)を排除することができるようになる。さらに、これらのグラフィック機器やサウンド機器は、一般的にCPUの外にある外部機器として実装されており、CPUと外部機器との間のI/O処理にかかる同期のための待ち時間も省略することができる。これにより、人間のための演出や、外部機器のための同期待ちといったウェイト処理を省いた、CPU単独の処理速度のみに依存するノー・ウェイト(No Wait)処理で、ゲームを高速に動作させることができるから、短時間でバトル結果を生成することができる。
この点を図4を用いてより詳細に説明する。図4(a)は通常のモードでバトルを実行する場合のCPUの稼働状態を示し、(b)はヘッドレスモードでバトルを実行する場合のCPUの稼働状態を示す。(a)に示したとおり、通常モードにおいては、CPUは常に高負荷にあるわけではなく、局所的に高負荷が発生する。これはゲーム画面のフレーム描画に必要なデータを生成する部分等に相当する。そして、音楽と画面表示は、人間の知覚に合わせる必要があるため、所定のタイミングとなるまでウェイトが発生する。したがって、通常モードにおいてCPUはゲーム進行の実時間で律速されながら、局所的に動作している。一方、ヘッドレスモードでは、律速要素となるGPUとSoundを必要としないため、CPU単独でイベントを高速に、すなわち、ウェイトをかけずに短時間で実行可能である。これにより、これまで分散していた処理を短時間にまとめて実行でき、通常モードでの一つのバトル実行期間で複数のバトル結果を生成することが可能であるため、高い処理効率を実現できる。
本発明においてゲームプログラムをヘッドレスモードで実行することは、ヘッドレスモードでゲームプログラムを実行することと、ヘッドレス化されたゲームプログラムを実行することのいずれであってもかまわない。ゲームをヘッドレス状態で進行させることができれば、どのような態様での実行であってもかまわない。広く普及しているゲームエンジンであるUnityにおいてはGUIからヘッドレスモードを選択するだけで容易にヘッドレス化されたゲームプログラムを生成することが可能である。すなわち、ユーザ端末用のゲームプログラムを再利用して、検証用のゲームプログラムを容易に用意することができる。また、他の実施形態としてゲームプログラムをヘッドレスモードではない、通常モードで実行してもよい。
ゲームサーバ130のマッチング部331は、ゲーム状態がゲーム開始可能状態とされた仮想インスタンス321から一組の仮想インスタンスを選択してマッチングさせる。マッチングのための処理は、ゲームサーバが実際のユーザ端末同士をマッチングさせる処理と同様の処理とすることにより、実環境に近い状態で検証を行うことを可能とする。例えば、ゲーム開始可能状態とされている複数の仮想インスタンスから乱数に基づいてランダムに一組の仮想インスタンスをマッチングしてもよいし、ゲーム開始可能状態とされた順にマッチングさせてもよいし、仮想インスタンスに関連付けられた優先度に基づいてマッチングしてもよい。優先度は例えば仮想インスタンスに割り当ててもよいし、仮想インスタンスに割り当てられたデッキに割り当てられていてもよい。同一のゲームサーバ130に関連付けられた仮想インスタンスサーバ120において稼働する仮想インスタンス321同士がマッチングされる。
バトル実行部332は、マッチングされた一組の仮想インスタンス321に割り当てられたデッキを用いてバトルを実行し、バトル中ないしバトル終了等のステータスとともにバトルの結果をバトル結果格納部333に格納する。
本実施形態においては、管理サーバ110が複数の仮想インスタンスサーバ120をいずれかのゲームサーバ130と紐づけて起動する。仮想インスタンス321を用いて稼働するゲームプログラムは当該仮想インスタンスが稼働する仮想インスタンスサーバに関連付けられたゲームサーバ130へアクセスする。このように仮想インスタンスサーバとゲームサーバとを関連付けて動作させることにより、プレイヤ間のバトルをシミュレートする環境の最小セットを仮想インスタンスサーバとゲームサーバの対として構成し、この対を任意の数だけスケーラブルに起動することが可能となる。
本実施形態において各機能部は、図2に記載されたハードウェア構成に含まれるプログラムが処理装置によって実行され、出力装置、入力装置、記憶装置及び通信装置の各ハードウェアとソフトウェアとが協働して動作することによって実現されるが、各機能に対応する電子回路等を設けて実現されてもよい。
次に、本実施形態におけるシステム100の動作を図5〜10を用いて説明する。本実施形態においては、複数のゲーム媒体を含むデッキを用いて他のプレイヤとのバトルを行うゲームのためのゲームプログラムの検証を行う。まず、前述のとおり、ゲームシステム管理者が検証対象であるすべてのカードのための情報を含むデータを作成して、管理サーバ110へ入力すると、検証バトルデータ生成部311が表1及び表2に示すような、デッキ集合データ及びデッキ組合せ集合データを含む検証用のバトルデータを生成して、検証制御部312へ入力する。
検証制御部312は検証バトルデータを受け取ると、1以上の仮想インスタンス制御部320に対して、仮想インスタンスを生成するための仮想インスタンス生成信号を送信する。仮想インスタンス制御部320は、仮想インスタンス生成信号を受信すると仮想インスタンス321を複数生成する。仮想インスタンス制御部320は、検証制御部312からの制御信号によらずに自律的に仮想インスタンスを生成してもかまわない。
複数の仮想インスタンスが生成されると、図5に示す、ゲームプログラム検証のためのバトル実行処理500を開始する。まず、第1のモードによるバトル実行処理(S501)を実行した後、第2のモードによるバトル実行処理を行う(S502)。第1のモードにおいては、所定の検証網羅性に到達するまで、バトルに用いられるデッキの組合せを指定せずにすべての仮想インスタンスを用いて可能な限り並列的にバトルを繰り替えし実行させる。そして、所定の検証網羅性に到達すると、第2のモードに移行し、検証が終了するまで、バトルに用いられるデッキの組合せを指定して逐次バトルを実行し続ける。
ゲームサーバ130は実際にユーザがゲームを実行するときと可能な限り同じ挙動となるようにすることが好ましい。実際にユーザがゲームを実行するときには、ユーザがユーザ端末を操作してゲーム開始ボタンを押すと、ユーザ端末で動作するゲームアプリのゲーム状態がゲーム開始可能状態となり、ゲームサーバへバトルを行うためのマッチング要求を行うものとする。ゲームサーバは、マッチング要求を受け取ったプレイヤ同士をマッチングする。この際、バトルのデッキ組合せを考慮してマッチングを行うことはしないものとする。
本実施形態の検証に用いられるゲームサーバ130におけるマッチング部331も同様の処理を行う。すなわち、仮想インスタンス321のゲーム状態がゲーム開始可能状態となって、ゲームサーバ130へマッチング要求を行うと、マッチング部331は、バトルデッキ組合せを考慮せずに、マッチング要求を受け取っている仮想インスタンス321同士をマッチングさせる。
ここでは、第1のモードでは、バトル開始可能状態に移行可能なすべての仮想インスタンスを一括してバトル開始可能状態に移行させてバトルを実行し、バトルが終了してバトル開始可能状態となると、再度一括してバトル開始可能状態に移行させてバトルを実行させることを繰り返すものとする。一括してバトル開始可能状態とされた仮想インスタンス同士がデッキ組合せを考慮せずにマッチングされるから、デッキ組合せを指定してマッチングをさせることはできない。バトル開始可能状態に移行させる処理を行う段階で移行可能となっている仮想インスタンスの中からゲームサーバによって乱数によってマッチングされてもよいし、先着順位マッチングされてもよいし、仮想インスタンスに関連付けられた優先度に基づいてマッチングしてもよい。
バトル開始可能状態に移行可能なすべての仮想インスタンスを一括してバトル開始可能状態に移行させることは、生成されている仮想インスタンスのすべてを一括して移行させる必要はない。一括処理を行う時点において移行可能な状態にある仮想インスタンスを移行させればよい。また、一括処理も厳密に一括である必要はない。移行可能状態の仮想インスタンスを順次移行させる処理を含むものとする。ただし、後述する第2のモードのように所定の間隔毎に、所望の一組の仮想インスタンスをマッチングさせるように、当該一組の仮想インスタンスのみをバトル開始可能状態に移行させる制御は行わない。
すべての仮想インスタンスを一括でバトル開始可能状態とするバッチ処理の試行回数に対する検証完了率の推移の一例を図6に示した。ここでは、500組のデッキ組合せ集合が検証対象となっており、200個の仮想インスタンスが生成され、一回のバッチ処理において100バトルが実行されるものとする。理解のために一回のバトルの所要時間がデッキ組合せによらずに同じであると仮定したが、本実施形態はバトルの所要時間がデッキ組合せ等によって異なっていても実行可能である。並列度は、生成されている仮想インスタンスのうち、未検証バトルを実行している仮想インスタンスの割合である。並列度が高いほど効率的に検証を実行できていることを示している。
第1のモードによる一回目のバッチ処理においては、検証完了済のデッキ組合せがないから、検証開始当初は並列度が高く、検証完了率は実行されたバトルの数だけ上昇する。2回目以降のバッチ処理においては、1回目に実行されたデッキ組合せと同一のデッキ組合せを用いたバトルが重複して実行される場合があるため、並列度は徐々に低下し、検証完了率の上昇量もまた徐々に低下する。
第2のモードにおいては、一つのゲームサーバ130に対して、所望のデッキ組合せのデッキを各々割り当てられた一組の仮想インスタンスを所定間隔毎にバトル開始可能状態に移行させることによって、所定間隔毎に一組の仮想インスタンスのみがバトル開始可能状態となっている。したがって、ゲームサーバ130においては、その一組の仮想インスタンスのマッチングを行うことになるから、所望のデッキ組合せの検証を行うことができる。
この場合、所定間隔の待機時間が生じるから、第1のモードに比べて仮想インスタンスの稼働率が低くなる。しかしながら、第2のモードでは検証が完了していないデッキ組合せのみの検証を行うことが可能であるから、検証完了率によらず並列度は一定であり、検証完了率が上昇しても並列度は低下しない。一例として、第2のモードにて検証バトルを実行する場合の並列度は40%とする。
本実施形態では、第1のモードにてバトルの実行を開始し、その後、バッチ処理の試行回数が増加することにともなって第1のモードでの並列度が低下して第2のモードの並列度に達するタイミングで第2のモードに切り替えるものとする。切り替えるタイミングは、例えば、第1のモードが第2のモードの並列度である40%に到達するバッチ処理の試行回数に対応する検証完了率=70%に到達したタイミングとする。これによって、検証開始当初は第1のモードを用いて高い並列度で検証を完了させ、並列度が低下してきたタイミングで第2のモードに切り替えて並列度のさらなる低下を防止し、全体として効率的に検証を完了させることを可能とする。
図7〜9は、本実施形態における第1のモードにおける管理サーバ110、仮想インスタンスサーバ120及びゲームサーバ130において実行される処理のより詳細なフローチャートを示す。
本実施形態においては、まず、検証制御部312は、各仮想インスタンスに対して、デッキ集合から選択されたデッキを割り当てる(S701)。デッキの割り当てはどのような方法によって実行されてもよく、例えば、乱数に基づいてランダムに割り当ててもよいし、デッキ識別子の順に順番に割り当ててもよいし、仮想インスタンスに関連付けられた優先度に基づいてマッチングしてもよい。
そして、検証制御部312は、バトル開始可能状態に移行できる仮想インスタンス321を選択する(S702)。仮想インスタンス321は、例えば、バトルを実行している間はバトル開始可能状態に移行できるゲーム状態ではない。そのため、例えば、バトルを実行させた後、バトル結果が生成されていない場合には、バトルを実行中であるからバトル開始可能状態に移行できるゲーム状態ではないと判定することができる。また、仮想インスタンス制御部320が各仮想インスタンス321のゲーム状態を管理して、検証制御部312へ通知する信号を送信してもよい。例えば、ゲーム状態が、バトル開始可能状態に移行できる状態である待機状態、バトル開始可能状態、バトル状態のいずれかの状態をとり、これを検証制御部312や仮想インスタンス制御部320が管理するようにしてもよい。バトル状態はバトルを実行中であることを意味し、バトル開始可能状態はバトルを開始できる状態を意味し、待機状態はバトル開始可能状態に移行できる状態であり、バトルが終了すると待機状態となるものとする。
検証制御部312は、選択したバトル開始可能状態に移行できる仮想インスタンスのゲーム状態をバトル開始可能状態に移行させる(S704)。例えば、バトル開始可能状態とさせるための制御信号を仮想インスタンス制御部320へ送信し、仮想インスタンス制御部320が仮想インスタンスの状態を遷移させる。バトル開始可能状態に移行できる仮想インスタンスの選択及びバトル開始可能状態への移行は移行可能なすべての仮想インスタンスを選択して、移行させるものとする。
仮想インスタンスサーバ120においては、管理サーバ110からのバトル開始可能状態移行命令を待ち受け(S801)、移行命令を受け付けると、仮想インスタンス321をバトル開始可能状態に移行し(S802)、移行された仮想インスタンス321は、バトルを開始するためにマッチング要求をゲームサーバ130へ送信し(S804)、マッチングが完了するとバトルを実行する(S806)。マッチング要求は、当該仮想インスタンスが稼働する仮想インスタンスサーバ120が関連付けられているゲームサーバ130へ送信される。
ゲームサーバ130は、仮想インスタンス321からのマッチング要求を受信し(S901)、仮想インスタンスのマッチングが可能であるか否かを判定する(S902)。本実施形態においては、2人のプレイヤ間でのバトルを行うゲームプログラムの検証を対象としているから、2以上の仮想インスタンスからのマッチング要求を受信していればマッチングが可能であると判定される。
マッチングが可能であると判定されると、2つの仮想インスタンスを一組としてマッチングを行い(S904)、マッチングが行われた一組の仮想インスタンスを用いてバトルが実行される(S906)。マッチングが行われるとマッチングされたデッキ組合せをバトル中というステータスとともにバトル結果としてバトル結果格納部333に格納するものとする。そして、バトルが終了するとバトル終了というステータスとともにバトル結果が生成され、実行されたバトルで用いられたデッキの組合せとともに、バトル結果をバトル結果格納部333に格納する(S908)。
管理サーバ110においては、選択された仮想インスタンスをバトル開始可能状態に移行させると(S704)、所定の検証網羅性を達成したか否かを判定する。管理サーバ110においては、ゲームサーバ130によって生成されたバトル結果を検証結果格納部313に格納する。そして、検証制御部312は、検証バトルデータ及び検証結果格納部313に格納されたバトル結果に基づいて、所定の検証網羅性に達したか否かを判定する。ここでは、検証網羅性として検証完了率を用いるものとする。
第1のモードにおいては、デッキ組合せを指定せずにバトルが実行されるから、同一のデッキ組合せについて重複してバトルが実行される可能性がある。このため、検証完了率の算出に当たっては、重複して実行されている同一のデッキ組合せに基づくバトル結果は除くものとする。また、バトル結果は終了したバトルのデータのみである必要はない。バトル実行中のデッキ組合せを検証完了率の算出に用いてもよい。
所定の検証網羅性を達成したと判定されない場合には、S702へ戻り、バトルの実行を繰り返し実行する。本実施形態においては、仮想インスタンスへのデッキ割り当ては第1のモード開始時のみとしているが、一つの変形例として、バトル開始可能状態に移行できる仮想インスタンスを選択した際に(S702)、選択した仮想インスタンスに対してデッキを割り当てるようにしてもよい。
所定の検証網羅性を達成したと判定された場合には、第1のモードによるバトル実行処理(S501)は終了し、第2のモードによるバトル実行処理(S502)へ移行する。
図10は第2のモードにおける管理サーバ110の処理を示すフローチャートである。第2のモードにおいて検証制御部312は、バトル開始可能状態に移行できる仮想インスタンスから一組の仮想インスタンスを選択し(S1001)、選択された一組の仮想インスタンスに対してデッキを割り当てる(S1002)。ここで割り当てられるデッキは、検証が完了していないデッキ組合せから選択された一つのデッキ組合せを構成するデッキである。本実施形態においては、検証制御部312は、検証バトルデータに含まれるデッキ組合せ集合とバトル結果に含まれるデッキ組合せとの差分を基づいて、検証が未完了のデッキ組合せを特定することができる。バトル結果におけるバトル実行中のステータスのデッキは未完了のデッキ組合せから除外するものとすることが好ましい。一つのデッキ組合せ識別番号について完了条件として所定回数の実行が設定されている場合には、当該デッキ組合せ識別番号に対して実行された回数を記憶し、所定回数に到達するまでは未完了のデッキ組合せとして特定させることができる。
選択されて、デッキが割り当てられた一組の仮想インスタンスをバトル開始可能状態に移行させる(S1004)。そして、すべての検証対象であるデッキ組合せの検証が完了したか否かを判定する(S1006)。検証が完了していないデッキ組合せがある場合には、所定の時間待機した後(S1008)、S1001に戻り、すべてのデッキ組合せの検証が完了されるまで、次の検証未完了のデッキ組合せのための処理を繰り返し実行する。
仮想インスタンスサーバ120及びゲームサーバ130の処理を示すフローチャートは第1のモードと同様であり、重複する部分は省略しつつ図7〜9を参照しながら説明する。
仮想インスタンスサーバ120においては、管理サーバ110からのバトル開始可能状態移行命令を待ち受け付けると、仮想インスタンス321をバトル開始可能状態に移行し、移行された仮想インスタンス321は、バトルを開始するためにマッチング要求をゲームサーバ130へ送信し、マッチングが完了するとバトルを実行する(S801〜S806)。ゲームサーバ130は、仮想インスタンス321からのマッチング要求を受信し、仮想インスタンスのマッチングを行う(S901〜S904)。
本実施形態においては、検証制御部312は、一組の仮想インスタンスをバトル開始可能状態に移行させた後、次の組の仮想インスタンスをバトル開始可能状態に移行させる前に所定時間待機する(S1008)。このため、ゲームサーバ130においてマッチング要求は一組の仮想インスタンスからのマッチング要求を受信するから、この一組の仮想インスタンスのみがマッチング対象となり、この一組の仮想インスタンスがマッチングされる。検証制御部312における待機時間は、一組の仮想インスタンスのマッチングをゲームサーバ130に行わせるために必要な時間間隔とする。仮想インスタンスの組がマッチングされたか否かを例えば仮想インスタンス制御部320が監視して、マッチングが行われたことを確認すると、次の組の仮想インスタンスのゲーム状態を移行させてもよい。
ゲームサーバ130の通常の処理においては、デッキ組合せを考慮することなくマッチング可能なユーザ同士をマッチングさせる。このため、3つ以上のマッチング要求がゲームサーバ130において受信されていると、特定のデッキ組合せとなるようにマッチングさせることはできない。本実施形態においては、前述のとおり、マッチング処理の段階で特定のデッキ組合せのデッキが割り当てられた2つの仮想インスタンスのみがマッチング対象となっているように制御することにより、ゲームサーバ130のプログラムや仮想インスタンスで実行されるゲームアプリを修正することなく、所望のデッキ組合せのバトルを実行させることを可能とする。
マッチングが行われた一組の仮想インスタンスを用いてバトルが実行され、バトルが終了するとバトル結果が生成され、実行されたバトルで用いられたデッキの組合せとともに、ステータスをバトル終了としつつバトル結果がバトル結果格納部333に格納される(S906、S908)。
検証制御部312においては、すべての検証対象のデッキ組合せについての検証が完了したと判定すると(S1006)、第2のモードによるバトル処理(S502)を終了させ、プログラム検証処理が終了する。
ゲームシステム管理者は、生成されたバトル結果に基づいて、検証対象となったデッキ組合せについてのゲームプログラムの挙動の妥当性等を検証することが可能となる。
本実施形態を用いることにより、ゲームサーバのゲームプログラム及びユーザ端末のゲームアプリが実際に運用される方式で通信を行うことで多数のデッキ組合せを用いたバトルの網羅的な検証を効率的に行うことが可能となる。KPI(Key Performance Indicator)と呼ばれる、カード別やカードの組合せ別の勝敗率を算出してゲームバランスの検証を行うことも可能である。
サーバサイド及びユーザ端末サイドにおいて、バトルシミュレーションを行うための特別なロジックを実装することを必要としないから、容易にゲームプログラムの検証を行うことができる。また、ゲームのシミュレーションロジックと、シミュレーションを管理するロジックは完全に独立して設計することが可能であり、ゲームのシミュレーションロジックを変更せずにシミュレーションを管理できる。
仮想インスタンスサーバとゲームサーバとを関連付けて動作させることにより、プレイヤ間のバトルをシミュレートする環境の最小セットを仮想インスタンスサーバとゲームサーバの対として構成し、この対を任意の数だけ起動することでスケーラブルな検証システムを実現することができる。
以上に説明した処理または動作において、矛盾が生じない限りにおいて、処理または動作を自由に変更することができる。一つのサーバによってすべての処理が実行されるようにしてもよいし、より多くのサーバによって分散して実行されるようにしてもよい。
また以上に説明してきた各実施形態は、本発明を説明するための例示であり、本発明はこれらの実施形態に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
100 :検証システム
110 :管理サーバ
120 :仮想インスタンスサーバ
130 :ゲームサーバ
150 :ネットワーク
211、221、231 :処理装置
212、222、232 :出力装置
213、223、233 :入力装置
216、226、236 :記憶装置
217、227、237 :通信装置
218、228、238 :バス
219、229、230 :プログラム
311 :検証バトルデータ生成部
312 :検証制御部
313 :検証結果格納部
320 :仮想インスタンス制御部
321 :仮想インスタンス
331 :マッチング部
332 :バトル実行部
333 :バトル結果格納部

Claims (12)

  1. 複数のゲーム媒体を含むデッキを用いて他のプレイヤとの共同ゲームのためのゲームプログラムの検証を行うためのシステムによって実行される方法であって、デッキ集合は複数のデッキを含み、デッキ組合せは一つのバトルを行うために用いられるデッキの組合せであり、デッキ組合せ集合は複数のデッキの組合せを含み、前記方法は、
    共同ゲームをプレイするユーザ端末またはユーザ端末のソフトウェア環境を仮想化するために生成された複数の仮想インスタンスを用いてゲームプログラムを実行し、
    所定の検証網羅性に達するまで、第1のモードで共同ゲームを実行し、
    所定の検証網羅性に達した後、第2のモードで共同ゲームを実行する、
    ことを含み、
    前記所定の検証網羅性に達するまで、第1のモードで共同ゲームを実行することは、
    前記デッキ集合に含まれるデッキを割り当てられた仮想インスタンスのゲーム状態を共同ゲーム開始可能状態とし、
    共同ゲーム開始可能状態とされた仮想インスタンスから共同ゲームを行うための仮想インスタンスの組を決定し、
    決定された各組の仮想インスタンスを用いて共同ゲームを実行し、共同ゲームに用いられたデッキの組合せを含む共同ゲーム結果を生成し、
    デッキ組合せ集合と共同ゲーム結果に基づいて、所定の検証網羅性に達したかを決定し、
    所定の検証網羅性に達したと決定されるまで、共同ゲーム開始可能状態とすること、仮想インスタンスの組を決定すること、共同ゲーム結果を生成すること、所定の検証網羅性に達したかを決定することを繰り返し実行する、
    ことを含み、
    所定の網羅性に達した後、前記第2のモードで共同ゲームを実行することは、
    共同ゲームを実行するための仮想インスタンスの組を決定し、
    デッキ組合せ集合及び共同ゲーム結果に基づいて決定された検証未完了のデッキの組合せのデッキの各々を前記決定された組の仮想インスタンスの各々に割り当て、
    前記決定された組のうちの一組の仮想インスタンスのゲーム状態を共同ゲーム開始可能状態とし、
    共同ゲーム開始可能状態とされた前記一組の仮想インスタンスを用いて共同ゲームを実行し、共同ゲームに用いられたデッキの組合せを含む共同ゲーム結果を生成する、
    ことを含む、方法。
  2. 前記仮想インスタンスを用いて実行される共同ゲームは、仮想インスタンスにおいてゲームプログラムをヘッドレスモードで実行することにより、少なくともグラフィック処理及びサウンド処理を無効化して実行される、請求項1に記載の方法。
  3. 前記第1のモードで共同ゲームを実行することにおいて、仮想インスタンスの複数の組を決定することは、乱数に基づいて仮想インスタンスの複数の組を決定すること、ゲーム状態が共同ゲーム開始可能状態となった仮想インスタンスから順次選択されて決定すること、及び各仮想インスタンスに関連付けられた優先度に基づいて決定すること、の少なくとも一つを含む、請求項1又は2に記載の方法。
  4. 前記第2のモードで共同ゲームを実行することにおいて、
    前記決定された組のうちの一組の仮想インスタンスのゲーム状態を共同ゲーム開始可能状態とすることは、所定の時間間隔毎に、前記決定された組のうちの一組の仮想インスタンスのゲーム状態を共同ゲーム開始可能状態とし、
    共同ゲーム開始可能状態とされた前記一組の仮想インスタンスを用いて共同ゲームを実行することは、前記所定の時間間隔の間に、共同ゲーム開始可能状態とされた前記一組の仮想インスタンスを共同ゲームを実行するための組として決定する、ことを含む、請求項1〜3のいずれか1項に記載の方法。
  5. 前記第2のモードで共同ゲームを実行することは、すべてのデッキの組合せが検証完了条件を満たすまで、仮想インスタンスの組を決定すること、仮想インスタンスに割り当てること、共同ゲーム開始可能状態とすること、共同ゲーム結果を生成することを繰り返し実行することを含む、請求項1〜4のいずれか1項に記載の方法。
  6. デッキの組合せの検証完了条件は、そのデッキの組合せを用いて所定回数、共同ゲームを実行することを含む、
    請求項1〜5のいずれか1項に記載の方法。
  7. 前記所定の検証網羅性は、実行された共同ゲームの実行回数を実行すべき共同ゲームの実行回数で除算して得られる検証完了率に基づいて決定され、デッキの組合せの検証完了条件を越える回数実行された場合には、検証完了条件に定められた回数が実行されたものとして実行回数を算出する、請求項1〜6のいずれか1項に記載の方法。
  8. 前記仮想インスタンスを用いて共同ゲームを実行することは、プレイヤのプレイ履歴から生成された学習モデルを用いて実行することを含む、請求項1〜7のいずれか1項に記載の方法。
  9. 前記請求項1〜8のいずれか1項に記載の方法を1以上のコンピュータに実行させるためのプログラム。
  10. 複数のゲーム媒体を含むデッキを用いて他のプレイヤとの共同ゲームのためのゲームプログラムの検証を行うためのシステムであって、デッキ集合は複数のデッキを含み、デッキ組合せは一つの共同ゲームを行うために用いられるデッキの組合せであり、デッキ組合せ集合は複数のデッキの組合せを含み、前記システムは、
    共同ゲームをプレイするユーザ端末またはユーザ端末のソフトウェア環境を仮想化するために生成された複数の仮想インスタンスを用いてゲームプログラムを実行し、
    所定の検証網羅性に達するまで、第1のモードで共同ゲームを実行し、
    所定の検証網羅性に達した後、第2のモードで共同ゲームを実行し、
    前記所定の検証網羅性に達するまで、第1のモードで共同ゲームを実行することは、
    前記デッキ集合に含まれるデッキを割り当てられた仮想インスタンスのゲーム状態を共同ゲーム開始可能状態とし、
    共同ゲーム開始可能状態とされた仮想インスタンスから共同ゲームを行うための仮想インスタンスの組を決定し、
    決定された各組の仮想インスタンスを用いて共同ゲームを実行し、共同ゲームに用いられたデッキの組合せを含む共同ゲーム結果を生成し、
    デッキ組合せ集合と共同ゲーム結果に基づいて、所定の検証網羅性に達したかを決定し、
    所定の検証網羅性に達したと決定されるまで、共同ゲーム開始可能状態とすること、仮想インスタンスの組を決定すること、共同ゲーム結果を生成すること、所定の検証網羅性に達したかを決定することを繰り返し実行する、
    ことを含み、
    前記所定の網羅性に達した後、第2のモードで共同ゲームを実行することは、
    共同ゲームを実行するための仮想インスタンスの組を決定し、
    デッキ組合せ集合及び共同ゲーム結果に基づいて決定された検証未完了のデッキの組合せのデッキの各々を前記決定された組の仮想インスタンスの各々に割り当て、
    前記決定された組のうちの一組の仮想インスタンスのゲーム状態を共同ゲーム開始可能状態とし、
    共同ゲーム開始可能状態とされた前記一組の仮想インスタンスを用いて共同ゲームを実行し、共同ゲームに用いられたデッキの組合せを含む共同ゲーム結果を生成する、
    ことを含む、システム。
  11. 前記システムは、ゲームサーバ、管理サーバ及び仮想インスタンスサーバを含み、
    仮想インスタンスサーバが、ゲームをプレイするユーザ端末またはユーザ端末のソフトウェア環境を仮想化するために生成された複数の仮想インスタンスを用いてゲームプログラムを実行し、
    前記第1のモードで共同ゲームを実行することにおいて、
    管理サーバが、前記デッキ集合に含まれるデッキを割り当てられた仮想インスタンスのゲーム状態を共同ゲーム開始可能状態とし、
    ゲームサーバが、共同ゲーム開始可能状態とされた仮想インスタンスから共同ゲームを行うための仮想インスタンスの組を決定し、決定された各組の仮想インスタンスを用いて共同ゲームを実行し、共同ゲームに用いられたデッキの組合せを含む共同ゲーム結果を生成し、
    管理サーバが、デッキ組合せ集合と共同ゲーム結果に基づいて、所定の検証網羅性に達したかを決定し、
    前記第2のモードで共同ゲームを実行することにおいて、
    管理サーバが、共同ゲームを実行するための仮想インスタンスの組を決定し、デッキ組合せ集合及び共同ゲーム結果に基づいて決定された検証未完了のデッキの組合せのデッキの各々を前記決定された組の仮想インスタンスの各々に割り当て、前記決定された組のうちの一組の仮想インスタンスのゲーム状態を共同ゲーム開始可能状態とし、
    ゲームサーバが、共同ゲーム開始可能状態とされた前記一組の仮想インスタンスを用いて共同ゲームを実行し、共同ゲームに用いられたデッキの組合せを含む共同ゲーム結果を生成する、
    請求項10に記載のシステム。
  12. 複数のゲーム媒体を含むデッキを用いて他のプレイヤとの共同ゲームのためのゲームプログラムの検証を行うための管理サーバであって、デッキ集合は複数のデッキを含み、デッキ組合せは一つの共同ゲームを行うために用いられるデッキの組合せであり、デッキ組合せ集合は複数のデッキの組合せを含み、仮想インスタンスサーバにおいて共同ゲームをプレイするユーザ端末またはユーザ端末のソフトウェア環境を仮想化するために生成された複数の仮想インスタンスを用いてゲームプログラムを実行し、前記管理サーバは、
    所定の検証網羅性に達するまで、第1のモードで共同ゲームを実行し、
    所定の検証網羅性に達した後、第2のモードで共同ゲームを実行し、
    前記第1のモードで共同ゲームを実行することは、
    前記デッキ集合に含まれるデッキを割り当てられた仮想インスタンスのゲーム状態を共同ゲーム開始可能状態とし、
    共同ゲーム開始可能状態とされた仮想インスタンスから共同ゲームを行うために決定された仮想インスタンスの組の各組の仮想インスタンスを用いて共同ゲームが実行されて生成された共同ゲームに用いられたデッキの組合せを含む共同ゲーム結果及びデッキ組合せ集合に基づいて、所定の検証網羅性に達したかを決定し、
    所定の検証網羅性に達したと決定されるまで、共同ゲーム開始可能状態とすること、所定の検証網羅性に達したかを決定することを繰り返し実行する、
    ことを含み、
    前記第2のモードで共同ゲームを実行することは、
    共同ゲームを実行するための仮想インスタンスの組を決定し、デッキ組合せ集合及び共同ゲーム結果に基づいて決定された検証未完了のデッキの組合せのデッキの各々を前記決定された組の仮想インスタンスの各々に割り当て、
    前記決定された組のうちの一組の仮想インスタンスのゲーム状態を共同ゲーム開始可能状態とする、
    ことを含む、管理サーバ。
JP2020049336A 2020-03-19 2020-03-19 プログラム検証のための方法、プログラム、システム及びサーバ Active JP6768982B1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2020049336A JP6768982B1 (ja) 2020-03-19 2020-03-19 プログラム検証のための方法、プログラム、システム及びサーバ
CN202180022038.7A CN115297937B (zh) 2020-03-19 2021-03-09 用于程序验证的方法、程序、系统和服务器
PCT/JP2021/009342 WO2021187245A1 (ja) 2020-03-19 2021-03-09 プログラム検証のための方法、プログラム、システム及びサーバ
US17/932,521 US20230016371A1 (en) 2020-03-19 2022-09-15 Method, program, system, and server for program verification

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020049336A JP6768982B1 (ja) 2020-03-19 2020-03-19 プログラム検証のための方法、プログラム、システム及びサーバ

Publications (2)

Publication Number Publication Date
JP6768982B1 JP6768982B1 (ja) 2020-10-14
JP2021145939A true JP2021145939A (ja) 2021-09-27

Family

ID=72745109

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020049336A Active JP6768982B1 (ja) 2020-03-19 2020-03-19 プログラム検証のための方法、プログラム、システム及びサーバ

Country Status (4)

Country Link
US (1) US20230016371A1 (ja)
JP (1) JP6768982B1 (ja)
CN (1) CN115297937B (ja)
WO (1) WO2021187245A1 (ja)

Families Citing this family (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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019093035A (ja) * 2017-11-28 2019-06-20 株式会社 ディー・エヌ・エー データ分析装置及びデータ分析プログラム
JP2019164753A (ja) * 2018-11-16 2019-09-26 株式会社Cygames ゲームプログラムを検査するためのシステム、方法、プログラム、機械学習支援装置、及びデータ構造
JP2019193702A (ja) * 2018-05-01 2019-11-07 株式会社Cygames ゲームにおけるユーザの不正を検出するためのシステム、サーバ、プログラム及び方法
WO2020045493A1 (ja) * 2018-08-29 2020-03-05 株式会社セガゲームス 情報処理装置、プログラム及び情報処理システム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4806459B2 (ja) * 2009-07-09 2011-11-02 株式会社コナミデジタルエンタテインメント ゲーム機及びそれに用いるコンピュータプログラム
JP5886458B1 (ja) * 2015-06-23 2016-03-16 株式会社バンダイ ゲーム装置及びプログラム
GB2559792A (en) * 2017-02-20 2018-08-22 Sony Interactive Entertainment Inc Game application launch system and method
CN110321229A (zh) * 2018-03-28 2019-10-11 努比亚技术有限公司 一种游戏协助方法、终端及计算机可读存储介质
CN109646934B (zh) * 2018-12-24 2022-07-19 杭州复杂美科技有限公司 一种十点半游戏方法、设备和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019093035A (ja) * 2017-11-28 2019-06-20 株式会社 ディー・エヌ・エー データ分析装置及びデータ分析プログラム
JP2019193702A (ja) * 2018-05-01 2019-11-07 株式会社Cygames ゲームにおけるユーザの不正を検出するためのシステム、サーバ、プログラム及び方法
WO2020045493A1 (ja) * 2018-08-29 2020-03-05 株式会社セガゲームス 情報処理装置、プログラム及び情報処理システム
JP2019164753A (ja) * 2018-11-16 2019-09-26 株式会社Cygames ゲームプログラムを検査するためのシステム、方法、プログラム、機械学習支援装置、及びデータ構造

Also Published As

Publication number Publication date
JP6768982B1 (ja) 2020-10-14
CN115297937A (zh) 2022-11-04
WO2021187245A1 (ja) 2021-09-23
CN115297937B (zh) 2023-04-14
US20230016371A1 (en) 2023-01-19

Similar Documents

Publication Publication Date Title
US10282280B1 (en) Automated scalable video game testing system
CN110898428B (zh) 多虚拟对象交互的方法、装置、服务器及存储介质
US9717989B2 (en) Adding triggers to cloud-based emulated games
US8608572B1 (en) Game processing server apparatus and game processing server system
JP6473259B1 (ja) ゲームにおけるユーザの不正を検出するためのシステム、サーバ、プログラム及び方法
EP2752226B1 (en) User organizing device, user organizing method, and cloud computing system
US11752437B2 (en) Method for providing battle game, server device, and computer-readable recording medium
WO2021187245A1 (ja) プログラム検証のための方法、プログラム、システム及びサーバ
JP7014351B2 (ja) スポーツゲームのスキル継承を利用したゲーム方法およびシステム
US20240001240A1 (en) Live gameplay updates
CN111359213A (zh) 用于控制游戏对局中的虚拟玩家的方法和设备
JP2019193771A (ja) ゲームにおけるユーザの不正を検出するためのシステム、サーバ、プログラム及び方法
JP7454082B1 (ja) ゲーム媒体セットを出力するシステム、方法、及びプログラム
JP7366223B1 (ja) ゲームを検査するためのシステム、方法、及びプログラム
WO2024060914A1 (zh) 虚拟对象的生成方法、装置、设备、介质和程序产品
KR102523618B1 (ko) 게임로그를 활용한 베팅 서비스 제공 방법 및 시스템
JP7235535B2 (ja) 情報処理装置、情報処理方法、及びプログラム
KR20230050080A (ko) 게임 상에서 게임 캐릭터의 성장 코스를 제공하는 방법 및 장치
JP2023133890A (ja) ゲームプログラム、ゲームシステム、端末装置
US10449449B2 (en) Reducing the bandwidth requirements of multiplayer gaming sessions
KR20200111088A (ko) 퀘스트 생성 방법 및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200617

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200617

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200819

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200923

R150 Certificate of patent or registration of utility model

Ref document number: 6768982

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250