Слом перспективы.
Раньше для двухмерных игр использовали двухмерные движки в целях повышения производительности, однако сейчас в подобных ограничениях нет никакого смысла — даже самые слабые современные ПК способны рендерить примитивную трёхмерную графику. И потому разработчики даже 2D-игр перешли на 3D-движки — ради удобства.
Один из примеров таких игр — это Shovel Knight. То, что игра на самом деле рендерится в трёхмерном пространстве, выяснил Shesez — автор YouTube-канала с рубрикой Boundary Break, где рассматривается строение разных игр «за кадром». Разработчики из Yacht Club Games дали блогеру инструменты для исследования «закулисья» платформера — а именно хак камеры.
Несмотря на то, что со стороны кажется, будто Shovel Knight — это чистокровный двухмерный платформер, на самом деле почти все объекты расположены в трёхмерном пространстве. Картинка реализована при помощи наложения слоёв — с главным героем, NPC, платформами, фонами локации и уровня.
По словам программиста Yacht Club Games Дэвида Д’Анджело, поначалу в команде не знали, какую игру они хотят сделать, и потому студия разработала для игры собственный 3D-движок — «просто потому что так оказалось проще». А впоследствии выяснилось, что с трёхмерным движком легче работать при портировании игры на консоли.
Если вы пытаетесь найти причину бага, в двухмерном движке это делается намного сложнее — в то время как в трёхмерном вы просто поворачиваете камеру и сразу понимаете, что пошло не так.
программист Yacht Club Games
Источник цитаты: youtube.com
Причём, по словам Д’Анджело, несмотря на то, их движок трёхмерный, его нельзя использовать для создания полноценных трёхмерных игр. По сути, всё, что видит игрок в Shovel Knight — это так называемая ортографическая проекция, когда трёхмерные объекты доводятся до «плоского» состояния.
В нужный момент фон может меняться — например, при выходе с локации.
Благодаря наслаиванию текстур можно проворачивать самые разные трюки. Так, например, в уровне с лабораторными колбами внутри плавают пузыри — и, как выяснилось, на самом деле текстуры с пузырями расположены на фоне уровня. Но чтобы они плавали лишь в самих резервуарах, а не повсюду, разработчики наложили снаружи вокруг ёмкостей чёрные текстуры.
При этом эффект восходящих пузырей достигнут при помощи сдвигающегося вверх фона.
В работе с 2D-стилем в 3D есть свои тонкости. «Рогалик» Rogue Legacy 2 тоже создаётся на трёхмерном движке — причём, в отличие от первой части, в игре даже персонажи сделаны в 3D. И ради того, чтобы правильно изобразить позу прицеливания со стороны, разработчикам пришлось сломать пропорцию модельки.