【发布时间】:2015-03-31 20:14:00
【问题描述】:
为我的第一个网络游戏阅读了很多关于此的内容,我了解 TCP v UDP 的保证交付与交付时间的核心区别。我还阅读了完全相反的观点,即实时游戏应该使用 UDP 还是 TCP! ;)
关于丢包问题的处理方法,无人问津。
TCP :阅读一篇使用 TCP 的文章,了解 FPS 建议仅使用 TCP。使用 TCP 客户端输入的权威服务器将如何处理数据包丢失和突然的史诗般的延迟峰值?游戏是否只是暂停片刻,然后从中断的地方重新开始? TCP 数据包丢失是不是非常少见,以至于实际上并不是什么大问题,而且基于 TCP 的 FPS 实际上运行良好?
UDP:另一篇文章建议只使用 UDP。显然,像“手榴弹投掷”这样的一次性 UDP 事件不够可靠,因为它们有时不会触发。您是否必须手动实现消息接收、重新发送协议?还是其他解决方案?
我的游戏是一个基于滴答的权威服务器,从服务器到客户端的更新时间为 1/10 秒,本地模拟使事情看起来更具响应性,尽管这个问题适用于更多的应用程序。
【问题讨论】:
标签: networking tcp udp packet-loss