首页 > 其他分享 >物理引擎的网络同步方案

物理引擎的网络同步方案

时间:2022-08-18 11:33:48浏览次数:90  
标签:同步 网络 玩家 引擎 定点数 物理

参考知乎:https://zhuanlan.zhihu.com/p/341447703

外网:https://gafferongames.com/categories/networked-physics/

一个基于C#的3D定点数物理引擎:https://github.com/sam-vdp/bepuphysics1int

火箭联盟物理系统、网络同步讲解:

 

今天在跟龙哥讨论物理同步的时候,提到一个问题。有物理互动的游戏场景,应该如果进行网络同步?

 

 假设有如图的场景,球接近A玩家,A玩家踢了球,而B玩家的网络卡顿了,对A玩家来说,他踢了球,而对B玩家来说,A玩家还没踢到球,

这就导致了逻辑上的不同步。而Unity3D的物理引擎,又是蝴蝶效应的,只要有一点偏差,最终结果会演算成完全不同的样子。

 

这就需要需要解决两个问题:

1.物理引擎必须保持一致性,在不同平台,不同机器,不同时间,对物理引擎输入同样的参数,输出的结果必须一模一样

2.不同玩家的本地物理引擎输入必须完全一致,比如A玩家往前走一步,B玩家里的A玩家也必须在同一时刻往前走一步,不能有任何延迟

 

对于问题1,就是采用定点数的物理引擎,因为浮点数,不同机器精度不同,稍微有一点点的误差,会导致结果演算完全不同,而定点数解决了这个问题。

U3D自身的物理引擎好像不支持修改为定点数,所以一般采用开源的第三方物理引擎自己修改。

问题2,

 

 

 

参考:

 

C  [siː]  详细X 基本翻译 symb. 碳 (carbon) n. 字母C abbr. 可数名词 (countable noun) 网络释义 维生素C: Vitamin Vitamin C: 维生素C LDL-C: 低密度脂蛋白胆固醇

标签:同步,网络,玩家,引擎,定点数,物理
From: https://www.cnblogs.com/jeason1997/p/16598097.html

相关文章

  • javascript 执行机制(同步、异步、微任务、宏任务)
    一、关于javascriptJS是一门单线程语言,这意味着所有的任务都需要排队,前一个任务结束才会执行后一个任务如果前一个任务耗时很长,后一个任务就不得不一直等着。这样所导致的......
  • 多线程.线程同步
    同步方法:synchronized同步块:synchronized(Obj){}并发:多个线程操作同一个资源队列和锁每个对象都有一个锁,sleep不会释放锁由于同一进程的多个线程共享同一块存储空间......
  • CAN 位同步
    前言CAN总线相对于其他通信有个优势,当发送的信息遭到破坏后,可自动重发。CAN使用位同步可以确保通信时序,实现数据的正确传送CAN的位时序CAN的位时序分解成4个段:同步段......
  • nginx 文件同步方案
    由于公司有多套相对独立测试环境,每次迭代上线后,需要对nginx进行同步。同步主要分为html目录文件同步和nginxconf文件同步。html的同步方式比较简单,对于没有特殊需求的环境......
  • 全文搜索引擎 Elasticsearch 入门
    注:本文转自:https://mp.weixin.qq.com/s/npXpXgiLZxTV93YgykInwg全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称Elastic)是目前全文搜索引擎的首选。 它可以......
  • Canal 数据同步 到 Kafka Canal 配置2
    配置canalvim/opt/module/canal/conf/canal.properties##########################################################commonargument###############......
  • infowear下拉同步
    importosimportsubprocessimportsysimportuiautomator2asu2importtimeclassLogger(object):def__init__(self,fileN="Default.log"):self.terminal......
  • AI与物联网架构:从智能引擎到物联网平台 节选
    一种是大数据底层技术,指的就是各种大数据计算框架、存储系统、SQL引擎等等,这些技术比较通用,经过十几年的优胜劣汰,主流的技术产品相对比较集中,主要就是我上篇专栏讨论的Ma......
  • Linux同步网络时间
    CentOS服务器1、获取当前系统时间#date2、安装ntp#yum-yinstallntp3、修改时区#ln-sf/usr/share/zoneinfo/Asia/Shanghai/etc/localtime4、同步网络时间#ntpd......
  • 物理层
    物理层作用尽可能屏蔽传输媒体和通信手段的差异,使数据链路层只需完成本层协议和服务完成传输方式的转换​概念通信的目的是传送消息(message),数据(data)是运送......