how do you debug time travel?

ok... this is a world

and this is a node inside that world

when you click a node, it fires!

it goes back to normal on the next beat

nodes fire any nodes that they point to

you can chain multiple nodes together in this way.

so far so good

here's the fun bit

nodes can point to nodes in the future

nodes can chain to other nodes as always

following so far?

here's where it gets tricky

just like nodes can point to the future... they can also point to the past.

the blue node at the bottom left fires because another node *will* fire on the next beat

the engine should be able to figure all of this out! just work out the future state of the middle node.

but if you naively check the future state of *every* node (like I did) you'll get stuck in an infinite loop

the engine doesn't look like the above diagrams. it looks like this one below.

but I think I'll start to use them to help me understand how it works.

it's how it works beneath-the-surface, after all!

@TodePond Wow! Smells like a job for a SAT solver!
@TodePond To me this looks like git commits 🤔