Marathon Mapmaking: Starting Steps

This is a starters’ guide to creating content for Marathon Aleph One, an open-source engine based on Bungie’s groundbreaking first-person shooter trilogy (1994-1996). This is meant as a concise⁽¹⁾, accessible repository of information both for beginning mapmakers and for mapmakers who’ve used Forge (Bungie’s official Marathon Infinity map editor), but not its modern replacement Weland.

Thus, I’ve included links to modern editors for Aleph One, a guide to setting up Weland and a visual mode plugin (either Vasara, VAF, or Visual Mode.lua) in Windows and MacOS, links to the first resources you should read and watch once you’ve got Weland running, Forge manual errata, descriptions of a few aspects of modern mapmaking that aren’t covered by the Forge tutorials, and links to more advanced resources.

Once you’re familiar with the basic principles, I have a more advanced (and opinionated) guide that in turn features appendices that cover specific mapmaking topics in further detail. 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. Aleph One Content Editors
    1. Marathon 2/Infinity Format
      1. Comparisons of Texturing Utilities
    2. Marathon 1 Format
  4. Weland Setup
    1. First Steps
    2. Configuring Weland’s Preferences
    3. Visual Mode Setup
      1. Installing Visual Mode.lua, Vasara, or VAF (MacOS)
      2. Installing Visual Mode.lua, Vasara, or VAF (Windows)
    4. Configuring Weland!Aleph One
  5. Mapmaking Basics
    1. Tutorials & Resources for Beginning Mapmakers
    2. Forge Manual Errata & Omissions
    3. Mapping Issues in Weland
    4. Texturing Issues in Visual Mode.lua, Vasara, and VAF
      1. Further Texturing Issues in Vasara and VAF
  6. Further Reading
    1. Advanced Tutorials & Resources
    2. Marathon Communities & Resources
      1. Game Files
      2. Hi-Res Graphics
        1. Bespoke Graphics
        2. Upscaled Game Assets
      3. Communities
      4. Story & Lore References
      5. Gameplay Resources
      6. Wikis
      7. Music & Sound Resources
  7. Author Biography & Contact Info
  8. Acknowledgements
  9. Endnotes

Aleph One Content Editors

Marathon 2/Infinity Format

Bungie’s two official editors were Forge (mapmaking) and Anvil (physics, shapes, sounds). I won’t address how to run these in this guide, because they don’t run on any operating system past MacOS 9.2.2, and there are vastly better replacements for both programs that actually run on modern operating systems. The next section, “Comparison of Texturing Utilities”, may help you decide which visual mode replacement you want.

While you might expect Forge+ to be roughly equivalent to Forge, Weland is actually much closer to it, to the extent that roughly 90% of the Forge tutorials can be applied wholesale to Weland. I list all the important differences I’m aware of below, and they make up a relatively small portion of this document; for most users, setup will be by far the most complicated difference to navigate.

Forge+ runs in Unity rather than Aleph One, which has some interesting ramifications. Because Aleph One is a portal engine, it is not possible to “noclip” into negative space (outside the map bounds); the engine needs to render using valid X, Y, Z, and polygon data to decide what should be visible, so attempting to render a scene from outside the bounds of any polygon simply crashes the engine. Unity, not being a portal engine, is not bound by this limitation, so you can use Forge+ to view an entire map at once from negative space. On the other hand, Forge+ is completely confused by “5D space” (two or more polygons occupying the same X/Y/Z space) and simply draws all walls.

Unfortunately, Forge+’s feature set is nowhere near as robust as Weland’s. It’s perfectly adequate for texturing, but without a hook to switch quickly back and forth between it and Weland, it’s more impractical than it should be. However, it’s still invaluable for providing a much better sense of the physical space various levels occupy.

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

Comparisons of Texturing Utilities

I recommend for new mappers to start with Vasara 1.1; then, once you’re comfortable with its features, try VAF and see if you find its added features useful.

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

Marathon 1 Format

Unfortunately, Marathon 1 content editing is barely supported on modern OSes, with a few exceptions, the most noteworthy being two different physics converters: one by @magical_beetle_40501 on Discord that I’m hosting here myself, and the other being Solra Bizna’s Physics Eater (which is missing names but is otherwise more comprehensive. I intend to make a set of names at some point but have not had time yet).

