После появления DeBroglie и Tessera меня много раз просили объяснить, как они работают. Генерирование может выглядеть как волшебство, но лежащие в его основе правила на самом деле просты.
Читать полностью »
Рубрика «wave function collapse»
Разбираемся с алгоритмом коллапса волновой функции
2020-04-16 в 14:40, admin, рубрики: wave function collapse, wcf, Алгоритмы, Блог компании Mail.Ru Group, высокая производительность, математика, никто не читает теги, разработка игрСоветы по использованию алгоритма коллапса волновой функции
2020-02-17 в 4:38, admin, рубрики: wave function collapse, Алгоритмы, Дизайн игр, коллапс волновой функции, процедурная генерация уровней, разработка игр, тайловые картыВ последнее время я много экспериментировал с процедурной генерацией на основе ограничений. В частности, с алгоритмом Wave Function Collapse (WFC, коллапс волновой функции). Я даже написал собственную open source-библиотеку и ассет unity.
WFC — это очень гибкий алгоритм, в особенности с разработанными мной улучшениями. Но в то же время я обнаружил, что достаточно трудно создавать с его помощью практичные уровни, применимые для компьютерных игр. Основная сложность заключается в том, что у WFC нет какой-то глобальной структуры. Всё, что он делает — заставляет генерацию выходных данных выглядеть локально похожей на входящие данные, например, при взгляде на отдельные небольшие прямоугольники выходных данных.
В этой статье я расскажу, чему научился и что сможет поднять генераторы на основе ограничений на новый уровень.
Читать полностью »
Адаптивная процедурная генерация при помощи алгоритма WaveFunctionCollapse и априорного распределения вероятностей
2020-01-10 в 13:02, admin, рубрики: wave function collapse, Алгоритмы, коллапс волновой функции, процедурная генерация, процедурная генерация карт, разработка игрЧто такое процедурная генерация?
Процедурная генерация включает в себя множество генеративных алгоритмов, принцип работы которых заключается в создании данных не вручную, а алгоритмически: вместо ручного изготовления того, что мы хотим создать (карты, музыки, рельефа…), пишется алгоритм, который успешно может создавать различные примеры без многократного выполнения того же процесса. Особенно полезен такой подход в видеоиграх, где случайным образом может генерироваться целая карта или уровень (например, карты в Minecraft, Terraria или Factorio, или схемы уровней в большинстве roguelike).
Алгоритм коллапса волновой функции и его области применения
В статье мы исследуем алгоритм коллапса волновой функции (WaveFunctionCollapse, WFC), предложенный Максимом Гуминым (в его Twitter есть коллекция потрясающего контента, созданного при помощи этого алгоритма другими разработчиками!) для процедурной генерации изображений или рельефа при помощи создания изображений, локально схожих с входящим изображением в условиях сетки заданного размера.
В основе алгоритма лежит идея пошагового создания готового изображения с отслеживанием того, какие тайлы «соответствуют» уже частично построенному изображению. Для изучения подробного описания алгоритма рекомендуем обратиться к исходному репозиторию WFC на Github и четвёртому разделу статьи "WaveFunctionCollapse is Constraint Solving in the Wild".
Примеры процедурно сгенерированных из seed изображений
Читать полностью »