UDMF
From DoomWiki.org
UDMF (an abbreviation for Universal Doom Map Format) is a specification for laying out maps in a textual way. It is essentially a new map format for Doom engine based games. The format is not backwards-compatible with older Doom engine games.
The idea for this format was first suggested by James Haley (Quasar) as a universal solution to add unlimited extra information to map elements, so that the wide range of new features in Doom source ports can be better supported by editors and implemented in the map information more easily. UDMF was further developed by Haley, Christoph Oelckers (Graf Zahl) and Pascal vd Heiden (CodeImp), with suggestions from a few others. The name for the map format was coined by Russell Rice.
UDMF version 1.0 was finalized on May 29th, 2008. Support for it is currently implemented in DelphiDoom, Eternity, GZDoom, EDGE, Vavoom, ZDoom, Skulltag, Zandronum, DSDA-Doom, Sonic Robo Blast 2, Helion, ZDBSP, AJBSP, Ultimate Doom Builder and SLADE 3. It is also expected to be supported in Doomsday.[1]
Contents
Namespaces[edit]
To prevent conflicts, the UDMF specifications require maps to start with a declaration of the namespace used, which then defines which map editing features are available and used. "Map editing features" is used here to describe only features that are directly used when making a map: the correspondence between editor numbers and thing types (such as 3001 for the imp), the one between linedef types and their expected effects, and the list of flags and properties that can be set on things, sides, lines, sectors, and vertices. Four namespaces are reserved by the specifications, and they should not be enhanced or extended with additional map editing features.
- Doom: all map editing features of vanilla Doom, Boom, and MBF.
- Heretic: all map editing features of vanilla Heretic
- Hexen: all map editing features of vanilla Hexen
- Strife: all map editing features of vanilla Strife
Source ports wanting to add new map editing features should define their own namespace.
Eternity Engine namespaces[edit]
As of version 4.05.03, Eternity includes support for the Doom, Heretic, Hexen & Strife namespaces, internally – however, it only has full support for Doom and Heretic game types. It also includes its own namespace:
- Eternity: Shared by all games supported by Eternity, and allows full use of all map editing features available. It is partly compatible with existing ZDoom UDMF mapping features, and includes many of its own.
ZDoom namespaces[edit]
As of version 2.8.1, ZDoom has full support for all four game types, as well as two of its own exclusive namespaces:
- ZDoom: This namespace is shared by all games supported by ZDoom, and allows full use of all map editing features available.
- ZDoomTranslated: While otherwise identical to the main ZDoom namespace, this variant does not use the Hexen-style action specials system, and instead uses the traditional style of line specials from Doom, as seen in the ZDoom linedef types.
DSDA-Doom namespaces[edit]
As of version 0.29.4, DSDA-Doom currently does not read maps for the base game namespaces in the UDMF specification. It does, however, have partial support for the ZDoom namespace, and full support for its own:
- dsda: This namespace was originally based on a subset of the ZDoom one, containing many of the existing mapping extensions. However, it also came with original features, many of which were later ported to other source ports as well.
EDGE-Classic[edit]
As of version 1.50, EDGE-Classic supports the Doom, Heretic and ZDoomTranslated namespaces, the latter despite only partial support – as well as its own:
- edge-classic: As opposed to most other port-exclusive namespaces, this one makes use of Doom-style, non-parameterized line specials and other related features – namely, EDGE-Classic features the vanilla Doom, Boom, MBF, MBF21 roster of special actions, as well as its own exclusive set, as seen in the EDGE linedef types.
DelphiDoom[edit]
As of version 2.0.7.735, all four game types are supported by DelphiDoom, alongside their respective base spec namespaces. Despite only having partial support, it will parse the ZDoomTranslated namespace, and also has and has defined its own, for each game type:
- delphidoom: Uses Hexen-style action specials, by default, but also includes support for classic Doom-style line specials – starting at index 300, leading until 999 – forming a hybrid line special system.
- delphiheretic: Similarly to delphidoom, it primarily using parameterized action specials, however, using Heretic specials for the latter part of the hybrid system.
- delphihexen: Uses Hexen-style action specials, only.
- delphistrife: Same as delphidoom and delphiheretic, however, using Strife for the latter half of the hybrid line special system.
See also[edit]
External links[edit]
- UDMF 1.0 specifications
- UDMF 1.1 specifications
- ZDoom namespace v1.26 extensions, as of ZDoom 2.8.1
- ZDoom namespace v1.38 extensions, as of GZDoom 4.14.2 (also includes VKDoom-exclusive features)
- Delphi-Doom namespaces extensions
- Eternity namespace extensions, on the Eternity Engine Wiki
- DSDA-Doom namespace extensions, as of DSDA-Doom 0.29.4
- EDGE-Classic namespace v1.1 extensions, as of EDGE-Classic 1.50
- UDMF Engine Support, features compared across ports
