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 |