Learning to play Super Mario Bros with AI.
Implements various genetic algorithms and reinforcement learning algorithms to play the game Super Mario Bros using the environment gym-super-mario-bros. Platform to mostly learn about different reinforcement learning algorithms using a standardised environment to compare the solutions against each other. Will also train models on Breakout for quicker development or for algorithms that do not work well on the SMB environment.
- Heuristic Based
- Evolutionary Learning
- Neuroevolution
- NEAT
- DQN
- DDQN
- Prioritized Experience Replay
- Dueling DQN
- RainbowDQN
- A2C
- Intrinsic Curiosity Module
- Random Network Distillation
- Proximal policy optimization
- MuZero
- EfficientZero
- Deep Deterministic Policy Gradient
- Soft Actor-Critic
- REINFORCE
Usefull addresses in the game's RAM for the heuristic method. We use raw pixels and the environment info for all other solutions.
| Addr | Description |
|---|---|
| 0x071A | Current Screen |
| 0x071C | Screen offset |
| 0x0500-0x069F | Tilemap (32 x 13 circular buffer) |
| 0x04AC-0x04AF | Player hitbox (x1, y1, x2, y2) |
| 0x04B0-0x04C3 | Enemy hitboxes (x1, y1, x2, y2) x5 |
| 0x000F-0x0013 | Enemy loaded (0=No, 1=Yes) x5 |
