This article's documentation is for anything that uses the Source engine. Click here for more information.

Source SDK 2013

From Valve Developer Community
< De
Jump to navigation Jump to search
English (en)Deutsch (de)Español (es)한국어 (ko)Português do Brasil (pt-br)Русский (ru)中文 (zh)Translate (Translate)

Broom icon.png
Dieser Artikel muss gesäubert werden, um einen höheren Standart an Qualität zu erreichen, denn:
OS X-Anweisungen sind unvollständig, die Dateien können aufgrund der Windows-Abhängigkeiten möglicherweise nicht erstellt werden, sie müssen von Grund auf neu geschrieben werden. Shader-Build-Anweisungen sind schlecht geschrieben und nicht plattformübergreifend. Die Anweisungen für den Valve Project Creator sind unvollständig.
Für Hilfe, sieh im Artikel VDC Editing Help und Wikipedia cleanup process nach. Bitte beachte auch eventuell vorhandene Hinweise auf der talk page.

Wichtige Punkte

Note.pngHinweis:Das Quell-SDK verwendet den Valve Project Creator(en), um die erforderlichen plattformspezifischen Dateien zu generieren.
Note.pngHinweis:Wenn Sie einen einfachen, inhaltsbasierten Mod erstellen möchten, sehen Sie sich diese vollständig kompilierte Vorlage an.
Note.pngHinweis:Sie können Codedateien jederzeit mit Notepad ++ oder einem ähnlichen Programm bearbeiten und dann unter Visual Studio kompilieren.

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:

Den Code holen

Methode eins: Verwenden des GitHub Desktop-Clients (Windows/OS X)

  1. Laden Sie den GitHub Desktop-Client herunter und installieren Sie ihn
  2. Öffnen Sie das Source SDK Git Repo und klicken Sie auf „Auf Desktop klonen“

Methode zwei: Über die Befehlszeile (Windows/OS X/Linux)

  1. 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.
  2. Ö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

Note.pngHinweis:Sie müssen den Code manuell aktualisieren, wenn Änderungen an das Repo übertragen werden

Download von hier

Einrichtung (plattformspezifisch)

Source-SDK 2013 unter Windows

Schritt Eins: Installieren von Visual Studio

Note.pngHinweis:Obwohl Source SDK 2013 derzeit NICHT mit Visual Studio 2015 kompiliert (bug report), können Sie immer noch bis zu VS verwenden 2022 als IDE und kompilieren Sie den Code, solange das VS 2013-Projektformat verwendet wird.
Installieren Sie einfach sowohl VS 2013 als auch 2015 (oder neuer), öffnen Sie die Lösung in VS 2015 und überspringen Sie den Dialog, in dem VS 2015 versucht, Ihre Projekte zu aktualisieren.

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:

  1. Microsoft-Konto
  2. Programm zum Extrahieren von ISO-Dateien, z. B. das kostenlose 7-Zip

Installationsschritte:

  1. Melden Sie sich für das kostenlose Programm Dev Essentials an, um Zugriff auf die Downloads zu erhalten
  2. Nachdem Sie sich angemeldet haben, gehen Sie zur Seite „Ältere Downloads“ hier
  3. Wählen Sie "2013" und dann "Herunterladen". Sie werden zu einer Seite mit einer Liste von Visual Studio 2013-Downloads weitergeleitet
  4. Wählen Sie „Download“ neben „Visual Studio Community 2013 Update 5“ und eine ISO-Datei wird auf Ihren Computer heruntergeladen
  5. Extrahieren Sie die heruntergeladene ISO mit Ihrem ISO-Extraktionsprogramm irgendwo
  6. Führen Sie die Datei "vs_community.exe" im extrahierten Ordner aus
  7. 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.

Note.pngHinweis:Das Add-on Multibyte MFC Library funktioniert nicht mit Visual Studio Express 2013. Das Add-on-Installationsprogramm erkennt Visual Studio Express 2013 nicht als Installation, da Visual Studio Express 2013 MFC nicht unterstützt.

Schritt Zwei: Installieren des Microsoft Speech SDK

  1. Laden Sie eine ZIP des Speech SDK herunter.
    Note.pngHinweis:Microsoft hat die Download-Seite des Speech SDK entfernt. Der obige Link lädt eine ZIP-Datei mit den Inhalten des SDK herunter, einschließlich Code-Korrekturen, die von der SDK2013CE-Community vorgenommen wurden und zuvor auf dieser Seite dokumentiert wurden.
  2. 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.
Note.pngHinweis:Das Einhängen kann jetzt den Fehler unresolved symbol _IID_IspPhoneticAlphabetSelection erzeugen. Dies liegt vielleicht daran, dass Sie bereits etwas montiert hatten und der Teilaufbau defekt ist. Dieses Problem kann leicht behoben werden, indem der phonemeextractor

neu erstellt wird.

Schritt Drei: Source-SDK kompilieren und Projektdateien vorbereiten

  1. Navigiere zu <path-to-git>\sp\src\ und führe createallprojects.bat und 'creategameprojects.bat aus
  2. Navigiere zu <path-to-git>\mp\src\ und führe createallprojects.bat und 'creategameprojects.bat aus
Note.pngHinweis:Die Everything-Lösung enthält neben anderen Tools auch die Game-Lösungen.
  1. Öffnen Sie everything.sln für den gewünschten Modus (Singleplayer oder Multiplayer).
  2. 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.
  3. Klicken Sie mit der rechten Maustaste auf die Lösung alles und wählen Sie dann Lösung erstellen.
Warning.pngAchtung:Stellen Sie beim Kompilieren unter Windows 10 sicher, dass Sie „Unicode UTF-8 für weltweite Sprachunterstützung verwenden“ deaktiviert haben. Um es zu deaktivieren, gehen Sie zu "Systemsteuerung\Uhr und Region", klicken Sie dann auf "Region", dann auf die Registerkarte "Verwaltung" und "Systemgebietsschema ändern"

