Dealing with campers

Discuss Nexuiz gameplay here.

Moderators: Nexuiz Moderators, Moderators

Postby divVerent » Mon Jan 08, 2007 10:17 pm

morfar wrote:Thats the aim bug I always talk about. Since the beam is coming from the gun. So the greater the distance the more likely it is for the beam to to hit a wall or something. And the funny part is that Nexuiz is the only game that I know of that shoots from the gun. All other games shoots from the eye, but the effects comes from the gun. I have been nagging the developers to fix this since 1.2.1 or something :? I don't know why it's not fixed. Sure sometimes it will looks like the beam goes through a wall, but who cares?


This is no bug and won't ever get "fixed". Nexuiz once was that way, but then people complained about Nex shots passing through walls. That was then the reason to change the behaviour so the VISIBLE shot is actually the real thing. I doubt it will ever get changed back.

What ai was describing, however, has nothing to do with shoot out of the gun vs out of the player. It's antilag's doing. On greatwall, if you are in the bunker, a direct hit still hits you, BUT: an antilagged shot will go to your center. There, it will miss, because the center of the body is hidden behind the walls of the bunker. So inside the bunker, only non-antilagged shots "succeed". Shots that hit at the time of clicking but miss according to the view of the server gets changed so that they hit the enemy's center, but that does not work on greatwall. Try setting g_antilag 0 and see: it won't happen again, but then there's no antilag either.

The only way to REALLY fix that would be introducing a MUCH more complicated antilag system. And that's anything but a small change. Maybe for Nexuiz 3.0 when we will rewrite major parts anyway.
1. Open Notepad
2. Paste: ÿþMSMSMS
3. Save
4. Open the file in Notepad again

You can vary the number of "MS", so you can clearly see it's MS which is causing it.
divVerent
Site admin and keyboard killer
 
Posts: 3809
Joined: Thu Mar 02, 2006 4:46 pm
Location: BRLOGENSHFEGLE

Postby morfar » Tue Jan 09, 2007 12:04 am

This is no bug and won't ever get "fixed". Nexuiz once was that way, but then people complained about Nex shots passing through walls.
Which Nexuiz version? I don't recall Nexuiz have proper aiming ever.
There, it will miss, because the center of the body is hidden behind the walls of the bunker.

omg now I hate antilag, thanks for clearing that out. Because I can notice sometimes that when I shoot a player that the beam gets redirected to the center of the player. I do not like that.
morfar
Site Admin
 
Posts: 938
Joined: Tue Feb 28, 2006 6:08 pm
Location: The Island

Postby esteel » Tue Jan 09, 2007 12:18 am

morfar wrote:omg now I hate antilag, thanks for clearing that out. Because I can notice sometimes that when I shoot a player that the beam gets redirected to the center of the player. I do not like that.

No you got it wrong.. i guess..
When you would have hit without antilag (meaning you aimed at were the person is in THE SERVERS WORLD) you will hit him no matter if the antilag feature is on or off because then your shot goes to were you have aimed.
However if antilag is on and you shot at the wrong spot (IN THE SERVERS WORLD), but ARE AIMING at the player then antilag kicks in and redirects your hit at the players center. So this is a very special situation were you would have missed without antilag anyway so there is no reason to complain about missing him with antilag. If he would be in a more free environment you would have hit. That might be confusing but simple fact is you have missed and are granted a little correction because you were at least aiming at the player. But as you have missed your shot HAS to be redirected.. well bad luck there was an obstacle...
The only way to change this is to change the antilag feature to keep timestamped copies of the 'servers world' and use time stamps send by your client to determine if you hit or not. This is done in other games but it also has its share of problems. Also you will have to try to convince LH to implement this.
esteel
Site admin and forum addon
 
Posts: 3924
Joined: Wed Mar 01, 2006 8:27 am

Postby tChr » Tue Jan 09, 2007 12:43 am

the funniest is when you shoot someone exactly as they go throh a teleporter and the antliag compensates by shootings traight left or something to the new target location. ofcource hitting a wall or something :)
the spice extend life!
the spice expand conciousness!
the spice is vital to space travel!
sooooo.. tell me what you want, waht you really-really want
I will proceed directly to the intravenous injection of hard drugs, please.
tChr
Forum addon
 
Posts: 1501
Joined: Tue Feb 28, 2006 9:11 pm
Location: Trondheim, Norway

Postby morfar » Tue Jan 09, 2007 12:53 am

esteel wrote:
morfar wrote:omg now I hate antilag, thanks for clearing that out. Because I can notice sometimes that when I shoot a player that the beam gets redirected to the center of the player. I do not like that.

