[发明专利]一种在C/S架构下的移动指令的同步及执行方法有效
申请号: | 201410726620.3 | 申请日: | 2014-12-04 |
公开(公告)号: | CN104503848B | 公开(公告)日: | 2018-12-11 |
发明(设计)人: | 张明;胡浩;胡翌;高勇;吴越 | 申请(专利权)人: | 珠海金山网络游戏科技有限公司;广州西山居世游网络科技有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52 |
代理公司: | 广州嘉权专利商标事务所有限公司 44205 | 代理人: | 谭志强 |
地址: | 519000 广东省珠*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 架构 移动 指令 同步 执行 方法 | ||
本发明公开了一种在C/S架构下的移动指令的同步及执行方法,方法包括以客户端为基准的移动指令的同步和执行方法及服务器端控制下的移动指令的同步和执行方法,其中以客户端为基准的移动指令执行方法包括:客户端收到用户输入指令后直接执行该指令,并同步给服务器;服务器收到指令后,和客户端分别执行移动指令,并验证指令的有效性;若指令有效,则将新指令同步给其他客户端执行;其中在服务器端控制下的移动指令的执行方法中,采用一种平滑的方式执行新指令。本发明还公开了一种与上述方法对应的移动指令的同步及执行系统。本发明的有益效果是无需等待客户端和服务器信息交互;操作指令首先在本地客户端执行,保证了最快的响应速度。
技术领域
本发明涉及一种在C/S架构下的移动指令的同步及执行方法,特别涉及一种采用客户端先行执行,服务器端后续验证的同步和执行方法。
背景技术
典型的MMO游戏的组织结构是C/S方式的,表现为很多客户端连接到同一个服务器。每个客户端都可以接受本地玩家的操作指令,并以某种方式通知服务器端和其他玩家,以保持客户端与服务器端之间、客户端与客户端之间位置的同步。
通常,指令执行都是本地客户端暂不执行,先把指令发送到服务器端验证,验证通过后,再通知给所有客户端执行。例如,2010年9月15日公开的专利CN101094227B,涉及一种基于C/S架构的移动平台联网游戏消息交互方法,该方法包括客户端通过将消息设计为类后将所有的消息类封装为消息包……所述客户端使用消息包生成消息,将所述生成的消息向服务器端发送;所述服务器端接收所述消息后,根据解包操作代码对所述消息进行解包操作。其问题在于客户端和服务器端的时延有很大的不确定性,玩家输入指令到实际看到的反馈有一段可察觉到的等待时间,会影响对游戏的体验。
发明内容
本发明要解决的技术问题是:在C/S架构下,指令下达后,在本地客户端可以得到及时的反馈;本地玩家和远端玩家在客户端的位置模拟流畅且符合玩家预期,特别可以避免卡顿和瞬移。
本发明解决该技术问题采用的技术方案是:
一种在C/S架构下的移动指令的同步及执行方法,其特征在于,包括:
以客户端为基准的移动指令的同步和执行,包括:客户端收到用户输入指令后直接执行该指令,并同步给服务器;服务器收到指令后,和客户端分别执行移动指令,并验证指令的有效性;若指令有效,则将新指令同步给其他客户端执行;
由服务器端控制的移动指令的同步和执行,包括采用一种平滑的方式执行新指令。
优选地,其中客户端在执行输入指令之前先判断当前是否处于用户可控状态。
优选地,其中客户端在执行输入指令前,根据本地缓存的状态作初步的有效性判断。
优选地,客户端和服务器端都各自执行,仅在移动状态发生变化后,以事件方式通知对方。
优选地,其中服务器端具有位置和移动状态历史记录表,用于验证客户端指令的有效性。
作为有益改进,服务器端定期根据指令控制执行角色的状态和位置,并存储到历史记录表中。
作为有益改进,其中会根据客户端和服务器端的时延决定历史记录表缓存所需要的存储空间。
优选地,其中在服务器端发生不可控的移动状态变更时,产生一条新的移动指令。
优选地,其中所述指令的内容包括了指令发出时角色的状态、位置、朝向信息、移动目标点、移动方向、速度。
此外,本发明还涉及一种在C/S架构下的移动指令的同步及执行系统,其特征在于,该系统包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于珠海金山网络游戏科技有限公司;广州西山居世游网络科技有限公司,未经珠海金山网络游戏科技有限公司;广州西山居世游网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410726620.3/2.html,转载请声明来源钻瓜专利网。