Latest Posts

Topic: genetische KI gesucht

the-x
Avatar
Topic Opener
Joined: 2019-01-19, 12:23
Posts: 967
Ranking
One Elder of Players
Posted at: 2023-08-08, 00:38

Ich suche eine starke KI, um ein paar Testspiele gegen sie zu machen (und ggf. zu verbessern mit den wenigen Programmierskills die ich habe) - gibt es Leute, die mit KI's erfolgreich rumexperimentiert haben?


Top Quote
hessenfarmer
Avatar
Joined: 2014-12-11, 22:16
Posts: 2674
Ranking
One Elder of Players
Location: Bavaria
Posted at: 2023-08-08, 08:06

Wo soll eine KI denn herkommen, die Widelands spielen kann, wenn nicht von uns selbst. Und wir haben nur eine KI.


Top Quote
the-x
Avatar
Topic Opener
Joined: 2019-01-19, 12:23
Posts: 967
Ranking
One Elder of Players
Posted at: 2023-08-08, 10:00

Ticke hat mir von ausgezeichneten KI's erzählt, finde es super spannend was genetische KI's hier alles können und dass man nur verschieden trainierte KIs direkt in den Ordner kopieren muss. Finde die Idee einfach genial. Hast du deine beste KI immer direkt im Spiel in der neuesten Version dabei, oder gibt es verschieden gut trainierte Formen dieser genetischen KI die man erst herunterladen muss?


Top Quote
hessenfarmer
Avatar
Joined: 2014-12-11, 22:16
Posts: 2674
Ranking
One Elder of Players
Location: Bavaria
Posted at: 2023-08-08, 10:41

Es gibt keine verschieden trainierten KI's, von denen ich wüsste. Wenn jemand selbst ein KI Training gemacht hätte, weiss ich davon nichts. Von daher halte ich die Existenz eines Sets das besser als die einzige trainierte offizielle Version ist, für ziemlich ausgeschlossen.

Außerdem wird in jeder Version ja auch was am Code geändert (Diplomatie, Seefahrt), so daß hier auch wieder ein Retraining notwendig wird. Für v1.2 weiss ich noch nichtmal wer das machen wird.


Top Quote
TickeHD
Avatar
Joined: 2018-08-05, 21:21
Posts: 63
OS: Windows 11 64 Bit
Version: Widelands 1.1
Ranking
Likes to be here
Location: Thuringia, Germany
Posted at: 2023-08-08, 14:02

Das Script ist eh erst vor ein paar Tagen fertig geworden und angewendet habe ich es heute zum ersten Mal. Ich gebe euch bescheid, sobald ich die KI so weit trainiert habe, dass sie wirklich zu etwas zu stande ist. Heute Nacht habe ich mein selbstprogrammiertes Script für das KI-Training zwar laufen lassen, habe aber versehentlich beider Rundendauer 9000 Sekunden statt 900 eingegeben, so wurden keine 48 Runden über Nacht gespielt, sondern nur 4. Das war ein Fehler, verschwendete Zeit und Strom, man lernt aus seinen Fehlern. In den nächsten Tagen werde ich das nochmal machen, ich schätze, dass ich etwa 1500 Runden durchlaufen lassen muss, um eine anständige KI rauszubekommen. Dazu reicht es nicht, einfach zu warten bis die beste KI da ist, man muss die KI auch gneau analysieren ob sie sich wirklich gut verhält, man darf also nicht immer die KI nehmen die Gewinnt, sonst wird die KI irgendwann nicht mehr besser. Ich teste außerdem verschiedene Trainingsstrategien um herauszufinden, wie man ein Retraining am effektivsten machen kann. Ich würde das Retraining gerne übernehmen. Falls das jemand anders machen möchte, stelle ich meinen PC gerne dafür bereit (24 Kern CPU) Bis jetzt habe ich also noch keine KI trainiert, die besser ist als die des Spiels Grüße

Edited: 2023-08-08, 14:15

Top Quote
hessenfarmer
Avatar
Joined: 2014-12-11, 22:16
Posts: 2674
Ranking
One Elder of Players
Location: Bavaria
Posted at: 2023-08-08, 15:10

wenn wir mit dem Code stabil sind, würde ich auf dein Angebot zurückkommen. 900 Sekunden pro Runde erscheint mir aber doch sehr kurz das sind ja gerade mal 15 Minuten. oder ist das real time?
Aus meiner Sicht sollte eine Runde je nacvh Kartengröße mindestens 2 - 6 Stunden Spielzeit dauern.

Vielleicht könntest du dein Setup ( wenn es stabil läuft) mal mit uns teilen, damit wir wissen, wie man das evtl. auch noch auf mehr Maschinen nutzen kann.

Wenn wir genügend Kapazität finden, könnten wir tatsächlich ggf. auch Stammspeztifisch trainieren, falls das was bringt. Wenn du das mit dem bestehenden master branch probieren möchtest, wäre ich sehr gespannt auf das Ergebnis.
Auf jeden Fall sollte man auf möglichst unterschiedlichen Karten trainieren. Wenn das mit stammspezifisch nicht funktioniert dann auc mit vielen unterschiedlichen Stämmen (random Einstellung)


Top Quote
Teayo
Avatar
Joined: 2015-03-09, 21:11
Posts: 152
OS: Windows 11 Home 64-bit
Version: 1.2 from Juni (06) 2023
Ranking
At home in WL-forums
Location: Deutschland
Posted at: 2023-08-08, 17:32

TickeHD nutzt ein Phyton Skript, das die menschlichen Maus und Tastatur Eingaben emuliert und mittels ständiger Bildschirmfotos das Spiel abfragt.
Die 15 Minuten die er eine Runde laufen lässt sind mit auto_speed (Automatischer Spielgeschwindigkeit).
Auch wenn durch TickeHD's Methode sich die KI trainieren lässt, besser wäre eine Lösung, wo ein Programm, ein Skript, eine Batch-Datei,
direkt auf Widelands einwirkt, und direkt Befehle ausführt, statt die menschlichen Eingaben zu emulieren.

Ich selber verstehe die KI von Widelands nicht. Ich habe zwar ein sehr grobes Bild zum Aufbau der KI, mittels der WAI-Dateien,
aber ich kann nicht beurteilen, inwiefern sich die KI durch Training verbessern lässt.
https://www.widelands.org/forum/topic/5813/?page=1#post-40575
Im gleichen Thread, schrieb hessenfarmer sinngemäß wiedergegeben, dass die
KI kein geografisches Verständnis der Karte hat und noch nicht einmal genau über den Bauplatz bescheid weiß.
Die KI ist daher doch eher eine simple genetische KI und wenn die KI noch nicht einmal wenigstens ein Grundverständnis der Spielkarte hat,
denke ich wird es schwer weitere Verbesserungen bei der KI zu erzielen. Beispielsweise die Effektive Nutzung von Bauplätzen.
Dazu kommt, das neue Funktionen wie die Seefahrt, also das erkunden der Karte durch die KI verbessern, sowie die Seekriegsführung, mit der KI durch trainings neu abgestimmt werden muss.

Ich denke vielen ist klar das man die KI verbessern kann, die Frage ist nur, in dem strukturellen Rahmen von der KI, inwiefern sich da alle Probleme lösen lassen.
Manches ist strukturell bedingt, siehe verlinkten Thread, und lässt sich nicht durch KI training beheben.

Edited: 2023-08-08, 17:33

Das Imperium schlägt zurück ! TY

Top Quote
TickeHD
Avatar
Joined: 2018-08-05, 21:21
Posts: 63
OS: Windows 11 64 Bit
Version: Widelands 1.1
Ranking
Likes to be here
Location: Thuringia, Germany
Posted at: 2023-08-08, 17:35

Ich bin auch der Ansicht, dass ein Script das direkt auf das Spiel einwirkt, die bessere Lösung ist. Wenn das jemand programmieren möchte, fände ich das echt nicht schlecht. 15 Minuten waren realtime, das ergibt bei Auto Speed bei mir dann etwa 3 Stunden Spielzeit auf der getesteten Karte. Ich mache den Test sowohl auf kleinen Karten mit 2 Spielern, als auch mit großen Karten mit 8 Spielern, wo eine Runde bis zu 24 Stunden ingame Zeit dauern kann. Ich lege die Zeit immer so aus, dass jede Runde möglichst immer ein Gegner gewinnt. Es wäre natürlich praktisch immer die neueste Version zu haben. Gerade versuche ich mir den aktuellsten Stand von GitHub (Master) zu kompilieren, habe das Spiel aber bis jetzt noch nicht zum laufen gebracht. Hab es jetzt auf Windows und Linux getestet. Unter Windows kann man ja keine .sh Dateien ausführen und unter Linux findet er den Ordner nicht, obwohl ich im Ordner bin. Hab mir jetzt CMake heruntergeladen und hoffe, dass es damit klappt CMake funktioniert nicht, jetzt MinGW, hängt auch, regiert nicht auf Eingaben. Gibt es auch einen anständigen Compiler, der auch funktioniert? Damit ich endlich mal die neueste Version habe, ich weiß ja gar nicht von den ganzen 1.2 Versionen die mir geschickt wurden welche die neueste ist.

