Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

UINT

Frischling

  • »UINT« ist der Autor dieses Themas
  • Private Nachricht senden

1

03.04.2011, 18:16

Waypointgraph/Navigationmesh erstellen

Ich arbeite grade an der Programmierung einer KI für ein Spiel, bei dem der Spieler auf seine Feinde schießt.
Diese sind nicht sehr intelligent, laufen nur auf den Spieler zu und greifen diesen, wenn sie nah genug an ihm dran sind, mit ihren Händen an.

Mein Problem liegt nun im Pathfinding. Die Gegner müssen ja irgendwie ihren Weg zum Spielerfinden.
Ich hab auch schon einiges über den A*-Algorythmus, Waypointgraphen und Navigationmeshes gelesen.
http://www.ai-blog.net/archives/000152.html
Auf dieser Website wird ausführlich (und überzeugend, wie ich finde) erklärt, warum Navigationmeshes besser sind, als Waypointgraphen.
Nur wie realisiere ich so ein Navigationmesh?

Vielleicht liegts an mir, aber nach langem googlen habe ich immer noch keine Ansätze, wie ein solches Mesh erstellt wird.
Alle scheinen selbstverständlich zu wissen, wie das funktioniert.
Es wäre also sehr nett, wenn mir jemand erklären könnte, wie ich ein Navigationmesh generiere.

Danke schonmal ;)

Edit: Ich benutze Visual C++ und die Irrlicht-Engine

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

2

03.04.2011, 18:48

Grundsätzlich orientiert man sich an der vorhanden Geometrie. Wenn du zum Beispiel in-door-scenes hast, dann bilden alle Quads/dreiecke auf dem Boden das grundsätzliche Navigation-Mesh. Natürlich ist das nur eine basis, man sollte dieses Mesh noch optimieren. Wie das genau funktioniert, ist eine philosophie für sich, da habe ich mich auch noch nicht so ausführlich mit beschäftigt. ansonsten ist es durchaus ok, wenn du ein modell in dein level renpackst, was du einfach als mesh speicherst. hat den vorteil, dass du deine ways selbstständig optimieren kannst.

UINT

Frischling

  • »UINT« ist der Autor dieses Themas
  • Private Nachricht senden

3

03.04.2011, 19:12

Danke.
Nur sollen später verschiedene Umgebungen geladen werden können (wie bei Counter Strike), bei denen das Mesh dann automatisch generiert werden soll.
Aber für die Alpha-Version reicht das erstmal ;)

Wie verbinde ich so ein Navigationmesh dann mit dem Algorythmus?
Ich habe in der KI-Programmierung noch keinerlei Erfahrung.
http://www1.bibl.fh-koeln.de/opus/vollte…df/greulich.pdf
Aus der Diplomarbeit von René Greulich (für die er, wie ich gelesen habe, einen Preis bekommen haben soll) erfahre ich, wie der A*-Algorythmus funktioniert, jedoch brauche ich dafür Knoten.
Wie lese ich diese nun aus dem Mesh aus?

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

4

03.04.2011, 19:48

jeder vertex ist dann ein knoten ;) und wenn du die knoten hast, dann kannst du a* anwenden. du brauchst dann ja nurnoch die gewichtung für die kanten (das ist einfach der abstand zwischen zwei vertices.

Werbeanzeige