A

Hot Potato Online

Design Document

Platform: PC Online

Requirements: Low

Budget: Nonexistent

Target audience: Co-workers on break or lunch hour.

Synopsis: A mix of Bomberman with dodge ball, Hot Potato Online is an arcade-action mini-game aiming at fast time wasting for people to confront each other in a simple yet addictive environment.

Menus

Logo screen(s)

An overhead view of a stone in a grassy field with the Reality Interactive logo carved into it. A fraction of a second later, a Potato comes into view, as if thrown, bouncing to a stop against the stone. Its explosion covers the screen in white smoke, fading rapidly into the Title Screen. No music is necessary. Pressing any key or clicking the mouse skips to the title screen. No mouse is visible.

Title Screen

The characters are shown in action, with one throwing the Potato, the others fleeing it. The Hot Potato Online title glows feverishly along the short lively tune. A blinking message states “Press the ‘any’ key”. No mouse is visible.

Main Menu

The Potato lies menacingly in the foreground, with its fuse animated, while the characters remain in the back, united with their common fear of the impeding explosion. The title remains at the top, and the menu offers four choices: Create Game, Join Game, Read Manual or Quit Game. A less lively yet more anticipating tune replaces the Title music. This music stays with the players throughout the other menus.

  • Create Game sends the player to the Connexion Pop-Up with server privileges.
  • Join Game sends the player to the Connexion Pop-Up with client conditions.
  • Read Manual sends the player to the Manual screens.
  • Quit Game terminates the program and returns user to operating system.

Connexion Pop-up

On top of the Main Menu, a dialog box appears. For the server, the first line states the IP address (which can’t be modified). For the client, the first line asks for the server’s IP address. The second line asks either way to enter a name. The amount of characters in the name is limited to what the menu and gameplay boxes can hold. The last name entered is already present, or the default Player1. The Ok button then either creates the game (server), or tries to contact the server. The Back button returns to the Main Menu.

Lobby

The lobby is separated into three sections: the top left section is the match setup section, the bottom left section is the chat box section, the right side is the player setup section.

Match Setup Section

  • Setup: Here, the server can change the specific match options. These include game type, points (kills, deaths, suicides) or lives/life + Health Potatoes, blast radius, fuse length, arena size, object frequencies (solid/bounce/hole, many/few/none) and overtime type (On, Off). Only the server can change options, a client’s mouse over the option buttons turns into a ‘denied’ symbol. The server’s IP address is shown in this section, whereas clients see instead a message stating ‘ONLY SERVER CHANGES OPTIONS’. A button on the left of the SETUP title invites the player to go see the RESULTS if a previous match was already played. Players arrive in the Setup the first time they arrive in a lobby.
  • Results: Here, players can see their final scores, as well as the details of how many times a player has killed another versus how many times that same player has killed him, as well as the amount of suicides. In team mode, the total is the team’s total in team color rather than the individual’s in the individual’s color).

An animation below their results shows their character in a different mood, depending on his ranking (teams all share the same ranking).

Only if one individual or team has a higher score than everyone else, he gets the 1st place animation. If two individuals or teams tie for first, they will have either the 2nd or 3rd place animation.

Only if one individual or team has a lower score than everyone else, he gets the 4th place animation (regardless if they are actually 4 or not). If two individuals or teams tie for last, they get the 3rd place animation.

If everyone is equal, then the 3rd place animation is used.

With 3 players, 3rd place animation takes priority over 2nd (ex.1: 5pts gets 1st, 3pts gets 3rd, 2pts gets 4th) (ex.2: 5pts – 5pts tie get 3rd, 1 pt gets 4th)

A button invites the players to return to the SETUP of the next match (optional). If changes are made by the server, the button changes to a glowing version. Players arrive by default in the Results after a match, rather than the Setup.

  • Cumulative Results: If more than one match has been played, a “Cumulative” button is present in the results screen, inviting a player to see cumulative individual statistics. The global score is replaced by amount of wins (individual, never team), while the details of “how many times one player has killed another versus how many times that same player has killed him” sections are totals from all the matches. If a player changes colors, everyone’s cumulative scores adapt to reflect his new color (the results are the player’s, not the color’s). If a player leaves or a new player arrives, the cumulative results are reset. The server can also “reset” the cumulative results with a button present on this page.

