Анатомия игры: Два с половиной измерения

982a57f79ca36c43208570479ce22dd1.jpg

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

На данный момент у меня два полноценных проекта с концептами, сюжетом и примитивными набросками механик, т. е. два почти законченных дизайн-документа, и еще три совсем сырых. Один из них — экшн с элементами РПГ в духе моей любимой серии игр, а второй — что-то близкое к платформеру в формате 2,5D. И когда я с кем-нибудь говорю о 2,5D, то с удивлением замечаю, что далеко не все знают, что это такое. И даже назвать игры с подобным подходом бывает непросто.

Это натолкнуло меня на мысль о том, что неплохо было бы кратко осветить этот вопрос.

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

В тексте будет много упоминаний программ, сайтов и сервисов, а также игр и разработчиков игр. Не сочтите это за рекламу. 

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



▎2D и 3D

 

         6aea068116a4989429a4d3157466fcb3.png
      Крышка амулета-мимика в 2D и 3D (мое)

Как выглядят 3D-игры, мы с вами прекрасно знаем. Подавляющее большинство ААА-проектов сейчас именно 3D-игры.

                                                  38c7005f3e376ea485589947c2206dbc.png
    Упрощенная схема трехмерного пространства (сайт)

355c0ce64f794e182dfd314bc787f430.png
  Трехмерные локации в редакторе Creation Kit для TES V: Skyrim

Глобально в 3D-играх три вектора движения: вперед-назад, влево-вправо и вверх-вниз. Соответственно, игрок может использовать три плоскости, складывающиеся в трехмерное пространство перемещения. 

Хотя далеко не все игры поддерживают полноценную вертикальную мобильность: в Dark Souls и Mortal Shell прыжков и карабканий как таковых не было — хотя прыжок можно было совершить после разбега, а забраться на второй этаж замка по лестнице или лежащему дереву, специальных способностей и отдельных элементов управления под это выделено не было. Зато такие элементы были в Sekiro, Hellpoint, Elden Ring, Dragon’s Dogma, Gothic и других.

ddcae6ca6565e1bb4981168afbe42a9a.png
  3, 2, 1, полетели! (мой мод формы дракона для Sekiro: Shadows die twice)

Большая часть шутеров также имеет три измерения. Даже мультиплеерные арены наподобие League of Legends и Dota 2 также тридешные, хотя вертикальности в них нет от слова совсем. Но к ним мы еще вернемся чуть позже.

83005baa99a055371cc030504939f37f.jpg
Локация поля боя в Arena of Valor. Несмотря на наличие крыльев у одного из героев, полетать полноценно не получится.

С 2D-играми, на первый взгляд, все понятно. Есть два вектора движения: вправо-влево и вверх-вниз, а также сложенная из них плоскость передвижения. Как правило, 2D-игры содержат элементы платформинга.

d83b00d3b6ac29ce0e46789e0b13ad17.png
Hollow Knight — слешер-платформер с элементами соулс-лайка (а еще с модами)

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

Вертикальность является неотъемлемой частью геймплея, ради чего введены прыжки, спец-способности лазания и полеты-парения. Классический платформер — игры серии Mario. 



▎Тонкости 2D

 
Первоначально все элементы 2D-игры, включая главного действующего персонажа, отрисовывалось программно. То есть каждый пиксель Марио — это не картинка, а буквально зашифрованный в основном коде игры квадратик.

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

Хотя иногда и попадаются такие бриллианты, как Faith: The Unholy Trinity или оригинальная версия Dwarf Fortress.

a936909aa89e2d499a80b92db60ecc84.png
Слабонервным, детям и беременным лучше не играть в Faith: The Unholy Trinity. В крепость Дворфов тоже не рекомендуется. Но мне обе игры нравятся.


                           22f6ff03c6fb77ae8abce41250828775.png81456c37cd207dd65a96ee13aa85450b.gif
                           Покадровый спрайт (мое)

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

На скриншоте — шимеджи из спрайтов Hollow Knight, сделанный мной. Shimeji — японские мини-программы на базе Java, практического значения у которых нет. Это не игра, а, скорее, украшение экрана:

