首页> 中国专利> 游戏特效实现方法、游戏客户端

游戏特效实现方法、游戏客户端

摘要

一种游戏特效实现方法,包括以下步骤:游戏客户端与游戏服务器建立连接;所述游戏客户端获取命中提前时间;所述游戏客户端向游戏服务器发送特效使用消息,并根据所述命中提前时间向所述游戏服务器发送特效命中消息;所述游戏客户端接收游戏服务器根据特效命中消息进行命中处理后生成的命中响应消息;所述游戏客户端根据所述命中响应消息进行相应的特效表现。采用上述方法,能够减少网络环境对特效表现的影响,从而能提高网络游戏反应速度。此外,还提供了一种游戏客户端。

著录项

  • 公开/公告号CN102739608A

    专利类型发明专利

  • 公开/公告日2012-10-17

    原文格式PDF

  • 申请/专利权人 腾讯科技(深圳)有限公司;

    申请/专利号CN201110086809.7

  • 申请日2011-04-07

  • 分类号H04L29/06(20060101);G06F19/00(20110101);

  • 代理机构44224 广州华进联合专利商标代理有限公司;

  • 代理人何平;曾旻辉

  • 地址 518044 广东省深圳市福田区振兴路赛格科技园2栋东403室

  • 入库时间 2023-12-18 06:57:20

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-08-06

    授权

    授权

  • 2013-09-25

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20110407

    实质审查的生效

  • 2012-10-17

    公开

    公开

说明书

【技术领域】

本发明涉及网络游戏领域,特别是关于一种游戏特效实现方法及游戏客户 端。

【背景技术】

网络游戏是指以互联网为传输媒介,以游戏运营商服务器和用户计算机为 处理终端,以游戏客户端软件为信息交互窗口的旨在实现娱乐、休闲、交流和 取得虚拟成就的具有相当可持续性的个体性多人在线游戏。

传统的网络游戏中实现游戏特效的方式通常是:玩家在使用游戏特效时, 游戏客户端向游戏服务器发起使用请求,游戏服务器收到该使用请求后向游戏 客户端返回特效使用消息、特效命中消息,游戏客户端接收到特效命中消息后 根据特效命中消息进行相应的特效表现(例如飘血、击退等)。然而,这种方式 由于是由游戏服务器驱动特效的使用,增加了游戏服务器的开销,且在网络环 境恶劣的情况下,游戏客户端不能及时收到游戏服务器返回的特效命中消息, 从而导致特效表现延迟。

也有在玩家使用游戏特效时,游戏客户端先不向游戏服务器发送使用请求, 而是在游戏客户端已经命中了目标后才向游戏服务器发送特效命中消息,并等 待接收游戏服务器返回的特效命中响应消息,游戏客户端收到游戏服务器返回 的响应消息后进行相应的特效表现。然而,这种方式由于游戏客户端需等待游 戏服务器返回的响应消息,在网络环境恶劣的情况下,游戏客户端等待的时间 过长,不能及时收到游戏服务器返回的响应消息,从而也导致特效表现延迟。

【发明内容】

基于此,有必要提供一种能减小网络环境对特效表现的影响,从而能提高 网络游戏反应速度的游戏特效实现方法。

一种游戏特效实现方法,包括以下步骤:游戏客户端与游戏服务器建立连 接;所述游戏客户端获取命中提前时间;所述游戏客户端向游戏服务器发送特 效使用消息,并根据所述命中提前时间向所述游戏服务器发送特效命中消息; 所述游戏客户端接收游戏服务器根据特效命中消息进行命中处理后生成的命中 响应消息;所述游戏客户端根据所述命中响应消息进行相应的特效表现。

优选的,所述游戏客户端获取命中提前时间的步骤之前还包括:所述游戏 客户端向游戏服务器发送测试消息,并接收游戏服务器返回的测试响应消息; 所述游戏客户端获取测试响应时间,所述测试响应时间为游戏客户端发送测试 消息与收到所述测试响应消息之间的时间间隔。

