@mavmav 2. Teil
Du hast von Zielen für den Computerspieler gesprochen. Ich habe tatsächlich konzeptionell Ziele bei der Programmierung im Kopf:
1) mehr Soldaten als der Gegner produzieren
2) Level3 für Bogenschützen erreichen.
3) Kampfkraft erhöhen
Das erste Ziel ist dabei das wichtigste. Andererseits: wenn der Gegner mich mit 100 Soldaten angreift und ich habe zwar Level3, aber keinen Soldaten, bin ich tot. Oder wenn der Gegner mich mit 100 Soldaten angreift und ich habe zwar 100% kk aber keinen Soldaten, bin ich ebenfalls tot.
Daher strebt die KI nach einer kontinuierlich steigenden Waffenproduktion. Für Waffen benötige ich aber Nahrung, sonst bringen mir auch 18 Kohleminen nichts.
Jedenfalls baut die KI momentan folgendes:
1) 8 Holzfäller, 4 Förster, 3 Sägewerke, 5 Steinmetze
2a) 4 Weingute
3a) 2 Farmen
2b) 4 Tempel
3b) 1 Scheinefarm, 1 Mühle, 3 Bäcker, 1 Fleischer, 2 Wasserwerk
4a) 1 Eisenschmelze, 1 Waffenschmiede, Minen, 1 Kaserne
2c) 1 großen Tempel
4b) 5 Waffenschmieden (+Schmezlen und Minen)
5) Gold
6) ... weiter mit Nahrung / Waffen
Anmerkungen:
- Es wird von einem 0pt Spiel ausgegangen
- Die Werkzeugschmiede wird genau dann gebaut, wenn das Werkzeug ausgeht
zu 1) Warum 8 Holzis: Das sind Erfahrungswerte, mit 6en geht es echt langsam und mit 21 benötigt man zusätzliche Planierer und Bauarbeiter und viel Land, damit man überhaupt so bauen kann. Ist also ein Kompromiss
zu 2) Ich benötige Level3, weil ich vorher nicht rekrutieren möchte. Je länger ich auf auf Level3 warten muss, desto länger bin ich schutzlos Angriffen ausgeliefert. In meiner aktiven Siedler3 Zeit habe ich Messungen durchgeführt (etwas gerundet, zur Veranschaulichung): Ein produzierender Weingut benötigt 60 Minuten, bis er alleine Level3 erreicht hat. Wenn ich die Baustelle eines Weingutes setze, vergehen 10 Minuten, bis er gebaut ist und bis der Wein erntereif ist, ab jetzt erntet der Winzer kontinuierlich abwechselnd mit dem anpflanzen.
In der Minute, wo ich den Winzer setze entscheide ich also, wann ich später Level3 haben werde:
1 Weingut = 10 Min Bau/Wachsphase + 60 Min Produktionszeit = 70 Min
2 Weingute = 10 Min Bau/Wachsphase + 30 Min Produktionszeit = 40 Min
3 Weingute = 10 Min Bau/Wachsphase + 20 Min Produktionszeit = 30 Min
4 Weingute = 10 Min Bau/Wachsphase + 15 Min Produktionszeit = 25 Min
5 Weingute = 10 Min Bau/Wachsphase + 12 Min Produktionszeit = 22 Min
Habe ich in der 15. Spielminute alle Holzes fertig und platziere 4 Winzer, habe ich in der 40 Minute Level3. Das reichte für die meisten 0pt Spiele aus.
Bau ich stattdessen 5 Winzer, bin ich nur 3 Minuten schneller ... das ist meistens nicht so entscheidend gewesen, da investierte ich lieber das Baumaterial in schneller und damit später mehr Waffen.
Du hattest vorgeschlagen, von einem Zielpunkt aus zurückzurechnen.
Ich gehe bisher andersherum ran, indem ich mich am Schachspielcomputer orientiere:
Bei einem Schachspiel gibt es n mögliche Spielzüge. Auf die n möglichen Spielzüge folgen m Gegnerische Reaktionen, darauf wieder o mögliche eigene Spielzüge etc.
Wenn ein Schachcomputer das alles berechnet, muss er n * m * o * ... rechnen, was eine Laufzeitkomplexität von O(n hoch n) ist. In meinem weiter oben gerosteten Tagebucheintrag habe ich dargestellt, dass das schnell nicht mehr weitergerechnet werden kann, weil es 1 Million Jahre dauern würde, bis der Computer seine Entscheidung getroffen hat.
Beim Schach bewertet der Computer also die Spielsituation und setzt Zuge, die die Situation am meisten verbessern. Er rechnet aber nicht das Spiel zu Ende.
Bei der KI für das Siedler3 Remake gehe ich genauso vor. Ich versuche die Spielsituation für den Computerspieler zu verbessern. Daher entschied ich mich, direkt nach den 8 Holzfällern die 4 Winzer zu bauen. Die kleinen Tempel müssen nicht sofort folgen, dazwischen können die Farmen errichtet werden, damit die auch schonmal das Getreide wachsen lassen können.
Der große Tempel folgt sofort auf die Kaserne. Wie oben geschrieben: Soldaten sind wichtiger als Level3, aber der große Tempel nach der Kaserne liefert uns fast auf einen Schlag Level2. In Verbindung mit der angelaufenen Weinproduktion kann mal also sofort Level2 Verteidigungslanzen produzieren.
Das Gold kommt dann erst ziemlich spät. Wichtig ist die Verteidigung und die Waffenproduktion, Die Kampfkraft bekommt jeder Soldat auch später noch dazu.
Deinen Hinweis, die Arbeitsgebiete regelmäßig zu wechseln habe ich auf meine ToDo Liste gesetzt.
Die Trägerlaufwege habe ich insofern berücksichtigt, dass es für viele Gebäude eine "In-der-Nähe-von" Platzierungsstrategie gibt. Daher wird der Bäcker in der Nähe der Mühlen gebaut. Das ist vielleicht noch weiter verfeinerbar, dass ich den Bäcker nicht nur neben der Mühle, sondern auch in Richtung der Kohlebergwerke baue.
Bezüglich der Verstärkung der Grenzgebiete habe ich schon implementiert, dass Türme im Hinterland abgerissen werden. Es bleiben nur Türme stehen, die eine Außengrenze beschützen. Das ist mein erster Schritt in die Richtung Baumaterialrückgewinnung und Soldatenrückgewinnung gewesen. Hier ist noch mehr optimierter.
Deine Fragen:
- Ja, die KI kann auch ohne Bäume sich weiterentwickeln, weil sie Förster baut.
- Ja, die KI kennt die ganze Karte. Bei den Set-Maps kennt auch jeder Spieler die Karte
Ich denke, dass dieser Cheat der KI hilft, für den menschlichen Spieler überhaupt ein würdiger Gegner zu sein, aber falls sich herausstellen sollte, dass die KI total krass ist (wovon ich heute nicht ausgehe), kann auch implementiert werden, dass die KI erst Rohstoffe und Landschaften kennt, wenn sie Soldaten hingeschickt hat.
- Die Produktionsraten und auch die Baukosten scheinen sich derzeit vom Originalspiel zu unterschieden. Das ist aber nur ein Bauchgefühl, ich habe noch nicht genau nachgeschaut. Ob das noch angeglichen wird, weiß ich nicht.
- Der Kohlbug ist sicher behoben
- Grundsätzlich kann die KI Pioniere kontrollieren. Vielleicht hast du ja ein Konzept im Kopf, wie man das programmatisch realisieren kann?
- Derzeit setze ich Warenhäuser als Goldlager ein, weil das einfacher zu programmieren war. (1. Schritt) Dabei habe ich festgestellt, dass das Remake noch gar keine Waren einlagert (Ist noch nicht programmiert) Daher warte ich mit dem Optimieren noch ein bisschen.
- Die Minen setze ich derzeit dort, wo am meisten Rohstoffvorkommen ist, ich achte noch nicht darauf, die maximale Auslastung zu erreichen. Das ist auch ein Optimierungsschritt, den ich mir auf die TODO Liste gesetzt habe.
Hinweis
Nach Klick auf "OK" wird eine Verbindung zu Facebook oder twitter hergestellt. Dadurch werden ggfs. Daten an diese Plattformen übermittelt.