Skip to main content

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

Project description

The Arcade Learning Environment Arcade Learning Environment

Continuous Integration 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 OpenAI Gym.
  • Visualization tools.

Quick Start

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

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 install may fail.

You can now import the ALE in your Python projects with

from ale_py import ALEInterface

ale = ALEInterface()

ROM Management

The ALE doesn't distribute ROMs but we do provide a couple tools for managing your ROMs. First is the command line tool ale-import-roms. You can simply specify a directory as the first argument to this tool and we'll import all supported ROMs by the ALE.

ale-import-roms roms/

[SUPPORTED]       breakout   roms/breakout.bin
[SUPPORTED]       freeway    roms/freeway.bin

[NOT SUPPORTED]              roms/custom.bin

Imported 2/3 ROMs

Furthermore, Python packages can expose ROMs for discovery using the special ale-py.roms entry point. For more details check out the example python-rom-package.

Once you've imported a supported ROM you can simply import the path from the ale-py.roms package and load the ROM in the ALE:

from ale_py.roms import Breakout

ale.loadROM(Breakout)

OpenAI Gym

Gym support is included in ale-py. Simply install the Python package using the instructions above. You can also install gym[atari] which also installs ale-py with Gym.

As of Gym v0.20 and onwards all Atari environments are provided via ale-py. We do recommend using the new v5 environments in the ALE namespace:

import gym

env = gym.make('ALE/Breakout-v5')

The v5 environments follow the latest methodology set out in Revisiting the Arcade Learning Environment by Machado et al..

The only major change difference from Gym's AtariEnv is that we'd recommend not using the env.render() method in favour of supplying the render_mode keyword argument during environment initialization. The human render mode will give you the advantage of: frame perfect rendering, audio support, and proper resolution scaling. For more information check out docs/gym-interface.md.

For more information on changes to the Atari environments in OpenAI Gym please check out the following blog post.

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.8.1-cp311-cp311-win_amd64.whl (952.4 kB view details)

Uploaded CPython 3.11 Windows x86-64

ale_py-0.8.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

ale_py-0.8.1-cp311-cp311-macosx_11_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

ale_py-0.8.1-cp311-cp311-macosx_10_15_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11 macOS 10.15+ x86-64

ale_py-0.8.1-cp310-cp310-win_amd64.whl (952.4 kB view details)

Uploaded CPython 3.10 Windows x86-64

ale_py-0.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

ale_py-0.8.1-cp310-cp310-macosx_11_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

ale_py-0.8.1-cp310-cp310-macosx_10_15_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10 macOS 10.15+ x86-64

ale_py-0.8.1-cp39-cp39-win_amd64.whl (952.3 kB view details)

Uploaded CPython 3.9 Windows x86-64

ale_py-0.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

ale_py-0.8.1-cp39-cp39-macosx_11_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

ale_py-0.8.1-cp39-cp39-macosx_10_15_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

ale_py-0.8.1-cp38-cp38-win_amd64.whl (952.0 kB view details)

Uploaded CPython 3.8 Windows x86-64

ale_py-0.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

ale_py-0.8.1-cp38-cp38-macosx_11_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

ale_py-0.8.1-cp38-cp38-macosx_10_15_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

ale_py-0.8.1-cp37-cp37m-win_amd64.whl (952.6 kB view details)

Uploaded CPython 3.7m Windows x86-64

ale_py-0.8.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

ale_py-0.8.1-cp37-cp37m-macosx_10_15_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.7m macOS 10.15+ x86-64

File details

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

File metadata

  • Download URL: ale_py-0.8.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 952.4 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for ale_py-0.8.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9773eea7505484e024beb2fff0f3bfd363db151bdb9799d70995448e196b1ded
