Skip to content
Snippets Groups Projects
Main Pipeline Report Main Coverage Report Dev Pipeline Report Dev Coverage Report

Cooperative Cuisine Environment

The overcooked-like cooperative cuisine environment for real-time human cooperative interactions and artificial agents.

For an extensive introduction, have a look at the Documentation.

Installation

You have two options to install the environment. Either clone it and install it locally or install it in your site-packages. You need a Python 3.10 or newer environment conda environment.

Local Editable Installation

In your repo, PyCharmProjects or similar directory with the correct environment active:

conda install -c conda-forge pygraphviz
git clone https://gitlab.ub.uni-bielefeld.de/scs/cocosy/overcooked-simulator.git
cd overcooked-simulator
pip install -e .

Run

Run it via the command line (in your pyenv/conda environment):

cooperative_cuisine  -s localhost -sp 8080 -g localhost -gp 8000

The arguments shown are the defaults.

You can also start the Game Serverm Study Server (Matchmaking),and the PyGame GUI individually in different terminals.

python3 cooperative_cuisine/game_server.py -g localhost -gp 8000 --manager-ids SECRETKEY1 SECRETKEY2

python3 cooperative_cuisine/study_server.py -s localhost -sp 8080 --manager-ids SECRETKEY1

python3 cooperative_cuisine/pygame_2d_vis/gui.py -s localhost -sp 8080 -g localhost -gp 8000

You can start also several GUIs. The study server does the matchmaking.

Library Installation

The correct environment needs to be active:

pip install cooperative_cuisine@git+https://gitlab.ub.uni-bielefeld.de/scs/cocosy/overcooked-simulator@main

Run

You can now use the environment and/or simulator in your python code. Just by importing it import cooperative_cuisine

Configuration

The environment configuration is currently done with 3 config files + GUI configuration.

Item Config

The item config defines which ingredients, cooking equipment and meals can exist and how meals and processed ingredients can be cooked/created.

Layout Config

You can define the layout of the kitchen via a layout file. The position of counters are based on a grid system, even when the players do not move grid steps but continuous steps. Each character defines a different type of counter. Which character is mapped to which counter is defined in the Environment config.

Environment Config

The environment config defines how a level/environment is defined. Here, the available plates, meals, order and player configuration is done.

PyGame Visualization Config

Here the visualisation for all objects is defined. Reference the images or define a list of base shapes that represent the counters, ingredients, meals and players.

Troubleshooting

cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri) if you have a conda environment:

conda install -c conda-forge libstdcxx-ng