Breaking Down the Demigod Launch
In addition to the piracy troubles that plagued Demigod's launch (and partly exacerbated by them), Stardock and Gas Powered Games ran into severe networking issues that hampered their ability to accommodate players with a legitimately purchased copy of the game. Brad Wardell has now posted a frank, detailed explanation of what happened and how they dealt with it. Quoting:
"Demigod's connectivity problems have basically boiled down to 1 bad design decision and 1 architectural limitation. The bad design decision was made in December of 2008 when it was decided to have the network library hand off sockets to Demigod proper. In most games, the connection between players is handled purely by one source. ... So in Demigod, on launch day, Alice would host a game. Tom would be connected to Alice by the network library and then that socket would be handed to Demigod. Then, Alice and Tom would open a new socket to listen for more players to join in. As a result, a user might end up using a half dozen ports and sockets which some routers didn't like and it just made things incredibly complex to connect people and put a lot of strain on the servers to manage all those connections.
"That's just how it goes" is the excuse made by every slipshod hand-waver who believes that there's never enough time to do it right, but always enough time to do it twice.
First: Demigod is peer to peer? Whoa, 1992 just called, they want their design paradigm back. Peer to peer is inherently unstable, unreliable and uncontrollable. Nobody (else) uses it for an "AAA" PC title, for those reasons. It's not an inspired choice, it's an insane one, by a company that thought they could palm off responsibility (and cost) on to their players rather than doing their own hosting.
Second: this whinging about the "network library", and needing to fly the developer in to fix it is simply pathetic. Raknet is an absolute joy to use, is well documented and comes with loads of examples and the source code. The issue is that they assumed that a network library designed in the last decade would deal with their retarded prehistoric requirements, and they didn't bother to check that or test it until way too late in the day. I'd love to hear the story from the Raknet side...
Some mistakes are understandable, but screwing the network architecture on a predominantly multiplayer game takes willful ignorance. The cost to them in bad publicity and lost sales is far, far higher than if they'd paid a competent engineer to do a decent design. It's always cheaper to do it right than to do it twice.
If you were blocking sigs, you wouldn't have to read this.