Original size 1140x1600

Анализ популярности персонажей в D&D

PROTECT STATUS: not protected
The project is taking part in the competition

Описание проекта

Dungeons & Dragons — настольно-ролевая игра в жанре фэнтези, с каждым годом лишь набирающая популярность. Механика игры во многом полагается на различные вычисления. Успех того или иного действия зависит от броска дайсов + характеристик персонажа + бонусов умений.

Цель данного проекта: проанализировать, на основе чего игроки выбирают расу и класс для своих персонажей, выявить популярные комбинации и их возможное влияние на характеристики и ход игры.

Выбранные данные и их источник

Для поиска необходимых датасетов я использовала два репозитория данных — kaggle.com и github.com, где нашла два подходящих датасета, основанных на данных с сайта DnD Beyond.

Оба датасета включают в себя основные характеристики для создания персонажа: Раса (Race), Класс (Class), Архетип (Archetype) или Подкласс (Subclass), Уровень (Level), Характеристики (Strength, Dexterity, Constitution, Intelligence, Wisdom, Charisma), Предыстория (Background), Мировоззрение (Alignment). Я остановилась на датасете dnddata, включающем в себя данные об около 8000 персонажах.

Почему именно этот датасет? Анализ данных о персонажах позволяет выявить закономерности в их выборе и понять психологию игроков, ответив сразу на несколько вопросов: - Какие расы и классы самые популярные? Какие из них идеально сочетаются друг с другом? - Любят ли игроки необычные комбинации или придерживаются классики (например, человек-воин)? - Как выбирают характеристики: для лучшего результата (min-maxing) или для лучшего отыгрыша?

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

Стилизация

«Книга игрока» и «Руководство мастера»

Визуальный стиль основан на оформлении официальных книг по Dungeons & Dragons. Светлый фон, напоминающий пергамент, темно-красные заголовки, светло-зеленый в таблицах:

bg_color = '#F5E9D6' bar_color = '#C6D09E' title_color = '#8B0000' text_color = '#2E2F27'

0

Страницы из «Player’s Handbook»

Также, для каждого из 12 основных классов я задала индивидуальный цвет:

class_palette = { 'Barbarian': '#E7623E', 'Bard': '#AB6DAC', 'Cleric': '#91A1B2', 'Druid': '#7A853B', 'Fighter': '#7F513E', 'Monk': '#51A5C5', 'Paladin': '#859E54', 'Ranger': '#507F62', 'Rogue': '#555752', 'Sorcerer': '#8C2B2B', 'Warlock': '#834EA6', 'Wizard': '#2A50A1', }

Original size 1652x1244

Этапы работы

Для работы с данными сначала я загрузила необходимые библиотеки и датасет, установила цветовую палитру, а затем приступила к предварительной обработке данных (заполнение пропущенных значений, фильтрация).

import pandas as pd import numpy as np import matplotlib.pyplot as plt

df = pd.read_csv ('dnd_characters.csv', sep=', ')

bg_color = '#F5E9D6' bar_color = '#C6D09E' title_color = '#8B0000' text_color = '#2E2F27'

df['race'] = df['race'].fillna ('Unknown') df['justClass'] = df['justClass'].fillna ('Unknown')

Original size 852x413

В датасете содержится информация об около 8000 персонажей, что слишком сложно для восприятия. Я решила отфильтровать данные, оставив только основные расы и классы; мультиклассы разделила, оставив только первый класс.

0

Столбчатая диаграмма показывает частотное распределение. Люди (Human) доминируют, в том числе за счет их универсальности в сеттингах. Второе место занимают Эльфы (Half-Elf, Wood Elf), а третье — Драконорожденные (Dragonborn), чего я не ожидала.

0

Плуты (Rogue) и Воины (Fighter) являются наиболее распространенными, что говорит о популярности маневренных и боевых архетипов.

0

На этом графике наглядно показан отрыв топ-3 классов Воина, Плута и Жреца. Остальные же классы распределены примерно одинаково, наименее популярный — Колдун (Warlock). Результаты этого графика меня немного удивили: я думала, что Волшебник (Wizard) будет популярнее Жреца (Chleric), но он делит одно место со Следопытом (Ranger), которого я считала одним из наименее популярных классов.

0

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

Original size 1522x1154

Этот график объясняет базовые архетипы классов. Он показывает, что основная характеристика Плута (Rogue) — Ловкость, в то время как Паладин (Paladin) заточен под Силу. В целом, нет ярко выраженного мин-максерства (mix-maxing), при котором прокачивают только ключевые характеристики, минимизируя или игнорируя менее значимые, что ведет к дисбалансу.

0

Дополнительно: вывод статистики

print (f"Всего персонажей: {len (df)}») print (f"Уникальных рас: {df['race'].nunique ()}») print (f"Уникальных классов: {df['primary_class'].nunique ()}») print (f"Самые популярные расы: {', '.join (race_counts.head (5).index.tolist ())}») print (f"Самые популярные классы: {', '.join (class_counts.head (5).index.tolist ())}»)

Всего персонажей: 10894 Уникальных рас: 320 Уникальных классов: 20 Самые популярные расы: Human, Half-Elf, Wood Elf, Dragonborn, Tiefling Самые популярные классы: Fighter, Rogue, Cleric, Barbarian, Paladin

Вывод

- Соотношение популярности классов соответствует классическим архетипам фэнтези - Высокий процент выбора расы людей отражает их гибкость в создании персонажа - Стереотипные комбинации: Человек-Воин подтверждает традиционные архетипы - Между выбором расы и класса есть взаимосвязь: некоторые комбинации идеально дополняют друг друга

Используемые статистические методы

- Визуализация распределения: тепловая карта, столбчатая диаграмма, круговая диаграмма, радарная диаграмма.

- Частотный анализ: подсчет количества персонажей по расам и классам

- Процентное распределение: доля каждого класса от общего числа персонажей

- Процентное соотношение: анализ доли каждого элемента в общей выборке

- Ранжирование: определение топ-N элементов по популярности

Описание применения генеративной модели

В данном проекте использовались нейросети ChatGPT и DeepSeek для генерации и/или доработки кода, помощи в анализе данных.