Mal wieder KI's

Fragen zum Szenarienbau und Mapdesign

Moderatoren: Henning, Björn_Jernside

Was ist so schlimm daran wenn einem Dorfi mal nach frischem Fisch ist?? :rolleyes: :D
Dieser Thread entwickelt sich ja langsam zu einem richtigen Ever-Green ... ;)

Hier mein neuestes KI-Problem:
Ich habe eine stinknormale KI, die hin- und wieder den Spieler angreift. Bis dahin ist alles okay, nur leider wohnt Spieler 1 auf einer Burg, die logischerweise mit Toren gesichert ist (ganz logisch bei einer Burg) ...
Nun der Haken an der Geschichte:
Der Gegner greift keine Tore an!? Nie! Das führt natürlich dazu, dass man ihn bequem vor den Mauern per Fernwaffen zerstückeln kann, weil er nie auf die Idee kommt mal das Tor einzurammen / einzuhauen.

Nun die Frage:
Wie schaffe ich es, dass der Gegner auch die Tore als gegnerisch erkennt und angreift?

PS: Hab mir überlegt, dass man ja per KI auch primäre Ziele für den PC festlegen kann, irgendwie per ID. Könnte das gehen? Und wenn ja, wie lautet entsprechender Befehl?
OHA! Ein mir nur allzu vertrautes Prob!

Diesbezüglich hatte ich mir mal deine eine "Gonzalo"-KI zu Gemüte gezogen, weil ich von der wußte daß sie im Spiel Tore angegriffen hat.
Allerdings nur um festzustellen, daß das eine total allgemeine KI ist, die gar keine spezifischen Rules geschweige denn Zielvorgaben enthält.
Schon also ärgerlich daß eine komplexe KI daran scheitert was eine einfache hinkriegt! :mad:

Da ich bei meiner Map ein ähnliches Prob hatte, hab ichs mit
(set-strategic-number sn-special-attack-type1 xxx)
probiert.

Für xxx müßtest du theoretisch nur die ID des/ der Tore festlegen.

Diese sind (nach Genied):
64
659
667 und
88

(Wobei ich dir jetzt nicht sagen kann welchem Tor das im Editor entspricht!)

ABER: Abgesehen davon, daß die KI die Rule nicht feststellbar beachtet, gibts da noch ein Problem:
man kann maximal 3 Primärziele einstellen, also z.B.:

(set-strategic-number sn-special-attack-type1 64)
(set-strategic-number sn-special-attack-type2 659)
(set-strategic-number sn-special-attack-type3 667)


Du müßtest dich also auf 3 von 4 Toren festlegen.

Zudem kann eine Gewichtung für die Angriffshäufigkeit nur für Type1 festgelegt werden.

also z.B.
(set-strategic-number sn-special-attack-influence1 90)
für 90% Wahrscheinlichkeit, dieses Tor gezielt anzugreifen.

Aber wie gesagt, ich hab keine Verbesserung damit erkennen können, noch eine Ursache warum manchmal Tore und Mauern angegriffen werden und wann nicht. :confused:

Hängt vielleicht mit der mangelnden Erkennung von Mauern und/oder Toren als Hindernisse zum eigentlichen Ziel zusammen.
Beim KI-gesteuerten Reusenbau hat ES ja auch geschlampt...

