文件的处理方法、装置、处理器、终端及服务器与流程

文档序号:18883965发布日期:2019-10-15 20:35阅读:179来源:国知局
文件的处理方法、装置、处理器、终端及服务器与流程

本发明涉及计算机领域,具体而言,涉及一种文件的处理方法、装置、处理器、终端及服务器。



背景技术:

非玩家角色(npc)通常是指游戏中不受游戏玩家操纵的游戏角色。玩家对战环境(pve)通常是指在游戏中玩家挑战游戏程序所控制的npc怪物和boss。玩家对战玩家(pvp)通常是指玩家互相利用游戏资源攻击而形成的互动竞技。

在游戏开发过程中通常需要配置战斗系统。该战斗系统根据战斗类型通常可以划分为单人pve战斗、多人pvp战斗以及多人pve战斗。一个基本的战斗过程通常包含施法者释放技能、目标选择、伤害计算、仇恨结算、位移以及技能表现。战斗系统的最上层是客户端与服务器的分工,其中,客户端负责接收战斗指令并根据服务器的驱动进行战斗效果表现,而服务器则主要负责逻辑驱动。

目前,相关技术中所提供的游戏内战斗实现方式通常可以包括以下两种:

方式一、服务器战斗,即联网战斗,在服务器实现战斗逻辑,所有技能结算逻辑均由服务器驱动,并由服务器决定客户端的战斗效果表现,该方式可以灵活支持多人pvp战斗,数据安全性,可以有效地防止外挂。

然而,该方式的明显缺陷在于:由于所有战斗逻辑均需要在服务器实现,因此在网络状况较差的情况下,延时很高,由此会严重影响游戏内的战斗体验;同时,当在线玩家较多,战斗数量较多时,会给服务器的硬件资源带来极大的负荷。特别是在开服阶段的新手教学战斗中,如果每个玩家分别开启一场服务器战斗,那么势必会增加服务器硬件资源开销,由此会严重影响服务器的承受能力。

方式二、客户端战斗,即单机战斗,在客户端实现战斗逻辑,所有技能结算逻辑和战斗效果表现均在客户端本地实现,而在战斗结束后再将战斗结果上报给服务器,该方式操作流畅,没有延时,游戏内的战斗体验良好。

然而,该方式的明显缺陷在于:由于所有战斗逻辑均需要在客户端本地实现,因此无法适用于多人pvp战斗,而且玩家容易通过外挂的作弊手段篡改游戏数据。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明至少部分实施例提供了一种文件的处理方法、装置、处理器、终端及服务器,以至少解决相关技术中所提供的游戏内战斗实现方式无法兼顾客户端的游戏数据安全性与服务器的硬件资源负荷的技术问题。

根据本发明其中一实施例,提供了一种文件的处理方法,包括:

获取待使用的代码文件,其中,待使用的代码文件用于提供与当前游戏类型所需战斗功能关联的战斗服务;如果确定当前游戏模式为客户端单机战斗模式,则在客户端上运行待使用的代码文件以执行战斗逻辑。

可选地,在客户端上运行待使用的代码文件以执行战斗逻辑包括:通过客户端代理中封装的第一通信接口访问待使用的代码文件;根据待执行的战斗功能在待使用的代码文件中确定待使用的调用方式,并按照待使用的调用方式执行战斗逻辑。

可选地,根据待执行的战斗功能在待使用的代码文件中确定待使用的调用方式,并按照待使用的调用方式执行战斗逻辑包括:如果根据待执行的战斗功能在待使用的代码文件中确定使用本地调用方式,则获取与待执行的战斗功能对应的调用协议名称;利用调用协议名称查找对应的客户端本地函数;调用客户端本地函数执行战斗逻辑。

可选地,根据待执行的战斗功能在待使用的代码文件中确定待使用的调用方式,并按照待使用的调用方式执行战斗逻辑包括:如果根据待执行的战斗功能在待使用的代码文件中确定使用远程调用方式,则获取与待执行的战斗功能对应的调用协议名称;经由待使用的代码文件中封装的第二通信接口向服务器发送与调用协议名称对应的调用协议,以使服务器利用调用协议名称查找对应的服务器本地函数并调用服务器本地函数执行战斗逻辑。

可选地,在客户端上运行待使用的代码文件以执行战斗逻辑之前,还包括:接收来自于服务器的初始化战斗数据。

可选地,在客户端上运行待使用的代码文件以执行战斗逻辑之后,还包括:经由待使用的代码文件中封装的第二通信接口向服务器上报战斗结果。

根据本发明其中一实施例,还提供了另一种文件的处理方法,包括:

获取待使用的代码文件,其中,待使用的代码文件用于提供与当前游戏类型所需战斗功能关联的战斗服务;如果确定当前游戏模式为服务器联机战斗模式,则在服务器上运行待使用的代码文件以执行战斗逻辑。

可选地,在服务器上运行待使用的代码文件以执行战斗逻辑包括:通过服务器代理中封装的第三通信接口访问待使用的代码文件;根据待执行的战斗功能在待使用的代码文件中确定待使用的调用方式,并按照待使用的调用方式执行战斗逻辑。

可选地,根据待执行的战斗功能在待使用的代码文件中确定待使用的调用方式,并按照待使用的调用方式执行战斗逻辑包括:如果根据待执行的战斗功能在待使用的代码文件中确定使用本地调用方式,则获取与待执行的战斗功能对应的调用协议名称;利用调用协议名称查找对应的服务器本地函数;调用服务器本地函数执行战斗逻辑。

可选地,根据待执行的战斗功能在待使用的代码文件中确定待使用的调用方式,并按照待使用的调用方式执行战斗逻辑包括:如果根据待执行的战斗功能在待使用的代码文件中确定使用远程调用方式,则获取与待执行的战斗功能对应的调用协议名称;经由待使用的代码文件中封装的第四通信接口向客户端发送与调用协议名称对应的调用协议,以使客户端利用调用协议名称查找对应的客户端本地函数并调用客户端本地函数执行战斗逻辑。

可选地,在服务器上运行待使用的代码文件以执行战斗逻辑之前,还包括:经由服务器代理中封装的第三通信接口下发初始化战斗数据。

可选地,在客户端上运行待使用的代码文件以执行战斗逻辑之后,还包括:经由待使用的代码文件中封装的第二通信接口接收战斗结果。

根据本发明其中一实施例,还提供了一种文件的处理装置,包括:

获取模块,用于获取待使用的代码文件,其中,待使用的代码文件用于提供与当前游戏类型所需战斗功能关联的战斗服务;处理模块,用于如果确定当前游戏模式为客户端单机战斗模式,则在客户端上运行待使用的代码文件以执行战斗逻辑。

可选地,处理模块包括:访问单元,用于通过客户端代理中封装的第一通信接口访问待使用的代码文件;处理单元,用于根据待执行的战斗功能在待使用的代码文件中确定待使用的调用方式,并按照待使用的调用方式执行战斗逻辑。

可选地,处理单元包括:第一获取子单元,用于如果根据待执行的战斗功能在待使用的代码文件中确定使用本地调用方式,则获取与待执行的战斗功能对应的调用协议名称;查找子单元,用于利用调用协议名称查找对应的客户端本地函数;调用子单元,用于调用客户端本地函数执行战斗逻辑。

可选地,处理单元包括:第二获取子单元,用于如果根据待执行的战斗功能在待使用的代码文件中确定使用远程调用方式,则获取与待执行的战斗功能对应的调用协议名称;发送子单元,用于经由待使用的代码文件中封装的第二通信接口向服务器发送与调用协议名称对应的调用协议,以使服务器利用调用协议名称查找对应的服务器本地函数并调用服务器本地函数执行战斗逻辑。

可选地,上述装置还包括:接收模块,用于接收来自于服务器的初始化战斗数据。

可选地,上述装置还包括:上报模块,用于经由待使用的代码文件中封装的第二通信接口向服务器上报战斗结果。

根据本发明其中一实施例,还提供了另一种文件的处理装置,包括:

获取模块,用于获取待使用的代码文件,其中,待使用的代码文件用于提供与当前游戏类型所需战斗功能关联的战斗服务;处理模块,用于如果确定当前游戏模式为服务器联机战斗模式,则在服务器上运行待使用的代码文件以执行战斗逻辑。

可选地,处理模块包括:访问单元,用于通过服务器代理中封装的第三通信接口访问待使用的代码文件;处理单元,用于根据待执行的战斗功能在待使用的代码文件中确定待使用的调用方式,并按照待使用的调用方式执行战斗逻辑。

