GLOSSARY OF TERMS
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 OBLIGE, 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)
A place where two rooms are connected so the player can pass
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
CSG stands for "Constructive Solid Geometry".
For OBLIGE 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
or the Quake BSP file.
Engine / Port
When Carmack released the DOOM source code, 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.
The same thing happened when he released the QUAKE source code,
people made engines such as Darkplaces, FitzQuake, and ZQuake.
Hence the term "Engine" or "Source Port" usually refer 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)
This is another term 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 stands for Graphical User Interface,
but here the term often refers to whole EXE
(executable program) of OBLIGE.
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 OBLIGE starts up.
(See also.... CSG, Lua)
A "Limit Removing" engine is one which people have removed some
limitations that the original game had.
For example, plain 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.
OBLIGE 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.
Lua is a programming language used for all the level building
logic in OBLIGE.
The files in the scripts/
folders are all Lua scripts.
You can edit these ".lua" files with an ordinary
text editor (like NOTEPAD, but not
and those changes will be loaded the next time OBLIGE is run.
This is very convenient, because you don't need to compile anything.
NOTE: the version of Lua used by OBLIGE has been extended
with a few extra features, including cleaner data tables
(commas are optional at end of a line)
and a new "each" statement. This means
our Lua scripts are not compatible with some programming tools,
since they require the standard Lua syntax.
Visit the Lua home page
to discover more about this great programming language.
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 OBLIGE, 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 OBLIGE.
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.
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
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.
Starting with V5, most prefabs used by OBLIGE 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)
Levels which are not generated by OBLIGE, instead they are
made by a human and OBLIGE merely copies them into the
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.
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)
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).
OBLIGE 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.
A room or area which the player never visits, and is only used
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
The sides of seeds are used to place walls, doors,
The current size of a seed is 128x128 units, although
prior versions used 192x192 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)
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.
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 OBLIGE
there can be more than one skin for each prefab.
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
V1 V2 V3 V4 V5 V6 V7
These designate the major versions of OBLIGE.
V1 was merely a prototype and was never publicly released.
V7 is the currently developed version, and all
previous versions have ceased development.
See the History page for
more detailed information about OBLIGE versions.