SDK Overview
What is the SDK
The Source SDK is a development kit for creating and modifying games built on the Source Engine. It includes a wide range of source code files and scripts that enables you to build your own systems and game logic on top of the Source Engine framework.
What The SDK Offers
The SDK provides:
- Full access to gameplay code written in C++
- Tools to compile maps, models, and materials
- Build scripts and Visual Studio project files
- Example projects, including full working games
These examples are fully functional games you can compile, run, and modify. They serve as excellent starting points, especially if you’re learning the SDK.
What The SDK Isnt
It’s important to understand that the SDK does not include the full Source Engine code. Low-level systems such as memory management, rendering backends, and core engine behavior are still closed source. These components are proprietary and not exposed for direct modification.
However, Valve provides the necessary header files for these systems. While you can't change their implementation, you can interface with them allowing your code to call engine functions and respond to engine events.
How It Works
For any mod, you’ll need to install Source SDK Base 2013 Multiplayer from Steam. This serves as the foundation for your project, supplying the engine binaries (for example, tier0.dll
) that the SDK doesn’t include.
When you launch your mod, you're not running a separate executable, you’re launching the original hl2.exe with custom parameters that tell it to load your game’s DLLs, assets, and scripts instead of the default ones.
This works because the Source Engine is highly modular. It’s built to dynamically load and unload DLL files at runtime, which is how mods can hook into the engine without needing access to its internals.
Getting Started
The Source Engine is LARGE with a lot of complexities, features, and systems all intertwining with one another. This is why you here "Source Spaghetti".
Due the engines age and the way it is constructed you will often come across anomalies that are less frequent in modern codebases. For Example, you can find code written in the 2020's next to original c code because C++ didn't exist when they wrote it.