Русский
Русский
English
Статистика
Реклама

Перевод Создаём 2,5D-игру жанра Dungeon Crawling в Unity

В этой статье мы расскажем, как можно воссоздать старые игры жанра dungeon crawler в Unity.



Eye of the Beholder (1991 год) и SMT If (1994 год)


Базовый ассет карты для уровня нашего подземелья.

Большинство dungeon crawler-ов 90-х, в том числе и наш это листы спрайтов, выстроенные в виде коридора. Хотя с технической точки зрения мы используем 3D-движок, никакие меши не рендерятся. Подземелья это просто сетки, составленные из разных типов блоков, хранящиеся в карте вместе с данными монстров и объектов.

Чтобы отобразить любую перспективу для заданной координаты [x, y] сетки и направления взгляда игрока, мы можем вычислить, какие фрагменты стен нужно рендерить. Если блок находится непосредственно перед игроком, то нужно показать самую крупную плоскую стену. Если в двух квадратах вперёд и влево есть ещё одна стена, то нужно показать боковую панель, соответствующую этому расстоянию. Каждый блок в определённом радиусе вокруг игрока определяет, какие спрайты видимы.


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

Для подобной схемы требуется множество графических ресурсов. Нам пришлось создать по 15 разных спрайтов на каждый тип стен, то есть в нашем случае более 100 спрайтов на тайлсет. И это ещё без учёта объектов, декораций окружения и анимаций.

Добавьте статический фон, и получите стены с потолком

Вот как сцена выглядит в Unity...


А вот как она выглядит через ортогональную камеру!

То есть воспользовавшись массивом спрайтов, системой рендеринга на основе сеток и ортогональной камерой, мы получили минималистичный dungeon crawler в 2.5D. Он очень плоский, а движение ограничено тайлами, между которыми игрок по сути телепортируется. Выглядит всё это не очень.

К счастью, движение достаточно легко имитировать, и здесь нам пригодится 3D-движок. Ходьба в Backspace Bouken заключается в кратковременном увеличении текущего кадра, за которым следует возврат и немедленный повторный рендеринг, теперь уже с точки следующего тайла. Небольшое раскачивание камеры даёт ощущение совершения шага вперёд.


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

С ходьбой всё просто, но как насчёт поворотов? С ними труднее.

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


Префабы это ваши друзья.

Но помните, что мы используем очень точно направленную ортографическую камеру для рендеринга 2D-спрайтов в координатах экрана, поэтому не стоит ожидать, что их можно просто вращать в 3D. Вместо этого мы рендерим каждую структуру в Render Texture и выполняем поворот относительно них.


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

Отрендерим этот вид в ещё одну Render Texture и в UI/кадр, так и получим внешний вид игры. При помощи этой системы можно рендерить и всевозможные объекты, просто помещая их внутрь рендерящихся на экране блоков и создав спрайты для каждого из расстояний в блоках.

Источник: habr.com
К списку статей
Опубликовано: 19.04.2021 10:09:21
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Разработка игр

Unity

Дизайн игр

Dungeon crawlers

Rpg

2.5d

Двухмерная игра

Unity3d

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru