-
Notifications
You must be signed in to change notification settings - Fork 8.6k
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
Remove AtariEnv in favour of official ALE Python package #2348
Conversation
@JesseFarebro I believe the version of ALE-Py needs to be pegged instead of just specifying a minimum version since this impacts environment logic? |
For additional context, the problem with Atari-Py is that it used an incredibly out of date version of the ALE with many now fixed inconsistencies, bugs and performance issues. This has been a planned upgrade to Gym for something like 2 years now. |
@@ -758,7 +757,7 @@ def _merge(a, b): | |||
"yars_revenge", | |||
"zaxxon", | |||
]: | |||
for obs_type in ["image", "ram"]: | |||
for obs_type in ["rgb", "ram"]: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ALGymEnv
still accepts image
as an obs_type but will display a deprecation warning asking the user to switch to one of: rgb
or grayscale
.
@JesseFarebro you said that opencv would be removed from all the Atari environments, but it's still living there (at least in setup.py for [atari]) |
@jkterry1 so I was mistaken where OpenCV was used. It's used in the |
This PR removes
atari-py
in favour of the official ALE packageale-py
. More information can be found in Farama-Foundation/Arcade-Learning-Environment#382.The major changes to Gym will be as follows:
ROMs are no longer packaged as part of
atari-py
. The current solution is to usepython -m atari_py.import_roms
. The newale-py
method of importing ROMs will be the shell commandale-import-roms
.clone_state()
,clone_full_state()
will return the actualALEState
object now instead of an object meant for serialization. This should have no impact on users asALEState
can be Pickled and serialized without issues.It is now recommended to use
gym.make('AtariID', render_mode='human')
instead ofenv.render(mode='human')
for both render modes.ale-py
shipps now with SDL2 and supports full 60FPS viewing, audio, scaling, etc. You don't get this by usingenv.render()
Environment defaults have changed:
frameskip = 5, repeat_action_probability = 0.25, full_action_space = True
. This follows the most recent methodology set out in Machado et al. 2018. This has no impact on the existing Gym IDs which remain unchanged.It's worth noting that as far as users are concerned everything is backwards compatible.
ale-py
will still search for ROMs that were imported viaatari-py
and the environment parameters forv0
andv4
haven't been changed.