Halo 1 & 2 for PC
This topic has moved here: Subject: ThE_MarD's Netcode Guide
  • Subject: ThE_MarD's Netcode Guide
Subject: ThE_MarD's Netcode Guide
  • gamertag:
  • user homepage:
  • last post: 01.01.0001 12:00 AM PDT

Heyyo,

Since I noticed the debate of the infamous netcode of Halo1PC is still going on, and my guide still exists, so to be on the safe side, I'm gonna post in on the forums so there's always a copy. ;)

you can also check out the crappy 20min site I made that had it here if it exsits still:
http://mypage.uniserve.ca/~mardnet/HPCNetcode1.htm

-------------------------------------

Heyyo,

Ok, I'm gonna be going very technical on this guide. I'll explain how the netcode works bigtime. So if you're confused, I'll point out the main parts now in brief:

- Due to low quality of this netcode, you must always lead your shots, even onna LAN game.
- With most weapons aim ahead of the direction your enemy's moving by 1-2 inches on pings below 80
- ping below 130 aim roughly 2-3 inches ahead of opponent.
- ping above 180? pray, and aim anywhere from 2-4 inches ahead of opponent. You literally have to predict where he'll be in half a second.
- With a minigun warthog, aim at your opponent related to the direction your hogs moving. For eg, if hog's moving to your left, aim right on your opponent.
- slower projectile weapons are less affected by this bad netcode. so rocket launchers and fuel rods tend to work the best (sadly).
- sometimes client isin't updated properly, especially on higher pings, so if your guy says empty, it's always good to click your attack button a few more times.

Now, time to get technical. ;)

Ok, so, as I mentioned in brief: the netcode is server based. So in other words, the server is the supreme ruler of the game. It judges wether you get inna vehicle, wether you throw a nade at a certain time, what your shields are at, how many bullets left in your gun, etc. So remember, if your sheilds say full, the server can say they're dead and you're gonna die.. Sometimes your gun will show no bullets innit, but won't reload, and when you click your shoot button enemies will still get hit, so keep that in mind too.

Before I continue the next part, I shall split up weapons into a few types: instant projectile, slow moving projectile, and lobbed projectile. Why just these three types? cause ingame, that's how they work, some instant projectiles aren't instant, it's just the type of projectile it is, it might have a speed variance that causes a bit of lead like the pistol and sniper rifle, but it's not too major to classify it as a separate projectile type.

Under "instant projectiles" is: pistol, assault rifle, shotgun, melee, minigun warthog, and sniper rifle.

Under "slow moving projectiles" is: rockets, rocket warthog, plasma rifle, plasma pistol, flamethrower, and the needler.

Under "lobbed projectiles" is: highly explosive grenades, plasma grenades, and the fuel rod gun.

Since the server won't listen to how the game looks and acts on any clients machine, if it ever looks like you blew up a banshee yet it's still flying around? the server says you missed. So if that happens reload and try again and pay attention to leading your shots right. Your ping plays a big part in predicting whether your shot will miss or not. Now this is how it works. If you hit your attack button, your computer then sends an info packet to the server, this takes a couple milliseconds (ms), usually your ping shown on the score table indicates at that last update how long it should take. Anywho, so after the server finally gets the info packet saying "you shot your gun aiming at this direction" the server will then simulate this. This is a very basic way of netcode, and actually should be extinct by now since there's easily much better netcode out there. So, let's spice up this situation more: you're shooting at an opponent, he's strafing to the right, your aimer reticule is right on him, and you shoot. Your comp sends the info packet, after the delay in ms that it takes for the info packet to get to the server finishes, the server then simulates you shooting you gun while aiming at a certain angle. By the time the server simulates it, the player will have moved on from that spot, so the server then says "you missed." and sends back no sound of the enemy being hit. That beep you hear when you shoot an opponent is the server telling you it acknowledged that you hit him with your shot, or have damaged him in some way. Listen for that beep and remember the distance you lead your shot to hit him. So now, another situation where you properly lead your shot: the opponent is strafing left, your aiming your instant projectile weapon. about 1-2 inches ahead of him to the left, you shoot and your comp sends the info packet saying "you shot your gun aiming in this direction." After the delay in ms it takes to get the info packet to the server, the server then simulates you shooting your gun aiming the way you were. By the time the server simulates it, the opponent has probably moved from his last location, right into the path of where your weapon is shooting, resulting in the server saying "ok, you hit him" and then the server sends an info packet back to you saying you hit him, resulting in that satisfying beep. So remember, lead your shots, predict where your opponent will be in direct relation to your latency (ping). So on average, I need to predict where my opponents will be within 60ms. It doesn't seem like a lot, but due to the nature of this server-side netcode? it's extremely sensitive to latency. Now if you note, melee is also under instant projectile, why? that's what it is. To the game, you're not actually moving your arms and smacking him with your gun/fist, no. Lol, to the game your launching an extremely short instant projectile, invisible attack, and executing a player animation, and a first person view animation, that's it. So just like when your shooting an actual instant projectile weapon, lead your melee attacks. Melee attacks are probably the hardest attack to predict since not only do you have to predict where the enemy will be, but it's highly sensitive to where you are due to the extremely short trajectory! always try to predict your guy's in game melee range (aboot 1-11/2 feet ahead of you maximum) when trying to melee along side your latency.

