Question about clientside

Discussion in 'PlanetSide 2 Gameplay Discussion' started by Teneth, Aug 22, 2014.

  1. Tricycle


    In my example B shot A with a fatal head shot when A peeked through the doorway. So, if we keep that in mind then wouldn't this windback system simply verify the shot and pass the damage to A who from his point of view was dodging the shots in the cover? In other words he would have died in the cover as soon as the info about the head shot arrives, right? I don't see the benefit of this system.

    I reviewed your other post and I think all I see is a typical shootout with few 100ms latency. The server knows how much damage Mr Dragoon can take and when you exceeded that amount the server told you he died. However, his client was still sending damage packets to the server when it happened which were delivered to you right after the death. If we'd look the same situation from Mr Dragoon's point of view I'm 100% sure it looked like he killed you first. Thus the question is, why should have you survived instead of him? I think it's only fair you both died. This is latency. There's no way around it.

    I don't think it's an evidence of buffering or anything. The packets that are transmitted from the client to the server contain location + movement information (heading + speed). The server will then pass them over to the players around you within certain radius. The clients will then place the players according to those locations and move them to the given direction until the next packet arrives with a new set of coordinates and movement information. Since this happens in a 30 packets per second rate it looks smooth. If the data flow is interrupted for a longer time periods then you will see people running/driving in straight lines or jet packing through the sky, etc. They are simply behaving the way described in the latest packet received.
  2. Aaren

    No. If you're talking about Sources system - then you are forgetting that it is the servers perspective that matters, not what B or A see's. In my diagrams I didn't outline A ducking in and out of cover - but the concept should still be relatively apparent. They both see another in completely different relativistic positions. The server attempts to average these out and only allows damage when both parties could possibly have shot one another from the combined average of their perspectives.

    What you are suggesting - is a scenario only possible under pure "clientside" systems. As you say, A will have dodged the hit from their perspective - B will shoot them from theirs - and A will receive the damage regardless - as there is nothing to compensate for this difference in perspective. The server is not monitoring it's own perspective - or mediating the clients at all. It simply passes information back and forth between the two clients. So whoever sees and shoots the other - first - will always win. Even if they are dead on their victims screen by the time the damage reaches that victim.


    :rolleyes: Except...planetside is supposed to be "clientside". Which means the server knows nothing. It simply passes the data on to the recepient and visa versa. Both clients will take the same time to send and receive data across their respective pings.

    Again, assuming Planetside is client authoritative in the plainest terms - those packets come directly to my client - the server just relays them. If this is the case - while my packets - containing my damage on Mr Dragoon are on the way to them - theirs are on their way to me. Assuming we both shot at the same time - we should both die simultaneously.

    The issue is - we didn't shoot at the same time. I clearly get the drop on them by well over several seconds - damaging them long before they manage to even notice I am there. Yet - somehow, they are able to output an equal amount of damage in less time - all the while only hitting me once on my screen. If the packets are strictly going directly between us as they are claimed to be - I should kill them outright - not receive several seconds worth of damage instantly, after they have already died from my perspective. Do you not see that there an inequality of delay here? My damage on them is not delayed - but theirs on me is.

    :rolleyes: I'm not seeing Mr Dragoon's perspective though am I? This is why lag compensation is so important. You can't expect players to try and envision things from their attackers POV - and try and compensate accordingly. It is literally impossible as we cannot even tell out enemies ping. This is why in the earlier days of Quake - desync and lag was such an exponentially worse issue. With no lag compensation - If your enemy was lagging you literally had to aim in front or behind of them, depending on how much they were lagging.

    It is not ''fair" "reasonable" or "rational" that I am shot by a dead player - because that player has a poor connection. It is exceedingly difficult to try and imagine how your enemies might be seeing you and themselves - however far in the past - depending on how much latency they and yourself have.
    Looking at my latter two diagrams should make this fact alone - pretty clear.

    This kind of on the fly mental computation is borderline impossible in a game as hectic as PS2, or Quake for that matter. This isn't simply latency this is the effect of latency with a lack of lag compensation. And the way around it is called - Lag compensation. It's not perfect, but under a lot of circumstances, certain systems work.


    That's extrapolation. No-one uses that unless they're trying to make a seriously flawed system. You can't have clients or servers trying to guess where players are going to be in the future.


    I'm sorry if I come off more than a little irrate in this post. Please feel free to keep asking me questions, and I'll do my best to continue to answer them to the extent of my knowledge.
  3. Kunavi

    So in essence, if I have less than 60 stable and constant FPS in any situation at any point, I am basically better off playing Tetris- Same for having more than 25ish MS(In-Game indicator, not SpeedTest ETC).

    So basically I should quit because currently in PS2(And only there) I have 100+ MS and often my FPS will drop below 20 because reasons- And I am only paying so the rest of you can keep farming in new continents, in new vehicles, new ways.

    Correct?
  4. Aaren


    Well it's more like....if you have anything less than 30-40 fps stable (that's what I've heard forgelight likes to run at - that's complete hearsay of course.)

    And if you and your opponent don't have roughly the same ping, the less the better of course. But there's no way to check your opponents ping, short of asking them - so it's more like trying to play chess against someone on a ship sailing alongside yours - via telescopes, and shouting each others moves across the gap.

    Honestly though - for some people the hit detection seems to work fine - or they don't notice any problems. Of course the problems could still be there - and their play-style, or sensitivity to this sort of thing, means they don't see any issues. Then again, if you have the greater ping than most of your enemies you probably won't notice the lack of lag compensation as much.

    Either way, honestly - I wish SOE would just give us some transparency. Tell us how the system functions - so we don't have to make mini-essays on the forums explaining to everyone how other systems work - and how PS2's might, based on the available evidence. If SOE would clearly spell it out - and explain why it has to be the way it is - or even better - what they're doing to try and improve the system - this thread would not exist - and a lot more players would be happily enjoying the game, and spending money in it.
  5. Stigma

    You can either have hitdetection be clientside, or serverside. There are very good reasons why server-side is pretty much never used anymore. The downside to clientside is that you can get hit after you round a corner, but serverside would mean that you miss even though you shoot directly at someone because in reality they are 2 meters to the left of where you see them.

    Obviously the former is the lesser evil, and lag is a reality of this world and the current state of technology we find ourselves in, so we heave to deal with that somehow.

    It is worth recognizing that PS2s feeling of lag is higher then a lot of other similar games though, and I think that likely has to do with a mediocre tickrate being used in the game. That is to say that the server sends and recieves data with too long intervals. Doing this faster would make for a more snappy game experiene but it would also increase demands on the server - and we have already seen before how the servers can and do buckle under too much pressure as-is.

    Don't get me wrong though. I think it is a fantastic technical achievement to make an FPS of this scale work as well as it does. It may be that we just have to accept that there are certain caveats that we have to live with in return for the scale of the game.

    -Stigma
  6. Aaren


    http://forums.tripwireinteractive.com/showpost.php?p=1046708&postcount=11

    http://forums.tripwireinteractive.com/showthread.php?t=77077

    https://forums.station.sony.com/ps2/index.php?threads/question-about-clientside.198476/#post-2887691


    My god.

    Does no-one read through a thread before responding in it these days? -_- Sure this one is full of long winded posts and there's a lot reading invovled. But it does stop things from having to be repeated over and over and over again.


  7. Tricycle

    Ok, so let's say player A moves out from the cover to the doorway and tries to land one shot on player B and then he moves back to the cover. At the same time player B sees A's attempt to shoot and lands a single fatal head shot with the sniper.

    So what you are telling me is that the server would windback and review the shot from the "servers perspective" and since the two players are playing with 300ms difference in latency the head shot would have obviously been a miss from that point of view. Could you tell me how is that fair for the lagger, because it looks like he has absolutely no way of hitting the other player in such situation? That sounds like a terrible idea to me.

    Yes, that's how PS1 and older SOE shooters worked. The server operated as a simple relay for the packets sent by the clients. When your client noticed that you have received more damage than you can handle then your client would send the "death packet" to the server which would have been broadcasted to the nearby players. However, the thing which made me wonder about the servers role on deaths in PS2 was the fact in your screenshots. Your client displayed the death announcement of Mr Dragoon first and then it received more damage from him. How can that be if both data originated from the same client to yours? It's like Mr Dragoon's client sent at least one damage packet after sending the death packet. I'm pretty sure it doesn't do that, because it simply doesn't make any sense. I suppose there are two possible explanations.

    1. The server keeps track of player health instead of the client (it can still use client side hit detection). This way you would receive the death packet first, because it came from the server directly, not from Mr Dragoon. However, it would obviously raise the question of why was that damage packet sent to you after his death as well. Hence I suppose this explanation is highly unlikely.

    2. You or Mr Dragoon were experiencing packet loss. The damage packets were sent to you before the death was announced, but those were lost in transmission and they were resent after the death.

    What is this case you are talking about? Who are them or they?

    If you mean Mr Dragoon then there are multitude of reasons which could have created the situation. Did you check your deaths from PS2 web site after this incident? Were you head shotted by him? I suppose that would explain the quick death. Other explanation could be the packet loss I mentioned earlier. The bottom line from my point of view is that I don't see anything abnormal in your screenshots. You messed up your jump by not landing that first stab. The packets were received in the wrong order due to packet loss or something. :)

    In that case Quake clearly didn't have a client side hit detection like we do in PS2.

    Regardless of interpolation or extrapolation the client receives 30 location updates per second. If you play with 60fps frame rate it means your computer will have to guess the location of the players for every second frame. It's not a big deal, isn't it? How far do you think people can move in one frame? Hell, you can't even blink your eyes that fast. Besides, do you honestly think interpolation would get rid of guessing from the game? I'm pretty sure the extrapolation is the standard among games with such a high tick rate. Interpolation seems rather wasted effort in any fast paced shooter anyway. Why would you want to create more lag?

    No problem. This is interesting.
  8. Aaren


    Ok your example is vauge, and especially with this kind of thing - I like to talk in specifics - otherwise it tends to get messy very quickly. But for the sake of trying to explain things as clearly as possible:
    • In your little scenario here - 300ms is a fairly medium to large difference. It may not seem that much - when the average human reaction speed is about 310ms, but in terms of the game - it can easily mean the difference between one perspective showing a character 5m in front of you, and the other - having them 20m off around behind another building.
    • I've edited my third diagram - to hopefully explain this a bit better.
    • When you compare it to the second - you should hopefully see, how much of a difference there is between having and using a server's averaged perspective - and simply relying solely off the clients.
    • In the case of your example - it is likely that the difference between your two players - is a lot more than one getting a headshot on their screen - and the other dodging it. We're talking more along the lines of the attacker standing outside - getting a headshot from their perspective - and the victims perspective showing them safe inside, on the second floor of the building, while their attacker on their screen is only just entering the building.
    • In a case such as this - it won't be a matter of the victim "dodging" the bullet and the attacker getting no damage. When the server wind's back it will find that there was indeed a window between the two perspective - where the attacker could have scored a hit. But it will likely be tiny - probably even smaller than the time it takes for the weapon to fire - and bullet to travel from the attacker to the victim.
    • So the server will average things out as best it can. The victim will get shot - but it won't apply the full damage - as from the servers perspective - the attacker simply didn't see them for long enough. This will result in the attacker getting a hitmarker but no kill - and the victim being shot but not dying from an enemy they can't see.
    Clearly this is preferable to the victim dying from an enemy who can't possibly see them on their screen - or alternativley - the attacker clearly hitting their target but dealing no damage. Situations that are common currently in PS2.

    Exactly. PS2 is a difficult fish to fry. It seems to be using some sort of hybrid method - as it naturally would - being too big and complex for traditional server authroitive systems - and pure clientside having far too many loopholes.

    1. Could be entirley possible - the server could simply lack - or have a problem with, damage invalidation. In otherwords - if a client has a poor connection - the server's ability to realise that the damage that client has just requested - is now invalid - as their killer has already killed them. The problem with accepting this explanation however - is that once again, players with a good connection to the server - shouldn't see the problems I have. If all my packets have to do - is reach the server - then my 5ms should win me every fight, and it simply doesn't.

    2. This is a common misunderstanding. There is a difference between packet delay and packet loss. To my understanding (someone correct me if I'm wrong) the UDP packets that PS2 and a lot of game clients use - have no real delivery verification. Short of the client or server sending an ACK packet back to the client - there is no way to tell if the packets have been lost along the way. The problem with sending acknowledgement packets in return is that they effectivley double the amount of latency the server or client has to wait for - before processing the next tick.

    Either your server/client waits for an ACK packet - which effectivley doubles the delay before a new event can be processed (doubling the effective latency) - or it simply continues on, under the assumption it will eventually get one. (allowing for situations where damage is applied to both players, they both die - and then the server validates that they both had valid damage. Far far too late :p)


    There's also an important distinction between packet loss and packet delay. If the packets are simply delayed - the information will get through eventually - but it will be out of sync. Whereas if there is loss - the information will simply never arrive. Some clients will attempt to resend - others won't - again we're guessing at this point. But with UDP packets - usually the behaivour you describe could only really be explained by packet delay, not loss.



    Yes I was referring to Mr Dragoon, and I did check my stats on the player site actually - he supposedly killed me with SV-88 directly after I killed him. The deathboard recorded that there was a 3 second delay between our deaths - but if you watch the video closely, you'll notice that notification that "MrDragoon has killed you" appears in the chat box, almost directly after the message "You have killed MrDragoon" If we take a look at the stats for the SV-88, - we find that it does:
    • 143 damage per shot at 10m
    • 126 @ 65m
    • and manages 689rpm or rougly 11.48 rp/s
    Assuming that Dragoon hit me every shot on their screen (for arguments sake) It would take them 6.999 hits to negate my 1000 health and shields. Which would take their SV-88 less than a second to dish out.
    So it is utterly conceivable that they could have killed me in under a second, especially considering I only had about 25% of my shields left.

    But this isn't my issue with the footage. My problem with it - is that Dragoon somehow kills me after being dead themselves. In the majority of shooters I've played the only way to damage a player after your own death, is with explosives of some sort - it's often specifically coded that once a player is registered as dead - their projectiles are ignored - precisley to prevent this sort of scenario. Even if Mr Dragoon was lagging. The packets should arrive at my client or the server - long after my own kill confirmation. The fact that the chatbox shows the kill notification before my death notification, confirms that it did - yet for some reason PS2 has no damage invalidation - and I receive his damage regardless of the fact that it's nearly 5 seconds delayed from my perspective.

    Again. Even if there was packet loss on their connection (can't be mine, I have 0% loss to the Briggs IP) - I simply wouldn't have received the damage at all. If it was simply delayed packets - then my kill on him, shouldn't have been recorded by the server at precisely the instant it occurred - they should have been delayed by however much packet delay MrDragoon was experiencing.

    Well. Assuming the server is only relaying data. Which it increasingly looks as though it isn't. *sigh*. Why can't they just be transparent about this stuff.



    Nope, rember the distinction isn't between "clientside hit detection" and "serverside" - both PS2 and Quake are supposed to have "clienside" - the issue is lag compensation, or the lack thereof. Quake had practically none - hence why even the hitboxes would fall out of sync with the character models. PS2 clearly has that level at least - but seems to be missing the higher level stuff.


    Erm..okay. Firstly where are you pulling this 30 updates a second from? :p We don't know expliclty what Planetsides tickrate is, the dev's have said it's "locked at 60" but is "dynamic" which really could mean anything.

    How framerate affects networking depends on the engine in question. You can't simply assume that because you have 60fps - your computer is trying to render more positional info than it's getting. Source servers for exmaple commonly have a tickrate of 60tps - and even some go all the way up to 100. Most game clients and servers try and decouple the networking and rendering threads as much as possible. Some succeed better than others, BF4 for example, has a major issue for a long time, where the rendering process, and the collisions stub of the physics thread, which was responsible for the location and orientation of hitboxes - were linked. So if the server or client was experiencing low render times, or framerate, the hitboxes would literally become displaced from the viewmodels: https://www.youtube.com/watch?feature=player_detailpage&v=vRjTMwSY0qs

    Of course this always a tricky goal to acheive, some clients do it better than others. PS2 seems pretty well optimized in this regard. Even with low framerates I havn't seen much that could be attributed to hitbox displacement. The issues seem soley server, or communication between server and client - related.



    The issue of extrapolation VS interpolation may not seem that important - if you examine them from on the macro level of "Well that guy just ran in a straight line, then turned 90 degrees" (extrapolation) vs "That guy ran in an s-pattern" (interpolation) - but the difference is noticable, particularly in games where weapons are spewing out 700 projectiles per minute. Or roughly 11 per second. And when each of those projectiles is doing 140-125 damage out of 1000 total health, it should be clear that one or two packets lost or delayed, can make all the difference.

    Interpolation is used over extrapolation - in order to prevent your client guessing anything. Because there is artifical delay, or buffer - the client always waits to have at least 2 packets - to smoothly animation motion across.

    Interpolation won't remove guessing from the game. What it will prevent - is people popping around corners, or teleporting around the place due to packet delay or loss. It means that characters on your screen will always move in a natural fashion - even if what you are seeing is out of sync with other players or the server. You will always be able to track a target, aim and hit them - because they won't be warping around at the speed of light due to your connection - or your opponents.

    Extrapolation is not the standard. Interpolation is - a combination of interpolation and extrapolation (rare) - or nothing. The few games I think of that use extrapolation, are things like the rockets in Quake 3 - even back then though, interpolation was used for player movement. It's just too difficult to try and predict how players are going to move.


    In terms of extra vs inter - polation, there's also the issue of who does it. Does the client interpolate? Or the server? Do they both do? Remember the player who is moving, always sees their movement as smooth and seemless - it's only the server and the other players that have to interpolate the packets their receiving to get a consistent depication of that players motion.

    I won't go into too much details here, as this post is once again turning into a mini essay. If you'd like some more info on interpolation vs extrapolation - ask in your next post and we can go over it more thoroughly. A good way to summarize it though - is that, depending on who's doing it - it can mean the difference between you weaving back and forth - on an enemies screen or just running along in a straight line - which obviously makes a difference when that enemy is shooting at you.




    Well it sure beats just asking SOE why they haven't fix anything - and getting nothing in return. Hopefully it might also help other players understand why there is an issue here - instead of simply dismissing it as "Oh well, internet games amiright?"
  9. Kunavi

    Well it's more like....If you have anything less than 30-40 FPS stable. And if you and your opponent don't have roughly the same ping, the less the better of course.

    So yes then I should quit, because bad hit reg aside I get 100+MS whereas most players swear by their apparent 25ish, while others reach 280ish which also throws me off. I'm also rarely getting 40FPS(I find 30 border line for twitchy PS2), at least not where it matters like in a Bio or Tech Plant or a busy Tower. These issues are isolated to PS2, which I'm paying to play. Even if I could increase my FPS by playing TetrisSide2 and if SOE fixed hit detection, I'd still have great(Because apparently facing 25MS players as an 100MS player is certain DOOM from what I understand) latency problems. Considering I'm not a bad player at all and that I feel about 1/3 if not straight half of my encounters would have played very differently(In my favour) if I had the right connection(?) and PC(?) tailored specifically for PS2... Then I should at least stop paying as I'm only fueling others' entertainment, eventually I should stop playing when a more suitable title that covers my needs and wants comes out.

    I am just thinking SOE should come out and say "Because of this and that, having non stable, 50+ MS and non stable, less than 40FPS, then your experience may vary as you'll be playing Russian Roulette". I think such a statement would not hurt them, how many players play like me after all? From asking around most of you guys are indeed the -50MS and 40+FPS any situation kind of majority. Such a statement would only save frustration.

    EDIT : As for me, since even BF4 plays so great, I'll just migrate there and have my fun until the next AAA MMOFPS... Well, not "Next" but "First" because PS2 isn't one, at least not the way it plays for me.

    EDIT 2 : When I say 1/3 if not half of my encounters would play different under more or less equal terms(Or meeting PS2 FPS/MS requirements stably), I mean these encounters feel like I am facing a CHEATER. PS2's randomness and easy ways to InstaGib also contributes a lot to that, I am aware of it. But it's mostly that one encounter too many feel like I met a H4x0r. Again, I'm not actually a bad player so it's not that. Just saying. It's all this FPS/MS crap plus hit detection.
    • Up x 1
  10. Pootisman

    Its not unrealistic. Just go back 1 year ... PS2 was responsive, hit detection worked properly and we had little lag in general.
    Nowadays ...

    Also, hit detection is crap since january: https://forums.station.sony.com/ps2/index.php?threads/bad-random-hit-detecion.188831/


    Less players (compared to 1 year ago), but more lag and delays. Its feels like SOE is de-optimizing the game or downgrading the servers.
    • Up x 2
  11. Goretzu

    It didn't get rid of the issue, it just performed better and did a better job of masking them, two very different things.
  12. Aaren


    Under the current systems and methods of lag compensation, hit detection - and possibly or possibly not interpolation? Entirley based on the guesswork of a few other players? Yes. Again, I don't want to pretend any of my conclusions have been drawn from looking at actual source code - I'm just going on what I experience when I sit down to play - vs what I have experienced in similar games.




    I agree that this would be the responsible, respectable way to address this situation. The majority of players frustration comes (understandably) from the expectation that things will be better.

    If as you said. SOE came forwards and explained "Guys and gals, currently - if you don't have more than 40fps, and less than 50ms - you will likely be at a disadvantage to others who do." Or 60fps and 280ms. Whichever is the case. "We know this isn't ideal, and we currently have all out limited staff working on it. We think it's _______ and we are attempting ______ to try and fix it. Expect a patch in a month's time." Then I think they would have largely mitigated a lot of the frustration and angst of players who have paid (or not) to have ____ experience. And are not getting it the majority of the time.



    OOoh you're one of the lucky ones eh? :eek: BF3-4 was a similar experience to how PS2 is now - for me. Maybe I'll go redownload 4 and see if that CTE has made enough of a difference. Personally - I'm doing a second Mass Effect playthrough while I wait for PS2 to get better.

    My sentiments exactly. I'm hardly a "professional gamer" - but I've dabbled in a few tournaments and clans over the years. If there's one thing I know how to do - it's shoot virtual guns. And there is something horribly wrong when I see an enemy facing away from me, shoot them. Get 1-2-3-4-5 hitmarkers and they spin around and kill me in seemingly one shot with an SMG.
  13. Aaren

  14. Aaren

    Well. I've seen a definite improvement in my gameplay. So good work SOE. Would love to know what exactly was changed <_< was it networking related? Or something to do with how the client was registering damage?