The Forums Are Now Closed!

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

Some thoughts on people dropping during the game

By on May 21, 2009 3:45:47 PM from JoeUser Forums JoeUser Forums

Recently I posted a blog asking what people’s speed test rating:

http://frogboy.impulsedriven.net/article/351550/Whats_your_speedtest_rating

Lots of interesting data there.

Most people tend to only think about their download speeds and little about their upload speeds. But if you look, at that thread, a lot of people have marginal upload speeds as in well less than a single megabit.

Since I know I’m not a typical user, I talked to a friend of mine whose connection is about 2 megabits down but only .16 megabits up.  Looking at that thread, there are quite a few people who are getting less than a half megabit up.

Then I asked him to open up task manager in Vista and open up networking:

image

I had him add more columns so I could see the bytes sent per interval.  Turn out, he was already sending around 10k a second (bit torrent client in the background) plus a bunch of little tray items that occasionally tossed another 5k to 20k now and then.  That’s kilobytes btw.

Now, when you see that you have say a 0.2 megabit upload speed, that means your system tops out at 25k per second. 

Demigod, being a game that is synchronous (what you see on the screen is the same as what other people see) uses 1k per second up to over 20k per second as you add players.  And it’s not linear. I.e. it takes a lot more to handle 8 people than 6 people and a lot lot more to do 10 people than 8.

So let me ask you a question: What do you think the in-game behavior would look like if you’re playing someone who has an internet connection that can’t do more than 0.4 megabit upload in an 8 person game? Their sim speed would be fine. Depending on the way their system handles ping requests their ping might be fine or it might quickly jump to several seconds to respond.  Toss in some “security” programs that sniff every packet coming in to that too.

Now luckily, there are some things that can be done about this. 

First, there’s just plain awareness. Since I’m always in debug mode, whenever I get into a game that’s “stuttering” I ask if anyone is running any network programs. I usually end up finding out that someone has bit torrent running in the background but they have a “5 megabit” connection.

You know, 5 megabit like this:

image

Second, it’s pretty clear (to me anyway) that we’re going to have to make some tools that are accessible in game that will help identify people who are (need a new term) band-lagging out. They  might have a great ping (26ms for instance) but they can’t play with 8 people unless they turn off the other junk they have going on.

Third, we can look for ways to reduce the amount of data being sent across. I’m not privy to the network traffic but I do know that things like the friends list and chat windows in game and such do add to the mix.

Fourth, those who have seen people disconnect during the middle of the game can open up task manager (on Vista) and do what I asked my friend to do. It’s the type of thing that might help people with other games too. I suspect my friend’s Word of Warcraft experience will improve after I told him to turn off some of the junk he had loaded.

Two-Way education

One of the things I’ve learned during Demigod’s release is just how unaware some people are on how this stuff works.  You’ll get someone with a connection like what I showed above saying “Well, Left 4 Dead works fine!”.  Well, of course, you’re connecting to a dedicated server in a non-synced game.  A first person shooter is a totally different system than a strategy game.

I had one user I was talking to who was telling me how “broken” networking is in Demigod because every time he plays he lags out.  I asked him a few questions and eventually discovered that he has an Xbox 360 and is almost constantly downloading movies from Xbox Live.  When I brought that up, he said “But that’s on a different network cable.” 

I highly recommend looking at that thread though:

http://frogboy.impulsedriven.net/article/351550/Whats_your_speedtest_rating

It’s very educational.

+897 Karma | 87 Replies
May 21, 2009 8:11:49 PM from Demigod Forums Demigod Forums

