发明内容
本发明实施例的主要目的在于提供一种大型游戏包的下载方法及装置,以解决现有技术中的大型游戏下载时间过长而导致的用户体验感差的问题。
为了实现上述目的,本发明实施例提供一种大型游戏包的下载方法,该方法包括:根据预定规则将大型游戏包分为主包和次包,其中,所述主包包括:所述大型游戏初始化运行所需的文件信息,所述次包包括:所述大型游戏运行时需要监控的文件信息;根据下载请求,将所述主包下载至客户端并运行程序;在用户游戏过程中,下载所述次包至所述客户端并运行程序。
上述主包还包括:用于获取所述次包路径信息和下载程度的监控信息。
具体地,将所述主包下载至客户端并运行程序包括:将所述主包下载至所述客户端;运行所述大型游戏初始化程序以及获取所述次包路径信息;监控所述大型游戏的下载过程以及所述大型游戏程序的运行过程。
上述下载次包至所述客户端并运行程序包括:根据所述次包路径信息下载所述次包;监控所述次包的下载过程以及所述次包程序的运行过程。
上述监控所述大型游戏的运行过程包括:如果所述大型游戏运行速度大于所述主包的下载速度,则暂停所述大型游戏的运行程序。
本发明实施例还提供一种大型游戏包的下载装置,所述装置包括:信息分类单元,用于根据预定规则将大型游戏包分为主包和次包,其中,所述主包包括:所述大型游戏初始化运行所需的文件信息,所述次包包括:所述大型游戏运行时需要监控的文件信息;主包下载运行单元,用于根据下载请求,将所述主包下载至客户端并运行程序;次包下载运行单元,用于在用户游戏过程中,下载所述次包至所述客户端并运行程序。
上述信息分类单元中的主包还包括:用于获取所述次包路径信息和下载程度的监控信息。
具体地,上述主包下载运行单元包括:主包下载模块,用于将所述主包下载至所述客户端;程序运行模块,用于运行所述大型游戏初始化程序;次包信息获取单元,用于获取所述次包路径信息;主包监控模块,用于监控所述大型游戏的下载过程以及所述大型游戏程序的运行过程。
上述次包下载运行单元包括:次包下载模块,用于根据所述次包路径信息下载所述次包;次包监控模块,用于监控所述次包的下载过程以及所述次包程序的运行过程。
上述装置还包括:运行暂停单元,用于在所述大型游戏运行速度大于所述主包的下载速度时,暂停所述大型游戏的运行程序。
借助于上述技术方案至少之一,通过将大型游戏包分为主包和次包,先下载主包并安装游戏,可以在下载主包的同时进行游戏,能够提高用户的体验感。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,游戏主要分为可即时体验的游戏和需要下载较长时间运行的大型游戏。本发明主要涉及的是需要下载较长时间运行的大型游戏,由于现有技术中的大型游戏需要下载完成后用户才能运行且下载时间较长,这降低了用户的体验感。基于此,本发明实施例提供一种大型游戏包的下载方法及装置,以解决上述问题。以下结合附图对本发明进行详细说明。
实施例一
本发明实施例提供一种大型游戏包的下载方法,如图1所示,该方法包括:
步骤101,根据预定规则将大型游戏包分为主包和次包,其中,主包包括:大型游戏初始化运行所需的文件信息,次包包括:大型游戏运行时需要监控的文件信息;
步骤102,根据下载请求,将主包下载至客户端并运行程序;
步骤103,在用户游戏过程中,下载次包至客户端并运行程序。
由以上描述可以看出,通过将大型游戏包分为主包和次包,先下载主包并安装游戏,由于下载主包过程同时安装游戏,用户可以不用像现有技术中长时间的等待,而是可以在下载主包的同时进行游戏,相比于现有技术,本发明实施例能够提高用户的体验感。
优选地,上述主包可以包括用于获取所述次包路径信息和下载程度的监控信息。
上述步骤102将主包下载至客户端并运行程序具体包括:接收来自用户端的下载请求,将主包下载至客户端;运行大型游戏初始化程序以及获取次包路径信息;监控大型游戏的下载过程以及大型游戏程序的运行过程。
在监控过程中,如果大型游戏运行速度大于主包的下载速度,则暂停大型游戏的运行程序。也就是说,如果游戏运行所需要的文件,还没下载完成,则将游戏停止住,就像在线看电影,如果还没下载完,先将电影暂停,等到下载完成时,放开继续运行游戏。
大型游戏的优先下载主包,可以快速运行游戏,这样用户就可以即点即玩。
当主包下载完毕之后,开始下载次包,具体为:根据上述在主包中获取的次包路径信息下载次包;并监控次包的下载过程以及次包程序的运行过程。
在具体实施过程中,主包是运行游戏的初始包,次包是需要监控的每个文件独立出来一个包,次包可以有很多个小包,主包和次包可以都存放在服务器对应一个hash下,以供下载。
图2是大型游戏包的下载方法的详细流程图,如图2所示,该流程包括:
步骤201,用户选择游戏;
步骤202,客户端运行游戏;
步骤203,系统判断该游戏是否为大型游戏,如果是大型游戏,则进行步骤204,否则,退出流程;
步骤204,请求对应游戏hash的主包和次包信息;
步骤205,下载主包数据;
步骤206,运行大型游戏;
步骤207,判断是否有需要下载的次包文件,如果有,则进行步骤208;
步骤208,下载次包数据;
步骤209,每隔1秒采集主包和次包的下载长度;
步骤210,判断游戏运行读的长度是否大于下载的长度,如果是,则进行步骤211,否则进行步骤212;
步骤211,暂停游戏运行,等待下载,之后返回步骤210;
步骤212,继续运行大型游戏。
上述的主包、次包的分包方式(即,上述的预定规则)可以有以下两种:
(1)如图3所示,将大型游戏中的游戏初始化运行所需文件录入主包数据库,将其他文件录入次包数据库;
(2)如图4所示,根据文件大小确定主包和次包;具体地,将文件大小大于分割标准的文件录入主包数据库,将文件大小小于或等于分割标准的文件录入次包数据库。
在具体实施过程中,可以将每个游戏的次包分别对应的hash写在xml数据库(或者次包数据库)里面,以供每次运行游戏的时候检查该游戏有没有需要监控的文件。
用户点击游戏,游戏平台启动游戏时,安装游戏驱动程序,该驱动程序是监控的核心,主要用于实现监控功能。该驱动程序只要安装一次即可,不用每启动游戏一次都安装一次,安装完驱动程序之后同时监测xml,看是否有需要监控的文件,如果有需要监控的文件,则将监控信息传给驱动程序,监控信息包括文件路径、进程路径、文件已经下载的长度等,驱动程序用一个链表保存该信息,同时驱动程序增加一事件对象的信息,并初始化对象,每个文件对应一个事件对象。
游戏在下载次包的时候,可以周期性(例如,周期为1秒)将下载的长度传给驱动程序。
运行游戏的时候每次读写文件,都会读入驱动程序,之后驱动程序在通过保存的链表判断该文件是否是要监控的文件,如果是要监控的文件,再判断读的长度是否大于下载的长度,如果读的长度大于已经下载的长度,则暂停整个读取该文件的线程。当读取的长度小于等于下载的长度,则继续游戏。这样就实现了边下边玩,即,后台程序下载的同时用户可以直接游戏,这样用户就不用花费时间等游戏全部下载完毕,提高了用户的体验感。如果是不需要监控的文件,就按正常的文件读写进行操作。
实施例二
本发明实施例还提供一种大型游戏包的下载装置,如图5所示,该装置包括:
信息分类单元1,用于根据预定规则将大型游戏包分为主包和次包,其中,主包包括:大型游戏初始化运行所需的文件信息,次包包括:大型游戏运行时需要监控的文件信息;
主包下载运行单元2,用于根据下载请求,将主包下载至客户端并运行程序;
次包下载运行单元3,用于在用户游戏过程中,下载次包至客户端并运行程序。
由以上描述可以看出,通过信息分类单元将大型游戏包分为主包和次包,主包下载运行单元先下载主包并安装游戏,由于下载主包过程同时安装游戏,用户可以不用像现有技术中长时间的等待,而是可以在下载主包的同时进行游戏,相比于现有技术,本发明实施例能够提高用户的体验感。
优选地,上述信息分类单元中的主包还包括:用于获取所述次包路径信息和下载程度的监控信息。
如图6所示,主包下载运行单元2具体包括:
主包下载模块21,用于将主包下载至客户端;
程序运行模块22,用于运行大型游戏初始化程序;
次包信息获取单元23,用于获取次包路径信息;
主包监控模块24,用于监控大型游戏的下载过程以及大型游戏程序的运行过程。
如图7所示,次包下载运行单元3包括:
次包下载模块31,用于根据次包路径信息下载次包;
次包监控模块32,用于监控次包的下载过程以及次包程序的运行过程。
上述大型游戏包下载装置还包括:运行暂停单元(图中未示出),用于在大型游戏运行速度大于主包的下载速度时,暂停所述大型游戏的运行程序。
上述各单元、各模块的执行过程可以参考上述实施例一中的描述,此处不再赘述。
图8是大型游戏包下载系统的结构示意图,如图8所示,该大型游戏包下载系统包括终端及边下边玩服务器,终端及边下边玩服务器通过网络进行数据传输。边下边玩服务器端将大型游戏安装包分成主包和次包,主包是运行游戏的初始包,次包是需要监控的每个文件独立出来一个包,次包有很多个包,主包和次包都存放在服务器对应一个hash以供下载。边下边玩底层监控模块用于获取次包的监控信息,然后将监控信息传给游戏客户端的边下边玩管理模块,监控信息包括文件路径、进程路径、文件已经下载的长度。边下边玩管理模块根据监控信息控制游戏运行。
通过游戏的边下边玩,可以提高用户的体验感,无需像现有技术中的要等待游戏下载完毕后才能执行游戏。
综上所述,本发明实施例通过将大型游戏的文件数据分为主包和次包,大型游戏开始运行时优先下载主包,可快速运行游戏,给客户提供即点既玩的体验,接着再边玩边下载剩下的部分,这样节省了大量的下载游戏的时间,克服了现有技术中的用户体验差的缺陷,提高了用户的体验感。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,比如ROM/RAM、磁碟、光盘等。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。