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

ale = ALEInterface()
ale.loadROM("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

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.9.0-cp312-cp312-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.12 Windows x86-64

ale_py-0.9.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.9.0-cp312-cp312-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

ale_py-0.9.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.9.0-cp311-cp311-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.11 Windows x86-64

ale_py-0.9.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.9.0-cp311-cp311-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

ale_py-0.9.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.9.0-cp310-cp310-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.10 Windows x86-64

ale_py-0.9.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.9.0-cp310-cp310-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

ale_py-0.9.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.9.0-cp39-cp39-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.9 Windows x86-64

ale_py-0.9.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.9.0-cp39-cp39-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

ale_py-0.9.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.9.0-cp38-cp38-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.8 Windows x86-64

ale_py-0.9.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.9.0-cp38-cp38-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

ale_py-0.9.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.9.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: ale_py-0.9.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.0.0 CPython/3.12.3

File hashes

Hashes for ale_py-0.9.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3da2eebfae28939d15d7cb66d3766da205ebedecd597ea13465ada0cac925fcb
MD5 790aaa5414d4346a87a9bfcd0eb82968
BLAKE2b-256 1c7b9fcf94a86865782363b92018763e67504d943a65f32fe78785db8b48826f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 de885b9079e8e5de46b740a7b44cb102c5b5b43f9f2d604d02bdc37f7aa5fde3
MD5 b3be4c14dbcf9141145ecd653a964c31
BLAKE2b-256 cfda4c7e71613b8c5f1a3b73296400d8994adb5cee936d91d1b4db9779a55b7c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.9.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b4a5916f5e2ed38b3b45b3741bc151eaf994f968c943febe50d801f606d7de74
MD5 c5e9405791adcef4ffe56db509ac8bf9
BLAKE2b-256 288e9c088c5678a3946a18b9a24e2d97cf497f6829f938d3d6604f2214743390

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.9.0-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 28f9d758ad7b12b049f0e1e76a2066f985d7bd760d1b491f90a9bcc39434e087
MD5 e213b8769c5c3ccfe3c190b5fa75bb87
BLAKE2b-256 0f56c893762b6718d4960c047f20b465308001a4839e7e7e242929a87c795be2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ale_py-0.9.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.0.0 CPython/3.12.3

File hashes

Hashes for ale_py-0.9.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 63e3abdfefb6af0d515d8f0a900bed8443ebf1936e9b9efb525318a01351bc31
MD5 13551ac86f88cbeca849d73c5fe7d0c4
BLAKE2b-256 911e960cdf9c330089b6f8565498632cd17518e67e5ae766174153a4b7e04d4c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ed65813f96818c66732a79bff9e9b24e8bac7c874734fd4773ab3cc5533c5f73
MD5 4ae2e79a8e9ceef78b3587ce9c7179ae
BLAKE2b-256 f59fdec4b23e299667f636b3b3c0048c8bba8308f2cbcbda421e0f10f01798d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.9.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3487f69d1faf4d672f5279bf2092240bc8eda04c3673b603bd9dd2e000c3ef0d
MD5 ff5a80700b50e9a8f01541b2d456331e
BLAKE2b-256 f341a470ee33aecb53e6bd7902558de90f49da5376f059c9820a6128876d16b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.9.0-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 92c97073080b15eab681a56a0db615327ca7af978c89bb8509bb0b903972c61a
MD5 ba0504ddf5bee92be4a14e95e741177d
BLAKE2b-256 b8e98c1d748a069360c447bfee0dd0d923594678b37363b2d171b95d96d61368

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ale_py-0.9.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.0.0 CPython/3.12.3

File hashes

Hashes for ale_py-0.9.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0f326619d1f88a588aa9ce72c4cc040779da32cad371ed3a8bb922ec949caea8
MD5 dd007e67406db2e5944ed465fc4d830a
BLAKE2b-256 956944832e1ee56879ddd51375278ee203844ccf9368c05111f02c93ca0416c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d7faff0ad59be9f1f82878750e1c42dde707ff96544549be0a9b39bf1ca99c12
MD5 568923dcae27d50ee0c35ea240d675b5
BLAKE2b-256 0c1d33e05f77d1f57546c5bee109bd630a0c37329112531f06b46afb29c70699

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.9.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 678a0b31371babc47b9bc9622e9e9c80116aee611eb2b39cd72a1c27fcf36d71
MD5 106621801f6233add41ca98714978bd3
BLAKE2b-256 307ee6e06ba338b23beecb79f6fb760cca8e25766d28fb408205a7554360c0b8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.9.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 c825bac9def710fa57eec69daf2aba158d8ad7a022c1e0293e28020eecc658ce
MD5 cfa03d71893664ed905ffc067239e4d7
BLAKE2b-256 9f26a2a6067becb63128f63ba431b10cf46750b1b05e7cbad270306eb0f3db8e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ale_py-0.9.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.0.0 CPython/3.12.3

File hashes

Hashes for ale_py-0.9.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 b2186cf920b49e5dee01b84b3052edb456bb1200607549a955fea95158a07890
MD5 c6535c061a96d5e0355bf57de38aece2
BLAKE2b-256 b71d633dd293ff7287fa97c1b14cfb2686aa91b54e2d73e8eb06bdfc5b8222bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d86cad7b7ecd2260cf34a74e4d359fb5c1d19d4a6b868b29cdbc16ab9c0c4d3f
MD5 d5e37a782e34d970c3cd93a3d5138a72
BLAKE2b-256 3c285db92970254b0b7b0cab334f3e774b8618109f65ea21c7139f42e3c13cac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.9.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 de7e71d56b5d2f5cce81222dfe8bc2505e2fa0073a4cbce5f55862584f31a8c0
MD5 9e338b4944f8a2b2c8a3fdfcb389b53e
BLAKE2b-256 0a6827ae69b133906b74adc95a2bfb3ae8c16a664043bd0c0a5dd7303f6ea248

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.9.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b68eb77f1731915225fe48ec3555253e91ecf5d6ab82b95f7c2acbeacaff422b
MD5 6922051bce29ef80c63e8f85067e9053
BLAKE2b-256 589d81cace2fc84feb71cb72599ee3d09786422e14adafa62b8ffd125eefbf79

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ale_py-0.9.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.0.0 CPython/3.12.3

File hashes

Hashes for ale_py-0.9.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 cdce1ddf33404066d5d5dd14dce4de3c8b9743db706c5f364875d9f2271d09d7
MD5 6c59f09e67b1024eaf7d4f1022aed5e8
BLAKE2b-256 449cd6b827d6e19cd4906633850ce8ad062d7e267c214df25de9365db361f606

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1128408686572652f5acf680e1864d5147c6a3f17c18843be6c5ac49cc47e775
MD5 b780c0f6ff8e58858a173ca477df1d1f
BLAKE2b-256 d9cb115f76d2aec4dc43e9cb74de28114163ca330a7b49c1109cc0a398284714

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.9.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 02e08ee794a2fd60d14f51156374aa96a73c5adaa945ec6ef908752bd3627603
MD5 20e9b43965fe8245fc952a20d870cd25
BLAKE2b-256 d89cf700ee60462ad043c6dfa7624223c63b73c7dc7dea2415e9cc78a84c6ddc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.9.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 0f331eafc010706672359c9934cc662863f7466f410fe2b36c177c6b20fb6607
MD5 a8142af522a66341952d49285e0739a1
BLAKE2b-256 ea0b7f6fc274f7eb160b3bc4851f355e050170b9e181591d9492969b98c0f2b4

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