СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до 20.05.2025

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Разработка видеоигры с использованием процедурной генерации ландшафта в среде Unity

Категория: Информатика

Нажмите, чтобы узнать подробности

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

Косинцев Артём Михайлович

Ученик 11 «А» класса

МБОУ СОШ №108

Показать полностью

Просмотр содержимого документа
«Разработка видеоигры с использованием процедурной генерации ландшафта в среде Unity»

Разработка видеоигры с использованием процедурной генерации ландшафта в среде Unity Косинцев Артём Михайлович Ученик 11 «А» класса МБОУ СОШ №108

Разработка видеоигры с использованием процедурной генерации ландшафта в среде Unity

Косинцев Артём Михайлович

Ученик 11 «А» класса

МБОУ СОШ №108

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

Введение

  • С развитием электронно-вычислительных машин область их применения неуклонно росла. Так, из научной и военной деятельности с появлением персональных компьютеров и компьютерных игр, они заняли большую долю и в сфере развлечений.
Введение На данный момент индустрия видеоигр по обороту приближается к показателям спортивной индустрии (которая имеет за 2016 год оборот, размером более 140 миллиардов долларов).

Введение

  • На данный момент индустрия видеоигр по обороту приближается к показателям спортивной индустрии (которая имеет за 2016 год оборот, размером более 140 миллиардов долларов).
Введение Совместив два интереса – видеоигры и программирование, было решено попробовать себя в сфере разработки видеоигр. Отсутствие опыта и команды лишь усилили интерес и натолкнули меня на следующую гипотезу:

Введение

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

Гипотеза

  • Возможно самостоятельно, не прибегая к сторонней помощи, разработать видеоигру от начала до конца.
  • Из данной гипотезы была сформулирована цель работы.
Цель работы Разработать видеоигру в жанре «Стратегия» с использованием общедоступных ресурсов и технологий, включая процедурную генерацию ландшафта, в интегрированной среде разработки игрового движка «Unity».

Цель работы

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

Задачи

  • Изучить профессиональную документации по игровой индустрии, программированию и среде разработки.
  • Разработать план всех направлений создания проекта, используя полученные знания.
  • Создать рабочий прототип.
Актуальность Актуальность любых разработок в игровой индустрии подтверждается её бурным ростом. Разработки, связанные с процедурной генерацией, пользуются особым вниманием из-за их уникальности и обширности возможностей.

Актуальность

  • Актуальность любых разработок в игровой индустрии подтверждается её бурным ростом.
  • Разработки, связанные с процедурной генерацией, пользуются особым вниманием из-за их уникальности и обширности возможностей.
Теоретическая часть. Введение в процесс разработки видеоигр Процесс разработки игры обычно включает следующие этапы: 1.  Подготовка («препродакшн» от англ. pre production); 2.  Производство; 3.  Поддержка. Этапы могут меняться в зависимости от предпочтений фирмы и особенностей проекта.

Теоретическая часть. Введение в процесс разработки видеоигр

Процесс разработки игры обычно включает следующие этапы:

  • 1. Подготовка («препродакшн» от англ. pre production);
  • 2. Производство;
  • 3. Поддержка.

Этапы могут меняться в зависимости от предпочтений фирмы и особенностей проекта.

Дизайн-документ

Дизайн-документ

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

Подготовка к разработке. Игровой движок

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

Подготовка к разработке. Игровой движок

Игровой движок

Игровой движок

Unity Engine Рабочая область Иерархическая структура проекта Панель инспектора ресурсов проекта Панель инспектора объекта

Unity Engine

  • Рабочая область
  • Иерархическая структура проекта
  • Панель инспектора ресурсов проекта
  • Панель инспектора объекта
Microsoft Visual Studio

Microsoft Visual Studio

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

Процедурная генерация ландшафта

  • Процедурная генерация ландшафта – процесс создания ландшафта или местности (карты), в основу которого положены математические функции и алгоритмы.
  • Процедурная генерация ландшафта – процесс создания ландшафта или местности (карты), в основу которого положены математические функции и алгоритмы.
Требования к генерации Скорость Надёжность Контролепригодность Разнообразие Креативность и правдоподобие

Требования к генерации

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

Шум Перлина

  • Шум Перлина — это градиентный шум, состоящий из набора псевдослучайных единичных векторов, расположенных в определенных точках пространства и интерполированных функцией сглаживания между этими точками. Используется в компьютерной графике для увеличения реализма или графической сложности поверхности геометрических объектов. Для генерации шума Перлина в одномерном пространстве необходимо для каждой точки этого пространства вычислить значение шумовой функции, используя направление градиента (или наклон) в указанной точке.
