The Forums Are Now Closed!

The content will remain as a historical reference, thank you.

Demigod: Inside the sausage factory

By on April 28, 2009 12:55:31 PM from JoeUser Forums JoeUser Forums

To say it has been a difficult 2 weeks would be an understatement.  I’ve been making PC games for about 15 years and never in that time have I encountered a situation quite like what we’ve had with Demigod.

As most of you know, Demigod is an awesome game. If I may be so bold, Demigod is one of the best games that has been released in the last couple of years.  And yet, here we are, 2 weeks after release and the included multiplayer matchmaking is still flakey.

I would put it like this (based on logs and talking to people)

  • 30% of users think the multiplayer matchmaking works flawlessly. You don’t hear much from them (obviously).
  • 60% of users are finding the multiplayer matchmaking to be flakey. It works but it’s a pain in the ass to get into a game sometimes.
  • 10% of users cannot be connected to other users period.

That last number will go up if the proxy servers aren’t put in place prior to the official European release as that last 10% is almost exclusively made up of people using ADSL in Europe.

So how did this happen?

image

Losing Messages

The single biggest problem has to do with lost messages.  In the beta, when we had only a couple thousand people using the system, it worked pretty well.  At first, it was pretty flakey but as we added more servers to handle the connections, the success rate went way up and by the end it was pretty perfect.  To be safe, we added extra servers to handle the expected extra players.

Then, one retailer broke the street date over the Easter break. This in itself wasn’t as big of a problem as one might think as the system could handle the legitimate players. But when the game inevitably got into warez channels, the pirates saturated our other servers (not the NAT server). Those servers handled things like validation and checking for updates. The validation kept pirates from being able to play in the Pantheon, skirmish or custom games but it also ate up a lot of our extra capacity.  The result was that for the first 3 days after the official release of the game, the online experience was totally hosed.  The early reviews reflected that unfortunately.

So for the first week, rather than focusing on the issue that would come to bite legitimate players for this past week, we were scrambling to create a mirror series of servers to isolate the pirates from the legitimate users.  That took us into mid last week.

By mid last week, it became apparent that the something was causing players to not get into the game.  We assumed it was simply bugs in Impulse Reactor since it was new and on Friday released a new version of it.  But it turned out there was nothing wrong with Impulse Reactor, the problem was coming from the NAT facilitator itself – it was sending messages but the game was never receiving them – or at least not before the time out period.

Adding more servers over the past few days has improved things bit by bit but not acceptably.

More Specific

When Bill and Rick decide to play Demigod together. The NAT facilitator connects them together, sends a message to Impulse Reactor which in turn hands over the socket to Demigod’s lobby.  We have verified that the NAT facilitator is sending the message but the message is never being received.  We know it has something to do with the load because when we try it out with a relatively small group of testers (~100) it works flawlessly.  It’s when it is put out there for tens of thousands of people that it falls apart.

Solving it

And that is where we are on Tuesday with regards to the connectivity. Figuring out why the message is sent from the NAT but not received by the game. There’s a lot of thoughts on this.  UDP (unlike TCP) isn’t guaranteed. You can learn more on this here.  Another thought is that the NAT queues up its messages and that by the time it sends it back to the game, it has timed out.    The team tells me they think they’ll have this mystery solved today.  If so, I’ll report here on this.  But this will put us up to 90%.

Proxy Servers

If I had a time machine and knew about the pain we would all be experiencing in the first couple of weeks after release, I would have simply had us set up a series of host servers around the world. When someone started a game, they would simply connect to one of those servers and there’s be no connection issues.  That’s what we have been planning to do with Elemental.  But I was of the same mind that many here have said “Hey, lots of games do this, how hard can it be?”

Well, it turns out, it is very hard.  Most vendors have used GameSpy over the years. Blizzard developed Battle.net over many years. Relic migrated to a system it developed with Quazal to develop. 

The only reason we should be able to develop a Proxy system quickly is because we already have a worldwide network infrastructure because of Impulse so the hardware is already there, the agreements with ISPs in various countries already in place.  Work on this system has been going on in parallel with the NAT issue.  What will happen is rather than getting a NAT failed message, the user will connect to one of our servers and have their traffic routed through that.  I don’t have a good ETA other than (very soon – days not weeks we expect).

On a personal note

We read the forums and we hang out on the chat and we even read comments elsewhere when we’re at home.  First, we appreciate all the support and understanding our community has had.  To those who are experiencing problems, we share your frustrations. Many of us at Stardock and Gas Powered Games have spent an immense amount of time making Demigod a great game.  For those of you who are parents, I suspect you can empathize with what those of us with small children at home who have gone weeks without seeing their dad (or mom). As a game designer, it has been quite maddening to see the launch of a great game marred by IT and network stuff.  And I can tell you, getting this network stuff nailed down is easily as complicated as dealing with all the various video cards and sound cards and other typical PC pain. 

The teams at Stardock and GPG do believe those issues will be solved soon. And we thank you for your continued patience.

 

WEDNESDAY UPDATE

