Jump to content

Netcode Lag Fix Suggestion ... Is It This Simple?


9 replies to this topic

#1 Coraxin

    Rookie

  • Ace Of Spades
  • Ace Of Spades
  • 6 posts

Posted 02 December 2012 - 12:22 PM

Disclaimer: Im not a network engineer... but this seems like a practical and common sense solution to the netcode lag issues.

The Problem: Netcode lag makes the game frustrating on many levels that make me want to punt a light mech across the map.

The Observation: This has been mentioned before but when you "spectate" while dead you get to see what the server sees. I think that having a "server view" while alive would allow for a more accurate and satisfying game experience. We can all relate to spectating and seeing someone miss a mech just to the right/left and scream out "noob!" or "aim better scrub" while the player thought they melted the face off of that very same mech. Other unfortunate people on the other side of the globe can even miss the broad side of an Awesome due to netcode lag.

The Solution (even partial): Whatever refactoring or engineering steps PGI is taking will still end up with some amount of lag. Why not just give everyone "spectator view" while we are alive? Basically give the players server view of all missles, lasers, ballistics, players, etc even if we have to get used to the input lag for moving, shooting, etc.

I can get used to my own consistent input lag on my end but what I can't get used to is guessing where any number of people with varying pings will be on my screen due to poor netcode lag. Just show me what the server sees and we can cut out a lot of frustration. Can such a seemingly simple solution work?

The steps to implement shouldnt be too bad considering you already have spectator view....

Thoughts?
Coraxin

#2 Nightfangs

    Member

  • PipPipPipPipPipPip
  • 216 posts

Posted 02 December 2012 - 12:41 PM

Hm... interesting idea!
It could indeed be better to have some "lag" while moving or firing than to lead the target.
When you have "serverview", at least you would get results after the first few shots and could react better.

But on the other hand, I can't say how that would change the game.
Most multiplayergames, where you are passenger in a vehicle, have that server view. And I can tell you, it lags like hell and I get sick after a few minutes. It would be a shame to get sick while making a few simple turns with your mech.

Not sure, but your idea should be worth a try if it could improve the quite unbearable latency problems.

#3 Skyfaller

    Member

  • PipPipPipPipPipPipPipPip
  • 1,332 posts

Posted 02 December 2012 - 12:46 PM

You do not 'server view' when you spectate. You view what the other person is seeing. It connects your client to theirs.

This is why you see when others have yellow screen bug and yet you hop to another player and they dont have it. It is also why if you spectate someone with very high ping you get to see how the entire world warps weirdly.

#4 Coraxin

    Rookie

  • Ace Of Spades
  • Ace Of Spades
  • 6 posts

Posted 02 December 2012 - 01:08 PM

I've heard different views, so I'll defer to a network engineer @ pgi if they want to comment on how spectate mode works. I've just either been witnessing some really horrible players shooting a mech or something else is going on behind the scenes when we spectate.

All I know is I'm a fairly decent shot and when someone on voice coms spectates me and when I ask them to tell me if Im hitting CT, RT, LT etc and on my screen I'm hitting CT while they see me hitting RT (target moving left) -- and the paper doll also says I'm hitting RT -- it makes me think spectate mode is showing them something different than what Im seeing.

Regardless, giving players a server authoratative view of everything would be better than guessing and compensating for variable lag. We can only hope they fast track netcode revamp...

Edited by Coraxin, 02 December 2012 - 01:09 PM.


#5 p4r4g0n

    Member

  • PipPipPipPipPipPipPipPip
  • Knight Errant
  • 1,511 posts
  • LocationMalaysia

Posted 02 December 2012 - 01:24 PM

Just to clarify that I have high 200ms to low 300ms latency and I'm pretty certain I'm not seeing what the player I'm spectating is seeing.

I get the yellow ribbon bug sometimes when I change from one player to another while spectating and can get rid of it by just cycling through to the next player until I'm back to the player with the bug. Its pretty unlikely that the player concerned powered down and back up when I was cycling as usually the player concerned is in the middle of a fight.

Also, reticle sometimes appears to be lagging behind target but player is hitting it but I can't guarantee that this is not just an effect of the netcode.

Edit: Just to quickly comment about the idea of using server view. I can adjust my firing to trying to compensate for latency even if there is a half a second lag from the time I press the trigger to the PPC / gauss rifle firing (all ballistic & missile weapons actually come to think of it). However, I think it will be unplayable if that lag translates to piloting the mech e.g. hit left to turn and mech responds half a second later? Ouch.

Edited by p4r4g0n, 02 December 2012 - 01:44 PM.


#6 Willie Sauerland

    Member

  • PipPipPipPipPipPipPipPip
  • Bad Company
  • Bad Company
  • 1,209 posts
  • LocationKansas City, Missouri, USA

Posted 02 December 2012 - 01:35 PM

