So, a while back I had the idea to create a 4 dimensional game presented in 2 dimensions. I let the idea float around in my head for a few weeks, until I finally decided to prototype it with Game Maker 8. Here's the result!http://dl.dropbox.com/u/3372891/4d.exe
(10.6KB Source .gmk)
Essentially, it's just two superimposed 2D planes that technically add up to 4 dimensions. I made this prototype to test 4 dimensional collision. I'll attempt to explain it the best I can.
Each 4 dimensional entity is composed of two individual objects. The blue dot represents the 4D entity's X and Y position, or length and width. The purple dot represents the 4D entity's Z and W position, or height and the 4th dimension. Both dots are capable of moving in the same directions at the same speed, they're just on separate planes. The purple dot behaves exactly like the blue, it just represents Z and W. Ignore the "Colliding" text, it doesn't matter if the two dots collide with each other.
Two entities: The "player" entity, which can be controlled via moving each dot individually with WASD and IJKL, and the "enemy" entity, whose dots move randomly in their individual directions. If just a red and blue dot collide (or just a purple and orange, or any combination), then the 4D entity itself doesn't collide, because all of the points need to be meeting for the 4D object as a whole to collide.
The entities are only colliding if the blue and red dots meet, as well as the orange and purple dots. So on an actual fourth dimension, and not just a 2D representation, their X, Y, Z and W points are all meeting.
Not colliding, even though two pairs of dots are meeting. The orange and purple dot are on a separate 2 dimensional plane, so they can't collide with the blue and red dots. The red dot's X and Y are meeting with the purple dot's Z and W. So basically, length and width wise it's in the same position, but height and fourth-dimension wise, they're not meeting. It only collides if the two dots on their proper plane collide.
Still hopelessly confused? Let me try to explain the same concept, but with 3 dimensions represented in 2. This will show how the way each dot can move contributes its respective dimensions.
The blue and purple dot make up a 3D entity. This is because the blue dot can move in 2 dimensions (left, right, up, down, diagonals), and the purple dot can only move in 1 (up and down). 2+1=3. 3 dimensions. The blue dot represents length and width (x and y), while the orange dot represents height (z).
Now there's another 3D entity, represented by the red and orange dots. Just like the other one, the orange dot can only move up and down (in 1 dimension) while the red dot can move in 2 dimensions. For a proper collision, the orange and purple dots have to meet up, as well as the blue and red dots.
These 3D objects are colliding. The orange and purple dots are meeting up (Meaning the 3D objects have the same height position). Just as well, the blue and red dots are meeting up as well (Meaning the 3D objects have the same length and width position). Voila! 3D collision represented in 2 dimensions!
Not a proper collision. As this is only a 3 dimensional realm, there is only one 2 dimensional plane and one 1 dimensional surface. The collision only counts if the two objects on the 1D surface collide (Purple and orange) and the two objects on the 2D plane collide (Red and blue). They only seem to be colliding because the planes are superimposed, when in reality the two sets of dots are on completely different surfaces.
Anyway, that's the best I can explain it. I toyed around with other visual cues (like having one 2D object with Z and W represented by hue and value, so each 4D entity would only be one object), but this seems to be the least awkward. This whole concept is based on the way dots can move accounting for respective dimensions, so it's also possible for there to just be 4 objects moving in 1 dimension accounting for one 4D entity. Feel free to toy around, give input, etc. Just a neat little experiment I decided to share, but I think it has potential, especially as an open-source community project.