Understand the playstyle
Archetypes such as teamfight, pickoff, and split-push have counter relationships. These relationships form one part of the evaluation between the selected hero and potential opponents.
MOBILE LEGENDS · iOS APP
Helping players choose counter heroes by understanding an opponent’s playstyle, strengths, and weaknesses, all within a SwiftUI app.


Behind the interface
Two app screens: explore heroes, then understand the recommendations and what contributes to their scores.

The list shows 126 heroes with their roles and playstyles. A search field helps users find the hero they want to analyze.
Open full size : hero list (new tab)
Hero details show traits, weaknesses, and a list of counters with scores and contributing factors. In the Harley example, Franco ranks first with a score of +36.
Open full size : Harley matchup results (new tab)Project context
MLBB Heroes Matchup Decision Support System is a SwiftUI app that helps casual Mobile Legends players choose a hero. Inspired by the habit of making picks based on intuition, the project offers a more structured way to understand relationships between characters.
The system uses a rule-based scoring engine built in Swift. Heroes are evaluated through three main factors: playstyle or archetype, traits, and weaknesses. The relationships between these factors produce counter recommendations that can be explained to users.
Hero data is stored in local JSON files, using online references and input from experienced players as sources. All calculations run on the device, so recommendations do not depend on an external server.
How recommendations work
Each hero selection produces five recommended counters, with transparent scores.
Archetypes such as teamfight, pickoff, and split-push have counter relationships. These relationships form one part of the evaluation between the selected hero and potential opponents.
A candidate’s traits are matched against the target hero’s weaknesses to see how its abilities can exploit them.
Scores are normalized to keep comparisons fair and avoid double counting. Users can see the rankings and the factors contributing to each score.
App foundations
The iOS interface and matchup logic live in one app.