This repository was archived by the owner on Nov 24, 2021. It is now read-only.
  
  
  - 
                Notifications
    
You must be signed in to change notification settings  - Fork 30
 
Engine Components
        Jeremy Lorelli edited this page May 28, 2020 
        ·
        1 revision
      
    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 |