Zurück   Flashforum > Flash > ActionScript > Spielkonzepte und Spieleprogrammierung

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-09-2007, 22:47   #1 (permalink)
mushroom powered
 
Benutzerbild von b.asile
 
Registriert seit: Jun 2005
Ort: Amsterdam
Beiträge: 2.649
Künstliche Intelligenz...

Hi Forum,

ich habe mal vor geraumer Zeit begonnen ein Fussballmanager zu planen und teilweise auch schon zu programmieren.
Meine Pläne scheiterten dann an meinem begrenzten Horizont:
Wie simuliert man ein Spiel.

Hatte da zwar den ein oder anderen Ansatz,
jedoch ist das ganze für meinen Kopf noch zu komplex
um meine Ideen in Code zu verwandeln.

Was ich suche ist etwas Input bezüglich Künstlicher Intelligenz,
wie geht man sowas an.
Literatur mit simplen Beispielen. Für Kartenspiele oder andere banale Dinge.
Möchte mich einfach mal etwas mehr mit dem Thema auseinander setzen.

Hat da jemand gute Tipps, was man so lesen kann, wenn man quasi kein bestimmtes Ziel hat sondern der Applikation nur ein wenig Logik einhauchen will.

Ich weiss die Fragestellung ist sehr verallgemeneiert,
aber ich hoffe jemand hat da nen Tipp.

Schönen Abend,
gruß b.asile
__________________
[ WHEN THE GOING GETS WEIRD THE WEIRD TURN PRO ]

devboy.org
b.asile ist offline   Mit Zitat antworten
Alt 14-09-2007, 15:30   #2 (permalink)
x39
 
Benutzerbild von georgem
 
Registriert seit: Oct 2004
Ort: St.Gallen, Schweiz
Beiträge: 1.261
Tja, sicherlich das spannendste Thema...

Ich würde mich zuerst allgemein mit "Was ist Intelligenz" befassen, wie sie sich zeigt, was sie ausmacht, usw... da könnten dir Allerhand Wissensbereiche Aufschlüsse und Erleuchtungen liefern: Biologie, Verhaltensforschung, Schwarmbildung bei Fischen, was machen Insekten usw..Politik, Soziologie.... usw... einfache Intelligenz, Komplizierte Intelligenz...

Gibt etliche Links, vielleicht mal googeln nach kreative Computer usw...

es gibt ja noch kein allgemeines Rezept für "Zubereitung von Intelligenz"...

Aber es muss auch für ein Spiel gar keine "echte Intelligenz" sein (was ist das überhaupt???), meines Wissens gibts auch gar kein Programm welches das drauf hat.... sogar die schnellsten Computer spielen ja Schach nach Brute-Force Methoden, und nicht etwa taktisch und strategisch
...
In diesem Sinne würde man also bereits im Vorfeld scheitern sollte man versuchen die menschliche Intelligenz ins Digitale zu übersetzen, weil das hat irgendwie noch nie geklappt (versuchs trotzdem wenn du meinst du hast nen Ansatzpunkt gefunden, teile es mir dann bitte mit)
Man muss also versuchen einen Anschein von Intelligenz zu simulieren, auch wenn die zugrundeliegenden Algorithmen eigentlich mega stupide sind... was solls, wichtig ist der Spielspass und die langanhaltende Herausforderung...

Ich glaube bei fast jedem Spiel, dass wenn man die Regeln des Spiels ins digitale übersetzt (das sollte ja gehen) und eine einfache skalierbare (also verstellbare) Brute-Force-Ausprobier-Intelligenz einbaut, gute AI möglich ist...


Für jede andere Form der Intelligenz wirst du zuerst ein "Bewusstsein" programmieren müssen. Da würde ich aber nicht ansetzen, vor allem nicht mit Actionscript!

Dies erstmal mein Senf...Ich such mal einpaar Links.
__________________
The Sleeper Must Awaken

www.margaris.de | www.exosolar.net

Geändert von georgem (14-09-2007 um 15:34 Uhr)
georgem ist offline   Mit Zitat antworten
Alt 14-09-2007, 16:14   #3 (permalink)
Alter User
 
Benutzerbild von Dharokan
 
Registriert seit: Jul 2003
Ort: Dortmund
Beiträge: 637
Uiuiui, eine KI für ein Fussballspiel ist wirklich starker Tobak.
Da gibt es ja enorm viele Aktionsmöglichkeiten und alles hängt auch noch mit dem Verhalten der anderen zusammen (Teamplay). Einzelspieler-KIs dürften da weitaus einfacher sein...

