概述

目前有2种网络游戏拓扑结构:Peer to Peer和Client/Server模式。在RTS类型的游戏中大都使用Peer to Peer的帧锁定同步算法(如红警、帝国时代、war3等)。目前主流引擎都自带的是Client/Server模式的服务器(如Unity3d, UE4等)。在此推荐《multiplayer game programming》,该书对帧同步算法和CS模式的同步都有详细的阐述;并且该书介绍的对象同步思路与ue4的思路类似。

本文只对CS模式下的运动同步进行总结,CS模式下,server是绝对的权威,一切以server为准。

记住:延迟是无法消除的,要尽可能地隐藏延迟,让玩家具有良好的体验。

先定义一个符号:

运动状态 S:   S表示某个运动状态(如位置、速度、转速等)

操作事件  I:   I表示运动输入命令事件(如 加速度、立即停止、力等)

突发事件 E:  如受到阻挡、炮弹冲击等非人为直接输入。

0. Round Trip Time(RTT)

1. 哑终端方式(dump terminal)

类似早期的终端,只发送键盘和鼠标输入给服务器,客户端不具有逻辑计算功能。

时序图如下:

如上图所示,客户端状态需要服务器同步过来,自己没有主动性,表现出一卡一卡的体验。

用户的输入需要过RTT后才能得到反馈,客户端的状态比服务器滞后RTT/2时长。

2. client Interpolation

还是使用的哑终端方式,服务器给出状态a,b;然后客户端使用ab的插值进行平滑过渡。

时序图如下:

客户端比服务器滞后RTT/2 + 包同步间隔,客户端逻辑带有内插值功能。

3. client prediction & server correction

客户端具有预测功能(和服务器具有同样的代码逻辑),服务器会将状态同步到客户端,然后客户端进行较正。这个里面细节较多,主要分2个方面

进行考虑:

a.  非本地玩家(机器人、其它远程玩家)的运动同步

时序图如下:

客户端0收到同步消息时,计算出当前服务器的状态;然后我们并不能立即用这个状态(会造成突兀抖动),需要进行插值平滑过渡到该状态。

b. 本地玩家的运动同步

时序图如下:

本地玩家端会立即响应用户输入,这样会比服务器端状态提前。当没有用户输入时,收到服务器的同步校正信息后,处理情况跟simulate模式相同。

要注意输入的时间戳和服务器发送的输入处理结果时间戳, 它们都是该客户端的本地时间。

c. 上述情况的合成时序图

将上述2个图拼在一起进行观察。

d.  我们还需要平滑地插值

为了避免出现抖动,我们都到服务器的同步校正后,不能立即设置运动状态,需要进行平滑过渡到该状态。

CS模式网络游戏的运动同步总结相关推荐

  1. 网络游戏开发之同步模式

    网络游戏开发之同步模式 网络游戏如何实现所有客户端玩家信息同步?(如吃鸡中所有玩家的位置同步) 同步模式一般分两种:状态同步和帧同步. 状态同步:状态发生变化后,客户端上传操作到服务器,服务器收到后处 ...

  2. 网络游戏的客户端同步问题 .

    有关位置同步的方案实际上已经比较成熟,网上也有比较多的资料可供参考.在<带宽限制下的视觉实体属性传播>一文中,作者也简单提到了位置同步方案的构造过程,但涉及到细节的地方没有深入,这里专门针 ...

  3. fNIRS最新研究 | 脑间和脑内耦合对运动同步的差异贡献

    导读 人类大脑支持行为的一个基本特征是它在脑区之间建立连接的能力.一种有前景的方法认为,在社交行为中,大脑区域不仅与大脑内的其他脑区建立连接,而且还与互动伙伴的其他脑区协调活动.本文探索脑间和脑内耦合 ...

  4. 计算机多媒体技术视差估计,面向立体视频的视差_运动同步联立预测算法

    <面向立体视频的视差_运动同步联立预测算法>由会员分享,可在线阅读,更多相关<面向立体视频的视差_运动同步联立预测算法(6页珍藏版)>请在技术文库上搜索. 1.第 22 卷第 ...

  5. cs模式下,显示网络图片一例

    由于在cs模式中 显示图片很简单 picturebox1.image=image.fromfile(filename) 但是filename不能是url,所以不能显示网络图片,怎么办呢? 其实 .ne ...

  6. 多线程+Socket+MFC界面库实现CS模式的云盘系统

    功能:CS 模式文件上传.下载服务器 + 客户端(轻量级的个人云盘系统) 使用方法: 保证文件夹路径E:\myLibForYunPan\data和E:\myLibForYunPan\download存 ...

  7. 什么是cs模式_CS的完整形式是什么?

    什么是cs模式 1)CS:公司秘书/计算机科学 (1) CS: Company Secretary / Computer Science) CS is an abbreviation of the C ...

  8. BS模式与CS模式的区别

    BS模式(Browser Server) 简称:浏览器服务器 意思就是客户端可以通过浏览器就可以访问服务端 只要你的电脑上装有浏览器就可以访问 不过在美工方面BS不如CS,速度也不如CS快. 如京东, ...

  9. 【Docker学习总结】11.Docker的CS模式

    前几篇总结了Docker有关容器以及镜像方面的相关知识,从本篇开始我们就升华到了宏观方向的学习,这次我们来了解一下Docker的CS模式. 在前面的学习中我们了解到,Docker是以客户端和守护进程的 ...

最新文章

  1. STL中istream_iterator和ostream_iterator的基本用法
  2. 东南大学计算机科学试验中心,受迫振动试验数据处理的研究-东南大学物理试验中心.doc...
  3. 基本CSS选择器,复合选择器,后代选择器
  4. (Spring)依赖注入
  5. CodeForces 982F. The Meeting Place Cannot Be Changed
  6. SQL注入-SQLMAP基础使用(十二)
  7. vue2+node+mysql demo总结
  8. C++语言基础 —— 函数
  9. python流处理框架_Python操作分布式流处理系统Kafka
  10. 《深入学习 Golang》并发编程
  11. 镜头分割:像素域方法综述
  12. C语言视频教程-谭浩强版-小甲鱼主讲—P1
  13. ligerui之控件列表初始化设置
  14. 什么东西可以帮助睡眠,对睡眠好的东西分享
  15. input单选框 复选框 点选不上 选不中
  16. Flex入门基础——项目item的属性(order、flex-grow、flex-shrink、flex-basis、flex、align-self)
  17. linux添加五笔输入法,Linux学习笔记(三)Centos 安装五笔输入法
  18. python sanic openapi_Sanic框架之插件sanic-openapi
  19. 多多情报通:拼多多蓝海词是什么意思?拼多多蓝海词怎么找?
  20. sum 矩阵求和 matlab

热门文章

  1. 匈牙利算法——最大匹配问题详解(附模板题)
  2. 快速完成兼职外包开发任务
  3. 2021年计算机专业课程表,2021计算机专业课程有哪些 前景如何
  4. 梦幻西游2升级计算机,《梦幻西游》电脑版官方网站 - 网易西游题材扛鼎之作...
  5. 肌肉激活度(Muscle Activation)
  6. 基于AT89C52单工串行通信系统设计
  7. linux hdmi分辨率设置方法,HDMI接口进行设置来优化显示效果详解
  8. 会员管理小程序实战开发教程-会员信息删除
  9. 基于51单片机智能路灯控制系统Proteus仿真
  10. atx和matx机箱_要性能又要颜值 MATX机箱推荐榜