Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sor2 #35

Open
wants to merge 29 commits into
base: master
Choose a base branch
from
Open

Sor2 #35

wants to merge 29 commits into from

Conversation

jmichaux
Copy link

Added Streets of Rage 1-3 for 1 and 2 players. Added new function getExtraActions.

@nadavbh12
Copy link
Owner

Sorry for the late response, been busy lately.
Very nice and comprehensive work!
Good job finding the ram hack for setting different levels.
A long term solution to this problem would be to simply load save states rather than the tedious work of working with predefined actions.

Some comments:

  • use_dfl shouldn't be on by default. Most python users use their own (or Gym's) viewer.
  • I prefer MK's default random position to be true.
  • Regarding the SOR options, what do they mean? please add some documentation.
  • Watch for indentation 1 2 3 4...
  • As far as I remember, in SOR1, there's no meaning to special + direction.
  • What is this testing code?
  • You should handle invalid input: bad character names, difficulties and stages. You can throw an exception with a appropriate error.
  • SOR3 is somewhat broken. Tried "axel" + lvl 5 and "skate" + lvl 8 and both results in episodes ending as they begin more or less.

@jmichaux
Copy link
Author

jmichaux commented Jan 31, 2018

Thanks for the comments. I can start fixing these bugs some time over the next few days. Here are some comments in response to yours:

  • USE_SDL shouldn't be on. That is my mistake
  • I must have inadvertently changed MK's default random position
  • You are right, special + direction has no meaning in SOR1. I also need to add a note somewhere that using special on the last level can cause severe glitches
  • The testing code was a way to ensure that reaching a terminal state would reset the environment. By constantly fixing the agents health and decreasing the enemies' health I could ensure that my agent would beat a given stage, even if the button presses were random subset of the actions.
  • I though about exception handling, but I figured it would be handled in a gym wrapper. I can add this.
  • SOR3 is a little different than SOR1 and SOR2 because it has in game achievements that determine the later levels. Also, for some difficulty settings, it is impossible to access lvls 5-8 (or 6-8) without a cheat. I'll look more into this.

My ideas for improvement:

  • Simplify the default settings for all three games. A user can choose their character and difficulty, but all of the other settings will be fixed like number of lives, start level (lvl 1) and end level (lvl 8). This would provide more structure and ensure that RLE/gym-rle are conducive to doing repeatable experiments.
  • Add the games to gym-rle.
  • Make a more specialized gym-streets-of-rage that would allow for more creative or one-off experiments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants