Starcraft AI

sp4cer

Guest
Original geschrieben von Izzm
wo steht was davon, dass alle möglichen spielzüge berechnet und eingespeichert werden sollen?

Original geschrieben von Izzm

3. im schach gibts geschätzt 2*10^43 mögliche stellungen, da kann man sich ja denken, wie eskalativ kompliziert und lange ne starcraft KI bei aktueller chiparchitektur rechnen muss, wenn man bedenkt, dass dark fritz erst vor einigen jahren möglich war

Um nur eins zu nennen.
 
Mitglied seit
20.04.2005
Beiträge
2.888
Reaktionen
0
Ort
Österreich
mindestens in 10 postings dieses threads. aber wieso antworte ich dir eigentlich, mit dingen wie

>1. wer es schafft, eine KI für starcraft zu schaffen, die jeden
> human ownt, der hat imo nen halben menschen erschaffen

oder

>2. der vergleich dark fritz (schachweltmeister) - starcraft KI ist ja
>wohl nen witz bzgl. spielmöglichkeiten (spiele seit 12 jahren
>schach, da kommt in der eröffnung schon mal ne gleiche stellung
>vor, bei sc sicher nie!)

outest du dich ja als verkackter newb der einfach nu auf die ignore liste gehört.
 

Izzm

Guest
Original geschrieben von sp4cer




Um nur eins zu nennen.
wo steht da was von "im voraus berechnet" bzw. "alle möglichen spielzüge eingespeichert"?

@ e-Sport)Xedo(: fang doch einfach mal ganz plötzlich beleidigt in einer konversation an rumzuflamen :>
 
Mitglied seit
20.04.2005
Beiträge
2.888
Reaktionen
0
Ort
Österreich
beleidigt? =) eher desinteressiert eine diskussion mit 14jährigen zu führen die keine ahnung haben was sie reden :bored:
 
Mitglied seit
08.02.2002
Beiträge
16
Reaktionen
0
Die KI muss gar nicht Milliarden mögliche Spielzüge berechnen, man muss ihr nur etwas Intention beibringen. Beispiel: Eine mögliche Handlungsweise wäre, gar nichts zu machen. Die KI, die am Anfang gar kein Plan hat, wird erstmal nicht erkennen, dass sie so zwangsweise verliert. Wir als Menschen ahnen, dass wir irgendwas machen müssen, es ist unsere Intention. Sowas muss man der KI beibringen! Dann reduzieren sich die Möglichkeiten ganz arg und unnötige Rechenlast fällt weg.
 

Clawg

Guest
du denkst eben falsch :)

die ki wird nicht mit build orders, tech trees oder mit konterstrategien gefüttert. eine _gute_ ki soll bzw muss soweit sein als datenpool nur folgendes zur verfügung zu haben:

- welche units existieren in dem spiel und welche werte haben sie (ho, range usw)
- welche schadensklassen existieren

punkt :)

der rest MUSS sich von selbst erledigen. die ersten 1000 spiele wird die ki gebashed, nach 10.000 spiele bashed die ki jeden non kor spieler, nach 1 million spielen ist die ki im kespa.

WAS WANN WIE zu tun ist, muss die KI selber erlernen. Nur dann ist der Einsatz wirklich effizient. Und genau hier liegt deine Denkblockade, du willst ja versuchen ihr so viel infos wie möglich zu geben. wann sie was bauen muss, wie sie dann reagieren muss wenn das passiert ist blabla. dein denken ist öh.. alt? :)

So etwas gibt es schon. Nennt sich "Evolution Forge" und wurde von mir programmiert.
Mit "Evolution Forge 2" werde ich noch eins draufsetzen und Macro implementieren (Bewegen von Units auf dem Feld).

Was fehlt ist das Micro und eine direkte Anbindung an Starcraft. Das ist (da es hauptsächlich ein lokales Problem ist) aber machbar. Schwierig sind nur diese Beam-Geschichten (Arbiter, Nyduskanal), die blähen das Problem halt auf.

Die Micro-Geschichte wird momentan von diesem Wettbewerb:

http://eis.ucsc.edu/StarCraftAICompetition

behandelt.


"GO" ist zwar nicht komplexer, aber deutlich schwieriger als Starcraft, da es Fehler nicht verzeiht. Bei StarCraft kann in jedem Augenblick (theoretisch) jede Figur bewegt werden, bei GO muss der "erste Schuss sitzen".
 
