Halo 3 AutoUpdate
Posted by Frankie at 2/19/2008 5:45 PM PST
Multiplayer Design Lead Tyson Green checked a week ago in with a lengthy explanation of the melee system in Halo 3, how it’s different from Halo 2’s what worked about both versions, what didn’t work and how it’s being addressed by the auto update. here's a reminder of what he explained.
Tyson says:
The Short Version
Melee contests will only produce a winner if he has a sizeable health advantage over the loser. Otherwise, both players may die in the clash.
What Halo 2 Did
Put simply, in Halo 2, whoever threw the first melee won. Sounds perfect, right? Not quite.
Get your Einstein on, we’re going to talk about relativity. Specifically, the relative observations of host versus client. In Halo 3, across our entire population, we observe an average latency between host and client of around 80-100ms, which is around three frames. Assuming 90ms of latency, consider what happens when the host and client both throw melee attacks at exactly the same time. The host will see the client’s melee attack as many as three frames later, while the client will see the host’s melee attack three frames later. Who attacked first?
Well, in the halcyon days of Halo 2, the host made that determination. Which means his melee was first and the client lost the melee fight far more often than they should have. And in the event of two clients attacking simultaneously, the one with lower latency to the host would appear to have attacked first, and would be the winner. In a peer-to-peer environment with latency, it is nigh impossible to determine exactly who attacked first.
Over Halo 2’s three years online, many people adapted and got used to preemptively throwing a melee, but it was still fundamentally unfair in favor of the host or people with faster connections.
So, to be clear and upfront, we will not be returning to those days of letting the host win when the outcome is in doubt, aka. first melee wins.
The Halo 3 “Fix”
In Halo 3, there is explicit special treatment for what is called a “melee contest”, which occurs when two melee attacks occur almost simultaneously. Specifically, when the host starts to throw a melee attack, there is a short window after that (three frames, or approximately 100ms) during which the host will watch for a retaliatory melee attack. If one arrives inside that window, it is a contest. Besides smoothing out the latency differences between clients (it works the same way when one client melees another), this allows a client with a ping as high as 100ms to compete with the host on a far more even footing than Halo 2 allowed.
So now we have the contests, but how are they resolved? Having determined that we cannot trust timing in an environment with latency, we instead use the remaining health (including shields) of the contestants as the tie-breaker. This is about as fair as you can get, within the conventions of Halo—the guy who did more damage comes out on top. Specifically, the winner of the contest still takes melee damage from the loser, but is protected from death and lives to fight another day.
On paper, this method addresses the host advantage (among others) and is scrupulously fair. There’s just one problem:
The Fatal Flaw
Halo 3’s system is inscrutable. This is most famously illustrated by a splitscreen film (eliminating latency as a factor) of two players running at each other, firing, and throwing melee attacks on the same frame. One drops dead, and it isn’t clear why, so the result is declared to be random. The real reason is, of course, that one player landed one or two more bullets than the other, but that isn’t anywhere near obvious.
Any time you have a game system which players cannot understand, it might as well be random. No matter how fair the tiebreaker may be, if a single Assault Rifle bullet can slip by and decide the outcome, it might as well be random. And randomness is a poor substitute for tactics and skillful execution.
Addressing the Flaw
We considered and ultimately rejected some ideas that could have made melee contests produce a less inscrutable result. A major consideration was that we wanted to minimize the impact on how Halo 3 plays to the greatest degree possible, while still addressing the problem. Radically changing the mechanics of melee combat is not something we want at this point.
Ultimately, the change is targeted at the unpredictable outcome of a contest. Simply stated, it works like this: when a melee contest occurs, and both players are close to the same health (including shields), no special protection is given to either player. This means the outcome of a close melee contest can be death for both participants, but that a player who decisively injures his opponent prior to closing for a melee will continue to enjoy the victorious outcome.
For those of you uninterested in the precise details, the upshot is this: if you close for a melee attack and are at a clear advantage (or disadvantage), the outcome will be clear. If the outcome is unclear, too close to call, you will likely trade kills with your victim. But you should no longer watch your opponent saunter away for no clear reason (and if you do, check the film—it tells all.)
The Nitty Gritty
If you’re still reading, you’re probably interested in some details, so we won’t skimp.
A player in MP has a grand total of 115 hit points (to adopt a common term.) 45 of these are body hit points, 70 are shield hit points. For reference, a single AR bullet does 7.5 points of damage, and a BR bullet does 6. A melee attack does 70 for most weapons, with some weapons (notably the Brute weapons) doing 72.
When entering a melee contest, the combined body and shield hit points are compared. If the difference is above a threshold, then one player is determined to have won decisively and is protected from death. After testing with a variety of weapons, we settled on a threshold of 26.5 hit points (slightly rounded.) This translates into 4+ AR bullets worth of damage to decisively win a melee contest, instead of simply having 1 more hit point than the other guy.
There is one more wrinkle to this: your invisible body hit points do recharge, but at a different rate from your shields. While ordinarily this is a non-issue (we’ve always made this largely transparent), it can affect the outcome of a contest. For those of you keeping score, body hit points start regenerating 10 seconds after last taking damage, at a rate of 9 hp/sec. So if your shields are up but you’re fresh from taking a beating, you could still be in trouble in a contest.
YMMV, etc.
Despite our best efforts, this system cannot cover all cases: if your latency is beyond 100ms, you can still get into situations where the host legitimately believes that your melee did not arrive in time. In testing, we did catch a couple of films where perfectly balanced, simultaneous melee attacks produced an unexpected winner. But these were films recorded by the client—the host film told a different story, showing a very late melee.
The moral: when in doubt, check the host’s film, because latency still matters. Just a whole lot less than Halo 2.
Also, while we were in there, we excised a BXB-style glitch before it gathered popularity, and fixed that strangeness where bodies would be hurled with unearthly force by a mid-melee death. We sincerely apologize to people who enjoyed the latter bug—it was pretty funny."
Klik om te vergroten...