可选地,处理单元包括:第一获取子单元,用于如果根据待执行的战斗功能在待使用的代码文件中确定使用本地调用方式,则获取与待执行的战斗功能对应的调用协议名称;查找子单元,用于利用调用协议名称查找对应的服务器本地函数;调用子单元,用于调用服务器本地函数执行战斗逻辑。

可选地,处理单元包括:第二获取子单元,用于如果根据待执行的战斗功能在待使用的代码文件中确定使用远程调用方式,则获取与待执行的战斗功能对应的调用协议名称;发送子单元,用于经由待使用的代码文件中封装的第四通信接口向客户端发送与调用协议名称对应的调用协议,以使客户端利用调用协议名称查找对应的客户端本地函数并调用客户端本地函数执行战斗逻辑。

可选地,上述装置还包括:下发模块,用于经由服务器代理中封装的第三通信接口下发初始化战斗数据。

可选地,上述装置还包括:接收模块,用于经由待使用的代码文件中封装的第二通信接口接收战斗结果。

根据本发明其中一实施例,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述任意一项的文件的处理方法。

根据本发明其中一实施例,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一项的文件的处理方法。

根据本发明其中一实施例,还提供了一种终端,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,一个或多个程序被存储在存储器中,并且被配置为由一个或多个处理器执行,一个或多个程序用于执行上述任意一项的文件的处理方法。

根据本发明其中一实施例,还提供了一种服务器,包括:一个或多个处理器,存储器以及一个或多个程序,其中,一个或多个程序被存储在存储器中,并且被配置为由一个或多个处理器执行,一个或多个程序用于执行上述任意一项的文件的处理方法。

在本发明至少部分实施例中,采用获取待使用的代码文件,该待使用的代码文件用于提供与当前游戏类型所需战斗功能关联的战斗服务的方式,通过确定当前游戏模式为客户端单机战斗模式,在客户端上运行待使用的代码文件以执行战斗逻辑,达到了根据实际游戏模式灵活地决策在服务器与客户端其中之一执行战斗逻辑的目的,从而实现了兼顾客户端的游戏数据安全性与服务器的硬件资源负荷、通用性较高、可扩展性较强的技术效果,进而解决了相关技术中所提供的游戏内战斗实现方式无法兼顾客户端的游戏数据安全性与服务器的硬件资源负荷的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明其中一可选实施例的将战斗逻辑抽象为战斗服务的示意图;

图2是根据本发明其中一可选实施例的客户端与服务器的双端战斗框架示意图;

图3是根据本发明其中一实施例的文件的处理方法的流程图;

图4是根据本发明其中一实施例的另一种文件的处理方法的流程图;

图5是根据本发明其中一实施例的文件的处理装置的结构框图;

图6是根据本发明其中一可选实施例的文件的处理装置的结构框图;

图7是根据本发明其中一实施例的另一种文件的处理装置的结构框图;

图8是根据本发明其中一可选实施例的另一种文件的处理装置的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明其中一实施例,提供了一种文件的处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

该方法实施例可以在终端(例如:移动终端、计算机终端)或者服务器中执行。终端(或服务器)可以包括一个或多个处理器(处理器可以包括但不限于中央处理器(cpu)、图形处理器(gpu)、数字信号处理(dsp)芯片、微处理器(mcu)或可编程逻辑器件(fpga)等的处理装置)、用于存储数据的存储器、以及用于通信功能的传输装置。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,上述结构描述仅为示意,其并不对上述终端(或服务器)的结构造成限定。例如,终端(或服务器)还可包括比上述结构描述更多或者更少的组件,或者具有与上述结构描述不同的配置。

应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到终端(或服务器)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。

存储器可用于存储应用软件的软件程序以及模块,如本发明实施例中的文件的处理方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的文件的处理方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端(或服务器)。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括终端(或服务器)的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。

显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与终端(或服务器)的用户界面进行交互。在一些实施例中,上述终端(或服务器)具有触摸显示器(也被称为“触摸屏”或“触摸显示屏”)。在一些实施例中,上述终端(或服务器)具有图形用户界面(gui),用户可以通过在触敏表面上的手指接触和/或手势来与gui进行人机交互,此处的人机交互功能可选的包括如下交互:创建网页、绘图、文字处理、制作电子文档、游戏、视频会议、即时通信、收发电子邮件、通话界面、播放数字视频、播放数字音乐和/或网络浏览等、用于执行上述人机交互功能的可执行指令被配置/存储在一个或多个处理器可执行的计算机程序产品或可读存储介质中。

