Marathon Mapmaking: Setup, Snafus, & Solutions

This document is a guide to content creation for Marathon Aleph One, an open-source engine based on Bungie’s groundbreaking first-person shooter trilogy (1994-1996) – not its upcoming extraction shooter (though I’m quite intrigued by the latter).

This is primarily designed as an advanced document and contains far more information than beginners will need (or even want) to know; if you’re just getting started, you should consult my beginner’s guide instead. However, I recommend bookmarking this link so you can return here when you’ve mastered the basics.

My beginners’ guide features links to editors, the official Forge and Anvil documentation, the official Forge tutorials, other useful guides/resources, and links to communities where users may be able to find solutions to problems not covered in any of my guides.

This guide contains overviews of both common and uncommon problems creators may face (and solutions thereto). It’s meant to help troubleshoot several problems with Marathon content creation that, as far as I know, aren’t documented anywhere else well, if at all.

I’m currently reorganizing this guide into smaller, more digestible pages – apologies for the inconvenience, but the ultimate form should be both more accessible and more logically organized.

Should you have any suggestions for improvements to this guide or notice any errors, please either contact me or submit to this page’s GitHub repository. (If you’d like to be credited, please let me know.)

Table of Contents

  1. Introduction
  2. Table of Contents (you’re looking at it?)
  3. General
  4. Mapmaking
    1. General Notes
    2. Scripts, Monster Limits, & Music
    3. Tags Are Terrible (though sometimes inexorable)
      1. Ways to Avoid Tags
    4. Ambient Sound
    5. Marathon 1 Legacy Compatibility
      1. Those Weird Marathon 1 Polygon Types
      2. Marathon 1 Mission Types
      3. Marathon 1 Compatibility Flags
    6. 8-bit Software Mode
      1. The Images File
      2. Chapter Screens
    7. Directionality
  5. ShapeFusion
    1. General
    2. Restrictions on Number of Colors
    3. Transparency & Landscapes
    4. Sequence Timing & Film Compatibility
    5. ‘Weapons in Hand’ Sequences
  6. Appendices & Transplanted Content
  7. Acknowledgements
  8. Endnotes

Mapmaking

General Notes

Back to top · Table of contents · Beginners’ guide · Contact me · Website index

Scripts, Monster Limits, & Music

Back to top · Table of contents · Beginners’ guide · Contact me · Website index

Tags Are Terrible (though sometimes inexorable)

Don’t get me wrong – in the right circumstances, they’re immensely useful. But they can also break the game if you don’t know what you’re doing, especially if they’re marked as Repair. If you take two things away from this admittedly opinionated section:

  1. Avoid ever marking tag switches or chip insertion slots as Repair.
  2. If you absolutely must mark such a switch as repair, make sure it controls both a light and a platform that can always activate or deactivate – that will probably work around the worst bugs. Probably. (Though you’d still be able to deactivate the tag switch, which would make it possible to change a level state from complete to incomplete – annoying design, to say the least. This aspect, at least, isn’t a problem for chips – once a chip is inserted, it stays inserted.)

Now, for the gory details:

Back to top · Table of contents · Beginners’ guide · Contact me · Website index

Ways to Avoid Tags

Tags aren’t always necessary; the main cases where they are necessary are for destructible wires, chip insertion, or very odd arrangements of platforms. In most other cases, a sufficiently determined mapper can avoid using them. Some tips:

Back to top · Table of contents · Beginners’ guide · Contact me · Website index

Ambient Sound

Back to top · Table of contents · Beginners’ guide · Contact me · Website index

Marathon 1 Legacy Compatibility

Those Weird Marathon 1 Polygon Types

Back to top · Table of contents · Beginners’ guide · Contact me · Website index

Marathon 1 Mission Types

Back to top · Table of contents · Beginners’ guide · Contact me · Website index

Marathon 1 Compatibility Flags

All of these are found under SpecialLevel ParametersM1 Compatibility.

