OpenArena
Advertisement
OpenArena's Mapping manual
ProloguePre-mapping stageMap gameplayChoosing an editorYour first mapBrush manipulation2D/3D clippingCurve manipulationTexturesIntroduction to EntitiesLightingAdvanced lightingWeapon/Item placementTriggers and moversDynamic featuresShadersTerrains and liquidsMapmodelsSoundsGametype supportOptimization and TroubleshootingHint brushesBot playTroubleshootingFinal touchesCompilation & packaging
Glossary of termsAdvanced featuresModelling a mapEditor differencesDefault assets (Textures/Models/Sounds) • GPL

This is a mapping-oriented glossary. For a general player-oriented glossary, please read Manual/Glossary.

Geometry definitions[]

Taken from SmallPileOfGibs' q3map explanation.[1]

  • Point: Single set of coordinates (X,Y,Z) using Integer arbitrary units.
  • Line: Pair of points with a straight line of infinite extent passing thrugh both points.
  • Plane: Trio of points with a bidimensional surface of infinite extent passing through all three points. Has a front and a back.
  • Area: Finite part of a Plane bounded by Lines.
  • Polygon: Area bounded by 3 or more lines.
  • Volume: Finite part of a tridimensional space bounded by four or more Planes.
  • Axial Plane: Plane perpendicular to one of the grid axes (X, Y or Z).
  • Vertex: (plural Vertexes or Vertices) Point. It's stored in a BSP as a single set of coordinates using floating point arbitrary units.
  • Triangle: (plural Triangles or Tris) Polygon with three Vertexes.
  • Strip: arrangement of multiple Triangles in a strip shape, each new Triangle sharing vertexes with an adjacent one.
  • Fan: arrangement of multiple Triangles in a fan shape, each new Triangle sharing vertexes with an adjacent one.

2-dimensions: Areas[]

Starting with a 2D Plane, we can draw a single Line of infinite length dividing the Plane in two. Adding more non-parallel Lines allows us to define an Area in a Plane. An area bounded by three or more Lines is always a convex Polygon. It's impossible to bound a non-convex Polygon with straight lines of infinite length.

3-dimensions: Volumes[]

Starting with an infinite Volume of space, imagine a Plane dividing it into two child Volumes: front and back. Four or more non-parallel Planes are required to define a finite Volume in an infinite space. A finite Volume defined by four or more Planes is always a convex volume.

Map definitions[]

Taken from SmallPileOfGibs' q3map explanation.[1]

  • Brush: Convex Volume always bounded by four or more Planes, with each Plane forming the Face of the Brush. Each Brush face has a set of Texture, Surface and Content properties.
    • Texture properties: small number of values stored with each face in the .map file. It defines ONE shader name, XYZ Scale/Stretch values, and a rotation. Each TP is exclusive to only one Brush face.
    • Surface and Content properties: small number of values stored outside of the .map file, in an external .shader script, with the exception of some CP which are stored only in the .map file, such as Detail. Every Surface has a default set of Shader properties, unless an external shader script is specified.
  • Bezier Patch: (also curve or simply patch) A type of Parametric Surface rendered into the IdTech3 engine with triangles and stored as a Bidimensional Matrix of Points. It uses the Level of Detail as parameter. Each Patch can only have one Shader, for the same reason each Brush Face can only have one Shader.
    Patch Meshes are simple polygon meshes that are 0 units high. The front side is visible and solid, the backside is not, allowing the player to go through it from one side only.[2]
    • Parametric Surface: Surface with a shape defined by a set of parameters, so the shape can change depending on the values of the parameters.
    • Level of Detail: (also LOD) Parameter which indicates how much the curves must be "tessellated" (subdivided) into a number of triangles. The higher the value, the more the curve is tessellated and the more triangles are created in tessellation. It can be set to change with the viewer's distance from the Patch, decreasing as they get further away.[3]
    • Bidimensional Matrix of Points: Table containing sets of values arranged in rows and columns where each point is stored as two sets of values: one with the XYZ coordinates defining the location of that point on the bidimensional area of the shader, and the other with the UV coordinates defining the location of that point on the bidimensional area of the shader.
  • Shader: Collection of properties which controls how a surface is treated by the compilers and how such surface is treated by the IdTech3 engine.
  • Entity: Broad category which not only includes simplistic editor representations of gameplay objects such as weapons and ammo, but also includes diverse things like player starting spots, and lights.[4]. They have an Origin point, a Bounding Box, and a set of Keys. Some of them (such as func_* or trigger_*) have brushes or patches belonging to them. Entities are ignored during the vis part of a compile.[5]
    • Worldspawn: Default entity (0) comprising the solid hull ("World") of the map which contains all the other entities within the space inside. Its origin point is (0,0,0)
    • Bounding box: Axis-Aligned bounding volume.
    • Key: Predefined set of properties containing a pair of variable/value, where the value can be numerical or text.
  • Mapobject: A model placed into a map with the misc_model entity.[5] A collection of Triangle Surfaces arranged in Mapobject Strips.
    • Mapobject Strip: A Mapobject Strip is similar to a Bezier Patch Surface. It cannot be structural, can only have a single Shader, it's stored as one frame in a single .md3 file, has a Shader name and a set of texture coordinates assigned to it. It lacks content properties and a lightmap, but can emit light or cast shadows, depending on the strip's shader properties.

