Requirement Analysis: skribbl.io - DexA1948/Golos GitHub Wiki

skribbl.io

skribbl is an online multiplayer game. It is a word-guessing game where each player gets a turn to choose a word from randomly provided three words and then draw on the canvas. While a player is drawing on canvas other players should guess the word based on the number of letters, hint provided by the game, and hint provided by the person drawing on canvas. The scoring system rewards quick answers and the drawer also gets some score based on how quickly players can guess aided by the hint they provided on canvas. So the aim is to allow other players to quickly guess the correct word while other players compete to be the quickest and finish guessing in a short amount of time and also before the timer goes out.

Welcome Page

Here is an analysis of the home page for skribbl:

  1. Website Plays Sound
  2. The name is saved so it's either session or cookies.
  3. Random Character/Avatar Generator
  4. Customize Character
  5. Play a random game. The link doesn't show any parameters (just https://skribbl.io). Also, you get randomly thrown into games.
  6. Create a room with an invite link. eg: https://skribbl.io/?5Msd3u7zg8s. Chrome shows parameter, Edge normal doesn't but Edge Incognito does.

Screenshot 2022-06-11 221727

Creating a private room

image

  • This is called the lobby. This is a common feature in multiplayer games where you wait for other players to join before starting the game.
  • You also get an invite link (eg: https://skribbl.io/?5Msd3u7zg8s) for the game, when other players click on the given link they are invited to either lobby or the game (if the game has already begun).
  • You cannot start a game in the lobby until there are at least two players to play the game.
  • After all players have arrived you can start to play the game.

Game room

image

  • Adding rounds to the game makes it fun and lets players have a chance of redemption or carrying on the win.
  • The players, their avatar, their ranks, and their points are shown on the side.
  • The guess box where you type answers also functions as a chat box. During my gameplay, I found chatting on the comment box to be interesting. It created a feeling of community. Passing random comments was fun.
  • There is an option to votekick players. If a player becomes inactive or acts inappropriately you can kick them out.
  • Scoring is based on how fast a player guesses the word. The scoring is based on both the time, i.e: if you score more quickly you get higher points and if you score later you get fewer points, and if the timer runs out before you finish your guess you score zero. Similarly, scoring is also based on position, i.e: if you score quicker than other players you score a higher point than them.

Summary and Findings:

  • Playing sounds for different actions alerts players. For example: when a player joins the lobby the waiting players can get alerted by sound.
  • Saving names and data in session variables shall be easier.
  • Using symbols and colors to represent players is fun and provides flexibility as two players can have the same name or initials.
  • Each game is different and shall have a parameter to differentiate it from other games. The parameter shouldn't be easily guessable.
  • Saving ongoing game sessions will help to allow players to join random lobbies/games.
  • Lobbying helps to wait for the other players/friends to join the game before actually starting to play.
  • Communicating with other players (Chatting or if possible voice chats) makes gameplay more fun.
  • Votekick is really important to help protect spam and other inappropriate behaviors.
  • I didn't notice earlier but online games are heavily based on AJAX because you don't reload the page. It changes without reloading using AJAX probably.