Zuletzt bearbeitet:
Mitglied seit
17.04.2006
Beiträge
288
Reaktionen
0
Ort
Köln
wieso sollte so etwas im interesse der menschheit sein an sowas zu forschen? es hat wirklich keiner interesse daran einen nerdroboter zu programmieren.

wie ich da lachen musste. nerdroboter ist für mich das wort des jahres 2010. :D

das ist schon ein interessantes thema, vorallem finde ich interessant, wie die KI aus games lernen und sich dadurch weiterentwickeln soll.

mal n beispiel: mensch baut mutas, KI spielt terra und es ist das erste game der KI. die KI hat eine barracks für marines und ne factory und kann theoretisch auch goliaths bauen. was wird die sich jetzt anschaffen? wahrscheinlich greift sie aufgrund der bekannten daten wie movement speed, kosten, damage blabla erstmal auf das effizienteste mittel zurück.

aber was wäre denn, wenn die mutas vom gegner z. b. an irgendner exe immer wieder auf nem cliff verschwinden und dann ständig in die eco reinstressen, wenn die marines wieder weg sind? ist der KI das scheiß egal und sie lässt einfach marines stehen? fängt die an, türme zu bauen? baut die dropships und transportiert marines aufs cliff? testet sie mal lufteinheiten? ich meine, wie kommt die KI denn überhaupt auf die "idee", mal etwas anderes als das sozusagen rein rechnerisch effizienteste mittel einzusetzen, was in meinem beispiel (hat keinen wahrheitsanspruch, kenn mich bei broodwar nicht so ultra krass aus) jetzt einfach mal marines sind?

wir speisen der KI ja keine trigger ein, hatte irgendwer gesagt - nach dem motto: wenn muta, dann konter mit science vessel und radiate oder wie es heißt. xD also wie kommt der KI die idee, verschiedene einheiten zu testen? sie muss ja am anfang auch ein auswahlkriterium, eine grundsätzliche methodik (z. b. effizienz) haben, nach der sie ihren konter auswählt oder denke ich da falsch?

:zzz:
 

Clawg

Guest
ich meine, wie kommt die KI denn überhaupt auf die "idee", mal etwas anderes als das sozusagen rein rechnerisch effizienteste mittel einzusetzen, was in meinem beispiel (hat keinen wahrheitsanspruch, kenn mich bei broodwar nicht so ultra krass aus) jetzt einfach mal marines sind?
Indem sie mehr Informationen als alleine die Einheitenwerte benutzt. Das dann aber direkt zu berechnen wird aber unmöglich, da muss man schon zu anderen Verfahren greifen. Beispielsweise iterative Lernverfahren die ihre Ergebnisse in Form von Regeln in einer Matrix zusammen mit einer Qualitäts/Wahrscheinlichkeitsbewertung hinterlegen.
 
Mitglied seit
09.09.2003
Beiträge
54
Reaktionen
0
...
Zum Vorposter: Zum Micro gehört nicht nur eine verwundete Einheit wegziehen.. es gehört auch Focusfire, (Focusfire cancel, wenn die Unit weggezogen wird) etc pp dazu, das kann man einem Computer halt nicht "so einfach" beibringen.
...

Du hast zwar im Grundgedanken recht, aber dein Beispiel suckt:
das zitierte hier ist noch rel. einfach in ein Opt.-Problem zu Formulieren.
Gerade solche Fragestellungen: welche Unit greift an welcher Position wann an, lässt sich mathematisch gut formulieren. Gerade weil das Ziel: z.b. max(unitsAmLeben + gegnerUnitsTod) einfach ist im vergleich zu "Verteidige ich Drop oder Main"

Zu KI vs dumme Gegner?
Evolutionäre Algorithmen z.B. : vererben nur das, was Effektiv/Gut war. Es ist aber als solches klar, das eine KI kein GosuMicro kann, wenn sie nicht vorher das Prinzip gesehen hat.

Aber schon geil wie BW.de hier wieder auf einem Thema rumhackt das Forschungsthema ist.
 

Clawg

Guest
Evolutionäre Algorithmen z.B. : vererben nur das, was Effektiv/Gut war. Es ist aber als solches klar, das eine KI kein GosuMicro kann, wenn sie nicht vorher das Prinzip gesehen hat.

