CN112379949B - 一种数据处理方法、装置、设备及存储介质 - Google Patents

一种数据处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112379949B
CN112379949B CN202110047664.3A CN202110047664A CN112379949B CN 112379949 B CN112379949 B CN 112379949B CN 202110047664 A CN202110047664 A CN 202110047664A CN 112379949 B CN112379949 B CN 112379949B
Authority
CN
China
Prior art keywords
data
resource
file
game
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110047664.3A
Other languages
English (en)
Other versions
CN112379949A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110047664.3A priority Critical patent/CN112379949B/zh
Publication of CN112379949A publication Critical patent/CN112379949A/zh
Application granted granted Critical
Publication of CN112379949B publication Critical patent/CN112379949B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请实施例公开了一种数据处理方法、装置、设备及存储介质,该方法包括:获取虚拟游戏的游戏数据包,对游戏数据包进行解析处理,得到资源解析文件,以提取待进行转码处理的关键资源数据;基于虚拟游戏对应的配置参数确定关键资源数据的标示码,基于配置参数将关键资源数据的数据属性由第一格式属性转换为第二格式属性,将具备第二格式属性的关键资源数据确定为关键资源数据对应的转码数据;基于配置参数,确定标示码与转码数据之间的映射关系;映射关系用于在启动虚拟游戏的业务渲染线程时,根据配置参数查找到标示码对应的转码数据。采用本申请实施例,可以提高虚拟游戏运行的流畅度。

Description

