Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
bzzrak

How much data does online DMing consume?

Recommended Posts

So I have my trusty USB modem with a prepaid SIM card, and I'd like to know if it's economically reasonable to play DM on it.

 

How much data is spent by online DM? Not counting stuff like downloading WADs, just the game process itself.

The ports used would be ZDaemon and maybe Odamex once in a blue moon, game mode would be something like FFA on relatively small maps, a-la Dwango or whatever.

I don't think the speed would be an issue here, just the amount of data. :]

 

Thanks! <3

 

P.S. 1400th post, 88 to go

Share this post


Link to post

You shouldn't limit yourself to any port; I'd suggest getting IDE for a browser and using all 3 major mp ports: ZDaemon, Odamex, and Zandronum. There is no reason, aside from not being able to use them, to not use all 3 ports, though of course over time you'll develop a favorite. But Zand is undeniably where most players are, so think twice before writing it off, and that's coming from somebody who loves both Oda and ZD.

 

Wrt speed/connection, expect issues with dropped packets and lag spikes. General ping isn't too bad; in fact I just beat decay in 1 out of like 5 progduels on Zand we had the other night while on a mobile hotspot connection coming from my phone and with voice chat on discord active.

 

Wrt data usage, it seems that night cost me about 1.0 gb of data, however around that same time I also tried uploading some videos to youtube and I can't be sure some of that data usage didn't bleed into the day I dueled decay. I can only look by starting the billing cycle for this month on day x, so it's entirely possible that i may have been uploading a video the night before and it being displayed for this day. Add in getting the wads, downloading and reinstalling discord, and the voice chat though to that play session for the total of 1 gb. Idk how much data usage voice chat uses. So somewhere under 1 gb I guess, heh.

 

My advice is to try it out one night, play for a set time of 30 minutes to an hour, then get off and wait a few days, if necessary, til you can see your usage, then go from there. Also, report back your findings!

Share this post


Link to post

Ok, uninformed theory time :)

 

First, let's make some assumptions (a nearly worst-case scenario, but dismissing transmission errors):

  • LAN-type vs. WAN-type connection (no proxy/no VPN, etc) running at 35 fps, using peer-to-peer style networking (ugh)
  • 4-player DM
  • No player prediction logic
  • Standard UDP packets, not being compressed by hardware, net drivers, or Doom port
  • Each user simultaneously typing a chat message, while using a mouse, joystick, and keyboard for controlling the player

This roughly adds up as follows:

  • The size of an IPv4 header is at least 20 bytes, and a UDP header is 8 bytes. So, an <i>empty</i> UDP packet is at least 28 bytes.

  • Add 4 bytes for mouse X/Y, another byte for a typed chat character, and let's say one more byte for key up/down actions (fire up/down, strafe up/down, etc.) That adds 6 bytes for our UDP message, for a total of at least 34 bytes.

  • 4-player peer-to-peer = 24 transmissions of 34 bytes, 35 times per second = 12x34x35 = 28,560 bytes/second being passed. However, divide by 4 for any single node = 7,140 bytes per second, or 428.4K per minute, or 25.6 Mb per hour, considering no collisions or transmission errors.

However, no one really plays online like this. Online play typically can relax some of those assumptions:

  • Typical client/server architecture with player prediction
  • Some ports may rely on prediction, and may even reduce transmission to 17.5 fps or less when required
  • Doom port can compress packets somewhat
  • Player actions change much slower than 1/35th a second, on average

Calculating this is tricker, but here's a rough guess:

  • The size of an IPv4 header is at least 20 bytes, and a UDP header is 8 bytes. So, an <i>empty</i> UDP packet is at least 28 bytes.

  • Compression may reduce the previous 6 byte UDP message down to somewhere between 0 and 3 bytes, and the port may reduce this frequency to once every 2 frames. We'll conservatively use 3 bytes, for a total of at least 31 bytes.

  • 4-player client/server = 3 transmissions of 31 bytes each to the server, and 3 transmissions from the server of (28+3*3), or 37 bytes to each client. But, when isolating a specific node, that's 31 bytes up and 37 bytes down, 35 times per second, or 2,380 bytes per second, 142.8 Kb per minute, or 8.57 Mb per hour.

