glDoom
From DoomWiki.org
glDoom | |
Codebase | WinDoom |
---|---|
Developer(s) | Bruce A. Lewis, Vsevolod Popov (RedPowar), Adam Bilbrough (Gibbon) |
Initial release | Public alpha (1998-10-05, 25 years ago) |
Latest release | 0.96c (2022-10-31, 22 months ago) |
Development status | Inactive |
Written in | C |
Target platform | Windows |
Available in | English (United States) |
License | Doom Source License, GPLv2 |
Source Repository
(SVN) |
SourceForge |
glDoom (created and maintained by Bruce Lewis), based on WinDoom, was the first source port to add OpenGL support to Doom. It was instrumental in the development of other hardware accelerated versions of Doom, inspiring projects such as Doom Legacy, Doomsday, GZDoom, and others.
Contents
History[edit]
glDoom was conceived on February 1, 1998. Lewis sought to improve his existing WinDoom codebase with a OpenGL renderer to support only hardware that actually accelerated hardware instead of relying on wrappers or closed source alternatives. Lewis kept extensive notes during the development of his port, describing the setbacks he experienced when he created the renderer. His notes provided him with several people willing to test his work out, leading to Lewis on occasion remarking that he had more than enough testers available. As such, glDoom was tested on a wide range of early 3D hardware at the time.
A first private alpha was released to an artist named Bill, on May 10, 1998. Described as a very EARLY alpha version of glDoom, this build would not play through levels properly, with the renderer not drawing everything required in the scene and being unoptimized. It required a separate file, sky1top.bmp because this build was made for the sky artist to work with. A separate 3dfx version utilizing Mesa was included but had significant more bugs. DirectX 5 was required to run this build.
A special build for Matrox video cards followed on August 27, 1998. Described as a alpha release, this build was for evaluation and drive work only. The separate sky1top.bmp was still needed because this build was made for the sky artist to work with which likely is the same Bill. It also disabled some features to increase stability and lightmaps were not enabled.
The first public alpha was released on October 5, 1998. Before beta testing could be completed and the source code released publicly, the source was lost to a hard drive issue. This happened after version 0.94d was released on December 16, 1998. The last official glDoom version was released on December 23, 1998, as version 0.94e.
2010 reappearance[edit]
In April 2010, glDoom reappeared on SourceForge. The author discovered copies of the source code on the computer of a late friend of his. This resurrected version of the source code, however, was probably not the latest version (some features which work in the released binary no longer did) and had to be updated to compile with newer development environments. The ninth and last update to its SVN repository was made on October 8, 2010. It targets a DirectX 9 surface whilst sitll accelerating through OpenGL and adds support for widescreen monitors.
2020 unofficial updates[edit]
In April 2020, precisely ten years after glDoom resurfaced on SourceForge, unofficial updates to the latest glDoom code appeared, created by a programmer called Vsevolod Popov, aka RedPowar. He released 0.95b on April 4, and 0.95c on April 8, 2020. They contain several improvements to the port:
- New floor/ceiling generation code (derived from Doom Legacy)
- Aspect ratio fix (correct rendering on 16:9 displays). glDoom can now render for example in 1920x1080p resolution properly
- Fixed invisible area culling (behind walls in sectors without ceiling)
- Few bugfixes for buffer overflows & invalid memory pointers
2022 official reboot[edit]
In March 2022, Adam Bilbrough (Gibbon) requested by email to take over the project and make it available for the modern age. A confirmation by Bruce A. Lewis[1] was given to Bilbrough that declared the latter the new official author of glDoom.
Its first release was 0.96a, on March 14. Incorporating the improvements from the 2020 updates and now licensed under the GPL, it was a minor release to implement GL_NEAREST to improve rendering. A more significant release followed with 0.96b on March 25, making the code 64-bit compatible and substantially raising the static limits of the engine.
Features[edit]
- 64-bit compatible
- Cross-platform support
- Support for the No Rest for the Living expansion
- Support for SIGIL
- High resolution support (Default 640x480, but resolution can be defined)
- OpenGL 1.0/1.1 based renderer
- Selected weapon display in deathmatch (over the player's head - also cvar controlled)
- Aiming crosshairs (only in conjunction with looking up and down)
- -showscore and -keepscore options which implement a simple score counter in the HUD
- Increased static limits (Present starting from glDoom 0.96b)
Original features[edit]
- All features from WinDoom
- High resolution support (Default 640x480, but resolution can be defined)
- OpenGL 1.0/1.1 based renderer
- Bilinear filtering
- Texture smoothing
- Transparency and translucency from objects
- Dynamic lighting from projects, weapon discharge and explosions (cvar controlled)
- Player lighting from power-ups (cvar controlled)
- Selected weapon display in deathmatch (over the player's head - also cvar controlled)
- Aiming crosshairs (only in conjunction with looking up and down)
Static limits[edit]
Starting from glDoom 0.96b the following static limits are raised. They are derived from Sprinkled Doom, another port by Gibbon, and are then multiplied with the standard vanilla limits. The new limits are thus as follows:
limit : old * k = new ------------------------------------------------------- visplanes[MAXVISPLANES] : 1024 * 128 = 131072 drawsegs[MAXDRAWSEGS] : 2048 * 256 = 524288 segs[MAXSEGS] : 9999 * 64 = 639936 SAVEGAMESIZE : 2883584 * 180224 = 519691042816 activeplats[MAXPLATS] : 7680 * 30 = 230400 vissprites[MAXVISSPRITE] : 1024 * 128 = 131072 linespeciallist[MAXLINEANIMS] : 16384 * 64 = 1048576 openings[MAXOPENINGS] : 65536 * 64 = 4194304
System requirements[edit]
The absolute minimum system configuration to run glDoom is a 133Mhz Pentium with 16Mb of RAM and an 3D accelerator card with OpenGL drivers. The program will run on a system like this but is far too slow to be enjoyable. The recommended system configuration to run glDoom is a 166Mhz or higher Pentium with 64Mb of RAM, a 3D accelerator card with native OpenGL drivers (not a Direct3D wrapper), a mouse and a sound card with wave table Midi support.
The 2010 release relies on DirectX9 to work with.
The 2022 reboot is 64 bit compatible and will move OpenGL rendering to shaders.
Supported cards[edit]
Note: This is for the latest 1998 release, 0.94e.
3Dfx Voodoo II - tested 3Dfx Voodoo - tested 3Dfx Rush - tested 3Dfx Banshee - tested Rendition V2100 - tested Rendition V2200 - tested nVidia Riva 128 - tested nVidia Riva TNT - tested PowerVR PCX2 - drivers not finished Permedia II - tested (monochrome lighting only) Glint 500 - tested Glint GMX - tested Intergraph Realizm - tested Intergraph Realizm II - tested Evans & Sutherland - tested ATI Rage Pro - tested (incomplete) Intel i740 (Real3D) - tested nVidia Riva TNT - tested S3 Savage 3D - (being tested by S3) Matrox G200 - tested
External links[edit]
- glDoom repository, hosted on GitHub
- Original glDoom site
- Original glDoom SourceForge page
- glDoom home page (archived 🏛)
- glDoom development notes (archived 🏛)
- glDoom v0.95c binary and source code by REDPOWAR, hosted by GitHub
- A copy of glDoom v0.92 (archived 🏛) (the page is in Russian)
- Download glDoom v0.94e at Doomworld
- GLDoom interview with Bruce A. Lewis, hosted at Quake2.com
- GLDoom review, hosted by DoomWorld
- (In Russian) Thread about unofficial releases, hosted by Old-Games.ru
References[edit]
Source code genealogy | ||
---|---|---|
Based on | Name | Base for |
WinDoom | glDoom | Active |