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 5:52:53 PM from Demigod Forums Demigod Forums

Yes, the main reason this system is in place for Demigod and not simply GPGNet v2 is because Stardock wanted this experience and refinement.

May 6, 2009 6:06:03 PM from Demigod Forums Demigod Forums

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

 

first time this is mentioned! then again, no result from doing it, still cant connect

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

Quoting Eternal_Silence,

Quoting Gallifray, reply 17 "One quick question please. I thought you said in an early post to port 6100 to 6200 open?  Should I be porting 6000 to 6200 now?"

I was wondering the exact same thing.

Can we get an official responce to this, please?

May 6, 2009 6:47:10 PM from Demigod Forums Demigod Forums

How fast an internet connection should be to support a 5v5 game, without lagging everyone else? Is there any official info on this?

May 6, 2009 6:52:15 PM from Demigod Forums Demigod Forums

I love you Stardock, but there is no other RTS out there where I have to forward 100 or 200 ports. That seems beyond unnecessary. Even via your own post you indicate that in Supreme Commander people only needed to forward ONE: 6073 (UDP I assume). Why does Demigod need a range of at least 100, if not more?

I assume these ports are UDP, but unfortunately, most of the time this information is omitted in posts explaining what we need to do. Please, it's important. Do we forward UDP, TCP, or both? Also, do we forward 6000 and 6073 in addition to the range specified?  And again, UDP? TCP?

On top of that, this post doesn't explain if it's still adequate to simply open up a smaller range using ImpulseReactorOptions.exe, which was stated earlier.

Suggestion: we need someone from Stardock who 100% understands what's going on behind the scenes to write up a document that explains exactly what ports to forward, whether they are TCP, UDP, or both, and for those of us that care, exactly why so many need to be forwarded.

-HM

May 6, 2009 6:57:41 PM from Demigod Forums Demigod Forums

I hope these changes really do fix the issues. We still suffer badly nightly, having extreme frustrations getting things like 3v3's working. I can only dream of actually getting a 4v4 or 5v5 one night..

May 6, 2009 7:08:14 PM from Demigod Forums Demigod Forums

Quoting Hollow Man,
I love you Stardock, but there is no other RTS out there where I have to forward 100 or 200 ports. That seems beyond unnecessary. Even via your own post you indicate that in Supreme Commander people only needed to forward ONE: 6073 (UDP I assume). Why does Demigod need a range of at least 100, if not more?

I assume these ports are UDP, but unfortunately, most of the time this information is omitted in posts explaining what we need to do. Please, it's important. Do we forward UDP, TCP, or both? Also, do we forward 6000 and 6073 in addition to the range specified?  And again, UDP? TCP?

On top of that, this post doesn't explain if it's still adequate to simply open up a smaller range using ImpulseReactorOptions.exe, which was stated earlier.

Suggestion: we need someone from Stardock who 100% understands what's going on behind the scenes to write up a document that explains exactly what ports to forward, whether they are TCP, UDP, or both, and for those of us that care, exactly why so many need to be forwarded.

-HM
ImpluseReactorOptions.exe still works and you only have to define 20 ports there. The reason is, that Demigod connects to different players on different ports. But I don't know why it is doing that. I guess it has something to do with the NAT facilitation service.
You only need UDP in all cases.

May 6, 2009 7:27:10 PM from Stardock Forums Stardock Forums



Yes, the main reason this system is in place for Demigod and not simply GPGNet v2 is because Stardock wanted this experience and refinement.

No. GPGnet (of any version) was not an option.

May 6, 2009 7:41:05 PM from Demigod Forums Demigod Forums

a lot of my ire currently is directed at GPG.  they released a game with its fair share of awful bugs and have taken too long to fix them.  especially the TARGETING BUG that's been around since BETA.

May 6, 2009 7:54:50 PM from Demigod Forums Demigod Forums

get those bots out

May 6, 2009 8:15:54 PM from Demigod Forums Demigod Forums

Quoting fixmyfavor,

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

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.

*Sigh*
The Favour bug was caused by them moving all of the information across from one server to a mirrored set in a bid to shut out the pirates and actually let people play the game. This issue has been covered multiple times and is already slated to be fixed in the next proper release. This has been mentioned several times.

Quoting fixmyfavor,

