Skip to main content

The Arcade Learning Environment (ALE) - a platform for AI research.

Project description

The Arcade Learning Environment Arcade Learning Environment

Python PyPI Version

The Arcade Learning Environment (ALE) is a simple framework that allows researchers and hobbyists to develop AI agents for Atari 2600 games. It is built on top of the Atari 2600 emulator Stella and separates the details of emulation from agent design. This video depicts over 50 games currently supported in the ALE.

For an overview of our goals for the ALE read The Arcade Learning Environment: An Evaluation Platform for General Agents. If you use ALE in your research, we ask that you please cite this paper in reference to the environment. See the Citing section for BibTeX entries.

Features

  • Object-oriented framework with support to add agents and games.
  • Emulation core uncoupled from rendering and sound generation modules for fast emulation with minimal library dependencies.
  • Automatic extraction of game score and end-of-game signal for more than 100 Atari 2600 games.
  • Multi-platform code (compiled and tested under macOS, Windows, and several Linux distributions).
  • Python bindings through pybind11.
  • Native support for Gymnasium, a maintained fork of OpenAI Gym.
  • Visualization tools.
  • Atari roms are packaged within the pip package

Quick Start

The ALE currently supports three different interfaces: C++, Python, and Gymnasium.

Python

You simply need to install the ale-py package distributed via PyPI:

pip install ale-py

Note: Make sure you're using an up-to-date version of pip or the installation may fail.

You can now import the ALE in your Python projects with providing a direct interface to Stella for interacting with games

from ale_py import ALEInterface, roms

ale = ALEInterface()
ale.loadROM(roms.get_rom_path("Breakout"))
ale.reset_game()

reward = ale.act(0)  # noop
screen_obs = ale.getScreenRGB()

Gymnasium

For simplicity for installing ale-py with Gymnasium, pip install "gymnasium[atari]" shall install all necessary modules and ROMs. See Gymnasium introductory page for description of the API to interface with the environment.

import gymnasium as gym
import ale_py

gym.register_envs(ale_py)  # unnecessary but helpful for IDEs

env = gym.make('ALE/Breakout-v5', render_mode="human")  # remove render_mode in training
obs, info = env.reset()
episode_over = False
while not episode_over:
    action = policy(obs)  # to implement - use `env.action_space.sample()` for a random policy
    obs, reward, terminated, truncated, info = env.step(action)

    episode_over = terminated or truncated
env.close()

For all the environments available and their description, see gymnasium atari page.

C++

The following instructions will assume you have a valid C++17 compiler and vcpkg installed.

We use CMake as a first class citizen, and you can use the ALE directly with any CMake project. To compile and install the ALE you can run

mkdir build && cd build
cmake ../ -DCMAKE_BUILD_TYPE=Release
cmake --build . --target install

There are optional flags -DSDL_SUPPORT=ON/OFF to toggle SDL support (i.e., display_screen and sound support; OFF by default), -DBUILD_CPP_LIB=ON/OFF to build the ale-lib C++ target (ON by default), and -DBUILD_PYTHON_LIB=ON/OFF to build the pybind11 wrapper (ON by default).

Finally, you can link agaisnt the ALE in your own CMake project as follows

find_package(ale REQUIRED)
target_link_libraries(YourTarget ale::ale-lib)

Citing

If you use the ALE in your research, we ask that you please cite the following.

M. G. Bellemare, Y. Naddaf, J. Veness and M. Bowling. The Arcade Learning Environment: An Evaluation Platform for General Agents, Journal of Artificial Intelligence Research, Volume 47, pages 253-279, 2013.

In BibTeX format:

@Article{bellemare13arcade,
    author = {{Bellemare}, M.~G. and {Naddaf}, Y. and {Veness}, J. and {Bowling}, M.},
    title = {The Arcade Learning Environment: An Evaluation Platform for General Agents},
    journal = {Journal of Artificial Intelligence Research},
    year = "2013",
    month = "jun",
    volume = "47",
    pages = "253--279",
}

If you use the ALE with sticky actions (flag repeat_action_probability), or if you use the different game flavours (mode and difficulty switches), we ask you that you also cite the following:

M. C. Machado, M. G. Bellemare, E. Talvitie, J. Veness, M. J. Hausknecht, M. Bowling. Revisiting the Arcade Learning Environment: Evaluation Protocols and Open Problems for General Agents, Journal of Artificial Intelligence Research, Volume 61, pages 523-562, 2018.

In BibTex format:

