Maximum game size / Terrain map size?

Hello there!

I’ve recently started a project and the map/size has to be massive. I’m starting to get very worried if I am spending time for no reason at all, so that’s why I’m asking this. :thinking:

  • The problem is that I’m not sure if Roblox can handle the size. The total map size will be or currently is 32,768x32,768 studs from edge to edge and will be completely made out of Smooth Terrain. There will also be monsters, but I will optimize them so the only spawn when you are in specific areas, so that’s nothing to worry about. The game is also only supposed to be playable on a computer.

  • If the size is unsupported/unplayable do you think 16,384x16,384 is an alright size or maybe ‭9,092‬x‭9,092‬? If you know the largest and most supportable a terrain map size can be, then I’m happy to know. The bigger the better.

Map - Size Image:

Map Progress - Close Up:

I’m simply asking this because I don’t want to waste my time on something unplayable, only because of the map size. :sweat_smile:

28 Likes

I’m not sure but you could make a stress test map and fill it with free models similar to the style you are going for.

6 Likes

If you used StreamingEnabled you probably wouldn’t have problems with terrain, but might have problems with other code-related things. Though without StreamingEnabled or some other load-in map zoning, it’d likely be far too big to run on the average low-end PC. At least not until they update map sizes later this year (by the best estimate?).

Is there a reason why you haven’t chosen to use the place teleport feature instead of fitting it all into one map?

11 Likes

I wouldn’t want to use the teleport feature since this is going to be a massive open-world, adventure game and people would have to load many times if I split the map, I even have items (paragliders) that’s supposed to be used for going long distances from high mountains.

If you know the game: Zelda Breath of The Wild, that type of game and map is what I’m going for, and also most likely why I’m not going to use the teleport feature.

I’ve never tried StreamingEnabled, though it sounds interesting. What issues do you think code will get if it’s enabled?

Note: The game is going to be single-player.

6 Likes

You should be aware that the rendering engine starts to jitter or die after long distances from the centre of the map. Same thing happens with all game engines because of how floating points work.

3 Likes

When height map terrain generation was released the maximum amount you could generate was 16384x16384x16384 studs. I would personally go this for terrain if I were you because it is likely that the figure is from limitations in the game engine and is tested thoroughly. I am working on a game that goes further than this (even with a tiny scale) but the map is not terrain and is only built up around the rail lines and have experienced no major problems so far.

10 Likes

Newer game engines actually shift the origin to mitigate this issue.

8 Likes

What game engine does this? I know many games such as KSP do this but I’ve never heard of this being default behaviour in a game engine.

3 Likes

It’s not default, because not everyone makes large games. Specifically the engine I’m referring to is Unreal Engine 4. It has World Origin Shifting as well as a Level Composition Editor, plus Level Streaming so you can pretty much build a world as large as you can fit on a hard drive.

6 Likes

Something nobody has mentioned yet is the fact that studio will crash if you have too many voxels of terrain. My team ran into this in our incubator internship when we generated 64000x64000 (I think) of terrain made out of primarily water. When we tried to open the place it would either crash studio or never connect to the game.

Oof, I don’t think I’ve ever experienced this. I’ve never been able to accurately uhh… measure. So all I can say is I generated 50 500x500 (later changed to 100x100) stud tiles. (I’m bad at math). Anywho I did get longer load times but I’ve never generated enough to actually prevent loading into studio. I did however generate enough to prevent the server from starting lol.

Any recommendations for getting the largest ocean without running into this issue?

1 Like

Yup! We ended up building the islands we wanted with some water around them, and then using our own plugin to cut the water into squares that would line up with a global grid. Then for the rest of the squares without water (anywhere there wasn’t an island) we have the client generate it as they move around and offload it the same way.

1 Like

You think this would work with a sea bed?

Yup. I don’t think it will be too hard once you understand the concept of trimming current terrain into the correct grid. You could contact @Firebrand1 for more information, he was in charge of our beautiful LOD system.

4 Likes

There’s two limits, your computer’s ability to process and render the terrain in-studio and in-game. The other one is your imagination!

7 Likes

post sneak peeks for this please!! it looks like souls like-zelda map and i love it

2 Likes

Hello, Im a fairly late to this post but one solution to this would be:

  1. You should be able to get and place the terrain data into a script using the :ReadVoxels method.
  2. Have a chunk system that periodically gets the chunk positions around the player.
  3. place the nearby terrain into the game, you can do this with the :FillBlock method.
  4. unload all the chunks that should no longer be loaded, by filling the chunk area with air.

Im a few years late to this post so you probably dont need the help at this point, but hope this helps anyway! :slight_smile:

added Note: you would want to manually save the map with the :ReadVoxels method in studio and remove the map from the studio, that way it isnt loaded at the start of the game. Also ideally depending on what patterns are common in your map it would be ideal to also compress the data first with greedy meshing, and another compression algorithm on top, and only store the compressed version of the terrain.

1 Like