No you got it wrong.. i guess..
When you would have hit without antilag (meaning you aimed at were the person is in THE SERVERS WORLD) you will hit him no matter if the antilag feature is on or off because then your shot goes to were you have aimed.
However if antilag is on and you shot at the wrong spot (IN THE SERVERS WORLD), but ARE AIMING at the player then antilag kicks in and redirects your hit at the players center. So this is a very special situation were you would have missed without antilag anyway so there is no reason to complain about missing him with antilag. If he would be in a more free environment you would have hit. That might be confusing but simple fact is you have missed and are granted a little correction because you were at least aiming at the player. But as you have missed your shot HAS to be redirected.. well bad luck there was an obstacle...
The only way to change this is to change the antilag feature to keep timestamped copies of the 'servers world' and use time stamps send by your client to determine if you hit or not. This is done in other games but it also has its share of problems. Also you will have to try to convince LH to implement this.
Ahh, thanks for that explanation. I understand now.

Now this thread has gone off topic :P
morfar
Site Admin
 
Posts: 938
Joined: Tue Feb 28, 2006 6:08 pm
Location: The Island

Postby divVerent » Tue Jan 09, 2007 7:09 am

Well... there HAS been a bug that antilagged too many shots, but even that bug (it was in 2.1 and fixed in 2.2.1, or maybe it was in 2.0 and fixed in 2.1) would not have caused misses as usual on greatwall.

Yes, g_antilag looks stupid and should get fixed, but that would need quite a large code change (especially given how bad the QC compiler is with respect to arrays). One important part would be redirecting the shot to the right spot on the player - but I have no idea how to do that.

The game code receives cursor_trace_ent (entity ID being hit), cursor_trace_endpos (the exact hit location) and cursor_trace_start (location of the player at the time of the hit). These values do not suffice to find out WHICH part of the player has been hit, so the shot can't be redirected to the right place. If we at least could get the time of the hit (MAYBE, but I am not sure, player.ping / cvar("sys_ticrate") returns the number of frames the hit is "old"), and if we find a way for QC to remember the previous locations of the player, we could get an actual hit offset (that is, we would then move the shot endpoint by the difference of previous and current position of the player). Even then it could still happen that an antilagged shot misses because of a door or rotating brush getting in the way.

Now, how to really fix this?

  • Damage cursor_trace_ent anyway, no matter how far away he is - even if that means the Nex beam goes through a wall. Will make even more people complain about "cheaters" who shoot through walls. Also, it will make some really evil cheats possible - imagine a client always reporting cursor_trace_ent == SOME_PLAYER.
  • Don't fix. Then an antilagged shot will use the right offset to the player. In theory this should mean the antilagged shot goes through the hitbox of the player, but even then, there can be an obstacle in between that causes the shot to miss.
  • If an antilagged shot misses, adjust it so it actually hits the enemy. Sounds nice, but impossible to do in QC and extremely hard to do in the engine. It could for example use portal culling to find out which shot angles would have hit the enemy, and choosing one that's close to the actual shot.
  • |Pull the enemy back to the original location, and hurt him there. Not really an option...


Currently we are at "Don't fix", but once we wrote a new antilag system (that possibly does not make any use of cursor_trace_ent any more and just uses the ping of the player to find the previous location of the enemy), we will perhaps go with the "adjust" solution, but only approximately - for example, we could try four hit locations: the one originally being hit, that one rotated by 120 degrees, by 240 degrees around the z axis, and the origin of the player. If the obstacle is horizontal like on greatwall, this is very likely to succeed. But a player who is originally hit by the shot but then disappears behind a corner won't be hurt when using that method, because any (and really ANY, no matter how it's done) antilagged shot would try to pass through the wall. And I do not want shots to pass through a wall...

BTW, antilag has another bug by concept - first the location the server knows is used to test the shot, and if it misses, the client's collision test is accepted. So that means that a running player has a larger hitbox for "ping challenged" players. Technically this would be a bug, but given that Nexuiz degrades quite much at a ping of 150ms, it isn't THAT much of a problem... but it does explain why some players CAN use the Nex with a high ping and still hit stuff. I doubt they get an advantage over a ping 0 player that way, but it certainly does compensate their laggy motion and weapon hits a bit.

The new "thought of" method of remembering the original positions of the players could also fix that issue, but I am not sure if we should fix it since it does level the playfield a bit - we certainly will fix it if we catch anyone abusing this as a cheat, even if it means penalizing people who have a high ping.
1. Open Notepad
2. Paste: ÿþMSMSMS
3. Save
4. Open the file in Notepad again

You can vary the number of "MS", so you can clearly see it's MS which is causing it.
divVerent
Site admin and keyboard killer
 
Posts: 3809
Joined: Thu Mar 02, 2006 4:46 pm
Location: BRLOGENSHFEGLE

Previous

Return to Nexuiz - Gameplay

Who is online

Users browsing this forum: No registered users and 1 guest

cron