per-pixel hit system petition

operative x

Newbie
Joined
Sep 22, 2003
Messages
1,238
Reaction score
0
"By signing this petition we will show VALVe that we are sick and tired of these horrible hitboxes that lag 3ft away from the player. We are tired of bullets hitting 2ft away from our heads and the other player scoring a head shot. We need to sign this petition to show VALVe that it is time for them to implement a per-pixel hit system, meaning you can have much more precise and realistic ballistic physics. So if you shoot someone in the ear, the game registers that you shot the guy's ear instead of his "Head". "

http://www.petitiononline.com/prpixlpt/petition.html
 
i wnt sign it cuz i am very happy with the outcome of this game. besides the hitboxes are optimized for online play, which wont be like HL2 becuase HL2 is single playa. so... yes. play counter strike, or if u dont like it, dnt play :D
 
hit detection is built into the engine.. you see the flaw in your petition?
 
Is it not "per-polygon"? Because per-pixel just doesn't make any sense, as that would imply that the server must keep a running resolution of all of the player models that carries on to the client side. Either way, it would create too much of burden on both sides. They'd have to re-do the entire ballistics engine that's in-place and require too much work and network synchronization...
 
i knew i had that per-pixel thingy messed up i meant the per-poly, or what ever it is. I want the same hit detection system doom3 has.
 
pk1209 said:
hit detection is built into the engine.. you see the flaw in your petition?
It is, but they don't have to use it.
Petitions DON'T work!
Well, they worked once a long time ago (petitioning Blockbusters to go Widescreen DVD's) but yeah, you're right.

In all, don't fret 'bout it. Go play another game.
 
you want 4 person multiplayer like doom3? per pixel is too system intensive.
 
Leave it how it is, if u dont like it u can go strait to your mommy n cry!
 
The only reason why the requirmnets are so in doom3 is because of all the dynamics shadows and bump maping in multiplayer. Cs uses pre rendered shadows and very little bump maping so it wouldn't be a problem.
 
operative x said:
The only reason why the requirmnets are so in doom3 is because of all the dynamics shadows and bump maping in multiplayer. Cs uses pre rendered shadows and very little bump maping so it wouldn't be a problem.
No, he's right. The jump from hitboxes to per-pixel hit is huge... imagine 32 players running around, with each round fired being able to travel between peoples' fingers and so forth. It'd be insane.
 
the min requierments would have to get bumped up considerably, whoever made the petition has no idea what he's talking about and should stop playing all games and throw away his computer.
 
Online petitions don't usually accomplish much of anything. It would be better to have everyone make these suggestions through the bug report system.
 
I would rather like to know why exactly this does happen. Why do the hitboxes seem to lag behind players? If its possible to fix that then that would be much better
 
Before blaming hitboxes, I would first rather investigate how the net code works. If it's like the one in 1.6, you need to configure both the server's as well as your own network settings in order to have it work properly. The defaults try to cater to everyone, which basically means they are "optimized" for 56k modems, and thus, not very accurate for people with faster broadband connections.

I'm not saying that there is no problem with the hitboxes. I'm saying that it's too early to tell. To the guys who have problems with hitboxes: are you using proper cl_updaterate, cl_cmdrate, rate and cl_interp for your connection? This is of course assuming that the netcode for CS:S is the same as in 1.6.
 
Well, what exactly would we need to change for us broadband users? Because I havent messed around with any of those commands yet, and I have no idea what they do
 
Problem with per-pixel , is that it requires all models to be identical for balance issues.
In doom the only difference between players is the colour of the armor,something that many online players wouldnt consider worth the tradeoff for a tiny amount of precision.
 
kungfucheez said:
Well, what exactly would we need to change for us broadband users? Because I havent messed around with any of those commands yet, and I have no idea what they do

Well this is pretty much how it goes for CS1.6, but remember that I'm not 100% sure whether the netcode is the same for CS:S! Also, this is really a bit complex I'm afraid, but I'll try to explain it in detail.

There are basically four important clientside network settings. Rate, cl_updaterate, cl_cmdrate and ex_interp (cl_interp in CS:S I guess). The rates define how many packets are sent to the server and how many are received per second. Most of the time this rule applies: the more packets sent/received, the more accurate the game is. But obviously, increasing the amount of packets sent/received raises your ping as well, but how much depends on the speed of your connection. At LAN tournaments they use these values (and still get a ping of 5):

Rate 25000 (default 5000? I'm not sure about the default values)
cl_updaterate 101 (default 20?)
cl_cmdrate 101 (default 30?)
and ex_interp of 0.009 (the correct value for ex_interp is 1 divided by your updaterate, default 0.1)

Ideally these are the best possible settings when you have a good enough connection and the server settings are as they should be. But when you're playing on the internet, there are two other things you need to take into account: choke and loss. These two can be seen with net_graph 3, for example, and both should be avoided.

Basically here's the idea. Try to have your rates as high as possible without getting choke or loss. Raise them as much as possible while adjusting the correct interp value, but as soon as you start getting noticeable choke (10+), stop and lower them to the level where you had no choke. If for some reason you start to get loss with certain settings, lower the values again.

But then unfortunately there's the problem of server-side settings as well. In particular, there's this thing called sv_maxupdaterate. As you probably guessed, that command defines how much can a client's cl_updaterate be on that server. The default sv_maxupdaterate for CS servers is rather low, IIRC it's something like 60 or maybe even as low as 30. Basically this means, that on some servers (ie. not properly configured) your updaterate isn't as high as you think it is. While this in itself is not a huge problem (your client doesn't send as many packets as it could), this is where problems with ex_interp come in.

Now, as I said earlier, the value for ex_interp has to be 1/updaterate in order for the game to be as accurate as possible. However, if you're using cl_updaterate of 101 (interp 0.009), for example, and you're playing on a server with a maxupdaterate of 30, your models will become very "jerky", they don't move smoothly. So basically then you have to lower your updaterate to the maximum of the server (which unfortunately you don't know unless you can find someone who has access to the server configs) and adjust your interp accordingly, OR, just put your ex_interp value to the default of 0.1, making things more inaccurate but smooth.

