I have created a "game" with a nearly infinite (2^17 x 2^17 meters) world based on Perlin noise. I also managed to create different regions (taiga, desert, jungle etc.) with Perlin noise. But I really have no idea how I can create rivers or roads. It has to be a function f which only depends on x and z coordinates and a seed for the random number generator. It must not depend on what is at point (x-1, z) or (x-3, z+2) and so on.
The rivers width should not vary too much and f should be lower (or higher) in the middle of the river than on the riverside.
I don't know how to achieve this with Perlin noise or other functions that I know.
Does anyone has an idea about how to do this?