一种数据处理方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法、装置、设备及存储介质。
背景技术
在运行虚拟游戏(例如,云游戏)的过程中,虚拟游戏对应的服务器(例如,云服务器)会对该虚拟游戏的游戏数据包进行解析处理,进而可以将解析处理后所得到的资源数据发送至该服务器的物理硬件(例如,图形处理器,Graphics Processing Unit,简称GPU)。此时,该服务器可以通过物理硬件,对解析处理后的资源数据进行绘制,以得到该虚拟游戏对应的图像帧。
但是,服务器在对游戏数据包进行解析处理时,会存在游戏数据包中的游戏资源数据与硬件支持能力部分匹配,甚至完全不匹配的情况。例如,在传输游戏资源数据至GPU的过程中,存在游戏资源数据的数据属性与硬件支持格式不符的情况,此时,该服务器需要在线上进行大量资源格式转换处理,以使GPU能够基于转换处理后的游戏资源数据,进行图像渲染。可以理解的是,资源转换过程非常耗时且不可预期,容易造成用户端严重卡顿和延迟,进而导致游戏无法流畅运行,以至于降低了游戏运行的流畅度。
发明内容
本申请实施例提供一种数据处理方法、装置、设备及存储介质,可以提高游戏运行的流畅度。
本申请实施例一方面提供一种数据处理方法,包括:
获取虚拟游戏的游戏数据包,对游戏数据包进行解析处理,得到资源解析文件;
从资源解析文件中提取待进行转码处理的关键资源数据;
基于虚拟游戏对应的配置参数确定关键资源数据的标示码,基于配置参数将关键资源数据的数据属性由第一格式属性转换为第二格式属性,将具备第二格式属性的关键资源数据确定为关键资源数据对应的转码数据;
基于配置参数,确定标示码与转码数据之间的映射关系;映射关系用于在启动虚拟游戏的业务渲染线程时,根据配置参数查找到标示码对应的转码数据。
本申请实施例一方面提供一种数据处理方法,包括:
在启动虚拟游戏的业务渲染线程时,通过与虚拟游戏相关联的游戏引擎,加载虚拟游戏的游戏数据包,将游戏数据包发送至与业务渲染线程相关联的物理硬件所对应的驱动组件,以使驱动组件从游戏数据包中获取具备第一格式属性的目标资源数据;
根据虚拟游戏对应的配置参数,确定目标资源数据对应的目标标示码,查询与目标标示码相同的标示码;标示码为离线确定的关键资源数据的标示码;关键资源数据为从游戏数据包中提取到的具备第一格式属性的资源数据;
基于查询到的标示码所对应的映射关系,确定标示码对应的转码数据;
通过驱动组件将转码数据发送至物理硬件;转码数据用于指示物理硬件进行图像渲染。
本申请实施例一方面提供一种数据处理装置,包括:
解析处理模块,用于获取虚拟游戏的游戏数据包,对游戏数据包进行解析处理,得到资源解析文件;
关键数据提取模块,用于从资源解析文件中提取待进行转码处理的关键资源数据;
格式转换模块,用于基于虚拟游戏对应的配置参数确定关键资源数据的标示码,基于配置参数将关键资源数据的数据属性由第一格式属性转换为第二格式属性,将具备第二格式属性的关键资源数据确定为关键资源数据对应的转码数据;
映射关系确定模块,用于基于配置参数,确定标示码与转码数据之间的映射关系;映射关系用于在启动虚拟游戏的业务渲染线程时,根据配置参数查找到标示码对应的转码数据。
其中,该解析处理模块包括:
扫描单元,用于对虚拟游戏的游戏数据包所对应的安装目录进行扫描,得到游戏数据包;
解析处理单元,用于调用虚拟游戏的离线资源解析组件,对游戏数据包中的每个文件进行解析处理,得到每个文件的文件类型;
资源文件确定单元,用于在每个文件的文件类型中,获取与关键文件类型相匹配的文件类型,将获取到的文件类型所对应的文件确定为资源解析文件。
其中,一个文件的文件类型是从对应文件的文件头中提取的固定字符串所确定的;一个文件的文件头是基于虚拟游戏的游戏引擎所支持的关键文件类型所提取到的;关键文件类型的数量为N个;N为正整数;一个关键文件类型对应一个待匹配字符串;
该资源文件确定单元包括:
字符串确定子单元,用于在每个文件的文件类型中,获取目标文件类型,将目标文件类型对应的固定字符串作为目标固定字符串;
字符串比对子单元,用于将目标固定字符串分别与N个待匹配字符串进行字符串比对,得到字符串比对结果;
资源文件确定子单元,用于若字符串比对结果指示N个待匹配字符串中,存在与目标固定字符串相同的待匹配字符串,则将与目标固定字符串相同的待匹配字符串作为匹配字符串,将匹配字符串所对应的文件确定为资源解析文件。
其中,资源解析文件包括M个数据块;M为正整数;一个数据块对应一个数据块头信息;
该关键数据提取模块包括:
填充处理单元,用于将资源解析文件的文件类型作为资源文件类型,根据资源文件类型的数据结构,对资源解析文件进行解析处理,得到结构填充信息,用结构填充信息对数据结构进行填充处理,得到资源解析文件的文件头信息以及M个数据块头信息;
数据整合单元,用于基于M个数据块头信息,对M个数据块中的数据进行数据整合,得到资源解析文件对应的内存块;
关键数据提取单元,用于基于文件头信息以及资源文件类型,对内存块进行解析处理,得到内存资源数据,从内存资源数据中提取待进行转码处理的关键资源数据。
其中,该数据整合单元包括:
数据块确定子单元,用于从M个数据块头信息中,获取与压缩数据相关联的第一数据块头信息,将第一数据块头信息所属的数据块作为第一类数据块;
第一添加子单元,用于对第一类数据块中的压缩数据进行解压处理,得到第一类数据块对应的解压数据,将第一类数据块对应的解压数据添加至资源解析文件对应的第一集合;
第二添加子单元,用于从M个数据块头信息中,获取与非压缩数据相关联的第二数据块头信息,将第二数据块头信息所属的数据块作为第二类数据块,且将第二类数据块中的非压缩数据添加至资源解析文件对应的第二集合;第二类数据块与第一类数据块均属于M个数据块中的数据块;
数据整合子单元,用于将第一集合中的解压数据以及第二集合中的非压缩数据进行数据整合,得到资源解析文件对应的内存块。
其中,文件头信息中包括资源解析文件的文件版本号;
该关键数据提取单元包括:
内存数据获取子单元,用于获取文件头信息中的文件版本号,基于文件版本号以及资源文件类型,对内存块进行解析处理,得到内存资源数据;
查找子单元,用于在内存资源数据中,查找具备第一格式属性的内存资源数据,将查找到的具备第一格式属性的内存资源数据,确定为待进行转码处理的关键资源数据。
其中,该格式转换模块包括:
标示码确定单元,用于基于虚拟游戏对应的配置参数,获取标示码变换规则,通过标示码变换规则,对关键资源数据进行变换处理,得到关键资源数据的标示码;
属性变化规则获取单元,用于基于配置参数获取属性变换规则;属性变换规则用于指示关键资源数据的第一格式属性与物理硬件支持的第二格式属性之间的转码关系;
解码处理单元,用于根据属性变换规则获取具有转码关系的转码组件,调用转码组件,对关键资源数据进行解码处理,得到关键资源数据对应的明文数据;
压缩处理单元,用于将明文数据按照第二格式属性进行压缩处理,得到具备第二格式属性的关键资源数据,将具备第二格式属性的关键资源数据确定为关键资源数据对应的转码数据。
其中,该装置还包括:
存储模块,用于将配置参数、标示码以及转码数据存储至离线资源数据库;
查找模块,用于在启动虚拟游戏的业务渲染线程时,根据虚拟游戏对应的配置参数,在离线资源数据库中查找目标资源数据对应的转码数据;目标资源数据是由与业务渲染线程相关联的物理硬件所对应的驱动组件,从游戏数据包中所获取到的具备第一格式属性的资源数据。
本申请实施例一方面提供一种数据处理装置,包括:
游戏包加载模块,用于在启动虚拟游戏的业务渲染线程时,通过与虚拟游戏相关联的游戏引擎,加载虚拟游戏的游戏数据包,将游戏数据包中的资源数据发送至与业务渲染线程相关联的物理硬件所对应的驱动组件,以使驱动组件从资源数据中获取具备第一格式属性的目标资源数据;
标示码查询模块,用于根据虚拟游戏对应的配置参数,确定目标资源数据对应的目标标示码,查询与目标标示码相同的标示码;标示码为离线确定的关键资源数据的标示码;关键资源数据为从游戏数据包中提取到的具备第一格式属性的资源数据;
转码数据确定模块,用于基于查询到的标示码所对应的映射关系,确定标示码对应的转码数据;
转码数据发送模块,用于通过驱动组件将转码数据发送至物理硬件;转码数据用于指示物理硬件进行图像渲染。
其中,该装置还包括:
业务资源数据发送模块,用于在驱动组件从资源数据中获取具备第二格式属性的业务资源数据时,通过驱动组件将业务资源数据发送至物理硬件,以使物理硬件对业务资源数据进行图像渲染。
其中,该装置还包括:
第一渲染模块,用于在物理硬件接收到驱动组件发送的与转码数据相关联的第一绘图指令时,将目标资源数据替换为转码数据,且对转码数据进行图像渲染,得到第一渲染数据;
第二渲染模块,用于在物理硬件接收到驱动组件发送的与业务资源数据相关联的第二绘图指令时,对业务资源数据进行图像渲染,得到第二渲染数据;
图像帧生成模块,用于基于第一渲染数据和第二渲染数据,生成与虚拟游戏相关联的图像帧;
压缩图像确定模块,用于对图像帧进行压缩处理,得到图像帧对应的压缩图像,将压缩图像发送至虚拟游戏对应的用户终端,以使用户终端输出压缩图像。
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
处理器与存储器相连,其中,存储器用于存储计算机程序,计算机程序被处理器执行时,使得该计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的算计设备执行本申请实施例提供的方法。
本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的方法。
在本申请实施例中,具有离线转换资源数据功能的计算机设备(例如,云服务器)可以在虚拟游戏(例如,云游戏)运行之前,对虚拟游戏的游戏数据包进行解析处理,以得到资源解析文件。这里的资源解析文件可以是指与该虚拟游戏相关联的游戏引擎所支持的有效资源文件。进一步地,该计算机设备可以从该资源解析文件中提取待进行转码处理的关键资源数据。这里的关键资源数据可以是指与硬件支持能力不符的资源数据。应当理解,该计算机设备可以根据为虚拟游戏配置的配置参数,确定该关键资源数据的标示码,以及该关键资源数据的转码数据。可以理解的是,该计算机设备可以将该关键资源数据的数据属性由第一格式属性(例如,硬件不支持的资源格式)转换为第二格式属性(例如,硬件支持的资源格式),并将具备第二格式属性的关键资源数据确定为该关键资源数据对应的转码数据。进一步地,该计算机设备可以基于配置参数,确定标示码与转码数据之间的映射关系。这里的映射关系可以用于在启动该虚拟游戏的业务渲染线程时,直接根据预设的配置参数快速查找到该标示码所对应的转码数据。可以理解的是,该计算机设备在虚拟游戏运行时,无需在线上实时对游戏数据包中的与硬件支持能力不符的关键资源数据进行资源转换,而是根据配置参数,确定关键资源数据的标示码,以快速查找到对应的转码数据,从而可以有效避免资源转换引起的卡顿和延迟,提高了游戏运行的流畅度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构的结构示意图;
图2是本申请实施例提供的一种进行数据交互的场景示意图;
图3是本申请实施例提供的一种数据处理方法的流程示意图;
图4是本申请实施例提供的一种确定资源解析文件的场景示意图;
图5是本申请实施例提供的一种提取关键资源数据的场景示意图;
图6是本申请实施例提供的一种数据处理方法的流程示意图;
图7是本申请实施例提供的一种启动虚拟游戏的业务渲染线程的场景示意图;
图8是本申请实施例提供的一种与文件缓存系统相关联的方法流程示意图;
图9是本申请实施例提供的一种数据处理装置的结构示意图;
图10是本申请实施例提供的一种数据处理装置的结构示意图;
图11是本申请实施例提供的一种计算机设备的示意图;
图12是本申请实施例提供的一种数据处理系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例涉及云技术(cloud technology),云计算(cloud computing)和云游戏(cloud gaming)。其中,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云计算是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
云游戏又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。
请参见图1,图1是本申请实施例提供的一种网络架构的结构示意图。如图1所示,该网络架构可以包括服务器1000和用户终端集群。该用户终端集群可以包括一个或者多个用户终端,这里将不对用户终端的数量进行限制。如图1所示,具体可以包括用户终端100a、用户终端100b、用户终端100c、…、用户终端100n。如图1所示,用户终端100a、用户终端100b、用户终端100c、…、用户终端100n可以分别与上述服务器1000进行网络连接,以便于每个用户终端可以通过该网络连接与服务器1000进行数据交互。
其中,该用户终端集群中的每个用户终端均可以包括:智能手机、平板电脑、笔记本电脑、桌上型电脑、可穿戴设备、智能家居、头戴设备等具有数据处理功能的智能终端。应当理解,如图1所示的用户终端集群中的每个用户终端与上述图1所示的服务器1000均可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
如图1所示,本申请实施例中的服务器1000可以为该应用客户端对应的服务器。该服务器1000可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
为便于理解,本申请实施例可以在图1所示的多个用户终端中选择一个用户终端作为目标用户终端。例如,本申请实施例可以将图1所示的用户终端100a作为目标用户终端。该目标用户终端可以为虚拟游戏(例如,云游戏)中的玩家用户对应的玩家用户终端。此处,玩家用户可以是指已经体验过云游戏或请求体验云游戏的用户。此时,该目标用户终端可以与服务器1000(例如,云服务器)之间实现数据交互。
其中,云游戏的处理流程可以包括:(1)在用户终端100a侧所执行的云游戏的处理流程。一方面,用户终端100a通过与服务器1000进行交互,获取云游戏相关的各种页面,此处的页面例如包括云服务页面、云游戏视频的页面、云游戏的游戏页面及云剪辑页面等等;并向玩家用户展示这些页面。另一方面,用户终端100a可以响应玩家用户在这些页面中的各种操作,该操作例如包括请求体验云游戏的操作、针对云游戏执行的云试玩操作、云剪辑操作等等;并将这些操作所对应的业务请求发送至服务器1000。例如,此处的业务请求可以包括页面获取请求、操作请求等等。(2)在服务器1000侧所执行的云游戏的处理流程。服务器1000通过与用户终端100a进行交互,接收用户终端100a的各种业务请求为玩家用户提供相应的云服务。例如,该服务器1000所提供的云服务可以包括为用户终端100a提供所需的云游戏相关的各种页面,云剪辑服务,对云试玩视频的管理服务,云评论服务等等。
可以理解的是,本申请实施例中的计算机设备(例如,服务器1000)可以通过云技术,预先对虚拟游戏的游戏数据包中与硬件支持能力不符的关键资源数据进行转码处理,以得到该关键资源数据对应的转码数据,进而可以在虚拟游戏的运行过程中,能够直接利用查询到的转码数据替换原有的关键资源数据,不涉及资源转换,从而可以有效避免资源转换引起的卡顿和延迟,提高游戏运行的流畅度。
为便于理解,进一步地,请参见图2,图2是本申请实施例提供的一种进行数据交互的场景示意图。如图2所示,本申请实施例中的计算机设备可以具有离线转换资源数据的功能。该计算机设备可以为图1所示的服务器1000(例如,云服务器)。
应当理解,本申请实施例的虚拟游戏可以为云游戏(例如,“天涯明月刀”游戏)。在该虚拟游戏运行之前,该计算机设备可以获取由开发用户对应的用户终端所上传该虚拟游戏的游戏数据包(例如,图2所示的游戏数据包20Y)。这里的开发用户对应的用户终端可以为上述图1所示的用户终端集群中的任意一个用户终端,例如,用户终端100b。如图2所示,本申请实施例中的游戏数据包20Y可以包括n个文件,这里的n为正整数,具体可以包括文件1、文件2、文件3、…、文件n。
进一步地,该计算机设备可以对游戏数据包20Y进行解析处理,以得到资源解析文件。其中,这里的资源解析文件可以是指与该虚拟游戏相关联的游戏引擎所支持的文件类型对应的文件,换言之,本申请实施例可以将该游戏引擎在该游戏数据包中所解析出的有效资源文件称之为资源解析文件。
其中,该计算机设备从游戏数据包中所解析出的资源解析文件可以包括多个,为便于阐述,本申请实施例中的资源解析文件以文件2为例,用以阐述计算机设备对资源解析文件中的关键资源数据进行资源转换的过程。
可以理解的是,该计算机设备可以从文件2这一资源解析文件中提取出待进行转码处理的关键资源数据。其中,本申请实施例可以将关键资源数据的数据属性称之为第一格式属性。这里的第一格式属性可以为该计算机设备的物理硬件(例如,GPU)所不支持的资源格式,或者为硬件支持的低效率的资源格式。进一步地,该计算机设备可以基于虚拟游戏对应的配置参数,确定关键资源数据的标示码。其中,这里的配置参数可以用于将关键资源数据映射为唯一的描述码(即标示码)。可以理解的是,该计算机设备可以基于该配置参数,获取标示码变换规则。例如,这里的标示码变换规则可以为任意一种哈希算法,常用哈希算法可以包括md5,sha256,sha512等。
应当理解,该计算机设备可以基于配置参数,将关键资源数据的数据属性由第一格式属性转换为第二格式属性,进而可以将具备第二格式属性的关键资源数据确定为关键资源数据对应的转码数据。这里的第二格式属性可以是指该计算机设备的物理硬件所支持的数据属性。例如,若计算机设备所提取的关键资源数据(例如,纹理数据)的数据属性为ASTC纹理格式属性,该计算机设备的物理硬件所支持纹理数据的数据属性为DXTC纹理格式属性,则该计算机设备可以将该关键资源数据的数据属性由ASTC纹理格式转换为DXTC纹理格式属性。可选的,若计算机设备所提取的关键资源数据(例如,纹理)的数据属性为非压缩纹理属性,则该计算机设备可以将该关键资源数据的数据属性由非压缩纹理属性转换为压缩纹理属性。
进一步地,该计算机设备可以基于配置参数,确定关键资源数据的标示码以及该关键资源数据对应的转码数据之间的映射关系。这里的映射关系用于在启动虚拟游戏的业务渲染线程时,根据配置参数查找到标示码对应的转码数据。可以理解的是,该计算机设备可以将该配置参数、标示码以及转码数据存储至图2所示的离线资源数据库中,进而可以在该计算机设备启动该虚拟游戏的业务渲染线程时,可以直接根据该虚拟游戏对应的配置参数,在图2所示的离线资源数据库中快速查找到与硬件支持能力不符的目标资源数据所对应的转码数据。这里的目标资源数据可以是通过与业务渲染线程相关联的物理硬件所对应的驱动组件,从图2所示的游戏数据包20Y中所获取的具备第一格式属性的资源数据。
其中,图2所示的计算机设备可以离线对游戏数据包中的关键资源数据进行资源转换,并可以根据配置参数,将转化后的转码数据、以及用于唯一描述关键资源数据的标示码存储至离线资源数据库中。在该计算机设备运行该虚拟游戏时,该计算机设备在通过驱动组件解析出与硬件支持能力不符的目标资源数据时,无需在线上实时对目标资源数据进行资源转换,可以直接根据预设的配置参数,确定目标资源数据的目标标示码,从而可以快速在离线资源数据库中查找到与该目标标示码相同的标示码所对应的转码数据,进而可以通过物理硬件对该转码数据进行图像渲染,以完成业务渲染线程对应的绘图任务。整个运行过程中不涉及资源转换,进而可以有效避免资源转换所引起的卡顿与延迟,提高了该虚拟游戏运行的流畅度以及玩家用户的用户体验。当然,在本申请实施例中,当游戏数据包中存在大量与硬件支持能力不符的目标资源数据时,将这些目标资源数据替换为对应的转码数据的速度相较于资源转换的速度有了极大的提升,因此,该计算机设备的物理硬件能够接收到足量的绘图指令,进而使得硬件资源的有效利用率得以提升。
其中,计算机设备在获取到虚拟游戏的游戏数据包时,离线对游戏数据包中的关键资源数据进行资源转换并存储的具体实现方式可以参见下述图3-图8所对应的实施例。
进一步地,请参见图3,图3是本申请实施例提供的一种数据处理方法的流程示意图。如图3所示,该方法可以由具有离线转换资源数据功能的计算机设备执行,该计算机设备可以为上述图1所示的服务器1000执行,该方法至少可以包括以下步骤S101-步骤S104:
步骤S101,获取虚拟游戏的游戏数据包,对游戏数据包进行解析处理,得到资源解析文件。
具体地,具有离线转换资源数据功能的计算机设备(例如,云服务器)可以对虚拟游戏的游戏数据包所对应的安装目录进行扫描,以得到游戏数据包。这里的安装目录是指该游戏数据包所存放的地址。进一步地,该计算机设备可以对游戏数据包中的每个文件进行解析处理,得到每个文件的文件类型。其中,这里对游戏数据包中的每个文件进行解析处理可以通过调用虚拟游戏的离线资源解析组件进行解析处理,还可以采用其他方式进行解析处理,在此不做限定。其中,这里的离线资源解析组件可以为用于对游戏数据包进行解析处理的游戏资源解析工具。进一步地,该计算机设备可以在每个文件的文件类型中,获取与关键文件类型相匹配的文件类型,将获取到的文件类型所对应的文件确定为资源解析文件。
应当理解,本申请实施例中的应用场景之一可以体现在云游戏后台服务器端的多游戏并发场景。换言之,该计算机设备可以并行运行多个虚拟游戏。例如,这里的虚拟游戏可以是指电子游戏。该虚拟游戏可以包括射击类游戏、竞技类游戏以及跑酷类游戏等。例如,该计算机设备可以并行运行虚拟游戏a,虚拟游戏b,虚拟游戏c,…,虚拟游戏x等。
当开发用户使用上述图1所示的用户终端集群中的任意一个用户终端(例如,用户终端100a),将一个新的虚拟游戏(例如,虚拟游戏y)的游戏数据包上传至该计算机设备时,该计算机设备可以下载该虚拟游戏y,进而可以通过扫描该游戏数据包的安装目录,得到该游戏数据包。例如,该虚拟游戏y可以为“天涯明月刀”游戏。
可以理解的是,该游戏数据包中可以包括由多个文件构成的文件列表。如图2所示的游戏数据包20Y可以包括文件1、文件2、文件3、…、文件n。这里的n为正整数。此时,该计算机设备可以调用该虚拟游戏y对应的离线资源解析组件,按照文件列表对游戏数据包中的每个文件进行解析处理,从而可以得到每个文件的文件类型。
其中,游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,可以按游戏设计的要求顺序地调用这些图像,声音,动画等游戏资源。常见游戏引擎可以包括unity3D引擎、Athena引擎、Serious引擎等。可以理解的是,不同的游戏引擎所支持的文件类型也就不同。一个游戏引擎可以支持多个关键文件类型。
例如,unity3D引擎所支持的文件类型可以统称为关键文件类型。一个关键文件类型可以对应一个待匹配字符串。这里的关键文件类型的数量可以为N个,这里的N为正整数。以3个为例,具体可以包括文件类型1,文件类型2以及文件类型3。其中,文件类型1对应的待匹配字符串可以为待匹配字符串1(例如,“UnityRaw”),文件类型2对应的待匹配字符串可以为待匹配字符串2(例如,“UnityArchive”),文件类型3对应的待匹配字符串可以为待匹配字符串3(例如,“UnityFS”)。
可以理解的是,一个文件的文件类型是从对应文件的文件头中提取的固定字符串所确定的,一个文件的文件头是基于该虚拟游戏的游戏引擎所支持的关键文件类型所提取到的。换言之,该计算机设备可以根据虚拟游戏(例如,虚拟游戏y)的游戏引擎所支持的关键文件类型,逐一提取每个文件的文件头,进而可以基于文件头中的固定字符串,确定对应文件的文件类型。
进一步地,该计算机设备可以在每个文件的文件类型中,获取目标文件类型,并且可以将该目标文件类型对应的固定字符串作为目标固定字符串。进一步地,该计算机设备可以将目标固定字符串分别与这N个关键文件类型对应的待匹配字符串进行字符串比对,得到字符串比对结果。若该字符串比对结果指示这N个待匹配字符串中,存在与目标固定字符串相同的待匹配字符串,则该计算机设备可以将与该目标固定字符串相同的待匹配字符串作为匹配字符串,进而可以将该匹配字符串所对应的文件确定为资源解析文件。可选的,若该字符串比对结果指示这N个待匹配字符串中,不存在与目标固定字符串相同的待匹配字符串,则该计算机设备可以将该目标固定字符串对应的文件类型确定为该游戏引擎所不支持的文件类型,进而可以确定该目标固定字符串所对应的文件不是资源解析文件。
为便于理解,请参见图4,图4是本申请实施例提供的一种确定资源解析文件的场景示意图。如图4所示,本申请实施例中的计算机设备可以为具有离线转换资源数据功能的服务器,该服务器可以为上述图1所示的服务器1000。
应当理解,该计算机设备可以调用该虚拟游戏(例如,“天涯明月刀”游戏)对应的离线资源解析组件,按照文件列表对游戏数据包中的每个文件进行解析处理,以得到解析处理结果(例如,图4所示的解析处理结果4)。其中,该解析处理结果4中可以包括虚拟游戏的游戏数据包中每个文件的文件类型。例如,该解析处理结果4中可以指示:文件1的文件类型为文件类型1,文件2的文件类型为文件类型2,文件3对应的文件类型为文件类型3,…,文件类型n的文件类型为文件类型n。
其中,一个文件的文件类型是该计算机设备从对应文件的文件头中提取的固定字符串所确定的,一个文件的文件头是该计算机设备基于该虚拟游戏的游戏引擎(例如,unity3D引擎)所支持的关键文件类型所提取到的。可以理解的是,一个关键文件类型可以对应一个待匹配字符串。这里的关键文件类型的数量可以为N个,这里的N为正整数。如图4所示,本申请实施例中的N个待匹配字符串可以包括待匹配字符串1(例如,“UnityRaw”)、待匹配字符串2(例如,“UnityArchive”)、待匹配字符串3(例如,“UnityFS”)、…、以及待匹配字符串N。
可以理解的是,该计算机设备可以在每个文件的文件类型中,获取到文件1对应的文件类型1,进而可以将该文件类型1作为目标文件类型,并且可以将该文件类型1对应的固定字符串(例如,“UnityFS”)作为目标固定字符串。进一步地,该计算机设备可以将文件类型1对应的固定字符串分别与这N个待匹配字符串进行字符串比对,得到字符串比对结果(例如,字符串比对结果1)。可以理解的是,若该字符串比对结果1指示这N个待匹配字符串中,存在与文件类型1的固定字符串相同的待匹配字符串(例如,待匹配字符串3),此时,该计算机设备可以将待匹配字符串3作为匹配字符串,进而可以将该匹配字符串所对应的文件确定为资源解析文件。换言之,该计算机设备可以将文件1确定为资源解析文件(即游戏引擎所支持的有效资源文件)。
进一步地,该计算机设备可以在每个文件的文件类型中,继续遍历获取文件类型2,进而可以将文件类型2作为目标文件类型,并且可以将该文件类型2对应的固定字符串作为目标固定字符串。进一步地,该计算机设备可以将文件类型2对应的固定字符串分别与这N个待匹配字符串进行字符串比对,得到字符串比对结果(例如,字符串比对结果2)。若该字符串比对结果2指示这N个待匹配字符串中,不存在与文件类型2的固定字符串相同的待匹配字符串,此时,该计算机设备可以将该文件类型2确定为游戏引擎不支持的文件类型,进而可以确定该目标固定字符串对应的文件2不是资源解析文件。
以此类推,直到该计算机设备在每个文件的文件类型中获取到文件类型n,此时,该计算机设备可以得到与文件类型n的固定字符串相关联的字符串比对结果(例如,字符串比对结果n),进而可以基于该字符串比对结果n,确定该文件类型n对应的文件n是否为资源解析文件。这里将不再继续进行赘述。
其中,该计算机设备可以基于从游戏数据包中所提取的资源解析文件,生成与资源解析文件相关联的资源解析文件列表。可以理解的是,该资源解析文件列表中资源解析文件的数量可以包括多个,该计算机设备可以对该资源解析文件列表中的每个资源解析文件进行解析处理,以实现对每个资源解析文件的资源转换。本申请实施例可以以一个为例,便于后续在步骤S102-步骤S104中阐述对资源解析文件中的关键资源数据进行离线资源转换的过程。
步骤S102,从资源解析文件中提取待进行转码处理的关键资源数据。
其中,资源解析文件可以包括M个数据块,这里的M为正整数。一个数据块可以对应一个数据块头信息。具体地,该计算机设备可以将资源解析文件的文件类型作为资源文件类型,进而可以根据该资源文件类型的数据结构,对资源解析文件进行解析处理,得到结构填充信息。进一步地,该计算机设备可以用结构填充信息对数据结构进行填充处理,以得到资源解析文件的文件头信息以及M个数据块头信息。可以理解的是,该计算机设备可以基于M个数据块头信息,对M个数据块中的数据进行数据整合,得到资源解析文件对应的内存块。进一步地,该计算机设备可以基于文件头信息以及资源文件类型,对内存块进行解析处理,以得到内存资源数据,进而可以从内存资源数据中提取待进行转码处理的关键资源数据。
应当理解,该计算机设备所确定的资源解析文件可以为上述图4所示的文件1,本申请实施例可以将该文件1的文件类型(例如,“UnityFS”对应的文件类型)作为资源文件类型,进而可以根据该资源文件类型的数据结构,对资源解析文件进行解析处理,得到结构填充信息。可以理解的是,这里的结构填充信息可以包括资源解析文件的文件版本号、文件大小,压缩数据的大小,非压缩数据的大小等,以及每个数据块的偏移地址、大小、压缩与否、压缩格式等数据块的属性信息。
进一步地,该计算机设备可以用结构填充信息对数据结构进行填充处理,得到该资源解析文件的文件头信息以及M个数据块头信息。这里的文件头信息可以包括该资源解析文件的文件版本号、文件大小,压缩数据的大小,非压缩数据的大小等该资源解析文件对应的文件数据属性信息,这里的数据块属性信息可以包括数据块的偏移地址、大小、压缩与否、压缩格式等数据块的属性信息。
可以理解的是,该计算机设备可以从M个数据块头信息中,获取与压缩数据相关联的第一数据块头信息,将该第一数据块头信息所属的数据块作为第一类数据块。进一步地,该计算机设备可以对第一类数据块中的压缩数据进行解压处理,得到第一类数据块对应的解压数据,进而可以将第一类数据块对应的解压数据添加至资源解析文件对应的第一集合,与此同时,该计算机设备还可以从M个数据块头信息中,获取与非压缩数据相关联的第二数据块头信息,将该第二数据块头信息所属的数据块作为第二类数据块,且将该第二类数据块中的非压缩数据直接添加至该资源解析文件对应的第二集合。其中,第二类数据块与第一类数据块均属于M个数据块中的数据块。进一步地,该计算机设备可以将第一集合中的解压数据以及第二集合中的非压缩数据进行数据整合,得到资源解析文件对应的内存块。
应当理解,该计算机设备可以获取文件头信息中的文件版本号,进而可以基于文件版本号以及资源文件类型,对内存块进行解析处理,以得到内存资源数据。这里的内存资源数据可以包括纹理数据、顶点数据、动画数据、游戏脚本等资源数据。进一步地,该计算机设备可以在内存资源数据中,查找具备第一格式属性的内存资源数据,并且可以将查找到的具备第一格式属性的内存资源数据,确定为待进行转码处理的关键资源数据。这里的第一格式属性可以为该计算机设备的物理硬件(例如,图形处理器)所不支持的资源格式,或者为硬件支持的低效率的资源格式。
为便于理解,进一步地,请参见图5,图5是本申请实施例提供的一种提取关键资源数据的场景示意图。本申请实施例中的具有离线转换资源数据功能的计算机设备可以为上述图1所示的服务器1000,该计算机设备从虚拟游戏的游戏数据包中所确定的资源解析文件可以为图5所示的资源解析文件51。
如图5所示,该资源解析文件51中可以包括M个数据块。这里的M为正整数。其中,一个数据块对应一个数据块头信息。例如,这M个数据块可以包括数据块1、数据块2、数据块3、…以及数据块M。其中,数据块1对应的数据块头信息可以为图5所示的数据块头信息1,且该数据块1中的数据可以为图5所示的数据1;数据块2对应的数据块头信息可以为图5所示的数据块头信息2,且该数据块2中的数据可以为图5所示的数据2;…;数据块M对应的数据块头信息可以为图5所示的数据块头信息M,且该数据块M中的数据可以为图5所示的数据M。
可以理解的是,该计算机设备可以从M个数据块头信息中,获取与压缩数据相关联的第一数据块头信息,并且可以将该第一数据块头信息所属的数据块作为第一类数据块。此时,该计算机设备可以对第一类数据块中的压缩数据进行解压处理,得到第一类数据块对应的解压数据,进而可以将第一类数据块对应的解压数据添加至资源解析文件51对应的第一集合(例如,图5所示的集合510)。例如,该计算机设备从M个数据块头信息中获取的第一数据块头信息可以为图5所示的数据块头信息1,那么,该数据块头信息1所属的数据块(例如,数据块1)可以作为第一类数据块。此时,该计算机设备可以对该数据块1中的压缩数据(例如,图5所示的数据1)进行解压处理,得到数据块1对应的解压数据,进而可以将该数据块1对应的解压数据添加至图5所示的集合510。
此外,该计算机设备还可以从M个数据块头信息中,获取与非压缩数据相关联的第二数据块头信息,并且可以将该第二数据块头信息所属的数据块作为第二类数据块。此时,该计算机设备可以直接将该第二类数据块中的非压缩数据添加至资源解析文件51对应的第二集合(例如,图5所示的集合520)。例如,该计算机设备从M个数据块头信息中获取的第二数据块头信息可以为图5所示的数据块头信息2,那么,该数据块头信息2所属的数据块(例如,数据块2)可以作为第二类数据块。此时,该计算机设备可以直接将该数据块2中的非压缩数据添加至图5所示的集合520中。
应当理解,该计算机设备在将资源解析文件51中的M个数据块中的数据均添加至对应集合后,可以将集合510中的解压数据以及集合520中的非压缩数据进行数据整合,进而可以得到资源解析文件51对应的内存块。进一步地,该计算机设备可以从该资源解析文件51中的文件头信息中,获取该资源解析文件51的文件版本号,进而可以基于获取到的文件版本号以及该资源解析文件51对应的资源文件类型(例如,“UnityFS”对应的文件类型),对内存块进行解析处理,以得到内存资源数据。这里的内存资源数据可以包括纹理数据、顶点数据、动画数据、游戏脚本等资源数据。进一步地,该计算机设备可以在内存资源数据中,查找具备第一格式属性的内存资源数据,并且可以将查找到的具备第一格式属性的内存资源数据,确定为待进行转码处理的关键资源数据(例如,纹理数据等)。这里的第一格式属性可以为该计算机设备的物理硬件(例如,图形处理器)所不支持的资源格式,或者为硬件支持的低效率的资源格式。
步骤S103,基于虚拟游戏对应的配置参数确定关键资源数据的标示码,基于配置参数将关键资源数据的数据属性由第一格式属性转换为第二格式属性,将具备第二格式属性的关键资源数据确定为关键资源数据对应的转码数据。
具体地,该计算机设备可以基于虚拟游戏对应的配置参数,获取标示码变换规则,进而可以通过标示码变换规则,对关键资源数据进行变换处理,以得到关键资源数据的标示码。进一步地,该计算机设备可以基于配置参数获取属性变换规则。属性变换规则可以用于指示关键资源数据的第一格式属性与物理硬件支持的第二格式属性之间的转码关系。应当理解,该计算机设备可以根据属性变换规则,获取具有该转码关系的转码组件,进而可以调用该转码组件,对关键资源数据进行解码处理,以得到关键资源数据对应的明文数据。进一步地,该计算机设备可以将明文数据按照第二格式属性进行压缩处理,得到具备第二格式属性的关键资源数据,进而可以将具备第二格式属性的关键资源数据确定为关键资源数据对应的转码数据。
应当理解,本申请实施例中的配置参数可以用于获取标示码变换规则,以将关键资源数据映射为唯一的标示码。可以理解的是,例如,这里的标示码变换规则可以为任意一种哈希算法,哈希算法是一种以较短的信息来保证文件唯一性的标志,这种标志与文件的每一个字节都相关,而且难以找到逆向规律。因此,当原有文件发生改变时,其标示码也会发生改变,从而告诉文件使用者当前的文件已经不是你所需求的文件。常用哈希算法可以包括md5,sha256,sha512等。
可以理解的是,该计算机设备可以基于虚拟游戏对应的配置参数,获取标示码变换规则。比如,该计算机设备所确定的配置参数指示标示码的输出大小为512位,则该计算机设备所获取的标示码变换规则可以为sha512。进一步地,该计算机设备可以通过sha512这一标示码变换规则,对关键资源数据进行变换处理,以得到关键资源数据的标示码。
其中,本申请实施例中的转码组件(即转码工具)可以包括多个,不同的转码组件对应的转码关系不同。本申请实施例可以以3个为例,具体可以包括转码组件1、转码组件2以及转码组件3。例如,转码组件1可以用于将ASTC纹理格式属性的纹理数据转换为DXTC纹理格式属性的纹理数据;转码组件2可以用于将将ASTC纹理格式属性的纹理数据转换为BC7纹理格式属性的纹理数据;转码组件3可以用于将非压缩纹理属性的纹理数据转换为压缩纹理属性的纹理数据等。
可以理解的是,该计算机设备可以基于配置参数获取属性变换规则。比如,计算机设备所提取的关键资源数据(例如,纹理数据)的数据属性为ASTC纹理格式属性(即第一格式属性),而该计算机设备的物理硬件所支持的纹理数据的数据属性为DXTC纹理格式属性,此时,该计算机设备基于配置参数所获取的属性变换规则可以用于指示ASTC纹理格式属性与DXTC纹理格式属性之间的转码关系。应当理解,该计算机设备需要获取具有该转码关系的转码组件(例如,转码组件1),进而可以调用该转码组件1,对该关键资源数据进行解码处理,以得到关键资源数据对应的明文数据。进一步地,该计算机设备可以将明文数据按照DXTC纹理格式属性(即第二格式属性)进行压缩处理,得到具备DXTC纹理格式属性的纹理数据,进而可以将具备DXTC纹理格式属性的纹理数据确定为该纹理数据对应的转码数据。
其中,该计算机设备可以对关键资源数据进行资源转换,从而可以得到该关键资源数据对应的转码数据。可以理解的是,将关键资源数据转化为转码数据的过程可以视为资源优化的过程,以便于后续在线上运行虚拟游戏时,该计算机设备的平台软件和物理硬件对应的驱动组件能够快速查询到最优化资源,进而可以提高硬件资源的有效利用率以及提升虚拟游戏运行的流畅度。
步骤S104,基于配置参数,确定标示码与转码数据之间的映射关系。
具体地,该计算机设备可以基于配置参数,确定关键资源数据的标示码以及该关键资源数据对应的转码数据之间的映射关系。
可以理解的是,该计算机设备可以将配置参数、关键资源数据的标示码以及该关键资源数据对应的转码数据存储至该计算机设备的离线资源数据库。例如,关键资源数据(例如,纹理数据)对应的标示码可以为“2cfd45678”,该纹理数据的大小为1280×720,则存储至该关键资源数据的标示码和转码数据的文件的文件名可以为Tex_1280_720_2cfd45678。
在该计算机设备启动虚拟游戏的业务渲染线程时,可以通过物理硬件对应的驱动组件,从虚拟游戏对应的游戏数据包中获取具备第一格式属性的资源数据(即目标资源数据)。进一步地,该计算机设备可以根据虚拟游戏对应的配置参数,在离线资源数据库中查找目标资源数据对应的转码数据。
本申请实施例中,具有离线转换资源数据功能的计算机设备可以在虚拟游戏运行之前,通过离线资源解析组件,在虚拟游戏对应的游戏数据包中,分析与硬件支持能力不符的关键资源数据,进而可以根据配置参数,确定用于唯一表示该关键资源数据的标示码,并且可以将该关键资源数据进行转码处理,以得到与硬件支持能力相符的转码数据,进一步将该标示码与转码数据离线缓存至离线资源数据库中,以便于在后续虚拟游戏运行时,可以快速从离线资源数据库中查找到与硬件支持能力不符的资源数据(即目标资源数据)所对应的转码数据,进而可以有效避免资源转换所引起的卡顿与延迟,提高了虚拟游戏运行的流畅度以及玩家用户的用户体验。此外,由于查找转码数据的速度相较于资源转换的速度有了极大的提升,因此,该计算机设备的物理硬件能够接收到足量的绘图指令,进而使得硬件资源的有效利用率得以提升。
进一步地,请参见图6,图6是本申请实施例提供的一种数据处理方法的流程示意图。如图6所示,该方法可以由具有离线转换资源数据功能的计算机设备执行,该计算机设备可以为上述图1所示的服务器1000执行,该方法至少可以包括以下步骤S201-步骤S206:
步骤S201,在启动虚拟游戏的业务渲染线程时,通过与虚拟游戏相关联的游戏引擎,加载虚拟游戏的游戏数据包,将游戏数据包中的资源数据发送至与业务渲染线程相关联的物理硬件所对应的驱动组件。
具体地,玩家用户对应的用户终端(即玩家用户终端)可以响应玩家用户针对虚拟游戏的触发操作,生成一个与该虚拟游戏相关联的访问请求。该玩家用户终端可以为上述图1所示的用户终端集群中的任意一个用户终端,例如,用户终端100a)。其中,这里的触发操作可以包括点击、长按等接触性操作,也可以包括语音、手势等非接触性操作,在此不做限定。此时,该玩家用户终端可以向计算机设备(例如,云服务器)发送该访问请求,以使该计算机设备可以基于该访问请求,启动该虚拟游戏的业务渲染线程。进一步地,该计算机设备可以通过与该虚拟游戏相关联的游戏引擎(例如,unity3D引擎),加载该虚拟游戏的游戏数据包,进而可以通过该游戏引擎对该游戏数据包进行解析处理,以得到该游戏数据包中的资源数据。此时,该计算机设备可以将该资源数据发送至物理硬件(例如,图像处理器)对应的驱动组件。
其中,计算机设备在虚拟游戏运行时获取游戏数据包中的资源数据的具体实施方式,可以参见上述图3所对应实施例中通过离线资源解析组件获取游戏数据包中的内存资源数据的具体实施方式,在此将不再继续进行赘述。
可以理解的是,物理硬件对应的驱动组件(即驱动程序,例如,GPU驱动)具有检查游戏数据包中的资源数据的数据属性的功能。其中,该驱动组件可以提供各种不同功能的函数供计算机设备调用。例如,openGLES函数是一个跨平台的,功能完善的2D和3D图形应用程序接口。可以理解的是,不同的函数提供的功能不一样,例如,纹理函数可以用于将游戏数据包中的资源数据的纹理数据传输至驱动组件,在参数中可以包括纹理数据的数据属性(例如,ASTC纹理格式属性)。
步骤S202,通过驱动组件检查资源数据的数据属性是否为第二格式属性。
具体地,该计算机设备可以通过游戏引擎,查询物理硬件支持的数据属性为第二格式属性,进而可以基于该第二格式属性,对该游戏数据包中的资源数据的数据属性进行检查。
可以理解的是,若计算机设备执行步骤S202之后,检查到资源数据中存在数据属性为具备第一格式属性的目标资源数据(即与硬件支持能力不符的资源数据),则该计算机设备可以执行步骤S203。
步骤S203,通过驱动组件从资源数据中,获取具备第一格式属性的目标资源数据,根据虚拟游戏对应的配置参数,确定目标资源数据对应的目标标示码,查询与目标标示码相同的标示码。
具体地,该计算机设备可以通过驱动组件,从游戏数据包的资源数据中获取该目标资源数据,根据虚拟游戏对应的配置参数,获取标示码变换规则,进而可以通过标示码变换规则,对目标资源数据进行变换处理,以得到目标资源数据的目标标示码。进一步地,该计算机设备可以在离线资源数据库中查询与该目标标示码相同的标示码。可以理解的是,离线资源数据库中存储的标示码可以为离线确定的关键资源数据的标示码。这里的关键资源数据为从游戏数据包中的资源解析文件中所提取到的具备第一格式属性的资源数据。
步骤S204,基于查询到的标示码所对应的映射关系,确定标示码对应的转码数据。
具体地,该计算机设备在查询到与目标标示码相同的标示码时,可以基于查询到的标示码所对应的映射关系,确定该标示码对应的转码数据。
步骤S205,通过驱动组件将转码数据发送至物理硬件。
具体地,该计算机设备可以通过驱动组件,将查询到的转码数据发送至该计算机设备的物理硬件,以使该物理硬件对该转码数据进行图像渲染。
可以理解的是,若计算机设备执行步骤S202之后,检查到资源数据中存在数据属性为第二格式属性的业务资源数据,则该计算机设备可以执行步骤S206。
步骤S206,通过驱动组件从资源数据中,获取具备第二格式属性的业务资源数据时,且将业务资源数据发送至物理硬件,以使物理硬件对业务资源数据进行图像渲染。
可以理解的是,在物理硬件接收到驱动组件发送的与转码数据相关联的第一绘图指令时,该计算机设备可以将目标资源数据替换为转码数据,并且可以对转码数据进行图像渲染,得到第一渲染数据。与此同时,在物理硬件接收到驱动组件发送的与业务资源数据相关联的第二绘图指令时,该计算机设备可以对业务资源数据进行图像渲染,得到第二渲染数据。进一步地,该计算机设备可以基于第一渲染数据和第二渲染数据,生成与该虚拟游戏相关联的图像帧,进而可以对图像帧进行压缩处理,得到图像帧对应的压缩图像。此时,该计算机设备可以将压缩图像发送至玩家用户对应的用户终端,以使该用户终端输出该压缩图像。
为便于理解,进一步地,请参见图7,图7是本申请实施例提供的一种启动虚拟游戏的业务渲染线程的场景示意图。如图7所示,本申请实施例中的用户终端71可以为虚拟游戏中的玩家用户对应的玩家用户终端,该用户终端71可以为上述图1所示的用户终端集群中的任意一个用户终端,例如,用户终端100a。本申请实施例中的具有离线转换资源数据功能的计算机设备可以为图7所示的服务器72,该服务器72可以为上述图1所示的服务器1000。
如图7所示,离线资源数据库中存储的标示码可以为离线确定的关键资源数据的标示码。这里的关键资源数据为该服务器72,从游戏数据包70Y中的资源解析文件所提取到的具备第一格式属性的资源数据。
应当理解,玩家用户对应的用户终端71可以响应玩家用户针对虚拟游戏(例如,“天涯明月刀”游戏)的触发操作(例如,点击操作),生成一个与该虚拟游戏相关联的访问请求。此时,该用户终端71可以向服务器72(例如,云服务器)发送该访问请求。在该服务器72接收到该访问请求时,该服务器72可以启动该虚拟游戏的业务渲染线程。
可以理解的是,该服务器72可以通过与该虚拟游戏相关联的游戏引擎(例如,unity3D引擎),加载该虚拟游戏的游戏数据包(例如,图7所示的游戏数据包70Y)。与此同时,该服务器72还可以通过游戏引擎查询物理硬件所支持的数据属性(即第二格式属性)。进一步地,该服务器72可以通过该游戏引擎对该游戏数据包70Y进行解析处理,以得到该游戏数据包70Y中的资源数据。此时,该服务器72可以将该资源数据发送至物理硬件(例如,图像处理器)对应的驱动组件,以使该驱动组件可以检查该资源数据的数据属性。
应当理解,在该驱动组件检查到资源数据中存在具备该第二格式属性的资源数据(例如,图7所示的资源数据700c)时,该服务器72可以将具备第二格式属性的资源数据称之为业务资源数据。此时,该服务器72可以通过驱动组件,直接生成与资源数据700c相关联的绘图指令(即第二绘图指令),进而将该资源数据700c和该第二绘图指令一并发送至物理硬件(例如,GPU)。在物理硬件接收到驱动组件发送的第二绘图指令时,该服务器72可以通过物理硬件对该资源数据700c进行图像渲染,得到渲染数据710c(即第一渲染数据)。
可以理解的是,在该驱动组件检查到资源数据中存在具备该第一格式属性的资源数据(例如,图7所示的资源数据700d)时,该服务器72可以将具备第一格式属性的资源数据称之为目标资源数据。此时,该服务器72无需在线上对资源数据700d进行资源转换,而是在离线资源数据库中快速查询该资源数据700d对应的转码数据(例如,图7所示的转码数据710d)。可以理解的是,该服务器72可以根据虚拟游戏对应的配置参数,获取标示码变换规则,进而可以通过标示码变换规则,对资源数据700d进行变换处理,以得到资源数据700d的目标标示码。进一步地,该服务器72可以在图7所示的离线资源数据库中,查询与目标标示码相同的标示码。在查询到与目标标示码相同的标示码时,该服务器72可以基于查询到的标示码所对应的映射关系,获取到该标示码对应的转码数据710d。此时,该服务器72可以通过驱动组件,生成与转码数据710d相关联的绘图指令(即第一绘图指令),进而将该转码数据710d和该第一绘图指令一并发送至物理硬件(例如,GPU)。在物理硬件接收到驱动组件发送的第一绘图指令时,该服务器72可以将原有的资源数据700d替换为转码数据710d,且通过物理硬件对该转码数据710d进行图像渲染,以得到渲染数据720d(即第二渲染数据)。
进一步地,该服务器72可以基于第一渲染数据和第二渲染数据,生成与该虚拟游戏相关联的图像帧。为了便于传输,该服务器72可以对图像帧进行压缩处理(即编码处理),以得到图像帧对应的压缩图像,进而可以将该压缩图像以编码数据流的形式传输至用户终端71。当该用户终端71接收到该压缩图像时,可以对该压缩图像进行解码处理,从而可以还原出该压缩图像对应的图像帧,进而可以将图像帧渲染输出至该用户终端71的显示界面。
本申请实施例中,在运行该虚拟游戏时,该计算机设备可以通过物理硬件对应的驱动组件,获取与硬件支持能力不符的目标资源数据,进而可以获取该虚拟游戏的配置参数,获取与离线处理时相同的标示码变换规则,以确定目标资源数据的目标标示码。进一步地,该计算机设备可以通过目标标示码,快速在离线资源数据库中查找与该目标标示码相同的标示码,从而可以基于查找到的标示码的映射关系,确定该标示码对应的转码数据,进而可以通过物理硬件对该转码数据进行图像渲染,以完成业务渲染线程对应的绘图任务。整个运行过程中不涉及资源转换,从而可以有效避免资源转换所引起的卡顿与延迟,提高了虚拟游戏运行的流畅度以及玩家用户的用户体验。当然,在本申请实施例中,当游戏数据包中存在大量与硬件支持能力不符的目标资源数据时,将这些目标资源数据替换为标示码对应的转码数据的速度相较于资源转换的速度有了极大的提升,因此,该计算机设备的物理硬件能够接收到足量的绘图指令,进而使得硬件资源的有效利用率得以提升。
进一步地,请参见图8,图8是本申请实施例提供的一种与文件缓存系统相关联的方法流程示意图。本申请实施例中的计算机设备可以具有离线转换资源数据功能,该计算机设备可以为上述图1所示的服务器1000(例如,云服务器)。可以理解的是,本申请实施例中的所提供的数据处理方法可以包括离线资源转换处理流程以及虚拟游戏运行处理流程。
可以理解的是,在虚拟游戏运行之前,该计算机设备可以执行步骤S810,以开始执行离线资源转换处理流程。应当理解,该计算机设备可以执行步骤S811,对该虚拟游戏的游戏数据包所对应的安装目录进行扫描,从而可以得到该游戏数据包中的每个文件,进而可以得到由这些文件所构成的文件列表。进一步地,该计算机设备可以执行步骤S812,对文件列表中的每个文件进行解析处理,从而可以得到每个文件的文件类型,进而可以确定出与该虚拟游戏相关联的游戏引擎所支持的资源解析文件,以得到由资源解析文件所构成的资源解析文件列表。此时,该计算机设备可以执行步骤S813,对资源解析文件列表中的每个资源解析文件进行解析处理,进而可以得到每个资源解析文件中的内存资源数据。应当理解,该计算机设备可以执行步骤S814,从内存资源数据中提取与硬件支持能力不符的关键资源数据,进而可以执行步骤S815,根据配置参数,确定关键资源数据的标示码。与此同时,该计算机设备还可以执行步骤S816,根据配置参数,对关键资源数据进行转码处理,以得到该关键资源数据对应的转码数据。进一步地,该计算机设备可以执行步骤S817,根据文件缓存系统,将配置参数、标示码以及标示码对应的转码数据存储至离线资源数据库中。
在虚拟游戏运行时,该计算机设备可以执行步骤S818,启动该虚拟游戏的业务渲染线程,进而可以执行步骤S819,通过与虚拟游戏相关联的游戏引擎,加载该虚拟游戏的游戏数据包,并且可以通过游戏引擎查询该计算机设备的物理硬件所支持的数据属性(即第二格式属性)。可以理解的是,该计算机设备可以通过游戏引擎,对游戏数据包进行解析处理得到资源数据。进一步地,该计算机设备可以执行步骤S820,通过驱动组件接收游戏引擎所解析出的资源数据,进而可以执行步骤S821,通过驱动组件检查资源数据的数据属性。可以理解的是,该计算机设备可以从资源数据中获取与硬件支持能力不符的目标资源数据(即具备第一格式属性的资源数据),进而可以执行步骤S822,通过虚拟游戏的配置参数,确定目标资源数据的目标标示码。进一步地,该计算机设备可以通过文件缓存系统,执行步骤S823,在离线资源数据库中,根据目标标示码查找目标资源数据对应的转码数据。此时,该计算机设备可以执行步骤S824,通过驱动组件,生成与转码数据相关联的绘图指令(即第一绘图指令),进而可以将第一绘图指令与转码数据发送至物理硬件,以使计算机设备通过物理硬件可以执行步骤S825,基于第一绘图指令,完成与转码数据相关联的绘图任务。可以理解的是,在该计算机设备从资源数据中获取与硬件支持能力相符的的业务资源数据(即具备第二格式属性的资源数据)时,该计算机设备可以直接执行步骤S824,通过驱动组件,生成与业务资源数据相关联的绘图指令(即第二绘图指令),进而可以直接将第二绘图指令与业务资源数据发送至物理硬件,以使计算机设备通过物理硬件可以执行步骤S825,基于第二绘图指令,完成与业务资源数据相关联的绘图任务。
本申请实施例中,计算机设备可以离线对游戏数据包中的关键资源数据进行资源转换,并可以根据配置参数,将转化后的转码数据、以及用于唯一描述关键资源数据的标示码存储至离线资源数据库中。在该计算机设备运行该虚拟游戏时,该计算机设备在通过驱动组件解析出与硬件支持能力不符的目标资源数据时,无需在线上实时对目标资源数据进行资源转换,可以直接根据预设的配置参数,确定目标资源数据的目标标示码,从而可以快速在离线资源数据库中查找到与该目标标示码相同的标示码所对应的转码数据,进而可以通过物理硬件对该转码数据进行图像渲染,以完成业务渲染线程对应的绘图任务。整个运行过程中不涉及资源转换,进而可以有效避免资源转换所引起的卡顿与延迟,提高了该虚拟游戏运行的流畅度以及玩家用户的用户体验。当然,在本申请实施例中,当游戏数据包中存在大量与硬件支持能力不符的目标资源数据时,将这些目标资源数据替换为对应的转码数据的速度相较于资源转换的速度有了极大的提升,因此,该计算机设备的物理硬件能够接收到足量的绘图指令,进而使得硬件资源的有效利用率得以提升。
进一步地,请参见图9,图9是本申请实施例提供的一种数据处理装置的结构示意图。该数据处理装置1可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该数据处理装置1为一个应用软件;该数据处理装置1可以用于执行本申请实施例提供的方法中的相应步骤。如图9所示,该数据处理装置1可以运行于具有离线转换资源数据功能的计算机设备,该计算机设备可以为上述图1所对应实施例中的服务器1000。该数据处理装置1可以包括:解析处理模块10,关键数据提取模块20,格式转换模块30,映射关系确定模块40,存储模块50以及查找模块60。
该解析处理模块10,用于获取虚拟游戏的游戏数据包,对游戏数据包进行解析处理,得到资源解析文件。
其中,该解析处理模块10包括:扫描单元101,解析处理单元102以及资源文件确定单元103。
该扫描单元101,用于对虚拟游戏的游戏数据包所对应的安装目录进行扫描,得到游戏数据包;
该解析处理单元102,用于调用虚拟游戏的离线资源解析组件,对游戏数据包中的每个文件进行解析处理,得到每个文件的文件类型;
该资源文件确定单元103,用于在每个文件的文件类型中,获取与关键文件类型相匹配的文件类型,将获取到的文件类型所对应的文件确定为资源解析文件。
其中,一个文件的文件类型是从对应文件的文件头中提取的固定字符串所确定的;一个文件的文件头是基于虚拟游戏的游戏引擎所支持的关键文件类型所提取到的;关键文件类型的数量为N个;N为正整数;一个关键文件类型对应一个待匹配字符串;
该资源文件确定单元103包括:字符串确定子单元1031,字符串比对子单元1032以及资源文件确定子单元1033。
该字符串确定子单元1031,用于在每个文件的文件类型中,获取目标文件类型,将目标文件类型对应的固定字符串作为目标固定字符串;
该字符串比对子单元1032,用于将目标固定字符串分别与N个待匹配字符串进行字符串比对,得到字符串比对结果;
该资源文件确定子单元1033,用于若字符串比对结果指示N个待匹配字符串中,存在与目标固定字符串相同的待匹配字符串,则将与目标固定字符串相同的待匹配字符串作为匹配字符串,将匹配字符串所对应的文件确定为资源解析文件。
其中,该字符串确定子单元1031,字符串比对子单元1032以及资源文件确定子单元1033的具体实现方式可以参见上述图4所对应实施例中对资源解析文件的描述,这里将不再继续进行赘述。
其中,该扫描单元101,解析处理单元102以及资源文件确定单元103的具体实现方式可以参见上述图3所对应实施例中对步骤S101的描述,这里将不再继续进行赘述。
该关键数据提取模块20,用于从资源解析文件中提取待进行转码处理的关键资源数据。
其中,资源解析文件包括M个数据块;M为正整数;一个数据块对应一个数据块头信息;
该关键数据提取模块20包括:填充处理单元201,数据整合单元202以及关键数据提取单元203。
该填充处理单元201,用于将资源解析文件的文件类型作为资源文件类型,根据资源文件类型的数据结构,对资源解析文件进行解析处理,得到结构填充信息,用结构填充信息对数据结构进行填充处理,得到资源解析文件的文件头信息以及M个数据块头信息;
该数据整合单元202,用于基于M个数据块头信息,对M个数据块中的数据进行数据整合,得到资源解析文件对应的内存块。
其中,该数据整合单元202包括:数据块确定子单元2021,第一添加子单元2022,第二添加子单元2023以及数据整合子单元2024。
该数据块确定子单元2021,用于从M个数据块头信息中,获取与压缩数据相关联的第一数据块头信息,将第一数据块头信息所属的数据块作为第一类数据块;
该第一添加子单元2022,用于对第一类数据块中的压缩数据进行解压处理,得到第一类数据块对应的解压数据,将第一类数据块对应的解压数据添加至资源解析文件对应的第一集合;
该第二添加子单元2023,用于从M个数据块头信息中,获取与非压缩数据相关联的第二数据块头信息,将第二数据块头信息所属的数据块作为第二类数据块,且将第二类数据块中的非压缩数据添加至资源解析文件对应的第二集合;第二类数据块与第一类数据块均属于M个数据块中的数据块;
该数据整合子单元2024,用于将第一集合中的解压数据以及第二集合中的非压缩数据进行数据整合,得到资源解析文件对应的内存块。
其中,该数据块确定子单元2021,第一添加子单元2022,第二添加子单元2023以及数据整合子单元2024的具体实现方式可以参见上述图5所对应实施例中对内存块的描述,这里将不再继续进行赘述。
该关键数据提取单元203,用于基于文件头信息以及资源文件类型,对内存块进行解析处理,得到内存资源数据,从内存资源数据中提取待进行转码处理的关键资源数据。
其中,文件头信息中包括资源解析文件的文件版本号;
该关键数据提取单元203包括:内存数据获取子单元2031以及查找子单元2032。
该内存数据获取子单元2031,用于获取文件头信息中的文件版本号,基于文件版本号以及资源文件类型,对内存块进行解析处理,得到内存资源数据;
该查找子单元2032,用于在内存资源数据中,查找具备第一格式属性的内存资源数据,将查找到的具备第一格式属性的内存资源数据,确定为待进行转码处理的关键资源数据。
其中,该内存数据获取子单元2031以及查找子单元2032的具体实现方式可以参见上述图5所对应实施例中对关键资源数据的描述,这里将不再继续进行赘述。
其中,该填充处理单元201,数据整合单元202以及关键数据提取单元203的具体实现方式可以参见上述图3所对应实施例中对步骤S102的描述,这里将不再继续进行赘述。
该格式转换模块30,用于基于虚拟游戏对应的配置参数确定关键资源数据的标示码,基于配置参数将关键资源数据的数据属性由第一格式属性转换为第二格式属性,将具备第二格式属性的关键资源数据确定为关键资源数据对应的转码数据。
其中,该格式转换模块30包括:标示码确定单元301,属性变化规则获取单元302,解码处理单元303以及压缩处理单元304。
该标示码确定单元301,用于基于虚拟游戏对应的配置参数,获取标示码变换规则,通过标示码变换规则,对关键资源数据进行变换处理,得到关键资源数据的标示码;
该属性变化规则获取单元302,用于基于配置参数获取属性变换规则;属性变换规则用于指示关键资源数据的第一格式属性与物理硬件支持的第二格式属性之间的转码关系;
该解码处理单元303,用于根据属性变换规则获取具有转码关系的转码组件,调用转码组件,对关键资源数据进行解码处理,得到关键资源数据对应的明文数据;
该压缩处理单元304,用于将明文数据按照第二格式属性进行压缩处理,得到具备第二格式属性的关键资源数据,将具备第二格式属性的关键资源数据确定为关键资源数据对应的转码数据。
其中,该标示码确定单元301,属性变化规则获取单元302,解码处理单元303以及压缩处理单元304的具体实现方式可以参见上述图3所对应实施例中对步骤S103的描述,这里将不再继续进行赘述。
该映射关系确定模块40,用于基于配置参数,确定标示码与转码数据之间的映射关系;映射关系用于在启动虚拟游戏的业务渲染线程时,根据配置参数查找到标示码对应的转码数据。
该存储模块50,用于将配置参数、标示码以及转码数据存储至离线资源数据库;
该查找模块60,用于在启动虚拟游戏的业务渲染线程时,根据虚拟游戏对应的配置参数,在离线资源数据库中查找目标资源数据对应的转码数据;目标资源数据是由与业务渲染线程相关联的物理硬件所对应的驱动组件,从游戏数据包中所获取到的具备第一格式属性的资源数据。
其中,该解析处理模块10,关键数据提取模块20,格式转换模块30,映射关系确定模块40,存储模块50以及查找模块60的具体实现方式可以参见上述图3所对应实施例中对步骤S101-步骤S104的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图10,图10是本申请实施例提供的一种数据处理装置的结构示意图。该数据处理装置2可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该数据处理装置2为一个应用软件;该数据处理装置2可以用于执行本申请实施例提供的方法中的相应步骤。如图10所示,该数据处理装置2可以运行于具有离线转换资源数据功能的计算机设备,该计算机设备可以为上述图2所对应实施例中的计算机设备。该数据处理装置2可以包括:游戏包加载模块100,标示码查询模块200,转码数据确定模块300,转码数据发送模块400,业务资源数据发送模块500,第一渲染模块600,第二渲染模块700,图像帧生成模块800以及压缩图像确定模块900。
该游戏包加载模块100,用于在启动虚拟游戏的业务渲染线程时,通过与虚拟游戏相关联的游戏引擎,加载虚拟游戏的游戏数据包,将游戏数据包中的资源数据发送至与业务渲染线程相关联的物理硬件所对应的驱动组件,以使驱动组件从资源数据中获取具备第一格式属性的目标资源数据;
该标示码查询模块200,用于根据虚拟游戏对应的配置参数,确定目标资源数据对应的目标标示码,查询与目标标示码相同的标示码;标示码为离线确定的关键资源数据的标示码;关键资源数据为从游戏数据包中提取到的具备第一格式属性的资源数据;
该转码数据确定模块300,用于基于查询到的标示码所对应的映射关系,确定标示码对应的转码数据;
该转码数据发送模块400,用于通过驱动组件将转码数据发送至物理硬件;转码数据用于指示物理硬件进行图像渲染。
该业务资源数据发送模块500,用于在驱动组件从资源数据中获取具备第二格式属性的业务资源数据时,通过驱动组件将业务资源数据发送至物理硬件,以使物理硬件对业务资源数据进行图像渲染。
该第一渲染模块600,用于在物理硬件接收到驱动组件发送的与转码数据相关联的第一绘图指令时,将目标资源数据替换为转码数据,且对转码数据进行图像渲染,得到第一渲染数据;
该第二渲染模块700,用于在物理硬件接收到驱动组件发送的与业务资源数据相关联的第二绘图指令时,对业务资源数据进行图像渲染,得到第二渲染数据;
该图像帧生成模块800,用于基于第一渲染数据和第二渲染数据,生成与虚拟游戏相关联的图像帧;
该压缩图像确定模块900,用于对图像帧进行压缩处理,得到图像帧对应的压缩图像,将压缩图像发送至虚拟游戏对应的用户终端,以使用户终端输出压缩图像。
其中,该游戏包加载模块100,标示码查询模块200,转码数据确定模块300,转码数据发送模块400,业务资源数据发送模块500,第一渲染模块600,第二渲染模块700,图像帧生成模块800以及压缩图像确定模块900的具体实现方式可以参见上述图6所对应实施例中对步骤S201-步骤S206的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图11,图11是本申请实施例提供的一种计算机设备的示意图。如图11所示,该计算机设备3000可以为上述图1对应实施例中的服务器1000,该计算机设备3000可以包括:至少一个处理器3001,例如CPU,至少一个网络接口3004,用户接口3003,存储器3005,至少一个通信总线3002。其中,通信总线3002用于实现这些组件之间的连接通信。其中,用户接口3003可以包括显示屏(Display)、键盘(Keyboard),网络接口3004可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器3005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储3005可选地还可以是至少一个位于远离前述处理器3001的存储装置。如图11所示,作为一种计算机存储介质的存储器3005可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图11所示的计算机设备3000中,网络接口3004主要用于与用户终端进行网络通信;而用户接口3003主要用于为用户提供输入的接口;而处理器3001可以用于调用存储器3005中存储的设备控制应用程序。
应当理解,本申请实施例中所描述的计算机设备3000可执行前文图3或者图6所对应实施例中对该数据处理方法的描述,也可执行前文图9所对应实施例中对数据处理装置1或者图10所对应实施例中对该数据处理装置2的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且该计算机可读存储介质中存储有前文提及的数据处理装置1或者数据处理装置2所执行的计算机程序,且该计算机程序包括程序指令,当该处理器执行该程序指令时,能够执行前文图3或者图6所对应实施例中对该数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网络互连的多个计算设备可以组成区块链系统。
本申请一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备可执行前文图3或者图6所对应实施例中对数据处理方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步的,请参见图12,图12是本申请实施例提供的一种数据处理系统的结构示意图。该数据处理系统3(例如,文件缓存系统)可以包括数据处理装置1a和数据处理装置2a。其中,数据处理装置1a可以为上述图9所对应实施例中的数据处理装置1,可以理解的是,该数据处理装置1a可以集成在上述图1所对应实施例中的服务器1000,因此,这里将不再进行赘述。其中,数据处理装置2a可以为上述图10所对应实施例中的数据处理装置2,可以理解的是,该数据处理装置2a可以集成在上述图2所对应实施例中的服务器1000,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的数据处理系统实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包括。例如包括了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (15)

