How to Mix Face Textures Across UV Edges TLDR: I'm trying to figure out the best method of mixing textures across UV edges in a dynamically textured mesh. For instance, if you have a plane with 4 faces and each one has a non-seamless texture applied to it, is there a way to mix the textures across the edges?

I'm making an adventure game where the terrain is dynamically generated. I've considered a few methods of texturing each face if the terrain but I run into problems with seams in the UV mesh. I've been pointed to Cycles but, and this was a while ago so I might remember wrong, I had problems getting it to work in the BGE. I was pointed to video textures, but I think there was still an issue with seams.

I tried, at one point, using the RGB color channels but I ran into an issue with only having 3 or 4 possibilities for texture. I think it was one default, and one for each color. And this also caused obvious squares, as I was applying this by vertex colors.

As an example I might shift from grass to dirt, and the edge this happens along should fade from a green grass texture go a brown dirt texture. At the moment it looks more like Minecraft, with an obvious seam between blocks.

What method should I look at? I like the idea of making a single image with each type of terrain painted in a grid, and moving UV's to change terrain type on the mesh. This is easy enough but I can't fade the textures together.
Here is an example to illustrate how you can use Empties to control some aspect of your material - in your case textures. This is how it is done in Cycles, so hopefully you are able to carry this concept over into your game code.

Just a basic black and white spherical gradient appearing on a simple landscape object. The placement and size of the gradient are determined by the Empty (it's located where the 3D Cursor is in the screen shot). The Color Ramp is for controlling the falloff.



And here is an example of what this technique can produce when you have multiple Empties and they are actually controlling textures instead of just a color result. In the screen shot below two Empties are used against a base grass texture.