De/Level Design Introduction (Portal 2)/Your First Level

__TOC__
Eine ist eine einfache 3D-Form, die in Hammer mit dem Block-Tool erzeugt wird. Brushes werden verwendet, um die meisten großen Oberflächen in Deinem Level zu erzeugen, etwa die Decken und Böden. Wir werden jetzt einen einfachen Raum erzeugen, indem wir Brushes verwenden.
== Eine Boden-Brush erzeugen ==
# Wähle aus der Tool-Leiste links das Block-Tool.
# Klicke in die obere 2D-Ansicht, halte die linke Maustaste gedrückt und ziehe die Maus nach rechts unten wie in diesem Beispielbild unten.
# Du solltest einen gepunkteten Umriss eines Rechteckes oder Quadrats sehen, während Du die Maus ziehst.
# Erzeuge ein Quadrat von 512x512 Einheiten (units) und lass die linke Maustaste los.
# Drücke auf der Tastatur, um die Brush, die Du gerade gezeichnet hast, zu erzeugen.
Um in den Auswahl-Modus zurückzukehren, klicke auf das Selection-Tool-Symbol in der Tool-Leiste oder drücke die-Taste.
Im Auswahl-Modus ist jetzt die Brush ausgewählt. Du kannst ihre Größe verändern, indem Du mit links auf eines der Kästchen klickst, die an den Rändern der Brush angezeigt werden, und diese nach außen oder innen ziehst.
Jetzt verändern wir die Dicke der Brush (die wir als Fußboden verwenden werden) von den standardmäßigen 64 units auf 16. Um das zu tun, müssen wir die Größe des Gitternetzes, oder auch Raster, ändern.
=== Das Raster (Englisch: Grid) ===
Das Raster wird in allen 2D-Ansichten angezeigt. Standardmäßig rasten alle Objekte auf den Gitternetzlinien ein. Das kann zwar ausgeschaltet werden, sollte aber so eingestellt bleiben, um Leaks (Lecks; undichte Stellen in Deiner Map) und anderen Fehlern vorzubeugen.
Die Standardgröße des Rasters ist 64 units. Das heißt, dass alle Gitternetzlinien 64 units von einander entfernt sind. Die aktuelle Rastergröße wird in der Statusleiste unten im Hammer-Fenster angezeigt.
* Durch einen Klick auf das Smaller Grid-Symbol wird das Raster halb so groß, um Objekte genauer anordnen zu können. Alternativ kannst Du die Größe des Rasters auch mit der -Taste verringern.
* Durch einen Klick auf das Larger Grid-Symbol wird die Größe des Rasters verdoppelt, um Objekte grob anordnen zu können. Du kannst das Raster auch mit der -Taste vergrößern.
Um das Raster auf 16 units zu verkleinern, drücke zweimal die -Taste. Schau in der Status-Leiste unten auf die Anzeige rechts und geh sicher, dass dort Grid: 16 steht. Wenn nicht, drücke oder , bis das Raster auf 16 units eingestellt ist.
=== Die Größe des Bodens verändern ===
Jetzt sollte das Raster klein genug sein.
Gehe in die 2D-Ansicht rechts unten. Dies ist die Seitenansicht. Ziehe den oberen Rand der Brush nach unten, bis sie 16 units dick ist.
=== Eine Brush verschieben ===
Wenn Du eine Brush erzeugt hast, kannst Du sie verschieben. Wähle das Selection-Tool und klicke in einer der 2D-Ansichten auf die Brush, ohne auf einen der Eckpunkte zu gehen. Der Cursor zeigt jetzt vier Pfeile für jede Richtung an und weist damit auf die Möglichkeit hin, das Objekt zu verschieben.
Klicke und ziehe die Brush um sie in einer der 2D-Ansichten zu verschieben. Wenn Du die Maustaste loslässt, wird die Brush zu dieser Position verschoben.
Du kannst Objekte auch mit den Pfeiltasten verschieben. Damit das geht, musst Du eine Einstellung in den Hammer-Optionen verändern:
# Gehe im oberen Menü auf Tools und dann auf Options, um die Configure Hammer-Dialogbox zu öffnen.
# Klicke auf den 2D Views-Reiter.
# Es gibt hier noch weitere Einstellungen, aber fürs Erste müssen wir nur ein Häkchen in das Kästchen vor Arrow keys nudge selected object/vertex machen.
# Klicke OK um die Änderung zu übernehmen und schließe dieses Optionsmenü.
Jetzt kannst Du die Boden-Brush um 16 units nach unten verscheiben, in dem Du den Mauscursor in die 2D-Seitenansicht bewegst und dann einmal drückst.
== In den 2D-Ansichten navigieren ==
* Mit den Scrollleisten kannst Du die Ansicht schwenken.
* Schneller geht es, wenn Du die -Taste gedrückt hältst und die Maus klickst und ziehst, um die Ansicht zu bewegen.
* Mit dem Mausrad kannst Du näher heran und weiter weg zoomen.
== Texturen ==
Um in der 3D-Kamera-Ansicht Texturen sehen zu können, klicke mit der rechten Maustaste auf den camera-Text in der 3D-Ansicht und wähle 3D Textured.
=== In der 3D-Kamera-Ansicht navigieren ===
Die 3D-Ansicht bewegt man etwas anders als die 2D-Ansichten:
* Halte gedrückt und linksklicke und ziehe, um die Ansicht zu rotieren.
* Halte gedrückt und rechtsklicke und ziehe, um die Ansicht hoch/runter und nach links/rechts zu bewegen.
* Halte und beide Maustasten gedrückt und ziehe, um die Ansicht vorwärts und zurück zu bewegen.
* Du kannst auch die Tasten , , , und benutzen, um die Ansicht vorwärts und rückwärts zu bewegen und nach links zu strafen und nach rechts zu strafen.
* Die -Taste schaltet den "mouse look"-Modus an und aus. Bewege den Mauscursor über die 3D-KameraAnsicht und drücke . Jetzt kannst Du die Maus bewegen und Dich „umsehen“ wie in einem Spiel, indem „mouse look“ aktiviert ist.
Bewege die Ansicht in der 3D-Kamera und schaue von oben auf den Boden, den Du gerade erzeugt hast.
Du wirst sehen, dass auf Deinem Boden eine Standard-Texture liegt. Diese wirst Du sicher verändern wollen. Um die aktuelle Textur zu verändern, klicke in der Textur-Box auf Browse.
Damit öffnest Du das Texture Browser-Fenster.
Mithilfe des Filter-Felds unten im Browse-Window kannst Du die Texturen nach Namen filtern. Tippe für dieses Tutorial "dev_measure" (mit dem Unterstrich) in das Feld. Damit zeigst Du eine Reihe von "Entwickler" Texturen an, die es leichter machen, etwas schnell zu erstellen.
Suche nach der Textur dev/dev_measuregeneric01b und doppelklicke darauf.
Jetzt siehst Du wieder die vier Ansichten des Editors und in der Textur-Box ist die allgemeine Entwickler-Textur als die aktuelle Textur angegeben.
Wenn die Boden-Brush nicht schon ausgewählt ist, klicke sie jetzt in der Kamera-Ansicht an. Sie sollte jetzt rot angezeigt werden.
Wenn die Brush ausgewählt ist, klicke auf das Apply current texture-Symbol links in der Tool-Leiste, um die aktuelle Textur auf die aktuelle Auswahl aufzutragen. Die graue Entwickler-Textur sollte jetzt wie im Beispiel rechts auf dem Boden angezeigt werden.
== Die Wände und die Decke ==
Jetzt kannst Du die Wände und die Decke des Raums erzeugen. Der einfachste Weg ist es, die Boden-Brush zu kopieren. 
=== Kopieren ===
Du kannst auch eine existierende Brush auswählen und sie kopieren, um eine neue Brush zu erzeugen.
Zum Kopieren
# wähle die Boden-Brush aus, die Du erzeugt hast
# bewege den Cursor über die 2D-Ansicht
# Halte gedrückt und drücke , um eine Kopie zu erzeugen und diese um eine Linie im Raster nach oben zu verschieben.
Damit erzeugst Du die gleiche Brush wie der Boden direkt über der schon existierenden Boden-Brush.
Jetzt kannst Du die Größe und Dimensionen dieser neuen Brush ändern, um eine Wand daraus zu machen. Klicke auf einen der weißen Punkte am Rand der Brush und ziehe ihn auf die Größe, die Du haben willst. Für dieses Tutorial machen wir die Wand 128 units hoch und 16 units breit.
Erzeuge auf diese Weise noch drei weitere Wände, um den Boden zu umschließen.
Kopiere die Boden-Brush noch ein weiteres Mal und verschiebe sie nach oben, um die Decke zu erzeugen.
== Eine Brush entfernen ==
Um eine Brush zu entfernen, wähle sie mit dem Selection Tool aus und drücke .
== Mehrere Objekte auswählen ==
In der Kamera-Ansicht wirst Du merken, dass es schwierig ist, die Wände, den Boden und die Decke auseinanderzuhalten, weil sie alle dieselbe textur haben. Als nächstes ändern wir die Textur der Wände.
Du kannst alle Wände auswählen, indem Du gedrückt hältst und sie einzeln in der Kamera-Ansicht anklickst. Du wirst die -Kamera-Steuerung benutzen müssen, um die Kamera zu drehen, damit Du alle Wände anwählen kannst.
Wenn Du alle Wände ausgewählt hast, gehe in der Texture-Box auf Browse. Dieses Mal wählst Du die orangefarbene Textur neben der aktuellen aus, sie heißt dev/dev_measuregeneric01. Doppelklicke auf sie, um sie auszuwählen und das Browse-Fenster zu schließen.
Benutze wieder das -Tool in der Tool-Leiste, um die orangefarbene Textur für die Wände zu übernehmen.
== Die Datei speichern ==
Um ein Level zu speichern, kannst Du den Shortcut + benutzen oder im File-Menü auf Save klicken.
Gibt der Map einen Dateinamen und wähle den Ordner aus, in dem sie gespeichert werden soll.
Für dieses Tutorial nennen wir die Datei "tutorial01" und speichern sie in den mapsrc-Ordner, der standardmäßig hier ist:
 C:\Program Files\Steam\steamapps\common\portal 2\sdk_content\maps\