Aber (wie georgem ja schon sagt): Es muss sich ja nur irgendwie "richtig anfühlen". Viel geholfen ist Dir wohl schon, wenn Du die Positionen der Spieler mit einbringst und ggf. einige Standard-Spielzüge. Vielleicht kannst Du mit einer Art "Ideallinien" für solche Spielzüge experimentieren...

Und damit's nicht so steif wirkt und auch spielerisch nicht langweilig wird, ist Random Dein bester Freund

Wie detailliert soll's denn werden? Der letzte Bundesligamanager, den ich gezockt habe, hat immer nur einen Klotz als Ball dargestellt, der sich auf dem "Spielfeld" hin- und herbewegt hat. War er ganz links, hat die Mannschaft rechts ein Tor erzielt

Die KI der aktuellen Vollpreis-Titel mit 3D-Spielszenen und so dürfte wirklich recht komplex sein.

Bin gespannt, wie Du vorgehen wirst.

Viel Erfolg,
Frank

EDIT: Ich beziehe mich natürlich darauf, eine KI für ein Computer-Fussballspiel zu entwickeln. Live soll das mit der I (ohne K) beim Fussball ja schon wieder ganz ander aussehen
__________________
Dharokan

Geändert von Dharokan (14-09-2007 um 16:19 Uhr)
Dharokan ist offline   Mit Zitat antworten
Alt 14-09-2007, 16:19   #4 (permalink)
x39
 
Benutzerbild von georgem
 
Registriert seit: Oct 2004
Ort: St.Gallen, Schweiz
Beiträge: 1.261
Zitat:
Zitat von Dharokan Beitrag anzeigen
Und damit's nicht so steif wirkt und auch spielerisch nicht langweilig wird, ist Random Dein bester Freund
Yep, Random ist das "Salz" in der KI.

Du kannst ja den Random noch Seeden und Verschachtelt und sonstwie manipulieren was das Zeug hält.... damit der Random nicht so gleichmässig random ist
__________________
The Sleeper Must Awaken

www.margaris.de | www.exosolar.net

Geändert von georgem (14-09-2007 um 16:21 Uhr)
georgem ist offline   Mit Zitat antworten
Alt 14-09-2007, 16:25   #5 (permalink)
Alter User
 
Benutzerbild von Dharokan
 
Registriert seit: Jul 2003
Ort: Dortmund
Beiträge: 637
Außerdem natürlich bei unterschiedlichen Teams Random unterschiedlich gewichten. Je nach Stärken und Schwächen.
Aber damit muß man einfach mal etwas rumspielen - also erstmal 'nen Prototyp machen und ab in den Sandkasten
__________________
Dharokan
Dharokan ist offline   Mit Zitat antworten
Alt 14-09-2007, 16:33   #6 (permalink)
x39
 
Benutzerbild von georgem
 
Registriert seit: Oct 2004
Ort: St.Gallen, Schweiz
Beiträge: 1.261
Eventuell kann das Hinzufügen von etwas Trigonometrie den Zufall etwas hin und her pendeln oder "pulsieren" lassen...

einfach den Random mit einem Sinus vermultiplizieren. (Variable des Sinus aufsteigend)
__________________
The Sleeper Must Awaken

www.margaris.de | www.exosolar.net

Geändert von georgem (14-09-2007 um 16:35 Uhr)
georgem ist offline   Mit Zitat antworten
Alt 14-09-2007, 17:21   #7 (permalink)
Raven-Kid
 
Benutzerbild von [RK]
 
Registriert seit: Feb 2006
Beiträge: 350
Ich wär das ganze so angegangen ...


Eigenschaften der Spieler ermitteln:
  • Teamplayfähig (gibt er leichter den Ball an Mitspieler ab)
  • Schusskraft (wie weit kann er schießen)
  • Ausdauer
  • Laufgeschwindigkeit
  • Treffergenauigkeit (trifft er ins Tor, kann er gut passen)
  • Duellkraft (behält er den Ball bei Kontakt?)
  • Motivation
.
.
.


Dann ermitteln wie sie voneinander abhängig sind:
  • Teamplay steigt wenn die Motivation hoch ist, fällt wenn sie niedrig ist.
  • Motivation fällt wenn man nur Tore kassiert, steigt mit Torerfolgen (der Schütze des Tores bekommt einen Motivations-Bonus zusätzlich)
  • Schusskraft hängt von der Ausdauer ab, genauso wie die Laufgeschwindigkeit.
  • Ausdauer hängt von Spieldauer ab, wie lang er gegangen/gessprint/gejogged ist. Hängt auch von der Anzahl der 2Kämpfe ab.
.
.
.

