2.5D Игры и как их создают
Как выглядит 2.5D игра?
Псевдотрёхмерность (или «2,5-мерность», 2,5D) — компьютерный термин, который употребляется в основном по отношению к компьютерным или игровым технологиям, графика которых пытается имитировать трехмерное игровое пространство, но при этом не являясь трехмерной
.
Примером игр, использующих псевдотрёхмерность, можно назвать ставшие популярными в конце 1980-х годов платформеры с изометрических отображением игровых уровней. Зачастую Игровой персонаж в таких играх мог передвигаться лишь вдоль двух осей, при этом меняя своё местоположение относительно поверхности(взлетая или подпрыгивая).
Несмотря на то, что большинство игр на рынке — трёхмерные игры, псевдотрёхмерные игры продолжили своё существование, превратившись в стилистику, в которой выполняют графику игры.).
Создание 2.5D игры
В настоящее время интерес к софтверным движкам, как из игр Quake, DOOM или Duke Nukem 3D практически нулевой. Однако, эти движки имели своё очарование и мне, например, очень нравится графика именно таких вот движков с нереалистичными текстурами на стенах.
Для каждого сектора задаётся высота пола и потолка, а также стены (сегменты), которые находятся в секторе. Такие сегменты являются сплошной стеной и выводятся при отрисовке от пола до потолка. Между секторами располагаются специальные сегменты – линии раздела. Линии раздела закрывают перепады высот между секторами и, кроме того, являются порталами в другой сектор из выбранного. Следует иметь в виду, что для портального движка внутри сектора сегменты и линии раздела не могут располагаться не выпуклым многоугольником, иначе потребуется упорядочивание сегментов внутри сектора (если этого не сделать, будет неясно, какой сегмент выводить на переднем плане, а какой на заднем). Для BSP-движка это не важно – он сам упорядочивает сегменты на этапе разбиения карты.
Как же работает BSP-движок? Да очень просто. Достаточно взять какой-либо сегмент или линию раздела карты и разрезать ей всё пространство карты (корень дерева) на две половинки, как показано на рисунке — это будет левое и правое поддерево.
Каждую из этих половинок тоже можно разрезать другой выбранной линией. И так далее, до того момента, когда разбивать будет уже нечего и вы пришли в лист дерева (или вы достигли требуемого качества разбиения – DOOM, например, разбивает, насколько я помню, до выпуклых многоугольников, а я разбиваю до отдельных линий). При таком разрезании из-за ошибок округления сегменты и линии раздела будут разрезаться с ошибками округления, поэтому стоит выбрасывать из списка получающихся фрагментов фрагменты с длиной уровня погрешности. В целом, алгоритм рекурсивный. При выводе же графики достаточно рекурсивно сравнивать положение игрока относительно разбивающих линий и выводить лабиринт от листа (где находится игрок) к корню в обратном порядке. Тем самым вы автоматически получите упорядочение сегментов и линий раздела от игрока в бесконечность. В процессе обработки дерева можно определять видимость поддеревьев, если описать вокруг них прямоугольники и проверять, может видеть игрок эти прямоугольники или нет. Такой приём также ускорит вывод лабиринта.
Как же выглядят 2.5D игра?
Это 2.5D игра на Unity->
Это 2.5D игра на Unity->
2,5D-игры – это игры, сочетающие в себе минимализм 2D-игр и их два вектора движения игрока с трехмерностью пространства и окружения. Это касается не только моделек персонажей, но и разбивки фона
Для создания иллюзии трехмерности пространства видимую часть локации разбивали на планы еще для игровых приставок 1980-х годов. Там это достигалось за счет разницы в скорости сдвига полос разной высоты на экране – верхние медленно или совсем не двигаются, средние двигаются с умеренной скоростью, а нижние быстро или по мере движения игрока.
В более поздних проектах сдвигались уже фоновые картинки, расположенные на разных «слоях»: фон, задний план и ближний план. Таким же методом разбивки пространства и отрисовки пользуются и художники классической 2D-мультипликации. Спрайты героя, предметов для взаимодействия и врагов располагались между задним и ближним планами. В целом, данный подход сохраняется в 2D-играх и сейчас.
В 2,5D-играх также сохраняется разбивка на планы. Но в данном случае плоскатики планов располагаются в трехмерном пространстве, а не на условных слоях.
Технически это выглядит так.