Skip to content
Snippets Groups Projects
README.md 4.34 KiB
Newer Older
  • Learn to ignore specific revisions
  • <div align="center">
    
    ![Main Pipeline Report](https://gitlab.ub.uni-bielefeld.de/scs/cocosy/cooperative-cuisine/badges/main/pipeline.svg?key_text=Main+Pipeline&key_width=82)
    ![Main Coverage Report](https://gitlab.ub.uni-bielefeld.de/scs/cocosy/cooperative-cuisine/badges/main/coverage.svg?job=pytest&key_text=Main+Test+Coverage&key_width=114)
    ![Dev Pipeline Report](https://gitlab.ub.uni-bielefeld.de/scs/cocosy/cooperative-cuisine/badges/dev/pipeline.svg?key_text=Dev+Pipeline&key_width=80)
    ![Dev Coverage Report](https://gitlab.ub.uni-bielefeld.de/scs/cocosy/cooperative-cuisine/badges/dev/coverage.svg?job=pytest&key_text=Dev+Test+Coverage&key_width=112)
    
    # Cooperative Cuisine Environment
    
    Florian Schröder's avatar
    Florian Schröder committed
    
    
    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](https://scs.pages.ub.uni-bielefeld.de/cocosy/cooperative-cuisine).
    
    <div align="center">
    <img src="cooperative_cuisine/pygame_2d_vis/images/cooperative_cuisine.png"  width="800">
    </div>
    
    Florian Schröder's avatar
    Florian Schröder committed
    
    ## Installation
    
    Florian Schröder's avatar
    Florian Schröder committed
    
    You have two options to install the environment. Either clone it and install it locally or install it in your
    site-packages.
    
    Florian Schröder's avatar
    Florian Schröder committed
    You need a Python 3.10 or newer environment conda environment.
    
    Florian Schröder's avatar
    Florian Schröder committed
    
    ### Local Editable Installation
    
    Florian Schröder's avatar
    Florian Schröder committed
    
    In your `repo`, `PyCharmProjects` or similar directory with the correct environment active:
    
    
    Florian Schröder's avatar
    Florian Schröder committed
    ```bash
    
    Florian Schröder's avatar
    Florian Schröder committed
    conda install -c conda-forge pygraphviz
    
    git clone https://gitlab.ub.uni-bielefeld.de/scs/cocosy/cooperative-cuisine.git
    cd cooperative-cuisine
    
    Florian Schröder's avatar
    Florian Schröder committed
    pip install -e .
    
    Florian Schröder's avatar
    Florian Schröder committed
    
    #### Run
    
    
    Run it via the command line (in your pyenv/conda environment):
    
    
    Florian Schröder's avatar
    Florian Schröder committed
    ```bash
    
    cooperative-cuisine start -s localhost -sp 8080 -g localhost -gp 8000
    
    You can also start the **Game Server**m **Study Server** (Matchmaking),and the **PyGame GUI** individually in different
    terminals.
    
    cooperative-cuisine game-server -g localhost -gp 8000 --manager-ids SECRETKEY1 SECRETKEY2
    
    cooperative-cuisine study-server -s localhost -sp 8080 -g localhost -gp 8000 --manager-ids SECRETKEY1
    
    cooperative-cuisine gui -s localhost -sp 8080 -g localhost -gp 8000
    
    You can start also several GUIs. The study server does the matchmaking.
    
    Florian Schröder's avatar
    Florian Schröder committed
    ### Library Installation
    
    Florian Schröder's avatar
    Florian Schröder committed
    The correct environment needs to be active:
    
    Florian Schröder's avatar
    Florian Schröder committed
    ```bash
    
    pip install cooperative_cuisine@git+https://gitlab.ub.uni-bielefeld.de/scs/cocosy/cooperative-cuisine@main
    
    Florian Schröder's avatar
    Florian Schröder committed
    ```
    
    #### Run
    
    Florian Schröder's avatar
    Florian Schröder committed
    
    You can now use the environment and/or simulator in your python code. Just by importing
    
    it `import cooperative_cuisine`
    
    Florian Schröder's avatar
    Florian Schröder committed
    
    ## Configuration
    
    Florian Schröder's avatar
    Florian Schröder committed
    The environment configuration is currently done with 3 config files + GUI configuration.
    
    ### Item Config
    
    Florian Schröder's avatar
    Florian Schröder committed
    
    The item config defines which ingredients, cooking equipment and meals can exist and how meals and processed ingredients
    can be cooked/created.
    
    Florian Schröder's avatar
    Florian Schröder committed
    
    ### Layout Config
    
    Florian Schröder's avatar
    Florian Schröder committed
    
    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.
    
    Florian Schröder's avatar
    Florian Schröder committed
    
    ### Environment Config
    
    Florian Schröder's avatar
    Florian Schröder committed
    
    The environment config defines how a level/environment is defined. Here, the available plates, meals, order and player
    configuration is done.
    
    ### Study Config
    When starting a study, the study config holds all the information about the levels (layouts, dishes, orders). In the argument_parser.py it can be chosen whether the 
    orders should in appear in a random ordering or whether their schedule should be pre-defined. 
    
    
    Florian Schröder's avatar
    Florian Schröder committed
    ### PyGame Visualization Config
    
    
    Florian Schröder's avatar
    Florian Schröder committed
    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:
    
    ```bash
    conda install -c conda-forge libstdcxx-ng
    
    Florian Schröder's avatar
    Florian Schröder committed
    ```
    
    
    ## License
    Cooperative Cuisine © 2024 by [Social Cognitive Systems Group](https://scs.techfak.uni-bielefeld.de/) is licensed under [`CC BY-NC-SA 4.0`](https://creativecommons.org/licenses/by-nc-sa/4.0/?ref=chooser-v1) [![License: CC BY-NC-SA 4.0](https://licensebuttons.net/l/by-nc-sa/4.0/80x15.png)](https://creativecommons.org/licenses/by-nc-sa/4.0/)