Difference between revisions of "Build"

From Blood Wiki
Jump to navigationJump to search
(→‎Ports: https://github.com/coelckers/Raze)
Line 11: Line 11:
Most recently the engine has been used in a modern game published by a revived 3D Realms in 2019 called ''[[:wikipedia:Ion Fury|Ion Fury]]'' by [[Duke4]] affiliated developer VoidPoint.
Most recently the engine has been used in a modern game published by a revived 3D Realms in 2019 called ''[[:wikipedia:Ion Fury|Ion Fury]]'' by [[Duke4]] affiliated developer VoidPoint.
The engine was controversially supplanted by the [[Kex Engine]] in the official remaster ''[[Blood: Fresh Supply]]''. Updated community versions are the basis however for unofficial [[source port]]s [[BloodGDX]] and [[NBlood]], as well as earlier fan [[recreation]] ''[[BloodCM]]''.
The engine was controversially supplanted by the [[Kex Engine]] in the official remaster ''[[Blood: Fresh Supply]]''. Updated community versions are the basis however for unofficial [[source port]]s [[BloodGDX]] and [[NBlood]] (plus the fork [[Raze]]), as well as earlier fan [[recreation]] ''[[BloodCM]]''.
== Details ==
== Details ==

Revision as of 15:14, 22 March 2020

Build Logo

"Build, the powerful 3D Realms game engine written by Ken Silverman, boasts some of the hottest features available in a 3D game."--Blood Website

Build is the 3D rendering engine used in Blood and its expansion packs Cryptic Passage and the Plasma Pak. It was created by Ken Silverman, previous creator of Ken's Labyrinth (published by Epic MegaGames), under contract by 3D Realms (formerly known as Apogee Software).

3D Realms used this engine in its games Duke Nukem 3D and Shadow Warrior, both of which played similarly to Blood; Build has also been used in a variety of other games.

It was contracted to Monolith Productions when they purchased the rights to Blood and QStudios, who originally bought it from 3D Realms.

Most recently the engine has been used in a modern game published by a revived 3D Realms in 2019 called Ion Fury by Duke4 affiliated developer VoidPoint.

The engine was controversially supplanted by the Kex Engine in the official remaster Blood: Fresh Supply. Updated community versions are the basis however for unofficial source ports BloodGDX and NBlood (plus the fork Raze), as well as earlier fan recreation BloodCM.


The MAPEDIT program showing "CP09: Castle"

The Build engine renders its world on a two-dimensional grid using closed 2D shapes called "sectors" and simple flat objects called "sprites" to populate the world geometry with objects. It is generally considered to be a 2.5D engine, since the basic world geometry is two-dimensional with an added height component, as each sector may have a different ceiling and floor height, and the ceiling and floor may be angled along one line of the sector. However the final result is that the world looks three-dimensional due to the way the engine renders it. The version of the Build engine used in Blood also makes use of the voxel technology for weapon/ammo pickups, power ups and occasionally decorations, such as the tombstones in the first level of episode one, "Cradle to Grave".


"I wrote the Build Engine. I visited the team in Redmond 3 times, each for about a week. During those times, I worked closely with the programmers - Nick Newhard and Peter Freese. Those guys also visited Texas in 1995 for about 2 weeks. I was mostly helping them fix bugs related to the engine. I helped them to implement network code. The room over room effect was something I started collaboratively with Nick."--Ken Silverman

Ken Silverman working in 1994
"The History of Ken Silverman's Build Engine" - YouTube

The development of the version of Build used in Blood was mostly conducted by Peter Freese and Nick Newhard in combination with Ken Silverman who visited the QStudios team two times, and once at the Monolith Productions offices. The Blood team also visited him once in Texas in 1995, where he was working with 3D Realms, and Newhard regularly called Silverman whilst he was in his first semester of college. On the split between 3D Realms and Monolith, Silverman commented:

"You would have to ask Scott Miller, George Broussard, or Jason Hall about the specific reasons for the split-up [between Monolith and 3D Realms]. From what I hear, things weren't working out very well - they disagreed on what would make a good game. I visited the Blood team a total of 3 times - the final time was at the Monolith office."--Ken Silverman

Silverman has stated his final views on the big three games built on the engine thus:

"I like Duke Nukem 3D for being the first big title and the one that paved the way. I like Shadow Warrior for having the cleanest code and Blood for having the best artwork."--Ken Silverman

After the source code of many game engines had been released by their respective owners, an intense fan campaign called for the release of the Blood source code (see: Blood Source Campaign)

Blood indoors
Blood outdoors

File Types

File types used with the original Blood and its various commercial and fan made add-ons.


An executable file format used by a variety of IBM PC compatible operating systems, most prominently MS-DOS and Windows. Blood's stock EXEs are DOS only (with exceptions to the GOG version's DOSBox exe's), however certain launchers' and other utilities' may be hybrid or Windows only.


Configuration file that stores display, control and other customizable settings information.


Batch file scripting used to store DOS commands, such as loading a set custom map or INI file.


Text files are often used for storing background materials, installation instructions, or other pertinent information. Some may also use RTF or PDF.


A modem string file for use with network mutliplayer and storing INIT strings.


Initialization file; often used to store information pertinent to structuring episodes, such as level order, names, music, authors, messages, etc. There are also special "Network Game" INI files which essentially store multiplayer game rules and other options; a primitive form of game management. Other programs (launchers, editors, ect.) will often also use INI files, though usually for a different purpose.

Launched via the command parameter: "blood -ini example.ini". By default will load the stock "blood.ini" file without any parameters, however will actually load any INI file with this name. This can be exploited to force Blood to support features that aren't normally supported when playing custom maps/episodes, such as demo playback.

For Network Game INIs, the person loading the file uses the parameter "-getopt" , whilst everyone else uses "-auto".


Stores sector data for map construction, as well as tagging points and object placements.

Launched via the command parameter: "blood -map example.map"


Stores information pertaining to textures, sprites and so forth. Cryptic Passage uses the extension .AR_ for it's art files.


Used to store voxel mappings (3D pixels).


A special proprietary archive format Blood uses in place of Build's traditional GRP format.

Blood includes three of these files: BLOOD.RFF, GUI.RFF and SOUNDS.RFF.


Used for storing information related to CD audio.


Stores pre-rendered video information (cutscenes) in the Smacker video format, such as for the Monolith Productions and GT Interactive logos.


Common audio format on Microsoft (Windows & DOS) PCs. Blood uses them to add sound to its cutscenes, though mods may use them for other purposes too.


Another common format on Windows. This one contains both audio and video. Like the previous two, Blood uses these for it's cutscenes though only when ran from Windows 95/98.


RAW is a format for storing uncompressed audio. It is often accompanied by a SFX file which contains some additional metadata and the sound's properties (relative volume, ect.)


Musical Instrument Digital Interface files for the game's synthesized music.


The Good Old Games version of the game uses Ogg Vorbis to store the game's formerly CD audio.


Stores information for real-time animations, such as the menus, help screen and weapon animations; modified in the "Weapons Mod".




Stores information for re-playing live game demos. In the early days of the internet, before sharing videos or streams of gameplay was feasible, this is how you shared your gameplay. It store all the player's actions and repeats them, imitating a video.

Use parameter "-record" or the "SPIELBERG" cheat in talk box to record a demo. Use the "-playback" parameter to replay a recorded demo. Note that Default demos ("Blood***.dem") have to be removed to properly use these functions as the defaults oddly have priority over the user made demos. However the default demos can be replaced with user made ones which will be played sequentially in order. Also note that demos are disabled by default for Cryptic Passage and user made add-ons, but as noted above in the INI section, they can be enabled by renaming the add ons' INI file in the main "blood.ini"'s place. Utilizing both tricks, a mod developer can enable a full sequential set of demos for their episode(s); such a thing is best done with batch scripts to rename (or move) then revert the original files as to not overwrite them.


Game save files, these contain the various status and other progress info that is restored when selected in the load menu. Don't delete these unless necessary.


A very old picture format for IBM PCs. Blood can generate these by pressing F12 in-game, though for DOSBox users it's probably better to use an external capture program to make images in a modern format (i.e. PNG, JPEG, ect.)


Stores generic data of any category. TMP is often used for files that are temporarily moved out the way to be replace by others. BAK is often used for files that are modified, a backup is made just in case the modification process damaged the file. BME is often used by mod developer BME for his mod sets.

Blood only has four DAT files by default: SURFACE.DAT, TABLES.DAT, VOXEL.DAT and COMMIT.DAT. The other types are only encountered in mods or other utilities.

Surface Attributes

"You can destroy anything right down to the signs on the walls. Unlike Duke, we have somewhere in the region of 30 different chip types. Burning wood, regular wood, metal, rocks, plants. Pretty much everything can be destroyed and pretty much everything has its own individual look when it gets wrecked."--Craig Hubbard

  • 0 = None
  • 1 = Stone
  • 2 = Metal
  • 3 = Wood
  • 4 = Flesh
  • 5 = Water
  • 6 = Dirt
  • 7 = Clay
  • 8 = Snow
  • 9 = Ice
  • 10 = Leaves
  • 11 = Cloth
  • 12 = Plant
  • 13 = Goo
  • 14 = Lava

External Links


Ken Silverman Interviews