@Article{machado18arcade,
    author = {Marlos C. Machado and Marc G. Bellemare and Erik Talvitie and Joel Veness and Matthew J. Hausknecht and Michael Bowling},
    title = {Revisiting the Arcade Learning Environment: Evaluation Protocols and Open Problems for General Agents},
    journal = {Journal of Artificial Intelligence Research},
    volume = {61},
    pages = {523--562},
    year = {2018}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

ale_py-0.10.0-cp312-cp312-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.12 Windows x86-64

ale_py-0.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

ale_py-0.10.0-cp312-cp312-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

ale_py-0.10.0-cp312-cp312-macosx_10_15_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12 macOS 10.15+ x86-64

ale_py-0.10.0-cp311-cp311-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.11 Windows x86-64

ale_py-0.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

ale_py-0.10.0-cp311-cp311-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

ale_py-0.10.0-cp311-cp311-macosx_10_15_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.11 macOS 10.15+ x86-64

ale_py-0.10.0-cp310-cp310-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.10 Windows x86-64

ale_py-0.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

ale_py-0.10.0-cp310-cp310-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

ale_py-0.10.0-cp310-cp310-macosx_10_15_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.10 macOS 10.15+ x86-64

ale_py-0.10.0-cp39-cp39-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.9 Windows x86-64

ale_py-0.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

ale_py-0.10.0-cp39-cp39-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

ale_py-0.10.0-cp39-cp39-macosx_10_15_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

ale_py-0.10.0-cp38-cp38-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.8 Windows x86-64

ale_py-0.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

ale_py-0.10.0-cp38-cp38-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

ale_py-0.10.0-cp38-cp38-macosx_10_15_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

File details

Details for the file ale_py-0.10.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: ale_py-0.10.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.6

File hashes

Hashes for ale_py-0.10.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 030e2c3195502e29e68c36a3ef45269dde5d8cf5622713f1c92ad7eb7d29c20d
MD5 7df8e099dfb78586cf07de645e867cca
BLAKE2b-256 5eceafa752e346773c7baae682a22e639d7fc4e569fae1cf6c9dbdeb22198632

See more details on using hashes here.

File details

Details for the file ale_py-0.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ale_py-0.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2e1be5b0f7d6bfb7588456dcbf9499c5b01dc7e953d7f860df2d2596cf01b295
MD5 87f099f7c97a6beed8688f95fb374972
BLAKE2b-256 9c63faf7249a19ea93555dbdae8b1b12fc24d0a66934f366fe44c54a46e10707

See more details on using hashes here.

File details

Details for the file ale_py-0.10.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ale_py-0.10.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 11e5747eeec25d35715c955adc507b360c7bbd1cdec7c96582dfaf4e74400c39
MD5 853f5d469690fc7e7314ab424e3cd118
BLAKE2b-256 8a0d3ea9d48cc61258ca1c6375ead1dc4748d4d889ee0c412c704cbbc93ddfdd

See more details on using hashes here.

File details

Details for the file ale_py-0.10.0-cp312-cp312-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for ale_py-0.10.0-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 ea3491ddb56b9a76b930a487667ae5a1c1a2d10ae3813a78a3355d586a8a0562
MD5 a1cdbcf4f5a6522ac810d3de48cfc4a9
BLAKE2b-256 863357b839a5b421e2873425cd46a023f93a3598187e0edb4458331868f02186

See more details on using hashes here.

File details

Details for the file ale_py-0.10.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: ale_py-0.10.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.6

File hashes

Hashes for ale_py-0.10.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c2a2cd6cdb48ce5e0edf263472e067ac5a8e65742d329c902af64caba6696929
MD5 cbb448d99dfbf4dfab7c9f3f5f7f44ed
BLAKE2b-256 ef1deb8be22860efbe13e2674156fdf90e409e62e4042f9b9a2651f6ef2cc30a

See more details on using hashes here.

File details

Details for the file ale_py-0.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ale_py-0.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2f64cf699e1d943888d7e185cbaf7992fc81f1e566c49c96259e8ec6cacbfeaa
MD5 2f819ec19000cd053342420557602775
BLAKE2b-256 b643e24ca11cbcbf6941c37181138116d1863797502a04a03996ee30f91eb5d0

See more details on using hashes here.

File details

Details for the file ale_py-0.10.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ale_py-0.10.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 90b445191878749ee3624d6b30aff55233ed59c7148e86127086a7892ad4a74e
MD5 94b57f114c2b4481b175fce16c08848f
BLAKE2b-256 180e18a1bd5593e76dd1a5b1d2b3b7a17ed0e4babc34e4e129a8283faadcf4d9

See more details on using hashes here.

File details

Details for the file ale_py-0.10.0-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for ale_py-0.10.0-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 30cb0f31eb79e1811c49ad99ac122033f5eb50369d6b85b5569cc6d5912cda26
MD5 c400579e584c44524d21dd7cca313b81
BLAKE2b-256 c5ae63d5561455e630884d25b4a2ecc3a6a75b1bace750261d1f611a76b86fb7

See more details on using hashes here.

File details

Details for the file ale_py-0.10.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: ale_py-0.10.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.6

File hashes

Hashes for ale_py-0.10.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 64a39dadee4c7f79c891f1b251c6652f0e87479c695c7e14e99140dbfe85c793
MD5 9e57a05d796066315eef176c979254aa
BLAKE2b-256 1e957b62d5b86c9d7c4c26570b43dea29f316bc8d2c7ef65a745bdb2c10bfa91

See more details on using hashes here.

File details

Details for the file ale_py-0.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ale_py-0.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1d976cfe068353205ee74ca282edb32ec12631f86cc4977ba445754af520dddf
MD5 2c0ccf5116b63217d5a84d1704e6c3f7
BLAKE2b-256 8d662219a0425c834a559c0b9c02d7747c48d58c07c38336a2dd427bf694f4bd

See more details on using hashes here.

File details

Details for the file ale_py-0.10.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ale_py-0.10.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 df18a7d7f43e3ad186199a14fc74eeb9c47062f8d0dfb3a827a0652e6fdc02f0
MD5 dd9a880845cb1f4eff1ccc3055bbb47a
BLAKE2b-256 004f50a13b7d039cb8fdfec124c13d5924f84163c2f9e438372bcaf9cfa33fc8

See more details on using hashes here.

File details

Details for the file ale_py-0.10.0-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for ale_py-0.10.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 509cc4a314d221f1f88433df58bd01736cb6cb50098e5f2ac738852341db9e10
MD5 e8aec5b742364655c25fd01f725d1c79
BLAKE2b-256 9fe7233a6f68465f719ef55b6c929b2657113669b6615051e676b35d85bd6a5c

See more details on using hashes here.

File details

Details for the file ale_py-0.10.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: ale_py-0.10.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.6

File hashes

Hashes for ale_py-0.10.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 ebbcacbe57f7796182f49aa8a80c23ae2c29762b3c244eb683a5fbc462506f35
MD5 0f2fe452a046291427c301e6bfb33e90
BLAKE2b-256 1a51c58e022341bca47be419d75b648302c6a53155772538e1599f876e65ccb1

See more details on using hashes here.

File details

Details for the file ale_py-0.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ale_py-0.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f91b876573b1773a317e561347a35d7cbdd2976ed29ac1638b2d8267f696376c
MD5 2eb91282f4e4808df4fc8b20ca645aab
BLAKE2b-256 01a45c0d92ce13c4a3877e4b693907021cad495959f9930ac442797ebb058787

See more details on using hashes here.

File details

Details for the file ale_py-0.10.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ale_py-0.10.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 723835dc89ace48436e504185f2c325ac24ec946a8cae47038c963f744d32253
MD5 0c3a73ef92e3c4ababdaecf27115664b
BLAKE2b-256 5dfcfff0bbd180479f86052ecb38135a216ef64933e4f9d0af853a811b7a3b26

See more details on using hashes here.

File details

Details for the file ale_py-0.10.0-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for ale_py-0.10.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 2f8aa8858ff5d376a2a8fd40057e9e7f2d028437618870afdc6f6b6cdcac502c
MD5 af2695f3eea7ce4a7e8384bd87fb2d23
BLAKE2b-256 ff724b250d734ba6648a652cdfe0eba0b032861598160d562d58c9581bcdf059

See more details on using hashes here.

File details

Details for the file ale_py-0.10.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: ale_py-0.10.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.6

File hashes

Hashes for ale_py-0.10.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 f22f84cad79555aece8babab6226e79589321b4674b3725cc29b1854fda7cb98
MD5 4ee176d999780d6541fd117eab04baa1
BLAKE2b-256 f60577390b1e8354597fced6dab4905ea00d42a225d6b6263b65139bc0b7fae5

See more details on using hashes here.

File details

Details for the file ale_py-0.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ale_py-0.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5977f368bcd3f763859b1128540c62587d6cb3cffa100412ef62440241721abd
MD5 693402848f87c0e9f17f8ec727f1f42d
BLAKE2b-256 1d14345612e39c511f64a73f18dcf3ac7aab7a613217a8e44450a18cac58d071

See more details on using hashes here.

File details

Details for the file ale_py-0.10.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ale_py-0.10.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e929d0b227b88668765dd50da429fede6cbb3199c4dd09dd2721526e1b075abf
MD5 40a1470aa821175144b4e04a7ba43621
BLAKE2b-256 cfcc557f3eefc475ae3dd22819096743b0f4b320ed428c1394415f273c5ee8c5

See more details on using hashes here.

File details

Details for the file ale_py-0.10.0-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for ale_py-0.10.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 4bc744791fde0c78eab6c9897178c33e31a0a1e2b6ca3f6677a27832122cb8d4
MD5 20c009eeaac64f5b2cebe5e9b2976b4b
BLAKE2b-256 f03dafcdde7a1b1e959bdbe6c9df6d2c99cea7cec678d0b405f8a81c52a0ee20

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page