Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

03.03.2013, 00:08

Zitat

Aber wie findet man denn diesen heraus, wenn man eh nur eine geringe Tiefe berechnen will?
Das macht ja die Alpha/Beta Suche für dich. Wenn die noch unklar ist, solltest du dir den Wikipedia Artikel mal anschauen. Der englische hat sehr anschauliche Grafiken, der deutsche bietet ein paar Ideen zum optimieren.
Mit der Tiefe würde ich experimentieren. Du willst ja die Rechenzeit möglichst kurz halten, andererseits je tiefer, desto besser. So ließe sich auch der Schwierigkeitsgrad regulieren.

Zitat

Und wofür die Gewichtungen (also die Multiplikatoren)?
Die waren nur als Beispiel gedacht, genauso wie die 100 für die Turmbewertung ;) . Wie diese Werte später aussehen, muss du entscheiden. Natürlich sollten es keine magischen Zahlen sein, sondern Konstanten mit einem Namen. Dann ließen sich auch KIs mit unterschiedlichem Verhalten (aggressiv, wirtschaftlich, ..) einfach implementieren.


Zitat

Und würdest Du hier noch ein Zufallselement mit aufnehmen (oder nach der Baumauswertung)?
Bin mir jetzt nicht ganz sicher, was du mit Zufallselement meinst, aber mit Zufall kann man natürlich so einiges machen. Wenn nicht immer der beste Zug genommen werden soll, kann man einen Zufallswert in die Bewertung mit einbringen. Nach der Baumauswertung würde dies ja keinen Sinn mehr machen, denn dann hast du ja umsonst gerechnet. Wobei du natürlich auch ausgehend vom Wert der Stellung innerhalb des Baumes zufällig entscheiden kannst, welcher Zug genommen werden soll. Gute Stellungen hätten dann eine höhere Warscheinlichkeit genommen zu werden, aber auch Schlechte hätten ihre Chance. Ist vielleicht bei einer geringen Tiefe sehr nützlich, da ja nicht so viel vorausberechnet werden kann, müsste man aber testen.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

12

04.03.2013, 00:38

Wie du deine ganzen Stellungen bewertest, bleibt natürlich erst mal dir überlassen. Mein anderer Ansatz sollte dir nur zeigen, dass es mehrere verschiedene Wege gibt, welche funktionieren können. Wie hier deine Manager eingeteilt werden sollen ist auch dir überlassen. Sinnvoll ist es halt, eine zentrale Einheit zu erstellen, welche alles zusammenhält. Das wäre in meinem Fall halt die Brain Klasse. Diese könnte zum Beispiel aggressives Verhalten vorgeben. Das bedeutet, dass der Kampfmanager sich um Kämpfer kümmern muss. Dafür müssen möglicherweise neue Einheiten rekrutiert werden. Hierfür sind möglicherweise nicht genug Ressourcen da und der Ressourcenmanager muss sich um dieses Problem kümmern. Das wäre ein Beispiel für einen Ablauf. Das ganze könnte in deinem Spiel auch anders aussehen. Du gibst halt von oben nach unten Ziele durch und versuchst diese durch einfachere Teilziele zu lösen. So kannst du recht einfach abstrakte große Befehle umsetzen, was deiner KI natürlich hilfreich ist. Der Ansatz mit dem Bewertungssystem und einer Baumstruktur ist ein weiterer. Du musst halt berechnen wie das Spiel durch einen Zug beeinflusst wird. Das heisst wie ein Zug von dir das Spiel beeinflussen würde. Würden mehr Rohstoffe vorhanden sein, oder würde ein neues Gebäude vorhanden sein. Gibt es vielleicht neue Einheiten oder einen anderen Vorteil. Jeden Parameter, welcher für die Spielsituation wichtig ist, sollte hier mit in die Bewertung einfliessen. Eine Situation in welcher der Gegner gewinnt sollte hier allgemein sehr schlecht bewertet werden. Aktionen in welchen man gewinnt sollten sehr stark gewertet werden. Unabhängig davon spielen dann halt Werte wie die Turmzahl oder die Rohstoffe mit ein.
Was Bücher angeht, so besitze ich selbst dieses und dieses. Fand beide sehr gut. Das erste ist als Einstiegsbuch sehr hilfreich. Es werden verschiedene Themen und Praktiken beschrieben und auch immer mit Codebeispielen umgesetzt. Dabei werden zwei Spiele vorgestellt, welche zwei verschiedene KI Ansätze vorstellen. Als Zusammenfassung der letzten Kapitel. Alles sehr Anschaulich und ein guter Einstieg.
Das zweite Buch behandelt viele Themen und ist von Leuten aus der Branche geschrieben. Sie sprechen teilweise Probleme an die sie selbst bei der Entwicklung eines Spiels hatten und stellen dann ihre Lösung vor. Dabei gibt es auch Codebeispiele. Hier konnte ich mir viele Ideen holen und einige Themen noch mal genauer anschauen, bzw ganz neue Themen sehen. Ich fands vor allem als Aufbaubuch ganz gut.
Ansonsten gibt es bei Google noch einiges zu den Themen zu finden. Muss man sich einfach mal ein paar Nachmittage Zeit nehmen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“