2KI für 1 Comp

Fragen zum Szenarienbau und Mapdesign

Moderatoren: Henning, Björn_Jernside

Will, dass für einen Compspieler am Anfang die Immobile Units KI gilt und ab einem bestimmten Zeitpunkt (Ich betrete bestimmtes Gebiet) eine andere aggresivere KI aktiviert wird und die Immobile Units KI deaktiviert wird.

WIE GEHT DAS
Gehn tun sollte das schon :D, zumindest entgegen der kategorischen Behauptung, das eine KI immer gleich bleiben muß.
Es gibt z.B. den Befehl "load", der bei einem bestimmten Ereignis eine andere Ki-Textdatei lädt.

Als Beispiel kannst du dir z.B. die "Kosmos AI" von AoKHeaven anschaun.
Diese KI besteht aus mehreren Teil-Ki's, was zum Teil der Gliederung dient, andererseits auch, um mittels des Load-Befehls einzelne Skripte nur bei Bedarf zu laden.
Allerdings lädt diese KI bereits alle Teilskripte von vornherein (eine kleine Textdatei, in der nur Load-Befehle stehen), da sie ja eine reine Kampf-Ki ist.

Da wird dann oft mit der Bedingung "goal" gearbeitet, die ein vorher definiertes Ziel (z.B. "Gegner hat mehr als 20 Kriegselefanten" ) darstellt.
Damit erarbeiten komplexere KI's u.a. geeignete Gegenreaktionen wie vermehrt Kontereinheiten produzieren, Spezialattacken anwenden o.a.

Das müßte also eigtl. auch so gehen, daß du die Immobile Units AI und eine Kampf-KI zu einer KI mit mindestens zwei Teilskripten verbindest.
Die Immobile Units enthalt dann einen "Goal/ load" Zeile die zu gegebener Zeit die Kampf-KI aktiviert, die bis dahin schlummert.

Ob und wie das genau geht, hab ich allerdings noch nie ausprobiert, da es bisher auch immer so ging.
Vielleicht hat Günni damit schon Erfahrungen gemacht?

:confused:

Bin aber relativ sicher daß das irgendwie gehen muß, ob jetzt als separates Skript oder als Teil einer einzigen KI, die quasi einen Friedens- und einen Krieg-Part hat.
In "Daniel the Brave" habe ich mit "goals" gearbeitet und genau Björns Problem umgesetzt ... :D
Das Laden mehrerer KI's für nur einen Compi mit dem Befehl "load" finde ich hingegen umständlich, unnötig und unübersichtlich.

Dies macht imho nur Sinn, wenn mehrere Compis eine eigene KI besitzen und beispielsweise zusätzlich in einer extra-KI gemeinsame Befehle nutzen. Das spart dann Schreibarbeit und somit Zeit.
Befehl "load" finde ich hingegen umständlich, unnötig und unübersichtlich.
Genau aus diesen Gründen hab ich mich auch noch nie damit befaßt. :D
Der erste Schritt für das Adaptieren einer KI war bei mir, alle Teilskripte zu einem zusammenzufassen und die unnötigen goals / loads zu löschen.
Ich habs ganz gern übersichtlich.

Umso mehr, als daß ich mich nicht so intensiv mit KI-Schreiben, sondern eher auf (zeitsparende) KI-Modifizieren verlegt hab.
Die Auswahl ist so groß, da lohnt sich mMn nur das Selbstschreiben kleinerer KIs.

Also Björn:
Guck disch KIs middie "goal" an, dann kriegscht du disch konkret geholfen! ;)

Im Prinzip geht es darum, verschiedenen goals einmalig eine Zahl zuzuweisen, die dann stellvertretend für dieses Ziel steht.
Ist so ähnlich wie bei den timern.