The shaft strikes again!
Hey, hey guys. Those of you who have watched the end 100%s or e4m8 Eh will probably know what lightning bug is about. But for others, here's a short description...
Lightning bug was discovered quite some time ago. The first demo to use it is the Cheated e4m3 nh in 2:34. The first non-cheated, proper demo to use that was end_056 EH. What does this trick do, exactly? It allows you to kill monsters through walls et cetera, everything with lightning gun (called 'shaft' by many people). To see what it can do, watch those demos:
Let's start with the rough technicalities. What makes the bug happen? A small inconsistency in the code. Apparently, the designers of Quake wanted to make the beam a lot, lot thicker. It was meant to be consisting of three beams packed tight near themselves, to form a bigger beam. There is another relict in the code that shows that: it is impossible to deal damage with two beams to one monster at any given frame. Probably designers wanted a thicker beam that would consist of three beams, so that it could damage three monsters in a line.
But, but. What is that inconsistency in the code? "The lightning has three trigger fields, one which starts directly from you, the other two are offset slightly. Those offsets are what make the odd shots work. Now I get it. The lightning itself doesn't go through the wall. It's those two extra trigger fields I mentioned that do. They can appear some distance away from yourself. The code calls normalize on the vector, but it doesn't store the result. Meaning the vector is way too big for the operations that follow. Allowing you to embed it deep into walls." And later he said: "basically, it calculates a vector which is based on your beam angle and length. the 'other' two beams are generated by adding this vector or subtracting it from the 'real' beam." (LagDotCom).
The natural question, why did the designers add that is answered by me above. It was supposed to make the beam thicker and make it possible to damage three monsters in a line. But, for those that know some things about coding, here's the bug in the code:
The code in Quake:
f = p2 - p1;
The correct code:
f = normalize(f);
p1 is you, p2 is the beam end point.
And now something for humans...
So, as explained in the paragraphs above, there are three beams: one is visible, the others are not and basically go into the fairyland. To show the power of this trick, I have made a special kind of run. Look at this demo. It's a 100% kill through e4m8 on easy difficulty. It's my second run through it like that, and it's completely cheated, as I used impulse 254, god and impulse 9 all the time. However, what's so good about it? Well, almost every monster is killed without getting aimed at, now this is what I call abusing the bug.
There are two basic kinds of the way this bug works. The first one is the predictable, rough pattern I use to kill almost every enemy in this demo. The second is the 'anomaly', which is also in that demo, and in the demos I have shown at the beginning. Shambler kill through wall is like that... Let's start with the easier to explain one, shall we?
The usual stuff
The usual stuff in here means stuff with which I kill most enemies in lbug.dem. It's so easy to plan for I don't need specific angles, I just calculate on the fly. Finding good angles CAN be a pain sometimes, but it's not so major in this mode of shooting. A few principles:
The anomalies are places where you don't need to aim at the 180' boundary. You can see quite a few in the demos, they mostly follow the same pattern of mouse movement, but it's not exactly easy to predict where will they appear.
Pictures and charts and diagrams