This project implements a multi-agent reinforcement learning environment inspired by Overcooked.
Two agents must cooperate implicitly (without pre-defined roles, they will chose their role by their own decesion based on environment feedback) to complete cooking tasks such as:
- Picking up onions and dishes
- Cooking in a pot
- Delivering finished soup to a counter
This project uses Unity ML-Agents package with conda envionment package management tool.
1. Create and activate a conda environment (About the python version, you can take reference from Unity Ml-Agents guideline. It's better to set up the environment step by step followed by Unity Ml-Agnets guide)
import COVS.unitypackage to your unity 3D project.
And then create you own environment by conda.
conda create -n overcooked
conda activate overcookedRun training with your configuration file (run.yaml):
mlagents-learn run.yaml --run-id=<your_run_id> --forcerun.yaml→ defines PPO/MAPPO training parameters--run-id→ unique identifier for each experiment--force→ overwrite previous runs with the same ID
Start TensorBoard to visualize training curves:
tensorboard --logdir results/<your_run_id>You can monitor:
- Cumulative Reward → overall performance of agents
- Episode Length → efficiency of task completion
- Policy & Value Losses → training stability
- Two agents interact in the same environment
- Role allocation is implicit, not pre-defined
- Agents must coordinate to achieve maximum reward by finishing and delivering cooked food
conda activate overcooked
mlagents-learn run.yaml --run-id=test_run --force
tensorboard --logdir results/test_run