MD5 d26cd0f3fe53238e1aef9cfa0c3803ce
BLAKE2b-256 b2a5f93747205056eb741d1a34acb34b69ea0a46ef9eee4699e0a1cb67628646

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.8.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0006d80dfe7745eb5a93444492337203c8bc7eb594a2c24c6a651c5c5b0eaf09
MD5 d03d8fd5adaca1474d09d360e34d50e9
BLAKE2b-256 298452f94d9948e1800337c91ad19bafd36cf05745352416a7ce5fac68c2a55e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.8.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f10b1df8774bbe3b00365748b5e0e07cf35f6a703bbaff991bc7b3b2247dccc9
MD5 37eade978787d288c5bb58a7947d1938
BLAKE2b-256 673f3f53173019d153c07025f0387cce61e2d6bccd3d82cdbffb98402388c4bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.8.1-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 0856ca777473ec4ae8a59f3af9580259adb0fd4a47d586a125a440c62e82fc10
MD5 338fed8a2efc5e832cae7ad28c3c206b
BLAKE2b-256 4b95bb267ed80f590ce7fec5ceaaf7b3ec4881538c747da704005cfd0d22325f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ale_py-0.8.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 952.4 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for ale_py-0.8.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5fcc31f495de79ee1d6bfc0f4b7c4619948851e679bbf010035e25f23146a687
MD5 322bd3f5dfd56141441aff1cb6b880fb
BLAKE2b-256 8d2d3084ab21dab8b35f7be6e762fc7dd7651971b87cf58a8e1a1b1c2975b616

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c9b168eb88c87d0f3e2a778e6c5cdde4ad951d1ca8a6dc3d3679fd45398df7d1
MD5 c0ab0159ad6c5c7cad3f3e9774c5bfba
BLAKE2b-256 740ab1e87c6470cf2993470f68f4a3d7d79c47a523f116a239c49ac090707aaa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.8.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6f2f6b92c8fd6189654979bbf0b305dbe0ecf82176c47f244d8c1cbc36286b89
MD5 f3c446a4dd7ab686c4bafb6ad0755947
BLAKE2b-256 f9aeb0af1c760b8a5b62f1ac3ca09ed0edadd1e5744e87dbdf5bf17dda5334c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.8.1-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b2aa2f69a4169742800615970efe6914fa856e33eaf7fa9133c0e06a617a80e2
MD5 bc04f57c256f650ac06b5065b36d4ef4
BLAKE2b-256 e1f66d8cb491611e5424421a1878e42ee78a9edf9a0b08b1a05565ec92c4da10

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ale_py-0.8.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 952.3 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for ale_py-0.8.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 d49b550a2d9c25b63c343aa680fd81f253a3714cdc0e1835640933ebff1798ff
MD5 de4e2764276eb1dfd3082eb8c5b29118
BLAKE2b-256 e932a4b814532961cdef90704e80a8cccb8b9d3222b2201e660eb2ad2c1b0bd5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b00f74e27815131c1a2791f3d48114363fa2708e19f09ce6b7b614cb14c9d469
MD5 033024e3d39f046f2af56f67ca5dd454
BLAKE2b-256 32ae783e3cabd6e54f94334d46686c7a547c0cf0805977bcef65c7690d714471

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.8.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f278036f9b6066062abcdf0987a0ec5a8e0f22a2c7cfac925e39378d4343d490
MD5 9ddf081d8314d8a9fec30265f3eadbce
BLAKE2b-256 011448aa35f1c70e0e0800b05375d2abe0535911eaad9a610f1e4ce4110491a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.8.1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 2d9fcfa06c74a613c5419e942ef4d3e0959533f52e94d2d4bda61d07fbfffeee
MD5 539ccae4509137e205544b46dfaaed48
BLAKE2b-256 6afa4829222b69b76379de81e1eb882e0bf52ef039b193f130b9f036650776cc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ale_py-0.8.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 952.0 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for ale_py-0.8.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 817adf9a3a82c4923c731e634520a5ecf296aca0367f5c69959a96b32119d831
MD5 5572dec5ac4dafdde92ae6f1dedf1119
BLAKE2b-256 37c69b20d3414ac0c70bd786c1943d910ba6fb23e1ff345630598c10074d485a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 eadf9f3990b4ff2f9e5ca35889f5e2e95cddd6a353d9d857d9b4601a6e1c4e7c
MD5 028f9e0446ee38c6e2192c481c96f3be
BLAKE2b-256 72d3137e3f6e1a9c632e1f09c6bde49e7f1a78a88a2c9e303754cfd89278632b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.8.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7cd74b7ee0248ef11a086c9764e142e71defd40ec8989a99232bfd2d9e8023be
MD5 2fd91fdb77c30291471e00760ac4e1d8
BLAKE2b-256 d190d82f61a2f865f88b3a2974b0ab07c4bba9f343871f0b6a00cbc1c51e96f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ale_py-0.8.1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 0ffecb5c956749596030e464827642945162170a132d093c3d4fa2d7e5725c18
MD5 043ac6af5832abbd939237061cf40ad9
BLAKE2b-256 8f4fcaf21a8299b4343bb093082872865f164885e11681c6f6245268fc3b5a5a

See more details on using hashes here.

File details

Details for the file ale_py-0.8.1-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: ale_py-0.8.1-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 952.6 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for ale_py-0.8.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 ade5c32af567629164a6b49378978c728a15dc4db07ad6b679e8832d4fd3ea1f
MD5 ec43577e58efe7b86e82241c6b0ef8ec
BLAKE2b-256 4ff14420705a47db259cd3adbb73f7265cb8f32f2efac0c2e56779dcd4b3e420

See more details on using hashes here.

File details

Details for the file ale_py-0.8.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ale_py-0.8.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ae2ba24557e0ce541ea3be13b148db2a9cfa730d83537b4cbed5e10449826e51
MD5 20d8e25d2e1dd97f5b67338e0f81e0ef
BLAKE2b-256 1f8e56f204f841d1d1ebdea6014a5e00e3c3e9e6ac1adaf2b11da00a7d55146a

See more details on using hashes here.

File details

Details for the file ale_py-0.8.1-cp37-cp37m-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for ale_py-0.8.1-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 87557db05be0e04130e2ec1bf909d3bb0b0bc034645d4f664e6baa573fe32191
MD5 b7baeb9ebce3bb645fe81ea564ab8426
BLAKE2b-256 6d0d2d737d8bce088b00016a1f988ddcdd3f507b404179d1bebe0b9a7dc07830

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