Vote 2020 graphic
Everything you need to know about and expect during
the most important election of our lifetimes

This Guy Wrote A Program That Teaches Itself To Play NES Games

This is amazing. Tom Murphy created a computer program that actually learns how to play classic NES games on its own, with a little instruction from Tom.

Advertisement

You can see the computer’s progress (which begins near 6:10, after Tom's explanation of the program) in learning how to play Super Mario Bros. (and other games) in the video above. It’s a little hyperactive in the first version of the program, but Tom manages to iron out the intricacies to get it to play the game pretty damn well.

The project and accompanying research paper were created for the SIGBOVIK 2013 annual research conference. If you’ve got time, you should check out Tom’s research paper, which is fascinating though honestly a bit over my head.

Advertisement

If you don’t have time for the full thing, here’s the basic explanation from Tom:

The basic idea is to deduce an objective function from a short recording of a player's inputs to the game. The objective function is then used to guide search over possible inputs, using an emulator. This allows the player's notion of progress to be generalized in order to produce novel gameplay.

If you watch the video long enough, you can even see the computer pull off some tricky moves in a couple of the games shown off. I repeat: this is amazing.

learnfun & playfun: A general technique for automating NES games [Tom Murphy]

Thanks for the find, big brother!

Share This Story

Get our newsletter

DISCUSSION

vertigokidd
vertigokidd

That is an amazing project. But I think the coolest discovery this guy made was the fact that Mario is always invincible if he is moving down. Did anyone else know that before?

Oh, SMB: the game that keeps on giving.