Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

The Arcade Learning Environment

Build Status

The Arcade Learning Environment (ALE) is a simple object-oriented 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 50 Atari 2600 games.
  • Multi-platform code (compiled and tested under macOS, Windows, and several Linux distributions).
  • Python development is supported through pybind11.
  • Agents programmed in C++ have access to all features in the ALE.
  • Visualization tools.

Quick Start

You must have a valid C++17 compiler and the following dependencies installed (we recommend using vcpkg on all platforms)

vcpkg install zlib sdl1

Note: sdl is optional but can be useful for display/audio support (i.e., display_screen and sound config options).

Python

The package ale-py will be distributed via PyPi but for the time being Python users can install the ALE via

pip install .

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

You can now import the ALE in your Python projects with

from ale_py import ALEInterface

ale = ALEInterface()
ale.loadROM(...)

C++

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 (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}
}

Metadata

Release files for ale-py 0.7rc2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for ale-py 0.7rc2
File
ale_py-0.7rc2-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
ale_py-0.7rc2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
ale_py-0.7rc2-cp39-cp39-macosx_10_15_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.15+ x86-64 Details
ale_py-0.7rc2-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
ale_py-0.7rc2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
ale_py-0.7rc2-cp38-cp38-macosx_10_15_x86_64.whl CPython 3.8 CPython 3.8 macOS 10.15+ x86-64 Details
ale_py-0.7rc2-cp37-cp37m-win_amd64.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-64 Details
ale_py-0.7rc2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64 Details
ale_py-0.7rc2-cp37-cp37m-macosx_10_15_x86_64.whl CPython 3.7 CPython 3.7 pymalloc macOS 10.15+ x86-64 Details
ale_py-0.7rc2-cp36-cp36m-win_amd64.whl CPython 3.6 CPython 3.6 pymalloc Windows x86-64 Details
ale_py-0.7rc2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ x86-64 Details
ale_py-0.7rc2-cp36-cp36m-macosx_10_15_x86_64.whl CPython 3.6 CPython 3.6 pymalloc macOS 10.15+ x86-64 Details

Total release size: 14.4 MB

Release files / ale_py-0.7rc2-cp39-cp39-win_amd64.whl

Download URL ale_py-0.7rc2-cp39-cp39-win_amd64.whl
Size 902.3 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
14ceb020d17d7b8ea3d6a8253ed1813875241e3322acb2b3b8a2089396d38631
BLAKE2b-256 checksum
How to use checksums
8a314fc3c2034ef1b77cf160288a845429edc43d534257a237cc7d1b1cd2617d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5

Release files / ale_py-0.7rc2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ale_py-0.7rc2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.6 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
10addbb92f2aa46a9363250a30ec939a2643d611bfed256d1b57fbbe5e0a764d
BLAKE2b-256 checksum
How to use checksums
61cb791d92e779e99f2c3e6ebc469328966721b98b979bdbc9aba26ef6248442
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5

Release files / ale_py-0.7rc2-cp39-cp39-macosx_10_15_x86_64.whl

Download URL ale_py-0.7rc2-cp39-cp39-macosx_10_15_x86_64.whl
Size 1.1 MB
Tags CPython 3.9 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
cc51f534cb6d03d996100155ca77a8626b490451f8ab013c3c77470ea2664ede
BLAKE2b-256 checksum
How to use checksums
6631760b1fef210e742a110dae9aa541b69541d0e5c1cdb1980a8fefb01e8e6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5

Release files / ale_py-0.7rc2-cp38-cp38-win_amd64.whl

Download URL ale_py-0.7rc2-cp38-cp38-win_amd64.whl
Size 902.2 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
859e4d31648a0fc78b16c7d4e0bcbfad160d9352b0fd6e53c3ee2cc93dbaf5a0
BLAKE2b-256 checksum
How to use checksums
fe816b58cd983bbbb88a32d0a314874918628d736340ec92e55d5a6b280cb3d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5

Release files / ale_py-0.7rc2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ale_py-0.7rc2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.6 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
a5ac233f306b5e559ae03b81a490582ca748d53fcfdbad1206188c46ed823d5c
BLAKE2b-256 checksum
How to use checksums
8ecf907d27887bb74bcc545ff98bdf115241a4ed91cf32c35433d19ff7101000
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5

Release files / ale_py-0.7rc2-cp38-cp38-macosx_10_15_x86_64.whl

Download URL ale_py-0.7rc2-cp38-cp38-macosx_10_15_x86_64.whl
Size 1.1 MB
Tags CPython 3.8 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
66436ad668f35e826edcf9f5982318996f536a74a069ce6e324118d97e288238
BLAKE2b-256 checksum
How to use checksums
04a4c47a9c47d096e553555e1746650a3e30e94e6ecce3e6513eb5893b8eb977
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5

Release files / ale_py-0.7rc2-cp37-cp37m-win_amd64.whl

Download URL ale_py-0.7rc2-cp37-cp37m-win_amd64.whl
Size 902.3 kB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
e132c5d17aff6c81b8725c1d88a2f3a10d3b431c1e2712d1728277dc9fdb19cb
BLAKE2b-256 checksum
How to use checksums
141cf19930ae05a50d0004ecdcf7f76c7a71085944c4e065aaf31768c69d93bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5

Release files / ale_py-0.7rc2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ale_py-0.7rc2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.6 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
f6a3bcbe31c0281a74bba11d5e8097e0bc2749261090ca4a0abc3872be703529
BLAKE2b-256 checksum
How to use checksums
7b74c3eaaadc100ddb75cd405811173cb57e20bab9af59e3f40e1265a558ce31
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5

Release files / ale_py-0.7rc2-cp37-cp37m-macosx_10_15_x86_64.whl

Download URL ale_py-0.7rc2-cp37-cp37m-macosx_10_15_x86_64.whl
Size 1.1 MB
Tags CPython 3.7 CPython 3.7 pymalloc macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
1f7b7c4001b11f7c39c0e4acf0b87f0127f197963759813e280dd945a64f14af
BLAKE2b-256 checksum
How to use checksums
0274b6cab0b8d9e57cc566c2c865286b9348f8a576f36777b3987c088d998295
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5

Release files / ale_py-0.7rc2-cp36-cp36m-win_amd64.whl

Download URL ale_py-0.7rc2-cp36-cp36m-win_amd64.whl
Size 902.4 kB
Tags CPython 3.6 CPython 3.6 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
dde3dec8d688c9e45495cf029cc5cd252fcce4a611279e3d607878bd76a818ec
BLAKE2b-256 checksum
How to use checksums
72c1e96711b8a40a26dadfff2d0f14ae037bc3262d7f003d500af98f695c90b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5

Release files / ale_py-0.7rc2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ale_py-0.7rc2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.6 MB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
5a32421f97345bdb02608c20ca59d71642807d919fc1cd25213a035d474cf3f3
BLAKE2b-256 checksum
How to use checksums
71763a3f54109ad1e178771deb9887fd7ca1218b7815f028648e2b1f9bb90e6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5

Release files / ale_py-0.7rc2-cp36-cp36m-macosx_10_15_x86_64.whl

Download URL ale_py-0.7rc2-cp36-cp36m-macosx_10_15_x86_64.whl
Size 1.1 MB
Tags CPython 3.6 CPython 3.6 pymalloc macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
428b1f1d4bffbb0970c1d2c3310e25edcae8c8dfe8f9ca47f251fa5ccead9259
BLAKE2b-256 checksum
How to use checksums
c7ddb02bafb2a98480cec553d2915e5fb5f94321ab2fb0588321443e1ebc7c1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page