Neuer KI-(AI) Editor in Deutsch

Fragen zum Szenarienbau und Mapdesign

Moderatoren: Henning, Björn_Jernside

144 Beiträge
Klar kann ich einen neuen KI-Editor ohne den Quellcode von MS schreiben...schließlich kann doch jeder eine KI schreiben...
Wofür gibt es denn die schöne CPSB.DOC? ;)
Nachdem ich diese Dokumentation gesehen habe, bin ich erleichtert! Ich kann zwar eine KI schreiben, die gegen mich selbst gewinnt, aber die vielen englischen Begriffe machten es mir unmöglich eine KI mit den "neuen" Einheiten von The Conquerors zu schreiben, da der Editor diese selbst nicht kannte. Ich würde sehr gerne testen, jedoch müsste ich dazu noch wissen, wie und wo man sie abspeichern muss. Ausserdem bin ich mir nicht sicher ob das Programm auf Vista läuft... Meine E-Mail Adresse sollte bekannt sein, sonst steht sie afaik auch in meinem Profil.

Noch eine Frage: Gibt es auch eine Möglichkeit, bei den Goten den Huskarl aus der Kaserne zu erschaffen? Bei VNS_Halen ist zwar die ID Nummer (759 oder so) angegeben, aber es kommt dann eine Fehlermeldung im Spiel und im Editor.

Mfg BlauerHund
Kannst ihn gerne testen! Ich schick ihn dir gleich...

Dokumentation ist ja online, aber wenn du möchstest, schick ich dir die noch als Offline-Version.

.NET-Framework 3.5 SP1 ist bei dir installiert, oder? Falls es nicht installiert sein sollte: Hier nochmal der Link.

@Vista:
Keine Angst, ich hab den auf Vista programmiert (habe es selbst).

@Huskarl:
Im englischen müsste es einfach "(train huskarl-line)" heißen, denn wo der Huskarl erschaffen wird, lässt sich nicht verändern.
Heißt in meinem Editor übrigens "Erschaffe Huskarl-Linie"... :)

EDIT:
Wer möchte, kann sich jetzt auch eine aktuelle Version hier herunterladen. Ihr könnt die Dateien entweder als 7z-Archiv, zip-Archiv oder einzeln herunterladen.

EDIT2:
Zu der Speicherfrage (die ich irgendwie übersehen hab...):

Einfach ein neues Projekt anlegen, das meiste müsste sich von alleine klären. Wenn nicht, einfach mich fragen. :)
Was ist mit URL oder Dateipfad zur Dokumentation gemeint?
Ausserdem kann ich irgendwie die KI nicht verwenden...

Edit: Es kommt eine Fehlermeldung wenn ich eine neue KI erstellen möchte:

Fehler: Die Datei 'C:\Program Files\Microsoft Games\Age of Empires II\AI\KI1\ <!--DieKonstantendatei sollte immer oben stehen-->' wurde nicht gefunden oder konnte nicht geöffnet werden und wird daher übersprungen.
Entweder ist die Projektdatei beschädigt oder die Datei existiert nicht. Bei Fragen wende dich bitte an den Programmierer.

Danach klicke ich auf Ok, aber die Fehlermeldung kommt wieder. Wennn ich dann nochmal auf Ok drücke öffnen sich endlich die drei Felder. Jedoch kann ich nicht debuggen, da es heisst, im Dateipfad befänden sich ungültige Zeichen.

Was soll ich jetzt tun?
Hab ich etwas falsch gemacht?
Könntest du mal eine genaue Anleitung schreiben und diese dann mir schicken oder hier posten?
URL oder Dateipfad zur Dokumentation meint, dass du einen Ordner oder eine Internetadresse zur Dokumentation angeben sollst. Ich würde dir empfehlen, die Dokumentation hier herunterzuladen, in einen Ordner zu packen und diesen im Editor anzugeben (Extras->Optionen->Verzeichnisse).

Zum Fehler beim Laden: Bitte poste hier einmal die *.kiproj-Datei im Ordner "C:\Program Files\Microsoft Games\Age of Empires II\AI\KI1\". Ich glaub, da ist irgendwas mit den XML-Routinen schief gelaufen...

Da sieht man es, wozu Testen wichtig ist! ;)
Wie kann ich die Datei posten? Soll ich sie öffnen und den Inhalt kopieren? Soll ich sie irgendwie hochladen (weiss nicht wie das geht!), oder was soll ich tun?
Einfach öffnen und Inhalt kopieren.

Nimm am besten den

Code: Alles auswählen

-TBB-Code, dann sieht das ganze besser aus.

Code: Alles auswählen

; Hauptskript der KI 'KI1' - In diesem Skript wird Age of Empires II beginnen, die KI auszuführen.  
; Lade-Befehle  

; Laden der Konstanten und der Strategiedatei 

#LADE "konzept" 
#LADE "konstanten"   

; Hauptteil (Regeln etc.)   
; Diese Regel dient der Feststellung, ob die KI auch wirklich läuft. 
; Sie sollte aber später gelöscht werden.  

