PDA

View Full Version : Netcode: H:PC vs H2:Vista (lead)



kilogic
May 18th, 2007, 12:21 PM
I have been lurking, but finally got frustrated enough to post. You should not expect lead in any way shape or form near Halo:PC.

Most all games have a client based netcode (such as Counter-Strike, Halo 2, essentially most all popular online games. With that system, when you shoot someone, your computer tells the server "I shot him!" and then the server gives the guy damage (very easy way to explain it).

Halo:PC has a server based netcode. You shoot, the server gets sent the fact that you shot, and decides if you shot the person or not. This isn't exact but its the best way to explain it, if you have a ping of 50ms and the person you are trying to shoot has a ping of 60ms. You must aim 110ms ahead of the person. This is most commonly known as "lead".

Basically that style was implemented to take care of aimbots and other hacks, and so that gearbox didnt have to update the game constantly to block new found hack attempts (IMO both to cut down dev time, and because MS takes a long time to review updates).

H:PC is very much alone in this style netcode. You shouldn't expect that type of an experience in any regular online games. Here is an artice with Randy Pitchford, President of Gearbox Software, explaining it:
http://cookedgamers.net/node/102

"Play a lot of counter-strike (or a client authoritative game like it). Counter-Strike is client authoritative. So, when a client says to the server, “Hey - I shot that guy in the head!” The server just trusts him and makes it so - even when the guy who was shot already thinks he got around a corner or whatever (latency). Counter-Strike erred on the side of the client experience on offense by making the client authoritative. The good thing is that you get a really crisp and responsive feedback from shooting folks. The bad thing is you get a system that’s really easy to cheat with (just create a client that lies and the server has to trust him). You also get a system where things can happen to you that you already thought you were safe from (because the other client is always behind you by whatever the latency between him, the server and you is).
That’s all technical. But it’s the facts. The point is that Gearbox’s goal is/was to do the right thing. But, because the game was designed one way then converted to be used another way AND because the game offers a different experience on that other platform, there are users who want cake and to eat it too.
I agree. I want the perfect experience for myself (since I love playing the game too). The difference with me is that I understand the technical reasons why it is the way it is."

xExus
May 18th, 2007, 02:10 PM
So.. I don't really know what I should say but there's some nice info you have there..

Halo PC vs. H2V?
I'd pick the non-lead.H2V ftw.

PTS
May 18th, 2007, 02:13 PM
Well there are aimbots for Halo PC, so I'm looking forward to H2Vs no lead.

kilogic
May 18th, 2007, 02:13 PM
Yeah, it's not much to reply to, but just trying to fill some people in. Just comparing the two. I can't wait to play H2V online! I think it's gonna be everything I was hoping for H:PC.
-Great online play
-Custom Maps
-M&KB!!!

rec0
May 18th, 2007, 02:16 PM
This isn't exact but its the best way to explain it, if you have a ping of 50ms and the person you are trying to shoot has a ping of 60ms. You must aim 110ms ahead of the person. This is most commonly known as "lead".Actually for the most part the ping of the person you are shooting at does not matter.

If your ping is 50ms it means on average a piece of information takes 25ms to reach the server, and another 25ms for information to get back. When playing with a ping of 50ms therefore, everything you are seeing in the game happened 25ms ago in real/server time (apart from your own movement and actions which are predicted on the client), as this is how long it takes for the server to update you about what's going on.

When you shoot, the server doesn't know until 25ms later, when it receives your data. You are shooting at a target who on your client appears to be in the place he actually was 25ms ago, and your shot doesn't fire on the server until a further 25ms after that, so you have to lead the player you are shooting at by 50ms in this example, which is just your ping (round-trip time).

The ping of the person you are shooting at should be irrelevant because the server is the one maintaining everyone's positions, the fact that your victim is out of sync by a certain amount does not change how his status is held on the server.

One thing I don't understand is why in Halo we see people with a bad connection 'warping' instead of moving normally. The server should be maintaining the position of all clients, and just moving them according to messages saying "hey I'm moving".

If you have a client who is dropping tons of packets, it should really just mean the server is receiving less reliable information about what that laggy client is trying to do (where they're trying to walk or where they're trying to face). This should mean the server is still maintaining them moving about smoothly - so the rest of the well connected clients should see the lagger moving smoothly, but the movements will just not be exactly as the laggy client had intended (as not all the data would be sent).

The fact that we do see people with bad connections warping around suggests that the server is trying to do some compensation. I don't know any specifics here but for example if the client sent "hey I'm moving forwards" but the server didn't receive it, some time later the client sends "alrighty I'm still moving forwards", when the server receives this second message it's like "what's up, you never told me you were moving forwards in the first place, don't keep me in the dark like this again" and maybe the server tries to compensate by warping the player forwards to an estimation of where they might be if they had been moving forwards.

Although this seems mostly irrelevant I personally find it interesting to ponder, and it actually has relevance to my first statement saying that the victim's ping should not matter. Ping and packet loss often have a fairly close relationship, so I could see that high pingers may be more difficult to hit if this server compensation is going on, but without knowing exactly how Gearbox handled this we can't really accurately predict how a given client's ping affects the amount you need to lead them by. The fact that the aimbot works (which does not factor in the ping of who you are shooting at) suggests that my interpretation of things is pretty close to the truth. If higher pingers seem harder to hit, it's probably some sort of funky server compensation which isn't very predictable.


Hopefully none of this Bad Stuff™ will occur in H2V (as seems to be evidenced by some youtube footage) because they'll probably stick with Halo 2 Xbox's pseudo-client-authoritative system, like you suggested.

kilogic
May 18th, 2007, 02:22 PM
Nice Post!! Thanks for the info. I had the basic idea down, but I just came up with that example to try and explain it, I didn't realize the other persons ping didnt matter.

The thing that bothers me, is in an interview Randy Pitchford said, "well our idea was great, but the technology isn't there yet, it will take something like fiber to really achieve what we were going for in our netcode" (<--stated roughly, not an exact quote)

Then why make something that isn't feasable on current technology.

As you can tell I had high hopes for Halo:PC. With the right implementation I think it could've rivaled CS's numbers.

rec0
May 18th, 2007, 02:42 PM
People generally feel the reason the networking ended up being sub-par was because of pressure from Microsoft for 56k modem support. Still somewhat puzzling though.

solofortne
May 18th, 2007, 05:06 PM
People generally feel the reason the networking ended up being sub-par was because of pressure from Microsoft for 56k modem support. Still somewhat puzzling though.

I really don't think that has much to do with it. I'm guess Gearbox looked at what funds they would be receiving after the game's launch, and upon realizing there would be no possible way to counter any hacks or cheats through patching, they decided to say screw it and made the netcode server-side. This sounds like a good idea in theory, but they failed to realize that trying to take care of cheats by making your netcode a complete joke that no competitive player would take seriously, doomed their game to failure.

I still believe halo pc would have gone a lot further if they simply let people police their own servers and kick people they found cheating (though with no spectator mode it might not be so easy.) Instead, they decided to protect all the noobs running around in 24/7 rockets servers from hacks that would come out eventually no matter how they designed the netcode.

Mr Buckshot
May 18th, 2007, 07:00 PM
According to an official review I just read, H2V does, unfortunately, have "rather large hitboxes that make mouse precision overkill" or something like that, meaning that the autoaim is still higher than it should be, and thus, playing with a mouse will be raping.

When I had Halo 2 and an Xbox 1, I borrowed the keyboard/mouse adapter from a friend and played H2X PC-style, and my goodness, it was just so damn easy on Legendary.

stunt_man
May 18th, 2007, 08:38 PM
Now, that -

Is some crazy shit!



H2V does, unfortunately, have "rather large hitboxes that make mouse precision overkill"True, but everyone's going to be using the mouse/keyboard combo. Who, in all honesty, is going to be playing this game with a gamepad? Maybe the XBox champs will, but even they will need to switch when things get really competitive - I'm sure the best players will be using mouse/keyboard.

In all, sure, it's going to be really easy to shoot someone in the face with the mouse/keyboard, but everyone's going to be churning out this 'rape.' And when everyone's doing the same thing (raping with mouse/keyboard), we find balance.

Chew on this metaphor: imagine being a great runner (owning in CS, for example), and then one day you decide to wear iron boots instead of shoes while running (switching from CS to Halo PC). This sounds ridiculous, but maybe one day you learn to run just as fast with the iron boots as you could with your shoes (coping with leading). Then you switch back to shoes (playing H2V). Do you know how fuckishly fast you'll be running?

Guys, prepare to start serving some seriously bitter rapeage upon bitches.

Thoughts?

Aklass
May 18th, 2007, 10:07 PM
I have been lurking, but finally got frustrated enough to post. You should not expect lead in any way shape or form near Halo:PC.

Most all games have a client based netcode (such as Counter-Strike, Halo 2, essentially most all popular online games. With that system, when you shoot someone, your computer tells the server "I shot him!" and then the server gives the guy damage (very easy way to explain it).

Halo:PC has a server based netcode. You shoot, the server gets sent the fact that you shot, and decides if you shot the person or not. This isn't exact but its the best way to explain it, if you have a ping of 50ms and the person you are trying to shoot has a ping of 60ms. You must aim 110ms ahead of the person. This is most commonly known as "lead".

Basically that style was implemented to take care of aimbots and other hacks, and so that gearbox didnt have to update the game constantly to block new found hack attempts (IMO both to cut down dev time, and because MS takes a long time to review updates).

H:PC is very much alone in this style netcode. You shouldn't expect that type of an experience in any regular online games. Here is an artice with Randy Pitchford, President of Gearbox Software, explaining it:
http://cookedgamers.net/node/102

"Play a lot of counter-strike (or a client authoritative game like it). Counter-Strike is client authoritative. So, when a client says to the server, “Hey - I shot that guy in the head!” The server just trusts him and makes it so - even when the guy who was shot already thinks he got around a corner or whatever (latency). Counter-Strike erred on the side of the client experience on offense by making the client authoritative. The good thing is that you get a really crisp and responsive feedback from shooting folks. The bad thing is you get a system that’s really easy to cheat with (just create a client that lies and the server has to trust him). You also get a system where things can happen to you that you already thought you were safe from (because the other client is always behind you by whatever the latency between him, the server and you is).
That’s all technical. But it’s the facts. The point is that Gearbox’s goal is/was to do the right thing. But, because the game was designed one way then converted to be used another way AND because the game offers a different experience on that other platform, there are users who want cake and to eat it too.
I agree. I want the perfect experience for myself (since I love playing the game too). The difference with me is that I understand the technical reasons why it is the way it is."
i like the CS netcode and if someone hacks they are VAC banned for life

stunt_man
May 18th, 2007, 10:45 PM
Whoa, that's intense... Banned for life from Steam?!

Abdurahman
May 19th, 2007, 12:11 AM
yep. I have CS, and that VAC protection is one of the best out there

Aklass
May 19th, 2007, 09:37 PM
lol i got banned for life cause i was acting like a curious 6 year old

Syuusuke
May 19th, 2007, 10:19 PM
Wow stunt_man that's really good.

But consider this: what if you run too fast and your feet are not used to the light-ness of the shoes and you stumble and tumble and fumble around?
=D

stunt_man
May 20th, 2007, 01:01 AM
Uhhh... Exception? All I'm trying to say is that we're going to kick some ass here...

Varmint260
May 20th, 2007, 01:14 AM
So, H2V will have client-side net-code, so people like me who absolutely HATE leading will be right at home in H2V netcode? Excellent... I didn't really understand the "lead or no lead" discussions very well until this thread... thanks!

stunt_man
May 20th, 2007, 12:53 PM
In Halo PC, it's really surprising how many players don't even know what leading is, or how it affects the game. With this fact, you get about half good players, half crappy players that never hit anything. The crappy players always end up accusing the good players of botting, because in their eyes, they constantly get their asses kicked!

Sheesh!

Aklass
May 21st, 2007, 06:42 AM
So, H2V will have client-side net-code, so people like me who absolutely HATE leading will be right at home in H2V netcode? Excellent... I didn't really understand the "lead or no lead" discussions very well until this thread... thanks!

doesnt client side netcode make things sync better?

Atty
May 21st, 2007, 10:31 PM
yep. I have CS, and that VAC protection is one of the best out thereNo, it's not.

bitterbanana
May 22nd, 2007, 11:04 AM
Here is an artice with Randy Pitchford, President of Gearbox Software, explaining it:
http://cookedgamers.net/node/102

Great read, thanks!

In response to stuntman's boot analogy, I hope it's true. If anything, leading our shots has forced us to hone our skills on predicting player movement. I'm not sure if that'll give us an upperhand in a game that requires no lead, but I think it might benefit us overall in some way.

Beckon
May 22nd, 2007, 11:39 AM
While leading was a bad thing about HALO PC I didn't mind it when I got used to it and honestly it added a certain realism to it since IRL you would have to lead. I think the problem was the insconsistency it gave where sometimes it would hit other times it wouldn't. I tried to play HALO 2 for XBOX, even bought a smart joy frag but something about frame rates and lack of responsiveness really mad me sad in the face when it came to playing. Not to mention the auto aiming it had. I do hope they address the issue of people being able to do glitch hits and do what amounts to Killer Instinct "Ultra Combos" in HALO 2. Using glitches however is a whole other topic..