Dynamic game difficulty balancing (DGDB), also known as dynamic difficulty adjustment (DDA) or dynamic game balancing (DGB), is the process of automatically changing parameters, scenarios, and behaviors in a video game in real-time, based on the player's ability, in order to avoid making the player bored (if the game is too easy) or frustrated (if it is too hard). The goal of dynamic difficulty balancing is to keep the user interested from the beginning to the end, providing a good level of challenge. Traditionally, game difficulty increases steadily along the course of the game (either in a smooth linear fashion, or through steps represented by levels). The parameters of this increase (rate, frequency, starting levels) can only be modulated at the beginning of the experience by selecting a difficulty level. This often leads to frustrating experiences for players as they attempt to follow premade learning or difficulty curves, which poses many challenges for game developers; as a result, this method of difficulty scaling is not ubiquitous. Some elements of a game that might be changed via dynamic difficulty balancing include: Speed of enemies Health of enemies Frequency of enemies Frequency of powerups Power of player Power of enemies Duration of gameplay experience [A]s players work with a game, their scores should reflect steady improvement. Beginners should be able to make some progress, intermediate people should get intermediate scores, and experienced players should get high scores ... Ideally, the progression is automatic; players start at the beginner's level and the advanced features are brought in as the computer recognizes proficient play. Different approaches are found in the literature to address dynamic game difficulty balancing. In all cases, it is necessary to measure, implicitly or explicitly, the difficulty the user is facing at a given moment. This measure can be performed by a heuristic function, which some authors call "challenge function".