Video Timestamps

0:00 - 0:44 Mario Wins

0:45 - 0:56 Mario collects mushroom

(Fail) 0:57 - 2:10 Mario runs into wall and then wins (He needs more training)

Inspiration

The retro theme inspired us to design and AI to play some original video games. We went with Super Mario Bros, since it seemed like a fairly difficult retro game, but one that everyone would be familiar with and relate to.

What it does

We have implemented an AI that plays Mario fairly well (about as well as a beginning human). It can hop on Goombas, get a mushroom, gather coins, and pass through levels!

How we built it

Taking inspiration from previous AI gaming algorithms, we implemented an algorithm to play Mario.

Challenges we ran into

Video recording, problems with Gym AI source code, using cuda GPU's with pytorch, reducing RAM impact, saving and loading model state dictionaries, choosing which moves Mario AI should be allowed to use during training, etc.

Accomplishments that we're proud of

We got the AI to get fairly far in level. AI plays levels, and understands worth of points, and avoids dying.

What we learned

How to implement Q-learning models and usage of PyTorch for game-playing AIs.

What's next for AI Playing Original NES Mario

Train for longer. Only able to train for 2 hours due to time crunch, would like to train for at least 8 hours in future. Extend number of training sessions, so AI is better at playing. Find more secrets in Mario. Finish levels faster.

Team Member to Contact on Slack:

Xzaviar: https://app.slack.com/client/T01J59GK37G/C01JC430MT4/user_profile/U01LCGRC6HH

Built With

Share this project:

Updates