Dungeon of Darkness Version 0.8.2 Demo Evert Glebbeek (eglebbk@dds.nl) November 10, 2005 0) ABOUT 1) DISCLAIMER AND LICENSE 2) INSTALLING THE GAME a. building from sources b. installing a binary distribution c. installing digital midi 3) PLAYING a. getting started b. playing the game c. troubleshooting d. known issues 4) Q&A 5) IN CLOSING 6) CREDITS 0. ABOUT ======== Dungeon of Darkness is based on an old Atari 2600 game called Dark Chambers. Dark Chambers involved walking through a maze, trying to find the exit to the next level, collecting items and treasure along the way. That is basically the goal of this game too. I have added a few Zelda-style elements to the game but the general goal remains the same: complete all 26 levels from A through Z hunting for treasure. This demo contains the first 14 levels (A-N). Most of the engine is completed, though I always find things that I need to add before the end. 1. DISCLAIMER AND LICENSE ========================= This program is distributed as is. No warranties are made, expressed or implied, that this program is fit for any particular purpose. Neither the author, nor the distributor will take responsibility for any damage that may result from the abuse, use, or inability to use this software, including, but not limited to, loss of data, profits, time or sanity, even if they have been informed of the possibility of such damage. By running this software on your computer you accept the terms of this agreement, regardless of wether or not you bothered to read it. Permission to distribute the game binary, sources and datafiles is granted, provided that this readme file is also included. Do not distribute modified sources or binaries build from modified sources. 2. INSTALLING THE GAME ====================== To install the game, you have several options, depending on your system. For Windows, there is an installer that you can use to install the game, but you can also pick a binary package to install the game. Finally, you have the option of compiling the source code yourself. The Windows installer is complete, but for the other options you will need to download the game datafiles seperately (the data is the same for all of them and I have to conserve webspace). Unpack the game datafiles to a directory of your choice, preserving directory structure. The datafiles will be put into a subdirectory Dark/. The next steps depend on wether you downloaded a binary distribution or a source distribution. a. building from sources ------------------------ The build process should be fully automated for DOS, Windows and Linux. It may require more work on other platforms. To build the game you will need to have the following tools installed and working on your system: * The GNU C Compiler (gcc). Not sure what version, I tested with 3.4 and I think you should be fine with any version after that and possibly before. * GNU make. If you have gcc, you probably already have this. * A recent version of the Allegro programming library, at least 4.2.0. The following tools are optional: * The GNU fileutils package, in particular the rm utility (needed by the clean, distclean and veryclean makefile targets). * GNU Bash, GNU grep and sed (needed by the depend makefile target). All of these are free tools available from the Internet. If you wish to use another compiler (eg MSVC), you should be able to compile the sources with a few adjustments (if any). If you experience problems compiling the code for other compilers feel free to submit a patch to make it compile, but I can't actively support all of them. gcc should be included in every Linux distribution and on most UNIX systems. For other systems (DOS, Windows), you'll need to get a gcc port for your system: DOS: get DJGPP from http://www.delorie.com/ Windows: I'd advice MinGW from http://www.mingw.org/ Allegro is available from several locations, most notably the former Allegro game depot, http://www.allegro.cc/, or directly from sourceforge, http://alleg.sourceforge.net/. Consult the Allegro documentation for setting it up for your system. If your system is configured properly, then all you should have to do is extract the source code to the same directory where you extracted the game data files. The source code is available in UNIX-style .tar.gz archive or a ZIP file. Both can be extracted in Windows by WinZIP. Extracting the source code will create the directories Dark/src, containing the game sources, Dark/include, containing the header files and Dark/obj, where the object files will go. It will also create Dark/Makefile and Dark/makefile.dep. If you do not have this last file, or if you have run make veryclean at some point, you can regenerate it by running `make depend' from the Dark/ directory. Now, go to the Dark/ directory and run `make' or `gmake' from the command line. Make will try to detect what system you are running by checking against some environment variables: if DJGPP is set, it will assume a DOS environment. If MINGDIR is set, it will assume a Windows/MinGW environment. If neither of these are set, a UNIX like environment is assumed. Check these variables if you are in doubt. If you're using Linux or UNIX, you way wish to set the CPU environment variable to your CPU to generate code for it. On my Linux box, it's set automatically, but you may wish to make sure. b. installing a binary distribution ----------------------------------- Compared to installing a source distribution, this should be easy go. Simply pick the binary distribution you want and unzip it to the same directory where you unzipped the game data files. Done. An older release of the game had a DOS version, but I've since removed the compiler, so if you want one you'll have to compile it yourself. The Windows version requires the Allegro 4.2 DLL, which is included in the Windows installer but not the ZIP archive to keep the filesize as small as possible. If you don't have the Allegro DLL, you can grab it from the files section on allegro.cc. The Linux binaries are static linked and should not need any additional files. If this binary doesn't work, you can always compile the sources. c. installing digital midi -------------------------- If you have a fast computer and want better sounding MIDI output, or if your soundcard doesn't natively support MIDI output, then you might want to use Allegro's digital midi driver. There are two ways to enable the driver, but first you will need a MIDI patch set. This is a hefty 25MB download so you don't get it by default. Download digmid.dat from http://www.eglebbk.dds.nl/program/download/digmid.dat and put it in the Dungeon of Darkness data directory. The first way to enable digital MIDI is from the Dungeon of Darkness titlescreen: from the main menu choose Options->Sound options and check the `Use Digital Midi' box in the Options screen. If this checkbox is disabled, then the digmid.dat was not found in the game data directory. The second way is slightly more complicated, but doesn't require you to put a digmid.dat in the Dark/data subdirectory. Start Dungeon of Darkness with the -setup commandline flag. Go to `Midi Driver' and select DIGMID, then hit Ok. Check the box that says `Patches'. You will now be asked to locate the patch datafile. Select the file and click Ok twice. Choose `Save and exit' and restart the game. 3. PLAYING ========== a. getting started ------------------ The Dungeons of Darkness executable and configuration files are named differently on different platforms: Executable: Config file: DOS: dark.exe dundark.cfg Windows: dark95.exe dundark.ini Linux: dark .dundarkrc or /etc/dundarkrc Under Linux, the file .dundarkrc will be looked for in the directory pointed to by the HOME environment variable, or the current directory if HOME is not set for some reason. If .dundarkrc cannot be found in either location, but the file /etc/dundarkrc exists, it will be used to read global settings. New settings will be saved in .dundarkrc. Run `dark -help' to see a list of command line options. CAUTION: not all of these may work properly. Run `dark -setup' to change system settings (usually not needed, though you may wish to select alternate sound drivers if the default ones don't suit you). Simply start the program without any arguments to begin play. b. playing the game ------------------- From the main menu, you can start playing immediately by choosing Start game. You may want to change some settings first though. From the main menu, choose Options->Controller settings. Each player (tough I haven't added 2 player capabilities to the game yet) can use up to three input devices at the same time. You can choose between keyboard, gamepad1, gamepad2, gamepad3 and gamepad4. The default key bindings can be changed by pressing the configure button next to the selection box and pressing keys when prompted. The default keyboard bindings (and the default bindings for my GamePad Pro) are as follows (SNES equivalents listed for reference): +----------------------------------------------------------+ |Action: Keyboard: Gamepad SNES | |----------------------------------------------------------| |Move up up arrow key dir. up up | |Move down down arrow key dir. down down | |Move left left arrow key dir. left left | |Move right guess ;) dir. right right | |Attack, confirm left alt green A | |Action Z yellow B | |Set bomb left control red Y | |Centre target Left shift blue X | |Previous Backspace L1 L | |Next Tab R1 R | |Start Enter Start Start | |Select Shift Select Select | +----------------------------------------------------------+ You usually don't need to touch anything in the graphics menu (in fact, you probably shouldn't). During gameplay, the key will return you to the main menu. See the game manual for more detailed instructions and a walkthrough. c. trouble shooting ------------------- 1. THE GAME DOESN'T RESPOND PROPERLY TO MY GAMEPAD You should remap the buttons of your gamepad - from the main menu, go to Options->Controller settings and select configure on the appropriate input device. You will be prompted to assign a key to each action. When you are done, choose Ok to save your new settings. 2. THE GAME RUNS VERY SLOWLY ON MY SYSTEM The graphics engine is not yet fully optimised in this version - expect better results from a future version. That said, you may gain some benefit by playing with the RLE/BITMAP sprite settings in the display options screen. 3. THE GAME RESPONDS TOO SLOWLY TO KEY PRESSES Increase the key buffer size in the Controller Options screen. Usually this should be ok roughly halfway. 4. THE EFFECT OF A KEY CONTINUES FOR A WHILE EVEN AFTER I RELEASE IT Reduce the size of the key buffer in the Controller Options screen. Setting it roughly halfway you should be fine. 5. THE GAME GRAPHICS DO NOT DISPLAY CORRECTLY Try experimenting with the RLE/BITMAP settings in the game video options dialog. If you still can't get it to work, please contact me. 6. I'M HAVING RANDOM CRASHES/DISPLAY ERRORS/OTHER THINGS NOT LISTED HERE See if there is a new version of the game available, or see if there is a newer release of Allegro and recompile the game. 4. Q&A ====== Q. What are those options on RLE sprites and BITMAP's about? A. They control how the game stores sprites (monsters, the main character and items) and displays them. Which option you select can alter the performance of the game on your machine, depending on your hardware. If neither option is set, the game will use RLE sprites by default and BITMAPS if those are more convenient. If RLE sprites are enabled and BITMAPS are disabled, then the game will use RLE sprites for everything and not use BITMAPS at all - select this if you are low on memory. If RLE sprites are disabled and BITMAPS are enabled, the game will use BITMAPS for everything. This does reduce the memory usage of the game, though. If both RLE sprites and BITMAPS are enabled, the game will try to use hardware acceleration to draw BITMAPS and use RLE sprites if it cannot. 5. IN CLOSING ============= The engine of Dungeon of Darkness is pretty much fleshed out - I'll need to optimise and streamline the code at some point and add a few minor tweaks for things I want to do at higher levels of play. That said, feel free to suggest things you would like to see in the game! I will mostly be focussing on the design of later levels and improving the graphics over time. If you have suggestions/ideas in this department, you are also invited to share them with me. You are especially encouraged to suggest music or sound samples :) The music is currently in MIDI format and ripped from various sources. It should probably be replaced for copyright reasons. The sound samples come from my personal collection of samples, and I have no idea where most of them came from originally. Again, feel free to share. 6. CREDITS ========== I did a lot of work on this game, but I wouldn't have completed it without help in some areas from others. I have used some media that were originally submitted for the Allegro BlitzHack, assuming that their submission there basically puts them in the public domain. I have given credit to the people who posted the media there. If you feel that you have been left out unjustly, feel free to drop me a line! Anyway, special thanks to: Shawn Hargreaves and everyone who contributed to the Allegro library DJ Delorie & Co, for maintaining DJGPP, the DOS port of the GCC compiler Mumit Khan & Co, for MinGW, the Windows port of the GCC compiler Martin `Hard Rock' Zolnieryk for the animated GIF loader Nick `Goodbytes' Davies & Chris `23yrold3yrold' Barry for media The allegro.cc community You for reading this!