A reinforcement learning project built for the second CM50270 coursework at the University of Bath.
This project trains agents (like PPO, DQN, and others) to play Atari Boxing using the Gym ALE environment.
Windows users:
Themulti-agent-ale-pypackage does not compile on native Windows.
You must use Windows Subsystem for Linux (WSL) to run this project.
Once WSL is installed, follow the WSL/Linux instructions below.
git clone https://github.com/YOUR-TEAM-NAME/rl-boxing.git
cd rl-boxingpython3 -m venv venv
# For Mac/Linux/WSL:
source venv/bin/activatepip install -r render_requirements.txtsudo apt update
sudo apt install cmake swig zlib1g-dev libboost-all-dev \
libsdl2-dev libsdl2-image-dev \
python3-dev build-essential
pip install -r og_requirements.txt
# Then add this to ~/.bashrc or ~/.zshrc:
export DISPLAY=:0.0pip install -r (your requirements txt file name).txtAutoROM --accept-licensepython main_rando.pypython training/train_ppo.py
python training/train_dqn.pypython main.pyRandoAgent1: Random agent with equal probabilitiesRandoAgent2: Slower/weaker random agent (for testing)PolicyAgent: PPO agent (trained viatrain_ppo.py)DQNAgent: DQN agent (trained viatrain_dqn.py)
rl-multiagent-boxing/
├── agents/
│ ├── __init__.py
│ ├── dqn_agent.py
│ ├── policy_agent.py
│ ├── rando_agent1.py
│ └── rando_agent2.py
├── models/
│ ├── ppo_model.h5
│ └── dqn_model. (keras or h5)
├── training/
│ ├── train_ppo.py
│ └── train_dqn.py
├── main.py # PPO vs DQN match
├── main_rando.py # RandoAgent1 vs RandoAgent2
├── training_requirements_draft.txt # A SAMPLE FILE FOR TRAINING ON HEX
├── rendering_requirements.txt # For local rendering
├── og_rendering_requirements.txt # For WSL local rendering
└── README.md
University of Bath — CM50270 Reinforcement Learning Coursework 2