Editor definitions[]

Taken from Interactive Death[5] and the GTKR Manual[4].

  • Alpha Channel: Fourth 8-bit grayscale channel in addition to the Red, Green and Blue channels, used by the shaders to manipulate the art. Often used to create translucency or transparencies.
  • Areaportal: A texture/shader which causes anything behind it to not to be rendered in view. This is best used with door entities such as func_door.
  • Brush: Basic building block of every map. It's a single 3D unit which can be manipulated to take any shape. Technically speaking, it's a Convex Volume always bounded by four or more Planes, with each Plane forming the Face of the Brush. Each Brush face has a set of Texture, Surface and Content properties.
  • Cap: Patch placed on top of bevels, end caps and cylinders to seal the ends with a texture.
  • Caulk: (also common/caulk) Texture/shader with the properties "solid" and "structural", which is used as the seal of the map, in order to prevent leaks. It can also be used to prevent Z-Fighting. It should be applied to the sides of a brush which aren't visible.
  • Clip: Texture/shader which blocks entities. They come in different types:
    • Botclip: (also common/botclip) Used to block AI bots.
    • Playerclip: (also common/playerclip) Used to block AI bots and human players.
    • Weaponclip: (also common/weapclip) Used to block AI bots, human players and weapon fire.
  • Compile: (also Compilation) Process which turns a .map file into a .bsp file, basically turning the text inside the .map file into a playable .bsp file.
  • Framerate: (also FPS, Frames Per Second[6]) Number of frames or images per second the screen renders.[7]
  • Fullbright: A map which hasn't passed through the Light stage of q3map2. Everything appears very bright and there will be no shadows.
  • Game Unit: (also simply Unit) Basic unit of measure in a game map. Eight GUs are equivalent to a real-life foot (30,48 cm).
  • Grid: Measuring tool in the 2D views of an editor.
  • HOM Effect: (short for Hall Of Mirrors Effect) Effect which creates a sort of infinite mirrors effect. It's one of the easiest errors to spot in a map. It can be spotted when the plane of a BSP is broken, in leaks, and wrongly placed areaportals.
  • Hull: Outer layer of a map used to prevent leaks.
  • Lag: Situation caused by maps with high amounts of r_speeds or online matches with higher pings or a great deal of packet loss. In both cases, the result is the same: very choppy gameplay.
  • Mesh: The unskinned polygonal wireframe that makes up a model.
  • Pixel: (short for Picture Element) Smallest definable graphic component. Four pixels are equivalent to a Game Unit.
  • Polycount: (short for Polygon Count) In models, he amount of polygons composing the model. In maps, the amount of polygons being rendered.[8]
  • Prefab: (short for prefabricated) Premade part of a map which can be inserted into another map. Can be anything from a deco to an entire room.
  • Skin: Texture/shader applied to a model instead of a brush.
  • Spawnpoint: Place where an entity will appear in-game, such as player or item spawn point.
  • Void: Area outside of the map which creates HOMs when seen. It should never be visible to the player.

BSP stage[]

Taken from SmallPileOfGibs' q3map explanation.[1]