493bc9fdd5ad6fbeee6cbdbbec483351.jpg
Суть их в том, чтобы бегать по вашему экрану, совершая простенькие действия в случайном порядке и изредка размножаясь делением. Некоторые шимеджики способны выкинуть за пределы экрана окно вашего браузера. Но не волнуйтесь, его можно вернуть, щелкнув на панель в нижней части экрана.


43e4bad9bd4696c3245b9f60a1b11dc3.png
Атлас с частью спрайтов для главного героя Hollow Knight

Чтобы спрайт работал корректно, его назначают на небольшой плоскатик (прямоугольную область). Передвижение спрайта по игровому полю осуществляется смещением этого плоскатика:

5ceea741793ee40d2331b2684c4415d2.png

Кроме растровых спрайтов (т. е. пиксельных картинок) есть и флеш-игры с векторными спрайтами. Но их сейчас исчезающе мало.

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

Физика хвоста и лапок Слизнекота (интерфейс и крылья из модов, т. к. игра давно пройдена на 150%):

          9ac79d619c6232a9c445d89e4bd6b690.gif

-----------------
Физика (physics) — характеристика взаимодействия в играх, обеспечивающая реакцию на столкновение, изменение положения в пространстве и имитацию ветра.

Физика отвечает за разлетание юбки B2, развевание плащей и волос в Elden Ring, отскакивание обломков стен и дверей в Carrion и запинание героев за невидимые кочки в Dark Souls и TES V: Skyrim.

С одной стороны, физика как таковая в 2D-играх не столь важна для игрового процесса. Однако она работает на атмосферу игры.

Взгляните, как прикольно и реалистично вздрагивает хвост слизнекота из Rain World. Или как передвигается Нечто из комков плоти в Carrion. Кстати, о Carrion мы поговорим еще сегодня.



f5e151401d90749b336938ca88ba91df.png
Порой Blasphemous поражает своей эпичностью. И пиксель-арт этому совершенно не мешает.

Наверняка каждый вспомнит хотя бы Super Mario Bros или Heroes of Might and Magic, ценители назовут Undertale и Ori, любители постапокалипсиса — Rain World, хардкорщики — Blasphemous, Hollow Knight и Dead Cells.Так, стоп. А вот к последнему есть вопросы.

▎Странные игры

 
bc718c2153f860f17fb90ccf7b09694a.png
Я думаю, игроки Dead Cells заметили некоторую аномальную плавность движений главного героя и его врагов. Особенно удивительно такая плавность сочетается с пиксельной графикой.

А мы, современные игроки, привыкли, что пиксели обычно характерны для старомодных спрайтов. Но выглядит Dead Cells стильно, играется увлекательно, и вопросов к некоторым механизмам реализации не возникает. Но эта реализация на самом деле не менее интересна, чем игровой процесс.

----------------
У игры Dead Cells есть две ключевые особенности: роуг-лайковость и процедурная генерация. Роуг-лайк (rogue-like) означает, что игрок при смерти теряет все. Нет, не так, ВООБЩЕ ВСЕ, включая прокачку, прогресс в сюжете, предметы в инвентаре и откатывается на начальную точку игры. 

А процедурная генерация — это собираемость уровней, локаций (Minecraft, подземелья TES 4: Oblivion), предметов, имен, фраз и даже существ (привет, No Man’s Sky, однажды я и до тебя доберусь) из некоторых предустановленных элементов согласно маркерам и алгоритмам (процедурам).

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

Это решает сразу две проблемы: реиграбельность (каждое прохождение игры мало похоже на предыдущее) и оптимизация работы команды игроделов (грамотно прописанные алгоритмы сами создадут локацию без необходимости отрисовывать и собирать вручную). 

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



На первый взгляд, можно подумать, что создатели Dead Cells пошли тем же путем, что и авторы Heroes of Might and Magic. Там были сделаны и анимированы 3D-модельки почти всех существ. 

Но компьютеры рядовых юзеров того времени не могли потянуть подобное, поэтому модельки отрендерили, т. е. отсняли по нескольку кадров с анимациями атаки, получения урона и гибели. 

