← all repositories
ntasfi/PyGame-Learning-Environment

Atari ALE, but make it Python and slightly janky

A reinforcement learning gym that swaps C++ ROMs for PyGame sprites so you can train agents without leaving the Python ecosystem.

1.1k stars Python AgentsDomain Apps
PyGame-Learning-Environment
Velocity · 7d
+0.3
★ / day
Trend
steady
star history

What it does PyGame Learning Environment (PLE) wraps simple PyGame games—Pong, Snake, and others—in an API that clones the Arcade Learning Environment interface. You instantiate a game, pass it to PLE(), and your agent gets screen RGB arrays, action sets, and rewards in a familiar loop. It runs headless for servers and displayed for debugging.

The interesting bit The value is the deliberate imitation: if you know ALE, you know PLE. No C++ toolchain, no MAME ROM hunting, just pip install and you’re iterating on agents in pure Python. The author explicitly wants practitioners focused on models, not environment plumbing.

Key highlights

  • API mirrors the well-known Arcade Learning Environment (ALE)
  • Ships with several built-in games; actively accepting PRs for more
  • Headless mode via SDL_VIDEODRIVER=dummy for remote training
  • Dependencies are minimal: numpy, pygame, pillow
  • Citation-ready BibTeX provided for research use

Caveats

  • Documentation is marked WIP; some details may require reading source
  • No tests exist yet, per the public TODO list
  • Parallel learning (one agent, many game copies) is planned but not implemented
  • Library generalization beyond PyGame (e.g., Pyglet) is aspirational

Verdict Good for RL students and researchers who want a lightweight, hackable alternative to ALE without leaving Python. Skip it if you need production-grade vectorized environments or mature docs; this is a research convenience tool, not a framework.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.