Skip to content

OBSIDIAN Glossary

dashodanger edited this page Jan 4, 2023 · 5 revisions

Glossary of Terms

Brush

This is a term borrowed from Quake mapping. A brush is a solid area in 3D space. Levels are built by placing a lot of brushes everywhere. For example, the floor you are standing on will be one brush, and the ceiling overhead will another one. Stuff like doors are built from many brushes.

In Obsidian, brushes consists of a top face, a bottom face, and a group of side faces. The top and bottom are usually flat but may be sloped, whereas the sides are always perfectly vertical.

(See also.... CSG, Entity)

Connection

A place where two rooms are connected so the player can pass between them. Connections may be locked, so that the player needs to find a key or switch to open it. Archways and doors are the normal kinds of connections, but other kinds (such as teleporters and one-way drop-offs) are possible too.

CSG

CSG stands for "Constructive Solid Geometry". For Obsidian it means the process of taking all the brushes which define the map (most of them are solid), and constructing the output map format from them, e.g. the Doom WAD file.

Engine

This refers to a family of games that use the same underlying engine, a "generational" moniker if you will. Obsidian is capable of producing maps for the following:

  • id Tech 0: Wolfenstein 3D and Super Noah's Ark 3D
  • id Tech 1: Doom, Heretic, and the like
  • id Tech 2: Quake/Quake II (not exposed to the end user in the current branch yet)
  • Build: Duke Nukem 3D (not exposed to the end user in the current branch yet)

Entity

This is another term borrowed from Quake, and means an object or thing in the map. Monsters, weapons, player starts, ammo, health, barrels, torches (etc etc) are all entities.

GUI, EXE

GUI stands for Graphical User Interface, but here the term often refers to whole EXE (executable program) of Obsidian. which is responsible not only for all the interactive elements, like the "Build" button, but also for doing CSG operations and creating the output map formats.

This is in contrast to the LUA scripts which handle all the logic for building levels, such as deciding how big to make all the rooms and what monsters to put in them. The LUA code is not stored inside the EXE, instead it is loaded from various folders when Obsidian starts up.

(See also.... CSG, Lua)

Limit Removing

A "Limit Removing" port is one in which people have removed some limitations that the original game had. For example, the original DOOM.EXE will crash if there are more than 128 visplanes on the screen -- the dreaded VPO (Visplane Overflow) error which was a real headache for mappers.

However source ports like BOOM have removed this limitation (and others), so there can be as many visplanes on the screen as necessary to draw the level.

Obsidian needs a Limit Removing engine because it is impossible for it to figure out when the visplane limit is going to be exceeded -- it depends greatly on the architecture of the map. The only way to keep within those limitations would be to produce very flat, boring, mostly-indoor maps with nothing much to look at.

Obsidian has also added a "Vanilla DOOM" option, but this will use the bundled SLUMP map generator to create its maps, as opposed to Obsidian's map generator. SLUMP will produce maps that do not exceed the limits of the original Doom executables.

LUA

LUA is a programming language used for all the level building logic in Obsidian. The files in the scripts/, games/, engines/ and modules/ folders are all LUA scripts. You can edit these ".LUA" files with an ordinary text editor (like NOTEPAD, but not MS Word), and those changes will be loaded the next time Obsidian is run. This is very convenient, because you don't need to compile anything.

Visit the LUA home page to discover more about this great programming language.

Material

With standard DOOM, there are two types of textures: one for walls and one for floors and ceilings. The first kind are called "textures" and the second kind "flats". This is quite a nuisance, because you cannot use flats on walls nor textures on floors and ceilings. The terminology can also get confusing.

So in Obsidian, a "Material" is just a single name which specifies both parts: the wall texture and the floor flat, and the code makes sure they are used in the correct places. This makes a lot of things much simpler, as you only need to give the material name and not worry about the kind of surface it will be used on.

While material names can be anything, they usually match the name of one of their components. For example, the DOOM materials "SHAWN2" and "FLAT23" are equivalent (they both specify SHAWN2 as the wall texture and FLAT23 as the flat) and hence they can be used interchangeably in Obsidian.

Other games allow textures to be placed anywhere. However there are usually some which look good on walls but not on floors, and vice versa, hence this material system can be useful for these games too.

Palette

This means a selection of certain things, especially monsters. Each room has its own monster palette, and only those monsters will be used in that room. There is also a "global" palette which controls what monsters may or may not appear in the level. These palettes help give each room and each level a distinctive feel.

Park

Parks are outdoor rooms which are designed to look and feel more naturalistic. They use materials like grass and rocks, and can include liquid pools and decorations such as trees.

Port

When John Carmack released the DOOM source code in December of 1997, many different people hacked away on it and produced their own version of the EXE, often with greatly expanded capabilities. Examples include BOOM, EDGE, Legacy and ZDoom.

Hence the term "Source Port" usually refers to one of these enhanced versions of the game, but it can also mean the original EXE which the game came with when you bought it. That one is called "Vanilla" since nothing extra has been added to it.

(See also.... Limit Removing)

Prefab

A mapping structure, such as a window or door, whose shape and texturing have been previously designed by a person. This is in contrast to stuff like caves which are generated purely by an algorithm.

Most prefabs used by Obsidian are in "WAD" files, which can be created and edited by a DOOM map editor. There must also be a corresponding LUA file which contains various properties about the prefab, like its size and how it connects to its environment.

(See also.... Skin)

Prebuilt Level

Levels which are not generated by Obsidian, instead they are made by a human and Obsidian merely copies them into the output file. Boss maps usually have special requirements which are hard to account for. It is much easier for someone to simply make them in a map editor.

Quest

A group of rooms with a particular goal, usually a key or switch which allows progression to the next quest. The final quest always leads to the exit room of the level.

(See also.... Zone)

Random Seed

This is a number used to setup a random number generator. The same seed value produces the same sequence of random numbers, and hence the same set of maps (assuming all other settings are the same). Unless specified by the user, Obsidian chooses a unique seed number each time you build a set of levels, ensuring that the output wad is different than any previously built one.

Scenic

A room or area which the player never visits, and is only used for decoration.

Seed

In the Lua code, a seed is a square or triangular region on the 2D map used for planning the levels. For example, the areas of rooms are laid out using seeds, as well as determining where to place prefabs like pillars and teleporters. The sides of seeds are used to place walls, doors, windows, etc...

The current size of a seed is 128x128 units. Often a rectangular group of seeds is used when placing a certain mapping concept, such as a "joiner" which connects two rooms together, or an item closet.

(See also.... Random Seed)

Sink

A sink is a kind of floor or ceiling detail consisting of a sunk (inset) area which uses a different material than the surrounding floor or ceiling. They may include a trim (bordering) which is usually a shiny or rusty metal.

Skin

Skins are used with prefabs, they are tables containing various properties about the prefab, such as the dimensions of the prefab, how it can connect to other prefabs, which themes the prefab can be used with, and replacements for textures and entities.

Hence they are a similar concept to skins used on 3D models, where the model defines the 3D shape and the skin defines what it looks like. In games, models are often re-used by having more than one skin. Similarly in Obsidian there can be more than one skin for each prefab.

Symmetry

Symmetry is when a room is mirrored, i.e. has the same architecture on the left side as the right side.

Zone

Zones divide each level into several large pieces. Each zone will usually have a distinct appearance (sub-theme) and a distinct monster palette. Zones are further sub-divided into quests, and the doors connecting two zones are typically locked by a key, whereas all the puzzles (quests) inside a zone use switched doors.