Sometime in the past two releases, it seems that endgame drags to a complete halt on my machine. The biggest identifiable pattern is "lots of stuff happens on the screen", but that's not helpful information. So, I'd like to have a hack at trying to figure out what's going on myself. That said, I'm hitting roadblocks in building testing methodologies, logging information for post-hoc analysis, non-familiarity with existing testing toolchains, etc and could use some pointers to set me in the right direction.
To start, maybe y'all can answer some questions:
-
What's a good methodology for consistently building performance metrics, generally? I figure that running a known replay would work, but I don't have enough familiarity with ZK's engine to know if there are hidden nuances that would make that a good or bad test.
-
How can I collect detailed logs of performance of ZK? I tried the FPS logger widget, but I'm interested in (at least) all information found in the /debug screen, but I'm sure there's more helpful queryable info to pull. Really, the more data, the better -- I'm not shy to loads of perf data. If I need to modify or create a widget, that's fine.
-
Is there a decent/documented way to read replays programatically so that I can correlate a past game's game-state with logged performance logs? Ideally, I'd also like to modify (or build from scratch) replay files and run tests on top of those. (I realize that's probably not as simple as just inserting client/server commands into a save file, but I'm willing to learn the file spec to the Nth degree to find a way.) https://github.com/dansan/spring-replay-site/blob/master/srs/parse_demo_file.py looks like it's a good start, but I'd like to understand gotchas first before just diving into that so that I don't waste too much time.
-
What's the best source of low-level documentation of the spring engine? If you can hold off a "Look at the code" answer so that I can at least have a starting point, I would appreciate it. If the documentation's non-existent or just bad, pointing me to some important components would be helpful.
-
What toolchains exist to launch a ZK game from start to end, either from CLI or some other automation? My goal would be to collect metrics against different config settings changes, changing engine number, adding AIs.. things like that.
If a dev would be able and willing to work with me for an hour or so one of these nights in doing a brain dump of sorts, I'd love to chat.
Cheers.