GameDifficultyEngine

AKA "dynamic difficulty"

Create a means for games to get less difficult either the longer that one plays them or the more times that the player tries to get through a stage. (This would provide a greater probability of game completion to less skilled players such as myself.)

Note that this would firstly be applied to merely stats boosting/reducing (say, defense/attack points of enemies), but with generated dungeons and puzzles, difficulty levels given by such an engine could prove to be a solid factor.

Dynamics

Level-to-level difficulty inheritance somewhat makes sense, especially if the player was just playing at a difficulty level of 2/10 in one level and it's unlikely that they could play at a higher level in the following level; but this does assume that difficulty levels are of homogenous utility, when in fact more factors may be at play — say, for instance, the following level is actually designed somewhat easier than the preceding level, so to maintain the difficulty level from the preceding level would make it even less difficult than in the previous level. (This assumes a form of difficulty * level)

Cross-level averaging: This would allow for difficulty levels to go up or down over time and provide somewhat of an incentive to player to improve their skills.

Skill (coping with difficulty level) transparency

Seeing graphs of degree to which the user copes with the difficulty levels could let the player feel/see that they're improving as a player

User toggles

The user might want to try to raise their competency (skill?), so allowing them to re-do levels or parts thereof given higher difficulty settings may be useful.

Online stats

Could provide an incentive for leaderboards to be opened up, for difficulty levels to be measured in a relative fashion

Could allow for developers to tweak difficulty levels according to how long/how many times it takes a player to get through an area