I am currently sitting in the lab with the GPG, Stardock, and Raknet teams interacting.  GPG feels good about having taken care of the in-game disconnect issue. The "big" connectivity issue as described above seems to increasingly appear to be related to having to hand off the socket to the Demigod client. This creates a series of timing issues that gets exponentially worse the more people trying to connect multiplied by the # of users on the NAT server.   

+912 Karma | 80 Replies
April 28, 2009 4:22:42 PM from Demigod Forums Demigod Forums

Best. CEO. Ever.

April 28, 2009 4:23:34 PM from Demigod Forums Demigod Forums

Thanks frogboy! we need more like you.

April 28, 2009 4:30:33 PM from Demigod Forums Demigod Forums

Quoting DrGuppie,
Sorry to hear you're having such a rough time with the networking, but I think the reason they said the proxies will fix it is that, if you can't get to the NAT Facilitator for some reason, you'll instead get shunted over to the proxies. See the third paragraph up there under "Proxy Servers".

I have absolutely no idea if that will fix it, but I think that's what they expect.
Yes, of course I hope so too that the upcoming fixes and proxies will resolve that problem for me too . But so far it sounded like this would only solve connection problems between players and NAT facilitator disconnection errors.

April 28, 2009 4:37:59 PM from Demigod Forums Demigod Forums

UDP (unlike TCP) isn’t guaranteed.

Here's a thought: use TCP for connections containing information that absolutely has to go through (a connection between the NAT facilitator and a player should be TCP, connections between players can be UDP)

In game packet loss is not nearly as significant and if there's packet loss, TCP would have a very negative impact on speed, so UDP is okay. But between the NAT facilitator and players, reliability is important and it's okay if it takes a second longer. Speed is even less significant there because I imagine it doesn't send too much info. Just... "Are you connected to X?" "No." "Connect to X." "Are you connected to X?" "Yes."

April 28, 2009 4:45:20 PM from Demigod Forums Demigod Forums

I'm not convinced on the Euro argument. As a Euro I tend to group with US guys - we have as much problem with US as we do with Euro's. It concerns me that this could be side tracking Stardock from the actual issue.

I have no issue on connecting - although it can be sloooooooow, no sound - that's another matter

 

Tals

April 28, 2009 4:46:00 PM from Demigod Forums Demigod Forums

If some of the problems are due to load, could you not just localise NAT facilitator servers into specific regions?

This game although not as ping heavy as an FPS, is a little more ping reliant than a normal RTS, some abilities require precise timing.

Could you not just regonalise the game, so have a US zone, a Euro zone and ASIA/AUS. However, have a NAT facilitator for each zone. It may help with the load issues, if the server population is split a little.

Obviously perhaps not too helpful from an administrator perspective and perhaps applying patches, reporting back to GPG, who I would guess would need to setup seperate zone servers for favour etc.

Still I think with the work that is ongoing and last weeks performance, I imagine you will have it on track in a couple of weeks, if not the end of this week.

April 28, 2009 4:55:09 PM from Demigod Forums Demigod Forums

lol Black-Star questioning a developer.  Im sure you've setup a gaming network that supports thousonds of people go apply at stardock and fix all their problems genius.

Frogboy, great post again, but, even as all the bugs with connections are being ironed out, what can we expect to occur with the favor points issues? 

April 28, 2009 4:56:40 PM from Demigod Forums Demigod Forums

Great post, looking forward to finally play multiplayer witohut any connection issues.

April 28, 2009 5:15:12 PM from Demigod Forums Demigod Forums

Your first new Demigod HAS to be a Pirate, it just has to be.

Think of the glorious irony!  I'm sure you'd also make some press and create some internet buzz if you did something so ingenious ..  nothing but good things can come of it.

Do it.  Do it.  Do it.

 

April 28, 2009 5:17:15 PM from Demigod Forums Demigod Forums

It good that Favor points are at least acknowledged in the diagram in the OP.

However, it's very not good how Favor points are almost never mentioned in the text of journal updates, or if they are mentioned, they are mentioned only in as briefly passing as possible.

Please forget about the other issues until the the #1 game-breaking issue of Demigod is fixed:  bugged Favor points.

 

 

April 28, 2009 5:27:21 PM from Stardock Forums Stardock Forums

@fixmyfavor: Favor points are nowhere near a #1 game-breaking issue compared to dropped connections. Here's a counterexample. Super Street Fighter II Turbo HD Remix (launched last fall) had a similar problem: points were not earned, reset to 0, etc. Everybody switched to custom games and it went on to sell quite well, and even kept a community around for the patch that fixed the issue several MONTHS later.

April 28, 2009 5:39:11 PM from Demigod Forums Demigod Forums

Favor points are probably your #1 issue if the connection stuff works for you. However other people can't play at all.

 

What's worse? Favor points, or not being able to play the game? It's clear which of these problems is the real priority.

April 28, 2009 5:47:14 PM from Demigod Forums Demigod Forums

Great job Stardock!   Keep it up.  Your updates are very useful and put the community at ease.  I knew y'all do a great job on Demigod and its support, just like Sins of a Solar Empire.

April 28, 2009 5:57:50 PM from Demigod Forums Demigod Forums

im one of the 10% who cant connect but i am in Australia, cant wait for the proxies!

April 28, 2009 6:03:40 PM from Demigod Forums Demigod Forums

Holy McPoop. I love this support. This is why I am more than willing to deal with these temp issues...because with this kind of support, we know they are temp.

April 28, 2009 6:36:09 PM from Demigod Forums Demigod Forums

Thanks for the constant flow of great updates guys. Keep up the good work.

April 28, 2009 8:06:03 PM from Demigod Forums Demigod Forums

These updates and the early support are the reason I buy your games guys. This amount of developer and 'suits' interaction and feedback is wonderful and really makes me happy to be a customer of yours.

April 28, 2009 8:07:33 PM from JoeUser Forums JoeUser Forums

Definitely going to stick by this game. Good job SD and GPG.

April 28, 2009 8:25:03 PM from Demigod Forums Demigod Forums

Quoting Jdub121686,
lol Black-Star questioning a developer.  Im sure you've setup a gaming network that supports thousonds of people go apply at stardock and fix all their problems genius.

Frogboy, great post again, but, even as all the bugs with connections are being ironed out, what can we expect to occur with the favor points issues? 

Actually what he suggests is a good step. Issues happen under load, so try to simulate multiple packets hitting the server at once and try to see if there is a data mix-up or packet routed to the wrong location.

April 28, 2009 8:31:30 PM from Demigod Forums Demigod Forums

Quoting JAlspaugh,
Your first new Demigod HAS to be a Pirate, it just has to be.

Think of the glorious irony!  I'm sure you'd also make some press and create some internet buzz if you did something so ingenious ..  nothing but good things can come of it.

Do it.  Do it.  Do it.
 

+1

April 28, 2009 8:53:13 PM from Demigod Forums Demigod Forums

lol@FixMyFavor.

 

I should create a new profile, FixMyMultiplayer.

 

I haven't been able to play Pantheon or Skirmish games so I would be mad if SD were fixing your silly favor points instead of my ability to play the the game online with others.

April 28, 2009 8:54:56 PM from Demigod Forums Demigod Forums

Quoting JAlspaugh,
Your first new Demigod HAS to be a Pirate, it just has to be.

Think of the glorious irony!  I'm sure you'd also make some press and create some internet buzz if you did something so ingenious ..  nothing but good things can come of it.

Do it.  Do it.  Do it.

 

 

Aha, Davy Jones comes to mind.

April 28, 2009 9:00:42 PM from Demigod Forums Demigod Forums

I am seriously starting to be offended by these journals.

It's like when you phone your telephone company. You are PISSED OFF because your internet/IP phone/mobile phone/something is broken and there is going to be hell to pay.

10 minutes into the conversation, you have no idea why you are harassing this very kind person, 15 minutes in you forgot why you phoned in the first place and 20 minutes in you're subscribing to their new upgraded plan which doesn't cost extra if you cancel within 2 months.

 

As you hang up, you feel kind of dizzy. And then you don't think about it anymore until next month's bill arrive.

 

 

STOP BEING SO NICE AND SENSIBLE WHEN WE ARE YELLING AT YOU! IT MAKES IT VERY HARD TO STAY ANGRY!

April 28, 2009 9:35:57 PM from Demigod Forums Demigod Forums

Wait wait.  Your charrts and fancy talking did not help at all.

 

 

I still don't know how sausage gets made.

 

April 28, 2009 9:47:23 PM from Demigod Forums Demigod Forums

Quoting Black-Star,
UDP message delivery is not guaranteed, but it isn't flakey enough to generate the number of problems that I saw last night during my 1.5 hours of trying to get a full set of connections in 4 to 10 player games.

Actually, it is flakey enough to cause large numbers of problems, especially if there isn't anything being used at the application level to make it act more like TCP. With UDP if ANYTHING goes wrong with a single packet then the entire game is fubared. This isn't just packets getting dropped, it also includes slight delays in which a packet gets out of order (unless they are numbered). When you are working with 45 connections in a 10 person game with multiple packets getting sent for multiple purposes to multiple people with a server that can sometimes get stressed and drop packets, yes, it's horribly unreliable. That's fine for gameplay, not okay when the entire game hinges on every single one of those connections.

It's been awhile, but I'm also pretty sure that UDP only opens a single channel and stuff just gets thrown through that, so when the socket is expecting data from one player it might get data from another, again borking the whole system..

Stardock Forums v1.0.0.0    #108435  walnut2   Server Load Time: 00:00:00.0001578   Page Render Time:

Stardock Magazine | Register | Online Privacy Policy | Terms of Use

Copyright ?? 2012 Stardock Entertainment and Gas Powered Games. Demigod is a trademark of Gas Powered Games. All rights reserved. All other trademarks and copyrights are the properties of their respective owners. Windows, the Windows Vista Start button and Xbox 360 are trademarks of the Microsoft group of companies, and 'Games for Windows' and the Windows Vista Start button logo are used under license from Microsoft. ?? 2012 Advanced Micro Devices, Inc. All rights reserved. AMD, the AMD Arrow logo and combinations thereof are trademarks of Advanced Micro Devices, Inc.