Du bist nicht angemeldet.

#1 21.06.2019 00:27

Ronny
Administrator
Ort: Chemnitz
Registriert: 08.11.2001
Beiträge: 11.288
Webseite

KI

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


sigimg2.php?id=1

Offline

#2 07.07.2019 14:59

Ronny
Administrator
Ort: Chemnitz
Registriert: 08.11.2001
Beiträge: 11.288
Webseite

Re: KI

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


sigimg2.php?id=1

Offline

#3 10.07.2019 17:56

Gast2
TVT-Roadie
Registriert: 07.06.2013
Beiträge: 4.276

Re: KI

Tschuldige, wenn ich den Bürokrator raushängen lasse. smile

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. smile

Offline

#4 10.07.2019 18:54

Ronny
Administrator
Ort: Chemnitz
Registriert: 08.11.2001
Beiträge: 11.288
Webseite

Re: KI

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


sigimg2.php?id=1

Offline

#5 10.07.2019 19:33

Gast2
TVT-Roadie
Registriert: 07.06.2013
Beiträge: 4.276

Re: KI

Ist aber wirklich besser, wenn Du Dir angesichts der tobenden Kinderschar so langsam ein gewisses Ordnungsargumentationsgerüst zusammenstellst. smile

Offline

Schnellantwort auf dieses Thema

Schreibe deinen Beitrag und versende ihn
Bist Du ein Mensch oder ein Roboter ?

Verifizierung, dass diese Aktion durch eine reale Person vorgenommen wird und nicht von einem Programm.