So there's the basic idea. I suggest you experiment, tweak them and see what the best possible values are for you. I suppose it's a bit like overclocking. :) As an example, this is how it goes for me: I've got a 10mb connection, and I have noticed that I can use 25k, 101, 101, 0.009 on basically any good, properly configured, Scandinavian server without getting choke or loss. Therefore the my client is sending&receiving as many packets per second as it would in LAN, which makes things very accurate. My connection can easily support the "LAN rates" and still have a ping of 10-20 on good servers. Works like a dream...

I hope this helped (but maybe it just confused you even more... :) ) If you have any questions, don't hasitate to post here or throw me a PM, I'm more than glad to help if I can.

Now, I would only like to know whether THIS is how it works for CS:S as well. Basing on my experience of playing CS:S on different servers/settings, I would say yes, the netcode is the same. But has anyone from Valve said anything about the netcode? I would really like to have it confirmed.

EDIT: I didn't explain what exactly ex_interp does, but it would take such a long time that I'll rather try to find an article written by someone else if I can. But it's important that you have the correct value for it (1/updaterate)
 
Wow, very in-depth post Perrkele, excellent job. I will indeed get right to tweakin and hopefully maybe it will solve the problem. I'll have to experiment on different servers. Thanks for the post :)
 
Thanks, I hope it helps!

Oh by the way. If you try to fix your rates in CS:S as well, you seem to need to put cl_smooth 0, too. When I increased my rates beyond the defaults in CS:S, the game would become reallly laggy/jerky. Then someone on a server I was playing on mentioned that cl_smooth 0 helps, I tried it, and yeah, it really did the trick. I haven't got a clue what this command really does, but it seemed to work. So basically now I'm using the same network settings in CS:S as I am in CS1.6. Whether it actually should be like this or not, that I don't know. It sure seems to be accurate, though. Maybe I should e-mail Cliffe tomorrow or something, that is unless someone already knows if the netcode is the same.
 
VodkA-HLC- said:
or you can just aim behind the person a little bit and solve the problem.

That makes absolutely no sense to me at least. I want to aim directly at the guy, and still hit them. I don't want to be making educated guesses as to where I should be aiming. If my crosshair is on a guys head, I want to press the left mouse button and see him die, simple as that. :)
 
As far as I remember, in six years aiming behind the person has always been the case.
 
perrkele said:
Thanks, I hope it helps!

Oh by the way. If you try to fix your rates in CS:S as well, you seem to need to put cl_smooth 0, too. When I increased my rates beyond the defaults in CS:S, the game would become reallly laggy/jerky. Then someone on a server I was playing on mentioned that cl_smooth 0 helps, I tried it, and yeah, it really did the trick. I haven't got a clue what this command really does, but it seemed to work. So basically now I'm using the same network settings in CS:S as I am in CS1.6. Whether it actually should be like this or not, that I don't know. It sure seems to be accurate, though. Maybe I should e-mail Cliffe tomorrow or something, that is unless someone already knows if the netcode is the same.


Oh wow, i was just about to ask the same question. I noticed that changing the updaterates and cmd rates even up by maybe 1 or 2 cuased alot of laggyness and Jerkyness. Also Im preatty sure I had cl_smooth to 1 so ill have to change that. Thanks for answering my question I didnt even ask yet lol! :LOL:

Edit: Oh, almost forgot. I coudnt seem to find any command called ex_interp anywhere. It gave me an invalid command error. Maybe its named something else
 
