Developer(s) | Ken Silverman |
---|---|
Initial release | September 30, 1995 |
Repository | advsys |
Successor | Build 2 |
License | Source-available [1] |
Website | advsys |
The Build Engine is a first-person shooter engine created by Ken Silverman, author of Ken's Labyrinth , for 3D Realms. Like the Doom engine, the Build Engine represents its world on a two-dimensional grid using closed 2D shapes called sectors, and uses simple flat objects called sprites to populate the world geometry with objects.
The Build Engine is generally considered to be a 2.5D engine, as the basic world geometry is two-dimensional with an added height component, allowing each sector to have a different ceiling height and floor height. Some floors can be lower and some can be higher; the same is true with ceilings (in relation to each other). Floors and ceilings can hinge along one of the sector's walls, resulting in a slope. With this information, the Build Engine renders the world in a way that looks three-dimensional, unlike modern game engines that create actual 3D environments.
Though the Build Engine achieved most of its fame from powering the 1996 first-person shooter Duke Nukem 3D , it was also used for many other games.
Sectors are the building blocks of a level's layout, consisting of a two-dimensional polygonal outline when viewed from above, with the top and bottom faces of the sector given separate altitudes to create a three-dimensional space. [2] Hence, all walls are perfectly vertical—anything appearing otherwise is technically a sloped floor or ceiling. The word room can be used as a loose substitute to aid understanding, though one room in the game world can consist of many sectors, and parallaxed skies can give the illusion of being outdoors. Sectors can be manipulated in real-time; all of their attributes such as shape, height, and slope could be modified "on-the-fly" by games, unlike the earlier Doom engine. This allowed games to have destructible environments, such as those seen in Blood . [2] This technique is similar to the use of push walls in the earlier Apogee Software title Rise of the Triad which featured similar dynamic environments.
Developers of games based on the engine used special reserved "sprites" (game objects), often called "sector effectors[ sic ]", that, when given special tags (numbers with defined meanings), would allow the level designer to construct a dynamic world; similar tag information could be given to the sector walls and floor area to give a sector special characteristics. For example, a particular sector effector may let players fall through the floor if they walk over it and teleport them to another sector; in practice, this could be used to create the effect of falling down a hole to a bigger room or creating a body of water that could be jumped into to explore underwater. A sector could be given a tag that made it behave like an elevator or lift.
Sectors could overlap one another, provided they could not be seen at the same time (if two overlapping sectors were seen at the same time, a hall of mirrors effect resulted). [3] This allowed the designers to create, for instance, air ducts that appeared to extend across the top of another room (however, doing so could be tricky for designers due to the 2D viewpoint used for much of the editing process). This allowed the designers to create worlds that would be physically impossible (e.g. a doorway of a small building could lead into a network of rooms larger than the building itself). While all these made the games using the engine appear to be 3D, it wouldn't be until later first-person shooters, such as Quake , which used the Quake engine, that the engine actually stored the world geometry as true 3D information, making the creation of one area stacked atop another area in a single map very feasible.
Later versions of Ken Silverman's Build Engine allowed game selected art tiles to be replaced by 3D objects made of voxels. This feature appeared too late to be used in Duke Nukem 3D, but was seen in some of the later Build Engine games. Blood uses voxels for weapon and ammo pickups, power-ups, and eye-candy (such as the tombstones in the "Cradle to Grave" level, some chairs, and a crystal ball in "Dark Carnival"). Shadow Warrior makes even more advanced use of the technology, with voxels that can be placed on walls (all of the game's switches and buttons are voxels).
For several years, Ken worked on a modern engine based entirely on voxels, known as Voxlap .
One limitation of the Build Engine is that its level geometry is only capable of representing one connection between sectors for any given wall. Due to this, a structure as simple as a shelf with space both above and below it is impossible, though sometimes sprites or voxels can be substituted. Buildings with several floors are technically possible, but it is not possible for such a building to contain an external window directly above or below another window. In addition, some liberties will need to be taken with the staircases, elevators, and other methods of access for each floor.
Several Build Engine games (namely Shadow Warrior, Blood, and Redneck Rampage) worked around this by displaying a "viewport" to another sector through an additional rendering pass. This technique, called room-over-room (ROR), appears seamless to the player. In addition to an expanded range of vertical construction, ROR was often used to give bodies of water translucent surfaces. ROR was never a feature of the Build Engine itself, but rather a "trick" that was created by game developers. A trick used in Duke Nukem 3D to get around this, as in the case of its opaque underwater sections, was to simply transport the player quickly to another region of the map made to mimic it, similar to the elevators from Rise of the Triad .
In 2011, a feature was added to EDuke32 called true room over room (TROR), which allows multiple sectors to be stacked vertically so that each sector's wall has its own connection, enabling vertically-unrestricted structures. The difference between ROR and TROR is that TROR sectors physically overlap in the map data and editor (allowing for easy creation and visualization), rather than being drawn from separate locations using view portals, hence true room over room. TROR is a feature of the EDuke32 source port, not a game feature or trick.
Year | Title | Developer | Notes |
---|---|---|---|
1994 | Rock'n Shaolin: Legend of Seven Paladins 3D | Accend Inc. | Illegally used an earlier version of the engine, only released in Taiwan and South Korea. [4] [5] |
1995 | Witchaven [2] | Capstone Software | |
William Shatner's TekWar [2] | |||
1996 | Duke Nukem 3D [6] | 3D Realms | Also Plutonium PAK, Atomic Edition, Duke!ZONE II, Xtreme, Duke it Out in D.C., Life's a Beach and Nuclear Winter expansions. |
PowerSlave | Lobotomy Software | ||
Witchaven II: Blood Vengeance | Capstone Software | ||
1997 | Blood [6] | Monolith Productions | Also Plasma Pak and Cryptic Passage expansions. |
Shadow Warrior [6] | 3D Realms | Also Twin Dragon and Wanton Destruction expansions. | |
2024 | Skilander | Hackers and Hiihtoliitto | Released at the Revision 2024 gamedev competition. [7] [8] |
Year | Title | Developer | Notes |
---|---|---|---|
1997 | Redneck Rampage | Xatrix Entertainment | Also Suckin' Grits on Route 66 expansion. |
1998 | Redneck Rampage Rides Again | ||
Redneck Deer Huntin' | |||
Extreme PaintBrawl | Creative Carnage | ||
NAM | TNT Team | ||
Liquidator [9] | Akella | Illegally used the engine, only released in Russia. | |
1999 | WWII GI | TNT Team | Also WWII GI: Platoon Leader expansion. |
2019 | Ion Fury | Voidpoint | via EDuke32 . |
2022 | A.W.O.L. [10] | Shotspark Studios |
The Build Engine was essentially a one-man project for Ken Silverman, though he consulted John Carmack for guidance early in the project. [3] Silverman was hired by 3D Realms on the basis of his demo for Build. Though he continued to refine the engine after becoming employed at 3D Realms, according to Silverman he never teamed with any other 3D Realms employees on the project and was never directed to tailor the engine towards any particular game. [2]
On June 20, 2000 (according to his website) Ken Silverman released the Build Engine source code under a proprietary non-commercial license. [11] [1] Silverman explained that after id Software set a precedent by releasing the source code for the Doom engine, fans had been pressuring him to release the source code for the Build Engine. [2]
Version 2.0 of Matt Saettler's EDuke, a project to improve Duke Nukem 3D for modders, was sent to 3D Realms for packaging shortly after the release of the Build source, leaving Duke Nukem 3D the pre-built libraries that 3D Realms had used with the original Duke. (Both Duke Nukem 3D and EDuke were still closed-source at this point.)
With the 2.1 private betas, Saettler worked towards integrating Silverman's build source into the Duke source code, but the project fizzled out before producing anything more than some very buggy private betas. A few total conversion teams for Build games decided to work from Silverman's Build code directly, and an enhanced version of the Build editor known as Mapster was also developed.
It was claimed at the time by many on the 3D Realms forums that it would be impossible to port Build to a multitasking OS, as it needed a large contiguous block of memory that wouldn't be available in a multitasking environment. This statement did not hold up to scrutiny, as all modern operating systems use virtual memory which allows apps to get contiguous logical memory without using contiguous physical memory, but conventional wisdom of the time was that porting Build to such an OS was unfeasible.
On April 1, 2003, after several years of claims to the contrary, 3D Realms released the source code to Duke Nukem 3D under the GPL-2.0-or-later license. [12] Not long afterwards, both Ryan C. Gordon and Jonathon Fowler created and released source ports of the game, including the Build Engine. It was possible to play Duke Nukem 3D well on the NT line of Windows (including Windows 2000/XP) and on Linux and other Unix operating systems, and interest in the source ports soared.
Ryan C. Gordon (icculus), with the help of others, made the first port of the engine using SDL. The port was first to Linux, then to Cygwin, and finally to a native Windows build using the Watcom C++ compiler, which was the compiler used for the original DOS build (despite being compiled with Watcom C++, Build is plain C.) [13] There was some talk of Matt Saettler using this to port EDuke to Windows, but nothing came of it. A port of Duke Nukem 3D was later produced after the source was released. [14] This was also forked by David "Rancidmeat" Koenig as Duke3d_w32 which was in turned forked into the multiplayer focused xDuke, hDuke, nDuke and rDuke.
A second source port was made to Windows, and later to Linux and Mac OS X, by Jonathon Fowler (JonoF). This port, JFDuke3D, initially did not have network game support, though this was added later in development. After a long period of dormancy it was put on GitHub in 2020 and received updates in 2021 and 2024. [15] [16] [17] He also ported the Ken-Build test game. [18]
The task of updating the Build Engine to a true 3D renderer was taken on by Silverman himself. In the release notes for Polymost, he wrote: "When 3D Realms released the Duke Nukem 3D source code, I thought somebody would do a OpenGL or Direct3D port. Well, after a few months passed, I saw no sign of somebody working on a true hardware-accelerated port of Build, just people saying it wasn't possible. Eventually, I realized the only way this was going to happen was for me to do it myself." [19]
The Polymost renderer allowed for 3D hardware-accelerated graphics using OpenGL. It also introduced "hightile", a feature that made it possible to replace the game's original textures with high-resolution replacements in a variety of formats. Polymost has been utilized in Jonathon Fowler's JFBuild, JFDuke3D, JFShadowWarrior, and source ports derived from their code bases.
The source for EDuke 2.0 was later[ when? ] released, followed by the source for the last private beta of EDuke 2.1 (which never made it to a release version). Richard Gobeille (TerminX) merged the EDuke 2.0 source with JFDuke3D to make EDuke32. Another port, Wineduke, based on the icculus code, has since died off, leaving EDuke32 the only EDuke port still in development. [20]
EDuke32 also supports the games NAM and WWII GI, as EDuke was based on the code to those games.
On April 1, 2009, an OpenGL shader model 3.0 renderer was revealed to have been developed for EDuke32, named Polymer to distinguish from Ken Silverman's Polymost. At first it was thought to be an April Fools' joke, but the renderer was later made public. It allows for more modern effects such as real-time dynamic colored lighting and shadow mapping, specular and normal mapping, and other shader-based features in addition to most of the features added to Polymost over the years. Although Polymer is completely usable, it is technically incomplete and unoptimised, and is still in development. The developers of EDuke32 have stated that once Polymer has been rewritten for speed, it will supplant Polymost completely, as it is a superior renderer, and can be made to look identical to Polymost.
Developer(s) | Alexander "[M210]" Makarov |
---|---|
Initial release | January 12, 2018 |
Stable release | 1.16 / December 5, 2021 |
Repository | gitlab |
Platform | Java |
Successor | NuBuildGDX |
Type | Game engine |
License | Source-available, GNU GPL v2 |
Website | m210 |
The Shadow Warrior source code was released on April 1, 2005 under the GPL-2.0-or-later license, and JonoF released a source port of it, JFShadowWarrior, on April 2, 2005. [21] However, he admitted that he had access to the Shadow Warrior source code about a week before its release. [22] The port was left in a partially incomplete state, before being put on GitHub in 2020 and receiving updates in 2021 and 2024. The earlier version was later forked by Ben "ProASM" Smit for the SWP port. [23] An icculus port of Shadow Warrior was started, but remained alpha. [24] A VoidSW port by the Ion Fury and EDuke32 developers entered public beta on May 21, 2020. [25] A fork from an earlier version, called IcedSW, by Justin "IceColdDuke" Marshall also exists. [26]
The Transfusion project aimed to re-create Blood in the DarkPlaces engine, [27] but as of 2007, this project was far from complete, though it has playable deathmatch multiplayer; a similar project is BloodCM which recreates all of the Monolith made single player levels for Blood on top of EDuke32, [28] as well as ZBlood which ports some Blood assets and levels onto ZDoom. [29] The eRampage project attempted to create a total conversion of Redneck Rampage for EDuke32. [30] Meanwhile DN3DooM, [31] [32] [33] Shadow Warrior TC, [34] Doomed Redneck, [35] Re-Blood, [36] Re-PowerSlave, [37] VietDoom, [38] [39] [40] [41] and Fatedoom [42] adapts those games onto GZDoom.
The source code of Witchaven , Witchaven II: Blood Vengeance , William Shatner's TekWar , and Corridor 8: Galactic Wars have also surfaced. The legal status of these, however, is unclear, though the derived EGwhaven patches for Witchaven were included in the game's Steam and GOG.com re-releases. [43] JonoF released ports for Witchaven and TekWar on March 3, 2024; [44] with derived ETekWar and EWitchaven ports also prototyped. [45] The full source code for various alpha versions of Blood have also leaked over time. [46]
This was then used as a reference for an otherwise reverse engineered port to Java using LibGDX called BloodGDX in May 2017 by Alexander "M210" Makarov, the previous author of BloodCM. [47] This followed from the author's previous port of TekWar released in January 2016, [48] and has been followed up by ports for Witchaven, [49] Redneck Rampage, [50] Duke Nukem 3D, PowerSlave, Legends of the Seven Paladins and Shadow Warrior, now all collectively called BuildGDX. [51] DukeGDX also supports the files from the 20th Anniversary World Tour edition of Duke Nukem 3D. [52]
A further port of Blood, called NBlood, was released in January 2019 by Alexey "Nuke.YKT" Khokholov based on EDuke32, [53] and the creator's previous Rednukem port for Redneck Rampage (which also supports Duke Nukem 3D and Duke Nukem 64). [54] [55] An EDuke32 port for PowerSlave , called PCExhumed, was released on November 21, 2019 by Barry Duncan (sirlemonhead) with help from Nuke.YKT. [56] The source port Raze forks various Build engine ports, including JFDuke3D, SWP, NBlood, Rednukem, and PCExhumed, and ties it to a new underlying backend based on the developers' own GZDoom. [57] NBlood and PCExhumed have also been backported to JFBuild for the purpose of adapting it to platforms such as the Amiga, PlayStation Vita and Nintendo 3DS. [58]
After multiple attempts to design a successor to Build, Silverman again began experimenting with such an idea in 2006. He used this work - now called Build 2 - while teaching 3D game programming to children at a summer camp from 2007 until 2009, and work continued until 2011 when he lost interest in the project. It features a more advanced lighting system, voxel rendering for entities and true room-over-room 3D spaces, and at least in part retained backwards compatibility with the original Build. Silverman released his drafts to the public on March 7, 2018. [59] [60] The source code was published under a proprietary non-commercial license on June 8, 2019. [61]
Duke Nukem 3D is a first-person shooter video game developed by 3D Realms. It is a sequel to the platform games Duke Nukem and Duke Nukem II, published by 3D Realms.
id Software LLC is an American video game developer based in Richardson, Texas. It was founded on February 1, 1991, by four members of the computer company Softdisk: programmers John Carmack and John Romero, game designer Tom Hall, and artist Adrian Carmack.
Catacomb 3-D is a first-person shooter video game, the third in the Catacomb series, the first of which to feature 3D computer graphics. It was developed by id Software and originally published by Softdisk under the Gamer's Edge label, released in November 1991. The player takes control of the high wizard Petton Everhail, descending into the catacombs of the Towne Cemetery to defeat the evil lich Nemesis and rescue his friend Grelminar.
id Tech 1, also known as the Doom engine, is the game engine used in the id Software video games Doom and Doom II: Hell on Earth. It is also used in Heretic, Hexen: Beyond Heretic, Strife: Quest for the Sigil, Hacx: Twitch 'n Kill, Freedoom, and other games produced by licensees. It was created by John Carmack, with auxiliary functions written by Mike Abrash, John Romero, Dave Taylor, and Paul Radek. Originally developed on NeXT computers, it was ported to MS-DOS and compatible operating systems for Doom's initial release and was later ported to several game consoles and operating systems.
Ken Silverman is an American game programmer, best known for writing the Build engine. It was most notably utilized by Duke Nukem 3D, Shadow Warrior, Blood, and more than a dozen other games in the mid- to late-1990s.
A source port is a software project based on the source code of a game engine that allows the game to be played on operating systems or computing platforms with which the game was not originally compatible.
Blood is a 3D first-person shooter video game developed by Monolith Productions and published by GT Interactive and developed using Ken Silverman’s Build engine. The shareware version was released for MS-DOS on March 7, 1997, while the full version was later released on May 21 in North America, and June 20 in Europe.
Shadow Warrior is a first-person shooter video game developed by 3D Realms and published by GT Interactive. The shareware version was released for the PC on May 13, 1997, while the full version was completed on August 25, 1997 and released in stores on September 16, 1997. Shadow Warrior was developed using Ken Silverman's Build engine and improved on 3D Realms' previous Build engine game, Duke Nukem 3D. Mark Adams ported Shadow Warrior to Mac OS in August 1997.
Ken's Labyrinth is a first-person shooter for MS-DOS published in 1993 by Epic MegaGames. It was programmed by Ken Silverman, who later designed the Build engine used for rendering in 3D Realms's Duke Nukem 3D (1996). Ken's Labyrinth consists of three episodes, the first of which was released as shareware. An earlier version was self-published by Silverman.
Witchaven is a dark fantasy first-person shooter video game developed by Capstone Software and published by Intracorp Entertainment in 1995. Its sword-and-sorcery themed story tasks the knight Grondoval with a quest to seek out and destroy a lair of witches in their titular fortress, fighting hordes of hostile monsters along the way. Witchaven features action role-playing elements such as leveling, as well as an emphasis on melee combat. Its code was based upon an early version of the nascent Build engine. The game received overall mixed reviews, such as praise for its atmosphere and gory combat, but criticism for some aspects of gameplay. It was followed by a sequel titled Witchaven II: Blood Vengeance in 1996.
Todd Jason Replogle is an American video game programmer best known as the co-creator of the Duke Nukem series. He wrote six 2D action games for MS-DOS released as shareware by Apogee Software between 1990 and 1993. This included Duke Nukem and Duke Nukem II, which were side-scrolling platform games.
The Quake engine is the game engine developed by id Software to power their 1996 video game Quake. It featured true 3D real-time rendering. Since 2012, it has been licensed under the terms of GNU General Public License v2.0 or later.
Witchaven II: Blood Vengeance is a fantasy-themed first-person shooter for DOS compatible operating systems released in 1996 by Capstone Software. It is a sequel to 1995's Witchaven. Both games use the Build engine. It was Capstone's last proprietary game before they and their parent company Intracorp went bankrupt. In Witchaven II, the player controls the returning knight Grondoval, the hero of the first game, as he is trying to stop an evil witch from carrying a titular blood vengeance in revenge for him having slain her sister in the original game. It received generally negative reviews, with criticism directed at its controls, enemy AI, and general mediocrity as compared to other first-person shooters coming out at the time. The game is supported by the BuildGDX source port.
Sunstorm Interactive was an American video game developer founded in 1995 by Anthony Campiti, which specialized in hunting simulators and first-person shooters. The majority of their titles were small-scale "value titles", priced between $20 and $30 as compared to the typical computer game that was priced at $50 at the time.
Jedi is a game engine developed primarily by Ray Gresko for LucasArts. It is very similar to the Build engine used in Duke Nukem 3D. While not a true 3D engine, it supported a three-dimensional environment with no limitations in the 3rd dimension (Z). In Doom, environments or levels were limited to existing in the X-Y plane only – levels were laid out two-dimensionally: while floor and ceiling heights could differ, areas could not overlap vertically. The Jedi Engine had support for areas or rooms on top of one another, a trait that it shared with the Build engine. In the Dark Forces revision of the engine, the renderer could not display two rooms situated on top of each other simultaneously. This capability was added for Outlaws.
PowerSlave, known as Exhumed in Europe and 1999 AD: Resurrection of the Pharaoh in Japan, is a first-person shooter video game developed by Lobotomy Software and published by Playmates Interactive Entertainment in North America, and BMG Interactive in Europe and Japan. It was released in North America, Europe and Japan, for the Sega Saturn, PlayStation, and MS-DOS over the course of a year from late 1996 to late 1997. On May 24, 2015, Powerslave EX, an unofficial remake of the PlayStation version appeared on GitHub. The MS-DOS version of PowerSlave was added to the GOG store on November 19, 2020.
An open-source video game, or simply an open-source game, is a video game whose source code is open-source. They are often freely distributable and sometimes cross-platform compatible.
Ryan C. Gordon is a computer programmer and former Loki Software employee responsible for icculus.org, which hosts many Loki Software projects as well as others. Gordon's site hosts projects with the code from such commercial games as Duke Nukem 3D, Shadow Warrior, Quake III Arena and other free and open source projects for multiple platforms.
Ion Fury is a 2019 cyberpunk first-person shooter video game developed by Voidpoint and published by 3D Realms. It is a prequel to the 2016 video game Bombshell. Ion Fury runs on a modified version of Ken Silverman's Build engine and is the first original commercial game to utilize the engine in 20 years, the previous being World War II GI. An expansion, Ion Fury: Aftershock, was released in October 2023.
On April 1, 2005 3D Realms released the source code for SW's engine under GPL. The timing of the source release lead to believe it was an April fools joke, it spawned its first source port a day later entitled JFShadowWarrior and had the improvements of JFDuke3D and Linux support.
…I [JonoF] did have a week head start…
The only remaining part of the game is a 4-level demo with 7 weapons and 10 enemies, released just before IntraCorp's closure.... There's also a mod called Fatedoom that transports the demo's content into Doom.
You're getting two builds: patched (Enhanced) and retail (Original) for those of you who prefer an unaltered experience as a bonus. Both builds are running on DOSBox with a custom configuration tool. The Enhanced build features fixes introduced in EGwhaven, a must-have community project, which addresses an array of bugs and issues with the game (we'd like to thank ETTiNGRiNDER for the contribution to this release). Additionally, the controls are re-mapped to what you'd expect to see as a default in a first-person game nowadays.
One of the team said to think of it a bit like BuildGDX, as Raze "shares the renderer, the sound system and the input/system interface code across games".