User Interface

The JCiv program MUST include at least one client program that provides an ongoing visualization of the game state. The program team MAY also provide additional support programs, at their discretion. For example, a board editor or a debugging interface that displays the complete game state at any time would be useful tools.

The JCiv client program MUST provide at least the following user interface elements. It MAY also provide additional UI functionality. The specific ways in which the UI is implemented is up to the design group, but part of the evaluation of the program will be on the quality and intuitiveness of the user interface.

  1. Ability to load/store a MAP configuration.
  2. Ability to specify the name of a player.
  3. Ability to choose a server address and port number.
  4. Ability to single-step the game state or run in free-running mode. (This ability may be provided through an interface to the server or through special commands issued by privileged clients.)
  5. Visualization of the visible part of the MAP (Section [*]), including the TERRAIN TYPEs of visible CELLs and UNIT(s)/BUILDING(s) in those CELLs.
  6. Ability to find the name of the player who owns a given UNIT or BUILDING (e.g., by clicking on that CELL or hovering over it.)
  7. Ability to scroll to all parts of the MAP, even if parts of it are currently invisible.
  8. Ability to select any/all UNITs in a single CELL and apply a single COMMAND to all selected UNITs.
  9. Ability to select a BUILDING and apply a COMMAND to that BUILDING.
  10. Current contents of the player's BANK (number of each type of RESOURCE in the BANK).
  11. Number of each type of RESOURCE that will be required by a selected COMMAND.
  12. A warning to the player when the BANK may not have enough resources to complete a requested COMMAND. (This should not prevent the COMMAND from being issued, but should allow the player to change her/his mind.)
  13. Notification to the player whenever a UNIT or BUILDING is under Attack, Invade, or is destroyed or captured.
  14. Notification to the player whenever a COMMAND fails because of insufficient resources.
  15. Notification to all players whenever another player enters or leaves the game (including when a player is defeated).

The program MAY support a configuration file format to load some of the game configuration but it MUST also support some way to enter that data through the user interface.

The program(s) MAY provide command line switches to modify its behavior as well. All such switches MUST be documented in the user documentation.

Terran Lane 2005-11-10