Now, onto slow moving projectiles. These are luckily quite blessed with server-side prediction. Due to them actually having a slow projectile, on your screen when you shoot them (especially the plasma rifle) they tend to show how an instant projectile weapon with a delay of around 100ms would go! so usually just watch where that plasma shot goes n' try to get it to smack the person. So if you're lagged? slow moving projectiles are your bud. So if ya wanna train yourself to get better at the HaloPC server-side netcode? practice, practice, practice with that Plasma Rifle. Once you get better at that? move onto harder weapons such as the highly recommended due to great versatility, the pistol. The needler's also a prime weapon for server-side netcode since it's even slower than the plasma rifle, and is the easiest to sync due to their ability to lock onto a target. I'm sure all gearbox did to sync them was just try n' sync up their X,Y,and Z coordinates, n' let the game take it from there. ;)

The rocket launcher... this one can really vary.. oh lordy can it vary with latency. Usually, when the server's not bogged down inna heavy weapons only match where you shoot it, is where it'll be. so a ping of below 80ms is good for the rocket launcher, anything higher? you'll have to start to lead your shots as it takes the server longer to actually decide to shoot your rocket. Sure, it may not sound like much when a rocket's going off, but inna heavy weapons only match were all the client computers, and especially the server's bogged down by all these calculations n' rendering (ok, rendering not so much on the server, lol) will greatly affect the actual launch times of the rocket. So in heavy weapons matches, you'll usually wanna act like your ping's around 180ms or higher... which's a very bad ping. Fuel rods are generally the same thing. Lead on those heavy weapons matches where everyone's ping's are flying from 80ms up to 200ms.

Grenades are perfect for all pings. They did a great job with them. They almost always show the exact path, at the exact time they get thrown and explode. Usually if you're having a hard time hitting someone, try n' count how long it takes you to hit your grenade throw button, and when it actually appears on your screen. This will give you a huge hint in how much you'll need to lead those shots. So if you're lagged? try throwing nades at enemy's until you can figure out how bad you have to lead those shots.

[Changelog]
-REMOVED the no cheating stuff since people seem to be missing the part where I said this guide was created long before any cheats/hacks were ever made.
-ADDED informing that pistols and sniper rifles have a slight amount of lead due to the bullets not being "instant hit" but is still considered an "instant projectile".
-CHANGED the wording for melee range from 1-2 inches to 1-11/2 feet

[Edited on 11/30/2006]

  • 11.29.2006 12:41 PM PDT
  • gamertag:
  • user homepage:
  • last post: 01.01.0001 12:00 AM PDT

Heyyo,

Part 2

--------------------------------

