Tile movement, moveto, and pathfinding would give you most of what you need mechanically, the other important part being setting states and choosing targets for the ghosts.
Pathfinding can be skipped by using a simple distance and angle check at "decision tiles" as described in the previously linked article. Tile movement can still be used rather than bullet. Have ghosts continue moving in their current direction until an intersection/decision tile is reached, then give them a new direction.