It ain't much, all things considered. You could play 4-player client/server Doom DM and not consume as much data as it takes to load this web page!

 

 

 

Share this post


Link to post
Posted (edited)

@kb1 you have forgotten to account for per object synchronization such as projectiles, enemies, levels actions and reliable messages retransmission. Doom's P2P method didn't need this and just syncs inputs, but newer ports do, which bzzrak is asking about. This changes based on the complexity of the games actions at any given moment. Also newer ports have a far larger input size from vanilla anyway, and typically don't send chat messages and such as collected inputs like vanilla did.

 

He's also not playing a LAN game which greatly amplifies this, as modern connection protocols usually use forward acknowledgement.

 

About the only thing that is "correct" (I haven't checked your math at all) was your Vanilla estimates, except it doesn't use UDP at all but rather IPX, Modem and Serial (which are themselves transport layers that have nothing to do with TCP/UDP). Any implementation of UDP in a port will usually come in a compressed form.

Edited by Edward850

Share this post


Link to post
9 hours ago, bzzrak said:

 

 

P.S. 1400th post, 88 to go

What happens then :o

Share this post


Link to post
4 hours ago, Linguica said:

 

4 hours ago, kb1 said:

8.57 Mb per hour.

 

:D thanks sounds reasonable

6 hours ago, Fonze said:

1.0 gb of data

1 GB is the amount of data I spend during a month. Yes, really, haha. :]

