Gibt es einen signifikanten Unterschied zwischen der Verwendung eines quadratischen oder hexagonalen Gitters für den Bereich, der von einem Pfadsuchalgorithmus durchsucht wird? Mit anderen Worten, ist quadratisch oder sechseckig besser, und wenn ja, warum.
ai
path-finding
Edwin Earl Ross
quelle
quelle
Antworten:
Die Hauptüberlegung bei der Entscheidung, ob ein Quadrat-Hex-Gitter verwendet werden soll, sollte nicht die einfache AI-Implementierung sein. Die Suchalgorithmen für die Breite und Tiefe sind nahezu gleich, unabhängig davon, welche Art von Grafik Sie haben.
Vielmehr handelt es sich um ein Gameplay-Problem, das von den Game-Designern berücksichtigt werden sollte. Quadratische Gitter sind für den Massenmarkt besser zugänglich (Hex-Boards sehen in der Regel "geeky" aus), und in einer Welt mit Steuerelementen für Auf / Ab / Links / Rechts ist es vom Standpunkt der Benutzeroberfläche aus viel intuitiver, durch Quadrate zu navigieren als durch Hex-Felder. Quadratische Gitter neigen auch dazu, die Bewegung etwas stärker einzuschränken. Unter der Annahme einer orthogonalen Bewegung (und nicht einer Diagonalen) sind 4 Züge erforderlich, um ein Hindernis mit einem Quadrat zu umgehen, im Vergleich zu 3 Zügen in einem Hex-Raster. Vom Standpunkt der Programmierung aus sind Hexes auch ein bisschen einfacher zu implementieren, aber es geht nicht so sehr um Suchalgorithmen, als dass ein quadratisches Gitter einem zweidimensionalen Array entspricht, sondern dass ein Hex-Gitter nicht wirklich einer Standarddatenstruktur zugeordnet ist.
Die Kehrseite von quadratischen Gittern ist, dass sich die Bewegung niemals richtig anfühlt. Eine diagonale Bewegung sollte sqrt (2) Bewegungspunkte erfordern, aber in der Praxis ist es entweder eine Bewegung (bei der man das Gefühl hat, auf Diagonalen zu laufen, und es gibt selten einen Grund, orthogonal zu laufen) oder eine Bewegung (bei der sich die diagonale Bewegung zu langsam anfühlt) ). Mit Hex-Gittern ist die Bewegungsentfernung viel intuitiver, da sie immer dieselbe Entfernung von einem Hex zu einem anderen aufweist, unabhängig davon, welchen Weg Sie einschlagen.
quelle
Ich bin keineswegs ein KI-Experte, aber der Unterschied sollte vernachlässigbar sein. Quadratische Gitter sind etwas schneller (4 Verbindungen pro Knoten anstelle von 6), aber das ist nicht der limitierende Faktor in der algorithmischen Laufzeit. Je nachdem, welchen Algorithmus Sie verwenden möchten, ist der Code für ein Hex-Gitter möglicherweise etwas komplexer, da die Koordinatenberechnung etwas komplizierter ist und es schwieriger ist, die Abkürzungen für Quadtree / Octree zu verwenden, von denen ich glaube, dass sie es sind wird oft bei der Wegfindung verwendet.
In einer einfachen Welt wie einem rundenbasierten Strategiespiel sollte der Unterschied zwischen den beiden Layouts jedoch keine große Rolle spielen. Ein quadratisches Gitter ist etwas einfacher und schneller.
quelle
Es gibt einen praktischen Unterschied, den ich in Bezug auf die Pfadplanung ausdenken kann. Das Verfahren von der Mitte einer Hex-Zelle zu einem ihrer Nachbarn ist immer gleich weit, wohingegen dies für Quadrate nicht gilt, wenn Sie eine diagonale Bewegung zulassen.
quelle
Diese Anleitung für Sechsecke ist fantastisch. Der Teil über die Pfadfindung enthält ein interaktives Beispiel und einige Informationen zur Verwendung der quadratischen Pfadfindung.
quelle