Как сгенерировать срез острова в 2d?
В итоге решил использовать библиотеку Noise с шумом перлина по формуле 

from noise import snoise2
octaves = 5
freq = 20 * octaves
v = snoise2(tile_x / freq, tile_y / freq, octaves)
if v > 0.2:
    static_tiles[y_pos][x_pos] = 1

Чисто алгоритмически можно, например, так: https://gamedev.stackexchange.com/questions/21297/...

Как вариант - сделать набор шаблонов - острова и/или их фрагменты - из которых что-то лепить уже "на лету".

Но опять же на масштабах 16х16 тайлов что-то не ущербное вы не сделаете, и как мне кажется второй вариант будет на таких масштабах наименее ущербно выглядеть и потребует от вас меньших затрат времени.