Тип работы:
Предмет:
Язык работы:


Методы генерации ландшафта карт в разработке игр на примере Unreal Engine 4

Работа №129108

Тип работы

Бакалаврская работа

Предмет

информатика

Объем работы41
Год сдачи2020
Стоимость4280 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
63
Не подходит работа?

Узнай цену на написание


Введение 3
Постановка задачи 5
Задачи работы 6
Глава 1. Обзор предметной области 7
1.1 Игровая индустрия как сфера научной деятельности 7
1.2 Обзор существующих решений 10
Глава 2. Процедурная генерация ландшафта 12
2.1 Генерация карты высот 12
2.2 Unreal Engine Landscape API и Procedural Mesh Component 15
2.3 Реализация алгоритмов процедурной генерации 18
2.3.1 Diamond-Square 19
2.3.2 Fault алгоритм 21
2.3.3 Шум Перлина 22
2.4 Расположение ключевых объектов 24
Глава 3. Проведение эксперимента 27
3.1 Генерация 2D текстур и использование Landscape API 27
3.1.1 Diamond-Square 28
3.1.2 Fault алгоритм 30
3.1.3 Шум Перлина 33
3.2 Генерация ландшафта с применением Procedural Mesh Component . .35
3.3 Выводы 38
Заключение 40
Список литературы 41


Игровая индустрия является одной из самых больших и важных составляющих современной индустрии развлечений. Влияние и вовлечение потребителя в интерактивное окружение с помощью видеоигр не остается незамеченным уже много лет, благодаря чему сегмент компьютерных игр выделяется среди других видов развлечений. Индустрия видеоигр - крупный сектор экономики, который неразрывно связан с индустрией производства компонентов для персональных компьютеров. Важная часть индустрии — это непосредственно разработка игр. Создание игры является частью жизненного цикла продукта, состоящего из производства, распространения и использования его потребителем.
Разработка игры — сложный процесс, требующий слаженной работы всей команды, которая может включать в себя множество специалистов разных профессий: аналитиков, программистов, дизайнеров и других. Успешные проекты могут быть реализованы как большой командной, которая может позволить себе потратить на разработку большие деньги, так и независимыми энтузиастами, чему способствует появление бесплатных платформ для разработки, площадок для краудфандинга и возможностей для распространения своего продукта.
Одним из важных этапов разработки любой игры является разработка уровня или уровней, на которых будет происходить игровой процесс. Обычно этим занимаются дизайнеры уровней под руководством дизайнеров игры. Таким образом, вид и даже стиль игровой карты могут меняться в зависимости от жанра и стилистики игры. Например, для игры в двухмерном пространстве, разрабатываемой в стиле рисованной мультипликации, нет смысла создавать трехмерный уровень и полностью заполнять его контентом. С развитием технологий во многих играх разных жанров начала использоваться реалистичная графика, позволяющая игроку более глубоко погружаться в игровой процесс. Как следствие, необходимо создание реалистичного игрового уровня.
Основанием уровня служит его ландшафт. Такие игровые движки, как Unity или Unreal Engine, предлагают готовые средства для его “лепки”. Эти средства представляют из себя набор инструментов скульптинга (например, вытягивание, сглаживание, эрозия, распрямление и т.п.). Благодаря данным инструментам, человек, отвечающий за создание уровня, может создать ландшафт нужного вида, который будет использоваться в дальнейшей разработке. Однако, участие человека в создании ландшафта требует определенных временных затрат в связи с тем, что использование вышеупомянутых средств требует мануальной работы с ними. В случаях, требующих быстрого создания уровня для дальнейшей разработки или даже для последующей игры на нем можно использовать процедурную генерацию — автоматическое создание контента с помощью алгоритмов. При разработке игр процедурная генерация используется для генерации материалов и текстур или для расположения объектов на игровом уровне и наполнения его контентом. Также ее можно применить и для генерации ландшафта. В качестве основного алгоритма для процедурной генерации ландшафта можно выбрать множество алгоритмов, например, создание шума.
Постановка задачи
Целью данной работы является реализация решения для процедурной генерации ландшафта для использования при разработке игр на движке Unreal Engine 4 [16].
Сгенерированный с помощью такого решения ландшафт должен представлять из себя участок земли, который содержал бы на себе возвышенности и углубления, но который при этом позволял бы строить систему навигации для перемещения по данному ландшафту искусственного интеллекта и размещать на себе ключевые для игрового процесса объекты, или участок земли, который можно было бы использовать как базу для последующего создания полноценного уровня на нем.

Возникли сложности?

Нужна помощь преподавателя?

Помощь студентам в написании работ!


В рамках проведенной работы были выполнены следующие задачи:
• Путем обзора научной деятельности в сфере игровой индустрии показана актуальность работы;
• Проведен обзор существующих решений;
• Проведен обзор основных групп алгоритмов, применимых для решения данной задачи;
• Рассмотрены 2 способа решения задачи: генерация 2D текстуры и создание ландшафта на ее основе, генерация ландшафта с применением Procedural Mesh Component;
• Выбраны, реализованы и оценены 3 алгоритма.
При дальнейшей работе над алгоритмом планируется:
• Реализовать другие алгоритмы генерации карты высот, например, симплекс-шум (улучшенная версия шума Перлина) или шум Вороного;
• Процедурная генерация окружения — расположение определенных мешей, задающих местность, например, травы, деревьев, камней;
• Усложнение геометрии ландшафта, например, генерация пещер и каменных навесов;
• Добавление возможности генерации биомов — природно-климатический зон, которые будут определяться набором определенных параметров таких как высота, объекты, характеризующие эту зону, текстуры, накладывающиеся на ландшафт и т.п.



[1] Bernier, Y.W. Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization. // Game Developers Conference. - 2001.
[2] Bosman, F. G. There Is No Solution!: “Wicked Problems” in Digital Games. // Games and Culture. - 2019. - №5. - С. 543-559.
[3] Costello, B. M. The Rhythm of Game Interactions: Player Experience and Rhythm in Minecraft and Don’t Starve // Games and Culture. - 2018. - №8. - С. 807-824.
[4] Fournier A., Fussell D., Carpenter L. Computer rendering of stochastic models. // Commun. ACM 25. - 1982. - №6. - С. 371-384.
[5] Galin E., Guerin E., Peytavie A., Cordonnier G., Cani M.-P., Benes B., Gain J. A Review of Digital Terrain Modeling // Computer Graphics Forum. - 2019. - №2. -С. 553-577.
[6] Lavoue G., Dupont F., Baskurt A. Toward a near optimal quad/triangle subdivision surface fitting // Fifth International Conference on 3-D Digital Imaging and Modeling. - 2005. - С. 402-409.
[7] Orkin J. Three States and a Plan: The A.I. of F.E.A.R // Game Developers Conference. - 2006.
[8] Perlin K. Improving Noise // ACM Trans. Graph.. - 2002. - №3. - С. 681-682.
[9] Thalmann D., Musse S. R. Crowd Simulation. - Berlin, Heidelberg: Springer-Verlag, 2007. - 254 с.
[10] Wang, Y. - H., Wu, I. - C., Jiang, J. - Y. A portable AWT/Swing architecture for Java game development. // Softw. Pract. Exper.. - 2007. - №37. - С. 727-745.
[11] Клеточный шум // The Book of Shaders URL: https://thebookofshaders.com/12/?lan=ru(дата обращения: 23.04.2020).
[12] Creating and Using Custom Heightmaps and Layers // Unreal Engine 4 Documentation
URL: https://docs.unrealengine.com/en-US/Engine/Landscape/Custom/index.html(дата обращения: 23.04.2020).
[13] Noise Machine URL: http://noisemachine.com/talk1/(дата обращения: 23.04.2020).
[14] Procedural Mesh // Unreal Engine 4 Documentation URL: https://docs.unrealengine.com/en-US/BlueprintAPI/Components/ProceduralMesh/i ndex.html (дата обращения: 23.04.2020).
[15] Terrain Tutorial. Two Possible Variations // lighthouse3d.com URL: http://www.lighthouse3d.com/opengl/terrain/index.php7faultvar(дата обращения: 23.04.2020).
[16] Официальный сайт Unreal Engine // URL: https://unrealengine.com(дата обращения: 23.04.2020).
[17] Официальный сайт Voxel Plugin URL: https://voxelplugin.com/(дата обращения: 23.04.2020).
[18] CashgenUE by midgen // github URL: https://github.com/midgen/cashgenUE(дата обращения: 23.04.2020).
[19] Procedural Landscape Generator by Isara Tech // Unreal Marketplace URL: https://www.unrealengine.com/marketplace/en-US/product/procedural-landscape-g enerator (дата обращения: 23.04.2020).
[20] Procedural Terrain Generator by Rockam // Unreal Marketplace URL: https://www.unrealengine.com/marketplace/en-US/product/procedural-terrain-gene rator (дата обращения: 23.04.2020).
[21] stb_write_image // github URL: https://github.com/nothings/stb(дата обращения: 23.04.2020).


Работу высылаем на протяжении 30 минут после оплаты.




©2024 Cервис помощи студентам в выполнении работ