Рендеры сознательно сделали низкого качества, что дало пиксельные зерна и значительно сэкономило место и память компьютеров, а затем организовали в спрайты и добавили в игру уже их. Чем-то подобным облегчили себе работу и художники Blasphemous, отрендерив и подрисовав спрайты некоторым боссам. Но в остальном история еретиков и грешников почти полностью нарисована вручную.
                                                334b25d2d8733af9e50f0e3f8f2a3991.gif
                                                Синий дракон HoMM

Однако в HoMM хорошо заметна дерганность, резкость в переходе между кадрами. В DC же такая дерганность есть далеко не у всех:

                cb40206b63d182e141dd504b89aea88a.gif
                  Плавный ГГ и покадровая сова-компаньон

В Dead Cells можно глобально увидеть два типа реализации существ: та самая плавная и резкая.

  • Резкая, имеющая два-три четко дифференцирующихся кадра, очевидно, спрайты. Среди встречающихся существ это дружественные NPC (девушка-воитель, встречающая нас на входе, торговцы), а также некоторые рядовые противники (летучие мыши), почти все боссы (кроме финального), ловушки и, конечно, почти все элементы фона.
  • Плавная — почти все враги в игре, некоторые боссы (включая финального), оружие главного героя и, собственно, главный герой.


В чем секрет такой плавности? А секрет прост. Дело в том, что Dead Cells — не совсем 2D-игра. Это 2,5D игра.

▎Измерение между измерениями

 
Для создания иллюзии трехмерности пространства видимую часть локации разбивали на планы еще для игровых приставок 1980-х годов. Там это достигалось за счет разницы в скорости сдвига полос разной высоты на экране — верхние медленно или совсем не двигаются, средние двигаются с умеренной скоростью, а нижние быстро или по мере движения игрока. 

                              35fdcce46c087382447b27d361325665.gif
                                    Super Mario World

В более поздних проектах сдвигались уже фоновые картинки, расположенные на разных «слоях»: фон, задний план и ближний план. Таким же методом разбивки пространства и отрисовки пользуются и художники классической 2D-мультипликации. Спрайты героя, предметов для взаимодействия и врагов располагались между задним и ближним планами. В целом, данный подход сохраняется в 2D-играх и сейчас.

В 2,5D-играх также сохраняется разбивка на планы. Но в данном случае плоскатики планов располагаются в трехмерном пространстве, а не на условных слоях.
Технически это выглядит так.

24321f472a37589dab5b5ae3f8a9d4e9.png
Для наглядности я оставила отображение полигонов и не включила прозрачность текстур (мое)

Впрочем, не плоскатиками едиными. 2,5D-игры представлены очень широким спектром визуальных, сюжетных и жанровых игр. Например, слегка пошумевшая при своем выходе The Fist с кроликом-киберпанком. Визуально — это чистое 3D. Технически и игромеханически это почти чистокровный 2D-платформер с элементами слешера.

Little Nightmares также 2,5D платформер с головоломками. Но с оговорками:

b4b8b0b07983d557dd53d69c2bdfe3ec.png
                              Little Nightmares

Многие файтинги, включая знаменитые Mortal Kombat и Street Fighter, организованы методом 2,5D. 

Маленькое (нет) отступление.
Если трехмерное пространство превращается в двумерное, какая ось будет ведущей?  

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

a34617947f99f56c0478f777e081ddab.png


Модель с инвертированной осью (слева) и моя модель с нормальной для движка осью (ось Z идет вправо вниз на картинке). Анимации одного без танцев с бубном не подойдут другому.

Поясню. В большинстве движков визуализации, лежащих в основе инструментов создания 3D-моделей «лицевым» направлением принимается ось Z. То есть передом модели будет сторона, обращенная от нулевой точки в сторону оси Z. Ось X в таком случае  определяет правую и левую сторону, а ось Y — вертикальность. Казалось бы, все просто и понятно, зачем делать отступление?

Дело в том, что игровые движки далеко не всегда используют именно такое соотношение осей относительно точки координат. В некоторых движках оси могут быть инвертированы (TESV: Skyrim), в некоторых ведущей осью будет Y и так далее.

И именно в контексте 2,5D игр этот вопрос встает особенно остро. А почему?

Дело в выборе оси направления движения. С точки зрения игрока, персонаж всегда идет слева направо или наоборот. Но с точки зрения разработчика, есть два очевидных выбора: ось Z и ось X.

0ae7fb362dbb88aa633f266746e5c0ce.png
Ось движения игрока — Z (направление вперед), модель в оригинальной (начальной) Т-позе (мое)

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

И, если уровень предполагается длинным, в какой-то момент вычисления положений доходят до таких больших чисел, что движок не выдерживает и начинает искривлять пространство и объекты (то же самое происходит на сверхмаленьких объектах). 

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

bf3a92b93b7ea1409251f8b2be6b6d98.png
Ось движения игрока — X (движение вправо), модель в оригинальной (начальной) Т-позе (тоже мое)

Если выбрать ось X, то проблемы возникнут у моделлера и аниматора. Моделлер должен будет адаптировать свое творение к данной оси, и речь не только и не столько о физическом развороте на 90 градусов. Речь о запечении нормалей и методе этого запекания — например, нормали Objectt space будут выглядеть иначе, если запечены для оси Z, но надеты на модель, повернутую на ось X, так как при запекании объектного пространства учитывается положение модели относительно точки начала координат. Аниматору же придется не только разворачивать модель, но и создавать анимации с учетом поворота. 

e56e88d1895c361d5feebcac83c27a20.png
Tangent space нормали (слева) и Object space нормали (справа) в одном окне рендера с идентичными настройками (мое)

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

Но мы снова сталкиваемся с проблемами движка: некоторые движки могут поддерживать ограниченное количество костей, некоторые не поддерживают «пустые» кости (не имеющие прямого влияния на модель), некоторые не могут воспринимать такие пустые сверхважные кости одновременно с костями инверсивной кинематики и т. п.

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


▎Игры-гибриды

 

Элементы 2,5D встречаются в самых разнообразных игровых проектах. Так, в Alice Madness Returns на территории Бумажного королевства есть целый уровень с подпространством в картине.

При взаимодействии с ней Алиса перемещается в двумерное пространство в виде бумажной марионетки для театра теней. Весь уровень построен из плоскатиков, как и сама главная героиня — она располагается на нескольких плоскатиках, объединенных в одну 3D-модельку со скелетом.

f81cc9354e5cfc75bea1154b739fae6a.png
Бумажное измерение Alice: Madness Returns

42b8e0ee9104d8b66703e50c222026ca.png
F.I. S.T. — 3D-окружение и персонаж, но движение почти исключительно в одной плоскости

Можно, конечно, среди гибридов упомянуть и Fallout 4 с Observer. Но тамошние мини-игры с 2D-составляющей, во-первых, не несут сюжетной и ключевой нагрузки, а во-вторых, не используют гибридную составляющую в геймплее. Это просто 2D-игра внутри 3D-игры. Кажется, в последней Кваке (Quake) тоже есть такой элемент-пасхалка.

Протагонист в виде зубастой биомассы и его щупальца в том числе. Однако люди и киборги, мины-ловушки, некоторые боевые дроны и некоторые двери — это 3D-модельки. Их легко определить по плавным движениям, также, как и в Dead Cells.

            eabcb1f38c5d0373042413758054e8f6.gif
            Разница в движениях 3D-зомби и спрайтовой гномьей бражки видна даже на гифке

Возвращаясь к DC, часть окружения и врагов в этой игре организована в виде спрайтов, как мы уже говорили. Но ГГ и подавляющее большинство врагов — 3D-модельки. 

Малополигональные, с наложенным на них целлшейдером и не слишком подробной текстурой, но модельки. 

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

            ae9942cc85f896f205e550c000c8f7e8.gif
            Rain World с модификациями (животные и локации оригинала)

При этом Rain World сложно уличить в чем-то подобном. Да, часть окружения явно была отрендерена из 3D-моделек, но в самой игре никаких моделек нет (или почти нет). А плавность движений протагониста и хищников есть. И достигается она также за счет костной анимации и физики. Но кости двигают не модельки, а спрайты.

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

Скелет хвоста же снабжен физикой свободного падения, в анимации ее используют для имитации воздействия гравитации на детали одежды, ткани и волосы. Такими же скелетами снабжены все животные в игре от хищных ящериц до стервятников (ух, как же они пугали одним своим появлением!), и даже хищные водоросли.

                        75ff096a03ec7025ec5a84f2c0fa0081.gif

Аналогично устроены спрайтовые внутренности Carrion. Более того, базовый скелет подконтрольного вам персонажа вы даже можете увидеть в самой игре: в момент сброса и возвращения биомассы в специальных лакунах с органической жидкостью (а также в момент получения урона и восстановления после обеда). Не знаю, баг это или фича, но на секунду появляется бело-желтый и красный риг, узловые точки в котором соответствуют центрам масс и ключевым элементам полиморфного анимированного тела.

▎В чем разница?

 
ffa8e09f939eae1a85e4f0983eb84b63.jpg

У вас, как у читателей, могло сложиться впечатление хаотичности. Как понять, какая игра считается 2,5D? Где граница между этими и другими играми?

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

Есть игры, полностью построенные на 3D-моделях, но ее геймплей, свобода передвижения, доступная игроку, расположена только в одной плоскости.

Таковы, например, F.I. S.T., и, что удивительно, арены наподобие Dota 2, League of Legends, Arena of Valor и прочие их клоны. У игроков есть только плоскость арены, и даже залезать на стены они не могут (хотя спецнавыки некоторых героев позволяют «подлететь», вы не сможете передвигаться по вертикали всегда и осознанно в основном геймплее). 

Технически это 3D-игры, т.к. при их создании используется трехмерное пространство. По доступности игроку — это 2D-игры. 

f5e139f0a42ca9c787e2da57a540bb79.png
Немного особняком стоит Little Nightmares. Выполнена она в 3D, и местами игроку доступно третье измерение, когда игроку дают возможность убежать вглубь комнаты.

При этом реализованный с помощью спрайтов и почти без моделей (кроме стен) первый Doom — без сомнения, 3D-игра, с точки зрения игрока.

37d0ee6b61f357d0d559fe17ac80284e.png
DOOM. 3D-стены, 2D-бойцы

А как быть с играми, как Dead Cells и Carrion, где используются только несколько моделей среди спрайтов?

Как уже говорилось, единого и четкого подхода к определению нет. Однако игроки чаще всего понимают 2,5D-игры как игры, наподобие Fist. 

Таким образом, мы отсекаем большую часть 2D-игр, даже с эпизодическим использованием моделей, и однозначно отграничиваем 3D-игры.  

А как быть с аренами? Их можно назвать 2,5D-играми? Можно, с некоторой натяжкой. Но для удобства сообщество геймеров арены называет аренами, поскольку 2D-арен в настоящее время почти не осталось (возрожденные клоны Танчиков и онлайн-Змейка не в счет, их исчезающе мало). 

А Diablo и диаблоиды? А Newerwinter Nights и Pathfinder? Ведь игрок перемещается по огромным пространствам. Можно, но также со скрипом. Особенно учитывая, что Neverwinter Nights, Pathfinder и игры после Diablo II полностью отмоделированы.

55e81d4a354883ffce58931cecc674e0.png
                                                Pathfinder: Kingmaker

Аналогично со стратегиями наподобие Героев Меча и Магии или Raid: Shadow Legends — их выделяют в отдельную уникальную группу, в которой у игрока и вовсе нет свободы передвижения, только ограниченное передвижения фигурок без возможности полного контроля действий.

При этом игра должна быть персонажной, т. е. игроку доступен конкретный игровой персонаж. Можно было бы сказать, что мы получаем двумерную РПГ с тридешной графикой, но это не так — РПГ не сводится к управлению каким-либо героем, она включает историю, сюжет, прокачку, взаимодействие с NPC и вариативность событий. Слешеры также имеют управляемого героя, но полноценными РПГ их назвать нельзя.

То есть, можно вывести такое определение:

Но все же, это неконвенциональное, т. е. никем не зафиксированное и недоговорное значение: в различных сообществах могут существовать свои подходы к определению таких «ни два, ни полтора» игр. Однако мы рассмотрели наиболее часто приписываемые этим играм признаки, более-менее отграничивающие эти игры. Но это не точно.
НЛО прилетело и оставило здесь промокод для читателей нашего блога:
— 15% на заказ любого VDS (кроме тарифа Прогрев) — HABRFIRSTVDS

© Habrahabr.ru