Planetside 2 Hit Detection - Page 3 - PlanetSide Universe
PSU Social Facebook Twitter Twitter YouTube Steam TwitchTV
PlanetSide Universe
PSU: Houston, we have lunch break.
Home Forum Chat Wiki Social AGN PS2 Stats
Notices
Go Back   PlanetSide Universe > PlanetSide Discussions > PlanetSide 2 Discussion

Reply
 
Thread Tools Search this Thread Display Modes
Old 2011-10-06, 09:25 PM   [Ignore Me] #31
Sirisian
Colonel
 
Sirisian's Avatar
 
Re: Planetside 2 Hit Detection


Originally Posted by SKYeXile View Post
people seem to think BF3s hit detection is clinetside, but the issues people are having can be experienced in serverside hit prediction too(which is the best hit detection coding) so...*shrugs*
BF3's hit detection is client-side. Clients tell the server when they hit a player.

In a completely server-side system you don't experience the same problems at all. If you have a low latency you'll play the game perfectly. The people with higher latency will aim at old state and shoot and the server will get the player's direction and calculate the CoF and other offsets and send the bullet states to all the clients which will then create them and extrapolate to the current server state. (Not the only synchronization method. Running behind time is another option).

So a server-side only system is really nice for low latency players. A client-side system with server-side checks are good for high latency players.

Originally Posted by Bags View Post
BF3 hit detection felt fine for me if I was on a decent server.
Actually it'll only be fine if the latency between the server and you and the server and the person that is firing at you is good. You see that as "the server is good" which is only halfway right. If you join a server where you have 30 ms ping and everyone else has 150 ms pings it's going to feel like you're dying randomly before you can react.

In this way the client-side system is often viewed as giving advantage to players that lag. However, without it players with high latency would get very mad that they have problems shooting. So the developers usually feel it's a good compromise so everyone hits when they shoot at which generally makes players feel better about the game even if it skews with the fairness.

Last edited by Sirisian; 2011-10-06 at 09:30 PM.
Sirisian is offline  
Reply With Quote
Old 2011-10-06, 09:39 PM   [Ignore Me] #32
SKYeXile
Major General
 
SKYeXile's Avatar
 
Re: Planetside 2 Hit Detection


Originally Posted by Sirisian View Post
BF3's hit detection is client-side. Clients tell the server when they hit a player.

In a completely server-side system you don't experience the same problems at all. If you have a low latency you'll play the game perfectly. The people with higher latency will aim at old state and shoot and the server will get the player's direction and calculate the CoF and other offsets and send the bullet states to all the clients which will then create them and extrapolate to the current server state. (Not the only synchronization method. Running behind time is another option).
err people dying around corners is experenced with serverside hit prediction...

is it a FACT BF3's hit detection is CS or are people simply presuming because they're dying around corners?
SKYeXile is offline  
Reply With Quote
Old 2011-10-06, 09:42 PM   [Ignore Me] #33
Vash02
Major
 
Vash02's Avatar
 
Re: Planetside 2 Hit Detection


Originally Posted by Traak View Post
To catch cheaters, just check up on the top 50 on the leaderboards. You will find a target-rich environment.
I used to check the rank icons in MW2 to see if there were hackers in my match. They always hacked themselves the highest rank which would of taken months of constant play to achieve so they were really easy to spot.
Vash02 is offline  
Reply With Quote
Old 2011-10-07, 02:56 AM   [Ignore Me] #34
Sirisian
Colonel
 
Sirisian's Avatar
 
Re: Planetside 2 Hit Detection


Originally Posted by SKYeXile View Post
err people dying around corners is experenced with serverside hit prediction...
On a low latency server that's highly unlikely. I assume you're imagining a case with high latency and the extrapolation client-side shows you in the safe while the event hasn't occurred yet on the server or propagated to the clients?

This is more of a pen and paper problem. You can imagine a player being a little outside a corner. He presses strafe and sends a packet to the server with his input. Depending on the game, but usually, the client-side will begin simulating the change immediately even as the packet propagates to the server which takes round trip time (RTT) aka Latency / 2. On the server even when it gets the packet it doesn't immediately act on it. It must wait until the next server update. At that point it processes the input packets and performs and update then builds packets for each player and sends them. However during the update it has a few choices. It can assume the action just happened at this update. Or it can assume the action occurred Latency / 2 time in the past relative to when the packet was received. This gives us a time dilation of -((ServerTimeNow - PacketReceivedServerTime) + ClientLatency / 2).

There's a whole level of statistics for this, but we'll keep it simple. We'll say the server updates 20 times per seconds and sends packets at that rate which is pretty good. That gives us an update frequency every 50 ms. We'll assume on average the arrival of a packet is between updates so the wait time for a packet before it's processed is 25 ms. We'll make another assumption. The user has a horrible latency of 150 ms. (Anything below 70 ms is generally considered okay). So when a person presses a key assuming they send the packet immediately asynchronous of any game loop on the client-side (big assumption) it would take 150 / 2 + 25 ms until the packet is processed. That is 100 ms delay.

