This is a tech demo of a project I've been working on since February of 2020. Needless to say, things have been slow. (It also takes a few seconds to load, don't worry if it shows a white screen when you click "play")

TL;DR: This tech demo shows off a rendering system I made that renders graphics with 4 dimensions of space, plus one dimension of time. Hold shift to move and look into the fourth dimension.

In our world, we know of the "three axes" - the X, the Y, and the Z. These three cardinal directions show us left to right, up and down, forwards and backwards. All of these directions are perpendicular to each other - measuring 90 degrees of rotation from themselves to each of the other two. But, what if we simply imagine a world where there was a fourth direction? Let's call it W.

W, like Z, goes away from your body forwards and backwards. Also like Z, it is 90 degrees away from X and Y, but it is also 90 degrees away from Z. To walk "forwards" you may choose to walk along Z or to walk along W. As you walk along Z, every object remains at the same location left to right relative to yourself. Every object also remains in the same location up and down relative to yourself. But, as you walk along Z, these objects move behind you at the same rate that you move in front of them.

As you walk along W, every object stays in place along X and Y, just like it does when you walk along Z. But, as you walk along W, the Z location of everything else also stays the same. Only the W changes as you walk along the W, just like walking along the Z.

In our 3 axis world, you can also turn yourself in three different ways. It may appear on first thought that there is simply one type of rotation for each of the three directions, but as it turns out, that is merely a coincidence. If you imagine a world with only two axes, there is actually only one way to rotate yourself - one less than the number of axes. In our 4 axis world, there are six ways to rotate yourself. But, just like in the 3 axis world, one of these rotations is confusing, so we don't use it. Imagine turning your head upside down so the top of it touches the ground. We don't do that in our 4 axis world either.

So, what would such a world even look like? For nearly 3 years, I've been working on a system to show just that. Why? Well... that's maybe a story for another day. I'm showing this to you now in its unfinished state for a reason though. As I embarked on this journey to understand the unintelligible, many others have come out with similar ideas. If my little idea interests you, maybe take a look at some of the others who have done work either before me or simultaneously with me. I don't know any of them personally, but they're worth recognizing:

4D Toys - https://4dtoys.com

Miegakure - https://miegakure.com

Last but not least, CodeParade on YouTube is working on one as well - https://www.youtube.com/c/CodeParade/videos

I reference these games because the vast majority of prior work in 4D space uses a technique called "slicing." I don't very much like this technique, because it removes information from the scene in a way that I don't think a 4-D being would ever truly perceive the world. So, my system shows what I believe is a valid perspective view from the eyes of a 4-dimensional person. (Press the '~' key, also known as `backtick` to see the "real" 4D first-person view - it's pretty confusing, but it works!) 

Let me know if you think this project is still worth doing. My initial plan was to create a first-person platforming game with a story that detailed all the ways I feel about this fascinating hyperspace. There's still a lot of work to be done!

StatusPrototype
CategoryOther
PlatformsHTML5
Rating
Rated 4.0 out of 5 stars
(1 total ratings)
Authorrymlks
GenrePlatformer, Puzzle, Simulation
Tags4d, Atmospheric, Experimental, First-Person, Low-poly, Singleplayer, tech-demo

Development log

Comments

Log in with itch.io to leave a comment.

(+1)

Its really good! I would love to see more of this!

Thanks! I've got an update (soon ™️) that's going to introduce shadows, I'm thinking about posting a small devlog about it. It's exciting because that's sort of the last big rendering pipeline task for me to work out before really designing a game around this.