Autohunt laggy players

Make suggestions for improving one of the best games on the net!
Post Reply
etigah
Private First Class
Private First Class
Posts: 98
Joined: Tue May 22, 2012 4:08 pm

Autohunt laggy players

Post by etigah »

They are loved by everyone, so why not keep them on watch? I made a few modifications (ugly hacks) to the code so that players with lag higher than a specified value are radar hunted, albeit with different color from normal hunt.

Now, I don't know if this would be of interest to anyone else, is it okay that I keep using my client with this mod? I can upload the code as soon as I find how that patch generating process works, but I'm sure it is not done clean and pretty , hopefully someone will leave nice comments on the quality(or lack there of:)

UPDATE: Patch submitted to project tracker https://sourceforge.net/p/bzflag/patches/569/#8aed
Last edited by etigah on Mon May 13, 2013 1:11 pm, edited 1 time in total.
User avatar
JeffM
Staff Sergeant
Staff Sergeant
Posts: 5196
Joined: Fri Dec 13, 2002 4:11 am

Re: Autohunt laggy players

Post by JeffM »

This would not be an accepted patch, it's just mean.
ImageJeffM
User avatar
slime
Private First Class
Private First Class
Posts: 188
Joined: Fri Dec 30, 2005 3:08 am
Location: Omaha , Nebraska

Re: Autohunt laggy players

Post by slime »

JeffM wrote:This would not be an accepted patch, it's just mean.
How is this mean at all?
User avatar
JeffM
Staff Sergeant
Staff Sergeant
Posts: 5196
Joined: Fri Dec 13, 2002 4:11 am

Re: Autohunt laggy players

Post by JeffM »

We want the game to be fun for everyone, not just people who happen to have low latency. The fact that bzflag performs poorly in high lag situations should not be a game-play feature just so you can feel 'better' then someone else.
ImageJeffM
User avatar
macsforme
General
General
Posts: 2069
Joined: Wed Mar 01, 2006 5:43 am

Re: Autohunt laggy players

Post by macsforme »

I think the point is that players with high lag require greater timing adjustment for shots, so an automatic indication for such players would make them easier to track.
etigah
Private First Class
Private First Class
Posts: 98
Joined: Tue May 22, 2012 4:08 pm

Re: Autohunt laggy players

Post by etigah »

Like Constitution said. We can already query lagstats, it is basically the same thing but goes one more step and actually makes the info useful. Surely no offense intended.
User avatar
slime
Private First Class
Private First Class
Posts: 188
Joined: Fri Dec 30, 2005 3:08 am
Location: Omaha , Nebraska

Re: Autohunt laggy players

Post by slime »

JeffM wrote:The fact that bzflag performs poorly in high lag situations should not be a game-play feature just so you can feel 'better' then someone else.
Because bzflag does perform poorly in high lag situations, whenever I join a server that I intend to play on for longer than a few minutes, the first thing I do is /lagstats and hunt all the people with 250+ lag. I don't feel 'better' than them, it is only to indicate to me that when I am fighting against these people I must shoot significantly earlier if I hope to kill them.
etigah
Private First Class
Private First Class
Posts: 98
Joined: Tue May 22, 2012 4:08 pm

Re: Autohunt laggy players

Post by etigah »

The patch is rejected (no surprise there). Is there a rule against using such mods on public servers?
User avatar
JeffM
Staff Sergeant
Staff Sergeant
Posts: 5196
Joined: Fri Dec 13, 2002 4:11 am

Re: Autohunt laggy players

Post by JeffM »

Code changes to make lag easier to deal with should make the game play better for everyone, not flag people who need to be treated special. The very fact that you have to compensate for your target's latency is a huge failure of bzflag in my mind and the solution is not to make that behavior standard or endorsed. We should be able to fix the game so that the latency of the target doesn't matter. Games that were properly designed to played on the internet don't have this problem so it boggles my mind that bzflag players continue to think that it's normal.

As for public serers there are no rules that we set. Each owner decides what they want run.
ImageJeffM
User avatar
slime
Private First Class
Private First Class
Posts: 188
Joined: Fri Dec 30, 2005 3:08 am
Location: Omaha , Nebraska

Re: Autohunt laggy players

Post by slime »

I don't believe people think the issue of latency in bzflag in comparison to other online games is normal, but rather the fact that it's been like this for, what, about 20 years now and hasn't been fixed. So in a sense it's normal in bzflag because at this point it's just a part of the game, whether it should be or not. I'm aware development on the game is slowed, but is this something being actively (or inactively) worked on?
User avatar
JeffM
Staff Sergeant
Staff Sergeant
Posts: 5196
Joined: Fri Dec 13, 2002 4:11 am

Re: Autohunt laggy players

Post by JeffM »

