首页 / 专利库 / 地基 / 基础 / 一种基于贪婪算法的游戏资源打包方法及系统

一种基于贪婪算法的游戏资源打包方法及系统

阅读:299发布:2020-05-08

专利汇可以提供一种基于贪婪算法的游戏资源打包方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于贪婪 算法 的游戏资源打包方法及系统,涉及计算机游戏技术领域,用于实现:通过客户端运行游戏时上传的资源信息,根据资源的使用加载顺序以及调用情况作为输入数据进行分析,得到以资源使用概率为 基础 的打包规则。本发明的有益效果为:使资源打包方法更加合理,减少内存中加载的资源数量,降低内存使用,降低实际运行游戏时设备运算负荷,提高游戏体验。,下面是一种基于贪婪算法的游戏资源打包方法及系统专利的具体信息内容。

1.一种基于贪婪算法的游戏资源打包方法,其特征在于,包括以下步骤:
S10、监测游戏资源调用接口,获取资源调用信息;
S20、客户端以IP地址为标识将所述资源调用信息上传到服务器录入日志;
S30、按一定周期分析所述日志中记录的资源调用信息,根据所述IP地址进行分组;
S40、整理各个所述分组,基于各个资源的加载调用顺序生成对应的各个所述资源的调用概率表;
S50、遍历各个所述分组对应的所述调用概率表,得到资源加载顺序表并基于所述资源加载顺序表对游戏资源进行重打包。
2.根据权利要求1所述的基于贪婪算法的游戏资源打包方法,其特征在于,所述S30还包括:
S31、在一定周期内对上传的所述日志进行预处理,得到处理后的资源调用信息;
S32、根据所述资源调用信息获取各个IP地址对应的加载资源以及加载顺序。
3.根据权利要求1所述的基于贪婪算法的游戏资源打包方法,其特征在于,所述S40还包括:
S41、对各个所述分组中的资源按照加载顺序建立各个资源的映射关系;
S42、根据所述各个资源的映射关系得到各个所述分组对应的所述资源的调用概率表。
4.根据权利要求3所述的基于贪婪算法的游戏资源打包方法,其特征在于,所述S41还包括:
基于所述日志获取各个资源的加载顺序,将首先加载的资源定义为第一加载资源,并抓取对应资源信息;
根据第一加载资源获取在后的第二加载资源的资源信息,其中所述第一加载资源和第二加载资源的数量在一个以上;
将所述第二加载资源定义为所述第一加载资源,并重复执行上述步骤,直到所有资源遍历完毕;
整理所述资源信息,得到各个资源的映射关系。
5.根据权利要求4所述的基于贪婪算法的游戏资源打包方法,其特征在于,所述资源加载信息包括资源名称、类型以及对应标识码。
6.根据权利要求1所述的基于贪婪算法的游戏资源打包方法,其特征在于,所述S50还包括:
整理各个所述分组对应的所述调用概率表;
按照加载顺序逐一提取的对应资源,根据各个所述调用概率表选取概率最大的资源作为该顺序对应的加载资源;
重复执行上述步骤,直到加载顺序遍历完成;
得到各个顺序对应的加载概率最大的资源,整理所述资源信息,生成源加载顺序表。
7.一种基于贪婪算法的游戏资源打包系统,其特征在于,包括:
监测模,用于监测游戏资源调用接口,获取资源调用信息;
上传模块,用于将所述资源调用信息以IP地址为标识将所述资源调用信息上传到服务器录入日志;
分组模块,用于按一定周期分析所述日志中记录的资源调用信息,根据所述IP地址进行分组;
分析模块,用于整理各个所述分组,基于各个资源的加载调用顺序生成对应的各个所述资源的调用概率表;
打包模块,用于遍历各个所述分组对应的所述调用概率表,得到资源加载顺序表并基于所述资源加载顺序表对游戏资源进行重打包。
8.根据权利要求7所述的基于贪婪算法的游戏资源打包系统,其特征在于,所述分析模块还包括:
映射单元,用于对各个所述分组中的资源按照加载顺序建立各个资源的映射关系;;
概率计算单元,用于根据所述各个资源的映射关系得到各个所述分组对应的所述资源的调用概率表。
9.根据权利要求7所述的基于贪婪算法的游戏资源打包系统,其特征在于,所述打包模块还包括:
资源对比单元,用于整理各个所述分组对应的所述调用概率表并按照加载顺序逐一提取的对应资源,根据各个所述调用概率表选取概率最大的资源作为该顺序对应的加载资源;
循环执行单元,用于向所述资源对比单元下发指令重复执行上述步骤,直到加载顺序遍历完成;
生成单元,用于根据各个顺序对应的加载概率最大的资源,整理所述资源信息,生成源加载顺序表。

说明书全文

一种基于贪婪算法的游戏资源打包方法及系统

技术领域

[0001] 本发明涉及计算机游戏技术领域,特别涉及一种基于贪婪算法的游戏资源打包方法及系统。

背景技术

