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.
BitTorrent has similar issues. You'd have thought they'd realise that multiple sockets = fail for most home network equipment.
I mean Grandpa's BT HomeHub, not a high-end enthusiast router with custom Linux build.
Finally had enough. Come see us over at https://soylentnews.org/
I'd like to meet this Alice and Tom; I've read so much about them, and they seem like really cool people.
Yes, this probably could have been handled better, but many home NAT boxes are so broken that they ought to be recalled. I'm actually a bit surprised that there's not a WRT54GL equivalent with well-behaved 2.6 wireless drivers that ships with an open-source configuration interface; it seems that it'd be cheaper than constantly reinventing the wheel.
Who would have thought that routers might not allow for large numbers of listening sockets on its client machines?
You know, my real feeling is why is this on Slashdot, when these devs apparently didn't consider these obvious questions. Do they even have a QA department?
expandfairuse.org
How did they not perform any simulations or trial runs with players connecting out over the internet in order to stress test this? If they did, how could their testing not notice that routers in general don't like large numbers of listening sockets on it's clients? This is a serious amateur mistake.
Why listening on multiple ports?
Listening on a single port works just fine. All Bittorrent applications I ever used only required one port to be forwarded.
1) It's not worth keeping logs, certainly not for diagnosis, if they aren't synch'ed between servers when you're doing anything which relies on >1 server. If you have a client which will only ever choose ONE server and do all it's actions through that server, you can use the logs unsynch'd. Otherwise, they MUST be synch'ed. It's not hard to work this out.
2) Timesyncing costs *nothing* in practical terms. It doesn't even have to be to the Internet/UTC, so long as they are all synch'ed to each other.
3) Not spotting a *30-60 second* lag in a server response is pretty hideous for people who wrote the code. You don't have to have written the network library to spot this.
4) Using this as an excuse to put off demos, etc. is baloney. The people RUNNING the server and investigating the code behind the running servers should not be the same people as those who are creating new content, features, demos, etc. If they are, either it should be a strict seperation of time or you're understaffed.
5) Plus, DEMO COMES FIRST. I have no reason to try games any more unless they come with a nice demo. Steam is a god-send here... if you don't have a demo of a game on it, I won't bother to download several Gigabytes, waste my diskspace/bandwidth to play it because I *know* I can't get a refund if it's shit. I spent AGES looking for a demo of the second Tom Clancy Las Vegas thing and gave up in the end. Don't want it at all now, but I was going to buy it if the demo had been even half-decent.
"The public beta could EASILY have been their test-bed for the system while they were still building it."
There, I fixed it for you.
This problem is just more apparent in some games.
Any valve game with a server browser crashed my stock AT&T Speedstream modem. When I complained to AT&T they stated that it was actually a known issue, and they were willing to sell me a 'high performance' modem for 90 bucks. I went to the local Best Buy and bought a $30 Motorola modem and never had the problem again.
(The AT&T rep seemed convinced that I was really just a heavy torrenter.)
I know, beating a dead horse here. . .
The idea of P2P connections between members of a multiplayer game seems like pretty much a no-brainer, but because of NAT, it's a total P.I.T.A. Everyone likes to say, "We don't need IPv6, just use NAT". But, NAT makes lots of things more complicated (like needing to setup port-forwarding to accept in-bound connections, or using a third-party server that isn't behind a NAT that everyone makes an outbound connection to). Plus, port forwarding sucks because only one computer per network can have any given port forwarded to it (that is, you *CAN* forward different ports to different computers, say have port 5000 forwarded to 192.168.1.10, and have port 5001 forwarded to 192.168.1.11, but you can't forward port 5000 to both computers - but if they each had their own unique, public IP, they can both receive traffic on the same port).
I long for an IPv6 world where NAT is basically a thing of the past (and for those who say NAT is good for security, there's no reason you can't still have firewalls built into routers).
Its not worth the attention, hell it doesnt even feel like a full game. The charcters are so not balanced, if im a giant walking castle i should be able to take a hell of alot of damage, not die in under a min. of combat. Also never mind that there were like fewer then 10 maps for it, granted they looked cool but still. Add that to the fact that their was no story to it and this game is just a flop. We bought it, we got suckered, move on...
Two things: There was little stress testing because GPG has a byzantine Internet policy, and forbids its workers from using anything but the Web at work. No holes were poked for them to test online.
Second, Scott Kevill's GameRanger quickly pulled the slack in for Demigod, and supported the game online just two days after launch. As I write this, there are around 100 people playing Demigod on GameRanger right now.
http://www.gameranger.com/
Don't Crease the Weasel!