UDMF (or unabbreviated to 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) and with suggestions of 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 GZDoom, Vavoom, ZDoom, Skulltag, Zandronum, ZDBSP, Doom Builder 2 and SLADE 3. It is also expected to be supported in Eternity and Doomsday.
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. So far, only ZDoom has defined new namespaces:
- ZDoom: this namespace is shared by all games supported by ZDoom, and allows full use of all map editing features available to ZDoom.
- ZDoomTranslated: this is namespace will be processed by a map translator which will convert line types and sector types as if they were in the binary map format shared by Doom, Heretic, and Strife. It is otherwise identical to the main ZDoom namespace.