Как стать автором
Обновить

Комментарии 7

А зачем надо было делать жёсткую сетку уровней? Намного занятнее было бы сделать возможность построения произвольных графов комнат. Например, как я понял из структуры, описывающей соседей, игра позволяет сделать туннель, который бесконечен в одном из направлений.
Вы про редактор? В нем, разумеется, можно менять сетку путем размещения комнат относительно друг друга. Сделать бесконечный туннель, исходя из принципа работы того инструмента (Level layout), пожалуй нельзя, но в общем случае это и не нужно, так как если можно пробежать в одну сторону, то можно и в обратную, а в обратную сторону он убежит в никуда.
Значит, окружение одной комнаты описывается структурой из четырех байт, причем первый из них — это номер комнаты слева. Исходя из карты уровня, видно, что оставшиеся три байта описывают комнаты справа, сверху и снизу. Причем, если комната отсутствует, то на соответствующем месте будет стоять 0.
Исходя из этого я делаю вывод, что набор переходов из одной комнаты не связан с наборами переходов её соседей. То есть, можно сделать так, что, например, справа от первой комнаты вторая, слева от второй первая, но справа от второй вторая же. Таким образом сколько бы принц ни бежал направо, он будет оставаться во второй комнате. Но стоит из неё уйти налево — он снова окажется в первой. И это только простейший пример, можно строить безумные невозможные пространства с сжигающей мозг картой переходов.
:-) Я когда писал редактор, у меня было два варианта реализации: первый — позволять редактировать только одну комнату, переходя в соседние по нажатию на какую-нибудь кнопку; второй — нарисовать целиком всю карту и позволить редактировать как единое целое. Я остановился на втором варианте, так как хотелось увидеть все и сразу. Естественно, в этом случае мы получаем естественное ограничение в двухмерном пространстве: нельзя нарисовать две комнаты в одном и том же месте так, чтобы они не перекрывали друг друга. Во первом же случае такой бы проблемы не было, но и общий вид увидеть было бы нельзя. Ваша мысль имеет право на существование: карту такой игры нарисовать будет затруднительно.
Карта очень простая — банальный граф с кривыми линиями между комнатами и возможностью таскать эти самые комнаты по карте для более удобного просмотра происходящего.
Т. е. выглядит примерно так (картинка нагуглена), но вместо кругов квадраты и точки соприкосновения на них фиксированы:
image
Очень, кстати, похоже на карты для Interactive Fiction.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации