一种将客户端游戏程序快速植入浏览器的方法及系统的制作方法

文档序号:6380173阅读:436来源:国知局
专利名称:一种将客户端游戏程序快速植入浏览器的方法及系统的制作方法
技术领域
本发明涉及网页插件植入领域,特别是涉及一种将客户端游戏程序快速植入浏览器的方法及系统。
背景技术
玩家在玩网路游戏之前,必需要先下载该游戏的客户端游戏应用程序,待下载全部完成以后才能进入游戏平台。且传统网络游戏的客户端游戏应用程序非常庞大,一般都达到300M以上,甚至是几个G大小,需要很长时间才能够下载完成。因此,在玩游戏之前, 必需经过长时间的等待才能进入游戏平台。
为了解决上述问题,现有的另一种技术方案如下程序人员按照不同平台的要求对客户端游戏应用程序进行大量的重新编码和测试的工作,将其改造成适合通过网络平台的易于推广的程序。在该技术方案中,由于对客户端游戏应用程序的二次开发需要进行大量的编码和测试的工作,并且,若想要游戏同时支持多种浏览器,需要多次编码,并同时维护多个项目,对人力和物力的消耗很大,以致生产成本过高。
因此亟需一种在玩游戏之前无需经过长时间的等待、且生产成本较低的将客户端游戏应用程序快速植入浏览器的方法和系统。发明内容
有鉴于此,本发明提供了一种将客户端游戏程序快速植入浏览器的方法及系统, 以满足在游戏之前无需经过长时间的等待、且生产成本较低的要求。
为了实现上述目的,本申请实施例提供的技术方案如下
—种将客户端游戏程序快速植入浏览器的方法,预先按照是否需要在同一时间段内加载将所述客户端游戏内的游戏资源数据分成多个游戏资源组,该方法包括
获取游戏角色的当前游戏信息,所述游戏角色的当前游戏信息包括游戏角色的等级信息、游戏角色所在的地图信息和玩家所选职业;
根据所述当前游戏信息在多个所述游戏资源组内查找出当前游戏运行所必需的游戏资源组;
下载所查找出的运行游戏所必需的游戏资源组,并在预设时间内判断所述必需游戏资源组是否下载完成;
如果是,控制游戏程序加载所述必需游戏资源组内的游戏资源数据;
如果否,在浏览器中的插件内显示等待下载完成状态,并冻结游戏主程序进程,且阻止用户的输入过程,直至下载完成。
优选地,所述预先按照是否需要在同一时间段内加载将所述客户端游戏内的游戏资源数据预先分成多个游戏资源组,包括
将所述客户端游戏内的游戏资源数据按照不同类型进行初步分类;
判断同一分类中的游戏资源数据是否需要在同一时间段内加载,所述同一时间段内加载的游戏数据拥有一个相同特征,所述相同特征包括资源是否属于同一地图、同一等级或者同一游戏内职业等;
将判断得到的需要在同一时间段内加载的游戏数据分为一个游戏资源组,并且将所述客户端游戏内的游戏资源数据分成多个游戏资源组。
优选地,所述运行游戏所必需的游戏资源数据组包括形成游戏地图框架的游戏资源数据组、与游戏角色职业等级相匹配的游戏资源数据组。
优选地,在浏览器插件中显示等待状态,并阻止用户的输入过程,具体包括
使用网页插件将游戏进程锁死,并在原游戏画面窗口的顶部显示包含有下载条进度的下载进度窗口;
将系统焦点设置给所述下载进度窗口,并停止游戏进程接收任何用户的输入操作;
使用网页插件在另一个线程里接管原游戏的网络接口,保存网络传来的信息,并代替游戏逻辑发送用来保持连接的心跳消息,以保持网络连接。
一种将客户端游戏程序快速植入浏览器的系统,包括预分组单元、获取单元、查找单元、下载单元、下载判断单元、运行单元和等待状态设置单元,其中
所述预分组单元,用于按照是否在同一时间段内加载将所述客户端游戏内的游戏数据预先分成多个游戏数据组;
所述获取单元用于获取游戏角色的当前游戏信息,所述游戏角色的当前游戏信息包括游戏角色的等级信息和游戏角色所在的地图信息;
所述查找单元用于根据所述获取单元获取得到的当前游戏信息在多个所述游戏数据组内查找出当前游戏运行所必需的游戏数据组;
所述下载单元,用于在浏览器中预先改造后的网页上下载所查找出的运行游戏所必需的游戏数据组;
所述下载判断单元,用于判断在预设时间内所述必需游戏数据组是否下载完成;
所述运行单元,用于当所述下载判断单元判断下载完成时,加载所查找出的运行游戏所必需的游戏数据组;
所述等待状态设置单元,用于当所述下载判断单元判断下载未完成时,在浏览器中改造后的网页上显示等待状态,并冻结游戏主程序进程,且阻止用户的输入过程,直至下载完成。
优选地,所述预分组单元包括分类单元、加载判断单元和预分组子单元,其中
所述分类单元用于将所述客户端游戏内的游戏数据按照不同类型进行初步分类;
所述加载判断单元用于判断同一分类中的游戏数据是否在同一时间段内加载,所述同一时间段内加载的游戏数据拥有一个相同特征,所述相同特征包括同一地图编号、同一等级或者同一游戏内职业;
所述预分组子单元用于将判断得到的在同一时间段内加载的游戏数据分为一个游戏资源组,并且所述与分组子单元将所述客户端游戏内的游戏资源数据分成多个游戏资源组。
优选地,所述等待状态设置单元包括锁定单元、系统焦点设置单元和网络连接单元,其中
所述锁定单元用于使用网页插件将游戏进程锁死,并用显示下载条进度的下载进度窗口遮盖原游戏画面窗口;
所述系统焦点设置单元用于将系统焦点设置给所述下载进度窗口,并停止接收任何用户的输入操作;
所述网络连接单元用于使用网页插件在另一个线程里接管原游戏的网络接口,保存网络传来的信息,并代替游戏逻辑发送用来保持连接的心跳消息,以保持网络连接。
由以上技术方案可见,本申请实施例提供的该方法在执行前,首先预先将所述客户端游戏内的游戏资源数据分成多个游戏资源组,这里不同的游戏资源组内数据加载的时间均不相同,但同一个游戏资源组内的数据加载的时间均相同,而该方法在执行时,通过获取游戏角色的当前游戏信息,就可以根据游戏角色当前具体情况,在多个游戏资源组内查找运行游戏所必需的游戏资源组,并且在查找到必需游戏资源组后,直接进行下载;最后, 当在预设时间内下载完成,直接加载下载后的必需游戏资源组即可,而当预设时间内下载没有完成,那么将会中断当前游戏进程,直至下载完成。
本申请实施例提供的该方法,在下载游戏数据时,首先下载那些可以保证当前游戏正常运行的必需资源,由于必需游戏资源组的百分比很小,此时用户只需下载少量必需资源即可进入游戏平台,即在开始游戏时,用户需要等待的时间很小。与现有技术相比,该方法大大减少对客户端游戏数据进行重新编码和测试工作,降低了客户端游戏改成成网页游戏的生产成本。并且可以实现将客户端游戏应用程序快速植入浏览器,同时在将客户端游戏程序植入浏览器时,用户等待的时间较短。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图I为本申请实施例提供的一种将客户端游戏程序快速植入浏览器的方法的流程不意图2为本申请实施例提供的对客户端游戏内的游戏资源进行分组的流程示意图3为本申请实施例提供的显示等待下载并阻止用户输入的流程示意图4为本申请实施例提供的在浏览器中的插件内加载所述必需游戏资源组内的游戏资源数据的详细流程示意图5为本申请实施例提供的将客户端游戏程序快速植入浏览器的系统的结构示意图6为本申请实施例提供的预分组单元的详细结构示意图7为本申请实施例提供的待状态设置单元的详细结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图I为本申请实施例提供的一种将客户端游戏程序快速植入浏览器的方法的流程不意图。
在本申请实施例提供的该方法进行前,需要做一些准备工作,这些准备工作包括 预先按照是否需要在同一时间段内加载将所述客户端游戏内的游戏资源数据分成多个游戏资源组。
通过上述预先分组处理后,客户端游戏内的众多的游戏资源数据进行一个初步的梳理,梳理后的游戏资源数据将会被分成多个游戏资源组,不同的游戏资源组内数据加载的时间均不相同,但同一个游戏资源组内的数据加载的时间均相同。
如图I所示,本申请实施例提供的将客户端游戏程序快速植入浏览器的方法包括以下步骤
SlOl :获取游戏角色的当前游戏信息。
在游戏中,用户通过扮演虚拟世界中的一个或者几个特定角色在特定场景下进行游戏,并且角色根据不同的游戏情节和统计数据(例如力量、灵敏度、智力、魔法等)具有不同的能力。在本申请实施例中,游戏角色的当前游戏信息可以包括游戏角色的等级信息、 游戏角色所在的地图信息和玩家所选职业等,本领域技术人员应该知道,上述游戏角色的当前信息仅仅是本申请实施例提供的一些实施例,在本申请其它实施例中,根据不同的情况,还可以包括其它信息。
S102:根据所述当前游戏信息在多个所述游戏资源组内查找出当前游戏运行所必需的游戏资源组。
在前述准备过程中,已经将客户端游戏资源中被分成的多个游戏资源组中,虽然可以确定不同游戏资源组内数据的加载时间不同,但无法确定不同游戏资源组加载的先后顺序。
通过该步骤,可以对多个游戏资源组的加载先后进行一个初步区分。这里,本申请实施例所描述的必需游戏资源是指程序或游戏中不可或缺的资源。例如游戏角色进入一张地图,此时如果没有加载地图资源,那么玩家看到的将是游戏角色处于一片空白环境中或者游戏程序会因为资源的缺失而不能正常运行,所以此时游戏地图的模型或材质往往是地图中的必需资源。而相对而言,为某个地图定制的背景音乐则可以是非必需资源,即玩家即便听不到背景音乐也不会影响玩家正常的游戏。
对于游戏角色当前所处的游戏环境来说,其所需要的必需游戏资源相对于客户端游戏的所有游戏资源来说,所占的比重相对较小。
S103:下载所查找出的运行游戏所必需的游戏资源组,并在预设时间内判断所述必需游戏资源组是否下载完成。
经过上述步骤S102的查找,可以确定出需要首先下载的游戏资源组,在该步骤中,可以直接在浏览器插件中下载所查找出的运行游戏所必需的游戏资源组。
另外,当开始下载后,还需在预设时间内判断上述下载动作是否完成,这里预设时间通常是指游戏中预先延迟的时间,即玩家在游戏中可以容忍的最大迟延时间。
当在预设时间内下载动作已经完成,直接执行步骤S104;相反,当在预设时间内下载动作还没有完成,那么需要执行步骤S105。
S104:在改造后的游戏主程序上加载所述必需游戏资源组内的游戏资源数据。
由于在步骤S103中已经判断出必需游戏资源组已经下载完成,所以在该步骤就可以直接,将下载后的必需游戏资源组直接进行记载即可。
S105:在浏览器中的插件内显示等待下载完成状态,并冻结游戏主程序进程,且阻止用户的输入过程。
由于在预设时间内,运行游戏所必需的游戏资源组并没有加载完成,那么此时就需要暂停用户的游戏界面,并冻结游戏主程序进程,以等待这些必需的游戏资源组下载完成,否则游戏程序可能会因为资源的缺失而不能正常运行,或者即使游戏程序可以运行,用户看到的游戏角色(这里可以为游戏角色本身或者游戏角色所处的环境)将会出现严重偏差甚至失真。
所以在必需游戏资源组下载完成前,需要中断当前的游戏进程,并返回步骤S103, 直至必需游戏资源组下载完成,才可以进行加载,使得游戏可以正常运行。
此外,在本申请实施例中,对于那些非必须客户端游戏资源数据组,浏览器插件在游戏运行的过程中可以选择在后台进行下载,并且下载完成后通知游戏程序下载完成,以便游戏程序加载非必需的游戏资源。对于后台下载的过程,本领域普通技术人员都了解其过程,在此不再赘述。
由以上技术方案可见,本申请实施例提供的该方法在执行前,首先预先将所述客户端游戏内的游戏资源数据分成多个游戏资源组,这里不同的游戏资源组内数据加载的时间均不相同,但同一个游戏资源组内的数据加载的时间均相同,而该方法在执行时,通过获取游戏角色的当前游戏信息,就可以根据游戏角色当前具体情况,在多个游戏资源组内查找运行游戏所必需的游戏资源组,并且在查找到必需游戏资源组后,直接进行下载;最后, 当在预设时间内下载完成,直接加载下载后的必需游戏资源组即可,而当预设时间内下载没有完成,那么将会中断当前游戏进程,直至下载完成。
本申请实施例提供的该方法,在下载游戏数据时,首先下载那些可以保证当前游戏正常运行的必需资源,由于必需游戏资源组的百分比很小,此时用户只需下载少量必需资源即可进入游戏平台,即在开始游戏时,用户需要等待的时间很小。与现有技术相比,该方法大大减少对客户端游戏数据进行重新编码和测试工作,降低了客户端游戏改成成网页游戏的生产成本,同时在将客户端游戏程序植入浏览器时,用户等待的时间较短。
实施例二
在上述实施例中,在将客户端游戏程序快速植入浏览器之前,需要游戏资源组分组的准备工作,在进行分组时,其宗旨是按照是否需要在同一时间段内加载。在本申请实施例,关于如何对游戏资源进行分组进行详细阐述。
图2为本申请实施例提供的对客户端游戏内的游戏资源进行分组的流程示意图。
如图2所示,该分组步骤包括
S201 :将所述客户端游戏内的游戏资源数据按照不同类型进行初步分类。
这里的初步分类的标准是指游戏资源数据的类型,即游戏内不同的地图数据可以分成地图类,游戏内同一类植物的数据可以分成植物类,例如植物类可以分为阔叶林类、针叶林类、灌木类等等,通过上述初步分类,可以对客户端游戏内的所有游戏资源数据进行一个初步归类,以方便后续查找过程。
S202 :判断同一分类中的游戏资源数据是否需要在同一时间段内加载。
由于同一分类中的游戏资源数据,可以根据不同的用户需求而不再同一时间段内加载。例如考虑到用户分辨率的问题,对于同一棵树来说,当游戏角色与该树的距离较远时,此时可以只加载树干部分,就可以满足游戏运行要求,而当用户站在该树附近或者用户位于该树上时,就需要加载树枝、树叶、花朵甚至果实等细节信息,否则即使游戏可以运行, 但对于用户来说,其游戏角色将处于的环境将会出现偏差甚至失真。
本申请实施例中,对于同一时间段内加载的游戏数据拥有一个相同特征,这里所说的相同特征包括资源是否属于同一地图、同一等级或者同一游戏内职业等,也就是从游戏角色的当前情况来看,当前游戏角色所需要的必需游戏资源是对不同分类中再次选择后的结果。
S203:将判断得到的在同一时间段内加载的游戏数据分为一个游戏资源组,并且将所述客户端游戏内的游戏资源数据分成多个游戏资源组。
通过该步骤,就可以将客户端游戏内的所有游戏资源分成多个游戏资源组,这里不同的游戏资源组内数据加载的时间均不相同,但同一个游戏资源组内的数据加载的时间均相同。并且最后得到的运行游戏所必需的游戏资源数据组包括形成游戏地图框架的游戏资源数据组、与游戏角色职业等级相匹配的游戏资源数据组。
实施例三
当实施例一中判断在预设时间内必需游戏资源组的下载动作没有完成,那么就需要中断当前的游戏进程,直至必需游戏资源组下载完成。在本申请实施例中,针对如何在浏览器中的插件内显示等待下载完成状态,并阻止用户的输入过程,进行详细阐述。
图3为本申请实施例提供的显示等待下载并阻止用户输入的流程示意图。
如图3所示,该步骤包括
S301 :使用网页插件将游戏进程锁死,并在原游戏画面窗口的顶部显示包含有下载条进度的下载进度窗口。
这里所描述的有游戏画面窗口的顶部,并不是指位于浏览器屏幕平面的上方,而是指在将原游戏画面窗口置于底层,而下载进度窗口位于原游戏画面的前方。
S302 :将系统焦点设置给所述下载进度窗口,并停止游戏进程接收任何用户的输入操作。
通过停止游戏进程接收任何有能过户的输入操作,使得用户无法操控游戏进程, 进而可以使得用户的游戏角色处于等待状态,即使得整个游戏进程处于等待状态。
S303:使用网页插件在另一个线程里接管原游戏的网络接口,保存网络传来的信息,并代替游戏逻辑发送用来保持连接的心跳消息,以保持网络连接。
通过上述步骤,可以在必需游戏资源组下载完成前,中断当前的游戏进程并直至必需游戏资源组下载完成。
实施例四
在上述实施例中,当判断在预设时间内必需游戏资源组的下载动作完成后,那么就需要对下载完成的必需游戏资源组进行加载。在本申请实施例中,在加载所述必需游戏资源组内的游戏资源数据,需要客户端游戏程序进行一些小的改造,下面进行详细阐述。
图4为本申请实施例提供的游戏在浏览器中的插件内加载所述必需游戏资源组内的游戏资源数据的详细流程示意图。
如图4所示,该步骤包括
S401 :调用开发框架提供的接口函数来访问所述游戏资源。
S402 :修改网络接口函数为同名的开发框架提供的接口函数。
S403 :使用开发框架提供的函数创建游戏主窗口。
通过上述步骤,可以对需要客户端游戏程序进行一些小的改造,并且可以利用改造后的游戏程序内对必需游戏资源组进行加载。
实施例五
本申请实施例还提供一种将客户端游戏程序快速植入浏览器的系统,图5为本申请实施例提供的将客户端游戏程序快速植入浏览器的系统的结构示意图。
如图5所示,该系统包括预分组单元10、获取单元20、查找单元30、下载单元40、 下载判断单元50、运行单元60和等待状态设置单元70。
预分组单元10,用于按照是否在同一时间段内加载将所述客户端游戏内的游戏数据预先分成多个游戏数据组。
通过上述预先分组处理后,客户端游戏内的众多的游戏资源数据进行一个初步的梳理,梳理后的游戏资源数据将会被分成多个游戏资源组,不同的游戏资源组内数据加载的时间均不相同,但同一个游戏资源组内的数据加载的时间均相同。
获取单元20,用于获取游戏角色的当前游戏信息,所述游戏角色的当前游戏信息包括游戏角色的等级信息和游戏角色所在的地图信息。
在游戏中,用户通过扮演虚拟世界中的一个或者几个特定角色在特定场景下进行游戏,并且角色根据不同的游戏情节和统计数据(例如力量、灵敏度、智力、魔法等)具有不同的能力。在本申请实施例中,游戏角色的当前游戏信息可以包括游戏角色的等级信息、 游戏角色所在的地图信息和玩家所选职业等,本领域技术人员应该知道,上述游戏角色的当前信息仅仅是本申请实施例提供的一些实施例,在本申请其它实施例中,根据不同的情况,还可以包括其它信息。
查找单元30,用于根据所述获取单元获取得到的当前游戏信息在多个所述游戏数据组内查找出当前游戏运行所必需的游戏数据组。
在前述准备过程中,已经将客户端游戏资源中被分成的多个游戏资源组中,虽然可以确定不同游戏资源组内数据的加载时间不同,但无法确定不同游戏资源组加载的先后顺序。
通过该步骤,可以对多个游戏资源组的加载先后进行一个初步区分。这里,本申请实施例所描述的必需游戏资源是指程序或游戏中不可或缺的资源。例如游戏角色进入一张地图,此时如果没有加载地图资源,那么玩家看到的将是游戏角色处于一片空白环境中或者游戏程序会因为资源的缺失而不能正常运行,所以此时游戏地图的模型或材质往往是地图中的必需资源。而相对而言,为某个地图定制的背景音乐则可以是非必需资源,即玩家即便听不到背景音乐也不会影响玩家正常的游戏。1
对于游戏角色当前所处的游戏环境来说,其所需要的必需游戏资源相对于客户端游戏的所有游戏资源来说,所占的比重相对较小。
下载单元40,用于在浏览器中预先改造后的网页上下载所查找出的运行游戏所必需的游戏数据组。
下载判断单元50,用于判断在预设时间内所述必需游戏数据组是否下载完成。这里预设时间通常是指游戏中预先延迟的时间,即玩家在游戏中可以容忍的最大迟延时间。
运行单元60,用于当所述下载判断单元判断下载完成时,在浏览器插件中下载所查找出的运行游戏所必需的游戏数据组。由于下载判断单元50已经判断出必需游戏资源组已经下载完成,所以运行单元60就可以直接,将下载后的必需游戏资源组直接进行记载即可。
等待状态设置单元70,用于当所述下载判断单元判断下载未完成时,在浏览器中改造后的网页上显示等待状态,并冻结游戏主程序进程,且阻止用户的输入过程,直至下载完成。
由于在预设时间内,运行游戏所必需的游戏资源组并没有加载完成,那么此时就需要暂停用户的游戏界面,以等待这些必需的游戏资源组下载完成,否则游戏程序可能会因为资源的缺失而不能正常运行,或者即使游戏程序可以运行,用户看到的游戏角色(这里可以为游戏角色本身或者游戏角色所处的环境)将会出现严重偏差甚至失真。
所以在必需游戏资源组下载完成前,需要中断当前的游戏进程,直至必需游戏资源组下载完成,才可以进行加载,使得游戏可以正常运行。
由以上技术方案可见,本申请实施例提供的该系统,首先预先将所述客户端游戏内的游戏资源数据分成多个游戏资源组,这里不同的游戏资源组内数据加载的时间均不相同,但同一个游戏资源组内的数据加载的时间均相同。然后通过获取游戏角色的当前游戏信息,就可以根据游戏角色当前具体情况,在多个游戏资源组内查找运行游戏所必需的游戏资源组,并且在查找到必需游戏资源组后,直接进行下载。最后,当在预设时间内下载完成,直接加载下载后的必需游戏资源组即可,而当预设时间内下载没有完成,那么将会中断当前游戏进程,直至下载完成。
本申请实施例提供的该系统,在下载游戏数据时,首先下载那些可以保证当前游戏正常运行的必需资源,由于必需游戏资源组的百分比很小,此时用户只需下载少量必需资源即可进入游戏平台,即在开始游戏时,用户需要等待的时间很小。与现有技术相比,该方法无需对客户端游戏数据进行重新编码和测试工作,减小了客户端游戏的生产成本,并且可以实现将客户端游戏应用程序快速植入浏览器,同时在将客户端游戏程序植入浏览器时,用户等待的时间较短。
实施例六
图6为本申请实施例提供的预分组单元的详细结构示意图。
如图6所示,预分组单元10包括分类单元11、加载判断单元12和预分组子单元 13,其中
分类单元11用于将所述客户端游戏内的游戏数据按照不同类型进行初步分类;
加载判断单元12与分类单元11相连接,用于判断同一分类中的游戏数据是否在同一时间段内加载,所述同一时间段内加载的游戏数据拥有一个相同特征,所述相同特征包括同一地图编号、同一等级或者同一游戏内职业;
预分组子单元13与加载判断单元12相连接,用于将判断得到的在同一时间段内加载的游戏数据分为一个游戏资源组,并且所述与分组子单元将所述客户端游戏内的游戏资源数据分成多个游戏资源组。
实施例七
图7为本申请实施例提供的待状态设置单元的详细结构示意图。
如图7所示,待状态设置单元70包括锁定单元71、系统焦点设置单元72和网络连接单元73,其中
锁定单元71用于使用网页插件将游戏进程锁死,并用显示下载条进度的下载进度窗口遮盖原游戏画面窗口;
系统焦点设置72单元用于将系统焦点设置给所述下载进度窗口,并停止接收任何用户的输入操作;
网络连接单元73用于使用网页插件在另一个线程里接管原游戏的网络接口,保存网络传来的信息,并代替游戏逻辑发送用来保持连接的心跳消息,以保持网络连接。
在实际案例中,本发明提供的运行单元可以采用KLWebX系统来实现,这里KLWebX 系统包括以下5个主要的功能模块
I >KLffebX_AXPlayer:是一个嵌入 Internet Explorer 浏览器的 ActiveX 插件,与网页脚本进行通信,并负责升级和加载XModule与XDownloader模块。
2>KLffebX_NSPlayer:是嵌入 Google Chrome、Safari、Firefox、Opera 等浏览器的网页插件,同样负责与网页脚本进行通信,以及升级和加载XModule与XDownloader模块。
3、XModule :是一个不带任何显示的标准DLL,是网页脚本和游戏间通讯的桥梁, 适用于多种浏览器。能够根据网页脚本传来的数据下载和启动游戏程序。
4,XDownloader :是一个没有任何显示的EXE程序,受XModule控制执行HTTP下载队列的管理。
5、XFramework :嵌入游戏的代码和静态链接库,为游戏提供下载、与脚本通信、与 XModule通信的功能。
在KLWebX系统中,当KLWebX框架发现游戏系统要访问的必要资源尚未下载时, KLffebX首先将游戏进程锁死,这时定时器和渲染循环或逻辑循环将不再动作;在锁死游戏进程的同时,KLWebX会用显示下载进度条的窗口遮盖原游戏画面窗口,并将系统焦点设置给下载进度窗口,此时游戏系统将不再收到任何用户的输入操作。同时,KLWebX在另一个线程里接管原游戏的网络接口,保存网络传来的消息,并替游戏逻辑发送用来保持连接的 idle消息或tick消息来保持网络的连接。经过上述操作,游戏客户端进入休眠状态,但仍与游戏服务器保持着正常的连接。在游戏所需的必要资源下载结束后,KLWebX将收起下载进度窗口,释放游戏进程,并将收到的网络消息发给游戏系统。此时游戏系统从休眠中醒来,所需的资源已经下载完毕,就可以一如既往的进行游戏逻辑了。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请可用于众多通用或专用的计算系统环境或配置中。例如个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。 对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
权利要求
1.一种将客户端游戏程序快速植入浏览器的方法,其特征在于,预先按照是否需要在同一时间段内加载将所述客户端游戏内的游戏资源数据分成多个游戏资源组,该方法包括 获取游戏角色的当前游戏信息,所述游戏角色的当前游戏信息包括游戏角色的等级信息、游戏角色所在的地图信息和玩家所选职业; 根据所述当前游戏信息在多个所述游戏资源组内查找出当前游戏运行所必需的游戏资源组; 下载所查找出的运行游戏所必需的游戏资源组,并在预设时间内判断所述必需游戏资源组是否下载完成; 如果是,控制游戏程序加载所述必需游戏资源组内的游戏资源数据; 如果否,在浏览器中的插件内显示等待下载完成状态,并冻结游戏主程序进程,且阻止用户的输入过程,直至下载完成。
2.根据权利要求I所述的方法,其特征在于,所述预先按照是否需要在同一时间段内加载将所述客户端游戏内的游戏资源数据预先分成多个游戏资源组,包括 将所述客户端游戏内的游戏资源数据按照不同类型进行初步分类; 判断同一分类中的游戏资源数据是否需要在同一时间段内加载,所述同一时间段内加载的游戏数据拥有一个相同特征,所述相同特征包括资源是否属于同一地图、同一等级或者同一游戏内职业等; 将判断得到的需要在同一时间段内加载的游戏数据分为一个游戏资源组,并且将所述客户端游戏内的游戏资源数据分成多个游戏资源组。
3.根据权利要求2所述的方法,其特征在于,所述运行游戏所必需的游戏资源数据组包括形成游戏地图框架的游戏资源数据组、与游戏角色职业等级相匹配的游戏资源数据组。
4.根据权利要求3所述的方法,其特征在于,在浏览器插件中显示等待状态,并阻止用户的输入过程,具体包括 使用网页插件将游戏进程锁死,并在原游戏画面窗口的顶部显示包含有下载条进度的下载进度窗口; 将系统焦点设置给所述下载进度窗口,并停止游戏进程接收任何用户的输入操作; 使用网页插件在另一个线程里接管原游戏的网络接口,保存网络传来的信息,并代替游戏逻辑发送用来保持连接的心跳消息,以保持网络连接。
5.一种将客户端游戏程序快速植入浏览器的系统,其特征在于,包括预分组单元、获取单元、查找单元、下载单元、下载判断单元、运行单元和等待状态设置单元,其中 所述预分组单元,用于按照是否在同一时间段内加载将所述客户端游戏内的游戏数据预先分成多个游戏数据组; 所述获取单元用于获取游戏角色的当前游戏信息,所述游戏角色的当前游戏信息包括游戏角色的等级信息和游戏角色所在的地图信息; 所述查找单元用于根据所述获取单元获取得到的当前游戏信息在多个所述游戏数据组内查找出当前游戏运行所必需的游戏数据组; 所述下载单元,用于在浏览器中预先改造后的网页上下载所查找出的运行游戏所必需的游戏数据组; 所述下载判断单元,用于判断在预设时间内所述必需游戏数据组是否下载完成; 所述运行单元,用于当所述下载判断单元判断下载完成时,加载所查找出的运行游戏所必需的游戏数据组; 所述等待状态设置单元,用于当所述下载判断单元判断下载未完成时,在浏览器中改造后的网页上显示等待状态,并冻结游戏主程序进程,且阻止用户的输入过程,直至下载完成。
6.根据权利要求5所述的系统,其特征在于,所述预分组单元包括分类单元、加载判断单元和预分组子单元,其中 所述分类单元用于将所述客户端游戏内的游戏数据按照不同类型进行初步分类; 所述加载判断单元用于判断同一分类中的游戏数据是否在同一时间段内加载,所述同一时间段内加载的游戏数据拥有一个相同特征,所述相同特征包括同一地图编号、同一等级或者同一游戏内职业; 所述预分组子单元用于将判断得到的在同一时间段内加载的游戏数据分为一个游戏资源组,并且所述与分组子单元将所述客户端游戏内的游戏资源数据分成多个游戏资源组。
7.根据权利要求5所述的系统,其特征在于,所述等待状态设置单元包括锁定单元、系统焦点设置单元和网络连接单元,其中 所述锁定单元用于使用网页插件将游戏进程锁死,并用显示下载条进度的下载进度窗口遮盖原游戏画面窗口; 所述系统焦点设置单元用于将系统焦点设置给所述下载进度窗口,并停止接收任何用户的输入操作; 所述网络连接单元用于使用网页插件在另一个线程里接管原游戏的网络接口,保存网络传来的信息,并代替游戏逻辑发送用来保持连接的心跳消息,以保持网络连接。
全文摘要
本发明公开了一种将客户端游戏程序快速植入浏览器的方法及系统,该方法包括获取游戏角色的当前游戏信息,根据当前游戏信息在全部游戏资源组内查找出当前游戏运行所必需的游戏资源组;下载所查找出的运行游戏所必需的游戏资源组,并在预设时间内判断必需游戏资源组是否下载完成;如果是,在浏览器中的插件内加载必需游戏资源组内的游戏资源数据;如果否,在浏览器中的插件内显示等待下载完成状态,并阻止用户的输入过程。与现有技术相比,该方法大大减少对客户端游戏数据进行重新编码和测试工作,降低了客户端游戏改成成网页游戏的生产成本。
文档编号G06F19/00GK102984124SQ20121042798
公开日2013年3月20日 申请日期2012年10月31日 优先权日2012年10月31日
发明者孙继峥 申请人:北京昆仑万维科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1