Wie mache ich eine Maze/Tower-Defence Map

[nocontentad]

Wie mache ich eine Maze/Tower-Defence Map


zum Anfang

Die Einleitung

Wilkommen zum Maze-Defence-Tutorial.

Hier wird Schritt für Schritt erklärt, wie man eine Maze-Defence-Map macht.
Fangen wir also an ;)


zum Anfang


Die Karte

Als Erstes erstellt man eine neue Map, die Größe sollte ca. 128×128 sein. Als Grundgelände nimmt man etwas bebaubares.

Das Initial Cliff Level sollte bei ca. 6 liegen (damit man später noch Gelände absenken kann).
Das Gelände senkt man mit Hilfe der „Gelände-Palette“ ab. Man sollte für den Anfang eine Art Rechteck machen, wo die Monster rauskommen.
Die Wege macht man am Besten recht dünn. Den Anfang setzt man in die Ecken und die Monster sollten später in die Mitte laufen.

Wenn das Gelände soweit ist, wie man es haben möchte, kann man anfangen zu triggern.
Fangen wir mit den Wegen, die die Monster laufen sollen, an.

Dazu ertellen wir mit Hilfe der „Gebiets-Palette“ Gebiete an allen Positionen, wo die Monster abbiegen sollen, am Anfang und am Ende der Strecke.

Man sollte den Regionen beim Ersellen sinnvolle Namen geben, sodass man sie später beim Triggern gut wiedererkennt ;)
Ich möchte mit diesem Bild zeigen, wie man dies auf einen Weg anwendet, natürliche werdet ihr 4 oder mehr Wege haben, aber das Prinzip ist das Gleiche.
Die Trigger werde ich natürlich so auslegen, dass sie genauso für beliebig viele Wege gemacht werden können :)


zum Anfang


Die Trigger

Nun wollen wir mal mit den ersten Triggern anfangen.
Es ist am Einfachsten wenn man einen Spieler nimmt und ihn als Besitzer der Angreifer benutzt.
Nehmen wir einfach mal Spieler 9 (grau).

Als ersten Trigger sorgen wir dafür, dass die Monster laufen sollen. Es ist ein sehr einfacher Trigger, der aus je einem Event, einer Condition und einer Action besteht:
Als Event nehmen wir Unit – enters region (Region).
Fangen wir mit Start an. Als Bedingung nehmen wir an, dass die Einheit Spieler 9 gehört, wöfür wir die Player Comparrsion benutzen und als Action nehmen wir unit – issue order targeting a point.

In der Action geben wir als zu benutzende Einheit die triggering unit und als
lassen wir sie in das Zentrum der nächsten Region laufen. Der gesammte Trigger sieht so aus:

Diesen Trigger können wir für alle weiteren Wegpunkte einfach umschreiben, indem wir die Region im Event verändern und ein neues Ziel angeben.

Der nächste Trigger hat als Event unit – enters region way1 wp1 und als Action unit – move triggering unit to way1 wp2. Klingt simpel ? Ist es ja auch ;)

Bei der Erstellung der Wege sollte man auf eine gewisse Ordnung achten. So sollten die Tirgger den Namen der Region tragen, die im Event steht.
Zudem sollten die Kategorien so sortiert sein, dass man Veränderungen an den Wegen leicher vornehmen kann.

Hier noch ein Beispiel aus einer etwas komplexeren Map für die Wegpunke eines Weges:

Was wir als Nächstes brauchen, sind die Monster.
Vor ab: Beim Erstellen der Monster ist darauf zu achten, dass die Kollisionsgröße 0 beträgt, da sie sich sonst verhaken und nicht weiterlaufen.
Fliegende Einheiten sollten schweben, aber als Luft anvisiert sein ! Mit diesen Einstellugen vermeidet man, dass die lieben Viecher wie wild über die Karte laufen ;)
Um einzustellen, wieviel Gold die Einheiten fallen lassen, benötigen wir „Beute“. Diese kann man, genau wie den Schaden, mit Hilfe einer Basis und Würfeln, für jede Einheit einstellen.

