Более непрерывное содержание

Материал из Клуб любителей рогаликов
Перейти к: навигация, поиск

Эта статья была первоначально написана для Darren Hebden's RLNews

Одна из характеристик RL-игр - произвольное размещение чудовищ и объектов. В то время как это хорошо в целом, в частностях это неправдоподобно в лучшем случае, и смешно в наихудшем. Вы знаете о чем я говорю. Барак солдатов с одним выходом ведущим к комнате, содержащей полдюжины гигантских пауков. Орки резвящиеся в одной комнате, тогда как одинокий эльф бродит рядом. Wargs, которые игнорируют сочный запах соседнего ratling'а. И так далее.

Хороший AI помогает, но если начальное размещение чудовищ не соответствует их встроенному поведению, проблема не решена. Общество сделало фантастическую работу, разработав физически непрерывные темницы, но их содержание - не удовлетворительно.

Прежде всего, нам нужны некоторые дополнительные данные для наших общих чудовищ. Что-то, что указывает, какие чудовища стремятся быть около других чудовищ. Назовите это Темой. Для темы "Берлога Гномов" это, вероятно, будет выглядить похожим на это:

1     Goblin King and 3 advisors (1-3 hobgoblins) (unique, mandatory)
2     Goblin guards (1-6)
2     Hobgoblin guards (1-2)
3     Goblin Wolfriders  (1-3)
3     Goblin Shopkeeper (unique)
3     1-3 Goblins and 1-2 Goblin thieves
4     1-2 Goblins and a Crate
4     1-2 Goblin Guards
4     Goblin pig farm - 1 goblin and 3 pigs
4     Empty Room
5     Empty Room
6     Empty Room - random monster possible
7     Empty Room - random monster or stairs allowed

Сначала, когда Вы строите ваш уровень, проверяйте есть-ли тема. Не все уровни должны иметь одну. Если ваш уровень имеет тему, тогда начните сверху списка.

В этом случае, первая комната, которую Вы создали, должна иметь Короля Гномов (#1) в списке. Когда Вы делаете двери/коридоры, сделайте их из этой комнаты, и перенос с ним числом слева. Перемещаясь на соседнюю комнату, переместитесь по списку вниз (75% шанс) или вернитесь вверх (25%). Для примера выше, есть две возможности, или некоторый Goblin или Hobgoblin guards. Добавьте их к соседней комнате. Сделайте двери/коридоры оттуда и продолжайте.

Вы можете даже решить добавлять некоторые данные к самим комнатам, если они достаточно большие. Король Гномов может иметь охрану во внешем холле, но было бы трудно иметь ферму свиньи в прихожей. Если Вы захотели использовать этот выбор, простое решение в разбросе входов так, чтобы нечетные были в комнатах и прочие в прихожие между ними.

Хорошо, если Вы заканчиваете с небольшим сообществом гномов, с несколькими пустыми комнатами и странствующими чудовищами между ними. Король Гномов сидит в средней, самой дальней от входа, где герой будет входить.

Как осуществить? Если Вы прорезаете темницу в камне, это - легко. Начиная с пустого уровня темниц, Вы поддерживаете отдельный список входов: 1) Начните с ложного входа с величиной содержимого 1 2) С входа, попытайтесь добавлять содержимое комнаты по величине содержимого от входа; если удачно, то добавляйте как комнату, так и вход на карту. 3) Добавьте выходы из комнаты, мигрируя содержимое (1->2, и т.п.) 4) Перейдите к следующему элементу списка входов и возвращайтесь к шагу 2; Вы завершите когда закончится список.

Если Вы используете сетку, чтобы размещать комнаты, Вам также нужно ожидать, пока Вы не сделаете коридоры (и сделать их тщательно), или использовать алгоритм "flood fill" (наполнение наводнением).

Если Вы не всегда используете фиксированные комнаты (подобно Crawl), Вы могли бы также затопить наполнителем каждый вход, имея определенный радиус перед переходом на следующий. Это - мудрено.

Другие мысли: Не все уровни должны иметь тему. Некоторые темы должны быть меньшими, чем другие, может быть только несколько связанных комнат, с остальной частью уровня более произвольной. Чтобы установить темы, Вы могли бы сделать их более общими. Сделайте образец, как вышеуказанный общий на гуманоидов (xxx берлога) и заполняйте подробным содержимым соответствующим цели на время выполнения (берлога орков, гномов, и т.п.). Или Вы могли бы сделать большую карту чудовищ связанную с вероятными группами. Один целый край карты должен быть заполнен 'произвольными чудовищами'. Я рекомендую, чтобы не более чем около 1/3 - 1/2 темницы заполнялись согласно теме, чтобы поддерживать реиграбельность. Если Вы включаете ступеньки с дверями как точки перехода, можно распространять тему в 3d. Вместе с чудовищами, сделайте также объекты более непрерывными. Стража Гномов может иметь дополнительную саблю, лежащую рядом, но крестьяне не могут иметь 50 gold недалеко от себя. Пустые комнаты около берлог (lairs) могли бы иметь признаки локальных жильцов - граффити на языке гномов, к примеру.



Автор: Joseph Swing.
Источник: More Continuous Content.
Перевел: Сергей В. Ждановских [Alchemist], 16.05.2005.