The Forums Are Now Closed!

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

Demigod: Understanding RTS multiplayer and why it sucks

By on May 6, 2009 1:03:23 PM from JoeUser Forums JoeUser Forums

This post here gives a good understanding of where we’ve been.

But here I want to discuss the technical issues that have plagued the built in MP match-making. 

I’m going to start this by sounding like a weasel but it is also the truth: The Demigod MP match-making is basically the same as nearly every other RTS out there. It’s no better or worse. The difference – the fatal difference – is the demographic of who is trying to play multiplayer is radically different and the number of people playing multiplayer is radically different. In short, Demigod’s built in MP, as it is today and has been since launch, is no better or worse than other RTSs on the market today.

Now, before some of you hit the flame key, let’s talk about why the experience of people using the built in MP match making has sucked so bad.

First person shooters vs. Real-Time Strategy Games

In games like Call of Duty or Counterstrike or Left4Dead, you are largely dealing with people picking a server from a list, typically based on ping time, and joining it. The only connection one needs to make is to that server and that server has typically been set up to be as easy to connect to as possible.

In a real-time strategy game, like Supreme Commander or Company of Heroes the connections are peer-to-peer. Each player has to connect to each other player. 

GPGNet (Supreme Commander)

In Supreme Commander, Gas Powered Games developed GPGNet.  The way it worked is that a person would create a game. Subsequent people would connect to the host and then enter the lobby. The game would then try to connect each of the players up and if they failed to connect to one another, they would get a yellow ping and the host would have to eject them.

However, the demographic of Supreme Commander is significantly different from the demographic of Demigod (as SupCom players here can probably tell you).  Casual players of SupCom played mostly single player and the people who played SupCom online tended to be technically savvy and knew to port forward 6073 (that’s the port it used).  And people who didn’t know what they were doing either quickly got ejected from games or learned to set up their routers.

Demigod

Demigod’s setup is similar to GPGNet with a couple critical differences.  First, to get into the lobby you currently have to connect to everyone who is in the lobby before getting into the lobby.  However, if you enter the lobby at the same time as someone else, you will get a yellow (or red 0) ping to them. If you can’t connect to them, someone will have to leave and try again or need to be booted out. 

Super NAT

To improve connectivity we worked with RakNet to develop a kind of Super NAT Facilitator. The idea is that we would make it so that everyone could connect to each other and avoid the whole "people need to open their ports” thing entirely because we knew Demigod would be a multiplayer heavy game.  Unfortunately, the system developed is resource intensive on the servers and when thousands of people showed up, the system started to fall apart.

The result is that people could not connect to people easily inside of the lobby because of the increasing lag (not ping lag but lag from the servers being overloaded) and users would just sit there waiting in frustration to get into a game.

During the first week, we basically lost out because of the well known warez users hitting validation and check for updates so we couldn’t even begin to dig into the issue of the NAT servers being overwhelmed until last week.

Super NAT fails

But we have encountered edge cases that have turned out to be catastrophic. Over the past year it seems, an increasing number of ISPs (we believe, we don’t have proof so I’m not naming names here) are trying to shape their bandwidth use and doing things that make peer-to-peer connections more problematic (bit torrent uses P2P).

The net effect is that some people can only literally connect to 1 or 2 people and are then blocked by their ISP.  So what happens? Other people try to join a game and they cannot connect to that guy who is in the lobby because that guy can’t accept any more connections. So then the Super NAT goes into play to try to find a way which in turn takes more and more resources on the NAT. You get even a handful of those types of users and it gets to be a real problem.

Blocking Port 6000

Then we find out that some routers block incoming traffic to port 6000. If you very quickly get a “NAT connection failed” that is why. You will need to tell your router to knock it off – port forward UDP traffic from port 6000 to your IP (or just have it unblock that port).  I only know of a few routers that do this (Some Dlinks for instance).

So why is this taking so long to fix for those people?

The reason we have to connect to players in the lobby before putting them into the lobby is because Demigod, not us, handle the in game connections.  We hand off the connection (the socket) to Demigod once users are connected.  So we’ve had to spend time developing something that will let us connect people who are in the lobby even which is some very specialized coding.

We have also had to work on setting up Proxy servers for people who just can’t connect and that’s been no trivial thing either.

