De/Source SDK 2013

Wichtige Punkte
=Einrichtung (alle Plattformen)=
==Einrichten der Source-SDK-Base==
Installieren Sie Source SDK Base 2013 (Multiplayer oder Singleplayer, abhängig von Ihrem Mod) von Steam->Bibliothek->Tools oder über die folgenden Links:
* [steam://rungameid/243730 Install Source SDK Base 2013 (SP) Singleplayer] (AppID: 243730)
* [steam://rungameid/243750 Install Source SDK Base 2013 (MP) Multiplayer] (AppID: 243750)
==Den Code holen==
===Methode eins: Verwenden des GitHub Desktop-Clients (Windows/OS X)===
# Laden Sie den GitHub Desktop-Client herunter und installieren Sie ihn
# Öffnen Sie das Source SDK Git Repo und klicken Sie auf „Auf Desktop klonen“
===Methode zwei: Über die Befehlszeile (Windows/OS X/Linux)===
# Laden Sie die Git-CLI herunter und installieren Sie sie. Linux-Benutzer können es mit dem Paketmanager ihrer Distribution (APT, Aptitude, DNF, Pacman, Synaptic ...) herunterladen. Mac-Benutzer können git hier herunterladen.
# Öffnen Sie das Terminal/die Eingabeaufforderung und führen Sie diesen Befehl aus:
git clone https://github.com/ValveSoftware/source-sdk-2013.git
===Methode drei: Herunterladen des ZIP-Archivs===
Download von hier
=Einrichtung (plattformspezifisch)=
==Source-SDK 2013 unter Windows==
===Schritt Eins: Installieren von Visual Studio===
Sie können auch ohne Visual Studio oder mit einer anderen Version kompilieren.
Ab 2021 hat Microsoft die Pakete entfernt, die für das Funktionieren des webbasierten VS2013-Installationsprogramms erforderlich sind. Führen Sie die folgenden Schritte aus, um VS2013 mithilfe der ISO-Methode zu installieren.
Voraussetzungen:
# Microsoft-Konto
# Programm zum Extrahieren von ISO-Dateien, z. B. das kostenlose 7-Zip
Installationsschritte:
# Melden Sie sich für das kostenlose Programm Dev Essentials an, um Zugriff auf die Downloads zu erhalten
# Nachdem Sie sich angemeldet haben, gehen Sie zur Seite „Ältere Downloads“ hier
# Wählen Sie "2013" und dann "Herunterladen". Sie werden zu einer Seite mit einer Liste von Visual Studio 2013-Downloads weitergeleitet
# Wählen Sie „Download“ neben „Visual Studio Community 2013 Update 5“ und eine ISO-Datei wird auf Ihren Computer heruntergeladen
# Extrahieren Sie die heruntergeladene ISO mit Ihrem ISO-Extraktionsprogramm irgendwo
# Führen Sie die Datei "vs_community.exe" im extrahierten Ordner aus
# Folgen Sie den Anweisungen des Installationsprogramms
Wenn Sie irgendwo nicht weiterkommen, können Sie dieses Video ansehen(Englisch).
Laden Sie auch die Multibyte MFC Library herunter und installieren Sie sie.
===Schritt Zwei: Installieren des Microsoft Speech SDK===
# Laden Sie eine ZIP des Speech SDK herunter.
# Entpacken Sie das ZIP-Archiv und kopieren Sie den Ordner sapi51 in den Ordner <SDKROOT>\sp\src\utils oder den Ordner <SDKROOT>\mp\src\utils, je nachdem dein Mod.
 neu erstellt wird.
===Schritt Drei: Source-SDK kompilieren und Projektdateien vorbereiten===
# Navigiere zu <path-to-git>\sp\src\ und führe createallprojects.bat und 'creategameprojects.bat aus
# Navigiere zu <path-to-git>\mp\src\ und führe createallprojects.bat und 'creategameprojects.bat aus
# Öffnen Sie everything.sln für den gewünschten Modus (Singleplayer oder Multiplayer).
# Wählen Sie die Alles-Lösung aus, die sich unter der Solution Explorer-Liste befindet, dann aus dem mittleren Menü, direkt neben dem Auto-Dropdown-Menü (das Eigenschaftsfeld/ unter dem Lösungs-Explorer), ändern Sie Debug in Release.
# Klicken Sie mit der rechten Maustaste auf die Lösung alles und wählen Sie dann Lösung erstellen.
Anmerkungen
===Schritt 4: Aufbau der Shader===
Siehe .
==Source SDK 2013 auf OS X==
===Schritt Eins: Anforderungen===
# Holen Sie sich OS X Mavericks, das auf einer virtuellen Maschine ausgeführt werden kann.
# Installieren Sie Xcode 5.0.2 (erfordert ein Apple-Entwickler-ID-Konto).
# Außerdem müssen die "Command Line Tools" installiert sein. Sie finden dies im Fenster „Preferences -> Downloads -> Components“ von Xcode.
===Schritt Zwei: Generieren der Xcode-Projekte===
Führen Sie die folgenden Skripts aus, um Projektdateien zu generieren.
cd <SDK_ROOT>/sp/src
./createallprojects
./creategameprojects
cd <SDK_ROOT>/mp/src
./createallprojects
./creategameprojects
games.xcodeproj und 'everything.xcodeproj werden im Ordner src generiert.
===Schritt Drei: Erstellen===
Um die Tools, Server- und Client-Bibliotheken zu kompilieren, öffnen Sie 'everything.xcodeproj und 'games.xcodeproj in Xcode und erstellen Sie die Projekte (Product -> Build).
===Schritt Vier: Binärdateien===
Nach erfolgreicher Erstellung werden client.dylib und server.dylib erstellt und können mit dem gewünschten Source SDK Base 2013-Zweig (Einzelspieler oder Mehrspieler) verwendet werden.
==Source-SDK 2013 unter Linux==
===Erster Schritt: Die grundlegenden C/C++-Entwicklungstools besorgen===
Sie sollten diese bereits haben, aber um sicherzugehen, können Sie den folgenden Befehl in einem Terminal ausführen:
sudo apt-get install build-essential
Benutzer von AMD64 (64 Bit) müssen zusätzliche Pakete herunterladen und installieren, um auf die i386-Architektur (32 Bit) abzuzielen. Dies kann mit diesem Befehl in einem Terminal erfolgen:
sudo apt-get install gcc-multilib g++-multilib
===Schritt Zwei: Vorbereiten des Source-SDK 2013===
Angenommen, Sie haben das Source SDK 2013 bereits über Git geklont (oder die ZIP-Datei heruntergeladen), führen Sie einfach die folgenden Befehle aus (indem Sie [SDK_ROOT] durch den Speicherort des Source SDK 2013 ersetzen, [GAME] durch „sp“ oder „mp“. abhängig von Ihrem Mod und [SCRIPT] entweder durch "./createallprojects" oder "./creategameprojects"), gehen Sie in:
cd [SDK_ROOT]/[GAME]/src
[SCRIPT]
Je nachdem, welches Skript Sie ausgeführt haben, haben Sie ein Master-Makefile namens games.mak oder everything.mak, das im Ordner src generiert wird.
===Schritt Drei: Herunterladen, Installieren und Einrichten der Steam-Client-Laufzeit===
Die Steam Client Runtime hilft Ihnen, die Kompatibilität mit den meisten GNU/Linux-Distributionen zu gewährleisten. Es wird empfohlen, es in "/valve/steam-runtime" zu installieren, wenn Ihnen das nicht gefällt und Sie die Steam-Client-Laufzeit woanders installieren möchten: Der symbolische Link ist Ihr Freund. Wir gehen davon aus, dass Sie die erste Option wählen möchten.
Führen Sie die folgenden Befehle in einem Terminal aus, stellen Sie sicher, dass Sie "[USER]" durch Ihren Login und "[GROUP]" durch Ihren Gruppennamen ersetzen:
cd /
sudo mkdir valve
cd valve
sudo wget https://media.steampowered.com/client/runtime/steam-runtime-sdk_latest.tar.xz
sudo tar xvf steam-runtime-sdk_latest.tar.xz
sudo mv steam-runtime-sdk_2013-09-05 steam-runtime
sudo chown <USER>:<GROUP> * -R
Führen Sie das „./setup.sh“-Skript im „steam-runtime“-Verzeichnis aus, wählen Sie die „i386“-Architektur und eine Konfiguration Ihrer Wahl, sagen Sie „Ja“ zu allem, was mit Updates zu tun hat.
Vor dem Kompilieren des SDK müssen Sie die Sandbox (Chroot-Umgebung) ausführen, dies geschieht durch Ausführen des Skripts "./shell.sh --arch=i386".
===Schritt Vier: Zeit zum Kompilieren===
In einem Terminal (wie immer), "cd" in das "sp" (Singleplayer) oder "mp" (Multiplayer) Verzeichnis des SDK und das "src" Verzeichnis, führen Sie einfach den folgenden Befehl zum Kompilieren aus (ersetzen Sie [MAKEFILE] durch "games.mak" oder "everything.mak", je nachdem, welche Ihnen zur Verfügung steht):
 make -f [DATEI ERSTELLEN].mak
Wenn alles gut gelaufen ist, sollten Sie die Dateien „client.so“ und „server.so“ im Verzeichnis „game“ haben, um sie mit dem entsprechenden Source SDK Base 2013 zu laden. Weitere Anweisungen zur Verwendung der Steam-Client-Laufzeit finden Sie unter Lesen die Datei "README.txt" im installierten Runtime-Verzeichnis.
==Auf Steam einrichten==
Siehe .
=Weitere Informationen=
== Hinzufügen neuer Dateien mit dem ==
# Fügen Sie hier eine Anleitung hinzu.
# Öffnen Sie hl2.vpc mit einem Texteditor und bearbeiten Sie diese Zeile oder so etwas.
VPC generiert Projektdateien für alle Plattformen, die das SDK unterstützt. Wenn Sie also Ihrem Projekt Dateien so hinzufügen möchten, dass Sie problemlos auf anderen Plattformen aufbauen können, sollten Sie die Verwendung von VPC in Betracht ziehen. Um beispielsweise einem Multiplayer-Spiel eine Datei hinzuzufügen, könnten Sie eine Zeile zu src/game/client/client_hl2mp.vpc hinzufügen.
== Verzeichnisstruktur ==
Spiel - Laufzeitdateien für die Mods selbst. Alle Mod-Inhalte werden hier eingefügt.
src - Der gesamte Quellcode für diese Art von Mod. Das Stammverzeichnis des src-Verzeichnisses enthält .sln- oder .mak-Dateien auf Stammebene zum Erstellen der Quelle.
allgemein - Ein paar Dateien, die von den Server- und Client-DLLs verwendet werden
devtools - Skripte und Dienstprogramme, die zum Erstellen des Quellcodes verwendet werden. Diese werden von den Makefiles und Projekten aufgerufen und Sie müssen wahrscheinlich nicht direkt mit ihnen interagieren.
Spiel - Der gesamte Quellcode für die DLLs.
client - Code, der von client.dll (oder client.dylib oder client.so) verwendet wird. Darunter befinden sich auch spielspezifische Verzeichnisse.
server - Von server.dll verwendeter Code. Darunter befinden sich auch spielspezifische Verzeichnisse.
shared - Code, der sowohl von client.dll als auch von server.dll verwendet wird.
gcsdk - Ein paar Tools zum Erstellen der DLLs.
lib - Binäre Versionen der Bibliotheken, von denen der Quellcode abhängt. Dies ist auch das Erstellungsziel für vgui_controls, tier1 und mathlib.
mathlib - Vom Spiel verwendete mathematische Hilfsprogramme.
public - Header-Dateien für alle DLLs und Bibliotheken, die vom Spiel verwendet werden. Enthält auch einige Quelldateien.
thirdparty - Bibliotheken von Drittanbietern, die zum Erstellen der Quelle benötigt werden. Im Moment enthält diese nur die Bibliothek Google Protocol Buffers (protobuf).
tier1 - Nützliche Utility-Klassen. Integriert in tier1.lib
utils - Verschiedene Entwicklungsprogramme
vgui2 - Quellcode für vgui_controls, das von client.dll verwendet wird.
=Fehlerbehebung=
===RegKey für .vcproj-Dateien kann in Lösungen (Windows) nicht gefunden werden===
* Installieren und aktualisieren Sie Visual Studio 2013. Siehe Source-SDK 2013 unter Windows(Schritt eins).
Oder wenn Sie keine Lust auf ein Downgrade auf VS2013 haben, können Sie diese alternative Lösung ausprobieren und sehen, ob sie für Sie funktioniert.
* Wie in den GitHub-Repository-Kommentaren gefunden. Eine Möglichkeit, das Problem zu lösen, ist wie folgt:
: Gehen Sie zur Windows-Registrierung, bearbeiten Sie „regedit.exe“ und navigieren Sie zu:
:: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\10.0\Projects\{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942} 
: Fügen Sie die Registrierungsschlüssel "project" und "{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}" hinzu, falls sie noch nicht vorhanden sind.
:#Sobald Sie drinnen sind, fügen Sie einen Zeichenfolgenschlüssel hinzu und nennen Sie ihn DefaultProjectExtension.
:# Klicken Sie mit der rechten Maustaste darauf und gehen Sie zu 'Ändern'
:#Setzen Sie die Daten auf vcproj und klicken Sie auf ok.
Sobald Sie fertig sind, sollte es so aussehen:
:https://i.imgur.com/aCD4DLV.png
Versuchen Sie jetzt, die .bat erneut auszuführen, und Ihre .sln-Datei sollte ohne Probleme generiert werden!
===MSB8008: Das angegebene Plattform-Toolset (v120_xp) oder (v120) ist nicht installiert oder ungültig (Windows)===
# Alle Projektdateien auswählen
# Klicken Sie mit der rechten Maustaste auf die Datei und wählen Sie dann "Eigenschaften"
# Wählen Sie "Konfigurationseigenschaften"
# Unter "Platform toolset" this -> (v100)
(Projekt->Eigenschaften->Konfigurationseigenschaften->Allgemein->Plattform-Toolset = Visual Studio 2010(v100))
===Probleme mit "min" oder "max" von Steam Runtime beim Kompilieren unter Linux===
Wenn beim Kompilieren unter Linux Probleme mit der Erwähnung von "min" oder "max" auftreten, liegt dies daran, dass Sie etwas einschließen, das auf die STL verweist, und die Makros von Valve für min und max damit in Konflikt stehen.
Normalerweise ist GCC ziemlich gut darin, Ihnen zu sagen, welche Dateien fehlerhaft sind.
Gehen Sie zu diesen Dateien und umgeben Sie die fehlerhaften Includes mit:
<vor>
#include "tier0/valve_minmax_off.h"
<Ihr Include, das STL verwendet>
#include "tier0/valve_minmax_on.h"
</pre>
Dies sollte Ihnen das Kompilieren ermöglichen. Stellen Sie sicher, dass Sie nur die Includes umschließen, die die STL verwenden, da andere spielbezogene Includes möglicherweise die Definition des Valve Min/Max-Makros erfordern!
=Siehe auch=
*