Network analysis of Steam video game genres over time, exploring how game genres co-occur and evolve across different eras of gaming.
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.
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)
- Python 3.9+
- Gephi 0.10+ - Download from gephi.org
- Jupyter Notebook or JupyterLab
pip install -r requirements.txtKey libraries:
- pandas, numpy - Data manipulation
- networkx - Network construction and analysis
- matplotlib, seaborn - Visualization
- scikit-learn - Machine learning/regression
-
Clone the repository:
git clone https://github.com/yourusername/Game-Genre-Network-Analysis.git cd Game-Genre-Network-Analysis -
Create a virtual environment (recommended):
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Install Gephi from gephi.org for network visualization.
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
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
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
Run notebooks/03_regression_analysis.ipynb:
- Feature engineering from game metadata
- Train regression models (Ridge, Random Forest)
- Evaluate model performance
- Analyze feature importance
- Open Gephi and import GEXF files from
networks/ - Apply layouts:
- ForceAtlas2 for genre networks
- Fruchterman-Reingold for bipartite networks
- Compute network statistics:
- Degree centrality
- Betweenness centrality
- Clustering coefficient
- Modularity (community detection)
- Style nodes by centrality/community
- Export visualizations to
outputs/visuals/
| 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 |
- 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
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
- Ensure all data files are in
data/raw/ - Run notebooks in order:
01_→02_→03_ - Import generated GEXF files into Gephi
- Load Gephi project files from
gephi/projects/to see pre-configured analyses
MIT License - see LICENSE for details.
Subash Pandey
- Steam data sourced from public APIs and datasets
- Network analysis powered by NetworkX and Gephi