From three dimensions to two
Although for the majority of the piece, both the on-screen representations of underwater creatures are represented in two dimensions, flattened or drawn that way, in Act II, in addition to tracking the X and Y dimension, the code also tracks the Z position.
caughtThing.move(deltaTime);
// update the z components of each vertex for the projective transform
// initial it to 0
for (int i = 0; i < 4; i++)
{
corners[i].z = 0;
}
caughtThing.desiredPosition.z = 0f;
As the person moves closer to the camera, the net grows larger in their hands, as if being pulled forward in three-dimensional perspective rendering. Thus as two interactors work to coordinate to catch the mership in a net, they become reminded of the fact that they exist in three dimensions and hence are not native parts of this two-dimensional water world.