CN109966742A - 游戏运行中获取渲染性能数据的方法及装置 - Google Patents

游戏运行中获取渲染性能数据的方法及装置 Download PDF

Info

Publication number
CN109966742A
CN109966742A CN201910217892.3A CN201910217892A CN109966742A CN 109966742 A CN109966742 A CN 109966742A CN 201910217892 A CN201910217892 A CN 201910217892A CN 109966742 A CN109966742 A CN 109966742A
Authority
CN
China
Prior art keywords
rendering performance
game
performance data
rendering
plug
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
CN201910217892.3A
Other languages
English (en)
Other versions
CN109966742B (zh
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.)
Shenzhen Tencent Information Technology Co Ltd
Original Assignee
Shenzhen Tencent Information Technology Co Ltd
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 Shenzhen Tencent Information Technology Co Ltd filed Critical Shenzhen Tencent Information Technology Co Ltd
Priority to CN201910217892.3A priority Critical patent/CN109966742B/zh
Publication of CN109966742A publication Critical patent/CN109966742A/zh
Application granted granted Critical
Publication of CN109966742B publication Critical patent/CN109966742B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/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
    • A63F13/69Generating 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 by enabling or updating specific game elements, e.g. unlocking hidden features, items, levels or versions
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features 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/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/209Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform characterized by low level software layer, relating to hardware management, e.g. Operating System, Application Programming Interface
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features 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/50Features 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/53Features 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 details of basic data processing
    • A63F2300/538Features 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 details of basic data processing for performing operations on behalf of the game client, e.g. rendering
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features 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/60Methods for processing data by generating or executing the game program

Abstract

本发明的实施例提供了一种游戏运行中获取渲染性能数据的方法及装置。该方法包括:在指定游戏版本的游戏客户端运行中加载渲染性能获取插件,渲染性能获取插件是为指定游戏版本插入的游戏插件;通过加载于游戏客户端中的渲染性能获取插件,在游戏客户端的运行中进行控制台命令的监听,控制台命令包括预设的新增控制台命令;根据监听到的新增控制台命令,渲染性能获取插件对游戏客户端的游戏画面渲染执行指定渲染性能数据的获取,渲染性能数据用于表征指定游戏版本下的游戏客户端渲染性能;将获取的指定渲染性能数据在游戏客户端本地进行存储。本发明实施例的技术方案能够实现游戏客户端运行中的各项渲染性能数据的实时获取和保存。

Description

游戏运行中获取渲染性能数据的方法及装置
技术领域
本发明涉及游戏开发技术领域,具体而言,涉及游戏运行中获取渲染性能数据的方法及装置、终端、计算机可读存储介质。
背景技术
在游戏开发中,游戏运行时的性能是游戏开发者十分关注的问题。
游戏运行时的性能高低一般与游戏引擎渲染游戏画面的能力有关,但在现有实现中,由于游戏开发者无法直接获取游戏引擎渲染游戏画面中的各项渲染性能数据,在构建得到游戏版本后,游戏开发者只能通过游戏版本的实际运行效果来判断游戏版本的性能,但无法准确定位游戏版本的性能问题,难以实现游戏版本的优化。
因此,如何获取游戏运行中渲染游戏画面的各项渲染性能数据,是现有实现中亟待解决的技术问题。
发明内容
为了解决上述技术问题,本发明的实施例提供了游戏运行中获取渲染性能数据的方法及装置、终端、计算机可读存储介质。
根据本发明实施例的一个方面,提供了一种游戏运行中获取渲染性能数据的方法,该方法包括:在指定游戏版本的游戏客户端运行中加载渲染性能获取插件,所述渲染性能获取插件是为所述指定游戏版本插入的游戏插件;通过加载于所述游戏客户端中的渲染性能获取插件,在所述游戏客户端的运行中进行控制台命令的监听,所述控制台命令包括预设的新增控制台命令;根据监听到的所述新增控制台命令,所述渲染性能获取插件对所述游戏客户端的游戏画面渲染执行指定渲染性能数据的获取,所述渲染性能数据用于表征所述指定游戏版本下的游戏客户端渲染性能;将获取的所述指定渲染性能数据在所述游戏客户端本地进行存储。
根据本发明实施例的一个方面,提供了另一种游戏运行中获取渲染性能数据的方法,该方法用于游戏客户端所插入渲染性能获取插件的渲染性能数据获取实现,该方法包括:通过所在游戏客户端中的插件插入,所述渲染性能获取插件在指定游戏版本的游戏客户端运行中加载;对所述游戏客户端所传入的控制台命令进行监听,所述控制台命令包括预设的新增控制台命令;根据监听到的所述新增控制台命令,所述渲染性能获取插件对所述游戏客户端的游戏画面渲染执行指定渲染性能数据的获取,所述渲染性能数据用于表征所述指定游戏版本下的游戏客户端渲染性能;将获取的所述指定渲染性能数据在所述游戏客户端本地进行存储。
根据本发明实施例的一个方面,提供了一种游戏运行中获取渲染性能数据的装置,该装置包括:渲染性能获取插件加载模块,用于在指定游戏版本的游戏客户端运行中加载渲染性能获取插件,所述渲染性能获取插件是为所述指定游戏版本插入的游戏插件;控制台命令监听模块,用于通过加载于所述游戏客户端中的渲染性能获取插件,在所述游戏客户端的运行中进行控制台命令的监听,所述控制台命令包括预设的新增控制台命令;渲染性能数据获取模块,用于根据监听到的所述新增控制台命令,使所述渲染性能获取插件对所述游戏客户端的游戏画面渲染执行指定渲染性能数据的获取,所述渲染性能数据用于表征所述指定游戏版本下的游戏客户端渲染性能;渲染性能数据存储模块,用于将获取的所述指定渲染性能数据在所述游戏客户端本地进行存储。
根据本发明实施例的一个方面,提供了一种游戏运行中获取渲染性能数据的装置,该装置用于游戏客户端所插入渲染性能获取插件的渲染性能数据获取实现,该装置包括:渲染性能获取插件加载模块,用于在指定游戏版本的游戏客户端运行中加载渲染性能获取插件,所述渲染性能获取插件是为所述指定游戏版本插入的游戏插件;控制台命令监听模块,用于通过加载于所述游戏客户端中的渲染性能获取插件,在所述游戏客户端的运行中进行控制台命令的监听,所述控制台命令包括预设的新增控制台命令;渲染性能数据获取模块,用于根据监听到的所述新增控制台命令,使所述渲染性能获取插件对所述游戏客户端的游戏画面渲染执行指定渲染性能数据的获取,所述渲染性能数据用于表征所述指定游戏版本下的游戏客户端渲染性能;渲染性能数据存储模块,用于将获取的所述指定渲染性能数据在所述游戏客户端本地进行存储。
根据本发明实施例的一个方面,提供了一种终端,包括:存储器,存储有计算机可读指令;处理器,读取存储器存储的计算机可读指令,以执行如上所述游戏运行中获取渲染性能数据的方法。
根据本发明实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述游戏运行中获取渲染性能数据的方法。
在上述技术方案中,通过在指定游戏版本的游戏客户端中加载渲染性能获取插件,使得渲染性能获取插件在游戏客户端的运行中进行控制台命令的监听,并根据监听到的新增控制台命令执行游戏客户端进行游戏画面渲染中的指定渲染性能数据获取,还将获取到的指定渲染性能数据保存至游戏客户端本地,从而实现游戏客户端运行中的各项渲染性能数据的实时获取和保存。游戏开发者则通过查看游戏客户端本地所保存的指定渲染性能数据,来准却定位指定游戏版本的性能问题,以对指定游戏版本进行针对性优化,能够高效率地提升游戏版本的质量。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是根据一示例性实施例示出的一种游戏运行中获取渲染性能数据的方法的流程图;
图2是一种游戏客户端对应的部分项目工程目录的示意图;
图3是根据图1所对应实施例示出的对步骤150进行描述的流程图;
图4是一种游戏客户端运行中的游戏画面的示意图;
图5是根据图1所对应实施例示出的对步骤170进行描述的流程图;
图6是根据图5所对应实施例示出的对步骤171进行描述的流程图;
图7是根据图5所对应实施例示出的对步骤173进行描述的流程图;
图8是根据另一示例性实施例示出的一种游戏运行中获取渲染性能数据的方法的流程图;
图9是根据一示例性实施例示出的一种游戏运行中获取渲染性能数据的装置的框图;
图10是根据另一示例性实施例示出的一种游戏运行中获取渲染性能数据的装置的框图;
图11是根据一示例性实施例示出的一种终端的硬件框图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
首先对本发明实施例涉及的几个名词进行解释:
游戏引擎:是指一些已经编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。游戏引擎为游戏开发者提供各种编写游戏程序所需的各种工具,其目的在于让游戏开发者容易和快速地做出游戏程序而不用从零开始。游戏引擎可以包含以下系统:渲染引擎(含二维图像引擎和三维图像引擎)、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理等。
虚拟引擎:是由EPIC公司开发的游戏开发引擎,是目前业界主流的游戏引擎之一。该引擎提供了游戏开发者需要的大量的核心技术、数据生成工具和基础支持,能够以极高的帧数渲染复杂场景,输出令人惊叹的画面效果。越来越多的游戏公司使用虚幻引擎开发新的游戏。
游戏客户端:是指与游戏服务器相对应,为玩家提供本地游戏服务的程序。玩家通过游戏客户端输入指令,游戏客户端翻译成数据发送给游戏服务器,然后再由游戏客户端翻译成图形化表现出来展示给玩家。通常来说,游戏客户端包括运行在Windows、Android、IOS、Mac OS X等常见操作系统中的游戏程序。在本发明的实施例中,游戏客户端是基于游戏引擎所开发得到的。
游戏版本:是指游戏开发者在基于游戏引擎进行的游戏开发中,所构建的不同版本的游戏程序。游戏版本通常使用不同的游戏版本号来区分。由于游戏开发是游戏开发者对游戏程序不断进行优化的过程,游戏开发者构建得到当前游戏版本后,通过对当前游戏版进行测试且根据测试效果来对当前游戏版本进行优化,从而得到下一游戏版本。当游戏版本安装在计算机、手机等终端后,相应得到游戏客户端。
游戏插件:是遵循一定规范的引用程序接口编写出来的游戏程序。由于游戏插件需要调用原纯净系统提供的函数库或者数据,游戏插件只能运行在游戏程序规定的系统平台下(可能同时支持多个平台),而不能脱离指定的平台单独运行。
渲染性能数据:是指游戏引擎加载各种资源进行游戏画面渲染时与游戏渲染性能相关的数据。例如,渲染性能数据可以包括游戏运行时的CPU(Central Processing Unit,中央处理器)耗时、GPU(Graphics Processing Unit,图形处理器)耗时、Texture Memory(文本存储器)的内存使用情况等数据。渲染性能数据的高低用于表征游戏运行时的性能。
图1是根据一示例性实施例所示出的一种游戏运行中获取渲染性能数据的方法的流程图,该方法用于实现游戏客户端对游戏画面渲染中的渲染性能数据获取。在一示例性实施例中,如图1所示,该方法至少包括以下步骤:
步骤110,在指定游戏版本的游戏客户端运行中加载渲染性能获取插件。
其中,指定游戏版本是指游戏开发者开发所得指定版本的游戏程序,例如,指定游戏版本亦可理解为当前所进行游戏程序开发中发布的游戏版本。游戏开发者期望通过对指定游戏版本下的游戏客户端进行测试,获取该游戏客户端渲染游戏画面的各项渲染性能数据,以对指定游戏版本进行针对性优化。
渲染性能获取插件则是为了获取指定游戏版本下的游戏客户端的各项渲染性能数据,而插入至游戏客户端中的游戏插件。示例性的,渲染性能插件的相关文件需要存放至游戏客户端项目工程下的指定文件夹中,且在指定游戏版本和渲染性能插件共同编译后,通过正常启动游戏引擎,使渲染性能获取插件在游戏客户端的运行中进行加载。
如图2所示,在示例性的一种游戏客户端所对应的项目工程目录下,渲染性能获取插件的相关文件存放在项目工程目录下的“Plugins”文件夹内。
渲染性能获取插件的加载,可在游戏客户端的游戏运行时执行,也可在游戏运行至某一需要进行渲染性能评估的时间点执行,在此不进行限定,渲染性能获取插件将根据游戏版本的测试需要而加载。
一旦加载渲染性能插件,即可为所运行的游戏进行测试所需要渲染性能数据的获取,以便于在所进行的游戏测试中准确评估游戏的渲染性能。
步骤130,通过加载于游戏客户端中的渲染性能获取插件,在游戏客户端的运行中进行控制台命令的监听,控制台命令包括预设的新增控制台命令。
其中,渲染性能获取插件监听控制台命令是指,在游戏客户端运行中,监听从游戏客户端所传入的控制台命令。示例性的,在游戏客户端运行中,游戏开发者通过按下“~”键(还可以是其他预设按键)调出控制台命令行,且在控制台命令行中输入具体的控制台命令后,渲染性能获取插件即可监听得到。
预设的新增控制台命令是游戏开发者自定义的控制台命令,且区别于游戏引擎自身所定义的控制台命令。预设的新增控制台命令将用于控制渲染性能获取插件执行渲染性能数据的收集,以及所执行渲染性能数据收集的终止。在此新增控制台命令的作用下,将使得游戏客户端中加载运行的渲染性能获取插件得以随时进行、随时结束渲染性能数据的获取。
由于游戏引擎自身不能识别新增控制台命令,游戏开发者需要在渲染性能获取插件中预先配置新增控制台命令的相关信息,使渲染性能获取插件根据所预先配置的相关信息执行新增控制台命令的监听。
示例性的,预先配置新增控制台命令的相关信息包括新增控制台命令的名称,渲染性能获取插件获取到控制台命令行中输入的字符串后,判断所输入字符串是否与预先配置新增控制台命令的名称相匹配,如果是,则视为监听到新增控制台命令。
步骤150,根据监听到的新增控制台命令,渲染性能获取插件对游戏客户端的游戏画面渲染执行指定渲染性能数据的获取。
其中,预设的新增控制台命令包括渲染性能数据开始获取命令和渲染性能数据结束获取命令,渲染性能数据开始获取命令用于指示渲染性能获取插件开始收集游戏客户端渲染游戏画面中的指定渲染性能数据,渲染性能数据结束获取命令用于指示渲染性能获取插件结束对指定渲染性能数据的收集。
指定渲染性能数据是游戏开发者预先在渲染性能获取插件中定义的各项渲染性能数据,是游戏测试中为评估游戏渲染性能而指定获取的渲染性能数据。示例性的,指定渲染性能数据包括游戏引擎中声明的全局变量,以及适配于配置文件所自定义获取的渲染性能数据。
当渲染性能获取插件监听到渲染性能数据开始获取命令时,渲染性能获取插件对游戏客户端进行的游戏画面渲染收集指定渲染性能数据,直至监听到渲染性能数据结束获取命令时结束指定渲染性能数据的收集。并且,在渲染性能获取插件对指定渲染性能数据的收集中,游戏客户端是正常运行的。
在一个实施例中,指定渲染性能数据是面向于每帧游戏画面进行收集的。在虚拟引擎中,通过在渲染性能获取插件中使用“Tick()”函数即可实现指定渲染性能数据的每帧获取。而在其他游戏引擎中,可通过其他游戏引擎自身定义的函数执行指定渲染性能数据的每帧获取。
步骤170,将获取的指定渲染性能数据在游戏客户端本地进行存储。
其中,渲染性能获取插件中预先定义有本地文件路径,渲染性能获取插件根据所定义的本地文件路径,将收集的指定渲染性能数据写入对应本地文件中,以使指定渲染性能数据在游戏客户端本地进行存储。
本地文件的格式是任意的,本处不进行限制。示例性的,由于csv(Comma-Separated Values,逗号分隔值)格式的本地文件主要是将指定渲染性能数据以逗号分隔,并以字符串形式写入,因资源开销较低从而能够降低对游戏客户端性能的影响,因此在本实施例中,本地文件的格式选用csv格式。
本地文件保存在游戏客户端的项目文件夹下,并且在一个实施例中,根据游戏客户端运行时游戏引擎的启动模式不同,本地文件在项目文件夹下的位置也不同。例如在虚拟引擎的启动模式中,launch(开始)模式和编辑器模式所预先定义的本地文件路径不同。
在本实施例中,通过在指定游戏版本下的游戏客户端中加载渲染性能获取插件,使得渲染性能插件在游戏客户端运行中,根据控制台命令行中输入的新增控制台命令执行对指定渲染性能数据的获取和保存。游戏开发者可通过查看相应本地文件中的指定渲染性能数据,来准确定位指定游戏版本的性能问题,从而对指定游戏版本进行针对性优化,能够快速构建高质量的游戏版本。
在一个示例性的应用场景中,游戏开发者构建得到指定游戏版本后,通过将渲染性能获取插件插入指定游戏版本下的游戏客户端中,使游戏客户端在运行中加载渲染性能获取插件。
由于游戏开发者预先在渲染性能获取插件中定义了插件执行渲染性能数据获取所对应新增控制台命令,并且定义了游戏开发者想要获取的指定渲染性能数据的相关信息,如果游戏开发者想要获取指定渲染性能数据,则调出游戏客户端的控制台命令行,并在控制台命令行中输入渲染性能数据开始获取命令,使加载于游戏客户端中的渲染性能获取插件收集指定渲染性能数据,并将收集的指定渲染性能数据保存至本地文件。
如果游戏开发者想要停止指定渲染性能数据的收集,仍通过调出游戏客户端的控制台命令行,并在控制台命令行中输入渲染性能数据结束获取命令即可,十分方便。
并且,由于指定渲染性能数据的收集和停止收集均不会影响游戏客户端的正常运行,如果游戏开发者想要再次收集指定渲染性能数据,则重复执行以上操作过程即可。
游戏开发者通过在游戏客户端本地查找相应的本地文件,即可获得所收集的指定渲染性能数据,从而通过对指定渲染性能数据进行分析的结果,有针对性地对指定游戏版本进行优化,有效降低了游戏开发者对游戏版本修改的工作量,提高了游戏开发者日常构建游戏版本的质量。
需要说明的是,渲染性能获取插件也是游戏开发者构建得到的。在游戏开发者构建得到渲染性能获取插件后,可将该渲染性能获取插件应用至所适配的游戏客户端中,以执行指定渲染性能数据的收集和保存。
在一个示例性的实施例中,为基于游戏引擎所开发的游戏客户端构建渲染性能获取插件的过程描述如下:
首先,需要利用游戏引擎的编辑器生成一个空的渲染性能获取插件,然后渲染性能获取插件中会自动生成启动模块函数和关闭模块函数。启动模块函数为插件入口函数,游戏客户端加载渲染性能获取插件时,先执行启动模块函数。
启动模块函数中还需注册回调函数,以通过回调函数执行渲染性能获取插件的初始化,例如获取当前游戏客户端的世界类型、加载渲染性能获取插件自身配置文件、打开用于保存渲染性能数据的本地文件等等。
示例性的,对基于虚拟引擎所构建的渲染性能获取插件,渲染性能获取插件中所生成启动模块函数为“StartupModule()”函数,关闭模块函数为“ShutdownModule()”函数。
此外,由于新增控制台命令区别于游戏引擎自身所定义控制台命令,渲染性能获取插件不能直接识别新增控制台命令,需要在渲染性能获取插件中定义新增控制台命令,并实现渲染性能获取插件对新增控制台命令的监听。
在一个实施例中,仍适用基于虚拟引擎所构建的渲染性能获取插件,该渲染性能获取插件中需要继承“FSelfRegisteringExec”类,以通过“SelfRegisteringExec”类中的“exec”函数接收游戏客户端中传入的控制台命令,并对所传入控制台命令进行解析处理。然后需要重写“exec”函数,且在“exec”函数中定义新增控制台命令的匹配逻辑,以在渲染性能获取插件中实现新增控制台命令的解析。
示例性的,若将渲染性能数据开始获取命令定义为“RenderFlow start”命令,则在新增控制台名的匹配逻辑中,依次匹配游戏客户端所传入控制台命令中是否含有“RenderFlow”和“start”字符串。如果所传入控制台命令包含这两个字符串,该控制台命令则为渲染性能数据开始获取命令。渲染性能获取插件对渲染性能数据结束获取命令的解析同理。
应当说明,以上所描述渲染性获取插件的构建过程只是用于实现渲染性能获取插件的部分逻辑,渲染性能获取插件所涉及其他执行逻辑请参见其他实施例中描述的内容。
在一个示例性的实施例中,指定渲染性能数据包括执行游戏画面渲染的游戏引擎中声明的全局变量,步骤150所描述渲染性能获取插件收集指定渲染性能数据的过程如下:
监听到渲染性能数据开始获取命令时,渲染性能获取插件通过调用游戏引擎的指定接口,将游戏引擎执行头文件中所声明函数的值获取为所收集指定渲染性能数据。
如前所述,游戏客户端是基于游戏引擎所开发的,游戏客户端渲染游戏画面实质是游戏引擎对游戏画面渲染的执行。因此在游戏引擎执行游戏画面渲染中,游戏引擎自身的一些数据能够体现游戏客户端运行的性能,其中包括游戏引擎头文件中所定义的全局变量。
为了获取这些全局变量,游戏开发者需要预先在渲染性能获取插件的插件程序中引入游戏引擎的相关头文件。
游戏引擎的指定接口是指,游戏引擎中执行头文件所声明函数对应的接口。当渲染性能获取插件监听到渲染性能数据开始获取命令时,通过调用游戏引擎的指定接口,能够获取游戏引擎执行头文件所声明函数的值,这些函数值即为游戏引擎中声明的全局变量。这些全局变量可以直接写入本地文件进行保存。
示例性的,虚拟引擎中所声明的全局变量可以包括RenderThreadTime(渲染线程耗时)、ameThreadTime(平均线程耗时)、GPUFrameTime(GPU框架耗时)、FrameTime(框架耗时)等等。
因此,本实施例能够实现游戏引擎中所声明全局变量的获取。
在一个示例性的实施例中,指定渲染性能数据包括适配于配置文件所定义获取的渲染性能数据,步骤150所描述渲染性能获取插件收集指定渲染性能数据的步骤如图3所示,包括:
步骤151,渲染性能获取插件获取自身配置文件,该配置文件描述自定义获取渲染性能数据的数据信息和所需渲染性能插件对应执行的渲染性能数据收集命令。
其中,配置文件是为渲染性能获取插件获取指定渲染性能数据所预先配置的,其中规定了自定义获取渲染性能数据,具体包括渲染性能数据的数据信息,以及获取这些渲染性能数据所需渲染性能插件对应执行的渲染性能数据收集命令。
渲染性能数据的数据信息可以包括渲染性能数据的数据名称、数据类型、内存单位等信息。渲染性能数据收集命令是游戏引擎自身所定义的命令,用于控制游戏引擎进行相关渲染性能数据的收集。
示例性的,在虚拟引擎中,渲染性能数据收集命令是虚拟引擎自身提供的“stat”命令,执行“stat”命令所收集的渲染性能数据会相应显示在游戏画面上。例如执行“statSceneRendering”命令会在游戏画面上显示实时变化的场景渲染的各项数据,执行“statmemory”命令会在游戏画面上显示虚幻引擎中诸多子系统的内存使用情况。虚拟引擎自身提供的“stat”命令还有很多,本处不一一列举。
在其他游戏引擎中,也提供有相应的渲染性能数据收集命令,用于收集游戏引擎渲染游戏画面中的渲染性能数据。例如在Unity引擎中,可通过渲染统计窗口命令进行相关渲染性能数据的收集。
在一个实施例中,配置文件对自定义获取的渲染性能数据是通过成对出现的多层标签实现的。例如,以下示例的一组标签信息用于描述自定义获取文本存储器的内存使用情况:
“<memory>
<STAT_TextureMemory type="int64"divisor="1048576.0"collect="1">
</STAT_TextureMemory>
</memory>”
其中,该标签信息的外层标签对应“stat memory”命令,内层标签中的“STAT_TextureMemory”是“stat memory”命令的一项具体属性(即渲染性能数据)。由于内存中不存在属性概念,只有数据类型的概念,因此需要在配置文件定义该属性所对应的数据类型“type="int64"”和内存单位“divisor="1048576.0"”,“collect="1"”表示进行该属性所对应渲染性能数据的收集。
应当理解,根据想要获取的指定渲染性能数据数量,游戏开发者可在配置文件中定义若干组标签信息。在若干项渲染性能数据对应于同一项“stat”命令时,可在“stat”命令所对应外层标签内增设若干组内层标签,以实现多项渲染性能数据的收集。
另外,如果游戏开发者想要新增或者移除某些指定渲染性能数据的收集,直接在配置文件中进行相应标签的新增或者移除即可,但是配置文件中变更的内容需要在渲染性能获取插件再次编译后才能生效。
配置文件的格式可以选用xml格式、json格式等,本处不进行限制。
步骤153,通过执行配置文件中的渲染性能数据收集命令,游戏客户端中响应执行渲染性能数据收集命令的线程收集自定义获取的渲染性能数据。
其中,渲染性能获取插件执行配置文件中的渲染性能数据收集命令是从配置文件中的外层标签获取的。游戏客户端中响应执行渲染性能数据收集命令的线程是游戏引擎中的后台线程。
渲染性能获取插件执行配置文件中的渲染性能数据收集命令后,相当于游戏客户端的系统命令行中相应输入了渲染性能数据收集命令,游戏引擎中的后台线程则响应执行渲染性能数据收集命令,收集渲染性能数据收集命令所对应内层标签中定义的各项渲染性能数据,并使收集的渲染性能数据以数据显示窗口的形式显示于游戏画面上,从而实现配置文件中自定义获取的渲染性能数据。
如图4所示,在一个示例性的游戏画面中,渲染性能数据显示于游戏画面上的数据显示窗口。通过渲染性能数据在游戏画面上的显示,能够提示渲染性能获取插件正在进行指定渲染性能数据的收集。
需要说明的是,数据显示窗口在游戏画面中的位置是游戏引擎自身所规定的,数据显示窗口在游戏画面中的大小由渲染性能获取插件所收集指定渲染性能数据的数据量相关。
另外,由于游戏画面上所显示渲染性能数据是每帧更新的,人眼并不能完全捕捉到每帧变化的渲染性能数据,加上游戏引擎的后台线程所收集渲染性能数据是保存在线程所对应堆栈中,游戏开发者无法直接获取,因此渲染性能获取插件还需要执行步骤170所描述内容,将收集的指定渲染性能数据保存至本地文件,以供游戏开发者获取。
因此通过本实施例所提供方法,渲染性能获取插件能够根据自身配置文件实现指定渲染性能参数的获取。
在另一示例性的实施例中,渲染性能获取插件在执行配置文件中的渲染性能数据收集命令时,还根据渲染性能数据收集命令中新增的显示窗口参数,使游戏引擎中的后台线程在响应执行渲染性能数据收集命令时,对收集到的指定渲染性能数据隐藏游戏画面上的数据显示窗口。
其中,显示窗口参数是游戏引擎自身所定义的一种参数,用于将显示在游戏画面上的数据显示窗口设置为不可见。例如,虚拟引擎中的显示窗口参数为“nodisplay”参数。
显示窗口参数是渲染性能获取插件在执行渲染性能数据收集命令时,自动增加至渲染性能数据收集命令中的。例如,渲染性能获取插件在执行配置文件所定义的“statmemory”命令时,通过增加“nodisplay”参数,实际执行“stat memory-nodisplay”命令。
游戏引擎中的后台线程在响应执行“stat memory-nodisplay”命令时,则会对收集的渲染性能数据隐藏游戏画面上的数据显示窗口,从而能够避免指定渲染性能数据对正常游戏画面的覆盖而影响游戏客户端的测试。
图5是步骤170在一个示例性实施例中的流程图。如图5所示,步骤170包括以下步骤:
步骤171,从所述线程所对应堆栈中提取所述自定义获取的指定渲染性能数据。
如前所述,游戏引擎的后台线程响应执行渲染性能数据收集命令,所收集到的指定渲染性能数据保存在线程所对应堆栈中,渲染性能获取插件需要从堆栈中提取这些指定渲染性能数据且写入本地文件。
示例性的,通过将配置文件中自定义获取的渲染性能数据的数据信息与堆栈所存储数据进行匹配,堆栈中与渲染性能数据的数据信息相匹配的数据即为所收集的指定渲染性能数据,因此从堆栈中提取这些数据即可。
步骤173,根据预先定义的本地文件路径,将提取的渲染性能数据写入所述本地文件中存储。
如前所述,渲染性能获取插件的插件程序中预先定义了游戏客户端的本地文件路径,渲染性能获取插件从堆栈中提取指定渲染性能数据后,根据所定义的本地文件路径,将提取的指定渲染性能数据写入路径所对应的本地文件中,以对指定渲染性能数据进行存储。
在渲染性能获取插件的插件程序根据游戏引擎的不同启动模式,而定义了不同本地文件路径的情况下,渲染性能获取插件需根据当前游戏客户端的启动模式,选择对应的本地文件路径执行指定渲染性能数据的保存。
因此,本实施例能够实现指定渲染性能数据在游戏客户端本地的存储。
图6是步骤171在一个示例性的实施例中的流程图。如图6所示,步骤171包括以下步骤:
步骤1711,渲染性能获取插件获取对游戏客户端中响应执行渲染性能数据收集命令的线程的引用。
其中,渲染性能获取插件获取对线程的引用是指,渲染性能获取插件通过获取该进程,以具备对该线程进行相关操作的基础。
由于渲染性能获取插件与游戏引擎中的后台线程之间相互独立,为了获取线程所对应堆栈中的指定渲染性能数据,渲染性能获取插件首先需要获取该线程的引用。示例性的,在虚拟引擎中,渲染性能获取插件获取对线程的引用,可以是通过调用虚拟引擎自身所定义的“GetLocalState()”函数实现的。
步骤1713,在获取对线程的引用后,渲染性能获取插件根据线程所对应堆栈中的可用栈帧值,将堆栈内数据转换为树结构进行存储。
其中,线程所对应堆栈中的可用栈帧值是指,该栈帧值所标识的堆栈中存在真实的内存块数据。例如有的栈帧出栈后,堆栈中对应的内存块数据被销毁,但栈帧值还是存在,那么这个栈帧值就是不可用栈帧值。示例性的,通过调用“Stat.GetLastFullframeProcessed()”函数,且在该函数中引入“IsFrameValid()”函数进行堆栈中可用栈帧值的判断,能够使渲染性能获取插件获取到堆栈中的可用栈帧值。
并且相对于堆栈,树结构更便于进行树内数据的搜索和匹配,渲染性能获取插件获取堆栈内的可用栈帧值后,还将堆栈内数据转换为树结构进行存储。树结构中的每一节点分别与堆栈内可用栈帧值对应的数据相匹配。示例性的,可通过调用“Stat.UncondenseStackStats()”函数,将堆栈内可用栈帧值所对应数据转换至树结构中存储。需要说明,上述渲染性能获取插件所调用函数均为虚拟引擎自身定义的函数。
在一个实施例中,由于线程所对应堆栈是用于存储线程所收集的指定渲染性能数据,为了保证所收集指定渲染性能数据的完整性,步骤1711所涉及线程对应的堆栈为该线程的备份堆栈,该备份堆栈是通过对该线程的原始堆栈拷贝得到的。
步骤1715,通过对树结构的遍历,提取树结构中与配置文件所定义获取渲染性能数据相匹配的节点数据为指定渲染性能数据。
其中,通过对树结构进行遍历,渲染性能获取插件能够获取树结构中每一节点所存储的节点数据。
通过对树结构中每一节点所存储节点数据与配置文件所定义获取的渲染性能数据进行匹配,则提取树结构中与这些渲染性能数据相匹配的节点数据为指定渲染性能数据。
示例性的,由于配置文件中定义了想要获取的渲染性能数据的数据信息,通过将树结构中的每一节点数据与渲染性能数据的数据信息(具体为渲染性能数据的数据名称)进行字符串匹配,将包含渲染性能数据的数据名称的节点数据获取为指定渲染性能数据。
本实施例通过将堆栈内数据转换为树结构进行存储,便于执行树结构中每一节点数据的遍历,降低了提取指定渲染性能数据对游戏客户端性能的影响。
图7是步骤173在一个示例性的实施例中的流程图。如图7所示,步骤173可以包括以下步骤:
步骤1731,根据提取指定渲染性能数据的时间顺序,将设定时间长度内提取的指定渲染性能数据依次拼接得到字符串数据,且将字符串数据写入本地文件。
其中,在实现每帧渲染性能数据的收集后,由于所收集数据量较大(普通游戏的帧率一般为60左右),如果每帧都执行所收集渲染性能数据的写入,会造成资源开销太大,可能影响游戏客户端的性能。
因此,可以根据从堆栈内提取指定渲染性能数据的时间顺序,将设定时间长度内提取的指定渲染性能数据依次拼接成字符串。当达到设定时间长度时,将拼接得到的字符串写入本地文件。
步骤1733,继续执行下一设定时间长度所提取指定渲染性能数据的拼接和拼接所得字符串数据的写入,直至将提取的指定渲染性能数据全部写入本地文件。
其中,在完成一次设定时间长度内指定渲染性能数据的拼接以及将拼接所得字符串数据写入本地文件后,继续执行下一设定时间长度的指定渲染性能数据的拼接,并将拼接所得字符串数据写入本地文件。如此循环,直至将获取的指定渲染性能数据全部写入本地文件。
如果结束收集渲染性能数据的时间与上一次执行字符串数据写入本地文件的时间之差小于设定时间长度,则将结束收集渲染性能数据时提取的全部指定渲染性能数据一次性写入本地文件即可。
本实施例按照设定时间长度为单位,对所收集的指定渲染性能数据执行字符串拼接和拼接所得字符串数据的写入,能够降低指定渲染性能数据的保存对游戏客户端性能的影响。
图8是根据另一示例性实施例示出的一种游戏运行中获取渲染性能数据的方法,该方法用于游戏客户端所插入渲染性能获取插件的渲染性能数据获取实现。如图8所示,该方法至少包括以下步骤:
步骤210,通过在游戏客户端中的插件插入,渲染性能获取插件在指定游戏版本的游戏客户端运行中加载。
其中,游戏客户端中的插件插入是指,将渲染性能获取插件作为游戏插件插入至指定游戏版本的游戏客户端中。
如前所述,通过将渲染性能插件的相关文件需要存放至游戏客户端项目工程下的指定文件夹中,且在指定游戏版本和渲染性能插件共同编译后,通过正常启动游戏引擎,使渲染性能获取插件在游戏客户端的运行中进行加载。
步骤230,对游戏客户端所传入的控制台命令进行监听,控制台命令包括预设的新增控制台命令。
其中,游戏客户端所传入渲染性能获取插件的控制台命令,是游戏客户端的控制台命令行中输入的控制台命令。
渲染性能获取插件监听控制台命令的过程请参见前述实施例中对步骤130的详细描述,本处不再赘述。
步骤250,根据监听到的新增控制台命令,渲染性能获取插件对游戏客户端的游戏画面渲染执行指定渲染性能数据的获取。
其中,渲染性能获取插件根据监听到的新增控制台命令,对游戏客户端的游戏画面渲染执行指定渲染性能数据的过程,请参见前述实施例对步骤150所详细描述的内容,本处仍不进行赘述。
步骤270,将获取的指定渲染性能数据在游戏客户端本地进行存储。
需要说明的是,本实施例所提供方法与前述实施例所提供游戏运行中获取渲染性能数据的方法相对应,本实施例所涉及方法的实施过程请参见前述实施例中的详细描述,此处不再赘述。
图9是根据一示例性实施例所示出的一种游戏运行中获取渲染性能数据的装置,该装置用于实现游戏客户端对游戏渲染中的渲染性能数据获取。如图9所示,该装置包括渲染性能获取插件加载模块310、控制台命令监听模块330、渲染性能数据获取模块350和渲染性能数据存储模块370。
渲染性能获取插件加载模块310用于在指定游戏版本的游戏客户端运行中加载渲染性能获取插件,该渲染性能获取插件是为指定游戏版本插入的游戏插件。
控制台命令监听模块330用于通过加载于游戏客户端中的渲染性能获取插件,在游戏客户端的运行中进行控制台命令的监听,控制台命令包括预设的新增控制台命令。
渲染性能数据获取模块350用于根据监听到的新增控制台命令,使渲染性能获取插件对游戏客户端的游戏画面渲染执行指定渲染性能数据的获取,渲染性能数据用于表征指定游戏版本下的游戏客户端渲染性能。
渲染性能数据存储模块370用于将获取的指定渲染性能数据在游戏客户端本地进行存储。
在另一示例性的实施例中,渲染性能数据获取模块350用于在监听到渲染性能数据开始获取命令时,使渲染性能获取插件对游戏客户端进行的游戏画面渲染收集指定渲染性能数据,直至监听到渲染性能数据结束获取命令时结束指定渲染性能数据的收集。
在另一示例性的实施例中,渲染性能数据获取模块350用于使渲染性能获取插件通过调用游戏引擎的指定接口,将游戏引擎执行头文件中所声明函数的值获取为所收集指定渲染性能数据。
在另一示例性的实施例中,渲染性能数据获取模块350包括配置文件获取单元和渲染性能获取收集命令执行单元。
配置文件获取单元用于使渲染性能获取插件获取自身配置文件,该配置文件描述自定义获取渲染性能数据的数据信息和所需渲染性能获取插件对应执行的渲染性能数据收集命令。
渲染性能获取收集命令执行单元用于通过执行配置文件中的渲染性能数据收集命令,使游戏客户端中响应执行渲染性能数据收集命令的线程收集自定义获取的渲染性能数据。
在另一示例性的实施例中,渲染性能获取收集命令执行单元还用于使渲染性能获取插件在执行渲染性能数据收集命令中,根据渲染性能数据收集命令中新增的显示窗口参数,使线程在响应执行渲染性能数据收集命令时,对收集的指定渲染性能数据隐藏游戏画面上的数据显示窗口。
在另一示例性的实施例中,渲染性能数据存储模块370包括堆栈内数据提取单元和堆栈内数据写入单元。
堆栈内数据提取单元用于从线程所对应堆栈中提取自定义获取的指定渲染性能数据。
堆栈内数据写入单元用于根据预先定义的本地文件路径,将提取的渲染性能数据写入本地文件中存储。
在另一示例性的实施例中,堆栈内数据提取单元包括线程引用子单元、数据结构转换子单元和数据匹配子单元。
线程引用子单元用于使渲染性能获取插件获取对游戏客户端中响应执行渲染性能数据收集命令的线程的引用。
数据结构转换子单元用于在渲染性能获取插件获取对线程的引用后,使渲染性能获取插件根据线程所对应堆栈中的可用栈帧值,将堆栈内数据转换为树结构进行存储。
数据匹配子单元用于通过对树结构的遍历,提取树结构中与配置文件所定义获取渲染性能数据相匹配的节点数据为指定渲染性能数据。
在另一示例性的实施例中,堆栈内数据写入单元包括数据拼接子单元和循环控制子单元。
数据拼接子单元用于根据提取指定渲染性能数据的时间顺序,将设定时间长度内提取的指定渲染性能数据依次拼接得到字符串数据,且将字符串数据写入所述本地文件。
循环控制子单元用于继续执行下一设定时间长度所提取指定渲染性能数据的拼接和拼接所得字符串数据的写入,直至将提取的渲染性能数据全部写入本地文件。
图10是根据另一示例性实施例所示出的一种游戏运行中获取渲染性能数据的装置,该装置用于游戏客户端所插入渲染性能获取插件的渲染性能数据获取实现。如图10所示,该装置包括插件加载模块410、命令监听模块430、数据获取模块450和数据存储模块470。
插件加载模块410用于通过所在游戏客户端中的插件插入,使渲染性能获取插件在指定游戏版本的游戏客户端运行中加载。
命令监听模块430用于对游戏客户端所传入的控制台命令进行监听,该控制台命令包括预设的新增控制台命令。
数据获取模块450用于根据监听到的新增控制台命令,使渲染性能获取插件对游戏客户端的游戏画面渲染执行指定渲染性能数据的获取,渲染性能数据用于表征指定游戏版本下的游戏客户端渲染性能。
数据存储模块470用于将获取的指定渲染性能数据在游戏客户端本地进行存储。
需要说明的是,上述实施例所提供的装置与上述实施例所提供的方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
作为另一方面,本发明还提供了一种终端,包括处理器和存储器,其中,存储器上存储有计算机可读指令,该计算机可读指令被处理器执行时实现如前所述游戏运行中获取渲染性能数据的方法。
图11是根据一示例性实施例所示出的一种终端的硬件框图。如图11所示,终端可以包括以下一个或者多个组件:处理组件501,存储器502,电源组件503,多媒体组件504,音频组件505,传感器组件507以及通信组件508。
其中,上述组件并不全是必须的,终端可以根据自身功能需求增加其他组件或减少某些组件,本实施例不作限定。
处理组件501通常控制终端的整体操作,诸如与显示,数据通信以及日志数据处理相关联的操作等。处理组件501可以包括一个或多个处理器509来执行指令,以完成上述操作的全部或部分步骤。此外,处理组件501可以包括一个或多个模块,便于处理组件501和其他组件之间的交互。例如,处理组件501可以包括多媒体模块,以方便多媒体组件504和处理组件501之间的交互。
存储器502被配置为存储各种类型的数据以支持在终端的操作。这些数据的示例包括用于在终端上操作的任何应用程序或方法的指令。存储器502可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如SRAM(静态随机存取存储器),EEPROM(电可擦除可编程只读存储器),EPROM(可擦除可编程只读存储器),PROM(可编程只读存储器),ROM(只读存储器)等。存储器502中还存储有一个或多个模块,该一个或多个模块被配置成由该一个或多个处理器509执行,以完成上述实施例中所描述游戏运行中获取渲染性能数据的方法中的全部或者部分步骤。
电源组件503为终端的各种组件提供电力。电源组件503可以包括电源管理系统,一个或多个电源,及其他与为终端生成、管理和分配电力相关联的组件。
多媒体组件504包括在所述终端和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括LCD(液晶显示器)和TP(触摸面板)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
音频组件505被配置为输出和/或输入音频信号。例如,音频组件505可以包括一个麦克风,当终端处于操作模式,如记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器502或经由通信组件508发送。音频组件505还包括一个扬声器,用于输出音频信号,以实现终端与客户之间进行会话操作。
传感器组件507包括一个或多个传感器,用于为计算机设备提供各个方面的状态评估。例如,传感器组件507可以检测到终端的打开/关闭状态,以及终端的温度变化。在一些实施例中,传感器组件507还可以包括磁传感器,压力传感器或温度传感器。
通信组件508被配置为便于终端和其他设备之间有线或无线方式的通信。终端可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件508经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。
在示例性实施例中,处理器509可以被一个或多个ASIC(应用专用集成电路)、DSP(数字信号处理器)、PLD(可编程逻辑器件)、FPGA(现场可编程门阵列)、控制器、微控制器、微处理器或其他电子元件实现,用于执行下述实施例中所详细描述的页面数据采集方法,此处将不做详细阐述说明。
作为另一方面,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前所述游戏运行中获取渲染性能数据的方法。该计算机可读存储介质可以是上述实施例中描述的终端中所包含的,也可以是单独存在,而未装配入该终端中。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本发明实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (10)

