Sonic and Sega Retro Message Board: OpenAI Retro Contest - Sonic and Sega Retro Message Board

Jump to content

Hey there, Guest!  (Log In · Register) Help
Page 1 of 1
    Locked
    Locked Forum

OpenAI Retro Contest

#1 User is offline Aquova 

Posted 05 April 2018 - 03:58 PM

  • Professional nerd in training
  • Posts: 140
  • Joined: 22-October 16
  • Gender:Male
  • Location:USA
OpenAI is holding a contest from April 5th to June 5th to try and train a computer to play custom Sonic levels that it's never seen.

https://contest.openai.com/

The idea looks pretty cool, but this also seems stupid hard. The best CPUs playing games that I've seen can only play a handful of levels that it's had practice on for hours.

#2 User is offline Black Squirrel 

Posted 05 April 2018 - 04:08 PM

  • maybe she's born with it
  • Posts: 4287
  • Joined: 27-December 03
  • Gender:Male
  • Location:Northumberland, England
  • Project:maybe it's maybelline
  • Wiki edits:20,569

View PostAquova, on 05 April 2018 - 03:58 PM, said:

The best CPUs playing games that I've seen can only play a handful of levels that it's had practice on for hours.

Welcome to evolutionary learning :eng101:

The idea behind a good chunk of AI is to basically define a set of win and lose parameters, and let the computer brute force every combination until it gets an answer. But it's only ever really going to be good at one thing unless you give it a super varied training regime.

#3 User is offline biggestsonicfan 

Posted 05 April 2018 - 04:24 PM

  • Model2wannaB
  • Posts: 656
  • Joined: 09-May 07
  • Gender:Male
  • Project:Formerly Sonic the Fighters
This is the most elaborate "do our work for us" I've ever seen posted on Retro. Props.

#4 User is offline sonicblur 

Posted 05 April 2018 - 07:11 PM

  • Posts: 1183
  • Joined: 18-February 08
  • Gender:Male
  • Wiki edits:6

View Postbiggestsonicfan, on 05 April 2018 - 04:24 PM, said:

This is the most elaborate "do our work for us" I've ever seen posted on Retro. Props.

6 years ago there was a similar contest to develop an AI to play Mario games. I think this is just an indirect successor of that:
http://www.marioai.org

It's actually a fun idea to give to students learning how to write AI.

#5 User is offline Ritz 

Posted 06 April 2018 - 10:58 AM

  • Subhedgehog
  • Posts: 3949
  • Joined: 01-January 06
  • Gender:Not Telling
  • Location:Glimmering Cornhole Zone
  • Wiki edits:2
That's real ambitious. People can't even figure out how to get through a loop in Sonic 1. Can't brute force that like SMW 1-1 where the right permutation of inputs will eventually win because the stage is flat.

#6 User is offline DigitalDuck 

Posted 08 April 2018 - 06:58 AM

  • Arriving four years late.
  • Posts: 4684
  • Joined: 23-June 08
  • Gender:Male
  • Location:Lincs, UK
  • Project:TurBoa, S1RL

View PostAquova, on 05 April 2018 - 03:58 PM, said:

OpenAI is holding a contest from April 5th to June 5th to try and train a computer to play custom Sonic levels that it's never seen.

https://contest.openai.com/

The idea looks pretty cool, but this also seems stupid hard. The best CPUs playing games that I've seen can only play a handful of levels that it's had practice on for hours.


Luckily someone made a hack that can generate levels :v:

(Note to self: get back to working on that at some point.)

#7 User is offline biggestsonicfan 

Posted 08 April 2018 - 02:20 PM

  • Model2wannaB
  • Posts: 656
  • Joined: 09-May 07
  • Gender:Male
  • Project:Formerly Sonic the Fighters

Quote

You are free to train your agent however you'd like, but we recommend using Sonic 1, 2, and 3 & Knuckles, which are available on Steam here:

Sonic The Hedgehog
Sonic The Hedgehog 2
Sonic 3 & Knuckles
Once you have them, you can import the ROMs of the games with the provided script:

python -m retro.import.sega_classics
You will need to enter your Steam username, password, and if applicable a Steam Guard code. If you don't use the Steam mobile app for Steam Guard you can get a Steam Guard code via email by logging into Steam in a new browser or private session, or you can change your Steam Guard settings. The import process may take several minutes to run.

Is this legal?

EDIT: With all the literal hacks on the steam thing who cares I guess.
This post has been edited by biggestsonicfan: 08 April 2018 - 02:22 PM

#8 User is offline null 

Posted 10 April 2018 - 03:47 PM

  • Posts: 2
  • Joined: 21-February 18

View PostDigitalDuck, on 08 April 2018 - 06:58 AM, said:

Luckily someone made a hack that can generate levels :v:/>

(Note to self: get back to working on that at some point.)


Thanks for making that! I suspect that making good randomized training environments could be an interesting way to avoid overfitting on the training levels. We haven't run any experiments using S1RL, but I did make a preliminary integration for it. Do you know if I can set the memory at 0xffc950 for different seeds, and am I limited to 256 different levels? Based on my testing, putting different byte values there would produce different levels but I wasn't sure if that was the correct way.

#9 User is offline DigitalDuck 

Posted 11 April 2018 - 08:45 PM

  • Arriving four years late.
  • Posts: 4684
  • Joined: 23-June 08
  • Gender:Male
  • Location:Lincs, UK
  • Project:TurBoa, S1RL

View Postnull, on 10 April 2018 - 03:47 PM, said:

Thanks for making that! I suspect that making good randomized training environments could be an interesting way to avoid overfitting on the training levels. We haven't run any experiments using S1RL, but I did make a preliminary integration for it. Do you know if I can set the memory at 0xffc950 for different seeds, and am I limited to 256 different levels? Based on my testing, putting different byte values there would produce different levels but I wasn't sure if that was the correct way.


$C950 is absolutely the wrong one to set; although it will affect the seed, it's because it's used to store the options menu, so it can only choose "randomly generated" or the six presets available in the menu. The random number generator is the longword at $CA0C, with $CA08 being used for fixed level generation, so some messing around with those might net you what you're looking for.

The easier way to produce different levels is to just randomise the controller input and length of time before starting the game.

Page 1 of 1
    Locked
    Locked Forum

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users