DoomTools

From DoomWiki.org

(Redirected from Doom Struct)
DoomTools
DoomTools logo.png
Developer(s) Matt Tropiano (MTrop)
Initial release 2020-05-30 (3 years ago)
Latest release 2024-03-12 (17 days ago)
Development status Active
Written in Java
Target Platform Windows, macOS, Linux
License MIT License
Website https://mtrop.github.io/DoomTools/
Source Repository

(Git)

GitHub

The DoomTools are a collection of command-line tools and utilities aimed at facilitating the management and compilation of Doom engine projects and their resources. They are developed by Matt Tropiano (MTrop) with the initial release appearing on May 30, 2020. The tools are built upon Doom Struct (sometimes DoomStruct), a standalone Java library also by MTrop for reading, manipulating, and writing game data in several formats.

DoomTools received a Codeaward at the 2022 Cacowards.

Features[edit]

The core tool in DoomTools is DoomMake, a project build utility enabling to structure a mod project, initialize a version management repository (Git or Mercurial), compile WADs in an automated fashion controlled by scripts, establish a Continuous Integration path and more, in a way (mostly) agnostic to the underlying operation system.

Another advanced tool is DECOHack, which compiles one or multiple definition files in a DECORATE-like language to control things, weapons, sounds, strings and the like, and generates a DEH/BEX file for loading into a source port or patching via DeHackEd. It supports multiple standards including DEHEXTRA, DSDHacked, and MBF21.

DoomTools also includes:

  • DImgConv: A utility that bulk converts images to Doom formats.
  • DMXConv: A utility that converts all sorts of sounds to DMX digital sounds using either the Java SPI or FFmpeg.
  • DoomFetch: A utility that fetches WAD files from different sources. Can serve as a dependency manager.
  • WadMerge: A utility that performs script-based WAD compilation and merging.
  • WSwAnTbl: A utility that reads DEFSWANI/SWANTBLS data files and compiles it into ANIMATED and SWITCHES lumps. Can also export a set of ANIMATED and SWITCHES lumps to a definition file.
  • WadTex: A utility that reads a DeuTex-style texture file and imports it into a WAD file as TEXTUREx and PNAMES lumps. Can also export TEXTUREx/PNAMES in the same way.
  • WTexScan: A utility that scans maps in a WAD and outputs a list of found textures and flats, suitable for import into the next program...
  • WTEXport: A utility that exports textures from one WAD into another, including associated ANIMATED and SWITCHES textures.
  • WadScript: A scripting system for doing practically anything with Doom stuff. Also includes RookScript, a subset script.

On Windows, DoomTools comes with its own GUI implementation to assist those uncomfortable with the command-line approach.

Doom Struct[edit]

The Doom Struct library contains a large number of Java classes to perform tasks are various levels, from reading individual lumps to modifying UDMF maps and writing entire WADs, and comes with extensive documentation. The library provides the following features:

  • reading/writing WAD files and reading PK3 files;
  • full support for UDMF maps and all data structures/lumps in Doom, Hexen/ZDoom, or Strife formats;
  • support for PNG images and conversions of Doom's picture format;
  • support for converting the DMX sound format and managing texture sets;
  • and more.

Doom Struct was initially released by MTRop's Black Rook Software, then rewritten and released in 2019 as a standalone library under his own name.

See also[edit]

External links[edit]