1.一种数据处理方法,其特征在于,包括:
获取虚拟游戏的游戏数据包,对所述游戏数据包进行解析处理,得到资源解析文件;
从所述资源解析文件中提取待进行转码处理的关键资源数据;
基于所述虚拟游戏对应的配置参数确定所述关键资源数据的标示码,基于所述配置参数将所述关键资源数据的数据属性由第一格式属性转换为第二格式属性,将具备所述第二格式属性的关键资源数据确定为所述关键资源数据对应的转码数据;
基于所述配置参数,确定所述标示码与所述转码数据之间的映射关系;所述映射关系用于在启动所述虚拟游戏的业务渲染线程时,根据所述配置参数查找到所述标示码对应的所述转码数据。
2.根据权利要求1所述的方法,其特征在于,所述获取虚拟游戏的游戏数据包,对所述游戏数据包进行解析处理,得到资源解析文件,包括:
对虚拟游戏的游戏数据包所对应的安装目录进行扫描,得到所述游戏数据包;
调用所述虚拟游戏的离线资源解析组件,对所述游戏数据包中的每个文件进行解析处理,得到所述每个文件的文件类型;
在所述每个文件的文件类型中,获取与关键文件类型相匹配的文件类型,将获取到的文件类型所对应的文件确定为资源解析文件。
3.根据权利要求2所述的方法,其特征在于,一个文件的文件类型是从对应文件的文件头中提取的固定字符串所确定的;一个文件的文件头是基于所述虚拟游戏的游戏引擎所支持的关键文件类型所提取到的;所述关键文件类型的数量为N个;所述N为正整数;一个关键文件类型对应一个待匹配字符串;
所述在所述每个文件的文件类型中,获取与关键文件类型相匹配的文件类型,将获取到的文件类型所对应的文件确定为资源解析文件,包括:
在所述每个文件的文件类型中,获取目标文件类型,将所述目标文件类型对应的固定字符串作为目标固定字符串;
将所述目标固定字符串分别与N个所述待匹配字符串进行字符串比对,得到字符串比对结果;
若所述字符串比对结果指示N个所述待匹配字符串中,存在与所述目标固定字符串相同的待匹配字符串,则将与所述目标固定字符串相同的待匹配字符串作为匹配字符串,将所述匹配字符串所对应的文件确定为资源解析文件。
4.根据权利要求1所述的方法,其特征在于,所述资源解析文件包括M个数据块;所述M为正整数;一个数据块对应一个数据块头信息;
所述从所述资源解析文件中提取待进行转码处理的关键资源数据,包括:
将所述资源解析文件的文件类型作为资源文件类型,根据所述资源文件类型的数据结构,对所述资源解析文件进行解析处理,得到结构填充信息,用所述结构填充信息对所述数据结构进行填充处理,得到所述资源解析文件的文件头信息以及M个数据块头信息;
基于所述M个数据块头信息,对所述M个数据块中的数据进行数据整合,得到所述资源解析文件对应的内存块;
基于所述文件头信息以及所述资源文件类型,对所述内存块进行解析处理,得到内存资源数据,从所述内存资源数据中提取待进行转码处理的关键资源数据。
5.根据权利要求4所述的方法,其特征在于,所述基于所述M个数据块头信息,对所述M个数据块中的数据进行数据整合,得到所述资源解析文件对应的内存块,包括:
从所述M个数据块头信息中,获取与压缩数据相关联的第一数据块头信息,将所述第一数据块头信息所属的数据块作为第一类数据块;
对所述第一类数据块中的压缩数据进行解压处理,得到所述第一类数据块对应的解压数据,将所述第一类数据块对应的解压数据添加至所述资源解析文件对应的第一集合;
从所述M个数据块头信息中,获取与非压缩数据相关联的第二数据块头信息,将所述第二数据块头信息所属的数据块作为第二类数据块,且将所述第二类数据块中的非压缩数据添加至所述资源解析文件对应的第二集合;所述第二类数据块与所述第一类数据块均属于所述M个数据块中的数据块;
将所述第一集合中的解压数据以及所述第二集合中的非压缩数据进行数据整合,得到所述资源解析文件对应的内存块。
6.根据权利要求4所述的方法,其特征在于,所述文件头信息中包括所述资源解析文件的文件版本号;
所述基于所述文件头信息以及所述资源文件类型,对所述内存块进行解析处理,得到内存资源数据,从所述内存资源数据中提取待进行转码处理的关键资源数据,包括:
获取所述文件头信息中的所述文件版本号,基于所述文件版本号以及所述资源文件类型,对所述内存块进行解析处理,得到内存资源数据;
在所述内存资源数据中,查找具备第一格式属性的内存资源数据,将查找到的具备所述第一格式属性的内存资源数据,确定为待进行转码处理的关键资源数据。
7.根据权利要求1所述的方法,其特征在于,所述基于所述虚拟游戏对应的配置参数确定所述关键资源数据的标示码,基于所述配置参数将所述关键资源数据的数据属性由第一格式属性转换为第二格式属性,将具备所述第二格式属性的关键资源数据确定为所述关键资源数据对应的转码数据,包括:
基于所述虚拟游戏对应的配置参数,获取标示码变换规则,通过所述标示码变换规则,对所述关键资源数据进行变换处理,得到所述关键资源数据的标示码;
基于所述配置参数获取属性变换规则;所述属性变换规则用于指示所述关键资源数据的第一格式属性与物理硬件支持的第二格式属性之间的转码关系;
根据所述属性变换规则获取具有所述转码关系的转码组件,调用所述转码组件,对所述关键资源数据进行解码处理,得到所述关键资源数据对应的明文数据;
将所述明文数据按照所述第二格式属性进行压缩处理,得到具备所述第二格式属性的关键资源数据,将具备所述第二格式属性的关键资源数据确定为所述关键资源数据对应的转码数据。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述配置参数、所述标示码以及所述转码数据存储至离线资源数据库;
在启动所述虚拟游戏的业务渲染线程时,根据所述虚拟游戏对应的配置参数,在所述离线资源数据库中查找目标资源数据对应的转码数据;所述目标资源数据是由与所述业务渲染线程相关联的物理硬件所对应的驱动组件,从所述游戏数据包中所获取到的具备所述第一格式属性的资源数据。
9.一种数据处理方法,其特征在于,包括:
在启动虚拟游戏的业务渲染线程时,通过与所述虚拟游戏相关联的游戏引擎,加载所述虚拟游戏的游戏数据包,将所述游戏数据包中的资源数据发送至与所述业务渲染线程相关联的物理硬件所对应的驱动组件,以使所述驱动组件从所述资源数据中获取具备第一格式属性的目标资源数据;
根据所述虚拟游戏对应的配置参数,确定所述目标资源数据对应的目标标示码,查询与所述目标标示码相同的标示码;所述标示码为离线确定的关键资源数据的标示码;所述关键资源数据为从所述游戏数据包中提取到的具备所述第一格式属性的资源数据;
基于查询到的标示码所对应的映射关系,确定所述标示码对应的转码数据;
通过所述驱动组件将所述转码数据发送至所述物理硬件;所述转码数据用于指示所述物理硬件进行图像渲染。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
在所述驱动组件从所述资源数据中获取具备第二格式属性的业务资源数据时,通过所述驱动组件将所述业务资源数据发送至所述物理硬件,以使所述物理硬件对所述业务资源数据进行图像渲染。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
在所述物理硬件接收到所述驱动组件发送的与所述转码数据相关联的第一绘图指令时,将所述目标资源数据替换为所述转码数据,且对所述转码数据进行图像渲染,得到第一渲染数据;
在所述物理硬件接收到所述驱动组件发送的与所述业务资源数据相关联的第二绘图指令时,对所述业务资源数据进行图像渲染,得到第二渲染数据;
基于所述第一渲染数据和所述第二渲染数据,生成与所述虚拟游戏相关联的图像帧;
对所述图像帧进行压缩处理,得到所述图像帧对应的压缩图像,将所述压缩图像发送至所述虚拟游戏对应的用户终端,以使所述用户终端输出所述压缩图像。
12.一种数据处理装置,其特征在于,包括:
解析处理模块,用于获取虚拟游戏的游戏数据包,对所述游戏数据包进行解析处理,得到资源解析文件;
关键数据提取模块,用于从所述资源解析文件中提取待进行转码处理的关键资源数据;
格式转换模块,用于基于所述虚拟游戏对应的配置参数确定所述关键资源数据的标示码,基于所述配置参数将所述关键资源数据的数据属性由第一格式属性转换为第二格式属性,将具备所述第二格式属性的关键资源数据确定为所述关键资源数据对应的转码数据;
映射关系确定模块,用于基于所述配置参数,确定所述标示码与所述转码数据之间的映射关系;所述映射关系用于在启动所述虚拟游戏的业务渲染线程时,根据所述配置参数查找到所述标示码对应的所述转码数据。
13.一种数据处理装置,其特征在于,包括:
游戏包加载模块,用于在启动虚拟游戏的业务渲染线程时,通过与所述虚拟游戏相关联的游戏引擎,加载所述虚拟游戏的游戏数据包,将所述游戏数据包中的资源数据发送至与所述业务渲染线程相关联的物理硬件所对应的驱动组件,以使所述驱动组件从所述游戏数据包中获取具备第一格式属性的目标资源数据;
标示码查询模块,用于根据所述虚拟游戏对应的配置参数,确定所述目标资源数据对应的目标标示码,查询与所述目标标示码相同的标示码;所述标示码为离线确定的关键资源数据的标示码;所述关键资源数据为从所述游戏数据包中提取到的具备所述第一格式属性的资源数据;
转码数据确定模块,用于基于查询到的标示码所对应的映射关系,确定所述标示码对应的转码数据;
转码数据发送模块,用于通过所述驱动组件将所述转码数据发送至所述物理硬件;所述转码数据用于指示所述物理硬件进行图像渲染。
14.一种计算机设备,其特征在于,包括:处理器和存储器;
所述处理器与存储器相连,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1-11任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-11任一项所述的方法。
CN202110047664.3A 2021-01-14 2021-01-14 一种数据处理方法、装置、设备及存储介质 Active CN112379949B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110047664.3A CN112379949B (zh) 2021-01-14 2021-01-14 一种数据处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110047664.3A CN112379949B (zh) 2021-01-14 2021-01-14 一种数据处理方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112379949A CN112379949A (zh) 2021-02-19
CN112379949B true CN112379949B (zh) 2021-04-13

