← Back

What makes you vulnerable?

  • thesis
  • data
  • visualisation
  • esports

With the basics of the implementation done, it’s time to implement some of the more advanced functionality. The former state of the application contained visualisations about the gold and damage. These statistics don’t need processing, they are directly available in the data updates themselves. The information in the proposed vulnerability and jungle pathing visualisations however, needs to be determined in some way based on the data updates as they are not directly given. In this blog post, I’ll go over the used vulnerability formula while the next one will go into detail about how the jungle pathing is tracked.

Vulnerability

Devising a formula that captures the vulnerability of a player truthfully based on the available data is probably challenging. While designing the prototype I already figured out what factors should be taken into account: availability of the summoner spells, health, positioning, defensive statistics and mana. Not all of these factors are just as significant though so I weighted them in the following manner:

The availability of summoner spells was considered the most important with the reasoning that one can still use flash for instance to escape a situation with low health, mana or inferior positioning. Health and positioning were given equal weights, as were defensive statistics and mana. Let’s see how these vulnerability scores for the different factors are measured.

Every (possibly defensive) summoner spell is attributed a score, the higher the score, the more value the summoner spell has for an escape.

These scores are summed up for every summoner spell that is still available.

From there on, the vulnerability score for the summoner spells is determined with a negative linear dependency. Only a player with both flash and cleanse available can attain a vulnerability score of 0 for this factor. Failing to pick any summoner spells with a defensive use automatically results in a vulnerability score of 1.

Health has to be dealt with in a different way since it scales throughout the game and with the acquisition of health granting items. It also has a relative aspect, players tend to focus the player with the least health on the enemy team. Therefore the current health scaled to the highest maximum health over all the players, regulates this factor’s vulnerability.

Positioning is by far the hardest one to construct a formula for. The simplest way to take positioning into account is to average the distance to all enemy players and ally players and let these averages tip the balance the right way. The averages are scaled to the maximum possible distance players can be removed from each other on the map.

Defensive statistics are similar to the health case above. There’s also a relative scaling to all the players but for the movement speed, only enemy players are taken into account. Armor and magic resist are given the largest weights while crowd control reduction and movement speed influence the factor’s vulnerability in a lesser way.

Only a severe lack of mana that prevents one from using a (possibly defensive) ability can cause the vulnerability of a player to go up. To that end, the vulnerability for this factor is determined again with a negative linear dependency but only if a player’s mana drops below 200. This score is fixed to 0 for champions that don’t need mana for their abilities.

A likely problem with this way of working is that the factors can’t influence each other. The overall vulnerability formula is linear in the vulnerabilities for the different factors. A player with extraordinary defensive statistics and full health isn’t as vulnerable to their positioning as an ADC is for instance. A nonlinear equation could take these kind of situations into account. The evaluations will have to point out if the more simple, linear approach is sufficient to estimate the vulnerabilities.

© 2021-2024