Here's a theory with a LOT of premises that may be completely wrong and even more false claims [all marked as purple]:
Let's assume the Health of the characters in the Halo games is represented by a number - because that just makes sense.
In computer programming there are various types of variables. Different languages have different types and call them different names.
The standard type for integer numbers (eg: 343) is the
int.
Because computers (or any other programmable environment) are limited in memory, variables are also limited in the memory they occupy, ie, their physical size.
Because of that (and I'm gonna talk about the environment I know best - the Arduino [a mini-
mini-
mini-computer with just 32 KBytes of memory]), the int type can only hold a number
from 0 to +65535 if the programmer predefined it to be always a positive number (called an
unsigned int), or
from -32767 to +32767 if the programmer predefined it to be either a negative or a positive number (called a
signed int).
>These ranges are for the Arduino. I'm pretty sure the values are much greater on a normal computer - I think it's from 0 to (2^32 - 1) for an unsigned int.
What if you have an unsigned int with the value 65535 and you add 1? Will the result be 65536?
No. If this ever happens, the unsigned int will ROLL OVER back to its minimum value, 0.
If you sum 65535 with 2 the result will be +1.
If you sum 65535 with 118 the result will be +117.
This also happens negatively:
If you have an unsigned int holding the value 0 and you subtract 1, you get +65535.
If you have a signed int holding the value -32767 and you subtract 1 you get +32767.
Now, what does this mean?
Let's imagine our Elites and Marines are just like the normal Halo 3 Elites and Marines but, whoopdy doo, they're dead. D-E-D.
This means they have 0 Health Points. But, because
they're already dead when they load, ie,
they don't fall right after loading,
they must have negative Health Points, because
the 0 Health Points value triggers the Dying animation and audio.With that in mind, we can conclude that
the variable that holds the Health Points of the characters in the game is a signed int.Now, what is Zombieliting:
Zobieliting is dealing enough damage to dead characters to make their Health Points variable ROLL OVER.
You deal so much damage and the Health Points grow so negative that the variable runs out of memory and it has to go back to its maximum (a positive number), resurrecting the character.
Q: Why do we have to use grenades, then?A: Because grenades deal a ton of damage. According to
this Halo: CE guide, the damage of a Frag Grenade varies between 80 and 120 points.
According to
this B.net News, "a player in [Halo 3] 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."
Now, it's a long walk to -32767 if you go 120 points at a time. Even longer if the ranges in the Xbox system are bigger.
That's why I think the grenade damage is exponential: the more explosions happening, the higher the damage each one deals. With many grenades exploding at the same time, the easier it is to reach the maximum negative value the HP variable can hold.
Q: Could we Zombify a character with an AR?A: According to my theory yes - if you had unlimited ammo.
Q: What if we tried punching the characters?A: It'd take you 469 melee hits if the int type had a maximum size of 2 bytes (ie, if you had to reach -32767). It'd take you 30678334 melee hits if the int type had a maximum size of 4 bytes (the most probable).
Good luck with that.
Q: Why didn't this happen in previous Halo games?A: Because after a set amount of time and damage a dead character would despawn. Because in ODST Bungie didn't want these bodies to despawn (because they're part of the environment and they set the mood and all that), they deleted the line that despawned the bodies after x time had elapsed and after x damage had been dealt, making it possible for us to Zombify them.
Possible facts that render this theory impossible: - Dead bodies don't subtract health points after being hit. Note: they ARE hit, otherwise they wouldn't bleed.
Possible facts that might make this theory more probable: - The type of the variable that holds the value of the Health Points isn't an int, but a smaller one - like a char. Chars only occupy one byte of memory and have a range of -127 to +127 or 0 to +255.
This would make it easier for us to roll over the variable and would mean the grenades' damage isn't exponential (which was a bit weird in the first place..).
There's a problem, though: the Wraith must have a total of Health Points higher than 255. This either means Bungie used a different type to hold the Wraith's HP or they used damage multipliers smaller than 1 (like 0.40) or they simply didn't use Chars for anything.