Найти в Дзене

Искусство Процедурной Генерации: Создание Локаций и Персонажей в Виртуальных Мирах

Оглавление

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

Жанр нашей игры, представленный в данной статье, будет action-adventure с открытым миром и элементами выживания.

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

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

Целью в данной статье является создание локаций и персонажей для видеоигры и внедрение нейросетей в неё.

поставлены следующие задачи:

  • 1. Создать предварительные эскизы для дальнейшего создания персонажа;
  • 2. Создать предварительные эскизы локаций для дальнейшего создания визуальной части видеоигры;
  • 3. Рассмотреть примеры грамотного создания локаций в видеоиграх и изучить их главные аспекты;
  • 4. Рассмотреть план внедрений нейросетей в видеоигру;
  • 5. Рассмотреть план оптимизации.

Понятие персонажа в видео играх

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

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

Создание эскизов

Создание эскизов можно разделить на несколько этапов:

  • 1. Определение концепции персонажа. Какую роль он будет играть в истории игры.
  • 2. Референсы. Изучение опыта создания персонажей у других студий чтобы найти идеи для создания концепции персонажа.
  • 3. Первые наброски и постепенное уточнение деталей (рис.1) помогли создать форму персонажа, одежду, пропорции тела и прочие детали.
  • 4. Уникальные способности персонажа. Способности персонажа должны быть уникальными и отличаться от других персонажей (рис.2).
Рисунок.1. Первые наброски
Рисунок.1. Первые наброски

Рисунок.2. Итоговый вариант
Рисунок.2. Итоговый вариант

Благодаря процедурной генерации мы можем получать новые формы комбинации врагов и оружия в открытом мире. А также мы можем получать новые сценарии поведения NPC (Non- playable character) и врагов в открытом мире.

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

Создание игровой локации

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

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

Примеры профессионального создания локаций из игр:

  • 1. The Witcher 3: Wild Hunt - в этой игре каждая локация имеет свою уникальную атмосферу и задачи для игрока. Например, город Новиград представляет собой огромный мегаполис, где игрок может исследовать множество зданий, встретиться с различными персонажами и выполнить множество заданий (рис.3).
Рисунок.3 The Witcher 3: Wild Hunt
Рисунок.3 The Witcher 3: Wild Hunt
  • 2. Assassin's Creed: Odyssey - игра происходит в Древней Греции, и каждая локация отображает уникальную культуру и архитектуру того времени. Например, город Афины представляет собой огромный город с множеством храмов и зданий, которые игрок может исследовать (рис.4).
Рисунок.4 Assassin's Creed: Odyssey
Рисунок.4 Assassin's Creed: Odyssey
  • 3. The Elder Scrolls V: Skyrim - игра происходит в фантастическом мире, где каждая локация имеет свою уникальную атмосферу и историю. Например, город Вайтран представляет собой средневековый город с крепостью и множеством зданий, которые игрок может исследовать (рис.5).
Рисунок.5 The Elder Scrolls Skyrim
Рисунок.5 The Elder Scrolls Skyrim

Несмотря на это, задача исследования отличается от привычного создания Мира, в игру будет внедрена система процедурного генерации миров. В пример можно сопоставить генерацию в игре No Man's Sky где каждый раз когда игрок начинает новую игру, создаетсяновый и уникальный мир. Процедурная генерация миров в No Man's Sky основана на алгоритмах, которые создают случайные планеты, звездные системы и галактики (рис.6).

Рисунок.6 No Man's Sky
Рисунок.6 No Man's Sky

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

Для своего примера мы будем использовать упрощенную версию алгоритма Фрактального ландшафта. Алгоритм используется для создания сложных ландшафтов. Он основан на генерации случайных точек и последующем их соединении в сложные структуры

Алгоритм фрактального ландшафта был применен в различных играх. В пример можнопоставить Minecraft, Terraria, Diablo 2, Age of Empires 2 и Sid Meier's Civilization 4.

Создание концепт арта локаций

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

Рисунок.7 Цветовая палитра
Рисунок.7 Цветовая палитра

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

Рисунок.8.Примерное расположение ключевых обьектов и готовый дизайн локаций
Рисунок.8.Примерное расположение ключевых обьектов и готовый дизайн локаций

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

Внедрение нейросетей в проект.

Благодаря развитию нейросетей в настоящее время можно усовершенствовать геймплейную основу и задать новые векторы направления в игровой индустрии. Внедрение в диалоговую систему Chat GPT от компании Open I, можно добиться совершенно новых сценариев, при этом не разрабатывая их вручную.

Внедрение нейросети Midjourney в алгоритм фрактального ландшафта позволит бесконечно создавать новые и совершенно непохожие на друг друга локации и персонажей.

