The History of Steam VR
The year is 1996, Valve had just been founded as an L.L.C in kirkland, Washington and after securing a license for the highly popular Quake engine from id Software, they began simultaneous development on two titles Quiver and Prospero, both of which are scrapped or rather incorporated into one game in late 1997.
Taking the best elements from both games the new title becomes known as Half-Life. During this period the Goldsrc engine is developed from the codebase of the Quake engine, with only approximately 25% of the original code remaining.
Half-Life was the first game for both Valve and the Goldsrc engine. The success of both Half-Life and the engine upon which it ran was unparalleled as it received 51 Game of the Year awards from a posse of publications. The new features Valve added to the engine gave Half-Life an edge over other games and engines that had not been seen prior.
The engine has been licensed and used to create a plethora of games and Half-Life related expansions, not to mention considerable game mods, the best of which Valve purchased and developed themselves by taking the original developers onboard at Valve.
The Goldsrc engine although officially retired by Valve in favour for the Source engine can still be downloaded and developed for so long as your creation remains free for the public to play. A question that has been asked often when it come to these two engines is their naming. This can be best answered in this excerpt from Eric Johnson:
When we were getting very close to releasing Half-Life (less than a week or so), we found there were already some projects that we needed to start working on, but we couldn’t risk checking in code to the shipping version of the game. At that point we forked off the code in VSS to be both $/Goldsrc and /$Src. Over the next few years, we used these terms internally as “Goldsource” and “Source”. At least initially, the Goldsrc branch of code referred to the codebase that was currently released, and Src referred to the next set of more risky technology that we were working on. When it came down to show Half-Life 2 for the first time at E3, it was part of our internal communication to refer to the “Source” engine vs. the “Goldsource” engine, and the name stuck.
At this point Valve was no longer an L.L.C but a Corporation(queue evil laugh..) who were pushing the development and usage scenarios of their new behemoth in games technology “Steam”. The digital distribution network was met with opposition from gamers because of its DRM based nature and the necessity to register games through it.
It did eventually become popular as well as stable. All the while they continued pursuing the development of their new engine… Source.
- Uncomplied Map Format: .MAP is the uncompiled map file that Hammer reads and saves to. It is a text based file and can be opened and edited in a text editor. The Hammer editor can even open some Quake and Quake II maps.
- Compiled Map Format: .BSP (binary space partitioning) is the extension used to describe a compiled map file used by the Goldsrc engine. It is based on the same BSP structure used by the Quake engine.
- Texture loading and storage: .WAD is the file format used by both engines to manage textures. Every texture in a Goldsrc WAD file has its own palette, rather than sharing it with other textures. Goldsrc could also handle more than one WAD, unlike Quake.
- Asset storage: .PAK files are used to store models, sounds, levels .etc and is used by both engines.
- Models: .MDL is also used by both engines and represents a compiled model be it static or dynamic.
- AI flocking: NPC’s can group together, as seen with the Houndeye monster in Half-Life.
- Higher poly counts: The Polygon limit in Goldsrc is quite higher than that of Quake.
- Skeletal animation: This new feature allowed for easier and more accurate animation of characters.
- Scripted sequences: A Game logic feature used extensively to tell the story in Half-Life
- Transparent textures: Made for the introduction of glass in maps, adding another layer of depth and immersion.
- Structure names.
- The version number in the file header.
- Order of the lump size and offsets in the file header.
- The content in the lightmap lump: Half-Life stores RGB in three bytes instead of monochrome in one byte. This meant that Half-Life utilized colored lighting compared to greyscale lighting in Quake.
- Mipmap offsets in the texture lump may be zero: it indicates the texture should be loaded from an external WAD file.
- Each mipmap is followed by a 16-bit integer (always = 256) then 256 RGB values (texture palette).