The Forums Are Now Closed!

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

Demigod: Tuesday 5/12/2009

By on May 12, 2009 12:42:35 PM from JoeUser Forums JoeUser Forums

Well last night we released an update to the general public and it was a cluster. After investigating it, it appears that much of it had to do with users with the beta and users with the release getting into each others games (the version numbers of the exe and dll were the same and that’s what the servers check on). We also found and fixed the issue where people were ending up with “Test” names which occurred mostly when people with the beta were joining games hosted by someone with the release. And lastly, we found a case where a debug statement could cause a lobby crash when someone exited.

Anyway, they’re copying up the new update now but due to the time of day, the interwebs, they be slow this time of day.

This update doesn’t have the new EXE we received from GPG.  We wanted to get an update out quickly that took care of as much of the pain from last night as possible.

Meanwhile, the Raknet developer is here working with the Impulse team on the proxy updates that we hope will be up this week also.  I want to double check with GPG to make sure the favor point stuff is really nailed down here.

For those of you having problems, I share your continued frustration. I apologize for the inconvenience.  We have our top people working on this.  I wish I could say “Oh, it’s a bug and here’s how to fix it” but it’s simply a lot more complex than that when it comes to putting together a P2P match making system that has to work with so many different setups.

One of the things we’re doing on our end is to come up with an internal proxy system that will let people connect to other people via people they can connect to (got that?).

Let me draw a picture.

Here’s how P2P works today:

imageAlice must be able to connect to Bill, Sally, and John.

1.00

When Demigod shipped (1.0) Alice would call a NAT facilitator that would give Alice the IP address and port number to connect with Bill, Sally, and John.  The problem with that is that if Alice failed to connect to anyone, she couldn’t get into the lobby and NAT facilitation is slow.

1.00.076

With today’s update, Alice will first try to directly connect to Bill, Sally, and John on port 6112. If those people have that port open and forwarded to their PC, it will connect quickly. If that fails, it will resort back to the slow NAT.  If they connect to at least the host in a custom game, they enter the lobby and then begin trying to connect to everyone else in the lobby. Then, the host can at least pick and choose which people to keep and not keep if there’s someone with a poor net connection.

1.01

With the next update, it will work like this:

imageIn the event Alice can’t connect directly to Sally but could to Bill and John, our system will route the traffic through Bill and John based on who has the best ping.

Now, if Bill and John both disconnected from the game, Alice would get zapped.  But on the other hand, if Alice could only connect to 1 person (some people with Qwest have this problem) she could still play in a 10 person game because the other 8 people would be connected to her via the person she has a direct connection to.  The good news is, we have this working internally right now.  It’s not some theory but something we’re testing.  The bad news is that it probably won’t come up until next week.  But if this system works, it opens the door to all kinds of highly robust multiplayer scenarios.  Now if only we had thought of this a month ago…


 

+912 Karma | 90 Replies
May 13, 2009 5:11:28 AM from Demigod Forums Demigod Forums

Heh, first posted without really reading the op cause I was pissed with the connection problem. This new system sounds pretty sweet. If that ends up working out it will be awesome, it's basically mesh networking right? I wonder if the current limit for most strategy games of 8-10 players is because of the limitations of required direct p2p networks. If this system works out, might we see new gamemodes with more players?

May 13, 2009 5:35:33 AM from Demigod Forums Demigod Forums

