Skip to content

ALE v0.9.0

Compare
Choose a tag to compare
@pseudo-rnd-thoughts pseudo-rnd-thoughts released this 20 May 14:53
· 37 commits to master since this release
750d7f9

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