[MAJOR FLAW] Synchronous loading = bad
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.