Okay before I continue I want to point out that multiplayer games generally add momentum to characters so they feel sluggish. This is not a realism/gameplay thing so much as it's a way to soften lag usually. If it takes you a while to change direction then players won't see a sudden jump when extrapolating.

Okay anyway so extrapolating. On the client-side lets assume there is no inertia so the player instantly starts moving with a velocity of 1.5 m/s. Now by the time the server has gotten the packet to even consider allowing the movement the player has moved 1.5 m/s * 100 ms = 15 cm. However, no one else knows that yet!

So the server updates which we'll assume to take < 1 ms so it's negligible to our calculations. During this update it sees the player's input packet and goes "this player requested to strafe 100 ms ago. Okay we'll allow that and assume that action started 100 ms ago and move their position 15 cm and also set their velocity to 1.5 m/s in a direction." So this information is sent out to the clients. Each client has it's own latency so when it gets the packet and sees the position update. (Again this timing can get complicated since the client usually processes packet synchronously before updating and not asynchronous, but we'll ignore that since the update could be 60 ms making the delay negligible). Okay so the clients see the position data for the player and its new velocity. However that data is old. It's their latency / 2 old. If their latency is 30 ms then it's 15 ms old information. If their latency is 150 ms also then it's 75 ms old. So when it gets the data it must extrapolate using the velocity to an estimated server position. So lets go with 150 ms and assume everyone is far from the server. That means the player is no offset 1.5 m/s * 75 ms = 11 cm. So on total the player has "jumped" 11 cm + 15 cm 26 cm since the last update. That's essentially 0.3 meters or 1 foot.

The same effect happens to projectiles when the user is firing. So the projectiles might be created

That's pretty bad. So you might be thinking "okay if everyone has 150 ms" then you'd expect a lot of corner kills as players quickly jump back since there's a possible 75 + 25 + 75 = 175 ms delay between when an enemy actually shoots and you see the update and you could already be taking damage. You'll also notice that this system rewards players with a high latency since it's essentially rewinding the simulation on the server to create bullets in the past and firing them.

So is this system flawed? Not really. There's a number of tricks. One of the biggest is assumed latency. If you know all your players are generally playing with over 50 ms latency you can play the simulation on the server in the past.

Another thing is to perform the input updates at the server-time without going back in time using the client's latency. This is nice because there's less perceived lag; however this hurts players with latency issues since they'll perform an action like "fire weapon" then it would occur in our problem 175 ms later and other players would only see a delay of their own latency / 2. This can be annoying for players that lag since it feels like their lagging. Players that don't lag wouldn't even notice if other players lag and would gain a slight advantage since their actions would be performed faster. (If that doesn't make sense. Imagine a user with 30 ms latency. It takes 15 ms to get to the server so they have a higher chance of inserting their packet and getting it processed in the newest server update while a player with 150 ms latency might see their input processed on the next update).

Someone else can do some other calculations, but that's one general approach. There are a lot of trade-offs which give either players with a high latency an advantage or players with a low latency an advantage. Ideally you want a system that is "fair". Like I said the "assumed latency" system does that by assuming a given latency for all players even if they don't have latency issues. It's generally the best system and doesn't have to use any client-side hit detection information. However it does make it slightly harder to get headshots when a player is quickly changing directions constantly unless there is inertia to smooth out the extrapolation.

You see with client-side the idea is to make everyone happy and hope that no one with a high latency exploits their advantage. That's a big assumption. One I don't feel SOE should make. I just hope they have skilled network programmers.
Originally Posted by SKYeXile View Post
is it a FACT BF3's hit detection is CS or are people simply presuming because they're dying around corners?
EA said in the forums in one of the more heated debates that it is indeed client-side.
Sirisian is offline  
Reply With Quote
Old 2011-10-07, 06:36 AM   [Ignore Me] #35
SKYeXile
Major General
 
SKYeXile's Avatar
 
Re: Planetside 2 Hit Detection


Originally Posted by Sirisian View Post
On a low latency server that's highly unlikely. I assume you're imagining a case with high latency and the extrapolation client-side shows you in the safe while the event hasn't occurred yet on the server or propagated to the clients?
I never said anything about low latency. dying around corners to somebody with about 100 ping would be unnoticeable on CSHD or SSHP but if the shooter has a higher ping hack tells are insured.

lol they made it clinetside with 64? players...*facepalm*. they need some SOE programmers.
SKYeXile is offline  
Reply With Quote
Old 2011-10-07, 10:21 AM   [Ignore Me] #36
Hamma
PSU Admin
 
Hamma's Avatar
 
Re: Planetside 2 Hit Detection


BF3's hit detection is atrocious. I constantly die and warp back 20 ft to where someone killed me. Not to mention taking cover and being killed well after I am behind it.

