Doom v0.3

Doom 0.3 was an alpha version of Doom built by id Software on February 28, 1993. Though apparently never released to id's alpha testers, this build was sent to several industry professionals for comment and review, and as a result it only resurfaced at a much later time compared to the other alphas. It was uploaded by James Haley (Quasar) to the idgames archive on August 3, 2015. Notable features include several maps in their earliest known forms and a fully functional on-screen automap. It much more fully displays the Doom engine in its earliest state than the tech demo, with an internal architecture significantly different and less advanced than later builds. Crashes are common, especially when walking over two-sided lines. The README file promises a more proper release to follow in two weeks, but such a release is not presently known to exist.

Features
Version 0.3 includes features that were also in 0.4, but certain things are not implemented or would later change in function.


 * A spinning 3D title screen.
 * The engine can render areas with different floor and ceiling heights, textured walls and ceilings, and different light levels.
 * Animating floors are supported.
 * "Prone" camera view. This viewpoint is only used when the player has died in the final version of the game.
 * Collision detection is performed against walls. However, there is not yet any collision detection with actors such as monsters.
 * Monsters appear in many levels. Although they animate, they do not move or react to the player or to other monsters, and cannot be damaged.
 * The player's weapon bobs during movement and can be fired, although it has no effect on the environment.
 * The weapon jitters slightly when still. It is unknown if this was meant for realism, or is a bug in the bobbing code.
 * The game includes the "helmet" HUD from v0.2, still largely non-functional. A dramatic exception exists in the form of a miniature automap in the upper right corner, which updates in real time.
 * A low profile status bar mode is supported, though the numeric displays are not yet functional. Full-screen display with no HUD is also supported.
 * The alt key causes a "use" action, but is non-functional as there are no doors in the maps.
 * Item sprites spawn, but are rendered inside the floor.

Special keys
Keys used in the alpha that are not related to player movement include:


 * A: Toggles "full screen" view.
 * S: Toggles the regular "helmet" view with working automap.
 * D: Toggles a smaller window size when using the helmet view.
 * Q, W and E: Select detail modes for rendering, Q being the same high detail in the final version, W being low detail, and E being low detail in addition to halved vertical resolution.
 * R: Invokes a high color mode planned for use with VGA modules such as the Sierra Hi-Color DAC. Without this module, the key produces pink, yellow and grey stripes.
 * T: Causes the player spin around in circles to test the frame rate, and quits to DOS with a display of the information after the routine is complete.
 * P: Shows a message box displaying the message, "Start Profile," and writes profiling information into a file named.
 * Z, X and C: Alter the display of floor and ceiling textures (C being called the "Wolf key"). It is unknown as to whether this was a testing feature or a planned detail mode.
 * M: triggers the "prone" mode (lowers camera viewpoint to the floor).

Quirks and bugs
The renderer is extremely raw, with numeric instability evident in the projection of walls, which wobble in a manner similar to the effect of long wall error but regardless of their length.

As mentioned above, it is is possible for the game to crash when the player's viewpoint passes directly above a two-sided linedef, frequently with the momentary display of garbage on screen, followed by an error message stating that a region of the frame buffer is not covered by any "rendersegs," a data structure which is not known to exist in the engine after v0.5.

When toggling between screen sizes and returning to the helmet view, the projection seems to pitch downward by a few degrees, in a manner similar to the y-shearing-based free look later independently added to the Doom engine by Heretic and Strife.