Wow, just got done playing a round on Dust using the new commands and that smooth command and I must say, its soo much better now. My hitboxes no longer lag and now its alot harder for me to die and alot easier for me to kill others :) One other thing I noticed is that before, when I shot an object like a barrel there would be a small maybe .5 second delay (or some delay that was notecible) but now barrels react when shot without any delay at all and gameplay feels much smoother.

Thanks again for the great tip :cheers:
 
kungfucheez said:
Edit: Oh, almost forgot. I coudnt seem to find any command called ex_interp anywhere. It gave me an invalid command error. Maybe its named something else

The big post I wrote dealed mainly with the netcode settings of CS1.6. In CS:S, though, there is a command called cl_interp (I mentioned this in the post), which I assumed is the same as ex_interp in 1.6 (actually, cl_interp is a more logical name for it) judging by the default value it had. Try it, see what happens, in 1.6 at least it works like I explained. I think I'll e-mail Cliffe tomorrow and see if I can squeeze some info out of him.

VodkA-HLC- said:
As far as I remember, in six years aiming behind the person has always been the case.

Well, for starters, CS isn't even six years old... :dork: Also, in the early betas, the netcode was completely different from what it is now. Back then it was really accurate for players with low ping, but due to the amount of 56Kers still playing back then (the code wasn't very good for HPBs), a new netcode was introduced. After that, it was about your settings. With accurate settings, aiming at the player would result in a hit. Aiming behind a player and hitting them was due to incorrect ex_interp value. People even abused this earlier by lowering their ex_interp in order to gain better reflexes ("cfg-hacking"). Valve fixed this in later versions.

kungfucheez said:
Wow, just got done playing a round on Dust using the new commands and that smooth command and I must say, its soo much better now. My hitboxes no longer lag and now its alot harder for me to die and alot easier for me to kill others One other thing I noticed is that before, when I shot an object like a barrel there would be a small maybe .5 second delay (or some delay that was notecible) but now barrels react when shot without any delay at all and gameplay feels much smoother.

Good to hear that it helped. Maybe the netcode really is the same as in 1.6 and I wasn't just imagining things when I thought I could aim and hit just as well in CS:S as in 1.6. I hope others try this as well and post here if they see any improvement. I'm off to bed now anyway, I'll check back tomorrow.
 
Wraith said:
you want 4 person multiplayer like doom3? per pixel is too system intensive.

Actually, they chose 4 players becuase it was kind of keeping the Doom spirit in it.. They said that the game could handle more (not 32 players.. but liek 10 or so)

And it IS per pixel hit detection that Doom 3 has....

-Limb
 
:dozey: I dunno, but isn't Valve pretty close with the gaming community right? I would think if there's enough complaints, they'll implement whatever you want to come in a patch.
 
hahahahaha worst idea evar.


They would have to completely rewrite the engine or create a new one to do this... would you like to fund them with 50 millions dollars?
 
Per-pixel hit detection would be great and all but...online petitions won't do shit.
 
Sorry if someone has already stated this, but those "laggy hitboxes" are in almost every FPS. It's not just Valve. Maybe it has something to do with evening gameplay for all net connections - I don't know. But I hope there is a way to make hit detection fairer.

Doesn't per-poly hit detection use alot of CPU cycles?
 
ZEROarmy said:
hahahahaha worst idea evar.


They would have to completely rewrite the engine or create a new one to do this... would you like to fund them with 50 millions dollars?

Actually they wouldn't have to rewrite the whole engine.... and its million, not millions.

-Limb
 
Zento said:
Sorry if someone has already stated this, but those "laggy hitboxes" are in almost every FPS. It's not just Valve. Maybe it has something to do with evening gameplay for all net connections - I don't know. But I hope there is a way to make hit detection fairer.

Doesn't per-poly hit detection use alot of CPU cycles?

It's per-pixel, and yes it uses a alot of CPU resources.. Hit boxes make it less resource intensive... It's kind of decision here.. Per-pixel hit detection and no physics, or no Per-Pixel, and fun physics.

-Limb

EDIT: Damn, that was two posts one right after the other...
 
What about different player models then? A hitbox allows you to create different skins for players, but with a per pixel hit detection, this can be used as a cheat.

And this has little to do with per pixel or hitboxes, this has to do with server and client side hit detection. You'll still keep the problem of thinking your behind cover and still getting shot because you're still on a different location in the server.
 
The hit detection method has NOTHING to do with it whatsoever. It's all about netcode and lag compensation. Consider that video where you see the hitboxes moving at a distance from the player.. if you changed to per pixel, you'd basically just have a much more detailed shape, in exactly the same place as the hitboxes are now. Not to mention a performance hit.

Edit: ^what he said :)
 
Back
Top