Ein Leitfaden für Anfänger

Seit Euch zuallererst des folgenden bewusst: Ihr braucht nicht nur viel Zeit dafür, Euren Level zu bauen, sondern auch dafür, Grundlagen des Level-Editings 1) zu erlernen, das Grundkonzept des Levels zu entwerfen und nicht zuletzt, den Editor (Valve Hammer Editor) zu erlernen. Außerdem dauert auch das Compiling (Umrechnen des .map/rmf-file in ein .bsp-file, das Half-Life erkennen kann) mitunter sehr lange. Am Ende kommt noch die Arbeit dazu, den erstellten Level zu optimieren, Details hinzuzufügen/zu verbessern etc. All das dauert wirklich seine Zeit. Erwartet also nicht, eine qualitativ hochwertigen Map in 2-3 Tagen machen zu können.

Der Valve Hammer Editor

Als erstes benötigt ihr einen Level Editor. Auf der Half-Life CD befindet sich WorldCraft Version 2.0. Es empfiehlt sich jedoch dringend, die neuere Version (Valve Hammer Editor 3.5) aus dem Internet herunterzuladen. Einen Downloadlink findet ihr im Downloadbereich von TheWall.

Valve Hammer Editor ist ein Programm, mit dem man ausschließlich die Umgebung für einen Level erstellen kann. Eigene Texturen (kann man sich als Tapete vorstellen), Skins (neue Haut für die Spielerfiguren) oder Models(neue Waffendarstellungen, Spielerfiguren) könnt Ihr damit nicht erstellen. Allerdings gibt es in HL selbst so viele verschiedene Texturen, dass eigene zunächst absolut nicht nötig sind. Außerdem wollen wir uns hier erstmal auf die ganz grundlegenden Aspekte des Level-Editings konzentrieren.

Die Komponenten der Half-Life Engine

Die Schlüssel-Komponenten der Half-Life-Engine sind:

  • Entities
  • Attributes
  • Brushes
  • .map/rmf-files
  • Compiler-Programme

Wir schauen uns jede Komponente an und erklären, was sie macht:

Entities

(dt. Wesen, Dasein)

Entities sind die „aktiven“ Objekte in HL. Monster, Waffen, Spielerfiguren, Medi-Packs, Schalter usw. sind alles Entities. Jedes Entity hat spezielle Aufgaben/Funktionen, die in HL programmiert sind. Es gibt zwei Arten von Entities: Point-Entities und Solid-Entities, auch als Block-Entities bekannt.

Ein Point-Entity ist ein Entity, dem ein Modell zugeordnet ist. Zum Beispiel ein Monster. Wenn man also ein Monster in seinem Level erstellen will, muß man nicht das ganze Monster erst bauen, es wurde bereits von den Programmierern von HL erschaffen. Man platziert also einfach das entsprechende Entity in seinen level und HL „stellt“ dann im Spiel das entsprechende Monster an diese Stelle. (In Hammer werden solche Entities als kleine Würfel oder als Figur dargestellt).

Ein Elid-Entity ist ein Entity, dem der „Designer“ eine bestimmte Form geben kann/muß, damit es richtig funktioniert. Zum Beispiel eine Tür. Ihr müßt der Tür die Form und Größe geben, die Ihr wollt. Damit habt Ihr natürlich die Möglichkeit, Türen aller möglichen Formen und Größen zu bauen, oder auch Doppeltüren….der Phantasie sind keine (fast keine) Grenzen gesetzt. Beispiele für Solid-Entities sind: Türen, Schalter (sichtbare und unsichtbare), Aufzüge usw.

Allen Entities gemein ist, daß man bestimmte Werte einstellen muss, damit sie so arbeiten, wie man das auch will. Ein Schalter zum Beispiel nützt Euch nichts, wenn Ihr nicht festlegen könnt, welchen Vorgang der Schalter denn nun ein-/ausschalten soll. Deshalb hat jedes entity properties (= Eigenschaften). In den Properties legt man nun die speziellen Werte für jedes Entity fest. Jeder einzelne dieser Werte wird als attribute bezeichnet.