Hab jedenfalls auch nur diese KI-Möglichkeiten gefunden, laß mich aber nur ZU GERNE noch eines besseren belehren, falls jemand da noch was weiß... :(
Danke erstmal. Hmmm ... Das ist einfach nur sehr ärgerlich ... Aber die Gonzalo-KI hat keine Tore angegriffen, nur Mauern, wenn ich mich recht erinnere. Warum weiß ich auch nicht ... :rolleyes: Mauern greift meine aktuelle KI auch an, leider nur dieses eine Tor nicht. Es ist halt mehr als blöd, wenn man die Tore am Anfang immer vernichten muss (was weiß ich, durch 'ne Explosion im Intro oder so ---> wirkt auf Dauer einfach aufgesetzt). Ich werd's mal mit den von dir genannten Special-Rules versuchen, obwohl der Erfolg vermutlich ausbleiben wird.

btw: Weiß eigentlich jemand die ID der Seetore? Die haben immerhin weniger Energie, geht somit schneller kaputt, das wäre ja auch schon was ... ;)

Noch mal was anderes:
Für alle KI-Muffel habe ich noch etwas schön einfaches herausgefunden, was wirklich ziemlich toll funktioniert!

Wenn ihr in einer KI regelmäßige Angriffe vom Gegner haben wollt, so gibt es einen einfachen Trick, das ganze auch mit geringem Schalteraufwand hinzubekommen + ein klein bisschen KI.

Sieht dann wie folgt aus:

(defrule ;bei Feindlichkeit beginnt der Kampf
(players-stance 8 enemy) ;Spieler vollkommen beliebig, am besten ein Spieler, der nur für Schalter / KI-Zwecke da ist mit einer Einheit im Wald versteckt ...
=>
(attack-now)
)

Plus folgende Schalter
Schalter 0
Schalterausgang: ein
Triggerschleife: aus

Bed: Beliebig
Effekt: aktiv Schalter 1

Schalter 1
Schalterausgang: aus
Triggerschleife: ein

Bedingung: Zeitgeber 300 (wäre ein Angriffsintervall von 5 Minuten)
Effekt: Spieler 8 zu Spieler x (der Spieler, der Spieler 1 angreifen soll) FEINDLICH
Effekt: aktiv Schalter 2

Die KI lässt nun den Spieler angreifen, da die Bedingung
(players-stance 8 enemy) erfüllt ist

Schalter 2
Schalterausgang: aus
Triggerschleife: aus

Bedingung: Zeitgeber x (gebt dem Spieler ein wenig Zeit, seine Soldaten für den Angriff zu formieren)
Effekt: Spieler 8 zu Spieler x (der Spieler, der Spieler 1 nun angreift) VERBÜNDET / NEUTRAL (ist egal)

Der Spieler x greift nun einen anderen Spieler an (generell Mappertypisch den Spieler 1). Auch wenn die Diplo von Spieler 8 bereits wieder auf verbündet gewechselt ist, führt er seinen Angriff komplett durch, bis das nächste Intervall wieder aktiv wird (Schalter 1).

Der Vorteil bei der ganzen Nummer ist, dass man per Schalter diese Angriffe vollkommen unter Kontrolle hat und per Diplomatiewechsel-Aktivierungen den Spieler permanent im Griff hat.

Hoffe, dass ich das verständlich genug aufgeschrieben habe. Gerade KI-Muffel, die nicht so bewandert sind mit dem Programmieren von KIs, könnte das ganze dienlich sein, da es meiner Meinung nach ziemlich schwierig ist, eine vernünftige Angriffs-KI komplett per AI-Befehlen zu gestalten. Naja ... die KI-Hasen werden wohl eher drüber schmunzeln ... ;) ... Ihr alten Klugschei**er ... ;)
Naja ... die KI-Hasen werden wohl eher drüber schmunzeln ... ;) ... Ihr alten Klugschei**er ... ;)
:D *lol*

Joah, nette Idee.
Schön, daß mal jemand an die KI-Abstinenzler denkt (jetzt, wo ich keiner mehr bin! :rolleyes: ).


Aber die Gonzalo-KI hat keine Tore angegriffen, nur Mauern, wenn ich mich recht erinnere. Warum weiß ich auch nicht

Wahrscheinlich einfach in Ermangelung irgendeines anderen Zieles. Sofern auch nichts anderes sichtbar ist, geht die KI halt auf Tore & co. los.
Direkt steuern hab ich das allerdings bisher auch noch nicht gekonnt.
Zumindest zwei der KIs die du ja aus dem Betatest meiner Map kennst, greifen Tore durchaus an, die aufwendigere KI des gelben Spielers dagegen so gut wie nie. :mad:


BTW: Sind deine Tore bereits im Editor gesetzt? Dann fiele mir ne (Schalter)Abhilfe für dein Prob ein:

Schalter0
Ausgangsstellung: beliebig
Trigger: AN
Bed0: Zeitgeber ... sec
Effekt0: kleines Gebiet zuweisen Einheiten Sp. Y (feindlich) auf Tor Sp. X
Effekt1-...: wie Effekt0, aber anderes Gebiet

Ist zwar auf den ersten Blick etwas grobschlächtig, damit ließe sich sich jedoch erreichen, daß bei den Angriffen nach Zufallsprinzip zumindest ein Teil der Soldaten das/ die Tore attackiert.
Wenn man jeweils mehrere Effekte von verschiedenen kleinen Flächen aus (am besten nur von ein oder zwei tiles Größe) zuweist, (oder sogar mehrere Schalter mit leicht verschiedenen Zeitgebern macht) sieht das für den Spieler auch nicht nach plumper "Schalterhilfe" aus.
... eine plumpe ;) Schalterlösung habe ich bereits versucht. Leider bleiben die zugewiesenen Einheiten direkt vor dem Tor stehen, als wäre es verbündet... :rolleyes: Kann man nix machen.

