343i messed up big. Proof inside.

I’m fairly confident in that I can assume that a lot of you here are, how you say, ‘streaky’ players. Some games you’re the dog and some games you’re the lamp post. Sometimes you just can’t figure it out, can you? Perhaps once in your bad streak you may have a game where the other players are simply better, but normally it just seems like you’re dead on with your shots, you pull a good strafe, etc…but the magic doesn’t happen, huh? You’re losing duels/trading off kills with players who have a much lower K/D and have won less.

It’s true that perhaps you could just be a streaky player. One day you’re just in the zone, another day you’re AR rushing hardcore and accidently jumping off Adrift. Chances are though, you’re doing things right and it isn’t that.

Welcome to the online world of worsening netcode!

The phenomon I explained above is thanks to something almost every online game has. Lag compensation. To put it simply, lag compensation is a series of tricks designed to cover up latency to where everything is mostly ‘fair’ to all players in game.

All Halo games have had this, (With the exception of Halo PC, which ironically if you can master depending on yourself as your own lag compensation…skill is much more prevalent than later games.) each using some different tricks and varying intensity of these tricks. Halo 4 has this, and compared to past games…it’s bad.

While the trend of absolute bullcrap lag compensation started with Reach, Halo 4 expanded upon it. Let’s get into the meat of why it’s bad, eh?

  1. Median ping host selection. It used to be in Halo 3 that the player with the best connection (download/upload speeds) would be the connection host.
    In Halo 4, the player with the most average ping to the rest of the players will be host unless there is another player with significantly better connection speeds. So a player who might have had less ping to a host, will now have more ping to the other host with this system.

  2. Extrapolation. Opponent’s box predicts future game state. Until game world is updated, box predicts player movement. Box assumes player moving in one direction is still going until updated.
    IE: Opponent shoots rocket, you make a hard left with your thruster pack.
    On your screen you are far enough away not to die but once the rocket has hit,
    to the opponent you have either not thrusted or did not thrust in time.

  3. Client soft changes. To keep fluidity, client may forcibly shoehorn incorrect changes to game world if the ping is low enough. Host assumes the incorrect change will not impact the game negativley because the ping is low enough. I don’t need to explain to you how in so many situations this is bad if the client shoehorning packets has a bad connection.

  4. Rewind time. Host stores past game states for certain length of time, then rewinds player locations when processing a command. The server uses the latency of the player to rewind time by an appropiate ammount in order to determine what the shooting client saw when they fired. The price of this is an aggravation of the effects of latency when a player is under fire. Not only does their latency play a part, but their attacker’s does as well.

So you may have a 50 MS ping, and your attacker has a 50 MS ping. You may be killed by your attacker a full second after you take cover by this system.

One design issue that arises from rewinding is whether to stop rewindng a dead player’s lagged commands as soon as they die on the server, or to continue running them until they catch up to the time of death. Halo 4 allows a large window for a dead player’s commands to catch up.

A notable example is if you kill a player in CQC and they throw a plasma grenade. To you, they have already faceplanted the ground, but to them they throw the
grenade at you before they die. The result is you witnessing a sticky kindly manifesting on your torso piece a second later after your victim dies.

All of these things by themself…aren’t that bad, and can even help in some cases. But all of these lag compensation mechanics work in tandem together. You may narrowly avoid an ‘extrapolation soft change rocket’ one second, but then die in CQC from a ‘rewind time sticky’.

To be honest, it’s quite literally BS. If you have a good connection you get booned over. Those who have bad connections are catered to and can do better. They can force WRONG information in their favor, their side can predict WRONG player actions and act like it happened, and a lot more.

I guess the moral of the story is, if you want to do better at Halo 4, downgrade your connection.

Do you have any proof with this post?

Do you code for 343i?

> I guess the moral of the story is, if you want to do better at Halo 4, downgrade your connection.

CCNA ‘101’. So sad but so true. Not sure if my understanding of how the netcode/networking actually works pacifies my rage or enhances it.

> Do you have any proof with this post?
>
> Do you code for 343i?

Do you not believe a human can observe?

So if this same “sometimes you’re the dog and other times your the lamp post” thing has been happening since Halo 2…

I understand now. Bungie was horrible at it as well.

I have a downgraded connection and I can tell you, downgrading for one game is the worst thing to do. Also, it doesn’t work. Since the first real patch that went up on Monday, I now lag out of matches again. There are times where I lag so hard, it looks like every one in the match quit then my random death makes me look so horrible.

This is through a Dial Up DSL connection.

> So if this same “sometimes you’re the dog and other times your the lamp post” thing has been happening since Halo 2…
>
> I understand now. Bungie was horrible at it as well.

Halo 2 simply had bad net code, but the better connection did better unlike in 4.

sad thing is, this post with some decent information will probably be buried by the mindless trolls and whiners. I do seem to have a problem with rewind stickies.