Loading...
  OR  Zero-K Name:    Password:   

Post edit history

State of optimisation - game speed

To display differences between versions, select one or more edits in the list using checkboxes and click "diff selected"
Post edit history
Date Editor Before After
3/17/2018 6:05:32 AMAUrankAdminGoogleFrog before revert after revert
Before After
1 I hear rumors of a drop but received no good report. 1 I hear rumors of a drop but received no good report.
2 \n
3 In general, there is very little I can do to directly impact performance. I frequently profile the code within my jurisdiction and fixed most of the worst offenders years ago. The playerlist widgets are still a bit terrible but the small one runs fairly well, the extended one is not enabled by default, and the pop-up one only tanks your FPS when/if you actually look at it. If a game is running slowly I'll often enable the lua profiler and see that most of the widgets and gadgets are running about as well as can be expected. The lua changes of the past years have been minor and a lot has been in optimization.
4 \n
5 Two of the biggest impacts on performance (according to the lua profiler) are the UI framework and the lua particle system. I have only placed these partially within my jurisdiction because I don't have the experience to judge the reasonableness of their openGL parts. From what I've seen they look fairly reasonable and it makes sense to me that they would have a more noticeable performance impact than background widgets and gadgets. If anyone wants to have a look then there are probably some gains to be made.
6 \n
7 The engine itself is the place to look for performance improvements. There are three approaches:
8 * Fix behaviour that ZK replaced with lua.
9 * Fix regressions.
10 * Work on improvements.
11 \n
12 A lot of engine behaviour is broken or lacks polish. For example the move command is now implemented in lua in ZK because otherwise units move in zigzag lines over medium distances and can become permanently stuck. Lua is surely slower than the engine.
13 \n
14 The engine has had many longstanding performance regressions in its history. The worst persisted for over two years, during which we did not update ZK to use any newer engine version. It took a very long time to even prove to the devs that this regression existed. There have been a few other regressions which required the community to use the benchmarker to gather enough data for a fix. I don't know how much testing goes on but, if the bugs that reach me are any guide, it seems that engine development had no regression testing for performance. This is understandable because nobody is employed and such testing takes a long time. I don't know of any benchmarks beyond mine and they can take a long time to maintain and run. I ran some cut-down versions this afternoon and didn't find anything.
15 \n
16 The last option is to improve the engine code in some way with an eye for performance. From looking at their github I get the impression that the engine devs do this, but I have not seen data to suggest that many of the improvements work. In my (biased) experience these changes are terrifying because many of the regressions were the result of messing with threading or memory management for performance reasons.
17 \n
18 I don't have plans to improve performance because I don't have plans to get into engine development any time soon. However, the rumors of a regression started about two weeks ago and I updated the engine around three weeks ago. I have reverted the engine to the pre-update version (104.0.1-151-g11de57d) to see if people start reporting any changes.
19 \n
20 [quote]We all have decent modern computers from 2-3 years ago, and surely a project that dates over 10 years ago should have no problems with running smoothly on such machines, even kinda big battles like with chickens.[/quote]Invoking age is a fallacy. People keep adding new graphics things (shaders, deferred rendering) and the engine is under constant development. If we demanded proper regression testing for engine development there would probably be no engine development. Therefore, performance is going to constantly be slightly better than whatever level causes widespread complaints.
21 \n
22 [quote]I did set to Max settings tho. [/quote]
23 @[pikts]wolas if you're using max settings then maybe you'd better reduce them. Sounds simple enough to me.
24 \n
25 I paid a lot of attention to settings at one point and have not really messed with them since. Fixing settings further requires a lot of data.
26 \n