CN109660559B - 一种基于时间戳的客户端与服务器端场景同步方法 - Google Patents
一种基于时间戳的客户端与服务器端场景同步方法 Download PDFInfo
- Publication number
- CN109660559B CN109660559B CN201910053497.6A CN201910053497A CN109660559B CN 109660559 B CN109660559 B CN 109660559B CN 201910053497 A CN201910053497 A CN 201910053497A CN 109660559 B CN109660559 B CN 109660559B
- Authority
- CN
- China
- Prior art keywords
- server
- client
- scene
- time
- timestamp
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于时间戳的客户端与服务器端场景同步的方法,其特征在于包括以下步骤:玩家登陆客户端,与服务器建立网络连接;客户端通过选择进入游戏场景,向服务器端发送消息告知服务器端,客户端有新玩家进入游戏场景;服务器端接收到客户端进入场景的通知后,给客户端一个应答消息,所述应答消息中包含当前服务器场景的时间戳;客户端即以这个时间戳作为与服务器同步的一个时间;服务器端按照预定时间间隔,通过配置或算法得出场景中元素新的状态;客户端按照和服务器端相同的时间间隔通过相同的配置或算法得到场景中元素新的状态。
Description
技术领域
本发明属于网络游戏技术领域,具体涉及一种基于时间戳的客户端与服务器端场景同步方法。
背景技术
多人联网游戏(如捕鱼游戏)等需要多个玩家在同一个场景中游戏互动,因此需要多个客户端与服务器同步游戏场景,即多个玩家需要在自己的客户端设备上看到相同的游戏场景。
由服务器端推送数据用于更新渲染场景内元素从而更新渲染的方式要求较高的通讯可靠性和高度的一致性。
现有技术中,游戏客户端每获取一个游戏操作指令,将所述游戏操作指令加入上传队列中;每隔第一预定时间将所述上传队列中的游戏操作指令加入上传数据包中,并向游戏服务器发送所述上传数据包;接收所述游戏服务器每隔第二预定时间发送的下发数据包;根据所述下发数据包,从所述上传队列中删除所述游戏服务器已接收的游戏操作指令;并根据所述下发数据包,控制游戏表现。
现有技术的缺点在于,由于客户端需要等待服务器下发的帧数据块,因此会有频繁的网络交互和数据通信才能流畅的更新客户端的场景效果。如果网络延迟较大,可能导致界面的卡顿甚至卡死。
发明内容
为克服上述现有技术的不足,本发明提供了一种基于时间戳的客户端与服务器端场景同步方法。本发明则提供了一种较少网络数据交互下的客户端和服务器场景同步方法,从而保证了游戏的流畅性。
本发明提供的基于时间戳的客户端与服务器端场景同步方法,包括以下步骤:
玩家登陆客户端,与服务器建立网络连接;
客户端通过选择进入游戏场景,向服务器端发送消息告知服务器端,客户端有新玩家进入游戏场景;
服务器端接收到客户端进入场景的通知后,给客户端一个应答消息,所述应答消息中包含当前服务器场景的时间戳;
客户端即以这个时间戳作为与服务器同步的一个时间;
服务器端按照预定时间间隔,通过配置或算法得出场景中元素新的状态;
客户端按照和服务器端相同的时间间隔t通过相同的配置或算法得到场景中元素新的状态。
优选地,客户端和服务器端采用同一配置文件用于表示游戏场景中某一元素路径的动态变化。
优选地,客户端和服务器端采用的配置文件中包括但不限于以下数据:
序号,用于按照预定时间间隔逐条记录数据;
角度偏移度数及方向,正数为顺时针,负值逆时针;
速度的倍率,在基础速度下的倍率系数;
预定时间内,每帧角度变化值;
预定时间内,每帧速度变化值。
优选地,每个序号之间的时间间隔可根据需要进行设定。
优选地,所述玩家登陆客户端,与服务器建立网络连接;
客户端通过选择进入游戏场景,向服务器端发送消息告知服务器端,客户端有新玩家进入游戏场景;
服务器端接收到客户端进入场景的通知后,给客户端一个应答消息,所述应答消息中包含当前服务器场景的时间戳;
客户端即以这个时间戳作为与服务器同步的一个时间,具体包括:
S201:玩家通过设备登录客户端;
S202:同时服务器已经加载路径配置,初始化时间为t0;
S203:与服务器建立连接;
S204:服务器返回当前时间t1;
S205:客户端收到服务器发来的时间t1,并保存到本地。
优选地,服务器端在创建游戏元素时,包括但不限于以下数据:
bt:服务器创建元素的时间戳;
et:服务器元素创建后,存在场景中的时间;
x:元素的创建时相对于场景坐标系的横坐标;
y:元素的创建时相对于场景坐标系的纵坐标;
rotate:元素的创建时相对于场景坐标系的角度值。
优选地,bt大于当前时间t1,用于表示在未来的一个时间bt将会创建该元素。
优选地,当时间t1递增到bt时,客户端和服务器端同时分别在坐标点(x,y),角度rotate位置处各自创建一条鱼,完成元素的创建同步。
优选地,元素创建完成后,客户端与服务器端根据同样的配置和帧率,计算每帧移动的距离。
优选地,在一段时间△t表示后,将客户端侧的时间差值记作△t1,服务器端侧的时间差值记作△t2;
比较客户端与服务器端的时间戳,当△t1与△t2的差值绝对值小于或等于预定阈值时,根据当前时间戳t2计算客户端场景数据;当△t1与△t2的差值绝对值大于预定阈值时,服务器端重新发送当前时间t2,客户端根据新接收的t2计算客户端场景数据。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。
附图说明
图1示出了根据本发明的一个实施例的场景配置文件;
图2示出了根据本发明的一个实施例的基于时间戳的客户端与服务器端场景同步方法流程图;
图3示出了根据本发明的一个实施例的基于时间戳的客户端与服务器端场景同步方法流程图;
图4示出了根据本发明的一个实施例的基于时间戳的客户端与服务器端场景同步方法流程图。
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的基于时间戳的客户端与服务器端场景同步方法其具体实施方式、特征及其功效,详细说明如后。在下述说明中,不同的“一实施例”或“实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构、或特点可由任何合适形式组合。
本发明中使用的术语如下:
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。通俗的讲,时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。它的提出主要是为用户提供一份电子证据,以证明用户的某些数据的产生时间。
帧率(Frame rate)是称为帧的位图图像连续出现在显示器上的频率(速率)。该术语同样适用于胶片和摄像机,计算机图形和动作捕捉系统。
根据本发明的一个具体实施方式,在进入场景时客户端与服务器端同步一个时间戳,场景中的元素状态更新都会依据一个时间戳字段,即在某个时间新建某个元素、在某个时间某个物体改变位置、在某个时间某个元素消失等。后续场景中物体的移动根据时间间隔,客户端和服务器端采用相同的算法保证相同间隔产生相同的运算结果保证一致性。减少了过程中的网络通讯。并且不会因为短暂的网络不好导致客户端无法同步的卡死现象。
根据本发明的一个具体实施方式,一种基于时间戳的客户端与服务器端场景同步的方法,其中:
玩家登陆客户端,与服务器建立网络连接;
客户端通过选择进入游戏场景,向服务器端发送消息告知服务器端,客户端有新玩家进入游戏场景;
服务器端接收到客户端进入场景的通知后,给客户端一个应答消息,所述应答消息中包含当前服务器场景的时间戳;
客户端即以这个时间戳作为与服务器同步的一个时间;
服务器端按照一定时间间隔t,通过配置或算法得出场景中元素新的状态;
客户端按照和服务器端相同的时间间隔t,通过相同的配置或算法得到场景中元素新的状态。
根据本发明的一个具体实施方式,以捕鱼游戏中鱼的游动路径同步进行示例性说明,其中客户端与服务器端同时都以每秒30次的频率,计算、刷新场景数据。根据本发明的一个优选实施方式,客户端与服务器端的刷新频率可根据需要进行设定。
客户端与服务器端都使用图1中的配置文件,[AI*]表示若干路径中的一种,图中示出路径为[AI11],其中,每一行数据表示一个位置信息;每个序号之间的时间间隔0.5秒;根据本发明的一个优选实施方式,每个序号之间的时间间隔可根据需要进行设定。
配置文件中的各列数据定义如下:
第一列:序号;
第二列:角度偏移度数及方向,正数为顺时针,负值逆时针;
第三列:速度的倍率,在基础速度下的倍率系数;
第四列:0.5秒内,每帧角度变化值;
第五列:0.5秒内,每帧速度变化值;
通过图1中的配置文件可以表示游戏场景中某一元素路径的动态变化。
如图2所示,根据本发明的一个具体实施方式,结合时间轴示出了初始化场景:
S201:玩家通过设备登录客户端;
S202:同时服务器已经加载路径配置,初始化时间为t0;
如图3所示,根据本发明的一个具体实施方式,结合时间轴示出了第一次同步时间戳的具体流程:
S203:与服务器建立连接;
S204:服务器返回当前时间t1;
S205:客户端收到服务器发来的时间t1,并保存到本地;
根据本发明的一个具体实施方式,以场景中的某一条鱼位置数据为例,服务器端在创建一条鱼的同时,包括但不限于以下数据:
bt:服务器创建鱼的时间戳;
et:服务器鱼创建后,存在场景中的时间;
x:鱼的创建时相对于场景坐标系的横坐标;
y:鱼的创建时相对于场景坐标系的纵坐标;
rotate:鱼的创建时相对于场景坐标系的角度值;
通常情况下,bt会大于当前时间t1,用于表示在未来的一个时间bt会创建一条鱼,鱼的位置信息在坐标点(x,y),角度rotate;这样当时间t1递增到bt时,客户端和服务器端同时分别各自创建一条鱼,完成鱼的创建同步。
当创建鱼完成后,客户端与服务器端根据同样的配置和帧率,计算每帧移动的距离。
由于客户端、服务器端处理器的计算能力不一样,尤其是客户端帧率跟设备硬件处理能力有较大关系;根据本发明的一个优选实施方式,在一段时间(用△t表示)后,客户端和服务器端分别累积计算的时间差值将存在一定误差,将客户端侧的时间差值记作△t1,服务器端侧的时间差值记作△t2。当△t1与△t2的差值累积到一定程度后,需要重新同步当前时间戳t2。如图4所示,比较客户端与服务器端的时间戳,当△t1与△t2的差值绝对值小于或等于预定阈值时,根据当前时间戳t2计算客户端场景数据;当△t1与△t2的差值绝对值大于预定阈值时,服务器端重新发送当前时间t2,客户端根据新接收的t2计算客户端场景数据。
本发明主要依据客户端和服务器端分别计算得到相同的场景数据。减少了网络间的通信,减少网络数据流量。也避免了网络通讯延迟可能产生的游戏界面卡顿,影响玩家游戏体验。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (8)
1.一种基于时间戳的客户端与服务器端场景同步的方法,其特征在于包括以下步骤:
玩家登陆客户端,与服务器建立网络连接;
客户端通过选择进入游戏场景,向服务器端发送消息告知服务器端,客户端有新玩家进入游戏场景;
服务器端接收到客户端进入场景的通知后,给客户端一个应答消息,所述应答消息中包含当前服务器场景的时间戳;
客户端即以这个时间戳作为与服务器同步的一个时间;
服务器端按照预定时间间隔,通过配置或算法得出场景中元素新的状态;
客户端按照和服务器端相同的时间间隔通过相同的配置或算法得到场景中元素新的状态;客户端和服务器端采用同一配置文件用于表示游戏场景中某一元素路径的动态变化;
客户端和服务器端采用的配置文件中包括但不限于以下数据:
序号,用于按照预定时间间隔逐条记录数据;
角度偏移度数及方向,正数为顺时针,负值逆时针;
速度的倍率,在基础速度下的倍率系数;
预定时间内,每帧角度变化值;
预定时间内,每帧速度变化值。
2.根据权利要求1所述的基于时间戳的客户端与服务器端场景同步的方法,其特征在于,每个序号之间的时间间隔可根据需要进行设定。
3.根据权利要求2所述的基于时间戳的客户端与服务器端场景同步的方法,其特征在于,
所述玩家登陆客户端,与服务器建立网络连接;
客户端通过选择进入游戏场景,向服务器端发送消息告知服务器端,客户端有新玩家进入游戏场景;
服务器端接收到客户端进入场景的通知后,给客户端一个应答消息,所述应答消息中包含当前服务器场景的时间戳;
客户端即以这个时间戳作为与服务器同步的一个时间,具体包括:
S201:玩家通过设备登录客户端;
S202:同时服务器已经加载路径配置,初始化时间为t0;
S203:与服务器建立连接;
S204:服务器返回当前时间t1;
S205:客户端收到服务器发来的时间t1,并保存到本地。
4.根据权利要求3所述的基于时间戳的客户端与服务器端场景同步的方法,其特征在于,
服务器端在创建游戏元素时,包括但不限于以下数据:
bt:服务器创建元素的时间戳;
et:服务器元素创建后,存在场景中的时间;
x:元素的创建时相对于场景坐标系的横坐标;
y:元素的创建时相对于场景坐标系的纵坐标;
rotate:元素的创建时相对于场景坐标系的角度值。
5.根据权利要求4所述的基于时间戳的客户端与服务器端场景同步的方法,其特征在于,
bt大于当前时间t1,用于表示在未来的一个时间bt将会创建该元素。
6.根据权利要求5所述的基于时间戳的客户端与服务器端场景同步的方法,其特征在于,
当时间t1递增到bt时,客户端和服务器端同时分别在坐标点(x,y),角度rotate位置处各自创建一条鱼,完成元素的创建同步。
7.根据权利要求6所述的基于时间戳的客户端与服务器端场景同步的方法,其特征在于,
元素创建完成后,客户端与服务器端根据同样的配置和帧率,计算每帧移动的距离。
8.根据权利要求7所述的基于时间戳的客户端与服务器端场景同步的方法,其特征在于,
在一段时间△t后,将客户端侧的时间差值记作△t1,服务器端侧的时间差值记作△t2;
比较客户端与服务器端的时间戳,当△t1与△t2的差值绝对值小于或等于预定阈值时,根据当前时间戳t2计算客户端场景数据;当△t1与△t2的差值绝对值大于预定阈值时,服务器端重新发送当前时间t2,客户端根据新接收的t2计算客户端场景数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910053497.6A CN109660559B (zh) | 2019-01-21 | 2019-01-21 | 一种基于时间戳的客户端与服务器端场景同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910053497.6A CN109660559B (zh) | 2019-01-21 | 2019-01-21 | 一种基于时间戳的客户端与服务器端场景同步方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109660559A CN109660559A (zh) | 2019-04-19 |
CN109660559B true CN109660559B (zh) | 2021-05-04 |
Family
ID=66120522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910053497.6A Active CN109660559B (zh) | 2019-01-21 | 2019-01-21 | 一种基于时间戳的客户端与服务器端场景同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109660559B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110445809B (zh) * | 2019-09-03 | 2022-02-25 | 深圳绿米联创科技有限公司 | 网络攻击检测方法、装置、系统、电子设备及存储介质 |
CN111381792B (zh) * | 2020-03-12 | 2023-06-02 | 上海曼恒数字技术股份有限公司 | 一种支持多人协同的虚拟现实数据传输方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101335916A (zh) * | 2008-07-22 | 2008-12-31 | 中山大学 | 一种通用的手机角色扮演(rpg)网络游戏引擎 |
CN102769616A (zh) * | 2012-07-04 | 2012-11-07 | 珠海金山网络游戏科技有限公司 | 一种基于游戏移动逻辑客户端与服务端同步的延迟计算方法 |
CN103731340A (zh) * | 2013-12-27 | 2014-04-16 | 北京像素软件科技股份有限公司 | 一种网络游戏系统的通信方法 |
CN106302679A (zh) * | 2016-08-08 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 一种虚拟对象移动同步方法、客户端及服务器 |
CN107302707A (zh) * | 2017-05-18 | 2017-10-27 | 腾讯科技(深圳)有限公司 | 场景动画的播放方法、装置及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130198264A1 (en) * | 2012-02-01 | 2013-08-01 | Erik Hellman | Method and device for synchronizing a clock between a server communication device and a client communication device |
-
2019
- 2019-01-21 CN CN201910053497.6A patent/CN109660559B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101335916A (zh) * | 2008-07-22 | 2008-12-31 | 中山大学 | 一种通用的手机角色扮演(rpg)网络游戏引擎 |
CN102769616A (zh) * | 2012-07-04 | 2012-11-07 | 珠海金山网络游戏科技有限公司 | 一种基于游戏移动逻辑客户端与服务端同步的延迟计算方法 |
CN103731340A (zh) * | 2013-12-27 | 2014-04-16 | 北京像素软件科技股份有限公司 | 一种网络游戏系统的通信方法 |
CN106302679A (zh) * | 2016-08-08 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 一种虚拟对象移动同步方法、客户端及服务器 |
CN107302707A (zh) * | 2017-05-18 | 2017-10-27 | 腾讯科技(深圳)有限公司 | 场景动画的播放方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109660559A (zh) | 2019-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111167116B (zh) | 一种平滑显示的方法、终端和计算机存储介质 | |
EP4037787B1 (en) | Synchronization and offset of vsync between cloud gaming server and client | |
CN107124416B (zh) | 多化身位置同步系统、方法、装置及电子设备和存储介质 | |
CN104954349B (zh) | 一种2d游戏中客户端的同步方法、装置和系统 | |
KR100523785B1 (ko) | 분산 처리 시스템, 분산 처리 방법, 및 그 방법을 이용할수 있는 클라이언트 단말 | |
CN113179441B (zh) | 一种同步播放方法、装置、系统及计算机设备 | |
CN109660559B (zh) | 一种基于时间戳的客户端与服务器端场景同步方法 | |
CN108310766B (zh) | 数据处理方法和装置、存储介质、处理器及终端 | |
CN109568948B (zh) | 网络游戏中对象的运动状态同步方法及装置 | |
CN109381858B (zh) | 一种网络游戏中位置同步方法 | |
CN111265863B (zh) | 一种目标对象的位置纠正方法、装置、设备及介质 | |
CN106657172A (zh) | 一种信息推送的实现方法及装置 | |
CN114422866B (zh) | 一种视频处理方法、装置、电子设备和存储介质 | |
CN113746931B (zh) | 数据同步方法及装置 | |
CN116983618A (zh) | 一种位置同步方法及装置 | |
EP4131952A1 (en) | Transmission device, transmission method, and program | |
CN117224930A (zh) | 基于状态同步的离线任务加速方法、装置、设备及介质 | |
CN118170293A (zh) | 指令响应方法、装置、介质及设备 | |
CN115228084A (zh) | 游戏画面同步方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |