Исходный размер 2480x3500

Анализ данных видеоигр: Что делает игру бестселлером?

PROTECT STATUS: not protected

Почему именно видеоигры?

Что продается лучше: шутеры или спортсимы? Wii или PS2? Этот датасет — экономика гейминга в цифрах: $20+ млрд продаж, эволюция платформ, жанровые войны. Wii Sports (82 млн копий) vs нишевые инди — математика успеха Nintendo, Sony, Sega за 30 лет.

Исходный размер 1024x576

«Some characters as Graffiti»

Данные и источники

Я выбрал датасет Video Game Sales из репозитория GyaneshSamanta — 16,000+ записей об играх с 1980-х по 2010-е: Name, Platform, Year, Genre, Global_Sales (миллионы копий). Данные загружаются напрямую: https://raw.githubusercontent.com/GyaneshSamanta/VG-Sales-Data-Analysis/main/vgsales.csv

Типы графиков

Столбчатые (1,2,4): рейтинг платформ, жанров, топ-игр

Линейный (3): эволюция релизов по годам

1. Предобработка данных

Исходный размер 1306x291

2. Стилизация графиков

Параметры: figsize=(10-12,5-6), dpi=100, tight_layout ().

Исходный размер 4000x2000

Палитра

График 1: Топ-10 платформ по количеству игр

Исходный размер 989x490

Анализ графика 1

Что показывает: Сколько игр сделали для каждой консоли (PS2, Wii, Xbox и т. д.).

Что я вижу: Я вижу, что PS2 — абсолютный лидер. На неё сделали больше всего игр — больше 2000 штук! За ней идут портативные DS и мощные PS3. Wii тоже в топе, хотя Nintendo делала меньше игр, но они продавались лучше.

Почему так: PS2 была самой популярной консолью 2000-х. Разработчики бросились делать для неё игры, как на золотую жилу. Больше игр = больше шансов на хит.

Работа кода

  1. plt.figure (figsize=(10, 5)) Что делает: Создаёт пустой холст размером 10 см в ширину, 5 см в высоту. Зачем: Чтобы график не был крошечным или огромным.

  2. df['Platform'].value_counts ().head (10).plot (kind='bar', color='skyblue') Это главная магия — 4 действия в одной строке:

df['Platform'] → Берём колонку «платформы» (PS2, Wii, DS…) .value_counts () → Считаем: PS2=2000, Wii=1200, DS=1100… .head (10) → Берём ТОП-10 (отсекаем хвост) .plot (kind='bar') → Рисуем столбчатую диаграмму color='skyblue' → Красим в голубой Результат: 10 синих столбиков (PS2 самый высокий).

  1. plt.title (…) Что делает: Добавляет заголовок сверху графика.

  2. plt.xlabel (…) и plt.ylabel (…) Что делает: Подписи к оси X (названия платформ) и оси Y (число игр).

  3. plt.tight_layout () Что делает: Подгоняет размеры — заголовок не съезжает, подписи читаемы.

  4. plt.savefig ('games1_platforms.png') Что делает: Сохраняет картинку в файл PNG (размер 10×5 дюймов).

График 2: Мировые продажи по жанрам

Исходный размер 989x490

Анализ графика 2

Что показывает: Сколько всего копий продали игр разных жанров (Action, Sports, Shooter и т. д.).

Что я вижу: Action и Sports — короли продаж! На них приходится почти половина всех денег в индустрии. За ними Platform (типа Mario) и Shooter (Call of Duty). Пазлы и стратегии почти не продаются.

Почему так: Action и спорт нравятся всем — и детям, и взрослым. Это простые и весёлые игры. Пазлы любят только умники, а их мало.

Работа кода

  1. plt.figure (figsize=(10, 5)) Что делает: Создаёт пустой холст 10 см × 5 см. Зачем: Стандартный размер для читаемости.

  2. sales_by_genre = df.groupby ('Genre')['Global_Sales'].sum ().sort_values (ascending=False) Это главная магия — 4 действия в одной строке: df.groupby ('Genre') → Группируем по жанрам (Action, Sports…) ['Global_Sales'].sum () → СЧИТАЕМ ОБЩУЮ СУММУ продаж всех игр жанра .sort_values (ascending=False) → От большего к меньшему (Action № 1) Результат: Action=700млн, Sports=600млн…

  3. sales_by_genre.head (10).plot (kind='bar', color='lightgreen') Что делает: Берёт ТОП-10 жанров → рисует зелёные столбики. Результат: Action самый высокий зелёный столбик.

  4. plt.title (…) Что делает: Заголовок «Совокупные мировые продажи по жанрам».

  5. plt.xlabel ('Жанр') plt.ylabel ('Продажи (млн копий)') Что делает: Подписи осей.

  6. plt.xticks (rotation=45, ha='right') Что делает: Поворачивает названия жанров на 45° (читаемо).

  7. plt.tight_layout () Что делает: Подгоняет всё аккуратно.

  8. plt.savefig ('games2_genre_sales.png') Что делает: Сохраняет зелёную картинку.