Als Nächstes müssen wir die Monster sozusagen festlegen, dazu benötigen wir 3 Variablen.
1 unit array (wo die Monstertypen gespeichert werden),
1 integer array (wo die Anzahl der Monster im Level gespeichert wird)
und 1 integer, wo wir das Level zählen.
Um die Einheiten und ihre Mengen festzulegen, müssen wir lediglich die Variablen mit set variable definieren. Als Index benutzen wir jeweils das Level, wo die Monster erscheinen sollen.

Die Level Variable werden wir später noch auf 1 setzen.

Um die ßbersicht zu wahren, empfehle ich noch einen Comment über jedes Level zu schreiben, ein solcher Trigger sähe nun wie folgt aus:

Nun müssen wir noch dafür sorgen, dass die Monster brav erscheinen, dafür schreiben wir einen Spawn Trigger. Diesen werden wir später noch verändern, aber der Anfang sieht so aus:

Der Trigger benutzt als Ereingnis, dass Spieler 9 keine Nahrung mehr verwendet. Als Ereignis werden die Monster mit unit – create auftauchen, in jeder der Regionen, in denen sie auch auftachen sollen :)
Der Trigger sieht wie folgt aus:

Wie man sieht, werden hier die vorher festgelegten Variablen verwendet. Als Anzahl wird die integer-array Variable und als Typ die unit-array Variable verwendet.
Als Index wird das Level verwendet, welches noch erhöht wurde, da man sich ja im nächsten Level befindet.

Nun erscheinen unsere Monster und sie laufen auch. Aber noch verliert man keine Leben, also ändern wir das.
Hierzu benötigen wir eine weitere Variable, die wir Life nennen. Der verwendete Trigger dient gleichzeitg als lose Trigger.
Wir verwenden den Eintritt einer Einheit in das Ziel als Eregnis und ein Set und ein unit remove Befehl um die Einheiten zu entfernen.
Dazu bauen wir noch eine Nachricht ein. Das Ganze sieht dann so aus:

Wie man, sieht ist als Condition die Zugehörigkeit der unit zu Spieler 9 gesetzt.

Um die Niederlage zu erreichen, benutzen wir Playergroup – pick every player in playergroup(all players) and do game defeat for picked player.

Jetzt fehlen nur noch wenige Kleinigkeiten bis die Karte fertig ist, aber ohne die es dennoch nicht geht :)
Wir werden nun einen Initialisationstrigger schreiben, bei dem die gesamten Bedingungen für das Spiel geschaffen werden. Dieser wird bei der Map initialisation gestartet und beinhaltet die Sichtbarkeit, die Anfangsrecourcen, so wie das Einstellen der Option, die es gestattet, das Spieler 9 Gold fallen läßt (wenn seine Einheiten getötet werden), genauso wie die Uhrzeit. Zudem
werden auch einige der Anfangsvariablen dort definiert.

Mit Hilfe einer wait Anweisung wird auch das erste Level gestartet, da die Monster ja nicht von sich aus das erste Mal erscheinen ;)
Am Ende sieht das Ergebnis so aus:

Jetzt sollten wir noch dafür sorgen, dass man jede Runde recourcen bekommen und, dass man ein wenig Zeit zwichen den Runden hat, außerdem soll man auch gewinnen können. Dafür bauen wir folgende Aktionene in den bereits bestehende Spawn Trigger ein:

Die Sachen erklären sich eigentlich an Hand des Bildes von alleine, ich denke da brauche ich nichts weiter zu erklären.

Wer schon mal eine Maze gespielt hat, hat sicherlich schon festgestellt, das die Monster stehenbleiben, das wollen wir natürlich verhindern und schaffen das für folgenden Trigger:


zum Anfang


Schlußwort

Gewöhnt es euch an die Trigger in sinnvolle Gruppen zu stecken (z.b. Wege 1). Gebt Triggern und Regionen sinnvolle Namen, denn bei umfangreicheren Maps kommt man sonst schnell selber nicht mehr klar !

Die Einheiten seien euch überlassen, kümmert euch um die Türme und Eiheiten und legt los.
Das wärs schon. Man kann natürlich noch 1000 andere Sachen einbauen ;) probierts einfach aus. Wenn ihr noch Fragen habt geht ins Mapping Forum da wird euch geholfen !

Ich wünsche euch noch viel Spaß beim Mappen ;)

zum Anfang

AoS-Tutorial WC.de TD - Trigger

