I used to play a lot of chess, and part of getting better was analyzing your past games. Getting better at Civ6 is hard, in part because games are long, and identifying areas of improvement is not always obvious. For a while, I plateaued at Immortal - I could win all my Immortal games but not a single game at Deity (at least without cheating). I tried to figure out what separates the expert players on YouTube or Reddit from myself, but I couldn't point to a single thing. During my past few Civ games, I took extensive notes on what I did and why, what my opponent was doing at the time, etc. These notes really helped me improve, because I could point to specific mistakes in my gameplay. Helpful, but also tedious.

Civ6 itself records the game, and generates a timeline file for export. You can find it in C:\Users\\Documents\My Games\Sid Meier's Civilization VI\GameSummary. It works similarly to the PGN file in online chess - it records all your actions in a text format, so you can analyze the game later. I wrote a program to visualize these files, so you can see what you did and when, and hopefully that will help you improve.

Future Work

If the Civ6 community likes this idea, I will add the following features, which I think are useful:

Or possibly other features suggested by folks on Reddit, if it's not too difficult and technically possible (the timeline file is missing a lot of info).


Right now, you can upload game files and share the link with anyone to view someone else's files. I'll keep it running for this demo, but in the long-term that's not free. My own games files are around 1-3MB (uncompressed). While storing all of my own games is well under $1/year, storing a few dozen game files for a few hundred people would mean about 10GB of storage. That's not expensive but it's also not free. I'm happy to run the service if a few folks express an interest in paying some trivial sum to subsidize it (probably $1/person/month would be more than enough).


I would love to add this information to the visualization, but it's just not present in the underlying data. This is an incomplete list: