Archivierte Modifikationen > [SuM 1½] Ankündigungen und Diskussion

[SuM 1½] Unterstützung für KI-Erstellung gesucht

(1/7) > >>

Rimli:
Liebe SuM-Modding-Gemeinde!

Leider ist es so, dass ich bei der Mod arge Probleme mit der KI habe.

Die Wiedereinführung der Basen hat die komplette SuM2 KI leider auf einen Schlag lahm gelegt, das heißt die KI baut weder Gebäude, noch Einheiten, noch nutzt sie Spells oder bewegt ihre Startunits.

Deswegen suche ich Modder, die sich mit der SuM-KI, vor allem der SuM1-KI auskennen und mir da etwas mit Rat zur Seite stehen können.

Wenn ihr Erfahrung mit der KI habt, wär es toll, wenn ihr euch hier melden könntet. Jeder Beitrag, da einen Einstieg zu finden, würde mich freuen. :) Gerne nehme ich auch Hinweise auf irgendwelche SuM1-KI Tutorials entgegen, die sind leider offensichtlich spärlich gesäht, ich habe nichts dazu finden können. Vielleicht habt ihr noch irgendwelche Tutorials auf der Festplatte oder einen Link in die Weiten des Internets auf Lager?


Wär' klasse, wenn ihr mich irgendwie unterstützen könntet, die KI irgendwie zum laufen zu bringen. :)
Eine Mod ganz ohne KI ist leider eben nochmal was anderes als eine Mod mit unspektakulärer KI auf EA-Niveau oder KI die nur die EA-Völker unterstützt.

Gruß
Rimli

ElvenRider:
Hallo Rimli

Ich habe mir gestern die KI von SUMII und die relevanten Dateien angeschaut. Eine zentrale Rolle spielen wohl die Einträge in der init\default\skirmishaidata.ini, da hier Werte für die neuen Fraktionen hinterlegt sind.
Ähnlich wie bei SUMI werden alle Begegnungen wie "Gefechte" angesehen. Allerdings scheinen bei den einzelnen Karten mehr Skripte eingesetzt worden zu sein.
Die Bedeutung der "faction- and control-maps" in der libraries.big für SUMII ist mir nicht klar geworden.

Also hier ein paar Anregungen, um Licht ins Dunkel zu werfen:
1. Prüfe, alle Kampagnen-Karten inwieweit Skripte die KI steuern
   (Wordbuilder -> open map -> Dump map to file) Dananch hast du alle Skripte als Textdatei.

2. Nimm eine Standard-Karte und versuche den Ablauf der dortigen
    Skripte zu verstehen; d.h. Ergeignisse und Variablen

3. Prüfe, welche "maps" aus der libraries.big durchlaufen werden,
    indem du ein Skript mit Textanzeige einfügst. Geht leider nicht anders (:-((
    Welche Rolle spielt die "ai_men of the west.map" ???

Viele Skripte beziehen sich auf echte "Waypoints" (z.b. Player_Start_1 oder so) oder generische Referenzen "AI-BASE" oder "AI_CURRENT_CONSTRUCTION_ SITE" an denen sie ein Gebäude, eine Einheit oder ein Team erzeugen.
Leider ist dieses Vorgehen recht aufwendig, jedoch es lohnt sich auf jeden Fall. Neue Skripte zu schreiben, erfordert etwas Übung und Geduld.
Falls du Fragen hast, kannst du mich direkt ansprechen, weil ich für meine AMS-Mod VIELE Skripte erzeugt hatte. Glücklicherweise hat EA nicht ihre gesamte KI "geschlachtet". 

Gutes Gelingen und viel Erfolg,
Grüße ElvenRider

Reshef:
Die ai_men of the west.map ist glaube ich die einzigste map die für die ki genutzt wird, sicher bin ich mir aber nicht!
Dort wird geregelt wann welche fähigkeit im spellbook gekauft wird, sonst von EA-mässig nichts!
Man sollte aber auch andere scripts machen können (ich versuche gerade für edain, es hinzukriegen das sie türme bemannt und den ring benutzt :) )
Die multiplayer_human.map ist für den menschlichen spieler, ich hatte den grandiosen einfall dort die scripts für die rj cam einzubauen, somit stehen diese auf jeder map zur verfügung, und es muss nichtmehr jede bearbeiteitet werden!  ;)

Gnomi:

--- Zitat ---Die multiplayer_human.map ist für den menschlichen spieler, ich hatte den grandiosen einfall dort die scripts für die rj cam einzubauen, somit stehen diese auf jeder map zur verfügung, und es muss nichtmehr jede bearbeiteitet werden! 
--- Ende Zitat ---
Was ich aber intern schon längst abgelehnt habe, weil der EInfall nicht so grandios ist.
Weil viele Scripts sind von Map zu viel leicht unterschiedlich, auch wenn du es ingame nicht merkst und ein paar Scripts muss ich in jeder Map einfügen, die gehen nicht darüber, da sie sich auf mapeigene areas beziehen.
=> es wird nicht so gemacht.

(Tschuldigung Rimli für das Offtopic, aber das musste ich loswerden.)

Rimli:
Hallo!

ElvenRider, vielen Dank für deine Bemühungen. Echt nett von dir, dass du dir extra die INIs etc. angeguckt hast. :)

