Endless backrooms in Babylon.js!

Introductions

In Kanye Pixel’s understanding, the backrooms are a place located under the textures of reality, representing one endless layered pie of non-Euclidean space consisting of different lvls of a procedurally generated world of unused and cut-out content. Things that either didn’t fit or weren’t good enough to create them. A clipping for the real world. For example, first there are 100 meters of the zero lvl of the room ends, and then there are 100 meters of the fifth level, and so on indefinitely.

And according to the original canon, the only difference is that these are infinitely monotonous spaces, for example, if this is lvl 0, then there are only yellow carpets, only yellow wallpaper, only fluorescent lamps and only white tiles on the ceiling, and occasionally deviations in the form of some locations, or transitions to other levels.

PC version

I made backrooms on the babylon engine, move using the arrows ←, →, ↑, ↓ on the keyboard and mouse.

Original backrooms

In the zero version, I added an infinite procedurally generated carpet.

Backrooms in Babylon.js (Version 0) | Babylon.js Playground

In the first version, I added randomly generated and randomly rotated walls to this procedurally generated carpet.

Backrooms in Babylon.js (Version 1) | Babylon.js Playground

In the second version, I added an infinite procedurally generated ceiling.

Backrooms in Babylon.js (Version 2) | Babylon.js Playground

In the third version, I added infinitely procedurally generated evenly spaced lamps.

Backrooms in Babylon.js (Version 3) | Babylon.js Playground

In the fourth version, I did as in the original backroom, which talks about millions of square miles of randomly combined empty rooms, which means that the lamps in it are also in random places and not located in it periodically, I also added a teleporter by coordinates, and a display board for camera coordinates.

Backrooms in Babylon.js (Version 4) | Babylon.js Playground

Well, we’re missing something again, because backrooms is an endless maze, not just a set of random walls in an endless space. Let’s make an endless maze! And besides, it doesn’t have one solid wallpaper, but a set of different wallpapers.

Backrooms in Babylon.js (Version 5) | Babylon.js Playground

Stop! But the original post doesn’t say anything about the endless maze, it just says that there are 600 million square miles of randomly combined empty rooms, meaning there are no corridors, there are only rooms! And that’s why I’m adding a new version in which, on different chunks, wall generation will be based on pictures where the white in the picture will be empty where the black walls will be, and you also need to make a set of maps based on random pictures that will be generated in random chunks!

Backrooms in Babylon.js (Version 6) | Babylon.js Playground

In the sixth version, I made a room generation based on pictures. For a more complete topic, see the link.

Backrooms in Babylon.js (Version 7) | Babylon.js Playground

In the seventh version, I made the generation of walls based on mosaics, now it can be called full-fledged rooms, and not like it was in version 5, where there were only narrow corridors. For a more complete topic, see the link.

Kane Pixel’s version

In the first version, I added the ability to add structure generation based on the faces and vertex arrays. You just need to fly a little to the side to see the generation.

Kane Pixel’s Backrooms in Babylon.js (Version 0) | Babylon.js Playground

In the second version, I added different biomes, and now not one biome is generated, but many.

Kane Pixel’s Backrooms in Babylon.js (Version 1 - multybiom generation) | Babylon.js Playground

But something is still missing, because Kane Pixel’s backrooms are an endless layered multi-storey pie of randomly procedurally generated, interconnected liminal spaces.

Kane Pixel’s Backrooms in Babylon.js (Version 2 - Multistory multibiome generation) | Babylon.js Playground

But still, something is wrong again, because the textures in the backroom model from Kane Pixel are different and not monotonous, let’s add the ability to make textures different, and plus I added the ability to teleport.

Kane Pixel’s Backrooms in Babylon.js (Version 3 - Different textures) | Babylon.js Playground

Now we need to do seed generation as in Minecraft, so that when you enter the same SEED, the same random sets of biomes of structures are always output in the same chunks, and in addition, you need to make a LOD of visibility so that you can travel long distances without brakes.

