Advanced replay parser

Today I had an idea. With all the data in the replay vault you could do so many more big data shenanigans. For instance log the total mass (energy, score) acumulated at a point in time for each player. By looking at many ladder games you could first of all sort by avrg rating of the game and see how much acumulated mass at a point in time differs depending on the rating of the players. A question which also interest me is: Where is a 2k player better than a 1.5k player. I suppose the difference will rather show past the 5 min mark because most 1.5k player should be able to learn and perform a BO very similar to a 2k player. Also you should be able to see meta changes over the years on certain maps. Questions like that might be answerable with that additional data.

Now to the small hinderence of actually implementing it. If I am correct the replays would need to be re run. Also the data would need to be logged. I guess that would be done in lua game internally. But then the data would also need to be exported. Not sure if that is possible at the current stage. I suppose the replays could be analyzed in parallel (anyone got a threadripper? ^^)

I think something similar was done in that paper. Unfortunately I did not get accsess to it. Maybe someone knows who wrote it. Pretty sure the author did play quite a bit of FAF:
https://www.semanticscholar.org/paper/Simplifying-an-Infinitely-Complex-State-Space%3A-in-Cornell/97ec5d4cccb977b278a34d3cb48fa491c4a9ec66

I've requested access 🙂 .I'll keep you up to date when I hear something back.

A work of art is never finished, merely abandoned

Can the sim thread be started without having the rendering and whatnot as a dependency?

I'm afraid I have bad news in that we'll not get access to it:

Hello, 


Thank you for reaching out about this thesis. Unfortunately, the author has restricted access to the Claremont Colleges Community.
This is the case with many of our undergraduate thesis that were completed as a requirement for the baccalaureate degree.

Thank you for your inquiry, and good luck in your future research.

Kind Regards,

Sumayyah Jewell

This is the college where the paper was part of a bachelor degree:

The degree was in economics.

A work of art is never finished, merely abandoned

Yeah they replied the same thing to me. Maybe someone who is a student there stumbles over this thread and can requests access . Or maybe someone else knows the FAF name of the author.

With regard to your assumptions:

If I am correct the replays would need to be re run.
That is correct - the replay contains all the information it requires to re-run the simulation. It doesn't have the actual state for every sim tick stored in there.

_Also the data would need to be logged. I guess that would be done in lua game internally. _
Correct and correct - keeping track of this information can be done with a small mod.

_But then the data would also need to be exported. _
This can be accomplished through the moholog (ALT + F9 from the top of my head). It's a manual job and it is certainly prone to errors. Balthazar used the log to 'output' a massive .csv file which you could then copy to an actual csv file and load it into excel.

I suppose the replays could be analyzed in parallel (anyone got a threadripper? ^^)
This is possible but take note that the render thread will always try to use core 0 of your CPU. Therefore you need to manually adjust the cores the program can use by changing the programs affinity. Supreme Commander requires about 2-3 cores to run effectively, it won't be pretty 🙂 .

And with regard to @Whatsisname I don't think that is possible: games like Starcraft 2 can accomplish this via a special compiled binary of the game. That is how AI's can quickly learn the game (train more than several years in the span of a few weeks, as an example what OpenAI did for Dota 2) because all the additional hurdle that we mere mortal humans need has been removed.

A work of art is never finished, merely abandoned

IMO running an analysis for past replays is not worth it, partly because of reasons above, partly because a quarter of them desync anyway. Doing it for new replays wouldn't be very hard, but it would require game, client, API and lobby server changes. You're welcome to contribute!