惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
月光博客
月光博客
The Last Watchdog
The Last Watchdog
T
Tenable Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
Simon Willison's Weblog
Simon Willison's Weblog
V
Vulnerabilities – Threatpost
F
Fortinet All Blogs
Microsoft Security Blog
Microsoft Security Blog
A
Arctic Wolf
云风的 BLOG
云风的 BLOG
Know Your Adversary
Know Your Adversary
P
Palo Alto Networks Blog
GbyAI
GbyAI
阮一峰的网络日志
阮一峰的网络日志
The GitHub Blog
The GitHub Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
MyScale Blog
MyScale Blog
B
Blog
Spread Privacy
Spread Privacy
S
Schneier on Security
Project Zero
Project Zero
L
LINUX DO - 热门话题
M
MIT News - Artificial intelligence
F
Full Disclosure
WordPress大学
WordPress大学
Apple Machine Learning Research
Apple Machine Learning Research
Cyberwarzone
Cyberwarzone
AWS News Blog
AWS News Blog
aimingoo的专栏
aimingoo的专栏
博客园 - 三生石上(FineUI控件)
C
Cybersecurity and Infrastructure Security Agency CISA
Hugging Face - Blog
Hugging Face - Blog
Security Latest
Security Latest
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Tailwind CSS Blog
K
Kaspersky official blog
Recent Announcements
Recent Announcements
NISL@THU
NISL@THU
Cisco Talos Blog
Cisco Talos Blog
S
Securelist
P
Privacy & Cybersecurity Law Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
The Exploit Database - CXSecurity.com
V
Visual Studio Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Webroot Blog
Webroot Blog

博客园 - BackSword

unity ui canvas shader texcoord.zw is not used for ui particle 问题记录,unity shaderlab 模版写入问题 textmeshpro 放大缩小出现黑色边框问题,修改shader FXAA 在桌面平台更高效的原因,MSAA在手机端更高效 glados优惠码 C# Array.Fill 值类型优化。 git 设置github代理 unity physics bug win10 ctrl+space 快捷键冲突问题 msvc C++编译链接 切线空间 c++局部静态变量是线程安全的 c++函数参数和返回值 c++返回值不能是右值对象 分享mkgmttime自实现功能。 关于socket通信中大小端转换问题 wpf clickonece 坑 [修复] 启动期间超频失败的错误信息 template return value error C2440: “初始化”: 无法从“const T”转换为“const Player *&”
状态同步
BackSword · 2022-12-26 · via 博客园 - BackSword

状态同步

状态同步

  • 服务器每隔100ms 处理一次客户端的输入,并转发状态给其他客户端
  • 客户端预先模拟,而看其他的客户端是过去时100ms之前的状态插值
  • 当产生伤害计算的时候,需要根据时间戳来获取那个时刻的客户端状态,不可超过配置的ms时长(打1s之前的人,对1s之前的人是不是不公平),如果超过则网络误差太大,则判断为失效。
  • 玩家看其他玩家是过去的一个虚影,当玩家和另一个玩家有碰撞阻拦的情况下,是无法拦住过去的虚影的。
  • 击中其他玩家的时候,因为是过去状态的虚影,而通过客户端可以表现动画,但是服务器决定是否命中,当对方玩家延迟和丢包率很高的情况下,只能用很简单的计算方式来算对方的位置,有误差,并不一定准确(服务端)
  • 当网络抖动的情况下,另一个客户端看他其他玩家会出现多次的拉扯。(平滑需要把其他玩家的延迟加大,验证更难了)
  • 如果给当前客户端的网络其他玩家加上输入预测,在丢包率严重的情况下,拉扯会特别大。
  • 服务器验证失败的情况下,需要把客户端归位到服务器的状态。
    • 本地客户端,因为是先模拟的,如果网络延迟很大,本地客户端已经走到8帧,第0帧服务器报告错误,告诉客户端当前0帧错误,归位,客户端需要缓存1~8帧的输入,模拟到当前的状态。
    • 本地客户端的其他网络玩家,其他玩家的数据本身就是服务器转发过来的,所以不会出现模拟错误的情况。

posted @ 2022-12-26 15:51  BackSword  阅读(134)  评论()    收藏  举报