PS: Habe mir gerade mal die KI-Scripts deiner Map angesehen und muss sagen: Holla, die Waldfee! Besonders das mit dem Cheaten von Rohstoffen kannte ich noch gar nicht, das ist ja mal wirklich extrem praktisch! :eek:

EDIT: ... ich glaube die Uhr im Forum wurde noch nicht der Winterzeit angepasst oder irre ich mich da?
... eine plumpe ;) Schalterlösung habe ich bereits versucht. Leider bleiben die zugewiesenen Einheiten direkt vor dem Tor stehen, als wäre es verbündet... :rolleyes: Kann man nix machen.

PS: Habe mir gerade mal die KI-Scripts deiner Map angesehen und muss sagen: Holla, die Waldfee! Besonders das mit dem Cheaten von Rohstoffen kannte ich noch gar nicht, das ist ja mal wirklich extrem praktisch! :eek:

EDIT: ... ich glaube die Uhr im Forum wurde noch nicht der Winterzeit angepasst oder irre ich mich da?
Zu 1) Bleiben stehen? :confused:
Muß ich mal ausprobieren, könnte schwören daß das klappt.
Evtl. probier als Zielpunkt mal die Eckpfosten der Tore aus, da das Mittelstück generell sehr verbuggt ist.

Zu 2) Was Revolutionäres mit cheat-Tricks?
Welche KI meinst du denn?
Falls du Lòrdwyn meinst, die ist nicht 100% von mir, sondern eine Modifikation. Hab ich fairerweise auch immer oben rein geschrieben. ;)

EDIT: Aaah, du meinst die Not-Cheats?
Bzw bei Rhiannòn das Power-Up unter "Schwierig"?
Aber so neu ist das doch nicht.
"Hauptberuflich" Cheatende KI's gibts doch bei AoK Heaven häufig.

Das hab ich ursprünglich nur deswegen eingestellt um die KI effektiv am Abbau der Eyecandies (Steine, Wald, Beeren etc.) zu hindern. Später hab ichs wegen der Kontrollfunktion beibehalten.

Zu 3) Jepp, das mit der Uhr ist mir vorhin auch aufgefallen.
EDIT: Aaah, du meinst die Not-Cheats?
Bzw bei Rhiannòn das Power-Up unter "Schwierig"?
Aber so neu ist das doch nicht.
Neee ... mir war schon klar, dass man seine KI cheaten lassen kann, so ist das nun auch nicht. Ich wusste bloß die Befehle dafür nicht. Normalerweise wird ja viel in den ellenlangen Profi-KIs mit sowas gearbeitet, aber ich wollte mich da nicht druchquälen und das suchen. Da deine KIs ja glücklicherweise etwas kompakter sind, habe ich das da durch Zufall sehr schnell endtdeckt. Ich habe die Ressourcen-Probleme sonst meist per Tribut-Schleife (GAIA zahlt an Spieler x) gelöst, das ging auch sehr fein.

Bezüglich deiner umfangreichen KI, die nicht ganz so schön angreift wie die simplen: Das passiert mir ständig! Die simplen KI agieren oft eindeutig besser, da sie einfach viel besser in richtige Scenarien passen. Bei einem Standard-Spiel loosen sie natürlich volle Kanne ab ... ;)

EDIT: Falls jemand mal ne absolute Herausforderung sucht, so spiele er mal gegen Alliance_Beta 1.03, das ist Wahnsinn! Ich denke, da läuft ebenfalls viel über Trickserei. Definitiv unschlagbar meiner Meinung nach.

Lustig ist auch wenn man diese KI eins gegen eins gegeneinander spielen lässt. Es bleibt tatsächlich auf ewig unentschieden.
EDIT: Falls jemand mal ne absolute Herausforderung sucht, so spiele er mal gegen Alliance_Beta 1.03, das ist Wahnsinn! Ich denke, da läuft ebenfalls viel über Trickserei. Definitiv unschlagbar meiner Meinung nach.

Lustig ist auch wenn man diese KI eins gegen eins gegeneinander spielen lässt. Es bleibt tatsächlich auf ewig unentschieden.
Naja, das hab ich aber schon bei mehreren KI's festgestellt.
Sofern die Ausgangsbedingungen die selben sind, kann da eigentlich keine gewinnen.
Alliance_Beta 1.03...
Wo gibts die denn? Bei AoKHeaven hab ich sie nicht gefunden.

