Генерация подземелий в The Binding of Isaac — описание работы алгоритма
Рассказ программиста оригинальной игры.
Программист оригинальной The Binding of Isaac Флориан Химсл в 2020 году опубликовал на YouTube видео, в котором рассказал о принципах генерации локаций в игре. Он признался, что некоторые решения были неудачными, поэтому многие вещи пришлось исправлять авторам ремейка. Мы выбрали из его ролика главное.
Генерация уровня начинается с одной комнаты. Затем создаётся соседняя — алгоритм случайно выбирает, с какой стороны она будет примыкать к изначальной. Максимальное количество комнат в локации определяется разработчиком.
Если игра по какой-то причине не смогла собрать уровень, то вся генерация начинается заново. Химсл признался, что из-за этого существует вероятность бесконечной загрузки игры. Поэтому весь этот процесс больше похож на лотерею.
У некоторых комнат есть условия генерации. К примеру, тупиковые залы могут соседствовать только с одной клеткой. Именно в таких «тупиках» находятся торговцы, предметы и боссы.
Единственное исключение — секретные залы, которые могут связать тупиковую комнату с каким-нибудь другим помещением.
Тупиковый зал, который находится дальше всего от старта, назначается комнатой для босса.
В ремейке The Binding of Isaac процесс генерации отличается: например, там есть комнаты разной формы, а местоположение дверей заранее предопределено. Тем не менее весь уровень всё так же размещается на сетке.
В оригинальной The Binding of Isaac есть комнаты разной сложности — низкой, средней и высокой. И есть два типа подземелий: в одном совмещаются залы низкой и средней сложности, а в другом — средней и высокой.
Химсл признался, что в The Binding of Isaac достаточно плохой баланс сложности — его можно было бы улучшить множеством способов. Например, можно было ограничить количество сложных комнат или врагов на уровне. Но в результате сложность напрямую зависит от случайности.
По словам разработчика, The Binding of Isaac — это небольшая и неидеальная игра со множеством недостатков. Тем не менее ни один из них не делает её неиграбельной — загрузки не такие уже долгие, а баланс достаточно хорошо работает. А в ремейке многие проблемы исправили и улучшили оригинальную концепцию.