#A4# #Player ready# #Send "player ready" message by pressing "player ready" button# #Server# #Receive player ready message# #Set player ready var for current client# #Send "player ready" message# #Receive message# #Display "player ready" message# ## ## ## ## ## # Alter game settings# #Fetch game settings# #Server# #Server# #Recieve request for game settings# #Load game settings from db# #Send game settings# #Receive game settings# #Set the appropriate vars and save in db# #Send "game setting altered" status# #Display "game settings altered" message# #Enter game settings# #Receive game settings# #Send game settings# ## ## ## ## ## ## ## ## ## ## #Receive message# ## #Start game# #Send "game start" message by pressing start game button# #Server# #Receive request for game start# #Check if all players are ready# #Send "start game" message to all clients# ## ## #Players ready# #Check if all settings are OK# #Settings OK# #Send "settings not ok" message# #Send "players not ready" message# #Setting not OK# #Players not ready# #Receive message# #Display error message# ## ## ## #Game settings# #Fetch game settings# #Server# #Receive request for game settings# #Get game settings for current game# #Send game settings# #Receive game settings# #Update game settings display# ## ## ## ## ## #Player list# #Fetch player list# #Server# #Receive request for player list# #Get player list for current game# #Send player list# #Receive player list# #Update player list display# ## ## ## ## ## #Create new game# #Fetch new game default settings# #Server# #Server# #Recieve request for game settings# #Load default game settings from db# #Send default game settings# #Receive new game data# #Set the appropriate vars and save in db# #Send "game created" status# #Display "game created" message# #Enter default game settings# #Receive default game settings# #Send game settings# ## ## ## ## ## ## ## ## ## ## #Player profile management# #Fetch player profile# #Server# #Server# #Save profile# #Receive profile# #Load profile from db# #Receive request for profile# #Send profile# ## ## #Exists# #Load default values# #Check if profile exists in db# #Not exists# ## ## #Receive profile data# ## ## #Enter profile data# #Send profile to server# ## ## ## #Display "saved" message# #Send "saved OK"# ## ## #Send join request to game server# #Set the new values for the game in the game status# #Display "joined" message# #Receive join request# ## ## #Receive new game info and set the appropriate local vars to those values# ## #Join currently selected game (double click or button)# ## #Server# #Join game# #Send info # ## ## #Local options# #Enter sound options# #Enter graphics options# #Enter network option# #Enter control options# #Save options locally# #Load locally stored options if exists or load default values# ## ## ## ## ## ## ## ## #Exit game# #Exit game# #Close up shop and leave the building :-)# ## #Create new player profile# #Create player menu# #Server# #Enter player data# #Check if playername exists# ## ## #Save player data# #Display "already exists" screen# #Exists# ## #Not exists# ## #Enter playername and password# #Send player info, saved options + history# #Display "not correct user/pwd" screen# #Check if name and pwd match# ## #Match# #No match# ## #Receive info, options and history and set the appropriate local vars to those values# ## #Login to currently selected gameserver (double click or button)# ## #Server# #Login management# #Game list display# #Fetch info about current games like open/private/in progress player info# #Receive request for status# #Receive info and sort it and display it# ## #Retreive status of games and their players and send it back# ## ## #Server# #Server list with status/ping/..# #Fetch info from all configured gameservers about availability, players, games etc# #Receive request for status# #Receive info and sort it Display it when receiving as Quake 3 Arena does it# #For all gameservers in client server list# #Retreive status of active players, games, etc and send it back# #From all gameservers in client server list# ## #Server# #Game server list management# #Delete currently selected gameserver# #New gameserver# #Enter gameserver IP-address# #Check if server is alive# #Fetch server info/status# #Display "not currently alive" screen# #Save list locally# #Receive server info/status# ## ## #Alive# #Not alive# ## ## #Remove gameserver from list# ## ## #Check if any previously "not alive" servers are on the server list# #For all "not alive" servers# #Check if server is alive# #Alive# #Receive request for server info# #Send server info# ## ## ## #Server# #Game server menu# ## #Display game server main screen# ## ## #Version 0.0.1 20000101 First draft - skeleton of client# ## ## ## ## #Login management# #Legend# #Check if playername exists# ## #Server# #Logical group of functionality# #Functions in game server# #Single function in either server or client# #Logical flow# #?Chat room?# #?Watch game in progress?# ## #?Trade room?# ## ## #Play game - initial setup# #"Wait for game start" menu# ## ## #If client is game creator# #For every X seconds do# #If client is game creator# ## #?Continue saved games?# ## #Revision history# #For every X seconds do# #End game# #Display winner screen# #Display game start screen# #Receiving "start game" message# #If client is not game creator# #For all clients of the current game# ## #Buy army# #Server# #Create map# #Create objectives# ## ## ## #Play game - planning# #Plan turn# #Server# #Receive plan# ## ## #Play game - execution# #Execute plan# #Server# #Execute plan# #Calculate results# ## ## #Play game - aftermath# #Repair# #Suppy# ## #Reinforce# #Server# #Calculate aftermath# ## ## #Play game - check victory conditions# #Server# #Calculate victory conditions# ## #If one client has won# #If no client has won = next turn# ## ## #Intro# ##