Skip to main content

The atari classic asteroids as gymnasium environment

Project description

Atari Asteroids

An implementation of the Atari Classic Asteroids as a gymnasium environment.

Installation

  1. Clone the repository
  2. Use pip to install as python package (pip install <Path of setup.py>)
  3. Copy the Resource folder into the working directory

Dependencies

The environment needs the following packages to run

  1. gymnasium
  2. numpy
  3. pygame

Environment Arguments

The environment can be customized using the following kwargs:

  1. render_mode: possible values are ["human", "agent", "rgb_array", "debug"], these are all explained in the Rendering Modes section
  2. obs_type: either "pixels" or "features", specifies the observation type given to the agent
  3. num_rays: a positive integer, specifying the number of rays the agent will use to see in "features" mode.

Feature Space

The agent get the following values as features:

  1. "agent_pos": Center position of the hitbox of the agent
  2. "forward_normal": Normalized vector in the direction the agent is facing
  3. "direction": Normalized vector in the direction the agent is traveling
  4. "velocity": Scalar velocity of the agent
  5. "angular_velocity": Scalar angular velocity of the agent
  6. "hit_distance": Distance to the asteroid hit
  7. "ray_direction": Normalized direction vector of the Asteroid the ray intersected (not implemented yet) The Shape of the vector depends on the number of rays the agent uses to see, but can be calculated via (8 + 5 * <num_rays>)

Pixel Space

A 64 by 64 pixel image, the Observation Space has the Shape (64, 64, 3).

Reward Function

The agent gets a positiv reward of 1.0 if he destroys an asteroid. The agent gets a negativ reward of -10.0 if he gets hit by an asteroid.

Rendering Modes

The Environment supports 4 different rendering mode:

1. "human"

The normal rendering mode, rendering the environment like a human would see the game. human

2. "debug"

Same as human, but with the following debug info visualized:

  1. the hitbox of the player as orange box
  2. the hitbox of the asteroids as orange circle
  3. the rays used by the agent to "see" as blue lines
  4. the intersection points of the rays with the asteroids as red dots
  5. the players velocity, angular velocity and position as text in the topleft corner human

3. "agent"

Visualizes the environment in a way the agent would "see" by rendering...

  1. ...the rays (in blue) it uses to "see"
  2. ...the forward facing direction of the agent (in red), this is the same as one of the eight rays
  3. ...the moving velocity and direction of the player (as green ray)
  4. ...the turning velocity and direction of the player (as orange ray)
  5. ...the intersection points of the rays with asteroids (in red)
  6. ...the direction vector of the asteroids (in red)
  7. ...the velocity, angular velocity and position of the player (as text) agent

4. "rgb_array"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

asteroidsenv-1.3.0.tar.gz (22.2 kB view details)

Uploaded Source

Built Distribution

asteroidsenv-1.3.0-py3-none-any.whl (20.6 kB view details)

Uploaded Python 3

File details

Details for the file asteroidsenv-1.3.0.tar.gz.

File metadata

  • Download URL: asteroidsenv-1.3.0.tar.gz
  • Upload date:
  • Size: 22.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for asteroidsenv-1.3.0.tar.gz
Algorithm Hash digest
SHA256 7d9b6e4abda05989b1c7d82b31166d5338e87375efe293a8a25bc505b592657c
MD5 b502307151333638c2bf4754e41d9723
BLAKE2b-256 9d7209fc80c67e9a3f80b39bcde3a5a33f3b7aeda31e3fe0eaafc824e9bfce76

See more details on using hashes here.

File details

Details for the file asteroidsenv-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: asteroidsenv-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 20.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for asteroidsenv-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6f49e6ea9a2bdc996d19e3992ba4a8d19ea5d22243e94b1ed1882266ea791b11
MD5 ff53c2f20eb97511b0258d5eb0cc3f23
BLAKE2b-256 b4912db6e57ce3a6c5a21719bac82943f26da06d6b3f743f48b8898ba0b9982d

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