User Story

AS A fan of the real-world party game, PicWits
I WANT an online version
SO THAT I can play with my friends and family that are far away

The Problem

  • With family and friends spread all across the country, it can be hard to get everyone together for some quality time.
  • Video games have a very different character than real-world dining room table games.

The Need

  • There needs to be games that can be played across the country that capture that classic family game essence.

The Ask

  • Design an online experience that is faithful to the original, which is resilient and scalable.

About the Game

Images
Website
Players
  • 4 or more
  • Practical limit may be needed based on user experience testing
Age
  • 10 and up
  • Silly & Sweet version is 5 and up
Contents
  • 504 Picture Cards
  • 144 Caption Cards
  • Rules
Game Play
  • If desired, shuffle the Picture and Caption cards (optional)
  • Deal 7 Picture cards to every player
  • Game is played in rounds, and players take turns acting as Judge
  • Select a player to be the first Judge
  • Judge selects a Caption card, reads it aloud, then places it face up on the table
  • Players (except the Judge) select the picture from their hand that they think the Judge is most likely to prefer, and lays it face down in front of the Judge
  • Once all players have laid a Picture card, judge shuffles the cards and turns them over one by one
  • The Judge decides which card best matches the caption, and wins the round
  • Player who laid the winning card gets the point for that round
  • All players (except the Judge) get a replacement Picture card
  • Player to the left of the Judge acts as Judge for the next round
  • Play continues until the pre-determined stopping point, which may be
    • A fixed number of rounds
    • First player to some number of points
    • A certain number of hours has elapsed
    • Somebody falls asleep
    • The drinks run out
Similar Games

Acceptance Criteria

Comparable User Experience
GIVEN a user familiar with the real-world game
WHEN the user tries the online experience
THEN the user finds the experience familiar but appropriately adapted to the medium
Plays like the real-world game, only better
Social Login Support
GIVEN a user with a supported social login account (Facebook, Google, Apple)
WHEN they initiate login using that account
AND complete the process, granting us access to their account
THEN the user is logged in
AND we have their core information like name and email
Requires special cases for first-time login vs. subsequent logins, and a plan for what to do if the user wishes to link all their social logins to their account
Game Creation Requires An Account
GIVEN an authenticated user
WHEN they login
THEN they have the option of creating a game
Necessary to implement game resilience to lost internet connections (maybe?)
Guest Users Cannot Initiate a Game, only Join
GIVEN a guest user
WHEN they look at the main game screen
THEN they do not have the option to start a game
AND they do have the ability to join a game
Keep the barrier for entry low to avoid losing players
Games May Be Public or Private
GIVEN a logged in user
WHEN a new game is created
THEN the user has the option to make it open to the public
OR to make it by invitation only
Meet people where they are, cater to their comfort zones
Public Games May Be Found / Joined
GIVEN a public game
WHEN a user (logged in or not) browses for public games
THEN then the game in question can be seen and joined
It's Gotta Work
Private Games Require An Invitation
GIVEN a private game
WHEN a user browses available games
THEN the private game is not findable
Private Means Private
Detailed Play History
GIVEN a game in progress
WHEN a player selects a card
THEN everything about that action is stored for analysis and modeling
Which cards were available to choose from, what was the caption, which card was chosen, and an anonymized user ID and datestamp

Technical Considerations

No Card Sharing
No two players within the same game may have the same card in their posession, exactly the way no two real players can have the same physical card in their hands.
No Repeat Cards
Played cards go into a discard pile. These are shuffled and added to the draw pile only once the draw pile is empty. This minimizes the chances of a single card being seen more than once in a game. This applies to both Picture and Caption cards.
Multi-Platform
Game should support both iOS and Android phones, tablets, computers, game consoles, and smart TVs. Cost for maintaining many UIs should be minimized.
Party Mode
TV version should default to creating games where the TV acts as the Table, and those who join use their device only to see and interact with their hand.
Quarantine Mode
Like a zoom call, everybody is dialed in remotely, every player has their own voice and video connection, and can see one another
Hybrid Mode
Party mode should have the option of integrating and working with remote participants, showing them on the TV.
High Concurrency
The system must be able to handle thousands of simultaneous games.
High Resiliency
The system must be tolerant of loss of game servers, database servers, players, or even the host. This includes a user experience design that allows everyone to opt to omit a player from a round that isn't participating in a timely manner, whether because they had to leave or they lost their internet connection.
Privacy Laws
The system must store player personal data in their country of origin, per laws such as the GDPR.
Multi-Language
The user experience must support translations, and different users may be playing together in different languages.

Sequence Diagram

Questions

User Experience
How to create and maintain many different versions?
Localization / Internationalization
What does it take to make it work differently for different people?
Architecture
What components will you need? What tools/products will you leverage?
Infrastructure
On-Prem or Cloud? If Cloud, which provider, and why?
Performance
How will you make it scale to thousands of concurrent games?
Resilience
How will you make the game "just work" even with the loss of servers?

Answers

>