График 3: Сколько игр выпускали каждый год

Исходный размер 1189x490

Анализ графика 3

Что показывает: Количество новых игр с 1980-х по 2016 год.

Что я вижу: Огромный рост! В 1985 было 50 игр, а в 2009 — 1500+ игр в год! Пик в 2008–2010 годах, потом спад.

Почему так: 1985 — бум Nintendo (NES). 2008-2010 — золотой век PS3, Xbox 360, Wii + инди-игры. Потом рынок перенасытился, все перешли на мобильники.

Работа кода

  1. plt.figure (figsize=(12, 5)) Что делает: Широкий холст (12 см) для 30+ лет истории. Зачем: Горизонталь для временной линии.

  2. games_per_year = df['Year'].value_counts ().sort_index () Это главная магия — 3 действия: df['Year'] → Берём колонку годы (1985, 2009…) .value_counts () → Считаем: 2009=1500 игр, 1985=50 игр .sort_index () → ПО ПОРЯДКУ ГОДОВ (1985, 1986, 1987…) Результат: Словарь {1985:50, 1986:60, 2009:1500…}

  3. plt.plot (games_per_year.index, games_per_year.values, marker='o', color='coral', linewidth=2) Что делает: index → годы на оси X (1985-2016) values → количество игр на оси Y marker='o' → кружочки на точках linewidth=2 → толстая красная линия Результат: Красная линия растёт экспоненциально!

  4. plt.grid (True, alpha=0.3) Что делает: Полупрозрачная сетка для чтения чисел.

  5. plt.savefig ('games3_evolution.png') Что делает: Сохраняет временную линию.

График 4: Топ-10 игр

Исходный размер 989x590

Анализ графика 4

Что показывает: Какие игры купили больше всего людей в мире.

Что я вижу: Wii Sports — № 1 с 82 миллионами копий! Дальше Mario, GTA, Tetris, Minecraft. Все эти игры простые и для всех возрастов.

Почему так: Wii Sports шла в комплекте с Wii и нравилась бабушкам. Mario — вечная классика Nintendo. GTA — для взрослых. Успех = простота × бренд.

Работа кода

  1. plt.figure (figsize=(10, 6)) Что делает: Холст повыше (6 см) для длинных названий игр.

  2. top_games = df.nlargest (10, 'Global_Sales')[['Name', 'Global_Sales']] Это главная магия — 2 действия: df.nlargest (10, 'Global_Sales') → ТОП-10 по продажам (Wii Sports № 1) [['Name', 'Global_Sales']] → Берём только название + продажи Результат: Таблица Wii Sports=82млн, Mario=40млн…

  3. plt.barh (top_games['Name'], top_games['Global_Sales'], color='gold') Что делает: barh → ГОРИЗОНТАЛЬНЫЕ золотые столбики top_games['Name'] → названия на оси Y top_games['Global_Sales'] → длина столбиков Результат: Wii Sports — самый длинный золотой столбик.

  4. plt.gca ().invert_yaxis () Что делает: Переворачивает ось Y → № 1 (Wii Sports) сверху.

  5. plt.savefig ('games4_top_games.png') Что делает: Сохраняет топ-10 золотую картинку.

Главный вывод для меня

Если я делаю игру в 2025 году:

✅ Делать для PS2-подобной платформы (много пользователей)

✅ Жанр Action или Sports (продастся всем)

✅ Релиз в пик консольного поколения (2008-2010 стиль)

✅ Простая как Wii Sports (бабушка должна играть)

10% игр приносят 80% денег. Я понял: лучше одна простая хитом, чем 10 сложных флопов.

Материалы

Полный код: Google Colab Game Sales Analysis Датасет: 16k игр (URL выше)

Модели: DeepSeek Coder — код (25%) Perplexity AI — анализ (70%) Авторский вклад: 75% кода, структура, игровая интерпретация.

Анализ данных видеоигр: Что делает игру бестселлером?
Проект создан 16.01.2026
Мы используем файлы cookies для улучшения работы сайта НИУ ВШЭ и большего удобства его использования. Более подробную...
Показать больше