Talk:Source SDK 2013

From Valve Developer Community
Jump to: navigation, search

Spaces in Folder Names

Thanks to Mangr0v3 over on the forums, there was an issue with the Solution not compiling properly if there is spaces in the folder names you place the SDK files into, eg (bad) C:\Documents and Settings\My Project\SDK 2013. eg (good) C:\SDK2013 - Works!

Hardware DirectX Level

I've tried using the 2013 SDK base on 3 computers, and none of them allow more than hardware DirectX level 8.0. Is there a fix for this, or is it something Valve has to do? --HenryDorsett 21:50, 26 June 2013 (PDT)

It's been reported. Use mat_dxlevel 95 for now. --Artfunkel 10:00, 27 June 2013 (PDT)

Page Title (Spacing)

Why is there no space between SDK2013 and GettingStarted?
Is this some convention that's new to me?
--Bit Mage 14:25, 27 June 2013 (PDT)

I'm guessing that it's just a typo. There's a few of them in a few places. The original commit in the Git repo had a bit of extra caps in it. All the same, I thought best not to touch the document. --HenryDorsett 18:38, 27 June 2013 (PDT)

Source SDK 2007 ↔ Source SDK 2013 (MP) Diff

For what it's worth, I've generated a diff between the latest released version of the 2007 SDK against the new 2013 SDK (note: MP code only). It should be handy to those who are curious about what advancements and changes the new release brings with it.
There was initially a lot of extra noise since virtually every single file was detected as changed - this was due to Valve replacing the header comments in all files. So after spending a while filtering out changes of that nature, I finally managed to gather some useful output, which I'm sharing here.

Summaries (filenames only):
Changed Files (Binaries)
Changed Files (Text) - Use this to quickly index the diffs for changes specific to a given file, since scrolling through it might get fairly laggy at times.
File Removals
File Additions
Unchanged* Files

Detailed git diff output (packaged with the above summaries in text form):
Available here
The diffs have been split into four files in an attempt to make them more readable (and also to make things a little easier for text editors):
se2007_se2013_mp_client.diff - This contains changes to source files residing in the /mp/src/game/client directory.
se2007_se2013_mp_server.diff - This contains changes to source files residing in the /mp/src/game/server directory.
se2007_se2013_mp_shared.diff - This contains changes to source files residing in the /mp/src/game/shared directory.
se2007_se2013_mp_remainder.diff - This contains changes to everything else, i.e. source files residing outside of the /mp/src/game directory, such as /mp/src/common, /mp/src/mathlib, etc.

Statistics (post noise reduction):
Changed files (binaries): 17
Changed files (text): 1465
Files removed: 423
Files added: 851
Unchanged* files: 1349

*Unchanged includes the files whose header comments were modified to reduce the amount of noise output. Naturally, files that contain both modified header comments and actual code changes are not considered to be unchanged.

Hope you guys will find these to be of use. --Vektorx4 01:29, 28 June 2013 (PDT)

Compiling under VS2012

We should create a guide to help other users to compile successfully the latest Source SDK 2013 under Visual Studio 2012. At the moment it generates A LOT of compilation errors, making life difficult for developers. --FrontBack 12:00, 28 June 2013 (PDT)

Regarding: Compiling under VS2012

I do believe that to get rid of most the errors all we need to do is provide the libs, recompiled in VS2012. --P1raten 21:32, 30 June 2013 (PDT)

Speech API 5.1

This version of the API only works on Windows XP. If you want to run the phoneme extractor under Vista or later you want Speech Platform SDK 11. I'll do the upgrade myself at one point and push it into GitHub. --Artfunkel 04:18, 5 July 2013 (PDT)

Artfunkel, have you made any progress on this? -- coalczar

Just Drop the SAPI sdk folder into utils/sapi51 and change phonemeextractor.vpc remove "i386" from the $DynamicFile line -- jdbastardy

Contribution Guidelines

I was thinking about making a new wiki page on how to make contributions to the repository. Not just the legal agreement, but a workflow for doing pull changes. As a starting point, I was thinking Steam Condenser's Contributing text.

In addition to the instructions on how to pull request, I was also going to add on how to make a new branch as a per-issue process. That way it's only the limited issues to pull in.