优选的,若所述游戏客户端第一次向游戏服务器发送特效使用消息,则所 述游戏客户端获取命中提前时间的步骤为:所述游戏客户端获取预设最大命中 提前时间;所述游戏客户端提取所述预设最大命中提前时间和所述测试响应时 间中的最小值为命中提前时间。

优选的,若所述游戏客户端不是第一次向游戏服务器发送特效使用消息, 则所述游戏客户端获取命中提前时间的步骤为:所述游戏客户端获取预设最大 命中提前时间;所述游戏客户端提取所述预设最大命中提前时间和所述测试响 应时间中的最小值,再调整命中提前时间为上一次获取的命中提前时间与所述 最小值的平均值。

优选的,所述游戏客户端根据命中提前时间向所述游戏服务器发送特效命 中消息的步骤为:所述游戏客户端获取特效前摇时间;所述游戏客户端获取所 述特效前摇时间与所述命中提前时间的时间差;所述游戏客户端在向游戏服务 器发送特效使用消息后经过所述时间差后向所述游戏服务器发送特效命中消 息。

优选的,所述游戏客户端根据命中响应消息进行相应的特效表现的步骤为: 所述游戏客户端判断接收到命中响应消息时是否已到达所述特效前摇时间,若 是,则所述游戏客户端在接收到命中响应消息后立即根据所述命中响应消息进 行相应的特效表现,否则,缓存所述命中响应消息,待到达所述特效前摇时间 时,提取缓存的命中响应消息,并根据所述命中响应消息进行相应的特效表现。

此外,还提供了一种能减小网络环境对特效表现的影响,从而能提高网络 游戏反应速度的游戏客户端。

一种游戏客户端,所述游戏客户端包括:时间处理模块,用于在所述游戏 客户端与游戏服务器建立连接后获取命中提前时间;第一通信模块,用于向游 戏服务器发送特效使用消息,并根据命中提前时间向游戏服务器发送特效命中 消息;以及用于接收游戏服务器根据特效命中消息进行命中处理后生成的命中 响应消息,特效表现模块,用于根据所述命中响应消息进行相应的特效表现。

优选的,所述第一通信模块还用于在获取命中提前时间之前向游戏服务器 发送测试消息,并接收游戏服务器返回的测试响应消息;所述时间处理模块还 用于获取测试响应时间,所述测试响应时间为所述游戏客户端发送测试消息与 接收到测试响应消息之间的时间间隔。

优选的,所述时间处理模块进一步用于若所述游戏客户端第一次向游戏服 务器发送特效使用消息,则获取预设最大命中提前时间,提取所述预设最大命 中提前时间和所述测试响应时间中的最小值为命中提前时间。

优选的,所述时间处理模块进一步用于若所述游戏客户端不是第一次向游 戏服务器发送特效使用消息,则获取预设最大命中提前时间,提取所述预设最 大命中提前时间和所述测试响应时间中的最小值,再调整命中提前时间为上一 次获取的技能命中时间与所述最小值的平均值。

优选的,所述第一通信模块进一步用于获取特效前摇时间,并获取所述特 效前摇时间与所述命中提前时间的时间差,在向游戏服务器发送特效使用消息 后经过所述时间差后向所述游戏服务器发送特效命中消息。

优选的,所述游戏客户端还包括:判断模块,用于判断接收到命中响应消 息时是否已到达所述特效前摇时间;所述特效表现模块用于在所述第一通信模 块接收到命中响应消息时已到达所述特效前摇时间时,则立即根据所述命中响 应消息进行相应的特效表现;缓存模块,用于在所述第一通信模块接收到命中 响应消息时未到达所述特效前摇时间,则缓存所述命中响应消息;所述特效表 现模块还用于在所述所述第一通信模块接收到命中响应消息时未到达所述特效 前摇时间时,则等待到达所述特效前摇时间,在到达所述特效前摇时间后从所 述缓存模块中提取命中响应消息,并根据所述命中消息进行相应的特效表现。