A partial exception: You can extract M1 sound files’ contents by splitting them with Atque, but it won’t re-merge them into a format Aleph One reads as M1 sounds.

Technically, Hopper’s Perl utilities also count as support for shapes editing on modern operating systems; however, Perl requires a considerable amount of technical knowledge to use (it’s been jokingly referred to as a “write-only language”), and assisting users with getting it to work is well beyond this document’s scope.

The ‘Classic OS’ resources below require a Mac or emulator running Classic Mac OS (i.e., System 7 through 9). Setting one up is also well beyond this document’s scope.

To make Marathon 1 content from the classic Mac OS work with modern Aleph One, you must run it through MacBinary (I’ve never gotten this to work) or extract it from an emulator disk image with a program like HFV Explorer (the method I used for my remastered Marathon 1 and Trojan sounds).

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

Weland Setup

First Steps

Configuring Weland’s Preferences

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

Visual Mode Setup

Next, you’ll need to set up an editor for Weland’s visual mode, which (despite its name) can use either Visual Mode.lua, Vasara, or VAF. Whichever you choose, the scenario you wish to edit must have access to it.

I’ve separated the following steps for MacOS and Windows, since the steps for each are vastly different. I plan to add a detailed Linux guide eventually; for now, I’ll simply note that compiling Aleph One yourself is vastly easier than getting Weland to work with a flatpak.

Installing Visual Mode.lua, Vasara, or VAF (MacOS)

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

Installing Visual Mode.lua, Vasara, or VAF (Windows)

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

Configuring Weland!Aleph One

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

Mapmaking Basics

Tutorials & Resources for Beginning Mapmakers

Although the manual and video tutorials listed below are (obviously) for Forge, Weland has an almost identical interface, and 95% of their contents apply just as well to Weland once you have Vasara, VAF, or Visual Mode.lua set up. I’ve begun annotating the Forge manual to make it work better as a reference for Weland and to correct all its errata, but I’ve only annotated about a quarter of it as of this writing (2024-04-27), and I’ve yet to edit any of my annotations (some of them are currently way too technical for their positions in the manual). I’ve also documented the Forge manual’s most significant errata immediately below this section.

Essentially, you’ll use Weland for everything you’d do from Forge’s top-down view; you’ll use Visual Mode.lua, Vasara, or VAF for almost everything you’d do in Forge’s visual mode (currently, neither has an ‘align heights’ feature); and you’ll use Atque for merging and splitting maps.

The modern replacement for Anvil is ShapeFusion; its feature set is very nearly identical to Anvil’s, although it does a few things differently. Nonetheless, the annotated Anvil help balloons will be essential, since they’re one of the few Anvil features not integrated into ShapeFusion. The default Infinity physics model is also essential because the “Standard” physics model distributed with Marathon Infinity is actually a Marathon 2 physics model (thanks, Bungie), so if you want to edit VacBob or SMG physics, you’ll have to grab the one from Simplici7y.

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

Forge Manual Errata & Omissions

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

Mapping Issues in Weland

Weland has some differences from Forge and a few (mostly minor) bugs. It’s worth being aware of these issues:

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

Texturing Issues in Visual Mode.lua, Vasara, & VAF

A few problems occur when texturing in Aleph One that were not problems in Forge. These include:

Further Texturing Issues in Vasara and VAF

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

Further Reading

Advanced Tutorials & Resources

I can’t vouch for the accuracy of all of this info (except, I hope, my own page), and you definitely shouldn’t worry about most of this stuff until later – you need to familiarize yourself with the fundamentals before moving onto more advanced techniques. (If you don’t know how to play a paradiddle, you aren’t ready to cover a Neil Peart solo.) Hastur’s Workshop is listed first here because it’s the first advanced tutorial you should read – while not all of it is still relevant, you can still find helpful nuggets even in the seemingly irrelevant bits (e.g., viewing distances are no longer limited to 30 World Units, but the tips on that page can still be helpful for making spaces seem larger than they are, which is especially helpful since there are really only about 63 usable World Units in each direction).

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

Marathon Communities & Resources

Game Files

Hi-Res Graphics

Bespoke Graphics

Upscaled Game Assets

Communities

Story & Lore References

Gameplay Resources

Wikis

Music & Sound Resources

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

Author Biography & Contact Info

