我如何保证.NET应用程序中的浮点计算(比如在C#中)始终产生相同的位精确结果?特别是在使用不同版本的.NET并在不同平台上运行时(x86 vs x86_64).浮点运算的不准确无关紧要.
在Java中我会使用strictfp.在C/C++和其他低级语言中,这个问题基本上是通过访问FPU/SSE控制寄存器来解决的,但这在.NET中可能是不可能的.
即使控制了FPU控制寄存器,.NET的JIT也会在不同平台上生成不同的代码.在这种情况下,像HotSpot这样的东西会更糟糕......
我为什么需要它?我正在考虑编写一个实时策略(RTS)游戏,它在很大程度上依赖于快速浮点数学和锁定步进模拟.基本上我只会通过网络传输用户输入.这也适用于通过存储用户输入来实现重放的其他游戏.
不是一个选择:
有任何想法吗?
我想开始修改RTS AI,但我很难找到一个合适的环境,即一个已经创建的游戏.我看过Spring RTS和Bos Wars,但它们似乎不利于创建简单的例子.
我并不完全反对编写我自己的游戏环境,这需要很长时间.有没有人建议我如何在不编程自己的游戏的情况下弄湿脚?
我是一个伟大的蟒蛇粉丝.最近我想到了写RTS引擎和/或基于这个引擎的简单RTS游戏.我需要考虑几件事情,也许你可以给我一些建议:
提前致谢!