Dota 2 Recommender System

This is our team project at NUS. You can try it out here

Authors: Nguyen Khanh Linh, Le Khoi Phong, Pham Thanh Tung, Lim Zhi Yuan


I. Introduction

Dota 2 is a popular multiplayer online battle arena (MOBA) video game, with 6.5m monthly active users, and it is increasingly being played competitively as well as casually. However, the game has also been criticized for its steep learning curve, which is a deterrence for new players to pick up the game.

The authors are long-time fans since the prequel of Dota 2, and they would like to offer a smooth transition experience to the new players (newbies) as well as a good hero guide to experienced players, by developing a Dota 2 Heroes Recommender System. The purpose of devising the Dota 2 Heroes Recommender System is to guide new or inexperienced to moderate-level players on Dota 2 Heroes selection, by recommending a list of suitable heroes.

The Dota 2 Heroes Recommender System encompasses 3 sub-systems- a Rules-Based System developed in CLIPS as the core, a bridge service between the core and front-end developed in Java, and a front-end user interface developed in HTML.

II. Knowledge Modelling

A. Concept Dictionary

The concept dictionary contains definition for various Dota 2 terminology used in our system.

Concept Meaning
Attack Range (Range) Attack range is the range at which a Hero may use his or her basic attack ability on another unit. There are two main subdivisions of attack range: melee and ranged Heroes.
Roles The heroes in Dota 2 are defined by the roles that they are suited to play as a combination of their attributes, skills, and items, and the ways that these shape the game. Although the abilities of heroes may suit a variety of purposes and can be used in a variety of ways in different situations, roles nonetheless exist to define the playstyle a hero is expected to conform to, as well as the actions they are meant to perform within a game.
Carry Carries are the heroes that can obtain the greatest power and utility as the game progresses. (It is so derived from the act being “carried” by a team into the late game; that is, to eventually bear the responsibility for ultimate victory.) They tend to be those who become extremely powerful later in the game as compared to other heroes once they amass enough levels and items.
Support Supports are heroes whose purpose is to keep their allies alive and give them opportunities to earn more gold and experience. Supports will usually come with skills, such as healing spells or skills that disable enemies; and generally have low damage output (but often with a powerful-yet-situational ultimate).
Nuker Nukers are heroes with fast, strong, and/or sustainable spell or magical damage output, whether it be through single-target spells or area-of-effect ones.
Tanker Tankers are heroes with high health points and/or high armor. They can also have skills that enable them withstand and survive huge input of damage.
Pusher Pushers are heroes who focus on bringing down towers quickly, thereby acquiring map control. If they succeed, they often shut down the enemy carry by forcing them away from farming areas.
Jungler Junglers are heroes that can efficiently jungle neutrals at the start of the game, rather than lane. This allows for there to be two solo lanes, which in turn allows two allies to benefit from solo farm instead of one. Junglers typically have skills that allow them to convert neutral creeps, summon minions, or sustain themselves through moderate damage from jungle creeps.
Ganker Gankers are heroes with abilities that deliver long duration crowd control and/or immense damage in the early and midgame. They tend to have good mobility and rely on a mixture of physical and magical damage as well as disables to bring down their enemies.
Melee Melee Heroes usually have an attack range of 128 units. The attack range of a Hero has no actual basis on whether that hero is ranged or not, instead it depends on the hero’s missile speed (melee heroes always having “instant” missile speed while ranged heroes having specific missile speeds).
Ranged Ranged Heroes fire a projectile when they attack, the speed/missile speed of which can affect how long an attack takes to damage a unit.
Difficulty Level Difficulty to play specific hero based on several aspects
Newbie New and inexperienced players.
Experienced Experienced and moderate level players

B. Concept Tree

Based on knowledge elicited, the authors created 3 classification of heroes:

  1. Difficulty level – Classify heroes based on the difficulty to play them.
  2. Roles – Classify heroes based on different roles. A hero can have more than one role.
  3. Range – Classify heroes according to their attack range.


C. Decision Tree

The decision tree shows the decision flow of the Heroes Recommender System. The root node splits the users into newbie and experienced subtrees. The experienced player can choose from all the roles available, while newbie player can only choose from 5 roles: Carry, Support, Nuker, Tanker, Pusher. This is due to certain skills requirement to play Jungler and Ganker roles effectively, hence they are not available for newbies.



III. Task Modelling & Inference Structure

The task of the Heroes Recommender System is of classification type. There are 3 different classes of heroes based on difficulty level, roles and range. The specific attributes of 3 classes are then defined. The difficulty level is based on several aspects that a user needs to master before playing the heroes well. Range is defined by the range of attack. Roles are according to the heroes’ traits and playing style.

After receiving input from the users, classification is done by matching the users’ feature- preference, personality, traits and experience to the attributes of heroes.



IV. System Design & Modelling 

The system architecture is shown in the following diagram.



A total of 107 Heroes with attributes and roles are modelled as facts in CLIPS, whereas the knowledge to match users’ features with attributes and the I/O functions are modelled as rules in CLIPS.

The Rules-Based System (CLIPS) Flow and Algorithm diagram is shown below.


The unique features of the system can be described in the following points:

  • Intelligent- The system is intelligent as it caters towards completely new players as well as experienced players. First it determines whether the user is new or experienced, then it asks different question sets for newbie and experienced players, and splits the heroes pool accordingly.
  • User-friendly interface- The front-end web interface is easy to use, with cool features to attract the attention of new players to Dota 2. The questions are also phrased in laymen terms, so as not to deter the new players.
  • Priority in roles- Role of hero plays an important part in the gameplay, and choosing a role that fits the player is critical. The system places priority in roles based on the personality, traits and preference of user.
  • Additional cool features- Web interface has a trailer video of Dota 2 for new users. The output of heroes do not only contain names, but also the links to the official hero description and stats in Dota 2 website. So that users can continue their exploration of heroes there.

V. Conclusion, Future work & References

The authors have learnt about various techniques and methodology in developing an intelligent system and this project enabled them to implement what they have learnt into practice. Although this project is limited to a Rules-Based System, there are some generic processes which are applicable to other intelligent system, such as knowledge acquisition, knowledge modelling and task modelling. Having gone through the planning, implementation and execution phases deepen their understanding in the aforementioned methodology.

Despite the successful implementation of the Dota 2 Heroes Recommender System, there are some limitations to it. There are some feedback from experienced players which indicate that the list of output heroes are different than what they are good at. Some of the validation of answers/decision-making are being done from the client side, rather than in CLIPS. The system also lacks some features such as suggestion of playstyle with recommended heroes.

Possible improvement and enhancement include implementing a hybrid system with case-based reasoning, machine learning and rules-based to increase the accuracy. The questions for the experienced players have to be further refined and the tree more diversified in order for the system to be more accurate and robust to different combinations for experienced players. The code in Java and CLIPS can be further improved so that the client can read questions directly from CLIPS. Additional features such as playstyle suggestion, heroes statistics and playing guides can be implemented in the system.

  1. Dota 2. Retrieved from Wikipedia:
  2. The Age of Sign-Ups has Ended. Retrieved from Dota 2 Official Blog:
  3. Role. Retrieved from Dota 2 Wiki:
  4. User:Kroocsiogsi/Hero role matrix. Retrieved from Dota 2 Wiki:
  5. Guides: Hero Difficulty. Retrieved from Dota 2 Wiki:
  6. Heroes. Retrieved from Dota 2 Official Blog:
  7. Heroes. Retrieved from Dota Buff:
  8. Iceiceice. Retrieved from Dota 2 Wiki:

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s