Ok, now, this one took me a while to figure out, but I did: how HaloPC's server-side netcode affects the warthogs. Now, with the warthogs you have to have a completely different outlook on the netcode. You see, when players move on your screen, they're not exactly in sync with your ping right? they're only what your computer thinks they are at that point in time, this especially rings true with the warthogs. Sadly, netcode heavily affects the warthogs, they take it the worst. The netcode, in general, just tries to sync the server with what's happening on your screen, although nice n' smooth for you when going along onna flat surface, it's deadly when any bumps or crashes happen, cause when a bump or crash occurs? the server takes charge. It can even take charge if you're going on flat terrain! Always keep in mind the server has supreme control, so it decides if something is wrong, and makes you conform to how it thinks, which's usually inaccurate on your screen. So if you pull a U turn and you're pretty far away from what the server thinks you are? it'll say "hey, no I think you're having a problem, go to where I believe you should be." and that causes your vehicle warp, same for on foot when you warp actually, but that's more rare. Now, the main part that rips the vehicles apart but makes them soo cool is the physics. There's not much physics prediction in this beaute of a game. They're extremely random. I bet they didn't do a lot (if any..) vehicle physics prediction to keep the game from using too much bandwidth to make it more dial up modem user friendly.. I'll talk more aboot dial up users in another HaloPC topic.

Ok, so yeah, if your hog takes a ramp n' does a lot of spins? you're guaranteed to have a lot of warping. The server tries to synch you by saying "ok, you're at this location and height, moving this direction, and spinning this way" but the server doesn't predict the latency of this info getting to you, so the client's always 1 step behind, and so the server keeps trying to get you back into sync.. but yep, always 1 step behind. when on flat surfaces, or stopped usually it does a better job of keeping you in sync with what the server believes is going on. So yeah, if trying to ram an enemy? you still have to predict where he'll be in about 1/3rd of a second, even more if your latency's higher.

Now, let's move onto the minigun hog, and the next to impossible to use already passenger seat, lol. Ok, so for the netcode on the minigun hog, it's an instant projectile, but don't use the same logic as on foot. Now, the main part you have to calculate is the actual warthog you're in! What you need to predict now is where that damn hog will be within 1/3rd of a second or more depending on your ping. Now I'll tell you to aim at the enemy, in the opposite direction of where the warthog is moving. So if the warthog's moving to the left of the enemy? aim ahead to the right. If your hog's in the air moving up? aim lower on your opponent, lower than the feet is possible. If the hog's in the air coming down? aim higher on your opponent. So yes, you need to lead depending if the hog's moving up, down, left or right to your opponent. Always do the opposite of the hog. Now to help you grasp this idea, here's an example that helped me nail it down:

You're aiming 1-2 inches to the left of your opponent, the hog's driving full speed to the right, not somewhat to the opponent, but not away from your opponent, just right, you're circling him. By the time you shoot, the info packet will be sent saying "you shot the minigun warthog turret aiming in this direction", after the delay, the server will simulate this, but the time the server simulates this, the hog will have moved farther to the right eh? and so then your actual shot path is 1-2 inches to the right from where it looked on your screen, so the server will say "ok, you hit him" and send you the acknowledgement, "beep of pain." After you hear that beep? remember this, and learn to predict your warthog. :)

Now, the rocket warthog's turret is probably the 2nd worst done place to try n' kill someone from. Why? 2 of the 3 rockets aren't synced at all! yep. Only the 1st rocket's pretty accurate, the other 2 aren't synched and vary heavily. The rocket hog still has the same logic as the minigun hog, as you need to lead your shot depending on where your hog's moving. Now after that first rocket of the 3? just hope that the server's blessing you and that your rockets go at least somewhere close to where it looks on your screen. If you want proof of this? read the improvements on HaloCE. On there they say something like "rocket hog now properly synched." lame how they messed it up in the first place eh? but oh well... not like they're gonna do anymore overhauls, time to learn to deal with what we've got, so that's why I made this guide. ;)

Now, the worst place to try n' kill someone from: the passenger seat! w00t! lol, not only is it affected by the problems of the warthog's movement affecting how the server simulates your attacks, but you get a horrible bumpy camera angle and not a lot of space to aim. For this I suggest you use your grenades since those always seem to be properly synched, but if ya wanna give a weapon a go, try your luck with a rocket launcher, plasma rifle, flamethrower, and if you're feeling lucky, the shotgun. :P

Now it's time for the ghost. This one's good, very good... for those with pings below 180ms or so, lol. So you wanna learn how to pwn with the ghost eh? well, it's pretty much a hovering set of akimbo plasma rifles of.. doom or something, lmao. So yeah, you have to do a bit of leading, but the slow movement of the projectiles usually give you a good hint into how much to lead. Remember, this guide's not teaching you strats, it's teaching you how to aim, so yeah, just remember it's a slow moving projectile so they're usually good for low to high pings. When ya wanna ram someone down with a ghost? predict where that bugger will be within 1/3rd of a second.

