Hi everyone!

I have a question.

As you can see in the image, I'm working on the famous pool map and have about 150 (maybe more) nodes so far, including MeshInstance3D, StaticBody3D, CollisionShape3D, and more. I'm thinking of using MultiMeshInstance3D because I am getting very low frames on android devices, but I can't find any resources to learn how to use it. I've checked the docs, but as a beginner, I find them hard to understand.

Does anyone have any suggestions or know of a good tutorial?

Thanks!

    dorpen MeshInstance3D, StaticBody3D, CollisionShape3D, and more. I'm thinking of using MultiMeshInstance3D because I am getting very low frames on android devices, but I can't find any resources to learn how to use it. I've checked the docs, but as a beginner, I find them hard to understand.

    no.
    the problem could be that you are using a meshinstance for each wall and floor.
    what you should have is a SINGLE meshInstance3D of the entire map with different materials.
    for collisions, one StaticBody for walls, maybe one for the floor, and then add all the colliders inside.

    map_mesh (MeshInstance3D)
    Walls (StaticBody)
         |
         þ-> collider
         þ-> collider
         þ-> collider
         þ-> collider
         þ-> collider
         þ-> collider
    Floors (StaticBody)
         |
         þ-> collider
         þ-> collider
         þ-> collider
         þ-> collider

    open the map in blender, take all the meshes and Ctrl+J to join them into a single mesh.
    at this point you could create colliders, which would be meshes for the walls and floor, and you add "col" at the end:

    walls (imported as mesh)
    walls_col (imported by godot as collider)
    floors (imported as mesh)
    floors_col (imported by godot as collider)

    dorpen very low frames on android devices

    this isn't a problem with the map, it probably has very low polycount. this is a problem with texture compression, texture sizes, and shaders applied to the scene and the materials.
    for mobile you want very few post-processing shaders and fewer textures per material, and maybe even avoid PBR (burley) and go with something like lambert.
    buffer shadows could also cause problems, they have many options for improving performance.

    it could also be a physics related issue that's causing performance to drop, check the profiler while the game is running.

      Jesusemora You are a life-saver. Thanks for the effort to respond, it is higly appriciated.

      What do you think of MultiMeshInstance3D? Should I use it anyway?

        dorpen What do you think of MultiMeshInstance3D? Should I use it anyway?

        multimesh if I'm not mistaken, is a form of instancing (godot wording is weird sometimes, like with scissor which is just alpha clip).
        instancing is a type of shader that takes a number and a mesh and some data and renders it on screen multiple times.
        it is for rendering grass and particles, or repeating geometry, there is nothing of that here.

        for particles GPUparticles does the instancing automatically, but doesn't work in mobile. so I'm not even sure multimesh will work in mobile.

        and godot's multimesh is very limited and poorly designed, it gives each instance a transform and doesn't allow writing your own shader. so it's no different from just using nodes, except it doesn't allow culling and all meshes are rendered at the same time and culled together.
        godot's multimesh is good for rendering multiple statues or columns or dynamic fences, and for grass, or a bunch of insects. but these have to be high poly to get performance out of it, I think at least 1000 polys.

        so forget about multimesh unless you have to render grass on PC.

          Jesusemora Thanks so much for great responses, I will definetaly consider them in my project.
          I give you the award of the most benefactor person. Thanks