Алгоритм генерации случайных двумерных плиток

Может кто-нибудь сказать мне способ генерировать островные структуры или структуры холмов, как в Minecraft?

Я просто ищу подходящую ТЕОРИЮ для генерации этой случайной формы, но она должна сохранять определенный базовый шаблон.

как: острова должны быть округлены, но различаются по форме и масштабу (минимальная / максимальная ширина и высота).

или: реки не должны быть прямыми, они должны иметь изгибы и случайную ширину.

или даже: создание какого-то леса, в котором деревья расположены таким образом, что пользователь все еще может ходить по лесу (я думаю, это просто, просто скажем, что некоторые блоки вокруг дерева должны оставаться пустыми, если код пытается это сделать). положить больше деревьев вокруг последнего)

Какую математику я могу использовать для таких вещей?

Я был бы рад за некоторые ссылки на учебники или ссылки. Я искал по всему Интернету несколько часов, но все, что я мог найти, это какие-то книги, которые можно купить, например, «игровая математика». или что-то, но мой бюджет установлен на ноль.

РЕДАКТИРОВАТЬ:

Прежде всего, я прошу прощения за мой плохой английский.

Вторичный Я хочу поблагодарить всех вас за ваши ответы. Это отличные ссылки, и я потрачу много времени, чтобы углубиться в это.

Ответы на вопрос(3)

Ваш ответ на вопрос