Шутер DOOM от id Software считается культовым не только среди ценителей игровой индустрии, но и в среде разработчиков. Запустили игру, кажется, уже на всем, на чем только можно, но полет фантазии не позволяет новым интересным решениям перестать появляться на свет. К примеру недавно программист Рич Уайтхаус создал скрипт для создания уровней к DOOM. Что в этом необычного? А то, что алгоритм создает карты на основе данных, полученных от робота-пылесоса.
В качестве источника информации выступает робот-пылесос Roomba 980, а скрипт назван в его честь — Doomba.
Как все это работает? При помощи системы Clean Map (сюда записывается информация о перемещениях пылесоса) данные импортируются в программу Noesis. Собственно, она и создает уровни на основе полученной информации. В результате получившаяся область сохранит очертания комнаты с расположенными в нем преградами. Если робот уберется в нескольких комнатах — получится целый уровень.
При этом можно неплохо поэкспериментировать, задав роботу определенный маршрут движения. Хотите создать круглый уровень? Пожалуйста! Или может, уровень в форме контура вашей спящей собаки? Без проблем!
Ну а сама генерация окружения и врагов на основе полученной геометрии может происходить как в автоматическом режиме, так и с учетом ваших пожеланий. Есть масса опций по расположению и количеству противников, параметры входа на уровень и выхода с него, данные об опасных зонах, дверях и многое-многое другое. Можно также сохранять файлы «на потом». К примеру, ваш робот будет убираться в квартире всю неделю, а на выходных вы «сошьете» все маршруты в извилистый уровень и одолеете всех монстров из ада также эффективно, как и ваш робот-пылесос сражался с пылью пару дней назад.