Interview for the Creators Project

Did an interview for the Creators Project. I think it came out pretty well!

When did you first think of the idea for a 4D video game?

I had the idea for a hyper-dimensional game in college, maybe around 2005? When you program a 3D game, every object’s position is represented using three numbers (usually called x, y and z), but that concept easily generalizes. Why not four numbers or more? At the time, a big tech company’s programming interview question involved computing whether two 2D rectangles overlap. It turns out the code for this generalizes extremely easily to the 3D case of cubes and to any number of dimensions: you just have to change a single number, the dimension of the space. So the idea came from this as a joke almost, like “I could answer your programming question for any number of dimensions.” But it made me start to wonder, what would it an actual n-dimensional game be like?

The idea stayed in the back of my mind until around 2008, when I decided I wanted to make a game that would satisfy both my love of game design and tech, in particular computer graphics. I made a list of my most experimental game ideas, and a 4D game came at the top of the list, so I started to build some prototypes. The first few prototypes were not very good however, and I later realized the main reason was that even though the game was taking place in a 4D world it was not clear to me what the consequences of being able to move in 4D were. What could you do that you couldn’t do in 3D? […]

Tell me about the programming tech behind the puzzles.

The game runs on its own custom 4D engine that I developed from scratch. Every position in the game is *actually* represented with four numbers. There are no tricks or hacks. We are building what a 4D world would be like, in many ways. This creates a space were puzzles happen naturally: they are just simple consequences of 4D space. More traditional puzzle games very carefully set up situations, and the behavior is limited to what the designer has intended (for example you need to input the right code to open the door, and the code is written down somewhere hidden). Because what we are building is so general, I might not know all the solutions to a particular puzzle… or I might discover a lot of puzzles by just setting up random situations and playing and seeing what happens. If something surprising and interesting happens, I will make it into its own puzzle.

PAX East 2014 Report

PAX East went very well. We had four stations, and they were all filled for the whole duration of the show. I wish we could have had more for the people who waited in line; maybe next time we will get a larger booth. We also had the trailer looping on a large TV, and an explanation of “how to walk through walls using the fourth dimension” running underneath, on a smaller monitor (it will be the next trailer).

I noticed I don’t learn much from playtesting the beginning of the game anymore. It is solid and people just get it eventually. I guess that means all there is left to do is finish the game!

I do still learn a lot from explaining the game to people. Every time I do it the explanation gets more concise, and different people need different explanations. This becomes useful later on when writing for the website, or to explain the game to press. But really sometimes I feel other people are better at explaining the game than I am, as I’m too close to it now. Thanks to Christopher Hart & Colin Hart for helping out at the booth!

Pax

Pax (1)

Pax (3)

Pax (2)

Pax (4)

What is that shape at the end of the trailer?

Miegakure Trailer Screenshot

The shape at the end of the trailer is called a 120-cell (or Polydodecahedron, or Hecatonicosachoron, which sounds cooler, but a bit too hard to pronounce). It is actually modified a bit, but first let me explain some basics.

You see, a 3D object has a 2D surface, whereas a 4D object has a 3D surface (an nD object has an (n-1)D surface). So while a dodecahedron has 12 faces which are pentagons, a 120-cell has 120 “faces” which are dodecahedra (called cells, since they are 3D).

The 120-cell is a Convex Regular Polychoron, the 4D analogs of the 3D Platonic Solids (Tetrahedron, Cube, Octahedron, Dodecahedron, Icosahedron). All the faces of a 3D platonic solid are the same 2D regular polygon, while all the cells of a “4D platonic solid” are the same 3D platonic solid! It’s basically building shapes out of the the most symmetrical elements each time.

Interestingly, there are infinitely many regular 2D polygons (just divide the circle equally into n sides: triangle, square, pentagon, etc…), 5 regular 3D convex polyhedra, 6 regular 4D convex polychora, but in 5D or more there are only 3 types! It appears that building shapes this way gets more and more complex until it is no longer possible, save for a few very generalizable cases (the hypercube, for example).

Leonardo da Vinci's Polyhedra

But what you see in the game is not quite a 120-cell, it is actually a 120-cell with a hole inside each cell. My friend Vi Hart [Youtube Channel] came up with the idea to do this, inspired by drawings by Leonardo Da-Vinci.

In the drawings, a hole has been cut inside each 2D face, or rather only the edges are visible. In the game a hole has been cut inside each 3D cell (each cell is hollow), or rather only the faces are visible.

The way this is implemented in the game engine is using our 4D Mesh Structure (a 3D mesh is made out of triangles, a 4D mesh is made out of tetrahedra).

 

Banana MRI

What you see is a 3D slice of a 4D object. While the 4D object is static, the 3D object you see transforms as the slice changes, similar to what you see in a moving slice produced by an MRI machine, but in one higher dimension (The image on the right is an MRI slicing though a banana flower).

 

The reason the number of faces changes is that depending on which slice you take, you might go though a different number of cells (each cell you slice will produce a face). If you slice the 4D object near its tip, you will get a small 3D object. If you slice the 4D object near the center, you will get a larger object. This is similar to slicing a 3D sphere with a 2D plane. Use the following sliders to slice through a dodecahedron, and its “Davinci’d” version. (Note that in the game we are rotating the 3D slice whereas here I am letting you move a 2D slice up and down, but the morphing effect is the same).



 



Miegakure TRAILER