我正在使用C#编写2D空间RTS游戏。单人模式可以正常运行。现在我想添加一些多人功能。我进行了谷歌搜索,似乎只有一种方法可以在没有强大网络连接的情况下让成千上万的单位不断移动:通过网络发送命令并在每个玩家处运行相同的模拟。
现在有一个问题,整个引擎都在使用双精度数。浮点计算非常依赖于编译器优化和CPU架构,因此很难保持同步。它根本不是基于网格的,并且具有简单的物理引擎来移动太空船(太空船具有脉冲和角动量……)。因此,重新编码整个内容以使用定点数将相当麻烦(但可能是唯一的解决方案)。
到目前为止,我有2个选择:
- 告别当前代码,并从头开始使用整数
- 仅在具有足够带宽以使8个玩家拥有数千个单位并在(几乎)每个帧中发送位置和方向等时,才使游戏仅限于局域网...