Inspired by games like 4D Golf4D Toys, and Miegakure.

If you have performance issues, I dearly apologize. If you're running on Windows, downloading the Windows executable may give you better performance. Projecting infinite dimensions into 3D space and then rendering that as metaballs is kind of hard.

I was unfortunately traveling during the days of this jam, so I only got about as much time to work as one would in a 36 or 48 hour jam, but I'm happy with the result regardless. With hardware limitations, I don't know how much more I could realistically add. If you wanted to make this a full game, I think you would need to find a better rendering solution than what I have.

Q: Are there actually infinite dimensions?

A: If performance wasn't a limitation, theoretically you could keep finding and exploring more and more orthogonal dimensions forever. In actuality, the game is limited by the number of names I could find for new dimensions, so the max is just a few hundred. Either way, since you probably aren't playing on a National Laboratory supercomputer, your browser is probably going to quit long before you see every one.

Q: "Spanning dimensions" doesn't really make sense in vector math. Dimension is a property of a space. You know that, right?

A: Yes, but that's how the laypeople use the word "dimension." A more accurate description of the game might be "Collect vectors with orthogonal components to access different subspaces of an infinite-dimensional tuple vector space." But that's not as catchy. Also, in the code the vectors are actually called "hypervectors" to separate them from the existing Vector2 and Vector3 classes, and that's super not a word, so chew on that.

Q: It looks bad and stuff keeps popping in and out. Also it's boring.

A: First of all, not a question. Second, yeah I've had to neuter it quite a bit to make it playable on the web, and then I didn't change that when I exported to Windows. Before getting to this state, the game was so resource-intensive that it killed my browser's WebGL instance on load, which was not good. So it doesn't look good. And it isn't super fun. But that doesn't matter. Real fans will recognize the mathematical superiority of more dimensions = more good.

CREDITS:

The metaball shader (what makes everything look blobby) is taken from https://www.shadertoy.com/view/wdBfDw and adapted to work in infinite dimensions. 

The music was made by me using https://beepbox.co

FURTHER READING:

If you think the metaballs are cool, here are some resources I found to learn more:

https://jamie-wong.com/2014/08/19/metaballs-and-marching-squares/

https://mshgrid.com/2020/02/03/implementing-your-own-metaballs-and-meta-objects/

If you want to learn more about dimensions, there are probably some good YouTube videos or something out there but I would just start with the relevant Wikipedia page: https://en.wikipedia.org/wiki/Dimension_(vector_space)

CONTROLS:

Controls are handled per-axis. You choose what each axis corresponds to in-game.

W/S::Forward/Back axis

A/D: Left/Right axis

SPACE/LSHIFT: Up/Down axis

X/Z: Ana/Kata axis (additional 4D axis, not rendered)

Also, you can use Q and E to rotate the Forward/Back and Left/Right axes, simulating rotation.

You can click on a vector in the Vector menu and then click an axis (or vice versa) to change what each axis is mapped to.

All of this is also explained in-game when you press ENTER to open the Vector menu.

Download

Download
windowsexport.zip 28 MB

Comments

Log in with itch.io to leave a comment.

hi, thanks for this, it's pretty interesting. it's very easy to get lost in the void though so maybe the void should be less void, or there should be a button to TP back to origin, or idk... 

i still suck at intuiting >3D but this helped me a bit in the right direction ^^

Yeah, that's something I noticed after making the main mechanics. A 3D game environment is hard enough to fill with interesting props and setpieces, and 4D is like stacks and stacks of different 3D worlds. Add more and more dimensions, and most of it has to end up as empty space, especially with the already-poor performance. Thanks for playing, though!