Skip to content
Snippets Groups Projects
__init__.py 2.50 KiB
"""

This is the documentation of the Overcooked Simulator.

# About the package

The package contains of an environment for cooperation between players/agents.
A PyGameGUI visualizes the game to human or visual agents in 2D.
A 3D web-enabled version (for example for online studies) can be found in the future [here](https://gitlab.ub.uni-bielefeld.de/scs/cocosy/godot-overcooked-3d-visualization)

# Background / Literature
The overcooked/cooking domain is a well established cooperation domain/task.
There exists environments designed for reinforcement learning agents as well as the game and adaptations of the game for human players in a more "real-time" environment.
They all mostly differ in the visual and graphics dimension. 2D versions like overcooked-ai, ... are most known in the community.
But more visual appealing 3D versions for cooperation with humans are getting developed more frequently (cite,...).
Besides, the general adaptations of the original overcooked game.


# Usage / Examples
Our overcooked simulator is designed for real time interaction but also with reinforcement learning in mind (gym environment).
It focuses on configurability, extensibility and appealing visualization options.

## Human Player
Start `main.py` in your python/conda environment:
```bash
python overcooked_simulator/main.py
```

## Connect with player and receive game state
...

## Direct integration into your code.
Initialize an environment....


# Citation

# Structure of the Documentation
The API documentation follows the file and content structure in the repo.
On the left you can find the navigation panel that brings you to the implementation of
- the **counters**, including the kitchen utility objects like dispenser, stove, sink, etc.,
- the **game items**, the holdable ingredients, cooking equipment, composed ingredients, and meals,
- in **main**, you find an example how to start a simulation,
- the **orders**, how to sample incoming orders and their attributes,
- the **environment**, handles the incoming actions and provides the state,
- the **player**,
- a **simulation runner**, that calls the step function of the environment for a real-time interaction,
- **util**ity code.


"""
import os
from pathlib import Path

ROOT_DIR = Path(os.path.dirname(os.path.abspath(__file__)))  # This is your Project Root
"""A path variable to get access to the layouts coming with the package. For example,
```python 
from overcooked_simulator import ROOT_DIR

environment_config_path = ROOT_DIR / "game_content" / "environment_config.yaml"
```
"""