So I've been working on a Minecraft mod which can simulate 4-dimensional space in Minecraft. When I say 4D, I mean 4 spatial dimensions + 1 temporal (time), as opposed to our real world, which is 3 spatial + 1 time (ignore string theory pedants). There are a few features in it right now, but I plan on expanding on it, as well as making it a bit less messy (in terms of coding and actually playing it).
4D??? - a brief introduction
2D to 3D example:
You guys may have heard of the game miegakure (http://miegakure.com). It's a lovely game; however, the mod I'm making uses a different mechanic of simulating 4D space, similar to The Long Earth(Wikipedia),w/out the bad side-effects of stepping.
So let's imagine a flatlander. Let's call him Adam. so Adam here is a 2-dimensional being, he lives in a 2D world (let's just pretend that the 2D world has 1 thickness in 3D). Poor Adam here only know of 4 directions to move in, left + right and up + down (or the x and y directions, for simplicity). note how his "keyboard" would only have A and D as well as Space and Shift. This is Adam's world:
Adam's world is 2D. Adam is the observer.
Now, Minecraft Steve tries to give Adam the feeling of being able to move through 3 dimensions. Steve get a big stack of worlds and puts Adam on this stack of worlds. Furthermore, Steve gives Adam the ability to move left a sheet of paper or righta sheet of paper. Adam can now move left + right, forward + backward and up + down (x, y, and z now) Now see that Adam has WASD and shift + space bar, like us. Adam is able to experience 3D space, but only one slice at a time. if Steve wanted to show Adam a wireframe cube, he would see it like this (Stone blocks are the ones in his current slice. The glass is invisible to him because he can only see one slice of the world. There's a copy at the top w/out the glass, which is what Adam would see):
Slice 1 a square:
Slice 2 (the edges of a square):
Slice 3 (looks the same as slice 1):
Adam can only see one slice of the cube at a time; however, he can compile these slices together in his mind and understand "hey, that's a cube!!!"
Steve can just view the cube on its own, in 3 dimensions:
3D to 4D case (our reality):
So Steve is just punching a tree, and along comes Walter. Steve sees Walter appear, then suddenly disappear. Walter pities Steve, a mere 3-Dimensional being. Walter decides to help Steve by trying to show him what a 4-Dimensional world would be like. to do this, Walter stacks a ton of Minecraft worlds right next to each other and gives Steve the ability to move between worlds. This way, Steve can now move left + right, up + down, forward + backward as well as up a world + down a world (Now Steve can move in 8 different directions, and needs the keys WASDQE + Shift + Space (I personally use Q and E but you can keybind to wherever you want honestly)). The terminology for moving between world is 'kata' for up a world and 'ana' for down a world. You would have the world 'Origin' (decided by the world spawn) and then kata to that would be world Kata 1 then Kata 2, etc. Then ana to the world is Ana 1, then Ana 2. You get the Idea. For example:
"Steve stepped kata into the world Kata 1". - meaning that Steve moved up a world from the Origin to Kata 1
"Ana to Steve was a vast ocean" - meaning that the world Ana to Steve is an ocean biome.
Now, Walter tries to show Steve a 4-Dimensional cube (commonly called a tesseract, but not related to the Marvel one). Steve, sadly, can't see the whole tesseract at once, So Walter shows Steve each slice one by one:
Slice 1 (notice how it looks exactly like a cube, just like how the first slice of the cube Adam was viewing was a square):
Slice 2 (notice how it looks like the corners of a cube, just like how in Adam's second slice it looked like the corners of a square):
Slice 3 (Try to find the parallel between this tesseract slice and Adam's cube slice):
Steve can only see one slice of the tesseract at a time; however, he can compile these slices together in his mind and understand "hey, that's a tesseract!!!"
Walter can just view the cube on its own, in 4 dimensions [not visualized for obvious reasons].
These are some pictures of my survival world. I've placed a "stepping platform" at the exact same coordinates in each world, this makes it much easier to move around as there are a ton of height differences between worlds (I've only just started, and I haven't moved much ana, only Kata).
"Peeking" - how to safely traverse worlds and place blocks kata and ana
Back to Adam
So how exactly are you meant to get to the adjacent worlds without the potential of death? you could suffocate in a block (I might fix that at some point), or fall too far. This is what the peek keys are for. Looking at Adam's case can be very helpful.
This is Adam's 3D world. He can only see his 2D slice though, so he can't see the extreme hills biome to the right of him, nor the coal in it. Likewise, he cannot see the lava to the left of him. He could get hurt! either suffocate in the mountain or fall in lava, depending on which way he steps. This is why there are peek keys. These peek keys enable Adam to see the blocks to the left and right of him. It works by switching around the left and front blocks if he presses the left peek key, or the right and back blocks if he presses the right peek key. It switches a 4 high area, from the block below Adam to one above Adam.
So, Adam is about to step left, first he's going to peek left to see if it's safe:
Adam infers that there is going to be no block to stand on to his left because he can see that that block would be air. so, Adam places a block in that position:
Then he stops peeking by pressing the peek button again:
This puts the two blocks back into place. Finally, Adam is going to step left:
Adam has safely stepped, without falling into lava.
Heres another example of Adam stepping to the right, into the mountain:
Peek - "I would suffocate if I stepped left"
Break the blocks that would suffocate him
Step-"Yay! I didn't suffocate!"
Back to Steve
So now Steve is going to move between worlds. This will be from Steve's perspective (it's actually my survival world but shhh):
Steve is about to step ana, but first, he has to peek or he could suffocate.
Peeking Ana. As suspected, there is a ton of stone.
Steve mines two blocks so he can step over there after unpeeking.
Steve now unpeeks and is about to step ana.
Steve hs now moved ana. He found Iron! (This was a coincidence)
Movement - keybinds
To move in this new 4D world, you have to use the kata and ana keys, which you have to keybind yourself to whatever fits you. This is my current setup:
Ana - Q
Drop Item - R
Kata - E
Inventory - Tab
Player list - Grave
Peek Ana - 1
Peek Kata - 3
Unstick - 2
Hotbar quick keys - Numpad 1-9
4D Chunk reload - Mouse button 4
Print Position - Mouse button 8
It takes a while to get used to (The number of times I used to fall to my doom in a world kata because I was trying to open my inventory) but it allows the player to be able to easily access stepping and peeking keys from WASD, and places it next to other movement keys. But placing peek and unstick as 1, 2, and 3 can be annoying bcus it's harder to navigate the hotbar, and if you don't have a gaming mouse you can't do mouse button 4+. These are just suggestions, do whatever fits you.
The Unstick Key - "AAA I'M GLITCHING!"
The Unstick Key literally just teleports you up 0.1 blocks to get you out of a block if you're stuck on the top of it and keep rubber banding. Helpful for when you step from a chest or other semi-block items.
4D Chunk reload- "This block could not be placed"
This is helpful for when you're trying to peek and get an error, just press this key to reload those chunks and it should work after. Also, it's good to do this when you enter the world.
Print position - "Wait which world am I in again?"
prints your x, y, z, and w (technically just w, but you can think of it as "World") positions.
Entities currently have a 10% chance to step kata or ana (5% each) when hit. I'm going to add some more functionality later, such as doing it randomly and checking for blocks before doing it. Give me some suggestions
Mobs can't check if they're going to suffocate/ fall after they step.
Takes a while to step sometimes, stepping once or twice between the two worlds should fix it.
SO MUCH CHAT SPAM [mod-speak alert] have to find out how to move player and blocks without commands (e.setpositionandupdate does not work in survival).
Doesn't work in nether.
Please tell me of more.
Things I'm Working on:
Suggestions would be great!
Mobs don't suffocate, may make it possible for them to break blocks or something
REMOVE THE CHAT SPAM FOR THE LOVE OF GOD - don't know how to do this, I'll be researching but if someone could tell me that'd be great
[mod-speak alert] try to do chunk loading tickets better to decrease stepping time
Want to add more things that entities can do (can be leashed, hostile pathfinding) - need people input for this
How it works real quick - some mod-speak:
Step Kata - teleports you 2048 blocks x and 0.1 blocks y (to prevent getting stuck in a block)
Step Ana - teleports you -2048 blocks x and 0.1 blocks y (to prevent getting stuck in a block)
This can give an illusion of a 4D world, but if you walked 2048 blocks in a specific direction you could get there anyway
Peeking - just some clone commands - [modders look here] It would be great if someone could tell me how to move blocks w/out cloning.