usw. und schon hat man einen guten Ansatz wie man das ganze herangehen kann. An taktischen Zügen oder ähnliches würde ich erst denken, wenn du einen Plan hast wie du welche Eigenschaften beeinflusst usw. und auch weißt wie weit du damit gehen willst. Weil zb. muss ja nicht nur der Schütze des Tores einen motivations Bonus bekommen, sondern alle die bei der Aktion beteiligt waren. Da sind durchaus schon kleine taktische Sachen dabei, wie zb. das Problem, das der Spieler nicht einfach irgend einen Spieler zupassen soll, sondern einen der in der Nähe ist, aber auch nur dann wenn er ungedeckt ist und auch nur dann wenn er weiter im Gegnerischen Feld ist, als er selbst. Wenn du sowas hast, kannst du ja dann weiter gehen und zb. sagen: Wenn ich passiv spiele (bzw. das Team), ist die Chance das der Spieler auch nach hinten ins Feld spielt höher ...

usw. usw.

Geändert von [RK] (14-09-2007 um 17:29 Uhr)
[RK] ist offline   Mit Zitat antworten
Alt 14-09-2007, 18:14   #8 (permalink)
Alter User
 
Benutzerbild von Dharokan
 
Registriert seit: Jul 2003
Ort: Dortmund
Beiträge: 637
RK: Für den Anfang klingt das erstmal gut, aber praktisch wird sich das so etwas seltsam anfühlen. Es fehlen Aspekte wie "Freilaufen", "Blocken" und was weiss ich (bin kein Fussballfreund). Spielzüge bestehen aus weit mehr, als einfach nur den Ball zum nächsten Spieler (wie auch immer das entschieden wird) und dann neu überlegen...

Und genau da unterscheidet sich eine Fussball-KI von z.B. einer Tischkicker-KI, denke ich. Die KI muss das Geschehen auf dem Spielfeld als Ganzes berücksichtigen, nicht nur einzelne Spieler. Ansonsten wirkt es ziemlich schnell steif und "computerisch"

Nicht falsch verstehen: Deine Ansätze sind sicher alle richtig. Allerdings würde ich von vornherein den Zusammenhalt über ein "großes Ganzes" (wie auch immer das aussieht, z.B. Spielzugdatenbank) mit einplanen, sonst wird es nachher umso schwerer, das aufzusetzen.
__________________
Dharokan
Dharokan ist offline   Mit Zitat antworten
Alt 14-09-2007, 18:45   #9 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.147
Ich finde hier wird das Pferd vom falschen Ende aufgezogen. Es wird ja danach gefragt wir man sowas angehen könnte, nicht wie eine Engine am Ende aussieht. Nichts für ungut, das sind ja auch alles gute Ideen aber wann will man am Ende damit fertig sein?

Erste Frage: was verstehst du unter einem Fußball Manager? Ist das eine Wirtschaftssimulation oder eine Gameengine?

Wenn es eine Fussballspiel Simulation werden soll würde ich zunächst eines von 4 Szenarien implementieren: Spielweise aktiv/passiv und Ballbesitz ja/nein.

Wenn es eine Wirtschaftsimulation ist, würde ich mich mit Wahrscheinlichkeitsrechnung auseinandersetzen: Wie hoch ist die Wahrscheinlichkeit, dass Team A gegen Team B gewinnt?
Omega Psi ist offline   Mit Zitat antworten
Alt 14-09-2007, 20:39   #10 (permalink)
wau
 
Benutzerbild von Circushund
 
Registriert seit: Jan 2006
Ort: Hamburch
Beiträge: 404
hi b.asil,

klingt ja schon nach einen grossen Unterfangen, ich würde mir aber ehrlich gesagt garnicht so den Kopf machen, und wenn man erstamal im Netz anfängt nach KI Programmierung zu suchen ...ui ui.
Der Vorschlag von [KR] find ich schon recht gut, denn da kannste einfach ein paar Klassen bauen, zB. Spieler, Team usw..die einzelnen Spieler kannste dann mit den Eigenschaften ausstatten "passenfähigkeit","ausdauer" usw...

Ich stell meistens beim Proggen fest, das die KI auch manchmal ganz von selber kommt, man wundert sich mitunter, wie einfache Dinge schon einen heiden Spass machen können und schon wärend des Proggens kann man sein Spass dran haben. Oft stellt man dann auch fest, was man eher braucht oder welche Variablen eher unwichtig sind.

Also: Der Spass an der Sache ist das wichtigste denke ich, ich selbst fange immer klein an und baue dann aus. Klar das man in etwa einen groben Plan haben sollte(könnte?) aber das rumspielen wärend des proggens ist viel wichtiger, denke ich zumindest .
__________________
Say no to Internet Explorer 6!
Circushund ist offline   Mit Zitat antworten
Alt 14-09-2007, 21:40   #11 (permalink)
Alter User
 
