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

Release files for ale-py 0.7rc4

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.7rc4
File
ale_py-0.7rc4-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
ale_py-0.7rc4-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.7rc4-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
ale_py-0.7rc4-cp39-cp39-macosx_10_15_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.15+ x86-64 Details
ale_py-0.7rc4-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
ale_py-0.7rc4-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.7rc4-cp38-cp38-macosx_11_0_arm64.whl CPython 3.8 CPython 3.8 macOS 11.0+ ARM64 Details
ale_py-0.7rc4-cp38-cp38-macosx_10_15_x86_64.whl CPython 3.8 CPython 3.8 macOS 10.15+ x86-64 Details
ale_py-0.7rc4-cp37-cp37m-win_amd64.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-64 Details
ale_py-0.7rc4-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.7rc4-cp37-cp37m-macosx_10_15_x86_64.whl CPython 3.7 CPython 3.7 pymalloc macOS 10.15+ x86-64 Details
ale_py-0.7rc4-cp36-cp36m-win_amd64.whl CPython 3.6 CPython 3.6 pymalloc Windows x86-64 Details
ale_py-0.7rc4-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.7rc4-cp36-cp36m-macosx_10_15_x86_64.whl CPython 3.6 CPython 3.6 pymalloc macOS 10.15+ x86-64 Details

Total release size: 16.4 MB

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

Download URL ale_py-0.7rc4-cp39-cp39-win_amd64.whl
Size 902.8 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
dc12ba06c632df69a90cd92660bd9e0d39d259063860d9a62737709ce8c748c4
BLAKE2b-256 checksum
How to use checksums
b42826ddc94b387361662aff25380286d14cf416550e1f32775f3721507e4ae1
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.7rc4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ale_py-0.7rc4-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
a67a3b2d60ab009fd2b059bcd7393871366e7cf3f8eb495835de0f3fcac10a41
BLAKE2b-256 checksum
How to use checksums
fc9e7c95685ed0f40f5d0e317116560ddc99420f334323f33a9145e148ce409a
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.7rc4-cp39-cp39-macosx_11_0_arm64.whl

Download URL ale_py-0.7rc4-cp39-cp39-macosx_11_0_arm64.whl
Size 971.4 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
67b09200ef2742d571b0d1a3f26194fd6abcd2be91f9c3a1b6f7ccc8e290f736
BLAKE2b-256 checksum
How to use checksums
ac09a43a9c9e5ad6b8cf3f019f450cfc1160d0a2371c45b935ddd75a90c94f3b
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.7rc4-cp39-cp39-macosx_10_15_x86_64.whl

Download URL ale_py-0.7rc4-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
feecf8ce660d9df82bcb7d3b390186b9c05a541a0d6620ec84b564a9382e7e59
BLAKE2b-256 checksum
How to use checksums
168f78a4131c1123139e06768e017a8ecc0c459f57ff1e04fa093a04dc5768bb
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.7rc4-cp38-cp38-win_amd64.whl

Download URL ale_py-0.7rc4-cp38-cp38-win_amd64.whl
Size 902.7 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
8f6e144947fd7c7f4302f72cd94501a3079ac1b23455ae643e3b5af28fbf10ff
BLAKE2b-256 checksum
How to use checksums
f9298adf322cd2192ffe7a5913f7f1a8c1242d378bd2af88a918598b32a4ba3e
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.7rc4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ale_py-0.7rc4-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
e1f1d8a97a7d27bd722047e4d8e007b0799c4e06b3db3283e560f8ecdce68a01
BLAKE2b-256 checksum
How to use checksums
8fb4078b1a8e8104bd347e2fd2844b2b2e949963e10c5c5f9a04972631aee2d3
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.7rc4-cp38-cp38-macosx_11_0_arm64.whl

Download URL ale_py-0.7rc4-cp38-cp38-macosx_11_0_arm64.whl
Size 971.3 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c4fc5c5d432b0328e94135b303a5f14515a1416c040932453e2ffbf5ac6158bf
BLAKE2b-256 checksum
How to use checksums
26d8ddd496b3d62b1e19797f33fe702d4a9a735a95f1456e7577ad45a5e8e034
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.7rc4-cp38-cp38-macosx_10_15_x86_64.whl

Download URL ale_py-0.7rc4-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
2e0fa7adf3c38ef559cee4764907fb515e0dcb4a544211f9e95cf78760439633
BLAKE2b-256 checksum
How to use checksums
985825a26e9e15fea02fca6b95a88b1bca2d49b2e3e9c0a3e212d0f40eff17a0
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.7rc4-cp37-cp37m-win_amd64.whl

Download URL ale_py-0.7rc4-cp37-cp37m-win_amd64.whl
Size 902.9 kB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
901d3b543bd22b4333a883d29da6031551c035adbdb9ab04d2f3558b9ffe9e2d
BLAKE2b-256 checksum
How to use checksums
0fc81603b384db8a01233f6144cbe68469554865bd0ecb296184938cf5c3073d
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.7rc4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ale_py-0.7rc4-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
2c811e493b1325f13bf31245c77dd44a461b1b9943f124c0594d1e3ecf4e2f96
BLAKE2b-256 checksum
How to use checksums
bfe233480717b1daf8325e0b98008334d3c869d938741512c1f12bdd6a9ac24a
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.7rc4-cp37-cp37m-macosx_10_15_x86_64.whl

Download URL ale_py-0.7rc4-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
b275b1013a86dfd2ad9066433ca674e0709d67f040f455e3ed5da5154e81e4bc
BLAKE2b-256 checksum
How to use checksums
7eba3be1c5a4ebac1453729d207ce48a18473daffdf2806feb4b4182224a911a
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.7rc4-cp36-cp36m-win_amd64.whl

Download URL ale_py-0.7rc4-cp36-cp36m-win_amd64.whl
Size 903.0 kB
Tags CPython 3.6 CPython 3.6 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
4dea017d7b72ae3100c06cce4786f0a42f0ed286ce2183732fb2cb3a560bc48b
BLAKE2b-256 checksum
How to use checksums
14ca1dbf206394d6d3331ebc9d8e730e4448615debaafabe5ed9c7e50383bd57
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.7rc4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ale_py-0.7rc4-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
9825d967803cac7f30d43150efca035a3ad17d6aff14219dd6b372750f49e5b1
BLAKE2b-256 checksum
How to use checksums
fe40e786355d81ad2196c147a822bef7cccce0727b49d7c5e7fc62d354b4259b
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.7rc4-cp36-cp36m-macosx_10_15_x86_64.whl

Download URL ale_py-0.7rc4-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
c4e0dc1fe544d64822eee8e5355b7c6b426b00fd9622d55b9b04f55220c1bb1f
BLAKE2b-256 checksum
How to use checksums
12a08d9171c11a64f2d89864071acf480e24efd81566a45ea1fa602c0d5d17ac
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