我正在通过UDP实现联网小行星。我打算限制客户端发送的用户输入消息为变化。因此,只有在箭头键或空格键上存在键或键时才发送消息。这将大大减少从客户端发送的数据包数量。在网络游戏中通过UDP发送键盘输入
但是,现在我已经重读了Gaffers关于网络物理的文章和他关于使UDP消息可靠的更复杂的一个我正在反思。他指出:
The key to making this input stream tolerant of packet loss and out of order delivery is the inclusion of a floating point time in seconds value with every input rpc sent. The server keeps track of the current time on the server and ignores any input received with a time value less than the current time. This effectively drops any input that is received out of order. Lost packets are ignored.
所以,如果一个数据包丢失是不关心。现在我正在想,指示keydown向前推进船的重要数据包可能会被丢失,并且永远不会怨恨,从而打破游戏。
我,因此我说得对客户端,而不是被迫派遣更多的定期(高达每物理学更新,每秒50次)转储实际键盘的状态而不是国家改变以配合这容忍丢包的方案?还是有更高尚的方式?
这是网络多人游戏中最困难的事情之一。没有适用于每场比赛的通用解决方案。许多动作游戏使用近似和预测这些东西。之前我已经编制了一款多人跳板/打砖块/乒乓球克隆,而且很难流利地做到这一点。像素动作游戏通常在定位方面要求相当高的准确性,但也要求定时。 – 2012-04-05 07:29:12
游戏将在我的家庭网络CAT 5E或大学校园播放。我的滞后性会很低。目前使用C++进行测试的时间<3 ms。 – ScrollerBlaster 2012-04-05 07:47:39