[URL=http://www.speedtest.net][/URL]

May 21, 2009 8:13:22 PM from Demigod Forums Demigod Forums

50mb cable

May 21, 2009 8:20:28 PM from Demigod Forums Demigod Forums

Pretty good for running on a wireless

[URL=http://www.speedtest.net][/URL]

May 21, 2009 8:20:42 PM from Demigod Forums Demigod Forums

Great post very informative.

 

[URL=http://www.speedtest.net][/URL]

 

 

May 21, 2009 8:31:07 PM from Demigod Forums Demigod Forums

25kB per second is completely fcking asinine. I could literally encode the ENTIRE STATE OF THE GAME down to the positions of every unit and building, their current HP/MP, targets, items, buffs, debuffs, and currently-acting command in a text document and it wouldn't be 25kB in size. It wouldn't even be 2.5kB in size (thats 25kB divided by 10 players). And the honest truth is that you don't need to encode the entire game state in every packet, just simple things like "X ordered to attack Y". Creep AI could be easily calculated parallelly on everyone's local machine, then simply hashed and checksummed against the other players to make sure everyone is doing the same thing.

 

Somehow I am able to host 5v5 Warcraft III/DotA where I am sending and receiving ALL the packets and it uses less than 10kB per second. AND there is less lag AND less delay (thanks to listchecker).

 

The truth is that Demigod's netcode just fcking sucks. And while I love the game, it irks me that GPG/Stardock are still in complete denial of that fact. There is absolutely no reason the game needs to use that much bandwidth.

May 21, 2009 8:33:00 PM from Demigod Forums Demigod Forums

Quoting Makerz,

You only have that speed because your on a LAN with the speedtest server. You ping 3. Either its next door or your in the same network so of course you will have a INSANE connection speed.


Not bad for FL.

 

You gonna say Im in the same network as Oslo now too?

And here you go as well

 

And btw your test is close to a month old. The test may have been redone since then and you see your image doesnt even look like ours. retake it and dont photoshop it this time either please.

May 21, 2009 8:38:43 PM from Demigod Forums Demigod Forums

To my closest Server (Canberra)

http://www.speedtest.net/result/478864666.png

 

From Canberra Australia to West Coast USA

http://www.speedtest.net/result/478865637.png

Reasonable size games here

 

East Coast USA

http://www.speedtest.net/result/478865243.png

Medium to small games here

 

direct links for the sake of post size

 

 

May 21, 2009 8:41:21 PM from Stardock Forums Stardock Forums

25kb/sec is not really that unreasonble all, especially in a game such as an RTS.

For example, say you have 100 units that you have to track state for (onscreen units) and you're going to be updating at something like 15/sec:

Translation Vector (xyz): 12 bytes

Quaternion Rotation (ijkw): 16 bytes

So, per unit you're looking at 420 bytes per second to replicate that unit to another machine. Multiply that by 100 and you're looking at 42kb/sec.

Now granted 100 is quite a few units to replicate over a second, but I've also only accounted for the spatial properties of the objects and not other types of game state.

 

May 21, 2009 8:43:17 PM from Demigod Forums Demigod Forums

 

Guess I'm a detriment to other play time.

May 21, 2009 9:03:36 PM from Demigod Forums Demigod Forums

Quoting NoobFukaire,
25kb/sec is not really that unreasonble all, especially in a game such as an RTS.

For example, say you have 100 units that you have to track state for (onscreen units) and you're going to be updating at something like 15/sec:

Translation Vector (xyz): 12 bytes

Quaternion Rotation (ijkw): 16 bytes

So, per unit you're looking at 420 bytes per second to replicate that unit to another machine. Multiply that by 100 and you're looking at 42kb/sec.

Now granted 100 is quite a few units to replicate over a second, but I've also only accounted for the spatial properties of the objects and not other types of game state.
 

This is what I'm talking about. Why do you need to track rotation? What direction a character is facing can be easily interpreted on the local side based on what direction they are moving or who they are attacking. If they aren't moving or attacking anyone, WHO CARES what direction they are facing - it is only a graphical effect since units are really represented as circles internally anyway. Additionally, since Demigod is essentially a 2D game with pretty graphics, rotation could easily be represented as a single byte. 256 possible facing angles in the ground plane is all you need.

I feel like you have the same kind of thinking as is going on at GPG/Stardock. Instead of focusing on fixing the symptoms of the problem (lag in games) how about fixing the CAUSE of the problem (too much bandwidth usage). The more data being sent, the more opportunities for lag.

May 21, 2009 9:34:32 PM from JoeUser Forums JoeUser Forums

I wasn't trying to provide a treatise on network code and optimization. I was merely pointing out the fact that 25kbs is not an outrageous figure for an RTS.

Even using a full, uncompressed representation of the rotation, the figure came close to almost twice 25kbs.

And that wasn't including any other state. So with various optimization and compression techniques, 25kbs is entirely reasonable for a busy scene in an RTS.

May 21, 2009 9:47:16 PM from Demigod Forums Demigod Forums

Quoting NoobFukaire,
I wasn't trying to provide a treatise on network code and optimization. I was merely pointing out the fact that 25kbs is not an outrageous figure for an RTS.

Even using a full, uncompressed representation of the rotation, the figure came close to almost twice 25kbs.

And that wasn't including any other state. So with various optimization and compression techniques, 25kbs is entirely reasonable for a busy scene in an RTS.

 

I think Muusbolla's point is that for the vast majority of units there is no need to xmit that. The only thing that should need to be xmitted are changes caused by the user. The game engine should handle the rest on each machine. That is the way RTS games have done it since the days of Dan Bunten's Modem Wars and it is how a replay is created. So the question is what exactly is being xmitted between everybody in Demigod that makes it so much more bandwidth hungry than other RTS games?

May 21, 2009 10:10:13 PM from Demigod Forums Demigod Forums

 

Wow I cant wait to get back to the university... this is terrible.  And they say this is the fastest internet in Houston...

May 21, 2009 10:13:30 PM from Demigod Forums Demigod Forums

This is what it gave me:

 

May 21, 2009 10:14:45 PM from Demigod Forums Demigod Forums

[URL=http://www.speedtest.net][/URL]

 

Comcast in Portland, OR here.  Not sure what all is running in the background since I'm sharing my internet connection with four room mates, so it could be higher than that possibly.

May 21, 2009 10:39:40 PM from Demigod Forums Demigod Forums

Comcast in Vancouver, WA (basically same service as Portland).  Never really realized how good we have it here.

and playing around with the thing I was able to find a server I actually upload to faster than d/l!

May 21, 2009 11:04:15 PM from Demigod Forums Demigod Forums

Good luck getting any Australian players for demigod then, I have 0.8Mb/s upload, and that's damn high for people around here. That's faster than a lot of peoples download speeds.

May 21, 2009 11:18:20 PM from Demigod Forums Demigod Forums

OK, Here's my speedtest.net

 

 

With my service provider here are my options:

 

The Turbo option = $60 a month and that's for 1mb up.

I pay $45 a month right now and I think that's too much. I'm not sure what I'm expected to do here...

May 21, 2009 11:19:53 PM from Demigod Forums Demigod Forums

Quoting Sevenix,
Yeah, In early beta we had some serious discussion about how much upload demigod really required, it was easier back then when we had access to the Bandwidth command to actually see how much the game was using.

Here's my speedtest btw, Sweden ftw.


 

Can I move in?  What's  your immigration policy?

May 21, 2009 11:46:20 PM from Demigod Forums Demigod Forums

http://www.speedtest.net/result/478940487.png

 

Ivé never seen an upload speed faster than a download.... but here you have it.

totally wierd

May 22, 2009 12:14:57 AM from Demigod Forums Demigod Forums

[URL=http://www.speedtest.net][/URL]

 

Mine is just extremely sad and I've got nothing but impulse running the background.

May 22, 2009 1:08:02 AM from Demigod Forums Demigod Forums

Internet in Australia...

 

Im about 3.5Km from the exchange. (Max 25MB/s ADSL2+)

May 22, 2009 1:09:09 AM from Demigod Forums Demigod Forums

Meh, this is a problem that has been plagueing online RTSs for years.

"Waiting for players:" was what you could expect to see for about 50% of your game time in Starcraft and Warcraft 3 in public games.

People trying to play with wireless connections, their torrents running, a virus/worm on their PC, bringing the entire game to a crawl with constant re-synchs. "I have 2 pr0n torrents seeding and 3 pr0n torrents downloading on my other network cable, it can't be lagging me" is shockingly common aswell.

Its quite a bit worse in Demigod's case, since traditionally in Warcraft III/Starcraft's server/client setup, only the host needs to have ports forwarded and a decent upload speed, the requirements for the clients is a lot lower. In Demigod, effectively everyone needs to be able to host, since there isn't a single host routing traffic to the players, all the players are connected to each other, sending game info directly. If one player doesn't meet this hosting requirement, the game starts to degrade.

May 22, 2009 1:13:48 AM from Demigod Forums Demigod Forums

Not too bad for RR standard in my area, but I might get RR turbo to help with uploading files and such for my site.

May 22, 2009 2:30:25 AM from Demigod Forums Demigod Forums

How much information is transferred between people?  We click locations on the map where the Demigod goes, or what units we want to attack or heal, and then we click special abilities from time to time, and after that, how much communicating between players needs to be done?  There can't be much lag for good gameplay--response times have to be fast--but how much bandwidth or speed to we need to tell other players what ability we are casting or what coordinates we are running to or what piece of gear we just bought?

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