For ET limits for very large maps.


(SCDS_reyalP) #1

It is worth noting that many of the hit detection traces in ET are hard-coded for a maximum distance of 8192 units. Except for scoped weapons (which get double that), all bullet weapons are completely limited to that range. This also includes includes calling arty (the surface you call it on must be within that range). There might also be issues with arty if you had a roof or overhang which was more than 8192 units above the ground.

For the most part, this shouldn’t be a big deal, since you will most likely have trouble actually hitting anyone at that range. Arty could be noticable…

These limits could be increased in game code, no doubt at the expense of runtime performance.

Hopefully one of the splash code monkeys will slap me if I have misinterpreted this :moo:


(Ifurita) #2

Gerbil, you listening? :wink:


(Chruker) #3

I’ve posted a question about this earlier but never got any response.

However I only thought it was the airstrikes that had this limit.


(SCDS_reyalP) #4

I knew I had seen this somewhere, but couldn’t find the thread. I assume you mean artillary, not airstrikes. If you can throw an airstrike 8192 units, uhhh… you are a stronger man than me :smiley:


(G0-Gerbil) #5

Oh bugger.
Still, better to know beforehand eh?
does a quick check
Odd though, I can understand why on the FFE - since it’s an instant line-of-sight check potentially across the whole level.
But bullets? Surely they’d be updated on a per-game-engine-cycle basis, since they have a proper velocity (IE you know where they start each update and potentially where they end, which is start + direction * speed), which would be a very short distance indeed. I suppose this is just to prevent a huge build up of bullets that need to be checked each frame.

Oh well, the good news for Minas Tirith is that you never fight over the complete extremes of the map, so shouldn’t be too much of a problem - each level you’d be attacking is well within that range. The only issue would be people who for god knows what reason head to the top to shoot normal guns at the start (granted, there’s always SOME idiot who does the stupid thing - if they run up there to be a lemming then that I can understand!).

Still, very interesting - does this ever become an issue on any of the official maps - I can think of a few times on fueldump where you might be shooting normal guns past this limit.


(SCDS_reyalP) #6

Bullets in ET (and RTCW and Q3) do not have travel time. They are hitscan weapons. The tracers you see have very little to do wth the actual hits. The sniper rifles do have a slight delay between pressing fire and and the actual shot being fired, but once it is fire, its entire path is checked instantly. You may also get a delay from lag, but again, the shot is instant once the fire command is processed.

I don’t think any of the official maps are affect. I was still able to FFE at the longest ranges I could find in fueldump. This is not surprising since its mapcoords are 14366 on a side, and it is split up by tunnels/mountains.


(G0-Gerbil) #7

bloody hell - I was always leading at distance because of the time I assumed it took for the bullet to travel. That’s a new one on me…
My next question is of course ‘why is it like that?’


(SCDS_reyalP) #8

The only time you have to lead is if antilag is off or if you are using the sniper rifles.In the first case, the amount is based on your ping, rather than distance. In the second, it is a constant.

I suspect the reason it is done is because it is simpler, more efficient, and, given the distances that normal combat happens at, and the granularity of the simulation, bullets are fairly close to instant. Non player stuff is updated 20 times sec, while players act (including firing bullets, in the current system) once every cl_maxpackets, 15-100 times per second (it is actually more complicated than that, but the range should representative).

Simulating realistic bullet speeds would have the bullets move huge jumps between frames. So you would still have to trace a line each frame to keep them from ‘warping’ through stuff. If you wanted to simulate proper motion between those chunks, you would have to do even more fudging. It is not clear that this would improve gameplay, though being a bit of a gun freak, I have toyed with the idea of trying to make a ballistically accurate mod…


(Java.Lang) #9

8192 seems like a ridiculous distance to begin with. Anyone who has developed a map with open areas that large, doesn’t have a fogclip before 8192, and can consistently run good speeds at distances like that, needs to be given a damned cookie.

But like Gerbil mentioned, besides the occaisional sniper battle, or FFE-in, I don’t think it is going to be that noticeable. I would think more about the Panzer as more of a consideration. Like what happens to a rocket travelling a straight distance like that…does it just blow up mid-air or disappear?


(G0-Gerbil) #10

Panzers must be handled differently because they are so slow.
Certainly people playing on helmsdeep enjoy firing panzers across the length and breadth of it (eg from top of tower towers axis spawn), which is further than that distance.

SCDS_reyalP - yeah I understand you’d have to trace the bullet’s path from start to finish of a timeslice, but since the code is already set up to handle a max distance to calculate (8192 here), then I can’t see it being hard to shorten this (if required of course, no idea how far a bullet would travel in a timeslice), and if it hasn’t hit anything, leave it around for the next timeslice to continue it’s journey. Just a bit suprised, that’s all. I knew the tracers you saw weren’t directly related to the fired bullets, just didn’t realise they deviated that much!


(Chruker) #11

I just did some tests:

  • The first patch of black spots is where the artillery got to which is the 8192 limit.
  • The single black spot further down the range is a panzer shot that hit the target at 16384 units

  • I was able to aim a panzer through the first row of targets and hit the second row.
  • The panzer hit the target over a distance of approx. 24000 units.

(Ifurita) #12

w00t!! 86 FPS - run that baby!