1.一种游戏运行中获取渲染性能数据的方法,其特征在于,所述方法包括:
在指定游戏版本的游戏客户端运行中加载渲染性能获取插件,所述渲染性能获取插件是为所述指定游戏版本插入的游戏插件;
通过加载于所述游戏客户端中的渲染性能获取插件,在所述游戏客户端的运行中进行控制台命令的监听,所述控制台命令包括预设的新增控制台命令;
根据监听到的所述新增控制台命令,所述渲染性能获取插件对所述游戏客户端的游戏画面渲染执行指定渲染性能数据的获取,所述渲染性能数据用于表征所述指定游戏版本下的游戏客户端渲染性能;
将获取的所述指定渲染性能数据在所述游戏客户端本地进行存储。
2.根据权利要求1所述的方法,其特征在于,所述新增控制台命令包括渲染性能数据开始获取命令和渲染性能数据结束获取命令,所述根据监听到的所述新增控制台命令,所述渲染性能获取插件对所述游戏客户端的游戏画面渲染执行指定渲染性能数据的获取,包括:
在监听到所述渲染性能数据开始获取命令时,所述渲染性能获取插件对所述游戏客户端进行的游戏画面渲染收集指定渲染性能数据,直至监听到所述渲染性能数据结束获取命令时结束所述指定渲染性能数据的收集。
3.根据权利要求2所述的方法,其特征在于,所述指定渲染性能数据包括执行所述游戏画面渲染的游戏引擎中声明的全局变量,所述渲染性能获取插件对所述游戏客户端进行的游戏画面渲染收集指定渲染性能数据,包括:
所述渲染性能获取插件通过调用所述游戏引擎的指定接口,将所述游戏引擎执行头文件中所声明函数的值获取为所收集指定渲染性能数据。
4.根据权利要求2所述的方法,其特征在于,所述指定渲染性能数据包括是适配于配置文件所自定义获取的渲染性能数据,所述渲染性能获取插件对所述游戏客户端进行的游戏画面渲染收集指定渲染性能数据,包括:
所述渲染性能获取插件获取自身配置文件,所述配置文件描述自定义获取渲染性能数据的数据信息和所需渲染性能获取插件对应执行的渲染性能数据收集命令;
通过执行所述配置文件中的渲染性能数据收集命令,所述游戏客户端中响应执行所述渲染性能数据收集命令的线程收集所述自定义获取的渲染性能数据。
5.根据权利要求4所述的方法,其特征在于,所述通过执行所述配置文件中的渲染性能数据收集命令,所述游戏客户端中响应执行所述渲染性能数据显示命令的线程收集所述自定义获取的渲染性能数据,包括:
所述渲染性能获取插件在执行所述渲染性能数据收集命令中,根据所述渲染性能数据收集命令中新增的显示窗口参数,使所述线程在响应执行所述渲染性能数据收集命令时,对收集的所述指定渲染性能数据隐藏游戏画面上的数据显示窗口。
6.根据权利要求4所述的方法,其特征在于,所述将获取的所述指定渲染性能数据在所述游戏客户端本地进行存储,包括:
从所述线程所对应堆栈中提取所述自定义获取的指定渲染性能数据;
根据预先定义的本地文件路径,将提取的所述渲染性能数据写入本地文件中存储。
7.根据权利要求6所述的方法,其特征在于,所述从响应执行所述渲染性能数据显示命令的线程所对应堆栈中提取所述指定渲染性能数据,包括:
所述渲染性能获取插件获取对所述线程的引用;
在获取对所述线程的引用后,所述渲染性能获取插件根据所述线程所对应堆栈中的可用栈帧值,将所述堆栈内数据转换为树结构进行存储;
通过对所述树结构的遍历,提取所述树结构中与所述配置文件所定义获取渲染性能数据相匹配的节点数据为所述指定渲染性能数据。
8.根据权利要求7所述的方法,其特征在于,所述根据预先定义的本地文件路径,将提取的所述渲染性能数据写入所述本地文件中存储,包括:
根据提取所述指定渲染性能数据的时间顺序,将设定时间长度内提取的所述指定渲染性能数据依次拼接得到字符串数据,且将所述字符串数据写入所述本地文件;
继续执行下一设定时间长度所提取指定渲染性能数据的拼接和拼接所得字符串数据的写入,直至将提取的所述渲染性能数据全部写入所述本地文件。
9.一种游戏运行中获取渲染性能数据的方法,其特征在于,所述方法用于游戏客户端所插入渲染性能获取插件的渲染性能数据获取实现,所述方法包括:
通过所在游戏客户端中的插件插入,所述渲染性能获取插件在指定游戏版本的游戏客户端运行中加载;
对所述游戏客户端所传入的控制台命令进行监听,所述控制台命令包括预设的新增控制台命令;
根据监听到的所述新增控制台命令,所述渲染性能获取插件对所述游戏客户端的游戏画面渲染执行指定渲染性能数据的获取,所述渲染性能数据用于表征所述指定游戏版本下的游戏客户端渲染性能;
将获取的所述指定渲染性能数据在所述游戏客户端本地进行存储。
10.一种游戏运行中获取渲染性能数据的装置,其特征在于,所述装置包括:
渲染性能获取插件加载模块,用于在指定游戏版本的游戏客户端运行中加载渲染性能获取插件,所述渲染性能获取插件是为所述指定游戏版本插入的游戏插件;
控制台命令监听模块,用于通过加载于所述游戏客户端中的渲染性能获取插件,在所述游戏客户端的运行中进行控制台命令的监听,所述控制台命令包括预设的新增控制台命令;
渲染性能数据获取模块,用于根据监听到的所述新增控制台命令,使所述渲染性能获取插件对所述游戏客户端的游戏画面渲染执行指定渲染性能数据的获取,所述渲染性能数据用于表征所述指定游戏版本下的游戏客户端渲染性能;
渲染性能数据存储模块,用于将获取的所述指定渲染性能数据在所述游戏客户端本地进行存储。
CN201910217892.3A 2019-03-21 2019-03-21 游戏运行中获取渲染性能数据的方法及装置 Active CN109966742B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910217892.3A CN109966742B (zh) 2019-03-21 2019-03-21 游戏运行中获取渲染性能数据的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910217892.3A CN109966742B (zh) 2019-03-21 2019-03-21 游戏运行中获取渲染性能数据的方法及装置

