An outline of a protocol for implementing a decentralized version of zk Mafia with no trusted third party.
Setup
The game setup requires building a Semaphore membership group, creating a deck with the desired distribution of roles, shuffling & dealing the cards, allowing each user to peek at their role, and setting up the state that must be tracked & updated during gameplay.
Creating the game
a user clicks "Start new game"
a new Semaphore group is created (set parameters at this point)
the player joins the game (all steps from Joining the game below)