Wie mache ich eine Maze/Tower-Defence Map

[nocontentad]

Wie mache ich eine Maze/Tower-Defence Map


zum Anfang

Die Einleitung

Wilkommen zum Maze-Defence-Tutorial.

Hier wird Schritt für Schritt erklärt, wie man eine Maze-Defence-Map macht.
Fangen wir also an ;)


zum Anfang


Die Karte

Als Erstes erstellt man eine neue Map, die Größe sollte ca. 128×128 sein. Als Grundgelände nimmt man etwas bebaubares.

Das Initial Cliff Level sollte bei ca. 6 liegen (damit man später noch Gelände absenken kann).
Das Gelände senkt man mit Hilfe der „Gelände-Palette“ ab. Man sollte für den Anfang eine Art Rechteck machen, wo die Monster rauskommen.
Die Wege macht man am Besten recht dünn. Den Anfang setzt man in die Ecken und die Monster sollten später in die Mitte laufen.

Wenn das Gelände soweit ist, wie man es haben möchte, kann man anfangen zu triggern.
Fangen wir mit den Wegen, die die Monster laufen sollen, an.

Dazu ertellen wir mit Hilfe der „Gebiets-Palette“ Gebiete an allen Positionen, wo die Monster abbiegen sollen, am Anfang und am Ende der Strecke.

Man sollte den Regionen beim Ersellen sinnvolle Namen geben, sodass man sie später beim Triggern gut wiedererkennt ;)
Ich möchte mit diesem Bild zeigen, wie man dies auf einen Weg anwendet, natürliche werdet ihr 4 oder mehr Wege haben, aber das Prinzip ist das Gleiche.
Die Trigger werde ich natürlich so auslegen, dass sie genauso für beliebig viele Wege gemacht werden können :)


zum Anfang


Die Trigger

Nun wollen wir mal mit den ersten Triggern anfangen.
Es ist am Einfachsten wenn man einen Spieler nimmt und ihn als Besitzer der Angreifer benutzt.
Nehmen wir einfach mal Spieler 9 (grau).

Als ersten Trigger sorgen wir dafür, dass die Monster laufen sollen. Es ist ein sehr einfacher Trigger, der aus je einem Event, einer Condition und einer Action besteht:
Als Event nehmen wir Unit – enters region (Region).
Fangen wir mit Start an. Als Bedingung nehmen wir an, dass die Einheit Spieler 9 gehört, wöfür wir die Player Comparrsion benutzen und als Action nehmen wir unit – issue order targeting a point.

In der Action geben wir als zu benutzende Einheit die triggering unit und als
lassen wir sie in das Zentrum der nächsten Region laufen. Der gesammte Trigger sieht so aus:

Diesen Trigger können wir für alle weiteren Wegpunkte einfach umschreiben, indem wir die Region im Event verändern und ein neues Ziel angeben.

Der nächste Trigger hat als Event unit – enters region way1 wp1 und als Action unit – move triggering unit to way1 wp2. Klingt simpel ? Ist es ja auch ;)

Bei der Erstellung der Wege sollte man auf eine gewisse Ordnung achten. So sollten die Tirgger den Namen der Region tragen, die im Event steht.
Zudem sollten die Kategorien so sortiert sein, dass man Veränderungen an den Wegen leicher vornehmen kann.

Hier noch ein Beispiel aus einer etwas komplexeren Map für die Wegpunke eines Weges:

Was wir als Nächstes brauchen, sind die Monster.
Vor ab: Beim Erstellen der Monster ist darauf zu achten, dass die Kollisionsgröße 0 beträgt, da sie sich sonst verhaken und nicht weiterlaufen.
Fliegende Einheiten sollten schweben, aber als Luft anvisiert sein ! Mit diesen Einstellugen vermeidet man, dass die lieben Viecher wie wild über die Karte laufen ;)
Um einzustellen, wieviel Gold die Einheiten fallen lassen, benötigen wir „Beute“. Diese kann man, genau wie den Schaden, mit Hilfe einer Basis und Würfeln, für jede Einheit einstellen.