Thoughts? --Seg 18:00, 7 July 2013 (PDT)

Added Help on the VPC.exe error

I added the solution to get VPC working so it generates the .sln files --Motherfat 21:46, 7 July 2013 (PDT)

VPC error

When generating the solution, this error is shown:

ERROR: Unable to find RegKey for .vcproj files in solutions.

It's a common error which has no solution. The old solution posted was removed because it generated other errors. When someone finds the fix, he should write it in the guide. --FrontBack 06:58, 9 July 2013 (PDT)

The solution i wrote worked for me when i did it why else would i have wrote it in the first place, you probably did something wrong thats why it didnt work correctly for you, and you need Visual Studio Service Pack 1, i use Visual C++ 2010 Express with Service Pack 1 installed and everything works fine even vcxproj files, i even got vgui_controls working you just need to figure out what you did that went wrong and i have only tried on visual C++ 2010 so it might be 2012 should still work just where it says 10.0 go to 12.0 instead if there is any in there. But if it does still generate errors remove the regkey that you put in there when your done generating the projects. --Motherfat 13:14, 9 July 2013 (PDT)

I have figured it out you must remove the defaultprojectextension key from any previous key you put it in then you MUST select the empty key that says {60dc8134-eba5-43b8-bcc9-bb4bc16c2548} and put it in there thats why the project files are invalid and you must delete the vcxproj files like in the search bar vcxproj and delete everything that the search brings up then rerun the project creator batch files. --Motherfat 13:48, 10 July 2013 (PDT)

Thanks FrontBack for cleaning up the VPC error Regkey solution that i made. --Motherfat 13:02, 14 July 2013 (PDT)

VPC fix

Hi all, since some time ago I programmed in AutoIt, I decided to make a quick fix for the VPC common problem. It requires admin rights and I also included the source in case somebody doesn't trust me. I've prepared also a fix to open the solutions in VS2012.

Here: [1]

Host on GitHub instead

Could you make a new public repository on GitHub instead? It's free and offers better transparency in the code. Not to mention it can live on if the code needs to be improved upon.

Also, please sign your Talk pages in the future! --Seg 17:52, 12 July 2013 (PDT)

Hosted on GitHub I haven't uploaded the binaries yet, I'll do it later.

--FrontBack 06:18, 15 July 2013 (PDT)

Moving "Common Errors" to Sub-page?

I propose moving content from the "Common Errors" to a subpage, Source SDK 2013/Common Errors. This way the page and sprawl out with fixes that aren't buried into the Talk page and not overflow the main page. --Seg 18:11, 12 July 2013 (PDT)

Why do we have to do this?

Source SDK on steam is easy to install but for 2013's source SDK we need to compile it ourselves, I just wish to make portal maps and the current SDK is broken. So why do we need to compile the whole thing for SDK 2013? Why can't we just download it over steam? --Combine12 08:05, 1 August 2013 (PDT)

SDK 2013 is for creating Mods not Maps. If you want to create Maps for Portal go to the ".../SteamApps/common/Portal/bin" Folder and open Hammer.exe. --Dmx6 11:43, 1 August 2013 (PDT)

captioncompiler.exe - System Error

When I attempt to compile everything.sln I get the error

"The program can't start because tier0.dll is missing from your computer. Try reinstalling the program to fix this program."

Is there any fix for this? --Zelpa

a temporary fix for compiling under visual studio 2012

I figured out that all you must do is hex edit the libraries to remove the requirement. just search for


then change the 1600 to 1700 or just comment out the entire thing with spaces. --Jfmherokiller 09:39, 7 August 2013 (PDT)

Spanish translation

I translated by my own weeks ago this article into the Spanish language.

Could someone add the little spanish flag in the right corner?

Compile error (VS 2010)

I'm running Visual Studio C++ 2010 Express with SP1 and I've followed the tutorial but I still can't get it to compile - I'm getting an error;

error MSB8008: Specified platform toolset (v120_xp) is not installed or invalid. Please make sure that a supported PlatformToolset value is selected.

I thought it might be a setting inside createallprojects.bat and creategameprojects.bat so I added /2010 to the end to force a 2010 version. Is this right?