Actually, as a network engineer I can tell you it won't matter if you are looking at the server view or not. Why? Because the packets being sent from the server still need to reach your computer, be decoded, and then displayed to you. Then your actions will be encoded and sent back to the server.

In other words, you will still have the latency.

Also, to clear up another misconception which people seem to like to use - a Ping does not tell you if you are experiencing latency or not. Why? Because the underlying protocol (ICMP) is the lowest priority packet on the network. Due to the way routers work, they can be dropped without any issues because they can cause the CPU of the router to spike (and as we all know, spiking processors are never a good thing). So, you might experience a "lag spike" watching your ping but the TCP which the game is using has not experienced any issues. Ping is a diagnostic tool, but you have to know what you are looking at to really use it.

Just my 2 CBills....

#7 Roland

    Member

  • PipPipPipPipPipPipPipPipPipPip
  • 8,260 posts

Posted 02 December 2012 - 01:45 PM

If you had the "server view" on your client, that would create a delay in all actions that you take on the client side. The entire experience would feel sluggish and sloppy. It'd be unplayable.

For instance, the delay in firing ballistic weapons? That little fraction of a second that screws up a lot of folks' shots?

Apply that to every single movement of your mech. Now do you see why it'd be bad?

#8 Suicidal Idiot

    Member

  • PipPipPipPipPipPip
  • 404 posts

Posted 02 December 2012 - 02:32 PM

Yeah, I have a consistent 150 - 170 ms ping, and I have to lead by a full body width to hit a circling mech. It makes ballistics unplayable for me.

I have a suspicion that a huge reason behind the "Streak boats are for players who can't aim" is because many of us truly can't aim. The lag makes it impossible. Streaks level out the playing field for us high pingers, and the low ping elite seem to hate it.

I have a feeling that the good folks at PGI have all been playtesting with extremely low latency.

Edited by Suicidal Idiot, 02 December 2012 - 02:33 PM.


#9 Suicidal Idiot

    Member

  • PipPipPipPipPipPip
  • 404 posts

Posted 02 December 2012 - 02:43 PM

View PostWillie Sauerland, on 02 December 2012 - 01:35 PM, said:

Actually, as a network engineer I can tell you it won't matter if you are looking at the server view or not. Why? Because the packets being sent from the server still need to reach your computer, be decoded, and then displayed to you. Then your actions will be encoded and sent back to the server.

In other words, you will still have the latency.

Also, to clear up another misconception which people seem to like to use - a Ping does not tell you if you are experiencing latency or not. Why? Because the underlying protocol (ICMP) is the lowest priority packet on the network. Due to the way routers work, they can be dropped without any issues because they can cause the CPU of the router to spike (and as we all know, spiking processors are never a good thing). So, you might experience a "lag spike" watching your ping but the TCP which the game is using has not experienced any issues. Ping is a diagnostic tool, but you have to know what you are looking at to really use it.

Just my 2 CBills....

I seem to recall that dropped packets don't add to the ping time.

Also, it's been my personal experience that ping times really are indicative of latency. In fact, there is such a direct correlation that the folks coding the games often include the ability to look up ping times.

Edited by Suicidal Idiot, 02 December 2012 - 02:45 PM.


#10 Willie Sauerland

    Member

  • PipPipPipPipPipPipPipPip
  • Bad Company
  • Bad Company
  • 1,209 posts
  • LocationKansas City, Missouri, USA

Posted 02 December 2012 - 02:57 PM

View PostSuicidal *****, on 02 December 2012 - 02:43 PM, said:

I seem to recall that dropped packets don't add to the ping time.

Also, it's been my personal experience that ping times really are indicative of latency. In fact, there is such a direct correlation that the folks coding the games often include the ability to look up ping times.


Since the ICMP packet is added to the queue and has a lower priority - it can take longer for the ICMP packet to reach the destination than the TCP packets. People equate packet loss (3/5 pings received for example) with latency typically - but you are correct, a dropped packet does not actually add to the ping time - only those stored in a congested queue. And this latency is only relevant to the ICMP packet and not anything else as the congested queue could be forwarding higher priority packets just fine.

Also, just because a game developer includes the ping as some sort of benchmark does not mean it is viable. Again, most people don't know what they are looking at when trying to read a simple ping and assume that there is some form of latency which isn't necessarily the case. Granted, the lower the ping on average, the better service you are going to receive, but a network link with a high ping is not necessarily experiencing latency. The difference is it still takes X milliseconds to traverse the geographical distance to get to the server and then come back and most people don't know what the normal amount of time is for this to take. However, you can't measure TCP latency with ICMP since they are completely different protocols.

If you really want to find out what your latency is, then you need to use something like iPerf (or have the game developers build it in) to see what your latency really is. Ping alone won't do it for you and is inaccurate at best. I have had plenty of times where the ping was awesome, but TCP was still experiencing high latency due to server load. I have also seen the opposite - the ping was horrible but the TCP connectivity was fine.

The ping, by itself is a poor diagnostic tool which typically proves nothing.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users