О «ползучей детализации» уровней⁠⁠ (и немного о Quake 2)

<p><i>Отдаём дань уважения ещё одной игре детства. Но какой ценой?</i></p>

Отдаём дань уважения ещё одной игре детства. Но какой ценой?

Недавно закончил дизайнить очередной уровень нашего ретро-шутера Slipgate. Вместо ожидаемых 10-15 часов, на этот уровень ушло порядка 30. Сижу и думаю - и куда такая прорва времени-то девалась? А ответ вот он, на скриншоте. Ползучая детализация съела.

Изначально уровень вообще планировался как пара комнаток, предваряющих уже готовый кусок с мощным замесом. Это самое начало игры, где игрок знакомится с управлением и основными механиками. Сразу бросать в незнакомого человека толстые пачки врагов как-то некрасиво - надо дать немного приноровиться и побродить по местности.

Уровень детализации в игре мы стараемся держать где-то между Quake 2 и Half-Life 1. И смотрится достаточно стильно, и наш движок не захлёбывается. Он всё-таки у нас старенький (BIMA - наследник легендарного FPS Creator). Хоть и с 2005-го года он окреп и поумнел, но много объектов ему обрабатывать тяжело.

Аутентичность - сложная штука, и потому мы ограничены потреблением памяти движка в 1.85 Гб на уровень. Каждый дополнительный объект откусывает свою малую долю. Особенно это заметно, когда он уникальный - то есть встречается на уровне только один раз. Не удаётся сэкономить толику памяти при повторном его использовании - движок создаёт сущность для каждого типа объектов, потом её клонирует на каждое применение. Иметь больше сотни-полутора уникальных объектов на уровне - уже тяжело.

<i>Пример: для детализации геометрии в области, где встретил свою гибель боец с дробовиком, использовано 20 объектов (из них 12 уникальных, но с потенциалом повторного использования). Приемлемо. Перфекционисты, простите за стыки потолочной решётки!</i>
Пример: для детализации геометрии в области, где встретил свою гибель боец с дробовиком, использовано 20 объектов (из них 12 уникальных, но с потенциалом повторного использования). Приемлемо. Перфекционисты, простите за стыки потолочной решётки!

И вот, при проектировании уровня мне в порыве вдохновения пришла замечательная мысль - а ведь первая комнатка отдалённо смахивает на входную группу из Марс-Сити в Doom 3! Почему бы не отдать дань уважения, сделав её похожей, как небольшую отсылку?

Довольно быстро получилось подобрать ассеты, и собрать то, что видно на первом скриншоте. Показал - всем понравилось, сказали "малаца, продолжай в том же духе". И я продолжил.

И тут стало плохо.

Во-первых, детализация уже пробила потолок и ушла в заоблачные выси. Небольшая комнатка содержит 75 объектов, из них 55 уникальных. Да таких, которые особо никуда больше не воткнёшь. Половина бюджета объектов на уровень уже съедена, а мы только начали!

<p><i>Для сравнения - целый уровень, собранный из ~100 уникальных объектов.</i></p>

Для сравнения - целый уровень, собранный из ~100 уникальных объектов.

Во-вторых, в дело вступила такая разновидность feature creep, как ползучая детализация. И сейчас расскажу об этой проблема подробнее.

Вспомните старые игры из числа хорошо сохранившихся. Когда стиль оформления игры таков, что уровень намеренно (или по возможностям железа) не наполняется мелкими деталями - то одинаково "голые стены" повсюду выглядят достаточно органично. Мозг игрока принимает допущение "нам не показывают всех деталей потому, что это не важно".

<p><i>Quake 2 как отличный пример подхода "бедно, но чисто". В ремастере подтянулись текстурки и полигончики, но сохранился тот же визуальный стиль.</i></p>

Quake 2 как отличный пример подхода "бедно, но чисто". В ремастере подтянулись текстурки и полигончики, но сохранился тот же визуальный стиль.

Посмотрите на скрин. Никто же не задаётся вопросами типа "а почему лестница без перил?", "а почему кран-балка без крана?" и даже "а как персонал пользуется аптечкой, закинутой на самый верх коробки?". Это условности, с которыми "упрощённый" стиль помогает нам смириться. Не про то игра.

А теперь посмотрите на скриншот из Quake 4 для сравнения, не акцентируя внимание на качестве моделей и рендера.

<p><i>Обратите внимание на кабели, трубы, экранчики, перила, выступающую из стен машинерию. Вот она - детализация окружения до отметки "реалистично"!</i></p>

Обратите внимание на кабели, трубы, экранчики, перила, выступающую из стен машинерию. Вот она - детализация окружения до отметки "реалистично"!

Ну а теперь представьте, что мы из этого помещения вышли в дверь, и вдруг обнаружили склад в оформлении предыдущего скриншота (Quake 2). Что мы ощутим?

