Things have not being going that well for me. I had to rewrite my engine two times. The first time I tried synchronized grid-based movement for the characters. They would use a global variable to slide from cell to cell… but I couldn’t figure out a way to make queues and priorities work. Who would get first dibs on an empty cell? What if there was a really complex queue? Would they figure out a way to move out of the way? It also looked a bit strange with characters not being able to move into seemingly empty cells because someone had called dibs on them.
So I tried something a bit more analog, but made a mess of the code and there were big problems with getting stuck against tiles and not sliding against them properly. The maze is really tight so you need to be able to easily slip around corners.
Finally, I managed to write a huge chunk of code which slides the player around edges, e.g. if pressing against a wall the game will look for a gap nearby and walk the character towards it. I also added buckets which helps me with depth sorting (overlapping) and it will also make collisions easier to detect later. Some characters will be vulnerable from the back. Slimes are sort of omnidirectional though.
There’s a lot of work left, but perhaps I shouldn’t underestimate what I have finished so far. Regardless, it will be a busy day tomorrow.