[0002] 目前的Unityy引擎打AB(即asset bundle)包,时,一般是有以下几种方案:
[0003] 1.按照资源的依赖来分包;
[0004] 2.按照资源文件夹分包;
[0005] 3.按照资源类型来分包。
[0006] 按照以上的1种或多种组合形式打出来的AB包,由于unity加载的单位是AB包,那么如果分包不合理,会导致加载在内存中的资源并没有被使用,从而造成浪费,使内存虚高,也有可能会基于内存的限制造成频繁的加载和卸载AB包,从而使率下降,降低玩家体验。

发明内容

[0007] 为至少解决现有技术中存在的技术问题之一,本发明的目的在于提供一种基于贪婪算法的游戏资源打包方法及系统,通过客户端运行游戏时上传的资源信息,根据资源的使用加载顺序以及调用情况作为输入数据进行分析,得到以资源使用概率为基础的打包规则。
[0008] 本发明解决其问题所采用的技术方案第一方面是:一种基于贪婪算法的游戏资源打包方法,其特征在于,包括以下步骤:S10、监测游戏资源调用接口,获取资源调用信息;S20、客户端以IP地址为标识将所述资源调用信息上传到服务器录入日志;S30、按一定周期分析所述日志中记录的资源调用信息,根据所述IP地址进行分组;S40、整理各个所述分组,基于各个资源的加载调用顺序生成对应的各个所述资源的调用概率表;S50、遍历各个所述分组对应的所述调用概率表,得到资源加载顺序表并基于所述资源加载顺序表对游戏资源进行重打包。
[0009] 有益效果:使资源打包方法更加合理,减少内存中加载的资源数量,降低内存使用,降低实际运行游戏时设备运算负荷,提高游戏体验。
[0010] 根据本发明第一方面所述的,S30还包括:S31、在一定周期内对上传的所述日志进行预处理,得到处理后的资源调用信息;S32、根据所述资源调用信息获取各个IP地址对应的加载资源以及加载顺序。
[0011] 根据本发明第一方面所述的,S40还包括:S41、对各个所述分组中的资源按照加载顺序建立各个资源的映射关系;S42、根据所述各个资源的映射关系得到各个所述分组对应的所述资源的调用概率表。
[0012] 根据本发明第一方面所述的,S41还包括:基于所述日志获取各个资源的加载顺序,将首先加载的资源定义为第一加载资源,并抓取对应资源信息;根据第一加载资源获取在后的第二加载资源的资源信息,其中所述第一加载资源和第二加载资源的数量在一个以上;将所述第二加载资源定义为所述第一加载资源,并重复执行上述步骤,直到所有资源遍历完毕;整理所述资源信息,得到各个资源的映射关系。
[0013] 根据本发明第一方面所述的,资源加载信息包括资源名称、类型以及对应标识码。
[0014] 根据本发明第一方面所述的,S50还包括:整理各个所述分组对应的所述调用概率表;按照加载顺序逐一提取的对应资源,根据各个所述调用概率表选取概率最大的资源作为该顺序对应的加载资源;重复执行上述步骤,直到加载顺序遍历完成;
[0015] 本发明解决其问题所采用的技术方案第二方面是:一种基于贪婪算法的游戏资源打包系统,其特征在于,包括:监测模,用于监测游戏资源调用接口,获取资源调用信息;上传模块,用于将所述资源调用信息以IP地址为标识将所述资源调用信息上传到服务器录入日志;分组模块,用于按一定周期分析所述日志中记录的资源调用信息,根据所述IP地址进行分组;分析模块,用于整理各个所述分组,基于各个资源的加载调用顺序生成对应的各个所述资源的调用概率表;打包模块,用于遍历各个所述分组对应的所述调用概率表,得到资源加载顺序表并基于所述资源加载顺序表对游戏资源进行重打包。
[0016] 有益效果:使资源打包方法更加合理,减少内存中加载的资源数量,降低内存使用,降低实际运行游戏时设备运算负荷,提高游戏体验。
[0017] 根据本发明第二方面所述的,分析模块还包括:映射单元,用于对各个所述分组中的资源按照加载顺序建立各个资源的映射关系;;概率计算单元,用于根据所述各个资源的映射关系得到各个所述分组对应的所述资源的调用概率表。
[0018] 根据本发明第二方面所述的,打包模块还包括:资源对比单元,用于整理各个所述分组对应的所述调用概率表并按照加载顺序逐一提取的对应资源,根据各个所述调用概率表选取概率最大的资源作为该顺序对应的加载资源;循环执行单元,用于向所述资源对比单元下发指令重复执行上述步骤,直到加载顺序遍历完成;生成单元,用于根据各个顺序对应的加载概率最大的资源,整理所述资源信息,生成源加载顺序表。附图说明
[0019] 图1是根据本发明优选实施例的方法流程示意图;
[0020] 图2是根据本发明优选实施例的系统结构示意图。

具体实施方式

