CN104503848A - 一种在c/s架构下的移动指令的同步及执行方法 - Google Patents

一种在c/s架构下的移动指令的同步及执行方法 Download PDF

Info

Publication number
CN104503848A
CN104503848A CN201410726620.3A CN201410726620A CN104503848A CN 104503848 A CN104503848 A CN 104503848A CN 201410726620 A CN201410726620 A CN 201410726620A CN 104503848 A CN104503848 A CN 104503848A
Authority
CN
China
Prior art keywords
instruction
client
synchronous
move
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410726620.3A
Other languages
English (en)
Other versions
CN104503848B (zh
Inventor
张明
胡浩
胡翌
高勇
吴越
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Xishanju Network Technology Co ltd
Zhuhai Kingsoft Digital Network Technology Co Ltd
Original Assignee
Western Hills Residence Guangzhou Shi You Network Technology Co Ltd
Zhuhai Kingsoft Online Game Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Western Hills Residence Guangzhou Shi You Network Technology Co Ltd, Zhuhai Kingsoft Online Game Technology Co Ltd filed Critical Western Hills Residence Guangzhou Shi You Network Technology Co Ltd
Priority to CN201410726620.3A priority Critical patent/CN104503848B/zh
Publication of CN104503848A publication Critical patent/CN104503848A/zh
Application granted granted Critical
Publication of CN104503848B publication Critical patent/CN104503848B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种在C/S架构下的移动指令的同步及执行方法,方法包括以客户端为基准的移动指令的同步和执行方法及服务器端控制下的移动指令的同步和执行方法,其中以客户端为基准的移动指令执行方法包括:客户端收到用户输入指令后直接执行该指令,并同步给服务器;服务器收到指令后,和客户端分别执行移动指令,并验证指令的有效性;若指令有效,则将新指令同步给其他客户端执行;其中在服务器端控制下的移动指令的执行方法中,采用一种平滑的方式执行新指令。本发明还公开了一种与上述方法对应的移动指令的同步及执行系统。本发明的有益效果是无需等待客户端和服务器信息交互;操作指令首先在本地客户端执行,保证了最快的响应速度。

Description

一种在C/S架构下的移动指令的同步及执行方法
技术领域
 本发明涉及一种在C/S架构下的移动指令的同步及执行方法,特别涉及一种采用客户端先行执行,服务器端后续验证的同步和执行方法。
背景技术
典型的MMO游戏的组织结构是C/S方式的,表现为很多客户端连接到同一个服务器。每个客户端都可以接受本地玩家的操作指令,并以某种方式通知服务器端和其他玩家,以保持客户端与服务器端之间、客户端与客户端之间位置的同步。
通常,指令执行都是本地客户端暂不执行,先把指令发送到服务器端验证,验证通过后,再通知给所有客户端执行。例如,2010年9月15日公开的专利CN101094227B,涉及一种基于C/S架构的移动平台联网游戏消息交互方法,该方法包括客户端通过将消息设计为类后将所有的消息类封装为消息包……所述客户端使用消息包生成消息,将所述生成的消息向服务器端发送;所述服务器端接收所述消息后,根据解包操作代码对所述消息进行解包操作。其问题在于客户端和服务器端的时延有很大的不确定性,玩家输入指令到实际看到的反馈有一段可察觉到的等待时间,会影响对游戏的体验。
发明内容
本发明要解决的技术问题是:在C/S架构下,指令下达后,在本地客户端可以得到及时的反馈;本地玩家和远端玩家在客户端的位置模拟流畅且符合玩家预期,特别可以避免卡顿和瞬移。
本发明解决该技术问题采用的技术方案是:
一种在C/S架构下的移动指令的同步及执行方法,其特征在于,包括:
以客户端为基准的移动指令的同步和执行,包括:客户端收到用户输入指令后直接执行该指令,并同步给服务器;服务器收到指令后,和客户端分别执行移动指令,并验证指令的有效性;若指令有效,则将新指令同步给其他客户端执行;
由服务器端控制的移动指令的同步和执行,包括采用一种平滑的方式执行新指令。
优选地,其中客户端在执行输入指令之前先判断当前是否处于用户可控状态。
优选地,其中客户端在执行输入指令前,根据本地缓存的状态作初步的有效性判断。
优选地,客户端和服务器端都各自执行,仅在移动状态发生变化后,以事件方式通知对方。
优选地,其中服务器端具有位置和移动状态历史记录表,用于验证客户端指令的有效性。
作为有益改进,服务器端定期根据指令控制执行角色的状态和位置,并存储到历史记录表中。
作为有益改进,其中会根据客户端和服务器端的时延决定历史记录表缓存所需要的存储空间。
优选地,其中在服务器端发生不可控的移动状态变更时,产生一条新的移动指令。
优选地,其中所述指令的内容包括了指令发出时角色的状态、位置、朝向信息、移动目标点、移动方向、速度。
此外,本发明还涉及一种在C/S架构下的移动指令的同步及执行系统,其特征在于,该系统包括:
以客户端为基准的移动指令的同步和执行模块,其中客户端收到用户输入指令后直接执行该指令,并同步给服务器;服务器收到指令后,和客户端分别执行移动指令,并验证指令的有效性;若指令有效,则将新指令同步给其他客户端执行;
由服务器端控制的移动指令的同步和执行模块,其采用一种平滑的方式执行新指令。
优选地,以客户端为基准的移动指令的同步和执行模块会在客户端执行输入指令之前先判断当前是否处于用户可控状态。
优选地,以客户端为基准的移动指令的同步和执行模块会在客户端执行输入指令之前,根据本地缓存的状态作初步的有效性判断。
优选地,以客户端为基准的移动指令的同步和执行模块在服务器端具有位置和移动状态历史记录表,用于验证客户端指令的有效性。
优选地,以客户端为基准的移动指令的同步和执行模块会根据客户端和服务器端的时延决定历史记录表缓存所需要的存储空间。
优选地,服务端发生不可控的移动状态变更时,会产生一条新的移动指令,并同步给所有客户端,纠正该玩家在所有客户端的错误位置。
优选地,其中所述指令的内容包括了指令发出时角色的状态、位置、朝向信息、移动目标点、移动方向、速度。
本发明的有益效果是:用户输入指令后,本地玩家无需等待客户端和服务器信息交互,不会存在延迟现象;操作指令首先在本地客户端执行,保证了最快的响应速度;服务器端维护所有玩家一段时间内位置和状态的历史记录,通过比对指令发生的时刻玩家在客户端和服务器端的状态差异,可以有效判定玩家操作指令的有效性,安全性好;客户端有一套平滑执行移动指令的方法,根据当前位置和新的预期位置做平滑,可以杜绝时延带来的瞬移和漂移现象;所有同步都是基于事件的,同步数据量小。
附图说明
下面结合附图对本发明的具体实施方式作进一步说明:
图1为本发明中客户端发出的移动指令执行过程的示意图;
图2为本发明中服务器端生成的指令执行过程的示意图;
图3为本发明中客户端收到远端指令后平滑执行的效果示意图。
具体实施方式
需要说明一点,在图1-2中,T表示时间。如图1所示,在一实施例中,玩家向客户端Ct输入指令(Cin),客户端首先判断当前是否处于用户可控状态,并且/或者根据本地缓存的状态预判指令是否可以执行。如果处于用户可控状态并且/或者可以执行,则不需要经由服务器端S判断,立刻执行执行指令①,并同步给服务器端②。由于服务器端S的状态变更都会以事件方式通知客户端,预判结果可以保证很高的正确性。从用户输入指令,到指令执行并在屏幕上反馈出来,间隔时间理论上可以是最短时间,属于最优策略。
服务器端S维护了每个玩家角色的位置和移动状态历史记录。服务器端S定期根据指令控制执行角色的状态和位置,并存储到历史记录表中。服务器端S收到指令后,根据该指令发生的时刻,从历史记录中取出角色在服务器端的状态和位置,与客户端发来的状态和位置信息作对比,验证指令有效性,决定指令是否可以执行。其中历史记录会带来一定的存储开销,在一个优选的实例中,会根据客户端和服务器端S的时延决定记录缓存所需要的存储空间。若指令可以执行,则指令发出时刻之后的历史记录将被回滚,服务器端S根据新的指令重新执行和执行③,同时,服务器S将该指令同步给其他客户端B1/B2/……④,客户端收到该指令后,以平滑的方式执行⑤,这里要说明一点,根据上文描述,本地客户端已经执行了指令,因此服务器端只需要将该指令同步给其他客户端。否则如果服务器如常规技术手段那样,将指令同步给所有的客户端,本地客户端会再次执行该指令,导致抖动。
其中客户端接收到的玩家操作指令,服务器端生成的新的状态变更指令,都以事件的方式通知对方知晓,服务器端通知非指令来源链接时亦以事件的形式发出,其中“指令来源链接”是指指令的原始来源,换言之,非指令来源链接就是指上文所述的其他客户端。
在一个优选实例中,指令的内容包括指令发出时角色的状态、位置、朝向信息,还包括了移动目标点、移动方向、速度等信息。这些信息对执行移动过程是必要的,服务器端还根据这些信息做指令有效性的验证。
在另一实施例中,服务器端S亦可以产生和发出移动指令,通常会使玩家进入不可控的移动状态。服务器端S发出的指令会发送给所有客户端。如图2所示,服务器端S生成玩家的指令输入(Sin)后,会立即模拟执行①,并同步给所有客户端②,客户端Ct、B1/B2/……在接收到服务器端S指令后,会以一种平滑地方式执行③。具体平滑效果如图3所示,客户端会根据当前位置和新指令拟合出一条平滑曲线,其中OB段:角色已经执行的运动轨迹;BC段:若角色没有收到新指令,将按此轨迹运动;A:角色受到的新指令中指定指令应该在A位置执行;AD段:按照角色新指令,角色应该改变方向,按该轨迹运行;BD段:角色根据当前位置和新指令做平滑处理后,角色的实际运行轨迹。
服务端在发生不可控的移动状态变更时,会产生一条新的移动指令,并同步给所有客户端,纠正该玩家在所有客户端的错误位置。
此外,本发明还涉及一种在C/S架构下的移动指令的同步及执行系统,其特征在于,该系统包括:以客户端为基准的移动指令的同步和执行模块,其中客户端收到用户输入指令后直接执行该指令,并同步给服务器;服务器收到指令后,和客户端分别执行移动指令,并验证指令的有效性;若指令有效,则将新指令同步给其他客户端执行;由服务器端控制的移动指令的同步和执行模块,其采用一种平滑的方式执行新指令。
在一优选实施例中,以客户端为基准的移动指令的同步和执行模块会在客户端执行输入指令之前先判断当前是否处于用户可控状态以及/或者根据本地缓存的状态作初步的有效性判断。
其中,以客户端为基准的移动指令的同步和执行模块在服务器端具有位置和移动状态历史记录表,用于验证客户端指令的有效性。
在一优选实施例中,以客户端为基准的移动指令的同步和执行模块会根据客户端和服务器端的时延决定历史记录表缓存所需要的存储空间。
在一优选实施例中,由服务器端控制的移动指令的同步和执行模块会在服务器端发生不可控的移动状态变更时,产生一条新的移动指令,并同步给所有客户端,纠正该玩家在所有客户端的错误位置。
其中所述指令的内容包括了指令发出时角色的状态、位置、朝向信息、移动目标点、移动方向、速度。
其中,本发明涉及的一种在C/S架构下的移动指令的同步及执行系统与上文所述的一种在C/S架构下的移动指令的同步及执行方法的其他对应技术特征等同。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式。只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。即使个别的技术特征在不同的权利要求中引用,本发明还可包含共有这些特征的实施例。

Claims (16)

1.一种在C/S架构下的移动指令的同步及执行方法,其特征在于,包括:
以客户端(Ct)为基准的移动指令的同步和执行,包括:客户端(Ct)收到用户输入指令后直接执行该指令,并同步给服务器;服务器收到指令后,和客户端(Ct)分别执行移动指令,并验证指令的有效性;若指令有效,则将新指令同步给其他客户端执行;
由服务器端(S)控制的移动指令的同步和执行,包括采用一种平滑的方式执行新指令。
2.根据权利要求1所述的在C/S架构下的移动指令的同步及执行方法,其特征在于,其中客户端(Ct)在执行输入指令之前先判断当前是否处于用户可控状态。
3.根据权利要求1所述的在C/S架构下的移动指令的同步及执行方法,其特征在于,其中客户端(Ct)在执行输入指令前,根据本地缓存的状态作初步的有效性判断。
4.根据权利要求1所述的在C/S架构下的移动指令的同步及执行方法,还包括:客户端(Ct)和服务器端(S)都各自执行,仅在移动状态发生变化后,以事件方式通知对方。
5.根据权利要求1所述的在C/S架构下的移动指令的同步及执行方法,其特征在于,其中服务器端(S)具有位置和移动状态历史记录表,用于验证客户端(Ct)指令的有效性。
6.根据权利要求5所述的在C/S架构下的移动指令的同步及执行方法,还包括:服务器端(S)定期根据指令控制执行角色的状态和位置,并存储到历史记录表中。
7.根据权利要求5所述的在C/S架构下的移动指令的同步及执行方法,其特征在于,其中会根据客户端(Ct)和服务器端(S)的时延决定历史记录表缓存所需要的存储空间。
8.根据权利要求1所述的在C/S架构下的移动指令的同步及执行方法,其特征在于,其中在服务器端(S)发生不可控的移动状态变更时,产生一条新的移动指令。
9.根据上述任一项权利要求所述的在C/S架构下的移动指令的同步及执行方法,其特征在于,其中所述指令的内容包括了指令发出时角色的状态、位置、朝向信息、移动目标点、移动方向、速度。
10.一种在C/S架构下的移动指令的同步及执行系统,其特征在于,该系统包括:
以客户端(Ct)为基准的移动指令的同步和执行模块,其中客户端(Ct)收到用户输入指令后直接执行该指令,并同步给服务器;服务器收到指令后,和客户端(Ct)分别执行移动指令,并验证指令的有效性;若指令有效,则将新指令同步给其他客户端执行;
由服务器端(S)控制的移动指令的同步和执行模块,其采用一种平滑的方式执行新指令。
11.根据权利要求10所述的在C/S架构下的移动指令的同步及执行系统,其特征在于,以客户端(Ct)为基准的移动指令的同步和执行模块会在客户端(Ct)执行输入指令之前先判断当前是否处于用户可控状态。
12.根据权利要求10所述的在C/S架构下的移动指令的同步及执行系统,其特征在于,以客户端(Ct)为基准的移动指令的同步和执行模块会在客户端(Ct)执行输入指令之前,根据本地缓存的状态作初步的有效性判断。
13.根据权利要求10所述的在C/S架构下的移动指令的同步及执行系统,其特征在于,以客户端(Ct)为基准的移动指令的同步和执行模块在服务器端(S)具有位置和移动状态历史记录表,用于验证客户端(Ct)指令的有效性。
14.根据权利要求10所述的在C/S架构下的移动指令的同步及执行系统,其特征在于,以客户端(Ct)为基准的移动指令的同步和执行模块会根据客户端(Ct)和服务器端(S)的时延决定历史记录表缓存所需要的存储空间。
15.根据权利要求10所述的在C/S架构下的移动指令的同步及执行系统,其特征在于,由服务器端(S)控制的移动指令的同步和执行模块会在服务器端(S)发生不可控的移动状态变更时,产生一条新的移动指令。
16.根据权利要求10所述的在C/S架构下的移动指令的同步及执行系统,其特征在于,其中所述指令的内容包括了指令发出时角色的状态、位置、朝向信息、移动目标点、移动方向、速度。
CN201410726620.3A 2014-12-04 2014-12-04 一种在c/s架构下的移动指令的同步及执行方法 Active CN104503848B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410726620.3A CN104503848B (zh) 2014-12-04 2014-12-04 一种在c/s架构下的移动指令的同步及执行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410726620.3A CN104503848B (zh) 2014-12-04 2014-12-04 一种在c/s架构下的移动指令的同步及执行方法

Publications (2)

Publication Number Publication Date
CN104503848A true CN104503848A (zh) 2015-04-08
CN104503848B CN104503848B (zh) 2018-12-11

Family

ID=52945248

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410726620.3A Active CN104503848B (zh) 2014-12-04 2014-12-04 一种在c/s架构下的移动指令的同步及执行方法

Country Status (1)

Country Link
CN (1) CN104503848B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070167203A1 (en) * 2006-01-17 2007-07-19 Nintendo Co., Ltd. Storage medium having game program stored thereon and game apparatus
CN102065097A (zh) * 2010-12-27 2011-05-18 北京像素软件科技股份有限公司 一种客户端与服务器操作同步的方法
CN102387132A (zh) * 2011-08-25 2012-03-21 北京像素软件科技股份有限公司 战斗系统实现方法
CN103501287A (zh) * 2013-09-03 2014-01-08 网易(杭州)网络有限公司 一种游戏运行中确定动作命中对象的方法和设备
CN103701918A (zh) * 2013-12-31 2014-04-02 北京像素软件科技股份有限公司 客户端和服务器同步方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070167203A1 (en) * 2006-01-17 2007-07-19 Nintendo Co., Ltd. Storage medium having game program stored thereon and game apparatus
CN102065097A (zh) * 2010-12-27 2011-05-18 北京像素软件科技股份有限公司 一种客户端与服务器操作同步的方法
CN102387132A (zh) * 2011-08-25 2012-03-21 北京像素软件科技股份有限公司 战斗系统实现方法
CN103501287A (zh) * 2013-09-03 2014-01-08 网易(杭州)网络有限公司 一种游戏运行中确定动作命中对象的方法和设备
CN103701918A (zh) * 2013-12-31 2014-04-02 北京像素软件科技股份有限公司 客户端和服务器同步方法和装置

Also Published As

Publication number Publication date
CN104503848B (zh) 2018-12-11

Similar Documents

Publication Publication Date Title
EP4037787B1 (en) Synchronization and offset of vsync between cloud gaming server and client
CN102769616B (zh) 一种基于游戏移动逻辑客户端与服务端同步的延迟计算方法
WO2022036793A1 (zh) 省地一体的源网荷储实时控制系统及控制方法
CN103795782A (zh) 一种网络游戏的跨服方法及系统
US9830181B2 (en) Method and system for gracefully shutdown virtual system
CN106453625B (zh) 信息同步方法及高可用性集群系统
US20130184083A1 (en) Method for interactive logic fault tolerance in online game, and system and client for fault tolerance in online game
CN103116687A (zh) 基于网络游戏的角色离线控制方法
CN109062681A (zh) 一种周期性循环任务的执行方法、系统、装置及存储介质
Ding-yi et al. Research on intelligent manufacturing system of sustainable development
CN109062710A (zh) 一种远程过程调用方法、终端设备及网络设备
CN103327043A (zh) 一种消息推送方法和系统、关系链平台服务器
CN103138992A (zh) 基于网络的场景模拟方法
CN104243554B (zh) 一种集群系统中的时序库主备机内存同步方法
CN103001787A (zh) 用于数据处理中心容灾备份的系统及方法
CN104503848A (zh) 一种在c/s架构下的移动指令的同步及执行方法
CN107703785A (zh) 设备同步控制方法及系统
CN102710356B (zh) 一种实时冗余主站数据同步方法
CN101841538A (zh) Cs架构下的物理计算网络同步方法
CN106647359B (zh) 一种调度方法
JP2008117116A (ja) 同報配信システムおよび同報配信方法
CN105617656B (zh) 一种防止网络游戏用户作弊的方法
CN103077231B (zh) 一种数据库同步的方法及系统
CN100421433C (zh) 内容信息的分发方法
CN103118072B (zh) 一种数据库更新的方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 519000 Room 102, 202, 302 and 402, No. 325, Qiandao Ring Road, Tangjiawan Town, high tech Zone, Zhuhai City, Guangdong Province, Room 102 and 202, No. 327 and Room 302, No. 329

Patentee after: Zhuhai Jinshan Digital Network Technology Co.,Ltd.

Patentee after: Guangzhou Xishanju Network Technology Co.,Ltd.

Address before: 519000 Jinshan software building, 8 Lanshan lane, Jida Jingshan Hill Road, Zhuhai, Guangdong

Patentee before: ZHUHAI KINGSOFT ONLINE GAME TECHNOLOGY Co.,Ltd.

Patentee before: GUANGZHOU SEASUN ENTERTAINMENT NETWORK TECHNOLOGY Co.,Ltd.

CP03 Change of name, title or address