Doch, natürlich. Wenn sie merkt, wie effektiv eine bestimmte Taktik die gegnerischen Einheiten zum Platzen bringt, wird sie sie beibehalten.
 
Mitglied seit
03.05.2003
Beiträge
367
Reaktionen
0
Also die spiel implementierte AI ist ohne "cheaten" nicht in der lage extrem gute spieler zu schlagen, kann sie nie werden. Liegt einfach daran das man mit SC AI-editoren nicht in der lage ist der AI gescheites Micro beizubringen; davon abgesehen cheatet jede AI im spiel da sie immer weiss wo der spieler ist.

In SCII sieht das anders aus; man kann hier wohl der AI beibringen micro zu nutzen, und demnach sollte es möglich sein die AI stärker zu machen als jeden (menschlichen) spieler (gibt auch z.B. schon ein AI projekt das zumindest buildorders von spielern gegen die es spielt zu mirrorn)

Für SC:BW seh ich nur eine möglcihkeit eine gute AI zu bekommen: du musst ein programm schreiben das in der lage ist starcraft zu spiele (im prinzip genauso wie ein mensch) ein solches programm sollte dann theoretisch in der lage sein sehr gut zu werden, da es micro-technisch dem spieler überlegen sein kann.
 

Clawg

Guest
Im Prinzip eben nicht genau so wie ein Mensch ;) Das Programm hängt sich an das BW-Programm in den Speicher und kommuniziert dort. Sowas gibt es schon, siehe weiter oben gepostete Links.
 
Mitglied seit
09.09.2003
Beiträge
54
Reaktionen
0
Doch, natürlich. Wenn sie merkt, wie effektiv eine bestimmte Taktik die gegnerischen Einheiten zum Platzen bringt, wird sie sie beibehalten.
Ich meinte damit das man sie vorher mit Prinzipen(wurzeln) Fütern muss. Was ich überspitzt meine ist:
Shooter: Die KI weiss das sie in jede richtung sich unterschiedlich bewegen kann. Aber du musst der KI vorher zeigen das sie auch hüpfen kann. Weil das hüpfen eine unabhängige Eigenschaft ist.
Du hast vollkommen recht die aussage bzgl. micro ist falsch von mir, weil das aus der Bewegung selbst resultieren kann. Und damit keine unabhängige wurzel wäre.
 

Clawg

Guest
Ich meinte damit das man sie vorher mit Prinzipen(wurzeln) Fütern muss. Was ich überspitzt meine ist:
Shooter: Die KI weiss das sie in jede richtung sich unterschiedlich bewegen kann. Aber du musst der KI vorher zeigen das sie auch hüpfen kann. Weil das hüpfen eine unabhängige Eigenschaft ist.
Du hast vollkommen recht die aussage bzgl. micro ist falsch von mir, weil das aus der Bewegung selbst resultieren kann. Und damit keine unabhängige wurzel wäre.

Die Grundbedingungen für maschinelles Lernen ist eine Blackbox, welche mit einer Aktion gefüttert wird und eine Ausgabe liefert und eine Bewertungsfunktion dieser Ausgabe.

Im Falle von Starcraft wäre die Blackbox das StarCraft Programm, welches die jeweils aktuelle Spielsituation als Ausgabe liefert und eine Bewertungsfunktion, welche ein positives Ergebnis bei einem Spielgewinn und ein negatives Ergebnis bei einem Spielverlust produziert.

Der künstlichen Intelligenz muss man keine Handgriffe zeigen.
 
Mitglied seit
03.05.2003
Beiträge
367
Reaktionen
0
Jab, aber keine die "fair" spielt. Die umbesiegbaren AIs bekommen große Mengen Resourcen geschenkt, und sind dann in der Lage das in einen Sieg zu verwandeln.
 
Mitglied seit
08.10.2008
Beiträge
2.156
Reaktionen
0
Achso, ich dachte diese Custom AIs cheaten nicht (im Gegensatz zur Insane AI).

Ich kann mir durchaus vorstellen, dass es möglich ist eine sehr schwere AI für Starcraft zu entwickeln. Die Komplexität ist zwar größer, aber im Gegensatz zu rundenbasierten Spielen, hat die AI ja schon allein den Vorteil, dass sie 1000+ APM haben kann. :3