上述终端可以是智能手机(如android手机、ios手机等)、平板电脑、掌声电脑以及移动互联网设备(mobileinternetdevices,简称为mid)、pad等终端设备。上述服务器可以是游戏服务器、安全服务器等服务设备。

图1是根据本发明其中一可选实施例的将战斗逻辑抽象为战斗服务的示意图,如图1所示,基于客户端与服务器的双端战斗框架,将战斗逻辑抽象成一个独立的战斗服务(fightserver),其为一套战斗逻辑代码,在客户端和服务器均可以运行。战斗服务(即上述待使用的代码文件)可以被理解为一个独立的代码逻辑模块,负责提供一个独立的战斗计算服务,而不依赖于具体的物理实体,因此,服务器和客户端均可以成为承载该战斗服务的物理实体。在服务器运行联机战斗(onlinefight),在客户端运行单机战斗(standalonefight),中间公共部分战斗服务为客户端与服务器的共用部分。由于服务器与客户端共用一套战斗逻辑,因此,无需针对客户端和服务器分别编写不同的逻辑。而且,在战斗结束之后,服务器可以通过校验客户端的单机战斗是否合法,进而有效地防止外挂等作弊手段。

需要说明的是,上述待使用的代码文件存储于可供客户端与服务器访问的公共存储空间(例如:第三方服务器),并且只需维护一份代码文件。然后,在打包过程中,将上述待使用的代码文件分发至客户端与服务器。即,客户端与服务器上分别存储有上述待使用的代码文件的备份文件。

图2是根据本发明其中一可选实施例的客户端与服务器的双端战斗框架示意图,如图2所示,在客户端与服务器的双端战斗框架中,游戏服务器(gameserver),主要通过游戏服务器代理(gameserveragent,简称为gsagent)与战斗服务之间进行通信交互。战斗客户端(fightclient),主要通过战斗客户端代理(fightclientagent,简称为fcagent)与战斗服务之间进行通信交互。战斗服务中包含有战斗相关的全部功能模块,其分别为:战斗模块(fightmodule)、战士模块(warriormodule)、技能模块(skillmodule)、人工智能模块(aimodule)、结算模块(performmodule)、战斗服务代理(fightserveragent,简称为fsagent)。各个模块所具体实现的功能如下:

(1)战斗模块,负责管理战斗的进展,包括:开始战斗,结束战斗等;

(2)战士模块,负责管理战斗中各个玩家和怪物;

(3)技能模块,负责战斗中各个技能效果的具体实现;

(4)ai模块,负责怪物的ai;

(5)结算模块,负责战斗中伤害的结算;

(6)战斗服务代理,负责与服务器或者客户端之间进行通信交互。

需要说明的是,本领域普通技术人员可以理解,图2所示的框架结构仅为示意,其并不对上述双端战斗框架的结构造成限定。例如,双端战斗框架还可包括比图2中所示更多或者更少的模块,或者具有与图2所示不同的配置。

在本实施例中提供了一种运行于上述终端的文件的处理方法,图3是根据本发明其中一实施例的文件的处理方法的流程图,如图3所示,该方法包括如下步骤:

步骤s32,获取待使用的代码文件,其中,待使用的代码文件用于提供与当前游戏类型所需战斗功能关联的战斗服务;

步骤s34,如果确定当前游戏模式为客户端单机战斗模式,则在客户端上运行待使用的代码文件以执行战斗逻辑。

通过上述步骤,可以采用获取待使用的代码文件,该待使用的代码文件用于提供与当前游戏类型所需战斗功能关联的战斗服务的方式,通过确定当前游戏模式为客户端单机战斗模式,在客户端上运行待使用的代码文件以执行战斗逻辑,达到了根据实际游戏模式灵活地决策在服务器与客户端其中之一执行战斗逻辑的目的,从而实现了兼顾客户端的游戏数据安全性与服务器的硬件资源负荷、通用性较高、可扩展性较强的技术效果,进而解决了相关技术中所提供的游戏内战斗实现方式无法兼顾客户端的游戏数据安全性与服务器的硬件资源负荷的技术问题。

可选地,在步骤s34中,在客户端上运行待使用的代码文件以执行战斗逻辑可以包括以下执行步骤:

步骤s341,通过客户端代理中封装的第一通信接口访问待使用的代码文件;

