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 9:48:06 PM from Demigod Forums Demigod Forums

Quoting Jingseng,
I still don't know how sausage gets made.
Throw everything in. Start grinding.

 

April 28, 2009 9:50:05 PM from Demigod Forums Demigod Forums

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

He he, you got that right Heavenfall.

Thanks for the update Frogboy! I'm one of the unlucky 10% but at least I'm learning something about network protocols and stuff. Your diagramm is great, transparency beats obfuscation every day in my book!

Looks like the proxies might help with my connection problem, so I'll patiently wait until they are up. And I'll gladly participate in the beta patch testing if I can find the time. BTW, that's a very good solution.

Spooky, Heavenfall, let's hate the Gremlins in the NAT facilitator. They nest in our network at work too. I hate those little critters!

April 28, 2009 10:24:02 PM from Demigod Forums Demigod Forums

Well, a sausage factory is a valid analogy for the development of a game that is a sausage fest.

Thanks for the update.

April 28, 2009 10:36:50 PM from Demigod Forums Demigod Forums

IMO the game has improved to where I don't have much to complain about other than people connecting in lobbies. Looking forward to the proxy serve patch and hopefully all will be well. Keep up the good work.

April 28, 2009 10:53:59 PM from Demigod Forums Demigod Forums

Quoting scyldSCHEFING,
Well, a sausage factory is a valid analogy for the development of a game that is a sausage fest.

Thanks for the update.

I was thinking the same thing.  Computer science nerds in a building could be called a sausage factory.

I still wonder if its worth offloading the NAT faciltator to some of the hosts of the game.   Though maybe thats too much bandwidth for a user to sustain, but it would certainly lighten the load on the main NAT server if it only had to be used for the initial connect to the person designated as the 'host'.

 

 

April 28, 2009 11:48:55 PM from Demigod Forums Demigod Forums

FYI: The OP by Frogboy has been reposted on VooDoo Extreme  .

April 29, 2009 12:02:44 AM from Stardock Forums Stardock Forums

Loving the updates.  This kind of transparency goes a LONG way toward keeping us happy, which in turn makes us forget all about the torches and pitchforks.  A shame really, I haven't seen a good mob in years.


One thing that would be nice is hearing about what GPG is working on, or maybe even hearing from one of them.  If they're all busy and working on the game I understand, but you're starting to spoil us.

April 29, 2009 12:27:44 AM from Demigod Forums Demigod Forums

Loving the updates. This kind of transparency goes a LONG way toward keeping us happy, which in turn makes us forget all about the torches and pitchforks. A shame really, I haven't seen a good mob in years.

You could always join the mob forming on UBI's front lawn......hehe

April 29, 2009 1:09:22 AM from Demigod Forums Demigod Forums

I love charts, good job!

April 29, 2009 1:23:28 AM from Demigod Forums Demigod Forums

keep up the good work.  as a software developer, i feel your pain.  we have large corporate customers who bust our ass by calling up our CEO rather than ranting on the forums

you are doing a great job.  i am very happy with the game and the attention you guys are giving it.

 

 

April 29, 2009 2:22:52 AM from Demigod Forums Demigod Forums

Quoting Sythion,

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..

If I remember correctly, the UPD header has the destination port and IP in the header, so one of the networking layers (I think) filters out the ones that aren't destined for that IP.

It could just be a case of how to detect if a packet has been lost, since even if everything is perfect there is a chance of data loss happening. But I'm not going to make assumptions on what is happening, since they know their netcode and I don't.

April 29, 2009 2:33:05 AM from Demigod Forums Demigod Forums

It's too bad you didn't use Games for Windows Live.

I know a lot of people have issues because Microsoft is TEH EVILZ, but their multiplayer networking system and infrastructure is rock solid. It works great for Xbox LIVE and it works great in Dawn of War II. Maybe it wasn't a viable option for you for business reasons, but the technology is sound.

Demigod's release is a textbook example of what happens when a software team gets into a "Not Invented Here" mode. I just hope you'll learn from this experience and not try to do everything from scratch for Elemental.

I appreciate all the hard work you are doing, and the transparency in communication. It's very refreshing. But results are the bottom line. My experience playing Demigod has been miserable for the past week. I've had to make a rule for myself that if I get three connection problems I stop playing for the night. If I didn't do that, I'd get so frustrated I'd end up hating the game. After tonight's fuster cluck trying to put together a 4v4 game with friends, I've written off the game until it's fixed. It's a great game, but it's not great enough to make it worth spending more time trying to connect than actually playing the game.

Also, I find it very unfortunate that you're not even mentioning fixes for a huge feature of the game that is completely broken right now. Can't even play single player, because the Favor system is not working properly. I realize that multiplayer connectivity is your priority, but you can do more than one thing at a time. The favor system is kinda central to the game, it's one of those "carrot on a stick" features that keeps me playing. Get more favor, get cool toys for my Demigod. Fix it too, please.

