(This is my first post on the Developer Forum, so I may not have made this post correctly, sorry!)
What I'm doing:
Hello everybody!
I’m currently developing a realistic flight simulator, using meshes to create terrain. I’m making regions for it, and my first one will be the Caribbean.
What I already know:
I know that the size of this map will be absolutely huge, even if everything is scaled down. Because of this, things such as floating point issues will easily occur. Lag will also be a bit of a problem, as I’m including lots of buildings and detailed airports.
For the majority of all of these structures, I will be using meshes.
Problems / Issues:
I chose the Caribbean as my first region due to it’s size, providing an area to fly in, and the smaller amount of work that I’d have to do than if I had done a country, as most of the region is water.
A problem that has appeared is just how big the Caribbean is. It’ll be my biggest game by a few trillion studs, so I don’t know how to import it.
How should I go about importing this, and what other issues could arise?
mesh part for the water, terrain for the land, mesh trees to minimize parts and after that it should be fine, worse case would be visual glitches the further you go out but Im not sure the max point you can get before the glitches start so maybe look it up and shrink it a bit to fit
Hi budmomo,
I may need to make my post clearer, sorry about that. I know how to make the map, as I’m already doing it all on Blender. I’m trying to find out how I would go about uploading meshes that together form around 40,000,000,000,000 studs of land.
I’m editing it quickly and only just discovered that you can preview your text to the right of where you’re writing, sorry about that.
Indeed, 40 trillion studs is huge, and I’m doing this to provide a large area to fly in. I chose the Caribbean as it’s a rather large (Larger than I originally thought…) area, though is made up of smaller islands, meaning less work!
I’ll finish editing the post. Thank you for your reply!
I would give up on doing a real location and maybe make a made up island area instead as it will be easier to just mass produce big islands instead of following a set design and then mesh water
As I said earlier, I already know how to make the terrain. I’ve done it quite a few times before, as tests and for my virtual airline. It’s very easy to make these islands, as I’m using a Blender plugin which pretty much creates most of it for me. All I have to do for this is create buildings and choose which tiles of terrain to create.
Assuming you were to successfully import the meshes, I’d recommend working on something which would seamlessly teleport players to a different plane on the y axis or, seamlessly “offload” a chunk, replace it with another chunk and, teleport them to the start of the chunk which was “loaded” to prevent floating point errors.
I’ll be scaling the whole map down, so that my main parts of land can be solid MeshParts, though the ocean, which I’ve already done, will be a SpecialMesh.
The ocean is split up into about 9 parts, and the islands are too.
The floating point errors would make the game unplayable at only 100,000 studs. You need to scale the map down to about 1Mx1M studs or less and make a system to move the world origin around. Good luck.
In my main post, I’ve said that I’ll be scaling it down a lot, and by using the suggestion from @Unknownstaffmembe, I could reduce floating point issues further.
I also hope that Roblox will start working on physics grids again, as I, like many others, would have found that really useful in creating maps as big as this.
I think you’re really under-appreciating how severe floating point errors actually get at comparatively very little distance from World Origin. Shrinking 40 trillion by 1 million times is still 40 million studs, which is still orders of magnitude too large.
I do agree, considering it’s 40,000,000,000,000 studs, I personally think it would be better if the map was spread out over multiple places (one example is Startscape Starscape [Beta] - Roblox); even though you could spread this over multiple places, it would also be a nice idea (in my opinion) to include chunks.
You won’t exactly be able to transfer objects but, considering it’s a flight simulator, you could have a copy of every plane in ReplicatedStorage in every place.
You could use TeleportService to teleport players to different places and, TeleportService allows you to send TeleportData when teleporting players.
e.g.
Teleport players in an aircraft > Send teleport data > Retrieve teleport data > If the plane a player was in already exists, make them sit in their seat or else, clone the model of the plane they were in, teleport them to their seat and wait for the pilot/co-pilot to join.
local TeleportData = {}
TeleportData.Aircraft = "Some aircraft"
TeleportData.Seat = "Some seat"
TeleportData.Identifier = "Some identifier to identify which plane the player was in"
Edit* After reading that TeleportData shouldn’t be trusted as it’s sent by the client, you could use datastores instead
I’m already using data like this for the initial teleport from the menu into the actual game, which is very useful, however if I do this then there’ll have to be a bit of a delay during people’s flights, which could cause a bit of a problem, and if the game becomes popular (though I doubt it will), then it could make the game very laggy, considering that the Lil Nas X event nearly broke Roblox.
Well idk if this helps, but I know in blender if you export your mesh as fbx then inside studio if you go to game explorer and import the fbx mesh from there it’ll put all the meshes inside your workspace and they will be separate like they were in blender. So like if you had 50 different meshes in this 1 fbx then it would import into studio as 50 different meshes. Hope that helps