Tools: Python, Figma, Clip Studio Paint, Overleaf, Hitfilm Express
Skills: Programming, UX Research, Video Editing, Paper Writing
For my AI course project in fall 2022, I created an item recommender AI for the item system in Teamfight Tactics (TFT). This not only aligned with the topic of my thesis—AI-supported onboarding in video games—but also was an excuse to examine one of my favourite games in more detail. I've found from personal experience that it's difficult to get my friends to try TFT because of how overwhelming the initial experience is, and I wanted to see if there was a way I could use AI to try and improve it.
The final paper is available to read here. However, since this was a school project I cannot share a public repository of the code. If you would like to view the source code, please reach out to me through the contact info provided on this site.
This course was actually my introduction to AI as a subject overall. Since we had to decide on our course projects near the beginning of the term, and because I had no AI background going in, I decided to focus on one of the algorithms we learned early on: local search. This turned out to be a good choice anyway, since a recommender system doesn't need to provide “optimal” suggestions, only “decent” ones to help steer new players in the right direction.
Goal: Use a local search AI to improve the initial gameplay experience of Teamfight Tactics
After deciding on the “how” portion of the project, I next had to complete the “why”. I performed a small-scale literature review for the related works section of my paper, which then helped me focus the direction of the project into areas such as onboarding, tutorials, and cognitive load. Specifically, I was able to determine that one of the barriers to player retention in games is high cognitive load and low support from the game itself. This, combined with the “training wheels” approach mentioned in the literature, gave me the idea to focus on a single cognitively-demanding system in TFT for the AI recommender: the item system.
This project was developed in Python and uses the tkinter Python package for the GUI. I used Figma to design the GUI before I implemented it, and I used the CommunityDragon website for assets such as the unit and item icons. The complete paper goes into more detail on the specifics of the algorithm and its performance, but for an extremely concise overview, here's the UML diagram and a screenshot of the GUI.
My primary research question was, “Will an AI item recommender system based on local search suggest acceptable item-unit combinations?”. According to the cost function I used in the algorithm, the AI's suggestions had an average cost per unit in all trials with a score below that of a “bad” item. Furthermore, I verified that all individual unit scores above the “bad” item threshold were due to units not having enough items to fill their preferred amount, rather than a unit having a “bad” item. The algorithm did not suggest any “bad” items for a unit during the trials, and I feel it is reasonable to say that the answer to my primary research question is “yes”.
In addition to the paper, I also created a short video explaining the topic of the paper for a general audience. If you want a more unhinged and better-edited look into the design process than this webpage, feel free to give it a watch :)