Help or suggestions building this level

Godot Version

4.4

Question

Hello !
I’m creating my first game, a 2.5D platformer. I’m working on the level design and I need some suggestions on how to approach it.

So far, I’ve created some blocks in Blender and used a GridMap in Godot to build the level with those blocks. However, I’m noticing visible seams between the meshes (as shown in the image). The smoothing from one object doesn’t continue seamlessly to the next, causing a noticeable gap.

I tried using a material override to mask the seams with a texture, but it still looks bad. For the textures, I enabled the “world triplanar” option in the UV settings.

I also see the same smoothing issue between different objects when viewing them in Blender. I’ve checked normals, duplicate vertex… and all it’s ok

I’m considering building the entire level in Blender and then exporting a merged version where I join all objects and remove duplicate vertices. This might solve the problem, but it would reduce my flexibility if I need to modify the level later.

How would you approach this issue?

you need to save the tangent of the mesh from the 3D software to prevent this. unfortunately, blender does not support saving custom tangents, it calculates them automatically.

if this is a single mesh there should not be smoothing issues. do not trust blender’s automatic duplicated vertex remover, if you were not careful, those will be a fraction of a micro-unit apart and it will fail.
select your vertex and move it, that will tell you if it is duplicated.
another problem could be blender’s automatic smoothing groups, these are based on angle and look bad. previous, more usable versions of blender (2.79) had a button to disable it. But I don’t know about blender 3 or 4 or whatever it is at now.
it could also be a problem with the normal maps, if there are UV seams (there probably are), the normal map will make the seams more visible.

that is the correct way to do it. it is also more efficient.

in level design, you have 2 types of meshes, ones for the terrain and ones that can be moved and swapped, this is called modular design.
look at skyrim, there is a terrain mesh, and there are rocks that are placed on the terrain, and these can be used to mask the transition from one terrain to another. other games will use buildings and streets to the same effect. cliffs and even rivers can also work.

but you should prototype the level first and not worry about details, go fast, focus on gameplay, and in the end, you refine the looks.
in godot you can export a scene to glb, which you can then import in blender, so this can be useful for that.

Hi, Jesús.

Thanks for take time to answer and give me suggestions.

I’ve seen in Blender we can use the modifier DataTansfer, if you apply the modifier before export to GLB then, in Godot, the problem is “solved”. But not completely, bacause in this modifier you need to set a Source object, and then the problem is solved with these two objects, but then you have a problem with other objects:

Dont know if I can apply these modifier more than one time in each object, but I think it’s not worth it.

Yes, that was my plan—to first create the terrain mesh and then add trees, bushes, grass, rocks, etc.

However, I initially thought it would be a good idea to build the terrain in blocks so I could easily create multiple levels.

But after your advice, I see that it’s better to create the entire terrain in Blender first and then add other assets in Godot to “decorate” the stage.

I’ll follow your suggestion and start with a prototype, gradually improving everything along the way.

Thanks for the advice!