Als Nächstes müssen wir die Monster sozusagen festlegen, dazu benötigen wir 3 Variablen.
1 unit array (wo die Monstertypen gespeichert werden),
1 integer array (wo die Anzahl der Monster im Level gespeichert wird)
und 1 integer, wo wir das Level zählen.
Um die Einheiten und ihre Mengen festzulegen, müssen wir lediglich die Variablen mit set variable definieren. Als Index benutzen wir jeweils das Level, wo die Monster erscheinen sollen.

Die Level Variable werden wir später noch auf 1 setzen.

Um die Übersicht zu wahren, empfehle ich noch einen Comment über jedes Level zu schreiben, ein solcher Trigger sähe nun wie folgt aus:

Nun müssen wir noch dafür sorgen, dass die Monster brav erscheinen, dafür schreiben wir einen Spawn Trigger. Diesen werden wir später noch verändern, aber der Anfang sieht so aus:

Der Trigger benutzt als Ereingnis, dass Spieler 9 keine Nahrung mehr verwendet. Als Ereignis werden die Monster mit unit – create auftauchen, in jeder der Regionen, in denen sie auch auftachen sollen :)
Der Trigger sieht wie folgt aus:

Wie man sieht, werden hier die vorher festgelegten Variablen verwendet. Als Anzahl wird die integer-array Variable und als Typ die unit-array Variable verwendet.
Als Index wird das Level verwendet, welches noch erhöht wurde, da man sich ja im nächsten Level befindet.

Nun erscheinen unsere Monster und sie laufen auch. Aber noch verliert man keine Leben, also ändern wir das.
Hierzu benötigen wir eine weitere Variable, die wir Life nennen. Der verwendete Trigger dient gleichzeitg als lose Trigger.
Wir verwenden den Eintritt einer Einheit in das Ziel als Eregnis und ein Set und ein unit remove Befehl um die Einheiten zu entfernen.
Dazu bauen wir noch eine Nachricht ein. Das Ganze sieht dann so aus:

Wie man, sieht ist als Condition die Zugehörigkeit der unit zu Spieler 9 gesetzt.

Um die Niederlage zu erreichen, benutzen wir Playergroup – pick every player in playergroup(all players) and do game defeat for picked player.

Jetzt fehlen nur noch wenige Kleinigkeiten bis die Karte fertig ist, aber ohne die es dennoch nicht geht :)
Wir werden nun einen Initialisationstrigger schreiben, bei dem die gesamten Bedingungen für das Spiel geschaffen werden. Dieser wird bei der Map initialisation gestartet und beinhaltet die Sichtbarkeit, die Anfangsrecourcen, so wie das Einstellen der Option, die es gestattet, das Spieler 9 Gold fallen läßt (wenn seine Einheiten getötet werden), genauso wie die Uhrzeit. Zudem
werden auch einige der Anfangsvariablen dort definiert.

Mit Hilfe einer wait Anweisung wird auch das erste Level gestartet, da die Monster ja nicht von sich aus das erste Mal erscheinen ;)
Am Ende sieht das Ergebnis so aus:

Jetzt sollten wir noch dafür sorgen, dass man jede Runde recourcen bekommen und, dass man ein wenig Zeit zwichen den Runden hat, außerdem soll man auch gewinnen können. Dafür bauen wir folgende Aktionene in den bereits bestehende Spawn Trigger ein:

Die Sachen erklären sich eigentlich an Hand des Bildes von alleine, ich denke da brauche ich nichts weiter zu erklären.

Wer schon mal eine Maze gespielt hat, hat sicherlich schon festgestellt, das die Monster stehenbleiben, das wollen wir natürlich verhindern und schaffen das für folgenden Trigger:


zum Anfang


Schlußwort

Gewöhnt es euch an die Trigger in sinnvolle Gruppen zu stecken (z.b. Wege 1). Gebt Triggern und Regionen sinnvolle Namen, denn bei umfangreicheren Maps kommt man sonst schnell selber nicht mehr klar !

Die Einheiten seien euch überlassen, kümmert euch um die Türme und Eiheiten und legt los.
Das wärs schon. Man kann natürlich noch 1000 andere Sachen einbauen ;) probierts einfach aus. Wenn ihr noch Fragen habt geht ins Mapping Forum da wird euch geholfen !

Ich wünsche euch noch viel Spaß beim Mappen ;)

zum Anfang

WC.de TD - Einheiten WC.de TD - Trigger