Comment 9 for bug 886572

Hans Joachim Desserud (hjd) wrote :

A small update here, since I had some spare time to run some games and look at them.
First of all, I have to admit that for the previous checks I had compiled the latest development version in debug mode, while build16 was compiled in release mode. Turns out there is a large difference when compiling in release mode, which I assume is because it leaves out various debug information. When compiling in release mode wl is able to play at higher speeds without lagging compared to debug mode at least.

Secondly, I switched from testing multiplayer games with all AI players to single player games. Multiplayer games has a maximum speed (65.5x) which makes sense in that context, but is a bit cumbersome for my comparisons. Since single player games doesn't have this cap they are a lot more fit for this purpose.

Ok, so with latest bzr revision compiled in release mode vs build 16, I notice some differences. My method is mainly starting new games on a map, turn up the speed a lot, then when I notice it starts lagging or moving on the map is not as smooth anymore, turn down the speed until it is. At the same time I try to keep an eye on statistics to notice how many hours of game time it is able to keep this up.

I'm happy to say that the development version can cope with higher speeds! I noticed that if I could turn up the speed in build 16 to 150x, I could often set it to 250x (or more) . There seems to be a general rule that it can take the speed from build 16 plus an additional 100, at least initially. I haven't compared how long they are able to keep up these speeds, but they seem roughly the same (after 2 hours in-game things start lagging). Since I am doing this manually, it is also hard to pin point exactly when things start lagging and even harder to notice if the decline in speed is going faster or slower than compared to build16.

One thing I have noticed though is, as mentioned above, battles. Whenever there are bursts or short periods where the game starts lagging on higher speeds, there's attack messages printed in the terminal. By looking at it, this does not seem to affect build16 or at least not to an extent where it is noticable though. So I am not sure whether something has changed making combat slower or whether everything else has improved in general making it the weakest link. I'm afraid I don't know whether it is caused by the combat code directly, or perhaps AI attack/defense calculations happening at the same time, so it would require more investigation to figure out what exactly is causing this.

Note that the tests I have performed are very unscientific, and I haven't really looked at any profilers to get more details about what is going on. (Comment #3 suggests SirVer is using some at least, and any suggestions about tools I could look into are welcome.) It also annoys me a bit that I cannot run older replays in a newer version, which would make it easier to directly compare the same game across different versions. When starting different games in different versions they are not going to be identical and may have subtle (and not-so-subtle) differences with affect the speed. The various choices the AIs can do during a game makes it harder to directly compare them. I guess I will just have to live with the latter though, due to how replays are stored.