Hey there,
I see you do not have a solution yet so I’ll try to pitch in with my tips.
So if I am reading your posts correctly this is what you want:
- A large RPG map that still runs smoothly
- A map big enough to have multiple empires and cities
- A map large enough to not just be for Roblox characters, but dragons, trains, and entire transportation systems.
This is a very ambitious project, I will give my tips. However, be warned, a project this big could take a long time to complete.
1. Proper LOD system
LOD, aka Level of Detail, is basically when the detail level of an object reduces as you get further away from it. It’s useful because far away objects will not need to be as clear as parts right in front of you.
Roblox has LOD features for mesh parts and CSG parts.
And if you use smooth terrain, the new grass also has LOD features I believe.
If you have a good LOD system, players will have an easier time running the game because objects that don’t need to be as clear won’t be. It won’t hurt your game visually much from the player’s perspective.
2. Steaming Enabled
This has been mentioned before on this thread. Before Streaming Enabled, there was a part limit. Not a specific fixed limit, more of a limit we had to place on ourselves. However, with Streaming Enabled, maps can be as big as you want it to be and it will run smoothly because players will only load what they are next too.
The problem? While the players see only fractions of the map, in-studio you see the whole thing. You are going to need a powerful computer to run a game like this in studio.
Also, the game will look cut off, however, I know of a possible solution I will explain below. One thing I am unsure about, and it would be great if someone knew the answer and posted it here, I do not know if large games could still take a while to load up even with Streaming Enabled to get all the parts and instances for the game. However, you can cover this up with a good loading screen.
3. Build and test as you go
Many times the best way to get your answer is to run a test and figure it out your self. Build the map, and as you go keep running tests and test the performance. If you have a low end and high-end PC’s at home, try testing the game on them to see how it runs on various devices with different performance capability.
4. Use small files sizes
This is just something every game developer has to look out for. If your game is going to use a lot of meshes and stuff, hire an experienced modeler. A modeler who is knowledgable and experienced enough to not just know how to model what you want, but also how to make it as small in triangles and file size as possible. A beginner modeler may have the skills to model what you ask for, but you will need someone experienced to understand how to make a high poly model and significantly reduce the polys while maintaining the same look.
For example, say you hire a basic modeler who uses Blender. They may just model it not thinking about efficiency and stuff and end up with a high poly mesh. To reduce it, they may just throw in a decimate modifier and ruin the detail and then give it to you.
An experienced model will form the start to know modeling methods to try to keep it efficiently and properly modeled. From there, if they still have too high poly of a mesh they will maybe go in and manually delete unneeded polys to reduce it while keeping the shape. They will probably try baking the high poly to the low poly. And for experienced modelers the decimate modifier would probably be something at the end of their toolset. When they have done everything else and they just want to reduce it a little bit more, they may throw in a decimate modifier. And then they will send you the model. So yeah, try to keep your mesh file sizes low and keep the poly’s low while still getting the look you want.
5. Fake distant look with parts and fog
I believe that is a great tutorial. You can try using the method in that video but make it all happen within a script so that where ever the player goes they see that kind of never-ending terrain, but since the terrain will move with the player it won’t make the map look bad because the terrain will only take space where the actual map terrain will disappear because of Streaming Enabled.
I hope these tips help out!