Publications (2)

Publication Number Publication Date
CN109966742A true CN109966742A (zh) 2019-07-05
CN109966742B CN109966742B (zh) 2022-08-26

Family

ID=67079856

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910217892.3A Active CN109966742B (zh) 2019-03-21 2019-03-21 游戏运行中获取渲染性能数据的方法及装置

Country Status (1)

Country Link
CN (1) CN109966742B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110496395A (zh) * 2019-08-22 2019-11-26 阿里巴巴集团控股有限公司 一种针对虚幻引擎的组件运行方法、系统及设备
CN111104281A (zh) * 2019-11-20 2020-05-05 腾讯科技(深圳)有限公司 一种游戏性能监控方法、装置、系统及存储介质
CN111803943A (zh) * 2020-07-21 2020-10-23 网易(杭州)网络有限公司 美术渲染效果控制的方法、装置及服务器
CN113274734A (zh) * 2021-06-08 2021-08-20 网易(杭州)网络有限公司 虚拟场景的生成方法、装置和终端设备
CN113608727A (zh) * 2021-08-04 2021-11-05 网易(杭州)网络有限公司 可视化编程的代码处理方法、装置、系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090113251A1 (en) * 2007-10-26 2009-04-30 Microsoft Corporation Real-time analysis of performance data of a video game
CN102449665A (zh) * 2009-06-02 2012-05-09 高通股份有限公司 显示经渲染的图形元素的性能度量的视觉表示
CN104268047A (zh) * 2014-09-18 2015-01-07 北京安兔兔科技有限公司 电子设备性能的测试方法及装置
CN106055470A (zh) * 2016-05-19 2016-10-26 网易(杭州)网络有限公司 游戏程序的性能测试方法、装置及系统
CN106557424A (zh) * 2016-11-18 2017-04-05 腾讯科技(深圳)有限公司 内存测试方法、被测终端、测试客户端及系统
CN108255729A (zh) * 2018-01-24 2018-07-06 珠海金山网络游戏科技有限公司 一种基于Unity平台的手机游戏自动化测试方法和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090113251A1 (en) * 2007-10-26 2009-04-30 Microsoft Corporation Real-time analysis of performance data of a video game
CN102449665A (zh) * 2009-06-02 2012-05-09 高通股份有限公司 显示经渲染的图形元素的性能度量的视觉表示
CN104268047A (zh) * 2014-09-18 2015-01-07 北京安兔兔科技有限公司 电子设备性能的测试方法及装置
CN106055470A (zh) * 2016-05-19 2016-10-26 网易(杭州)网络有限公司 游戏程序的性能测试方法、装置及系统
CN106557424A (zh) * 2016-11-18 2017-04-05 腾讯科技(深圳)有限公司 内存测试方法、被测终端、测试客户端及系统
CN108255729A (zh) * 2018-01-24 2018-07-06 珠海金山网络游戏科技有限公司 一种基于Unity平台的手机游戏自动化测试方法和系统

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110496395A (zh) * 2019-08-22 2019-11-26 阿里巴巴集团控股有限公司 一种针对虚幻引擎的组件运行方法、系统及设备
CN110496395B (zh) * 2019-08-22 2023-02-21 创新先进技术有限公司 一种针对虚幻引擎的组件运行方法、系统及设备
CN111104281A (zh) * 2019-11-20 2020-05-05 腾讯科技(深圳)有限公司 一种游戏性能监控方法、装置、系统及存储介质
CN111104281B (zh) * 2019-11-20 2022-07-22 腾讯科技(深圳)有限公司 一种游戏性能监控方法、装置、系统及存储介质
CN111803943A (zh) * 2020-07-21 2020-10-23 网易(杭州)网络有限公司 美术渲染效果控制的方法、装置及服务器
CN111803943B (zh) * 2020-07-21 2024-04-30 网易(杭州)网络有限公司 美术渲染效果控制的方法、装置及服务器
CN113274734A (zh) * 2021-06-08 2021-08-20 网易(杭州)网络有限公司 虚拟场景的生成方法、装置和终端设备
CN113274734B (zh) * 2021-06-08 2024-02-02 网易(杭州)网络有限公司 虚拟场景的生成方法、装置和终端设备
CN113608727A (zh) * 2021-08-04 2021-11-05 网易(杭州)网络有限公司 可视化编程的代码处理方法、装置、系统
CN113608727B (zh) * 2021-08-04 2023-07-25 网易(杭州)网络有限公司 可视化编程的代码处理方法、装置、系统

