Doom 0.4 was an alpha version of Doom released to testers on April 2, 1993. At this point in development, a number of elements had already been completed, and it appears that the main features of the renderer were already in place.
Version 0.4 included the following features:
- A spinning 3D title screen, which was removed before the release version of the game, in addition to a message warning the beta testers that if they revealed anything to the public before the final product was released, they would not receive their autographed hintbooks.
- The engine could render areas with different floor and ceiling heights, textured walls and ceilings, and different light levels.
- Prone feature (removed from final version).
- Collision detection was performed against the walls. However, there was no collision detection with sprites (e.g. monsters).
- Monsters appeared in some of the levels. Although they were animated, they did not move or react to the player or to other monsters. Early versions of the Lost Soul sprites were included in the WAD file, although they did not appear during play.
- The player's weapon bobbed during movement and could be fired although it had no effect on the environment or monster sprites.
- The game included a basic, but non-functional, status bar.
- Doors (but no other moving sector types) work and can be opened with the Alt key.
Q, W and E change the detail mode for rendering, R provokes glitched graphics. T makes the player spin around in circles (and crash as soon as a movement key is pressed), P shows a message box displaying the message "Start Profile" (and will then crash if pressed again). Z, X and C alter the display of floor and ceiling textures. M triggers the "prone" mode (lowers camera viewpoint).
Version 0.4 included 11 levels, some of which evolved into levels used in Doom. 13 levels are mentioned in the documentation file distributed with the alpha, and these are mentioned below:
- Level 1: E2M7 (Spawning Vats). Unlike registered Doom the level has no Hell textures and is designed to be like "Hangar 2" in the Doom Bible. The Blue keycard room is a hangar with the number "2" near the center of the room and an electric track running through the center of the room. The ground floor has large crate room with only three or so crates and an exit, corresponding with the Bible's description of the ground floor.
- Level 2: E2M2 (Containment Area). Again the level has no Hell textures, unlike the final version. It seems to be based off of "Supply Depot 2" in the Doom Bible, as it has a crate maze on the ground floor, a maze on the second one and is the level after Hangar 2, which is E1M1 in the alpha. Ultimately the level became "Containment Area" in registered Doom.
- Level 3: Ultimately became E2M3 (Refinery) in registered Doom. The Refinery is the earliest level made by Tom Hall; Doom design was still in "Wolfenstein mode" with mostly 90° angles and little or no use of the Z axis. The accompanying documentation mentions "non-functional conveyor belts"; the conveyor belts actually exist in the game data as floor graphics and they can be animated. The alpha engine does not support horisontally moving floors, however.
- Level 4: Became E1M7 (Computer Station) in registered Doom.
- Level 5: The level became E1M6 (Central Processing). At this point the level still featured the big octagonal wheel dominating the central area.
- Level 6: The level was not used in the final game; it is merely a starting slate made by Tom Hall, and it might have been based on "Personal Quarters" laid out in the Doom Bible. The documentation file accompanying the alpha describes the level with a laconic "nothing".
- Level 7: In retail this level became Command Control (E1M4). The level is based off of "Enlisted Quarters" in the Doom Bible, as there are lockers and showers on the left and right entrances.
- Level 8: Became E1M2 (Nuclear Plant). The level was known simply as "Power Plant" at this stage in development, and the level contents are straight from the Doom Bible.
- Level 9: Ultimately became E3M3 (Pandemonium). At this point in development the level has no Hell textures. Could be based on the Lab in the Doom Bible, as a sign on the left side says LAB, while the right side, with a sign pointing to WH1 (Warehouse One), leads to a dilapidated area, which only makes sense if it were the "old building" section of the Lab. The two holes in the wall on the left and right sides of the stairs appear to be guard posts, as they have large red hands under them. Was to be the hub of the monorail transportation system, with the left corridor leading to the Laboratory map and the right corridor ultimately leading to the Warehouse map.
- Level 10: It has been argued the level might be a starting slate for Deimos Lab, E2M4. However, this level was designed by John Romero, whereas Deimos Lab was created by Tom Hall. Also, there is precious little present in the architecture to support the argument. Therefore others suggest the level later became E1M5 (Phobos Lab), another Romero map. Nothing conclusive can be said, however, due to the small size of the map. Further, the small size have caused some to suggest the map was to become the "Observatory" map mentioned in the design document.
- Level 11: A fairly elaborate level designed by Tom Hall. Was meant to be the "Warehouse" reachable from Level 9, but was not used in the final game. At the time of the Doom Bible the level was still called "Supply Depot One". The only item placed in the level is a BFG9000. Described as "devoid of real levelness" in the documentation.
- Level 12/13: These levels are mentioned in the accompanying documentation, but they were not actually included in the alpha. If one is to follow the Doom Bible, these would have been "Main Hangar" and "Anomaly", respectively. The documentation mentions specific level information, such as segment triggers and wall height problems, so it's safe to assume these levels actually existed at the time of the alpha. They may have been left out due to a simple oversight.
Strangely, an aerial view of all the 13 levels, including their names, can be seen in the intermission screen of the next Alpha version (Alpha 0.5).
Several items mentioned in the Doom Bible are still present in this Alpha version of Doom. Additionally, items such as flags —albeit only as the lowest part of the stand— make their one and only appearance in this version. While the items do not have the corresponding code present, the graphics and sprite names, however, are.
- The COLORMAP has still only 32 levels and the PLAYPAL only one, as in the previous alpha. Compared to the 0.2 palette, color ranges 3-8, 160-231 and 240-247 are changed to their final version. The remaining non-final colors (9-15, 232-239, 248 and 249) are replaced by pure white.
- VIEWINFO and HIGHBLIT have been removed.
- Two new lumps have appeared, COLORS12 and COLORS15. They are both 16384 bytes long. COLORS12 is not referenced in the exe, and not used.
- Another new lump is HUFONT.
- The ENDOOM screen makes its first appearance. A similar ANSI text screen named DOOMERR is added.
- The engine now supports multiple maps. They must all be within M_START and M_END markers, and their name is given by a marker lump used as a header. The map format is completely different from both the previous and the final versions.
- The PNAMES and TEXTURES lumps makes their appearance. In this version, the textures have no names and are presumably referred to by their index.
- The picture format of raw images with a header is abandoned, instead two new image formats make their entrance. The first (called "snea" by DeuTex) is an interleaved bitmap format where the width is always a multiple of four. The second is a raw 10x12 image used for the GNUM0 to GNUM9 lumps. The interface graphics (between L_START and L_END markers) are either in this "gnum" format, sneas, or the alpha picture format.
- The rendering engine does not repeat textures on any given line, only the rightmost pixels of the texture will be repeated indefinitely until the line ends. Due to this limitation many of the textures are uncharacteristically wide.