В этом туториале я расскажу о двух терминах, которые используются мной для описания процедурных генераторов: пространство генерации (generative space) и пространство возможностей (possibility space). Мы дадим определения этим двум терминам, а затем рассмотрим интерактивные примеры, чтобы понять разницу между ними. Эти термины действительно полезны для описания процедурного генератора и для того, чтобы понимать разницу между двумя генераторами. Давайте приступим!
Представьте огромную книгу, в которой представлен скриншот каждого отдельного мира Minecraft. Каждый скриншот помечен случайным seed, уникальным числом, которое можно ввести в Minecraft и сгенерировать этот мир. На первой странице представлен мир, порождённый из seed = 0, на следующей — мир из seed = 1, и так далее. В целом генератор миров Minecraft содержит 264 случайных порождающих значений, и это огромное число: игра может сгенерировать 18 446 744 073 709 551 616 миров. Каждый раз, когда вы нажимаете на «New World», на основе одного из этих seed создаётся мир. Число 264 — это размер пространства генерации Minecraft, множество всего, что игра может сгенерировать.
Теперь представьте, что мир Minecraft состоит только из обычной травы, бесконечно распространяющейся во всех направлениях. Под ней нет ни пещер, ни камня, нет деревьев и холмов, нет животных. Просто один слой тайлов травы. Кроме того, что это очень скучно, такой мир никогда не будет сгенерирован в Minecraft (если не использовать моддинг). Мы можем представить его, можем описать его, даже открыть Minecraft и создать его сами вручную — но Minecraft не может сгенерировать его.Читать полностью »