Anmerkungen

Note.pngHinweis:Wenn etwas am Ende fehlschlägt, dann baue die Lösung einfach neu.
Note.pngHinweis:Die client.dll wird in <path-to-git>\sp\src\game\client\Release_mod_hl2 und <path -to-git>\sp\src\game\client\Release_mod_episodic
Note.pngHinweis:Die server.dll wird in <path-to-git>\sp\src\game\server\Release_mod_hl2 und <path -to-git>\sp\src\game\server\Release_mod_episodic
Note.pngHinweis:Der aktuelle Singleplayer-Zweig stürzt beim Start ab, es sei denn, Sie verwenden den Beta-Zweig von Source SDK Base 2013. Gehen Sie in Steam zu Tools > Source SDK Base 2013 Singleplayer, klicken Sie mit der rechten Maustaste auf > Eigenschaften > Betas, um sich anzumelden die Beta. Ohne die Beta erhalten Sie zwei Popups über „Einstiegspunkt nicht gefunden“ in hl2.exe, und dann bricht der Debugger bei engine.dll ab

Schritt 4: Aufbau der Shader

Siehe Source SDK 2013: Shader Authoring(en).

Source SDK 2013 auf OS X

Schritt Eins: Anforderungen

  1. Holen Sie sich OS X Mavericks, das auf einer virtuellen Maschine ausgeführt werden kann.
  2. Installieren Sie Xcode 5.0.2 (erfordert ein Apple-Entwickler-ID-Konto).
  3. Außerdem müssen die "Command Line Tools" installiert sein. Sie finden dies im Fenster „Preferences -> Downloads -> Components“ von Xcode.
Note.pngHinweis:Sie sollten Xcode 6.4 auch unter OSX 10.10 Yosemite und OSX 10.11 El Capitan verwenden können.
Note.pngHinweis:Wenn Sie versuchen, eine neuere macOS/Xcode-Kombination zu verwenden, sollten Sie die Datei src/devtools/base.xcconfig ändern, um kompatiblere Projekteinstellungen zu generieren (die wichtigste ist SDKROOT am Ende).
Warning.pngAchtung:Wenn Sie macOS Mojave oder höher verwenden, wird das Erstellen des Quellcodes des Source SDK 2013 sehr kompliziert, da Apple die 32-Bit-Architektur ablehnt. Sie erhalten eine Fehlermeldung/Warnung, wenn Sie die ARCHS-Variable in Xcode so aktualisieren, dass sie etwas anderes als i386 ist.

Schritt Zwei: Generieren der Xcode-Projekte

Führen Sie die folgenden Skripts aus, um Projektdateien zu generieren.

Note.pngHinweis:Sie müssen nur die Skripte für die Basis-Spielmodi ausführen, für die Sie einen Mod erstellen; sp für Einzelspieler und mp für Mehrspieler
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).

Note.pngHinweis:Die Verwendung einer moderneren Umgebung führt beim Kompilieren zu einigen Fehlern.

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

Zu erledigen: Fügen Sie Anweisungen zum Erstellen mit der neuesten Steam-Laufzeit hinzu.
Note.pngHinweis:Aufgrund der Verwendung der Steam Client Runtime wird eine Debian-basierte Linux-Distribution (Linux Mint, Ubuntu...) empfohlen. Arch-Linux-basierte Distributionen (Antergos, Manjaro ...) scheinen ebenfalls zu funktionieren. Sie können das Risiko eingehen, es mit einer anderen GNU/Linux-Distribution zu versuchen, aber denken Sie daran, dass Sie die Befehle anpassen müssen und dieses Tutorial möglicherweise fehlschlägt.

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

Note.pngHinweis:Wenn Sie Arch Linux verwenden, müssen Sie das Paket dpkg installieren, um das Spiel zu 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.

Note.pngHinweis:Wenn Sie einen Fehler zu „objcopy“ haben, bearbeiten Sie die Datei „devtools/gendbg.sh“ und ändern Sie die Variable „OBJCOPY“ so, dass sie auf das Standardprogramm „objcopy“ zeigt, das normalerweise unter /usr/bin/objcopy zu finden ist.
Note.pngHinweis:Wenn Sie die Steam-Laufzeit in einem anderen Verzeichnis als /valve/steam-runtime extrahiert haben, geben Sie die Umgebungsvariable STEAM_RUNTIME_PATH an, die den Pfad zur extrahierten Laufzeit angibt, bevor Sie make ausführen.

Auf Steam einrichten

Siehe Setup-Mod auf Steam(en).

Weitere Informationen

Hinzufügen neuer Dateien mit dem VPC(en)

  1. Fügen Sie hier eine Anleitung hinzu.
  2. Ö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

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.

Warning.pngAchtung:Das Bearbeiten der Windows-Registrierung ist gefährlich. Das Ändern von etwas, das Sie nicht kennen, kann das Windows-Betriebssystem beschädigen.
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.
  1. Sobald Sie drinnen sind, fügen Sie einen Zeichenfolgenschlüssel hinzu und nennen Sie ihn DefaultProjectExtension.
  2. Klicken Sie mit der rechten Maustaste darauf und gehen Sie zu 'Ändern'
  3. 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)

  1. Alle Projektdateien auswählen
  2. Klicken Sie mit der rechten Maustaste auf die Datei und wählen Sie dann "Eigenschaften"
  3. Wählen Sie "Konfigurationseigenschaften"
  4. 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>

  1. include "tier0/valve_minmax_off.h"

<Ihr Include, das STL verwendet>

  1. include "tier0/valve_minmax_on.h"

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