График, показывающий пример функции шума. Случайное значение от 0 до 1 присваивается каждой точки на оси X .    При плавной интерполяции (сглаживании) между значениями, мы можем определить непрерывную функцию, которая принимает не целое в качестве параметра.
  • График, показывающий пример функции шума. Случайное значение от 0 до 1 присваивается каждой точки на оси X .
  • При плавной интерполяции (сглаживании) между значениями, мы можем определить непрерывную функцию, которая принимает не целое в качестве параметра.
Теперь, если взять много гладких функций с различной частотой и амплитудой и совместить их все вместе, получится хорошо зашумленная функций.        Это и есть функция шума Перлина.
  • Теперь, если взять много гладких функций с различной частотой и амплитудой и совместить их все вместе, получится хорошо зашумленная функций.
  • Это и есть функция шума Перлина.
Проделав всё тоже самое в 2 измерениях, возможно получить вот такую шумовую картину:
  • Проделав всё тоже самое в 2 измерениях, возможно получить вот такую шумовую картину:
Результат работы алгоритма можно интерпретировать в ландшафты, похожие на скалы, горы и т.п.
  • Результат работы алгоритма можно интерпретировать в ландшафты, похожие на скалы, горы и т.п.
Практическая часть. Игровой процесс Некоторые аспекты: Ключевой особенностью игры является то, что при каждом новом запуске карта генерируется иначе, чем она была сгенерирована в прошлый раз. Игровая экономика является важной частью игры, баланс в ней необходим. Перекос экономики в любую из сторон приведёт к потере мотивации к игре.

Практическая часть. Игровой процесс

  • Некоторые аспекты:
  • Ключевой особенностью игры является то, что при каждом новом запуске карта генерируется иначе, чем она была сгенерирована в прошлый раз.
  • Игровая экономика является важной частью игры, баланс в ней необходим. Перекос экономики в любую из сторон приведёт к потере мотивации к игре.
Иерархия Видеоигра – это система, структура, в которой все элементы переплетены. Сложность связей между объектами требует от игры чётко выстроенной иерархии.

Иерархия

  • Видеоигра – это система, структура, в которой все элементы переплетены. Сложность связей между объектами требует от игры чётко выстроенной иерархии.
Иерархия

Иерархия

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

Создание сети пещер

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

Создание сети пещер

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

Создание сети пещер

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

Создание сети пещер

Создание сети пещер Ключевым изменением стало добавление в изначальную формулу для вычисления шума случайного значения в определённом диапазоне. Случайное значение в определённом диапазоне позволило генерировать непохожие друг на друга карты, но включая определённые параметры местности, которые и позволяют добиться сходства с системой пещер. Использование этого значения в функции f(x) = x / scale + scale / 2 , которая была выведена опытным путём, где scale – случайное значение, может выдать, например, вот такую систему пещер:

Создание сети пещер

  • Ключевым изменением стало добавление в изначальную формулу для вычисления шума случайного значения в определённом диапазоне. Случайное значение в определённом диапазоне позволило генерировать непохожие друг на друга карты, но включая определённые параметры местности, которые и позволяют добиться сходства с системой пещер. Использование этого значения в функции f(x) = x / scale + scale / 2 , которая была выведена опытным путём, где scale – случайное значение, может выдать, например, вот такую систему пещер:
Создание сети пещер

Создание сети пещер

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

Создание сети пещер

  • Дальнейшие преобразования были связаны с увеличением числа проходов, очистке и добавлением в сеть пещер ресурсов – минералов. Наложение определённых ограничений на смежные между пещерами области позволило добиться таких результатов.
Создание сети пещер

Создание сети пещер

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

Создание сети пещер

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

Создание сети пещер

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

Графика

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

Примеры игр на движке Unity

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

Графика

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

Графика

Графика. Моделлирование и текстурирование

Графика. Моделлирование и текстурирование

Подведение итогов. Заключение Время разработки: 3 месяца Количество строк кода: 3 370 Максимальное кол-во строк в скрипте: 491 Размер игры: 435 МБ Преодолев большинство трудностей во время разработки, с уверенностью можно сказать, что разработка видеоигры в одиночку возможна и моя гипотеза подтверждена.

Подведение итогов. Заключение

  • Время разработки: 3 месяца
  • Количество строк кода: 3 370
  • Максимальное кол-во строк в скрипте: 491
  • Размер игры: 435 МБ
  • Преодолев большинство трудностей во время разработки, с уверенностью можно сказать, что разработка видеоигры в одиночку возможна и моя гипотеза подтверждена.


Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!