Not really, mostly people just do small hackish patches like this that just make us get worse.
ImageJeffM
etigah
Private First Class
Private First Class
Posts: 98
Joined: Tue May 22, 2012 4:08 pm

Re: Autohunt laggy players

Post by etigah »

I've read up a bit on the subject. Apparently there really is no solution to the lag problem, but only good enough approximations that lead to making the game most playable. To me, letting the client be authoritative is the best thing to do, so bzflag got this right. All that can be done is either letting other players know that I have high lag in a helpful way (which the topic patch does), or to do the same with the addition of indicating where I most probably am. I think it wouldn't be hard to implement something like this, but is there a chance it will be supported?
User avatar
blast
General
General
Posts: 4931
Joined: Fri Mar 21, 2003 3:49 pm
Location: playing.cxx
Contact:

Re: Autohunt laggy players

Post by blast »

etigah wrote:To me, letting the client be authoritative is the best thing to do, so bzflag got this right.
That's actually the worst way to handle multiplayer networking for a computer game.

http://gafferongames.com/networking-for ... etworking/
"In addition to knowing the secrets of the Universe, I can assure you that I am also quite potty trained." -Koenma (Yu Yu Hakusho)

Image
etigah
Private First Class
Private First Class
Posts: 98
Joined: Tue May 22, 2012 4:08 pm

Re: Autohunt laggy players

Post by etigah »

blast wrote:
etigah wrote:To me, letting the client be authoritative is the best thing to do, so bzflag got this right.
That's actually the worst way to handle multiplayer networking for a computer game.

http://gafferongames.com/networking-for ... etworking/
The quoted article is one I have already come across, the only criticism it has about this is related to cheating. I think this doesn't make it the worst method if we are considering game play quality. The advantage to relying on client to report authoritatively is that I can know for sure that if I dodge the bullets I see on my screen I won't be hit, I can take the reverse to be untrue but losing after successfully dodging would be the most frustrating.
User avatar
JeffM
Staff Sergeant
Staff Sergeant
Posts: 5196
Joined: Fri Dec 13, 2002 4:11 am

Re: Autohunt laggy players

Post by JeffM »

yes but you can't be sure every client is in sync so when it looks like I hit you on my screen, on your screen I missed. This does not lead to fun gameplay and makes people think others are cheating when it's just lag (sound like any tank games you know?)

There are no internet games that use client logic. The standard method designed for quake and half-life is to do all the logic on the server and have the client do perdition only to mask the lag. This method works well for the vast majority of game types and will be perfectly fine for bzflag.

This problem is not a unique one, there is a lot of research into solutions, we just need to implement one. The work done by valve on half-life is the gold standard of networking. Trusting a client just leads to problems.
ImageJeffM
etigah
Private First Class
Private First Class
Posts: 98
Joined: Tue May 22, 2012 4:08 pm

Re: Autohunt laggy players

Post by etigah »

So I made one more change. rather than blinking the tank as if hunted, just draw a circle around each tank that would represent the area the tank possibly is by adding local and remote lags and giving the circle a radius of the max distance the tank can move in this period. I find this to be very useful and at the same time it does not discriminate against anyone, since all tanks will have a circle, some larger than others :)
User avatar
blast
General
General
Posts: 4931
Joined: Fri Mar 21, 2003 3:49 pm
Location: playing.cxx
Contact:

Re: Autohunt laggy players

Post by blast »

etigah wrote:So I made one more change. rather than blinking the tank as if hunted, just draw a circle around each tank that would represent the area the tank possibly is by adding local and remote lags and giving the circle a radius of the max distance the tank can move in this period. I find this to be very useful and at the same time it does not discriminate against anyone, since all tanks will have a circle, some larger than others :)
You're possibly crossing the line into cheat client territory.
"In addition to knowing the secrets of the Universe, I can assure you that I am also quite potty trained." -Koenma (Yu Yu Hakusho)

Image
User avatar
FiringSquad
Sergeant
Sergeant
Posts: 849
Joined: Thu Jan 26, 2006 5:53 pm
Location: Ireland

Re: Autohunt laggy players

Post by FiringSquad »

blast wrote:
etigah wrote:So I made one more change. rather than blinking the tank as if hunted, just draw a circle around each tank that would represent the area the tank possibly is by adding local and remote lags and giving the circle a radius of the max distance the tank can move in this period. I find this to be very useful and at the same time it does not discriminate against anyone, since all tanks will have a circle, some larger than others :)
You're possibly crossing the line into cheat client territory.
It's only a cheat if it's not adopted in the main trunk. It certainly confers an advantage to any player using this feature so I would not allow it in League Matches.
I think it's a good feature. Though I would prefer to see it on the radar rather than an indicator on the tank. Perhaps something like clock-hands, length=lag angle=jit.
Also I don't see it as targeting high-lag players or singling them out since it's the combined lag that's relevant, so the information would be useful to everyone, including high-lag players.
If somebody with high lag joins a server where all others have little lag, then they will see all players with rings while others will only see one tank that way.
If there are 2 players with medium lag, then they will see large rings around each-other.