April 29, 2009 2:41:54 AM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Good to hear from ya.

Also, could you have picked a stranger post title?!

April 29, 2009 2:42:18 AM from Stardock Forums Stardock Forums

As for the IT and networking bit... Let's see this as a good learning experience, never to be repeated, that will only strengthen the company in the future.

(networking ppl help each other)

April 29, 2009 4:04:23 AM from Demigod Forums Demigod Forums

needs a dg of sausage and meat byproducts.

 

Cheeseburger of paradise - you can has healing.

Wrathful Carnitas - taste better the next day.

Divine wondermeat - random effect on dg within range.

Divine sausage - adds 15 weapon damage and a smoky aftertaste.

Prosciutto di harma - succulent sliced ham grants 500 heal, but triples all recasts and reduces walking speed to 1.0

April 29, 2009 4:48:35 AM 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.

 

Best.Idea.Ever.

 

April 29, 2009 4:54:09 AM from Demigod Forums Demigod Forums

Quoting badken,
It's too bad you didn't use Games for Windows Live.

I know a lot of people have issues because Microsoft is TEH EVILZ, but their multiplayer networking system and infrastructure is rock solid. It works great for Xbox LIVE and it works great in Dawn of War II. Maybe it wasn't a viable option for you for business reasons, but the technology is sound.

It doesnt work so well on PC platform. Sometimes it takes about 20 min just to get into a game. I wouldnt wait that long.

April 29, 2009 4:54:54 AM from Demigod Forums Demigod Forums

Thanks for the Update, Frogboy.

April 29, 2009 5:34:11 AM from Demigod Forums Demigod Forums

This turns out to be an interesting experience, apart from the game itself : )

I hear you man, and I appreciate the transparency.

As I see it, what you said so far still doesn't clear the decision to release the game. By professional standards, troublesome as it could be with distribution considerations, Demigod should not have been released.

1. You say that with in your lab ( ~100 testers ) it worked flawlessly. OK.

You say that with the Beta community, it was pretty perfect. Well, that's not what I remember. Near the end Cari was handing out A-D tags and asking us to rate connectivity, and I remember there was a large percentage of flakey-to-broken connectivity.

Maybe I don't have the whole picture, but that doesn't seem probable - there were many posts about bad connectivity right up to rlease date. Besides, by what you describe, those 10% who can't connect now have something in common - ADSL users from Europe. Stands to reason they could not connect in Beta too.

Which comes down to - with the state of affairs apparent in Beta, connectivity was not fit for release.

2. There were just too many bugs in-game in Beta, and their effect was too prominent. Not just remote bugs like if-I-Stand-Near-Flag-and-go-left-right-left-right- then... There were stability issues and command issues and ability issues and more. Every game has some minor, remote bugs on release, but it was plain to see Demigod was not adequately finished.

 

You know, we do understand financial constraints. Were the consequences of postponing the game another month so severe ?

April 29, 2009 8:46:50 AM 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.

 

 

I agree. I would definately play a Pirate themed Demigod. (Must be an Assassin).

Could also make a Ninja of course as a General. He could be like Master Shredder and send out The Foot.

April 29, 2009 9:04:19 AM from Demigod Forums Demigod Forums

Quoting Tamren,
Good to hear from ya.

Also, could you have picked a stranger post title?!

 

I believe the title is a reference to the old line that "if you love sausages or the law, you're better off not knowing how they're made" (often attributed to Otto von Bismarck).

April 29, 2009 10:44:27 AM from Demigod Forums Demigod Forums

Every game has some minor, remote bugs on release, but it was plain to see Demigod was not adequately finished.

 

Except no, it wasn't plain.  Other than connectivity, I personally didn't have any major engine-level issues.  (A few balance comments, yes, but not engine level stuff).

April 29, 2009 11:50:53 AM from Demigod Forums Demigod Forums

I have to say I love the devs here, at least frogboy. Posting these issues is great to keep it in focus for the devs, keeps players informed and also allows the use of us networking and IT guys (we typically play games....) to give suggestions to technologies or fixes maybe you guys have not thought of.

Keep it up, the game is great, can't wait for more content and client issues to be resolved!

April 29, 2009 5:11:02 PM from Demigod Forums Demigod Forums

Quoting the_Monk,

Loving the updates. This kind of transparency goes a LONG way toward keeping us happy, which in turn makes us forget all about the torches and pitchforks. A shame really, I haven't seen a good mob in years.
You could always join the mob forming on UBI's front lawn......hehe

 

Yep. We already got the the crosses built, the moat dug and are getting the tourches soon. The more the merrier!

April 29, 2009 6:15:41 PM from Demigod Forums Demigod Forums

Updated post.

Stardock Forums v1.0.0.0    #108435  walnut2   Server Load Time: 00:00:00.0001078   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.