Aright, lastly, something I've been working quite heavily on mastering: the sniper rifle. I'm getting deadly with this beast, I've been starting to even snipe people outta moving vehicles by actually sniping them out instead of just hitting the vehicle! w00t! I so far have headshot 2 guys outta ghosts at pings of 60ms, and headshot 2 guys outta turret positions on warthogs n' maybe 4 norm kills for drivers n' turret.. I'm quite proud of myself. :P Lol, ok, now time to try n' teach you guys how to do so as well. So, for the sniper rifle, it's quite heavily affected by ping. Since ti's truly the most instant projectile weapon of the bunch? learn to predict as if you were a Buddha or something, lol. Lead your shots aboot 1-3 inches to where you think he's gonna be. Most snipers run back n' fourth inna tight spread, so if you're lagged just aim between n' take your 4 shots n' reload. Since it's already uber hard to just smoke them, I myself have just been aiming chest-height so I can get down the leading to just well, hit them. Now vehicles? these can be really nasty to try n' take down. You'll need to lead quite a bit. I find the Ghost easiest to snipe since the only person innit is extremely vulnerable to attacks anywhere besides their front. K, so to snipe them, you'll need to lead as if your ping's about I'd say 180ms. So lead depending on their speed and where they're going by aboot 2-4 inches. It's hard, but it's possible to take those buggers down. Now, let's say a hog's coming straight at your base on sidewinder, and you're up top your base with a sniper rifle (GREAT map, I'd say the best to practice taking people out that are in vehicles with a sniper rifle) your ping's aboot 60ms and you wanna snipe out the guy in the turret. Aim aboot where the T-bar in the middle of the hog is and fire. Of course the usual of your comp sends the info packet to the server and after the delay the server simulates your shot, by then, the guy in the turret should be aligned with your sniper trajectory, if you're really lucky, maybe even his head's aligned. n' pow, there ya go, you're 1 step closer to kickin' butt with the sniper rifle against people in hogs. ;)

Ok, well I hope my geekish thoughts into how HaloPC server-based netcode works helps you pwn more in your HaloPC and CE gaming. Hope to see some of you guys inna server. We can help each other practice our sniping skillz against those in vehicles. :D

Later-a-much, n' LONG LIVE THE D!,
æ ThE MarÐ

  • 11.29.2006 12:41 PM PDT
  • gamertag:
  • user homepage:
  • last post: 01.01.0001 12:00 AM PDT

Prety good. One year of Halo and I still haven't completly goten used to the netcode, so this shoud help me a bit.

  • 11.29.2006 1:42 PM PDT
  • gamertag:
  • user homepage:
  • last post: 01.01.0001 12:00 AM PDT

very good very informative
It gets my approval.

  • 11.29.2006 2:40 PM PDT
  • gamertag:
  • user homepage:
  • last post: 01.01.0001 12:00 AM PDT

It's good. Nothing new for the Halo PC veterans, but at least it is in a guide that is relatively easy to understand.

  • 11.29.2006 3:26 PM PDT
  •  | 
  • Exalted Legendary Member
  • gamertag: [none]
  • user homepage:

Maw

I vote this thread gets inducted in to the Threads of Interest thread.

All apposed say "No".
All in favor PM a moderator.

lol

  • 11.29.2006 6:12 PM PDT
  • gamertag:
  • user homepage:
  • last post: 01.01.0001 12:00 AM PDT

I think this statement is a bit out of date
- Netcode is server based, so cheating is next to impossible.

  • 11.29.2006 6:55 PM PDT
  • gamertag:
  • user homepage:
  • last post: 01.01.0001 12:00 AM PDT

Posted by: snowysnowcones
I think this statement is a bit out of date
- Netcode is server based, so cheating is next to impossible.


It could use some attention. Maybe something closer to
Netcode is server based, so cheating is next to impossible, unless you know where to look

Of which I can think of a few people who know.

  • 11.29.2006 7:03 PM PDT
  • gamertag:
  • user homepage:
  • last post: 01.01.0001 12:00 AM PDT

Heyyo,

Posted by: snowysnowcones
I think this statement is a bit out of date
- Netcode is server based, so cheating is next to impossible.


and....

Posted by: Ringo
Posted by: snowysnowcones
I think this statement is a bit out of date
- Netcode is server based, so cheating is next to impossible.


It could use some attention. Maybe something closer to
Netcode is server based, so cheating is next to impossible, unless you know where to look

Of which I can think of a few people who know.


Well... ya might wanna re-read that first sentence I wrote guys:

Posted by: ThE_MarD
Heyyo,

Since I noticed the debate of the infamous netcode of Halo1PC is still going on, and my guide still exists, so to be on the safe side, I'm gonna post in on the forums so there's always a copy. ;)