Мозг невольно подметит такие мелочи, как отсутствие электрических кабелей у механизмов, исчезновение перил у лестниц и отсутствие иных мелочей, которых мы ожидаем от реалистичного окружения. Погружение будет разрушено, мы ощутим недоделанность и "театральность" игрового мира.

Ещё раз скрин из Quake 2, теперь уже из Remastered
Ещё раз скрин из Quake 2, теперь уже из Remastered

И с того момента, как у нас на уровне появилась первая реалистичная комната - мы стали её заложником. Теперь прочие части уровня обязаны соответствовать.

Мы смотрим новыми глазами на уровень, и видим, что не все части соответствуют высоко заданной планке. По всему уровню начинается опухание детализации - напихивание помещений деталями, которые изначально не задумывались при проектировании. Их мы потом долго и мучительно полируем, чтобы они не мешали геймплею, не перетягивали внимание игрока и просто хорошо смотрелись.

И чем более детальным становится стиль уровня - тем больше помещений начинают требовать переделки. На это тратятся время и силы, но становится не лучше - становится хуже.

Если изначально в каморке охранника стоял стул и стол с терминалом доступа - то ползучая детализация сначала потребует добавить провод от компьютера к стене, потом настенную розетку, потом бумаги, кружки, тумбочку, потёртости на полу, потом сама планировка комнаты станет смотреться неуместно (ну кто по 12 часов просидит в комнатке метр на метр без окон?), потом голые железные стены станут давить... А ведь изначально это должен был быть закуток, куда игрок на 5 секунд заходит нажать кнопку.

<p><i>Реалистичное окружение в Return to Castle Wolfenstein. Минимумом объектов достигнут максимальный эффект. Браво.</i></p>

Реалистичное окружение в Return to Castle Wolfenstein. Минимумом объектов достигнут максимальный эффект. Браво.

И этот процесс крайне сложно остановить - вырезать лишние и любовно добавленные детали очень обидно. А ползучая детализация продолжает распространяться, требуя всё новых и новых жертв. И рано или поздно что-то кончается - или бюджет, или время, или возможности движка.

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

Ну или можно заранее иметь чёткое ТЗ на уровень и неукоснительно его придерживаться... но подходит ли этот метод настоящим инди?

В целом, получилось как-то так. Это ещё не финальная версия - с кучей шероховатостей, без озвучки действий героем, с плейсхолдером на месте части монстров и музыки. Но основная часть уже готова:

И всё равно количество уникальных объектов у нас достигло 150-200, а к работе над уровнем я возвращался в течение трёх недель. Это не смертельно, но много. Постараемся больше так не делать, чтобы ползучая детализация не сожрала проект с потрохами.

Подпишитесь на наш ТГ-канал о разработке ретро-шутера на FPS Creator:

Ну и в вишлисты в Steam нас добавьте, что ли :)

P.S. Это репринт нашей статьи, заброшенной нами с недельку назад на Пикабу. Just in case of c:

4141
55 комментариев

Ппц, тридцать лет назад чуваки угарали от возможности сделать стрелялку с 3д монстряками из мяса с железом и плазмаганами, а вы сейчас на серьезных щах разбираете почему нету перил у лестницы?)

7

Чуваки запаривались, как бы сделать, чтобы выглядело красиво, не тормозило, и не было в разработке сто лет. А поскольку чуваки были очень неглупые, и пришли к успеху - то у них мы учимся, ага :)

7

Ага, я тоже прямо себе представил:

[тридцать лет назад, Кевин Клауд, невыспавшийся и с перегаром на планёрке отвешивает пиздюлей] До релиза месяц а половина уровней выглядят как говно говна! Я понимаю, что шутер, но хоть какго контента надо: присобачте лесниц каких-то, палки железные, сделайте что-нибуть!"

[cовременные 'эстеты их Барнаула' тычут указкой на аршинный скриншот в бронзовой картинной раме] Посмотрите как изящно, как стильно решен дизайн кран-балки: в стиле позднего индастриала! А отсутствие крана и перил только подчёркивает лаконичную гениальность этого решения..."

4

А что если там нет перил не просто так? Например это минус лишний вес или бегать по уровню при таком геймплее шустрее и т.д.

И с того момента, как у нас на уровне появилась первая реалистичная комната - мы стали её заложником. Теперь прочие части уровня обязаны соответствовать.Для этого вам нужен артдиректор который будет следить за стилем и бить по рукам левел дизайнерам

3

Он тут не уверен, что индюкам нужно ТЗ на уровни, а ты говоришь "артдиректор" :D

Тот неловкий момент, когда я по сути и есть арт-директор :с

А вообще - это у нас "проект выходного дня", мы набиваем на нём возможные шишки и оттачиваем подходы. Единство стиля тоже стоит на повестке дня.
Приняли решение - пройдёмся по уровням и причешем их к моменту выпуска демки.

1