Day 3: Movement

Up until now my game characters had been rooted to the spot. Nearly all my work today has been put into making them move around freely.

First I implemented pathfinding so that characters can avoid obstacles. Input to the pathfinding is just an image showing which pixels they should be able to stand on - easily generated with Inkscape:

The pathfinding downsamples this image and finds a route using the A* algorithm (note the debug minimap in the corner, corrected for foreshortening):

Lastly, NPCs are plotted onto the map, so you won't be routed through another character:

With this, the characters are coming to life! It's still not a game - you can't do anything with items, for example. But the engine is nearly done, and there's plenty of time left, so I think I'm on target.