Benutzerbild von Dharokan
 
Registriert seit: Jul 2003
Ort: Dortmund
Beiträge: 637
Zitat:
Zitat von Circushund Beitrag anzeigen
Ich stell meistens beim Proggen fest, das die KI auch manchmal ganz von selber kommt, man wundert sich mitunter, wie einfache Dinge schon einen heiden Spass machen können und schon wärend des Proggens kann man sein Spass dran haben. Oft stellt man dann auch fest, was man eher braucht oder welche Variablen eher unwichtig sind.

Also: Der Spass an der Sache ist das wichtigste denke ich, ich selbst fange immer klein an und baue dann aus. Klar das man in etwa einen groben Plan haben sollte(könnte?) aber das rumspielen wärend des proggens ist viel wichtiger, denke ich zumindest .
Genau das wollte ich eigentlich mit dem "Sandkasten" auch ausdrücken.
__________________
Dharokan
Dharokan ist offline   Mit Zitat antworten
Alt 14-09-2007, 22:18   #12 (permalink)
Raven-Kid
 
Benutzerbild von [RK]
 
Registriert seit: Feb 2006
Beiträge: 350
Zitat:
Zitat von Dharokan Beitrag anzeigen
RK: Für den Anfang klingt das erstmal gut, aber praktisch wird sich das so etwas seltsam anfühlen. Es fehlen Aspekte wie "Freilaufen", "Blocken" und was weiss ich (bin kein Fussballfreund). Spielzüge bestehen aus weit mehr, als einfach nur den Ball zum nächsten Spieler (wie auch immer das entschieden wird) und dann neu überlegen...
Das ist ja sowieso klar das es nicht nur aus solchen Sachen besteht. Ich denke mir nur, das es bei einem Fußball-MANAGER jetzt nicht unbedingt notwendig ist, das man sieht was sie gerade tun, sondern nur das man erfährt was sie gerade tun. Sprich, man braucht zb. auch keine Wegfindung oder ähnliches zu programmieren. (Also ich geh jetzt jedenfalls mal von einer KI aus, die nicht Echtzeit ist. ) Wie auch schon gesagt wurde muss es ja nur den Anschein von Intelligenz besitzen. Und mit meinen Ansatz wollte ich nur Beispiele nennen wie man diesen Anschein wahren kann. Vorallem wenn es ein Manager ist, denke ich mir ist es wichtig das ich genau solche Sachen über die Manschaft oder dem Spieler als einzelnen erfahre (je nachdem wie aufwendig es eben werden soll). Einige der Eigenschaften können ja die gesammte Manschaft beschreiben um den Aufwand zu veringern, oder die Manschaftswerte berechnen sich aus den Einzelwerte der Spieler. Wie auch immer, meine Herangehensweise war weniger auf die gesamte KI bezogen, als auf die Tipps alles zufällig steuern zu lassen, bzw. gezielt random() einzubauen. Und wenn das Spiel nun tatsächlich nicht Echtzeit ist, ist es ja auch wirklich kein Problem diverse Taktiken vorzuprogrammieren und sich dann auszukalkulieren wie welche Taktik auf welche Gegentaktik wirkt, was für Auswirkungen das auf die Spieler hat und auf den Spielverlauf.

Wenns angezeigt werden muss,... sprich es ist ne Echtzeit Sache, dann ist das sowieso ne ganz andere Sache. Und ich würde mal das ganze so herran gehen das ich eine gute Wegfindung habe, und jederspieler auch selbstständig irgendwie agieren kann -> den Ball nachrennt (abhängig von seiner Spielposition rennt er unterschiedlich weit nach, bzw. rennt überhaupt nach) Dann hab ich immerhin schon mal einen Haufen von Spielern die sich gegenseitig ausweichen und versuchen den Ball zu erwischen. Bei Ballkontakt gibts einen 2 Kampf wo diverse Eigenschaften ausgewertet werden, random, usw. usf. Auch hier würde ich dann Taktiken strikt vorschreiben die es gibt. Man wird höchst wahrsch. auch nicht selber Taktiken erstellen können, sondern nur aus welchen auswählen können. Simpelste Formen sind da nat. Offensiv, Defensiv, Ausgewogen ...

Aber was genaueres zu den Taktiken kann ich nicht sagen. Bin kein Kicker :P

Geändert von [RK] (15-09-2007 um 14:48 Uhr)
[RK] ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 18:20 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele