woof/docs/changes.txt
2022-06-24 12:01:49 +02:00

886 lines
40 KiB
Plaintext

11/01/98 -- Changes
* Added credits screen.
* Added support for .deh/.bex inside of wads. Found and fixed several more
Boom DEH bugs.
* Added support for user comments to be embedded inside of mbf.cfg.
* Fixed plat speed in -beta emulation.
* Tidied up demonstration wads/dehs.
* Wrote docs.
10/30/98 -- Changes
* Added ability for monsters to be affected by friction (ice/sludge).
* Fixed menu-popup during demo playback if automap is active.
* Fixed EndGame during single-playback demos.
* Fixed dogs' aggressive level to be what it was before.
* Found out that default.cfg is read and understood by Allegro, to the peril
of your music :) default.cfg should not be used for any Doom-like engine
which uses Allegro, unless you really need it for your sound card.
* Fixed ice bobbing once again (I can see why it led to so many problems :)
* Fixed point-source wind effect so that it affects monsters and players
equally, and so that it generates force inversely proportional to distance
squared.
* Fixed Final Doom gamemission setting.
* Made missing patch error output less verbose unless -devparm is specified.
10/29/98 -- Changes
* Fixed problems with backspace in setup/option menus (wrong menu was chosen).
* Fixed bobbing and ice even more, to eliminate the influence of voodoo dolls
on bobbing, and to make ice more realistic.
* Stopped recording this log.
10/28/98 -- Changes
* Fixed many Boom bugs
* Wrote my own blockmap builder that I had been planning on doing.
* Fixed slime trails after looking at some demos of it.
* Fixed Boom door lighting effect to have gradual lighting instead
of an on/off switch that happens when the door is all the way
opened or all the way closed.
* Added 271 & 272 linedefs for sky property transfer. Avoids many
of the issues of skies which were imposed on in Doom, and is an
elegant solution. Skies can also be rotated if scroll effects are
used.
* Imported some minor Boom bugfixes (compatibility mainly, plus messages,
Final Doom).
* Fixed Boom v2.02 bugs: underwater sprite lighting, stairbuilding,
DEH thing flags by name. DEH flags have separate TRANSLATE1 and
TRANSLATE2 flags now, and they are OR'ed instead of added, so as
to prevent multiple entries from causing problems. The | symbol
may also be used to replace + as a punctuator in such a list,
although spaces are all that are needed.
* Fixed player bobbing to only occur when player is applying thrust.
Thus players standing still on conveyors, or sliding down ice,
aren't affected by bobbing (although ice code makes it difficult
to see the difference).
* Saved fractional texture offsets and fractional sector heights in
savegames, mainly for sky rotation.
* Added hotkey for setup menu.
* Fine-tuned automap pointer so that follow-mode-off cursor remains
as close to the follow-mode-on cursor as possible, until the player
moves it, as far as displayed coordinates go. Verified that there
isn't any noticable bias (full zoom-in shows the floor height to
change exactly at the right boundary where the pointer points).
* Split compatibility setup menu into two screens, and fixed the
highlighting of the two-line FIST/CHAINSAW SG/SSG weapon toggle option.
10/21/98 -- Changes
* Added option to ignore SG/SSG and Fist/Chainsaw toggles
* Fixed savegames during demo recordings
10/20/98 -- Changes
* Made sure beta lost souls stopped moving when dead.
* Added option to prevent zombie players from exiting levels (Phase I goal).
* Tried to address up/down asymmetry in monster behavior on stairs.
* Added support for dogs to jump down off tall ledges.
* Enabled Doom stair builder behavior when compatibility-selected.
* Tidying up menus.
10/18/98 -- Changes
* Added new menus: General and Doom Compatibility.
* Nearly all .cfg variables are now settable in menus, eliminating the need
for .cfg editors and front-ends.
* Improved menu system's numeric input, to allow backspace during input,
to allow negative values to be entered, and to avoid changing the original
value if the entered value is out of range.
* Made menu system's reset-to-defaults more robust (false activation or
improper functioning of this routine might explain the random resets to
defaults that occur, but then again, it may not explain them).
* Added menu support for filenames to be entered.
* Added support for up to two wads and two .deh files to be preloaded. The
preloaded ones take precedence over anything on the command line, allowing
something like a full-brightness wad (which changes the colormap) to always
take precedence. However, -noload can be used to suppress it, such as if a
demo that doesn't use the .wad or .deh file(s) needs to be played back.
* Added menu support for options pending until next program invocation, as
well as options which must have a function called after they are changed
(e.g. changing the video mode).
* Added optional flashing disk icon, as in Doom.
* Split Doom compatibility variable into separate parts, allowing each to be
changed independently in the Doom Compatibility menu.
* Emulated beta lost soul behavior.
* Other touchups in beta: player sprites, E2M5 sky, berserk pickup, and others.
* Made engine clear 2s flags in linedefs without second sidedefs, to prevent
SegViols on common wad errors. Doom didn't crash on most of these wads, only
because it used a different DOS extender, and the behavior is undefined
(it's Russian Roulette when it comes to programs).
* Added automap option to show automap pointer coordinates, instead of player
coordinates, when follow mode is turned off.
* Added option to make HOM cheat either a solid color or flashing.
10/06/98 -- Changes
* Less-rapidly changing levels.wad and graphics.wad are now distributed at:
http://classicgaming.com/doom/betalevl.zip
* Improved Pause during demo playback. Now it stops intermission and demo pic
screens better, and automap and menu are easier to use when demo is paused.
* Fixed underwater sprite drawing slowdown and added lighting flicker to the
savegame.
* Added ability to save games during single-player demo playback. Now you can
save in the middle of demo playback, as well as recording. Saves that were
recorded in the demo, are suppresed during playback and a warning appears.
* Fixed Boom music delta problem (random garbled noise in some music, such as
Memento Mori 2, MAP23).
09/29/98 -- Changes
* Pauses are now allowed during demo playback. However, in rare cases, using
pause during demo playback may cause desyncing, especially at the beginning
of the next level or in cases where the intermission screen is paused
(testing is encouraged, but is only good if reproducible by me with a demo).
* Entering the menu while recording a demo does not cause the demo to desync
anymore during playback (a Doom bug).
* Savegames recorded in demos get a suppression warning message printed when
played back (but no game is saved during playback).
* Fixed Boom bug in which menu messages >= 40 characters would not print
correctly. Pressing F9 before setting quickslot would print a message with
garbage at the end. Actually, this was a Doom bug too, but it was probably
never visible, due to compiler differences.
09/22/98 -- Changes
* Fixed torque code. Now oscillations don't happen easily -- a falling object
now reaches equilibrium, and objects don't fly off ledges at fast speeds.
* Made Boom sprite lighting more consistent under deep water or over fake
ceilings.
* Made config file handling more robust, and added informative diagnostics.
09/15/98 -- Changes
* Fixed bugs in torque code, so that it only affects non-sentient objects
that fall under gravity.
* Fixed Boom bug in which "soundtargets" (permanent signatures of sound
origins that are left inside sectors) are not saved across savegames.
Soundtargets are saved and restored now.
* Improved bouncing code so that grenades lose less momentum bouncing off of
walls, and so that the only momentum that is lost, is the component that is
perpendicular to the wall.
* Removed TNT prefixes from all cheat codes. TNT*** should still work (except
TNTKA and TNTEM), but the TNT is not a part of the cheat code anymore. Added
back IDK, finally, and added KILLEM.
09/13/98 -- Changes
* Commented out code which lets monsters drop off of tall ledges, since it's
too risky right now.
* Added code to simulate torque on objects hanging over ledges. Objects at
rest can now fall off of ledges if their center hangs off of one. This makes
up for the anamoly in which objects could be pushed over ledges, but they
often came to rest before falling off, and would stay up at the taller height
even though most of their mass was over the ledge. That anamoly did not occur
in Doom, because in Doom, tall dropoffs had invisible barriers which blocked
the motion of all objects except players and corpses -- if an object was
pushed over a ledge, it would stop moving if the ledge was too tall, no
matter what force was applied to it. That had to be removed in Boom, to
allow conveyors to push objects off of ledges. Note: multiple ledges can
be used, and can cancel each others' effects out, although the amount of
realism is limited to what Doom can handle -- after all, there's no such
thing in Doom as angular (rotational) momentum, at least not yet :) To
simulate it realistically, would require handling angular momenta along
the x- and y-axes, and would require being able to rotate sprites. So
the realism is necessarily limited, and improving it would be harder.
Doom copped out by simply not allowing objects to ever hang over ledges
in the first place.
* Fixed minor oversight in stuck-in-wall fix (it didn't account for players
stuck under floors). Boomedit.wad's exit teleporter sticking problem is
fixed now. (Note: this fix has no relation with TeamTNT's recent effort.)
09/09/98 -- Changes
* Added AI to help monsters stay out from under crushers (they can still get
through safely), and to let monsters jump off of tall ledges if that's the
only way they can escape from near-death (now, if I can just make the dogs
do that normally :).
* Improved stuck-in-door fix to be more accurate. Now it guesses better,
so it should almost be unnoticable, except that monsters don't stick to
doortracks anymore.
* Made monster AI more uniform (as far as friends vs. enemies of player).
* Tried to maximize AI efficiency without slowing the game down much, by
using lots of tricks.
09/08/98 -- Changes
* Added AI to let monsters more easily join friends on crowded lifts.
* Added AI for monsters to help dying friends.
* Added AI for monsters to strafe or back away from enemies when tactically
advantageous (such as in Tyson wads, or when the enemy is one of the dogs).
* Added AI for monsters to be smarter about going after enemies. Specifically,
going after enemies in the immediate vicinity first, and tending more to
divide up work with others, by passing up enemies that are already engaged
with friends (previously there was an overt tendency towards pack-attacks).
* Minor performance tuning.
09/05/98 -- Changes:
* Fixed Doom II SSG gunshot flash to be more uniform in lighting along the
gun.
* Fixed Classic BFG to brighten up BFG during firing, and to have less
pronounced recoil.
* Fixed Boom bug which was cause of slowdown with friendly monsters, and
which caused large levels to slow down under Boom in multiplayer games,
when a player went out of view of a monster.
* Improved monster AI to search more quickly and intellgently, by only
considering a few monsters at a time, searching in the immediate
vicinity first, and searching monsters in an order which leads naturally
to friendly monsters dividing up their work among different targets
(instead of all friendly monsters going after one target, then another,
etc.).
* Tuned fixed-point arithmetic functions a little more, gaining a few fps
under -fastdemo.
8/29/98 -- Changes:
* Fixed Boom friction slowdown problem, I think :) Boom used a crazy
algorithm, which explains the slowdown:
* Each object is set to "normal" friction at the beginning of every tic.
* During EVERY TIC, every sector which is tagged with a friction linedef,
is checked to see if it really has friction property (the sector flag).
If it does, then every object touching that sector is checked, and has
stored into it, the friction it would need if it were moving.
* Whenever it comes time for an object to be moved, its previously stored
friction value is used to reduce or amplify its momentum.
Friction was being stored as an object's property, when it really should
be a sector's property. Thus, every object on the map had to be updated
with friction information every gametic, whether or not it really needed it.
The new approach:
* Each sector which is tagged with a friction linedef, has friction
parameters computed and stored with the sector, at the beginning of
the level (this information can't change during the level).
* When it comes time to compute the friction applied on an object
(a computation which doesn't even happen for some objects, or
which only happens during certain times), then the sectors which
the object is in contact with, are checked for friction and the
floor with the most friction which is contacted, is used when
updating the object's momentum.
The result is that we do a little more work per object than the
old method did, but we process FAR fewer objects for friction
information, and we do so FAR less often.
Demo sync with past versions of Boom is not guaranteed, but -might-
work. Over 50 lines of code were rewritten, and the slightest
difference in timing or anything else, could throw off Boom demos
which use friction. The old approach was simply wrong, and keeping
it for demos leads to "code explosion": Essentially, to maintain
100% demo sync, you've got to double the size of your code, and
maintain two completely different versions, one of which is bad,
since there's not enough overlap between the two versions to simply
'nudge' one into behaving like the other, based on whether an old
demo is running or not. Also, the old version would be prone to
"bit rot", because unless it's exercised regularly by testing and
playing, it will likely get a bug without notice, and the only
symptom may be a demo desync noticed months after the bug was
introduced. All my software engineering instincts go against
keeping the old, performance-buggy code around for demos, and
only for demos.
* Considerably sped up monster searches for targets, by supplementing
existing Doom thinker_t data structure with linked lists containing
objects in a particular class. Each object can be a friend, an enemy,
or a misc object. The regular thinker_t list and operations on it are
pretty much unaffected. But each thinker_t now has additional linked
listed pointers, cprev and cnext, which point to the previous and next
members in the same class as the node. Every time an object is spawned,
killed, or changes its friendliness, the node's class links are updated,
so that it is placed in the correct list. The result is a continously
updated list of possible targets for monsters, without burdening the
monster search with extra objects which are not candidates. If there
are only 3 friendly monsters, for example, but 10000 other objects,
then a search for friendly monsters would only involve those 3 objects,
instead of 10003 as with the old method (10000 of which would be rejected
immediately, but would still be scanned). Searching the thinker linked
list for monster targets that are not really candidates for monster
targets, puts a lot of load on the CPU, especially given the linked
nature of the list (causes lots of memory cache misses). The new
method entirely skips such non-candidates.
* Fixed Beta plasma fireballs, to stop them from activating lifts.
* Made "doomednum" lookups faster, by using hash tables. Only affects
level startup time (not performance of regular play), when all of the
things are spawned initially, and the thing types are translated to
mobj types.
8/23/98 -- Changes:
Too many to remember :)
8/18/98 -- Changes:
* Added Doom-style page flipping for faster display without tearing. Now
486 and other low-end systems can have smooth play without slowdowns due
to waiting for vsync. (Note: page flipping has nothing to do with memory
managers, EMS, or XMS, nor is there any remote similarity. I say this since
someone I know, once assumed it had something to do with virtual memory
paging. No, it's completely different.)
* Improved setup menus to print warnings about modified parameters that are
sometimes delayed until the next game, to prevent confusion. This includes
the Beta BFG. If you save a game with the Beta BFG turned on, but your
default is to have it off, then loading a game may temporarily turn it on.
If you go to the menu, you will now be warned about the discrepancy, which
is NOT a bug.
Don't ask for any more beta features to be made optional in Boom outside of
the general -beta option :) The BFG is the only separate one. Doing it for
all of the beta's features would take too long and would waste memory while
you play Boom (because of all the extra sprites which are needed). Use -beta
for beta features. Only the BFG has enough reason to be a separate weapon,
and it does not take up much memory as far as sprites go, since it only needs
the old fireballs (the BFG itself is the same).
8/14/98 -- Changes:
* Fixed rad suit palette bug.
* Fixed Doom bug in which prevented using non-missile exploding objects
in blocklists. Fixed grenades on lifts.
* Improved bouncing objects to bounce off of walls.
* Prevented screen palette changes if -nodraw is used.
* Allowed TNTHOM and IDDT cheats to be used during demos.
8/09/98 -- Changes:
Fixed some Doom bugs:
* Monsters stuck in doortracks -- this was a Doom bug, in which Doom thought
that since a monster was touching a door linedef, and its motion was blocked,
that ALL it had to do was open the door, and this would be enough to free its
motion. Of course, this is not true if it was moving towards the doortrack!!!
No amount of door-opening will free it up, if it's moving towards the
doortrack. The solution was to randomly return failure when a wall obstacle
was met but a door linedef was activated. This way, the monster will try
other alternatives some of the time, not always assuming that opening a door
is sufficient to free itself. Tested it with a Baron, and it works. Note:
returning false all the time, would make it look funny, since then a monster
would always turn away from a door for a split second after opening it. And
determining exactly when it's stuck and when it's not, is difficult to do.
A random approach has a much better chance (pun), since it explores different
alternatives, independent of their interaction with the environment.
* Beta BFG and other fireballs passing through walls. This was another Doom
bug, which just happened to occur more often with the beta BFG because of
the number and velocity of fireballs. Doom normally cuts all object motions
into steps no larger than a certain distance, so that collisions are not
missed. However, someone forgot to use absolute value when comparing speeds,
so instead of (|x| > max OR |y| > max) being the test, (x > max OR y > max)
was the test. This caused non-uniformity in how collisions were handled,
depending on which compass direction the objects were moving. Fix is to
make it symmetrical, and this happens to fix most cases of the beta BFG.
YabbA DaBba Doom!!! (Yet Another Doom Bug!!!)
* Fixed Boom bug in setup menu, in which numeric entries (as opposed to yes/no
entries, weapons, or keyboard mappings), did not become active during the
current game (someone forgot to implement ptr2 for numeric menu items :)
* Fixed bug in cr_brick translation table (16 extraneous bytes right after
the active range of 176-191 -- simply deleted the one line of C code which
was extraneous).
* Made sky ivulnerability colormap behave like Doom's when compatibility mode
is used. In non-compatibility mode, the sky has the same colormap as
everything else does, under invulnerability, but in compatibility mode the
old behavior is used.
* In non-compatibility mode, made boss spawners, and only boss spawners (and
players), telefrag others. Old logic (still used in compatibility mode):
Telefrag if agent is a player, or MAP30 is running. New logic: Telefrag if
agent is a player, or if it's a boss spawner. Old demo sync is preserved, of
course, by reverting to old behavior in old demos.
* Added new automap color to indicate friends under iddt cheat.
* Improved performance of monsters seeking player friends as enemies --
previous implementation had a large slowdown caused by excessively
searching for them.
* Added BFG2704 message in beta emulation mode (Oh Yes!!!).
* Made friendly monsters tend to stay a certain distance from the player,
which can be programmed in the setup menu. It's only very approximate,
and does not constitute a hard rule that prevents friends from getting
closer. All it does, is that when friends are following the player, they
move away from the player when they are within this distance. But if
they are attacking another monster, possibly right next to the player,
this distance doesn't matter. Making this too strict, makes the friend's
behavior too easy to predict. Experiment with the distance (default 128),
and tell me what you think -- it's supposed to keep the dogs (or other
monsters) out of your feet, but where they can still follow you.
* Improved BFG's bouncing to support other objects as well. As an example,
grenade.deh is included. You can also make the player have the MF_BOUNCE
flag set, in which case, the player will bounce on the floor and experience
a kind of flying :)
... And others I can't remember. Don't waste time writing a LONG description,
or recording a demo, for a change you notice that I did not mention, without
first checking with me, because it's most likely a very intentional fix for a
Doom bug, that I forgot to list. Just mention it if it concerns you, such as if
it's doing something really crazy, or if it breaks demo sync with Doom or Boom
demos of version 2.02b or earlier.
8/04/98 -- Changes:
Fixed a teleporter problem in which the height was sometimes off -- oops!!!
8/03/98 -- Changes:
Made regular monsters look for friends and wakeup if they see them or are
attacked from behind. Now a dog who goes up and chews a Baron on his rear,
will have his day :) Enemies still look for players first, but will go after
friends as well if they are spotted. Not sure of impact yet, or whether this
needs to be made optional.
Fixed (or rather, worked around) beta chaingun sprite problem. The beta Doom
did not have complete sprites for its chaingun (some were chopped off at the
bottom), but this did not matter for the beta, because it did not allow
fullscreen. Workaround is to lower the chaingun while it fires, so that you
don't see any of the messed up sprites. In non-fullscreen mode, it still
works as before.
Included player and rocket sprites, based on two requests / beta discrepency
reports.
Improved player autoaiming so that friendly monsters can be aimed at by
players, despite autoaiming preferring enemies when there is a choice.
If you want to get a kick out of killing dogs, you can do so easily now :)
Fixed -timedemo so that automap, messages, and other things work just as in
-playdemo and -fastdemo.
8/02/98 -- Changes:
Fixed Boom v2.01/v2.02b bug with not being able to pick up weapons, which
happened randomly on DM levels. <rant> I'm going to see if the new Ty-rrany
Source Project can crack this one, which took me 10 hours :) I won't tell
them, not just yet. If they solve it, it will probably only be through trial
and error, by backing out past changes and comparing results. </rant>
Removed TNT ENDBOOM screen, replacing it with regular id ENDOOM screen.
Fixed monster movement clipping so that monsters don't hang off ledges
voluntarily, but can escape if pushed. Previous fix allowed them too much
freedom.
Fixed player movement clipping so that players can get out of stuck positions,
such as if they teleport partially inside a closed door or a 1s wall. Needs
testing again to make sure no "holes" were left :)
Note: movement clipping fixes do NOT currently include removing "bumps" along
walls when sliding along them. That bug is Doom's and is hard to fix because
Doom uses something similar to what is termed "impulse-based simulation" in
the literature -- lots of tiny collisions (impulses) happen along the wall, to
simulate an overall smooth motion. When the player's motion is at an angle
towards the wall, the component parallel to the wall, minus friction, becomes
the resulting movement. Sometimes Doom calculates this very roughly, leading
to wall-running, "wall bumps", and other effects. Longer-term item, harder to
fix.
Another note: "getting stuck out of closed doors" does not include monsters
getting stuck at doorjambs. That's a completely different issue, more related
to AI than movement clipping (the reason monsters get stuck is not because
movement clipping says they can't move -- rather, it's because the AI keeps
trying to make them go in the same direction -- this is known as "getting
trapped in local minima" in AI literature).
7/29/98 -- Changes:
Fixed problem with walking through closed doors (happened on rare occasions).
Backed out change to let player walk out closed doors, until this can be fixed
without side effects.
Tightened stuck-in-wall fix to only cover players, in case wad authors want to
use it as an effect for monsters (e.g., keep them pinned up to a wall).
7/27/98 -- Changes:
Fixed demo desync problem, which was caused by accidentally making monsters
respond more quickly to player attacks.
Fixed (or at least, reduced) problem with monsters stuck hanging off ledges.
In Boom, conveyors and projectiles could push monsters off ledges, but if
the monsters were not pushed all the way off (only partially), they became
stuck. The same phenomenon occurred in Doom whenever a monster was lifted
by a platform but was not completely on it yet. The fix is to relax movement
clipping so that monsters can move more freely, even when hanging off ledges.
Fixed problem with players and monsters getting stuck in walls if teleported
with even the slightest roundoff error (such as with Boom line-to-line
teleporters). Fix allows objects to move out of 1s walls and out of closed
doors, if they are partially inside. To see the effect, turn on no-clipping,
move into a wall, and then turn no-clipping back off. You will still be able
to walk out of the wall, but not back in.
Fixed long-time Doom bug (more of a hack, really) in which sky textures were
not properly colormapped with the invulnerability colormap (or the light-amp
visor colormap in beta emulation). Fix makes everything, even the sky, become
seen through the same glasses :)
Was too tired to work on beta lost soul behavior, or other things. (I needed
a rest, really, after training all those dogs :-)
7/24/98 -- Changes:
* Recalibrated BFG parameters to more closely match beta, increasing power
of fireballs and adjusting exit speed and position along BFG.
* Prevented BFG fireballs from bouncing off of skies.
* Merged friendly monster code and beta code together, now part of same source:
* You can select the beta BFG as an alternate weapon when playing Doom wads,
by changing the Options/Setup/Weapons setting.
* Beta features besides BFG are enabled with -beta command-line option
(eliminates the need to maintain two executables). New boom.exe replaces
beta.exe and Boom v2.01.
* Monster infighting may be disabled in the Options/Setup/Enemies menu.
* The number of helper dogs (1-3) can be changed in the setup menu or with
the -dogs <nnn> command-line option. (-dogs followed by a number from 0
to 3).
* Demos may be recorded and played back with and without -beta. However,
-beta MUST be used if a beta demo is played back (allowing the user to
override this could result in game crashes -- beta demos require beta
emulation mode be turned on, but it must be turned on at game startup
-- allowing it to change in the middle of the game would be like asking
to load wads in the middle of a game -- turn Doom into its own frontend).
* Autoaiming of projectile weapons is always enabled in non-beta-emulation
mode. In beta emulation mode, autoaiming is off unless AIM cheat is used.
* Included friend.deh file as a DEH example of creating friendly monsters.
By changing the thing flags you can turn all of a particular monster into
a friendly monster (but in the engine itself, not all members of a certain
type of monsters need to be friendly or not). Friend.deh is commented and
should be easy to change to make any monster friendly (though I don't know
what good a friendly Commander Keen will do :).
The following problems / bugs / idiosyncrasies are already known about:
* HOM and slime trails are not 100% emulated in beta. Those are not worth
preserving IMO. Artistic errors, yes -- HOM or slime lines (construction
errors), no. Case closed. :)
* Beta emulation lost soul behavior / deaths (still working on it)
* Loading 2.01 Boom Savegames give warning but may still work. If this
warning were not printed, some savegames might crash and you'd ask me why :)
* Friendly monsters may be telefragged easily (they hang around telerporter
exits, especially ones near walls where the only way to go out is to move
in a direction that's physically farther away from the player).
* Friendly Arch-Viles don't resurrect dead players yet (how'd you like to
be resurrected? :)
* Friendly monsters don't wake up monsters like players do.
[FIXED, except performance concerns still valid and need algorithm rewrite.]
* Beta skies are not the drawn the same as in original beta.
* Beta chaingun's bottom is drawn incorrectly.
[FIXED by working around it]
* Friendly attack-only monsters cannot be autoaimed at, even if they are
the only monsters in sight.
[FIXED]
* Helper dogs get replenished health at each level start. Fixing this is
a little complicated -- when did you last see a non-player carry over
to the next level? :)
* Helpers don't pick up items, need ammo, or use medikits. They don't
get hurt by nukage. This is very complicated to fix systematically and
intelligently without messing up the game for the player :) Not a
one-weekend job, so be patient :)
* Beta font is too small or unreadable. For this one, without going the
full route of creating two sets of fonts (the beta's and Doom's), there's
nothing that can be done about this, other than improving the colors of
the text. Either sacrifice the beta font entirely, live with it, or
significantly rewrite source to allow multiple fonts. Note that the
setup menu font problem is a completely separate issue from the size
of the fonts (it has to do with colors instead of size because of an
algorithm in Boom, transparent to the user, which requires red-colored
"base fonts").
* Friendly monsters cannot jump down ledges. Requires somewhat complicated
AI to fix this, without making them turn into jumping jacks that jump at
every opportunity, perhaps into inescapable traps. One idea already
considered is to add a weapon key to wave the player's fist once, and
then return to whatever weapon was being used. This waving of the fist
would not require any new weapons or player signals to be added, but it
could be used to signal the dogs or other friendly monsters.
* Some vertices suck up plasma and bullets. This is really just another
Doom bug, or a problem in a particular wad's blockmap.
* Friendly monsters get in your way (I'm sorry!!! :)
7/17/98 -- Changes since last version:
* Doubled BFG ammo -- it's hard to tell, but this looks more like the
original. It seems slightly large, but it's 2 fireballs per cell energy
used up (40 green and 40 orange fireballs).
* Added AUTOAIM and EEK cheats. AUTOAIM cheat toggles projectile
autoaiming, which is off by default (it was not present in the
original beta).
* Fixed TNTAMO cheat to prevent it from conflicting with AMO cheat.
* Don't know whether plasma fireballs bounce on floors and ceilings,
because there's no way to tell without any z-momentum in the fireballs --
no autoaiming existed, and certainly no lookup/down, so the fireballs
always shot straight, which means it's impossible to tell if they would
bounce. I'll assume they did, since the same fireballs were used for the
BFG and the plasma rifle.
7/14/98 -- Changes since last version:
* Fixed invisibility to not affect psprites.
* Adjusted plasma / BFG fireball damage to be like Romero suggested to me:
half the strength of normal plasma in later versions of Doom.
7/12/98 -- Changes since last version:
* Problem with fireballs walking up stairsteps fixed (looked funny!!!).
* Angle spread of BFG fireballs fine-tuned, to look more like the beta.
* Fireball exit position improved -- makes fireballs larger when they exit
BFG, and makes them move with weapon bobbing.
* Fireball speed fine-tuned. There's no way of telling the true speed except
by experimentation (care to become a Doom road cop? :) I doubt even Romero
remembers details such as the speed of fireballs.
* Plasma and BFG fireballs distinguished as far as bouncing.
* Fixed light amp goggles to use a green colormap like real night vision
goggles. There is evidence of this special green colormap in the beta,
and if you modify the beta's .wad file to insert light goggles, it's
used, and it also explains the mystery of the unused 34th colormap in
Doom -- there were originally two colormaps besides the 32 light levels:
the white one used for invulerability later (used for invisibility in
beta), and the one used for light amp, which was not used except in the
beta. Note: the light amp goggles don't ever lose power in the beta,
and so to prevent users from having to cheat to turn them off, or else
forever see green until the level finishes, I've retained the timeout
(I say "retained" since I'm going backwards in time :-).
* Made rad suit last until the end of the level (like berserker strength),
just as in the beta (I assume this is what happens -- I can sit for
minutes and it never wears off). Also removed palette changes for rad
suit and berserker, which were not present in the beta.
* Made invulnerability orb behave exactly as in beta (potion in a tall
blue flask colored and shaped like a health bonus in released Doom) --
it does not affect any palette or colormap, except to flash the white
colormap when it runs out. The tall blue flask is the old invulerability
orb, because it has the same sprite name, and it appears under the beta
if you change a thing to use its thing id. There is such a flask on the
middle of the 3 pillars on E3M2 which rise when the player walks past
the UAC room with the unholy bible on the floor, but the flask never
shows up, because its flags say it's never on map. Later of course,
it was replaced with a backpack.
* E3M2: donut lowers aligned, crushing ceilings changed to correct speed.
* E2M5: marble room doors made like original, 4 crushers' walls made steady,
some original beta bugs restored (e.g. crusher room entrance).
Todo list:
* Figure out whether plasma fireballs bounced like BFG fireballs.
* Consider slowing down lifts (they are running faster than in the
beta).
* Figure out the exact number and distribution of green/orange BFG
fireballs. I'm currently assuming 20 green and 20 orange, each
alternating like in the plasma gun, but it looks like there's
more in the original, maybe as much as twice as many -- perhaps
each of the 40 units of cell energy delivers an orange and a
green one. If anyone can run the original beta at ultra slow
speed, it might reveal the pattern.
* Figure out exact speed of BFG fireballs.
* Figure out the exact damage of BFG fireballs, possibly depending on color.
* Change lost soul behavior to emulate the beta.
* Optional BFG autoaiming? (The original BFG did NOT autoaim -- I will
definitely keep this optional, but perhaps autoaiming should be added.)
Files:
BETA.EXE Version of Boom modified to have beta features, such as the
classic BFG9000. This version of Boom is not supported by
TeamTNT, just me :)
GRAPHICS.WAD Replaces and supplies graphics necessary for the Beta.
This wad can be used with Doom I, Ultimate Doom, or
Doom II, and is necessary to completely reproduce the
BFG9000. BETA.EXE automatically adds this file, which
must be in the same directory as BETA.EXE.
LEVELS.WAD Replaces levels and textures used in the Beta version:
E1M2, E2M5, E3M2, which eventually became E1M2, E3M5,
and E2M2, respectively. To play these levels requires
Doom I or Ultimate Doom.
Some points to note:
* For now, you should copy CWSDPMI.EXE and any other files you
normally use, from an existing Boom directory. For best results,
boom.cfg should not be copied over without first reviewing the
defaults, which are optimized for the Beta, and which are
different than Boom's defaults.
* Lifts in the original 3 beta levels need to be checked to make
sure the lower textures under them are not missing (HOM), and
to make sure they are the correct texture (the same as in the
original beta).
* It seems like Romero changed all WR linedef types that existed in the
beta into W1 linedef types, and then proceeded to add totally new
linedef types for the WR ones. I had to convert all of the linedefs in
the beta's wad from Beta WR types (which are the same as W1 types in
the released Doom), into released WR types. But some might have been
missed.
* Lost souls have not had any behavioral (code) changes made yet.
That's on the todo list. Right now, there are only new sprites.
* Translucency and gamma correction are best turned off, to fully get the
same "look and feel" as the beta. Oddly, I feel like the beta is more
colorful and looks better than Doom, which is sorta washed out (either
washed dark or washed bright). With Doom, I turn up the gamma correction
because of poor contrast, while the Beta already has better contrast.
Part of this perception is pure sentimentality :)
* The Barons' horns are slightly different in the beta, in case you didn't
notice :)
* You should be able to play any of your favorite Doom and Doom II wads
with this mod. Only if you use a DeHackEd patch or BFG/plasma sprite
modifications, should there be any problems, but even then, only DEH
patches have any chance of making the game unplayable, and then only
when the BFG is modified by the patch. The vast majority of wads are
playable with the new BFG.
* The health and armor bonuses use the same thing numbers as the demonic
daggers and the skullchests, respectively. Currently, wads which use
health and armor bonuses will show demonic daggers and skullchests
instead, and they will work just as in the beta (they just disappear,
and a message is printed). Later, I might change this, and change the
thing numbers in the 3 Beta levels to use 3 unused thing numbers
(notwithstanding the JDS, or any other outside organization :-).
* Please keep this quiet for now, so the release will have more value
(initially and long-term). If this gets spread around right now,
people seeing its bugs might lessen its value, or the planned release
might not get the attention it deserves (people seeing it now will
be less likely to download it again).
* To prevent confusion, I'm talking above about the binary files,
beta.exe and beta.zip. The Doom news pages knowing about my work
is perfectly okay, and is intentional (I told them). It's the
"beta beta" binaries (i.e. the product), that I don't want leaked
now.
Lee Killough
killough@rsn.hp.com
http://classicgaming.com/doom/