--Phaeton (talk) 21:42, 21 February 2015 (UTC)

Tip:If you have a problem with the error MSB8008: Specified platform toolset (v120_xp), it can be corrected as follows:

1 - Select all Project Files

2 - Right-click on the file, then choose "Properties"

3 - Choose "Configuration Properties"

4 - And the last, choose in "Platform toolset" this -> (v100)

(Project->Properties->Configuration Properties->General->Platform toolset = Visual Studio 2010(v100))

Fix error MSB8008

You can also see action in this screenshot.

It works with Microsoft visual C ++ 2010 SP1, as in the "release" and in the "debug"

--Slam12f (talk) 02:04, 22 May 2015 (UTC)

How Exactly Does One Make a Game?

This tutorial doesn't seem to be at all follow-able. It goes all over the place, telling people to use the VPC without explaining at all what it is or how to use it, being very vague in its descriptions, etc. It's quite annoying, because I really want to use the 2013 SDK, and even downloaded the .zip file, but am completely unable to determine how it is used. If anybody is willing to clean up this article so that it can be at least partially understandable, that would be amazing. I can't imagine how many potential game developers have been turned away by the sheer complexity of tools like this, and the inability to get any help online.

This guide seems to assume you already know about programming and modding. You should follow the other tutorials on this wiki, this specific page is only about setting up and compiling the game source code and it's tools. Some pages you should have look at is Modding and Programming. The VPC tool is only used to create the Visual Studio project files. You need Visual Studio 2010 installed to be able to use the source code, otherwise it's pretty useless. I hope this helps you. --Dr. Orange (talk) 10:03, 6 April 2015 (UTC)

Making a mod that combines singleplayer and multiplayer

Valve provides both singleplayer and multiplayer variants of the code, but what if I want to make a mod that utilizes both and most of all, how would I do it? --Mechanician (talk) 01:04, 29 October 2015 (UTC)

I think you may have to create two mods seperate or make the mod in the multiplayer SDK and just port over the AI, maps and models. This technique was used in GMOD, that's why in the pause menu there is a disconnect button rather than a return to main menu button, and why the game carries on running while paused (The game basically acts as if you aren't paused, and just disables you movement and look controls until you press resume or the esc key)

Multibyte MFC libary in VS2013 community

Download and install the Multibyte MFC Library. This only works for Visual Studio Enterprise, Professional or Ultimate editions, so if you followed step 1, you're out of luck here. Try the old instructions, for Visual Studio 2010.

Doesn't the community editions come with MFC? Or is the plugin incompatible with the community editions for some reason?

Tier1 lib syntax error

I can't compile latest code even "out-of-box" - Tier1 libs doesn't compile because of errors in KeyValues.cpp

void KeyValues::CopyKeyValuesFromRecursive( const KeyValues& rootSrc )
	struct CopyStruct
		KeyValues* dst;
		const KeyValues* src;
	char tmp[256];
	KeyValues* localDst = NULL;
	CUtlQueue<CopyStruct> nodeQ;
	nodeQ.Insert({ this, &rootSrc });
	while ( nodeQ.Count() > 0 ) 
		CopyStruct cs = nodeQ.RemoveAtHead();
		while (cs.src)
			Assert( (cs.src != NULL) == (cs.dst != NULL) );
			cs.dst->CopyKeyValue( *cs.src, sizeof(tmp), tmp );
			if (cs.src->m_pSub) {
				cs.dst->m_pSub = localDst = new KeyValues( NULL );
				nodeQ.Insert({ localDst, cs.src->m_pSub });
			if (cs.src->m_pPeer) {
				cs.dst->m_pPeer = new KeyValues( NULL );
			else {
				cs.dst->m_pPeer = NULL;
			cs.src = cs.src->m_pPeer;
			cs.dst = cs.dst->m_pPeer;

Lines with "nodeQ.Insert" give syntax error when compile with VS2010 (v100) and VS2012 (v110_xp). Gazyi (talk) 11:49, 6 December 2015 (UTC)

Looks like it compiles correct only with VS2013 (v120_xp) and higher. Gazyi (talk) 21:10, 9 December 2015 (UTC)