camelot-wrapper

Wrapper that connects Camelot with EM-Glue and performs some game management tasks.

https://github.com/liogiu2/camelot-wrapper

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.6%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Wrapper that connects Camelot with EM-Glue and performs some game management tasks.

Basic Info
  • Host: GitHub
  • Owner: liogiu2
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 238 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 1
Created over 5 years ago · Last pushed over 2 years ago
Metadata Files
Readme License Citation

README.md

Camelot-Wrapper

Camelot-Wrapper is part of the PhD thesis of Giulio Mori that has the objective of making an layer of communication between Experience Managers and Environments. The main project is called EM-Glue. The aim of this library is to give a structure to Camelot where AIs can reason on without implementing all the camelot commands hard coded in the code. It uses PDDL as language to build a state of the word and as a medium to move informations of what is changing on the environment.

New release is about to come out. This page is under manteinance.

work in progress

Compatible version of camelot tested

Camelot v1.1: Works both on Windows and MacOS

Camelot v1.2: Works only on Windows

Project Status

The project is actively under developement. Once all the major components will be ready there will be a release.

Documentation

The documentation is under construction.

Installation

Install the latest version of the YarnSpinner-Console program ysc. This will be used by the conversation manager to compile the .yarn files containing the conversation files. On Windows, once you downloaded the ysc program into your PC, make sure that the ysc.exe is in the path variable and accessible by the terminal. Then install the YarnRunner-Python pip install git+https://github.com/relaypro-open/YarnRunner-Python@v0.2.1#egg=yarnrunner_python pip install protobuf==3.20.0

To have it working correcly, a Camelot Wrapper needs to be launched in combination with the EM-Glue platform. Please check the README of that repository to successfully launch this software.

Usage

Please contact Giulio Mori for any questions about how is it used. If you use this software and you're writing a research paper, please cite our research paper where we showcase this software using the Github function for citation.

Table of Compatibility

Initialization - additional_data field

| Key | Format | Description | |---------------|---------------------|---------------------------| | "encounters" | list of dictionary | Each dictionary has 4 keys "name", "description", "metadata", "preconditions"

"name": string, indicates the name of the encounter. The EM will send this name to have an encounter executed.

"description": string, description of the encounter that the author defined.

"metadata": dictionary, with key "target-model" containing a list of the features that the author has defined as target for the encounter

"preconditions": string, a list of preconditions using PDDL |

Normal Communication - EM -> ENV

| Message accepted | Format | Description | |------------------|---------------------|---------------------------| | PDDL actions | string | Message containing the PDDL action to be executed |

Normal Communication - ENV -> EM

| Key | Format | Description | |-----------------------|---------------------|-----------------------------------------------------------| | "new" | string | New relation added to the world state | | "changedvalue" | string | Relation changed value in the world state | | "newentity" | string | Name of the entity that has been added to the world state.

This message is result of a special PDDL action executed by the experience manager | | "updateplayermodel" | string | An update to the player model happened in the environment.

The string contains five values formatted as:

"('value1', 'value2', 'value3', 'value4', 'value_5')"|

Contributing

Pull requests are welcome, but please open an issue first to discuss what you would like to change.

License

MIT

Owner

  • Name: Giulio Mori
  • Login: liogiu2
  • Kind: user
  • Location: Italy

I'm 28 years old and I have a PhD degree in Computer Science. I’m passionate about Artificial Intelligence, and Game Development.

Citation (CITATION.cff)

authors:
  - given-names: Giulio
    family-names: Mori
    email: giulio17@ru.is
    affiliation: Reykjavik University
    orcid: 'https://orcid.org/0000-0001-7685-9637'
cff-version: 1.2.0
message: "Please cite this software using this citation."
preferred-citation:
  authors:
    - given-names: Giulio
      family-names: Mori
      email: giulio17@ru.is
      affiliation: Reykjavik University
      orcid: 'https://orcid.org/0000-0001-7685-9637'
    - given-names: David
      family-names: Thue
      affiliation: Carleton University
    - given-names: Stephan
      family-names: Schiffel
      affiliation: Reykjavik University
  title: "EM-Glue: A Platform for Decoupling Experience Managers and Environments"
  type: conference-paper
  year: 2022
  conference: "18th AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment (AIIDE-22)"
  booktitle: "AAAI Press"
title: "Camelot-Wrapper"

GitHub Events

Total
Last Year

Dependencies

camelot_wrapper/requirements.txt pypi
  • PySimpleGUI ==4.60.0
  • debugpy ==1.2.1
  • jsonpickle ==2.1.0
  • protobuf ==3.20.0
  • requests ==2.27.1
  • singleton_decorator ==1.0.0
setup.py pypi