Deine Ordnerstruktur könnte etwas anders aussehen, je nachdem, wo Du Steam installiert hast.
Wenn Du Deine Map benennst, nimm keinen zu langen Namen. Maps mit besonders langen Dateinamen werden vom Spiel nicht geladen.
== Vorhandene Muster-Maps ==
wenn Du Deine Map speicherst, fällt Dir vielleicht auf, dass es schon Maps im mapsrc-Ordner gibt. Das sind Beispiel-Maps der Portal 2 Authoring Tools, die Dir helfen könnten.
Map 	Inhalt
maps\mp_coop_doors 	Coop-Map
maps\mp_coop_paint_red_racer	Coop-Map mit Propulsion-Gel
maps\sp_a2_column_blocker 	Singleplayer-Map mit Brücken
maps\sp_a2_trust_fling 	Singleplayer-Map mit Aerial Faith Plates
maps\sp_a3_speed_ramp 	Singleplayer-Map mit Propulsion-Gel
maps\sp_a4_laser_catapult 	Singleplayer-Map mit Traktorstrahlen, Lasern und einer Aerial Faith Plate
maps\zoo_mechanics 	Beinhaltet die meisten Gameplay-Elemente, die in Portal 2 benutzt werden
== Entities platzieren ==
Als nächstes platzieren wir eine Entity (auf Deutsch etwa: „Informationsobjekt“) in unserem Level:
# Wähle das Entity-Tool auf der Tool-Leiste.
# Wenn das Entity-Tool aktiviert ist, wird auch die the Entity-Auswahlliste rechts in den Object-Boxen aktiv.
# Lass die Categories auf Entities gestellt.
# Öffne die Objects-Dropdown-Liste und wähle info_player_start aus.
# Gehe jetzt in der Kamera-Ansicht in die Mitte Deines Raumes.
# Klicke mit links auf den Boden, um die Entity zu platzieren.
Damit platzierst Du eine info_player_start-Entity in der Mitte des Raumes.
=== Eine Lichtquelle platzieren ===
Jetzt werden wir eine Lichtquelle in der Map platzieren:
# Wähle wieder das Entity-Tool
# Wähle light aus der Objects-Dropdown-Liste.
# Platziere die Lichtquelle an der Decke (über dem Kopf des Spielers).
# Gehe wieder in den Auswahl-Modus, indem Du das Selection-Tool in der Tool-Leiste auswählst oder drückst.
Als nächstes verändern wir einige Einstellungen für diese Lchtquelle. Öffne die Eigenschaften der Lichtquelle, indem Du sie in der Kamera-Ansicht doppelt anklickst oder indem Du es auswählst und dann + drückst. Das wird die Object Properties Dialogbox öffnen.
In den Object Properties kannst Du viele Eigenschaften der Entity verändern. Du könntest zum Beispiel die Helligkeit des Lichts ändern. Klicke auf die Brightness-Zeile unter Keyvalues und Du wirst auf der rechten Seite einige Nummern angezeigt bekommen. Die Standardeinstellung für die Helligkeit einer Lichtquelle ist 255 255 255 200. Die ersten drei Nummern stehen für die RGB-Werte (Farben) und die letzte Nummer steht für die Intensität des Lichts.
Du kannst auf Pick Color klicken, um direkt eine Farbe auszuwählen, statt Nummern-Werte dafür einzugeben.
Klicke einfach auf die Farbe, die das Licht haben soll, und dann auf OK.
Damit kommst Du wieder zurück zur Object Properties-Dialogbox für die Lichtquelle. Du siehst jetzt die Veränderung in der Brightness-Zeile und bei den Nummern im Feld rechts, wenn die Brightness-Zeile ausgewählt ist.
Klicke auf Übernehmen, um die Veränderung zu übernehmen und schließe dann die Dialogbox, indem Du auf das "X" in der oberen rechte Ecke des Fensters klickst.
=== Eine prop_static platzieren ===
Entities können auch so genannte props (auf Deutsch: „Requisiten“) wie Möbel, Dekorationen und komplexe Teile der Architektur sein. Es gibt viele verschiedene props. Prop_static-Entities sind props, die statisch sind – sie bewegen sich nicht, sind nicht animiert, sie werden nicht an- und nicht ausgeschaltet. Es gibt auch prop_dynamic-Entities, die sich bewegen können, animiert sind oder an- und ausgeschaltet werden können. Es gibt auch prop_physics-Entities mit denen der Spieler interagieren kann und die sich nach physikalischen Gesetzen bewegen wie in der echten Welt.
Um eine prop zu platzieren:
# Wähle wieder das Entity-Tool
# Gehe in die Object-Box und ändere das Objects-Feld auf prop_static.
# Zeige auf den Boden vor dem info_player_start und linksklicke, um eine prop_static zu platzieren. Du wirst jetzt einen roten Würfel sehen, der für die prop_static steht, solange noch kein Model dafür festgelegt ist
# Gehe wieder in den Auswahl-Modus, indem Du auf das Selection-Tool in der Tool-Leiste klickst oder drückst.
# Doppelklicke auf den roten Würfel, um die Eigenschaften zu öffnen.
# Doppelklicke auf World Model, um den Model-Browser zu öffnen.
=== Das Model auswählen ===
# Gehe in das Filter-Feld unten in der Dialogbox und tippe "paint" ein. Damit lässt Du alle Models anzeigen, die das Wort "paint" im Namen haben.
# Scroll runter bis zu dem Model mit dem Namen:
#: "props_underground\underground_paintdropper.mdl".
#: Es sollte so aussehen wie in dem Beispielbild.
# Klicke OK, um es auszuwählen, den Browser zu schließen und zur Object Properties-Dialogbox zurückzukehren. Jetzt solltest Du den Namen des Models in der World Model-Zeile sehen.
# Klicke Übernehmen um die Änderung zu speichern.
# Schließe die Properties-Box.
Du wirst den Paintdropper, den Du grade im Raum platziert hast, jetzt in den verschiedenen Ansichtsfenstern des Editors sehen können.
== Entities verschieben ==
Du kannst Entities wie unseren Paintdropper genauso verschieben wie eine Brush. Klicke und ziehe innerhalb des Rahmens der ausgewählten Entity und bewege sie so mit der Maus, oder bringe den Cursor in eine der 2D-Ansichten und benutze die Pfeiltasten, um sie zu bewegen.
== Entities drehen ==
Um ein Objekt zu drehen, klicke einfach mit dem Selection-Tool darauf und danach noch einmal. Das Objekt sollte jetzt in den 2D-Ansichten mit kleinen Kreisen an den Ecken dargestellt werden. Klicke und ziehe diese Kreise, um das Objekt zu drehen.
Benutze das Mausrad, um in der Front-Ansicht ranzuzoomen und klicke einmal in den Rahmen des Paintdropper-Models, um die vier Ecken zu Kreisen zu machen.
Klicke und ziehe jetzt entgegen dem Uhrzeigersinn, um den Paintdropper so zu drehen, dass er Gel von der Decke tropfen lassen kann. 
== Dein Level im Spiel starten ==
Du hast Deine Map gespeichert, aber Du musst sie auch kompilieren, bevor sie in der Game-Engine gespielt werden kann.
Wenn eine Map kompiliert wird, wird sie aus der unverarbeiteten .vmf-Datei, die Du gerade gespeichert hast, in das .bsp-Format umgewandelt, das die Game-Engine verwendet. Die Geometrie wird verarbeitet und die richtigen Licht- und Schatteneffekte werden von verschiedenen Kompilierprogrammen berechnet.
* Öffne das File-Menü und wähle Run Map... oder drücke .
* Das wird den Run Map-Dialog öffnen.
* This dialog is used to set some basic compile parameters.
*# Stelle unter Run BSP, Run VIS und Run RAD jeweils Normal ein.
*# Gib unter Additional game parameters: diese Einstellungen ein:
*#: -toconsole -dev -console +sv_lan 1
*# Markiere "Wait for keypress", damit Du beim Kompilieren mögliche Fehlermeldungen sehen kannst.
*# Klicke jetzt OK, um das Kompilieren zu starten.
Das Compile Process-Fenster wird den Fortschritt des Kompilierens zeigen. Am Ende wird automatisch Portal 2 starten und deine Map laden.
Dein Level wird nach dem Kompilieren im Spiel geladen. Das könnte ein oder zwei Minuten dauern.
Wenn Dein Rechner gut genug ist, kannst Du aus dem Spiel tabben + und wenn Du das nächste Mal kompilierst, das Kästchen "Don't run the game after compiling" markieren. Sonst bekommst Du eine Fehlermeldung, dass das Spiel nur einmal zur Zeit geöffnet werden kann. Statt das Spiel immer wieder zu schließen und wieder zu starten (langsam!), kannst Du einfach mit F9 die Map kompilieren und dann zurück ins Spiel gehen und in der Konsole map myMapFileName eingeben, um sie neu zu laden.
== Die Entwickler-Konsole ==
Wenn Du Level für Portal 2 erstellst, könntest Du Befehle gebrauchen, die in die eingegeben werden. Mit der Konsole kannst Du auch Cubes oder Turrets spawnen, um Dein Level zu testen.
Wenn Du es noch nicht gemacht hast, aktiviere die Konsole in den Spiel-Einstellungen:
# Drücke im Spiel 
# Klicke auf Optionen, dann auf Tastatur/Maus.
# Klicke auf Entwicklerkonsole aktivieren und wähle "Aktiviert".
Jetzt kannst Du in der Tastaturbelegung eine Taste für die Entwicklerkonsole festlegen. Standardmäßig sollte dort die ~- oder ^-Taste eingestellt sein, aber es ist vielleicht sinnvoller, stattdessen eine Taste wie zu verwenden. 
== Noclip-Modus ==
Ein Konsolenbefehl, der immer wieder nützlich ist, ist der Noclip-Modus. In diesem Modus kannst Du in Deinem Level herumfliegen, ohne durch irgendetwas im Level aufgehalten ("clipped") zu werden. Das ist hilfreich, um sich in großen Leveln schnell zu bewegen.
Um in den Noclip-Modus zu gehen:
* Drücke die Taste, die Du für die Konsole angegeben hast.
* Tippe noclip in die Konsole und drücke .
* Fliege durchs Level.
* Tippe erneut noclip in die Konsole, um den Noclip-Modus zu verlassen und wieder normal durch das Level zu laufen.
* Du kannst noclip an- und ausschalten, wenn Du dazu eine Taste festlegst. Dazu kannst Du den Konsolenbefehl bind benutzen. Mit bind mouse3 noclip legst Du zum Beispiel den mittleren Mausbutton dafür fest.
== Einige nützliche Konsolenbefehle ==
Es gibt zahlreiche Befehle für die Konsole. Hier ist eine Auswahl:
; sv_cheats 1
: Aktiviert Cheats. Notwendige Voraussetzung für viele andere Konsolenbefehle.
; map <name of map>
: Lädt eine Map oder lädt die aktuelle Map erneut.
; changelevel <name of map>
: Lädt eine Map während die Game-Session fortgesetzt wird.
; god 1
: Schaltet den God-Mode für alle Spieler ein. Damit werden die Spieler unverwundbar.
; noclip
: Damit kannst Du im Level herumfliegen.