To provide some simple configuration options and a fast path to joining a game.
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.
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.
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.
The network status is displayed at the bottom of the root menu. It starts with "Net:" followed by one of these status messages:
- A listing of player names on each team.
- A listing of players who have not selected a team.
- Animation of player names moving to a team.
- Fading of player names when a player disconnects.
- Looking for server . . .
- Contacting [hostname] . . .
- Connected to [hostname]
- Running as server [hostname]
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.
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.
The player will have the option to connect to a host they specify.
If the player's program is acting as the game's server, they can set options that will affect game play.
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.
The focused item will have brackets at its four corners which define a rectangular region around the item.
- Max players
- Enforce balanced team size
- Time limit
- Score limit
- Game type
- Shoot Out
- Capture the Flag
- Shell type
- Let another player serve
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.
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.
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.
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.
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