The Resistance is a fun party game better described by Wikipedia. Still with me? good.

The end goal of this project is to have a working electronic version of The Resistance where as much of the game is automated as possible. Certain aspects need to remain manual for design considerations, which we plan to elaborate on in future posts.


After discussing the project on and off for a week or two, Maciej, Zach, and Myself met up and hashed out the basic hardware, game loop, and controls that would be needed for the basic game. We also tried to keep our design open enough to allow for expansion rules/cards which we may create after the base project is complete. We’re also trying to do this without breaking the bank, so we’re using as little hardware as possible.

Console Components

  • 10x LED 5 red, 5 green to display mission status/score
  • 10x Female Cat5 cable ports
  • 02x 9v battery cradle (possibly more)
  • 01x Power Switch
  • 01x Arduino Uno
  • 01x Centipede shield (provides additional digital pins)
  • 01x LCD display (TBD)

LCD and LEDs will be top mounted, while Cat5 ports are mounted on the front and back or sides. Arduino, centipede, and additional hardware to be hidden inside.

Controller Components (x10)

  • 2x Button
  • 2x Red LED
  • 1x Green LED
  • 1x Female Cat5 Port

Cat5 port on back, 2 public LEDs (one green, one red), buttons and remaining LED are hidden behind a privacy guard.


Game Loop

Setup

  • Switch on
  • Flash & Beep
  • Beep and start countdown of red LEDs
  • Beep and start countup of green LEDs (players press and hold a butotn on their controllers at the beep)
  • Countup finishes (players release at this point. closest to the beep on press and release becomes leader)
  • Spies LEDs turn on at this point
  • Leader begins eyes close/open ceremony for the spies (at this point, we are actually in the team selection stage)

Gameplay

Team Selection

  • Leader’s LEDs on solid until button press
  • Yellow to advance, red to select/deselect team
  • Player’s public LEDs - Green for position, Red for selected
  • After Team is full, begin voting stage (we opted for this)
  • After Team is full, select the console as a player to confirm team

Team Vote

  • If the player is on the mission, their public red LED is on solid
  • If the player has not voted on the mission, their green LED flashes
  • Once everyone has voted, everyone’s public LEDs flash and display their votes (the console’s lights flash the winning colour)
  • If the team vote fails, goto Team Selection
  • If the team vote passes, goto Mission Vote

Mission Vote

  • Both LEDs appear solid when a player is on the mission
  • Each player on the mission votes yes/no
  • After voting, their public LEDs turn off
  • When all votes are in, flash console and display votes
  • Votes are displayed one at a time with a beep
  • Sorted by rand(), bump one fail to last revealed
  • Update scoreboard, change leader, goto Team Selection

Endgame

  • Flash winning colour’s LEDs
  • Display win/loss message on LCD

So that’s the basic design. Now to wait 7-21 days for delivery of that centipede.



Published

23 July 2012

Author

Tim

Tags