AlphaGo поможет обучить врагов в области искусственного интеллекта, нейросеть использует глубокое обучение с подкреплением оптимальных ходов. GAN генеративно-состязательная сеть может использоваться для генерации видео и звука, которые выглядят настоящими. GAN может позволить создать эффектный саунд-дизайн для разных игр. Похожий опыт можно наблюдать в приложении «Яндекс Музыка» от одноименной компании. Там пользователю предлагается прослушивание «нейромузыки» с бесконечным плейлистом, составленным нейросетью. В подкрепление выше сказанному можно привести пример как недавно компания Nvidia представила технологию разговоров с NPC в играх через распознавание речи и ИИ вместо диалогов.

На выставке «Computex 2023» Nvidia представила технологию, в которой игровые персонажи разговаривают с использованием искусственного интеллекта, не полагаясь на готовые диалогисценаристов. При этом игра сама распознает голос игрока и формирует готовые ответы на основе предположений искусственного интеллекта (рис.9).

На данный момент качество диалоговой системы не сильно отличается от Chat Gpt или же заготовленных ответов.

Рисунок.9. Технология для распознавания речи представленная компанией Nvidia
Рисунок.9. Технология для распознавания речи представленная компанией Nvidia

Оптимизация проекта.

Оптимизация игр для мобильных устройств является очень важным шагом в нашем проекте. Можно вспомнить много провальных проектов в игровой индустрии только из-за плохой оптимизации. Проблемы в студии разработки, сложности в специалистах, недоговоренности с инвесторами по поводу срока сдачи проекта и еще многое другое. В пример можно поставить несколько игр: «Assassin's Creed: Unity» - игра, которая была выпущена в 2014 году и получила множество отрицательных отзывов из-за плохой оптимизации. Игроки жаловались на частые падения FPS и низкую производительность даже на мощных компьютерах; «Anthem» - игра, которая была выпущена в 2019 году и также столкнулась с проблемами оптимизации на различных платформах. Игроки жаловались на низкую производительность и частые проблемы с соединением. Оптимизацию игры можно разделить на несколько шагов:

  • 1. Целевая аудитории. Целевая аудитория в играх может быть весьма разнообразной, и наша игра должна ориентироваться так и на детскую так и на взрослую аудиторию. К примеру, дети и подростки играют в игры с учетом потребностей, интересов и современных тенденций. Взрослые же геймеры играют в широкий спектр игр, это могут быть стратегии, спортивные симуляторы, ролевые игры и шутеры. Но есть и отдельный вид целевой аудитории как казуальные игроки. Такие игры обычно предназначены для тех, кто проводит мало времени за игровыми устройствами. Для казуальных игроков должны быть выедены отдельные механики, которые упрощают геймплейную основу и предлагают простые механики для прохождения игры. Так же можно отметить, что не все мобильные устройства имеют одинаковую мощность и функциональность. Чтобы достичь наилучшего результата, нужно знать, какие устройства и операционные системы использует наша целевая аудитория.
  • 2. Память. Игра должна использовать память эффективно. Здесь поможет рациональное использование графики и текстур. При игровой сессии ненужные рудименты не должны загружать необходимые ресурсы в память. Можно еще расписать несколько пунктов которые помогут оптимизировать память:
  1. Очистка неиспользуемых ресурсов: нужно убедиться, что память правильно освобождается, когда ненужные ресурсы больше не нужны. Нужно постоянно проверять и удалять неиспользуемые объекты и данные, чтобы избежать сложных утечек памяти.
  2. Минимизация аллокаций и деаллокаций: Нужно избегать применения частых элементов памяти так как это может привести к фрагментации памяти и снижению производительности. Нужно использовать пулы объектов и память по минимуму там, где это возможно.
  • 3. Графика. Один из наиболее затратных аспектов игрового процесса. Использование текстур меньшего размера и ограничение количества объектов на экране поможет сделать игровой процесс более стабильным. Так же в основе графики важно упомянуть об освещении. Использование более эффективных алгоритмов освещения и затемнения помогут улучшить производительность. Оптимизация отрисовки поможет улучшить производительность путем уменьшения количества видимых объектов одновременно на экране.
  • 4. Компрессия. Компрессия - это процесс сжатия графических, аудио и видео данных игры для уменьшения размера файлов. Компрессия поможет уменьшить время загрузки игры и увеличит количество мобильных устройств, которые смогут запустить игру
  • 5. Производительность. Нужно убедиться, что код выполняет свою функцию стабильно и использовать механизмы кеширование, чтобы снизить время загрузки ресурсов.
  • 6. Тестирование. Является самым главным и завершающем пунктом. Оно очень важно для полноценной работы на разных устройствах и операционных системах. Не у всех пользователей есть мощные флагманские телефоны, игру нужно оптимизировать и под бюджетные устройства со слабыми комплектующими. Тестирование может выявить множество разных ошибок и глюков для устранения которых понадобиться определенное время. Тестирование также может помочь улучшить игровой процесс определяя какие игровые аспекты нуждаются в улучшении. Это может быть как балансировка сложности, так и доработка интерфейса для наилучшего зрительного отклика от игрока. После тестирования игры так же нужен сбор обратной связи от игроков, они могут сообщать о проблемах игры или предлагать свои идеи и наработки для улучшения игры.

Итог

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

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

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