Skip to content

A framework for playing Werewolf & developing and testing AI agents for Werewolf.

License

Notifications You must be signed in to change notification settings

GeorgeVelikov/RLereWolf

Repository files navigation

RLereWolf

What is this?

RLereWolf is a, Python developed, framework for the social deduction game Werewolf. The development of which is part of my undergraduate thesis at University of Aberdeen. RLereWolf provides the base Werewolf game which can be played multiplayer with either other people or bots (agents).

It also provides AI developers with an easy to use and integrate to framework for training agents to play Werewolf. The game's implementation allows users to create/join games of up to 75 players in which the players can be other humans, "dummy" agent players, rule-based agent players and/or reinforcement learning agent players, trained with OpenAI Gym.

RLereWolf provides the following:

  1. The implementation for the Werewolf game
  2. A basic TCP/IP Server-Client infrastructure to support multiplayer games
  3. A testing platform for Werewolf AI agents
  4. Verbose logging
  5. A development platform for Werewolf AI and further game expansions

Setup

The development of RLereWolf is done in Visual Studio 2019 as a "PyProject" using Python 3.7. In order to setup RLereWolf for development "out of the box" you need to

  1. Install Python 3.7
  2. Install Visual Studio 2019 with Python support (You can use your preferred editor/IDE, just be aware setting it up might be a bit more awkward)
  3. Install the requirements - "pip3.7 install -r requirements.txt"
  4. Select any of the pre-made boot configurations (Client, Server, Client + Server etc.) or add your own in the project startup settings, as seen in: image

Structure

Client

The client contains a basic tkinter and pygubu GUI which sends calls to the server in order to play the games hosted on the Server.

image

image

Server

The socket server that controls multiple games and the players in them. The server keeps logs of the server status, each game and is the effective game moderator.

Shared

Various logic, dtos, utility methods that are used accross the Client, Server and Werewolf projects.

Werewolf

Holds the game, game logic and currently holds the agent players and is referenced by the Server project.

About

A framework for playing Werewolf & developing and testing AI agents for Werewolf.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages