Hello,
I'd like to open a discussion to the public as I've seen MANY people commenting on the topic of Bullet Registry and other issues.
People keep asking for higher ballspeed (even though it wont change much since it'll create a bigger gap between bullets - what they are actually seeking is changes to bullet impact/registry, and fire rate).
Anyways - we are working on a video to show times where players are either having issues with either:
a) Bullets bouncing off players (issue here is the inconsistency of it - medium range bounce off, but then zpar11 fluke 1 bullet across map can explode).
b) Players literally walking through lines (not jumping with speed, walking slowly) or sitting in a line for 3-5 seconds with name lit on cross hair.
UPDATE WITH CLIPS (thanks to various community members submitting - PLS DM me on discord with any)
1) Map: Duck_Fix - Distance: Player shooting is mid therefore within medium proximity. Nobody is moving at a fast pace. https://gyazo.com/b8b04affc5b446f8aae131988985d622
2) Map: Airtime - Further target killed immediately. Slow moving target closer -- name on crosshair, no death. Death when moves faster: https://gyazo.com/8a6c88d45ed5bb1cd3e72f97af8774d8
3) Map: Airtime - Closer proximity, straight line, name lit on crosshair - player does not die moving slowly: (both players 30 ping) https://gyazo.com/a168088da8e1ceefe8f023e4d50e7b4f
4) https://gfycat.com/horribledisfiguredalpineroadguidetigerbeetle -- Map XBMAP1 - Able to kill someone at furthers point away (high on ledge) - but ball bounces off user from closer range.
So anyways here are the primary issues I've heard (and comparing demos from 7-10 years ago of multiple players of differing skills - where it appears more consistent):
1) People requesting more ballspeed inc (THIS IS NOT THE ANSWER TO ANY ISSUES - it's at a good number with 2710 on NA to hit all the lines the maps were intended to allow)
2) Bullet Registry is a mess. Sometimes you 1 ball someone going 200mph, and then someone walking in slow motion can walk through a line for 10 seconds straight.
3) Fire-Rate increase is what people are mistaking with ballspeed increase - this will improve running through lines but this also is a very difficult thing to change without also ruining the game and would need to be tested thoroughly.
4) Grenades are a MESS. At this point they shouldn't even have the explosion visuals because it is not accurately representing what it hits. I've seen people die through walls, and others sit in the middle of a nade without dying.
5) Methods of improving latency gameplay. -- Given DP requires multiple regions combined to be active, a priority needs to be improving gameplay with ping (I believe I saw Jitspoe mention it before in another thread).
Most of the people I have tried to get back, will play a few matches and leave due to the clear bullet-registry issues. It is VERY hard to convince them to stay - and these are people who are playing for nostalgia and not for "competitiveness" who can not even have fun anymore from this. I agree that DP CAN NOT EVER become some hitscan lazer gun game, it'll ruin the fun. But, the current hit register is far too RNG. I have a demo yesterday of someone with a steel barrel shooting someone at close-medium distance, and watching bullets bounce off....
Adapting to change is part of any game - but when it turns into such an inconsistent atmosphere you lose competitive integrity.
Note: These changes are primarily for the matching/competitive scene. Plenty of other changes will be discussed in other threads to discuss new-play retention (though, consistency in aim will also benefit any new player - as RNG is not good for any game).
NOTE: PLEASE DO NOT COME IN SAYING "YOU GUYS JUST CANT AIM" ETC.. If you want the game to grow, these are issues that need to be looked at for retaining old players and growing competitive community.
Let's see if I can clear everything up here.
a) Bullet bouncing off of player logic has not changed since 1.76, over 17 years ago in 2003. There are 2 factors when determining when balls bounce:
1) The flat out speed of the ball is < 38% of the ball_speed value.
2) The speed relative to the angle of the surface is < 10% of the ball_speed value (this allows for ricochets at shallow angles).
I misread the code earlier in our Discord discussion, and only #2 doesn't apply to players. Apologies. The only factor for breaking on players is the speed being >= 38% of the ball_speed. In short, if you see a ball break on the world, it should break on a player in the same location when fired at the same velocity. Balls may, however, bounce off the world even if they break on a player at that range, due to the angle (ex: could skip off the floor). The 38% and 10% values are hard coded and can't be adjusted in the server settings, but they also haven't changed.
b) Player movement speed is 300u/s on the ground. Time between shots on the carbine is 0.2s. This means a player can move 60 units between each shot. That's almost twice the player hitbox width. It's not unreasonable for somebody to walk through lines at that rate. Odds are more likely than not that you'll get hit, but there's still maybe a 30-40% chance you can make it moving perpendicular to the line.
Engagement distances in the videos you provided are 500-1000 units. If the ball is travelling at 2660 u/s, that means the ball will take (some math: d=v*t, 500=2660*t, t=500/2660 =) .19 to .38 s. Again, enough to move the hitbox out of the range of the shot if aimed directly, even if the player is moving at ground speed.
Re: Clips:
1) Can't even see the shooter in this one.
2) 1st shot that hit was led sufficiently. Missing shots were aimed behind the player or aimed directly at the player while the player was moving. Shot that hit was aimed at the player while the shooter was also moving in the same direction. Player velocity is added to the shots, so 2 players moving the same direction aiming at each other will actually hit instead of trailing behind.
3) If you step through frame by frame, you can see the shot is already fired by the time the name tag shows up, and it goes to the left of the player. I think you can see the splat from it on the left (see attachment). The next shot is clearly aimed to the right. This is certainly the most questionable clip you've shared, though, as it looks like the shots are firing a bit to the left of the player. I'm guessing it's a demo where the player is using left hand? Looks like a video of a video of a demo, and with all the compression and other players firing in the same area, it's difficult to tell exactly what's happening.
4) Pretty sure the blue player was moving backward, which is going to reduce the velocity and make shots right at the effective range of the weapons bounce.
Re: Primary issues.
1) Increasing the ball speed will simply increase the range. The problem with comparing old demos to current demos is that, of course the balls are going to break at a further distance with a faster speed. They're going faster and travel further before losing momentum. You'd need to find demos of combat at longer ranges where the effective range used to be to see the behavior complained about now.
2) I feel you're exaggerating a bit here. You can't expect to have a line always hit when fired in the general direction of people, and I don't think you'd want that, either. I think it's more of a lack of understanding of how the mechanics work. Let me know if you have any proof of a bug, though. I'd certainly want to fix that.
3) To what end do we stop? Should it be impossible for anybody to make it through a line? Only a 10% chance? 5%? 1%? If it's 1% and somebody does make it through, people will probably be upset in that case, too.
4) Grenades should never go through walls. There are certainly cases where the paint can go OVER walls, though. The client doesn't have enough info to accurately display what the grenade does, and it would be too much data to replicate every projectile from it. I'd have to implement a new effect or something that would require a new client and server and probably break the q2 protocol. Something that could be looked into if it's considered a priority. With no effect, you wouldn't really have any feedback that a grenade was going off, so I don't think that's a good idea. I did add a possible bug fix for a super rare bug of grenades not killing players when directly hit, though. Never was able to reproduce it, so I don't know if it's actually fixed. Will be in the next release.
5) Latency compensation for projectiles would certainly help balance games across different regions. Should also help new players as they won't have to lead targets that are point blank.
Just to clarify, there is no RNG in the hit registration. It either passes the velocity check or fails. There are just a number of systems that go into determining that velocity (weapon, barrel, player movement, etc). There is some RNG in the ball flight, though, which can result in some variation in the range. I think the player movement has a much bigger impact than that, though.
Side note: You say "RNG is not good for any game". I disagree. If you look at the most popular FPS games recently (battle royales), they're almost entirely RNG driven. Even the weapons you get are random. Gives bad players a chance to get lucky and win occasionally, where they'd have an effectively 0% chance in a no-RNG purely skill-based scenario. Also gives players an excuse to blame something other than themselves when they fail. Still, the hit registration in Paintball2 is not RNG.
Ok, now that all that's out of the way, let me explain why I made the changes to bring in the range. Originally, the ball speed was something extremely slow. I don't remember the exact value, but it was less than 1300, because I have a check in the code to use a lower gravity value for ball_speed < 1300 in case people want to use the OLD OLD speed and have it behave the same. This, of course, had a lot of restrictions, like not being able to shoot through/under a lot of cover, and the balls having to arc so high they'd hit the sky/ceiling a lot. Later, I realized that the ball speed was WAY slower than real paintballs. I cranked up the speed and made other tweaks to make things more closely match real paintball behavior.
Problem is, I cranked it up too much. It just took me a while to realize this. Of course it's subjective, but the effective range became way too large in my opinion. Combat became way too distant and spread out. Lining became too effective. You could spray a base exit from like 100m/300ft away. It just wasn't fun when the game became less about the combat dance and more about the first person to get into position aims at an exit point and gets a bunch of kills.
As maps evolved to adapt, they made the game lose its close combat charm. Again, subjective, but the things I really liked about Paintball2 were the projectile weapons, the fast paced movement, and the close combat. I'm not a fan of pixel hunting. Take another look at the picture attached below. This was what you considered "close". The character is about 3 crosshairs tall with the dot crosshair. If that's close, what's long range? How big should a character reasonably be on the screen and still be within range of being hit? I didn't think it was reasonable to have targets so far away that they can be entirely obscured by the dot crosshair and still be in range, so I dialed the range back.
Again, the hit registration/bouncing logic has not changed in over 17 years. The range was just brought in. I'm guessing this wasn't a complaint before because the range was so far you couldn't even see it. You know how you can jump up a hill and throw grenades much further (ex: bombsaway)? The same applies to paint. If you're moving forward and/or jumping, your shots are going to have more range than somebody standing still. It's not RNG, it's a subtle mechanic of the game. You can use this to your advantage. Is the frustration that this exists, or is it just an awareness issue?
It's still currently possible to hit players that are completely obscured by the crosshair even after the reduction in range (though less reliable). I'd honestly like to reduce it even more, but I haven't touched it in many years as it's almost impossible to dial things back without upsetting people.
So now I have 2 questions:
1) If you play for a bit knowing how the behavior works, is the ball bouncing still a frustration or is it an interesting mechanic?
2) What do you feel is a reasonable size of the character on screen to still be in effective range? Like post a screenshot. I'm not talking about "this is an effective line on a map made 15 years ago, so it should stay effective", I'm talking about good, healthy engagement ranges for the sake of visibility, gameplay, and observers. We can adjust/make new maps.