The Annotated Forge Manual (WIP)

With annotations specifically detailing how Weland and Atque, Forge’s modern replacements, differ from Forge, and correcting numerous errata found within the manual. (However, thus far, I’ve only done the first nine pages – twenty-five are left.)

All my annotations are italicized; are either [bracketed], indented, or both; and conclude with –⁠Ed. After this note, all text outside annotations will be Bungie’s (with occasional minor spelling or grammar corrections).

Please contact me if you notice any errors or omissions (besides the parts of the manual I haven’t gotten to, natch). If you need more context for this, I have a beginners’ mapmaking page that should hopefully provide precisely that.

Aaron

Table of Contents

  1. Aaron’s Introduction
  2. Table of Contents (you’re looking at it)
  3. Bungie’s Introduction
  4. Key Definitions
  5. Menu Descriptions
    1. File Menu
    2. Edit Menu
    3. Levels Menu
    4. View Menu
    5. Special Menu
    6. Plugins
  6. The Tools
  7. Setting Up Basic Map Parameters
    1. Options
  8. Tutorial One: A Simple Two-Polygon Room
    1. World Units Explained
    2. Let’s Make a Level!

[Note: List items in a lighter font weight than others at their level link to a different page. See also the detailed table of contents for heading layers below the first two. –⁠Ed.]

Introduction

Forge is the powerful map-making tool used by Bungie to create levels for Marathon, Marathon 2, and now Marathon Infinity. We’ve included Forge with the Marathon Trilogy so that you can create your own fantastic Marathon worlds and share them with friends or upload them to the ’net.

Forge uses a simple 2D perspective to create lines, polygons, and to place objects, sounds, and lights. It also utilizes a cool 3D perspective for texturing, adjusting heights, and fine-tuning the map’s look and feel.

Although Forge is a complicated tool, it is extremely intuitive and easy to learn (provided you’re willing to read a little and watch the tutorials we’ve included on the CD-ROM). In the following pages, we’ll be covering key definitions and descriptions you’ll need to get familiar with (computer geeks like us love to use weird definitions, so bear with us). Later on, we’ll be going through a few step-by-step tutorials that’ll walk you through the map making process. But first, watch the Forge tutorial movies included on the Trilogy CD-ROM and then come back to the tutorials in this manual for more detailed instructions.

Back to top · Table of contents · Mapmaking (basic) · Mapmaking (advanced) · Contact me · Website index

Key Definitions

Level

A single environment, with an entrance and exit, that uses a single texture collection.

[Aleph One no longer requires that maps use a single texture collection; thus, Visual Mode.lua, Vasara, and VAF allow mapmakers to texture levels using textures from any collection. However, I advise using multiple texture sets sparingly for two reasons: first, textures from different collections do not always mesh well aesthetically; and second, using a single texture from any collection will cause Aleph One to load the entire collection, regardless of how many textures you load from it. –⁠Ed.]

Designed for single or multiplayer play. Also known as a Map Level.

[I think this manual is the only place I’ve ever seen the term ‘Map Level’ used in connection with Marathon mapmaking. ‘Solo map’, ‘solo level’, ‘single-player map’, ‘single-player level’ – sure. –⁠Ed.]

Network Level

A single environment, with at least a single entrance but without a user-activated exit, that uses a single texture collection.

[As with solo levels, Aleph One does not require network levels to use a single texture collection; however, for the same reasons, I advise using multiple texture sets judiciously. –⁠Ed.]

Designed for multiplayer combat, without save stations or computer terminals.

Map

A collection of levels and/or network levels that have been ‘merged’ into a single, stand-alone collection.

Merge (Merging)

The process of stringing together a collection of levels, like the map included with the Infinity application. In addition, a merged map may contain terminal text, terminal pictures, and for Marathon Infinity levels, level-specific physics models.

[This is one of the few things you would use Atque to do rather than Weland. –⁠Ed.]

Back to top · Table of contents · Mapmaking (basic) · Mapmaking (advanced) · Contact me · Website index

Polygon

A level in Marathon is basically a bunch of polygons connected together. What’s a polygon, you ask? Well, the technical term is, “a closed figure bounded by three or more line segments.” For example, a triangle is a polygon with 3 sides, while a square is a polygon with 4 equal sides. A polygon in Marathon can have a maximum of 8 sides (octagon) and a minimum of three (triangle). In Marathon, these polygons have to be convex (not concave). This means that all angles inside a given polygon must be >180°.

[This last sentence is impressively wrong: it’s incorrect for every possible angle. It should conclude either, “must be ≤180°,” or, “must not be >180°.” –⁠Ed.]

A good way to think about convex polygons is if you tried to put an imaginary rubberband around a polygon and the rubberband does not completely touch one of the sides, then the polygon is not convex. If the rubberband touches all sides, then the polygon is convex.

In the diagram below, the second polygon is not fillable (a term discussed later) because it is not convex. However, by adding a line (where the two dark circles are in the right diagram below), you can make two different polygons that are convex.

Back to top · Table of contents · Mapmaking (basic) · Mapmaking (advanced) · Contact me · Website index

Line

A line connects two vertices. Lines can be either solid, transparent, or empty.

[This is not strictly accurate: lines can be both solid and transparent; they can also be neither solid nor transparent, which can be a clever way to hide secrets. “Empty” corresponds roughly to “Remove Textures” in Weland; Aleph One also adds a new “Decorative” option, which means that if and only if a side has a transparent texture on it, projectiles will always pass through it. –⁠Ed.]

Players cannot pass through solid sides.

[This is also not strictly accurate: a solid side must have a texture on it to be impassable to players, either as a primary or transparent texture. The primary texture need not be visible; adjusting the adjoining polygon to have a higher floor or lower ceiling, applying a texture to the side, and then restoring said polygon to its original height will make the side impassable. Note that this will also make it impassable to projectiles (unless a transparent texture is applied and it is marked as “decorative”); additionally, be aware that it is possible to make one-way gates this way. –⁠Ed.]

If a line is transparent, you can see and walk through it.

[This, too, is not strictly accurate: it is possible for sides to be both solid and transparent. If a texture is applied to the side, said side is impassable. –⁠Ed.]
If a line is empty, then there’s no texture on it.

Back to top · Table of contents · Mapmaking (basic) · Mapmaking (advanced) · Contact me · Website index

Vertex (pl. vertices)

A vertex is a point at either end of a bounding line that defines the edge of a polygon. Every line has two vertices.

Platform

A platform is a polygon which has the ability to move up and/or down. A platform may be one of two types: Doors are special types of platforms and can be opened and closed by the action key, or a platform, which is a movable polygon which the player can stand on and be transported up or down.

Draw Mode

Forge has two editing modes. Draw Mode is Forge’s 2D representation of a map. This looks similar to the map view in the game when the player presses ‘M’ except that additional information is available.

Visual Mode

Visual mode, Forge’s secondary mode, uses a 3D representation of the world which is similar to playing the game. In this mode the weapons manifest is replaced by a palette containing the current texture collection. Furthermore, the mouse can be used to place and move textures around on the sides of polygons. Lastly, there are no monsters or weapons visible, though scenery will be displayed.

Back to top · Table of contents · Mapmaking (basic) · Mapmaking (advanced) · Contact me · Website index

File Menu

New Level

Creates a new level.

Open

Allows you to open an existing level or map.

Close

Closes the current file.

[Weland does not have this option. –⁠Ed.]

Save Scenario

Allows the current level to be saved. Merged maps cannot be edited and saved.

[Weland simply calls this “Save”. –⁠Ed.]

Save Scenario as...

Allows the current level to be saved under a different name.

[Weland simply calls this “Save As”. –⁠Ed.]

Merge Levels...

Compiles individual levels into a single Map file.

[Weland does not have this function; Weland levels should be merged with Atque. –⁠Ed.]

Export Level...

Allows a level to be exported from a previously merged Map file. This process extracts only the level and not terminal texts or the embedded physics model.

[In Weland, this is accomplished simply by selecting “Save” or “Save As” after loading a merged map file. Note that this will save the level with its corresponding terminal texts and script files; I advise using Atque to strip those afterwards, as including them in a split map folder can cause problems. –⁠Ed.]

Export OBJ...

A feature added to Weland that exports the map geometry as a WaveFront .obj file, which can be loaded in programs such as Blender, Maya, AutoCAD, and Photoshop. –⁠Ed.

Quit

Quits Forge.

Back to top · Table of contents · Mapmaking (basic) · Mapmaking (advanced) · Contact me · Website index

Edit Menu

Undo

Will undo the most recently performed action.

Preferences...

Weland Preferences

There are three Preferences in this section. Graphics lets you modify Visual Mode resolutions and brightness. Key Settings allows you to modify keyboard settings.

[In Weland, you edit both of these by clicking ‘Edit Preferences’ underneath Scenario in the Visual Mode section, then editing Aleph One’s settings. For detailed information on setting up Visual Mode, see my Weland setup guide. –⁠Ed.]

Colors lets you change the most prominent colors used in Draw Mode.

