25.06.2011, 14:26
Du musst denen schon Waypoints setzen und wenn die den nicht erreichen können hängt sich die AI auf. Was meinst warum die überhaupt über Barrickaden springen oder sie umgehen? Weil das alles in ihrem Script festgelegt ist. Eine AI kann nicht viel wenn sie schlecht gescriptet ist und würde nur gegen Wände laufen. Sagen wir du stellst eine Wand auf. Die AI wird versuchen zu ihrem Waypoint zu kommen und gegen die Wand laufen weil sie die Wand nicht erkennt, da die Wand im Script nicht exestiert und es keinen Befehl gibt was die AI tun soll wenn der Weg durch die Wand blockiert ist. Beim FF sieht man oft dass die Ai die gleichen Wege nimmt und dass es Orte gibt wo sie einfach nie hingehen würde, weil das nicht in ihrem Waypoints festgelegt ist. Die Halo AI ist eigentlich sehr gut, weil sie viele Scripts hat um auf Situationen zu reagieren, wenn zum Beispiel jemand einen Warthog in ihrem Weg parkt, wird ein Script eingeleitet was die AI dazu bringt einen anderen Weg zu nehmen. Wenn man sich die Maps im Programm was Bungie zum programmieren genommen hat mal anschauen könnte würdest du die unzähligen Scripts und Waypoints für die AI sehen. Hinter so ner FF Map stecken beinah mehr Scripts als in einem Abschnitt aus der Kampagne. Bei schlecht gescripteten AI's (zB. aus DK2) ist die gefahr höher dass sie sich einfach aufhängt. Wenn sie auf etwas trifft was nicht auf ihrem Script steht hängt sie sich meistens auf. In Halo passiert sowas sogut wie nie, ein weiteres Beispiel dass die AI gut gescriptet ist. Plazierst du eine Wand musst du die Ai mit Scripts darauf vorbereiten, was sie zB. tun soll wenn sich der Gegnder dahinter befindet und sie ihn nicht einfach so erreichen kann. Also wäre das Script zB so: (Waypoint 1 ist hinter der Wand, Waypoint 2 weiter außen)
"If AI is-unable-to-reach-W1" "Initialise-route-change-to-W2"
Natürlich haben Scripte nicht solche Befehle, aber so würde das ausgehen. Wenn ein Ereignis getriggert wird musst du für die AI ein passendes Aktionsscript parat haben, wenn nicht hängt sie sich auf. Und wenn du nicht mal den Trigger parat hast, bringt dir auch ein korrektes Aktionsskript nichts. Dann hängt sich die AI entweder auf oder versucht immer noch die ganze Zeit die Aktion auszuführen die sie vorher wollte, also in diesem Fall die ganze Zeit gegen die Wand laufen. Und so muss man die ganze Map auf die AI programmieren, wenn du da einfach willkürlich Wände aufstellst und dir nicht die Mühe machst Scripte für die AI zu schreiben damit sie mit jeder Situation fertig werden, wird das in irrationalen Aktionen seitens der AI oder mit kompletten Aufhängen belohnt. Vom Reach Defiant Map Pack kann man das zB sagen, die AI hängt sich an der einen Stelle (ich weiß leider nicht mehr genau wo) dauernd auf, da sie nicht genügend gescriptet wurde
"If AI is-unable-to-reach-W1" "Initialise-route-change-to-W2"
Natürlich haben Scripte nicht solche Befehle, aber so würde das ausgehen. Wenn ein Ereignis getriggert wird musst du für die AI ein passendes Aktionsscript parat haben, wenn nicht hängt sie sich auf. Und wenn du nicht mal den Trigger parat hast, bringt dir auch ein korrektes Aktionsskript nichts. Dann hängt sich die AI entweder auf oder versucht immer noch die ganze Zeit die Aktion auszuführen die sie vorher wollte, also in diesem Fall die ganze Zeit gegen die Wand laufen. Und so muss man die ganze Map auf die AI programmieren, wenn du da einfach willkürlich Wände aufstellst und dir nicht die Mühe machst Scripte für die AI zu schreiben damit sie mit jeder Situation fertig werden, wird das in irrationalen Aktionen seitens der AI oder mit kompletten Aufhängen belohnt. Vom Reach Defiant Map Pack kann man das zB sagen, die AI hängt sich an der einen Stelle (ich weiß leider nicht mehr genau wo) dauernd auf, da sie nicht genügend gescriptet wurde