Разработка и исследование подхода разработки компьютерной игры в жанре «RPG»
Введение
В рамках выпускной квалификационной работы была поставлена задача по разработке и исследовании подхода разработки компьютерной игры в жанре «RPG» с дальнейшей интеграцией многопользовательского режима и защищенным от модификации протоколом передачи данных. Программа представляет из себя пиксельную игру с видом сверху и окружающей местностью, доступной для передвижения.
Что можно делать в игре:
Перемещаться в бесконечном мире;
Взаимодействовать с внутриигровыми персонажами и окружением;
Набирать опыт и увеличивать уровень персонажа;
Улучшать навыки и характеристики персонажа на каждом уровне;
Соревноваться с другими игроками;
Общаться в чате с другими пользователями(игроками);
Отслеживать информацию об игре и анализировать производительность сервера.
В чем отличие от других существующих решений: основной концепцией разработанной игры является открытость исходного кода программы, уникальность использующихся при реализации механик, адаптивность к модифик
СОДЕРЖАНИЕ
Введение 8
Обоснование актуальности работы 9
Обзор существующих решений 11
Глава 1. Выявление целей работы и ранние этапы реализации проекта 15
1.1 Анализ существующих решений 15
1.1.1. Loop Hero 15
1.1.2. RimWorld 16
1.1.3. Tap Ninja 17
1.1.4. Heroes of Might and Magic 18
1.2. Определение общего плана работ 19
Глава 2. Разработка базовых механик 23
2.1. Разработка механик генерации окружения 23
2.1.1. Описание реализуемых методов из библиотеки LibGDX 23
2.1.2. Реализация процедурной генерации 25
2.2. Разработка механик передвижения персонажа. 27
2.2.1. Первые шаги разработки механики 27
2.2.2. Разработка механики PathFinder 28
2.3. Разработка системы многопользовательского подключения 34
2.3.1. Основная информация о многопользовательском подключении 34
2.3.2. Описание протоколов 36
2.3.3. Реализация многопользовательского подключения 38
2.3.4. Используемые структуры данных 42
2.4. Реализация защитного протокола 43
2.4.1. Общие сведения об алгоритме шифрования 43
2.4.2. Как работает алгоритм 44
2.4.3. Реализация алгоритма в игре 45
2.5. Реализация системы развития персонажа 48
2.5.1. Описание системы развития 48
2.5.2. Реализация системы развития 48
2.5.3. Наглядная визуализация реализации системы развития 49
2.6. Анализ подхода разработки проекта 50
Глава 3. Результат проделанной работы и перспективы проекта 52
3.1. Дальнейшие улучшения 52
3.2. Статистика проделанной работы 52
Заключение 54
Список использованной литературы 55
Приложение 1. 56
Приложение 2. 57
Приложение 3. 58
Приложение 4 58
Список использованной литературы
Patrikc Hoey : Mastering LibGDX Game Development (1st Edition) – P. Hoey – 2015 // P. Hoey, 2015 – 422 C.
Morgan Kaufmann : Texturing and Modeling, Third Edition: A Procedural Approach (The Morgan Kaufmann Series in Computer Graphics) (3rd Edition) – M. Kaufmann – 2002 // M. Kaufmann 2002 – 712 C.
Lee Stemkoski : Java Game Development with LibGDX: From Beginner to Professional (2nd Edition) – L. Stemkoski – 2018 // L. Stemkoski, 2018. - 452 C.
OREILLY : Chapter 4. Pathfinding and Graph Search Algorithms [Электронный ресурс] URL:https://www.oreilly.com/library/view/graph-algorithms/9781492047674/ch04.html
LibGDX documentation [Электронный ресурс] URL:http://www.libgdx.ru/p/guide.html
Java 18 Documentation [Электронный ресурс] URL:https://docs.oracle.com/en/java/
Loop Hero game official site [Электронный ресурс] URL:https://www.devolverdigital.com/games/loop-hero
RimWorld game official site [Электронный ресурс] URL:https://rimworldgame.com
Tap Ninja game developer site [Электронный ресурс] URL:https://www.appbrain.com/dev/Broken+Glass/
Heroes of Might and magic developer site [Электронный ресурс] URL:https://en.nival.com/games/pc-games
Source Code of the project [Электронный ресурс] URL: https://github.com/KazantsevLev/Makaz40576524828500
В рамках данной ВКР было принято решение на использование следующей реализаций:
right5923280Рис SEQ Рис \* ARABIC 5. Интерфейс утилиты FastNoise.
Рис SEQ Рис \* ARABIC 5. Интерфейс утилиты FastNoise.
right1242060Имплементация алгоритма генерации шума Перлина – FastNoise. Используется в виде нескольких слоев, наложенных друг на друга для полноценной генерации игрового окружения в виде уровней начиная от океана, вплоть до гор. (FastNoise, защита, сервер);
В рамках данной утилиты можно регулировать множество параметров для определения точных настроек конечного вида шума:
Настройки размера в пикселях конечной карты шумов;
Инвертирование глубины, параметр 3-ёхмерного наложения, визуальное отключение отображения;
Основные настройки, включающие в себя следующие параметры:
Тип шума
Тип вращения генерации пиксельной составляющей
Значение генерации – случайное число для базы псевдослучайного алгоритма. На основе этого числа формируется генер