上述游戏特效实现方法及游戏客户端,通过获取命中提前时间,提前一段 时间向游戏服务器发送特效命中消息,由于特效命中是由游戏客户端触发,因 此能有效减小游戏服务器的压力,而在收到命中响应消息时提前一段时间向游 戏服务器发送特效命中消息,无需等待接收游戏服务器返回的命中响应消息, 因此能有效减小网络环境对特效表现的影响,从而提高了网络游戏的反应速度。

【附图说明】

图1为一个实施例中游戏特效实现方法的流程图;

图2为图1中游戏客户端获取命中提前时间的方法流程图;

图3为另一个实施例中游戏客户端获取命中提前时间的方法流程图;

图4为图1中游戏客户端根据命中提前时间向游戏服务器发送特效命中消 息的方法流程图;

图5为图1中游戏客户端根据命中响应消息进行相应的特效表现的方法流 程图;

图6为一个实施例中游戏客户端与游戏服务器进行交互的系统的结构示意 图;

图7为另一个实施例中游戏客户端的结构示意图;

图8为一个实施例中中游戏客户端与游戏服务器进行交互的时序图。

【具体实施方式】

在一个实施例中,如图1所示,一种游戏特效实现方法,包括以下步骤:

步骤S10,游戏客户端与游戏服务器建立连接。

游戏客户端获取用户输入的账号、密码等信息,并将这些信息发送到游戏 服务器进行验证,验证通过后游戏客户端则与游戏服务器建立了连接。

步骤S20,游戏客户端获取命中提前时间。

命中提前时间是指游戏客户端向游戏服务器发送特效使用消息后应在特效 前摇时间到达前,提前多少时间向游戏服务器发送特效命中消息。特效前摇时 间是指特效的一种配置属性,可以是特效发起到到特效释放完或命中的时间。 例如,特效前摇时间是技能攻击发起到技能命中的时间。如某些技能的特效前 摇时间为1S。

在一个实施例中,在步骤S20之前,游戏客户端向游戏服务器发出测试消 息,并接收游戏服务器返回的测试响应消息。然后游戏客户端获取测试响应时 间,测试响应时间为游戏客户端发送测试消息与接收到测试响应消息的时间间 隔。这里的测试消息是指RTT消息(Round Trip Time),RTT也称为游戏客户端 与游戏服务器的消息往返时间。

在一个实施例中,如图2所示,若游戏客户端是第一次向游戏服务器发送 特效使用消息,则步骤S20的具体过程如下:

步骤S201,游戏客户端获取预设最大命中提前时间。

在一个实施例中,预设最大命中提前时间是预先在系统配置文件中配置好 的。优选的,可根据特效前摇时间的最大值来配置。比如特效前摇时间最大为 300ms,那么预设最大命中提前时间就配置为300ms。

步骤S202,游戏客户端提取预设最大命中提前时间和测试响应时间中的最 小值为命中提前时间。

在游戏客户端第一次向游戏服务器发送特效使用消息时,步骤S202中确定 的命中提前时间为初始化的命中提前时间。

在另一个实施例中,如图3所示,若游戏客户端不是第一次向游戏服务器 发送特效使用消息,则步骤S20的具体过程如下:

步骤S210,游戏客户端获取预设最大命中提前时间。

如上所述,预设最大命中提前时间可根据特效前摇时间的最大值来确定, 优选的,预设最大命中提前时间为最大的特效前摇时间。

步骤S220,游戏客户端提取预设最大命中提前时间和测试响应时间中的最 小值,再调整命中提前时间为上一次获取的命中提前时间与所述最小值的平均 值。

该实施例中,若游戏客户端不是第一次向游戏服务器发送特效使用消息, 则游戏客户端每次接收到游戏服务器返回的测试响应消息后,则调整一次命中 提前时间。游戏客户端调整命中提前时间的公式如下:

Ni=(Ni-1+min(预设最大命中提前时间,测试响应时间))/2

其中,Ni为游戏客户端当前调整后的命中提前时间,Ni-1为上一次调整后的 命中提前时间。

步骤S30,游戏客户端向游戏服务器发送特效使用消息,并根据命中提前时 间向游戏服务器发送特效命中消息。

