I'm creating some terrain zones in the style of retro 3D RPGs, specifically like Everquest. I downloaded a tool that extracts terrain models from Everquest, and after importing and some tweaking here's an example of one of them:
It looks like the way they did it is to have a large grid as the terrain, and assign each cell in the grid to a specific texture. And there's different textures like grass, dirt, grass-dirt transition, modular paths (like 10 textures with a dirt path drawn over grass), etc, all as separate materials.
So I've adapted that and created a workflow to make the same thing. It gets the job done, but I feel like it's a pretty tedious process for what are relatively low-fidelity models. I'm hoping there's something that can be improved about it:
I make a rectangular grid in Blender, where each cell will be assigned to a texture
I make all of my textures, including modular paths and what not:

All of these textures are separate because in an atlas I end up getting texture bleeding when there's any kind of interpolation.
I create my 15+ materials in blender, one for each texture. This is kind of tedious, because for each material I have to assign a shader, roughness, interpolation, image texture, etc.
Reset all the polygons through the UV menu so that each cell/quad takes up the entire 256x256 texture.
I apply the base grass texture to all the cells, and then from there I will assign individual cells to the different path materials to create paths for the terrain. This is also a tedious process, it's like using a tilemap to create a 2D world but a lot slower since it's individual materials that I have to assign to individual polygons.
Tweak some stuff, randomize heights for vertices, etc and I can get something that I'm happy with and looks really similar.
If it's not obvious, I'm pretty new to Blender, so I definitely feel like I'm missing something that can cut down on how long it takes to make this super simple terrain. As I said, it's basically like creating 2D worlds using tilemaps, so if I have an option to just do that in another program and then in Blender somehow put it all together, that could work as well. But I don't know -- any help would be greatly appreciated!
