Mein Konzept zur "lernenden" KI kennst du ja ungefähr. Das ganze basiert darauf, dass z.B. in Warcraft häufig Replays von Gegnern studiert werden, um sie besser einschätzen zu können. Allerdings schreib ichs jetzt noch mal gesammelt auf.

Eine KI kann theoretisch "lernen", indem sie Aktionen protokolliert und auswertet. Jede Handlung sowohl des Spielers als auch der KI wird in zusammenhängende Blöcke gruppiert und in einer Datei abgespeichert, wo sie wieder abgerufen werden kann.

So ein Block besteht aus 4 Abschnitten:
1. Ausgangssituation
2. Aktionen
3. Endsituation
4. Auswertung

Die Blöcke sehen folgendermaßen aus:

1. Ausgangssituation
Hier wird festgehalten, wie das Spielfeld zu Beginn aussieht. Etwa wie ein Savegame, nur nicht so präzise. Also so Sachen wie Anzahl der Einheiten von einem bestimmten Typ, Anzahl der Ressourcen, Anzahl der Gebäude und das für alle beteiligten Spieler. Natürlich werden nur Infos festgehalten, die für den Block wirklich relevant sind. Wenn ein Block nur Aktionen gegen einen bestimmten Spieler enthält, ist es meistens Unsinn, Infos über die restlichen Spieler zu speichern. Oder etwa, wenn nur Truppenbewegungen im Aktionsteil stehen. Dann fällt natürlich fast alles weg, was die (eigene) Wirtschaft angeht.

2. Aktionen
Ähnlich wie in einem Replay werden alle Aktionen der beteiligten Spieler aufgezeichnet. Allerdings auch hier wieder nur grob. Also nicht "Bewege Einheit X zu Punkt (122|61)", sondern "Bewege Truppenverband aus n Einheiten vom Typ x zur gegnerischen Basis" und auch nicht "Baue Gebäude A an Punkt (22|421)", sondern "Baue Gebäude A in der Hauptbasis" Da muss man sich überlegen, wie detailiert man das macht, also ob man festhält, über welche Flanke angegriffen wird und so weiter. Ich würde solche Sachen optional machen. Wenn nichts angegeben wird, wird eben ein Standardwert (z.B. Frontalangriff) angenommen.

3. Endsituation
Wie die Ausgangssituation, nur werden nur Sachen gespeichert, die sich verändert haben.

4. Auswertung
Wohl der Teil, der am kniffligsten werden könnte, weil er sehr Stark vom Spiel abhängt. Es werden die Differenzen zwischen Ausgangs- und Endsituation berechnet und daraus ein Gesamtwert ermittelt, wie effektiv die Aktion war. Da ist sicher einiges an Balancing nötig.

Das ist mal die grobe Arbeitsweise bei der Speicherung. Während dem Spiel gleicht die KI dann die aktuelle Situation mit den Ausgangssituationen der gespeicherten Blöcke ab. Dabei ist es egal, ob sie die Rolle mit einem anderen Spieler getauscht hat. So kann sie auch das Verhalten von menschlichen Spielern kopieren. Aus Übereinstimmung und Effektivität wird schließlich ermittelt, welcher Block gewählt wird. Dabei werden noch andere Faktoren berücksichtigt. Etwa der Mut des KI Spielers, auch mal eine nicht ganz so erfolgversprechende Variante zu probieren, die Vorliebe für einen bestimmten Einheitentyp oder auch die Anzahl der bisherigen Versuche, um die Sache abwechslungsreich zu machen.

Diese Art von KI verlangt natürlich auch vom Spieler, seine Taktik immer wieder zu verfeinern. So Standardtaktiken wie ein Rush am Anfang werden damit unterbunden, weil sich die KI irgendwann drauf einstellt. Bei richtiger Auswertung bleibt die KI auch immer auf etwa dem gleichen Level wie der Spieler. Schwierigkeitsgrade wären also nicht mehr nötig. Wenn man noch was einbaut, dass die KI die Aktonen selbstständig variiert, hat man schon fast das Verhalten eines menschlichen Trainingspartners.