Topic: [Patch] KI-Verbesserung
carli Topic Opener |
Posted at:
2010-12-31, 18:00 UTC+1.0
Hi, ich hab ein bisschen an der KI rumgeschraubt, weil sie mir zu leicht gewesen ist. Folgende Verbesserungen sind drin:
ToDo: - nur neue Militärgebäude bauen, wenn die Soldaten nicht knapp sind - bewusst Militärprodukte bauen (zur Zeit baut er sie nur, weil er alles bauen will) Hier der Patch: http://pastebin.com/4yB6yde8 Vielleicht nimmt ihn jemand in das Repository auf, ich wäre demjenigen sehr dankbar Anmerkung: Die KI ist jetzt wesentlich aufregender, jedoch noch nicht wirklich eine Herausforderung. Das wird sich allerdings noch ändern, wenn ich erstmal die militärischen Taktiken überarbeitet hab und die Wirtschaft nicht so viele unnötige Gebäude baut.
Edited:
2010-12-31, 18:05 UTC+1.0
![]() ![]() |
Nasenbaer![]() |
Posted at:
2011-01-01, 13:37 UTC+1.0
Moin carli, erstmal frohes neues Jahr :)! Dein Patch schaut auf den ersten Blick interessant aus. Ich bin mal gespannt, wie sich das alles ausmacht, wenn ichs im Spiel teste. Die Veränderungen am Mining Code sehe ich allerdings sehr kritisch - "onlymissing" bedeutet, dass zur Zeit zu viele Baustellen vorhanden sind und der Computer Spieler warten soll, bis ein paar der Gebäude fertig sind - nur Gebäude die kritisch wichtige Baumaterialien herstellen sollen dann noch in Auftrag gegeben werden (und auch nur, wenn die nicht bereits vorhanden sind) - wenn man jetzt noch andere teuere Gebäude in Auftrag gibt kann es sehr gut vorkommen, dass der Computerspieler keine Rohstoffe mehr für andere wichtige Gebäude übrig hat. Was das angeht ist leider der ganze "was wird gebaut" Code ziemlicher Murks - eigentlich sollte der Computer Spieler schauen, was er benötigt und zugleich schauen, ob er die Waren, die für die Produktion eines benötigten Gebäudes gebraucht werden besitzt bzw. produzieren kann (wobei er andere Baustellen mit einbeziehen sollte). Und auch generell ist die Berechnung eher ein "let's try if it works with some magic numbers" Von daher: wenn du dich da ranwagen würdest, würdest du den Computer Spieler schon enorm verbessern und etlichen Leuten einen Gefallen tun. Aaaalso... ich schau mir das nachher mal genauer an. Nun erstmal wach werden LG Nasenbaer ![]() ![]() |
carli Topic Opener |
Posted at:
2011-01-01, 14:02 UTC+1.0
Ich glaube, die only-missing-Klausel kann aus dem Patch raus. Gut, dass ich mal erfahre, was onlymissing macht
Jep, ich hab schon überlegt, dass man im Prinzip ein schönes Wirtschaftskonzept ausrechnen lässt, wieviel Gebäude welche Waren produzieren, jeweils mit dem Ziel, am Ende möglichst viele Soldaten zu kreieren. Sobald die KI das Konzept erfüllt hat, kann sie ihr Konzept erweitern.
Ich bin nun in C++ nicht so versiert (andere Sprachen sind schöner ;)), aber ich werd's schon hinbekommen
Jep, ich glaube nämlich kaum, dass alle so viel Zeit für ein komplettes Online-Spiel haben. ![]() ![]() |
Nasenbaer![]() |
Posted at:
2011-01-03, 21:31 UTC+1.0
Sooo.... Sorry, dass es so lange gedauert hat, aber immerhin kann ich jetzt vermelden, dass ich deinen Patch mit kleinen Veränderungen ins bzr übernommen habe. Nun warte ich nur noch auf weitere Änderungen von dir Kannst du die Fixes dann direkt als bzr branch hochladen, das macht das ganze zum testen und auch später zum mergen einfacher :). LG Nasenbaer ![]() ![]() |
carli Topic Opener |
Posted at:
2011-01-03, 21:51 UTC+1.0
Mal ne andre Frage: Wieso sind diese Zeilen in der CMakeList?
Die verhindern mir die Arbeit mit einem ungepatchten Tip. ![]() ![]() |
Nasenbaer![]() |
Posted at:
2011-01-03, 22:01 UTC+1.0
cmake verändert und erstellt einige Dateien. Würdest du jetzt einen bzr commit machen (bzw.einen Patch erstellen), würde er diese Änderungen mit einchecken. Daher ist das bauen im Quellcode-Ordner per default verboten. Aber andersrum gefragt, warum willst du denn im checkout direkt kompilieren? Der einfachste weg geht über ./compile.sh und später über ./update.sh bzw. mit ähnlichem Setup von cmake, also z.B. compile in ./build oder ähnliches. ![]() ![]() |
carli Topic Opener |
Posted at:
2011-01-05, 19:04 UTC+1.0
Gleich noch ein Fragenkatalog, doch zuerst mal mein Ansatz zur Lösung der KI-Frage:
Jetzt die Fragen: - Was sagt genau preciousness für eine Ware aus? - Haben die Producer eine gewisse Zeit, die sie für die Bearbeitung einer Ware benötigen? - Wenn ja, wie bekomme ich die heraus? (bzw. das Verhältnis der Gebäude) Weitere Gedanken, was ich gedenke, zu tun: - zuerst mal wird wares.at(i).production_target mit dem Baustoffbedarf jeder möglichen Baustelle gefüllt, damit erst mal der Baustoffbedarf erfüllt wird - Ist eine Wirtschaft aufgebaut, die genau diesen Soll erfüllt, startet die zweite Phase der Taktik - Es wird geschaut, woraus man Soldaten macht, von dem wird der wares.at(i).production_target erhöht - Ist der Soll erfüllt, geht die dritte Phase los: - Die bo.cnt_planned von den Ausbildungsstätten wird erhöht - Sollte der Soll erfüllt sein, so wird die Waffenindustrie wieder hochgeschraubt, falls genug Rohstoffe da sind - Sollten nicht genug Rohstoffe da sein, so wird die KI mehr Berge zu vereinnahmen zu versuchen. ![]() ![]() |
Chinchey |
Posted at:
2011-01-06, 11:20 UTC+1.0
Ich fände es gut wenn die KI an Bergen versucht größere miltärische Gebäude zu bauen um alle Resourcen in einem Berg abzubauen. ![]() ![]() |
Venatrix![]() |
Posted at:
2011-01-06, 13:59 UTC+1.0
Ist dieser Punkt nicht mit
abgedeckt? Two is the oddest prime. ![]() ![]() |
Nasenbaer![]() |
Posted at:
2011-01-06, 16:31 UTC+1.0
- Was sagt genau preciousness für eine Ware aus? Das sind über die Zeit (quasi per try and error ;) ) ermittelte Werte die dem computer Spieler sagen sollen, wie sehr er sich um die Herstellung einer Ware kümmern soll - hat also mit dem tatsächlichen Wert wenig zu tun - Beispielsweise ist der Wert für "trunk" extrem hoch, weil er Holz für so ziemlich alles benötigt. - Haben die Producer eine gewisse Zeit, die sie für die Bearbeitung einer Ware benötigen? Ja haben sie - allerdings ist die zum Teil variable - Kann zum Beispiel sein, dass der Schmied eine Axt erstellen will, beim Check dafür aber kein Eisen hatte, dann kurz darauf das Eisen kommt und er nun erstmal die anderen Waffen überprüft, ob diese Produziert werden sollen - alternativ könnte es aber auch sein, dass das Eisen kurz vor dem Axtcheck eintrifft. Und sowieso ist es schwer was dazu zu sagen, weil die Transportwege ja auch wieder enorm mit reinspielen. So oder so, das was du suchst kannst du in den conf Dateien der einzelnen Gebäude finden - einfach mit einem Texteditor öffnen und nach dem "Work" Programm suchen. Und wenn ich das richtig in Erinnerung habe, gibt es auch ein Feature in Widelands, dass eine Dokumentation der einzelnen Stämme als HTML-Bibliothek erstellt (führ mal "widelands --help" aus, da sollte was stehen denk ich - habs gerade selbst nicht vor mir). Die weiteren Gedanken hören sich auf jeden Fall schon sehr gut an - wäre aber super wenn du zu jedem Zeitpunkt noch eine (der Aggressivität des Computerspielers angepasste) Überprüfung für den Militärgebäudebau mit einbaust, damit er auch immer schön weiter expandiert. :) Looking forward to see your next Patch (or even better bzr branch :) ) Liebe Grüße Nasenbaer ![]() ![]() |