Components

A list of all W3Champions components can be found on our github https://github.com/w3champions and you can see how they are deployed here: https://w3champions.atlassian.net/wiki/spaces/AV/pages/1015819

Name

Docs

Tech

Purpose

Name

Docs

Tech

Purpose

https://github.com/w3champions/matchmaking-service (private)

Typescript, Node, Express, Mongodb

  • Main API for many other components.

  • Sends and Receives data to ingame-client

  • Creates games

  • Runs the matchmaking queue

  • Logs game results

  • communicates with Flo

(private)

 

HTML/CSS/JS, JQuery

  • The in-game UI addon as seen inside reforged.

  • Adds additional functionality to the existing Reforged UI

  • Processes requests from users

  • Provides UI for interacting with W3Champions

  • Handles downloading assets

 

Rust

  • 3rd Party game server implementation for Warcraft 3: Reforged

  • Handles sending and receiving of data packets for Warcraft 3 games.

  • Intercepts data for processing (e.g. save as replay actions, prevent muted players from communicating)

  • Magic

 

Typescript, Vue, Electron

  • Desktop launcher that automatically manages updates and flo connections

  • Checks and Installs version updates

  • Parent process for flo-worker.exe - The entrypoint for flo data transfer

  • Reconfigurable Hotkeys

  • PTR switching

 

Rust/Tauri, React/Typescript

  • Next generation replacement for the launcher and ingame-client

  • Serves both purposes in one desktop application

  • Reduces joinbugs

  • Better support for players

  • Faster than ingame-client

  • Decoupled from Warcraft 3 client

 

.NET, Mongodb

  • Serves content and updates for W3Champions

  • Syncs assets to cloud services

  • Serves map downloads on demand (e.g. when entering a custom game)

  • Serves Launcher updates & checks

 

Typescript, Vue, Vuetify, Chartjs

  • Serves views for Matches, Rankings, Profiles, FAQ

  • Localization for:

  • Admin panel

  • Displays Statistics

 

.NET, Mongodb

  • Serves all content for

  • Logs aggregated results from Matchmaking-service

  • Readmodels for overall statistics

  • Admin functions

 

Rust

  • Provides map parsing data compatible with Flo

  • This enables storing and adding maps to flo dynamically

 

.NET

  • Handles Auth for the website

  • Serves JWTs for website login

  • Handles Blizzard & Twitch 0Auth for the website

  • Defines Admins

(private)

 

Python, FastAPI

  • Serves as a calculator API for complex mathematical functions for matchmaking-service

  • Calculates post-game MMR

  • Calculates team balancing for large team games (4v4 melee, 4v4 LTD, etc)

 

Typescript, , Lua

  • Functions for Warcraft 3 maps, specifically the ones used for W3Champions ladder maps.

  • Automates the injection of scripts via Typescript API

  • Adds -draw, -workercount, -deny etc