lockstepserver
lockstepserver copied to clipboard
golang版帧同步服务器
依赖下载问题~
建议增加补帧逻辑
客户端丢帧的话,可否支持主动补齐丢失的帧,比如从第n帧开始到最新的。类似这样的接口
在客户端连上来后发起MSG_Connect消息后,conn里得callback被room的callback接管了,之后用户断开连接,也无法执行lockstepserver里得onclose方法来修正人数
咱们的服务端测试都ok,DataLen=4 您的Unity客户端做了如下修改 var bID = temp.GetRange(0, 4); bID.Reverse(); var len = BitConverter.ToUInt32(bID.ToArray(), 0); 读出来的值超大,求教问题所在
一些疑问
为什么要限制玩家在一帧中只能输入一次操作,看其他帧同步项目,基本没有这个限制。 ` func (l *lockstep) pushCmd(cmd *pb.InputData) bool { ... //检查是否同一帧发来两次操作 for _, v := range f.cmds { if v.Id == cmd.Id { return false } } ... ` 空帧为什么不马上广播,客户端是需要空帧来驱动前进的。...
协议可简化
我定义的帧同步服务器协议如下,可以讨论下: ``` /* 客户端服务器之间仅需通过kcp收发消息,没有实现grpc *\ // 中继服提供的房间中继接口,用于向客户端提供服务。 service Relay { rpc EnterRoom (EnterReq) returns (EnterResp) {} // 玩家动作 rpc Act (stream ActMsg) returns (ActResp) {} // 帧广播 rpc Tick (TickReq)...