It's the process which generates the BSP tree from the brushes of the map. The goal is to use the fewest splits possible to split the space of the map into convex volumes, each of which doesn't contain any structural brushes. The Leaf Nodes outside of the hull are pruned after the creation of the BSP tree. The result is stored in a .bsp file, the format used for compiled OA levels.

  • Leaf Node: Convex Volume bounded by Planes, stored in the BSP Tree.
  • BSP Tree: (short for Binary Space Partition Tree) Binary tree composed of Leaf Nodes, which makes it easy to determine which Leaf Node the viewpoint of objects are in.
  • Player-navigable space: Everywhere in the game World which isn't a brush, which is both solid and structural. All World Brushes are solid and structural unless a different Content Property is set. Non-structural properties include detail, playerclip and trans. Non-solid properties include nonsolid, WATER and LAVA.
  • Map: Tridimensional Volume of space extending +/- 4096 units from the (X,Y,Z) origin, containing smaller solid convex volumes bounded by structural brushes. It's a hollow space made up from a number of Leaf Nodes contained within a solid outer hull.
  • Leak: A leak in a map is caused when the hull of a map is not properly sealed and there is a gap between brushes which leads into the void. In this situation, it isn't possible to separate the Entities on the inside from the "void" outside of the grid. Leaks cause a HOM effect and won't allow the map to enter into the VIS stage.[5]
  • Z-Fighting: An effect caused when two brushes have surfaces that overlap each other on the same plane[5], resulting in the engine trying to draw both simultaneously.[9]
  • T-Junction errors: (also Sparklies) A visual artifact resulting from patch vertices that are not properly matched to world geometry.[9] Tiny cracks generated by vertexes lying on edges which cannot be split.

VIS stage[]

Taken from SmallPileOfGibs' q3map explanation.[1]

Short for Visibility. It's the process which creates the PVS Table for the Portals in the map. As the player's viewpoint moves around a FULLY vis'd BSP, different areas become visible or hidden, depending on the area the viewpoint is in.

  • PVS Table: (short for Potentially-Visible Set Table) Table containing the potentially visible leaf-nodes for the player.
  • Portal: Limit barrier which separates Leaf Nodes.
  • Hint brushes: (also common/hint) Invisible, non-solid and structural brushes which are used to force VIS to split a brush during compile.[5]

Light stage[]

Taken from SmallPileOfGibs' q3map explanation.[1]

The lighting stage, where lightmaps are generated for every world surface in the map. It has no effect on BSP, VIS, Hints o r_speeds.

  • Lightmap:
  • Luxel: Lightmap pixel.

BSPC Stage[]

Taken from SmallPileOfGibs' q3map explanation.[1]

Uses the BSPC tool in order to create the AAS map used by the OA bots in order to navigate the map. The BSPC tool itself requires a .bsp map which doesn't leak.

  • AAS file: (short for Area Awareness System File) File with areas used by the Q3A/OA bots in order to navigate and understand a map.[10]
  • Area: Convex volumes of splitted space which the bots use for navigation. It's the equivalent to the Leaf Nodes in BSP, but this also takes in account brushes such as common/botclip and common/donotenter. Bots use these in order to navigate between Entities in a map.
  • Cluster: Groups of connected Areas separated from other Clusters by solid walls or Clusterportals. Due to the way the OA bots work[11], if there's large number of areas in a Cluster, the bots' CPU usage will be higher while they are in it. More than 1000 areas give a performance hit, the recommended is below 500.
  • Clusterportal: Portals which separate Clusters in the same way the VIS Portals separate Leaf Nodes. Without Clusterportals, most maps will have a single large Cluster of Areas, and as a result, the AI CPU usage will be higher. The Clusterportal brushes (common/clusterportal) are used to control the way BSPC creates Clusters, by adding additional Clusterportals for BSPC to consider.
  • Bot-navigable space: Anywhere on the inside of the map which isn't a solid player-clipping brush.

References[]

  1. 1.0 1.1 1.2 1.3 1.4 1.5 SmallPileOfGibs' q3map explanation
  2. Patches on GTKRadiant Manual Wikibook
  3. The command r_lodCurveError controls how much the LOD changes with distance, and r_subdivisions fixes the maximum LOD for all curves.
  4. 4.0 4.1 GTKRadiant manual
  5. 5.0 5.1 5.2 5.3 5.4 5.5 Glossary terms at interactivedeath.net
  6. Not to be confused with FPS, First Person Shooter, the gaming genre which OA is part of.
  7. These can be seen with cg_drawfps 1.
  8. r_speeds 1 allows the dev to see the amount of rendered polygons at a time. r_showtris 1 allows the dev to see the physical pmlygons being rendered.
  9. 9.0 9.1 Glossary of terms
  10. http://icculus.org/gtkradiant/documentation/Compile_Manual/bspc.txt
  11. At any point in time, they have to be thinking in all the areas in whichever Cluster they're in.
<< Previous (Compiling and packaging) Mapping manual (Appendix B: Advanced features) Next >>
Advertisement