-
Notifications
You must be signed in to change notification settings - Fork 0
/
todo
35 lines (33 loc) · 1.57 KB
/
todo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
*Gameplay*
- Ask user to input a name when they join a game
- Allow duplicate names (append a number)
- Random name generation if the user chooses to be anonymous
- Create a question generator
- Take X random operands and generate a random operator?
- Validate client input before sending
- Have configurable difficulty levels
- Increase (possible) digits per operand
- Increase number of operations
- Count-up timer when question has been presented?
- Maximum time per question?
- When a question starts, focus the answer box so user can type answer and hit enter
- Figure out how to handle answer submission priority
- Start with in-memory storage of all game data.
- Drop answers into a message queue, process one by one, throw away messages once correctly answered?
- redis has pub/sub and queues
- Use separate handler for processing the queue
- Would require that one server be responsible for handling all messages for each game
- Use key/value to set a "status" flag for questions while active, use its state to synchronize processing of answers?
*State/Records*
- Use separate collections for games and questions
- Questions can store their state
- Use Mongoose
- Persist results of each question
- Each client should be able to see the scores of the other players
- When a new client connects, they need to be able to retrieve the current game status
- Store game history, so users can browse previous game results
*Error Handling*
- Can't create game
- Game doesn't exist (redirect back to index)
- Can't connect to game socket
- Lose connection to game socket