#REGEL 
WAHR 
=> 
Chatte-an-alle "Ich bin die KI 'KI1'!" 
Deaktiviere-Regel 
#ENDE REGEL

Code: Alles auswählen

; Hier kann das Konzept der KI festgelegt werden. ; So eine Datei kann als Hilfe beim Schreiben der KI dienen, da so die gewünschte Strategie schriftlich niedergelegt und nicht so schnell wieder vergessen werden kann. ; Weiterhin können hier Notizen abgelegt werden, welche Bereiche noch geschrieben werden müssen und welche schon fertig sind. ; Ein weiterer Tipp wäre, hier für die Strategie wichtige Regeln bzw. Konstanten abzulegen, sodass sie immer schnell auffindbar und änderbar sind.

Code: Alles auswählen

; Hier werden die Konstanten für die KI festgelegt. ; Es wird empfohlen, die wichtigsten Konstanten ganz oben in dieser Datei festzulegen (oder in konzepte.jki), damit Änderungen schnell vorgenommen werden können.
Hab also noch nichts geändert...
ANMERKUNG / KRITIK: Definitionen.xml wird nicht automatisch in den Projektordner kopiert.
@BlauerHund:

Ist das wirklich die Datei "KI1.kiproj"?

Ich meine nicht die "*.jki"-Dateien...

@El_Cid:

Warum sollte sie das denn? Ist doch viel praktischer, wenn jedesmal die gleiche Definitionen.xml geladen wird...und davon abgesehen ist die eh Programm-Intern, was eine nachträgliche Änderung nahezu ausschließt...
Das ist der normal Editor:

Code: Alles auswählen

<?xml version="1.0" encoding="utf-8"?> <projekt>   <!--Der Projektname-->   <name>KI1</name>   <!--Der Autor des Projekts-->   <autor>Raphael</autor>   <!--Die Projektbeschreibung-->   <beschreibung></beschreibung>   <!--Der Erstell-Ordner der KI-->   <rel_ordner>C:\Program Files\Microsoft Games\Age of Empires II\AI\</rel_ordner>   <!--Soll der Autor eingefügt werden?-->   <show_autor>0</show_autor>   <!--Soll die Beschreibung eingefügt werden?-->   <show_descr>true</show_descr>   <!--Der Einstiegspunkt der KI-->   <einstieg>start.jki</einstieg>   <!--Alle Projektdateien-->   <dateien>     <!--Die Konstantendatei sollte immer oben stehen-->     <datei>konstanten.jki</datei>     <!--Direkt danach folgt die Konzept-Datei-->     <datei>konzept.jki</datei>     <datei>start.jki</datei>   </dateien> </projekt>
Das ist Word:


KI1
Raphael

C:\Program Files\Microsoft Games\Age of Empires II\AI\
0
true
start.jki

konstanten.jki
konzept.jki
start.jki

Und wenn ich mit dem KI-Editor öffne, dann kommt das vom vorherigen Post...
Welches Programm nun?
OK, die ist soweit in Ordnung.

Lädt der KI-Editor denn drei Dateien oder weniger?
Kommt immer noch eine Fehlermeldung?
Er lädt bei der ersten Fehlermeldung eine Datei, dann nach nach der zweiten auch die anderen beiden.

Es kommen nach wie vor zwei Fehlermeldungen.
Liegt es daran, dass ich nicht der Adminsitrator des Computers bin und immer auf "als Administrator ausführen" klicken muss?

Wenn ich eine neue KI erstelle, was muss ich dann bei Speicherort eingeben?
So, ich hab es gefixt. Der XML-Lader hat die Kommentare als Dateien genommen...
Hab nebenbei auch gleich noch einen Fehler im Compiler gefunden... ;)

Ich schick dir die neue Version per E-Mail.

@Speicherort:

Einfach irgendein Ordner, wo das Projekt gespeichert werden soll. Du hast es ja schon richtig in "C:\Program Files\Microsoft Games\Age of Empires II\AI\KI1" gespeichert.

Oder meinst du die "Erstellen"-Funktion? Diese übersetzt die KI ins englische und speichert diese dann funktionsfähig ab. Der Erstellordner ist bei dir schon ganz richtig "C:\Program Files\Microsoft Games\Age of Empires II\AI\", da werden nämlich alle KIs abgelegt.

Du musst also nur auf "Erstellen" drücken, das Spiel starten und die KI unter "Einzelspieler" bei den betreffenden Computerspieler auswählen.
Noch ein Fehler:

Nach dem Übersetzen ins Englische fehlt irgendwo hier eine Klammer:

;(load "BlauerHund_konzept")
(load "BlauerHund_konstanten")
(load-random
"BlauerHund_Fast Castle"
30 "BlauerHund_Imp-Boom"
)


(defrule
(true)
=>
(chat-to-all "ICH BIN DIE KI 'BLAUERHUND'!")
(disable-self)
)

Vermutlich fehlt eine nach load-random oder am Ende der Regel

Ist anscheinend nur bei load-random so... Denn sonst geht es:

