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.

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.

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!


The Cheapest NBN 1000 Plans

Looking to bump up your internet connection and save a few bucks? Here are the cheapest plans available.

At Kotaku, we independently select and write about stuff we love and think you'll like too. We have affiliate and advertising partnerships, which means we may collect a share of sales or other compensation from the links on this page. BTW – prices are accurate and items in stock at the time of posting.

Comments


8 responses to “This Guy Wrote A Program That Teaches Itself To Play NES Games”

Leave a Reply

Your email address will not be published. Required fields are marked *