Kanе Pixel’s Backrooms in Babylon.js (Version 4 - Seed of the world) | Babylon.js Playground

Backrooms editor

So now we’ve almost created a full-version backrooms, the only thing left to do is just a couple of things, one of which is to create a backrooms editor, let’s do it, and that’s what I’ve done well.

I added a lot of mirrored structures, and a lot of gizmos tied only to a lot of the original cubes, but the chunks were generated only in XZ coordinates…

Backrooms editor XZ version | Babylon.js Playground

There is a version with XYZ coordinates.

Backrooms editor XZY version

You can view all versions of this editor in my separate topic → Mirrored gizmos.

Mobile version

Original mobile backrooms

But while browsing my backrooms from my smartphone, I found a problem that I can’t navigate on my phone, and therefore in the mobile version of backrooms I added arrows with which I can navigate.

Backrooms on Babylon.js (Mobile version 3) | Babylon.js Playground

In the fourth version, I removed the arrows and added a joystick to make the player move more smoothly.

Backrooms on Babylon.js (Mobile version 4) | Babylon.js Playground

Kane Pixel’s mobile version

But I can’t move on my mobile phone like I can on my computer, I need to add the displacement arrows.

Kane Pixel’s Backrooms on Babylon.js (Mobile version 2) | Babylon.js Playground

But the movement arrows don’t move smoothly, let’s add a joystick.

Kane Pixel’s Backrooms on Babylon.js (Mobile version 3) | Babylon.js Playground

Optional versions

The optional versions are a kind of sandbox for the realization of a variety of fantasies and experiments.

Backrooms in Babylon.js (Optional version - The infernal Valley of pillars) | Babylon.js Playground

Imagine an endless backroom without walls, like in that video I made this version.

Backrooms in Babylon.js (Optional version - no walls) | Babylon.js Playground

Now I’ve added a new optional version in which biomes are generated by cubes of biomes in multistory, and you need to wait a bit when launching.

Kane Pixel’s Backrooms in Babylon.js (Optional version - Cubic multi-storey biome generation) | Babylon.js Playground

There is also a version of the backrooms with multi-storey cake generation of biomes, that is, on each floor, make the same biomes in order, that is, on the first floor, the biome is the first in order in the dictionary of biomes, on the second floor, the second biome, and so on…

Kane Pixel’s Backrooms in Babylon.js (Optional version - Cake multi-storey biome generation) | Babylon.js Playground

Changing generation when the camera is removed from the biome chunk and returned there, there will already be other structures there.

Kane Pixel’s Backrooms in Babylon.js (Optional version - Changing generation) | Babylon.js Playground

But in the original the backrooms, there are different levels of generation in different dimensions, let’s make this possible! Now we have made different measurements of biomes using XZ coordinates.

That is, in the first dimension, only the first biome is generated, in the second dimension, only the second biome, and so on…

Backrooms in Babylon.js (Optional version - Generating different levels in different dimensions) | Babylon.js Playground

Different dimensions with the same different biomes but structures are generated based on XYZ coordinates.

Backrooms in Babylon.js (Optional version - Different dimensions with the same different biomes but in XYZ coordinates) | Babylon.js Playground

In different dimensions, generation from different sets of different biomes

Backrooms in Babylon.js (Optional version - In different dimensions, sets from different biomes XYZ version) | Babylon.js Playground

Backrooms under acid - flying into the sky.

Backrooms in Babylon.js (Optional version - Backrooms flying into the sky) | Babylon.js Playground

An exotic implementation of backrooms with biome generation, as in a randonautica with fullness and void zones.

Backrooms in Babylonjs(Optional version-Biome generation is like in a randonautica with zones of fullness and emptiness) | Babylon.js Playground

P.S.

Now it’s a full-fledged backroom space! Maybe someone will come up with some new projects and the project will develop.

12 Likes