In Ihrem Spiel laufen beispielsweise 100 Gegner (in verschiedenen Teams) herum und ihre KI möchte die in der Nähe befindlichen Einheiten untersuchen, um festzustellen, welche angegriffen werden sollen. Was ist ein schneller Weg, um diese Entitäten so zu organisieren, dass nicht jeder Feind die Entfernung zwischen sich und allen anderen Entitäten berechnen muss?
Kurz gesagt, was ist eine schnelle Möglichkeit für eine KI-Entität, die Frage "Wer ist in meiner Nähe?" Zu beantworten.
3d
ai
entity-system
data-structure
khayman218
quelle
quelle
Antworten:
Sie möchten einen räumlichen Index wie Quadtree (2D) oder Octree (3D).
quelle
Die einfachste Lösung ist ein Raster . Lege ein 2D-Gitter über deine Ebene. Jede Zelle im Raster verwaltet eine Sammlung der Entitäten, die sie derzeit belegen. Wenn sich die Entitäten bewegen, nehmen Sie sie aus der Zelle, die sie verlassen, und fügen Sie sie der Zelle hinzu, die sie betreten.
Sie können dann Objekte in der Nähe finden, indem Sie die Zellen in der Nähe untersuchen. Ein Quadtree verfeinert dies, indem er das Raster rekursiv unterteilt. Manchmal ist jedoch ein flacher Raster ausreichend, insbesondere wenn Ihre Ebenengröße fest und relativ klein ist.
quelle