游戏客户端中的虚拟角色发起攻击后,游戏客户端则向游戏服务器发送特 效使用消息,该消息中包含了虚拟角色信息、特效属性信息等,其中虚拟角色 信息包括角色名称、角色标识、角色游戏数据(如血量、位置等)等,特效属 性信息包括特效名称、特效前摇时间等。

游戏客户端在向游戏服务器发送特效使用消息后,在特效前摇时间之前提 前一段时间向游戏服务器发送特效命中消息,这个提前的时间则由命中提前时 间确定。

在一个实施例中,如图4所示,游戏客户端根据命中提前时间向游戏服务 器发送特效命中消息的具体过程如下:

步骤S301,游戏客户端获取特效前摇时间。

步骤S302,游戏客户端获取特效前摇时间与命中提前时间的时间差。

步骤S303,游戏客户端在向游戏服务器发送特效使用消息后,经过该时间 差后向游戏服务器发送特效命中消息。

例如,游戏客户端获取的特效前摇时间为1S,即技能攻击后会在1S后命中 目标,命中提前时间为200ms,则游戏客户端会在发送特效使用消息后再经过 800ms就向游戏服务器发送特效命中消息,而无需在特效释放结束或命中后再向 游戏服务器发送特效命中消息。

步骤S40,游戏客户端接收游戏服务器根据特效命中消息进行命中处理后生 成的命中响应消息。

游戏服务器接收到游戏客户端发送的特效命中消息后,根据特效命中消息 进行命中处理,处理后的数据生成命中响应消息。游戏服务器进行的命中处理 包括计算虚拟角色被攻击后应减少的血量、移动的位置等等。命中处理后生成 的命中响应消息则包含计算所得的玩家技能减损量、被击中玩家血量减少量、 后退距离等信息。游戏服务器将生成的命中响应消息返回给游戏客户端。

步骤S50,游戏客户端根据命中响应消息进行相应的特效表现。

特效表现是指虚拟角色作出的动作表现、游戏数据表现等,例如虚拟角色 作出飘雪、后退等表现。在一个实施例中,如图5所示,步骤S50的具体过程 为:

步骤S502,游戏客户端判断接收到命中响应消息时间时是否已到达特效前 摇时间,若是,则进入步骤S504,否则进入步骤S506。

步骤S504,游戏客户端在接收到命中响应消息后立即根据命中响应消息进 行相应的特效表现。

该实施例中,由于游戏客户端收到命中响应消息时,特效前摇时间已到达, 例如,技能已经释放完或技能已经命中目标,则游戏客户端立即根据命中响应 消息进行相应的特效表现。

步骤S506,游戏客户端缓存命中响应消息。

步骤S508,游戏客户端在到达特效前摇时间时,提取缓存的命中响应消息, 并根据该命中响应消息进行相应的特效表现。

由于技能命中目标前,对游戏客户端收到的命中响应消息进行了缓存,当 技能命中目标时,直接从缓存中提取命中响应消息,无需等待游戏服务器发送 命中响应消息,特效释放完或特效命中目标能立即进行特效表现,从而减小了 网络环境对特效表现的影响,提高了网络游戏的反应速度。

图6示出了一个实施例中的游戏客户端100与游戏服务器200进行交互的 系统,该系统包括游戏客户端100和游戏服务器200,其中,游戏客户端100包 括时间处理模块110、第一通信模块120和特效表现模块130,其中:

时间处理模块110用于在游戏客户端100与游戏服务器200建立连接后获 取命中提前时间。

游戏客户端100获取用户输入的账号、密码等信息,并将这些信息通过第 一通信模块120发送到游戏服务器200进行验证,验证通过后游戏客户端100 与游戏服务器200建立了连接。命中提前时间是指游戏客户端100向游戏服务 器200发送特效使用消息后应在特效前摇时间到达前,提前多少时间向游戏服 务器200发送特效命中消息。特效前摇时间是指特效的一种配置属性,是特效 发起到结束的时间,例如,特效前摇时间可以是技能攻击发起到技能命中的时 间。

第一通信模块120用于向游戏服务器200发送消息以及接收游戏服务器200 返回的消息。包括向游戏服务器200发送特效使用消息,并根据命中提前时间 向游戏服务器200发送特效命中消息;以及用于接收游戏服务器200根据特效 命中消息进行命中处理后生成的命中响应消息。

