Dungeon Keeper

Dungeon Keeper screenshot (VGA).

What is it?
A strategy game that is basically an inverted RPG, 1997, DOS and Windows. This game is from the United Kingdom.
What computer or emulator will it run on?
A Pentium, if you want 640×400 it shouldn't be too slow.
Tags
3D, AWE32, Gravis Ultrasound.

It had lots of things wrong with it. Too many icons. Too many game mechanics that were just wrong. It ended up being too dependent upon little bits that were supposed to be there as jokes. In the end I didn't feel as proud about it as I had hoped. It was good, but it had that one mechanic where you could pick up monsters anywhere. It would have taken ten minutes to change and the game would have been a million times better.

A strategy game that is basically an inverted RPG. You are in charge of the dungeon and have to fend off the heroes coming down. Often, unfortunately, you have to fight rival keepers instead, like in all those real time strategies out there. There was a sequel, Dungeon Keeper 2, after Peter Molyneux had already left Bullfrog.

Technical Stuff

DOS vs. Windows

Dungeon Keeper comes in a DOS and in a Windows 95 version. Both will always be present on any CD. In general the Windows version has the reputation of being less reliable than the DOS version. From my personal experience, I can confirm this. The first time I tried to play it (on a Pentium II 333MHz with Windows 98) it installed fine, but then the game locked up each time after the intro.

Later I tried it again it on an 1100MHz Duron, still with Windows 98. This time, it would both install and play, but there was some erratic behavior. Sometimes when I moved my mouse the game wouldn't stop scrolling till I was somewhere at the edge of the map, and I couldn't go back, or even exit the game correctly.

Much later again I tried to install it on a Sempron 3000+ with XP SP1. First I got a severe warning that Dungeon Keeper requires Windows 95 or NT 4 or better. This was fixed by running the setup in compatibility mode. The game itself would start fine, but lock up again after the intro, just like in the good old days.

System Requirements

While officially a Pentium 90 is required, the game has been reported to run well on a 486 DX4 100. Only the opening movie was seriously affected, Lynn J. Alford, the Programmer in Black, says in her review. Dungeon Keeper can run in VGA mode or at 640×400, the first is default for the DOS, the latter for the Win95 version, but you can change resolution in both versions with Alt-R. A Pentium 133 and 32 MB RAM is recommended for SVGA mode. I have played it on a Pentium 120 (which is more than 10% slower than a 133) with 48 MB RAM, and it played nicely. Only in bigger battles there was a noticeable slowdown, but not enough to spoil the fun in any way. Still I suppose for absolutely smooth gameplay in high resolution a Pentium II would be best.

Sound and Music

Dungeon Keeper uses Redbook Audio (CD music). At least some collection compilators did not include the music tracks. I have one such CD, so I don't know anything about the music. You can put any audio CD into the drive, and the game will play it.

Sound consists of speech (40 wav files in the ATLAS subdirectory for the introductions and conclusions of the 20 levels, and a 11MB SPEECH.DAT for the in-game messages) and sound effects (23MB SOUND.DAT). For these, Dungeon Keeper supports an impressive list of soundcards:

Additionally the game has an AWE32 MIDI driver and three custom soundbanks (ATMOS1.SBK, ATMOS2.SBK, BULLFROG.SBK) of about 1.5MB in total. So obviously, if you have an AWE32, the most common sound effects are loaded into the card's memory and played from there. This should provide a small performance boost.

Playing without the CD

The install process basically copies most of the KEEPER directory structure to the hard drive. For those files that come in several language versions it picks the appropriate one. After installation, copy any missing files to your harddrive; you only need the subdirectories DATA, LDATA, LEVELS, and SOUND. Then, edit the INSTALL_PATH in the KEEPER.CFG to point to the game directory. If, for example, you installed the game to C:\KEEPER, that's what the INSTALL_PATH should read.

That's all. No need for FakeCD or even a SUBST command. The total size of the KEEPER directory is just below 150MB. You can reduce it further by deleting the INTROMIX.SMK file in the LDATA subdirectory (about 24MB). This is the intro movie, which is fun to watch once, but not repeatedly. The game won't throw an error if it doesn't find it.

