菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
151
0

帧同步相关

原创
05/13 14:22
阅读数 18931

  • http://gad.qq.com/wenda/activity/10016?sessionUserType=BFT.PARAMS.236740.TASKID&ADUIN=1397601311&ADSESSION=1505959700&ADTAG=CLIENT.QQ.5533_.0&ADPUBNO=26719

  • 请教帧同步问题

    您好!跟您请教几个问题:1.帧同步预判玩家输入缓解延时的实现思路是什么?2.photon提供的定点数库和物理引擎的确定性靠谱吗?3.udp丢包补发用tcp补发还是udp补发好些?

    用户头像 腾讯客户端专家 邓涛回答了该问题 54分钟前
    -------------------------------------------------------------------------------------------
    1.帧同步预判玩家输入缓解延时的实现思路是什么?
    看下这个问题的回答,跟你的类似
    http://gad.qq.com/wenda/detail/10752
    -------------------------------------------------------------------------------------------
    2.photon提供的定点数库和物理引擎的确定性靠谱吗?
    抱歉,我没测试过它的定点数和物理引擎,但是有不少商业游戏在用,可靠性应该有一定的保证。
    -------------------------------------------------------------------------------------------
    3.udp丢包补发用tcp补发还是udp补发好些?
    用什么补发其实都可以
    工程实现上,换一个连接发稍微麻烦一点
    偷偷告诉你,王者是用udp补发的
    收起回复>>
  • 用户头像 +++++Roll+++++++++++++++提出了问题 3小时前

    怎么解决封号问题,你们一般都是判定什么依据,学习下

    过来偷师

    用户头像 腾讯客户端专家 邓涛回答了该问题 2小时前
    对于是否外挂的验证,帧同步其实有个比较完美的方法,把逻辑内核做到服务器,输入数据服务器自己有,重算一遍,以它的结果为准就好。 当然,前提是一致性的问题要解决。
    对于没有完美方案的情形,我们是怎么做的呢?
    投票。
    大家的结果报上来,胜负分两边,少数服从多数。
    胜负两边一样呢?看信用度,(你要是经常跟大多数人不一样,我会怀疑你喜欢用外挂哦)
    实在分不来,那就只能作废了。
    1v1的问题已经在上面回答了。
    收起回复>>
  • 用户头像 我来了提出了问题 2小时前
  • 用户头像 ℃ζíΜAx提出了问题等待付重钦回答 2小时前

    关于“服务器”转发帧的问题

    帧同步有个帧收集的过程,需要“服务器”转发。 这个帧转发主要是收集客户端什么样的信息让服务器转发 服务器那边转发的帧怎么客户端才保持同步? 如果中间客户端断线重连回来怎么样才能通过服务器转发过来的帧保持同步,如果单客户端网络出现卡顿会不会影响到其它客户端. 有没...

    用户头像 飞非回答了该问题 1小时前
    这个帧转发主要是收集客户端什么样的信息让服务器转发?
    主要是收集玩家操作指令。服务器在一个逻辑帧收集所有玩家的操作指令,合并成一个帧包,分发给各个客户端。
    服务器那边转发的帧怎么客户端才保持同步?
    客户端永远只用服务器发来的帧包作为驱动依据,在初始值相同的情况下。各个客户端的行为会保持同步。
    如果中间客户端断线重连回来怎么样才能通过服务器转发过来的帧保持同步,如果单客户端网络出现卡顿会不会影响到其它客户端.
    断线重连,需要重新初始化和执行所有的帧包。其它客户端的卡顿不会影响同步,但是会让自己上发的操作指令出现丢失或者延迟。
    收起回复>>
  • 用户头像 悠悠仔提出了问题 2小时前

    断线重连丢掉的udp数据包怎么处理?

    断线重连是通过tcp将丢掉的数据包重新发给客户端吗?

    用户头像 腾讯客户端专家 邓涛回答了该问题 2小时前
    其实用什么无所谓,关键是要确保数据正确发到客户端,至于如何保证,最后再说,我们先讨论发什么。
    为什么要讨论发生,是因为帧同步和状态同步发的内容在某个语义层面上是不一致的。
    简单说:
    状态同步发的是服务器当前的结果数据。
    帧同步发的是客户端掉线以后到服务器当前帧的过程数据。
    如果保证数据正确发送到客户端呢?
    1.TCP
    2.可靠性UDP
    UDP的可靠性,可以建立在传输语义层面,实现出来的模型原理跟TCP差不多。
    也可以建立在业务语义层面,比如帧同步,每个过帧输入包是带帧序号的,少了一个业务层是知道的,请求重发。
    当然,还有一些技巧来降低udp在业务语义层的丢包概率,原理上是一个数据包多发几次,那么这个包丢失的概率就低了。
    收起回复>>
  • 用户头像 RICO提出了问题 2小时前

    帧同步如何保障一致性

    想了解下有什么机制来验证一致性。毕竟浮点,随机数,物理系统等等都有可能造成不一致

    用户头像 腾讯客户端专家 邓涛回答了该问题 1小时前
    我们真做了一个通用框架来帮助开发同学检测和分析不一致性
    --------------------------------------------------------------------------------------------
    原理上大致如下:
    1.定义个逻辑帧状态的切片(FrameStateSnapshot),帧切片里面是游戏对象的状态以及本帧发生的事件。
    2.每个逻辑帧跑完,生成本帧的切片
    3.将帧切片序列化成一个二进制串
    4.可选:将二进制串生成MD5
    5.可选:将MD5码和帧序号发送给服务器,服务器可以通过这个MD5码判定每个客户端的帧切片是不是一致
    6.将帧切片的二进制串保存到本地文件(也可以带MD5)
    7.打完一场之后,生成了一个状态录制文件
    比较各个客户端所录制的这些数据,可以知道哪帧不一致,这个帧里面哪个数据不一致了。
    --------------------------------------------------------------------------------------------
    收起回复>>
  • 用户头像 祈祷提出了问题 7小时前
  • 用户头像 青猫提出了问题 2小时前

    帧同步环境下的AI处理

    基于前面的回答,服务器在帧同步的情况下本身只是转发动作帧,那么在场景中的ai小兵或者野怪的动作是如何确定唯一性呢,是以某个客户端的模拟为准还是有其他实现呢

  • 用户头像 EvilGenius提出了问题 2小时前

    帧同步中玩家断线重连怎么处理

    玩家断线重连之后应该怎么处理,或者说玩家中途加入游戏,应该怎么处理,之前所有指令全部发送给该客户端吗

    用户头像 腾讯客户端专家 邓涛回答了该问题 47分钟前
    1.断线重连(假定没crash)
    客户端告诉服务器我当前跑到第n帧了,服务器把第n帧到最后一帧这个区间的数据发给客户端
    2.断线重连(crash或者上下文清理掉了)
    服务器下发初始数据 第0帧到当前帧的数据
    3.中途加入
    如果不是第二种情形的话,而是你本来不在里面,想加入一个已经开始的游戏,这个做起来比较困难,虽然有办法可以做,建议你把帧同步的问题全部搞定之后再来考虑这个问题。
    收起回复>>
  • 用户头像 simon提出了问题 2小时前

    关于帧同步的移动

    请问比如前端控制向上移动: 从移动开始到结束这段时间里的所以帧里都要像服务器广播上移动的指令吗? 还是只发送开始移动和停止移动2个指令呢?

    用户头像 gavindong回答了该问题 2小时前
    两种做法都没问题,不过在弱网的适应性上有些差异
    每帧都同步的话,可能导致弱网下走走停停
    只同步启动和结束的话,可能导致停下时位置走得过远的问题
    常见的做法以第二种居多,但还是结合你们的网络要求、协议设计、帧缓存策略甚至是玩法需求等因素一起考虑比较好,先实现一种之后结合具体的问题优化吧
  • 用户头像 Θ清水流枫Θ提出了问题等待邓涛回答 2小时前

    技能同步

    如果一个技能打击过程很长,过程中存在位移,那么这个技能是如何同步,使每一个客户端看起来效果都是一样的呢? 这个问题其中包含了几个小问题: 1、释放技能过程中位移是如何进行同步的呢,有没有包含技能一起同步,如果没有,位移过程中打击过程如何确保多个客户端是一致的;...

  • 用户头像 amazonove提出了问题等待邓涛回答 2小时前

    同步数据发送和接受

    能简单说说数据是怎么在客户端和服务器端之间流动的吗 客户端怎么把接受到的数据应用到本地的某个对象身上啊 比如方法调用 属性变更 数据以什么格式传递 多个对象的数据怎么组织怎么传送

    用户头像 悠悠仔回答了该问题 2小时前
    1、服务器给所有的对象编号,客户端对应存储一个字典dic【id,actor】,客户端通过服务端数据包里的id字段获取对象actor(控制模型的脚本),然后更改actor的属性。
    2、数据包可以随意组织,缺什么数据添加什么数据。
    3、如果不熟悉socket通讯,可以先了解一下socket
  • 用户头像 提出了问题 2小时前

    求推荐一份稳定可靠的同步框架

    再多的提问也只能解决非常小的一部分问题,老师有木有现成的稳定可靠的同步框架。

    用户头像 腾讯客户端专家 邓涛回答了该问题 1小时前
    看下ulink或者photon吧
    使用的商业游戏也不少
  • 用户头像 陈裕提出了问题等待邓涛回答 6小时前

    unity帧同步中动画的问题

    unity5中的动画系统应该是不能用在帧同步逻辑帧上面的,现在的做法是逻辑帧切换逻辑对象的状态,比如移动,攻击,待机,这类迅速切换不需要等待的动画好处理,但比如动画中需要等待动画完成再去执行逻辑,比如变形动画,在变形动画结束之后才可以攻击,移动之类的,这个在帧同步中怎么去...

  • 用户头像 灰色印记提出了问题 7小时前

    网络同步

    手游版火影忍者是 如何同步的啊? udp 直接发送? 还是服务器转发?

    用户头像 腾讯客户端专家 邓涛回答了该问题 6小时前
    1.火影用的帧同步
    2.用的udp,跟王者类似 (udp带冗余)
    3.帧同步有个帧收集的过程,需要“服务器”转发,理论上可以像星际那样,其中一台机器做服务器,但是现在的网游都是以服务器转发的 ,一方面服务器更好收集过程信息,另一方面,也更稳健,万一做主机的客户端网络不好或者崩溃了呢

发表评论

0/200
151 点赞
0 评论
收藏