我正在用 C# 编写一个 2D 空间 RTS 游戏。单人游戏有效。现在我想添加一些多人游戏功能。我搜索了一下,似乎只有一种方法可以让数千个单位在没有强大网络连接的情况下连续移动:只通过网络发送命令,同时在每个玩家身上运行相同的模拟。
现在有一个问题,整个引擎到处都使用双精度。浮点计算在很大程度上取决于编译器优化和 cpu 架构,因此很难保持同步。而且它根本不是基于网格的,并且有一个简单的物理引擎来移动太空船(太空船有冲量和角动量......)。因此,将整个内容重新编码以使用定点将非常麻烦(但可能是唯一的解决方案)。
所以到目前为止我有两个选择:
- 告别当前代码并使用整数从头开始
- 仅在有足够带宽的情况下制作游戏 LAN,以容纳 8 名拥有数千个单位的玩家,并在(几乎)每一帧中发送位置和方向等......
所以我在寻找更好的意见,(甚至是关于将代码迁移到定点而不搞乱一切的技巧......)