特效表现模块130用于根据命中响应消息进行相应的特效表现。

特效表现是指虚拟角色作出的动作表现、游戏数据表现等,例如虚拟角色 作出飘雪、后退等表现。

游戏服务器200包括第二通信模块210和命中处理模块220,其中:

第二通信模块210用于接收游戏客户端100发送的特效使用消息和特效命 中消息,以及向游戏客户端100返回技能命中响应消息。

命中处理模块220用于根据特效命中消息进行命中处理。

命中处理模块220进行的命中处理包括计算虚拟角色被攻击后应减少的血 量、移动的位置等等。命中处理后生成的命中响应消息则包含计算所得的玩家 技能减损量、被击中玩家血量减少量、后退距离等信息。第二通信模块210将 生成的命中响应消息返回给游戏客户端100。

在一个实施例中,第一通信模块120还用于在获取命中提前时间之前向游 戏服务器200发送测试消息,并接收游戏服务器200返回的测试响应消息。测 试消息是指RTT消息(Round Trip Time),RTT也称为游戏客户端与游戏服务器 的消息往返时间。该实施例中,时间处理模块110还用于获取测试响应时间, 该测试响应时间为游戏客户端100发送测试消息与接收到测试响应消息之间的 时间间隔。

在一个实施例中,时间处理模块110还用于若游戏客户端100第一次向游 戏服务器200发送特效使用消息,则获取预设最大命中提前时间,提取预设最 大命中提前时间和测试响应时间中的最小值为命中提前时间。

在另一个实施例中,时间处理模块110用于若游戏客户端100不是第一次 向游戏服务器200发送特效使用消息,则获取预设最大命中提前时间,提取预 设最大命中提前时间和测试响应时间中的最小值,再调整命中提前时间为上一 次获取的命中提前时间与最小值的平均值。

预设最大命中提前时间预先在系统配置文件中配置好的。优选的,可根据 特效前摇时间的最大值来配置。比如特效前摇时间中最大为300ms,那么预设最 大命中提前时间就配置为300ms。

该实施例中,游戏客户端100每次接收到游戏服务器200返回的测试响应 消息后,则调整一次命中提前时间。游戏客户端100调整命中提前时间的公式 如下:

Ni=(Ni-1+min(预设最大命中提前时间,测试响应时间))/2

其中,Ni为游戏客户端100当前调整后的命中提前时间,Ni-1为上一次调整 后的命中提前时间。

在一个优选的实施例中,第一通信模块120进一步用于获取特效前摇时间, 并获取特效前摇时间与命中提前时间之间的时间差,在向游戏服务器200发送 特效使用消息后经过该时间差后向游戏服务器200发送特效命中消息。

例如,游戏客户端100获取的特效前摇时间为1S,即技能攻击后会在1S 后命中目标,命中提前时间为200ms,则游戏客户端100会在发送特效使用消息 后再经过800ms就向游戏服务器200发送特效命中消息,而无需在命中目标后 再向游戏服务器200发送特效命中消息。

第二通信模块210接收特效命中消息后,命中处理模块220对该特效命中 消息进行处理,生成技能命中响应消息。第二通信模块210返回该命中响应消 息至游戏客户端100。

在另一个实施例中,如图7所示,游戏客户端100除了包括上述时间处理 模块110、第一通信模块120和特效表现模块130外,还包括判断模块140和缓 存模块150,其中:

判断模块140用于判断第一通信模块120接收到命中响应消息时是否已到 达特效前摇时间。

缓存模块150用于在第一通信模块120接收到命中响应消息时未到达所述 特效前摇时间,则缓存命中响应消息。

该实施例中,特效表现模块130用于在第一通信模块120接收到命中响应 消息时已到达所述特效前摇时间时,则立即根据所述命中响应消息进行相应的 特效表现。

该实施例中,特效表现模块130还用于在第一通信模块120接收到命中响 应消息时未到达特效前摇时间时,则等待到达特效前摇时间,在到达特效前摇 时间后从缓存模块150中提取命中响应消息,并根据所述命中消息进行相应的 特效表现。

