SDK Overview: Difference between revisions
mNo edit summary |
mNo edit summary |
||
Line 18: | Line 18: | ||
== Getting Started == | == Getting Started == | ||
Now that you know the fundamentals of what the {{User:SomeoneTookSeven/TemplateSDK}} is and what it actually does. You start exploring the codebase. With this being said, {{source|4}} is '''''LARGE''''' and really old ''(potentially older than some of its developers)'' meaning its recommended you take some more time to learn about some generic SDK concepts as well as some generic | Now that you know the fundamentals of what the {{User:SomeoneTookSeven/TemplateSDK}} is and what it actually does. You start exploring the codebase. With this being said, {{source|4}} is '''''LARGE''''' and really old ''(potentially older than some of its developers)'' meaning its recommended you take some more time to learn about some generic SDK concepts as well as some generic {{Cpp|4}} concepts that are used heavily throughout the engine. | ||
The next article that is recommended is [[VPC_Scripts]]. These "Valve Project Creator" scripts is how {{Valve|4|nt=3}} ensures everyone on their team is working in a relatively consistent development environment. They do this by controlling project settings and some pre-processor functionalities with these scripts allowing everyone on the team to have a uniform baseline project. | The next article that is recommended is [[VPC_Scripts]]. These "Valve Project Creator" scripts is how {{Valve|4|nt=3}} ensures everyone on their team is working in a relatively consistent development environment. They do this by controlling project settings and some pre-processor functionalities with these scripts allowing everyone on the team to have a uniform baseline project. |
Revision as of 21:19, 27 July 2025
What is the SDK
The Source SDK is a development kit for creating and modifying games built on the
Source Engine. It includes the relevant source code files that enable developers to modify and create internal games systems. While the
Source SDK does not provide access to the engine, it does provide header files. These header files can be used in conjunction with other SDK code to interface with the engine allowing communication between the public SDK code and
Valves Closed-source engine code.
What The SDK Isnt
It’s important to understand that the Source SDK DOES NOT include
Source Engine code. This means that while you can interface with low level systems, you cannot change them. However anything above those systems, you can! While its obvious that the game code is available.
Valve also included other
Visual Studio 2022 projects along with the SDK (like compiler tools)
How the SDK Operates
As we described earlier The Source SDK IS NOT The
Source Engine. This means we are still going to need the engine to run our game. To get this engine,
Valve published
Source SDK Base 2013 - Multiplayer on steam. Downloading this software off steam, grants us a relatively barebones version of the engine that we will use to launch our SDK mod.
Valve designed the engine from the ground up to be highly modular. As you start reviewing SDK Code you should see this pattern emerge. At the lowest level the engine will dynamically load and unload .dll
files depending on what logic is needed and when. This means that we can launch our SDK using the original HL2.exe without needing to recompile the entire engine. Instead all that is required from us is tell the
.exe
file that we want to use our SDK code instead of the original.
This happens by using launch parameters. The SDK should setup this up for you automatically without you realizing it. If you inspect the properties of the Client (HL2MP)
project in Visual Studio under
Configuration Properties -> Debugging -> Command
you should find it set to: <drive>\STEAM\steamapps\common\Source SDK Base 2013 Multiplayer\hl2_win64.exe
This is telling you that whenever you build your SDK project and launch it to use this .exe
program to try and do it. Just under it you'll notice Command Arguments
(what it will pass the the .exe
program as it trys to launch it) is set to: -game "C:\Users\User\Desktop\SDK\source-sdk-2013\game\mod_hl2mp" -dev -w 1920 -h 1080 -windowed
. These arguments is what tells the source engine to launch our mod.
Getting Started
Now that you know the fundamentals of what the Source SDK is and what it actually does. You start exploring the codebase. With this being said,
Source is LARGE and really old (potentially older than some of its developers) meaning its recommended you take some more time to learn about some generic SDK concepts as well as some generic
C++ concepts that are used heavily throughout the engine.
The next article that is recommended is VPC_Scripts. These "Valve Project Creator" scripts is how Valve ensures everyone on their team is working in a relatively consistent development environment. They do this by controlling project settings and some pre-processor functionalities with these scripts allowing everyone on the team to have a uniform baseline project.