(I won't be uploading videos, downloading wads, installing Discord or using voice chat though.)

 

Alright thanks folks, if I go bankrupt then I'll hold you all responsible <3

Share this post


Link to post
17 hours ago, bzzrak said:

P.S. 1400th post, 88 to go

 

lol! lmfao! 14 words! white children! 88! hitler! white supremacy is a good meme guys

Share this post


Link to post
18 hours ago, Edward850 said:

@kb1 you have forgotten to account for per object synchronization such as projectiles, enemies, levels actions and reliable messages retransmission.

Doom's P2P method didn't need this and just syncs inputs, but newer ports do, which bzzrak is asking about. This changes based on the complexity of the games actions at any given moment. Also newer ports have a far larger input size from vanilla anyway, and typically don't send chat messages and such as collected inputs like vanilla did.

 

He's also not playing a LAN game which greatly amplifies this, as modern connection protocols usually use forward acknowledgement.

 

About the only thing that is "correct" (I haven't checked your math at all) was your Vanilla estimates, except it doesn't use UDP at all but rather IPX, Modem and Serial (which are themselves transport layers that have nothing to do with TCP/UDP). Any implementation of UDP in a port will usually come in a compressed form.

 

Didn't forget, per se. Hmmm, clarification time :)

  • Fact: I've never built a port that performs player prediction, so I might be talking crap. I've certainly thought about how I would try, though.
  • Guess: If I ever do, "per object synchronization" would only occur after a massive lag, after which I would not be comfortable performing correction client-side. I mean that, I would build around the assumption that everyone has a good connection, and do any corrections on a need-by-need basis.
  • Question: Why would newer ports have a larger input size than keyboard + joystick + mouse at the same time, as I specified? And why not retain chat messages?
  • Observation: You can't use IPX by itself online, and it is practically dead anyway. I would not use TCP - too much handshaking and overhead, and utterly unnecessary for tiny single packets. As long as you manually timestamp and sort your incoming packets, UDP is where the speed is at.

It's not a mathematical proof, friend, it's meant to estimate magnitude. If your data usage is 10x my estimate, be very afraid: something's wrong. Due to the variable nature of it all, the logical next step is to simply measure data usage over a period of time.

 

19 hours ago, Linguica said:

My guess is that it would take something in the neighborhood of 5 MB / hour

 

You know, I read that last night, and never realized that the "5 MB / hour" was an actual link to real data usage stats. Cool! I did try to over-estimate a bit. That helps me feel ok about my 8.57 Mb guess - no regrets.

  • Actually, I'd love to hear more real world data usage stats. If anyone has this ability, please post your numbers. Please include port w/version number, # of players, average ping time, amount of data send and received, and how long you played. Thanks.

An afterthought

There must be a dozen schemes to get multiplayer Doom to be fun via internet connection, and none of them are ideal. A pretty appropriate name for such technology might be "lag concealment". Sounds like an interesting (and maybe frustrating) project. I think one day I'll have to give it a shot. I'd like to try my hand at it first, before studying how others have tackled it.

Share this post


Link to post

I'll be tracking data usage during deathmatches this weekend. I'll keep other network activity during those time frames as low as I practically can and make a note of # of players, average ping and port used of course. It won't be exact but it should provide a good benchmark for people to reference when asking in future!

Share this post


Link to post
1 hour ago, Doomkid said:

I'll be tracking data usage during deathmatches this weekend. I'll keep other network activity during those time frames as low as I practically can and make a note of # of players, average ping and port used of course. It won't be exact but it should provide a good benchmark for people to reference when asking in future!

Nice! Thank you. You know, it amazes me just how well online FPS works, despite the odds. Good luck on some frags!

Share this post


Link to post

Zandronum server on windows tells you the data usage. I've run it for duel testing and it's about 6 mb in an hour.

Share this post


Link to post
Posted (edited)
On 3/7/2018 at 7:23 PM, Fonze said:

with voice chat on discord active

 

This will drain exponentially more data than playing Doom.  A one-way Skype call, for example, uses up to 45MB per hour, double that for two-way.  Add in extra people and it goes up even more.

 

And obviously uploading a YouTube video will absolutely rape your data use.

 

Edit: A few interesting examples in this article.  Such as: World of Warcraft is around 10 - 45MB per hour.  Battlefield 1 is 100MB per hour.  CS:Go apparently get can up to 250MB per hour, and Destiny claims 1GB per hour.  But that's Destiny for you.

Edited by Bauul

Share this post


Link to post

Nice, I figured that vc took up a good chunk of that and even then it seemed really high, so it was cool to see the other responses here narrow it down to more accurate numbers. On that note, I wonder how different data usage is on discord's vc as compared to skype. Given there were 2 of us in the vc, that would put it easily above 70mb for the time we played, if discord is similar to skype. I also have to wonder if vc use is the same per person always, or if activity impacts the amount.

 

Cool to know doom is so economical on data use tho!

Share this post


Link to post

I hate that "Mb" and "MB" are extremely different measurements and I can never trust anyone telling me how big something is because I don't know if they respect that difference.

Share this post


Link to post
Posted (edited)
4 hours ago, Linguica said:

I hate that "Mb" and "MB" are extremely different measurements and I can never trust anyone telling me how big something is because I don't know if they respect that difference.

Yeah, it sucks. I used 1 Mb = 1,000,000 in my calcs, vs. 1,048,576 which, is actually what is being said ("mega" = million). It's no moral stance: I am guilty of either/or at any given time.

 

Voice chat: Human speech is somewhere around 40 Hz to 18,000 Hz, and you'd need double that sample rate to exactly reproduce it. The low end (bass) captures the nasal and percussive stuff, and a huge portion of the high end holds the crispness of airy consonants, like "sss", "zzz", etc. Luckily, you can roll off both ends and still have understandable speech. For example, many phone systems roll off the high end above 2 KHz. So, instead of needing a sample rate of 36K/second, 4K/second can produce quite good results.

 

Take the Doom sounds, for example. Most are sampled at 11,025 Hz, which is needed for weapons and such. But the monster grunts could have probably been sampled at a much lower rate, without too much degradation.

 

And, of course, you only need to send data when speech is present. Finally, add some compression, without eating all your game CPU cycles to compress sound! That might limit the amount of compression possible.

 

So, yeah, voice chat is expensive, but a lot can be done to mitigate the costs. Of course in a dedicated phone service, sound quality would be given priority over data size vs. a video game.

 

@BauulInteresting article.

 

Share this post


Link to post
1 hour ago, kb1 said:

Yeah, it sucks. I used 1 Mb = 1,000,000 in my calcs, vs. 1,048,576 which, is actually what is being said ("mega" = million). It's no moral stance: I am guilty of either/or at any given time.
 

 

I think he means megabyte vs megabit, not mebibyte.
 

Share this post


Link to post
2 hours ago, Bloodshedder said:

 

I think he means megabyte vs megabit, not mebibyte.
 

Not sure what your getting at here...

Sometimes I use 1 Mb to mean 1,000,000 bytes, and at other times to mean 1,048,576 bytes. Were we ever discussing bit vs. byte counts? What did I miss?

Share this post


Link to post

Network connections are usually advertised in megabits (eg. 100BaseT is 100 megabit, home Internet/ADSL connection speeds are always advertised as some number of megabits). But when actually using computers we always use bytes as the unit of measure. So if you get the two confused you can be off by an order of magnitude, since a byte is usually 8 bits. It's dumb.

Share this post


Link to post

Ah, makes sense. I guess "100 megabit" sounds beefier than "12.5 megabytes", right? :)  "Always the dollars! Always the f_____ dollars!"

Share this post


Link to post
Posted (edited)

No. Networking equipment has always been measured in bits for legacy purposes, and because all networking equipment measures in bits, all new networking equipment is therefore also measured in bits. We never stopped measuring connections in baud rate, essentially.

Share this post


Link to post



8 hours ago, kb1 said:

Not sure what your getting at here...

Sometimes I use 1 Mb to mean 1,000,000 bytes, and at other times to mean 1,048,576 bytes. Were we ever discussing bit vs. byte counts? What did I miss?

Mb (with a little b) is supposed to mean megabits, and MB (with a big B) is supposed to mean megabytes. MiB means mebibyte, and Mibit means mebibit.

5 hours ago, Edward850 said:

We never stopped measuring connections in baud rate, essentially.

Yes we did. Baud rate is number of symbol changes per second, not necessarily the number of bits transmitted per second. See https://en.wikipedia.org/wiki/Baud#Relationship_to_gross_bit_rate


 

Share this post


Link to post
On 3/10/2018 at 7:37 AM, Bloodshedder said:



Mb (with a little b) is supposed to mean megabits, and MB (with a big B) is supposed to mean megabytes. MiB means mebibyte, and Mibit means mebibit.

Interesting, though untrustworthy - this thread proves that. Maybe I'll just write it out from now on. I'll never be able to deal with "mebi"-anything though :)

 

 

On 3/10/2018 at 7:37 AM, Bloodshedder said:

Yes we did. Baud rate is number of symbol changes per second, not necessarily the number of bits transmitted per second. See https://en.wikipedia.org/wiki/Baud#Relationship_to_gross_bit_rate

Also interesting. I always wondered how you could get 56 KB (kilobytes) out of a telephone modem that rolls off the signal at 4 KHz or below. The article touches upon some of that technology. Some smart guys developed that stuff.

Share this post


Link to post
2 hours ago, kb1 said:

I always wondered how you could get 56 KB (kilobytes) out of a telephone modem

 

56k modems were designed to do 56 kiloBITS per second, which is quite a bit less, obviously.

Share this post


Link to post
40 minutes ago, Linguica said:

 

56k modems were designed to do 56 kiloBITS per second, which is quite a bit less, obviously.

Aarrrg! That's right. Does anyone remember the TRS-80 Model 1? It stored programs on cassette at 500 baud (bits/second). That's about 64 bytes/second. You preyed that there wasn't a bad spot on the tape. It took over 10 minutes to load a 16K program. We're spoiled nowadays. At least it wasn't punch cards...

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×