步骤s342,根据待执行的战斗功能在待使用的代码文件中确定待使用的调用方式,并按照待使用的调用方式执行战斗逻辑。

客户端单机战斗模式通常可以包括:单人pve战斗、开服时大量的新手教学战斗。对于战斗模式为单人pve战斗而言,可以在客户端实现战斗逻辑,以实现单机战斗,从而不受网络抖动和延时影响游戏内战斗体验。对于开服时大量的新手教学战斗而言,可以采用客户端单机战斗,以减轻服务器的硬件资源负荷。

在客户端代理中封装有sendmsgtofightserver接口(相当于上述第一通信接口)以便于客户端与战斗服务之间进行通信交互。根据待执行的战斗功能在待使用的代码文件中确定待使用的调用方式。即,如果待执行的战斗功能在客户端本地即可实现,则在待使用的代码文件中确定使用本地调用方式;如果待执行的战斗功能需要在服务器本地才能实现,则在待使用的代码文件中确定使用远程调用方式。

可选地,在步骤s342中,根据待执行的战斗功能在待使用的代码文件中确定待使用的调用方式,并按照待使用的调用方式执行战斗逻辑可以包括以下执行步骤:

步骤s3421,如果根据待执行的战斗功能在待使用的代码文件中确定使用本地调用方式,则获取与待执行的战斗功能对应的调用协议名称;

步骤s3422,利用调用协议名称查找对应的客户端本地函数;调用客户端本地函数执行战斗逻辑。

在一个可选实施例中,上述调用协议选用远程过程调用(remoteprocedurecall,简称为rpc)协议,其为一种通过网络从远程计算机程序上请求服务,而无需了解底层网络技术的协议。无论是采用服务器的联机战斗还是采用客户端的单机战斗,战斗服务都是通过战斗服务代理与客户端或者服务器进行通信交互。

如果采用客户端的单机战斗并根据待执行的战斗功能在待使用的代码文件中确定使用本地调用方式,则客户端先获取与待执行的战斗功能对应的rpc协议名称,再根据rpc协议名称查找对应的客户端本地函数,最后通过调用客户端本地函数执行与该战斗功能对应的战斗逻辑。

可选地,在步骤s342中,根据待执行的战斗功能在待使用的代码文件中确定待使用的调用方式,并按照待使用的调用方式执行战斗逻辑可以包括以下执行步骤:

步骤s3423,如果根据待执行的战斗功能在待使用的代码文件中确定使用远程调用方式,则获取与待执行的战斗功能对应的调用协议名称;

步骤s3424,经由待使用的代码文件中封装的第二通信接口向服务器发送与调用协议名称对应的调用协议,以使服务器利用调用协议名称查找对应的服务器本地函数并调用服务器本地函数执行战斗逻辑。

对于战斗服务与服务器之间的上行通信协议,封装有sendmsgtogameserver接口(相当于上述第二通信接口)。如果采用客户端的单机战斗并根据待执行的战斗功能在待使用的代码文件中确定使用远程调用方式,则客户端可以通过战斗服务中封装的sendmsgtogameserver接口向服务器发起rpc协议调用,以使服务器先获取与待执行的战斗功能对应的rpc协议名称,再根据rpc协议名称查找对应的服务器本地函数,最后通过调用服务器本地函数执行与该战斗功能对应的战斗逻辑。例如:当客户端向服务器发起一个使用物品请求时,通常会在客户端发起一个rpc名称为use_item的协议调用,服务器在接收到该协议之后,将会根据rpc协议名称use_item查找服务器本地对应的函数,然后调用该函数以完成一次rpc远程调用。

可选地,在步骤s34,客户端上运行待使用的代码文件以执行战斗逻辑之前,还可以包括以下执行步骤:

步骤s33,接收来自于服务器的初始化战斗数据。

基于客户端与服务器的双端战斗框架,无论是采用客户端的单机战斗还是采用服务器的联机战斗,战斗的开始均由游戏服务器发起,同时游戏服务器将初始化战斗所需数据(fightinitdata)发送到战斗服务,由此所有的战斗逻辑都会在战斗服务中执行。游戏客户端负责收集玩家的操作指令并上报至战斗服务,然后再接收战斗服务反馈的战斗指令以播放相应的战斗效果表现。

可选地,在步骤s34,客户端上运行待使用的代码文件以执行战斗逻辑之后,还可以包括以下执行步骤:

步骤s35,经由待使用的代码文件中封装的第二通信接口向服务器上报战斗结果。

