Artificial Intelligence Enities der künstlichen Intelligenz beinhalten normale Soldaten (wie z.B. Söldner), Mutanten, Fahrzeuge und Tiere. Obwohl diese ein großes Maß an automatischer Programmierung besitzen, müsst ihr ihnen dennoch sagen, was sie letztendlich tun sollen. Wenn dies nicht der Fall, stehen sie meistens nur in der Gegend herum und warten das etwas passiert.
Einsetzen von Objekten mit KI
Es gibt zwei Methoden ein AI Object (KI Objekt) auf eurer Karte zu platzieren - die einfache und die schwierige. Der einfache Weg ist natürlich bereits vor-designte AI Objects per Drag & Drop einzufügen, die dann mit ihren Waffen losrennen und schießen. Die schwierige Methode bedeutet unfertige AI Objects von Hand einzufügen und alle Parameter selber einzustellen. Natürlich ist Punkt 1 schneller, aber ihr habt weitaus größere Kontrollmöglichkeiten über Verhalten und Einstellungen mit Hilfe von Weg zwei.
Um flott ein AI Object auf die Karte zu setzen, wählt eines aus der Library aus und fügt es in die Rubrik "Archetype Enity" der RollUpBar hinzu. Der Eintrag MercLeader_Defensive_M4 bietet euch zum Beispiel einen Anführer der Söldner, der einen bestimmten Punkt verteidigt und dafür sein M4 Maschinengewehr einsetzt. Um ein nicht-definiertes AI Object einzufügen wählt ihr einfach eines aus der "Enity"-Liste der RollUpBar aus und stellt dessen Parameter ein.
Einen gegnerischen Trupp als Gruppe agieren lassen
Wenn AI Objects nahe bei einander platziert werden, ist die Gruppierungsfunktion sehr hilfreich. Stellt dafür einfach die "groupId" in den "Enity Properities2" bei den zu einer Gruppe gehörenden Gegner auf einen gleichen Wert. Gruppierte AI Enities verhalten sich anders, als wenn sie "alleine" in der Map platziert sind - besonders bei Anwesenheit einer "Leader type AI" (Anführer KI).
Solange ihr nichts anderes definiert macht die AI Gruppe nichts, bis ein Gegner in ihre Nähe kommt. Dann jedoch übernimmt deren Anführer die Schlüsselrolle und die individuellen Mitglieder folgen den ihnen zugewiesenen Rollen. Ein Anführer verteidigt bei Feindkontakt beispielsweise einen bestimmten Punkt. "Merc_Cover Enities" geben inzwischen anderen Mitgliedern der Gruppe, die den Gegner töten wollen, Feuerschutz. Daher ist es wichtig, dass ihr genau plant welche Mitglieder eine Gruppe haben soll. Eine schlechte Ausbalancierung kann hier nämlich die KI in Sumpf und Chaos stürzen anstatt sie intelligent agieren zu lassen.
Mit "AI Anchors" den NPCs Jobs geben
Um der KI einen realistischeren Look zu verpassen, sollte ihr bestimmte Aktionen zugewiesen werden, die bei Nicht-Feindkontakt ausgeführt werden (z.B. ein Soldat schleppt eine Kiste während ein anderer gerade an einem Steg angelt). Relativ einfach ist dies mit sogenannten "AI Anchors" (KI Anker) zu bewerkstelligen.
Setzt einen dieser Anker nahe eines AI Objects und stellt die "Property" des Ankers auf eine der vorgegebenen Aktionen ein. Wählt ihr zum Beispiel AIANCHOR_SMOKE, so werden umstehende NPC's zu diesem Anker hingehen und eine Zigarette rauchen. Vergesst aber nicht vor einem Test die Funktion "Generate AI Tringulation" auszuführen!
Feinde auf die Suche schicken
Eine etwas komplexe Sache ist es einige NPC's über die Map laufen zu lassen bzw. ihn zu sagen, dass sie von euch gesetzten Pfaden folgen sollen. Mit den "AI Anchors" geht das ebenfalls recht simpel. Setzt einige an verschiedenen Positionen der Map ab und definiert deren "Property" als "INVESTIGATE_HERE" (Überprüfe hier).
Dann müsst ihr noch die Einstellung "AI Behaviour" (KI Verhalten) der betreffenden NPC's auf "Job_Investigate" (Auftrag_Überprüfen) setzen. Nun führt die Funktion "Generate AI Tringulation" aus und testet eure KI. Die NPC's sollten in zufälliger Reihenfolge die "AI Anchors" abwandern, bis sie durch Entdecken eines Gegners ihren Auftrag unterbrechen.
Einsatz von "Tag Points"
Anstatt "Anchor"-Punkte zu benutzen könnt ihr auch "Tag Points" (in der "Objects"-Liste der RollUpBar unter "TagPoint" zu finden) einsetzen, um mehr Kontrolle zu haben. Um die KI den "Tag Points" folgen zu lassen, müssen diese und die KI selber korrekt benannt werden. Jeder "Tag Point", der abgelaufen werden soll, muss nach dem Schema name_Pn heißen. Zum Beispiel soll die KI drei Punkte nacheinander ablaufen. Diese heißen strandpatroille_P0, strandpatroille_P1 und strandpatroille_P2. Unser NPC, der die Punkte "abgrast", muss dann strandpatroille genannt werden.
Anweisungen zum Bewegungsverhalten
Dem NPC den gleichen Namen wie den "Tag Points" zu geben reicht allerdings nicht. Er muss auch wissen, wie er diese Punkte ansteuern soll. Daher ist es nötig, dass ihr die "Behaviour Properity" des NPCs auf "Job_PatrolCircle", "Job_PatrolLinear" oder "Job_PatrolNode" setzt. Diese drei Optionen lassen den NPC in verschiedenerweise zwischen den "Tag Points" umherlaufen. Mit der Option "Job_PatrolCircle" aktiviert ihr einen Kreislauf, der NPC wandert die Punkte 1, 2 und 3 ab und fängt dann wieder bei Punkt 1 an. "Job_PatrolLinear" hingegen verursacht ein Hin- und Herlaufen (erst 1,2,3 und dann von 3 zurück zu Punkt 2 und danach zu Punkt 1). Die letzte Option lässt dem NPC die Wahl der Punkte, was nichts mehr mit Patroille im eigentlich Sinn zu tun hat.
Gegner zu Gruppen formieren
Natürlich ist auch eine Patroilliengruppe möglich, bei der ein Anführer eine Gruppe formiert und mit dieser dann die Punkte abläuft. Eine solche Gruppe erschafft ihr mit den bereits erklärten Instruktionen, allerdings müsst ihr bei der "AI Behaviour"-Option darauf achten, die Punkte "Job_FormPatrolLinear" usw. einzugeben (das "Form" ist für die Gruppenfunktion zuständig). Dies müsst ihr nur bei einem NPC der Gruppe eingeben. Solange die anderen die gleiche "GroupId" wie er haben und ihr in deren "AI Behaviour"-Einstellungen die Option "Job_Observe" definiert habt, folgen sie ihm auch.
Genaue Pfade für Patroillen usw. definieren
NPCs folgen aber nicht immer genau den Routen der "Tag Points" und gehen auch mal etwas abseits der Luftlinie. Wollt ihr aber einen wirklich exakten Pfad erstellen, dann könnt ihr einen "AI Path" (KI Pfad) einbauen, den ihr ebenfalls im "AI"-Bereich der RollUpbar findet.
Wählt einen "AI Path" aus und klickt auf den Punkt der Karte, wo der Pfad starten soll. Dann setzt ihr mit weiteren Linksklicks den Verlauf des Pfads fest. Beim letzten Punkt macht ihr einen Doppelklick und der Pfad wird automatisch zwischen erstem und letzten Punkt geschlossen. Nun beginnt wieder die Namensgebung der Pfad-Punkte (ähnlich dem Schema der "Tag Points"). "AI Paths" müssen immer name_PATH heißen (Beispiel: strandpatroille_PATH).
Der NPC, der dem Pfad folgen soll, muss dann nach unserem Beispiel strandpatroille heißen. Und auch hier müssen wir wieder die "AI Behaviour" des NPCs mit einer Anweisung versehen (zur Auswahl stehen "Job_PatrolPath" und "Job_PatrolPathNoIdle"). Beide Einstellungen haben den selben Effekt, nur dass die zweite dem NPC sagt, dass er keine Pause an den einzelnen KI-Pfadpunkten machen darf.
Bewegungsbereich mit "Forbidden Areas" einschränken
Die dynamischen Reaktionen der Gegner auf euch oder ein zufälliges Abstreifen vom Weg haben manchmal den Effekt, dass diese auf der Map zu tief ins Wasser gehen und von Klippen stürzen. Um dies zu vermeiden müsst ihr "Forbidden Ares" (Verbotene Zonen) erstellen. Diese halten eure NPCs vom Betreten oder auch Verlassen ab, je nachdem ob ein NPC in oder außerhalb einer "Forbidden Area" stehen.
Klickt einfach den Punkt "Forbidden Area" in der "AI"-Liste des "Objects"-Bereich (RollUpBar) an. Nun setzt ihr durch Linksklicken auf eurer Karte die äußeren Punkte der "Forbidden Area" fest und macht beim letzten Punkt einen Doppelklick, damit der Bereich geschlossen wird.
Erkärung zum Thema "non standard Areas"
Bestimmte Bereiche der Map wie Brücken oder Gebäude verwirren die KI bzw. lässt sie diese nicht betreten. Um dieses Problem zu lösen müssen wir die Bereiche etwas anders bearbeiten, als zum Beispiel ein normales Terrain wie einen Strand. Natürlich spielen auch "Forbidden Areas" hier wieder eine Rolle, um evtl. Unfälle zu vermeiden.
Auf der non-standard Area müsst ihr eine "AI Navigation Modifier Zone" (KI Navigationsänderung-Zone), sowie Ein- und Ausgänge erstellen, damit die KI sicher in diese Bereiche hinein kommt. Ein- und Ausgänge müssen außerdem mit KI-Waypoints verlinkt werden, damit die KI auch durch die Bereiche navigieren kann. Solche Waypoints könnt ihr auch mit dem Einsatz von "Hide Points" (Verstecken-Punkte) vergrößern, damit die KI sich bei Beschuss eine Deckung sucht.
Eure Area genau definieren
Ihr erstellt also als erstes einen "AI Navigation Modifier"-Bereich. Wählt hierfür einfach die entsprechende Option aus dem "AI"-Bereich der Objekt-Liste aus. Dann setzt ihr auf eurer Map die äußeren Punkte dieses Gebiets fest (beim letzten den Doppelklick zum Schließen des Areals nicht vergessen). Wichtig ist, dass euer Gebiet auch einen Teil des Ein- und Ausgangsbereich zur non-standard Area überdeckt. Nur so kann ein NPC diese auch wirklich betreten.
Nun setzt ihr noch einen "AI Point" (KI-Punkt) an mögliche Ein- und Ausgänge des abgesteckten Bereichs (bei Brücken z.B. natürlich die Punkte, wo das Level wieder zum Terrain übergeht). Die Einstellung "Type" der geschaffenen Punkte setzt ihr auf "Entry Point" (Einganspunkt) oder "Exit Point" (Ausgangspunkt). In eurem non-standard Areal könnt ihr nun noch einige "AI Points" hinzufügen. Wichtig ist jedoch, dass später alle Punkte miteinander in einer Reihe verlinkt werden (vom Eingang bis zum Ausgang durchgehend). Ansonsten wird kein NPC euren Bereich betreten.
Routen und Deckungspunkte einsetzen
Um die Verlinkung einzubauen, klickt einfach auf den ersten eurer Punkte und dann auf den Button "Pick". Nun wählt ihr den zweiten Punkt aus und klickt ihn an. So geht das ganze weiter bis ihr beim Ausgang des Areals seid. Dazu könnt ihr noch einige "Hide Points" einbauen, die aber nicht den Waypoint-Fluss zwischen Ein- und Ausgang unterbrechen dürfen. Ein Waypoint linkt zum Beispiel problemlos auf einen "Hide Point", muss aber auch weiterhin gleichzeitig zum nächsten Waypoint linken.
"Hide Points" geben der KI die Möglichkeit an einer von euch bestimmten Stelle Deckung zu suchen, wenn sie beschossen wird. Außerdem besitzen sie einen Pfeil, der in die Richtung des Beschusses gesetzt werden muss. Nur dann versteckt sich die KI auch hinter einem Objekt und nicht davor, was sie zur Zielscheibe machen würde. Von wo der Beschuss kommt müsst ihr abwägen, ihr bestimmt letztendlich wo der Spieler auf der Map zu den Gegnern kommen soll.
Gegner in die Fahrzeuge einsteigen lassen
Es gibt verschiedene Land- und Wasserfahrzeuge im Spiel, die alle gleichen Regeln folgen, was ihr Verhalten betrifft. Wie "AI Enities" können auch sie Pfade oder Angriffsziele zugewiesen bekommen, aber trotzdem bleiben sie für sich selbst nicht-agierende Gegenstände. Das heißt, wir müssen ihnen Fahrer zuweisen, damit sie überhaupt was tun können. Um einem Fahrzeug einen solchen Fahrer zu geben, setzt ein "AI Enity" (z.B. einen Merc_Cover_M4 - Söldner) in die Nähe und stellt beiden die gleiche "GroupId" (Gruppen-Nummer) ein.
Auf diese Weise steigt der Söldner in das Fahrzeug ein, wenn dieses aktiviert wird. So lassen sich im übrigen auch Schützen und Beifahrer hinzufügen. Es steigen natürlich nur soviele NPCs mit der gleichen GroupId in das Fahrzeug, wie Plätze in diesem zur Verfügung stehen. Setzt ihr sechs Leute neben einen Humvee und die in die gleiche Gruppe, dann werden diese entsprechend das Fahrzeug als Fahrer, Schütze usw. benutzen.
Fahrzeugen einen Befehl zuweisen
Um ein Fahrzeug aber zu aktivieren, müsst ihr einen Trigger einbauen, der einen Verhaltensbefehl an das Fahrzeug sendet. Die beiden am häufigsten verwendeten Trigger sind der "Proximity Trigger" und der "Area Trigger". Der erste kann ein Fahrzeug aktivieren, wenn ein Spieler in die Nähe kommt.
Um den Trigger auf diese Option einzustellen, müsst einen solchen erst einmal auf die Karte setzen (schaut einfach in den Ordner "Triggers" der "Enity"-Liste). Dann wählt ihr euren Trigger aus und klickt auf dessen "On Enter"-Event (Bei Betreten Ereignis) in der RollUpBar. Nun könnt ihr den "Pick New"-Button darunter anklicken und klickt dann in der Map auf euer Vehikel, dass aktiviert werden soll. Nun steht unter dem "On Enter"-Event der Name des Fahrzeugs und der Name des Standard Triggers in eckigen Klammern. Diesen müsst ihr aber euren Wünschen anpassen (der Standardeintrag heißt meist "Abandoned"). Wählt zum Beispiel GoPath aus, wenn das Fahrzeug mit den NPC einen bestimmten Pfad abfahren soll.
Auslösen und Aktivieren der Fahrzeuge
Der "Proximity Trigger" hat die Grundform eines Würfels oder Rechtecks, dessen Größe ihr nur mit Hilfe der "DimX", "DimY" und "DimZ" Werte in dessen "Enity Properities" ändern könnt. Das Skalierungstool aus der Werkzeugleiste funktioniert hier nicht, auch wenne s bei Anwendung den Anschein hat. Natürlich kann solch eine Form auf eurer Map in manchen Fällen nicht euren Ansprüchen genügen. Dafür gibt es den "Area Trigger", der ein bestimmtes Terrain absteckt und bei Betreten das Fahrzeug aktiviert. Setzt einen solchen Trigger auf eure Karte.
Nun müsst ihr mit der Funktion "Shape" (in der RollUpBar im "Area"-Bereich zu finden) ein Gebiet auf eurer Karte einzeichnen. Dann gebt ihr den "Shape"-Objekt noch eine Höhe ("height") und bewegt es in den Bereich, den der Spieler für eine Fahrzeugaktivierung betreten soll. Nun wählt ihr den Button "Pick New" aus und klickt auf den vorher eingesetzten "Area Trigger". Den "Area Trigger" porgrammiert ihr nun genauso wie den vorhin erklärten "Proximity Trigger".
Helikopter und deren Sinn für das Gameplay
Es gibt zwei Schlüsselfluggeräte in FarCry, den "Gunship"-Helikopter (kein Schiff, wie es der Name vermuten lässt) und den "V22"-Helikopter. Beide funktionieren in fast gleicher Weise und beide können so programmiert werden, dass sie wie Boden- oder Wasserfahrzeuge funktionieren, allerdings mit kleineren Unterschieden. Die wichtigste Rolle im Gameplay ist für diese Objekte nämlich "Verstärkung bringen".
Ein sogenanntes "Reinforcement"-Ereignis könnt ihr auf jedes Passagier-tragende Fahrzeug anwenden, aber die Fluggeräte spielen diese Rolle am besten. Hier muss man sich keine Gedanken um schwieriges Terrain machen und kann fast überall hin der KI Verstärkung schicken lassen. Der "V22"-Helikopter bringt Verstärkung übrigens auf ganz "spezielle" Weise und nicht wie die anderen Fahrzeuge im Spiel.
Verstärkung zu einem Punkt bringen
Um einen "Gunship" als Verstärkung zu schicken, baut einfach einen Trigger in eure Map, der ein "Reinforce"-Ereignis auslöst. Setzt einen "Tag Point" an die Stelle, wo die Verstärkung anrücken soll. Nun ändert ihr den Parameter "pointReinforce" des Gunships in den Namen des "Tag Points", zu dem dieser sich bewegen soll. Mit dem "V22" funktioniert es genauso.
Allerdings landet dieser nicht, sondern lässt die als Verstärkung dienenden Soldaten an Seilen aus der Luft hinab. Diese Seile müsst ihr auf eure Karte setzen oder keiner der Soldaten wird den Helikopter verlassen. Sucht euch also einige "ropes (Seile) aus der "Enities"-Liste des Bereichs "Objects" in der RollUpBar heraus. Es ist vollkommen egal, wo ihr die Seile auf eurer Karte unterbringt. Sie müssen nur den selben Namen haben wie die Einträge der drei "RopeName"-Parameter des "V22" angeben (Standard ist hier "Rope0", "Rope1" und "Rope2").
Tipps am Rande
Achtet beim Einbau von Fahrzeugen auf die verschiedenen Eigenschaften dieser und das Terrain. Ein Boot hat zum Beispiel einen sehr kleinen Wendekreis, weshalb ihr dessen Pfadpunkte recht eng an einander setzen könnt. Beim Humvee sieht die Situation schon deutlich anders aus, weshalb hier zu dichte Pfadpunkte verursachen, dass das Fahrzeug sein Ziel verfehlt. Pfadpunkte über flachem Wasser können ein Boot auf Grund laufen lassen, Pfadpunkte eines Humvees nahe von Gewässern können ihn in diese hineinleiten und zerstören. Die Helikopter haben damit natürlich weniger Probleme, aber auch hier kann mal der ein oder andere Berg eine kleine Katastrophe auslösen. Also überprüft eure Route genau auf solche Schwächen.
Ein wenig mehr Realismus bitte...
Um eure kleine Welt ein wenig realistischer zu gestalten und auch mal was anderes außer Grunts und Mutanten zu bieten, gibt es in FarCry jede Menge Tiere wie Vögel oder Schweine. Diese teilen sich natürlich auf die Bereiche Wasser, Land und Luft auf. Es gibt Tiere, die man einfach nur einbauen muss und schon funktionieren sie im Spiel (z.B. Schweine). Andere jedoch müssen extra mit einem Trigger ausgelöst werden (z.B. Vögel, die vom Boden aus wegfliegen). Es gibt sogar Haie. Alles aus diesem Zoo kann im Grunde beschossen und getötet und ebenso mit Pfaden oder anderen Verhaltensweisen bestückt werden.
Tiere einbauen und mit Aufträgen ausstatten
Das Schwein ist ein Objekt, dass ihr ruhig einfach so auf eure Karte setzen könnt. Es fängt dann autmatisch etwas zu tun. Die normale Einstellung ist auf den Spieler zuzugehen. Natürlich könnt ihr dieses Verhalten auch in jedes andere ändern, aber wenn die passende Animation dazu fehlt, wird das am Ende nichts (man stelle sich doch bitte mal ein Schwein mit einer Zigarette vor). Setzt doch mal ein paar "AI Anchor" in die Nähe und ändert deren Einstellung auf "INVESTIGATE_HERE". Dann wird das Schaf zwischen den Punkten umherlaufen und sich ein wenig umsehen. Ein genauer Pfad und Patroillienbefehle sind ebenfalls möglich.