Menu Design


To provide some simple configuration options and a fast path to joining a game.

Root Menu

The first menu shown to the player will contain:

Without any configuration of the game, this menu must allow a user to quickly join a game. Navigation between the elements listed above is controlled through up and down input.

Team Selection

The player will be able to select between two teams: red and blue. Below the game title is the text "Chose your team" with a red bracket to the left of the text, and a blue bracket to the right. Below that, the two teams are displayed in two columns, red on the left and blue on the right. If a connection has been made with a server, the current number of team members is displayed to the right of the tank. The player can provide right and left input to select a different team, and fire input to chose the selected team. The selected team is denoted by a tank drawn next to the number of team members in the color of the team.

Optional features

Player's Name

The name that is used for the player in the game is displayed below the team selection items. The default name is the user name of the account running the program, or "Anonymous" if that name cannot be determined or does not exist. When the name is selected, pressing the fire input allows the player to edit the name.

Name Entry


Network Status

The network status is displayed at the bottom of the root menu. It starts with "Net:" followed by one of these status messages:

When the network status has input focus, the string "Press fire for options" is displayed below the status. The fire input will bring up the Network Options Menu in place of the root menu.

When the status item lacks input focus, it will display a string with a breif listing of the current game options.


Option to enable dual stick tank control for a joystick type controller, or maybe no input options.

Game Status

The game status item is not a selectable item. It presents the current status of the game to the player. If the game is not in progress, the message "Game Status: the game has not yet started" will be displayed. Otherwise, the team's scores, the time remaining, and the maximum score will be displayed.

Network Options Menu

Connect to Host

The player will have the option to connect to a host they specify.

Game Options

If the player's program is acting as the game's server, they can set options that will affect game play.

Item Focus

User Control

The user may change the focus of menu input through up and down inputs. The inputs will include cursor keys, joystick axes, as well as tab and shift tab for similar operation to common GUIs.

Visual Feedback

The focused item will have brackets at its four corners which define a rectangular region around the item.

Future versions may include a color pulsating visual. This should make it more obvious to the player where the input focus is, but will likely require a custom blit routine for acceptable performance.

Item Types

The menus are organized into items that can change a setting based on user input.


Allows the player to select one option from a set of options. A variable number of constant strings may be supplied and will start at index zero of the set of options. The default option is specified. The player navigates the options by suppling a left input to decrease the option index, and a right input to increase it. The option set will loop. The selected option will be centered in a specified rectangle. On the right and left of the rectangle will be arrows visible only when the choice item has the input focus.

The choice item can also present a range of integers after the set of strings. The range will start at the minimum of the range and will increase with the option index up to the maximum value. The integer will be displayed with a constant string a space after the integer; the same string will be used will all the integers.


When this item has the input focus, it will display a constant string. The fire input willl cause the item to change the program's operating state.

Team Selection

Allows the player to select a team and, if connected to a server, start to play the game. The item is only responsible for drawing a tank icon to show which team is selected, and responding to user input to change the selection.

Text Entry

Allows the entry and editing of arbitrary strings using the keyboard or a joystick.

Since this will likely requiring getting familiar with font metrics, its implementation may be postponed.

Operating State Transition

When the player choses a team, the operating state will transition to game play if there is a connection to a server. Otherwise, the operating state will not change unless the player choses to quit.
Generated on Mon May 28 04:41:40 2007 for Retro Tank Super Attack by  doxygen 1.5.2