Skip to content
This repository was archived by the owner on Nov 24, 2021. It is now read-only.

Engine Components

Jeremy Lorelli edited this page May 28, 2020 · 1 revision

Engine Components

This document details various components of the engine.

Component Purpose
tier0 Low-level platform abstraction library. Includes low-level vproc impl, threadtools and a general platform abstraction API
tier1 Higher-level data structures and containers. Things like vector, binary trees, hash map, normal map, red-black trees, key values parser.
tier2 Used by appsystems. Provides filesystem globals and some other things like that
tier3 Similar to tier2, don't know what it does really
tier4 extremely basic UI library for multiple platforms
vstdlib NOT an impl of the standard library. Implements convar system, keyvalues cache system, process tools and uniform random streams
mathlib Implements various math functions and classes like matricies, vectors, angles and quaternions.
appframework Implements Source's app framework system that allows for dynamic loading of modules and interfaces
vtf Library for working with VTF (Valve Texture Format) files
bitmap Includes a loader for TGAs and PSD files
inputsystem Implements the inputsystem interface for..input..
vphysics Implementation of the physics interface using bullet physics in this project
raytrace Simple raytracing library used by vrad
launcher Implementation of the launcher DLL, which is loaded by the launcher exe
launcher_main The launcher exe itself, which loads the launcher DLL
filesystem Implements the filesystem interface. There exists filesystem_stdio and filesystem_steam. We use filesystem_stdio only
particles Particle rendering library
fgdlib Library for loading FGD files, which are used by hammer to load entity definitions
dmxloader Loader for DMX files
materialsystem Implements the rendering system on a superfical level. This calls into the various shader APIs
shaderapiempty Empty shaderapi implementation used by the dedicated server
shaderapidx9 Shaderapi implemented using DirectX 9
shaderapidx11 Shaderapi implemented using DirectX 11
stdshaders Project that contains all the shaders
shaderlib Library that shaders use
studiorender Rendering library for MDL files
vgui2 The GUI library that source uses
vgui2/vgui_controls Higher-level controls for VGUI
vgui2/vgui_surfacelib Implements surface rendering for fonts and stuff
vgui2/matsys_controls Higher-level controls for VGUI that focus on materialsystem stuff
vgui2/game_controls Controls for VGUI that focus on game systems
vgui2/dme_controls Controls for VGUI that focus on Datamodel stuff
engine The actual engine
game/server Game code that runs only on the server
game/client Game code that runs only on the client
game/shared Game code that runs both on client and server
networksystem Abstraction of platform-specific networking libraries. Implemented using winsock on Windows and Unix Sockets on POSIX systems
soundsystem Something to do with the soundsystem
mdllib Simple library for working with MDL files
utils/vbsp Compiles VMF files to BSP files
utils/vrad Valve RADiant. Bakes lighting into maps
utils/vvis Valve VISibility. Computes visibility in BSP maps
utils/hammer The hammer map editor source code
utils/shadercompile Shitty tool for compiling shaders
devtools Various scripts and programs that help with development
Clone this wiki locally