Winrates per map vergelijken
Door Mike Dalton ·
In een game waarin twee kanten een verschillende rol hebben, zoals aanval en verdediging, is een map in balans als elke kant ongeveer de helft van de matches op die map wint. Een map waarop één kant veel vaker wint, is een map die je moet aanpassen.
Om te laten zien hoe dat eruitziet, hebben we een voorbeeld-teamshooter opgezet met vijf maps en 1600 matches verdeeld over twee versies, 1.0.0 en 1.1.0. In versie 1.0.0 bevoordeelt een map genaamd Foundry de aanvallende kant. Versie 1.1.0 past Foundry aan om dat op te lossen.
Stap 1: kies een token
Matchresultaten kunnen uit de gameclient komen of van een matchserver die je zelf beheert. Gebruik een server-token als een server ze verstuurt, of een client-token als de gameclient dat doet. Maak het token aan bij Instellingen > API-tokens, waar je ook je account-id vindt.
De voorbeelden hieronder gebruiken curl met beide waarden in omgevingsvariabelen:
export GAMESTATS_TOKEN=your_api_token
export ACCOUNT_ID=your_account_id
Stap 2: stuur elke match met de map en de uitslag
Stuur een match na afloop naar het matches-endpoint met twee matchattributen: map, de naam van de map, en attack_win, dat 1 is als de aanvallende kant won en 0 als de verdedigende kant won:
curl -i -X POST "https://gamestats.ai/api/v1/accounts/$ACCOUNT_ID/matches" \
-H "Authorization: Bearer $GAMESTATS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"external_id": "match_100_0007",
"version_name": "1.0.0",
"match_at": "2026-09-20T21:33:56Z",
"match_attributes": {"map": "Foundry", "attack_win": 1},
"match_players": [
{"username": "player_99d"},
{"username": "player_ef6"},
{"username": "player_cd3"},
{"username": "player_bc2"},
{"username": "player_55b"},
{"username": "player_559"}
]
}'
Een 201-antwoord betekent dat de match is geaccepteerd. Spelers en versies worden aangemaakt zodra ze voor het eerst voorkomen. De external_id identificeert de match, dus als je dezelfde match opnieuw stuurt, wordt hij bijgewerkt in plaats van twee keer geteld.
Stuur map en attack_win mee in de match_attributes van de match, niet bij de spelers, omdat ze de hele match beschrijven. Een rapport dat groepeert op een matchattribuut kan in zijn metrieken alleen matchattributen gebruiken. Een winwaarde per speler zou hier ook niet helpen: bij teams van gelijke grootte wint één team elke match, dus het gemiddelde over alle spelers is op elke map 50%.
Het gemiddelde van attack_win over de matches op een map is het aandeel van die matches dat de aanvallende kant won.
Stap 3: bouw een attribuutrapport
Kies bij Rapporten > Nieuw rapport voor Attribuutrapport. Zet Type op Map Attribute, zet Attribuutbron op Match en geef het rapport een label:


Voeg daarna drie wedstrijdmetrieken toe:
| Metriektype | Attribuut | Label | Getalnotatie |
|---|---|---|---|
| Gemiddelde | attack_win | Attack Win Rate | Percentage |
| Percentage van totaal | Geen | Play Share | Percentage |
| Telling | Geen | Matches | Ongeformatteerd |
Voeg Attack Win Rate als eerste toe: de grafiek van het rapport toont de eerste metriek. Zet de precisie op 1 en vink Gebruiken om te sorteren aan, zodat de map waarop aanvallers het vaakst winnen bovenaan staat:


Percentage van totaal en Telling hebben geen attribuut nodig. In een rapport met Match als attribuutbron is Play Share het aandeel van alle matches dat op elke map is gespeeld, en Matches het aantal matches op elke map.
Stap 4: vind de map die uit balans is
Kies versie 1.0.0 in de filters van het rapport:


In de voorbeeldgame winnen aanvallers 68.1% van de matches op Foundry, terwijl alle andere maps tussen 50.5% en 53.3% zitten. Elke match in het voorbeeld heeft een winnaar, dus verdedigers winnen op Foundry de overige 31.9%.
Play Share laat zien dat dit geen map is die spelers weinig zien: Foundry is 20.4% van alle matches in 1.0.0, ongeveer één op de vijf.
Stap 5: controleer de oplossing in de volgende versie
Het rapport opent gefilterd op je nieuwste versie, en elke waarde laat zien hoeveel die is veranderd ten opzichte van de vorige versie:


De winrate voor de aanval op Foundry daalde 17.2 punten naar 50.9%, en alle maps zitten nu tussen 47.6% en 52.5%.
Houd rekening met de steekproefgrootte. Elke map heeft tussen 122 en 218 matches per versie, dus een verandering van een paar punten, zoals de daling van 4.0 punten bij Canyon, kan toeval zijn. Een grote verandering zoals bij Foundry is een duidelijker signaal. Een game balanceren met data laat zien hoeveel matches je nodig hebt voordat een verandering zich onderscheidt van ruis.
Dezelfde aanpak werkt voor elke uitslag die je als 1 of 0 kunt vastleggen. Winrates per personage bijhouden in een vechtgame gebruikt die om personages te vergelijken.