[0021] 以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。
[0022] 应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种单元,但这些单元不应限于这些术语。这些术语仅用来将同一类型的单元彼此区分开。例如,在不脱离本公开范围的情况下,第一单元也可以被称为第二单元,类似地,第二单元也可以被称为第一单元。本文所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。
[0023] 参照图1,是根据本发明优选实施例的方法流程示意图,包括:
[0024] S10、监测游戏资源调用接口,获取资源调用信息;
[0025] S20、客户端以IP地址为标识将资源调用信息上传到服务器录入日志;
[0026] S30、按一定周期分析日志中记录的资源调用信息,根据IP地址进行分组;
[0027] S40、整理各个分组,基于各个资源的加载调用顺序生成对应的各个资源的调用概率表;
[0028] S50、遍历各个分组对应的调用概率表,得到资源加载顺序表并基于资源加载顺序表对游戏资源进行重打包。
[0029] S30还包括:
[0030] S31、在一定周期内对上传的日志进行预处理,得到处理后的资源调用信息;
[0031] S32、根据资源调用信息获取各个IP地址对应的加载资源以及加载顺序。
[0032] S40还包括:
[0033] S41、对各个分组中的资源按照加载顺序建立各个资源的映射关系;
[0034] S42、根据各个资源的映射关系得到各个分组对应的资源的调用概率表。
[0035] S41还包括:
[0036] 基于日志获取各个资源的加载顺序,将首先加载的资源定义为第一加载资源,并抓取对应资源信息;
[0037] 根据第一加载资源获取在后的第二加载资源的资源信息,其中第一加载资源和第二加载资源的数量在一个以上;
[0038] 将第二加载资源定义为第一加载资源,并重复执行上述步骤,直到所有资源遍历完毕;
[0039] 整理资源信息,得到各个资源的映射关系。
[0040] 资源加载信息包括资源名称、类型以及对应标识码。
[0041] S50还包括:
[0042] 整理各个分组对应的调用概率表;
[0043] 按照加载顺序逐一提取的对应资源,根据各个调用概率表选取概率最大的资源作为该顺序对应的加载资源;
[0044] 重复执行上述步骤,直到加载顺序遍历完成;
[0045] 得到各个顺序对应的加载概率最大的资源,整理资源信息,生成源加载顺序表。
[0046] 参照图2,是根据本发明优选实施例的系统结构示意图,包括:
[0047] 监测模块,用于监测游戏资源调用接口,获取资源调用信息;
[0048] 上传模块,用于将资源调用信息以IP地址为标识将资源调用信息上传到服务器录入日志;分组模块,用于按一定周期分析日志中记录的资源调用信息,根据IP地址进行分组;分析模块,用于整理各个分组,基于各个资源的加载调用顺序生成对应的各个资源的调用概率表;打包模块,用于遍历各个分组对应的调用概率表,得到资源加载顺序表并基于资源加载顺序表对游戏资源进行重打包。
[0049] 分析模块还包括:
[0050] 映射单元,用于对各个分组中的资源按照加载顺序建立各个资源的映射关系;;
[0051] 概率计算单元,用于根据各个资源的映射关系得到各个分组对应的资源的调用概率表。
[0052] 打包模块还包括:
[0053] 资源对比单元,用于整理各个分组对应的调用概率表并按照加载顺序逐一提取的对应资源,根据各个调用概率表选取概率最大的资源作为该顺序对应的加载资源;
[0054] 循环执行单元,用于向资源对比单元下发指令重复执行上述步骤,直到加载顺序遍历完成;
[0055] 生成单元,用于根据各个顺序对应的加载概率最大的资源,整理资源信息,生成源加载顺序表。
[0056] 下面举一实施例加以说明:
[0057] 第一步:使用注入技术,将监控程序注入到目标手游,用于收集信息;
[0058] 第二步:注入的程序会在游戏内加载资源和卸载资源的相关接口调用时,同时将资源加载/卸载资源的信息发送给服务端写入日志;
[0059] 第三步:每一次有客户端打开游戏游玩,后台会收集资源的加载和卸载信息;
[0060] 第四步:每隔一段时间(例如一天),分析服务端收集到的资源加载/卸载时间表,将这段时间(今天)内收集到的多份数据(由于数据以手机/pc端的IP地址为单位,因此数据量取决于每天进行游玩的客户端数量*游玩时间)进行预处理,使上传时间统一减去起始时间得到一个游戏相对时间(秒数);
[0061] 第五步:对于每一份输入文件,都可以得到一个资源出现顺序列表。根据这个列表,我们可以计算出每一个资源X加载时对应下一条资源Y的几率。那么我们根据所有输入文件,就可以得出一个总体的资源几率顺序表。根据这个资源顺序表,我们取出所有输入文件的第一个出现几率最高的资源,然后找该资源的下一个出现几率最高的资源,如果该资源出现过,就找到该资源的下一个出现几率第二高的资源……以此类推,就可以得到一个资源加载顺序表。根据这个资源顺序,可以得到一个assetbundle表
[0062] 第六步:使用第五步中的结果当成打包规则,则可以得出一个更优的打包方式,提高资源使用率,降低游戏内存占用。
[0063] 应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
[0064] 此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
[0065] 进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
[0066] 计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
[0067] 以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