Attributes

(dt. Eigenschaften)

Ein Attribut ist also im Grunde die Definition, wie das Entity funktioniert. Zum Beispiel muß ein Schalter (trigger) etwas haben, auf das er zielt (target), wenn der Spieler ihn betätigt. Ein Attribut des Triggers ist also das Target-Attribut. Wenn der Trigger eine Tür öffnen soll, dann muß das Target-Attribut den Namen dieser Tür haben. Zusätzlich hat ein Trigger noch das Delay-Attribute (delay = Verzögerung) was Dir erlaubt, eine bestimmte Zeit festzulegen, die erst vergehen muss, bis der Trigger wieder „aktiv“ wird.

Es gibt eine Vielzahl verschiedener Entities mit vielen verschiedenen Attributen.

Brushes

Nachdem wir wissen, was Entities sind, können wir beschreiben, was Brushes sind. Brushes (brush = dt. Pinsel ….seltsamer Ausdruck in diesem Zusammenhang) sind einfach ausgedrückt alle Teile des Levels, die nicht Entities sind. Also Wände, Fußboden, Decke… alle massiven Teile, die sonst keine Funktion haben (Türen sind z.B. auch massiv, sind aber Entities). Brushes sind in anderen Worten die Mauersteine des Levels.

Einige Wichtige Dinge über Brushes:

  • Brushes müssen IMMER konvex sein!! (Ein Würfel z.B. ist konvex. Eine Form, die wie ein C aussieht, ist konkav, hat also eine Höhlung in sich) Konkave Formen kann man nur bauen, indem man sie aus mehreren Konvexen zusammensetzt.
  • Brushes müssen immer gerade Kanten haben, Rundungen sind nicht möglich, man kann sie jedoch simulieren, indem man mehrere Brushes aneinandersetzt und diese mehr und mehr verdreht.
  • Brushes sind immer solid. Man kann nicht in einem Brush sein. Ein einfacher Raum z.B. besteht immer aus 6 einzelnen Brushes (4 für die Wände, je 1 für Dach und Fußboden).

.MAP/.RMF Files

.map ist das Standard-Dateiformat für den Hammer-Editor. Der Leveleditor muss also in der Lage sein ein Map-File aus den gebauten Strukturen zu erstellen, damit die Compiler-Programme daraus auch einen für HL lesbaren/spielbaren Level (.bsp-file) errechnen können. Das Map-Dateiformat ist eine einfache Textdatei, die man in jedem beliebigen Text-Editor öffnen und ändern kann (das sollten aber nur sehr fortgeschrittene Mapper tun). Sie beinhaltet geometrische Daten der einzelnen Brushes, ihre Eigenschaften (z.B. welche Textur auf welchem Brush sitzt), sowie alle Entity-Informationen eines Levels.

Compiler-Programme

Man benötigt 4 Compiler-Programme, um spielbare HalfLife levels zu erstellen. Diese Programme rechnen das textbasierte Map-FormatMap-Format in das kompilierte BSP-Format um, das in HL geöffnet werden kann.

  1. qcsg.exe (hlcsg.exe)
  2. qbsp2.exe (hlbsp.exe)
  3. vis.exe (hlvis.exe)
  4. qrad.exe (hlrad.exe)

Die Angaben in Klammern beziehen sich auf die ZHLT.

Die ersten beiden Programme errechnen das grundlegende .bsp-file, die reinen geometrischen Daten, also die Bauten. Die BSP-Datei, das man hiernach erhält, kann man bereits in HL öffnen und in seinem Level herumlaufen. Die anderen beiden Programme machen den Level schneller und „schöner“.