Back to top · Table of contents · Beginners’ guide · Contact me · Website index

8-bit Software Mode

Aleph One 1.4 restored 8-bit software mode after it had been unavailable for over a decade. This causes potential havoc in territory related to both ShapeFusion (shapes sequences) and Atque (images files, map resources). I address the latter immediately below; see the ShapeFusion section further below for the former.

Chapter Screens & Sounds

Aleph One won’t display a chapter screen in 8-bit software mode unless it has an associated CLUT resource sharing the chapter screen’s resource ID. Make sure to include these if you care about 8-bit software mode at all. Chapter screens go from 1500 (for level 0) to 1599 (for the end screen or, God help us all, level 99). Add 10,000 for ‘24-bit’ versions and (I found this one out the hard way – by noticing it after a scenario release) 20,000 for ‘32-bit’ versions. (This effectively makes 115xx and 215xx unusable if you have a level xx – but I’m not sure if Aleph One will ever display the 115xx picture when the 215xx exists, so if you use 215xx for the chapter screen, you might be able to get away with using 115xx for a terminal picture.)

Also, if there’s an associated sound sharing the 15xx ID, Aleph One will play it. This includes ending screens (though Aleph One also plays the music file, so it’s probably not worth including a sound 1599 unless you plan for your scenario not to have opening music).

Back to top · Table of contents · Beginners’ guide · Contact me · Website index

The Images File

The Images file should have at least images 1100 and 1101 (‘enabled’ and ‘disabled’ versions of the main menu) and 1700 (the vanilla HUD). It also needs CLUT resources with the same IDs. If it lacks images 1100 and 1101 (and their accompanying CLUTs), the menu will show up black if a player selects 8-bit software, and if they then quit the game, they’ll either need to delete their scenario preferences or manually edit them to fix the graphics settings (on the very slim chance they even know how to do this) – which will effectively render the scenario unplayable for many players.

For full reference, the resources in Images correspond to the following:

Add 1,000 to each of these numbers for the ‘24-bit’ versions. It’s ideal to have separate 8-bit and 24-bit versions, as IIRC, Photoshop and GIMP dither images much better than Aleph One does.

Back to top · Table of contents · Beginners’ guide · Contact me · Website index

Directionality

Angle Liquids Objects Lines Sounds
East to west Faces east West to east From west
90° South to north Faces south South to north From north
180° West to east Faces west East to west From east
270° North to south Faces north North to south From south

Back to top · Table of contents · Beginners’ guide · Contact me · Website index

ShapeFusion

General

Back to top · Table of contents · Beginners’ guide · Contact me · Website index

Restrictions on Number of Colors

Palettes (also called CLUTs, short for Color Look-Up Tables, the name for these resources in MacOS’ resource fork in the classic OS) can pose particular problems. One particular issue occurs with non-standard CLUTs.

  1. We’re restricted to 256 colors not just within one palette but across all eight palettes within a collection. If there are more than 256, then once it runs out, Aleph One will simply use the closest color it encounters among the first 256.
  2. Aleph One counts colors that are imperceptibly different as separate colors. For instance, it regards #0100FF (red 1, green 0, blue 255) as different from #0200FF (red 2, green 0, blue 255).
  3. Unlike Anvil (which tried to restrict itself to vanilla-safe colors unless you specifically enabled a setting to override this), ShapeFusion isn’t guaranteed to use the same colors each time it creates a color ramp unless each ramp starts and ends with the same color and contains the same number of colors.

It’s a mess. Two ways to ensure you’re getting the 256 colors you want:

  1. Export all color tables in a collection to GIMP format (.gpl) and go through them with a fine-toothed comb. GIMP palettes are human-readable and can be edited in any text editor; each color is simply listed in RGB format, with values ranging from 0 to 255 for all three colors. After weeding out the unwanted near-identical colors across palettes, save and reimport.
  2. Simply use all 256 colors you want in CLUT 0 and rearrange them as desired in the others if needed. Be warned, however, that ShapeFusion currently has no option to reduce the number of colors per CLUT, should you decide you want fewer. You’d currently need to open the shapes file in Anvil or Hakvil (using an emulator or a classic Mac) and adjust the palettes there.