...a main feature of the game remaining fundamentally broken and unusable after 3 weeks, and creating colossal imbalances against players who are not victimized by the bug in a particular game , is a 'minor' bug'.

If the feature is broken, how is it creating imbalances when no one can use it?
I know why your going on about this. You believe your being beaten by people who have access to the highest tier Favour items and that you don't stand a chance because you don't have the same items. I promise you, once favour is fixed and you have your precious items, your still going to lose. The only difference is there will be more players available to kick your sorry behind because Stardock will have fixed an actual game breaking issue; namely one that stops people playing the game.

May 6, 2009 8:43:46 PM from Demigod Forums Demigod Forums

Quoting Annatar11,
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!

GFW Live is a heaping pile of dog shit. I own Warhammer 40k: Dawn of War II one of the most recent RTS games to implement GFW Live and I can tell you first hand that while they may have an automated matchmaking system, it is EXTREMELY region locked and it takes FOREVER for it to match up. For people like myself that live in Canada there is no reason why we can't connect to people for the US, but they seem intent on screwing us over.

The other big problem with GFW Live is how they hijack the development/update process for the game. There was a game breaking bug in DoW2 that shipped with the game. The developer had a patch ready to go from day 1 but it wasn't released until 4 weeks later! This was because of the GWL Live update approval process.

I agree with Frogboy when he implies that Microsoft needs to get it's head out of it's ass if it wants developers to continue making multiplayer games on Windows. Otherwise, the only games people will play on their PCs will be MMOs. And if they ever find a way to effectively bring MMOs to the console there really may be no reason for home users to use Windows. They might just go out and buy Macs.

May 6, 2009 9:16:25 PM from Demigod Forums Demigod Forums

I love you Stardock, but there is no other RTS out there where I have to forward 100 or 200 ports. That seems beyond unnecessary. Even via your own post you indicate that in Supreme Commander people only needed to forward ONE: 6073 (UDP I assume). Why does Demigod need a range of at least 100, if not more?

I assume these ports are UDP, but unfortunately, most of the time this information is omitted in posts explaining what we need to do. Please, it's important. Do we forward UDP, TCP, or both? Also, do we forward 6000 and 6073 in addition to the range specified?  And again, UDP? TCP?

On top of that, this post doesn't explain if it's still adequate to simply open up a smaller range using ImpulseReactorOptions.exe, which was stated earlier.

Suggestion: we need someone from Stardock who 100% understands what's going on behind the scenes to write up a document that explains exactly what ports to forward, whether they are TCP, UDP, or both, and for those of us that care, exactly why so many need to be forwarded.

-HM

 

Hollow Man,

the UDP 6100 - 6200 is take out of the Demigod manual

I have since verified that the game only requires a port +20 range so the range reported by "ImpulseReactorOptions" is in fact correct and all that is necessary using UDP of course.

UDP 6073 is taken out of the lobby info, and is really only required for connection to the lobby, however it is not a "bad thing" to also have that port forwarded.

Other ports are required by the NAT facilitator (ie. 6000, 6002, or 6004) but these are ports that will be used if/when it is determined that your setup doesn't meet the "direct-connect" setup and must use the NAT-punchthrough method instead.

In a nutshell, if you don't want to not use the NAT-facilitator for your game (that is.....aside from reporting your game-status to it, which I believe everyone has to do regardless of connection-state) then to cover all the bases have the following set up:

1.  Port UDP 6073 and Port-Range UDP 6100 - 6200 forwarded to the IP of your PC from any intervening NAT-device.

2.  Any SPI-type firewall including any type of NAT-filtering turned down/off on any intervening NAT-device.

that's it.

 

the Monk

May 6, 2009 10:40:36 PM from Demigod Forums Demigod Forums

I can play the game more or less fine: I'm really speaking for thousands of people who bought the game that don't come to the forums. The only resource these people have the manual, and it is rather vague with respect to what NEEDS to be done. It says to open (not forward) 6100-6200 to "increase the speed and reliability" of the networking. This is quite misleading. Stardock should issue a clear and concise instruction set to people, when they download the next patch, which explains the steps to get the game to work.

And it still doesn't answer why the game needs even 20 ports, when other RTS games need usually one, possible 2 or 3 at most, forwarded. And that, as near as I can tell, is only for the person who does the initial hosting.

-HM

