Hallo,
vorweg: Das Thema an sich hat eigentlich nichts mit HTML oder Webentwicklung zu tun, sondern eher mit Algorithmen.
Ich poste es trotzdem mal hier, da hier viele kompetente Leute rumlaufen, und sonst auch viel offtopic gepostet werden.
Einige wissen sicherlich was RTS Spiele sind und wie sie funktionieren.
Man hat mit Resourcen zu wirtschaften (z.B. Gold, Holz, Gas, Mineralien, usw.), und von dem Erwirtschafteten kann man sich Kampfeinheiten, Produktionsgebäude oder andere Sachen (z.B. Erforschungen) kaufen oder man kurbelt die eigene Wirtschaft an, in dem man mehr Arbeitereinheiten baut.
Konkret ziele ich z.B. auf sowas wie Starcraft oder Warcraft ab.
Dabei gibt es eine bestimmte Baureihenfolge. Einheit X kann erst gebaut werden, wenn Gebäude Y gebaut wurde, welches wiederum Gebäude Z als Voraussetzung hat. Alle Bauaktionen kosten Zeit und die Schwierigkeit liegt u.a. darin, die Zeiten optimal auszunutzen, also wenn Gebäude Z gerade fertig gestellt ist, dass dann auch sichergestellt ist, dass man die Resourcen hat um Gebäude Y direkt im Anschluss zu bauen. Andernfalls wäre es nicht optimal.
Nun hab ich mir überlegt, es ist doch viel schlauer und exakter, wenn man sich gewisse Strategien ausrechnen lässt, als dass man sie durch viel Spielen und Erfahrung erlernt und langsam optimiert.
Eine Strategie sei z.B. einfach mal so etwas: 5 Einheiten X, 4 Einheiten Y gebaut und Entwicklung Z erforscht zu haben.
Die Frage ist nun, da es sich um ein Spiel, bei dem es auf die Zeit drauf ankommt, handelt: Welcher Weg führt am schnellsten zu diesem Ziel?
Was ist also die optimalste Baureihenfolge?
Meine Idee war nun, ein Programm zu schreiben, das alle Objekte des Spiels kennt und z.B. o.g. Strategie als Input bekommt.
Gebäude X sei dann z.B eine Klasse mit Eigenschaften für Baukosten, Baudauer und Voraussetzung, um es überhaupt bauen zu können.
Klasse "Arbeiter" hätte weiterhin noch die Eigenschaften, die angibt, wie viel Zeit sie brauchen, um X Resourcen abzubauen.
Das Programm soll dann z.B. entscheiden: Wann baue ich einen Arbeiter, ab wann fange ich an Resource X abzubauen, wann baue ich Gebäude X, ..., baue ich lieber spät 2 Produktionsgebäude (die dafür dann parallel produzieren können) oder lieber früh 1 Produktionsgebäude, um am Ende 5 Einheiten zu haben? usw...
Die grundsätzliche Frage wäre: Wie programmiert man sowas? Also woher weiß das Programm, dass es sich vom Optimum wegbewegt?
Muss man da mit Rekursion arbeiten und einfach alles mal ausprobieren (Brute Force)?
Geht man an das Problem mit genetischen Algorithmen an?
Danke für Ideen + Gruß!