The server receive thread needs to push the user it was received from up the chain 1. Allow the server to setup a server name 2. Allow the client to setup a user name 3. Have the client connect to the server with a welcome packet 4. Have the server use the welcome packet to fillout the user information on the server 5. Respond to the client from the server with a server list of UDPEndpoints 6. Instead of looping through a list of avalible users have a local user dictionary that can be used to lookup clients IPEndPoints Test that the datapacket is formatted correctly. The packet size might be off from the actual packet size Have each client update the ingame location to the server every 5 seconds [ Heartbeat ] For each user in the server calculate which other players are close enough for a connection So the server needs to hold a table of what clients a client is already connected to if a new player is now close enough update the client and the servers client table with that information have the clients udp together if a player goes out of the range update the clients that they no longer need the connection drop the player from the table and notify the end user they can close the connection When user a joins a server The IP gets added to the servers master list The user needs to authenticate for username when the server connection closes Notify all clients to drop the connections Remove the user from the server table Use the Server TCP connection to notify all clients when a user disconnects Only send updates across the network. Dont send same state events Need to setup a network buffer for Tagged Objects. ID Connection Flow: 1. Connection to server is made working Server object is created working ServerConnection gets added to the Connections table working Server fires user connected event working 2. User sends an Auth Packet to server working Server responds with Auth sucess or fail and marks the users auth status in the server table. needs work After sucessfull auth share the users IPEndPoint with close connections not started 3. If the TCP connection closes not started Disconnect the user and tell all clients that the user is gone not started