---
# System prepended metadata

title: GA Workshop

---

## System Requirement

### Windows

1. Download Swig from [HERE](http://prdownloads.sourceforge.net/swig/swigwin-4.1.1.zip)
    * Extract zipped files to `"C:/swigwin/"`
    * Add `"C:/swigwin/"` to "path" in environmental variable
2. Download MS Build Tools from [HERE](https://visualstudio.microsoft.com/zh-hant/visual-cpp-build-tools/)
3. Run installer, make sure you have ticked
    * MSVC v143 - VS 2022 C++ ...
    * Windows 10 SDK (...) or Windows 11 SDK (...)
    ![MS Build Tools Installer](./MS%20Build%20Tools.png)

### macOS

1. Install `homebrew` (see https://brew.sh/)
2. Install `swig`
    > `brew install swig`

### Python Packages

1. Check your Python version (3.10 recommended). If you need to change Python version,
   a. uninstall your current Python
   b. download Python 3.10 from [HERE](https://www.python.org/downloads/)
2. Install packages
    > `pip install swig`
    > `pip install gymnasium[box2d]`

### Miscellaneous

If you occur an ImportError like `"ImportError: Can't find framework /System/Library/Frameworks/OpenGL.framework."`, please run the following installation.

    > `pip install pyglet==1.5.11`

<hr/>

## Detailed Information about LunarLander-Continuous-v2
* Landing pad is always at coordinates (0,0).
* Coordinates are the first two numbers in state vector.
* Reward for moving from the top of the screen to landing pad and zero speed is about 100..140 points.
* If lander moves away from landing pad it loses reward back.
* Episode finishes if the lander crashes or comes to rest, receiving additional -100 or +100 points. Each leg ground contact is +10.
* Firing main engine is -0.3 points each frame. Solved is 200 points. Landing outside landing pad is possible.
* Fuel is infinite, so an agent can learn to fly and then land on its first attempt.
* Action is two real values vector from -1 to +1. First controls main engine, -1..0 off, 0..+1 throttle from 50% to 100% power.
* Engine can't work with less than 50% power. Second value -1.0..-0.5 fire left engine, +0.5..+1.0 fire right engine, -0.5..0.5 off.