Der nächste Compiler (vis.exe) übernimmt die Sichtbarkeits-Berechnung (→ VIS). Im Grunde berechnet das Programm, was der Spieler von jedem beliebigen Standpunkt im Level aus sehen kann, und was nicht. Die Hauptfunktion hierbei ist, den Level beim Spielen „schneller“ zu machen. (Ohne vis müßte der Computer zu jedem Zeitpukt im Spiel die Geometrie des GESAMTEN Levels berechnen, ob man nun alles sieht oder nicht). Man wird nach vis keinen Unterschied bei seinem Level bemerken, bis auf die Tatsache, dass das Spiel flüssiger läuft, die Framerate (Bilder pro Sekunde) höher ist.

Der letzte Compiler qrad.exe übernimmt die Belichtung des Levels (→ RAD). Bevor dieses Programm nicht über Euren Level gelaufen ist, werdet Ihr keine Lichteffekte (Schatten, etc.) sehen können, das Level wird überall gleich hell sein.

Die Compiler müssen immer in der oben angegebenen Reihenfolge verwendet werden.

Empfehlenswert ist außerdem für alle, welche den Valve Hammer Editor verwenden: Einen externen Compile-Controller (z.B.: Batch Compiler von Nemesis) aus dem Internet laden und damit kompilieren, der Hammer Editor macht da sehr oft Probleme. Außerdem gibt es verbesserte Compiler (ZHLT).

Was ist ein LEAK?

Das LEAK (Leck) ist der größte Stolperstein für Anfänger; es plagt aber auch Fortgeschrittene von Zeit zu Zeit….

Um Leaks zu verstehen, muß man erst verstehen, wie die Half-Life-Engine die „Welt sieht“. Grundsätzlich befindet sich alles, was sich nicht in einem rundum abgeschlossenen Raum befindet, im Void (= im „Nichts“). Void ist in Half-Life der Restraum der den Level umgibt, nicht zu verwechseln mit dem Himmel (sky). Der Spieler darf NIE in das void sehen oder gehen können!

Stellt Euch vor, Ihr würdet Euren Level voll Wasser füllen. Wenn irgendwo Wasser austreten könnte, hätte Euer Level ein Leak, er wäre also nicht komplett abgeschottet. Die Half-Life-Engine überprüft das von der Spieler-Start-Position aus. Falls Ihr also aus versehen die Startposition außerhalb des geschlossenen Raumes platziert, werdet Ihr auch eine Leak-Warnung beim Compiling erhalten.

Das Level muss also mit normalen Brushes (auch Worldbrushes genannt) abgedichtet werden. Durch Solid-Entities (oder auch Brush-Entities) fließt das oben erwähnte Wasser durch, und Ihr habt trotzdem ein LEAK. Das gilt für alle Entities, also lasst Euch nicht vom Namen z.B. func_wall irritieren.

Zusätzlich darf der Spieler nicht in das void blicken können, also dürfen transparente Texturen nicht für Wände verwendet werden, die an das void grenzen. Ebenfalls leak-Warnung.

Wie schon oben bemerkt: void nicht mit dem sky verwechseln. Der Sky besteht auch nur aus simplen Brushes, die allerdings eine spezielle Textur haben, um den Himmel-Effekt zu bringen.

Leaks können sehr, sehr klein sein! Schon ein Loch von der Größe 1×1 Pixel produziert ein Leak.

Und nun das Wichtigste: Levels mit einem Leak können nicht von Vis und Rad kompiliert werden! Also keine optimierte Geschwindigkeit und keine Belichtung!

Das waren also die Basisgrundlagen für HL-Level-Editing. Nun kommen wir zu den Dingen, die in JEDEM Level enthalten sein müssen.

Die nächsten Schritte:

Das Worldspawn-entity

Das Worldspawn Entity ist ein spezielles Entity, das bestimmte Eigenschaften des Levels festlegt. So zum Beispiel der CD-Track, der während des levels gespielt wird, die Sky-textur, die verwendet werden soll, etc. Dieses Entity taucht im level nirgends auf, es muß auch nicht gebaut oder eingefügt werden; es ist automatisch im Level enthalten. Einstellungen kann man in Hammer hier vornehmen: pull-down-Menü MAP und dort auf properties klicken. In anderen Editor-Programmen funktioniert das anders, aber ich beschränke mich hier auf Hammer.

