帧同步总结

来源:互联网 发布:钢结构节点分析软件 编辑:程序博客网 时间:2024/06/18 01:29


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、自动操作:验证码、没有什么好方法



原创粉丝点击