Разработка программных средств генерации уровней в играх жанра roguelike
ВВЕДЕНИЕ
При разработке игр жанра roguelike, разработчики сталкиваются со следующей задачей: создать генерируемый игровой мир, т. е. каждый раз, когда игрок появляется на новом уровне, тот должен отличатся от предыдущего, в т. ч. если игрок попадает на этот уровень не в первый раз. Одной из особенностей игр данного жанра считается реиграбельность. Она достигается за счет того, что игры данного жанра содержат большое количество используемых игроком объектов, а также уровни в этих играх имеют только общую концепцию, а их построение завязано на генерации, т. о. достигается большое количество неповторяющихся «забегов». К реиграбельности еще относится некоторая механика проигрышей, т. е. если игрок проигрывает на каком-либо этапе игры, то тот начинает игру заново, но при этом меньшую часть накоплений с последнего «забега» сохраняется на новый, т. о. игрок может помочь себе продвинутся дальше, чем в прошлый раз.
Одной из проблем генерации уровней является повтор некоторых элементов уровней
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 7
1. ИЗУЧЕНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ. ПОСТАНОВКА ЗАДАЧИ 8
1.1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ И ОПРЕДЕЛЕНИЕ ПРОБЛЕМЫ 8
1.2. ТРЕБОВАНИЯ И РЕШЕНИЕ ПРОБЛЕМЫ 8
1.3. ПОСТАНОВКА ЗАДАЧИ 9
1.4. СПЕЦИФИКАЦИЯ ТРЕБОВАНИЙ ДЛЯ ПЕРВОЙ ВЕРСИИ БИБЛИОТЕКИ 11
1.4.1. Требования к численности пользователей системы и режиму их работы 11
1.4.2. Показатели назначения 11
1.4.3. Требования к надежности 11
1.4.4. Требования к безопасности 11
1.4.5. Требования к эргономике и технической эстетике 11
1.4.6. Требования к эксплуатации, техническому обслуживанию, ремонту и хранению компонентов библиотеки 12
1.4.7. Требования к патентной чистоте 12
1.4.8. Требования к функциям, выполняемым библиотекой 12
1.4.9. Требования к информационному обеспечению 12
1.4.10. Требования к лингвистическому обеспечению 12
1.4.11. Требования к программному обеспечению 12
1.4.12. Требования к техническому обеспечению 12
2. ПРОЕКТИРОВАНИЕ 13
2.1. ФУНКЦИОНАЛ БИБЛИОТЕКИ 13
2.2. АРХИТЕКТУРА БИБЛИОТЕКИ 13
2.3. АЛГОРИТМЫ ГЕНЕРАЦИИ 14
2.4. ТЕХНИЧЕСКОЕ ОБЕСПЕЧЕНИЕ 17
2.5. МЕТОДЫ И СРЕДСТВА РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 17
3. КОНСТРУИРОВАНИЕ 18
3.1. ОБОСНОВАНИЕ ВЫБОРА СРЕДЫ ПРОГРАММИРОВАНИЯ И ЯЗЫКА РЕАЛИЗАЦИИ 18
3.2. ВЫБОР ССТИЛЯ КОДИРОВАНИЯБ ИСПОЛЬЗОВАНИЕ ПРОВИЛ ОФОРМЛЕНИЯ КОДА 18
3.3. СОЗДАНИЕ КЛАССОВ 19
3.4. СТРУКТУРА ПРОЕКТА 28
3.5. СПОСОБЫ ПОДДЕРЖКИ ВЕРСИИ ФАЙЛОВ И СБОРОК В ПРОЦЕССЕ РАЗРАБОТКИ 29
3.6. ОПИСАНИЕ СПОСОБА ВКЛЮЧЕНИЯ В ПРОЕКТ НОВЫХ ПРОГРАММИСТОВ ПРИ ЕГО ПОСЛЕДУЮЩЕМ РАЗВИТИИ ИЛИ КОММЕРЦИАЛИЗАЦИИ 29
4. ВВОД В ЭКСПЛУАТАЦИЮ 30
4.1. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ 30
ЗАКЛЮЧЕНИЕ 38
Список использованных источников 39
ПРИЛОЖЕНИЕ 40
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Unity in Action: Multiplatform Game Development in C# with Unity 5: книга/Хокинг Д. Manning Publications, 2015 (дата обращения: 02.02.2023) – Текст электронный.
2. Introduction to Game Design, Prototyping, and Development: From Concept to Playable Game with Unity and C#: книга/Бонд Д. Г. Addison-Wesley Professional, 2014 (дата обращения: 02.02.2023) – Текст электронный.
3. Learning C# from Developing Games with Unity 5.x: книга/ Лукошек Г. Packt Publishing, 2016 (дата обращения: 02.02.2023) – Текст электронный.
4. Developing 2D games with Unity: Independent Game Programming with C#: книга/ Халперн Д. Apress, 2018 (дата обращения: 02.02.2023) – Текст электронный.
Т. к. библиотека находится в раннем доступе в качестве используемых методов будут представлены следующие виды генераций: генератор лабиринта комнат в 3-хмерном пространстве, генератор многослойного лабиринта в 3-хмерном пространстве, генератор ландшафта открытого мира.
2.2. АРХИТЕКТУРА БИБЛИОТЕКИ
Для работы каждого вида генерации потребуется создать некоторую логическую структуру, по которой будет работать библиотека. Так, например, для того чтобы создать генератор для многослойного лабиринта потребуется создать 1 класс, при условии, что во время генерации будут использоваться префабы. Если же рассматривать генератор лабиринта комнат, то