We’ve all played, and been frustrated by, games that were too difficult for us (Demon’s Souls) or games that were too easy (Smurfs: Rescue In Gargamel’s Castle). In fact, for most games it’s an immense design challenge to create levels that can be enjoyed by both skilled players and noobs. Wouldn’t it be great for a game to automatically modify its levels during play to match the player’s skill?
Some effective dynamic difficulty adjustment techniques have been developed for particular games (SiN Episodes, Left4Dead, Mario Kart), and I aim to add to this tradition with a more structural approach.
Play some level segments online to help me create Polymorph, a Mario-style 2D platformer that alters its levels during play to adjust the difficulty for the individual player!
More discussion ahead…
This online data collection tool presents you with a short computer generated level segment, taking note of the features of the level along with some (anonymous) details about your play behavior. This is stored along with your rating of the level segment’s difficulty. Once you’ve helped me accumulate enough play data, I’ll use statistical learning methods to determine a model of player difficulty in this simple game. Polymorph is being built on top of this difficulty model to detect a player’s performance and dynamically alter the level ahead of the player appropriately.
Of course “what makes a level difficult?” is not an easy question to answer, even in a game as simple as this! There are some aspects of level difficulty, such as sudden changes in a familiar pattern or the addition of a new gameplay mechanic, that Polymorph is not yet ready to understand. But difficulty also certainly comes from the combination of various level components – gaps, spikes, and so on – that require player action. These component combinations are the foundation of the level features recorded by the short level segments you (hopefully!) just played. This will allow Polymorph to update the difficulty of the upcoming level design based on the player’s performance.
Replaying a devastatingly difficult level repeatedly can bring a joy of its own, as can peacefully exploring a nonthreatening environment, but I believe there is merit to the personalized approached of dynamic difficulty adjustment.
A short paper about this project will appear at the Procedural Content Generation workshop at FDG 2010.
EDIT: Thanks to everyone who played some levels! I was able to collect data from over 2000 level playthroughs in just a couple days.
One Comment