Und soviele Kombinationen gibt es beim Makro in Starcraft doch auch wieder nicht. Man muss sich doch nur mal nen Gosu Spieler hernehmen und seine Build Order und Reaktionen notieren.
 
Mitglied seit
21.03.2010
Beiträge
84
Reaktionen
0
Achso, ich dachte diese Custom AIs cheaten nicht (im Gegensatz zur Insane AI).

Ich kann mir durchaus vorstellen, dass es möglich ist eine sehr schwere AI für Starcraft zu entwickeln. Die Komplexität ist zwar größer, aber im Gegensatz zu rundenbasierten Spielen, hat die AI ja schon allein den Vorteil, dass sie 1000+ APM haben kann. :3

Und soviele Kombinationen gibt es beim Makro in Starcraft doch auch wieder nicht. Man muss sich doch nur mal nen Gosu Spieler hernehmen und seine Build Order und Reaktionen notieren.

Ach. Wie viele matches hast du gesehen? :p
 
Mitglied seit
08.10.2008
Beiträge
2.156
Reaktionen
0
Nicht sehr viele, aber es gibt im Internet doch ganz viele Tipps und so, wie die perfekte Build Order ist und was man mit was kontern soll.
 
Mitglied seit
03.05.2003
Beiträge
367
Reaktionen
0
Also um es mal klar zu machen: die interne SC:BW ai kann KEINERLEI micro beigebracht bekommen, das heißt ihre möglichkeit extrem viele Befehle in kürzester Zeit auszuführen bringt ihr nur SEHR wenig.

Was makro angeht, sendet er z.B. nicht mehr als 2 Arbeiter in ne Raffinerie, es sei denn die mineralien sind zu ende, dann sendet er alle verbleibenden rein und wird sie nie von dort wegtransferieren... apropro transferieren das kann er auch nicht gescheit zu ner exe.

Es ist ihm ausserdem egal was der Gegner scoutet, er zieht seine BO davon unbeachtet ab. Reagieren auf nen gegnerischen build kann er zwar (aber auch nur sehr begrenzt), aber erst wenn ein entsprechendes Gebäude steht oder Einheit produziert wurde.

Das alles bezieht sich natürlich ausschließlich auf die SC1/BW interne AI.

€: was "perfekte" BO angeht, das ändert sich nachwievor ständig, und Progamer BOs verlassen sich auch darauf dass man frühe rushes durch micro halten kann (z.B. killen 2 marines einen Zealot immer wenn micro reingehauen wird, wenn die marines aber stehenbleiben werden sie umgehauen; und der computer lässt sie stehen)
 
Zuletzt bearbeitet:
Mitglied seit
21.03.2010
Beiträge
84
Reaktionen
0
Nicht sehr viele, aber es gibt im Internet doch ganz viele Tipps und so, wie die perfekte Build Order ist und was man mit was kontern soll.

Nein, es gibt keine "perfekte Build Order". Die meisten leben von ihrer dynamik, wie der vorposter schon sagte, und hängen stark von der ausführung ab, sowie von der map und sehr vielen kleinen details. :ugly:
Wirkliche harte konter gibt es eher in sc2, in scbw findest da nur sehr sehr wenige sachen, die wirklich einen harten konter darstellen; eine modifikation in einer bo alleine bringt relativ selten den sieg.
 

Clawg

Guest
Also um es mal klar zu machen: die interne SC:BW ai kann KEINERLEI micro beigebracht bekommen, das heißt ihre möglichkeit extrem viele Befehle in kürzester Zeit auszuführen bringt ihr nur SEHR wenig.
Es gibt einen Patch mit dem der AI beliebige Befehle gegeben werden können.

€: was "perfekte" BO angeht, das ändert sich nachwievor ständig, und Progamer BOs verlassen sich auch darauf dass man frühe rushes durch micro halten kann (z.B. killen 2 marines einen Zealot immer wenn micro reingehauen wird, wenn die marines aber stehenbleiben werden sie umgehauen; und der computer lässt sie stehen)

Ein typischer Fall von Ko-Evolution eben :) Würden alle Gegner nur noch rushen, würde die perfekte BO anders aussehen, als wenn alle Gegner 'normal' spielen.
 
Mitglied seit
03.05.2003
Beiträge
367
Reaktionen
0
Clawg aber nix von Blizzard für Sc:BW oder? kannste mal nen Link zu dem Patch posten?
 
Oben