I would have assumed that it’s a network bandwidth issue. The calculations for boons, conditions, and combat cannot be anywhere near as intensive as they say simply because these calculations happen in other games without any problems for large numbers. It gets worse for a RTS than for an MMO. The problem is how to funnel all of the data they want through the average user’s DSL line. They’re synchronizing animations at probably 10hz (maybe faster) including all of the combat data that comes across. If they used all 32 bit floats for the data here’s what we get. Each float is 4 bytes.
Position: 12 bytes
Velocity: 12 bytes
Animation: 1 byte ID, 4 bytes timing
Every damage indicator: 5 bytes per tick up to 50x for an arrow cart (200 bytes) 4 bytes amount, 1 byte type
Boons/conditions and timers: 4 bytes boon active flags, 4 bytes per boon (x9 for boons, x12 for conditions) plus flags and timers for class specific buffs and debuffs, makes out to about 150 bytes
healing ticks: same as the damage indicators but only up to 5, due to current aoe cap: 25 bytesI’ll add 150 bytes for ??? data i didn’t cover. This makes out to 600bytes. For one player.
Now multiply that by expected server caps (80 per server I would imagine, or 240 total) makes out to be 141kb. How many frames of that can you get into a 300kbps DSL connection? 2 maybe.That’s why you get skill lag. They shut off all of the AOE abilities and particularly the utilities. If they shut off aoes they save 240*5*5 bytes per frame just in damage ticks. They’re also pushing information for projectiles and sfx animations over that pipe and most of the data for that is used in AOE attacks. They save some minor server calculation time as well (manhattan distance calculation costs 6 multiplications and 6 additions and one less than comparison, that’s childs play for any CPU today) but it’s mostly bandwidth.
This especially if they’re trying to drive 20fps worth of data. That adds up to quite a lot of data to push over a gigabit ethernet connection. This also assumes they have gigabit internet with the ISP that serves their WvW servers (which is doubtful cause that costs $$$).Why you should look forward to the LoD for special effects is in that statement above. If they do server-side LoD they save bandwidth by not pushing to you the AOE effects that they used to and they can put more of that bandwidth towards keeping skill lag effects at bay.
This is also why they’re not upping the AOE cap. Previous MMOs didn’t have such a high framerate for data so they don’t have to push so much over the connection. GW2 has a higher data framerate and needs to save bandwidth where it can and thus you get an AOE cap. If all aoes were allowed to have an unlimited cap they would take up too much bandwidth in a 50v50 fight. Maybe they’ll be able to expand the aoe cap when they clean up some more bandwidth hogs that are unnecessary (like SFX).
-My background on this idea:
I’m used to working with IP video systems where bandwidth is a significant issue (especially with megapixel MJPEG streams). I’ve also thought of the way to transmit and store MMO data or simple multiplayer data. The design above is how I would have done it. This isn’t necessarily how Anet did it. They probably have a more optimized approach to handling data. The thing i do know is that their server’s processor has much more power than they’re letting on.
This definitely incorrect, it is NOT the bandwidth that is tapped during server lag…the server CPU is maxed out…it simply cannot process the information fast enough and therefore cannot send a response to your client…therefore you click a button..nothing happens, because the server can no longer register events until resources are freed up. That’s pretty much it….all there is too it….when massive amounts of people start spamming abilities in unison, whatever calculations are run on the server tax the CPU…when CPU gets taxed…they stop processing input until the server catches up…once resources free up…you can click a button again…
Your crazy byte calculation has ZERO to do with bandwidth, those numbers are space taken up in memory on the server (or whatever machine is doing the calculation). Much different than what is sent over the wire in a packet…the information is FAR FAR less and very much compressed.
Underwater Operations – [WET]
(edited by Gamadorn.2670)