May 6, 2009 10:52:08 PM from Demigod Forums Demigod Forums

well as has been mentioned, in DG unlike other RTS games in which you only connect to the host, you connect to every other player.  So in a 5v5 game, that is 9 ports right there to connect to the 9 other players.  Don't ask me what the other 11 ports are for though.  I guess you got a few that are talking to the matchmaking servers and account stats servers.

May 6, 2009 11:29:49 PM from Demigod Forums Demigod Forums

My computer doesn't even go through my router.  I have a modem (with no built in router or firewall or anything) which is taking two IPs from my ISP and running them into a splitter.  This splitter splits one ip directly to my Desktop, and the other to my wireless router which gets used by the rest of the computers/consoles/phones in the house.

I do this deliberately so I do not have to worry about port forwarding or firewalls or any of that crap.  Every game for me always works great.  DoW2 runs smooth as silk these days (though not before I got the second IP....even with all of the proper ports forwarded) but Demigod is still just a pain in the ass to get going.  Often it's because of other people I am playing with, two people who just can't seem to connect to each other for some reason (they are both getting 0 pings to each other even after rejoining) or people who can't get into the game lobbies at all.  But sometimes, it shows me unable to connect to someone.  Which really....just shouldn't happen.  I am very aware of my situation and what my isp does and does not allow and I can't see any flaw on my end where this could be happening.  Again, it's rarely the problem that breaks the multiplayer for my buddies and I, usually we can't even get to that point because of other issues.  But it does happen sometimes.