Finally, dealing with lag is all part of the skill-set of BZFlag, so I really don't see it as a design fault. However, in order to deal with lag you need the information to hand and so that's why I consider this a good addition to the game. Seeing multiple shots go through a tank just causes frustration and checking lagstats afterwards does nothing to help the situation.

I say give players the information they need to play effectively and let them enjoy the game.
I would ask you please to reconsider accepting such a patch, or at least define constraints where such a patch might be accepted.
For example, I would prefer that the server sends the information as needed rather than have multiple clients making continual lagstat calls.
User avatar
macsforme
General
General
Posts: 2069
Joined: Wed Mar 01, 2006 5:43 am

Re: Autohunt laggy players

Post by macsforme »

Such a patch would offer an interesting perspective on player movements and be a useful debugging tool... but no, this type of patch would not be accepted into trunk. This does not mean it isn't useful, but trunk is where we would apply a patch that makes foundational improvements to the core issue. In the meanwhile, feel free to apply, test, and discuss the patch.
User avatar
Agent West
Private First Class
Private First Class
Posts: 318
Joined: Thu Jan 31, 2008 1:32 pm

Re: Autohunt laggy players

Post by Agent West »

etigah wrote:So I made one more change. rather than blinking the tank as if hunted, just draw a circle around each tank that would represent the area the tank possibly is by adding local and remote lags and giving the circle a radius of the max distance the tank can move in this period. I find this to be very useful and at the same time it does not discriminate against anyone, since all tanks will have a circle, some larger than others :)
Instead of drawing a circle to mark where a tank can be, why not use that same lag information along with tank's speed and direction to draw the tank itself (and place it's hitbox) where it "needs to be" instead of where it "is"?
Rest in peace, AliceD (AKA Happy Alice)! miss ya!
mr64bit
Private First Class
Private First Class
Posts: 89
Joined: Fri May 06, 2011 4:58 pm
Location: Hang on, let me get a map...
Contact:

Re: Autohunt laggy players

Post by mr64bit »

Because neither the server nor your client knows where the tank will be X ms from now (X being the laggy tank's lag in ms). Let's exaggerate for the sake of clarity here.
Say a player has 2000 ms lag (2 seconds). If the server gets information that this tank is moving forward, it COULD send information to the other clients saying the laggy tank is where it would be in 2000 ms, if it kept at a constant velocity. But what if the tank decides to turn to the left? The server won't know that until 2000 ms later, meaning that the server's view of the tank will jerk from where it would have been if it had kept going straight, to where it will be if it keeps turning.
You can see this effect on tanks with a lot of packet loss.
---mr64bit
An SQUERRILz
Private First Class
Private First Class
Posts: 91
Joined: Wed Apr 25, 2007 2:08 am

Re: Autohunt laggy players

Post by An SQUERRILz »

JeffM wrote:yes but you can't be sure every client is in sync so when it looks like I hit you on my screen, on your screen I missed. This does not lead to fun gameplay and makes people think others are cheating when it's just lag (sound like any tank games you know?)

There are no internet games that use client logic. The standard method designed for quake and half-life is to do all the logic on the server and have the client do perdition only to mask the lag. This method works well for the vast majority of game types and will be perfectly fine for bzflag.
Bzflag = client-side self-collision detection. You can't die unless you get hit on your own screen.
I only play one other FPS game, and it happens to use client-side enemy-collision detection. If you shoot someone on your screen, they die. (The server does verify whether it was possible for you to have shot them.) The downside is a laggy player can survive that fraction of a second longer and get a counter-shot (greater tendency for mutual annihilation).

While the article you linked describes player movement being verified by the server and approximated by the client, there wasn't anything on how they handle shots and dying. As I said I haven't played enough online FPSes but I imagine it would be very frustrating if you headshot with a sniper rifle but it missed because of lag. JeffM, are you suggesting that in FPS games this is possible when there is a discrepancy in position? (Doubtful because your frame jitter with 50 FPS plus network jitter is going to be more than the width of the target's head.)

Even if that was the case, in my opinion bzflag could never get away with a model where you can often die without being hit on your screen, because
-Unlike other games the bullets are slow and you can see it without any doubt (as opposed to a sniper rifle shot).
-Both the "rewind/replay" model and server-side collision detection make the player's experience less coherent and less predictable. Currently we adapt to lag by saying "shoot earlier" or "they can move that far in that distance". In server-side collision detection a lagger has to dodge the future in the present.
-The clientside enemy-collision-detection would have everyone dying without explanation. Currently a lagger has to time their shots for their target, which is usually ahead of them so you can identify them and remember their lag. In this model the laggy compensation is in terms of every bullet, which is hard to track as a player.
Post Reply