Обычный день, кормит зверей
Полосатая лошадь лезет без очереди, толкая малютку носорожика... чувствую скоро лошадь будет питаться только когда ей носорог разрешит.
Много кто из Вас носорогов на даче кормит? А мужику нормас, обед - по расписанию!
IDDQD, IDKFA и в ад!
Спойлер: если вам о чем-то говорит заголовок, то и дальше, надеюсь, будет понятно.
25 лет назад у меня была мысль - почему бы не сделать автоматическую генерацию лабиринтов для Doom2? Да все как-то время не находилось.
Где-то там эта мысль и лежала до тех пор, пока вновь не появилась в моей голове на днях. Благо, сейчас есть ИИ, которые позволяет реализовать эти задумки с минимальным вмешательством.
Вот тут сразу будет результат:
Рассказ о процессе создания очень специфический и полностью с кодом находится на githab по пути /huppo/Minotaur.
Мне не хотелось бы забивать развлекательный ресурс технической информацией, поэтому расскажу для затравки про основные шаги:
Шаг 1.
Генерация лабиринта в текстовый файл. Лабиринт представляет собой двухмерный массив. Каждое число массива - это информация о клетке и о стенах в лабиринте. У смежных ячеек информация о стене, которая их разделяет - одинаковая, стена либо есть, либо ее нет.
Получается такой текстовый лабиринт:
Шаг 2.
Генерация wad файла из текстового лабиринта.
ИИ никак не мог справиться с конвертацией лабиринта, путался в стенах. Пришлось ему помочь, но по дороге нужно было создать скрипт, который отображает а какая же все-таки получилась карта:
Шаг 3.
А собственно все, профит, что мы имеем:
- генерацию нового лабиринта при каждом запуске игры;
- враги и герой каждый раз в новом месте;
- возможность настроить нужно количество нечисти, оружия и патронов.
Лабиринт 8 на 10 можно пробежать за полторы минуты, не пользуясь чит-кодами.
Самое то, чтобы сбросить накопленную злость!
Будем пробовать?
P.S. Выхожу из сумрака
Корзина для хранения грязной одежды
Если кому надо, вот корзина на Али и аналог дороже на Яндекс Маркет
Делитесь своими поделками в нашем сообществе