39

О "ползучей детализации" уровней

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

О "ползучей детализации" уровней Gamedev, Инди, Инди игра, Разработка, FPS, Уровень, Левел дизайн, Видео, YouTube, Длиннопост

Отдаём дань уважаения игре детства. Но стоило ли это того?

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

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

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

О "ползучей детализации" уровней Gamedev, Инди, Инди игра, Разработка, FPS, Уровень, Левел дизайн, Видео, YouTube, Длиннопост

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

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

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

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

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

О "ползучей детализации" уровней Gamedev, Инди, Инди игра, Разработка, FPS, Уровень, Левел дизайн, Видео, YouTube, Длиннопост

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

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

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

О "ползучей детализации" уровней Gamedev, Инди, Инди игра, Разработка, FPS, Уровень, Левел дизайн, Видео, YouTube, Длиннопост

Quake 2 как пример подхода "бедно, но чисто"

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

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

О "ползучей детализации" уровней Gamedev, Инди, Инди игра, Разработка, FPS, Уровень, Левел дизайн, Видео, YouTube, Длиннопост

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

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

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

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

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

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

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

О "ползучей детализации" уровней Gamedev, Инди, Инди игра, Разработка, FPS, Уровень, Левел дизайн, Видео, YouTube, Длиннопост

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

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

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

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

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

Спасибо за внимание, и простите если пост кривой - моя первая тематическая публикация на Пикабу 🙂

Подпишитесь на Телеграмм-канал игры: https://t.me/SlipgateDevlog

Всем добра!

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

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


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"