Too many players in a game like this and you`d wind up with just an unintelligible mash. I think the game works best in 2 on 2 or 3 on 3 play.

May 13, 2009 5:59:48 AM from Demigod Forums Demigod Forums

A small question to Frogboy, how will this affect latency?

For instance:

Alice lives in the Middle East. Alice has a ping of 100ms to Europe and 250ms to the USA (bad routing).

Bob lives in Europe. Bob has a ping of 100ms to the Middle East and 100ms to the USA (good routing).

Charlies lives in the USA.

 

If Alice, Bob and Charlie all play a game together, how will these latency differences work? Will there be smart routing inside the game? Could be a nice concept to improve all-round performance.

May 13, 2009 6:59:13 AM from Demigod Forums Demigod Forums

maxxy_li, it gets pretty complex, especially in 5v5 scenarios, but fortunatly this can be simplified by one simple law of the internet:

As soon as there is an extra hop (an additional step in the route between you and the destination), there is additional lag/latency/ping.

So basically, yes, this solution can result in players with not so bad latencies gaining an extra 50ms, but thats a whole world better than not being able to get into the game at all. Depending on the amount of hops and complexity of the information route, your latency may go up/down greatly, though never as minimal as a direct connection.

May 13, 2009 7:05:28 AM from Demigod Forums Demigod Forums

The beta update seemed alot more stable than this, sometimes people cannot connect to lobbies. There have been alot of client crashes and it takes longer to get games going, if at all. 

May 13, 2009 8:19:35 AM from Demigod Forums Demigod Forums

You can gain huge amounts this way.

As an example, I live in australia, and although singapore is fairly close geographically network packets usually go through japan and then on to singapore. This means I get pings of about 250ms instead of about 100 ms is the packets were to do directly to singapore.

However certain IP addresses in singapore which use an ISP which also does business in australia *do* go directly to singapore and I *do* get 100 ms pings.

Now if you imagine the situatin where Im playing with 2 other people in Singapore, one of which I can ping at 100 ms, and the other at 250ms. Using this new system in Demigod, I will now not connect directly to the 250ms person, but go through the person with 100ms, and after that its probably another 30 ms to get to the other person, giving a total of 130ms instead of 250.

Pretty significant improvement

May 13, 2009 8:20:30 AM from Demigod Forums Demigod Forums

Pantheon games seems to be buggy. Nearly every p-game some player disconnect and mostly I and my ally-rl-player are alone with some stupid ai. Sometimes the con-windows @ beginning confirm the correct connections then @ loading screen "waiting for other player" -> "a player has left the game" and after loading im standing mostly with 1 rl-player and ai.

Ports are correctly forwarded (6000-6200), latest build, firewall off, 16Mbit/1Mbit DSL, vista64.

May 13, 2009 11:33:58 AM from Demigod Forums Demigod Forums

Hey, so with the latest patch I can play fine on my own. But if my friend is here and on the same router we have the same ip, and also we can only forward the ports to one of us. We cant both be in a game at the same time, if one tries to join it boots the other. This wasn't happening last week, it connected slow then but it still connected eventually, now it doesn't. This sucks.

Very nice but will we be able to manually assign that 6112 port or will it remain 6112.

In other words, will I and my wife be able to play from the same LAN versus people on the internet or will it keeps on fucking on like now where only one of us can play online in a given game at once?

If you run ImpulseReactorOptions.exe from the Demigod\bin folder, you can change the default ports used by Demigod.  We used to require a range of ports but the current version uses only one.  Then you can forward the different ports to the different computers, so you will be able to play online games with other people on your LAN.

 

May 13, 2009 12:22:12 PM from Demigod Forums Demigod Forums

We used to require a range of ports but the current version uses only one.

That's good news for the people who have routers that can not forward port ranges

May 13, 2009 12:32:50 PM from Demigod Forums Demigod Forums

Quoting CariElf,

Hey, so with the latest patch I can play fine on my own. But if my friend is here and on the same router we have the same ip, and also we can only forward the ports to one of us. We cant both be in a game at the same time, if one tries to join it boots the other. This wasn't happening last week, it connected slow then but it still connected eventually, now it doesn't. This sucks.



Very nice but will we be able to manually assign that 6112 port or will it remain 6112.

In other words, will I and my wife be able to play from the same LAN versus people on the internet or will it keeps on fucking on like now where only one of us can play online in a given game at once?


If you run ImpulseReactorOptions.exe from the Demigod\bin folder, you can change the default ports used by Demigod.  We used to require a range of ports but the current version uses only one.  Then you can forward the different ports to the different computers, so you will be able to play online games with other people on your LAN.

 

 

I ll retry this with this patch. But this is already how I set the 2 computers a while a go. Mine ranging form 2101 to 2150 and the other ranging from 2151 to 2200.

 

Thanks for the reply

K

May 13, 2009 12:57:00 PM from Demigod Forums Demigod Forums

The solution is quite shiny, and kudos for its implementation. I do have a problem with it, though I don't think my opinion (or that of my poor gamer countrymen) counts for much on the interwebs.

You see, there are some of us down here (South Africa) who are sold 384kbps ADSL as 'broadband.' This is the entry-level cabled 'broadband' connection and has a maximum upstream speed of 128kbps. In reality you get about 80-96kbps throughput. At about 20kbps required per player in the game that means a poor sucker with this slow connection can only comfortably play with 3-4 people in the game. This is due to a phenomenon I've heard called "Upstream Saturation," which I'm not going to explain any further because I think the people that need to understand what I have to say below, will.

Our middle-of-the-road ADSL is 512/256kbps down/upstream. That could *conceivably* handle a game with 10 players in it, except that the actual average throughput is probably only around 75% of the advertised speed.

The reason this is important (to me, and though they don't know it yet, my fellow Demigod gamers in ZA) is that the proposed peer-proxy system could put so much strain on someone's upstream (and I see fairly many ADSL users, even internationally, report a 0.3Mbps upstream throughput) that it could cause the whole game to lag up.

For instance, right now I notice that our 384/128kbps brethren initially report sub-100ms pings in lobbies, but if the game has more than 4 players in it the pings suddenly shoot to over 1000ms. When the poor sod with the 384/128 connection disconnects, everyone can play again.

So basically the new peer-proxy system might determine that the lowest-ping path is via someone with potentially too slow a connection to support all the relays. If 2 out of 10 players route their traffic through someone with even a 512/256kbps connection, that traffic, combined with the usual upstream traffic that player has to send to the other 9 players would likely lag up the whole game.

A potential mitigation to the problem is to allow players to choose whether they may act as relays or not. That way players that know they have slow connections can prevent the problem from their end. The other benefit is that people that pay a lot for bandwidth can then choose whether they want to share that bandwidth or not.

Another, much more complicated way is to somehow detect when a relay is lagging up the game and allowing connections to be negotiated dynamically in-game so that the person requiring the relay can be assigned to another relay (provided s/he can connect to another player). I'm assuming that can't be done without GPG modifying the Demigod code in some way, though.

My concerns are based on my current understanding and certain assumptions, of course. Since Frogboy has said that they're making these changes without GPG needing to change a single thing in Demigod, I'm assuming that ImpulseReactor basically discovers which peer(s) a client can connect to, determines the optimal path to other players, makes the connection and passes the socket to Demigod. Which means that Demigod sends data over that socket exactly as before, which means no optimisations are done by relays to aggregate data it needs to send to other peers.

I hope I'm at least somewhat understandable. If not, give me a yell and I'll try to draw a picture too .

May 13, 2009 1:00:41 PM from Demigod Forums Demigod Forums

I ll retry this with this patch. But this is already how I set the 2 computers a while a go. Mine ranging form 2101 to 2150 and the other ranging from 2151 to 2200.

If you shut down or restart the computers, your local IP addresses may be changing so it may no longer be forwarding the ports to the correct local IP addresses.  I have this happen all the time on my home network.

May 13, 2009 2:00:39 PM from Demigod Forums Demigod Forums

thats why you should have fixed local ip addresses  CariElf . Good routers let you define the IP a computer gets depending on their MAC address.

May 13, 2009 2:30:30 PM from Demigod Forums Demigod Forums

Favor points seem to be working for me, but not achievements, I have about 10 for a character I played once, and none for my mains.

May 13, 2009 5:06:43 PM from Demigod Forums Demigod Forums

damn so that is what happened to me, but it still doesnt make sense to me I connected to the host first (who is my buddy from accross town) then another friend from texas(about 6000km from where i am) connected and when he dropped i dropped everyone in the game even though Demigod stated that I was connected to everybody. And my buddy in texas was connected to all but 2 people.

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