Project:Blue Room is designed as an experiment to measure player skill. If we know a player's skill, we can adapt the game's difficulty to match. To do this, we need to be able to control the game's difficulty with precision. Half-Life 2's original code gives three difficulties: Easy, Medium and Hard. This doesn't give us much leeway - a player struggling on Medium may find Easy a walk in the park.
Choosing a Difficulty
To help us with this, we modified the game to allow for an arbitrary number between 0 and 1.0 to be selected (which we present to players as a percentage). A difficulty of 0 is really easy, and 1.0 (100%) the hardest. This means we can pick difficulties at much smaller intervals, giving us greater control in our experiments:
Because the difficulty system in Project:Blue Room is based on the Source engine's, there is some association between the two. 50% difficulty was designed to be similar to Medium, and Easy is equivalent to about 20% difficulty. The main difference between the two (other than the greater control), and one of the main requirements for our experiment, is there is a much greater range of difficulties. Some players of Half-Life 2 games found Hard to be less than challenging at times, and Easy could still challenge beginners. We wanted much greater flexibility in our game. Which meant hard had to be really hard, and easy should be forgiving to your average grandma.
So we made it like that. We developed it so that 100% difficulty really required some thought and some experience of the game. Taking damage was something you had to avoid, unused health packs became something you carried around, and ammo was barely enough to kill what you had to. Conversely, 0% difficulty was a breeze to anyone who has played Half-Life 2 before. You could still beat the game if you fired all your bullets at the wall and then stood in front of a firing squad.
Every new game in Project:Blue Room is assigned one of these random difficulties, and it could be anywhere between excruciatingly easy and painfully hard. So if you're struggling, or you're bored, start a new game and try it again. That's what this experiment is all about!
Most of the game mechanics we used to alter the game difficulty were the same as those in the original game, (e.g. damage dealt and damage taken). However, we had to adapt it to cope with our continuous values of difficulty. In Half-Life 2, for instance, the player takes half as much damage on Easy as Medium, and 1.5 times as much on Hard. Project:Blue Room uses equations so that any value of difficulty can be assigned a scaling factor:
The biggest addition to the engine, however, was level adaptability. The original game uses easy things to modify the difficulty - ammo, damage taken, extra grenades. We made the level change according to the difficulty. Rather simple things for the most part, like removing crates, or changing which enemies spawn, but this was done more as a proof of concept, and has great potential for other, Source-based games.
The Potential of Project:Blue Room
The next phase of the project is to pick these difficulties for players automatically. So our poor players don't have to walk away frustrated and feeling inferior, or that we designed a game not worth their time. So version 2 will incorporate some dynamic difficulty adjustment (still no difficulty selection!)
After the project is complete, I do intend to re-release the game with the difficulty options open for players to select as they wish. So if players want to see what it's like to play the game on the hardest or easiest difficulties, they can. I also hope to release the source code, so other games can take advantage of the difficulty system we implemented (and improve it).