MarI/O – Machine Learning for Video Games
youtube.com
youtube.com
https://www.youtube.com/watch?v=HxFh1CJOrTU
This is on a real console, not an emulator. They overflow the snes into the controller registers to achieve arbitrary code execution by hand. They do this by placing koopa shells at pixel-perfect locations to spell out ASM, overflow to the controller registers, and press a specific combination of buttons to jump to the sprite table and their literal shellcode.
At the start of this year there was a crazy few weeks where different speedrunners were competing to execute the "credits warp" in the quickest and most efficient way. It started at around 6 minutes, now it's down to around 2 I think, most of which is the game's intro. Fun stuff. SethBling was the first person to ever execute it on a real console.
Here's a video explaining it, from a different speedrunner: https://www.youtube.com/watch?v=vAHXK2wut_I
For interested people, here is an interview with K. Stanley, the author of NEAT: http://aigamedev.com/open/interviews/galactic-arms-race/
I was wondering if this learning technique was applied to any other games. I came across this:
1. https://www.cs.utexas.edu/~mhauskn/papers/atari.pdf
2. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.93....
Seth, the video author is a Super Mario World Speedrunner and Twitchcaster. http://www.twitch.tv/sethbling
Bizhawk has Lua Scripting built in : http://tasvideos.org/Bizhawk/Features.html
Seth implemented Neuro-Evolution in Lua and http://pastebin.com/ZZmSNaHX
now machine learning casting is a thing...
If you took this neural network and tried it on another Mario level, it would fail miserably.
> Yeah, I think it wouldn't generalize super well, but I did try it on another easy level and it was able to get halfway through it.
- the author, at http://www.reddit.com/r/videos/comments/39qel5/top_super_mar...
Super Mario World is very deterministic.
The Author is streaming various learning tasks on his twitch. MarI/O has been trained on 3 levels so far, for 24 hours each.
The main problem I see is that the algorithm is learning from the same level (or set of levels). It would be interesting to see what happens if you give it some completely new level to play.
A very cool demonstration showing how the network evolves.
It's so tempting to say, this is based on the brain, when really it's more like, this was inspired by one psychologists model of the brain.