在战斗结束之后,战斗服务会通过sendmsgtogameserver接口将战斗结果发送给游戏服务器,以此完成一场战斗。

另外,在游戏客户端收集玩家的操作指令的过程中需要检查操作指令是否有效,例如:在使用技能时,技能冷却时长是否已经到时,在使用物品时,物品数量是否充足等。如果部分操作指令之间存在相互依赖关系,需要依次执行,则游戏客户端会将这部分操作指令放到缓存中执行。

在战斗服务中可以设置战斗的心跳检测逻辑,通常为0.1秒或者1秒检测一次,其可以根据游戏类型差异灵活地调整检测时长。此外,在战斗服务中还需要检查技能是否能够正常释放。例如:如果遇到技能冷却时长尚未结束、释放技能所需魔法值不足、释放者或攻击目标已经死亡等异常情形,则释放者将无法正常释放技能。

在本实施例中还提供了一种运行于上述服务器的文件的处理方法,图4是根据本发明其中一实施例的另一种文件的处理方法的流程图,如图4所示,该方法包括如下步骤:

步骤s42,获取待使用的代码文件,其中,待使用的代码文件用于提供与当前游戏类型所需战斗功能关联的战斗服务;

步骤s44,如果确定当前游戏模式为服务器联机战斗模式,则在服务器上运行待使用的代码文件以执行战斗逻辑。

通过上述步骤,可以采用获取待使用的代码文件,该待使用的代码文件用于提供与当前游戏类型所需战斗功能关联的战斗服务的方式,通过确定当前游戏模式为服务器联机战斗模式,在服务器上运行待使用的代码文件以执行战斗逻辑,达到了根据实际游戏模式灵活地决策在服务器与客户端其中之一执行战斗逻辑的目的,从而实现了兼顾客户端的游戏数据安全性与服务器的硬件资源负荷、通用性较高、可扩展性较强的技术效果,进而解决了相关技术中所提供的游戏内战斗实现方式无法兼顾客户端的游戏数据安全性与服务器的硬件资源负荷的技术问题。

可选地,在步骤s44中,在服务器上运行待使用的代码文件以执行战斗逻辑可以包括以下执行步骤:

步骤s441,通过服务器代理中封装的第三通信接口访问待使用的代码文件;

步骤s442,根据待执行的战斗功能在待使用的代码文件中确定待使用的调用方式,并按照待使用的调用方式执行战斗逻辑。

服务器联机战斗模式通常可以包括:多人pvp战斗、多人pve战斗。对于战斗模式为多人pvp战斗和多人pve战斗而言,可以在服务器实现战斗逻辑,以实现联网战斗。

在游戏服务器代理中封装有sendmsgtofightserver接口(相当于上述第三通信接口)以便于游戏服务器与战斗服务之间进行通信交互。根据待执行的战斗功能在待使用的代码文件中确定待使用的调用方式。即,如果待执行的战斗功能在服务器本地即可实现,则在待使用的代码文件中确定使用本地调用方式;如果待执行的战斗功能需要在客户端本地才能实现,则在待使用的代码文件中确定使用远程调用方式。

可选地,在步骤s442中,根据待执行的战斗功能在待使用的代码文件中确定待使用的调用方式,并按照待使用的调用方式执行战斗逻辑可以包括以下执行步骤:

步骤s4421,如果根据待执行的战斗功能在待使用的代码文件中确定使用本地调用方式,则获取与待执行的战斗功能对应的调用协议名称;

步骤s4422,利用调用协议名称查找对应的服务器本地函数;

步骤s4423,调用服务器本地函数执行战斗逻辑。

如果采用服务器的联机战斗并根据待执行的战斗功能在待使用的代码文件中确定使用本地调用方式,则服务器先获取与待执行的战斗功能对应的rpc协议名称,再根据rpc协议名称查找对应的服务器本地函数,最后通过调用服务器本地函数执行与该战斗功能对应的战斗逻辑。

可选地,在步骤s442中,根据待执行的战斗功能在待使用的代码文件中确定待使用的调用方式,并按照待使用的调用方式执行战斗逻辑可以包括以下执行步骤:

步骤s4424,如果根据待执行的战斗功能在待使用的代码文件中确定使用远程调用方式,则获取与待执行的战斗功能对应的调用协议名称;