Family

ID=74581821

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110047664.3A Active CN112379949B (zh) 2021-01-14 2021-01-14 一种数据处理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112379949B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113327302A (zh) * 2021-05-26 2021-08-31 浙江大华技术股份有限公司 图片处理方法及装置、存储介质、电子装置
CN113343635A (zh) * 2021-05-31 2021-09-03 中国工商银行股份有限公司 一种主机数据交换处理方法、装置、设备及存储介质
CN113327303B (zh) * 2021-08-03 2021-10-29 腾讯科技(深圳)有限公司 图像处理方法、装置、计算机设备及存储介质
CN113797554B (zh) * 2021-09-22 2023-12-26 北京有竹居网络技术有限公司 游戏引擎资源的处理方法、装置、存储介质及电子设备
CN117581266A (zh) * 2021-12-16 2024-02-20 英特尔公司 高速缓存装置、驱动器装置、转码装置以及相应的设备、方法和计算机程序
CN115439586B (zh) * 2022-10-27 2023-03-24 腾讯科技(深圳)有限公司 数据处理方法、设备、存储介质及计算机程序产品
CN118022337A (zh) * 2024-01-29 2024-05-14 深圳市奇迅新游科技股份有限公司 一种游戏组件推荐系统、方法、设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101667228A (zh) * 2009-10-16 2010-03-10 中国电信股份有限公司 离线更新终端游戏榜单的方法及系统
CN105045789A (zh) * 2015-02-15 2015-11-11 北京乐动卓越信息技术有限公司 一种游戏服务器数据库缓存方法及系统
CN106339210A (zh) * 2016-08-09 2017-01-18 腾讯科技(深圳)有限公司 一种网页游戏中数据处理方法及相关装置
CN109298899A (zh) * 2018-09-12 2019-02-01 深圳点猫科技有限公司 一种少儿游戏配置文件自动化应用方法及电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070129150A1 (en) * 2001-08-20 2007-06-07 Crowder Robert W Jr Game Conversion System
CN110727417B (zh) * 2018-06-28 2024-03-15 腾讯科技(北京)有限公司 一种数据处理方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101667228A (zh) * 2009-10-16 2010-03-10 中国电信股份有限公司 离线更新终端游戏榜单的方法及系统
CN105045789A (zh) * 2015-02-15 2015-11-11 北京乐动卓越信息技术有限公司 一种游戏服务器数据库缓存方法及系统
CN106339210A (zh) * 2016-08-09 2017-01-18 腾讯科技(深圳)有限公司 一种网页游戏中数据处理方法及相关装置
CN109298899A (zh) * 2018-09-12 2019-02-01 深圳点猫科技有限公司 一种少儿游戏配置文件自动化应用方法及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Gaming@Edge_基于边缘节点的低延迟云游戏系统;林立 等;《计算机应用》;20190710;第39卷(第7期);第2001-2007页 *