[Weland adds multiple new sections to its Preferences.

Back to top · Table of contents · Mapmaking (basic) · Mapmaking (advanced) · Contact me · Website index

Levels Menu

This menu will display the name of the currently active level. In an unmerged level this will be just one name. However, in a merged map you can navigate between individual levels.

View Menu

Draw Mode

Switches to the 2D overhead map view. All polygon creation and object placement is done in this mode.

Visual Mode

Switches to the 3D view. Texture placement, alignment, and height adjustments are done in this mode.

[Currently, no visual mode plugins for Aleph One support height adjustments, although I plan to add it to VAF someday. For now, you must use ‘Elevation’ to set polygon heights. –⁠Ed.]
Floor HeightsCeiling Heights

Elevation

Shows a 2D view of ceiling and floor elevations by color-coding heights. Elevations may range from −9 W.U. to +9 W.U.

 
[Weland allows heights to range from −32 WU (−32,768 IU) to +31.999 WU (+32,767 IU); however, be aware that if any side the player can view extends more than 32 WU above or below the player’s camera height, a hall-of-mirrors glitch will result. Additionally, game behavior will get very glitchy below −31 WU (−31,744 IU) or above +31 WU (+31,744 IU). –⁠Ed.]
Floor TexturesCeiling Textures

Textures

Allows you to modify floor and ceiling textures.

Polygon Types

Polygon Type

Used to assign specific values to polygons (ie. Monster Impassable, hill, etc.).

Floor LightsCeiling LightsLiquid Lights

Lights

Shows ceiling, floor and liquid light intensities. Also allows these settings to be edited and new light types to be defined.

Liquids

Liquids

The liquids menu lets you create and edit new liquid types and assign them to polygons.

Ambient SoundsRandom Sounds

Sounds

Here you can create and edit new liquid [sound –⁠Ed.] types and assign them to polygons.

Back to top · Table of contents · Mapmaking (basic) · Mapmaking (advanced) · Contact me · Website index

Special Menu

Zoom In/Zoom Out

Allows the visible level area to be enlarged or reduced.

Map Manager

This palette lets you customize some Draw Mode Parameters. The options are:

Grid Sizes
Grid Size

Selects the resolution of the grid.

Display Grid
Display Grid

Toggles the grid on or off.

Constrain to Grid
Constrain to Grid

This will constrain all line vertices to the currently displayed grid. It only constrains when you create a new line, not when you move it.

 
[Note that, while ‘Constrain to Grid’ doesn’t constrain lines or polygons that you move, it does constrain vertices. –⁠Ed.]
Custom Grid
Custom Grid

[Rotate, resize, or move the grid. See Circles and the Custom Grid for a detailed explanation. –⁠Ed.]

Show MonstersShow ItemsShow Scenery
Show PlayersShow SoundsShow Goals
Show Monsters, etc.

These checkboxes allow you to toggle objects and annotations on or off in 2D mode.

[Weland currently has no toggle for the display of annotations. –⁠Ed.]
 
Visual Mode Crosshairs

The crosshairs are used as a visual aid to place textures in 3D mode (when using the spacebar). This checkbox allows you to toggle the crosshair on or off.

[Whether the Weland toolchain has an equivalent of this setting is entirely up to the plugin used for visual mode. Pressing F8 in visual mode will toggle crosshairs if the plugin supports it. –⁠Ed.]
[Apart from Visual Mode Crosshairs (which is controlled directly within visual mode itself), Weland replaces the Map Manager with a palette directly below the main menu. Hover over each icon to see what it does. –⁠Ed.]

View Height Window

These two vertical sliders control the currently visible floor to ceiling region. If a level has a lot of overlapping polygons at different heights, this feature lets you isolate the view to show only the polygons you’re working on.

[This window has been replaced with two horizontal sliders at the bottom of the window. –⁠Ed.]

Goto...

Sometimes an error message will indicate that a specific polygon is convex or that something else is wrong. The error message will indicate the offending polygon by its number. Use the Goto command to quickly locate that polygon, line or vertex.

Set Level Parameters

This allows you to make changes to a level’s parameters. Here you can change texture collections, landscapes, etc. The dialog will also indicate whether or not the current level is compatible with both Marathon 2 and Marathon Infinity or just Marathon Infinity.

[Weland does not display the compatibility information, presumably because there’s no guarantee that a map made with Weland will be compatible with either game – and hardly anyone runs the vanilla games anymore, anyway. –⁠Ed.]

Set Item Parameters

Allows the number, frequency and randomness of placed objects to be edited.

Set Monster Parameters

Allows the number, frequency and randomness of monsters to be edited.

Recenter Level

This command will take your entire map and physically recenter it to the map.

[Forge veterans should note that Weland will only move maps by multiples of 1 WU (1,024 IU) when recentering them. Forge was not so picky. –⁠Ed.]

Pave Level

Will take three generic textures from the current collection and texture all polygons in the level. One texture for the floor, one for the ceiling, and one for the walls.

[This only applies to untextured floors, ceilings, or sides that would be visible at the time the command is run (i.e., its reverse polygon’s floor is higher than its obverse polygon’s, or its reverse polygon’s ceiling is lower than its obverse polygon’s, or it has no reverse polygon. For an explanation of the terms obverse polygon and reverse polygon, see VAF’s readme).

Both Forge and Weland always pave walls with the sixth texture in the set selected in Level Parameters, floors with the seventh texture in the set, and ceilings with the eighth texture. –⁠Ed.]

Nuke Textures

Resets all textures in the level to the following:

  • Walls: Frame 5 (the sixth texture) of the Environment set in Level Parameters
  • Floors: Frame 6 (the seventh texture) of the Environment set in Level Parameters
  • Ceilings: Frame 7 (the eighth texture) of the Environment set in Level Parameters
Also resets all transfer modes to “Normal”, removes all transparent textures, and resets lights of all walls (but not all floors or ceilings) to 0. –⁠Ed.

Nuke Objects Only

Will remove all objects from the level.

[Weland simply calls this ‘Nuke Objects’. –⁠Ed.]

Nuke & Pave Level

This will remove all textures and objects from the map (but not liquids). If you want to import maps created in Pfhorte (a shareware Marathon level editor), you need to Nuke and Pave the map before working with it in Forge. This will eliminate most map incompatibilities.

[Weland separates this command into ‘Nuke Textures’ and ‘Nuke Objects’. –⁠Ed.]

Back to top · Table of contents · Mapmaking (basic) · Mapmaking (advanced) · Contact me · Website index

Plugins

Lists all Weland plugins you have installed. Weland comes with two, although you may have to enable them in your OS’ security settings. They are:

Auto Shade Level

Sets all floors’ lights to 5, all ceilings’ lights to 10, and all walls’ lights to values from 3 (for walls facing south) to 13 (for walls facing north). Warning: if you have already begun to light your map, this will overwrite the lighting you have applied – be careful!

Enumerate Tags

Lists all tags used in your map, what lights and platforms are set to use them, and what lines are attached to switches that control them. Note that if a tag is associated with a terminal script rather than a switch of some sort, this plugin will not see it. –⁠Ed.

Back to top · Table of contents · Mapmaking (basic) · Mapmaking (advanced) · Contact me · Website index

The Tools

These tools are available from the tools palette in Draw Mode. Keyboard shortcuts are in parentheses.

Arrow (A)

Arrow (A)

Used to select vertices, lines, polygons and objects. Double-click on a vertex or line to make even finer adjustments.

Line (L)

Line (L)

Used to draw polygon outlines.

Fill Tool (F)

Fill Tool (F)

Fills the polygon created with the line tool. This assigns the polygon default floor and ceiling elevations and turns it into a valid 3D space.

 
[This is not strictly true – Forge and Weland both attempt to read floor and ceiling elevations, as well as texture and light information, from nearby polygons. If no polygons share a line, both programs will give the new polygon default heights and lighting; it will also be untextured if no nearby polygons are textured. –⁠Ed.]
Polygon Tool (P)

Polygon (P)

Used to create generic polygon outlines with a fixed number of sides. Double-click on this tool to set the polygon type. Note: the vertices generated by this tool aren’t linked to any outside of this polygon so they have to be manually connected to other polygons.

 
[This tool does not exist in Weland. If you need to make a regular polygon with a specific number of vertices, I wrote a guide to using the custom grid to do precisely that. –⁠Ed.]
Move Tool (D)

Hand Tool (D)

Drags the visible region of the level. Hold down the spacebar in any top-down view mode to change the current tool into the hand tool.

 
[Weland renames this to the Drag Tool, but it functions in exactly the same way. –⁠Ed.]
Zoom Tool (Z)

Zoom Tool (Z)

Zooms the map in large increments. Hold down the option key to zoom back out. Command + and command - also zoom the map in and out but in much smaller increments.

 
[In Weland, these zoom by the same increment. Additionally, as is commonly the case, replace ‘Command’ with ‘Control’ on Windows and Linux. –⁠Ed.]
Text Tool (T)

Text Tool (T)

Places text notes [also called annotations –⁠Ed.] inside the current polygon. This text will be visible from within the game when the user views the map. It’s used to name rooms or regions of a level. To modify existing annotations, double-click on them with the arrow.

Object Tool (O)

Object Tool (O)

Places objects on the map. Objects include items, player locations, monsters, fixed sound sources, scenery, and level goals.

Back to top · Table of contents · Mapmaking (basic) · Mapmaking (advanced) · Contact me · Website index

Setting Up Basic Map Parameters

The Level Parameters dialog shows whether or not a level is compatible with Marathon 2 and Marathon Infinity or just Infinity. Your map is compatible only with Infinity if it:

[Weland does not mention whether a map is compatible with Marathon 2 or Marathon Infinity, largely because there’s no guarantee that a map made with Weland will be compatible with either of them! –⁠Ed.]

Options

Environment

This selects the texture set for the level. The available sets are: Water, Lava, Sewage, Jjaro and Pfhor. You can change texture collections at anytime during your map making process by changing the environment.

[Note, however, that in Weland, this does not change the existing texture assignments – in fact, in Weland, the only thing it meaningfully affects is which texture collection and scenery set are guaranteed to load, and which textures will be assigned by ‘Pave Level’. In Forge, changing a map’s environment is effectively the equivalent of nuking all textures that are not from a landscape collection. –⁠Ed.]

Landscape

Sets the background image (sky) for the entire level.

[Again, changing these will not change the existing texture assignments in Weland. In Forge, this would automatically change all landscapes to the new landscape collection; moreover, it wouldn’t renumber them, so anything that was textured with the second landscape in its collection would remain the second landscape in its new collection. This could pose problems if landscape collections had varying numbers of textures, since Marathon Infinity was not nearly as forgiving of missing graphics as Aleph One is. –⁠Ed.]

Game Type

This sets the gameplay options for the map.

Environment Type

Vacuum

In a vacuum level, the player uses his internal oxygen supply (which will diminish over time), and only the pistol, fusion pistol, SMG, Shotgun, and Alien Weapon work.

Rebellion

Some monsters, such as the Compilers, will fight on the side of the player.

[This is incorrect; this is only an element of ‘Rebellion (M1)’. –⁠Ed.]

The player also starts out with no weapons and low health, and in ‘hands-down’ mode.

[To be precise, players’ health, if it is greater than 37, is reduced to 37; however, if it is below 37, it will not be increased. Players ordinarily start with 150 health and die if their health falls below 0. The values of 37 and 150 are both customizable using MML. –⁠Ed.]

Rebellious aliens are set by changing the physics model for that level with Anvil.

[They actually aren’t, nor are they set with ShapeFusion. In fact, I don’t know if they’re even customizable. –⁠Ed.]
Low Gravity

Gravity is low. Duh.

Magnetic

The motion sensor is inoperative most of the time and gives false readings.

Mission Type

Extermination

The player must kill everything.

[Nope. Players must only kill monsters that are marked as ‘Alien’ in the physics, regardless of whether they’re hostile to players, and players are allowed to leave as many as eight of them alive unless ‘Rebellion’ (not ‘Rebellion (M1)’) is set under Environment Types. Exception: Monsters set as must_be_exterminated in MML must, in fact, be exterminated. Also, monsters that teleport out are counted as killed for the purposes of Extermination missions. –⁠Ed.]
Exploration

The player must explore all polygons labeled as ‘Must Be Explored’.

[Visual Mode.lua and Vasara 1.0.x will reset these to Normal if the player walks over them (or, if ‘Exploration (M1)’ is set as the mission type, even looks at them). Be careful. By default, VAF fixes this at the cost of making Exploration missions impossible to complete while it is running. –⁠Ed.]
Retrieval

The player must find items, ie. all the Uplink Chips and S’pht keys placed on the Map.

[This depends more specifically on what is classified in the ‘Generic Items’ category (category 3) in MML. If other items are also added to this category, then the player must also collect all of them. –⁠Ed.]
Repair

The player must reset all switches flagged as repairable.

Rescue

The player must make sure that 50% of the civilians (Bobs) survive.

[This mission type is non-functional. Use ‘Rescue (M1)’ if you want this behavior. –⁠Ed.]

Back to top · Table of contents · Mapmaking (basic) · Mapmaking (advanced) · Contact me · Website index

[Due to its length, I’ve elected to break up The Annotated Forge Manual into multiple pages. The next part can be found at forgetutorial1.html. –⁠Ed.]

Back to top · Table of contents · Mapmaking (basic) · Mapmaking (advanced) · Contact me · Website index