The build we put up tomorrow is expected to let people get into the lobby as long as they can connect to the host and then connect people once they are in the lobby first by trying direct connect (that’s if you port forward 6000 to 6200 to your PC’s IP) and then if that doesn’t work to use NAT facilitation and if that doesn’t work Proxy servers. But it’s complex with a lot of moving parts being developed by a team that has been working non-stop for weeks.

Will everyone be happy?

No. Because there are people out there for whatever reason just can’t connect to other people on the Internet.  There aren’t many of them but at least we can work with them and see what we can do without those users impacting everyone else.

So that’s where we’re at.

Personally, I think this kind of stuff should be built into the OS.  As a game developer, I can’t even begin to express how frustrated I am that we have to do all this.  If this were an Xbox game or a PS3 game, we wouldn’t have to do any of this. We’d simply hand the user off to the manufacturer’s already included super mega system and it would take care of it.  I could rant for hours on (as you can imagine, I’m extremely tired) how ridiculous that our reputation, game reviews, and our technical competence are being brought down based on how quickly we can implement something that should already exist by the OS maker (maybe Games for Windows Live will eventually evolve into this I hope).

We expect to put up a new BETA of this tonight and if all goes well release it tomorrow afternoon. That’s the plan. It’s not a promise. Given what I’ve learned in the past 3 weeks, when it comes to Windows networking, router manufacturers, and ISPss never assume anything.

+912 Karma | 96 Replies
May 6, 2009 1:13:28 PM from Demigod Forums Demigod Forums

Nice post!! Thanks!!

May 6, 2009 1:13:50 PM from Demigod Forums Demigod Forums

Maybe I missed it in the post, but is this new patch going to fix (or change) how the connection system works? As of right now people wait in line and wait for their turn to connect to everyone, which is fine in the early going, but then it seems that once 1 person gets hung up, all hell breaks lose.  At least from my experience, when someone gets booted from the Connection Queue after getting stuck connecting, it screws with other people's chances on connecting after him/her. 

May 6, 2009 1:19:45 PM from Stardock Forums Stardock Forums

The reason we have to connect to players in the lobby before putting them into the lobby is because Demigod, not us, handle the in game connections. We hand off the connection (the socket) to Demigod once users are connected. So we’ve had to spend time developing something that will let us connect people who are in the lobby even which is some very specialized coding.

So, which Demigod handles the in game connection. I'll bet it's Erebus.

 

  

Appreciate all your hard work!

May 6, 2009 1:22:08 PM from Demigod Forums Demigod Forums


In short, Demigod’s built in MP, as it is today and has been since launch, is no better or worse than other RTSs on the market today.

Its not - for all the reasons you just listed.

May 6, 2009 1:24:02 PM from Demigod Forums Demigod Forums

thanks many people need to read this before they start compaining that its stardock's fault when their router is the one that's giving them the problems.

May 6, 2009 1:28:30 PM from Demigod Forums Demigod Forums

Don't lose hope, Frogboy, and all you other great people!!

May 6, 2009 1:32:43 PM from Demigod Forums Demigod Forums

The build we put up tomorrow is expected to let people get into the lobby as long as they can connect to the host and then connect people once they are in the lobby first by trying direct connect (that’s if you port forward 6000 to 6200 to your PC’s IP) and then if that doesn’t work to use NAT facilitation and if that doesn’t work Proxy servers. But it’s complex with a lot of moving parts being developed by a team that has been working non-stop for weeks.

Personnaly, this has been the worst problem. I'm really glad it is getting fixed. I've been drawn to this game after playing DotA for years and being able to join a game instantanously. Waiting on a "trying to connect to a game" message box was really getting on my nerves. At least know I will know my spot will be reserved when I join a 5/6 match instead of waiting minutes only to see a game full message.

Personally, I think this kind of stuff should be built into the OS.  As a game developer, I can’t even begin to express how frustrated I am that we have to do all this.  If this were an Xbox game or a PS3 game, we wouldn’t have to do any of this. We’d simply hand the user off to the manufacturer’s already included super mega system and it would take care of it.  I could rant for hours on (as you can imagine, I’m extremely tired) how ridiculous that our reputation, game reviews, and our technical competence are being brought down based on how quickly we can implement something that should already exist by the OS maker (maybe Games for Windows Live will eventually evolve into this I hope).

