Hallo,
Ich habe gestern ein A* Pathfinding Konzept in 3D-Gamestudio erarbeitet. Grundsätzlich funktioniert alles sehr gut und vollkommen ohne probleme. Ich habe nur 2-3 Fragen.. Vielleicht findet sich ja jemand der Interesse hat - und wenn nur über eine Frage - zu diskutieren

1) Wenn ein Player von A nach B laufen soll muss ich natürlich erstmal überprüfen, welcher Waypoint von Player A/B am nähsten ist. Das Problem: In komplexen Levels kann es tatsächlich sein, dass der nähste Waypoint nicht der nähste ERREICHBARE Waypoint ist (z.B. könnte dieser hinter einer Wand oder hinder einem magischen Schild oder was weiß ich liegen..). Wie geht ihr damit um?
2) Wenn waypoints nicht sehr engmasching im Level verteilt sind (spart natürlich fps und nerven), dann kann es teils zu unlogischen Bewegungen kommen. Beispiel:
x = wand, y = player, z = ziel
w = waypoint
xxxx
w2 w3
xxxx xx
y xx z
w1 xxxxxx
Der weg den der Spieler hier gehen würde wäre: y->w2->w3->z.
Viel menschlicher wäre aber wenn der Spieler direkt an der Wand entlang gehen würde und nicht erst den unglaublich unrealistischen weg von y zu w2 bewältigen müsste.
Es wäre möglich dauerhaft während des laufens zu tracen ob bereits einer der folgenden Waypoints erreichbar ist. Das wäre aber erstens langsam und zweitens würde es immer noch beschissen aussehen, weil die erste Richtung des Players nunmal richtung w2 ist...
Dann bleiben nur noch mehr Waypoints ==> wiedr sehr langsam.
Wie löst ihr dieses Problem?
3) Crowd Managment: Hat sich damit schon mal jemand auseinander gesetzt? Die Bewegung von vielen Entities aufeinmal (z.B. in einem Strategie-Spiel)? Es wäre ja vollkommen bescheuert hier jedes Entitiy einzeln zu berechnen.
Irgendwelche Erfahrungen vorhanden?
4 (und letztens)) Einheiten Kollision. Wenn jemand schon mal hier ein A* Pathfinding Script erarbeitet hat wird er auch sicher schon auf das Problem gestoßen sein, dass bewegliche Einheiten auf den Weg kollidieren können. Wie seid ihr mit diesem Problem umgegangen?
Vielen Dank im vorhinein,
mit freundlichen Grüßen,
TechMuc