我要指出的是,我在我的项目中恢复了AI的确定性
…我要指出的是,我在我的项目中恢复了AI的确定性。- 一个相当隐晦的确定性错误是由于他们的编译器对一些C运行时库例程(特别是fsin/fcos和其他一些例程)的实现导致的,这些例程使用了同名的专用ISA指令。问题在于这些超越函数超出了IEEE 754规范的范围,因此它们是依赖于硬件实现的。实际上,现代的Intel/AMD芯片系列会产生位级相同的結果,但那些在《帝国时代》(Age of Empires,简称AoE)时期的芯片在结果上有一些小的差异(这一点我曾在研究时看到的一个线程中,由一位Intel工程师确认过)。- 游戏使用了一种脏更新(dirty-update)系统来进行渲染,而且其粒度是逐行的。这一点让我非常高兴,因为在这一时期的游戏中,看到这种重要的优化非常罕见(尽管在更早的时期比较常见)- 有一些“有趣”的命名约定,比如用“value”作为成员变量名的前缀——甚至还有一个“valueValue”。…
源讨论1500名弓箭手在28.8: 《帝国时代》及更远的网络编程原帖 180 条评论 · 导入时统计