0
\$\begingroup\$

While creating a subterranean level with probuilder (irregularly shaped rooms and corridors), I was wondering if I should merge all "terrain" meshes into one or keep them as separate meshes? What are the good practices ?

I'm creating each room as I go and its not hard to create openings and align doors vertices (with progrids) but once I start moving them around (like with polybrush) I'm sure it will soon be a nightmare. I can see pros and cons for both. Separate meshes would be easier to edit, duplicate or replace, probably better performances but at the risk of overlaps or holes because it would get hard to keep connected cleanly. I guess with one mesh you take the risk of having it eat memory and computation time, or having it too big to edit easily.

I settled on each mesh consisting of a room and all half-corridors going out of it, to hide the stitching and keep it simple. Still I wonder if there's a consensus.

\$\endgroup\$
  • \$\begingroup\$ Sorry if this is a duplicate (feel like this is). I was actually surprised I could not find this questions asked here... I guess I don't have the right keywords. \$\endgroup\$ – Pierre May 25 at 11:36
2
\$\begingroup\$

It sounds like you understand the trade-off here between ease of creation and runtime performance.

What position along that trade-off spectrum is both...

  • sufficiently efficient to render for the way your game runs / the content you're putting in it

  • sufficiently simple to edit for the way your development workflow operates

...is a judgement call that only you have the information to make. We have neither your game nor your dev team here in front of us to run tests on.

So:

  1. Find a level of division that you like working with (maybe just one huge chunk), and mock up a map at that scale.

    It doesn't have to be beautiful/final - you can create it slapdash and just fill it with randomly placed objects to represent your expected content density, without having to put too much time into making the test.

  2. Profile this sample in-game, on your target hardware, and measure how long it's taking to update/render from worst-case viewpoints.

  3. Evaluate, based on your goals for the game, whether the performance is acceptable with this chunk size, or if you need to break into smaller chunks.

    If you need to go smaller, break the chunk into pieces and profile it again, until you find a size that gives you the best compromise between runtime and editing efficiency.

You can also look for workflows to make editing the map chunks easier - like tools that will let you modify your map as one piece, then chop it up on export so you don't have to fuss with fixing seams yourself.

\$\endgroup\$
  • \$\begingroup\$ You mean you don't have any rule of thumb for these cases ? It's always down to experimentation and profiling ? \$\endgroup\$ – Pierre May 25 at 15:28
  • 2
    \$\begingroup\$ Profiling is your rule of thumb. Your game's graphics might be so simple that you don't need it subdivided at all. Or they may be so dense / your target hardware so weak that you can only have part of a room rendered at a time. We don't know, so the simplest way to judge it is to test it. If you want a starting point, you can try not subdividing at all until you encounter a performance problem that you need to solve. \$\endgroup\$ – DMGregory May 25 at 15:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.