Client: loops handles input from the user handles graphics and sound communicates with the server (how?) ------------------------- Server: loops accepts new connections, disconnections, and handles loss of connections holds the positions/data of all players Player: id [graphical stuff] position velocity ------------------------- Player's movement in a server #define PLAYER_FACE_DOWN 0 #define PLAYER_FACE_UP 1 #define PLAYER_FACE_LEFT 2 #define PLAYER_FACE_RIGHT 3 Player: index --global index on the server position motion image --avatar chosen by the player (later) ShiftMotion(vector relativeMotion) PlayerManager: Update(delta) //all player objects Synchronize(dataArray) //possible ------------------------- Rememer: Top down programming/K.I.S.S. KeyDown: up: PlayerManager.ShiftMotion(playerIndex, up) down: PlayerManager.ShiftMotion(playerIndex, down) ... end Receive: switch(message->type): player update: PlayerManager.Update(message) end