Teamfight Tactics Cheat Sheet
Michael Chu, Richard Ho
What is the problem?
The hit game-mode "Teamfight Tactics" from the popular online video game "League of Legends" has a huge knowledge base you have to memorize in order to optimize your decisions as you progress against other players. Since each champion has an origin, a class, and three item slots, many new players feel lost as they aren't familiar with synergies and ideal setups for each champion.
Our solution to this problem was to have the user write queries asking things like: "What is a champion with the same origin as X" or "What champion has the same cost as X".
What is the something extra?
We parsed our database through a JSON API, as well as included a dynamic knowledge base that returns probabilities based on user input.
We decided to include the JSON parser as the "sets" of champions are rotated overtime, and this allows for an easy adaptation of the new knowledge base by just changing the JSON link. This allows the knowledge base to be created dynamically before the program runs any queries.
What did we learn from doing this?
We learned that Prolog is an excellent language for a NLP, making it quite easy to parse sentences into different modular syntax clauses such as adjectives, determiners, and nouns. By passing in a few of these nouns, adjectives, relations, etc, we are able to build many more queries than the amount of clauses we entered.
However, parsing the JSON was not very easy, and would have been much easier to complete in an imperative programming language like Java. We found ourselves spending much more time on this than expected, especially as there seems to be very little information about Prolog available online.
Overall we learned that Prolog is very well made for making a NLP, but being a logic-based programming language, it had its own different set of hurdles along the way that would seem like a no-brainer in imperative programming.