ALE v0.9.0
Previously, ALE implemented only a Gym based environment, however, as Gym is no longer maintained (the last commit was 18 months ago). We have updated ale-py
to use Gymnasium >= 1.0.0a1
(a maintained fork of Gym) as the sole backend environment implementation. For more information on Gymnasium’s API, see their introduction page.
import gymnasium as gym
import ale_py
gym.register_envs(ale_py) # unnecessary but prevents IDEs from complaining
env = gym.make("ALE/Pong-v5", render_mode="human")
obs, info = env.reset()
episode_over = False
while not episode_over:
action = policy(obs) # replace with actual policy
obs, reward, terminated, truncated, info = env.step(action)
episode_over = terminated or truncated
env.close()
An important change in this update is that the Atari ROMs are packaged within the PyPI installation such that users no longer require pip install "gym[accept-rom-license]"
(AutoROM) or ale-import-roms
for downloading or loading ROMs. This should significantly simplify installing Atari for users. For users who wish to load ROMs from an alternative folder, use the ALE_ROM_DIR
system environment variable to specify a folder directory.
Importantly, Gymnasium 1.0.0 removes a registration plugin system that ale-py utilises where atari environments would be registered behind the scenes. As a result, projects will need to import ale_py
, to register all the atari environments, before an atari environment can be created with gymnasium.make
. We understand this will cause annoyance to some users, however, the previous method brought significant complexity behind the scenes that the development team believed caused more issues than help.
Other changes
- Added Python 3.12 support.
- Replace interactive exit by
sys.exit
(#498) - Fix C++ documentation example links(#501)
- Add support for gcc 13 (#503)
- Unpin cmake dependency and remove wheel from build system (#493)
- Add missing imports for cstdint (#486)
- Allow installing without git (#492)
- Update to require
importlib-resources
for < 3.9 (#491)
Full Changelog: v0.8.1...v0.9.0