This repository has been archived by the owner on Nov 14, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbfg-faq.txt
1470 lines (1131 loc) · 66.3 KB
/
bfg-faq.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
=============================================================================
THE _/_/_/_/ _/_/_/_/_/ _/_/_/_/
_/ _/ _/ _/ _/
_/ _/ _/ _/ _/
_/_/_/_/ _/_/_/_/ _/
_/ _/ _/ _/ _/_/_/_/
_/ _/ _/ _/ _/
_/ _/ _/ _/ _/
_/_/_/_/ _/ _/_/_/_/_/ FAQ
================ The BFG FAQ, Version 2.1, January 22, 1998 =================
Frequently Asked Questions About the BFG9000
By Tony Fabris
http://www.oro.net/~tfabris
Contributors, in alphabetical order:
Doug Bora ....... Content, Editing, Proofing
Tod Bouris ............ Content, Playtesting
Bernd Kreimeier ...... Recent Technical Data
Chris McAllen ......... Content, Playtesting
American McGee ........ Early Technical Data
Randy Pitchford ........ Quake 2 Information
Dean Stretton ..................... Proofing
================================= Disclaimer ================================
This text is intended to give the public information about some elements
of the computer games Doom, Quake, and their sequels, by id Software.
This text was not written by id Software, so bugging them about its
contents is probably a very bad idea.
Additionally, the computer games referenced in the text are of an adult
and graphic nature. In no way is this text intended to promote violence
of any kind. Any references to violence in this text are meant in
relation to the playing of the computer game, not real violence. The
author is adamantly non-violent.
Additionally, this text is being presented in the form of a computer
file. Any illegal or damaging activity related to the use or transfer of
this or any other computer file is not the responsibility of the authors.
=========================== Trademark Information ===========================
All specific names included herein are trademarks and are so
acknowledged: id Software, DOOM, DOOM II, THE ULTIMATE DOOM, QUAKE,
QUAKE 2. Any trademarks not mentioned here are still hypothetically
acknowledged.
============================= Copyright Notice ==============================
This article is Copyright (c) 1998 by Tony Fabris. All rights reserved.
You may make and distribute copies of this work in original form, so long
as the copies are exact and complete, the copies include the copyright
notice in its entirety, and the copies are in electronic form. You may
not charge any sort of a price or fee relating to any copies of this work
in any form.
=========================== Table of Contents ===============================
Preface
Section 0 - Introduction
0A. What is this FAQ about?
0B. How was the information is this FAQ obtained?
0C. How accurate is this information?
0D. Where is the latest version of this and other FAQs?
Section 1 - BFG Basics
1A. What is the BFG9000?
1B. What does 'BFG' mean?
1C. Where can I find the BFG in the game?
1D. What is the cheat code for the BFG?
1E. Why is the BFG missing in my version?
1F. What's this I hear about the original BFG?
Section 2 - The Direct Hit
2A. What is a direct hit?
2B. How much damage does a direct hit do?
2C. What are the limitations of a direct hit?
Section 3 - The Blast Area
3A. What is the blast area?
3B. How much damage does the blast area do?
3C. How long does the blast effect last?
3D. How exactly does the blast area work?
3E. What are the limitations of the blast area?
3F. How many targets can it hit?
3G. How does altitude affect it?
3H. If I am only partially exposed, do I only take partial damage?
3I. What happens if the attacker is fragged before detonation?
3J. What about multiple BFG shots?
Section 4 - Deathmatch Techniques
4A. What is considered unfair when using the BFG?
4B. What is the best way to defend against the BFG in a deathmatch?
4C. What is the best way to attack with the BFG in a deathmatch?
4D. What is the Silent BFG trick?
4E. What is the Level One Strafe trick?
Section 5 - Submitting Corrections
5A. Common misconceptions
5B. I think the FAQ is in error. How do I get it corrected?
Appendix A - Quake Mods
Quake 1 BFG Mods
Appendix B - Quake 2
The Quake 2 BFG10K
=============================================================================
-- Preface ------------------------------------------------------------------
Well, I just got my reply from Bernd Kreimeier, so I think the last few
missing details about the BFG's behavior have finally fallen into place.
He was extremely helpful, and pointed out a couple places in the Doom
public code release that answered my questions. Specifically, we've now
got the exact time delay, damage, and range limitation information.
Thanks, Bernd!
And to add icing to the cake, Randy Pitchford and I have nailed down
the last few details about the Quake 2 BFG10K, so I've fleshed out that
section as well. Thanks, Randy!
This BFG FAQ has been a very unique project for me. Its development
cycle has spanned over two years, and it's been through many revisions.
Thanks to all the folks who e-mailed me about it, and the folks who
contributed.
I think my favorite part of this whole thing was seeing all the other
"Doom specific weapon" FAQ files appear on the net after the BFG FAQ
came out. All the way down to the "Pistol FAQ". The first one, I
recall, was originally intended as a joke... it was a "Rocket Launcher
FAQ" that started out as a satire of the BFG FAQ. It was hilarious,
and even had satires of the ASCII diagrams. Now these files are actual
legitimate FAQs in their own right.
When I first undertook this project, it was simply because I couldn't
get a straight answer to the question, "How does the BFG work" on
usenet. Now it's taken on a life of its own. With the Christmas
release of the Doom source code (Thanks, id!), I guess the whole
thing has come full circle.
It's been a fun ride!
-- Section 0 - Introduction -------------------------------------------------
0A. What is this FAQ about?
A FAQ file, stated simply, is a Frequently Asked Questions file.
This FAQ file describes, in as much detail as possible, the behavior of
the BFG9000 weapon in the MS-DOS version of the games Doom, Doom II, and
The Ultimate Doom. It is not intended to answer general questions about
the game itself. Please refer to the other FAQ files for help in other
areas of the game. You can also frequent the rec.games.computer.doom.*
newsgroups for more information.
We began writing this FAQ out of necessity. We were frustrated at the
apparent inconsistencies in the way the weapon seemed to behave during
game play, especially during deathmatches. There were times when we
would get killed by the weapon when we thought we were completely safe.
Conversely, there were times when we thought we had used the weapon
correctly against an opponent, but they walked away unscathed.
Our intent is to provide players with enough information to attack
effectively with the BFG, and to correctly defend against it in a
deathmatch. Our hope is that this information will give players a new
attitude toward the weapon. We want to transform it from "The weapon we
love to hate" into "The thinking man's weapon".
With the 1997 release of both the Doom source code and the sources for
the Quake 2 game DLL, this FAQ will hopefully provide accurate
information for all versions of this unique weapon.
0B. How was the information in this FAQ obtained?
Initially, the information came from playtesting Doom. We would simply
theorize about the weapon's behavior and then test the theory on the
network.
Testing was performed on Pentium computers running the MS-DOS versions
of Doom II and The Ultimate Doom. Tests were done both in single player
mode and in 4-player deathmatch mode. Testing was performed on the
regular levels as well as custom made levels. In some cases, a special
.WAD file was created to test situations that would be difficult to
reproduce with the regular levels.
At one point early in the development of the FAQ, we exchanged some
emails with American McGee at id Software. He filled in some very
important details for us-- for example, until American told us about
it, we didn't know that the game used a set of damage traces to
calculate blast area damage. His help was invaluable in putting
this FAQ together and getting it off the ground.
Recently, I was able to ask Bernd Kreimeier some specific questions
about the code. His answers, I hope, have cleared up any ambiguities
in the details.
0C. How accurate is this information?
Fairly accurate. Accurate enough to base your playing strategies on.
However, it has not been tested with every single version of Doom, and
there may be differences among platforms.
Then there's the issue of the Doom public code release. That code was
"cleaned up" by Bernd Kreimeier, who was given the sources by id
Software to prepare it for a public release. Bernd tells me that he
did not change the BFG code in the cleanup process, but the sources
are from a later date than the original commercial releases of Doom
and Doom 2. In his words:
It is the January 10th, 1997 version - a few TNT/Plutonia mod's have
been done in this code base, but I am in no position to confirm
whether this affected the BFG code. I never looked at that part
of the code, nor changed it.
Until I hear otherwise, I'm going to assume that the public code release
contains the same BFG behavior as the commercial releases. Everything
you see in this FAQ will be based on the old playtesting we did in 1995,
cross-referenced against the sources found in the 1997 public code
release.
Finally, now that the folks are modifying, compiling, and releasing
their own versions of Doom, who knows what they might change? The BFG
was an infamous feature in Doom, and will likely be the first target
for modifications. So read those README.TXT files before you play
a modified Doom.
Despite all of that, some items in this file may still be conjecture.
Please see section 5 if you suspect this FAQ contains erroneous
information.
0D. Where is the latest version of this and other FAQs?
The latest Doom-related FAQ files and other documents can be found at
all of the Doom mirror FTP sites. The central location for the Doom
mirrors is at ftp.cdrom.com. However, that site is usually quite busy,
and you may need to locate another mirror site from which to download.
Listing all the mirror sites is beyond the scope of this document.
See the 'DOOM: Rec.Games.Computer.Doom FAQ' or 'DOOM: FTP and WWW
Sites' postings in the rec.games.computer.doom.* newsgroups for a
complete list.
The URL of the directory that contains the Doom FAQ files (usually in
TXT format, compressed in a ZIP file) is:
ftp://ftp.cdrom.com/pub/idgames/docs/faqs/
The latest official version of the BFG FAQ is also posted monthly to
the rec.games.computer.doom.announce and .playing newsgroups. This is
part of the RGCD Periodic Information Postings (PIPs). If your news
server does not keep the articles long enough for you to find one of
the PIPs, they are archived at:
ftp://ftp.cdrom.com/pub/idgames/docs/rgcd-pips/
The official location for the hypertext version of the BFG FAQ is
DoomGate on the World Wide Web. Check it out here, along with some
other good documents:
http://doomgate.gamers.org/docs/
-- Section 1 - BFG Basics --------------------------------------------------
1A. What is the BFG9000?
The BFG9000 (or BFG) is arguably the most powerful weapon in the computer
games Doom, Doom II, and The Ultimate Doom. It is also the most difficult
weapon to use well in a deathmatch (multi-player competition), because it
does not behave in a simple 'point and shoot' fashion.
When you have it in your arsenal, the BFG is selected by pressing the 7
key on your keyboard.
When you pull the trigger, there is an excruciatingly long pause as the
weapon warms up. Then a large green ball of plasma is emitted from its
barrel. The plasma ball flies in the direction you fired it until it hits
a target or a wall. Like all weapons in Doom, it will fly straight
through decorative objects like torches or trees.
When the green ball hits a solid object, it detonates and does two types
of damage: Direct Hit and Blast Area. Each damage type is outlined in
its own section, later in the FAQ.
1B. What does 'BFG' mean?
The general consensus is that BFG stands for Big Fragging Gun. Well,
that's the G-rated version at least. Hank Leukart's Official Doom FAQ
(the one that ships with the game) says so.
So is "Fragging" a deliberate softening of another famous F-word? Maybe.
But the term "frag" is an actual word, and it's used in Doom to
represent a confirmed kill in a deathmatch game. This comes from the
idea that in a deathmatch, you are killing your fellow space marines.
The definition of frag is:
frag Slang. Verb, transitive
fragged, fragging, frags
To wound or kill (a fellow soldier) by throwing
a grenade or similar explosive at the victim.
That's not to say that the the word Frag isn't often interchangeable
with the other word. And, of course, the Quake 2 manual calls the new
BFG10K the "Big, uh, freakin' gun."
Other good name suggestions that have found their way to the authors
are "Big Funny Gun" (Chris Somers) and the much more logical "Blast
Field Gun" (William D. Whitaker). I'm sure there are thousands of names
you could invent for it...
1C. Where can I find the BFG in the game?
Listing all the locations that the BFG can be found is beyond the scope
of this document. For detailed information on the location of all
weapons, please consult the other FAQ files. Keep in mind that the BFG
appears more often in deathmatch games than it does in single-player
games.
1D. What is the cheat code for the BFG?
While you are playing the game, type the keys IDKFA to give your marine
all weapons, keys, and ammunition. Then press the 7 key to select the
BFG.
Note: This cheat code is disabled in multi-player games and single-
player nightmare-skill games.
1E. Why is the BFG missing in my version?
If you perform the above cheat correctly, but do not get the BFG, you
may be playing the shareware version of Doom. You must purchase the
commercial version of Doom from a retailer or id Software before the
BFG can glorify your screen.
1F. What's this I hear about the original BFG?
The current version of the BFG is not the way id's designers
originally envisioned it. The BFG behaved quite differently in a
pre-beta release of Doom.
It worked by shooting multiple streams of different types of plasma
and fireballs. Because this required an unusually large number of
moving objects, it tended to slow down the game. Therefore, the BFG
was redesigned with the invisible blast area that is used today.
Recently, these early Doom versions have been distributed on the
internet. You can find screen shots and downloads at:
http://www.classicgaming.com/doom
If you want to download the one with the special BFG, get the
October 4th, 1993 press-release version.
-- Section 2 - The Direct Hit ----------------------------------------------
2A. What is a direct hit?
A direct hit happens when the BFG's green plasma ball directly hits
a target. The target can be a monster, an exploding barrel, or an
opposing player in a multi-player game.
2B. How much damage does a direct hit do?
A direct hit with the BFG causes a random amount of damage between
100 and 800 points, in 100-point increments.
The base damage value for the green ball is 100 points, which gets
run through the missile damage randomization routine:
damage = ((P_Random()%8)+1)*tmthing->info->damage;
Note that the above code results in damage values in 100-point
increments, i.e., 600 or 700, but not 666.
A note about skill levels: Testing seems to show that weapons always
do the same amount of damage to monsters, but that the player objects
can absorb the weapons better at lower skill levels. Therefore, it
takes more shots to kill a player at lower skill levels, and fewer
shots at higher skill levels. This is why some players prefer to
deathmatch at the higher skill levels: The frags are quicker that way.
The Doom public code release bears this out. They perform a right
bitshift (a fast way to divide an integer by two) on the damage value
as follows:
player = target->player;
if (player && gameskill == sk_baby)
damage >>= 1; // take half damage in trainer mode
And of course, armor is a factor as well. Depending on the type
and the amount of armor worn by a player, some armor will be
subtracted in lieu of health.
If your target is lucky enough to survive a direct hit, he is still
susceptible to damage from the blast area. This happens sometimes in a
deathmatch. Since there is a brief pause between the direct hit and
the blast area calculation, your victim may go through several stages
of fear and elation in the space of one second:
1) Victim sees the BFG coming towards him (Uh-oh.)
2) BFG scores a direct hit (D'oh!)
3) Victim realizes he has miraculously survived (Woo-Hoo!)
4) The flash damage kills him a moment later (D'oh!)
2C. What are the limitations of a direct hit?
The direct hit is not limited by the same parameters as the blast area.
There is no range limit, and the damage does not decrease with distance.
The hard part is that the BFG's plasma ball travels at a fixed speed,
and can be avoided by an alert deathmatch player. The reference number
for the BFG ball's speed, as stored in the .EXE file, is 25. For
comparison, rockets travel at 20 and plasma gun shots travel at 25.
If it seems like this is too fast, and would not be easy to avoid,
remember that the plasma gun fires in a continuous stream. The BFG can
only be fired once every few seconds. The BFG's green ball is also very
bright and large on the screen. All of those factors make it generally
easier to avoid in a deathmatch game.
A direct hit in a deathmatch (against good players) is usually the
result of luck, or the result of a player that did not know the BFG ball
was coming towards him. See section 4 for details of a trick that can
help you achieve the latter scenario.
The direct hit can only damage one target. If there are two targets
very close together, the green ball can only hit one of them directly-
whichever one it touches first.
-- Section 3 - The Blast Area ----------------------------------------------
3A. What is the blast area?
After the green plasma ball detonates, and after the damage is calculated
and deducted from the target that received the direct hit (if any), the
area effect of the BFG is calculated. Targets that fall within a
specially defined area will take varying amounts of damage.
Simply put, the blast area is like an imaginary 'cone' or 'fan' of damage
traces that briefly extends outward from the attacking player. The cone
always points in the direction that the weapon was fired. For instance,
if you originally fired the weapon in the northwest direction, the cone
will always face northwest, regardless of which direction you're facing at
the moment of detonation.
Note that this does not mean that the attacker must continue to face in
that direction. The attacker is free to turn away from his targets, as
long as he moves to a position that keeps this imaginary cone pointed at
them. Common misconceptions are that you must be facing either the targets,
the detonation point, or the same direction as the weapon was fired. None
of those things are necessary in order to inflict damage.
Also note that this imaginary cone has no relation whatsoever to the
detonation point. The location of the detonation point is only important
for the direct hit (see section 2). Only the moment of detonation is
important, not the location. It is possible to have the green ball
detonate twenty miles away in a completely different room at a totally
different altitude, but the blast can still cause damage right next to
you.
The paragraphs above cover the basic concepts of the blast area. More
detailed information can be found in section 3D, below.
3B. How much damage does the blast area do?
Since the Doom public code release, I'm revising this section.
Originally, we were told that there were 20 traces, each doing a
random amount of damage between 5 and 15 points. But now that I look
at the public code release, it's telling me a different story. I've
confirmed this with Bernd. The function "A_BFGSpray" is pretty simple,
and here's how it works:
There are 40 traces, and each one does 1-8 random points of damage in
a 16-iteration loop. Meaning each trace will do between 16 and 128
points of damage.
Because these traces radiate outward from the attacker in a fan shape,
a target will more likely be hit by a given trace if he is close to
the attacker. Therefore, targets closer to the attacker will generally
take more damage because they are hit by more traces.
If a target is very close to the attacker (for instance, standing right
next to him), the target might be within the hit range of all the
traces. The amount of blast area damage in this situation would be
between 640 and 5120 points. However, all traces would not necessarily
be absorbed by that target, and might move on to other targets. See
section 3F, below, for more information on this phenomenon.
A note about random numbers:
A phenomenon known as the 'bell curve' happens when you combine the
outcome of multiple random numbers. Players of book-and-paper role-
playing games may recognize it. In those games, you would often use
three dice to generate a random statistic. In theory, adding the three
dice would generate a random number between 3 and 18. But in reality,
the actual results would be weighted towards the middle of the range,
around eleven. The odds of getting a three or an eighteen are rare
because you'd have to roll 1+1+1 or 6+6+6. There's only one possible
combination for each outcome. On the other hand, rolling an eleven is
relatively easy: 6+4+1, 5+5+1, 3+3+5, etc. If you were to graph the
outcome of a thousand rolls, the graph would be shaped like an arc or
a bell, with more rolls coming up in the middle of the range of
possible values. Hence the name 'bell curve'. The role-playing games
use this to make certain random statistics more fair.
This applies to the damage traces, as well, because they are
essentially a group of multiple random numbers. For instance,
although the possible damage for a single trace is 16-128, the
odds are that the total damage from a trace will more likely be
around 50-60 points, due to the bell curve. The odds of doing
full or minimum damage in that situation would be extremely rare.
Actually, if you look at the Doom code, you'll find that even the
random numbers aren't random. They're "pseudo-random", and for a very
good reason: So that all four computers in a multiplayer game can be
synchronized. They pull the random numbers from a table whose index
changes each time it's accessed. Looking at the table, it's obvious
that there are no "runs" of all low or high numbers, so it's not only
unlikely that full or minimum damage would be done, it's actually
impossible in the current code.
3C. How long does the blast effect last?
The blast effect is instantaneous, but it does not activate until
the "S_BFGLAND4" frame plays. This can be seen in the source code
in the frame/action pointer table in "info.c".
What this means is that the "A_BFGSpray" function is triggered 16
game tics after the first death frame of the direct hit was
started. Assuming a game tic is 35 frames per second, then the
blast effect is calculated 0.4571428571429 seconds after the
detonation. Which, Captain, if I had any emotions, I'd be excited
about.
But what about the other thing?
Oh, you mean, when someone is running out from from behind a corner,
and it looks like the blast area should have missed them, but it got
them anyway? How can that be? They ran out from behind the corner
after the blast area was calculated!
Well, it's been a while (two years) since I LAN-playtested this
phenomenon. We were never able to nail it down under controlled
tests. The "A_BFGSpray" function calculates completely within a
single game tic, and if there's a slow computer in the game, all
of the computers will freeze until the slow computer is done with
its blast area calculations.
The only thing I can figure is, the guy's radius (which is larger
than his visible sprite) was within sight of the damage traces.
He took damage while he still seemed to be behind the corner, even
though he wasn't. More on this phenomenon below.
3D. How exactly does the blast area work?
The blast area is a spread of invisible traces that radiate outward
from the attacking player. The damage for the traces is calculated
shortly after the green ball detonates against a target or a wall.
Here's the code for the function in the public code release. I've
waited two years to see this:
void A_BFGSpray (mobj_t* mo)
{
int i;
int j;
int damage;
angle_t an;
// offset angles from its attack angle
for (i=0 ; i<40 ; i++)
{
an = mo->angle - ANG90/2 + ANG90/40*i;
// mo->target is the originator (player)
// of the missile
P_AimLineAttack (mo->target, an, 16*64*FRACUNIT);
if (!linetarget)
continue;
P_SpawnMobj (linetarget->x,
linetarget->y,
linetarget->z + (linetarget->height>>2),
MT_EXTRABFG);
damage = 0;
for (j=0;j<15;j++)
damage += (P_Random()&7) + 1;
P_DamageMobj (linetarget, mo->target,mo->target, damage);
}
}
The traces radiate outward in an imaginary cone that is 90 degrees
wide. This is, coincidentally, about the same width as the player's
field of view.
Because the code uses "mo->angle" as the source for its angle, the
cone always points the same direction that the green ball flew. For
instance, if you fire the green ball in the southeast direction, your
cone of traces will always radiate towards the southeast.
However, because it uses "mo->target" as the source for its attacks,
the traces radiate from where the player is standing, not from the
green ball.
So...
Regardless of how much you run and turn between the time you fire and
the time the green ball detonates, the traces will always radiate from
your location. Think of it like a tank with a gyroscopically stabilized
turret: only the cone's origin point moves around with you, not its
direction. The cone's direction remains fixed on the same compass
heading.
From a technical point of view, the game engine does not actually keep
track of the cone while you're running around. That's just the effect
it seems to have. It simply uses the green ball's vector as the source
angle for the traces, and the player's current position as the source
location.
Note that the vector of the green ball's flight is based on what
direction you were facing when the ball leaves the barrel of the gun,
not when you pulled the trigger.
Here's a diagram of how it works:
* <- Blast
detonates \ Damage /
here \ Cone /
\ /
^ \ /
| \ /
| \ /
X X --> X
Attacker Attacker Attacker
fires BFG runs east is here at
northward detonation
Note that this diagram is foreshortened. The detonation point would
have to be quite far away in order for the attacker to be able to run
that far. But the principle is the same, regardless of how far the
green ball flies: The damage cone is calculated after the green ball
detonates.
When the green ball detonates, the traces are calculated one at a
time, using the same criteria for calculation that the engine might
use for a bullet: If there is a solid object (a wall, etc.) between
the target and the attacker, the trace is harmlessly absorbed by the
object. With one exception: In order to hit a target with a bullet,
you had to be facing the target. You don't have to be facing your
target in order to do damage with one of the traces.
Quick review:
- The cone of traces always points in the same compass direction, the
direction you originally fired the BFG.
- You sort of 'carry the cone around' with you as long as the green
ball is still flying.
- When the green ball detonates, the cone of traces does its damage
depending on where you're standing at that moment, and who is in
the cone.
- You do not have to be facing the targets to do damage, you only
have to maneuver into a position where the cone is pointing at your
targets.
3E. What are the limitations of the blast area?
Revision time. It seems as though there is a hard limit on the
range. Bernd says he thinks this line:
P_AimLineAttack (mo->target, an, 16*64*FRACUNIT);
actually limits the traces to within 1024 (16*64) game units.
It's been a while since I playtested this, so I don't remember if
I was ever able to register a hit when outside of this range.
Whether it actually limits the range or not, outside that range
it would become increasingly hard to get a single trace to land
on a given target anyway. So just deathmatch under the assumption
that you can't hit anyone outside 1000 units.
If you are unfamiliar with the Doom engine's units, remember that a
standard teleporter pad is 64 units across. Line up 16 of those and
you've got a basic idea of what 1024 units is.
The blast damage is also limited to targets that have an unblocked line
of sight to the attacking player. This does not mean the attacker must
face the target. It means that the attacker must be in a position where
his traces can see the target, i.e., he could see the target if he were
facing in that direction.
3F. How many targets can it hit?
The blast area can only hit as many targets as its traces can touch.
Originally, we stated that one trace can damage more than one target.
This was because we did tests where a single shot killed 25 imps. But
that was back when we thought there were only 20 traces. Now that we
know there's 40 traces, it seems as though the number of objects that
can possibly take damage is 40.
Of course, in regular game play, rarely are that many targets standing
in such a perfectly aligned pattern. Usually, some individual targets
will soak up more than one trace, while other traces miss targets
completely.
The traces are calculated on a 'first come, first fragged' basis. For
each trace, the damage is calculated and subtracted from the target,
and the target dies if there's enough damage. Then the engine moves
on to the next trace.
Here is how it works:
(Please note: In the discussion below, we refer to 'line of sight'
loosely. Remember that the attacker does not need to be facing his
targets to inflict damage.)
In the following scenario, imagine that the attacker is standing in a
direct line with several targets (imps, perhaps) lined up in front of
him, and the green ball detonates on a wall somewhere:
Attacker: X-> X X X X X X X Detonation point: X
(Imps)
The first couple of imps are close to the attacker. They crumble, having
soaked up some of the traces that are pointing ahead of the attacker.
The next few imps are a little further away, and absorb some more of the
traces, but not as many. They absorb fewer traces for two reasons:
1) because the imps in front of them absorbed some of them
already, and
2) because they are farther away and the traces are more
spread out.
But they still die. The next imp gets damaged, but does not die. He has
soaked up the last trace that was headed in that general direction. The
last imp is not damaged at all because there are no more traces left in
his direction.
In order for the above scenario to work, the targets must be perfectly
aligned. For instance, in the following scenario, all of the targets take
full damage, because there's no one in front of them to soak up traces.
X
Attacker: X-> X Detonation point: X
X Y
The one target in the back (Y) is still susceptible because it is not
blocked by another target. The attacker can see him through the gap. So,
for example, an imp standing directly behind a cyberdemon is fairly safe,
but an imp standing next to a cyberdemon is a sitting duck.
The moral to this story is: In deathmatch, do not depend upon other
players or monsters to absorb the BFG blast unless they are exactly
between you and your attacker. And you'd better hope they're very
healthy. In all other cases you take full damage.
3G. How does altitude affect it?
For the most part, it does not. With a few exceptions.
Again, in the discussions that follow, we refer to 'line of sight'
loosely. You do not have to face your targets to hit them.
If a difference in altitude brings your target out of the sight of your
traces, then yes, it makes him safe from the blast damage. But if your
traces can see any part of him, he takes full damage regardless of how
much higher or lower you are than he is.
As far as altitude is concerned, the traces seem to use the same
criteria as your view does to determine if the target is visible. In
other words, if both you and the damage cone are facing the target, but
the target is above the top of the screen, you can't hit him.
But there is a catch. The upper and lower angle limit of the traces
seems to be the same as your view would be if your screen was fully
zoomed in. For instance, if you are displaying the status bar at the
bottom of the screen, your view window is slightly cut off at the top
and bottom. Press the plus (+) key repeatedly to zoom all the way in,
and you can see what this means. The BFG's traces seem to use the same
angle as this full view does to determine if they can hit the target.
So if you've got the status bar showing, you can actually hit someone
who is off the top of your screen. If you are fully zoomed in, your
view seems to be an accurate representation of the damage cone's angle.
Note: The angle limit of the traces is not affected by changing your
zoom level. The traces use the same angle regardless of what your zoom
is. It's just that zooming all the way in changes your screen's
aspect ratio. So you can see more stuff at the top and bottom of the
screen, stuff that normally would have been hidden behind the status
bar.
If you are standing on a ledge above your target, and you are so close
that you can 'touch' him (i.e., you can't step off the ledge because
you're bumping into him), your shots will go right over his head and
the blast damage will not affect him. This is because, technically, the
traces can't see him. Well, if you could look down you would see him,
but you can't look down in Doom. Must be those darned restrictive space
helmets.
3H. If I am only partially exposed, do I only take partial damage?
No such luck. The only thing that reduces your damage is getting hit
with fewer traces. Here is how it works:
If you are hiding behind a decorative sprite (such as a tree or a
technical column) you are fully exposed. All weapons in Doom always
pass completely through decorative sprites.
If you are peeking over a podium, or partially obscured by a raising
lift, or a closing door, and only half or one-tenth of you is showing,
you still take the full amount of damage. The traces are calculated
based on the game's two-dimensional block map. As far as the game
engine is concerned, all of the traces can still hit you.
If you are hiding behind a vertical wall with your rear end peeking
out, I'm pretty sure you still take full damage because the traces
auto-aim at you. Tests seem to show that your distance from the
attacker is more important than how much of you is exposed.
Also remember that what counts as 'showing' may not be what you think.
The Doom engine uses the radius of the player to determine visibility.
Your player's aspect ratio does not change when you rotate. It also
seems as though your radius is slightly larger (in some cases) than
the sprite (picture) that represents your player. In tests, it is
possible to inflict damage upon a player that seems to be out of sight
(no visible pixels) but whose radius is large enough to count as
'visible' to the BFG traces.
3I. What happens if the attacker is fragged before detonation?
The BFG's traces are still active, even if the attacking player is
dead. So if you fire the BFG, then get fragged, do not press the space
bar to respawn your marine right away. Wait until the green ball has
detonated before you respawn.
Here's why:
Even after being fragged, you can still see the action from your fixed
point of view on the ground (your 'dead' state). The traces remain
active and can still frag an opposing player (hopefully the one that
fragged you). The traces will radiate from your dead body's 'eyes'.
The traces still follow the same rules, i.e., they radiate in the
direction the green ball was fired, regardless of which direction your
'dead view' is facing.
In a previous version of this FAQ, we reported that you will lose
the chance to frag your opponent if you respawn before detonation.
Several people pointed out to the authors that the statement was in
error. The traces remain active even after respawning. Testing shows
that the traces do, in fact, continue to radiate from the dead body
even after you have respawned in a completely different area of the
map. This testing was performed at the prompting of Kirby Nixon, who
insisted that it was true. Whaddya know? He was right.
This means that, technically, you don't need to hang around and watch
your opponent in order for the traces to work. But Kirby pointed out
a good reason to wait for the detonation before respawning: Your dead
body's traces can frag you, too! Just because they were once your
traces doesn't mean you're immune. If you are unlucky enough to
respawn within your dead body's damage cone, you can kiss your butt
goodbye.
Of course, the same thing applies to projectile weapons like the
rockets and plasma. If you play enough deathmatch, you've probably
been fragged by your own rocket a few times. Don't be embarrassed,
it happens to the best of us...
Please note: Any projectile kills made by a respawned player (whether
by rockets, plasma, BFG traces, etc.) do not contribute to that
player's frag count. Killing -yourself- in this manner does not change
your frag count, either. This appears to be because the game engine
creates a new instance of the player-object at respawn-time, and
therefore 'forgets' to award that frag. In any case, if you wait
before respawning, you will get credit for the frag as long as you're
still dead. This is another reason to wait for detonation before
respawning. Special thanks to John Castelli for pointing this one out.
3J. What about multiple BFG shots?
Each BFG shot is tracked and calculated independently. The game
engine's code is object-oriented, and has no trouble keeping track of
multiple blast areas. Each damage cone's direction is based on the
direction of its corresponding green ball.
The origin point of the damage cone is based on the current location
of the marine who fired it (even if that marine is just a dead body-
see section 3I for more info).
-- Section 4 - Deathmatch Techniques ---------------------------------------
4A. What is considered unfair when using the BFG?
Many deathmatch players moan and groan when the BFG is used successfully
against them. 'What a cheap frag, you craven coward!' they shout. Well,
they usually use fewer words to express the idea, but that's what they
mean. This is usually due to a lack of understanding about how the weapon
works.
The purpose of this FAQ is to educate players about how the BFG behaves.
If you know how it works, you will know how to defend yourself against
it. You will also know how to effectively attack with it. If both (or
all four) players have the same knowledge about how the weapon
functions, then the BFG by definition is not unfair. If you play against
an opponent who does not know how the BFG works, then you should make
sure to educate them on its behavior before turning them into paste.
Having said that, the following things are debatable regarding fairness.
I'm not saying they are patently unfair, I'm just saying that their
fairness is debatable:
- The Silent BFG trick (see section 4D).
- 'Camping on' or 'guarding' the BFG when you are playing deathmatch
2.0, and picking it up again every time it reappears.
- Having a BFG left over from a previous level when there is no BFG
available to the other players on the current level.
In the last two examples, four-player deathmatch tends to cancel out
any advantages to those techniques. The remaining three players usually
coordinate and attempt to bring down the king of the hill in these
situations.
4B. What is the best way to defend against the BFG in a deathmatch?
AVOID THE DIRECT HIT, AND GET OUT OF THE CONE OF DAMAGE.
(OK, so it ain't Rocket Science.)
This requires, of course, that you know where the cone of damage
actually is. That, in turn, requires that you know where your attacker
is and in what direction he fired the weapon. That, in turn, requires
that you know the weapon was even fired at all. Which, in turn, may be
difficult against a player who has mastered the Silent BFG trick
(See section 4D).
It still helps if you are playing the game with a stereo sound card
and headphones. This allows you to hear how far away and in which
direction your opponents are. If you think in three dimensions, the
sounds you hear in the game will give you a great tactical advantage.
You must understand completely how the weapon works before any
avoidance technique would be meaningful. So if you skipped ahead to
this section, go back and read the gory details.
With all that said, here are a few ideas. These are just things to
try, not necessarily good things in all cases.
- Run past the attacking player so that you end up behind him. This
assumes that he is still facing the same direction as his damage
cone. You will be completely safe if you're on the opposite side of
his cone. This can backfire if you're not careful. You could end up
three feet from him and inside his cone when the green ball
detonates, and soak up some rays. That SPF 60 sun block won't help,
either.
- If you think you're about 1000 units away from the attacker, and you
don't think he's running towards you too fast, you can try running
away, and hope that the traces will be too thinned out to damage you
seriously.
- You can duck behind a nearby wall or a solid column. If you can see
your attacker, simply move so the column is between you and him.
Wait for the blast to detonate and die down, then step out from the
column and place some ordnance in his face. This technique works
well on Doom II's 'Circle of Death' level (11).
- If you are very close to him, you can attempt to frag him before his
shot gets off. When he pulls the trigger, there is a slight pause
while the weapon warms up where you can still stop him dead in his
tracks. There is nothing more exhilarating than hearing his BFG
spinning up, then the sound of his scream as your super shotgun
removes his face. Muahahahaha...
- If you are involved in a turning, running, spinning melee in an open
area, keep it up. Learn how to circle-strafe (use a combination of
mouse and keyboard controls to turn, run, and strafe all at the same
time). If you keep your attacker running in circles, his cone of
damage will hardly ever be pointing at you. He will eventually run
out of ammo, or you will frag him with conventional firepower. This
technique works well in the main courtyard of Doom II's 'Citadel'
level (19). In this kind of melee, it is nearly impossible to keep
track of the cone (for either you or your attacker), so you are
really taking a gamble that the turning fight will be to your
advantage. But the exhilaration of winning that kind of fight is one