The people I play with are all quite tech-savy and have forwarded the proper ports and all of that jazz...but still we struggle to get games going.  We have taken to using Game Ranger often, but we can really only do that when there are enough of us to get a 3v3 game going on our own.  Otherwise we sit in the Game Ranger lobby forever waiting for legit users to join only to finally launch the game and have one of them (who we can't talk to over ventrilo) not get into the game for whatever reason and then quit out of the lobby before we can even get back to it.

Game Ranger does work amazingly well though when we do have enough people.  And I wonder why a system like that wouldn't work for the provided custom games lobbies in most RTS games.

All of these router firewalls and such aren't just a problem for PC games either as Frogboy has implied.  Console games definitely suffer from these issues.  With my xbox gaming buddies we can sometimes connect to each other, sometimes not.  Sometimes if one person hosts, then one guy can join and another cannot.  But if he gives the host to the guy who joined now the third person can.  But now the first guy and the third guy can't hear each other but the second guy can hear both.

Honestly, as technology gets more advanced it is becoming less and less convenient to play games with your friends.  I remember playing Goldeneye on splitscreen and Starcraft over the internet without any issues when I was 10-12 years old.  But here we are, years later, we all need our own xboxes to play games together and playing games over the internet is a total pain in the ass.  

I won't say I don't blame you guys for the problems DG is suffering from.  Certainly if the problems can ever be fixed than they could have been working in the first place, so it was just a matter of inexperience.  And that is what it is, the next game you put out will probably have a much smoother launch.  But I hope you guys learn a lot from it, and hopefully other developers as well.  While it may not be your fault that things have become so retarded and complicated you are really the only people we can count on for a solution.  So good luck and I hope it works out for all of us in the end.

 

 

Also I blame Dateline, 20/20, 60 minutes, soccer moms, and Oprah for our current predicament.

 

 

May 6, 2009 11:34:30 PM from Demigod Forums Demigod Forums

God damn soccer mums... when will they learn..

May 6, 2009 11:34:49 PM from Demigod Forums Demigod Forums

Honestly, as technology gets more advanced it is becoming less and less convenient to play games with your friends.  I remember playing Goldeneye on splitscreen and Starcraft over the internet without any issues when I was 10-12 years old.  But here we are, years later, we all need our own xboxes to play games together and playing games over the internet is a total pain in the ass.  

I think you are on to something.  When we developed Entrepreneur, an 8 player MP game back in 1997 it let people on OS/2 or Windows play each other.  There was no such thing (for us anyway) as NAT negotiation or anything else. It just worked. I'd go on to Stardock.net and it just worked. I could get an 8 person game going no problem. 

 

May 7, 2009 12:36:41 AM from Demigod Forums Demigod Forums

Quoting Frogboy,

I think you are on to something.  When we developed Entrepreneur, an 8 player MP game back in 1997 it let people on OS/2 or Windows play each other.  There was no such thing (for us anyway) as NAT negotiation or anything else. It just worked. I'd go on to Stardock.net and it just worked. I could get an 8 person game going no problem. 

 

It is definitely a recent developement of the last 5 or 6 years as wireless networking has really started to boom, and there has been mass media fear-mongering about the internet and identity theft and needing protection from the world which could kill you through your computer.

That isn't to say the internet isn't a dangerous place, but we still drive cars...go surfing, use our credit cards at shady coffee houses, meet people in bars, send our children to public schools and all sorts of other varying levels of dangerous activities.

May 7, 2009 12:52:55 AM from Demigod Forums Demigod Forums

I played plenty of Supcom 2v2's and 4v4's with friends and had pretty close to no difficulty, while playing 3v3 with my friends in DG requires great patience and 4v4 borders on impossible.  We all know what we're doing, one of us is a cisco router tech guy, I am a computer hardware enthusiast and generally know what I'm doing, and my brother and other friend with the game certainly knows how to forward a port or two.  I definitely don't think its apples to apples comparing DG's current setup to Supcom's, theres some missing variable that makes it more difficult to connect to each other and actually get in the lobby with green pings... And it is very frustrating.  Fingers are crossed for tmrw, hoping for the best, and expecting the worst.

May 7, 2009 1:01:12 AM from Demigod Forums Demigod Forums

Quoting Frogboy,

I think you are on to something.  When we developed Entrepreneur, an 8 player MP game back in 1997 it let people on OS/2 or Windows play each other.  There was no such thing (for us anyway) as NAT negotiation or anything else. It just worked. I'd go on to Stardock.net and it just worked. I could get an 8 person game going no problem. 
 

A large part of this is that internet security has increased in recent years. You just used to sit all exposed on the interwebz, openly connect to other people and vice versa and not really have to worry about some worm rampantly running through the internet trying to find open machines and exploit OS weaknesses.

If you put your PC on the internet nowadays without some form of firewall and port stealthing, in under 5 minutes the machine will be invaded with worms and viruses.

ADSL also being a relatively recent development, has brought in a slew of new issues aswell. Its great for getting fast internet over your existing copper phone line, but you sit behind a router, which has its own firewall, port scan and DOS protection which interfere non-stop with online gaming.  Not only that, but if you have a ADSL router and you game, you better learn how to port forward, since your PC is not visible to the outside world and others can't connect to your PC (and the game on your PC) directly. Previously this was something only technical people at large companies needed to know about, now port forwarding is a household term.

On top of all this, we now have ISPs shaping P2P aswell to try cut down on bittorent eating up all their bandwidth. While your post just touches on it Frogboy, its very very common. I know of many ISPs here that shape bandwidth, so much so that you have to buy a "unshaped" internet account at a premium price if you want to P2P.

May 7, 2009 1:27:15 AM from Demigod Forums Demigod Forums

Quoting bewareofthecow,


GFW Live is a heaping pile of dog shit.

Sometimes English transcends the conventional and becomes art...

Eloquent and to the point. Heh heh heh. Sorry.

(grin)

May 7, 2009 4:34:27 AM from Demigod Forums Demigod Forums

Im tired of those stories. Just want to play.
And if this wont work i want my money back.

May 7, 2009 5:00:12 AM from Demigod Forums Demigod Forums

Quoting Denominus,
A large part of this is that internet security has increased in recent years. You just used to sit all exposed on the interwebz, openly connect to other people and vice versa and not really have to worry about some worm rampantly running through the internet trying to find open machines and exploit OS weaknesses.
Indeed. In the old days, no private user would have a firewall or router (or even a Switch) between his PC and WAN. Things like that only existed in (larger) companies.

May 7, 2009 6:24:30 AM from Demigod Forums Demigod Forums

Serious question: What is Dawn of War 2 doing differently?

  • It works out of the box, I don't have to forward any ports at all. I can forward ALL of my ports on my router (yes it's a D-Link) but still no go in Demigod.
  • It actually works with people from across the ocean. Most Demigod games with people who ping higher than 200 are laggy as hell.

AFAIK DoW2 is using a p2p system too, Games for Windows Live is just for the matchmaking part. (And hey, that one doesn't add 5 bots in a 3vs3 game...)

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