Well it depends what you’re aiming for. Ideally, you could use procedural generation to place many house models.
If it’s supposed to be a playable, walkable scene with different camera angles, then you move houses from further away to create an “infinite” scrolling effect when moving around, without creating more houses. Could also create a LOD system to replace houses from further away with much lower-resolution meshes, (or just decals) mainly relying on texture.
If it’s supposed to be at a single angle and a non-walkable scene then you can use decals from far away to create the illusion of many houses. Also consider using one decal for many houses (ideally some texture to procedurally repeat).
In any case try utilizing instancing to reduce draw calls. Use the same mesh (the lower resolution the better), ideally with all parts of the house in one mesh. Then just benchmark performance.
If I completely misunderstood or you need elaboration on anything please tell me
If it’s supposed to be a playable, walkable scene with different camera angles, then you move houses from further away to create an “infinite” scrolling effect when moving around, without creating more houses.
What do you mean by move houses from further away? Do you mean like move the existing houses into the cameras view? I have never built anything I almost always have someone else do it so idk some of those words. (I’ll give the decal/texture approach a try though)