一种集成的网络游戏操作命令系统及其方法与流程

文档序号:17733394发布日期:2019-05-22 03:00阅读:145来源:国知局
一种集成的网络游戏操作命令系统及其方法与流程

本发明涉及一种集成的网络游戏操作命令系统及其方法,属于网络游戏软件技术领域。



背景技术:

一般的网络游戏开发中,操作命令系统是一个分散的系统,即没有统一的设计与实现方案,各个子系统之间由不同的人来分别设计与实现。操作命令系统包括了客户端的输入按键与控制主角运动与技能操作的映射配置系统,怪物人工智能系统控制怪物运动与技能系统,多人网络游戏通过网络传输操作命令系统,即时战略游戏命令队列中命令的撤回系统,游戏资源编辑器中命令的撤销系统,游戏录像对战回放等与操作执行相关的子系统。分散设计与实现,没有集成设计与实现的结果是,子系统之间很难形成一套完整清晰的方案,导致各个负责实现的人之间各自为政,代码冗余,功能重复又难以拼接起来。bug很多,而且可扩展性差,可维护性低,可理解性不足,影响游戏开发的效率与游戏产品运营的稳定性,无法快速响应策划的需求与玩家的需要更改。



技术实现要素:

本发明提供一种集成的网络游戏操作命令系统及其方法,以增强游戏体验和优化游戏软件流程。

本发明的技术方案第一方面为一种集成的网络游戏操作命令系统,包括与人机交互设备连接的命令源接收器、命令流处理组件和命令执行器,所述网络游戏操作命令系统还包括:

主角操作映射配置模块,用于对命令源接收器所获取的玩家的操作人机交互设备参数的指令映射到主角操作角色的动作操作,并且提供玩家自定义操控配置;

网络游戏操作传输模块,用于通过网络的协议将映射后的玩家操控指令传输到游戏控制端或者另外的玩家客户端;

命令撤销模块,其与命令执行器的前端中断控制对接,用于对队列中未执行的游戏操作控制指令进行撤回。

进一步,所述的主角操作映射配置模块配置成:

将命令封装为对象,使父类抽象出命令的对象与操作的接口,子类继承操作的接口,使得实现具体的操作,代码里面的指针类型是父类的,而子类在运行时随时切换。

进一步,所述的网络游戏操作传输模块配置成:

通过网络的协议传输,将游戏命令数据传送到另外的视野范围内的玩家的客户端上,而且在另外的客户端上以相同的操作方式重放,使得玩家在一台客户端上能够看到有多人同时在进行游戏。

进一步,所述的命令撤销模块配置成:

将命令封装成对象,每个对象提供一执行接口和一撤销接口;

当玩家待执行了命令想要撤销时,则再创建一对象实例,调用其撤销的接口,其中对象实例里面记载了需要操作的对象与操作的上下文数据,形成一个闭包。

进一步,所述的命令撤销模块配置成:

提供多重撤销,记录指令列表;

当捕捉到玩家执行一条命令,将该指令添加到列表,然后将执行指针指向列表中的对应指令;

当捕捉到玩家选择撤销现在的命令,将执行指针往后退;

当捕捉到玩家选择重做历史命令,将代表当前的指针往前进,执行该指令;

如果在撤销后选择了新命令,则清除命令列表中当前的指针所指命令之后的全部命令。

进一步,所述的网络游戏操作命令系统,还包括单独配置的怪物人工智能模块,该怪物人工智能模块产生的指令作为命令源接收器的输入数据。

进一步,所述的网络游戏操作命令系统,还包括录像回放模块,该录像回放模块通过重定向命令的管道流,在录制录像时,在服务端把网络传输的命令保存到服务端,并且记录的是命令数据本身,而不是命令操作的结果状态。

本发明的技术方案第二方面为一种用于所述的网络游戏操作命令系统的处理方法,所述方法包括以下步骤:

a、将本地操作客户端产生的用户操作的游戏命令或者游戏npc产生的命令汇集到命令源接收器;

b、经由命令流处理组件通过网络的协议将映射后的玩家操控指令传输到游戏控制端或者另外的玩家客户端;

c、在游戏控制端或者另外的玩家客户端,实现命令回放。

本发明的技术方案第三方面为一种计算机装置,包括存储器、处理器及储存在存储器上并能够在处理器上运行的计算机程序,所述处理器执行所述程序时实施上述的步骤。

本发明的技术方案第四方面为一种计算机可读存储介质,其上储存有计算机程序,所述计算机程序被处理器执行时实施上述的步骤。

本发明的有益效果为:

1.大大缩短网络游戏操作命令系统开发周期。

2.增强代码可维护性与可重用性。

3.增强游戏的体验和表现。

4.方便各种职位的人员分工合作,优化流程。

附图说明

图1所示为根据本发明的系统的总体设计图。

图2所示为根据本发明的系统在命令撤销操作的示意图。

具体实施方式

以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。

本文针对现有技术的缺陷,对一般游戏操作命令系统实现的现状与造成的原因加以深入分析,分析操作命令系统有哪些流程上的特点,各种职位的人员有哪些工作上的习惯,以及有哪些小粒度可重用的组件,总结了一套集成的网络游戏操作命令系统,以达到大大缩短操作命令系统开发周期,增强代码可维护性与可重用性,增强游戏的体验和表现,方便各种职位的人员良好分工合作的目的。本方案结构分为两个部分:

