Forums  /  Speedrunning  /  Machine Learning: What game to teach my computer? (Locked)
  Batt84Batt84

tl;dr - I'm searching for a simple game with known exploits to teach an AI to speedrun it

I'm a student of computer science in Germany and want to develop an AI that's learning to do speedruns. Ideally, I'd prefer a simple game (little input-possibilities, little on-screen-info, little background-mechanics) like the old GameBoy-Games (thinking of Super Mario and stuff here).
Also I'd love to see if it's possible for the machine to learn using exploits. So the game shouldn't only be simple but also have known exploits.
In addittion to that, the game should run on a PC (at least with an emulator).

I have no personal experience with speedrunning other than watching a few every once in a while, so I came to you for help and guidance.
I assume that people take speedrunning very seriously, which I understand and respect. I have no intention to submit results of an AI as my own, I'm not aiming at breaking any records or anything. I just think it's a really cool scenario to get into machine learning!

Also I'm not trying to find solutions here - I want to and will do the actual work myself. I'm just asking for games to take into consideration. But in case anyone got any further advice, especially what to consider during research and what related work or websites to look into, I'm always thankful for input!

So long, and thanks alot in advance,

Batt

OxkniferOxknifer and 607607 like this. 
  TimmiluvsTimmiluvs

This is quite an interesting idea. If you're looking for simple games with minimal inputs and not a lot of "noise", I'd look at Atari games. Most are very straightforward given their age, but idk how deep exploits will run (aside from your AI learning the correct frames to do ideal movements on).

As for games that are both simple and exploitable, that one is hard to concretely answer. A lot of NES games are relatively simple in terms of inputs (as well as Gameboy like you mentioned) and a number of these games have relatively short categories. However, the more exploits you look for, the more complex those exploits become (some can involve things like counting on screen sprites or waiting for sound cues) and I'm not sure if that's the kind of exploits you're looking for. Especially since those exploits can be related to the on screen stuff you're trying to stay away from.

If you elaborate more on the kind of exploits you're looking to for in games (and how complex you want or don't want them to be), it might be easier to suggest more specific games.

607607 likes this. 
  oddtomoddtom

I think some of the earlier pokemon games might have what you're looking for. Fairly simple and straightforward input and output, and you can math it out in as much detail as you want. Maybe even Pokemon Stadium as a turn-based alternative if you find programming for a real-time game difficult.

 
  607607

One thing that isn't completely clear to me: do you want to program an AI to speedrun a game, or do you want to program a neural network that tries to 'learn' to speedrun a game?

 
  ShtrudelShtrudel

I think the original Super Mario should fit to your needs. Movement is dead simple and it has some cool exploits like clipping through a wall and skipping the flag animation at the end of each level.

 
  MitsuneeMitsunee

Mario has been done before with MarI/O by Sethbling:

607607 likes this. 
  Batt84Batt84

Thanks alot for allt he replies. I'll try to cover all questions and uncertainties here:

@Timmiluvs: I intend to do this for a course on Machine Vision and Machine Learning, so I'm not completely avers against on-screen clues, I just want to keep the screen info as digestable as possible. As to your question about what kind of exploits I'm looking for - I'm trying not to restrict myself too much, but my favorite kind would be glitches (like wall clipping) that make the player skip part of a level / game. I've seen this alot in 3D-Games like Ocarina of Time, and I'm looking for something similar in 2D-games.
The sound clues you mentioned therefore aren't as interessting for two reasons: first of all I at least imagine it being quite difficult to access that info (which unfortunately is a factor in a project that needs to be finished within 3 months amongst other stuff to do), second of all to me that sounds more like a game design choice to assist players who pay attention to it, similar to how in Dark Souls the bosses patterns (usually) match the rhythm of their respective themes.

@oddtom: Do you by any chance know of significant glitches that allow the player to skip a noteworthy section of the games? In Stadium I know now exploits at all, and for the other Pokemon games I can only recall the infinite-items-exploit and how to get a lvl 100 nidoking before battleing Brock.

@607: I want the machine to learn it, I do not want hard-code the exploits. I'm not sure on what learning strategy to use, but neural networks are certainly out there, together with reinforcement learning (or both comined in deep reinforcement learning)

@Shtrudel: To all Super Mario games have exploits like that? If so, I'll definetly look into that!

@Mistunee: Yes, I've seen that one before. Actually, this video is pretty much what inspired me to choose this project. But instead of just recreating something that has been done before, I wanted to add a spin to is - that's why I'm specifically looking for exploitable games 🙂

Again, thanks alot to all of you for your help! It certainly is very much appreciated! 🙂

607607 and MitsuneeMitsunee like this. 
  oddtomoddtom

You can find a lot more info about specific games in their respective forums. For glitches in Pokemon RBY specifically, here's a good place to start: https://www.speedrun.com/pkmnredblue/thread/79cq3/1#im2d9

It also just occurred to me that if you're writing a program for machine learning, you might want to look at some old learning games. A while ago, Winslinator and a few others were working on optimizing a certain one called "Treasure Cove". Normally, you have to solve clues to find the pufferfish (that allows you to go to the next level), but there are patterns in its appearance, and if you recognize the patterns, you can bypass the hint solving step altogether. If you're going to use screen-reading, this game uses a pretty simple layout with a predetermined number of fixed frames you can move through. Wins has a running list of the pufferfish locations here: https://www.speedrun.com/Treasure_Cove/resources

 
  ArcaneAriaArcaneAria

So not sure if it would fit for your class, but the OpenAI Gym has some Atari games set up for you to practice writing bots for: https://gym.openai.com/envs/#atari . I've been meaning to play around with some of these myself, but you can play each game with either access to RAM or screen graphics only depending on how much information you want your AI to have.

607607 likes this. 
  ClarkedeClarkede
(edited: )

I've got my bachelor's in Computer Science (Artificial Intelligence concentration at Lewis University Online). We analyzed case studies of AlphaGo and other AI bots that could outstand gamers. Now I want to study CS Online: Artificial Intelligence at University of Colorado Boulder.
https:/​/​simoninithomas.​github.​io/​gameplAI/​
https:/​/​pimion.​com/​