由于特效结束或命中目标前,对游戏客户端100收到的命中响应消息进行 了缓存,当特效结束或命中目标时,则直接从缓存模块150中提取命中响应消 息,无需等待游戏服务器200发送命中响应消息,技能命中目标能立即进行特 效表现,从而减小了网络环境对特效表现的影响,提高了网络游戏的反应速度。

下面以一个具体的实例来说明游戏客户端与游戏服务器之间的交互过程。 如图8所示,该实例中,游戏客户端A中的虚拟角色对游戏客户端B中的虚拟 角色进行技能攻击,游戏客户端A、游戏客户端B与游戏服务器的交互过程如 下:

(1)游戏客户端A发送身份验证消息至游戏服务器,游戏服务器返回身份 验证响应消息,验证成功后,游戏客户端A与游戏服务器建立了连接。

(2)游戏客户端A发送测试消息至游戏服务器,游戏服务器返回测试响应 消息。

(3)游戏客户端A在第一次向游戏服务器发送特效使用消息之前,初始化 命中提前时间N(ms)。即提取预设最大命中提前时间和测试响应时间中的最小值 为命中提前时间。

(4)游戏客户端A中的虚拟角色向游戏客户端B中的虚拟角色发起了技能 攻击,则游戏客户端A向游戏服务器发送特效使用消息,游戏服务器接收到特 效使用消息后向游戏客户端B发送特效使用消息。

(5)游戏客户端A根据命中提前时间向游戏服务器B发送特效命中消息。 游戏客户端A在特效前摇时间到达前,提前N时间发送特效命中消息。

(6)游戏服务器根据特效命中消息进行命中处理后生成命中响应消息,并 返回给游戏客户端A和游戏客户端B,游戏客户端A收到命中响应消息后,此 时已到达特效前摇时间,则立即进行特效表现。

(7)游戏客户端A继续向游戏服务器发送测试消息,游戏服务器200返回 测试响应消息。

(8)游戏客户端A调整命中提前时间,由于此时游戏客户端A不是第一 次向游戏服务器发送特效使用消息,则游戏客户端A提取预设最大命中提前时 间和所述测试响应时间中的最小值,再调整命中提前时间为上一次获取的技能 命中时间与所述最小值的平均值

(9)游戏客户端A中的虚拟角色向游戏客户端B中的虚拟角色发起了技能 攻击,游戏客户端A向游戏服务器发送特效使用消息,游戏服务器收到特效使 用消息后向游戏客户端B发送特效使用消息。

(10)游戏客户端A根据命中提前时间向游戏服务器B发送特效命中消息。 游戏客户端A在特效前摇时间到达前,提前N时间发送特效命中消息。

(11)游戏服务器根据特效命中消息进行命中处理后生成命中响应消息, 并返回给游戏客户端A和游戏客户端B,游戏客户端A收到命中响应消息后, 此时还未到达特效前摇时间,则缓存命中响应消息,待到达特效前摇时间时, 提取缓存的命中响应消息,并根据命中响应消息进行相应的特效表现。

应当说明的是,游戏客户端B中的虚拟角色也可对游戏客户端B中的虚拟 角色进行技能攻击,方法原理相同,在此则不再赘述。

上述游戏特效实现方法及游戏客户端,通过获取命中提前时间,提前一段 时间向游戏服务器发送特效命中消息,由于特效命中是由游戏客户端触发,因 此能有效减小游戏服务器的压力;而在收到命中响应消息时提前一段时间向游 戏服务器发送特效命中消息,无需等待接收游戏服务器返回的命中响应消息, 因此能有效减小网络环境对特效表现的影响,从而提高了网络游戏的反应速度。

此外,游戏客户端在发送特效使用消息前,对命中提前时间进行动态调整, 在提前向游戏服务器发送特效命中消息后,收到游戏服务器返回的命中响应消 息时能更接近于特效前摇时间,从而能立即进行特效表现。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细, 但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域 的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和 改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附 权利要求为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号