I'm not sure where you are getting with this. I understand the amount of work you guys have putted in this game over the last couple of weeks, but I'm not sure I'm on your side when you dump the fault on the OS. Asking for such a feature to be added to DirectX (or whatever part of it they call the DirectConnect nowadays) would make more sense. But asking for an OS to provided games with a framework to easily connect between users might be a bit of a stretch. You said it yourself, you've underestimated the response on this game. If you had known in the dev phase, you would'nt have had to quickly implement such a thing.

I think the lesson you (and all of us developer out here) is that the globalisation of game distribution makes it much less predictable than before. If you had burned 50 000 DVD, you would have known that at the most 50 000 users would have connected to the game. But with a direct download offer, you got what you deserved, a smash hit And we all know that with great success comes great problems.

Keep up the good work guys, I think we can no see the light at the end of this tunnel, and it look like it's party all night on the end

May 6, 2009 1:33:00 PM from Demigod Forums Demigod Forums

Thanks for the post. Reminds me why I didn't go into networking

May 6, 2009 1:36:20 PM from Demigod Forums Demigod Forums

I'm not sure I'm on your side when you dump the fault on the OS. Asking for such a feature to be added to DirectX (or whatever part of it they call the DirectConnect nowadays) would make more sense.

DirectX has effectively been part of the OS for some time now.

May 6, 2009 1:38:44 PM from JoeUser Forums JoeUser Forums

I'm not sure where you are getting with this. I understand the amount of work you guys have putted in this game over the last couple of weeks, but I'm not sure I'm on your side when you dump the fault on the OS. Asking for such a feature to be added to DirectX (or whatever part of it they call the DirectConnect nowadays) would make more sense. But asking for an OS to provided games with a framework to easily connect between users might be a bit of a stretch. You said it yourself, you've underestimated the response on this game. If you had known in the dev phase, you would'nt have had to quickly implement such a thing.

That's what I mean. DirectX should be doing this kind of thing. They started to in DirectX 8 with DirectPlay but then abandoned it.

May 6, 2009 1:40:38 PM from Sins of a Solar Empire Forums Sins of a Solar Empire Forums

Thanks to all of SD/GPG for doing everything they can.  The first game I played over the internet was buggy and slow, but still a ton of fun (even though I lost).

For your sake, I hope you guys are near the end of this mess.  This part can't be fun.

May 6, 2009 1:42:21 PM from Demigod Forums Demigod Forums


Will everyone be happy?

I would be happy if you fixed Favor.  As is usually the case, the original post of this dev journal neglects to address the huge, game-breaking, broken Favor points/items issues.    The few times that it was addressed in dev journals, claiming it was fixed, was not borne out in reality. In reality, the alleged fixes had no effect on the Favor problems whatsoever (other than 'negative Favor bug' which was indeed 'fixed' by being swapped for 'zero Favor bug', which has the same effect  in making Favor items unpurchasable and therefore unusable). 

Please fix Favor once and for all.

May 6, 2009 1:45:37 PM from Stardock Forums Stardock Forums

I would be happy if you fixed Favor. As is usually the case, the original post of this dev journal neglects to address the huge, game-breaking, broken Favor points/items issues.

Broken favor points is game breaking? I'm playing quite nicely and could care less about favor points at the moment. But way to hijack the thread.

May 6, 2009 1:49:20 PM from Demigod Forums Demigod Forums



The reason we have to connect to players in the lobby before putting them into the lobby is because Demigod, not us, handle the in game connections.  We hand off the connection (the socket) to Demigod once users are connected.  So we’ve had to spend time developing something that will let us connect people who are in the lobby even which is some very specialized coding.
We have also had to work on setting up Proxy servers for people who just can’t connect and that’s been no trivial thing either.
The build we put up tomorrow is expected to let people get into the lobby as long as they can connect to the host and then connect people once they are in the lobby first by trying direct connect (that’s if you port forward 6000 to 6200 to your PC’s IP) and then if that doesn’t work to use NAT facilitation and if that doesn’t work Proxy servers. But it’s complex with a lot of moving parts being developed by a team that has been working non-stop for weeks.


