Skip to content
Go back

Hotstats — Analytics for Heroes of the Storm

By: Florian Vanhee

Hotstats is a replay analysis platform I built with a colleague for our joint master thesis. It focuses on finding meaningful visualizations for team‑based performance in Heroes of the Storm.

View of the application
Overview of a match analysis

Goal

Help players, teams, and analysts understand not just who won, but why: pivotal moments, strategic choices, efficiency gaps, and comparative strengths between both teams.

What Users Can Do

View of the application
User performance overview

Architecture Overview

LayerTechPurpose
FrontendReactUser interface, charts, upload flow
Hosting/Auth/DBFirebase (Firestore + Auth)Serverless delivery, user accounts, replay metadata, caching
Cloud FunctionsFirebase FunctionsOrchestrating replay ingestion & queueing parse jobs
Parsing ServiceFlask (Python)Exposes an API endpoint for replay parse requests
Replay ParsingC# via python.NETUses existing C#/library ecosystem to decode .StormReplay then bridges into Python for post‑processing

Why This Stack?

Parsing Flow

  1. User uploads replay → stored + metadata entry created.
  2. Firebase Function triggers a parse job.
  3. Flask endpoint receives the job, invokes C# parser through python.NET.
  4. Raw events transformed into structured JSON (timeline, team stats, player stats).
  5. Results pushed back to Firestore and flagged as ready.
  6. Frontend subscribes → visualizations update (charts, tables, “moments” timeline).

Visualizations & Metrics

Challenges

Outcomes & Learnings

View of the application
Head-to-head player comparison

Try It / Source

Explore: https://hotstats.be/#overview

First big analytics project combining gameplay domain knowledge with data engineering — and plenty of lessons in designing timelines & visual performance indicators. Thanks to my partner in crime Thibault Hermans for the collaboration!


Share this post on:

Previous Post
Custom-Made ERP for the Construction Sector
Next Post
A journey into voice synthesis — making a bot speak Flemish