Things in the server code room over the past year (but really, the past month more than anything else) have been hectic, but I suppose that the changes should also be listed here as well, for posterity.

Overall, on Star Conquest, this pretty much meant a 66% reduction in CPU utilization, though before all of the performance improvement changes were put in we were running over 120 simultaneous AI pilots in a sector without the server missing a beat.

Some time since the post in August of last year we added scattered_isa() which is sort of a bulk/multi-target isa operation. It’s actually a lot more useful than it probably sounds at first.

Updated the autoconf scripts to work with modern versions of autoconf.

Removed pgperf and changed the build environment to work with modern versions of gperf, which now has case insensitive operation — pgperf hasn’t compiled properly in some time, as far as I know.

The server was rebased to the experimental LambdaMOO 1.8.4, which had some pretty significant fixes overall — primarily in memory leaks and increased performance.

The RNG engine was switched from libc’s built-in random() to SFMT, and now it operates in pool generation mode, which makes random number generation overall DRAMATICALLY faster. Also included is the generation of a ‘true’ floating point random number function. Overall, this is more of an improvement in performance than it sounds — even in the first version without pooling there was a 5% increase in random() speed, but the pooled mode is where stuff really shines.

Improved the floating point suspend stack over previous builds; it’s now accurate (in theory) to the microsecond, whereas before the MOO couldn’t handle much more beyond a tenth of a second in accuracy, and as server load increased, it became increasingly inaccurate. We feel that in a game like Star Conquest, these sorts of problems are unacceptable.