Core Dump - Work In Progress
May 6, 1998 : Implementation of difficulty levels
And nice pictures, too!
I decided to explain the way the difficulty system works in Core Dump. First I didn't want to, but I then figured that someone might want to use a similar system. So here goes.
Let's assume for the moment that there is only one type of enemy in the game, let's call it X. It can exist in any zone we want. Now, we want the game to become harder when we play it. Counting the amount of items and the time, or something like that, we can compute a percentage P of how far we've played into the game. Thus, a player starts with P=0%, and will see the enddemo when P=100%.
Enemy X is everywhere on all the maps. But now comes the clever part. When P=0%, only one out of four enemies appears when you play, and when P=100%, they all appear. This is also used for the firing speeds. When P=0%, enemy X will fire every 4 seconds, and when P=100%, enemy X fires every 0.5 seconds. All values in between are computed automatically. The same can be used for jump height, chase speed, etc. etc.
In practice this means that every zone gets harder to play as the player progresses in the game. This means that the difficulty curve is automatically set, and it avoids the problem that Akin had: when you return to an older zone, it is actually harder in Core Dump. In Akin, old zones were far too easy once the player got stronger.
It is somewhat more difficult when many types of enemy are created, but the principle is the same: according to P, the attributes of the enemies are computed, so that they are easy to defeat when P=0%, and very hard to defeat when P=100%.
But this method has even more consequences. It becomes very easy to implement difficulty levels (easy, normal, hard). But that is more difficult to explain.
Let's say we compute the progression factor (which was called P in the previous section) into another variable G (Game progression). This runs from 0% to 100%. Every enemy determines its own difficulty from D (game Difficulty). D is defined as follows:
I even use a statistical method to determine the speeds and such, to scatter the values somewhat. Factors D and G are only adjusted when the player enters a door, because it would be too time-consuming to compute them every time the player picks up an item or bonus.
This method only works when the progression factor G can be computed in a sensible way. So I had to develop a way to relate G to all that stuff with plot lines and such.... pfff! But it turned out quite okay, and it works like a charm in practice. Progress through the game, and it becomes gradually harder!