It's all about cameras
Level 3 introduces a new perspective trick by making the player look at the level from the opposite direction. The controls are relative to the player not the camera, so by turning things around like this it reverses the controls - to move 'right' you now press left. The arrow atop the player shows the direction of up on the d-pad. The final level uses multiple virtual cameras with alternating halves of the full path. The player has to flick between looking at the physical camera feed to see where they are and the two virtual camera feeds to see where to move next.
- When the physical camera loses track of one of the virtual camera markers, the lost virtual camera feed is rendered as old-school static with a message saying "CAMERA FEED LOST". There's another message for when the level marker is lost.
- Screen fades hide the transition between levels. When you complete a level the screen quickly fades to white, then loads the next level, then fades back in. It works quite well.
- When the player falls off the level they get shrunk as they go so it looks like they've fallen a long way.
- There are small angular brackets in the corners of the virtual camera feeds similar to the ones you see on camera viewfinders. There's also a flashing red circle and 'REC' message in the top left.
How it works
So we have the position of the centre of the marker, a. If we do a local transformation along z we'll get position b and if we do a further transformation along y we'll get position c. The eye of the camera is at b, the look-at vector is (c - b) and the up vector is (b - a). With these we can build a view matrix and then render the level geometry from the perspective of a camera floating above the marker. As the marker moves, so does the view.
Surprisingly this is the first time I've made a puzzle game and I thoroughly enjoyed designing the levels for it. I might continue playing with this multi-camera dynamic in a purely virtual format as AR games aren't exactly easy to play, though I do think the tactile nature of the player physically moving the cameras (albeit via their markers) adds a lot to the game. Overall I'm really happy with it as a proof-of-concept and those who have played it seemed to really enjoy it!