SDK Overview: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
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 CPP concepts that are used heavily throughout the engine.  
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 "SDKImg" Source SDK is a development kit for creating and modifying games built on the Source Source Engine. It includes the relevant source code files that enable developers to modify and create internal games systems. While the "SDKImg" 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 Valve Valves Closed-source engine code.

What The SDK Isnt

It’s important to understand that the "SDKImg" Source SDK DOES NOT include Source 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 Valve also included other Visual Studio Visual Studio 2022 projects along with the SDK (like compiler tools)

How the SDK Operates

As we described earlier The "SDKImg" Source SDK IS NOT The Source Source Engine. This means we are still going to need the engine to run our game. To get this engine, Valve Valve published Source SDK Base 2013 - Multiplayer 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 Half-Life 2 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 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 "SDKImg" Source SDK is and what it actually does. You start exploring the codebase. With this being said, Source 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++ 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 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.