基于访问顺序排序的游戏资源文件加载方法和系统与流程

文档序号:11949689阅读:390来源:国知局
基于访问顺序排序的游戏资源文件加载方法和系统与流程
本发明涉及游戏领域,尤其是基于访问顺序排序的游戏资源文件加载方法和系统。
背景技术
:一般的游戏中从存储媒介中加载资源时,当操作系统中存在大量文件的文件句柄,操作系统的运行速度就会变得非常慢。为了进行优化,很多游戏都只能从打包的资源文件中加载必需的资源。这些打包的资源文件就是一个个大型的文件数据库,以单个文件或一组文件的形式存在着。在这些数据库中,都保存着一个完整的目录层次信息。资源文件有效地解决了文件句柄开销过大的问题。但是又带来了另外一个严重的问题。这些资源文件的顺序通常就是硬盘上的目录结构的一个镜像。而游戏很少会按照资源文件在目录结构中的顺序来访问它们。相反,多数情况下,它们都会在资源文件中跳跃式地访问资源文件。这就成了一个主要的瓶颈。如果游戏使用的数据集十分大,那么其资源文件的布局中存在的这个弱点就会暴露出来。使得游戏的资源加载进度非常慢,严重影响了玩家的用户体验。技术实现要素:为了解决上述技术问题,本发明的目的是:提供一种缩短游戏资源文件加载时间、增强游戏的体验和表现的游戏资源文件加载方法。为了解决上述技术问题,本发明的另一目的是:提供一种缩短游戏资源文件加载时间、增强游戏的体验和表现的游戏资源文件加载系统。本发明所采用的技术方案是:基于访问顺序排序的游戏资源文件加载方法,包括有以下步骤:A、使用一个默认的打包资源文件运行游戏,并将文件访问记录和文件加载时间记录到日志文件中;B、读入打包资源文件信息和日志文件数据,根据资源文件的访问频率和时间进行打包顺序的优化;C、根据优化后的顺序将资源文件打包。进一步,还包括有步骤D:使用步骤C中得到的打包资源文件运行游戏,并将文件访问记录和文件加载时间记录到日志文件中。进一步,完成步骤D之后,重复执行步骤B和步骤C得到新的打包资源文件。进一步,所述步骤A具体为:使用一个默认的打包资源文件运行游戏,并根据游戏的不同运行状态将文件访问记录和文件加载时间记录到日志文件中对应的各记录区中。进一步,所述步骤B具体为:读入打包资源文件信息和日志文件中各记录区的数据,根据资源文件的访问频率和时间对游戏的不同运行状态中分别使用到的文件进行打包顺序的优化。本发明所采用的另一技术方案是:基于访问顺序排序的游戏资源文件加载系统,包括有:数据采集单元,使用打包资源文件运行游戏,并将文件访问记录和文件加载时间记录到数据记录单元中;数据记录单元,用于记录数据采集单元采集到的数据;打包顺序优化单元,读入打包资源文件信息和数据记录单元的数据,并根据资源文件的访问频率和时间进行打包顺序的优化;文件打包单元,根据优化后的顺序将资源文件打包。进一步,所述数据采集单元使用的打包资源文件为默认的打包资源文件或文件打包单元生成的优化后的打包资源文件。进一步,所述数据记录单元包括有多个数据分区,用于记录游戏的不同运行状态时,数据采集单元采集到的文件访问记录和文件加载时间记录。进一步,所述打包顺序优化单元用于读入打包资源文件信息和数据记录单元中多个数据分区的数据,并根据资源文件的访问频率和时间对游戏的不同运行状态中分别使用到的文件进行打包顺序的优化。本发明的有益效果是:本发明方法通过对资源文件的二次排序后再进行打包,使游戏运行过程中加载资源文件的速度提升,尤其是在数据集庞大的大型游戏中使加载速度指数级提升,极大地增强用户的游戏体验。本发明的另一有益效果是:本发明系统通过对资源文件的二次排序后再进行打包,使游戏运行过程中加载资源文件的速度提升,尤其是在数据集庞大的大型游戏中使加载速度指数级提升,极大地增强用户的游戏体验。附图说明图1为本发明方法步骤流程图;图2为本发明方法进一步实施的步骤流程图。具体实施方式下面结合附图对本发明的具体实施方式作进一步说明:上述
背景技术
详细说明了现有技术中游戏资源文件加载的缺陷,为了缩短游戏资源文件加载时间、增强代码可维护性与可重用性、增强游戏的体验和表现,需要能够多打包资源文件进行一定顺序地访问,从而更快速的加载必需的资源文件。参照图1,基于访问顺序排序的游戏资源文件加载方法,包括有以下步骤:A、使用一个默认的打包资源文件运行游戏,并将文件访问记录和文件加载时间记录到日志文件中;由于游戏过程复杂,过程中使用文件的规律不明显,且这些组合完全取决于游戏项目使用资源的方式,因此上述默认的打包资源文件的打包顺序通常采用的都不是最佳顺序,从而需要在游戏过程中将打包资源文件中文件的访问记录和文件加载时间记录到日志文件中,用于后续过程中的处理,并作为基准来评估优化后的效果。B、读入打包资源文件信息和日志文件数据,根据资源文件的访问频率和时间进行打包顺序的优化;读入的打包资源文件信息包括有所有的通用数据以及游戏关卡专用的资源,针对游戏关卡进行打包顺序的优化。资源文件的访问频率越高、时间越早,则在顺序优化时排序越靠前。典型的通用数据例如:游戏中的用户界面文件、一个标准的武器系统文件或者是一个通用的着色程序库等,这些文件数据在各个不同的游戏关卡均需要使用到。C、根据优化后的顺序将资源文件打包。所使用的资源打包工具可以按照上述步骤B中得到的打包顺序,去打包资源文件。参照图2,进一步作为优选的实施方式,还包括有步骤D:使用步骤C中得到的打包资源文件运行游戏,并将文件访问记录和文件加载时间记录到日志文件中。利用新打包的资源文件再次运行游戏,并记录相应的文件访问记录和文件加载时间的记录,通过将日志文件中的信息可与原日志文件中的信息对比,验证经过优化后的资源打包文件是否使游戏过程中的加载时间缩短。如下表1所示,本发明方法实际应用中采集的样本数据的加载用时:表1:样本数据加载用时效果对比文件系统加载用时(单位:毫秒)Windows文件系统(NTFS)6077.858499资源文件1443.543244优化后的资源文件795.332088从表上可看出,现有技术中采用标准的资源文件与使用windows文件系统相比,使用标准的资源文件的加载速度是其4倍有余;而本发明方法中采用优化后的资源文件,其加载速度是现有技术的近两倍。由于上述用于测试的样本数据量很小,表中实际的加载用时数量都非常小,因此优化后的提升也只有两倍;但是在对一个大型文件(大于1GB)进行的测试中,与一个目录交叉的资源文件相比,利用优化后的资源文件可实现加载速度的指数级别提升,可使加载时间从10秒提高到200毫秒,即加载速度提高20〜50倍,这是一个非常显著的速度提升。在某些游戏加载模式中,最初访问的那些文件都是比较零散的,磁盘磁头需要多次的跳转;而通过对资源文件的二次排序,就可利用优化后的资源文件可以获得最佳的提升效果。参照图2,进一步作为优选的实施方式,完成步骤D之后,重复执行步骤B和步骤C得到新的打包资源文件。利用优化后的打包资源文件运行游戏,再次进行顺序优化,及重复执行步骤B和步骤C,可进一步获取更优化的打包顺序。进一步作为优选的实施方式,所述步骤A具体为:使用一个默认的打包资源文件运行游戏,并根据游戏的不同运行状态将文件访问记录和文件加载时间记录到日志文件中对应的各记录区中。通常游戏具有多个关卡,每个关卡中的场景、道具等资源都不相同,因此每个关卡中的游戏都处于不同的运行状态,因此还可针对每个给定的关卡,将该关卡内所有需要的资源文件打包,最后生成的每一个打包资源文件对应一个游戏关卡,因此更可靠的方法是在日志文件中建立多个记录区,根据游戏的不同运行状态将文件访问记录和文件加载时间记录到日志文件中对应的各记录区中,从而实现对若干组顺序加载的文件分别进行优化;优化工作最佳的起点是日志文件中那些所有关卡都要用到的通用数据。进一步作为优选的实施方式,读入打包资源文件信息和日志文件中各记录区的数据,根据资源文件的访问频率和时间对游戏的不同运行状态中分别使用到的文件进行打包顺序的优化。进一步作为优选的实施方式,根据资源文件被打包的方式,重新排列各个资源文件被加载的顺序。很多时候,在游戏中的某个固定的时间,需要加载一系列已知的文件。比如,在玩家进入游戏之前就加载一套标准配置的武器模型,这在第一人称的射击游戏中非常常见。通常来说,一个普通的武器系统要包括10〜20个带有纹理或材质的模型。在这种情况下所需要做的是在加载这些资源时,记录下来每个文件指针的位置,然后按照这些资源文件出现的顺序,对加载顺序重新排序,从而加快资源的加载速度。基于访问顺序排序的游戏资源文件加载系统,包括有:数据采集单元,使用打包资源文件运行游戏,并将文件访问记录和文件加载时间记录到数据记录单元中;数据记录单元,用于记录数据采集单元采集到的数据,例如上述本发明方法中用到的日志文件;打包顺序优化单元,读入打包资源文件信息和数据记录单元的数据,并根据资源文件的访问频率和时间进行打包顺序的优化;文件打包单元,根据优化后的顺序将资源文件打包。进一步作为优选的实施方式,所述数据采集单元使用的打包资源文件为默认的打包资源文件或文件打包单元生成的优化后的打包资源文件。进一步作为优选的实施方式,所述数据记录单元包括有多个数据分区,用于记录游戏的不同运行状态时,数据采集单元采集到的文件访问记录和文件加载时间记录。进一步作为优选的实施方式,所述打包顺序优化单元用于读入打包资源文件信息和数据记录单元中多个数据分区的数据,并根据资源文件的访问频率和时间对游戏的不同运行状态中分别使用到的文件进行打包顺序的优化。以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可以作出种种的等同变换或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1