Skripte hab ich bisher in den SuM2 Maps noch nicht entdeckt, werd mal nachgucken. Das mit dem Dump Map to file hört sich nach ner guten Sache an, das manuelle rumklicken in den Skripts ist doch sehr unübersichtlich. :)

Skripts mit Textanzeige? Ich habe glaub mal irgendwo von einem Verknüpfungs-Suffix in der Verknüpfung gelesen, das die Game.dat Skripts während dem Spiel anzeigen lässt. Weiß da jmd von euch etwas drüber? Werd nochmal rumsuchen ...

ElvenRider, wie ist das genau mit der AI_CURRENT_CONSTUCTION_S ITE? Woher weiß die KI, was das ist? Ich hab einfach mal testweise die playeraitypes.ini von SUM1 eingefügt sowie die Libraries von SUM1 zusätzlich in die Mod.big gepackt.
Die KI baut jetzt Helden in der Zitadelle und greift mit diesen auch an (Mordor nutzt auch das Auge, und hab sogar einmal gesehen, wie die Mordor KI ein Sägewerk eingenommen hat), aber die KI baut nichts in der Base und bewegt auch keine Einheiten bis sie 2-3 Helden ausgeblidet hat.
Die SuM1-Bauskripts scheinen nicht zu funktionieren. Hab mir die Skripts angesehen, soweit ich das verstanden habe müssten sie eigentlich noch in Ordnung sein, d.h. die Objektnamen eig. aller Gebäude stimmen noch, daran kann's also nicht liegen. Vllt weiß die SuM2 KI nicht, was eine "AI_CURRENT_CONSTRUCTION_ SITE" ist? Diese ist stets in den Skripts angegeben.

Wichtige Frage an SuM2ler:
Was braucht die KI in SuM2 dass sie "anläuft"? Hab gemerkt, dass sie nur was macht, wenn die KI eine Festung hat. Wieso ist das so? Welche Dinge sind so besonders an der Festung, dass sie die KI "aktivieren"? Könnt ich so nicht auch die KI aktivieren? Den Zitadellen der SuM1 Basen einfach die INI der Fortress zu geben reicht leider NICHT aus. :( Es muss irgendwas anderes sein ...
Das wäre hilfreich zu wissen, wenn ich weiter mit der SuM2 KI experimentieren will. Im Moment tut sie nur etwas, wenn sie als Startgebäude die Festung erhält. Sie tappt dann jedoch auch nur sinnlos mit den Startunits rum, benutzt bestenfalls noch das Auge und baut Helden in der Festung, die sie in der Mod eigentlich gar nicht haben soll. Insgesamt also noch ein sehr spärlicher Ansatz. -.-

@Reshef
Danke für die Erklärungen. Die ai_men of the west.map ist zumindest die einzige, die in den SuM2-Libraries angegeben wird. Und in Sûls SuM2 KI Tutorial heißt es auch, dass standardmäßig in SuM2 nur noch Spells durch Skripts gesteuert werden.


EDIT: Suffix für die KI gefunden (Suls KI Tutorial auf 3rdage):

--- Zitat ---With SkirmishAI_1's scripts you could always see what was going on ingame by starting it using '-scriptdebug2', an awesomely useful (and needed) tool!
--- Ende Zitat ---

EDIT2: Spiel mit -scriptdebug2 gestartet.
Sehr interessanter Unterschied zwischen SuM1 und SuM2 bei den Variablen:

SuM1:

--- Zitat ---Player_1/l_Econ - Current Construction Site Buildable = 1
--- Ende Zitat ---
SuM2:

--- Zitat ---Player_1/l_Econ - Current Construction Site Buildable = 0
--- Ende Zitat ---

Das könnte natürlich entscheidend sein. Werd mal forschen, wieso das in SuM2 so ist.

EDIT3: @ElvenRider
In den SuM2 maps befinden sich nur Scripts bezüglich Gollum, wie er über die Map zu tappen hat um den Spielern das Erreichen von Ringhelden schwerer zu machen. Da ist nichts wichtiges über das Bausystem ...

EDIT4: Mit ElvenRiders Methode (geht echt gut :) ) die AI_Mordor.map-Library aus SuM1 durchsucht, die aktuell auch in meiner Mod verwendet wird.
Erste interessante Details:

--- Code: ---[ns na nd] [E N H]e_Update Current Construction Site:
//:This set of scripts will check if the econ urgency has crossed the expansion threshold.  If so, then it will check if the current construction site can no longer build before trying to set a new expansion as the current site.  An arbitrary site will be chosen from the ones that are available to be built at.:
*** IF ***
    True.
*** THEN ***
  Run Subroutine 'ee_Check Current Construction Site'.
  Run Subroutine 'ee_Set Current Construction Site'.

[ns A nd] [E N H]ee_Check Current Construction Site:
*** IF ***
     Can player Player '<This Player>' build at base Unit 'AI_CURRENT_CONSTRUCTION_SITE'
*** THEN ***
  Set Flag named 'l_Econ - Current Construction Site Buildable' to TRUE
*** ELSE ***
  Set Flag named 'l_Econ - Current Construction Site Buildable' to FALSE
--- Ende Code ---

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln