I generated a height map with the diamond square algorithm. The thing is i do not manage to create islands, this is, restrict the height other than water level range to a certain value in the center of the map.
I manualy seeded a circle in the middle of the map but the rest of the map still receives heights over the water level.
I dont fully understand the Perlin noise algorithm so i'd like to work with my current implementation of the diamond square algorithm which took me 3 days to interpret and code in PHP. :P
UPDATE:
I'm trying to get a gradient and its working (it's late and have to refine it, i'll try tomorrow). I tried to work with gradients but silly me, I had been clamping the affected values to a radius, giving me a circle when generating the map.
The seeding option is NOT working. I may get some bigger landmass, but may be located in any sector in the map, not even close to the center.
Please have in mind that the DSA generates the middle value averaging it's corners, so its not possible to seed the middle of a square.
a b f c d f = (a+b+c+d) / 4 + random(-value,value)
Perhaps that's why seeding it's not working.