How would you import 40,000,000,000,000 studs worth of meshes into Roblox Studio?

Hi there!

Fairly sure it’s impossible to import that big of a mesh, but what you can do is make it load some chunks the closer you get. I have a great example here: AirX 2020: Old - Roblox

It’s one of my favourite games to play, and it works absolutely perfect. :slight_smile:

Hopefully this can help you to understand one of the many possible ways of doing it. Good luck with this project, excited to see how it turns out in the future :smiley:

2 Likes

Don’t think this is possible. I’m assuming it’s 40 trillion square studs, which puts your X/Z in at ~6,300,000 studs. And that doesn’t even account for the Y axis. You could have way more in height. Most computers cannot load more than 20000x20000 terrain maps easily, so who is your target audience?

Gamers with a computer and good enough internet to be able to play this game likely don’t play Roblox, as they can play better games with their better hardware.

Also Roblox has to store this data. 40 trillion studs, with each stud likely having a position, material, collision box, etc. The number of bits this would have to be would likely be 40 trillion x 100 (all the bits for xyz + extra). So that’d be around 4 quadrillion bits. That estimates around 500 terabyes.

Now assuming hardware and internet connection was no issue, do you think Roblox would store 500 terabytes of game data for any game? A cost of a 500 terabyte server storage rack is about $40K USD.

Not saying it can’t succeed, I wish you the best of luck, but it does seem highly unlikely. Regardless, I hope you can find a solution.

2 Likes

I suggest having multiple places for different areas. So you would switch to that separate game.

1 Like

You should make different meshes, for example a big mesh but you divide it in 3 meshes.
also hi

AirX is an absolutely brilliant game, and the realism (such as the detailed cockpits and realistic physics) is what I’m trying to do with my game too.

The problem is that AirX uses triangle terrain created through scripts that take data from the internet, which is what allows it to include the entire world in it. I’m doing a similar thing by using the GIS plugin for Blender, but the tiles are slightly bigger (9 tiles of flat ocean for the 40 trillion studs, which is what the majority of the map is made of, and about 1000 stud tiles for terrain on land), so it’d have to do it slightly differently.

I could potentially increase the amount of water tiles and since the game will be shrunk, I could use that as a way to load and offload chunks.

1 Like

This is sort-of what I’m doing already.

The main game is the menu, for selecting the aircraft, location, weather and whatnot, and then it teleports you to whatever region you selected. I’m not entirely sure that stuff like this would work for a single region, as it’d really lower gameplay quality because of more times that the game would have to load.

2 Likes

500 Terabytes? Are you sure? Even Microsoft Flight Simulator uses less than 1/5 of that, while containing much more detail than I ever will be able to recreate, and supporting the entire world!

Also, the Caribbean won’t be on a single mesh. Each tile of mesh (excluding the oceans, which only contain one), contains 64 faces, which as far as I know, and with a chunk system implemented, that won’t be many tris loaded at the same time.

1 Like

If you just want to cover a huge area with a mesh, you can use a SpecialMesh and set its scale to massive. This is how I make seemingly endless water sometimes. Obviously the mesh itself won’t collide outside of the bounds of the parent part.

1 Like

Also all 3D Renderers (like Roblox’s) get floating point graphical limitations, rendering @FlyFrigate’s game a bit graphically broken.

For reference, 1,000,000 studs from the origin (0, 0, 0) looks a bit like this:

You cannot turn your meshes into terrain as there’s a maximum amount of voxels.

If you really, and by no means I recommend this, really wanted to then you could use this plugin:

(oops replied to the wrong person)

By asking this question I would strongly advise you to reconsider how realistic this project is, since making a game of this scale would require serious knowledge on optimisation and even then it may be impossible. In short you have two options and neither of them answer your question directly but instead say how it could potentially be done. The first 100% works but is bad UX, the second will have horrific memory and may not look great but will work.

