Card Stories - Solo Mode

= Overview =

Card Stories' solo mode has 2 main purposes:
 * explaining to a new player what is Card Stories and how to play it while making him play the game and finding it fun from the start
 * helping regular players to kill the time while waiting for their friends to play in the multiplayer mode

Player role
The single player mode focus on the “player” role, leaving the “author” role to the script. You start with a virtual “author” and 4 virtual “players” in a scripted game where you have 3 things to do: 1 – pick a card matching the sentence you’ve been told; 2 – then instantly proceed to the final vote because all the choices of the other “players” are scripted; 3 – and finally see the results and your score…

Why is the single player mode useful?

 * A solo mode like this will be very useful to create a step-by-step tutorial which will explain the rules and show new players how to play the game.
 * This mode could also be played in parallel to the multiplayer game by the players waiting for their friends or other players to vote or pick their cards.
 * And it could be played on his own by lots of people: it’s fast and immediate, wich is ideal for compulsive players (who will want to buy new decks to have acces to new scripted games when they are done with the free ones).

= Playing a single player game = I started to described each screen the PLAYER needs to see in the solo mode and what kind of feedback we should give to him.

The single player mode requires 5 screens that inherit the "PLAYER" screens of the multiplayer game. 1 - Pick 2 - Wait for pick 3 - Vote 4 - Wait for vote 5 - Completion

I don't describe any score sytem or multi-rounds game as we need to define those things for the multiplayer game first. You'll find above a list of what we need to create a solo mode based on the existing game.

1 - Pick a card
When a player starts a single player game, he is told that a virtual player has created a game and has wrote a new story. Then he is invited to pick a card matching the story like in the multiplayer mode when someone is invited to play a new story by someone else.

The player has to pick a card matching the story, then confirm his choice before proceeding to the next screen.



At this point, I think that you've noticed that I changed the location of the "progress list" on the interface: I placed it on the left corner instead of the right. I think it could be more visible like this. As we read from left to right and from up to bottom, the interface shouldn't have an empty space on the left corner and should make a good use of the up-left to bottom-right diagonal... What do you think?

I've also added 3 other modules: - the "current stories" module which allows the player to keep an eye on the multiplayer stories currently running - the "player status" module which keeps the player aware of what's going on with the other players involved in the current game - the "live log" which displays live information on what is happening with the current game (I'm not sure if this module is really useful; it could be redundant with the "player status" module... I just feel like we need to make the game more alive with the most real-time feedback we can provide).

2 - Wait for others to choose
The player stays in front of the "wait for pick" screen until all the players have played. As we are in a single player mode, this screen is fake. It's purpose is only to make the player getting use to the asynchrone concept. We should display a fake activity of the virtual players (via the "player status" and the "live log") This screen should be displayed only a few seconds in the single player mode.



3 - Vote
When all the players have picked a card, the game proceed to the "vote screen". The player has to vote for the card that matches the story and confirm his choice.



4 - Wait for others to vote
The player stays in front of the "wait for vote" screen until all the players have voted. As we are in a single player mode, this screen is also fake. It's purpose is again to make the player getting use to the asynchrone concept. Like on the first "wait" screen, we should display a fake activity of the virtual players (via the "player status" and the "live log") This screen should be displayed only a few seconds in the single player mode.



5 - Round completed
Then the game proceeds to the completion screen. Like in the multiplayer mode, the player can see who has voted for which card and who has won or lost this round.

And the player is asked to play another game or switch to the multiplayer mode.



= But how does it work? =

Recording real multiplayer games
A few scripted rounds could be set up manually, but we should create a system to record real multiplayer games and sort them automatically!

We could exclude the weakest ones with a few rules like:
 * the rounds where none of the “players” have found the “author” card are probably too hard or don’t make sense
 * the rounds where all the “players” have found the “author” card are probably too easy

Having a database growing up with real multiplayer games data could make the solo mode stronger and potentialy infinite (within the limit of the number of cards).

How to chose which virtual player the real player will replace?
The player of the single mode will replace one of the 5 players of the original game, but which one?


 * is the single player replacing automatically the player that had the less votes at the end of the original game?
 * is the replacement random?

And how do you decide which virtual player will vote for the real player or not?
 * do we keep the original votes allocation?
 * could we evaluate the card picked by the player and know if his choice is relevant or not (based on the history of the other players choices?)