A Program That Plays Nintendo Games

The Nintendo Entertainment System is one of the iconic game consoles and the one that resurrected console gaming after the crash of 1983. It also had a reputation for incredibly difficult games, as TV Tropes attests. One guy’s created a program that can play those difficult games for you.

Automatic NES playing

Programmer Tom Murphy, a computer scientist, has written a paper on the subject titled “The First Level of Super Mario Bros. is Easy with Lexicographic Orderings and Time Travel. . . after that it gets a little tricky,” which has to be the most awesome paper title ever.

“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,” he wrote. “This allows the player’s notion of progress to be generalized in order to produce novel gameplay.”

In English, that means that Murphy plays the game, then his program looks at the memory for certain objectives, then tries to figure out the inputs in order to duplicate success in the game.

In addition to his paper, Murphy has created a video showing his program, dubbed “Playfun,” in action. At first, it plays “Super Mario Bros.” by jumping around, then it manages to get through level 1-1. Here it is below:

It also plays through “Bubble Bobble,” pulling off an incredible technique of shooting enemies with its back turned by bouncing bubbles off the wall. It also manages to evade the “Pac-Man” ghosts by briefly slipping in between them. It’s not so good, however, at “Tetris.”

You can read Murphy’s paper online.

If you like this, you can check out the Gaming Mitt (as in oven mitt, not a failed U.S. Presidential candidate) and an NES laptop mod.

(via Kotaku)

Leave a Reply

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>