KI Computerspiel spielen lassen



  • Hey,

    ich wollte fragen, ob es schon mit etwas einfacheren Methoden der KI, also sowas wie Suchalgorithmen, neuronale Netze, Bayessche Netze, Fuzzy-Logik, Logik höherer Stufe, usw. möglich ist einen Bot zu programmieren der Echtzeit-Strategiespiele spielen kann. Welche Methoden wende ich da wie an, und wie soll er das Spiel kontrollieren?

    Danke im Voraus



  • Lustige Frage. Man konnte doch schon lange gegen den Computer spielen, also wirds da auch jeweils ne KI für geben.



  • Tyrdal schrieb:

    Lustige Frage. Man konnte doch schon lange gegen den Computer spielen, also wirds da auch jeweils ne KI für geben.

    Ich denke er meint Bot ohne Cheaten.

    Wenn man in RTS Spielen die KI nicht cheaten läßt, geht z.B. in SC, dann sind die Bots dumm wie Brot.

    Strategien Anwenden, Taktikten sich ausdenken usw., das kann praktisch noch kein Bot, zumindest kenne ich kein RTS bei dem die Bots könnten.
    Ob es möglich ist, ist fraglich, momentan scheint das aus Kostengründen zumindest noch niemand probiert zu haben.



  • Naja es soll ja schon mal ein Schachgroßmeister gegen nen Computer verloren haben. Prinzipiell gehts also. Wobei der Schachcomputer sich wohl auch keine Strategien ausgedacht, sondern welche gespeichert hatte.



  • Tyrdal schrieb:

    Naja es soll ja schon mal ein Schachgroßmeister gegen nen Computer verloren haben. Prinzipiell gehts also. Wobei der Schachcomputer sich wohl auch keine Strategien ausgedacht, sondern welche gespeichert hatte.

    Zwischen einem RTS und Schach sind ja wohl Welten.

    Ein Schachbrett ist immer wohl definiert, in jedem Zustand.

    Bei modernen RTS ist das in der Regel nicht so und das Gebiet ist nicht plan, sondern es gibt Höhen und Tiefen, Gebirge, Wasser, Schluchten und auch Engpässe.
    Eine KI die das ausnutzt stelle ich mir sehr schwer vor, noch schwerer wird es, wenn die KI auch Ablenkungsmanöver können soll oder schwächen des Gegners erkennen soll, ohne dabei zu chaten.

    Schachsoftware ist da im Vergleich dazu trivial.
    Und ja, wie du gesagt hast, dafür gibt es gespeicherte Strategien.
    So etwas kannst du in einem RTS kaum speichern.

    Jedes Spiel ist anders. Und selbst wenn du durch neuronale KI die KI lernen läßt oder auf bisherige Matches von RTS Strategen zurückgreifst, so ist die neue Ausgangssituation nicht die gleiche.
    Der Profi RTS Stratege hat vielleicht nur gegen Panzer gekämpft, während der jetzige menschliche Gegner in den Bergen Panzerfaustschützen plaziert hat.



  • Und? Dadurch steigt nur der Aufwand.


  • Mod

    RTS Gamer schrieb:

    Ein Schachbrett ist immer wohl definiert, in jedem Zustand.

    Es ist vor allem auch ein Spiel mit vollständiger Information und nur geringem Zeitdruck. Das macht alles sehr viel einfacher zu programmieren. Beim typischen Computerspiel muss man auf Informationen reagieren, die man entweder gar nicht oder nur sehr indirekt hat. Und das auch noch in Echtzeit, wo KIs bei großstrategischen Entscheidungen doch noch nicht soooo extrem schnell sind. Die Stärken von KIs sind gute Reaktionszeiten im Kleinen und vollständiges Abklappern aller/vieler Möglichkeiten im Großen. Letzteres geht im typischen Computerspiel nicht so gut, daher muss es der Vorteil im Kleinen richten:

    Im RTS könnte eine KI eventuell was durch Imba-Micromanagement rausholen. Das ist auch technisch durchaus möglich:
    http://www.youtube.com/watch?feature=player_detailpage&v=mrbYd4OFrWE#t=68
    Bloß macht das keinen Spaß, daher baut man solche KIs nicht in den Spielen ein. Und sie würden sicherlich trotzdem noch haushoch gegen Gegner verlieren, die sich nicht auf Microspielchen einlassen und die KI einfach mit unvorhergesehenen oder durch Micro nicht lösbaren Situationen konfrontieren.

    Bei Spielen, bei denen Geschicklichkeit der Hauptfaktor ist, wäre eine KI auch unbesiegbar, wenn man nur wollte. Aber niemand möchte ein FPS, in dem die KI einem innerhalb von 20 Nanosekunden einen perfekten Kopfschuss verpasst, also macht man die KI-Bots in solchen Spielen auch künstlich ungeschickt. Daher sieht man in Spielen gegen solche KIs vor allem ihre Schwächen: Die vorgegebenen Laufwege, die taktisch unklugen Bewegungen, das Scheitern an unvorhergesehenen Situationen. Einem perfekt zielenden Bot wären diese Schwächen egal, er wäre spielbedingt zu gut, um ihn im Feuergefecht, um das sich das Spiel dreht, zu besiegen. Wieder könnte ein Mensch dies ausnutzen und einen direkten Konflikt vermeiden, sofern das Spiel auch andere Siegmöglichkeiten hat. Die KI käme damit sicherlich nicht zurecht.



  • Tyrdal schrieb:

    Und? Dadurch steigt nur der Aufwand.

    Genau, aber so schnell ins unermessliche das sowas mit heutigen Rechnern nichtmehr Effektiv berechenbar ist. Bei Schach wird der Umstand genutzt dass das Spiel Rundenbasiert ist, in Echtzeit ist das schon wieder was anderes da die KI im Grunde nur Istzustände bewerten kann. Je komplexer eine KI und damit die Laufzeit zur berechnung des optimalen Spielzuges umso mehr Zeit ist vergangen d.H. die Berechnung stützt sich ggf auf veraltete Daten was dem aktuell berechneten optimalen Spielzug obsolete macht weil ggf jetzt schon wieder ein anderer Zug viel Optimaler wäre. Man ist noch sehr weit entfernt auf heimrechnern KIs zum laufen zu bringen die wirklich "Lernen" und auf unvorhergesehen Umstände reagieren können. Das was man allgemein als KI bezeichnet sind eigentlich nur Verhaltensmuster unter bestimmten Umständen.



  • Fedaykin schrieb:

    Genau, aber so schnell ins unermessliche das sowas mit heutigen Rechnern nichtmehr Effektiv berechenbar ist.

    Mag sein, aber an der theoretischen Machbarkeit ändert das erstmal nix.



  • Reinforcement learning.



  • Tyrdal schrieb:

    Fedaykin schrieb:

    Genau, aber so schnell ins unermessliche das sowas mit heutigen Rechnern nichtmehr Effektiv berechenbar ist.

    Mag sein, aber an der theoretischen Machbarkeit ändert das erstmal nix.

    Doch. Es geht um das Geloeste Spiel. Schach ist Geloest. In jeder Situation ist klar wer vorne ist und wenn beide Perfekt spielen lasst sich vorhersagen wer gewinnt.

    Dies bedeutet dass es ein Perfekt Spielen gibt. Das kann die KI machen.

    Bei einem RTS gibt es kein perfektes Spiel. Es ist auch kein geloestes Spiel, da du keinen Zustand hast wo du sagen kannst: wenn beide Seiten perfekt Spielen gewinnt Spieler A.

    Weiters geht es um die Anzahl der moeglichen Zuege. Bei Schach gibt es eine begrenzte Anzahl an Zuege die du endlich weit verfolgen kannst. Bei einem RTS gibt es unendliche viele Zuege in jeder Situation. Du kannst also nicht vorher berechnen was passieren wird.

    Ein anderer Punkt ist perfekte Information. Schach bietet perfekte Information zu jedem Zeitpunkt. Auch Spiele mit imperfekter Information wie Kartenspiele geben dir zumindest den Prozentsatz der Information die du kennst vor und du hast Wahrscheinlichkeiten mit denen du rechnen kannst. Bei einem RTS hast du das alles nicht. Du weisst nur was du siehst und kannst anhand der Information Sachen ableiten - aber du weisst nicht wieviel % der Information du kennst und ob du richtig liegst.

    Deshalb: RTS und Schach sind 2 komplett unterschiedliche Sachen die nichts miteinander zu tun haben.



  • Shade Of Mine schrieb:

    Doch. Es geht um das Geloeste Spiel. Schach ist Geloest. In jeder Situation ist klar wer vorne ist und wenn beide Perfekt spielen lasst sich vorhersagen wer gewinnt.

    Hast du dazu eine Referenz?
    http://en.wikipedia.org/wiki/Solving_chess sagt:

    No complete solution for chess in either of the two senses is known, nor is it expected that chess will be solved in the near future.



  • SeppJ schrieb:

    Im RTS könnte eine KI eventuell was durch Imba-Micromanagement rausholen. Das ist auch technisch durchaus möglich:
    http://www.youtube.com/watch?feature=player_detailpage&v=mrbYd4OFrWE#t=68
    Bloß macht das keinen Spaß, daher baut man solche KIs nicht in den Spielen ein. Und sie würden sicherlich trotzdem noch haushoch gegen Gegner verlieren, die sich nicht auf Microspielchen einlassen und die KI einfach mit unvorhergesehenen oder durch Micro nicht lösbaren Situationen konfrontieren.

    Ich habe mir das Video jetzt angesehen, bezieht sich das Micromanagemnet darauf, dass der Bot mit alle seinen Truppen ein paar Schritte zurückgeht, damit die Nahkampfeinheiten ihn nicht erreichen?

    Falls ja, dann wäre so ein KI Gegner mehr als nervend, allerdings macht der Mensch das genauso, nur kann er nicht so schnell tippen.
    Wenn man der KI also noch ein Handycap verabreichen würde, also das sie z.B. nicht alle Einheiten auf einmal so schnell zurückziehen kann, dann wäre das durchaus eine nette Idee für eine KI.
    Strategie denken oder taktisch vorgehen kann er dadurch aber dennoch nicht,
    ich denke Tyrdal stellt sich das zu leicht vor.
    Theoretisch Machbar ist auch keine Antwort, wenn man dann >= 5 Supercomputer im Wert von zig Millionen € dafür braucht.


  • Mod

    RTS Gamer schrieb:

    SeppJ schrieb:

    Im RTS könnte eine KI eventuell was durch Imba-Micromanagement rausholen. Das ist auch technisch durchaus möglich:
    http://www.youtube.com/watch?feature=player_detailpage&v=mrbYd4OFrWE#t=68
    Bloß macht das keinen Spaß, daher baut man solche KIs nicht in den Spielen ein. Und sie würden sicherlich trotzdem noch haushoch gegen Gegner verlieren, die sich nicht auf Microspielchen einlassen und die KI einfach mit unvorhergesehenen oder durch Micro nicht lösbaren Situationen konfrontieren.

    Ich habe mir das Video jetzt angesehen, bezieht sich das Micromanagemnet darauf, dass der Bot mit alle seinen Truppen ein paar Schritte zurückgeht, damit die Nahkampfeinheiten ihn nicht erreichen?

    Ja, unter anderem. Alles wo es um Geschick und Geschwindigkeit bei der Truppenführung geht, ohne große taktische oder gar strategische Überlegungen.

    Theoretisch Machbar ist auch keine Antwort, wenn man dann >= 5 Supercomputer im Wert von zig Millionen € dafür braucht.

    Mehr! RTS sind zwar theoretisch auch irgendwo diskret (weil sie auf einem endlichen Computer laufen), aber die Zahl der Möglichkeiten ist nochmals ungleich größer als bei solch "harmlosen" Spielen wie Go, welches als unlösbar für die vorstellbare Zukunft gilt (bei Schach besteht ja immerhin die Hoffnung der schwachen Lösung, wenn man alle Computer der Welt für die nächsten 10^80 Jahre laufen lässt :p ).



  • Bashar schrieb:

    Shade Of Mine schrieb:

    Doch. Es geht um das Geloeste Spiel. Schach ist Geloest. In jeder Situation ist klar wer vorne ist und wenn beide Perfekt spielen lasst sich vorhersagen wer gewinnt.

    Hast du dazu eine Referenz?
    http://en.wikipedia.org/wiki/Solving_chess sagt:

    No complete solution for chess in either of the two senses is known, nor is it expected that chess will be solved in the near future.

    OK, nur Endgame Schach ist geloest - Midgame nicht.
    Die Eroeffnungen sind auch durchexerziert - aber ja, aktuell und wohl auch noch laengere Zeit, wird das midgame im Schach nicht komplett geloest werden.



  • SeppJ schrieb:

    Mehr! RTS sind zwar theoretisch auch irgendwo diskret (weil sie auf einem endlichen Computer laufen), aber die Zahl der Möglichkeiten ist nochmals ungleich größer als bei solch "harmlosen" Spielen wie Go, welches als unlösbar für die vorstellbare Zukunft gilt (bei Schach besteht ja immerhin die Hoffnung der schwachen Lösung, wenn man alle Computer der Welt für die nächsten 10^80 Jahre laufen lässt :p ).

    Man darf aber nicht vergessen, das Schach und Go mhr oder weniger diskret sind, bzw diskrete zustände haben, währnd RTS zu kontinuierlichn Zustandsräumen tendieren. Es kann also gut sein, das man durch generalisierung eine Menge erreichen lässt.



  • Shade Of Mine schrieb:

    Auch Spiele mit imperfekter Information wie Kartenspiele geben dir zumindest den Prozentsatz der Information die du kennst vor und du hast Wahrscheinlichkeiten mit denen du rechnen kannst.

    Über den Satz musste ich echt lange nachdenken!
    Meint er jetzt, dass alte Spielzüge aus der Vergangenheit in der Gegenwart einfluss nehem sollen oder so...

    🙂


  • Mod

    otze schrieb:

    Es kann also gut sein, das man durch generalisierung eine Menge erreichen lässt.

    Was meinst du damit?



  • Jockelx schrieb:

    Shade Of Mine schrieb:

    Auch Spiele mit imperfekter Information wie Kartenspiele geben dir zumindest den Prozentsatz der Information die du kennst vor und du hast Wahrscheinlichkeiten mit denen du rechnen kannst.

    Über den Satz musste ich echt lange nachdenken!
    Meint er jetzt, dass alte Spielzüge aus der Vergangenheit in der Gegenwart einfluss nehem sollen oder so...

    🙂

    Nein, du weißt nicht welche Karten der Gegner in der Han hat, allerdings weißt du welche Karten auf den Tisch gelegt wurden und welche sich somit noch auf dem frei verfügbaren Stapel oder in den Händen der gegnerischen Mitspieler befinden können.
    Diese Information läßt Chancen für Wahrscheinlichkeiten zu, allerdings ist sie nicht vollständig, weil du eben nicht weißt, welche Karten genau der Spieler von den restlich verfügbaren Karten in der Hand hält.

    Dies gilt natürlich nur für Kartenspiele, bei der die gelegten Karten nicht mehr unter den Stapel gemischt werden.



  • 😕
    Ja, das ist schon klar.
    Es ging um die Verwendung des Wortes 'Imperfekt', was ja sicherlich nicht gemeint war, bei wohlwollender Interpretation aber irgendwie auch passt.

    Fand ich lustig, hab aber nicht wirklich lange drüber nachgedacht... 😉


Anmelden zum Antworten