Why does the game wait for network traffic before executing code? In other words, the game uses synchronous loading, wherein the game will freeze whenever it is waiting for a response from the network (Demigod servers, mainly). This is a terrible idea since the network code is so unreliable.
Examples of problems caused by this behavior:
Demigod freezes while attempting to log in if servers are experiencing heavy load
Custom lobbies often freeze (temporary) when players who use NAT or the proxies connect
Demigod freezes (temporary, but sometime will require the user to kill the process) when attempting to view achievements or the custom server browser when the servers are under heavy load
Lobby host times out and his Demigod.exe freezes (host must terminate process) when NAT- or proxy-based players join and leave rapidly
It would be nice if GPG changed the game to use asynchronous loading to alleviate such problems.
Yes! This is
incredibly annoying. Just yesterday, when the server was acting up again, as it does so often, I wanted to host a 5v5 on Mandala. Due to the server hick up, people didn't join as fast, since they got troubles with logging in etc. too. And then I had to rehost the game 3 times, because in the first 2 times I had to wait so long, so that another server hickup occured and Demigod got unresponsive during those hickups, as you described.
@maxxy: we waren't talking about in-game connections here. This is solely about the server issues before starting a game, which has nothing to do with Demigod's p2p network code.