Quake 3 Radiant – Navigation für Spieler und Bots erleichtern
Last Updated on 19. March 2022 by Victor Karp
In diesem Tutorial werden wir uns etwas eingehender mit vier Texturen aus dem common Verzeichnis beschäftigen: clip, fullclip, botclip und botdonotenter.
Generelle Informationen
Bei der Spielbarkeitsoptimierung geht es um zwei Dinge: dafür zu sorgen, dass Spieler so wenig wie möglich in ihrer Bewegungsfreiheit eingeschränkt und gleichzeitig darin unterstützt werden, sich schnell und komplikationsfrei zu bewegen. Zum anderen versucht man, die Map aus Sicht der Bots so simpel wie möglich zu halten. Je mehr kleine Ecken, Nischen und krumme Laufwege es gibt, desto eher bekommen Bots Probleme. Diese Optimierung geschieht unsichtbar durch die oben genannten common Texturen und ist im Spiel idealerweise so wenig wie möglich zu bemerken.
Die Clip Textur
Ein Brush, der mit dieser Textur belegt ist, ist sowohl für Spieler, als auch für Bots massiv, aber unsichtbar. Außerdem stellt er für Waffen kein Hindernis dar, kann also durchschossen werden. Ich habe einen kleinen Beispielraum erstellt, der aufzeigt, wann diese Textur nützlich sein kann.
Wie man sieht, hat der Boden drei unterschiedliche Höhen. Ein darüberlaufender Spieler rutscht also ständig hin und her und wird seine Mühe haben, die Spielfigur zu kontrollieren. Zudem stört das pausenlose Auf und Ab erheblich. Ein Clip Brush, der den Boden auf die Höhe der dunkelgrauen Streben anhebt, schafft Abhilfe.
Dass es dabei zu z-Fighting (Texturflackern) im Editor kommt, ist egal. Ein großer Clipbrush ist absolut in Ordnung, die Leerräume passgenau auszufüllen völlig unnötig.
Bei dieser Beispielmap wäre es auch sinnvoll, den Weg nach oben abzusperren. Wie man auf dem ersten Bild sieht, befinden sich oberhalb der Seitenwände weitere Wände, allerdings etwas weiter hinten. Ein Spieler mit Raketenwerfer wäre problemlos in der Lage, die erste Wand mit einem Rocket Jump zu überspringen und auf dem Wall herumzulaufen. Dieser ist zu allem Übel vom oben mit caulk belegt, sodass er bequem andere Spieler von oben schräg durch den Boden sehen könnte.
Denkt aus diesem Grund immer daran, alle Stellen in euren Maps, die ein geübter Spieler durch Tricks wie einen Rocket Jump erreichen kann, um sich einen unfairen Vorteil zu verschaffen, aus der Map herauszulaufen oder zu -sehen, mit der Clip Textur zu verschließen.
Weitere Anwendungsgebiete sind komplexe Gebilde an Wänden. Verschlungene Rohrsysteme mit hervorstehenden Halterungen, herausstehende Fensterrahmen oder kleine Details wie Lampen sind ideal, um bei der Flucht daran hängen zu bleiben. Auf dem folgenden Bild habe ich mit Clipbrushes Rampen um solche Gefahrenpotentiale gebaut, sodass ein Spieler beim Vorbeilaufen glatt an allem vorbeirutscht.
Die Fullclip Textur
Diese Textur hat die gleichen Eigenschaften wie Clip, blockt aber zusätzlich Projektile ab. Sie ist sinnvoll, wenn man z.B. ein Model, das standardmäßig keine Kollisionsabfrage besitzt, sowohl gegen Spieler, die es durchlaufen könnten, als auch gegen Schüsse, die es durchfliegen könnten, schützen will. Sehr gern macht man das mit den Teleportermodels.
Die Botclip Textur
Botclip funktioniert wie Clip, stellt allerdings nur für Bots ein Hindernis dar und wird von menschlichen Spielern nicht bemerkt. Diese Textur lässt sich immer dann gut gebrauchen, wenn man entweder Bots davon abhalten will, bestimmte Areale zu betreten oder um deren AAS file zu vereinfachen. Simse oder Vorsprünge, die von einem geübten menschlichen Spieler für Tricks gebraucht werden können, auf die ein Bot aber niemals käme, lassen sich mit einem Botclip glätten, um deren Wegfindung nicht zusätzlich zu erschweren. Auch bedeuten Areale, die aus menschlicher Sicht kein Problem darstellen, für Bots manchmal blanken Horror. Auf einmal geht es weder vor noch zurück, der Bot bleibt hängen oder läuft gegen Wände usw. Auch hier kann ein Botclip hilfreicher als ein Clip sein, da der Spieler nicht beeinflusst wird.
Die botdonotenter Textur
Botdonotenter Brushes erzeugen Zonen, die Bots nicht freiwilig betreten und schnellstmöglich wieder verlassen wollen, wenn sie doch hineingeraten. Mir hat diese Textur schon oft bei Abgründen geholfen, in die Bots sich immer wieder hinabgestürzt haben. Füllt man den Abgrund mit dieser Textur oder baut Wände an den Kanten zum Abgrund, springen Bots dort nicht mehr herunter.
Was man falsch machen kann
Weiter oben habe ich geschrieben, dass man eine Map aus Sicht eines Bots mit Hilfe von clips und botclips vereinfachen kann. Die Anwendungsweise des Clipbrushes ist dabei aber entscheidend. Auf dem folgenden Bild habe ich ein kleines Seitenareal, das ich mit einem Botclip abdichten will. Ich habe bereits einen Botclip gesetzt (die Textur ist nicht zu erkennen, da der Clip selektiert und im Editor halbtransparent ist).
Hier schein alles richtig gemacht worden zu sein. Was man nicht sieht ist, wie ein Bot diese Informationen verarbeitet. Aus Sicht des Bots handelt es sich nicht um eine glatte Wand, sondern um eine glatte Wand mit ziemlich komplexer Architektur dahinter, auf der er theoretisch herumlaufen könnte.
Um ihm dieses Extra an unnötiger Denkleistung zu ersparen und das Navigationsfile für Bots (die .aas Datei) kleiner und einfacher zu halten, muss der ganze Raum wie auf dem nächsten Bild in einen Clip eingehüllt werden.
Das richtige Maß
Wie bei den meisten Dingen ist auch beim Clipping der Mittelweg der Beste. Nicht jede hervorstehende Kante muss mit einem keilförmigen Clip entschärft werden, sofern das Ergebnis unglaubwürdig ist und der Spieler sich eher eingeengt als in seiner Bewegung unterstützt fühlt. Manche Nischen sind hinderlich und andere zum Verstecken ideal. Weniger Nachsicht ist bei Botclips nötig: hier ist mehr oft wirklich mehr, denn je einfacher es die KI hat, desto besser. Sämtliche Architektur, die in irgend einer Weise hervorsteht, sehr ungerade ist, theoretisch erreichbare Orte bietet, an die aber tatsächlich kein Bot heran kommt (kleine Vorsprünge an Hausdächern oder Türmen usw.) kann getrost mit einem Botclip geglättet werden.
Besuche die Quake 3 Mapping Tutorial Hauptseite für weitere Tutorials.