第一部分:操作命令系统总体设计。第二部分:操作命令系统各子系统设计。

如图1所示,操作命令系统总体采用生产者与消费者的结构,采用生产者与消费者的结构的好处是可以支持命令的生产与消费的解耦,命令的生产来源是玩家的输入设备与ai系统的命令输出,通过中间的一个命令流来排队传输,命令消费者是被控制的玩家或怪物系统。

第二部分:操作命令系统各子系统设计

1.主角操作映射配置模块

游戏中很常用的需求是,针对不同的平台的不同的操作输入设备,提供不同的操作映射配置方案,而且玩家可以随意地配置操作按钮的映射方案。如同一个游戏,在主机上用手柄操作,在pc电脑上用键盘鼠标操作,而且即使都在pc游戏平台上,玩家也需要自己定义键盘鼠标的按键,与主角移动,技能,视角操作等操作之间的映射关系,不同的人有不同的使用习惯和需求。

传统的实现方法是用硬编码函数的方式来实现,但这样非常不便于配置映射的切换。

本发明的集成操作命令系统的方案中,不再使用硬编码函数来实现,而是把命令封装为一个对象,父类抽象出命令的对象与操作的接口,子类继承操作的接口,使得实现具体的操作,代码里面的指针类型是父类的,子类可以在运行时随时切换。用这种方法,把函数调用的强绑定关系,变成了面向对象编程中父类与子类的继承替换关系,这样就解决了主角操作映射配置模块的需求。

2.怪物人工智能模块

怪物人工智能模块以下简称ai模块,是单独实现的。采用这套基于命令流的生产者消费者结构之后,ai模块的输出,就作为生产者端的输入,进入到操作命令模块里。这样的好处,一是统一了ai模块与操作命令模块的接口与对接关系,二是可以随时切换ai模块的具体实现,对于执行命令的消费者端而言,完全是透明的,这样执行命令的怪物模块,可以和ai模块的具体实现解耦,便于在开发期与运营期快速尝试各种ai模块的实现方案,甚至可以更换行为树,神经网络,深度学习等完全不同的ai后期实现方案。而且一些不太常规的ai需求,也可以方便地实现,如游戏关卡教学中,ai一般会自动接管控制玩家的操作,也可以通过这种设计架构,命令流管道的输入端是玩家的控制ai,命令流管道的消费端是玩家的控制器,来很容易地实现需求。

3.网络游戏操作传输模块

多人联机的网络游戏中,操作传输与回放是一个基本而重要的模块。网络游戏操作传输模块是指,玩家本地的操作输入,会通过网络的协议传输,将游戏命令数据传送到另外的视野范围内的玩家的客户端上,而且在另外的客户端上以相同的操作方式重放出来,使得玩家在一台客户端上看到有多人同时在进行游戏。本操作命令模块的三个部分,生产者,命令流管道,分别对应了,本地操作的客户端,网络协议传输,另一个玩家客户端上的操作回放模块这三部分,而且这三部分可以和其它的模块无缝地整合起来,形成网络游戏操作传输模块的一个底层。这个底层对于玩家来说,是透明的,他操作自己的角色,自己的角色的操作表现,就能实时同步地反映到另一个玩家的客户端上,就和操作自己本地的角色一样。而且这个命令流管道可以根据不同的游戏平台,切换多种具体的网络协议实现,各部分都封装了自己的功能,对扩展开放,对修改封闭。

4.即时战略游戏命令撤销模块

即时战略游戏中,命令一般用排队的方式实现,玩家发布一系列的命令,游戏中的单位按顺序依次执行队列中的命令,但传统的游戏,要支持命令的撤回就是一个比较麻烦的事情。这套集成的网络游戏操作命令模块,把命令封装成对象,每个对象提供一个执行的接口和一个撤销的接口,这样当玩家待执行了一个命令,想要撤销时,就再创建一个对象实例,调用其撤销的接口,对象实例里面记载了需要操作的对象与操作的上下文数据,形成一个闭包,这样就方便地完成了这个需求。

5.游戏编辑器命令撤销模块

参照图2,游戏编辑器支持多重的撤销。不单单记录最后一条指令,还要记录指令列表,然后用一个引用指向“当前执行”的指令。当玩家执行一条命令,将其添加到列表,然后将代表“当前”的指针指向它。

当玩家选择“撤销”,撤销现在的命令,将代表当前的指针往后退。当他们选择“重做”历史命令,将代表当前的指针往前进,执行该指令。如果在撤销后选择了新命令,那么清除命令列表中当前的指针所指命令之后的全部命令。

6.游戏录像回放模块

当今大部分战斗游戏需要游戏对战录像与回放模块,传统的做法是直接在客户端录制视频,或者记录所有对象战斗变化时的内存数据,这样的缺点是需要占用很大的内存,网络传输的速度非常慢,也无法保存到服务端,只能保存在客户端本地,游戏帐号不在本机登录就无法查看战斗录像。

这套集成的网络游戏操作命令系统的方法是重定向命令的管道流,录制录像时,在服务端把网络传输的命令保存到服务端,而且记录的是命令,而不是命令操作的结果状态,这样在网络转发命令时,就顺便保存了录像数据,而且保存的数据量少,保存在服务端不会丢失,可以迁移机器帐号。录像重放时,再模拟网络传输管道,在服务端下发数据,所有客户端同步回放。

应当认识到,本发明实施例中的方法步骤可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。

此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。

进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。

计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。

以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

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