Wenn ich an meinem Spiel arbeite, bin ich an dem Punkt angelangt, an dem ich alle Einheiten der Welt verfolgen muss, damit ich die nächsten Nachbarn für den Kampf überprüfen kann. Dies ist ein RTS-ähnliches Spiel, bei dem sich möglicherweise Tausende kleiner automatisierter Einheiten bewegen.
Ich habe mich mit KD-Bäumen und Quadtrees (insbesondere Point Quadtrees) befasst. Ich versuche immer noch, die Details ihrer Funktionsweise zu erfahren, aber bisher sind Point Quadtrees für mich am sinnvollsten. Ich habe jedoch den Eindruck, dass KD-Bäume schneller zu suchen sind, was bei der Anzahl der Punkte, die ich im Baum habe, wichtig ist.
Andererseits werde ich in meinem Fall eine große Anzahl von Einheiten verfolgen, die sich immer bewegen. Von Bild zu Bild sind ihre Positionen immer unterschiedlich. Quadtrees lassen sich anscheinend schneller neu ausgleichen als KD-Bäume, aber ich weiß nicht, ob dies zutrifft, wenn Sie jeden Punkt im Baum neu ausgleichen .
Ich frage mich, ob es in diesem Fall besser wäre, den Baum in jedem Frame zu verschrotten und von Grund auf neu zu erstellen, als zu versuchen, jeden einzelnen Punkt im Baum neu auszugleichen. Wenn ein Quadtree schneller neu ausbalanciert werden kann, bedeutet das auch, dass er schneller von Grund auf neu erstellt werden kann? Wenn ja, ist dies möglicherweise wichtiger für die Leistung als die Suchgeschwindigkeit des KD-Tree, je nachdem, wie aufwändig das Erstellen des Baums ist, aber ich weiß nicht ...