- Valve Hammer Editor
-
Der Hammer Editor (ehemals Worldcraft) von Valve ist ein Level-Editor zum Erstellen eigener Spielszenarien (Maps) für den Ego-Shooter Half-Life und deren Mods (darunter der bekannte Online-Shooter Counter-Strike) sowie in einer neueren Version für Half-Life 2 bzw. Spiele, die die von Valve entwickelte Source Engine nutzen. Zudem ist der Editor auch für das Rätselspiel Portal verwendbar.
Dank der einfachen Bedienung ist der Umgang auch für weniger erfahrene Benutzer relativ leicht zu erlernen. Im Internet findet man eine große Mapping-Szene vor, die Tutorials, Texturen, vorgefertigte Elemente, sogenannte Prefabs und natürlich auch eine große Anzahl von fertigen Maps anbietet. Die Ansprüche an die Mapper sind hier sehr groß und eine sowohl spielerisch als auch optisch gute Gestaltung ist meist die Voraussetzung dafür, dass die Map einen gewissen Bekanntheitsgrad erlangt.
Grundlagen
Maps bestehen aus zwei Komponenten: Brushes und Entities:
- Brushes sind die einfachsten geometrischen Objekte und bilden die grundlegende Architektur jeder Map (Wände, Böden etc.).
- Entities werden für alles andere verwendet (Lichtquellen, Startpunkte für den Spieler, Soundeffekte, Einstellungen die den Spielverlauf bestimmen sowie detailliertere oder bewegte Objekte, die sich nicht durch Brushes darstellen lassen)
Während in anderen Level-Editoren, wie etwa dem UnrealEd, eine Methode angewandt wird, bei der Räume quasi aus einer unendlichen Masse "herausgeschnitten" werden, verwendet der Hammer Editor ein System bei dem die Brushes in einem vollkommen leeren Raum (engl. void) platziert werden. Da aber das Innere der Map zur Gänze von dem ihn umgebenden Leerraum versiegelt werden muss, führt dies oft zu Problemen beim Kompilieren.
Als Längenmaße werden World Units als Einheit verwendet, wobei dieser ca. einem Zoll entsprechen. Sie werden, wie in der digitalen Welt üblich, in binären Schritten angegeben (1, 2, 4, 8, 16, 32, 64, 128, 256, 512,...). Eine Spielfigur ist im Spiel ca. 72 (64+8) Units groß. Eine durchschnittliche Wand ist 128 Units hoch. Bei dieser Höhe passen die meisten Texturen (flache Bilder, etwa das einer Ziegelmauer, die auf Brushes projiziert werden können, um ihnen Struktur zu verleihen) perfekt zur Mauergröße. Texturen sind in Half-Life meistens 128x128 Pixel groß - 1 Texel, also 1 Pixel einer Textur, entspricht einer World Unit. In Half-Life 2 bzw. der Source Engine werden schärfere Texturen verwendet, die Auflösung beträgt meist 512x512 Pixel (4 Pixel pro Unit).
Kompilieren
Die .vmf (Valve Map Format) Dateien, die im Hammer Editor bearbeitet werden können, unterscheiden sich von den .bsp (Binary Space Partition) Dateien, die später vom Spiel gelesen werden. Der Vorgang, in dem .vmf Dateien in .bsp Dateien umgewandelt werden, heißt Kompilieren und muss ausgeführt werden, bevor die Map im Spiel geladen werden kann.
Hammer führt dazu automatisch drei externe Programme aus (vbsp.exe, vvis.exe und vrad.exe), die nacheinander folgende Aufgaben erledigen und das Ergebnis in die .bsp Datei schreiben:
- vbsp.exe bestimmt, welche Polygone später im Spiel zu sehen sind, und "schneidet" alle überschüssigen Flächen aus der Map. Dies funktioniert nur dann korrekt, wenn die Map vollkommen versiegelt ist, also keine "Lücken" (engl. leaks) entstehen, die es unmöglich machen Außen- und Innenseite der Map zu unterscheiden. Selbst der Himmel ist durch Brushes mit einer speziellen skybox Textur versiegelt. Das Ergebnis ist eine vollkommen optimierte, "ausgehöhlte" Geometrie, deren Außenwände dünn wie Eierschalen wirken und nur vom Inneren den Eindruck solider Architektur erwecken.
- vvis.exe überprüft, welche Teile der Map zueinander sichtbar sind, damit später im Spiel möglichst wenig Geometrie berechnet werden muss. Dies ist oft - sofern die Map nicht optimiert wurde - der rechenintensivste und längste Teil des Kompilierprozesses. Diesen Prozess kann man jedoch drastisch verkürzen, indem man Brushes, von denen man sowieso weiß, dass sie keinen Geschwindigkeitsvorteil durch Visblocking bringen, oder schlicht einfach zu klein sind, eine "Detail"-Funktion zuweist. Vvis.exe ignoriert dann einfach die Detailbrushes und berechnet diese nicht. So können Compilezeiten von 3 Stunden auf weniger als 5 Minuten reduziert werden. Hat eine Map Lücken, kann vvis.exe nicht ausgeführt werden.
- vrad.exe verwendet eine komplizierte Methode namens Radiosity um natürlich wirkende Licht- und Schatteneffekte zu berechnen. Die Beleuchtungsdaten werden in niedriger Auflösung in der .bsp Datei gespeichert. Die Lichteffekte können wegen heutiger Hardwarelimits nicht in Echtzeit berechnet werden und sind daher im Editor nicht sichtbar.
Dieser Prozess ist extrem komplex und kann, abhängig von der Größe der Map und der Geschwindigkeit des verwendeten Computers, mehrere Stunden in Anspruch nehmen. Schlecht optimierte Maps können den Kompilierprozess noch weiter verlangsamen oder sogar zu einem Systemabsturz führen. Die Aufgabe des Mappers besteht aber im Grunde nur darin, zu komplexe oder kleinteilige Brush-Architektur zu Detailbrushes zu editieren, damit die Kompilierprogramme beim Strukturieren der Map-Geometrie keine Probleme haben.
Weblinks
Wikimedia Foundation.