CN116974897A - 游戏测试方法、装置及计算机设备、存储介质、产品 - Google Patents
游戏测试方法、装置及计算机设备、存储介质、产品 Download PDFInfo
- Publication number
- CN116974897A CN116974897A CN202310037459.8A CN202310037459A CN116974897A CN 116974897 A CN116974897 A CN 116974897A CN 202310037459 A CN202310037459 A CN 202310037459A CN 116974897 A CN116974897 A CN 116974897A
- Authority
- CN
- China
- Prior art keywords
- game
- frame
- target
- data
- logic core
- 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.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 118
- 238000000034 method Methods 0.000 claims abstract description 198
- 230000008569 process Effects 0.000 claims abstract description 129
- 238000007405 data analysis Methods 0.000 claims abstract description 30
- 238000004458 analytical method Methods 0.000 claims abstract description 18
- 238000004590 computer program Methods 0.000 claims description 25
- 238000013524 data verification Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 17
- 230000008859 change Effects 0.000 claims description 16
- 230000001960 triggered effect Effects 0.000 claims description 7
- 238000013473 artificial intelligence Methods 0.000 abstract description 7
- 238000010998 test method Methods 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 7
- 239000010931 gold Substances 0.000 description 7
- 229910052737 gold Inorganic materials 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 3
- 230000003115 biocidal effect Effects 0.000 description 2
- 239000003139 biocide Substances 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000016571 aggressive behavior Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 229910001566 austenite Inorganic materials 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了游戏测试方法、装置及计算机设备、存储介质、产品,该方法可应用于人工智能领域或者场景,其中,方法包括:获取针对目标游戏的对局文件,对局文件包括N局游戏对局中每一局游戏对局的每一帧的游戏指令,N局游戏对局是基于初始游戏逻辑核心进程进行机器自对弈完成的;基于更新后的游戏逻辑核心进程以及每一帧的游戏指令对对局文件进行回放解析,得到每一局游戏对局的每一帧中游戏对象的状态数据;更新后的游戏逻辑核心进程是对初始游戏逻辑核心进程增加目标游戏事件以及数据解析方法后得到的。通过该方法,可以节约游戏测试成本,同时,提升对游戏测试的准确性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及游戏测试方法、游戏测试装置、计算机设备、计算机可读存储介质以及计算机程序产品。
背景技术
游戏测试是游戏上线前的一个必要环节,当测试结果达到稳定后再将游戏上线,可以减少游戏维护次数,提升用户的游戏体验。目前,进行游戏测试时大多数是通过纯手工的方式,以达到对游戏的数值的测试。但是,基于手工进行测试时,消耗的人力成本和时间成本过高,且容易漏测,导致游戏测试结果不准确。
因此,怎样在节省成本的基础上实现游戏测试的准确性成为亟待解决的技术问题。
发明内容
本申请实施例提供了游戏测试方法、装置及计算机设备、存储介质、产品,可以实现目标游戏的自动对弈,节约游戏测试成本,同时,通过新增的目标游戏事件可以扩大游戏测试范围,从而提升对游戏测试的准确性。
本申请实施例一方面公开了一种游戏测试方法,该方法包括:
获取针对目标游戏的对局文件,所述对局文件包括N局游戏对局中每一局游戏对局的每一帧的游戏指令,所述N局游戏对局是基于初始游戏逻辑核心进程进行机器自对弈完成的,N为大于1的整数;
基于更新后的游戏逻辑核心进程以及所述每一帧的游戏指令对所述对局文件进行回放解析,得到所述每一局游戏对局的每一帧中游戏对象的状态数据;所述更新后的游戏逻辑核心进程是对所述初始游戏逻辑核心进程增加目标游戏事件以及数据解析方法后得到的;
基于所述每一帧中游戏对象的状态数据和所述目标游戏的参考配置数据确定所述目标游戏的测试结果。
本申请实施例一方面公开了一种游戏测试装置,该装置包括:
获取单元,用于获取针对目标游戏的对局文件,所述对局文件包括N局游戏对局中每一局游戏对局的每一帧的游戏指令,所述N局游戏对局是基于初始游戏逻辑核心进程进行机器自对弈完成的,N为大于1的整数;
处理单元,用于基于更新后的游戏逻辑核心进程以及所述每一帧的游戏指令对所述对局文件进行回放解析,得到所述每一局游戏对局的每一帧中游戏对象的状态数据;所述更新后的游戏逻辑核心进程是对所述初始游戏逻辑核心进程增加目标游戏事件以及数据解析方法后得到的;
确定单元,用于基于所述每一帧中游戏对象的状态数据和所述目标游戏的参考配置数据确定所述目标游戏的测试结果。
本申请实施例一方面公开了一种计算机设备,该计算机设备包括:
处理器,适于实现一条或多条计算机程序;以及,计算机存储介质,所述计算机存储介质存储有一条或多条计算机程序,所述一条或多条计算机程序适于由所述处理器加载并执行以上述的游戏测试方法。
本申请实施一方面公开了一种计算机可读存储介质,所述计算机可读存储介质存储有一条或多条计算机程序,所述一条或多条计算机程序适于由处理器加载并执行上述的游戏测试方法。
本申请实施例一方面公开了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行上述的游戏测试方法。
本申请实施例中,获取针对目标游戏的对局文件,对局文件包括N局游戏对局中每一局游戏对局的每一帧的游戏指令,N局游戏对局是基于初始游戏逻辑核心进程进行机器自对弈完成的,N为大于1的整数;直接通过驱动进行目标游戏的自对弈,不依赖于客户端,无需人工介入,节省人力成本。然后基于更新后的游戏逻辑核心进程以及每一帧的游戏指令对对局文件进行回放解析,得到每一局游戏对局的每一帧中游戏对象的状态数据;更新后的游戏逻辑核心进程是对初始游戏逻辑核心进程增加目标游戏事件以及数据解析方法后得到的;这样一来,就可以获得更为全面的状态数据。最后再基于每一帧中游戏对象的状态数据和目标游戏的参考配置数据确定目标游戏的测试结果,从而达到提升游戏测试准确率的效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例公开的一种游戏测试系统的网络架构示意图;
图2是本申请实施例公开的一种游戏测试方法的流程示意图;
图3是本申请实施例公开的一种自对弈的流程图;
图4是本申请实施例公开的一种初始化目标游戏对局的界面图;
图5是本申请实施例公开的一种对局文件的回放解析流程图;
图6是本申请实施例公开的一种插入收听事件的回放解析流程图;
图7是本申请实施例公开的一种数据验证的流程示意图;
图8是本申请实施例公开的一种目标帧中英雄对象的状态数据界面示意图;
图9是本申请实施例公开的另一种游戏测试方法的流程示意图;
图10是本申请实施例公开的一种游戏测试装置的结构示意图;
图11是本申请实施例公开的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了节约游戏测试成本,提升游戏测试的准确率,本申请实施例公开了一种游戏测试方法,基于该方法,可以实现目标游戏的自动对弈,节约游戏测试成本,同时,通过新增的目标游戏事件可以扩大游戏测试范围,从而提升对游戏测试的准确性。
在可行的实施例中,本申请实施例提供的游戏测试方法可以基于人工智能(Artificial Intelligence,AI)技术实现,AI是指利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。AI技术是一门综合学科,其涉及的领域较为广泛;而本申请实施例提供的游戏测试方法主要涉及AI技术中的机器学习(Machine Learning,ML)技术实现目标游戏的自对弈。机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
在可行的实施例中,本申请实施例提供的游戏测试方法还可以基于云技术(CloudTechnology)和/或区块链技术实现。具体可以涉及云技术中的云存储(Cloud Storage)、云数据库(CloudDatabase)、大数据(Big Data)中的一种或者多种。例如,从云数据库中获取执行该游戏测试方法所需要的数据(例如针对目标游戏的对局文件、初始游戏逻辑核心进程)。又例如,执行该游戏测试方法所需要的数据可以是以区块的形式存储在区块链上;可以将执行该游戏测试方法所产生的数据(例如更新后的游戏逻辑核心进程、目标游戏的测试结果等)以区块的形式存储到区块链上;另外,执行该游戏测试方法的数据处理设备可以是区块链网络中的节点设备。
请参见图1,图1为本申请实施例的一种游戏测试系统的网络架构示意图,如图1所示,该游戏测试系统100可以至少包括终端设备101和服务器102。其中,终端设备101主要用于显示目标游戏的测试结果;服务器102主要用于执行目标游戏的自对弈,用于对目标游戏进行回放解析从而得到每一帧中游戏对象的状态数据,还用于确定目标游戏的测试结果。同时,终端设备101和服务器102可以实现通信连接,其连接方式可以包括有线连接和无线连接,在此不进行限定。
在一种可能的实现方式中,上述所提及的终端设备101可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能车载等,但并不局限于此;上述的服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。图1只是示例性地表征游戏测试系统的网络架构图,并不对此进行限定。例如,图1中服务器102可以部署成区块链网络中的节点,或者将服务器102接入区块链网络,使得服务器102可将更新后的游戏逻辑核心进程以及目标游戏的测试结果上传至区块链网络进行存储,以防止内部数据被篡改,从而保证数据安全性。
结合上述游戏测试系统,本申请实施例的游戏测试方法大致可以包括:服务器102获取针对目标游戏的对局文件,对局文件包括N局游戏对局中每一局游戏对局的每一帧的游戏指令,N局游戏对局是基于初始游戏逻辑核心进程进行机器自对弈完成的,N为大于1的整数;直接通过驱动进行目标游戏的自对弈,不依赖于客户端,无需人工介入,节省人力成本。然后基于更新后的游戏逻辑核心进程以及每一帧的游戏指令对对局文件进行回放解析,得到每一局游戏对局的每一帧中游戏对象的状态数据;更新后的游戏逻辑核心进程是对初始游戏逻辑核心进程增加目标游戏事件以及数据解析方法后得到的;这样一来,就可以获得更为全面的状态数据。最后再基于每一帧中游戏对象的状态数据和目标游戏的参考配置数据确定目标游戏的测试结果,从而达到提升游戏测试准确率的效果。
在一种可能的实现方式中,当服务器102确定出目标游戏的测试结果后,将测试结果发送给终端设备101,以使得终端设备101可以在界面中显示该测试结果。其中,服务器102可以是以邮件的形式将测试结果发送给终端设备101的。如表1所示是一种游戏测试结果的示例情况,对于不同的游戏对象类型,可以测试不同的用例,如测试2:00-2:30分被击杀后“凯撒”英雄所获得的经验,“凯撒”出生时间,“凯撒”动态属性_基础抗性等等。
表1
从表1可以看出,针对目标游戏对局中的不同对象,可以对各类用例进行检测,对于测试结果和参考配置数据相同的用例,输出“成功”的测试结果,对于测试结果和参考配置数据不相同的用例,输出“失败”的测试结果;同时,在游戏测试过程中,可能还存在用例未覆盖的情况,这种情况多是由于对局的游戏局数不够导致的。因此,为了更为全面的覆盖测试用例,可以在自对弈时增加对局的次数。在游戏测试时,可以每日定时对目标游戏进行跑测,提前发现问题,反馈给对应的游戏开发者,从而针对性地进行开发修复。
可以理解的是,在本申请的具体实施方式中,涉及到的与目标游戏相关的数据,如对局文件、初始游戏逻辑核心进程等相关的数据,当本申请实施例运用到具体产品或技术中时,相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
基于上述对游戏测试系统架构的阐述,本申请实施例公开了一种游戏测试方法,请参见图2,为本申请实施例公开的一种游戏测试方法的流程示意图,该游戏测试方法可以由计算机设备执行的,该游戏测试方法包括但不仅限于以下步骤:
S201:获取针对目标游戏的对局文件,对局文件包括N局游戏对局中每一局游戏对局的每一帧的游戏指令,N局游戏对局是基于初始游戏逻辑核心进程进行机器自对弈完成的,N为大于1的整数。
其中,对局文件指的是一个游戏指令集合,包括多局游戏对局中每一局每一帧的所有游戏指令,游戏指令指的是目标游戏中用户所操作的游戏对象的动作,包括攻击其他游戏对象,包括敌方英雄、小兵、防御塔以及野怪等等。或者,在可行的实施例中,一局游戏对局可以对应一个对局文件。在本申请实施例中,目标游戏可以是指的是moba类游戏,moba,即Multiplayer Online Battle Arena,翻译为多人在线战术竞技游戏,又被称为Action Real-Time Strategy(缩写:Action RTS、ARTS),翻译为动作即时战略游戏。这类游戏的玩法是:在战斗中一般需要购买装备,玩家通常被分为两队,两队在分散的游戏地图中互相竞争,每个玩家都通过一个即时战略风格的界面控制所选的角色。这类游戏通常无需操作战场内游戏中常见的建筑群、资源、训练兵种等组织单位,玩家只控制自己所选的角色。战场指的是进入游戏对局后的游戏内容。
在一种可能的实现方式中,对局文件包括N局游戏对局中每一局游戏对局的每一帧的游戏指令,这N局游戏对局是基于初始游戏逻辑核心进程进行机器自对弈完成的,N是进行自对弈时自定义设置的,N越大,对局的游戏场次越多,可以覆盖的测试用例也更多。为了实现游戏战场局内的数据自动化,纯靠手工进行对局达不到自动化的要求,无法覆盖足够全面的场景,故有了自对弈,自对弈完指的是利用人工智能技术实现自己和自己对战,无需通过客户端表现层的对局开展,纯逻辑层层面的执行,对局完成会生成所需的对局数据。其中,初始游戏逻辑核心进程(又可以称为DS,一种逻辑核心进进程),可以在游戏内为收发各机器帧同步命令,并做处理和转发的进程,在本申请中可以驱动完成目标游戏的自动对局。在本申请中,初始游戏逻辑核心进程是基于目标游戏的历史对局数据确定的,目标游戏的历史对局数据是从游戏数据库中获取的。请参见图3,是本申请实施例公开的一种自对弈的流程图,先构建初始游戏逻辑核心进程,然后确定自对弈配置信息,自对弈配置信息可以基于历史游戏对局数据确定的,自对弈配置信息包括对局数N以及玩家数。例如,一局游戏中需要的玩家数量,对于5v5的游戏对局,则玩家数就是10,对于3v3的游戏对局,则玩家数就是6。对局数也是在自对弈配置信息中设置的,N可以设置成700或者1000等等。然后调用机器自对弈接口基于自对弈配置信息运行目标游戏的初始游戏逻辑核心进程,完成N局游戏对局,得到N局对局游戏的对局文件。在自对弈过程中,可以记录N局游戏对局中每一局游戏对局的每一帧的游戏指令;然后基于N局游戏对局中每一局游戏对局的每一帧的游戏指令,生成目标游戏的对局文件。其中,需要注意的是,自对弈配置信息可以根据用户进行修改,例如,可以修改tranconfig.txt配置文件,将其中的对局文件路径替换为基准对局文件路径,然后运行该二进制文件,调起自对弈接口,进行对局。trainconfig.txt为自对弈对局配置信息,包括游戏对局过程中魔纹(用于辅助英雄属性值加成的辅助工具)、英雄、奥义自定义(游戏开局前的额外加成,包括英雄皮肤加成等)、服务器地址和基准对局文件的设定。serverconfig.txt为对局文件的配置信息,用于导出对局日志设置、导出对局文件设置和导出对局文件名设置等。
S202:基于更新后的游戏逻辑核心进程以及每一帧的游戏指令对对局文件进行回放解析,得到每一局游戏对局的每一帧中游戏对象的状态数据;更新后的游戏逻辑核心进程是对初始游戏逻辑核心进程增加目标游戏事件以及数据解析方法后得到的。
在一种可能的实现方式中,在确定出对局文件后,由于对局文件的构成主要包括开局协议和每一帧的帧命令。但是这一部分对局的数据实际上是游戏本身对局内推进战场逻辑所涉及的基础数据,基础数据指的是对局过程中游戏对象的操作指令等,没有游戏测试需要的数值,为了获得想要的状态数据,则需要修改初始游戏逻辑进行对应的代码,在每一帧更新的时候,捕获对应的状态数据。每一帧中游戏对象的状态数据包括每一帧中游戏对象的基础状态数据以及目标游戏事件对应的事件状态数据,基础状态数据包括游戏对象的状态、属性和位置中的一种或多种。
在具体的实现过程中,主要是在初始游戏逻辑核心进程中增加目标游戏事件以及数据解析方法,得到更新后的游戏逻辑核心进程,目标游戏事件包括游戏资产变更事件和游戏对象的生命状态变更事件。游戏资产变更事件包括游戏对局中游戏对象的经验值变化、金币值变化,随着时间的推移,游戏对象的经验值和金币值会逐渐增加,当发生买卖(对局中英雄买卖道具)时,金币值也会发生改变;游戏对象的生命状态变更事件包括游戏对局中游戏对象的死亡事件、游戏对象的升级事件等等。可选的,除了游戏资产变更事件和游戏对象的生命状态变更事件,还可以包括游戏对局过程中游戏对象的攻击事件,如英雄对敌方英雄的攻击、英雄对小兵的攻击、英雄对野怪的攻击等。可以将增加目标游戏事件以及数据解析方法总结为插桩,其实质就是改写了初始游戏逻辑核心进程的一段代码逻辑,得到更新后的游戏逻辑核心进程,从而实现了在每一帧执行的时增加了数据的解析。
在一种可能的实现方式中,针对N局游戏对局中的目标游戏对局,创建目标游戏事件的收听进程,其中,收听进程主要是用于对目标游戏事件进行监测;同时从对局文件中获取目标游戏对局的每一帧的游戏指令,目标游戏对局为任意一局游戏对局;调用更新后的游戏逻辑核心进程按照时间顺序依次执行每一帧的游戏指令,并利用数据解析方法获取每一帧中游戏对象的基础状态数据;若收听进程确定目标游戏事件触发,则确定触发目标游戏事件的第一目标帧,并利用数据解析方法获取第一目标帧中目标游戏事件对应的事件状态数据。也就是说,在进行游戏对局的回放过程中,是按照时间顺序一帧一帧的进行回放,并进行数据采集的,对于一局游戏中的每一帧都要采集对应的游戏对应的基础状态数据,基于收听进程若是存在第一目标帧触发了目标游戏事件,则在该第一目标帧采集对应的游戏对象的事件状态属性。这样一来,既采集了每一帧中游戏对象的基础状态数据,又采集到了目标游戏事件的事件状态数据,因此,实现了数据更为全面的采集。
在一种可能的实现方式中,在进行逐帧解析之前,还需要初始化对局文件中每一局游戏对局的游戏对象的属性值。针对目标游戏对局,就是重新加载对应的英雄,从第一帧开始进行逐帧分析,如图4所示,是本申请实施例公开的一种初始化目标游戏对局的界面图,可以可理解成双方选中英雄后,重新加载进入游戏对局,图4示出的是5v5的游戏对局。
如图5所示,是本申请实施例公开的一种对局文件的回放解析流程图,对目标游戏对局进行回放,先为其增加上述所阐述的目标游戏事件,然后按照顺序逐帧进行更新,一方面利用数据解析方法创建基础状态数据对应的数据采集结构对象,并调用游戏客户端中数据采集结构对象的对象接口获取每一帧中游戏对象的基础状态数据;另一方面,通过收听进程确定目标游戏事件是否被触发,若是确定目标游戏事件触发,则利用数据解析方法创建目标游戏事件对应的数据采集结构对象,然后调用游戏客户端中数据采集结构对象的对象接口获取目标游戏事件的事件状态数据。对于每一帧游戏帧,都会去创建数据采集结构对象(包括战场对象、背包对象、特殊事件对象等),针对局内不同的对象,有不同的获取数值的方式。例如,针对防御塔、野怪、小兵等可以通过游戏内的对象实例,直接调用对象实例的属性列表获取当前帧的数值;针对目标游戏事件帧,可以通过收听进程的响应结果,来获取游戏对象升级情况、击杀情况以及获取经验金币情况等。可选的,在目标对局游戏开始时,还可以对游戏对象的奥义数据进行采集,该数据只采集一次便可。最后,对采集到的状态数据进行数据处理,并进行保存。
在一种可能的实现方式中,在采集到状态数据后进行数据处理,可以指的是将采集到状态数据转换成设定数据格式,以方便后续对状态数据的验证,针对不同游戏、不同游戏开发商设定数据格式可以进行自定义。先将采集到的状态数据通过预定义数据类型格式进行记录,然后再将记录的预定义数据类型格式的状态数据转换成设定数据格式,并写入文件,供后续解析使用。其中,预定义数据类型格式如表2所示,表2中只展示了部分数据,并未一一列举。
表2
基于上述对预定义数据类型格式的状态数据进行数据转换,得到设定数据格式的状态数据。
又参见图6,是本申请实施例中一种插入收听事件的回放解析流程图,从图6可以看出,先确定更新后的游戏逻辑核心进程,创建目标游戏事件的收听进程,再逐帧进行更新,一方面采集每一帧中游戏对象的基础状态数据,同时解析收听进程是否触发目标游戏事件,当收听进程确定目标游戏事件触发,采集目标游戏事件的事件状态数据,依照这样的方式,将一局游戏对局中的每一帧都进行这样的解析,并记录每一帧中游戏对象的状态数据,直到对局结束,得到每一帧中游戏对象的状态数据。基于更新后的游戏逻辑核心进程以及每一帧的游戏指令对对局文件进行回放解析,其中,游戏的回放是可以脱离表现层存在的,因为帧同步游戏的对局,可以被存储为一系列的帧命令,我们只需要拿到该文件,就可以做一系列的纯逻辑运算,从而实现对游戏的回放。
在一种可能的实现方式中,在进行对局回放解析之前,即对局游戏被外部自动化驱动进行对局加载的之前,需要先进行游戏版本的校验,若是版本一致时,再进行驱动进行游戏的回放。具体的,从对局文件的头部字段中获取对局文件的第一游戏版本信息,对局文件的头部字段中记录有游戏的版本信息;并获取更新后的游戏逻辑核心进程对应的第二游戏版本信息,在游戏逻辑核心进程中记录有游戏的版本信息;若第一游戏版本信息和第二游戏版本信息相匹配,则执行所述更新后的游戏逻辑核心进程以及每一帧的游戏指令对对局文件进行回放解析,得到每一局游戏对局的每一帧中游戏对象的状态数据的步骤。
S203:基于每一帧中游戏对象的状态数据和目标游戏的参考配置数据确定目标游戏的测试结果。
在一种可能的实现方式中,基于上述方法得到每一帧中游戏对象的状态数据后,后面就需要进行数据的验证,从而实现对游戏对局中数值的验证。在实现过程中,先获取第二目标帧中游戏对象的状态数据,第二目标帧包括任意两帧、相邻两帧以及指定的单帧中的一种或多种;也就是说,在验证的时候,可以是针对性的进行验证,需要先确定待验证的关键帧,根据参考配置数据确定目标游戏中游戏对象的标识信息;根据游戏对象的标识信息从对局文件中确定第二目标帧;第二目标帧亏是多帧也可以是单帧,可以指的发生数值变化的任意两帧,也可以是相邻两帧,或者是指定的单帧(游戏对象死亡的一帧、英雄获取buff的一帧等等)。基于第二目标帧包括的游戏对象以及相关的目标游戏事件确定第二目标帧对应的数据校验规则;基于数据校验规则以及第二目标帧中游戏对象的状态数据确定待检测数据,并确定待检测数据与目标游戏的参考配置数据之间的匹配结果,可以是比较待检测数据与参考配置数据是否相同;基于匹配结果确定第二目标帧的测试结果。若是相同,则输出“成功”的测试结果,若是不相同,则输出“失败”的测试结果。基于输出的测试结果,可以对目标游戏进行修复等操作。
其中,不同的帧对应的数据校验规则可能是不同,对应不同的游戏对象数据检验规则也可能不同,这里的数据校验规则包括数值的计算以及数值的出现消失等。例如,数据检验规则可以为:X帧~Y帧之间生物的属性*成长数值(参考配置数据)=配置表数值,即确定X帧~Y帧之间生物的属性为待检测数据,然后通过乘法运算确定待检测数据是否和参考配置数据表中配置的数值是否相同,生物指的是对局游戏中的英雄、野怪以及小兵等等,具体的,可以是计算第30帧到第40帧之间野怪A的增加的属性值,是否和参考数据配置表的一致。又例如,野怪的BUFF数据校验规则,可以为:野怪死亡帧=击杀者身上出现相关BUFFID,也就是当野怪被击杀帧,相应的英雄身上应该出现相关buff标识,若是出现,则说明和参考配置数据表是一致的。BUFF持续时间:获得BUFF帧时+持续时间(配置)=结束帧时间,也就是检测buff持续时间是否和参考配置数据表中一致。野怪、小兵出生:出生帧=实际配置时间,野怪死亡-复活时间=实际配置的复活时间;野怪经验:野怪死亡帧=击杀者ID前一帧经验-当前帧经验=野怪配置经验*成长数值。列举的数据校验规则只是示例性的部分规则,对于不同的游戏,对应的数据校验规则可以视情况而定。
如图7所示,是本申请实施例公开的一种数据验证的流程示意图,先确定出每一帧中游戏对象的状态数据,并从参考配置数据中获取游戏对象的标识信息,包括英雄、野怪等的标识信息;然后基于游戏对象的标识信息确定需要验证的第二目标帧,基于第二目标帧和测试用例进行数据验证;验证状态数据是否和参考配置数据中的数据相匹配,若是匹配,则输出“成功”的测试结果,若是不不匹配,则输出“失败”的测试结果。
在一种可能的实现方式中,参考配置数据如表3和表4所示:
表3
表4
从表3可以看出,该表主要在自动化的作用是读取野怪的基础属性,和动态属性配置ID,基础属性是来做前置计算,动态属性则是用来查找后续配置表中相关的动态成长配置,在该表中,配置了各个游戏对象的id,各个游戏对象的名称,还配置了各个游戏对象的视野范围、追击范围、追击耐力以及基础移动速度等等。
从表4可以看出,该表则是通过怪物属性表中相关的动态属性ID,找到对应动态属性ID的属性成长数值(千分比)。数值的成长是根据时间来进行划分的。例如,每30秒成长一次,使用基础属性*野怪的成长百分比,即当前时间段该野怪的实际数值。在该表中配置了战斗周期、战斗时间,以及各个期间对应的基础生命、基础攻击力、基础法术强度、基础抗性、移动速度以及经验等等。
例如,X帧~Y帧之间生物的属性=参考配置数据中野怪基础属性*对应时间的动态属性数值千分比;野怪经验:野怪死亡帧=击杀者ID前一帧经验-当前帧经验=野怪配置经验(参考配置数据中的数据)*成长数值。经验的计算因为在moba游戏中,每秒都会自动成长经验值,在经验值的判断中还需要判断该帧是否有相关的经验成长,如果有则要计算上成长经验所带来的影响进行综合计算。同时,在这类游戏中,存在对种影响的状态数值的情况:如周边其余小兵死亡、英雄死亡、自然成长经验,但是均可以通过识别关键帧,进行排除运算。
在一种可能的实现方式中,在输出测试结果时,可以将关键帧的界面截图一起输出给客户端,以方面用户了解对局中击杀、升级、买装备、野怪出生、英雄技能等的记录情况。如图8所示,是一种目标帧中英雄对象的状态数据界面示意图,展示的是开局2:30s后,英雄A和英雄1的经验和金币增加情况,例如,英雄A的经验增加了18,金币增加了26;英雄1的经验增加了35,金币增加了60。
其中,需要注意的是,由于目标游戏的所有游戏代码都写在C层,插桩(即增加目标游戏事件和数据解析事件)后的代码编译出来的是dll文件,需要通过il2cpp将其转为c++的代码之后,再重新编译成linux平台上的so文件。并在整个游戏逻辑核心进程构建的时候替换到服务器上的指定目录下,那构建出来的游戏逻辑核心进程,就可以用来做数据抓取、转换以及存储了。
本申请实施例中,主要阐述的是对目标游戏的测试,包括获取针对目标游戏的对局文件,对局文件包括N局游戏对局中每一局游戏对局的每一帧的游戏指令,N局游戏对局是基于初始游戏逻辑核心进程进行机器自对弈完成的,N为大于1的整数;直接通过驱动进行目标游戏的自对弈,不依赖于客户端,无需人工介入,节省人力成本。然后基于更新后的游戏逻辑核心进程以及每一帧的游戏指令对对局文件进行回放解析,得到每一局游戏对局的每一帧中游戏对象的状态数据;更新后的游戏逻辑核心进程是对初始游戏逻辑核心进程增加目标游戏事件以及数据解析方法后得到的;这样一来,就可以获得更为全面的状态数据。最后再基于每一帧中游戏对象的状态数据和目标游戏的参考配置数据确定目标游戏的测试结果,从而达到提升游戏测试准确率的效果。
综上所述,本申请实施例所阐述的游戏测试方法可以通过图9示出的游戏测试的流程示意图进行说明,可以包括三个部分:1、AI自对弈,指的是AI自己和自己对战,无需通过客户端表现层的对局开展,纯逻辑层层面的执行,对局完成会生成所需的对局数据,存储在ABS文件中。在这个过程中,可以根据历史对局数据确定自对弈配置信息,然后使用初始游戏逻辑核心进程进行驱动完成目标游戏的自对弈,得到对局文件。2、对游戏对局进行回放解析,得到状态数据。可以理解成对初始游戏逻辑核心进程进行插桩,使用插桩后的逻辑核心进行回放对局文件,获取运行时的每一帧中游戏对象的状态信息,并保存为固定格式的文件。3、数值分析。通过对该固定格式文件解析,拿到每一帧每一种战场生物、防御塔等的状态数据作为实时过程数据,同时拿取参考配置数据作为基准数据,通过过程数据和基准数据做一定规则的运算比较,进行战场数值的自动化测试。基于这样的方法进行游戏测试,可以体现以下优势:1、测试时间从转测周提前至分支测试开始覆盖,可以理解成只要提供版本均可覆盖,由此可以为目标游戏提供更加充裕的修复时间;2、纯自动化执行自对弈(以邮件形式输出),不需要人工介入,节省了人力成本和时间成本;3、测试范围广,可以对目标游戏中所有游戏对象,包括所有野怪、小兵、防御塔以及英雄进行测试。
基于上述的方法实施例,本申请实施例还提供了一种游戏测试装置的结构示意图。参见图10,为本申请实施例提供的一种游戏测试装置的结构示意图。
图10所示的游戏测试装置1000可运行如下单元:
获取单元1001,用于获取针对目标游戏的对局文件,所述对局文件包括N局游戏对局中每一局游戏对局的每一帧的游戏指令,所述N局游戏对局是基于初始游戏逻辑核心进程进行机器自对弈完成的,N为大于1的整数;
处理单元1002,用于基于更新后的游戏逻辑核心进程以及所述每一帧的游戏指令对所述对局文件进行回放解析,得到所述每一局游戏对局的每一帧中游戏对象的状态数据;所述更新后的游戏逻辑核心进程是对所述初始游戏逻辑核心进程增加目标游戏事件以及数据解析方法后得到的;
确定单元1003,用于基于所述每一帧中游戏对象的状态数据和所述目标游戏的参考配置数据确定所述目标游戏的测试结果。
在一种可能的实现方式中,所述处理单元1001,还用于从游戏数据库中获取所述目标游戏的历史对局数据;
所述确定单元1003,还用于基于所述目标游戏的历史对局数据确定所述目标游戏的初始游戏逻辑核心进程;
所述处理单元1002,还用于在所述初始游戏逻辑核心进程中增加目标游戏事件以及数据解析方法,得到更新后的游戏逻辑核心进程,所述目标游戏事件包括游戏资产变更事件和游戏对象的生命状态变更事件。
在一种可能的实现方式中,所述数据解析方法用于获取所述每一帧中游戏对象的基础状态数据以及所述目标游戏事件对应的事件状态数据;所述处理单元1002基于更新后的游戏逻辑核心进程以及所述每一帧的游戏指令对所述对局文件进行回放解析,得到所述每一局游戏对局的每一帧中游戏对象的状态数据时,具体用于:
针对所述N局游戏对局中的目标游戏对局,创建所述目标游戏事件的收听进程,并从所述对局文件中获取所述目标游戏对局的每一帧的游戏指令,所述目标游戏对局为任意一局游戏对局;
调用更新后的游戏逻辑核心进程按照时间顺序依次执行所述每一帧的游戏指令,并利用所述数据解析方法获取所述每一帧中游戏对象的基础状态数据;
若所述收听进程确定所述目标游戏事件触发,则确定触发所述目标游戏事件的第一目标帧,并利用所述数据解析方法获取所述第一目标帧中所述目标游戏事件对应的事件状态数据;
根据所述每一帧中游戏对象的基础状态数据以及所述目标游戏事件对应的事件状态数据确定所述目标游戏对局的每一帧中游戏对象的状态数据。
在一种可能的实现方式中,所述获取单元1001利用所述数据解析方法获取所述每一帧中游戏对象的基础状态数据时,具体用于:
利用所述数据解析方法创建数据采集结构对象;
调用游戏客户端中所述数据采集结构对象的对象接口获取所述每一帧中游戏对象的基础状态数据,所述基础状态数据包括游戏对象的状态、属性和位置中的一种或多种。
在一种可能的实现方式中,所述处理单元1002基于更新后的游戏逻辑核心进程以及所述每一帧的游戏指令对所述对局文件进行回放解析,得到所述每一局游戏对局的每一帧中游戏对象的状态数据之前,所述获取单元1001,还用于从所述对局文件的头部字段中获取所述对局文件的第一游戏版本信息,并获取所述更新后的游戏逻辑核心进程对应的第二游戏版本信息;
所述处理单元1002,还用于若所述第一游戏版本信息和所述第二游戏版本信息相匹配,则执行所述基于更新后的游戏逻辑核心进程以及所述每一帧的游戏指令对所述对局文件进行回放解析,得到所述每一局游戏对局的每一帧中游戏对象的状态数据的步骤。
在一种可能的实现方式中,所述确定单元1003基于所述每一帧中游戏对象的状态数据和所述目标游戏的参考配置数据确定所述目标游戏的测试结果时,具体用于:
获取第二目标帧中游戏对象的状态数据,所述第二目标帧包括任意两帧、相邻两帧以及指定的单帧中的一种或多种;
基于所述第二目标帧包括的游戏对象以及相关的目标游戏事件确定所述第二目标帧对应的数据校验规则;
基于所述数据校验规则以及所述第二目标帧中游戏对象的状态数据确定待检测数据,并确定所述待检测数据与所述目标游戏的参考配置数据之间的匹配结果;
基于所述匹配结果确定所述第二目标帧的测试结果。
在一种可能的实现方式中,所述获取单元1001获取第二目标帧中游戏对象的状态数据时,具体用于:
根据所述参考配置数据确定所述目标游戏中游戏对象的标识信息;
根据所述游戏对象的标识信息从所述对局文件中确定第二目标帧;
从所述每一帧中游戏对象的状态数据中获取所述第二目标帧中游戏对象的状态数据。
在一种可能的实现方式中,所述获取单元1001获取针对目标游戏的对局文件时,具体用于:
获取自对弈配置信息,所述自对弈配置信息包括对局数N以及玩家数;
调用机器自对弈接口基于所述自对弈配置信息运行所述目标游戏的初始游戏逻辑核心进程,完成N局游戏对局,并记录所述N局游戏对局中每一局游戏对局的每一帧的游戏指令;
基于所述N局游戏对局中每一局游戏对局的每一帧的游戏指令,生成所述目标游戏的对局文件。
根据本申请的一个实施例,图2所示的游戏测试方法所涉及各个步骤可以是由图10所示的游戏测试装置中的各个单元来执行的。例如,图2所示的游戏测试方法中步骤S201可由图10所示的游戏测试装置中的获取单元1001来执行,步骤S202可由图10所示的游戏测试装置中的处理单元1002来执行,步骤S203可由图10所示的游戏测试装置中的确定单元1003来执行。
根据本申请的另一个实施例,图10所示的游戏测试装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,基于游戏测试装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图2、图3、图5、图6、图7以及图9所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图10中所示的游戏测试装置,以及来实现本申请实施例游戏测试方法。所述计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于上述计算机设备中,并在其中运行。
本申请实施例中,获取单元1001获取针对目标游戏的对局文件,对局文件包括N局游戏对局中每一局游戏对局的每一帧的游戏指令,N局游戏对局是基于初始游戏逻辑核心进程进行机器自对弈完成的,N为大于1的整数,直接通过驱动进行目标游戏的自对弈,不依赖于客户端,无需人工介入,节省人力成本;处理单元1002基于更新后的游戏逻辑核心进程以及每一帧的游戏指令对对局文件进行回放解析,得到每一局游戏对局的每一帧中游戏对象的状态数据,更新后的游戏逻辑核心进程是对初始游戏逻辑核心进程增加目标游戏事件以及数据解析方法后得到的;这样一来,就可以获得更为全面的状态数据。最后确定单元1003再基于每一帧中游戏对象的状态数据和目标游戏的参考配置数据确定目标游戏的测试结果,从而达到提升游戏测试准确率的效果。
基于上述方法以及装置实施例,本申请实施例提供了一种计算机设备,参见图11,为本申请实施例提供的一种计算机设备的结构示意图。图11所示的计算机设备1100至少包括处理器1101、输入接口1102、输出接口1103、计算机存储介质1104以及存储器1105。其中,处理器1101、输入接口1102、输出接口1103、计算机存储介质1104以及存储器1105可通过总线或其他方式连接。
计算机存储介质1104可以存储在计算机设备1100的存储器1105中,所述计算机存储介质1104用于存储计算机程序,所述计算机程序包括程序指令,所述处理器1101用于执行所述计算机存储介质1104存储的程序指令。处理器1101(或称CPU(Central ProcessingUnit,中央处理器))是计算机设备1100的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条计算机指令从而实现相应方法流程或相应功能。
本申请实施例还提供了一种计算机存储介质(Memory),所述计算机存储介质是计算机设备1100中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括计算机设备1100中的内置存储介质,当然也可以包括计算机设备1100支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了计算机设备1100的操作系统。并且,在该存储空间中还存放了适于被处理器1101加载并执行的一条或多条计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机存储介质。
在一个实施例中,所述计算机存储介质可由处理器1101加载并执行计算机存储介质中存放的一条或多条计算机程序,以实现上述有关图2、图3、图5、图6、图7以及图9的游戏测试方法的相应步骤。具体实现中,计算机存储介质中的一条或多条指令由处理器1101加载并执行如下步骤:
获取针对目标游戏的对局文件,所述对局文件包括N局游戏对局中每一局游戏对局的每一帧的游戏指令,所述N局游戏对局是基于初始游戏逻辑核心进程进行机器自对弈完成的,N为大于1的整数;
基于更新后的游戏逻辑核心进程以及所述每一帧的游戏指令对所述对局文件进行回放解析,得到所述每一局游戏对局的每一帧中游戏对象的状态数据;所述更新后的游戏逻辑核心进程是对所述初始游戏逻辑核心进程增加目标游戏事件以及数据解析方法后得到的;
基于所述每一帧中游戏对象的状态数据和所述目标游戏的参考配置数据确定所述目标游戏的测试结果。
在一种可能的实现方式中,所述处理器1101,还用于:
从游戏数据库中获取所述目标游戏的历史对局数据;
基于所述目标游戏的历史对局数据确定所述目标游戏的初始游戏逻辑核心进程;
在所述初始游戏逻辑核心进程中增加目标游戏事件以及数据解析方法,得到更新后的游戏逻辑核心进程,所述目标游戏事件包括游戏资产变更事件和游戏对象的生命状态变更事件。
在一种可能的实现方式中,所述数据解析方法用于获取所述每一帧中游戏对象的基础状态数据以及所述目标游戏事件对应的事件状态数据;所述处理器1101基于更新后的游戏逻辑核心进程以及所述每一帧的游戏指令对所述对局文件进行回放解析,得到所述每一局游戏对局的每一帧中游戏对象的状态数据时,具体用于:
针对所述N局游戏对局中的目标游戏对局,创建所述目标游戏事件的收听进程,并从所述对局文件中获取所述目标游戏对局的每一帧的游戏指令,所述目标游戏对局为任意一局游戏对局;
调用更新后的游戏逻辑核心进程按照时间顺序依次执行所述每一帧的游戏指令,并利用所述数据解析方法获取所述每一帧中游戏对象的基础状态数据;
若所述收听进程确定所述目标游戏事件触发,则确定触发所述目标游戏事件的第一目标帧,并利用所述数据解析方法获取所述第一目标帧中所述目标游戏事件对应的事件状态数据;
根据所述每一帧中游戏对象的基础状态数据以及所述目标游戏事件对应的事件状态数据确定所述目标游戏对局的每一帧中游戏对象的状态数据。
在一种可能的实现方式中,所述处理器1101利用所述数据解析方法获取所述每一帧中游戏对象的基础状态数据时,具体用于:
利用所述数据解析方法创建数据采集结构对象;
调用游戏客户端中所述数据采集结构对象的对象接口获取所述每一帧中游戏对象的基础状态数据,所述基础状态数据包括游戏对象的状态、属性和位置中的一种或多种。
在一种可能的实现方式中,所述处理器1101基于更新后的游戏逻辑核心进程以及所述每一帧的游戏指令对所述对局文件进行回放解析,得到所述每一局游戏对局的每一帧中游戏对象的状态数据之前,还用于:
从所述对局文件的头部字段中获取所述对局文件的第一游戏版本信息,并获取所述更新后的游戏逻辑核心进程对应的第二游戏版本信息;
若所述第一游戏版本信息和所述第二游戏版本信息相匹配,则执行所述基于更新后的游戏逻辑核心进程以及所述每一帧的游戏指令对所述对局文件进行回放解析,得到所述每一局游戏对局的每一帧中游戏对象的状态数据的步骤。
在一种可能的实现方式中,所述处理器1101基于所述每一帧中游戏对象的状态数据和所述目标游戏的参考配置数据确定所述目标游戏的测试结果时,具体用于:
获取第二目标帧中游戏对象的状态数据,所述第二目标帧包括任意两帧、相邻两帧以及指定的单帧中的一种或多种;
基于所述第二目标帧包括的游戏对象以及相关的目标游戏事件确定所述第二目标帧对应的数据校验规则;
基于所述数据校验规则以及所述第二目标帧中游戏对象的状态数据确定待检测数据,并确定所述待检测数据与所述目标游戏的参考配置数据之间的匹配结果;
基于所述匹配结果确定所述第二目标帧的测试结果。
在一种可能的实现方式中,所述处理器1101获取第二目标帧中游戏对象的状态数据时,具体用于:
根据所述参考配置数据确定所述目标游戏中游戏对象的标识信息;
根据所述游戏对象的标识信息从所述对局文件中确定第二目标帧;
从所述每一帧中游戏对象的状态数据中获取所述第二目标帧中游戏对象的状态数据。
在一种可能的实现方式中,所述处理器1101获取针对目标游戏的对局文件时,具体用于:
获取自对弈配置信息,所述自对弈配置信息包括对局数N以及玩家数;
调用机器自对弈接口基于所述自对弈配置信息运行所述目标游戏的初始游戏逻辑核心进程,完成N局游戏对局,并记录所述N局游戏对局中每一局游戏对局的每一帧的游戏指令;
基于所述N局游戏对局中每一局游戏对局的每一帧的游戏指令,生成所述目标游戏的对局文件。
本申请实例中,处理器1101获取针对目标游戏的对局文件,对局文件包括N局游戏对局中每一局游戏对局的每一帧的游戏指令,N局游戏对局是基于初始游戏逻辑核心进程进行机器自对弈完成的,N为大于1的整数;直接通过驱动进行目标游戏的自对弈,不依赖于客户端,无需人工介入,节省人力成本。然后基于更新后的游戏逻辑核心进程以及每一帧的游戏指令对对局文件进行回放解析,得到每一局游戏对局的每一帧中游戏对象的状态数据;更新后的游戏逻辑核心进程是对初始游戏逻辑核心进程增加目标游戏事件以及数据解析方法后得到的;这样一来,就可以获得更为全面的状态数据。最后再基于每一帧中游戏对象的状态数据和目标游戏的参考配置数据确定目标游戏的测试结果,从而达到提升游戏测试准确率的效果。
根据本申请的一个方面,本申请实施例还提供了一种计算机产品,该计算机产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。处理器1101从计算机可读存储介质中读取该计算机程序,处理器1101执行该计算机程序,使得计算机设备1100执行图2、图3、图5、图6、图7以及图9所示的相关方法。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可能可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种游戏测试方法,其特征在于,所述方法包括:
获取针对目标游戏的对局文件,所述对局文件包括N局游戏对局中每一局游戏对局的每一帧的游戏指令,所述N局游戏对局是基于初始游戏逻辑核心进程进行机器自对弈完成的,N为大于1的整数;
基于更新后的游戏逻辑核心进程以及所述每一帧的游戏指令对所述对局文件进行回放解析,得到所述每一局游戏对局的每一帧中游戏对象的状态数据;所述更新后的游戏逻辑核心进程是对所述初始游戏逻辑核心进程增加目标游戏事件以及数据解析方法后得到的;
基于所述每一帧中游戏对象的状态数据和所述目标游戏的参考配置数据确定所述目标游戏的测试结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
从游戏数据库中获取所述目标游戏的历史对局数据;
基于所述目标游戏的历史对局数据确定所述目标游戏的初始游戏逻辑核心进程;
在所述初始游戏逻辑核心进程中增加目标游戏事件以及数据解析方法,得到更新后的游戏逻辑核心进程,所述目标游戏事件包括游戏资产变更事件和游戏对象的生命状态变更事件。
3.根据权利要求1或者2所述的方法,其特征在于,所述数据解析方法用于获取所述每一帧中游戏对象的基础状态数据以及所述目标游戏事件对应的事件状态数据;所述基于更新后的游戏逻辑核心进程以及所述每一帧的游戏指令对所述对局文件进行回放解析,得到所述每一局游戏对局的每一帧中游戏对象的状态数据,包括:
针对所述N局游戏对局中的目标游戏对局,创建所述目标游戏事件的收听进程,并从所述对局文件中获取所述目标游戏对局的每一帧的游戏指令,所述目标游戏对局为任意一局游戏对局;
调用更新后的游戏逻辑核心进程按照时间顺序依次执行所述每一帧的游戏指令,并利用所述数据解析方法获取所述每一帧中游戏对象的基础状态数据;
若所述收听进程确定所述目标游戏事件触发,则确定触发所述目标游戏事件的第一目标帧,并利用所述数据解析方法获取所述第一目标帧中所述目标游戏事件对应的事件状态数据;
根据所述每一帧中游戏对象的基础状态数据以及所述目标游戏事件对应的事件状态数据确定所述目标游戏对局的每一帧中游戏对象的状态数据。
4.根据权利要求3所述的方法,其特征在于,所述利用所述数据解析方法获取所述每一帧中游戏对象的基础状态数据,包括:
利用所述数据解析方法创建数据采集结构对象;
调用游戏客户端中所述数据采集结构对象的对象接口获取所述每一帧中游戏对象的基础状态数据,所述基础状态数据包括游戏对象的状态、属性和位置中的一种或多种。
5.根据权利要求1所述的方法,其特征在于,所述基于更新后的游戏逻辑核心进程以及所述每一帧的游戏指令对所述对局文件进行回放解析,得到所述每一局游戏对局的每一帧中游戏对象的状态数据之前,所述方法还包括:
从所述对局文件的头部字段中获取所述对局文件的第一游戏版本信息,并获取所述更新后的游戏逻辑核心进程对应的第二游戏版本信息;
若所述第一游戏版本信息和所述第二游戏版本信息相匹配,则执行所述基于更新后的游戏逻辑核心进程以及所述每一帧的游戏指令对所述对局文件进行回放解析,得到所述每一局游戏对局的每一帧中游戏对象的状态数据的步骤。
6.根据权利要求1所述的方法,其特征在于,所述基于所述每一帧中游戏对象的状态数据和所述目标游戏的参考配置数据确定所述目标游戏的测试结果,包括:
获取第二目标帧中游戏对象的状态数据,所述第二目标帧包括任意两帧、相邻两帧以及指定的单帧中的一种或多种;
基于所述第二目标帧包括的游戏对象以及相关的目标游戏事件确定所述第二目标帧对应的数据校验规则;
基于所述数据校验规则以及所述第二目标帧中游戏对象的状态数据确定待检测数据,并确定所述待检测数据与所述目标游戏的参考配置数据之间的匹配结果;
基于所述匹配结果确定所述第二目标帧的测试结果。
7.根据权利要求6所述的方法,其特征在于,所述获取第二目标帧中游戏对象的状态数据,包括:
根据所述参考配置数据确定所述目标游戏中游戏对象的标识信息;
根据所述游戏对象的标识信息从所述对局文件中确定第二目标帧;
从所述每一帧中游戏对象的状态数据中获取所述第二目标帧中游戏对象的状态数据。
8.根据权利要求1所述的方法,其特征在于,所述获取针对目标游戏的对局文件,包括:
获取自对弈配置信息,所述自对弈配置信息包括对局数N以及玩家数;
调用机器自对弈接口基于所述自对弈配置信息运行所述目标游戏的初始游戏逻辑核心进程,完成N局游戏对局,并记录所述N局游戏对局中每一局游戏对局的每一帧的游戏指令;
基于所述N局游戏对局中每一局游戏对局的每一帧的游戏指令,生成所述目标游戏的对局文件。
9.一种游戏测试装置,其特征在于,所述装置包括:
获取单元,用于获取针对目标游戏的对局文件,所述对局文件包括N局游戏对局中每一局游戏对局的每一帧的游戏指令,所述N局游戏对局是基于初始游戏逻辑核心进程进行机器自对弈完成的,N为大于1的整数;
处理单元,用于基于更新后的游戏逻辑核心进程以及所述每一帧的游戏指令对所述对局文件进行回放解析,得到所述每一局游戏对局的每一帧中游戏对象的状态数据;所述更新后的游戏逻辑核心进程是对所述初始游戏逻辑核心进程增加目标游戏事件以及数据解析方法后得到的;
确定单元,用于基于所述每一帧中游戏对象的状态数据和所述目标游戏的参考配置数据确定所述目标游戏的测试结果。
10.一种计算机设备,其特征在于,所述计算机设备包括:
处理器,适于实现一条或多条计算机程序;以及,
计算机存储介质,所述计算机存储介质存储有一条或多条计算机程序,所述一条或多条计算机程序适于由所述处理器加载并执行如权利要求1-8任一项所述的游戏测试方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一条或多条计算机程序,所述一条或多条计算机程序适于由处理器加载并执行如权利要求1-8任一项所述的游戏测试方法。
12.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取所述计算机程序,处理器执行所述计算机程序,使得计算机设备执行如权利要求1-8任一项所述的游戏测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310037459.8A CN116974897A (zh) | 2023-01-10 | 2023-01-10 | 游戏测试方法、装置及计算机设备、存储介质、产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310037459.8A CN116974897A (zh) | 2023-01-10 | 2023-01-10 | 游戏测试方法、装置及计算机设备、存储介质、产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116974897A true CN116974897A (zh) | 2023-10-31 |
Family
ID=88475468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310037459.8A Pending CN116974897A (zh) | 2023-01-10 | 2023-01-10 | 游戏测试方法、装置及计算机设备、存储介质、产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116974897A (zh) |
-
2023
- 2023-01-10 CN CN202310037459.8A patent/CN116974897A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Świechowski et al. | Improving hearthstone ai by combining mcts and supervised learning algorithms | |
Zhao et al. | Winning is not everything: Enhancing game development with intelligent agents | |
US20210093974A1 (en) | Systems and methods for automatically measuring a video game difficulty | |
JP6612306B2 (ja) | 情報処理装置及び情報処理プログラム | |
CN109794065B (zh) | 游戏角色创建方法、装置、电子设备及存储介质 | |
CN111274151B (zh) | 一种游戏测试的方法、相关装置以及存储介质 | |
US20220193554A1 (en) | Device and method for generating npc capable of adjusting skill level | |
CN110772794B (zh) | 智能游戏处理方法、装置、设备及存储介质 | |
Aygun et al. | Query-by-Gaming | |
KR100823700B1 (ko) | 학습 관리 시스템에 연동되는 게임 프로그램의 학습 정보추적 방법 및 시스템 | |
CN116974897A (zh) | 游戏测试方法、装置及计算机设备、存储介质、产品 | |
CN115944921A (zh) | 游戏数据处理方法、装置、设备及介质 | |
Paschali et al. | Implementing game requirements using design patterns | |
Chaslot et al. | Meta monte-carlo tree search for automatic opening book generation | |
Cho et al. | Investigation of the effect of “fog of war” in the prediction of starcraft strategy using machine learning | |
CN106919388B (zh) | 一种桌面卡牌游戏引擎系统 | |
Ventura et al. | Digital Storytelling with DINAH: dynamic, interactive, narrative authoring heuristic | |
CN109992467B (zh) | 交互式应用产生的数据的解析方法和系统 | |
US20210379493A1 (en) | Generation of Context-Aware, Personalized Challenges in Computer Games | |
Franco et al. | An ontology for role playing games | |
CN110598182A (zh) | 一种信息预测的方法及相关设备 | |
Dixon | The language in digital games: register variation in virtual and real-world contexts | |
US20230233944A1 (en) | Method of creating interaction-based cooperative agent, method of providing cooperative agent, and agent management server for performing methods | |
JP7186321B1 (ja) | 形勢評価装置、形勢評価方法、およびプログラム | |
Gong et al. | In-game action list segmentation and labeling in real-time strategy games |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |