Many computer games of all genres center on a series of challenges carefully crafted by game designers to vary in difficulty over the course of the game. While designers often have a clear vision for the difficulty of these challenges relative to one another, they generally lack the means to ensure challenges are suitably tailored to the particular abilities of each game player. Challenge tailoring refers to this general problem of matching designer-specified challenges to player capabilities. We developed GameTailor to explore ways artificial intelligence and machine learning could solve the challenge tailoring problem while providing designers with control through a high-level designer specification. Challenge tailoring makes it possible for a single game to cater to broader demographics of potential game players with wider ranges of skills and backgrounds.
GameTailor uses a data-driven appraoch to predicting player performance and selecting content to solve the challenge tailoring problem. We employ a temporal collaborative filtering approach—tensor factorization—that captures similarities among players and the challenges they face and uses these similarities to predict player performance on unseen, future challenges. Designers provide a specification—a performance curve—for how they want player performance to vary over the course of a game. A constraint solving approach then optimizes the match between player performance predictions and the performance curve by selecting appropriate sets of content.
GameTailor was developed in a trial turn-based role-playing game that emphasized players learning how a set of character spells were effective against different types of opponents. We tracked and predicted player performance in matching specific spell types, adapting future sets of enemies to challenge players. Our approach outperformed related collaborative filtering models and scaled to improve as we gathered further data on players or more players. Further, GameTailor was able to adapt to prediction errors as more data was collected, automatically adjusting around biases in available player data.