The Arcade Learning Environment (ALE) -- a platform for AI research.
GPL-2.0 License
Bot releases are hidden (Show)
Published by pseudo-rnd-thoughts 5 months ago
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.
sys.exit
(https://github.com/Farama-Foundation/Arcade-Learning-Environment/pull/498)importlib-resources
for < 3.9 (https://github.com/Farama-Foundation/Arcade-Learning-Environment/pull/491)Full Changelog: https://github.com/Farama-Foundation/Arcade-Learning-Environment/compare/v0.8.1...v0.9.0
Published by JesseFarebro over 1 year ago
render_mode
attribute on legacy Gym environment (@younik)Videochess
-> VideoChess
and Videocube
-> VideoCube
.video_chess.bin
and video_cube.bin
but for those who didn't you canale-import-roms
which will automatically correct this for you.Published by JesseFarebro about 2 years ago
ale_py.roms
.ale.game_over(with_truncation=true/false)
and ale.game_truncated()
)TimeLimit
wrapper with the new truncation API in Gym v26.const
keywords to attributes in ale::ALEInterface
(#457) (@AlessioZanga).__all__
in ale-py so linting tools can better detect exports.gym.envs.atari:AtariEnv
to ale_py.env.gym:AtariEnv
. This resolves many issues with the namespace package but does break backwards compatability for some Gym code that relied on the entry point being prefixed with gym.envs.atari
.Published by JesseFarebro over 2 years ago
__getattr__
and __dir__
.py.typed
to the Python module's root directory to support type checkers.seeding.hash_seed
and random.randint
.setuptools>=0.61
..render(mode='human')
. Gym now uses the render_mode
keyword argument in the environment constructor.Published by JesseFarebro over 2 years ago
cmake
.reset
API, i.e., the seed
and return_info
keyword arguments.importlib-metadata
on Python < 3.9.v5
defaults to align with the post-DQN literature. That is, moving from a frameskip of 5 -> 4, and full action set -> minimal action set.Published by JesseFarebro almost 3 years ago
This update includes a minor addition that allows users to load ROMs from a directory specified by the environment variable ALE_PY_ROM_DIR
.
ALE_PY_ROM_DIR
which if specified will search for ROMs in ${ALE_PY_ROM_DIR}/*.bin
. (@joshgreaves)Published by JesseFarebro about 3 years ago
This release includes a bug fix for Windows and Python 3.10 wheels. Note that we no longer build wheels for Python 3.6 which is considered end of life as of December 2021.
isSupportedROM
on Windows which was causing incorrect ROM hashes.Published by JesseFarebro about 3 years ago
This release adds some niceties around Gym as well as expands upon some deprecation warnings which may have been confusing. The biggest change in this release is that the Gym environment is now installed to gym.envs.atari:AtariEnv
which is now backwards compatible with the previous entry point.
Furthermore, users no longer need to import the ALE when constructing a *-v5
environment. We now use the new Gym environment plugin system for all environments, i.e., v0, v4, v5
. Additionally, Gym adds new tools for downloading/installing ROMs. For more info, check out Gym's release notes.
ale-import-roms --import-from-pkg {pkg}
gym.envs.atari
as a namespace package to maintain backwards compatability with the AtariEnv
entry point.gym>=0.21
(https://github.com/openai/gym/pull/2383, https://github.com/openai/gym/pull/2409, https://github.com/openai/gym/pull/2411). Users no longer are required to import ale_py
to use a -v5
environment.ImportError
. To view these errors you should now supply the environment variable PYTHONWARNINGS=default::ImportWarning:ale_py.roms
.std::
name qualifier when enabling SDL (@anadrome)gym.envs.atari:AtariEnv.clone_state
.Published by JesseFarebro about 3 years ago
This release focuses on consolidating the ALE into a cohesive package to reduce fragmentation across the community. To this end, the ALE now distributes native Python wheels, replaces the legacy Atari wrapper in OpenAI Gym, and includes additional features like out-of-the-box SDL support for visualizing your agents.
For a full explainer see our release blog post: https://brosa.ca/blog/ale-release-v0.7.
ALEState
ale-import-roms
ale-py
+ we distribute SDL2 for out of the box visualization + audio supportisSupportedROM(path)
to check if a ROM file is supported by the ALEcloneState(include_rng)
which will eventually replace cloneSystemState
(behind the scenes cloneSystemState
is equivalent to cloneState(include_rng=True)
).setRAM
which can be useful for modifying the environment, e.g., learning a causal model over RAM transitions, altering game dynamics, etc.ALEInterface::load()
, ALEInterface::save()
. If you require this stack functionality it's easy to implement on your own using ALEInterface::cloneState(include_rng)
std::fs
Published by mgbellemare almost 5 years ago
This collects a number of minor changes from 0.6.0, spanning about two years.
Published by mgbellemare almost 7 years ago
This is the first release of a brand new version of the ALE, including modes, difficulties, and a dozen new games.
Published by mgbellemare about 7 years ago
This is a minor release of ALE 0.5, meant to reflect a number of bug fixes and PRs that have been added over the last two years. Note that a new major release (0.6) should be released within the next three months.
Published by mgbellemare about 9 years ago
This is the official release of the Arcade Learning Environment, version 0.5.1. This version sees bug fixes from 0.5.0, additions to the C++ and Python interfaces, and additional error checking. The interfaces should be considered mostly stable, but are likely to see a few tweaks before version 1.0.
Published by mgbellemare over 9 years ago
This is the official release of the Arcade Learning Environment, version 0.5.0. This version sees a major code overhaul, including simpler installation, better interfaces, visualization, and optional controller stochasticity. The interfaces should be considered mostly stable, but may see a few tweaks before version 1.0.