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 ------------------------- Animations: multiple cells in one animation (x-axis) multiple animations in one sheet (y-axis) Image: SetSurface(surface) GetSurface() SetClip GetClip //clips ------------------------- 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