PacMan - Pathfinding - er findet den Weg nicht!



  • hi,
    ich habe vor eine PacMan-Clone zu schreiben. Eigentlich funktioniert auch fast alles, mit der Ausnahme des Pathfindings.
    Ich habe jetzt an Hand der Seite http://www.catforce.de/Tutorials/AStern.html versucht einen A*-Algorythmus zu schreiben.
    Doch aus irgendeinem mir nicht erklärbaren Grund findet er nie einen Weg.
    Ich muss auch zugeben, dass ich die Art und Weise der Verwirklichung nicht so ganz kapiert habe, da z.B. mit Bit-Operatoren gearbeitet wurde, von denen ich keine Ahnung habe wie sie funktionieren.
    Könnte sich jemand von euch bitte den Source ansehen und mir vielleicht helfen?
    http://www.gikrasoft.de.vu/gikrasoft/downloads/pacman.zip

    Tschau Gartenzwerg



  • Fang halt nicht gleich mit A* an. Für PacMan dürften einfachere Methoden völlig ausreichen. Ich behaupte mal, das Spiel ist allein schon unschaffbar, wenn nur jeder Geist in die Richtung vom PacMan geht.

    Außerdem hat hier mal jemand geschrieben, dasss jeder Geist ne eigene KI hatte. Der eine bewegte sich zufällig, usw. Das dürfte das Ganze wesentlich interressanter machen, Sonst laufen doch alle Viecher in einer Reihe um den PacMan zu jagen.



  • hi,
    ich weiß, dass jeder Geist eine eigene KI hat. Der erste rennt nur zufällig rum, der zweite geht auf PacMan zu, der dritte versuchte den nächste Kreuzung vor PacMan zu erreichen und beim letzten bin ich mir aber nicht so sicher. Ich glaube, er läuft auch nur zufällig und wenn PacMan in seiner Nähe ist verfolgt er ihn. So will ich es ja auch machen.
    Wie bekomme ich den die Richtung ohne A*, in der der Weg zu PacMan bzw. zu nächsten Kreuzung vor ihm liegt, heraus?

    Tschau Gartenzwerg

    PS: Kennt einer ein gutes Tutorial zu Programmierung mit Bit-Operatoren wie z.B. >>



  • << links shiften

    > rechts shiften

    Es gibt übrigens sehr viele verschiedene Wegfindungsalgorithmen, für PacMan dürften die simpelsten Trace-Algorithmen völlig ausreichen. Wenn du A* verwendest, schießt du mit Kanonen auf Spatzen.



  • A* ist doch relativ simpel und gleichzeitig effizient. Welches sind denn die Trace Algorithmen? BFS?



  • hi,
    ok, was sind den Trace-Algorithmen?
    Habt ihr einige Bsp. o.ä.?

    Tschau Gartenzwerg



  • Hier steht nomma bissl genauer wie das mit der KI bei Pacci funzt:

    After you finish your Breakout masterpiece you should move on to making Pac-Man. Pac-Man is an evolutionary step because it adds in the element of enemy artificial intelligence (AI). You may not have been aware of this, but in the original Pac-Man the four different ghosts had different goals to trying to defeat you as a team. The aggressor would try to follow the shortest path to you, making you directly avoid him. The interceptor would try to go to a junction that was closest to where you would have to move to avoid the aggressor. A second interceptor would try to stay more towards the middle and try to cut you off from using the tunnel through the sides. The last ghost would sort of wander aimlessly about which often kept him staying in a section you needed to finish the map.

    This kind of detailed AI was quite advanced for games of that time, and should give you a good challenge for your first game with enemy AI.

    Pac-Man also increases the complexity of maps, and adds a good deal more flexibility for using sounds, as sound was certainly a crucial elements to the success of Pac-Man. (After all, what would Pac-Man be without some sort of "wakka-wakka" sound?)

    http://www.lupinegames.com/articles/path_to_dev.html



  • Wie kann man das spielen??? muss man des zuerst kompilieren 😕



  • hi,
    @ Roland++: man muss es erst kompilieren, wenn du es mit den Dateien des vorigen Links spielen willst. Die letzte lauffähige Verion findest du unter http://www.gikrasoft.de.vu/gikrasoft/downloads.php4 (da ist noch kein Pathfinding bei)

    @ all: Was sind nun Trace-Algorithmen? Oder wie kann ich jetzt die KI der Geister gestalten?

    Tschau Gartenzwerg



  • Auf Gamasutra gibt es ein nettes Pathfinding Programm, wo man unter verschiedenen Algorithmen auswählen kann.
    Ein möglicher Trace Algorithmus z.B. wäre, in die Zielrichtung zu gehen, bis er an ein Hinderniss stößt und dann an der Wand entlang geht. Durch Ausprobieren kann man auch noch herausfinden, ob es besser ist, links oder rechts rum zu gehen.

    Für PacMan IMO völlig ausreichend.

    Natürlich spricht nichts gegen A*. Aber ich finde es für ein PacMan ein klein wenig übertrieben.



  • Kanns net spielen 😞
    bei mir steht dass die dll-Datei GLU32 fehlt 😞



  • hi,
    @ Roland++: neues Paket mit Glu32.dll ist jetzt online. Welches BS hast du denn ich dachte seit Win98 liefert Microsoft die Glu32.dll mit.

    @ Optimizer: Hast du einen Link für Gamasutra? Ich werde dann da mal nachsehen.

    Kennt den keiner ein gutes Tutorial über Bitoperationen?
    Weitere Vorschläge für die KI der Geister sind immer willkommen.

    Tschau Gartenzwerg



  • Optimizer schrieb:

    Auf Gamasutra gibt es ein nettes Pathfinding Programm, wo man unter verschiedenen Algorithmen auswählen kann.
    Ein möglicher Trace Algorithmus z.B. wäre, in die Zielrichtung zu gehen, bis er an ein Hinderniss stößt und dann an der Wand entlang geht. Durch Ausprobieren kann man auch noch herausfinden, ob es besser ist, links oder rechts rum zu gehen.

    Und jetzt rate mal, was A* macht!



  • A* läuft nicht, bis es an ein Hinderniss stößt und geht auch nicht einfach an der Wand entlang bis es vielleicht mal wieder in Zielrichtung weiter geht. A* "probiert" auch nicht in dem Sinne aus, wie ich es beschrieben habe.

    Und raten muss ich auch nicht, weil ich es weiss.



  • Optimizer schrieb:

    A* läuft nicht, bis es an ein Hinderniss stößt und geht auch nicht einfach an der Wand entlang bis es vielleicht mal wieder in Zielrichtung weiter geht. A* "probiert" auch nicht in dem Sinne aus, wie ich es beschrieben habe.

    Sondern? A* weiss schon vor dem "Hinderniss", das es ausweichen muss?



  • Auf meinen Pc hbae ich 95!
    Wo kann ich das Packet runterladen 😕



  • Wie wär's mit "download glu32.dll" in google einzugeben!??
    Ach, falls Du google nicht kennst: ➡ www.google.de 😉



  • Daruf könnte ich eigentlich auch selber kommen. THX! 😃

    //edit:
    Habs mal gespielt! Das spiel gefällt mir sehr gut 🙂

    Bugs:
    -wenn man Esc drückt spielt bei mir das Spiel ab und die Maus bewegt sich nur
    noch ganz langsam.
    (-)Leichtes ruckeln bei 1200 MGHz ?
    -Die Gegner verschwinden manhcmal für ca. 2 sekunden 😕
    Verbesserung:
    -Vielleicht noch "Optionen" wo man die einzelenen Gegenstände (z.B. Kirschen)
    und die Steuerung erklärt.
    -zu langsames Tempo. Das frustriert 😞


  • Mod

    TGGC schrieb:

    Optimizer schrieb:

    A* läuft nicht, bis es an ein Hinderniss stößt und geht auch nicht einfach an der Wand entlang bis es vielleicht mal wieder in Zielrichtung weiter geht. A* "probiert" auch nicht in dem Sinne aus, wie ich es beschrieben habe.

    Sondern? A* weiss schon vor dem "Hinderniss", das es ausweichen muss?

    wie optimiser schon sagte, bewegt sich A* nicht auf eine wand zu und dann an ihr entlang, du kannst es ihm ruhig glauben, er hat das bis zur verdammniss implementiert/optimiert (soweit ich weiß)

    rapso->greets();



  • Na dann sagt es doch mal, damit ich nicht dumm sterben muss. Woher weiss A* schon, das stur geradeaus laufen nicht funktionieren wird, bevor er das "Hinderniss" findet?


Anmelden zum Antworten