wait should we be forwarding 6000-6200 like you say here or 6100-6200 like you (and others) have mentioned previously.. just wanna clarify before the new patch

May 6, 2009 2:00:56 PM from Demigod Forums Demigod Forums

The difference – the fatal difference – is the demographic of who is trying to play multiplayer is radically different and the number of people playing multiplayer is radically different.

So the demographic that this game appeals to is also the problem?

May 6, 2009 2:05:21 PM from Demigod Forums Demigod Forums

Quoting Charvel1,



Broken favor points is game breaking?

Yup, it sure is!  No question about it.

Quoting Charvel1,



playing quite nicely and could care less about favor points at the moment.

It's still game-breaking regardless of if you personally don't care about it.

Quoting Charvel1,

 But way to hijack the thread.

If this issue wasn't neglected, I wouldn't be 'hijacking' the thread by bringing it up.  The problem stems from the issue being neglected instead of being included in the OP of the Dev Journals in the first place, as it should be.

Or alternatively, if it's not going to be addressed in this thread in particular, then another thread stickied in the Dev Journals explaining exactly when/if they ever intend to fix Favor and allowing discussion of that game-breaking issue would be fine.  But it's not fair to blame me for bringing it up in this thread when it gets neglected (or, claimed to be fixed when its not) by the devs in all their Dev Journals and on top of that there is no dedicated thread to discuss it.

May 6, 2009 2:08:22 PM from Demigod Forums Demigod Forums

Are you going to sell this technology to others?

May 6, 2009 2:13:28 PM from Demigod Forums Demigod Forums

broken favor does not break the game, i think it actually might play better, ie better balance

 

all the servers ive been hosting have favor disabled, and worked fine

May 6, 2009 2:15:28 PM from Demigod Forums Demigod Forums

I think you hit the nail on the head on why I think PC gaming is going away. There are just too many configurations and variables to correctly support all configs. Either you have to dedicate a lot of resources to developing your own expensive server solutions that handle all these connections (Blizzard) or you resort to depending on the servers setup by the user base (L4D, TF2). The problem with option 2 is that you start to lose control of what happens on those servers which can be a problem when you're trying to present a quality game to casual users. Only to have these users  join an instagib, low-grav server where the speed is set to a crazy fast speed.

Games for Windows Live doesn't appear to be a solution to this problem as it feels more like a burden to Windows games right now rather than a benefit. However, we'll see what the future of PC gaming is. 

May 6, 2009 2:19:08 PM from Demigod Forums Demigod Forums

Games for Windows Live doesn't appear to be a solution to this problem as it feels more like a burden to Windows games right now rather than a benefit. However, we'll see what the future of PC gaming is.

GFW Live has improved pretty dramatically from its first inception in, say, Universe at War. Compare that with today, and the difference is really night-and-day. It still has a lot of room to evolve but it's much better than what it used to be!

May 6, 2009 2:23:21 PM from Demigod Forums Demigod Forums

Broken favor points is game breaking? I'm playing quite nicely and could care less about favor points at the moment. But way to hijack the thread.


More like he's irrational on the subject.  It's a very minor bug, but he's blowing it far out of proportion because it's the bug he's decided to hate.

May 6, 2009 2:26:14 PM from Demigod Forums Demigod Forums

well, a lot of us appreciate the effort, including myself, and if anything the dedication shown only brings your reputation up in my book.

May 6, 2009 2:31:34 PM from Demigod Forums Demigod Forums

Interesting info. Thanks for it, as usual.

I would appreciate some type of feedback from the game/matchmaking software itself - accurate feedback, that is - as to what is wrong (if anything) with my system. I have knowledge of gaming, of my system, of typical software quirks, but I am by no means a techhead: getting a diagnostic of a problem on my specific end would be helpful. As well as pointers on how to fix it.

I know that could be substantial in terms of coding.

May 6, 2009 2:42:17 PM from Demigod Forums Demigod Forums

And what's with the people that cannot connect to the NAT facilitator in the first place?
I know that CariElf is on my case, but I am still worried if this will ever be resolved for me.

May 6, 2009 2:46:42 PM from Demigod Forums Demigod Forums

In that case it should route you to a proxy which will be able to connect. But if you can't connect to the proxy..

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