At Full Indie Summit 2016, Marc ten Bosch taught the audience to think in 4 dimensions. Now most of you probably have no idea what that means, and no, the 4rth dimension is not time. So how does it work ?
Welcome to the 4rth dimension
Marc did a great job at generalizing 3D engine game concepts to include a fourth dimension. Imagine how you move between dimensions. It helps if you have knowledge of 3D modeling. A line is an extrusion of a dot. A 2D square is an extrusion of a line, one square being made of four. A 3D cube is an extrusion of a 2D square, one cube being made of 6 squares. Well a 4D hypercube or tesseract is nothing more than an extrusion of a cube, one hyper cube being made of 8 cubes.
Does this make any sense ? Well, Marc’s presentation had a lot of animations and angles showing how it all fit together, so make sure to have a look at the slides once they’re up, if you’re interested in the topic. I won’t go into a lenghty, inefficient textual explanation here. Instead, I’ll jump straight to what struck me about his talk.
My takeaway from Marc’s talk
Thinking in 4D is something completely counter intuitive, yet by proceeding with analogies, it seemed pretty straightforward to most of the audience. Combining math, visuals and a transposition of the problem to other numbers of dimensions really helped grasp a better understanding of the concept.
I’m not anywhere near making a 4D game, but the value of the talk to me is the process of understanding the problem itself.
Understanding complex interactions through simplification
To understand and explain 4D, Marc studied how simpler situations, 2D and 3D worked. Marc started with the math and transposed it visually when it later became more intuitive to him. This helped him understand how to navigate any dimension, yet only present a lower level dimension.
In his example, he starts from how a rotation of the viewport allows a 2D character to move in a 3D space, while the character never experiences 3D himself. He then applied this principle to navigate the 4rth dimension in a 3D representation. By removing one degree of complexity when thinking about the problem you’re looking to solve, it can give solutions applicable to the full problem.
How to transpose this to other types of problems ?
What if to understand how dialogs affect storytelling, we studied how players select dialog options in simpler tools. We could learn from one dimension – what the dialogs contribute to the game, then transpose these findings in a larger dimension, a narrative exploration game for example.
You could for example test dialog ideas using twine, a messenger app with a real person, or an alice bot… Contextual elements in the game would be replaced by descriptive text (our 2D version of the problem) instead of a 3D environment. Removing one dimension from the problem’s complexity would help figuring out how the dialog works best in 2D.
The solution can then be transposed in 3D, adding context around the player. This might help to know what information in the context is used a clues by the player. It leaves us with figuring out exactly where to place it in the 3D environment so it stands out from the decoration and is seen as a clue.
It’s just the one example, but it can apply to many more questions aside from storytelling : which controls work best for your motion based game ? how does your puzzle complexity progress ? Is my rythm creating flow ? Is my audio conveying the right message or emotion to the player ?
It adds the most value early in the development of course, both for learning from it as a designer through deliberate practice, or for testing concepts with actual players before having a vertical slice prototype. It can help avoiding costly mistakes early on, focus development efforts on aspects that will have the highest value.
In later stages of the development, the complexity is there, and needs to be dealt with to have complete, accurate results. Testing simplified bits of the game early fails to take in account emergent behavior from players and how they will react to the full complexity, but it is great for concept testing and refining a design before implementing it.
It is nice to figure out whether you’re going to the right direction before putting a lot of effort into it. Studying simplified reference situations is one way to achieve that.