步骤s4425,经由待使用的代码文件中封装的第四通信接口向客户端发送与调用协议名称对应的调用协议,以使客户端利用调用协议名称查找对应的客户端本地函数并调用客户端本地函数执行战斗逻辑。

对于战斗服务与客户端之间的下行通信协议,封装有sendmsgtoclient接口(相当于上述第四通信接口)。如果采用服务器的联机战斗并根据待执行的战斗功能在待使用的代码文件中确定使用远程调用方式,则服务器可以通过战斗服务中封装的sendmsgtoclient接口向客户端发起rpc协议调用,以使客户端先获取与待执行的战斗功能对应的rpc协议名称,再根据rpc协议名称查找对应的客户端本地函数,最后通过调用客户端本地函数执行与该战斗功能对应的战斗逻辑。

rpc协议名称通常用于区分不同的操作和逻辑,例如:使用物品的rpc协议名称为use_item,使用技能的rpc协议名称为use_skill。假设服务器调用客户端的rpc协议是为了使得客户端表现一个掉血效果,则rpc协议名称为sub_hp。在通常情况下,服务器发送一个名称为sub_hp的rpc协议到客户端,客户端在接收到sub_hp之后,将会调用本地sub_hp对应的掉血函数播放掉血效果。与之相反,如果采用客户端的单机战斗,则由于战斗服务的代码运行在客户端,因此,该sub_hp的掉血rpc协议便无需通过网络发送到客户端,而是直接在客户端根据rpc协议名称sub_hp调用本地的掉血函数播放掉血效果即可。

可选地,在步骤s44,服务器上运行待使用的代码文件以执行战斗逻辑之前,还可以包括以下执行步骤:

步骤s43,经由服务器代理中封装的第三通信接口下发初始化战斗数据。

基于客户端与服务器的双端战斗框架,无论是采用客户端的单机战斗还是采用服务器的联机战斗,战斗的开始均由游戏服务器发起,同时游戏服务器通过游戏服务器代理中封装的sendmsgtofightserver接口将初始化战斗所需数据(fightinitdata)发送到战斗服务,由此所有的战斗逻辑都会在战斗服务中执行。游戏客户端负责收集玩家的操作指令并上报至战斗服务,然后再接收战斗服务反馈的战斗指令以播放相应的战斗效果表现。

可选地,在步骤s44,客户端上运行待使用的代码文件以执行战斗逻辑之后,还可以包括以下执行步骤:

步骤s45,经由待使用的代码文件中封装的第二通信接口接收战斗结果。

在战斗结束之后,战斗服务会通过sendmsgtogameserver接口将战斗结果发送给游戏服务器,以此完成一场战斗。

另外,在游戏客户端收集玩家的操作指令的过程中需要检查操作指令是否有效,例如:在使用技能时,技能冷却时长是否已经到时,在使用物品时,物品数量是否充足等。如果部分操作指令之间存在相互依赖关系,需要依次执行,则游戏客户端会将这部分操作指令放到缓存中执行。

在战斗服务中可以设置战斗的心跳检测逻辑,通常为0.1秒或者1秒检测一次,其可以根据游戏类型差异灵活地调整检测时长。此外,在战斗服务中还需要检查技能是否能够正常释放。例如:如果遇到技能冷却时长尚未结束、释放技能所需魔法值不足、释放者或攻击目标已经死亡等异常情形,则释放者将无法正常释放技能。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

在本实施例中还提供了一种文件的处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图5是根据本发明其中一实施例的文件的处理装置的结构框图,如图5示,该装置包括:获取模块10,用于获取待使用的代码文件,其中,待使用的代码文件用于提供与当前游戏类型所需战斗功能关联的战斗服务;处理模块20,用于如果确定当前游戏模式为客户端单机战斗模式,则在客户端上运行待使用的代码文件以执行战斗逻辑。

可选地,处理模块20包括:访问单元(图中未示出),用于通过客户端代理中封装的第一通信接口访问待使用的代码文件;处理单元(图中未示出),用于根据待执行的战斗功能在待使用的代码文件中确定待使用的调用方式,并按照待使用的调用方式执行战斗逻辑。

可选地,处理单元(图中未示出)包括:第一获取子单元(图中未示出),用于如果根据待执行的战斗功能在待使用的代码文件中确定使用本地调用方式,则获取与待执行的战斗功能对应的调用协议名称;查找子单元(图中未示出),用于利用调用协议名称查找对应的客户端本地函数;调用子单元(图中未示出),用于调用客户端本地函数执行战斗逻辑。