A) Spread the map out across places, however for something on the scale you desire you are literally looking at hundreds of places, potentially thousands and maintaining scripts and updating them is not something thats realistically possible, the perk of this is you will be well away from any memory limits, the game will. run smoothly however it awful UX to have to teleport players across places.

B) Break down the map into maybe 100,000 ‘Chunks’ and load these around the player to simulate movement, however keep the player stationary. This as I said will have horrific memory issues and may not be the most performant solution however you won’t experience distortion since your not moving away from 0,0,0

2 Likes

Try using a heightmap thats what I do.

Yeah, I’ve used this before in creating the terrain for a previous airport (which will be rebuilt in the flight sim):

I also noticed that while taking this picture (from 40,000 studs of altitude), I didn’t have any floating point issues. Weird.

3 Likes

I’m not trying to turn a mesh into terrain, I’m using the mesh as my terrain instead as it can have realistic satellite images as textures. :slight_smile:

The chance you’ll run into floating-point issues with a map at this size is extremely high. I’m not sure that this will be able to cover 40 Trillion studs, but it should be able to make the job easier; SpecialMeshes have scale options in which you can multiply the size of the mesh by multiple magnitudes. I’m unaware of what the theoretical maximum limit for this mesh size is though, so it’s best to experiment.

The amount of calculations the platform will have to do if players travel around at even the highest of speeds would also be insane. A project of this size is sure to cause major issues. Scale down your anticipated size by a whole lot (A millions studs, maybe?) - most players don’t realize or won’t care. Making a game 1:1 realistic will only cause issues with the platform and your game.

It really depends on what your gameplay is based on. Is it a space/plane game? You can use perspective tricks and slow-moving objects to make it feel like the earth is larger than it really is. Is it an ocean game? Scale down the area of interest. People don’t want to spend a realistic time on a boat traveling in a videogame - that’s just boring.

  1. As a technical side, its possible, technically talking you have some ways to do this, dividing the mesh into really small triangles which might cause a lot of lag for this size, and will take a lot of time to export and import and would be hundreds and hundreds of different mesh parts, but it would create a mess on collissions and lag everything.

  2. using my terrain importer will solve the collision issues and you will import that size of terrain really easy!, and in not so much time, but each triangle will be a triangle part in studio which a lot of faces per triangle which will cause a lot more lag.

  3. Scale down the world, scale down humanoids and planes, in general scale it all down if you are just going to use a plane, i have seen this kind of projects for years already, probably 9 years, i could send you the link tutorial of how i make terrain in point 2 or the open source project for city generations which might help you with this.

Edit> im a complete fan of meshes and have been using them for almost everything, but for this kind of project simplicity would be a key.

Also rendering just the parts that are being viewed by the player and, destroying what is not being seeing or is too far will help with optimization.

1 Like

Have you seen Widgeons flight simulator? It uses some open source map API and loads terrain in chunks, etc - and yes it includes the whole world lol. I think it is extremely unworth your time to continue on this path of “importing a massive map into roblox” but you should instead try the same thing that widgeon did

edit: i realize youre going for a little bit more photorealism, which widgeons system somewhat lacks, but nonetheless i still think you can experiment

1 Like

No, he isn’t building it. He is making a map in blender and simply scaling it up in Studio.

1 Like

Yeah, I said in a previous post that I’d used SpecialMeshes to do similar work to what I’m doing now. I’ve easily scaled these to tens of thousands of studs large to create seemingly endless oceans, too! :slight_smile:

More or less, yes. The main terrain will be created by a plugin I use for Blender, and then I’ll be modelling every house and airport by hand. The buildings won’t be too hard, as I’ll be using very simple shapes with a decal / texture applied.

It’s going to be a flight simulator, with a wide variety of aircraft. I’m going to shrink the map by a huge amount, so to the player it won’t feel too different from a 1:1 scale map. I was planning on using the up-and-coming Dynamic Skies feature, though that may not work too well with the scaling.

Edit: I am now working on a prototype for the game’s terrain :smiley:

1 Like