Note that using non-vanilla palettes causes 8-bit software mode to look very, very stupid, in case anyone even cares about that in a scenario created in 2023. I don’t actually know how it selects the colors for that.

Back to top · Table of contents · Beginners’ guide · Contact me · Website index

Transparency & Landscapes

Marathon counts the first three colors of each CLUT as transparent, whether you want it to or not. Why does it need three? Why not just one? In all likelihood, only Jason Jones might be able to answer this question, assuming he even remembers the answer. This poses problems with custom landscape CLUTs. Why do landscapes even have transparency? Another question Jason Jones probably doesn’t recall the answer to. The first three colors in a landscape CLUT are still considered transparent, and in OpenGL mode, Marathon changes anything it regards as transparent to show up as white.

As a result, for all practical purposes, landscape CLUTs are restricted to 253 colors, so when generating landscape CLUTs, you must account for transparency and fill the CLUT’s first three colors with garbage that won’t show up in the landscape. Alternately (in Photoshop), you can:

  1. Convert to 253-color indexed color.
  2. Convert back to RGB.
  3. Using Forced > Custom with #0000FF, #FF00FF, and #00FFFF, convert to 256-color indexed color.
  4. Export the new CLUT.

Either way. (I don’t use GIMP, but I’m guessing you can do something similar by making a 253-color bitmap, exporting the CLUT, and editing it in a text editor.)

Back to top · Table of contents · Beginners’ guide · Contact me · Website index

Sequence Timing & Film Compatibility

Back to top · Table of contents · Beginners’ guide · Contact me · Website index

‘Weapons in Hand’ Sequences

For years, Aleph One didn’t have 8-bit software mode, so ‘8-bit color’ and ‘true color’ sequences being out of alignment wasn’t a problem. Aleph One 1.4 restored it, so it’s worth taking note if a sequence is present in one and not the other. A physics model calling said sequence in 8-bit software mode will crash Aleph One (or cause an assertion failure; I forget which, but either way, it closes the game). Plus, if a sequence has a different timing between the two versions of a collection, it’ll desync films and may desync network games if one player uses 8-bit software mode and the other doesn’t.

As tempting as it is to tell players not to use 8-bit software mode, some will inevitably disregard it out of ignorance, and others out of pure spite (insert out-of-context ‘Killing in the Name’ quote here). The best solution is to make sure each sequence in both versions has the same sequence type, frames per view, ticks per frame, loop frame, key frame, transfer mode period, and frame sound, then update one anytime you update the other.

By default, the only other collections with ‘true color’ versions are the landscape palettes, and it’s very rare (though not unthinkable) for something to call one of the sequences in these (assuming any are even defined). I think a classic Mac utility could create ‘true color’ versions of other collections (all 32 collections can have them; it’s just that, by default, only the Weapons in Hand and Landscapes did), and if a shapes file had these, their sequences should align between ‘8-bit’ and ‘true color’ wherever they’re defined.

Back to top · Table of contents · Beginners’ guide · Contact me · Website index

Appendices & Transplanted Content

I’ve split several sections off onto their own pages. Please update your links accordingly:

Additionally, to avoid duplicating content, I’ve moved several sections to the beginners’ mapmaking page. Here are direct links to the relevant sections:

Lastly, I’ve moved my biography and contact info to a dedicated page: aaronfreed.github.io/aboutme.html.

Back to top · Table of contents · Beginners’ guide · Contact me · Website index

Acknowledgements

Back to top · Table of contents · Beginners’ guide · Contact me · Website index

Endnotes

# Note
1 What, you don’t have a third hand? Then you must not be Zaphod Beeblebrox.

Back to top · Table of contents · Beginners’ guide · Contact me · Website index