Mario Kart 64 is one thing -- but if this same technique is applied to Street Fighter 2, I am honestly concerned about our Seattle office descending into civil war. Or perhaps having hard data leads to less animal struggle for dominance because the hierarchy of the herd has been quantified?
If you liked this, you might also like a general technique for automating NES games, with Mario Bros demo [1]. There is a video, research paper, and source code too.
Sounds like a nice proof of concept, but I would have tried to identify the in-game variables as in [0] and identify the state of the game from there. Maybe it would take a bit longer, but in the end one could track if a player is sliding or was using an item and so on. Grabbing video frames and doing some kind of template matching on the still images sounds a bit... inconvenient.
Author here. That's an approach we considered as well, but we didn't want to have to use an emulator to play the game. Still, you could potentially get much richer information with that approach, and I'd love to see a demo based on it!
I know what you mean. Nevertheless, there are USB controllers which feel like the real thing. Mupen64plus behaves just like the original console so this might be a start. Here are some memory locations I found: https://sites.google.com/site/jamesskingdom/Home/video-game-...
I too was surprised that the author didn't go that route--especially considering there are hundreds of gameshark codes available to give you interesting RAM locations to monitor. There's a weight modifier code for each player which could make for some interesting analysis, also.
Absolutely! GoldenEye is a favorite here too. I haven't thought about it too much, but I bet it would be easy to adapt kartlytics to that, since it also uses a pretty straightforward on-screen display.
True - the discovery piece (which weapons work best where, trending, etc) would likely not produce revelations, but it would make for an excellent leaderboard for the extremely competitive.
As I was looking for a non-insane alternative to Hadoop/EMR, I figured I'd check out Manta, the product they're (sort of) trying to push in the blogpost. Can't say if it scales / is fast / is cheap... but it's very developer-friendly. Couple of lines of JSON pipeline config and you're map/reducing.
This is so cool. I'd love to see it's method's applied to other games. In college we played a lot of Super Smash Bros. 64 (same idea as SF2). At work now, Dr. Mario has shockingly become the game to master.
"Exporting games down to stats per millisecond. Stats I'd want: all the obvious stuff, like gold, KDAs, minion kills, items: but possibly more interesting would be HP per millisecond, and any secondary stats as well. Ability cooldowns. Ward expenditure.
"Could possibly do something interesting for positioning, but I'm not sure how to express that. X,Y coords? That would be enough; it'd be hard to consume, but that's what data processing is for. Clicks and pings would also be worth dumping."
I think you could get a lot of coarse-grained positioning data from the minimap, and possibly coarse-grained HP snapshots from spectator mode. You could definitely get ultimate/summoner spell expenditures from snapshots, too.
I really do expect interesting data to come out of analyzing the spatial layout of the teams.
You don't even need the VODs, because a replay encodes all the information about the game already in machine readable form. I wouldn't be surprised if someone somewhere is already doing large scale analysis of available SC2 replays.
We have that in League of Legends already, but the analytics that have been done so far are fairly rudimentary (who counters who, who has the highest win rate, etc.)