CN111389014A - 游戏资源数据监控方法、装置、计算机设备和存储介质 - Google Patents
游戏资源数据监控方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111389014A CN111389014A CN202010182076.6A CN202010182076A CN111389014A CN 111389014 A CN111389014 A CN 111389014A CN 202010182076 A CN202010182076 A CN 202010182076A CN 111389014 A CN111389014 A CN 111389014A
- Authority
- CN
- China
- Prior art keywords
- game
- resource
- data
- resource data
- game resource
- 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
Images
Classifications
-
- 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/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- 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
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/55—Details of game data or player data management
- A63F2300/552—Details of game data or player data management for downloading to client devices, e.g. using OS version, hardware or software profile of the client device
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种游戏资源数据监控方法方法、装置、计算机设备和存储介质。所述方法包括:获取游戏资源数据监控请求;根据游戏资源监控请求加载目标游戏内的游戏资源;当游戏资源组合加载完成时,根据目标游戏的游戏引擎类型,从目标游戏的游戏进程中读取游戏资源对应的待测游戏资源数据;查找待测游戏资源数据对应的历史资源数据,对比历史资源数据以及待测游戏资源数据,获取游戏资源变更数据。本申请根据目标游戏的游戏引擎类型,在游戏进程中对游戏资源对应的待测游戏资源数据进行读取,而后将其与历史版本的历史资源数据进行对比,来实现游戏资源数据监控的目的,在游戏资源组合加载完成时获取待测游戏资源数据,无需梳理资源的组织关系就可以得到完整的游戏资源数据,可以实现更高效的游戏资源数据监控。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种游戏资源数据监控方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,出现了电子游戏,电子游戏是指所有依托于电子设备平台而运行的交互游戏。在电子游戏的项目中,游戏资源是数量最多、占用空间最大的文件之一。游戏版本在开发的过程中,游戏资源文件会随着开发的进程逐渐变化,而在电子游戏的测试中,需要在开发进程中针对游戏的资源进行测试,如果可以得到游戏内部资源的差异情况,比如地图场景、游戏角色、道具等的修改情况,就可以精准定位到每次测试的测试内容,缩小测试点,减少测试工作量,提升项目开发效率。
传统技术中,游戏资源数据监控的方案一般为静态的资源精准监控方案,主要是自己写脚本梳理资源文件的组织关系,找到对应的静态资源文件,并对静态资源文件的提交日志进行分析,得出资源文件的增、删、改情况,从而达到监控的目的。然而,这种静态的资源监控方案完成一次资源监控的耗时过长,资源监控的效率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够有效提高游戏资源数据监控效率的游戏资源数据监控方法、装置、计算机设备和存储介质。
一种游戏资源数据监控方法,所述方法包括:
获取游戏资源数据监控请求;
根据所述游戏资源监控请求加载目标游戏内的游戏资源;
当所述游戏资源组合加载完成时,根据所述目标游戏的游戏引擎类型,从目标游戏的游戏进程中读取所述游戏资源对应的待测游戏资源数据;
查找所述待测游戏资源数据对应的历史资源数据,对比所述历史资源数据以及所述待测游戏资源数据,获取游戏资源变更数据。
一种游戏资源数据监控装置,所述装置包括:
请求获取模块,用于获取游戏资源数据监控请求;
资源加载模块,用于根据所述游戏资源监控请求加载目标游戏内的游戏资源;
数据读取模块,用于当所述游戏资源组合加载完成时,根据所述目标游戏的游戏引擎类型,从目标游戏的游戏进程中读取所述游戏资源对应的待测游戏资源数据;
数据监控模块,用于查找所述待测游戏资源数据对应的历史资源数据,对比所述历史资源数据以及所述待测游戏资源数据,获取游戏资源变更数据。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取游戏资源数据监控请求;
根据所述游戏资源监控请求加载目标游戏内的游戏资源;
当所述游戏资源组合加载完成时,根据所述目标游戏的游戏引擎类型,从目标游戏的游戏进程中读取所述游戏资源对应的待测游戏资源数据;
查找所述待测游戏资源数据对应的历史资源数据,对比所述历史资源数据以及所述待测游戏资源数据,获取游戏资源变更数据。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取游戏资源数据监控请求;
根据所述游戏资源监控请求加载目标游戏内的游戏资源;
当所述游戏资源组合加载完成时,根据所述目标游戏的游戏引擎类型,从目标游戏的游戏进程中读取所述游戏资源对应的待测游戏资源数据;
查找所述待测游戏资源数据对应的历史资源数据,对比所述历史资源数据以及所述待测游戏资源数据,获取游戏资源变更数据。
上述游戏资源数据监控方法、装置、计算机设备和存储介质,通过获取游戏资源数据监控请求;根据游戏资源监控请求加载目标游戏内的游戏资源;当游戏资源组合加载完成时,根据目标游戏的游戏引擎类型,从目标游戏的游戏进程中读取游戏资源对应的待测游戏资源数据;查找待测游戏资源数据对应的历史资源数据,对比历史资源数据以及待测游戏资源数据,获取游戏资源变更数据。本申请根据目标游戏的游戏引擎类型,在游戏进程中对游戏资源对应的待测游戏资源数据进行读取,而后将其与历史版本的历史资源数据进行对比,来实现游戏资源数据监控的目的,在游戏资源组合加载完成时获取待测游戏资源数据,无需梳理资源的组织关系就可以得到完整的游戏资源数据,可以实现更高效的游戏资源数据监控。
附图说明
图1为一个实施例中游戏资源数据监控方法的应用环境图;
图2为一个实施例中游戏资源数据监控方法的流程示意图;
图3为一个实施例中加载目标游戏内的游戏资源步骤的流程示意图;
图4为另一个实施例中加载目标游戏内的游戏资源步骤的流程示意图;
图5为一个实施例中读取待测游戏资源数据步骤的流程示意图;
图6为另一个实施例中读取待测游戏资源数据步骤的流程示意图;
图7为一个实施例中将待测游戏资源数据的数据格式转化为GLTF格式步骤的流程示意图;
图8为一个实施例中GLTF格式文件的结构示意图;
图9为一个实施例中将GLTF文件、BIN文件以及图像文件组合为改进版GLTF格式文件的示意图;
图10为一个实施例中获取游戏资源变更数据步骤的流程示意图;
图11为一个实施例中游戏资源的示意图;
图12为一个实施例中游戏资源变更数据的示意图;
图13为一个实施例中本申请的游戏资源数据监控方法的流程框图;
图14为另一个实施例中游戏资源数据监控方法的流程示意图;
图15为一个实施例中游戏资源数据监控装置的结构框图;
图16为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的游戏资源数据监控方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与数据监控服务器104通过网络进行通信。当终端102对应的用户希望对目标游戏内的游戏资源数据进行一次数据监控时,用户可以通过终端102向数据监控服务器104发送一个游戏资源数据监控请求,以请求数据监控服务器104来完成对目标游戏的游戏资源数据监控,数据监控服务器104获取游戏资源数据监控请求;根据游戏资源监控请求加载目标游戏内的游戏资源;当游戏资源组合加载完成时,根据目标游戏的游戏引擎类型,从目标游戏的游戏进程中读取游戏资源对应的待测游戏资源数据;查找待测游戏资源数据对应的历史资源数据,对比历史资源数据以及待测游戏资源数据,获取游戏资源变更数据。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,数据监控服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种游戏资源数据监控方法,以该方法应用于图1中的数据监控服务器104为例进行说明,包括以下步骤:
步骤201,获取游戏资源数据监控请求。
其中,游戏资源数据监控请求是终端102向数据监控服务器104发送的请求,目的是请求数据监控服务器104对目标游戏内的所有游戏资源数据进行一次完整的监控。而游戏资源数据监控,则是指把目标游戏对应的游戏资源文件按照资源数据本身的组织关系梳理清楚并监控起来,当资源数据被修改时,可以通过一次游戏资源数据监控,定位到对应的哪个资源文件被修改。
具体地,当用户在进行新游戏项目的开发,或者是现有游戏版本的更新时,需要确定现在的游戏相对前一版本的游戏在哪些地方进行了变动,此时用户可以在终端102方生成一个游戏资源数据监控请求,游戏资源数据监控请求携带有目标游戏对应的地址信息,在其中一个实施例中,该信息还包括了当前游戏资源数据监控请求所请求监控的目标游戏的版本信息。数据监控服务器104可以根据该游戏资源数据监控请求可以根据地址信息来查找目标游戏,并基于版本信息对地址出的目标游戏进行检验,当版本校验出错时,可以反馈对应的版本错误信息至终端。当版本校验成功时,则可以开始游戏资源数据监控的进程。
S203,根据游戏资源监控请求加载目标游戏内的游戏资源。
其中,目标游戏是指游戏资源数据监控请求对应的待监控游戏,游戏资源数据监控请求的目的就是实现对目标游戏对应的游戏资源数据的监控。游戏资源则是指游戏内部的地图场景、游戏角色以及道具等,目标游戏可以通过游戏资源对应的游戏资源数据来加载游戏资源。一般,在游戏项目中,游戏资源数据是数量最多、占用空间最大的文件之一,在游戏进行开发过程或者版本更新过程中,如果能找到一种精准而有效的方法监控游戏资源数据的增、删、改,就可以发现游戏版本在开发一段时间之后的资源差异情况,比如说那些地图场景、游戏角色、道具等的修改情况,从而可以精准定位测试内容,缩小测试点,减少测试工作量,提升项目开发效率。本申请的游戏资源数据监控的目的就是提高游戏资源数据监控的效率,从而提高游戏项目开发的效率。
具体地,根据游戏资源监控请求加载目标游戏内的游戏资源具体是指通过操作触发游戏自己加载游戏资源。这个过程一般由游戏自带的游戏引擎来实现。在其中一个实施例中,可以通过代码驱动的方式来实现加载目标游戏内的游戏资源。比如,可以通过编写对应的资源触发脚本,而后在目标游戏对应的游戏编辑器上运行该资源触发脚本,通过资源触发脚本调用对应的资源加载函数来加载游戏资源。在另一个实施例中,则可以通过指令驱动的方式来实现游戏资源的加载,比如可以通过资源触发指令来模拟玩家在游戏显示界面控制显示游戏资源的指令,而后通过在目标游戏进程中加载该资源触发指令,触发游戏资源的触发。加载的目标游戏内的游戏资源可以是某些指定的游戏资源,也可以目标游戏内所有的游戏资源。
S205,当游戏资源组合加载完成时,根据目标游戏的游戏引擎类型,从目标游戏的游戏进程中读取游戏资源对应的待测游戏资源数据。
其中,从目标游戏的游戏进程读取游戏资源对应的待测游戏资源数据,可以通过目标游戏对应的游戏引擎提供的,访问内存中保存的游戏资源数据的方法来实现,对于每一种引擎开发的游戏,引擎本身都提供一种可以访问内存中保存的资源数据的方法,如对于unity引擎,其提供的获取mesh组件的方法为gameobject.GetComponent<MeshFilter>(),通过引擎提供的方法可以把游戏资源对应的所有组件的数据从内存中读取出来。游戏资源数据与游戏资源对应,比如当游戏资源时一个地图时,游戏资源数据则可以是该地图的组成部分,如地图对应的地图三维模型、地图纹理贴图等等数据。当游戏引擎需要加载游戏资源时,可以从硬盘内的游戏数据中调用该游戏资源对应的资源组件,而后通过当前待加载的游戏资源对应的组合方法将资源组件组合为游戏资源。组合后的组件对应的数据文件即为本方案中的待测游戏资源数据。
具体地,数据监控服务器104可以监控目标游戏的游戏进程中游戏资源的加载情况。当资源数据加载完成的之后,数据监控服务器104可以通过目标游戏对应的游戏引擎提供的资源数据访问方法,在目标游戏运行的主机的内存中,读取到加载完成的游戏资源对应的待测游戏资源数据,并将其保存。通过在游戏运行加载资源时,采集游戏资源的所有数据并保持下来。这种动态的游戏资源数据监控的解决方案,相比现有的游戏资源数据监控方法,不用通过预先编写的脚本去遍历资源,而是巧妙地利用游戏自带的游戏引擎去加载游戏资源,当游戏引擎加载好后,直接从运行内存中“窃取”到需要的游戏资源数据,从而达到获取游戏资源数据的目的。因为不需要自己写脚本去遍历资源,而是游戏引擎自己去遍历资源,可以做到资源保证无遗漏。另外,游戏引擎加载资源使用的是引擎原生的函数,加载资源极其高效(因为如果引擎做不到高效的话,玩家玩游戏时会很卡)。本申请针对不同的游戏引擎可以设置不同的方式来获取待测游戏资源数据,相当于对每个引擎都要开发一个软件来专门监控游戏资源数据,从而极大地提高游戏资源监控的效率。
S207,查找待测游戏资源数据对应的历史资源数据,对比历史资源数据以及待测游戏资源数据,获取游戏资源变更数据。
其中历史资源数据可以是当前目标游戏对应的上一个版本中的资源数据,可以通过对比当前版本内的游戏资源数据以及目标游戏上一个版本中的游戏资源数据,来确定哪些游戏资源数据是在版本更新中发生了变化的数据。游戏资源变更数据即是指游戏资源数据中发生了变更的那些数据。
具体的,数据监控服务器104在得到当前的游戏资源对应的待测游戏资源数据之后,可以从预设的历史资源数据库中读取到当前目标游戏对应的上一版本的游戏资源数据,而后通过对比两个版本的游戏资源数据确定哪些是在版本更迭中发生了变化的数据,从而精准定位当前版本游戏对应的测试内容,缩小游戏的测试点,减少测试工作量,提升游戏项目开发效率。在其中一个实施例中,在读取得到待测游戏资源数据之后,可以将其保存在预设的历史资源数据库,以便进行下一次的游戏资源数据监控。在其中一个实施例中,可以通过将待测游戏资源数据转化为GLTF(The GL Transmission Format,图形语言交换格式)格式的文件后,将其与GLTF格式的历史资源数据进行对比,来更高效地完成游戏资源对比的过程。
上述游戏资源数据监控方法,通过获取游戏资源数据监控请求;根据游戏资源监控请求加载目标游戏内的游戏资源;当游戏资源组合加载完成时,根据目标游戏的游戏引擎类型,从目标游戏的游戏进程中读取游戏资源对应的待测游戏资源数据;查找待测游戏资源数据对应的历史资源数据,对比历史资源数据以及待测游戏资源数据,获取游戏资源变更数据。本申请根据目标游戏的游戏引擎类型,在游戏进程中对游戏资源对应的待测游戏资源数据进行读取,而后将其与历史版本的历史资源数据进行对比,来实现游戏资源数据监控的目的,在游戏资源组合加载完成时获取待测游戏资源数据,无需梳理资源的组织关系就可以得到完整的游戏资源数据,可以实现更高效的游戏资源数据监控。
在一个实施例中,如图3所示,步骤203包括:
步骤302,根据游戏资源监控请求调用目标游戏对应的游戏编辑器。
步骤304,通过游戏编辑器调用预设资源加载脚本,执行预设资源加载脚本,加载目标游戏内的游戏资源。
其中游戏编辑器是指由游戏引擎提供的,可以运行编辑好的脚本的引擎工具。每种游戏引擎都有其对应的游戏编辑器。预设资源加载脚本是指预先编译好的,可以在游戏编辑器上运行的脚本,在本申请的方案中,预设资源加载脚本用于在游戏编辑器中启动的目标游戏的游戏进程中,调用游戏资源,如调用游戏中的地图场景,游戏道具以及游戏角色等,从而游戏引擎可以在游戏运行的终端设备上,加载这些游戏资源对应的游戏资源数据到终端设备的运行内存中。
具体地,数据监控服务器104可以在游戏编辑器内运行预设资源加载脚本,通过资源加载脚本调用游戏资源对应的加载函数,来启动游戏进程并在游戏进程中加载游戏资源数据监控请求对应的目标游戏资源。因为,当游戏运行时,当需要加载游戏资源时,需要同时在游戏进程中渲染画面,此时游戏进程会调用游戏引擎本身的原生方法整理游戏资源数据,当游戏引擎整理好保存到内存时,本申请通过采用从内存中直接获取整理好的资源以及他们的组织关系,来获得游戏资源数据监控需要的待测游戏资源数据,通过“坐享其成”的方式来获取待测游戏资源数据,而无需整理游戏资源数据的组织关系,从而提高游戏资源监控过程的处理效率。
在一个实施例中,如图4所示,步骤203包括:
步骤401,根据游戏资源监控请求生成游戏资源触发指令。
步骤403,发送游戏资源触发指令至目标游戏的游戏进程,通过目标游戏的游戏进程加载目标游戏内的游戏资源。
其中,游戏资源触发指令具体是指通过模拟人的操作,来触发游戏的资源,比如对于一个目标游戏,其包含有游戏地图,当需要玩家需要查看某个地图时,可以通过点击相应的界面按钮来触发游戏地图,游戏进程可以通过玩家对游戏地图的触发指令,加载并在游戏界面上显示出游戏地图。游戏地图即是本申请中所指的游戏资源,而游戏资源触发指令则可以看成是模拟玩家点击游戏地图对应的界面按钮的这个过程。由于游戏资源都是可以通过响应玩家的操作,而后在游戏界面上进行显示的数据,所以可以通过游戏资源触发指令来模拟玩家命令,来完成游戏资源的触发过程。使得游戏进程将对应的游戏资源加载到游戏界面上,该游戏资源对应的游戏资源数据也会被游戏引擎组织后加载到游戏所在终端设备的内存中。
具体地,数据监控服务器104可以模拟玩家在游戏过程中对游戏资源的触发过程,并将其抽象为游戏资源触发指令,而后通过游戏资源触发指令在目标游戏的游戏进程中触发游戏资源,以便进行后续的游戏资源读取的操作。本实施例中,通过游戏资源触发指令来完成游戏资源的触发,能够达到在目标游戏的游戏进程中有效触发游戏资源的目的。
在一个实施例中,如图5所示,步骤205包括:
步骤502,当游戏资源加载完成时,识别待测游戏资源数据对应的游戏资源组件的组件类别。
步骤504,根据目标游戏的游戏引擎类型,获取组件类别对应的内存数据调用方法。
步骤506,通过内存数据调用方法读取游戏资源组件;
步骤508,根据游戏资源组件获取待测游戏资源数据。
其中,游戏资源数据对应的游戏资源组件的组件类别具体是指游戏资源数据所对应的组件类型数据。一个游戏资源对应的游戏资源数据包含有多个游戏资源组件,这些资源组件组合为了一个游戏资源数据。在其中一个实施例中,目标游戏具体为unity引擎开发的游戏,则游戏资源数据对应的数据类型具体包括了mesh(网格)组件、effect(特效)组件、physics(物理)组件、navigation(导航)组件、audio(媒体)组件、miscellaneous(其他)组件等。所有游戏引擎都提供访问游戏资源的方法,在开发游戏的时候,必须要通过写对应的游戏代码去获得游戏资源对象才能在游戏中使用游戏资源,因此游戏引擎必然提供访问游戏资源的方法。通过这些方法,便可以轻易的从内存中获得游戏资源的数据。如在一个具体的实施例中,目标游戏为unity引擎开发的游戏,则其获取mesh组件对应的游戏资源数据的调用方法为gameobject.GetComponent<MeshFilter>()。而从内存中获取effect组件对应的游戏资源数据的调用方法为gameobject.GetComponent<ParticleSystem>()。
具体地,当游戏资源加载完成后,游戏资源数据是以一个个组件的形式保存在运行内存中,当需要获取目标游戏中的待测游戏资源数据时,可以先识别内存中游戏资源数据包含有哪些游戏资源组件,而后通过读取这些游戏资源组件对应的内存数据调用方法来实现对运行内存内保存的待测游戏资源数据的访问,而后通过对游戏资源组件的拼接,来实现游戏资源数据读取和保存的过程。同时,由于在游戏资源的加载过程中,游戏进程会调用游戏引擎本身的原生方法整理游戏资源数据,当游戏引擎整理好保存到内存时,内存内的游戏资源数据已经是整理好各个游戏资源组件组织关系的数据。本申请通过采用从内存中直接获取整理好的资源以及他们的组织关系,来获得游戏资源数据监控需要的待测游戏资源数据,通过“坐享其成”的方式来获取待测游戏资源数据,而无需整理游戏资源数据的组织关系,从而提高游戏资源监控过程的处理效率。
在一个实施例中,如图6所示,步骤508包括:
步骤601,获取游戏资源对应的组件拼接目录,根据组件拼接目录将游戏资源组件拼接为待测游戏资源数据。
步骤603,将待测游戏资源数据的数据格式转化为GLTF格式。
其中,组件拼接目录指的是内存内保存的各个游戏组件的组织方式,游戏资源数据可以由游戏资源组件以组件拼接目录的形式拼接获得。GLTF格式即图形语言交换格式,是一种专门为传输设计的3D模型格式,目前,绝大多数的3D模型格式都可以和GLTF格式进行相互转化。当本申请的方案主要用于实现对3D游戏内的游戏资源数据的数据监控时,可以通过将资源数据转化为GLTF格式来实现数据的监控。不管对于什么类型的游戏资源,都可以统一转化成两个文件和一堆图片文件,其中两个文件为.gltf文件和.bin文件。其中,.gltf文件保存了游戏资源的数值和游戏资源的组织关系,而一些二进制的数据(如mesh模型等)保存成.bin文件。
具体地,当游戏资源加载完成后,数据监控服务器104在得到游戏资源组件后,还可以在内存中读取得到各个游戏资源组件的组织关系,即组件拼接目录。而后服务器可以依据组件拼接目录,将各个游戏资源组件拼接得到最终的待测游戏资源数据。同时为了方便地将游戏资源数据保存以及实现不同版本下游戏资源数据的对比,可以将获得的游戏资源数据转化为GLTF格式的数据文件。本实施例中,通过组件拼接目录,能够达到更有效地获取待测游戏资源数据的目的。同时通过将待测游戏资源数据的数据格式转化为GLTF格式。可以更高效地实现对待测游戏资源数据的保存以及不同待测游戏资源数据的对比。
在一个实施例中,如图7所示,步骤603包括:
步骤702,将待测游戏资源数据转化成初始GLTF格式文件、BIN格式文件以及资源图片文件。
步骤704,将BIN格式文件以及资源图片文件转化为MD5码文件。
步骤706,根据初始GLTF格式文件以及MD5码文件,获取GLTF格式的游戏资源数据。
其中,BIN格式文件是指二进制文件,其用途依系统或应用而定。具体是指后缀名为".bin"的文件,只是表明它是binary(二进制)格式。比如虚拟光驱文件常用".bin"作为后缀。BIN格式文件一般来讲是机器代码,汇编语言编译后的结果。MD5码是指通过MD5信息摘要算法得到的数码,MD5信息摘要算法是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。本申请通过对BIN格式文件以及资源图片文件使用MD5信息摘要算法,来得到需要的MD5码。
具体地,为了进一步地方便对不同版本间待测游戏资源数据的对比,本申请还可以将BIN格式文件以及资源图片文件转化为MD5码,而后将MD5码保存到GLTF格式文件中,这样,对于一个待测游戏资源数据,其与一个GLTF格式文件相对应,而不同版本间待测游戏资源数据的对比也只需要对这个GLTF格式文件来进行对比,可以有效缩短游戏资源数据对比的流程,在其中一个实施例中,本申请中的GLTF格式文件的数据结构如图8所示,其包括有node节点,camera节点、mesh节点、animation节点、material节点、accessor节点、texture节点、bufferview节点、sampler节点、image节点、buffer节点等众多节点。此外,还包含了图片对应的MD5节点,以及BIN文件对应的MD5节点。此外,还可以参照图9,本申请通过将初始的GLTF格式文件、BIN文件、图像文件三合一而生成改进版的GLTF格式文件。其中,BIN文件和图像文件被转化为数据块MD5写入到原来的初始GLTF格式文件中,原本三个文件的对比变为只需要将GLTF格式文件进行对比,显然可以有效缩短对比的流程,提高对比的效率。本实施例中,通过将GLTF格式文件进行改进,将BIN文件以及图像文件转为MD5码存储到GLTF格式文件,能够达到在进行不同版本的游戏资源数据对比时,提高游戏资源数据的对比效率,缩短对比时间。
在一个实施例中,如图10所示,步骤207包括:
步骤801,查找待测游戏资源数据对应的历史资源数据。
步骤803,对比待测游戏资源数据对应的GLTF格式文件以及历史资源数据对应的GLTF格式文件中各个文件节点处的数据文件。
步骤805,当数据文件不相同时,判定待测游戏资源数据为游戏资源变更数据。
其中,各个文件节点指的是GLTF格式文件中的node节点,camera节点、mesh节点、animation节点、material节点、accessor节点、texture节点、bufferview节点、sampler节点、image节点、buffer节点、图片对应的MD5节点、BIN文件对应的MD5节点等众多节点。可以通过对两个节点内数据的比较来判断两个GLTF格式文件是否相同,进而判断该GLTF格式文件对应的待测游戏资源数据是否在当前的游戏版本有改动,进而确定是否将其纳入游戏版本测试的范围。
具体地,历史资源数据存储在预设的历史资源数据库中,可以根据当前目标游戏的版本号来查询历史资源数据库当前目标游戏上一版本中的游戏资源数据,并将其作为历史资源数据。而查找到的历史资源数据对应的也是GLTF格式的文件,而两个GLTF格式文件的对比实质是两个GLTF格式文件中各个文件节点对应数据的对比,通过文件节点出对应的数据,当存在有那个文件节点处的数据不相同的时候,则可以判断这个GLTF格式文件对应的游戏资源数据发生变化,应对其进行相应的测试。本实施例中,通过将GLTF格式文件的各个文件节点进行对比,可以更加高效的得到游戏资源数据监控所需要的游戏资源变更数据。
本申请还提供一种应用场景,该应用场景应用上述的游戏资源数据监控方法。具体地,该游戏资源数据监控方法在该应用场景的应用如下:
在该应用场景下,本申请的游戏资源数据监控具体用于对一款FPS(First-personshooting game,第一人称射击类)手机游戏进行游戏资源数据监控,该FPS手机游戏的开发引擎为unity引擎,当该FPS手机游戏在进行游戏版本更新时,需要进行游戏版本的测试,此时需要对更新后的版本和当前的游戏版本中的游戏资源数据进行对比,来确定哪些游戏资源是发生变化的,而后对发生变化的游戏资源进行相应测试,其中FPS手机游戏的一个游戏资源具体可以参照图11中的道具模型,此外游戏资源还可以是人物模型以及三维地图模型等数据。此时可以通过本申请的游戏资源数据监控来确定发生变化的游戏资源数据,进而确定有哪些游戏资源是在版本更新中是发生了变化的。具体地,测试人员首先可以向用于实现本申请游戏资源数据监控方法的数据监控服务器104发送游戏资源数据监控请求。数据监控服务器104接收该游戏资源数据监控请求,而后根据游戏资源监控请求调用目标游戏对应的游戏编辑器;通过游戏编辑器调用预设资源加载脚本,执行预设资源加载脚本加载目标游戏内的游戏资源。当游戏资源加载完成时,识别待测游戏资源数据对应的游戏资源组件的组件类别;获取组件类别对应的内存数据调用方法;通过内存数据调用方法读取游戏资源组件;获取游戏资源对应的组件拼接目录,根据组件拼接目录将游戏资源组件拼接为待测游戏资源数据;将待测游戏资源数据转化成初始GLTF格式文件、BIN格式文件以及资源图片文件;将BIN格式文件以及资源图片文件转化为MD5码文件;根据初始GLTF格式文件以及MD5码文件,获取GLTF格式的游戏资源组件。最后,查找待测游戏资源数据对应的历史资源数据;对比待测游戏资源数据对应的GLTF格式文件以及历史资源数据对应的GLTF格式文件中各个文件节点处的数据文件;当数据文件不相同时,判定待测游戏资源数据为游戏资源变更数据。具体的,当本申请的游戏资源数据监控方法用于对该FPS游戏的道具进行监控时,得到的一个完整游戏资源变更数据可以参照图12。
本申请还另外提供一种应用场景,该应用场景应用上述的游戏资源数据监控方法。具体地,该游戏资源数据监控方法在该应用场景的应用可以参照图13如下:
如图14所示,本申请的游戏资源数据监控用于对一个unity引擎编写的客户端游戏进行资源监控,该客户端游戏可以保存在电脑硬盘中,游戏由客户端代码组成,包含的游戏资源有:贴图、材质、网格等,当需要对游戏中的一个地图资源数据进行监控时,首先可以通过unity编辑器来加载该地图资源,然后使用游戏引擎的原生函数梳理地图资源的关系,并组合成地图保存到内存中,再把整个地图资源传给GPU(Graphics Processing Unit,图形处理器),再在电脑显示器中绘制出来。在这个过程中,游戏客户端已经把地图资源的索引关系梳理清楚并保存在内存中。而本申请的游戏资源数据监控方法,巧妙的利用现成的游戏资源数据,也即是直接从内存中“窃取”游戏资源数据,以一种便于保存和对比的资源存储格式保存起来,保存好资源数据后,把当前版本的资源数据和上个版本的资源数据进行对比,便可以得到资源差异,最后输出差异结果,从而实现资源精准监控。
应该理解的是,虽然图14的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图14中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图15所示,提供了一种游戏资源数据监控装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:请求获取模块模块、资源加载模块、数据读取模块和数据监控模块,其中:
请求获取模块902,用于获取游戏资源数据监控请求。
资源加载模块904,用于根据游戏资源监控请求加载目标游戏内的游戏资源。
数据读取模块906,用于当游戏资源组合加载完成时,根据目标游戏的游戏引擎类型,从目标游戏的游戏进程中读取游戏资源对应的待测游戏资源数据。
数据监控模块908,用于查找待测游戏资源数据对应的历史资源数据,对比历史资源数据以及待测游戏资源数据,获取游戏资源变更数据。
在一个实施例中,资源加载模块904具体用于:根据游戏资源监控请求调用目标游戏对应的游戏编辑器;通过游戏编辑器调用预设资源加载脚本,执行预设资源加载脚本加载目标游戏内的游戏资源。
在一个实施例中,资源加载模块904具体用于:根据游戏资源监控请求生成游戏资源触发指令;发送游戏资源触发指令至目标游戏的游戏进程,通过目标游戏的游戏进程加载目标游戏内的游戏资源。
在一个实施例中,数据读取模块906用于:当游戏资源加载完成时,识别待测游戏资源数据对应的游戏资源组件的组件类别;根据目标游戏的游戏引擎类型,获取游戏资源组件的组件类别对应的内存数据调用方法;通过内存数据调用方法读取游戏资源组件;根据游戏资源组件获取待测游戏资源数据。
在一个实施例中,数据读取模块906还用于:获取游戏资源对应的组件拼接目录,根据组件拼接目录将游戏资源组件拼接为待测游戏资源数据;将待测游戏资源数据的数据格式转化为GLTF格式。
在一个实施例中,数据读取模块906还用于:将待测游戏资源数据转化成初始GLTF格式文件、BIN格式文件以及资源图片文件;将BIN格式文件以及资源图片文件转化为MD5码文件;根据初始GLTF格式文件以及MD5码文件,获取GLTF格式的游戏资源组件。
在一个实施例中,数据监控模块908具体用于:查找待测游戏资源数据对应的历史资源数据;对比待测游戏资源数据对应的GLTF格式文件以及历史资源数据对应的GLTF格式文件中各个文件节点处的数据文件;当数据文件不相同时,判定待测游戏资源数据为游戏资源变更数据。
关于游戏资源数据监控装置的具体限定可以参见上文中对于游戏资源数据监控方法的限定,在此不再赘述。上述游戏资源数据监控装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图16所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储游戏资源数据监控数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种游戏资源数据监控方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图16所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种游戏资源数据监控方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图16中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种游戏资源数据监控方法,所述方法包括:
获取游戏资源数据监控请求;
根据所述游戏资源监控请求加载目标游戏内的游戏资源;
当所述游戏资源组合加载完成时,根据所述目标游戏的游戏引擎类型,从目标游戏的游戏进程中读取所述游戏资源对应的待测游戏资源数据;
查找所述待测游戏资源数据对应的历史资源数据,对比所述历史资源数据以及所述待测游戏资源数据,获取游戏资源变更数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述游戏资源监控请求加载目标游戏内的游戏资源包括:
根据所述游戏资源监控请求调用目标游戏对应的游戏编辑器;
通过所述游戏编辑器调用预设资源加载脚本,执行所述预设资源加载脚本,加载所述目标游戏内的游戏资源。
3.根据权利要求1所述的方法,其特征在于,根据所述游戏资源监控请求加载目标游戏内的游戏资源包括:
根据所述游戏资源监控请求生成游戏资源触发指令;
发送所述游戏资源触发指令至目标游戏的游戏进程,通过目标游戏的游戏进程加载所述目标游戏内的游戏资源。
4.根据权利要求1所述的方法,其特征在于,所述当所述游戏资源组合加载完成时,根据所述目标游戏的游戏引擎类型,从目标游戏的游戏进程中读取所述游戏资源对应的待测游戏资源数据包括:
当游戏资源加载完成时,识别待测游戏资源数据对应的游戏资源组件的组件类别;
根据所述目标游戏的游戏引擎类型,获取所述组件类别对应的内存数据调用方法;
通过所述内存数据调用方法读取所述游戏资源组件;
根据所述游戏资源组件获取待测游戏资源数据。
5.根据权利要求4所述的方法,其特征在于,所述根据所述游戏资源组件获取待测游戏资源数据包括:
获取所述游戏资源对应的组件拼接目录,根据所述组件拼接目录将所述游戏资源组件拼接为待测游戏资源数据;
将所述待测游戏资源数据的数据格式转化为GLTF格式。
6.根据权利要求5所述的方法,其特征在于,所述将所述待测游戏资源数据的数据格式转化为GLTF格式包括:
将所述待测游戏资源数据转化成初始GLTF格式文件、BIN格式文件以及资源图片文件;
将所述BIN格式文件以及所述资源图片文件转化为MD5码文件;
根据所述初始GLTF格式文件以及所述MD5码文件,获取GLTF格式的游戏资源数据。
7.根据权利要求5所述的方法,其特征在于,所述查找所述待测游戏资源数据对应的历史资源数据,对比所述历史资源数据以及所述待测游戏资源数据,获取游戏资源变更数据包括:
查找所述待测游戏资源数据对应的历史资源数据;
对比所述待测游戏资源数据对应的GLTF格式文件以及所述历史资源数据对应的GLTF格式文件中各个文件节点处的数据文件;
当所述数据文件不相同时,判定所述待测游戏资源数据为游戏资源变更数据。
8.一种游戏资源数据监控装置,其特征在于,所述装置包括:
请求获取模块,用于获取游戏资源数据监控请求;
资源加载模块,用于根据所述游戏资源监控请求加载目标游戏内的游戏资源;
数据读取模块,用于当所述游戏资源组合加载完成时,根据所述目标游戏的游戏引擎类型,从目标游戏的游戏进程中读取所述游戏资源对应的待测游戏资源数据;
数据监控模块,用于查找所述待测游戏资源数据对应的历史资源数据,对比所述历史资源数据以及所述待测游戏资源数据,获取游戏资源变更数据。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010182076.6A CN111389014A (zh) | 2020-03-16 | 2020-03-16 | 游戏资源数据监控方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010182076.6A CN111389014A (zh) | 2020-03-16 | 2020-03-16 | 游戏资源数据监控方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111389014A true CN111389014A (zh) | 2020-07-10 |
Family
ID=71416299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010182076.6A Pending CN111389014A (zh) | 2020-03-16 | 2020-03-16 | 游戏资源数据监控方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111389014A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112426722A (zh) * | 2020-12-09 | 2021-03-02 | 网易(杭州)网络有限公司 | 节点图的热更新方法、装置、存储介质及计算机设备 |
CN112691379A (zh) * | 2020-12-31 | 2021-04-23 | 完美世界(北京)软件科技发展有限公司 | 游戏资源文本审核方法及装置、存储介质、计算机设备 |
CN112870724A (zh) * | 2021-03-11 | 2021-06-01 | 网易(杭州)网络有限公司 | 资源管理方法、装置、存储介质及电子设备 |
WO2022205824A1 (zh) * | 2021-03-31 | 2022-10-06 | 完美世界(北京)软件科技发展有限公司 | 地图资源的加载方法和装置、存储介质、电子装置 |
CN115599491A (zh) * | 2022-12-14 | 2023-01-13 | 西安纽扣软件科技有限公司(Cn) | Svg矢量图展现方法、装置、设备及存储介质 |
CN116863040A (zh) * | 2023-05-29 | 2023-10-10 | 上海幻维数码科技有限公司 | 基于引擎搭建的多人协作系统 |
-
2020
- 2020-03-16 CN CN202010182076.6A patent/CN111389014A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112426722A (zh) * | 2020-12-09 | 2021-03-02 | 网易(杭州)网络有限公司 | 节点图的热更新方法、装置、存储介质及计算机设备 |
CN112691379A (zh) * | 2020-12-31 | 2021-04-23 | 完美世界(北京)软件科技发展有限公司 | 游戏资源文本审核方法及装置、存储介质、计算机设备 |
CN112691379B (zh) * | 2020-12-31 | 2023-04-07 | 完美世界(北京)软件科技发展有限公司 | 游戏资源文本审核方法及装置、存储介质、计算机设备 |
CN112870724A (zh) * | 2021-03-11 | 2021-06-01 | 网易(杭州)网络有限公司 | 资源管理方法、装置、存储介质及电子设备 |
CN112870724B (zh) * | 2021-03-11 | 2024-05-17 | 网易(杭州)网络有限公司 | 资源管理方法、装置、存储介质及电子设备 |
WO2022205824A1 (zh) * | 2021-03-31 | 2022-10-06 | 完美世界(北京)软件科技发展有限公司 | 地图资源的加载方法和装置、存储介质、电子装置 |
CN115599491A (zh) * | 2022-12-14 | 2023-01-13 | 西安纽扣软件科技有限公司(Cn) | Svg矢量图展现方法、装置、设备及存储介质 |
CN116863040A (zh) * | 2023-05-29 | 2023-10-10 | 上海幻维数码科技有限公司 | 基于引擎搭建的多人协作系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111389014A (zh) | 游戏资源数据监控方法、装置、计算机设备和存储介质 | |
US20240048631A1 (en) | Demand resources | |
US20160357538A1 (en) | On demand resources | |
CN112988284B (zh) | 应用程序启动方法、装置、计算机设备和存储介质 | |
KR20150064063A (ko) | 컴퓨팅 장치의 보안 식별 및 보안 식별 방법 | |
CN110321178A (zh) | 附属应用端的启动处理方法、装置、设备及存储介质 | |
CN111258680B (zh) | 资源加载方法和装置、存储介质及电子装置 | |
CN112783761A (zh) | 一种应用程序的冷启动时长测试方法、装置及系统 | |
CN110597552B (zh) | 项目持续集成流水线的配置方法、装置、设备及存储介质 | |
CN114443189B (zh) | 一种图像处理方法和电子设备 | |
EP4085336B1 (en) | Computer resource leak detection | |
CN110321321A (zh) | 网络块设备快照读写方法、装置、设备及存储介质 | |
CN111459547B (zh) | 一种函数调用链路的展示方法和装置 | |
CN113010179B (zh) | 基于实时操作系统的独立应用的运行方法 | |
CN115982018B (zh) | 一种基于ocr的ui测试方法、系统、计算机设备和存储介质 | |
CN115756998B (zh) | 缓存数据重取标记验证方法、装置及系统 | |
CN113012022B (zh) | 一种小程序的图形处理方法、装置、电子设备及介质 | |
CN113926202A (zh) | 资源清理方法及资源加载方法 | |
CN116088723A (zh) | 界面跳转方法、装置、电子设备及计算机可读存储介质 | |
CN114896590A (zh) | 应用程序的检测方法、系统、装置和计算机设备 | |
CN114943045A (zh) | 基于离线缓存的终端网页加载方法、装置和计算机设备 | |
CN116991817A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN116974905A (zh) | 编码方法、返回信息配置方法、装置和计算机设备 | |
CN116662143A (zh) | 测试方法、装置、设备、存储介质和计算机程序产品 | |
CN115718701A (zh) | 程序测试方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |