Наиболее часто используемым языком для описания теней является GLSL или HLSL, аналогичный языку C.
Основы геймдева — графика
Я хотел отдохнуть от программирования и решил продолжить писать о режимах игры. Идея — как помочь людям, которые хотят начать игру, но имеют полный ноль теории? Поэтому новичкам не придется посещать и читать кучу статей, перемешанных с теорией и практикой. Я решил написать все, что вам нужно знать, прежде чем садиться играть в саму игру. Чтобы сказать это, чтобы построить фундамент в моей голове. Однако пишите как можно скорее, не привязываясь к конкретной машине или программе. Я начал с графики. Затем я намерен написать о чеках, музыке и звуке. Затем — особенно внутреннее устройство игры (уровни, объекты, физика, оптимизация).
Ваши комментарии и исправления приветствуются. Но не вдаваясь в подробности и детали, чтобы статья была простой. Внимание! Много текста.
ИЗ ЧЕГО СОСТОИТ ИГРА
Игра является интерактивным приложением, что означает, что изменения в приложении, изображениях и звуках происходят под контролем игрока и вызывают у него удовольствие. При этом все действия игрока затрагивают только прекрасный виртуальный мир приложения, не внося никаких изменений в сам компьютер или сеть (создание документов, изменение системных настроек). Саму игру можно представить следующим образом.
Игра = Проверка + Код + Уровни + Графика + Звук
Код проверяет элементы управления, управляет временем и случайными событиями игры и вносит изменения в логику игры, графику и звук (перемещение изображения игрока, воссоздание звука падения), когда все меняется.
ТИП ИГРЫ ПО СИСТЕМЕ КООРДИНАТ
Игра делится на двух- и трехмерную. Независимо от количества измерений, игрок видит только то, что видит игровая камера (как в фильме).
2D-измерение
В 2D-играх весь мир существует только в двух направлениях (x, y). Камера может просматривать мир и его объекты: — сверху вниз — вид сбоку — или изометрически, немного сбоку, направление обзора камеры постоянно (игрок не может ее повернуть), но может двигаться в двух направлениях.
3D-измерение
В 3D-играх мир существует в трех направлениях (x, y, z). Камера может показывать мир со всех сторон и обычно дает игроку возможность двигаться, а также поворачивать камеру в разные стороны, чтобы менять углы. В зависимости от игрового автомата или программы 3D-графики направление этих осей может отличаться. Например, * x-вправо, z-вперед, y-вверх * x-вправо, y-вперед, z-переход от верхней части 3D-процессора к игре Для 3D-графики необходимо учитывать различные ориентации осей.
* Вершинная анимация (Vertex Animation, Morph Animation) Измените положение вершин в сетке, и все остальные вершины переместятся, сохраняя расстояния и пропорции неизменными. Чаще всего используется для перемещения лиц. Поддерживаются не все двигатели.
Скелетные движения также могут использоваться для 2D-документов, где каждая часть персонажа оформлена отдельным спрайтом, движение сохраняет данные и изменяет положение этих спрайтов во времени.
Игровой процесс, или геймплей
— Системы взаимодействия игроков с использованием игровых объектов через доступные игровые механизмы.
Игровой процесс основан на установленных правилах и ограничениях игры и индивидуальных стилях поведения игроков.
Существует множество экспертов по типам комбинаций механизмов, которые переходят из игры в игру одного типа. Например, комбинации: движение + прыжок, двойной прыжок, движение + цель + стрельба и т.д.
Дизайнеры игр понимают, что игроки имеют различные стили поведения (например, психотипы Бартла) и должны подготовить свои игры таким образом, чтобы они соответствовали ожиданиям выбранной ими целевой аудитории или таким образом, чтобы удовлетворить различных игроков Необходимо.
Например, в Deus Ex геймплей рассчитан на различные стили игры (активная конференция) и стелс. Игроки могут выбирать, какой стиль им подходит, и в любой момент могут перейти к другому типу игры. Это происходит после игры, которую они предпочитают в той или иной ситуации, или после их собственного желания получить новый опыт.
Игра — это набор взаимодействий игроков, которые формируют определенный опыт игрока с помощью набора игровых механик в рамках игры.
Этот особый опыт игрока — не только набор первичных ментальных связей, формирующих систему доступных правил и механизмов, но и эмоциональные и сенсорные аспекты восприятия.
Игра во время игры может меняться не только из-за изменений в стратегическом поведении игрока, но и из-за набора сконструированных активаторов, которые создают новый набор игроков и соответственно меняют их поведение. В игре PAC-Man, например, временные изменения немедленно изменяют поведенческую механику и параметры противников и персонажа игрока, когда в лабиринте собираются бонусы (Bean Sac).
Обычно такое чередование ситуаций в игре можно сравнить с работой ситуации или конечного автомата, но в данной статье эта тема подробно не рассматривается (о ситуациях можно прочитать здесь).
Триггеры — элементы, которые активируют систему
Оккупация
Геймдизайнер
Узнайте больше.
- Разработаете прототип и проведёте балансировку собственной игры
- Научитесь составлять полный комплект проектной документации
Игровая динамика
Это схема взаимодействия между игровой механикой и игроком в различных игровых ситуациях и чередование этих ситуаций взаимодействия под воздействием исполнительных механизмов.
Для полноты картины, однако, существует еще один элемент, который влияет на формирование долгосрочного опыта игрока, изменяя ограничения игры и параметры игровой механики. Этот элемент — игровая динамика.
Игровая динамика — это, по сути, оркестровка игры.
Представьте, что игровые механики — это музыканты с разными инструментами. Игровой процесс — это целый оркестр под руководством дирижера-игрока, а динамика игры — это ноты, из которых складывается сама мелодия, уникальное написание интерактивности игры. Типичные игровые лучи этого жанра также предлагаются в этом переложении — в виде отдельных частей или фрагментов игровой мелодии.
Хорошая игра «звучит» как известное произведение оркестровой музыки.
Это похоже на музыкальные композиции, которые проигрываются в соотношении для нашей пользы.
Красивая мелодия приятна для слуха и может изменить настроение слушателя — так и хорошо сделанная динамика игры может звучать для игрока весело и интересно.
Динамика характеризуется ритмом, темпом и высотой. Эти параметры контролируются инструментом баланса игры, формой пространства, а также настройками механизмов и взаимодействия.
Оркестровка — координация и управление сложными системами и сервисами, распределенными во времени.
Эта терминология соответствует аналогичным терминам в секторе ИТ.
-Игровая механика — продолжительность цикла и сложность внутри цикла.
Ритм может определяться пространственными ограничениями. Например, сложность ландшафта игрового мира и сложность поведения игровых объектов, с которыми он взаимодействует.
Он определяет скорость развития игры во времени, то есть скорость, с которой проходят все игровые циклы.
Ритм может контролироваться сжатием и расширением пространства, а также количеством и скоростью действий взаимодействующих объектов.
Тональность
-Объекты игры и функции взаимодействия взаимно настраиваются в определенный период игры.
Это изменение обычной схемы взаимодействия между игроком и игровыми объектами, когда этого требует сценарист. Это изменение может быть для истории или в соответствии с условиями и правилами игрового мира в определенное время или в определенном месте игрового пространства.
Пример. Травма снижает гибкость, видимость и скорость движений. Туман снижает видимость в некоторых районах области. Предоставление игроку навыков и инструментов в определенных областях игры изменяет форму поведения игрока (гравитационное оружие в Half Life 2).
Динамика игры может варьироваться от простой до сложной.
Для игр, где не имеет смысла создавать сложную оркестровку происходящего, используются простые структуры. В Space Invaders, например, динамика игры меняется только в соответствии с ритмом, делая все процессы постоянно быстрее. Это требует от игрока более быстрой реакции на каждом последующем уровне.
Игры с интенсивным сюжетом требуют более сложных «мелодий» взаимодействия в результате оркестровки игры. Взаимодействие должно гармонировать с историей, которую рассказывает автор.
Svg — это формат векторного изображения. Перед рендерингом он должен быть растрирован. Это означает, что векторное изображение должно быть преобразовано в растровое (состоящее из пикселей).
Этап 2. Ретополигия и запекание нормалей.
Предположим, вы решили назначить персонажей для своей игры. Есть ли у вас что-то подобное:.
Такую модель невозможно запихнуть в игру, потому что в ней слишком много полигонов (миллионы), и компьютеру нужно много времени, чтобы обработать их все. В таких случаях вы садитесь и проводите так называемую «переоценку». В конечном итоге вам нужна модель с достаточным количеством полигонов (от 20 до 80 тысяч). Вкратце процесс выглядит следующим образом.
Шаг 1. Получите модель после скульптуры. Он имеет свою собственную полигональную сетку. Затем возьмите его и создайте поверх него новую сетку, но с фиксированным количеством полигонов. Например, у вас есть модель с достаточно гладкой поверхностью, и эта плоская поверхность состоит из 1000 полигонов. Поскольку плоская поверхность может быть описана пятью или шестью многоугольниками, эти 400 многоугольников заменяются пятью или шестью новыми многоугольниками. Это примерно то, что показано в примере дедушки 3dsh.
Шаг 2. Возьмите высокополигональную модель и вновь созданную циклическую модель и запеките карту нормалей (и, возможно, карту сдвига). Использование карты нормалей позволяет передавать детали без необходимости создания отдельных полигонов. Это означает, что морщины на лице дедушки в игре существуют только благодаря карте нормалей.
На скриншоте выше показан материал (слева) и его компоненты (справа). Первые три части справа — это карта нормалей, карта цветов и карта смещения. Карта цвета указывает модели, какие цвета отображать на тех или иных частях модели, карта смещения добавляет крупные выпуклые детали (например, изогнутые кирпичи), а карта нормалей создает мелкие неровности (в данном случае шероховатости и неровности кирпичей). ).
Важно понимать, что карты нормалей и смещений отличаются по своей природе. Насколько они точны?
В общем, первое, что необходимо объяснить, это как обрабатывается изображение, прежде чем оно появится на экране. Каждая сцена (будь то локация в игре или окно в 3D-процессоре) имеет источник света (без него на выходе было бы совсем темно). Лучи света (как свет) исходят из этого источника света во всех направлениях. Эти лучи сталкиваются с несколькими объектами, прежде чем попасть в камеру (а в жизни мы видим только то, что отражается от лучей солнца над нами, которые попадают в наши глаза). Разные объекты имеют разные поверхности и по-разному отражают лучи света. Вот почему мы редактируем изображения. Каждый 3D-объект также имеет нормаль, которая определяет, как лучи света отражаются от конкретной поверхности. Это работает следующим образом.
Для придания детализации модели используются карты нормалей и сдвига. Однако нормальная карта использует так называемые ложные сдвиги, в то время как карта сдвигов использует реальные сдвиги. Начнем с фактической карты сдвига. Измените положение вершин объекта, чтобы изменить отражение лучей. Карты нормалей не изменяют геометрию. Почему же свет отражается в разных направлениях на обычной карте? Карты нормалей изменяют направление нормалей так, что свет отражается в разных направлениях.
Текстуры и материалы.
Все гораздо проще. Например, есть модель. Вы берете его и с помощью специальной программы окрашиваете.
После процесса текстурирования и экспорта необходимо получить текстуру в формате изображения png.
Если вы создаете игру, вы создаете материал объекта на консоли, а не в сторонней программе. Вы можете настроить отображение текстуры в игре. Например, обычная карта может быть включена в материал как отдельное изображение.
Заключение
Надеюсь, что некоторые из людей, читающих эту статью, найдут в ней что-то полезное для себя. Если у вас есть какие-либо замечания, пожалуйста, напишите их в комментариях.
Абсолютно все понимают, что игрушка может быть либо 3дшным, либо 2дшным.
https://images.stopgame.ru/uploads/images/556533/form/2021/10/10/1633878625.png
Этого слишком много — и я уверен, что вы найдете все это слишком большим. Это похоже на спешку, чтобы успеть куда-то. Ясность минимальна.
А в случае с графикой реального времени (не совсем то слово), он показывает общий процесс моделирования и затенения в играх и кинографике (да, в кинографике все то же самое, разве что ретопология немного раздражает) Карты. кадров в час на огромном количестве серверов).
Кроме того, зачем одновременно сдвигать (это совсем не так в играх, где это редко используется, потому что это работает на увеличение количества полигонов, рук или автосплитов) карты нормалей, имитировать тот же эффект в затенении, не меняя геометрию.
И ни слова о PBR, шероховатости, металлике и правильном создании материалов.
В целом, я считаю себя дилетантом в 3D (поскольку никогда в жизни не делал ничего хорошего), но в статье много поверхностных знаний, которые можно почерпнуть из поверхностного взгляда на одно видео — YouTube «Создание игровых моделей».
Представляя, что я полный дилетант и не могу поделиться этим, я сразу думаю: «Зачем уменьшать количество полигонов, если есть наниты?». (Это достаточно глубокая тема, чтобы написать еще одну статью о том, как различные типы моделей хранятся и визуализируются машинами). А чем первый дедушка на картинке про ретопологию отличается от последнего дедушки? (У первого дедушки нет полигональной сетки для наглядности) И как один и тот же материал будет выглядеть в разных наборах карт? (Было бы здорово показать, что на самом деле делают различные типы карт).
Это далеко не все, ведь помимо моделей есть свет, тени, отражения, тени, постэффекты, трансформации и анимация. Наконец, поскольку в блоге ничего не говорится об игровой графике, он отвечает на вопрос, вынесенный в заголовок: как создаются игры?
Судя по стилю поста, вторая часть посвящена 2D-играм. И состоит она из одного предложения. Нарисуйте спрайты и прикрепите их к машине. До свидания.
(Чтобы не быть автором, сайт — это куча вашего текста, это код)
Эй, все комментарии GG хороши. Спасибо за комментарии, я рад, что вам понравилась статья. На самом деле, в этой статье я хотел объяснить вершину этого «айсберга» и боялся написать обо всем, что вы о нем написали. В следующей статье я постараюсь лучше сочетать более подробные примеры с чем-то более читабельным для обычного человека. Кроме того, 3d очень сложна, и подробный разговор о ней приведет к тому, что никто не дочитает ее до конца.
Υ.Γ. На самом деле, вы можете использовать shift и normal одновременно, но shift требует, да, нескольких полигонов. Я отредактирую его сейчас. Спасибо за ваш комментарий, я попробую заставить его работать.