(defrule
(true)
=>
(chat-local-to-self "STRATEGIE: FAST CASTLE")
(disable-self)
)
(defrule
(current-age == castle-age)
(unit-type-count knight-line > 3)
=>
(attack-now)
)
(defrule
(current-age == castle-age)
(can-train knight-line)
(unit-type-count knight-line < 7)
=>
(train knight-line)
)
(defrule
(current-age == castle-age)
(can-train cavalry-archer-line)
(unit-type-count cavalry-archer-line < 5)
=>
(train cavalry-archer-line)
)

Edit: Hab irgendwie daran rumgespielt und den Lade-Zufall Befehl neugeschrieben: Jetzt funktioniert es, nachdem ich das mit dieser Standard-Datei geändert hab und Fast Castle zur Standard-Datei gemacht habe...

Edit2: Obwohl es noch ein paar Fehlermeldungen im englischen Editor anzeigt, funktioniert es jetzt endlich!

Ich muss sagen, ich bin begeistert! Durch das neue System ist es zwar anfangs etwas mühsam, eine Regel zu erstellen, aber nachdem man die Tastenkürzel herausgefunden hat, um von "Neue Bedingung", auf "Neue Aktion" zu springen (4 mal auf "Tab" drücken, oder zum Bestätigen "Enter" drücken, geht es dreimal so schnell und ist Kinderleicht!

Vielleicht könnte man mal ein KI Turnier machen, wo alle ihre KI's an den Organisator senden, der lässt die KI's gegeneinander antreten und speichert das Rec zum Beweis. Die KIs müssten dann aber auf Cheats geprüft werden. Wäre sicher mal lustig!

Mfg BlauerHund

PS: Wie kommst du auf solch geniale Ideen, Janworks?

PPS: Ob ernst gemeint oder nicht: Ich habe die Idee mal im Contest Bereich gepostet... xD
Obwohl es noch ein paar Fehlermeldungen im englischen Editor anzeigt
Pah, Billigding! Wenn es im Spiel funktioniert... :D

@PS:

Hab schon zwei Versionen geschrieben, die für die englische KI gedacht waren, die fanden eine geringe Resonanz. Kurz vor Fertigstellung der zweiten Version kam mir die Idee, das ganze zu übersetzen und so zu vereinfachen. Hat sich scheinbar gelohnt. :)

@Fehlende Klammer:

Komisch, da ist eigentlich alles richtig...kann nur sein, dass die Reihenfolge der Dateien im load-random-Befehl nicht ganz passt. Untersuche ich gleich mal...

@Kürzel & Geschwindigkeit:

Hab auch ein paar Stunden darin investiert, die Kürzel festzulegen und abzustimmen... ;)

@Turnier:

Hey, das wär doch mal was für unsren Contest-Thread... ;)
Noch ein KLEINER Fehler. Bei "Baue-Tor-mit-gespeicherten-Ressourcen", heisst es Ressorcen... Weiss nicht ob das sehr wichtig ist, aber doch...
Ich blick irgendwie nicht durch... :eek:
Was sind gespeicherte Ressourcen? :confused:
Das sind die Ressourcen, die er im Szenario bekommt, glaub ich. Sonst baut er nix mehr. Mach einfach beides, wenn du willst. Also: "Baue-Tor" und "Baue-Tor-mit-gespeicherten-Ressourcen".

Ganz nach dem Motto: Doppelt hält besser!

Edit: So, gehe jetzt offline. Wenn du noch fragen hast schreib eine Mail an mich, oder poste sie hier. Vielleicht beantworte ich sie dann später!
Nein, das hat nichts mit Szenarien zu tun. Gespeicherte Ressourcen sind eine Art "Notvorrat" des Computerspielers. Ein bestimmter Anteil der gesammelten Rohstoffe eines Typs (Holz, Gold, Nahrung, Steine) kann mithilfe der Aktion "(set-escrow-percentage <ressource> <value> )" bzw. "Setze-Prozentzahl-für-gespeicherte-Ressourcen <rohstoff> <zahl>" in diesen Notvorrat verschoben werden.

Alle Rohstoffe in diesem Notvorrat können von der KI nicht mehr zum Bauen, Erschaffen etc. verwendet werden, außer du gibst hinter dem Befehl "-with-escrow" bzw. "-mit-gespeicherten-Ressourcen" an.

Die Möglichkeit, Ressourcen zu "sperren" (also in den Notvorrat zu verschieben), kann z.B. auch dazu verwendet werden, dass die KI immer noch genug Rohstoffe hat, um selbst bei vernichtenden Angriffen der gegnerischen Seite wieder "neu anfangen zu können".

Um einen Rohstoff wieder freizugeben, kannst du "(release-escrow <ressource> )" bzw. "Gib-gespeicherte-Ressourcen-frei <rohstoff>" verwenden.

@Tippfehler in der Definitionen.xml:

Eine Aktion "Baue-Tor-mit-gespeicherten-Ressourcen" gibt es gar nicht...meinst du vielleicht die Bedingung "Kann-Tor-mit-gespeicherten-Ressourcen-bauen"? Da war nämlich auch der Tippfehler.

Ich schick dir nochmal eine neue Version...du kannst sie auch hier herunterladen.
144 Beiträge