Jump to content

Map

From Weissblatt Wiki
Revision as of 06:13, 7 June 2025 by Nyamoru (talk | contribs) (Basic Map info)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Game levels in Weissblatt are commonly called Maps while the act of creating a map is called Mapping. Like with many multiplayer games, this terminology is inherited from Doom.

Weissblatt supports two different map formats:

  1. Legacy maps (sometimes called binary maps) - This format is inherited from Sonic Robo Blast 2 and is generally advised against when mapping.
  2. UDMF maps, upon which Weissblatt is built.

Map format Basics

To fully understand mapping, you should understand the concepts of how (modern) Doom engines construct their maps in the abstract:

Sectors, Walls and Linedefs

In short, Doom maps are essentially two-dimensional top-down vertex structures with added properties for height and other gameplay mechanics.

Walls are lines between two or more vertices on a map. Each wall can either be solid with a single texture assigned to it or it can be a two-sided Linedef seperating two sectors. Depending on the two sectors' floor and ceiling heights, each Linedef may be assigned a top, middle or bottom texture per-side. Linedefs can also be equipped a Type which can trigger various effects at runtime.

Sectors polygons made up of multiple walls through which the player can move. Sectors can be assigned a top and bottom Flat, a light level, colored lighting (depending on the map format), various unique effects and a tag.

Tagging

Walls, sectors, and Things within a map can be tagged using an integer number. Depending on the sector effect and Linedef type, Sectors and Linedefs with matching tags may trigger one another, given trigger-dependent conditions, such as one or all players entering a sector or (not) having collected all Chakra Shards when doing so. Matching tags can also be used for triggers relating to Things.

Binary Space partitioning

Simply put - Doom maps are heavily preprocessed using a so-called node builder before being included in the game. A modern node builder with UDMF support is ZDBSP from the ZDoom source port.

Node builders implement an algorithm called Binary Space Partitioning or BSP. Through BSP, all map sectors are subdivided into convex shapes and assembled into a binary tree. The game engine can then per-frame traverse the leaves of any given branch of that tree to determine all potentially visible walls.

<more TBA>

Floor-over-Floor (FOF)

Floor-over-Floor sectors or FOFs are an extension upon the original Doom format which allows for multi-floor sectors like hovering bridges. To achieve this, a separate control sector is created outside of the play area to which other sectors are tagged using

Polyobjects

Polyobjects are an extension to use pieces of predefined map geometry as if they were map objects. This allows for many more gameplay mechanics such as spinning geometry, sideways crushers or swinging doors.

Things and MOBJs

Full page: Category:MOBJ

Things are game objects placed within a sector. Unlike many modern engines, things are usually not spawned, but are all initialized upon map load. This requires some gameplay design considerations such as monster closets.

MOBJs implement Things during runtime and may potentially spawn during gameplay.

UDMF Mapping

UDMF stands for Universal Doom Map Format. It is a textual map format developed for near-infinite extensibility within modern Doom engine source ports. It is not backwards compatible to older formats.

The main file of a UDMF map is called TEXTMAP and contains. Within a WAD or PK3, it must be followed by a simple marker lump called ENDMAP. Despite UDMF being a text format, it is not intended to be read or edited manually. Instead it should be parsed by dedicated programs such as Ultimate Zone Builder, SLADE or Weissblatt's game engine.

Legacy Mapping

The Legacy map format was inherited from Sonic Robo Blast 2 and is now considered deprecated. Weissblatt does not develop it any further and merely maintains it for backwards compatibility. As such the format will be missing many features compared to Weissblatt's UDMF implementation.

Like traditional Doom maps, legacy maps are a binary map format, meaning all data is encoded directly into byte structures. This brings some limitations:

  1. <TBA>

Legacy maps can be converted to UDMF maps: Simply launch the game using -textmap and -warp <MAPNUM>. After you quit the game, the engine will save a UDMF conversion of your map to the file TEXTMAP within your game directory.

Binary maps are made up of the following lumps:

  1. THINGS
  2. VERTEXES
  3. LINEDEFS
  4. SIDEDEFS
  5. SECTORS