I began mapping for Marathon Infinity in 1997 and have since worked on a long list of projects; the best known are probably Apotheosis X (sounds, scripting) & Eternal X (levels, music, sounds, scripting, writing, etc.). See my portfolio for an exhaustive list, or my About Me page for my contact information & a more detailed biography.

As mentioned, I also have an advanced mapmaking page that goes into much more depth. You may also be interested in my Marathon soundtracks page. My discography page features additional Marathon-related music, and I’ve written detailed commentary on my recent music. Additionally, my notes on my remastering process may be helpful to those working on sounds or music.

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

Acknowledgements

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

Endnotes

# Note
1 By my standards, at least!
2 Namely, when VAF loads the map, it makes a table containing all polygons marked as “Must Be Explored”, then in Triggers.idle, Triggers.postidle, and Triggers.cleanup, it scans that list, and if any polygons have been set as “Normal”, it resets them to “Must Be Explored”. If this doesn’t make sense to you, don’t worry; it’s in a footnote because it’s far beyond the scope of this guide.
3
  • Tie the platform’s activation to some specific action on the map, such as a “platform on trigger” on the player’s spawn polygon; then X+click to load the level from elsewhere when you go to texture.
  • Set the “platform on trigger” as something besides the starting polygon that players must walk on before they can see the platform; then teleport around the map to avoid walking on it.
  • Another solution is reportedly to type .save level in the Lua console rather than to close visual mode; you’ll then have to (re)load the version you saved (which will show up here) in Weland.
  • If you use any of the above solutions, you’ll need to remember to repeat it each time you open visual mode. If you’re comfortable with Lua, you can save yourself the trouble by simply having the level’s Lua script activate platforms in Triggers.init. (I strongly recommend never using polygon IDs in Lua scripts, since you’d have to rewrite them after deleting polygons with smaller IDs; instead, put goal objects on them with checkpoints set to a memorable number you won’t use for anything else.)
4 Trojan, EVIL, Tempus Irae, RED, Eternal X, Rubicon X, Phoenix, Mararthon Yuge, Apotheosis X, and Istoria.
  • I’d unconditionally recommend Tempus Irae, Eternal X, Phoenix, and Apotheosis X, but I feel ethically obligated to note the small caveat that I may be biased as a contributor in some fashion to current or forthcoming releases of all four: I remastered Phoenix’s music; wrote Apotheosis X’s Lua and remixed/remastered some of its sounds; and did too many things to list for Eternal X and Tempus Irae Redux. However, I was listing all four of these scenarios on what was, at the time, my top five list long before I worked on any of them, so that caveat is so small you’d need a microscope to see it.
  • Rubicon X and Istoria round out my top six with the caveats ‘don’t play Rubicon X above Normal unless you think LASO is fun’ and ‘the Flame IADD fight can heck right off’.⁽⁵⁾
  • If you’re attuned to Yuge’s irreverent humour, it’ll reward you with fantastic gameplay and a remarkable demonstration of procedural level design.
  • Trojan is great for those who wish Marathon 1 had been longer. Even if you don’t play it, check out the OST, which slaps. (Also, I remastered the music and sounds for the standalone edition; unfortunately, its fork of Aleph One is years behind its current feature set).
  • RED’s execution can be sloppy, and it’s probably too difficult, but it has some fantastic ideas and artwork, and it’s remarkable for having been made almost entirely by a single person – a teenager at the time, to boot. It’s little surprise that he later became a professional game and webcomic artist with credits including the Slime Rancher series, Spiral Knights, Three Panel Soul, and Mac Hall.
  • Lastly, EVIL’s strengths include professional-quality sprites; fantastic sounds, monsters, and weapons; and sometimes brilliant (if frustratingly inconsistent) level design.
5 To be fair, Istoria 1.1, which I haven’t played yet, rebalances the Flame IADD fight – what I’ve read leads me to suspect that I’ll find the redesigned version somewhat less obnoxious.

…Also, I’ve technically contributed to Rubicon X as well, though I’m uncredited; on 2022-09-21, I released a plugin that was effectively integrated wholesale into the game on 2024-04-25. I’m not especially fussed about being uncredited; the plugin can’t have taken me more than thirty minutes to make, and it’s easily the least significant of my contributions to what, at the time I wrote it, were my top five scenarios.

I can’t say that I’ve contributed to all my favorite scenarios, though, because my top five is now a top six. I haven’t contributed in any way to Istoria and doubt I ever will; I can’t imagine them ever needing my help.

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