I am guessing (hoping) this has been fixed up in the final version we will play on the 25th.
__________________

PlanetSide Universe - Administrator / Site Owner - Contact @ PSU
Hamma Time - Evil Ranting Admin - DragonWolves - Commanding Officer
Hamma is offline  
Reply With Quote
Old 2011-10-07, 10:34 AM   [Ignore Me] #37
Hamma
PSU Admin
 
Hamma's Avatar
 
Re: Planetside 2 Hit Detection


Since I am the admin, I can derail threads. And I just cannot resist sharing this..

__________________

PlanetSide Universe - Administrator / Site Owner - Contact @ PSU
Hamma Time - Evil Ranting Admin - DragonWolves - Commanding Officer
Hamma is offline  
Reply With Quote
Old 2011-10-07, 10:51 AM   [Ignore Me] #38
Tigersmith
Major
 
Tigersmith's Avatar
 
Misc Info
Re: Planetside 2 Hit Detection


Im guessing this game will be Clientside. Hoping for the best.
__________________
Ryan "Tigersmith" Smith
Planetside - Tigersmith BR35 CR5
Twitter - @Tigersmith
Tigersmith is offline  
Reply With Quote
Old 2011-10-07, 12:04 PM   [Ignore Me] #39
Bags
Lieutenant General
 
Bags's Avatar
 
Re: Planetside 2 Hit Detection


Originally Posted by Hamma View Post
BF3's hit detection is atrocious. I constantly die and warp back 20 ft to where someone killed me. Not to mention taking cover and being killed well after I am behind it.

I am guessing (hoping) this has been fixed up in the final version we will play on the 25th.
Never had this happen to me.
__________________
Bags is offline  
Reply With Quote
Old 2011-10-07, 12:59 PM   [Ignore Me] #40
Rbstr
Contributor
Lieutenant General
 
Rbstr's Avatar
 
Misc Info
Re: Planetside 2 Hit Detection


I don't experience that either. I will occasionally get pegged right when I think I've gotten to cover, but never have I had a big warp.

Part of the issue is that you think you're behind a rock and you can still get hit...because you can shoot through rocks right now.
__________________

All opinions are not equal. Some are a very great deal more robust, sophisticated and well supported in logic and argument than others.
Rbstr is offline  
Reply With Quote
Old 2011-10-07, 03:38 PM   [Ignore Me] #41
Crator
Major General
 
Crator's Avatar
 
Re: Planetside 2 Hit Detection


Hamma, what kind of gfx card you got? I had same sorts of issues with my old card. Just got a new one (NVidia GTX 570) and it fixed all that stuff for me.
__________________
>>CRATOR<<
Don't feed the trolls, unless it's funny to do so...
Crator is offline  
Reply With Quote
Old 2011-10-07, 04:11 PM   [Ignore Me] #42
Graywolves
General
 
Graywolves's Avatar
 
Re: Planetside 2 Hit Detection


Hamma that was hilarious

Graywolves is offline  
Reply With Quote
Old 2011-10-08, 02:25 AM   [Ignore Me] #43
Traak
Colonel
 
Re: Planetside 2 Hit Detection


I would have to play the game to know all the references, but I'm guessing, you can see above your actual height, your weapon doesn't have to seem to be pointing at the enemy to kill him.

Due to coding fractures and/or cheats.

Or could you explain it to me? Never played the game, but it was funny to watch.
Traak is offline  
Reply With Quote
Old 2011-10-08, 10:59 AM   [Ignore Me] #44
Hamma
PSU Admin
 
Hamma's Avatar
 
Re: Planetside 2 Hit Detection


Originally Posted by Crator View Post
Hamma, what kind of gfx card you got? I had same sorts of issues with my old card. Just got a new one (NVidia GTX 570) and it fixed all that stuff for me.
GTX580

These things are related to game bugs more than anything
__________________

PlanetSide Universe - Administrator / Site Owner - Contact @ PSU
Hamma Time - Evil Ranting Admin - DragonWolves - Commanding Officer
Hamma is offline  
Reply With Quote
Old 2011-10-08, 10:40 PM   [Ignore Me] #45
SKYeXile
Major General
 
SKYeXile's Avatar
 
Re: Planetside 2 Hit Detection


Originally Posted by Tigersmith View Post
Im guessing this game will be Clientside. Hoping for the best.
We can only hope.
SKYeXile is offline  
Reply With Quote
Reply
  PlanetSide Universe > PlanetSide Discussions > PlanetSide 2 Discussion

Bookmarks

Discord


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -5. The time now is 04:51 PM.

Content © 2002-2013, PlanetSide-Universe.com, All rights reserved.
PlanetSide and the SOE logo are registered trademarks of Sony Online Entertainment Inc. © 2004 Sony Online Entertainment Inc. All rights reserved.
All other trademarks or tradenames are properties of their respective owners.
Powered by vBulletin
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.