Der Batch-Compile

Was ist eine Batch-Datei?

Wer bereits weiß, was eine Batch-Datei ist, darf dieses Kapitel gerne überspringen ;-)
Eine Batch-Datei ist eine normale Textdatei, die mit der Bezeichnung .bat oder .cmd (bei Windows 2000 oder XP) endet (z.b. compile.bat). In dieser Datei sind einige Windows-Befehle enthalten.
Wenn man die Datei startet, werden die Befehle nacheinander abgearbeitet.
Dies verbraucht natürlich viel weniger Systemresourcen, als wenn der Valve Hammer Editor und der Compile gleichzeitig berechnet werden müssen. So spürt man gerade bei größeren Maps einen Unterschied, der schon mal eine Stunde im Gegensatz zu einem normalen Compile ausmachen dürfte (Natürlich zu unserem Vorteil ;-) ).

Erstellen der Batch-Datei

Zum Erstellen der Datei benutzt man am besten Notepad. Ein anderer reiner Text-Editor kann jedoch auch zum Erstellen der Datei verwendet werden. Das Wichtigste sind eigentlich nur folgende Befehle:

C:\Programme\Valve\Steam\SteamApps\<eMail-Adresse>\sourcesdk\bin\vbsp.exe %1

C:\Programme\Valve\Steam\SteamApps\<eMail-Adresse>\sourcesdk\bin\vvis.exe %1

C:\Programme\Valve\Steam\SteamApps\<eMail-Adresse>\sourcesdk\bin\vrad.exe %1

Erklärung:

bvsp.exe, vvis.exe und vrad.exe sind die Programme, die die .vmf zur .bsp umwandeln. %1 wird später an die Batch-Datei übergeben und enthält den Dateinamen der Map. So sieht also eine einfach Batch-Datei aus.

Anschließend speichern wir die Datei noch als compile.bat (aufpassen, dass beim Speichern in der Auswahlliste nicht .txt gewählt ist) in dem Verzeichnis, in dem sich die zu Compilende .vmf-Datei befindet, ab.

Compilen einer Map

Die Datei wäre erstellt, jetzt muss nur noch der Mapname übergeben werden.

Hierzu gibt es mehrere Möglichkeiten, 2 davon möchte ich hier genauer erklären.

Compile per Drag&Drop

Hierzu muss man im Explorer in den Ordner gehen, in dem sich die .bat- und die .vmf-Dateien befinden. Anschließend klickt man die .vmf-Datei einmal an und zieht die Datei (bei gedrückter Maustaste) auf die .bat-Datei. Nachdem man die Maustaste losgelassen hat, sollte sich ein Fenster öffnen, in dem der Fortschritt des Compiles angezeigt wird.

Compile per Verknüpfung

Ich verwende diese Methode immer, da meine compile.bat in einem anderen Verzeichnis als die .vmf-Dateien liegt. Erstelle in einem Verzeichnis deiner Wahl eine Verknüpfung mit der compile.bat. Nun musst du in die Eigenschaften der Verknüpfung gehen und das Ziel anpassen. Hinter dem „compile.bat“ muss noch der Mapname angehängt werden.

Beispiel für den Eintrag bei „Ziel“: C:\Programme\Valve\Steam\SteamApps\<eMail-Adresse>\sourcesdk_content\hl2mp\compile.bat dm_testmap.vmf

Diese Verknüfung kann nun mit einem Doppelklick gestartet werden und die Map wird compiled.

Anhang: meine Batch-Datei

Die oben angegebene compile.bat ist wirklich sehr einfach. Sie wandelt nur die Map um, ohne die .bsp in das richtige Verzeichnis zu kopieren oder andere Dinge zu machen. Deshalb habe ich hier meine eigene compile.bat angegeben, die wesentlich komplexer ist und eigentlich alles automatisch macht. Das Blaue ist der Code, kursiver Text ist die Erklärung zu dem entsprechenden Schritt.

Achtung: Die Befehle können je nach Windows-Version anders lauten! Ich habe hier Windows XP Media Center Edition und bei mir funktionieren alle Befehle. Wenn man eine Dos-Box öffnet und „HELP“ eingibt, erhält man eine Liste aller Befehle und deren Erklärung.


%echo off
Ausgabe der ausgeführten Befehle abshalten

cls
aktuellen Bildschirminhalt löschen

echo =======================
echo compile of %~n1
echo =======================
echo.
Hier wird eine Überschrift ausgegeben.
%~n1 enthält den Namen der übergebenen Map (z.B. dm_testmap)

cd C:\Programme\Valve\Steam\SteamApps\<eMail-Adresse>\sourcesdk_content\hl2mp\mapsrc\
wechselt ins Verzeichnis, in dem die .vmf und die .bat-Dateien liegen

del %~n1.log
löscht die alte Log-Datei

SET toolpath=C:\Programme\Valve\Steam\SteamApps\<eMail-Adresse>\sourcesdk\bin\
SET gamepath=C:\Programme\Valve\Steam\SteamApps\<eMail-Adresse>\half-life 2 deathmatch\hl2mp\maps\
Hier werden zwei Pfade gesetzt.
toolpath ist der Pfad, in dem vbsp.exe etc. liegen
gamepath ist der Pfad, in den die fertige .bsp kopiert werden soll

echo.

title working: bsp
ändert den Titel des Fensters in „working: bsp“

%toolpath%vbsp.exe %1
Hier wird bvsp.exe aufgerufen. Mit %toolpath% kann man auf den oben angegebenen Pfad zurückgreifen
%1 enthält den angegebenen Namen der Map + Dateiendung (also z.B. dm_testmap.vmf)

echo ==============================================
title working: vis
Hier wird zusätzlich noch ein Parameter an vvis.exe übergeben.
Es ist darauf zu achten, dass Parameter vor dem Mapnamen angegeben werden

%toolpath%vvis.exe -v %1
echo ==============================================
title working: rad
%toolpath%vrad.exe -bounce 0 -v %1

echo delete unnecessary files
echo.
del %~n1.prt
löscht die <Mapname>.prt-Datei

echo copying files
echo.
copy %~n1.bsp %gamepath%%~n1.bsp
kopiert die <Mapname>.bsp an die richtige Stelle im Mod-Verzeichnis

SET gamepath=
SET toolpath=
Die angegebenen Pfade werden nicht mehr benötigt, also werden die Defninitionen hier zurückgesetzt
title finished compile of %~n1
pause
Da evtl. Fehler erscheinen können, schließt sich das Fenster erst, wenn eine Taste gedrückt wurde


So, das war's. Ich hoffe, ich konnte euch den Batch-Compile erklären.

Die Verwendung aller Dokumente einschließlich der Abbildungen ausschließlich zu nichtkommerziellen Zwecken. Verbreitung des Dokuments auf Speichermedien, (insbesondere auf CD-ROMs als Beilage zu Zeitschriften und Magazinen oder sog. "Mission-Packs" etc.) ist untersagt.
 
half-life_2/tutorials/batch-compile.txt · Zuletzt geändert: 2010/10/28 16:50 von Scharyth