Chat Box Section

  • The top square is where all dialog from the players as well as system messages (players entering, exiting, match starting, etc.). The default colors are white for system messages. Once a player has chosen a slot in the player setup section, his chat dialog will become that color. Players must click in the bottom dialog box or press enter to have their type-in cursor appear there to input a message. Pressing enter with text in the type-in box then sends the string to the server, who displays it at the first free line in the dialog box, or the last line if all are full, pushing up the previous lines. Players can use the arrow keys on the side of the top chat window to scroll up and see the previous lines which were hidden in such a way.
  • Typing in smilies displays static images of their character (over where their score would be in-game) displaying the emotion for two seconds. :) or :D display an overly proud smile, :( or :’( display a teary-eyed desperate, :S or :X display an oops wide-eyed and :P sticks their tongue out. The emotes are only recognized if at the end of a string.

Player Setup section

  • Four buttons are assigned colors, red, blue, green and yellow. An entering player is automatically assigned the first free color, but can switch by clicking on another free color. So a player will always have his name displayed, and always have a color. A button used by a player is displayed locked to other players with the player’s name on it. On the right of a selected button, a player can choose a team by clicking on the appropriate colored circle. This option only appears to the clients once the server has chosen his team (activated teams). When teams are activated, the clients are set by default to white. If every player is in the same team when the match starts, the match will be without teams. The team is displayed under the player’s name on the button. Team matches mean all members of the same team will share the same score/health/lives, the initial amount determined by the match setup.
  • To the server, the unused color slots will have ADD BOT buttons appear on them. Clicking the button will fill the slot with BOT1, BOT2, BOT3, or BOT4. The server can then select the team normally. Clicking on the bot name again removes the bot. If a player attempting to connect a full match using bots, the player will have priority and take up the first bot color. This is to allow a group to start playing with filled slots yet allowing a player to join later on. If empty slots are available, incoming players will fill these before overtaking the bot slots.
  • The LEAVE button disconnects from the server, and returns to the Main Menu, or in case of the server leaving, disconnects as well all the clients who also return to the Main Menu.
  • States for the "Ready" button/section are defined as follow:

<----- Server Side ------

State "Init" : Only 1 player (server)

Button is "Waiting for players"

o Player can switch colors/teams...

o Settings can be changed

- A player connects or a bot is added

-> Enter state "Waiting"

State "Waiting" : At least 2 players

Button is "Players not ready"

o Players can switch colors/teams...

o Settings can be changed

- Players or bots are removed so only 1 player is left (server)

-> Enter state "Waiting"

- All players are ready (bots are always ready)

-> Enter state "Ready"

- Server presses the "Players not ready" button

-> Enter state "Lauching"

State "Ready" : Every player is ready

Button is "Launch match"

o Players can switch colors/teams...

o Settings cannot be changed

- A new player connects to the game

-> Enter state "Waiting"

- Server presses the "Launch match" button

-> Enter state "Lauching"

State "Lauching" : Game is being launched

Button is "Launching match..."

o Clients and server are brought to the setup screen

o Players cannot switch colors/teams...

o Settings cannot be changed

o Chat messages "Starting in 5... 4... 3... 2... 1..."

o Lost connections will be handled IN GAME

----- Server Side ------>

<----- Client Side ------

State "Waiting"

Button is "Ready" (Released or pressed)

- If server starts match

-> Enter state "Launching"

State "Lauching" : Game is being launched

Button is "Launching match..."

o Chat messages "Starting in 5... 4... 3... 2... 1..."

- *Sent by the server*

----- Client Side ------>

Manual

Slab of stone with text directly on it, and page annotation at the bottom middle ( 1 / 7 ) with an arrow button on either side for moving back and forth between the pages. A BACK button is also placed at the top right, opposite the title.

History

At the turn of the last century, major sport leagues were considered obsolete with the arrival of a new phenomenon in professional athletics, in the form of a confrontational game of Hot Potato. Challengers from across the globe compete for the honor of representing their homes and families in the fastest, most energetic of face-offs. Up to four players enter the arena at a time, risking injury and humiliation, hoping to come through in a blaze of glory.

Basics

The object of the game is to detonate the Potato within opponents’ vicinity, without harming one’s self. A Potato explodes either by impacting on a player or solid object, or after the short fuse has been spent. Players must acquire the Potato either by picking it up or catching it. Acquiring the Potato resets the fuse for another few seconds. Once a Potato explodes, another one is randomly sent into play.

Movement Controls

The character always faces towards the mouse cursor, which is considered where he is aiming. By holding down or releasing the Right Mouse Button (RMB), a character switches between relative and absolute movement. In relative movement the character moves either towards, away or circles around in relation to the cursor. In absolute movement, by holding down the Right Mouse Button (RMB), the W-A-S-D or Directional Keys will move the character towards the edges of the screen, regardless of where he is facing.

Potato Controls

The mouse controls the Potato interaction. Facing towards the Potato will catch it if thrown towards the character, or pick it up if walking towards it. The Left Mouse Button (LMB) throws the Potato. Time the release the LMB with the climax of the charge-up for the strongest throw. Holding down on the LMB before acquiring the Potato allows the character to bounce what would normally be caught. Timing this deflect to just before the potato connects bounces with additional velocity. Carefully judging the leftover velocity and rebound angle will result in a formidable counterattack.

Arena

The spaces in the arena are either filled by a plane, a solid object, a bounce object, or a hole object. Both the characters and Potato can move freely over flat areas. Solid objects block movement, and Potatoes explode on impact with them. Bounce objects block movement, while deflecting a Potato thrown their way. Hole objects block movement for the character, but the Potato can be thrown over them.

Match Types

An official Hot Potato tournament match can be played in three different categories. A Frag match attributes points for exploding opponents, while deducting points for getting exploded. A Survival match requires a player to outlast the others by exploding their opponents until none of their Lives are left. A Stamina match resembles a Survival match, except proximity to an explosion determines the amount of damage to Life (100 to 0 damage). Every type can also be played in teams, where score, Lives or Health is shared amongst the team members. Setup options allow players to further customize each type of match to their liking.

Credits

Design: Thiéry Adam & Jean-François Pérusse

Code: Jean-François Pérusse

Visuals: Thiéry Adam

Audio: Bertrand Bry-Marfaing

© 2004 Reality Interactive

Menu Mouse

Throughout the menus (except the logo and title screens), the mouse is as follows:

Neutral: relaxed gloved character hand

Over: (Mouse hovering over a clickable button) pointing hand

Down: (Mouse hovering over a clickable button with LMB held) Pointing hand presses with finger.

NoClick: (Mouse hovering over a non-clickable button) No access sign

Wait: (loading something, no player action possible) animated stopwatch (clock hand moves)

Gameplay

Screen Layout

The gameplay area is 600 x 600 on the left side of the screen. The 200 pixels left on the right side are used as a scoreboard. The scoreboard has four sections with each a player’s name at the top. Their current score/life/lives are written, below the name, in the player’s color as well. In the case of team matches, the player’s current score/life/lives are in the team color. The value is shared amongst the teammembers (thus the same number is repeated). Whenever a player kills without getting killed, a short animation appears over his score, briefly showing the character’s satisfaction before returning to the regular score and name. Whenever a player commits suicide, the animation instead is of him slapping his own forehead.

By pressing enter, players open the chat line which is laid out exactly like in the lobby, but without the actual frames, nor the arrows to scroll in the message history. Instead, chat messages disappear after 10 seconds, while still respecting the maximum amount of lines displayed. Smilies are still treated in the same way.

At the bottom of the scoreboard is the match clock, displaying how much time is left (in minutes and seconds). When less than 30 seconds are left, the time turns red and a system chat message (in white) states “30 seconds left…”. There will also be a countdown during the last 5 seconds, much like in the lobby: 5… 4… 3… 2… 1… . When the timer expires, if a winning player/team stands out (or Overtime Off), the message FINISHED appears. The static screen holds for at least 2 seconds before displaying the Results. If overtime is required, the message “Overtime” appears, the screen frozen for 2 seconds, then only the players tied for first are left and the action resumes (potato reset in play).

In overtime, scores are already locked in and its only a question of distinguishing a single player/team for first position (thus why the non-first tied players are taken away). Any player caught in an overtime explosion (weither by suicide or kill) disappears, until a single one is left. If an explosion would not leave anyone (because it booms all those left simultaneously), no one is taken away and overtime continues normally.

Pressing <p> or <Esc> or <F10> on the keyboard will bring up the pause menu. A pause menu pop-up allows all the players to resume the game (unpauses), disconnect (clients only: return to main menu), abort match (server only: everyone returns to lobby, no results) or quit the game (exits HPO entirely). Chatting is still supported while paused.

Arena

Measuring convention: because of the different arena sizes, absolute measures (those that don’t change with arena size) are measured in pixels (menus, layout, chat), while relative measures (those that change with the arena size) are measured in metric (objects, players, potato). As a base, 1 tile measures 1 meter by 1 meter.