Gerade habe ich nochmal die Seps auf dieser Seite versucht: https://www.widelands.org/wiki/BuildingWidelandsUnderWindowsNew/ Hier habe ich alle Schritte Schritt für Schritt bearbeitet (Erst CMake installiert, dann ausgeführt) Wobei er den Command cmake nicht findet (Es ist aber installiert)

Edit: Es wäre praktisch, wenn immer wenn jemand das Spiel kompiliert hat, die Datei mir sendet, ich bekomme es irgendwie nicht hin.

Edited: 2023-08-08, 18:57

Top Quote
TickeHD
Avatar
Joined: 2018-08-05, 21:21
Posts: 63
OS: Windows 11 64 Bit
Version: Widelands 1.1
Ranking
Likes to be here
Location: Thuringia, Germany
Posted at: 2023-08-08, 18:59

Die Seite muss mal überarbeitet werden. Ich habe mir jetzt einen haufen Zeug auf dem PC installiert indem ich die Befehle einzeln eingegeben habe die natürlich meinen PC vollgemüllt haben, ohne dass jetzt irgendwas funktioniert. Wir brauchen eine Lösung dafür, dass jeder eine andere Version hat und keiner Weiß welche der Versionen die neueste ist. Das führt bei uns auch zu dauernden Abstürzen, wenn es irgendwie eine Liste gäbe wo die einzelnen Versionen aufgelistet sind und deren Erscheinungsdatum, das würde schon sehr viel bringen. Jetzt habe ich mir die Version hier auf GitHub heruntergeladen, da steht dass die nur 2 Stunden alt ist. https://github.com/widelands/widelands/releases/download/latest/Widelands-daily-msvc-Release-x64.exe Da sind so viele Versionen da weiß man gar nicht was man herunterladen soll. Also werde ich mit dieser Version erstmal mit dem KI-training anfangen.

Edited: 2023-08-08, 20:05

Attachment:
Screenshot 2023-08-08 195734.png

Top Quote
hessenfarmer
Avatar
Joined: 2014-12-11, 22:16
Posts: 2674
Ranking
One Elder of Players
Location: Bavaria
Posted at: 2023-08-08, 20:38

wenn ich mir den screenshot anschaue hast du eben nicht alle Schritte der MSYS2 Methode sauber befolgt.

es ist essentiell, dass man MSYS in der richtigen Konfiguration startet. So wie der Screenshot aussieht wurde die msys2.exe gestartet. In dieser ist jedoch keine Toolchain installiert und somit keine Kompilierungswerkzeuge. Diese Shell starte ich nur für die Systemupdates von MSYS2. Für die Kompilierung einer 64bit Version muss zwingend die mingw64.exe gestartet werden.

Nach meinem besten Wissen und Gewissen ist die Anleitung auf der Seite weiterhin richtig und aktuell.

Entwicklungsversionen sind genau das: Versionen für Entwickler, zum Testen, Debuggen, Reviewen, etc. Auf Github steht bei uns immer der letzte erfolgreiche Build zur Verfügung, (das wird auch in unser daily-ppa auf launchpad gemappt.)
Da dieser aber für alle Betriebsysteme bereitsteht und auch aus unterschiedlichen Compilern (Du hast dir z:B. die Version runtergeladen die mit Microsoft Visual C kompiliert wurde), und sowohl als Release und Debug Version sind das halt paar Dateien. Die sind aber in der Regel für die Entwicklung gedacht.
Wenn du nun auch entwickeln willst (Training der KI zähle ich dazu), dann wäre es schon wichtig, dass du dich damit vertraut machst wie GIT funktioniert.
für den start der Spiele bietet es sich an sich mit den Konsolen Startoptionen von Widelands vertraut zu machen. Mit den Optionen kann man ein Spiel ganz ohne die GUI starten.
Wenn du spezifische Hilfe an einer Stelle brauchst helfen wir dir gerne. Mit (unberechtigter) Generalkritik kann ich persönlich recht wenig anfangen.

Wer einfach nur spielen will sollte die letzte Release Version nutzen. Da ist die Frage der Kompatibilität auch schnell geklärt.


Top Quote