Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Game Genre Network Analysis

Network analysis of Steam video game genres over time, exploring how game genres co-occur and evolve across different eras of gaming.

Overview

This project analyzes the Steam video game catalog to understand:

  • Genre co-occurrence patterns: Which game genres tend to appear together
  • Temporal evolution: How genre relationships have changed from 1995 to 2015+
  • Network metrics: Centrality, clustering, and community structure of genre networks
  • Predictive modeling: Regression analysis to understand factors influencing game success

The analysis combines Python-based data processing with Gephi for advanced network visualization.

Data Sources

The analysis uses Steam video game data containing:

  • Game metadata (name, release date, developer, publisher)
  • Genre classifications
  • User ratings and playtime statistics
  • Platform and pricing information

Primary datasets:

  • steam.csv - Main Steam games dataset (~27,000 games)
  • genres.csv - Expanded genre information (~76,000 records)

Requirements

Software

  • Python 3.9+
  • Gephi 0.10+ - Download from gephi.org
  • Jupyter Notebook or JupyterLab

Python Dependencies

pip install -r requirements.txt

Key libraries:

  • pandas, numpy - Data manipulation
  • networkx - Network construction and analysis
  • matplotlib, seaborn - Visualization
  • scikit-learn - Machine learning/regression

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/Game-Genre-Network-Analysis.git
    cd Game-Genre-Network-Analysis
  2. Create a virtual environment (recommended):

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
  3. Install dependencies:

    pip install -r requirements.txt
  4. Install Gephi from gephi.org for network visualization.

Project Structure

Game-Genre-Network-Analysis/
├── README.md
├── LICENSE
├── requirements.txt
├── .gitignore
│
├── data/
│   ├── raw/                    # Original datasets
│   │   ├── steam.csv
│   │   └── genres.csv
│   └── processed/              # Cleaned/transformed data
│       └── genres-fixed.csv
│
├── notebooks/
│   ├── 01_data_exploration.ipynb      # Data cleaning and EDA
│   ├── 02_network_construction.ipynb  # Network building and analysis
│   └── 03_regression_analysis.ipynb   # Predictive modeling
│
├── networks/
│   ├── genre_networks/         # Genre-to-genre networks
│   │   ├── genres.gexf
│   │   ├── genres-fixed.gexf
│   │   └── genre_attributes.gexf
│   ├── bipartite/              # Game-genre bipartite networks
│   │   ├── steam_bipartite.gexf
│   │   ├── steam_bipartite-fixed.gexf
│   │   └── filtered_bipartite.gexf
│   └── temporal/               # Time-sliced networks
│       ├── 95_steam.gexf       # 1995
│       ├── 00_steam.gexf       # 2000
│       ├── 05_steam.gexf       # 2005
│       ├── 10_steam.gexf       # 2010
│       ├── 15_steam.gexf       # 2015
│       └── 95_05_steam.gexf    # 1995-2005 combined
│
├── gephi/
│   └── projects/               # Gephi project files
│       ├── Main.gephi          # Primary genre network analysis
│       ├── bipartite.gephi     # Game-genre bipartite analysis
│       ├── GenreEvolution.gephi    # Temporal analysis
│       ├── SteamEvolution.gephi    # Steam catalog evolution
│       ├── GenreAttributes.gephi   # Genre with node attributes
│       └── try.gephi           # Experimental workspace
│
└── outputs/
    ├── figures/                # Generated visualizations
    ├── visuals/                # Publication-ready exports
    ├── gephi_metrics/          # Gephi-computed metrics
    └── clustering_coeff/       # Clustering analysis reports

Workflow

Step 1: Data Exploration and Preprocessing (Python)

Run notebooks/01_data_exploration.ipynb:

  • Load and clean the Steam games dataset
  • Parse genre information
  • Handle missing values and data quality issues
  • Compute basic statistics

Step 2: Network Construction (Python)

Run notebooks/02_network_construction.ipynb:

  • Build genre co-occurrence networks
  • Create bipartite game-genre networks
  • Generate time-sliced networks for temporal analysis
  • Export networks as GEXF files for Gephi

Step 3: Regression Analysis (Python)

Run notebooks/03_regression_analysis.ipynb:

  • Feature engineering from game metadata
  • Train regression models (Ridge, Random Forest)
  • Evaluate model performance
  • Analyze feature importance

Step 4: Network Visualization (Gephi)

  1. Open Gephi and import GEXF files from networks/
  2. Apply layouts:
    • ForceAtlas2 for genre networks
    • Fruchterman-Reingold for bipartite networks
  3. Compute network statistics:
    • Degree centrality
    • Betweenness centrality
    • Clustering coefficient
    • Modularity (community detection)
  4. Style nodes by centrality/community
  5. Export visualizations to outputs/visuals/

Gephi Projects

Project Description
Main.gephi Primary genre co-occurrence network with community detection
bipartite.gephi Game-genre bipartite network showing connections
GenreEvolution.gephi Temporal analysis of genre relationships
SteamEvolution.gephi Evolution of the Steam catalog over time
GenreAttributes.gephi Genre network with additional node attributes

Key Findings

  • Action and Indie genres are the most central in the network
  • Strong clustering between related genres (e.g., RPG-Adventure, FPS-Action)
  • Genre diversity has increased significantly from 2005 onwards
  • Community detection reveals distinct genre clusters

Network Metrics

The analysis computes:

  • Degree Centrality: Most connected genres
  • Betweenness Centrality: Genres that bridge different clusters
  • Closeness Centrality: How quickly a genre can "reach" others
  • Clustering Coefficient: Local clustering patterns
  • Modularity: Community structure

Reproducing the Analysis

  1. Ensure all data files are in data/raw/
  2. Run notebooks in order: 01_02_03_
  3. Import generated GEXF files into Gephi
  4. Load Gephi project files from gephi/projects/ to see pre-configured analyses

License

MIT License - see LICENSE for details.

Author

Subash Pandey

Acknowledgments

  • Steam data sourced from public APIs and datasets
  • Network analysis powered by NetworkX and Gephi

About

Network Analysis of Steam Video Game Genres over the years.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages