LKchemposer / civ6-graph

Dependency graph for entities in Civ VI game.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

civ6-graph

Binder

New: 3D Network

You can now interact with the graph in 3D, made possible thanks to 3d-force-graph. In the graph, click on the node to focus, and click on the arrow head to fly to the source node (i.e., beginning of the arrow).

Motivation

The Civilization VI game is an awesome but complicated game. As a beginner of the Civ series, I approached learning the game in a slightly different way: by mapping out the entirety (or most of) the static dependencies of entities in the game. The resulting graph has 627 nodes (entities) and 1125 edges (connections). Node types include technologies, civics, building, resources, units, improvements, etc., and edge types include unlocks, boosts (for technologies and civics), upgrades (for units), replaces (for unique units or infrastructure of a specific civilization), etc.

You can also interact with portion of the graph via either the Dash app or the demo notebook in this repo. If you're interested in the data itself, check out the csv files. I also added a graphml file and json file for any graph peeps.

Gephi graph

Data

The dataset was scraped from the Civilization wiki page, but only includes entities in the Vanilla pack (i.e., excluding Gathering Storm and Rise and Fall expansion packs), because I only have the Vanilla pack for the game.

Requirements

I used networkx as the graph backend, igraph for layout (their implementation of the kamada kawai layout is much more visually appealing than networkx's), and plotly for interactive visualization. Ipywidgets is also needed to create in-notebook widgets. Versions are in requirements.txt.

Acknowledgements

About

Dependency graph for entities in Civ VI game.

License:MIT License


Languages

Language:Python 71.4%Language:Jupyter Notebook 25.5%Language:HTML 3.1%