How do I generate parts around the player?

I’m trying to make a procedural generation system where 20x20 parts spawn around the player(so I can later generate stuff on those chunks) on the same y axis.

I’ve searched about procedural generation in roblox but it seems like people mostly use it for terrain.

Can I have tips on how to make this chunk generation work, like what way should I take?

There are a lot of great tutorials out there for procedural terrain generation that does not involve Roblox’ built-in terrain.

In order to create this system, I would recommend you to split it in different parts that are easier to understand and work with and then combine them together afterwards. First of all, you need to be able to render a chunk of terrain. Then you can start creating the chunk management system that can load and remove the chunks around the player. You can also simplify this process by rendering a chunk as a flat plate and creating the chunk management system right away. Then you can come back later and make the chunks look nice.

Tutorials for creating a chunk of terrain:

Resources for creating chunk management:
I hoped to find some tutorials on this on the DevForum site, but this has somehow never been done. Or at least, I did not manage to find a quality tutorial on this topic.

Potential optimizations
Rendering terrain can be quite a heavy process, so here are some optimization strategies that you might want to use:

  • Parallel chunk loading and unloading (this is currently impossible due to the inability to render and destroy BaseParts in parallel)
  • Greedy meshing to reduce the amount of parts used for your terrain generation (see Consume everything - how greedy meshing works)

Keep in mind that the best way to build systems like these is to start simple and somewhere. A lot of concepts are named to inspire you. I’m definitely not encouraging you to start greedy meshing your chunks. Start simple and do those things when all the other stuff works and you feel like adding more fun things to your project.

1 Like