Das Hauptprob an meiner komplexen KI war nicht die Aggressivität, sondern eher das Gegenteil:
Einhalten der getimten Angriffsbedingungen, festgelegter Bereich der Truppengröße etc.
Ich HASSE es nunmal, wenn KIs (oder auch Spieler ;) ) die Einheiten so wie sie produziert werden zur Front schicken.
Das ist uneffektiv und artet für den Gegenspieler in gelangweilten Abwehrstreß aus.
Sie sollen erst Truppen sammeln, und dann bei entsprechender Bedingung (Truppengröße, Timer etc.) angreifen.
Das hat anfangs geklappt, dann die ganze Zeit nicht mehr.
Nun scheints ja wieder zu klappen, nachdem ich noch komplettierende Schalter eingebaut hab.

EDIT: Empfehle dir auch Kosmos.AI von AoK HEaven wenn du nen starken Gegner suchst.
Kann mit jedem Volk und cheatet nicht.
Ich HASSE es nunmal, wenn KIs (oder auch Spieler ) die Einheiten so wie sie produziert werden zur Front schicken.

Naja ... kommt ganz drauf an, es kann auch stimmig und passend sein, aber das mit dem Sammeln ist natürlich korrekt und sieht auch schmucker aus. Das andere wirkt ja fast wie ein Schalterangriff.

Mit meiner oben genannten Schalter+KI-Lösung funktioniert das mit dem Sammeln übrigens sehr gut und die Gegener greifen auch klug und effektiv an ... :eek:

EDIT: Falls jemand mal ne absolute Herausforderung sucht, so spiele er mal gegen Alliance_Beta 1.03, das ist Wahnsinn! Ich denke, da läuft ebenfalls viel über Trickserei. Definitiv unschlagbar meiner Meinung nach.

Lustig ist auch wenn man diese KI eins gegen eins gegeneinander spielen lässt. Es bleibt tatsächlich auf ewig unentschieden.
Kannst du mir die bitte per mail schicken??
Würde ich gerne mal testn ...
Naja ... kommt ganz drauf an, es kann auch stimmig und passend sein, aber das mit dem Sammeln ist natürlich korrekt und sieht auch schmucker aus. Das andere wirkt ja fast wie ein Schalterangriff.
Ebendrum... :D
Da brauch ich keine KI basteln wenn das selbst die dümmste KI oder ein einfacher Schalter hinkriegen.
Und ich habs bei den ganz alten Tests gemerkt (noch ohne eigene KIs): es ist atmosphärisch UND spieltechnisch einfach öde, wenn man dauernd einzeln kommende Fuzzis abwehrt.
Die Angriffe haben keine Durchschlagskraft, nerven aber mit der Zeit nur noch.
Stell dir mal vor du wärst im Betatest jede Sekunde von jeder KI mit einer Schlange einzelner Angreifer konfrontiert worden.
So hat jede KI wenigstens einen gewisses Angriffsmuster, was auch IMO realistischer wirkt (kein General der Welt schickt seine Soldaten einzeln in die Schlacht).
Auf letzteres leg ich besonders Wert, da fühl ich irgendwie zu verpflichtet. :)

Mit meiner oben genannten Schalter+KI-Lösung funktioniert das mit dem Sammeln übrigens sehr gut und die Gegener greifen auch klug und effektiv an ...

Wie sieht die denn konkret aus? *interessiert*
Oder meinst du nur die Cheat-Ressourcen-Schalter?
:confused:
@Barbarossa: Ich meint die Idee mit Spieler x, der der angreift, wenn per Schalter Spieler y auf feindlich wechslt und sich dieser Effekt per TriggerSCHLEIFE in regelmäßigen Abständen wiederholt. Ist im Endeffekt genau wie bei einer "richtigen" KI (Unterschiede bemerkt man im Spiel nicht), ausser dass es ohne Schnick-Schnack ist. Willheißen, dass zum Beispiel kein Truppenstärke angegeben ist und in wievielen Trupps der Gegner angreift etc. Ansonsten funzt das echt richtig gut und hält mich gerade in meiner neuen Map tierisch auf Trab ... ;)
Neue Frage: Wie mache ich, dass die KI Soldaten in ihre Rammen einquartiert? Ist das möglich?
@Barbarossa: Ich meint die Idee mit Spieler x, der der angreift, wenn per Schalter Spieler y auf feindlich wechslt und sich dieser Effekt per TriggerSCHLEIFE in regelmäßigen Abständen wiederholt.
Ach so, das.
Das war schon auf der vorigen Seite, da hab ich mit "da oben" nicht dran gedacht. :D

Klingt vernünftig.
Zumal ich Schalterlösungen immer KI-Akrobatik vorgezogen habe. Da hat sich auch nach all der KI-Reinarbeiterei nix dran geändert.
Werd ich auch mal ausprobieren. :)

Wie mache ich, dass die KI Soldaten in ihre Rammen einquartiert? Ist das möglich?

Puh, soweit ich weiß nicht konkret.
Da verhält es sich wie bei den Angriffen auf Tore:
mal macht sie's, mal nicht.
Scheint von Zufallsprinzip und verfügbarer Truppenstärke abzuhängen.
Genug verfügbares Militär ist denke ich mal förderlich.
Meine KI's, die Rammen benutzen, machen das eigentlich alle automatisch, ohne daß ich da was bewußt eingestellt hätte.

Ich hab mich früher auch immer gewundert daß man die "boat-attack-group-size" einstellen kann, die für Rammen nicht.
Schätze mal das liegt daran daß man erst ab Conquerors in Rammen einquartieren kann und dafür nicht nochmal ein extra KI-Interface eingerichtet wurde.
Is wohl so ähnlich wie der nicht funktionierende "Reusen-bau-Befehl".
Hat ES einfach verschludert.
Viele strategische Vorgehensweisen der CS sind nicht über die KI ansprechbar, sondern tief in der Programmstruktur verwurzelt.
Daher gibt es nicht für jede Einzelheit einen spezielle KI-Befehl, wenn man das so sieht würde das Programmieren riesig. Daher sollte man es auch der Schlauheit des CS überlassen, ob er ein Tor angreift oder ob vielleicht eine Mauer günstiger, weil näher ist. Für solche speziellen Sachen muss man eben Schalter zu Hilfe nehmen. Einheiten lassen sich ganz einfach mit Schaltern in Rammen einquartieren.
Und ebenso einfach lassen sich unzählige solcher Rammen irgendwo in der Map verstecken, und bei Bedarf eben das gewünschte Tor angreifen.
Sobald die Rammen angegriffen werden springen die Einheiten auch normalerweise von selbst heraus um diese zu verteidigen.
Normal müsste man da so zurechtkommen. ;)
Viele strategische Vorgehensweisen der CS sind nicht über die KI ansprechbar, sondern tief in der Programmstruktur verwurzelt.
... Für solche speziellen Sachen muss man eben Schalter zu Hilfe nehmen. Einheiten lassen sich ganz einfach mit Schaltern in Rammen einquartieren.
Das hab ich ja in dem Fall auch empfohlen.
Andere Möglichkeiten seh ich da auch nich.

@Henning:
Also bei mir klappt das zuweisen auf Tore tadellos.
Sorry, aber da muß dir irgendwo ein Denkfehler unterlaufen sein.
Auch wenns doof klingt: prüf mal ob die Diplomatie zwischen Torbesitzer und Angreifer wirklich in dem Moment feindlich bzw. neutral ist.
Weil das eigentlich der einzige Grund sein kann warum die KI das Tor den Schalterbefehl nicht ausführt.

Sobald die Rammen angegriffen werden springen die Einheiten auch normalerweise von selbst heraus um diese zu verteidigen.

Nee Günni.
Darum gings ihm ja bei den Rammen nicht. So wie ich ihn verstanden hab will er ja daß die KI beim Angriff Einheiten IN die Rammen einquartiert, nicht umgekehrt.
So wirklich zum Thema KI passt es gerade gar nicht, aber etwas quält mich da auch noch ...

Ist es möglich per Genied die versteckten Einheiten freizuschalten, so dass man dieser auch per Schalter (Neues Objekt) entstehen lassen kann?
Meinst du Cobra-Auto, Steinhaufen, Seewälle und sowas?

Ja, das geht. Man muß lediglich das Häkchen bei "Hide from Editor" rausnehmen und ggf. "Copy to All Civs" (im Menüpunkt "Tools") betätigen.
Danach abspeichern.
Dann sind diese Objekte u.a. auch für den "Objekt einfügen"-Effekt freigeschaltet.
Dann sind diese Objekte u.a. auch für den "Objekt einfügen"-Effekt freigeschaltet

Wenn andere Spieler ein Scneario runterladen, wo versteckte Einheiten vom entsprechenden Mapper freigeschaltet wurden, funktioniert das dann auch bei denen? Oder müssten diese auch per Genied erstmal entsprechende Einheiten freischalten?