如题,要开发多人act对战游戏,我采用帧同步策略,但是在本机测试的延迟都高的离谱,这肯定是有问题呀。
求大佬分析分析我的设计方案是否存在问题
设计方案如下:
假如有两个人相互对战,每个人的客户端上初始化两个玩家场景player1,player2
服务器只起到中转玩家操作的作用
服务器与客户端的物理帧率都设置为15fps
客户端会在physics_process中,依次执行下面的操作。
1.从接收队列中取出服务器发来的操作包,为每个player节点执行操作。
2.将玩家产生的操作,打包发送给服务器,即便没有操作,也要发送空包(rpc函数)
3.清空玩家操作序列服务器
服务器会在physics_process中,依次执行下面的操作。
1.将接收队列中,来着两个客户端的操作整合打包。队列中可能存在多个操作(因为网络延迟,两个包近乎同时到达),此时只取第一个,并pop
2.将操作包发送给两个客户端(rpc函数)
下图是客户端(图5)与服务器端(图123)的主体代码,以及rpc函数(图4,6)[图片][图片][图片][图片][图片][图片]
求大佬分析分析我的设计方案是否存在问题
设计方案如下:
假如有两个人相互对战,每个人的客户端上初始化两个玩家场景player1,player2
服务器只起到中转玩家操作的作用
服务器与客户端的物理帧率都设置为15fps
客户端会在physics_process中,依次执行下面的操作。
1.从接收队列中取出服务器发来的操作包,为每个player节点执行操作。
2.将玩家产生的操作,打包发送给服务器,即便没有操作,也要发送空包(rpc函数)
3.清空玩家操作序列服务器
服务器会在physics_process中,依次执行下面的操作。
1.将接收队列中,来着两个客户端的操作整合打包。队列中可能存在多个操作(因为网络延迟,两个包近乎同时到达),此时只取第一个,并pop
2.将操作包发送给两个客户端(rpc函数)
下图是客户端(图5)与服务器端(图123)的主体代码,以及rpc函数(图4,6)[图片][图片][图片][图片][图片][图片]