Basic Game GUI

= Basic Game GUI = This is an outline of GUI functions that should be added on top of the Engine. It may refer to various game features outlined in Proposals:Engine Specifications

Console
This is an engine feature (already in FIFE) which allows access to the Python console. The console can be used during game development to circumvent GUI features that have not been written yet. For example, "bartering" or "inventory" screens mentioned below could be implemented at the console level for development before the GUI is written. Other "god like" features should be available as well for script testing. It refers to the "non G" UI, although added here because it seems natural.

Game Modes
Here is a list of interfaces/modes between the Player and the game. Some of these interfaces may be combined in a single screen: i.e, "HUD/Local Map" or "Character Status/Inventory"


 * Character generation interface - where the player designs his character before game play begins. Game clock has not yet started.


 * World map (viewport) - zoomed out interface where player moves around the game world from location to location. It is composed of tiles which represent either "generic" locations or "named" locations - aka "Local maps".  Strategic scale might be on the order of ~several km per pixel.  Some actions may be possible at this interface (particularly housekeeping stuff like eating, hunting, or resting).  The game clock is typically frozen, except while character is acting (typically moving, but other actions as well)


 * Local map(s) (viewport) - "zoomed in" interface where the player moves at a more tactical scale. This is the scale where player interacts with "ActionObjects" (by fighting, talking, searching, looting, examining, using a skill on, using an item, or as yet undefined actions).  It should be possible to support more than a single time/distance scale with ~identical interface.  Local maps will have a "combat mode" where the action becomes strictly turn-based (i.e, game time freezes while player chooses his tactical options).  When player and NPCs take actions, time is run off the clock, but stopped again when awaiting input from player.  Outside of combat mode, time progresses slowly enough for the player to do interrupt with anything "important".  This "Real time" is necessary to prevent player from having to interact with the interface to wait for a NPC or other "timed" action to occur.  The player interacts by point-and-clicking on  ActionObjects, with pop-up or context menus.


 * "Automap" - this is a (read-only) snapshot of the current local map, at a larger scale than viewed on the main viewport (screen). It is used to help the player navigate local maps after they have been visited.  This screen could possibly have maps of nearby, connected locations.  Time is typically frozen while viewing this interface.


 * Dialog / Complex item interaction interface - this is where a player talks to NPCs or other wise uses a dialog-tree based interaction with a game ActionObject. It is exclusively reached via a local map - by some player action on an ActionObject (e.g, a "talk" action on a person). Time is frozen while waiting for input, but various "dialog choices" by the player may advance the game clock.


 * Barter interface - this is where the player swaps goods and/or money between himself and another character or ActionObject. Typically, game time is frozen during use of this interface.  However, a fixed (or variable!) amount of time may be "run off" the clock when exiting.


 * Character status interface - this is where the player interacts with his own character during the game. It should be visually related to the character generation interface.  It is typically "read only" but may have "writable" aspects (possibly to select character improvements).  Time is frozen when using this interface.


 * Quest status interface - this is where the player tracks his progress on "game assigned tasks". Time is frozen when using this interface.


 * Character inventory - this is where player organizes his stuff. Items can be "used" or "dropped" from this interface.  Some "combining", "repairing", or "use skill on X" actions may be implemented from this interface as well.  Time is typically frozen when using this interface, however, a fixed or variable amount of time may be run off the clock when this interface is closed (depending on the actions taken by the player).


 * HUD - This is an "dashboard" type interface where some subset of character, inventory, (inter)action, and "metagame" (i.e., save/load/quit) functions are available to the player. It would presumably be attached to a Local map and/or World map "viewport".  Some actions taken via this interface may cause time to pass, the clock to stop, or the clock to restart.  It should include a text console where messages are relayed to the player based on various game events (including but not limited to player actions)