you can also check out the crappy 20min site I made that had it here if it exsits still:
http://mypage.uniserve.ca/~mardnet/HPCNetcode1.htm

NOTE: this guide was made before any hack/aimbot was made.. thus my opinion on that at the time. =P


Yeppers, I even noted so, I didn't want to leave it out cause I didn't want to modify the original guide I made, but if it annoys you guys that much I will remove that part from the guide. ;)

  • 11.29.2006 11:33 PM PDT

CMT Mod team leader

Posted by: snowysnowcones
I think this statement is a bit out of date
- Netcode is server based, so cheating is next to impossible.

The Aimbot is a client side app, it changes your player to lock into a nearby target, then it caluclates the lead.

The speedhack makes your character move faster, and the client sends the server the location of the fast moving player. The server calculated a medium between the speed of the player on the client, and that on the server.

Alldevce is just using script comands ingame.

  • 11.29.2006 11:56 PM PDT
  • gamertag:
  • user homepage:
  • last post: 01.01.0001 12:00 AM PDT

A highly excellent guide, especially for those with dialup and higher pings!

I must say that if you practice with a high(ish) ping you can be very effective. It's possible to lead consistently with a high ping, and sniping is possible as well - just aim for the body, not the head, and fire twice.

When you DO get the right lead, if you find an opponent unaware of you, strafe in the same direction and pop three shots easily in his head. It works no matter what the ping is!

  • 11.30.2006 5:10 AM PDT
  • gamertag:
  • user homepage:
  • last post: 01.01.0001 12:00 AM PDT

Heyyo,

Posted by: Masterz1337
Posted by: snowysnowcones
I think this statement is a bit out of date
- Netcode is server based, so cheating is next to impossible.

The Aimbot is a client side app, it changes your player to lock into a nearby target, then it caluclates the lead.

The speedhack makes your character move faster, and the client sends the server the location of the fast moving player. The server calculated a medium between the speed of the player on the client, and that on the server.

Alldevce is just using script comands ingame.


.... *beats head on keyboard*

k, since no one seems to have read the part where I mentioned the guide was made long before any aimbot/hacks even appeared, I'll just remove it cause it seems to be confusing people..... plus I answered your question just a post or so above your post....

  • 11.30.2006 9:12 AM PDT
  • gamertag:
  • user homepage:
  • last post: 01.01.0001 12:00 AM PDT

Nice, but just for the record, the pistol and sniper aren't technically "instant projectiles." They do take a little bit of time to reach your opponent, even with 0 ping. It's not because of the netcode, it was because Bungie put it into the game. Good guide though.

  • 11.30.2006 6:11 PM PDT
  • gamertag:
  • user homepage:
  • last post: 01.01.0001 12:00 AM PDT

Heyyo,


Posted by: got milk12
Nice, but just for the record, the pistol and sniper aren't technically "instant projectiles." They do take a little bit of time to reach your opponent, even with 0 ping. It's not because of the netcode, it was because Bungie put it into the game. Good guide though.

Hmm, true for the pistol, I do remember HaloXbox you have to lead like 1/2 a mm, but it's a very small lead, and the sniper's even smaller lead... guess I could always update the guide for that.

  • 11.30.2006 7:54 PM PDT
  • gamertag:
  • user homepage:
  • last post: 01.01.0001 12:00 AM PDT

Too much talk about netcode and too little about speed hack detection. Although that is a netcode feature, one has to remember that turning off speed hack detection eliminates ALL warping caused by too fast movement (usually with hogs, mostly when nading/rocketing them - and of course boosting yourself up with rod etc.).

  • 12.01.2006 3:17 AM PDT