Du bist nicht angemeldet.
Seiten: 1
Habe heute angefangen damit zu experimentieren, die KI in Threads auslagern zu koennen.
Damit muss die KI "asynchron" werden, dass heisst statt direkt die KI-Funktion "OnMinute" (Eine Ingame-Minute ist um) aufzurufen, bekommt sie nur noch die Information auf einen Stapel und muss sich selbst um das Abarbeiten dieser Stapel kuemmern.
Kurzum wuerde die KI also in einer Dauerschleife den "Stapel" ueberwachen statt direkt den Zettel in die Hand zu bekommen und dann just in diesem Moment darauf zu reagieren.
Ich denke das ist notwendig, da vor allem Dinge wie die Programmplanung doch manchmal ein paar mehr Millisekunden brauchen als verfuegbar (bei 60 Logikupdates pro Sekunde bleiben also 15ms fuer die ganze Spiellogik eines Updates - da passen die bei mir teils 40ms fuer die Planoptimierung nicht rein und es fuehrt zu kurzem ... Ruckeln).
Das bedeutet aber, man muss alle moeglichen Stellen beachten um das "KI Programm" (Thread) zu beenden (Spielende, Spielerbankrott, ...), zu pausieren (wenn Menu aufgerufen etc).
Auch muessen zeitgleiche Zugriffe beachtet werden (ki 2 fuegt film in den Plan waehrend die Hauptlogik gerade den Plan auswertet).
Problematisch waere denke ich auch der Schnellvorlauf. Was ist, wenn die KI nicht ganz "hinterherkommt" und sich was aufstaut.
Ich schaetze man muss noch Befehle einbauen die dann doch auf die KI "warten", so dass sie - falls noetig - Zeit bekommt angemessen auf Dinge zu reagieren. Hoffe das ist vermeidbar, da es dem Prinzip der asynchronen Vorgehensweise widerspricht.
Alles in allem ein Garant fuer Fehler. Mal schauen.
bye
Ron
Offline
Derzeit sind einige Funktionen die fuer eine KI in "Threads" von mir genutzt wuerden, noch nicht "thread-safe" (hier die "Reflexion" die es ermoeglicht aus Texten wie "TProgrammeLicence" auf die entsprechend genannte Klasse im Code zuzugreifen).
Entsprechend liegt das Projekt "Threaded AI" erstmal auf Eis und ich konzentriere mich auf die Optimierung der genutzten Prozessorzeiten und generell ein paar Verbesserungen in der KI.
bye
Ron
Offline
Tschuldige, wenn ich den Bürokrator raushängen lasse.
Aber in dem TVTower-Strang geht echt viel unter. Wäre gut, den zu schließen und einen für den nächsten Test-Patch zu öffnen.
Es ist einfach gut, Themenspezifisch zu den einzelnen Themen die Fortschritte zu finden, auch wenn es nicht viel oder gar perfekt ist.
Ist dann einfacher, sich wieder einzuarbeiten. Oder als Neuhelfer einen Plan zu finden.
Also plädiere ich für höher Strangdisziplin.
Offline
Du kannst ja einfach meine Beitraege und "drauf antwortende Beitraege" rauspfluecken ;-).
Ich scheue halt manches Mal einfach den Mehraufwand "bezug nehmend auf Beitrag X in Thread Y hier meine Replik"-Threads zu starten.
bye
Ron
Offline
Seiten: 1