/descentreader

A level/map reader for Descent

Primary LanguageC++MIT LicenseMIT

descent level reader

A tool/library for reading the level file formats of the video game by Parallax Software called "Descent".

Descent is a 3D six degress of freedom shooter where the player is in a ship and has to fly through mine tunnels of a labyrinthine nature and destroy virus infected robots.

Licenses

The source code of this project is hereby licenses under the terms of "The MIT License". See LICENSE.txt for details.

Building

The source code is compiled by a build system called cake. Its home page is http://cake-build.sourceforge.net/

Cake is a build system written in Python which reads build scripts that are also written in Python.

Unfortunately, at the time of writing, the project isn't available via pypi or as wheel so needs to be installed manually by cloning the repository and running setup.py.

The steps I've used:

Once cake is installed, you can then run "python -m cake.main build.cake" to compile the project, or simply "python -m cake.main" as the build.cake argument is implicit.

File formats

HOG - An archive file-format which contains multiple files (levels, sounds and sprites). Very similar idea to a tar or a zip with no compression.

RDL - Registered Descent Level file which describes the structure of the level. There are two key parts of a level, the mine structure (i.e the walls and cubes) and objects (i.e where hostages are, robots, cards etc).

TXB - Encoded/encrypted text files which describe the mission briefings.

Unsupported File formats

Other file types in Descent's HOG files that are not provided by this package.

  • LBM - An image format, with the file extension BBM. This may be related to the Interchange File Format.
  • PCX - Image format used for full screen intro and the sky in outdoor scenes.
  • VGA Palette with file extension 256.
  • HMP - Human Machine Interfaces MIDI Format used for the music. The file starts with HMIMIDIP.
  • FNT - Fonts

Other file extensions seen in the Descent 1 HOG are are raw, sng, bnk (maybe sound bank), dig, lgt and clr.

References

Coding standard

80 columns - Each line of text should be at most 80 characters long. Indent with two spaces - Use only spaces, and indent 2 spaces at a time. Pointer binds to type (int* a) instead of (int *a). Allman style breaking before braces so they start on the next line.

Authors