What killed the progress momentum for a 3rd time:
oh fuck how do I code zombies to walk around obstacles

Infected Slaughter is a persistent bastard in my mind, that has and will continue to make little ground within the real world, such as in simple concept sketches and bugged filled .gmk files. This will continue to repeat it's self until I've literally beat a dead horse back to life and then some more to kill it once more, or gain enough coding knowledge and motivation to finally make a finish product.
<3 Skele, the persistent procrastination
p.s. I've been considering some tower defence/turn based strategy thing using my mutants and their out numbered survivors
I have a way you could make zombies walk around, but it makes them act kind of stupid for a few seconds after hitting a wall. Have zombies target the player, but if they hit a wall, have them stop following players, go in a random direction for a short time, then return to following players. Eventually, zombies will get to an angle conducive to not hitting a wall and reaching the players. I'm sure with a bit more work this could be improved on, but for a temporary zombie hits wall fix:
How it could be set up in game maker, this could be done without code. Here's how it would be set up, I believe.
Begin step:
Variable: Target player (1)
Variable: Collide (0)
//When zombies spawn, they target players and are not in collision with anything.
If variable Target player = 1
move towards player
//When nothing is in their way, go for the players.
If collision with wall occurs
Change Variable Target player (0)
Change Variable Collide (1)
//when they hit a wall, stop chasing players and enter the collision fix.
If Variable collide = 1
then move in random direction for X number of steps
//Zombies will move out of the way of an obstacle, then try again. I think if you made checks on the relative X and Y position of the player from the zombies you could make it so that zombies would be more likely to head towards the player, but without knowledge of how to do that, the best thing I can think of is random movement until it finds its bearings.
When step timer is up:
Change Variable Collide (0)
Change Variable Target player (1).
//After moving in that random direction for some time, go back to hunting.
Maybe that will make it work.