Jump to content

  • Log In with Google      Sign In   
  • Create Account


Alternate solution to Valve's lag compensation for melee combat


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
3 replies to this topic

#1 PrimeDerektive   Members   -  Reputation: 109

Like
0Likes
Like

Posted 06 November 2012 - 10:18 AM

Are there any? Does EVERY online multiplayer game that has any form of lag compensation use interpolation backtime and serverside hitbox rewinding? I've done it before, and it works great for shooters, but I feel like the infamous "paradoxes" of the technique are not adequate for purely melee focused games, because you constantly get hit by attacks that you appear to have gotten out of range of in your simulation.

Sponsor:

#2 hplus0603   Moderators   -  Reputation: 5067

Like
1Likes
Like

Posted 06 November 2012 - 11:37 AM

Does EVERY online multiplayer game that has any form of lag compensation use interpolation backtime and serverside hitbox rewinding?


No, there are many ways to skin that cat.

Last month's Game Developer described an approach used for Street Fighter type games, which is a mix of input-synchronous and predict-replay physics. In brief, it uses the wind-up animation to mask latency, and cuts short the wind-up animation on the other machine.

Other options include showing a forward-extrapolated player on the remote machine, and either hit testing against the forward extrapolated entity, or the actual entity at the time of the event.

enum Bool { True, False, FileNotFound };

#3 PrimeDerektive   Members   -  Reputation: 109

Like
0Likes
Like

Posted 06 November 2012 - 12:20 PM

Thanks. I didn't realize fighting games did that, I actually stole a simple implementation of that idea from the GDC presentation on Networking in Halo Reach from Bungie (they did it with the armor lock animation, and grenade throws I think).

My current system similarly allows me to set different lengths for the wind-up, slow-down, and follow-through segments of an attack sequence (in an attempt to telegraph attacks: for instance, a 0.2 second wind up, 0.2 seconds of super-slowed animation speed while the arm is cocked back, and then 0.4 seconds to follow-through for the rest of the animation, for a 0.8 second total attack sequence). I am actually currently distributing the latency of a newly-arrived attack event message over the wind-up and follow-through (for instance: if the timestamp is 100ms old, i'll reduce the wind-up time by 50ms and the follow-through time by 50ms). I put a cap on the compensation at 200ms, though.

I thought about using extrapolation, but in a fully 3d environment like a TPS or FPS, is that really a good idea? Player movements are notoriously unpredictable, I feel that might do more harm than good. I'm not sure how else to smoothly render remote players though, without using interpolation back time. I'm currently just lerping remote players to the latest position that comes through at a fixed rate.

I also thought about, rather than 100% relying on authoritative server hit detection, I'd let clients "claim" to hit other players, then the server could check some deltas and and say "okay, that sound reasonable", but the timing would be very late, and it seems like it might be a waste of bandwidth since I couldn't bundle it with the initial attack message (because the hit test doesn't occur until ~50% through the attack sequence).

#4 PrimeDerektive   Members   -  Reputation: 109

Like
0Likes
Like

Posted 06 November 2012 - 12:40 PM

Thinking about extrapolation some more... I currently slow down significantly (but not stop entirely) movement speed during melee attack sequences, another addition could be to send exact position and movement velocity along with every attack message, and extrapolate an amount equal to the transit time, and smoothly snap to that position.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS