I have an idea for a game that extends the kind of puzzles in the game Hocus, so I thought I'd try to recreate its movement system. This is proving tricky & I have a question for anyone with experience making an isometric game.

First of all here's what Hocus looks like:

& here's its level editor:

My first thought was to use graph movement, moving from node to node, having cases based on each node's connections to determine which move directions are possible, if there's an obstruction, where you stop etc.

The cases turned out to be simple for a closed impossible figure like a penrose triangle:

-If a node has link in the same direction as player's upvector then an obstacle is found. Player can move in direction of obstructing link or go back the way they came.

-Else player can move along any link within their current plane (eg. if player up is +Z they can move in any XY direction from that node).

Here's how it turned out: https://dl.dropboxusercontent.com/u/523 ... index.html

& here's the sprites I used (I'm not posting the capx because it's embarrassingly long-winded & messy):

The next step is to figure out how to handle various cases for crossover edges:

My current approach of handling each node case by case is getting hard to manage, especially for player z-ordering. So my question to anyone who's made a 2d isometric game: would iso movement make the movement & obstacle testing easier, & can you think of any tricks to simplify things?