Server and client should both fail gracefully if the other messes up the handshake somehow. For example, if the server doesn't give the client a map size, the client should probably just abort with "hey, I don't have a map size" rather than crashing as soon as it gets a GroundInfo with "hey, I can't access gameState.groundTypes[x][y] because gameState is None".
Server and client should both fail gracefully if the other messes up the handshake somehow. For example, if the server doesn't give the client a map size, the client should probably just abort with "hey, I don't have a map size" rather than crashing as soon as it gets a GroundInfo with "hey, I can't access gameState.groundTypes[x][y] because gameState is None".
We should also find a way to test this.