Skip to content

Latest commit

 

History

History
58 lines (46 loc) · 2.27 KB

README.md

File metadata and controls

58 lines (46 loc) · 2.27 KB

This dir contains the environments in Gym format. Most of them are stored in the old dir

SimpleWw

SimpleWw is the first approach to implementing the game. It has almost every core feature the game has to offer but does not support multiple agents. This environment does not support training, just testing with the env test script.

MaWw

MaWw stands for MultiAgentWereWolf. It is based on SimpleWw with the following upgrades:

  • Support for multi agent
  • reward shaping for invalid decisions (refer to the Journal, section Env/Constrain_Votes).
  • Correct observation space
  • info attribute for debug
  • shuffle roles at every reset
  • more reset fixes
  • Trainable

ComMaWw

ComMaWw stands for CommunicationMaWw. Based on MaWw tries to implement communication. Updates:

  • Use night/day phases in observation
  • number of wolves is sqrt(total player)
  • add maximum days
  • normalized custom metrics
  • add targets instead of votes
  • add communication phases
  • more

TurnEnvWw

TurnEnvWw stands for Turn environment . Based on ComMaWw. The goal is to keep agent ids fixed to a certain role, so agents can then be used with custom policies.

The problem becomes to hide the roles from each agent, so there should be some kind of vote mixing at each turn.

The shifting should be done on status_map and targets when passing observations and first thing when getting actions. So the shifting works as a mask to the agents while in the env everything stays the same. Learning this shifting from observation is technically the same as guessing roles.

Moreover this implementation skips villagers during night time

TODO

  • Make logging every n episode [X]

WwEnv

WwEnv stands for Werewolf environment and is the last environment used.

Based on TurnEnvWw. Has the following updates:

  • It discards the possibility of cannibalism and dead-man kills and rule breaking.
  • Every custom metric\logging has been moved outside the class.
  • Implement signal based communication
  • Option to not use signals at all

TODO

  • move custom metrics outside [X]
  • move logs outside [X]
  • remove useless reward/penalties [X]