Ein Raum

Ziemlich offensichtlich, aber man muß zumindest einen Raum haben, um Entities in einem Level platzieren zu können. Das info_player_start-Entity

In jedem Level muß ein info_player_start-Entity vorhanden sein, auch in Multiplayer-Maps!

Das Entity muß innerhalb des Levels plaziert sein, andernfalls: Eeak (siehe oben)

Das war es eigentlich schon über die Grundlagen, wobei wir noch nicht mal einen Raum gebaut haben…….dafür ist das Schritt-für-Schritt Tutorial, das bei WorldCraft dabei ist, sehr gut geeignet! Ansonsten gibt es im Internet eine Menge guter Tutorials, die detailliert viele Einzelheiten beschreiben (allerdings meist in Englisch, aber nach kurzer Zeit versteht man so gut wie alles!)

Tipps

  • Langsam anfangen! Nicht gleich bei den ersten paar Versuchen den perfekten Level machen wollen. Kleine Übungslevel bauen, um Grundlagen zu lernen und Dinge auszuprobieren.
  • VIEL lesen! (Tutorials) Am besten ausdrucken, damit Ihr den Kram während des Editings vor Euch liegen habt und Dinge nachschauen könnt. Ihr spart Euch später viel Zeit und Frust.
  • Das Editor-Programm lernen, so dass man alle Möglichkeiten kennt, die man damit hat.
  • Klein anfangen!! Nicht versuchen, alle coolen Effekte, die Ihr schon mal gesehen habt gleich zu machen. Vieles davon stammt von Profis, die eine Menge Ahnung von Level-Design haben. Erst mal die einfachen Grundlagen lernen, viel ausprobieren, sich nicht überschätzen. Der Kram ist komplizierter, als man denkt!
  • Räume klein halten! Die HalfLife Engine ist recht empfindlich, was Größen anbelangt. Je größer der Raum, umso stärker wird die Engine belastet. VORSICHT bei großen Außenräumen! Am Anfang lieber nur bei Innenräumen bleiben. Außenräume nur, wenn schon etwas mehr Erfahrung im Level-Editing vorhanden ist.
  • Vorausplanen! Ohne Frage der häufigste Fehler von Anfängern. Die Engine ist sehr empfindlich, was die Anzahl an einzelnen Brushes angeht, die sie zu berechnen hat. Je mehr Kram sie rendern muss, umso langsamer wird das Gameplay. Außerdem: von vorne herein schon zu wissen, wie der level mal insgesamt aussehen soll ist von Vorteil und spart viel Zeit. Ein Level ist eben nicht nur ein Haufen von Räumen, die irgendwie verbunden sind….der Level muss „fließen“, muss Charakter haben, ein Thema (z.B. Lagerhaus o.ä.) ist auch gut. Also Leute: einige Blätter Papier und ein Bleistift können sehr viel helfen!
  • Erfahrenere Leute fragen……aber nicht damit überschütten. Die meisten helfen sehr gerne Anfängern weiter, aber bitte diese Bereitschaft nicht missbrauchen! Fragen immer in einem Forum stellen, nicht einfach die Leute anmailen. So können auch andere das Problem und dessen Lösung lesen und daraus lernen. Außerdem: andere Posts in den Foren lesen, vielleicht ist die Antwort auf die Frage ja schon mal gegeben worden. Die meisten Foren haben auch eine Suchfunktion. Falls Ihr also ein Problem habt, sucht erst danach, die meisten Fragen wurden bestimmt schon gestellt und beantwortet. Weiter auch die FAQ-Seiten lesen! Dort stehen die Antworten auf die am häufigsten gestellten Fragen.
  • Zu guter Letzt: SPASS HABEN !!!

Level-Editing macht wirklich eine Menge Spaß! Und immer daran denken: Aller Anfang ist schwer…..

1) levels/maps erstellen
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/tutorials/leitfaden_zum_hl-editing.txt · Zuletzt geändert: 2011/05/28 12:33 von Adrian_Broher