Для создания уровней с рандомными порталами в современных играх используется процедурная генерация — автоматический процесс, в котором применяются алгоритмы и случайные числа. 12
Некоторые методы генерации:
- BSP-деревья. 1 Алгоритм заключается в рекурсивном разделении областей на две части. 1 Сначала выбирается случайная точка внутри области, затем через неё проводится прямая, образуя две новые области. 1 Аналогичные действия повторяются в каждой из областей. 1 После генерации дерева внутри каждой из областей создаётся комната случайного размера, ограниченная размерами области. 1 Полученные комнаты соединяются с ближайшими при помощи прямоугольных ломаных линий, символизирующих туннели. 1
- Алгоритм туннелирования. 1 Основная идея такого подхода заключается в «пробивании» туннелей и комнат в полностью заполненном пространстве. 1
- Клеточные автоматы. 1 Основной идеей таких алгоритмов является симуляция «живого» организма — клетки, определяющей, к какому типу относится та или иная ячейка карты. 1
- Карта высот и шум Перлина. 2 Карта высот представляет собой двухмерное изображение, где каждый пиксель представляет высоту уровня. 2 Шум Перлина — это случайный градиентный шум, который используется для создания неровностей и разнообразия в уровне. 2
- Фрактальная генерация. 2 Метод использует математические фракталы для создания уровней и миров. 2 Фракталы — это структуры, которые могут быть разделены на множество меньших частей, похожих на исходную структуру. 2
- Генетический алгоритм. 2 Эволюционный метод генерации процедурных уровней, который основан на принципах естественного отбора и мутации. 2 В этом методе создаются начальные уровни, а затем они оцениваются по определённым критериям, таким как сложность и интересность. 2 Затем выбираются лучшие уровни, которые служат основой для создания новых уровней с небольшими изменениями. 2