Hints

Sacrfices

The only thing really undocumented in the game is what to sacrifice in the temple and what not:

GOOD SACRIFICES

Fly + Spider                        Warlock
Beetle + Spider                     Dark Mistress
3 Spiders                           Bile Demon (higher level if more?)
Bile Demon + Dark Mistress + Troll  Horned Reaper

Imps             Reduces the cost to create more Imps.

2 Beetles        Completes whatever is currently being built.
2 Flies          Completes whatever is currently being researched.


BAD SACRIFICES

Chickens, Ghost  All chickens explode.
2 Bile Demons    Turns your monsters into chickens.
Horned Reaper    Makes all of your monsters angry.
Vampires         All of your monsters will be diseased.

Money            Funny quote (try it, it's harmless).

More can be found on the Cheat Page of Thanatos' Dungeon Keeper Realm. Of course, this isn't a cheat.

Cheats

I found some cheats listed on various webpages, but could get none of them to work. Pressing Enter on the keypad is supposed to bring up a cheat menu. This is a particularily complicated one that is reported a lot:

Here's a real complicated one… ok? First, grab a chicken drop it in your treasure room. Pick it up and drop it in your lair. Pick it up once again and drop it in your training room. Pick it up again and put it in your hatchery. Pick the SAME one up and place it in your library. Now it is invincible. Put it as close to lava as you can get and let it wander in. If it doesn't, then get another and do the stuff over again. Now, smack it (don't worry, it is totally invicible). After doing this, posess it. It is your invincible, super powered chicken. Now you can control it around, and it has lots of randomly generated abilities.

Easter Eggs

There are many easter eggs in the game. They are usually triggered by the system date. On January 13, for example, you will get a "Happy Birthday Mark Healey" message after the intro movie. On days with a full moon, you get an extra level. Of course, you could simply set your computer clock accordingly to get it. Try 1997-07-20. 2003-01-17 should work too.

Enmities

Some creatures just do not get along well with certain others. They will start fighting if they are together too long. This list is not necessarily complete:

On levels where you know you will be confronted with this problem a lot (mostly the later levels) you should build seperate accomodations (lair, hatchery, training room, if possible treasury) right away. They should not be too close together, so that the creatures are likely to stay in their quarters.

Modding

Dungeon Keeper stores most of the data as comma-seperated values in standard text files, even with the extension TXT. The CREATURES.TXT in the DATA directory stores not only the stats for the creatures, but also things like the amount of gold per gold block. In the LEVELS there is a similar file for each level.

The following info is taken verbatim from Daves Dungeon Keeper Site, that unfortunately went down some time between August 2006 and July 2007. The author's name is, I think, Dave Bywaters. It explains the entries in the level files:

SET_GENERATE_SPEED(XXX)
This number is the amount of time between each creature coming through the Portal. Making the number larger means creatures will come through less often while making it smaller makes them come in more often.
NOTE: This is a global setting for all portals and cannot be changed for each player.
MAX_CREATURES(PLAYERX,XX)
This controls the maximum amount of creatures a player can have. Players can gain more by torturing or scavenging, but no more will come through the portal once this number is reached.
START_MONEY(PLAYERX,XXXXX)
This is the amount of money a player starts with.
ADD_CREATURE_TO_POOL(CREATURE_NAME,XX)
This is the amount of creatures that are to be shared out between each keeper.
NOTE: The creatures do not go back into the Pool once they die.
CREATURE_AVAILABLE(PLAYERX,CREATURE_NAME,1,X)
This line decides which creatures are available to which players. The last number will either be a 0 or a 1. 0 means the creature won't be available and a 1 means it will be available.
ROOM_AVAILABLE(PLAYERX,ROOM_NAME,X,X)
If the last number is set to 0, the room will have to be researched. If it is set to 1, it will be immediately available. If the number before is set to 0, it cannot be available or be researched. If set to 1, it can be available.
MAGIC_AVAILABLE(PLAYERX,POWER_XXXX,X,X)
This line refers to spells. The XXXX is the spell name. The 0's and 1's rule is the same as above.
DOOR_AVAILABLE(PLAYERX,NAME,X,X)
This rule with 0's and 1's is basically the same with doors as it is with rooms, but if you change both of the last X's to 60, for example, it will mean you will have 60 doors to place.
TRAP_AVAILABLE(PLAYERX,NAME,X,X)
The same rules apply to traps as it does to doors when it comes to you placing traps, but usually your imps will scurry off to the workshop to get the appropriate trap box. But this time there aren't any trap boxes so this hack is useless.
ADD_CREATURE_TO_LEVEL (PLAYERX,CREATURE,ACTION_POINT,EXPERIENCE,NUMBER_OF_CREATURES,GOLD)
This adds creatures to the level when the certain conditions are met. You can tell what these conditions are by reading the line above. This is usually an IF command. The PLAYERX is which player the new creature belongs to. The ACTION_POINT is where the creature comes in. You can find out where these action points are, by opening up the map in a level editor. Hero gates are given a number with a – in front of them. Experience is the level of training they have had.
ADD_TUNNELLER_TO_LEVEL (PLAYERX,ACTION_POINT,HEAD_FOR,ACTION_POINT/TARGET_PLAYER,EXPERIENCE,GOLD)
This command adds a tunneler to a certain action point or hero door. It is basically the same as the previous one but with a few extra commands. The HEAD_FOR command is what the tunneler digs towards. It can be any of the following:
An Action PointACTION_POINT
A Player's dungeonDUNGEON
A Player's Dungeon HeartDUNGEON_HEART
The dungeon of the player with the highest score APPROPIATE_DUNGEON
This command will tell the tunneler where to tunnel to, depending what the HEAD_FOR command is. The action point number would be used if the ACTION_PIONT command was used, a player would be used if the DUNGEON or DUNGEON_HEART commands were used or if the previous command was APPROPIATE_DUNGEON, a 0 would be used.
CREATE_PARTY(PARTY_NAME)
This command is used to create a group of creatures which is to be added to the level. You must give the party a name to refer to.
ADD_TO_PARTY(PARTY_NAME,CREATURE,EXPERIENCE,GOLD, OBJECTIVE,0)
This command adds creatures to the party. These are the different objective commands:
Steal gold from the Treasure RoomSTEAL_GOLD
Steal spells from the LibrarySTEAL_SPELLS
Attack any enemiesATTACK_ENEMIES
Attack the nearest Dungeon Heart ATTACK_DUNGEON_HEART
Attack the nearest roomsATTACK_ROOMS
Defend the other creatures in the party DEFEND_PARTY
The last 0 is a command which is no longer used and should always be set to 0.
ADD_PARTY_TO_LEVEL (PLAYERX,NAME_OF_PARTY,ACTION_PIONT,NUMBER_OF_PARTIES)
You use this command to add the party to the level. The ACTION_POINT number can be a hero gate as well. The NUMBER_OF_PARTIES is the number of copies you want to put down.
ADD_TUNNELER_PARTY_TO_LEVEL (PLAYERX,PARTY_NAME,ACTION_POINT,ACTION_POINT/TARGET_PLAYER,EXPERIENCE,GOLD)
This command adds a party to the level with a tunneler as their leader. This means the tunneler will head for wherever he is going with the rest of the party following him. The experience and gold commands refers to the tunneler. when you create the party using the CREATE_PARTY command, you do not have to include the tunneler dwarf. The HEAD_FOR and ACTION_POINT/TARGET_PLAYER commands are the same as the ADD_TUNNELER_TO_LEVEL command.
PLAYERX
In all the above examples, I've used PLAYERX instead of the proper names and numbers. You can use any of the following:
Red PlayerPLAYER0
Blue PlayerPLAYER1
Green PlayerPLAYER2
Yellow PlayerPLAYER3
Heroes (white)PLAYER_GOOD
All PlayersALL_PLAYERS

Links

I don't think anybody still actively maintains a Dungeon Keeper site. But quite a few are still up, though I fear in time they will wither away, too.

Reviews

The reviewers liked the game. Many mourned the lack of IPX or Internet multiplayer, but none said it was anything but a great game. About every other compared it with Simcity. These reviews are all contemporary.


Last modified 2007-08-27