THE SITE
 FEATURES
 HL2 GUIDE
 HL2 RESOURCES
 EPISODIC CONTENT
 CS:Source @ CS-Nation
 HOSTED

 AFFILIATES
 
Article: Source: Belly of the Beast
Author: Richie P Feedback: Comments/Discussion
Date Added: June 21st, 2004 Print: Printable B&W Version

While I have researched all the relevant areas, I'm not an industry expert on the technical details. If you can see that something is blatantly wrong — whether it be a technical point or just a sentence that's plain unintelligible, report it and I'll take care of it.

What is the Source "engine"?

Source: like a car engine... only different.
Shortly before completing Half-Life, Valve software began the planning and research for their next major project: Half-life 2. It became apparent early on that the game engine used for Half-Life (a heavily modified Quake 1 engine) simply would not meet HL2's specification — not without being completely rewritten. Instead, they started from scratch, coding everything from the ground up (with the exception of the physics code licensed from Havok — more on that later).

Now if you're wondering what I mean by 'engine' then read on for brief description (if not, skip ahead to the next section). In the context of computer game software, an engine is simply a system. Like a car's engine, it can take input from other parts of the "car" (e.g. accelerator) and produce the desired output. A software engine does the same thing, taking input from one part of the program or a file and producing the desired output.

To take the car engine analogy further, a software engine can't be used on its own — it needs to be implemented in another system (you can't drive around with just an engine). In Source's case, the bare engine without the game content (of Half-Life 2), would be completely unplayable. The engine is simply the machinery that allows the game's components to interact and be processed and rendered into a playable form.

If this has just multiplied your confusion, I apologize.

Overview of Topics
The Source engine is not just a 3D engine (in the sense it's not just a renderer) — it contains many different modules that are all brought together into one package. This is highly convenient for developers who can easily swap pieces of the engine in and out as they please.

In this article I will try to explain what these modules do and how they will effect the gamer. It's aimed at regular gamers interested in learning more about some of the amazing capabilities of the Source engine. This is not meant to cover the inner-workings of Source's actual code. I must warn you that I may not have covered all of the modules or described them in the detail more technical readers may be after. Some of the source engines workings are too obscure/complex/boring/evil for the scope of this article. If you're after a more complex (and comprehensive) explanation of Source's systems, I suggest you wait for the SDK documentation (or check out the links I've included in the article). I should also point out that the categories that this article is split into do not reflect the actual modules of the Source engine.
  • 3D engine
    • The Renderer
      • Pixel and vertex shaders
      • Lighting
      • HDR (High Dynamic Range)
    • Animation & FacePoser
    • Geometry
    • VGUI
  • The Physics System (Based on Havok)
    • Rigid body dynamics & constraints/joints
    • springs, ropes, cloth & vehicles
    • Water & Fire
    • the particle system
    • Monsters/NPC's & procedural physics
  • The material system (brings the other components together)
  • AI System
I use the term "3D engine" to describe the systems that produce Source's graphics and control its geometry.


HEADLINES
MODS HEADLINES LATEST FILES FORUMS

Site content © 2004 Josh "Mr Bond" Klose unless otherwise noted. Designed by: afferentDESIGN.