Данная работа посвящена разработке подхода к анализу и ранжированию компьютерных игр на основе их конкурентных характеристик. Целью исследования является разработка инструмента, поддерживающего принятие решений в индустрии компьютерных игр – со стороны разработчиков, издателей и инвесторов.
Объектом исследования являются методы и средства многокритериального ранжирования.
В качестве методологической основы использован гибридный подход, включающий методы многокритериальной оптимизации, а также качественную и количественную оценку значимости признаков. Для анализа сходства между игровыми проектами применены методы кластерного анализа и сопоставления по ключевым параметрам: жанрам, мета-данным и показателям популярности.
Система была разработана с использованием MongoDB в качестве системы управления базами данных и библиотеки React. В результате реализован прототип веб-приложения, позволяющий ранжировать игры, находить успешные аналоги и формировать рекомендации по улучшению проектов. Разработанная система может найти применение в игровой индустрии и быть использована при планировании новых игр и оценке их доли продаж в сегменте похожих игр. Сделаны выводы о высокой эффективности предложенного решения при сравнительном анализе с существующими системами (Steam, STEAMer, DeepFM).
Введение ........................................................................................................ 11
1 Исследование методов и средств ранжирования компьютерных игр........ 16
1.1 Обзор существующих наборов данных о компьютерных играх ............. 16
1.1.1 Обзор платформ цифровой дистрибуции ............................................ 16
1.1.2 Особенности выбранной платформы.................................................... 18
1.1.3 Выбор исходных данных....................................................................... 20
1.2 Обзор средств анализа текстовой информации...................................... 21
1.2.1 Особенности анализа игровых отзывов................................................ 21
1.2.2 Методы векторного представления текстов......................................... 22
1.2.3 Перспективы расширения анализа ....................................................... 25
1.3 Обзор методов ранжирования компьютерных игр.................................. 27
1.3.1 Общее понятие и цели ранжирования игр............................................ 27
1.3.2 Принципы и методы построения рейтингов компьютерных игр.......... 28
1.3.3 Методы свёртки критериев................................................................... 30
1.4 Обзор существующих средств ранжирования ........................................ 33
1.4.1 Система Steam....................................................................................... 33
1.4.2 Система STEAMer ................................................................................ 35
1.4.3 Система DRGame.................................................................................. 36
1.4.4 Система DeepFM................................................................................... 37
1.4.5 Система D-VSMR.................................................................................. 38
1.4.6 Сравнительный анализ моделей ранжирования ................................... 39
1.5 Выводы ..................................................................................................... 41
2 Проектирование системы поддержки анализа компьютерных игр............ 42
2.1 Функциональная модель системы ........................................................... 42
2.1.1 Use-case диаграмма и основные сценарии............................................ 42
2.1.2 Входные и выходные данные системы.................................................. 45
2.1.3 Этапы работы системы анализа и рекомендаций ................................. 47
2.2 Архитектурное проектирование системы ............................................... 48
2.2.1 Архитектурные паттерны и их сравнение ............................................ 48
2.2.2 Выбранная архитектура и её компоненты............................................ 50
2.3 Технологический стек .............................................................................. 52
2.3.1 Критерии выбора технологий ............................................................... 52
2.3.2 Выбор языка программирования .......................................................... 52
2.3.3 Выбор фреймворка для веб-разработки...............................................54
2.3.4 Выбор серверной платформы ............................................................... 55
2.3.5 Выбор системы управления базой данных ........................................... 57
2.4 Проектирование диаграммы сущность-связь.......................................... 57
2.5 Математические модели и алгоритмы..................................................... 58
2.5.1 Предобработка данных и формирование признаков............................ 58
2.5.2 Методы анализа сходства игр............................................................... 63
2.5.3 Методы ранжирования компьютерных игр .......................................... 66
2.5.4 Метод последовательного уточнения предпочтений........................... 73
2.6 Формирование рекомендательных решений ........................................... 74
2.6.1 Выявление уникальных характеристик ................................................ 74
2.6.2 Механизм генерации рекомендаций..................................................... 75
2.6.3 Математическая модель анализа.......................................................... 76
2.7 Пример работы системы .......................................................................... 77
2.8 Выводы ..................................................................................................... 79
3 Реализация системы поддержки анализа компьютерных игр .................... 80
3.1 Реализация основных модулей системы.................................................. 81
3.1.1 Диаграмма классов ............................................................................... 81
3.1.2 Класс DataRepository ............................................................................ 81
3.1.3 Класс FeatureExtractor........................................................................... 83
3.1.4 Класс BazeAnalyzer............................................................................... 84
3.1.5 Класс GameClusterer ............................................................................. 84
3.1.6 Класс GameCompetitivenessAnalyzer.................................................... 85
3.1.7 Класс GameSimilarityAnalyzer.............................................................. 87
3.1.8 Класс GameUniqueFeaturesAnalyzer ..................................................... 87
3.1.9 Класс GameRecommendationAnalyzer .................................................. 89
3.1.10 Класс GameAnalysisPipeline ............................................................... 91
3.1.11 Класс ReviewAnalyzer ......................................................................... 93
3.1.12 Класс CompetitivenessRanker .............................................................. 94
3.1.13 Реализация API ................................................................................... 95
3.2 Реализация пользовательского интерфейса ............................................ 98
3.2.1 Структура веб-интерфейса ................................................................... 98
3.2.2 Компонент отображения результатов................................................... 99
3.2.3 Компонент отображения рейтинга игр................................................. 100
3.2.4 Компонент настройки важности критериев ......................................... 102
3.2.5 Техническая реализация ....................................................................... 103
3.3 Выводы ..................................................................................................... 106
4 Тестирование и апробация системы поддержки анализа компьютерных игр 107
4.1 План тестирования................................................................................... 107
4.2 Тестирование компонентов системы ....................................................... 108
4.2.1 Модульное тестирование backend......................................................... 108
4.2.2 Интеграционное тестирование ............................................................. 113
4.2.3 Анализ покрытия кода .......................................................................... 119
4.2.4 Профилирование времени выполнения и использования памяти........ 120
4.3 Тестирование пользовательского интерфейса......................................... 121
4.3.1 Функциональное тестирование интерфейса......................................... 121
4.3.2 Проверка отзывчивости интерфейса .................................................... 126
4.4 Экспериментальное сравнение с существующими решениями.............. 128
4.4.1 Система рекомендаций Steam............................................................... 128
4.4.2 Сравнительный анализ рейтинговой системы...................................... 129
4.4.3 Анализ полученных рейтингов ............................................................. 130
4.4.4 Анализ полученных схожих игр и формирование рекомендаций........ 133
4.4.5 Выводы на основе экспериментального сравнения.............................. 135
4.5 Апробация на конференции .................................................................... 136
4.6 Выводы ..................................................................................................... 138
Заключение.................................................................................................... 140
Список сокращений и условных обозначений.............................................. 142
Список использованных источников............................................................. 143
Приложение 1 Диаграмма компонентов системы поддержки анализа компьютерных
игр для их ранжирования и составления рекомендаций по улучшению 149
Приложение 2 Диаграмма случаев использования системы поддержки анализа
компьютерных игр для их ранжирования и составления рекомендаций
по улучшению ................................................................................................ 150
Приложение 3 Архитектура системы поддержки анализа компьютерных игр
для их ранжирования и составления рекомендаций по улучшению............. 151
Приложение 4 Логическая модель документоориентированной БД
GamesAnalyzer с цветовой маркировкой источников данных ...................... 152
Приложение 5 Диаграмма классов системы GamesAnalyze ......................... 153
Приложение 6 Основные параметры игр из Steam и SteamSpy .................... 154
Приложение 7 Основные параметры отзывов пользователей....................... 155
Приложение 8 Сравнение количества игр в Steam и на других игровых
платформах для ПК....................................................................................... 156
Приложение 9 Сравнительный анализ методов векторизации текстовых
данных............................................................................................................ 157
Приложение 10 Определение оптимального числа кластеров методом локтя 158
Приложение 11 Объектно-признаковая таблица моделей ранжирования.... 159
Приложение 12 Сравнительный анализ подходов к ранжированию игр ...... 160
Приложение 13 Сравнение инструментальных средств для разработки веб–
приложения .................................................................................................... 161
Приложение 14 Производительность ключевых методов системы .............. 162
Приложение 15 Определение оптимального числа кластеров методом локтя 163
Приложение 16 Определение оптимального числа кластеров методом локтя 164
Приложение 17 t-SNE визуализация кластеров компьютерных игр............. 165
Приложение 18 Блок-схема выполнения одного из возможных сценариев
работы системы.............................................................................................. 166
Приложение 19 Пример POST-запроса к API анализа игры через Postman . 167
Приложение 20 Форма загрузки данных пользовательской игры при светлой
теме ................................................................................................................ 168
Приложение 21 Программный код модуля BaseAnalyzer ............................. 169
Приложение 22 Программный код модуля CompetitivenessRanker .............. 181
Приложение 23 Программный код модуля GameClusterer ........................... 189
Приложение 24 Программный код модуля FeatureExtractor ......................... 200
Приложение 25 Программный код модуля GameAnalysisPipeline................ 208
Приложение 26 Программный код модуля GameAnalyzer............................ 220
Приложение 27 Программный код модуля GameCompetitivenessAnalyzer .. 223
Приложение 28 Программный код модуля GameRecommendationAnalyzer. 236
Приложение 29 Программный код модуля GameRecommendationAnalyzer. 245
Приложение 30 Программный код модуля GameSimilarityAnalyzer ............ 252
Приложение 31 Программный код модуля GameUniqueFeaturesAnalyzer.... 259
Приложение 32 Программный код компонента GameAnalysisForm ............ 266
Приложение 33 Программный код компонента GameIdForm....................... 271
Приложение 34 Программный код компонента GameRatingDisplay ............ 273
Приложение 35 Программный код компонента ResultsDisplay .................... 280
Приложение 36 Программный код компонента SettingsDialog .................... 286
Приложение 37 Программный код тестов модуля FeatureExtractor.............. 293
Приложение 38 Программный код тестов модуля FeatureExtractor для HTML 298
Приложение 39 Программный код тестов модуля GameClusterer ................ 300
Приложение 40 Программный код тестов стабильности GameClusterer...... 302
Приложение 41 Программный код тестов модуляGameCompetitivenessAnalyzer 305
Приложение 42 Программный код тестов обработки пропущенных данных в
GameCompetitivenessAnalyzer ....................................................................... 310
Приложение 43 Программный код тестов модуляGameUniqueFeaturesAnalyzer
Приложение 44 Программный код тестов конвейера анализа игр ............... 323
Приложение 45 Программный код тестов модуля формирования рекомендаций
игр ........................................................................................................... 326
Приложение 46 Программный код тестов компонента GameIdForm........... 332
Приложение 47 Программный код тестов компонента GameAnalysisForm. 335
Приложение 48 Программный код тестов компонента ResultsDisplay......... 339
Приложение 49 Программный код тестов компонента HomePage ............... 343
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Lyadova L. N., Malkova K. M., Timofeev M. V. Архитектура рекомендательной системы, настраиваемой на предметные области // Название сборника конференции. — Город проведения, 2017.
2. Бейзер Б. Тестирование чёрного ящика. Технологии функционального тестирования программного обеспечения и систем.—СПб.: Питер, 2004.—320 с.
3. Документация Django.— (дата обращения: 10.05.2025).
4. Документация Steamworks.—(дата обращения: 08.01.2025).
5. Микони С. В. Теория принятия управленческих решений: учебное пособие для вузов. — 2-е изд. — Город: Издательство, 2022. — 384 с.
всего 77 источников