Also Published As

Publication number Publication date
CN112379949A (zh) 2021-02-19

Similar Documents

Publication Publication Date Title
CN112379949B (zh) 一种数据处理方法、装置、设备及存储介质
KR101773638B1 (ko) 라이트웨이트 클라이언트를 이용해서 네트워크를 거쳐 가상화 컴퓨팅 서비스와 인터페이스하기 위한 방법
US20100050089A1 (en) Web browser system of mobile communication terminal, using proxy server
US10121263B2 (en) Methods and devices for image loading and methods and devices for video playback
CN109040786B (zh) 摄像头数据的传输方法、装置、系统及存储介质
KR100967337B1 (ko) 프록시 서버를 이용한 이동통신 단말기의 웹 브라우저 시스템
CN103605534A (zh) 图片加载方法及装置
CN102111437A (zh) 一种基于soap扩展的web服务传输压缩方法
CN104283777A (zh) 报文压缩的方法和装置
US9483996B2 (en) System and method of leveraging GPU resources to increase performance of an interact-able content browsing service
CN108809924B (zh) 执行网络实时通信的方法和装置
CN111966647A (zh) 一种小文件的云存储方法、装置、服务器及存储介质
CN112995134B (zh) 一种三维视频流媒体传输方法与可视化方法
CN110866132B (zh) 一种适应低网络带宽环境的瓦片地图使用方法
CN105812839A (zh) 视频流数据获取、页面数据传输方法、系统及网络服务器
Joveski et al. Semantic multimedia remote display for mobile thin clients
CN102387123A (zh) 一种优化x协议的远程桌面系统和方法
KR102247892B1 (ko) 클라우드 스트리밍 서비스 시스템, 어플리케이션 코드를 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
US10223997B2 (en) System and method of leveraging GPU resources to increase performance of an interact-able content browsing service
KR20190062815A (ko) 라이브 스트리밍 서버 장치 및 이의 운용 방법
JP4648415B2 (ja) ファイル転送システムおよびアプリケーションサーバ
US11086822B1 (en) Application-based compression
CN110636374A (zh) 用于查找信息的方法和装置
CN110888633B (zh) 一种Unity与H5组件同步方法及系统
CN114501049B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40038720

Country of ref document: HK