Dungeon Master game engine

Discuss anything about the original Dungeon Master on any of the original platforms (Amiga, Atari, etc.).
This forum may contain spoilers.

Moderator: Ameena

Forum rules
Please read the Forum rules and policies before posting.
Post Reply
hawk234
Neophyte
Posts: 2
Joined: Sun Sep 18, 2011 12:26 pm

Dungeon Master game engine

Post by hawk234 »

Hi,
I've been browsing this site and the Dunegon Master Encyclopaedia for a while and there are quite a lot of articles on the file formats and technical details of DM and CSB. What I could not find is some kind of description of the actual game engine, how the game does it's game loop, how the creatures are moved and so on. Did I miss something or does everyone just analyse the CSBwin sourcecode (which is a bit confusing in my opinion)?

While working on my own little DM engine I came across a few things I could not find anywhere.
like...
- how is the damage of thrown items calculated?
- how is the speed of some creatures measured?
- where is the damage value for the different kinds of doors?
- what about these "random wall decorations", how are they distributed among the maps? since every dungeon has a specific random seed, these decos are not truely random (= different every time you start a new game), right?

In the tech docu of the DM Encyclopaedia there is a file description of "item 559".
This item contains (among other things) the weight of each item in the game and the value of the food items.
But it says there that item 559 is only present in some DM versions so where is the weight stored in all the other versions?

Maybe I just missed something so thank you in advance for pointing me in the right direction...
bye,
Peter
User avatar
ChristopheF
Encyclopedist
Posts: 1540
Joined: Sun Oct 24, 1999 2:36 pm
Location: France
Contact:

Re: Dungeon Master game engine

Post by ChristopheF »

Items 558-562 are only present and used in the graphics.dat file of Atari ST versions.
In all other versions of the game, the data is stored directly in the executable file. The exact data format and layout is different in each version (this is confirmed for the PC version for example, there is an Excel spreadsheet on the site showing the layout for this version). Also, most (all?) of the coordinates in item 558 are stored in another completely different format in item 696 in some 3.x versions.

Note that items 558-562 are also found in DM Amiga 2.0 EN, but they are not used at all: the 'real' data is in the executable, just like in all other Amiga versions. It looks like they just forgot to remove these items from the graphics.dat file when porting the game from Atari ST to Amiga.

Regarding your other questions, I can't give answers right now. Someday I will, as I've been studying the game engine for a long time and I intend to document as much as possible on the web site. Don't hold your breath as this won't occur before at least one more year minimum.
User avatar
beowuuf
Archmastiff
Posts: 20687
Joined: Sat Sep 16, 2000 2:00 pm
Location: Basingstoke, UK

Re: Dungeon Master game engine

Post by beowuuf »

From playing, I believe that the random decorations are the same each time you play the same dungeon under the same engine. Others can confirm, of course. So whatever the seed is, it must be something to do with the dungeon itself and engine, not a random roll.
User avatar
zoom
Grand Master
Posts: 1819
Joined: Tue Sep 23, 2003 1:27 am
Location: far away but close enough

Re: Dungeon Master game engine

Post by zoom »

hawk234
Neophyte
Posts: 2
Joined: Sun Sep 18, 2011 12:26 pm

Re: Dungeon Master game engine

Post by hawk234 »

Thanks for the link to the CSBwin documentation, there seems to be a lot worth reading there, I will take a look.

Regarding the random decorations: A random seed is a number to initialize a random number generator (because computers can not generate true random numbers). So if the seed is the same, the random numbers will be the same every time. My guess is that FTL used this to save some disk space, instead of saving the decoration for each wall they just "created" them each time you start a new game.

Anyway, thanks for the quick help
bye,
Peter
User avatar
Paul Stevens
CSBwin Guru
Posts: 4318
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Re: Dungeon Master game engine

Post by Paul Stevens »

Nope...No random numbers are involved. No seeds, etc.

See the function "RandomWallDecoration".

Placement of these decorations is based entirely
on the coordinates of the wall. A hash function
which (essentially) computes a random number given
the coordinates as the 'seed'.

Therefore the same for all dungeons and engines.
Post Reply