@陈裕 “关于'乐观锁'的问题”

3回答

@陈裕 “关于'乐观锁'的问题”

提问者 斧子 2017-07-21 289浏览
当有一个玩家延迟较大,服务器“放弃”这个客户端之后,这个客户端在之后还怎么和其它玩家同步,对于服务器来说,依旧是只保存操作指令而不保存单位状态信息吗?

快来消灭0回答吧

{{ dataList.answer_count | view-format }}回答
  • leofang 2017-07-21 14:56
    专家回答
    看你说“乐观锁”,估计你用的是帧同步,如果是帧同步的话,服务器是不管状态信息的,只是按帧转发指令。如果有玩家延迟较大,那么后面的接到指令后要它做追帧处理。如果这个玩家是杀了进程重新进游戏,那它是要从头开始快播所有指令到当前状态的。帧同步的关键就是,所有玩家初始的状态相同,在同一个帧接到相同的输入,后状态也必须是一样。
    4评论
  • conanshao 2017-07-21 14:47

    如果是帧同步的方式,那么一定是要等玩家所有的包接收到,才会进一步往下演算。

    如果是状态同步的方式,超过一定延迟,也就是说一段时间没有收到客户端的消息,就已经可以认为是掉线,就可以按照掉线处理。


    0评论
  • 乌拉拉:) 2017-07-21 09:50
    有道理
    0评论
  • {{ answer.user.NickName }} {{ answer.profession }} {{ answer.created_at | time-format }}
    专家回答
    {{{ answer.answer }}}
    {{ answer.answer_count | view-format }}评论
加载中... 查看更多回答