Der Routenalgorithmus, den ich auf meinem TD verwendet habe, war aufgrund der Anzahl der Entitäten, die ich im Spiel hatte, vom normalen A * -Pfad rückwärts. Anstatt vom Tor zu den Bösewichten zu gelangen, habe ich vom Tor zu jedem freien Feld auf dem Brett geführt.
Dies dauert nicht sehr lange. Sie iterieren das Board nur, bis Sie Ihre "Kosten" gefunden haben, und es bietet ein gutes Feedback für blockierte Routen (wenn Sie diese tun). Der Floyd-Algorithmus ist im Vergleich zu A * schnell und cachefreundlich, da er keine datenabhängigen Suchvorgänge ausführt, sondern nur Daten in Streams lädt und verarbeitet.
Beginnen Sie damit, dass Ihr Board auf unendliche Kosten eingestellt ist, setzen Sie das Zielquadrat auf Null und iterieren Sie dann über das Board, um festzustellen, ob eine benachbarte Zelle weniger kostet als die aktuellen Kosten plus die Reisekosten. Die Reisekosten sind dort, wo Sie Ihre Heuristik angeben (in meinem Fall waren die Kosten für das diagonale Reisen unendlich, aber die Kosten für das Reisen durch einen Turm waren hoch, so dass sie durch Türme essen durften, es sei denn, sie hatten keine Wahl)
Sobald Sie Ihr Kostenraster haben, können Sie schnell ein "Fluss" -Raster daraus erstellen, indem Sie den steilsten Kostengradienten für die Zellen testen. Dies funktioniert sehr gut für große Mengen von bösen Jungs, da keiner von ihnen jemals einen Weg finden muss, sie folgen einfach den virtuellen Wegweisern.
Ein weiterer Vorteil ist, dass Sie diese Aufgabe auf diese Weise nur jedes Mal ausführen müssen, wenn Sie die Hindernisse anpassen (oder in meinem Spiel, wenn sich ein Schleicher durch einen Ihrer Türme frisst). Nicht jedes Mal, wenn ein Creep / Mob das Feld betritt (was bei Tausenden von Mobs und Dutzenden pro Sekunde ein ziemlicher Kopfschmerz gewesen wäre).