Also Published As

Publication number Publication date
CN109966742B (zh) 2022-08-26

Similar Documents

Publication Publication Date Title
CN109966742A (zh) 游戏运行中获取渲染性能数据的方法及装置
CN108255653A (zh) 一种产品的测试方法及其终端
CN105511873B (zh) 用户界面控件展示方法及装置
CN110659091A (zh) 会话代理对话流用户界面
CN112115042A (zh) 一种基于采集回放的软件测试方法和系统
CN109508298B (zh) 图形化的脚本测试方法及系统
CN112882930B (zh) 自动化测试方法、装置、存储介质及电子设备
CN113778419B (zh) 多媒体数据的生成方法、装置、可读介质及电子设备
CN114254158B (zh) 视频生成方法及其装置、神经网络的训练方法及其装置
CN113868126A (zh) 应用调试方法、装置、设备的存储介质
CN113986241A (zh) 一种基于知识图谱的业务规则的配置方法以及装置
CN114594934A (zh) 一种可视化页面生成方法、装置、设备及介质
CN114238134A (zh) 一种测试结果展示方法、装置、设备及存储介质
CN113792341A (zh) 应用程序的隐私合规自动化检测方法、装置、设备及介质
CN114003451B (zh) 一种接口测试方法、装置、系统及介质
CN109683948A (zh) 系统数据导入方法、装置、电子产品及存储介质
CN111899859A (zh) 手术器械清点方法及装置
CN115827436A (zh) 数据处理方法、装置、设备及存储介质
CN113835700A (zh) 活动上线方法、装置、电子设备及计算机可读存储介质
CN113207039B (zh) 视频处理方法、装置、电子设备及存储介质
CN109634569A (zh) 基于注解的流程实现方法、装置、设备及可读存储介质
CN115858556A (zh) 一种数据处理方法、装置、存储介质及电子设备
CN110362294A (zh) 开发任务执行方法、装置、电子设备及存储介质
CN115237441A (zh) 一种基于云平台的升级测试方法、装置及介质
CN111444170B (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
GR01 Patent grant
GR01 Patent grant