One of the more interesting things about video games — particularly multiplayer video games — that I occasionally stop to think about is the massive amounts of data that they generate. Take, for example, your typical first person shooter game — say Halo 3 or Call of Duty –and consider how many bullets are fired by an individual player using a virtual assault rifle or submachine gun in a typical 15 or 20 minutes game. Now multiply that by the number of players (anywhere from 2 to 64 depending on the game). Now consider that the game has to know where in 3D space each bullet is originating, where it is aimed at, and what it passes through along the way to the end of it’s range (where it magically disappears). That’s just one dataset from the game (another would be where each player is in 3D space at any given point in time) and it’s huge all by itself.
For the most part, all of this data is generated on the fly, rendered, and then lost to the ether, but that’s starting to change. With the power of today’s PCs, consoles, and broadband networks there’s no reason why that data can’t be captured and we already know that a few games are doing just that. I’ve mentioned before that one of Call of Duty: Black Ops cooler features is the Theater Mode that records every match you play and allows you to re-render the game from any point of view later. It doesn’t actually store video, but instead just stores every bit of data generated during the course of the game. You can even peruse the stats on which guns are your favorites, how many times you did X in the game, and so on. All of that data is uploaded to servers at Treyarch where they use it to see how players are playing the game in hopes of making the next one even better. Plus it allows them to transmit stats about the game that tell you how many total bullets have been fired by everyone who has ever played the game or how much of the CoD virtual currency has been earned/spent buying upgrades and such.
Another example is the game Just Cause 2 — a third person action game which I still intend to pick up someday — which allows you to do all sorts of crazy things such as hijack aircraft and jump out of them at high altitudes or just jump off of high buildings and then fly around using a magic parachute that is able to re-fold itself back into your pack so you can use it repeatedly. The folks at Square Enix also track all kinds of data in the game to see how people are playing it and it’s the job of Jim Blackhurst to make sense of all that data:
You may know from this blog, that I work for a company called Square Enix, and before that Eidos. SE is a video games publisher, famous for Final Fantasy, and through the acquisition of UK publisher Eidos, Tomb Raider. Among other duties, I manage the metrics system and create data and visualisations that the business uses to make better games. All the data we collect is anonymous. For a while now I’ve been using this data to create Heatmaps of player activity. You can see some of these on the Just Cause website.
[…] What was bugging me was that I was getting this huge set of raw data, but only using two thirds of it. I never ventured into third dimension by factoring the Z coordinate (the ‘height’ spatial component) into the process. At the beginning of this year, I decided to do something about this. I started a project to rebuild the heatmapping application in 3D.
[…] The JustCause2 dataset that I was using was a selection of player deaths specifically where the player had died from an impact event. This was great because players tend to spend a lot of time jumping off tall buildings or riding around in helicopters and planes, so impact in this context is generally impact with the geometry of the environment. When the data is rendered, you can see the underlying world, almost as clearly as if we were rendering the 3d mesh itself.
All of which brings us to the following YouTube video created by Mr. Blackhurst:
Seriously, how cool is that? Each dot is one player death from colliding with something in the game. When you have over 11 million deaths to plot out it becomes easy to see the geometry of the game world without using any of the files associated with rendering it in the game.
Maybe it’s just me, but I find this sort of thing fascinating. There’s been all manner of data visualizations on the net over the past few years. Many of them of much less trivial import than this, but all of it is fascinating to me.