帧同步总结


1、确定性

a、随机数:自己写随机函数,服务器提供随机种子

b、浮点数:如果需要运行在不同的机器上,需要使用定点数

c、未初始化变量:某些第三方库在不同的架构上,变量的默认值不一定相同

d、执行顺序:dictionary,table(lua),Raycast返回的结果 顺序不保证

e、本地数据:逻辑顺序需要与玩家无关

f、帧率:不能使用显示帧率,逻辑与显示完全分离,保证逻辑帧的稳定

g、第三方库:最好不要用没有源码的第三方

h、update:monobehaviour的update不能保证顺序,需要逻辑层统一做update

2、流畅性

a、插值:显示与逻辑分离,显示帧率根据机器调整,同时做插值

b、网络连接:延迟要求高的游戏使用udp,一次发送多个帧的数据减少丢包重传,某些地区udp连接不上,切换到tcp

c、jitterbuffer

d、位置抖动:

    I、对position变化做阈值(<0.01不更新)判定

    II、运动插值,在LateUpdate中更新Position

    III、如果摄像机移动有速度,需要将速度和Time.dealtTime联系在一起,且速度最好匀速

    IV、在图像资源的制作过程中使用各种滤波函数来模糊图像(http://gad.qq.com/article/detail/5767)

    V、在导入资源时设置滤波模式为bilinear或者trilinear

    VI、Unity的sprites/Default 这个shader带有一个Pixel snap选项,选上该选项,sprite在渲染时,其顶点位置将snap到整数倍像素位置,从而保证整个sprite能以整数倍像素大小移动


    VII、相机位移像素取整

3、外挂

a、修改属性:上传当前状态的hash值,战斗核心在服务器运行逻辑验证

b、透视:使用状态同步控制

c、自动操作:验证码、没有什么好方法



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值