可选地,处理单元(图中未示出)包括:第二获取子单元(图中未示出),用于如果根据待执行的战斗功能在待使用的代码文件中确定使用远程调用方式,则获取与待执行的战斗功能对应的调用协议名称;发送子单元(图中未示出),用于经由待使用的代码文件中封装的第二通信接口向服务器发送与调用协议名称对应的调用协议,以使服务器利用调用协议名称查找对应的服务器本地函数并调用服务器本地函数执行战斗逻辑。

可选地,图6是根据本发明其中一可选实施例的文件的处理装置的结构框图,如图6所示,该装置除包括图5所示的所有模块外,上述装置还包括:接收模块30,用于接收来自于服务器的初始化战斗数据。

可选地,如图6所示,上述装置还包括:上报模块40,用于经由待使用的代码文件中封装的第二通信接口向服务器上报战斗结果。

在本实施例中还提供了另一种文件的处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图7是根据本发明其中一实施例的另一种文件的处理装置的结构框图,如图7示,该装置包括:获取模块50,用于获取待使用的代码文件,其中,待使用的代码文件用于提供与当前游戏类型所需战斗功能关联的战斗服务;处理模块60,用于如果确定当前游戏模式为服务器联机战斗模式,则在服务器上运行待使用的代码文件以执行战斗逻辑。

可选地,处理模块60包括:访问单元(图中未示出),用于通过服务器代理中封装的第三通信接口访问待使用的代码文件;处理单元(图中未示出),用于根据待执行的战斗功能在待使用的代码文件中确定待使用的调用方式,并按照待使用的调用方式执行战斗逻辑。

可选地,处理单元(图中未示出)包括:第一获取子单元(图中未示出),用于如果根据待执行的战斗功能在待使用的代码文件中确定使用本地调用方式,则获取与待执行的战斗功能对应的调用协议名称;查找子单元(图中未示出),用于利用调用协议名称查找对应的服务器本地函数;调用子单元(图中未示出),用于调用服务器本地函数执行战斗逻辑。

可选地,处理单元(图中未示出)包括:第二获取子单元(图中未示出),用于如果根据待执行的战斗功能在待使用的代码文件中确定使用远程调用方式,则获取与待执行的战斗功能对应的调用协议名称;发送子单元(图中未示出),用于经由待使用的代码文件中封装的第四通信接口向客户端发送与调用协议名称对应的调用协议,以使客户端利用调用协议名称查找对应的客户端本地函数并调用客户端本地函数执行战斗逻辑。

可选地,图8是根据本发明其中一可选实施例的另一种文件的处理装置的结构框图,如图8所示,该装置除包括图7所示的所有模块外,上述装置还包括:下发模块70,用于经由服务器代理中封装的第三通信接口下发初始化战斗数据。

可选地,如图8所示,上述装置还包括:接收模块80,用于经由待使用的代码文件中封装的第二通信接口接收战斗结果。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,获取待使用的代码文件,其中,待使用的代码文件用于提供与当前游戏类型所需战斗功能关联的战斗服务;

s2,如果确定当前游戏模式为客户端单机战斗模式,则在客户端上运行待使用的代码文件以执行战斗逻辑。

可选地,在本实施例中,上述存储介质还可以被设置为存储用于执行以下步骤的计算机程序:

s1,获取待使用的代码文件,其中,待使用的代码文件用于提供与当前游戏类型所需战斗功能关联的战斗服务;

s2,如果确定当前游戏模式为服务器联机战斗模式,则在服务器上运行待使用的代码文件以执行战斗逻辑。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-onlymemory,简称为rom)、随机存取存储器(randomaccessmemory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

本发明的实施例还提供了一种处理器,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

s1,获取待使用的代码文件,其中,待使用的代码文件用于提供与当前游戏类型所需战斗功能关联的战斗服务;

s2,如果确定当前游戏模式为客户端单机战斗模式,则在客户端上运行待使用的代码文件以执行战斗逻辑。

可选地,在本实施例中,上述处理器还可以被设置为通过计算机程序执行以下步骤:

s1,获取待使用的代码文件,其中,待使用的代码文件用于提供与当前游戏类型所需战斗功能关联的战斗服务;

s2,如果确定当前游戏模式为服务器联机战斗模式,则在服务器上运行待使用的代码文件以执行战斗逻辑。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1