适用于多人赛车sim卡的扭曲扩展?

2024-09-29 19:22:44 发布

您现在位置:Python中文网/ 问答频道 /正文

你认为扭曲排列是否适合多人赛车模拟器(就性能而言)?应用程序的其余部分基于pythonogre。在

透视代理能否运行(可靠?)UDP协议?在


Tags: 应用程序协议代理模拟器性能udp赛车pythonogre
2条回答

对于你的第一个问题,是的,PB的性能完全可以满足实时游戏的需要。已经用PB编写了几个游戏。例如,MV3D使用Twisted和Python食人魔来呈现一个共享的物理模拟。在

对于您的第二个问题,PB运行在面向流的传输上。它可以在“可靠UDP”之上运行,使用vertex附带的PTCP模块。在

但是,您应该知道,“可靠UDP”通常会比普通的旧TCP性能差得多。因特网上的路由器都理解TCP,并且可以利用这种理解来优化它。如果您在UDP之上实现可靠性,那么您必然需要实现与TCP功能等效的功能,那么有几个因素会对您不利:

  • 可靠性的实现必须在应用程序中运行,而不是在操作系统内核中运行。在
  • 您的TCP实现必须执行与TCP相同的工作,否则您将在意外的网络环境中遇到神秘的错误。在
  • 沿途的路由器不能为你的自定义可靠性层进行优化

在某些情况下,可以使UDP“更快”的是通过不可靠的放弃TCP所做的许多工作。如果您的消息传递层不可靠,那么您必须知道它传递的数据可以被任意丢弃。在

通常,适合在游戏中通过UDP传输的数据是移动数据。当你的位置发生变化时,你可以发送一个UDP数据包,它可以被丢弃,因为游戏只关心你最近的位置-一旦收到更新,所有先前的位置都不相关。许多游戏通过一个(不可靠的)UDP通道发送运动数据,然后所有的控制消息都通过一个更可靠的TCP通道。在

但是,Jean-Paul关于优化的回答很好地表明了您何时需要考虑实现优化。在

这几乎可以肯定是一个合理的协议开始。记住优化的基本原则:不要这样做。使用任何基于TCP的协议将比使用任何基于UDP的协议容易得多。最初,这对于项目的成功要比在客户机和服务器之间发送消息需要30毫秒还是45毫秒要重要得多。最终,当你明白你的项目可能会成功,你真的需要弥补这15毫秒(或多少毫秒)的时候,你可以重新审视网络层,考虑性能瓶颈(不管是延迟还是其他指标)是否是由于你选择的协议造成的。如果是这样的话,那就是花时间评估各种备选方案的时候了。只有在这一点上,选择理想协议的努力可能会有回报(因为你离一个已完成的项目更近了),到那时,你将大大提高对问题的理解,并且应该非常明确地确定你的要求,另外两件事将使选择的任务变得更加重要合适的协议(无论是基于TCP还是UDP)更容易而且更可能是正确的。在

相关问题 更多 >

    热门问题