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.
- Weland (most aspects of mapmaking, replaces Forge’s overhead view)
Make sure to grab the right dependency for your platform – the download page is confusingly laid out. I’ve written a detailed setup guide; you can find it in ‘Weland Setup’ under ‘Mapmaking Basics’.
- Vasara (texturing, more like Windows/MacOS’ graphical user interfaces; Forge visual mode replacement #1)
- VAF (WIP) (texturing, more like Windows/MacOS’ graphical user interfaces; Forge visual mode replacement #2; requires Aleph One 1.7 or later; full disclosure: this update is largely my work)
- Visual Mode.lua (texturing, more like DOS’ command prompt; Forge visual mode replacement #3)
- Forge+ (texturing/map viewing; Forge visual mode replacement #4; see below)
- Atque (merging/splitting maps; replaces Forge’s “merge” command)
- ShapeFusion (physics/shapes/sounds; replaces Anvil)
- Charlemagne (viewing differences between physics, converting physics to JSON and back, converting M2 physics to M∞ physics, etc.)
- Hux (terminal editor; currently Windows binaries only)
- Aorta (DDS/parallax map creation)
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.
Comparisons of Texturing Utilities
- Vasara 1.1
NOTE: Since Vasara 1.1 was just released, I haven’t had time to evalute it properly yet. Expect further revisions to this section once I’ve done so.
- Seems to aim to be accessible to all mappers.
- Pros: Has the most straightforward interface; likely to be the least intimidating for new mapmakers.
- Cons: Vasara 1.0.3 included several bugs that weren’t present in VAF and/or Visual Mode.lua. I haven’t yet tested how many of these bugs Vasara 1.1 fixes; I’ll report back later. It is only updated sporadically (there were some eight years between version 1.0.3 and version 1.1). It also has fewer features than VAF (though for new mappers, this is probably not actually a negative).
- VAF
- Aimed primarily at experienced mappers who want more control over texturing.
- Pros: Fixes several of Vasara’s bugs and adds several new features (though a few are still works in progress). Visual Mode.lua does not (and may never) have some of this functionlity.
- Cons: Its interface probably will initially be more intimidating than Vasara 1.0.3’s, and beginning mapmakers won’t need many of its added features. It also isn’t up to date with Vasara 1.1 yet.
- Visual Mode.lua
- Seems to be aimed at experienced mappers who want a minimalist texturing interface.
- Pros: It’s extremely powerful and fast once you’ve learned its interface, lacks several of Vasara 1.0.3’s bugs, and has several features that aren’t present in Vasara 1.0.3 (but are present in VAF).
- Cons: It will probably intimidate new mapmakers due to its bare-bones interface; it’s missing (and will probably never have) several of VAF’s features.
- Forge+
- This was meant to be a full-featured map editor, but it never got past the “texturing maps” stage.
- Pros: Since it runs in Unity, it can view maps from negative space, which would cause Aleph One to crash; this provides a much more holistic view of the shape of a level.
- Cons: Unlike the other three options, Forge+ can’t be linked to Weland, so you’ll have to continually close and reopen the two apps, which is a pain. It also can’t view maps using hi-res textures, and it hasn’t been updated since 2022, so it’s missing features like Aleph One 1.7’s new transfer modes.
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.
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.
- Maps:
- Pfhorte (classic OS)
- Physics:
- Web-based M1 .phys to JSON and JSON to M1 .phys converters by @magical_beetle_40501
- Physics Eater by Solra Bizna
- Marathon Physics Model Editor (classic OS)
- Shapes:
- Perl utilities by @Hopper262
- Pfhred (classic OS)
- Sounds and Terminals:
- ResEdit (classic OS). Terminals are TEXT resources in the Marathon application. Explaining the terminal format is beyond the current scope of this guide, though I may cover it eventually.
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).
Weland Setup
First Steps
- Setting up Weland can be confusing; this doesn’t aim to be an exhaustive list of the issues you may face in doing so. I can’t possibly hope to provide that here; you’ll find people who can help on the Discord.
- You’ll need either Gtk# or Mono, depending on your OS; the readme tells you which to get. (You’ll also need .NET on Windows, but all Windows 10 and 11 computers should already have this installed, and if you’re running an older version, you really should upgrade – running operating systems that are no longer being supported is a major security risk.) Installing the wrong one sometimes seems to make Weland not work, and they’re on the same webpage, so users can get one thinking they’ve gotten the other. Read carefully!
- I should perhaps note that several Windows users have reported only being able to get Weland to run correctly by using Gtk# 2.12.26 – a completely ancient release. No one has been able to produce a satisfactory hypothesis for why this is the case, but enough people have experienced it that it’s ceased to look coincidental. (For the record, I didn’t have to do this to get Weland to work on Windows; in fact, the setup process was quite painless for me.)
Configuring Weland’s Preferences
- After getting Weland to start, you’ll next want to set up visual mode to function from within Weland. Go to Edit > Preferences. You’ll want the Shapes and Visual Mode segments to resemble these settings:
- Shapes File: valid Marathon 2/Infinity-format shapes. Marathon 1 shapes probably won’t work, but I haven’t tested this. This affects what Weland uses in visual mode and the overhead texture view.
- Aleph One: the Aleph One app. EZ. My Windows examples use:
For Macs, I use two examples:C:/Games/Marathon Infinity/Marathon Infinity.exe
Macintosh HD/Games/Marathon Infinity/Marathon Infinity.app
The reason for this will become apparent below.Macintosh HD/Games/Aleph One/Aleph One.app
- Scenario: the folder you use within Aleph One to run the scenario you’re editing, which is usually the folder containing the Map, Shapes, Images, and Sounds files. (Rubicon X is an annoying exception; use the containing Rubicon X folder, not Rubicon Data.)
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)
- Owing to how the Mac version of Aleph One is built, setting up Visual Mode on Macs may be confusing. Effectively, there are two ways to get Aleph One versions of the Marathon trilogy on MacOS:
- If you download the trilogy from the front page of Aleph One’s website, you get ‘all-in-one’ apps in which all game data are packaged within each game’s application.
- You can also download the game data by themselves and use the general Aleph One app to run them. (This is my recommended method.)
- This difference is really important on Macs, as it affects where to place Visual Mode.lua, Vasara, and/or VAF:
- Visual Mode.lua: It’s best to put this in the user data folder. Which user data folder, though?
- Infinity all-in-one app:
~/Library/Application Support/Marathon Infinity/Visual Mode.lua
- Standalone Aleph One app:
~/Library/Application Support/AlephOne/Visual Mode.lua
- Aleph One only makes this distinction on Macs, a design choice I’m not fully on board with.
- Note also that ~/Library is normally hidden in the Finder, so to place Visual Mode.lua in one of its subfolders, use ‘Go to Folder’. Weland should be able to see it with no problem, though.
- Infinity all-in-one app:
- Vasara or VAF: You have multiple choices here.
- My recommended option is to ditch the all-in-one apps, grab the scenario files, and run them with the standalone Aleph One app in the scenario folder, allowing you to keep Vasara or VAF within said folder, as Yrro intended. If you’re in the middle of playing the trilogy and don’t want to move your files over (itself a complicated process that is beyond the current scope of this guide), you can always keep a copy of the all-in-one apps to play the games, and just use the data and the stand-alone app for Vasara or VAF.
- For the all-in-one apps, use the user data plugins folder. The all-in-one Infinity app uses:
The stand-alone Aleph One app uses:~/Library/Application Support/Marathon Infinity/Plugins/Vasara.zip
I note both locations because the Mac is the only platform that separates the trilogy’s user data folders from Aleph One’s (a design choice I’m not fully on board with). Again, ~/Library is also invisible by default (you must navigate to it with ‘Go to Folder’), hence my preference for option 1.~/Library/Application Support/AlephOne/Plugins/Vasara.zip
- Visual Mode.lua: It’s best to put this in the user data folder. Which user data folder, though?
Installing Visual Mode.lua, Vasara, or VAF (Windows)
- Visual Mode.lua is a solo Lua script, so it should go in the user data folder. My Windows 10 path for it is:
Replace Aaron with your username to get yours. (If you’re running an older version of Windows, please get a newC:/Users/Aaron/Documents/AlephOne/Visual Mode.lua
computeroperating system: running an OS that’s no longer being updated is a major security risk that puts all your data in jeopardy. Windows 11, meanwhile, has the same path as Windows 10.) - Vasara and VAF are plugins, so they belong in the Plugins folder (if there isn’t one already, make one called ‘Plugins’). This can be the scenario plugins folder:
Or, if you’d like it to be accessible to all scenarios, the user data plugins folder, e.g.:C:/Games/Marathon Infinity/Plugins/Vasara.zip
This may be more convenient if, like me, you’re perverse enough to map for five scenarios at a time, but you’ll have to disable it outside Weland!Aleph One for all scenarios in which you aren’t using solo Lua.C:/Users/Aaron/Documents/AlephOne/Plugins/Vasara.zip
Configuring Weland!Aleph One
- These steps may be slightly confusing. Within Weland’s preferences dialog, click the ‘Edit Preferences’ button, which will launch Aleph One using the selected scenario. This is entirely intended!
- Within Weland!Aleph One, click Settings. This creates a new ‘Preferences Editor’ file that only affects the game’s behavior when Weland lanches it (e.g., launching Marathon Infinity from Weland creates a new ‘Marathon Infinity Preferences Editor’ file within your Aleph One preferences folder).
- For Visual Mode.lua: Go to Environment, make sure ‘Use Solo Script’ is checked, then select ‘Script File’ and find Visual Mode.lua in the user data folder (from which Aleph One usually navigates by default).
- For Vasara or VAF: Select it under Plugins; no other plugins that use solo Lua should be active, and ‘Use Solo Script’ in Environment should be unchecked. If Vasara doesn’t appear, make sure you copied it to the right location. If the top level of Settings has no Plugins button, update your Aleph One version.
- In either case, now select ‘Accept’, quit out of Aleph One, and select ‘OK’ in the Weland dialog box. If you’ve done everything correctly, you should now be able to launch visual mode in much the same way it launched from within Forge. If not, reread the above, try to ensure everything is set up as shown here, and if you still can’t solve the issue, you may wish to ask for help at one of the above resources.
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.
- Bungie’s Forge & Anvil Manuals
- Annotated Forge Manual (work in progress – I have not finished annotating the whole manual yet)
- Bungie’s Forge Video Tutorials
- Annotated Anvil Help Balloons (with corrections to errata & information about ShapeFusion)
- Default Marathon Infinity physics model (Warning: The ‘Standard’ physics model included with Marathon Infinity is actually a Marathon 2 physics model. We can blame Bungie for this. Since ShapeFusion doesn’t have a ‘New Physics Model’ feature, anyone that wants to make new physics models should absolutely keep a copy of this with them at all times.)
- Aleph One Github Wiki (the only still-extant Marathon wiki almost guaranteed to be accurate)
Forge Manual Errata & Omissions
- Platforms: The ‘Locked Door’ flag is broken and doesn’t do anything.
- Lights:
- The ‘Stateless’ flag is broken and doesn’t do anything.
- The manual says ‘Δ Period’ is ‘the maximum random amount of time added to or subtracted from’ the value of Period. In fact, the game never subtracts Δ Period from Period; it only ever adds them together.
- The manual’s statement that ‘Δ Intensity’ ‘does for Intensity what Δ Period does for Period’ is technically correct (the best kind of correct!), but since its description of Δ Period is wrong, I’m listing it here for completeness’ sake.
- Environment Types: The manual’s description of ‘Rebellion’ is completely outdated; it is a correct description of ‘Rebellion (M1)’.
- The ‘Rebellion’ flag strips all players’ weapons and ammunition, and if their health is above 37 (full 1x shields would be 150), the game strips their health to 37. The converse is not true: if their health is below 37, it won’t be restored to 37.
- Furthermore, if the ‘Extermination’ mission type is set on a ‘Rebellion’ level, all monsters set as ‘Alien’ in the physics must, without exception, either be killed or (perhaps counterintuitively) have teleported out for the mission status to be set as ‘Complete’.
- Both the rebellion health total and the starting health total can be customized with MML.
- Mission Types:
- ‘Rescue’ is broken. Use ‘Rescue (M1)’ if you want this behaviour. Additionally, ‘Rescue (M1)’ only affects whether the level completion state is set to ‘Failed’; it’s still up to mapmakers to set the ‘Finished’ or ‘Unfinished’ states in other cases. aperturegrillz’s speedrun of ‘Bob-B-Q’ shows us what can happen when a mapmaker neglects to set any mission types besides ‘Rescue (M1)’.
- ‘Extermination’ doesn’t require killing everything unless, as mentioned above, the ‘Rebellion’ flag is also set. Otherwise, the player gets a leeway of up to eight monsters marked as ‘Alien’ in the physics. The game doesn’t count monsters that are not marked as ‘Alien’, and it doesn’t matter whether they’re set as hostile to the player. (You can force players to kill all monsters of one or more specific types using MML.) Also, the game disregards monsters that have teleported out for the sake of extermination missions, likely to prevent players from being unable to complete a mission if too many teleport out.
- I cover ‘Exploration (M1)’ (potentially useful) and ‘Repair (M1)’ (probably not) in my advanced guide.
- Sound Objects:
- ‘Is On Platform’ overrides the selected sound with the platform’s ambient sound.
- ‘Δ Volume’, ‘Δ Period’, ‘Δ Pitch’, and ‘Δ Direction’, like the similar light values above, are only ever added to, respectively, Volume, Period, Pitch, and Direction; they are never subtracted. Additionally, for these values (but, curiously, not for the similar light variables), the game will never select the maximum delta value. Thus, if both Period and Δ Period are 30, the game selects a value from 30 to 59, inclusive.
- While this isn’t truly an erratum, ‘Δ Direction’ deserves further mention for a questionable design choice that can create the misleading impression that, for a sound to play from a constant direction, Δ Direction should exactly match Direction: in fact, Δ Direction should be 0°. (If Direction and Δ Direction are both 135°, for example, the results will range from 135° to 269° (nice), inclusive.)
- Polygon Types:
- The manual’s description of the ‘Invisible Monster Trigger’ was probably the intended behaviour of the polygon type, but in practice, it is the same as the ‘Dual Monster Trigger’: it activates all monsters in a zone, not just teleporting ones.
- Only players can trigger Platform On/Off Triggers, but both players and monsters can trigger Light On/Off Triggers.
- Monsters can’t move over Teleporters and won’t cross them (this doesn’t apply to Automatic Exits).
- Although monsters usually can’t move in Monster & Item Impassable polygons, they can if the player is in the same polygon they are. Also, they have been known to disregard the polygon type occasionally and enter it, although I’m not at all sure what causes this; and of course, they can get pushed in.
- Monsters never drop items if they die on Item Impassable, Monster & Item Impassable, Platform, or Teleporter polygons, or on the edges of steps/ledges/cliffs.
- Minor Ouch, Major Ouch, Glue, Glue Trigger, and Superglue exist for legacy Marathon 1 compatibility. I address them in my advanced guide; beginning mapmakers probably needn’t bother with them.
Mapping Issues in Weland
Weland has some differences from Forge and a few (mostly minor) bugs. It’s worth being aware of these issues:
- Forge threw an error if you attempted to enter Visual Mode or save a map with any concave polygons. Weland just lets you do it. However, Forge’s more aggressive treatment of the matter was justified in that the engine crashes if a player ever enters those polygons. By default, Weland colors concave polygons orange in Draw Mode, but if a lot of your polygons overlap in X/Y space, concave polygons may not be visible at a given time. Thus, be especially careful when moving lines, points, or polygons.
- In the top-down texture view, if you have a texture selected from any collection except the one specified in Special → Set Level Parameters → Environment, ‘Undo’ always sets the selected texture to the latter environment’s first texture. (The Landscape collection is not immune to this bug.)
- In all other top-down views except Draw Mode, ‘Undo’ always sets the selection to the palette’s first item.
- ‘Remember Deleted Sides’ is a wonderful Weland addition that preserves sides’ texturing and lighting when you delete a polygon and refill it (e.g., with lines divided differently). Unfortunately, it doesn’t always work.
- ‘Split Lines Attached to Polygons’, another wonderful Weland addition, currently always results in lines being marked solid and transparent, regardless of whether they were originally.
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:
- When you exit visual mode, tags should be in the state they’re meant to start the level in. Thus, if you tabbed a tag switch that starts the level inactive so you could open some doors, reset the tag to inactive. Take special care with wires and chip insertion switches – messing them up can render levels uncompletable. This is one of several reasons I’d recommend avoiding tags where possible – this is just the tip of the iceberg (you don’t need to worry about the other reasons until later).
-
In Visual Mode.lua and Vasara 1.0.x, walking on a Must Be Explored polygon (or even looking at it if Exploration (M1) is set) resets it to Normal. (I have not yet tested whether Vasara 1.1 fixes this; I will report back later.) Be sure to reset these after texturing (or just don’t set them until you’ve finished texturing).
- By default, VAF fixes this in a fairly hacky way that has the cost of making it impossible to complete Exploration mission types while VAF is running. However, VAF is a texturing app above all, and this is much closer to the Forge behaviour mapmakers are likely to expect.
- In old versions of Aleph One (prior to 1.6, if memory serves), frame interpolation could cause textures to jitter if you placed them without paving first. Some players also reported that placing textures without first paving could cause crashes (I never experienced this, and it was also supposedly fixed in the same Aleph One update). However, paving occasionally crashes Weland (I haven’t isolated the cause, but it seems to be an index mismatch), so it’s ideal to save, pave, then go into visual mode.
- By necessity, texturing always loads all textures, so you may sometimes want to avoid using hi-res textures while texturing. You’ll probably want to run through the map with hi-res assets on once you’ve finished your initial pass, though; when you do, I recommend keeping as few other programs open as possible.
- Visual Mode.lua did not handle wires correctly until version 3.0.2, released on 2024-01-19. If you’re having trouble getting them to work correctly, upgrade to the latest version or use Vasara or VAF.
- Forge’s “align heights in visual mode” feature doesn’t exist in any modern editor; it’s necessary to exit visual mode, change the polygon’s heights, then go back to visual mode to texture it (or use Lua to do that, if you know it; one of several reasons I added overlays to VAF was to facilitate this). If you’re on the obsessive-compulsive spectrum like me, you probably hated Forge’s implementation of this feature because it didn’t actually align heights correctly (see my discussion in in VAF’s readme for specifics). However, I plan to add a less sloppy implementation to VAF once I’m satisfied with my UI design. (I’m not a UI specialist and have long held that UI is far too important to be left up to programmers that aren’t UI specialists.)
- Occasional issues with platforms’ texture alignment.
- If you’re using a version of Aleph One prior to 1.6:
- Upgrade, for the love of Pthia.
- When you exit visual mode (or type .save level), platforms that extend From Ceiling or From Both must be in the same position they start the level in, or you’ll get texture misalignments.
- Aleph One 1.6 largely fixes this and a related platform alignment bug that occurred even in the original engine. Slight misalignments – 1/1024 of a standard texture repetition, if I’m not mistaken – may still occur if you close the editor while the platform is moving, but it seems to be entirely fine if the platform is at rest. To keep this section from getting too far into the weeds, I’ve moved possible solutions for platforms that must move continually to an endnote.
- If you’re using a version of Aleph One prior to 1.6:
Further Texturing Issues in Vasara and VAF
- Vasara 1.0.x gets weird with more than 56 lights. If you have both ‘Apply Light’ and ‘Apply Texture’ selected with a light ≥ 56, the HUD disappears; reduce the light value to something < 56 and hit the action key to restore it. If one is selected, but not the other, the HUD functions normally.
- VAF fixes the Lua error spam. It currently does not display previews of lights greater than 55 correctly, but it lists lights from 0 to 97 in its options screen.
- If you leave visual mode (or type .save level) while a polygon is flashing and highlighted on the map for the player to teleport to, this will be set as a Major Ouch polygon and the floor’s transfer mode will change to Static. So… don’t do that. This occurs because Vasara and VAF highlight the polygon on the map by changing it temporarily to a Major Ouch polygon (and physically change its appearance in the game world to create the static effect on its floor).
- Fixing this would require not highlighting the polygon on the map, and after trying that for a bit, I found it more annoying than the current behavior. I’m working on a possible compromise.
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).
- Hastur’s Workshop (advanced tips from Marathon Infinity’s creators)
- My advanced mapmaking page
- Forge tutorials from the Battle Cat, Jason Harper, Even Steven, & Chris Komarnicki
- Anvil references from Hamish Sanderson, Quartz, Mark Levin, Claude Errera, & Raúl Bonilla
- Current Aleph One scripting documentation:
- File format info (note: parts of this now appear to be outdated, but parts may still be helpful)
- M2-flavored Infinity shapes
- If you want to make Marathon 2 maps, I recommend configuring Weland to use Marathon Infinity as the scenario and this as the shapes. Vasara, VAF, and Visual Mode.lua look for the Jjaro collection by default, and weird things happen if they don’t find it. (You can edit them to prevent this, but this prevents the need for that, or for changing Weland’s scenario from Marathon Infinity to Marathon 2 and back.)
- Note that this won’t actually run with Marathon 1. It’s useful if you want to use M1’s shapes as a base for editing, but you’ll have to convert it back to M1 format afterward if you want to use it with M1.
Marathon Communities & Resources
Game Files
- The Marathon trilogy (all-in-one releases)
- Stand-alone Aleph One app
- Data files for the trilogy and ten major Aleph One scenarios
- Aleph One GitHub
- Simplici7y (archive containing most of the newest content for the engine)
- Fileball: fileball.whpress.com or rising-studios.com/Marathon/fileball (archive of content from the 2000s)
- Bungie.org Archives (the oldest extant archive of third-party Marathon content; much of this requires an emulator or a Mac running the classic OS to run)
- Marathon trilogy & fan scenario graphics on Lochnits.com
Hi-Res Graphics
Bespoke Graphics
- Global
- Marathon 2/∞: MaraToon by Juzo-kun (a crisp, clean, modernized look for all game assets; extremely high-quality work)
- Landscapes
- Marathon 1: Marathon over Tau Ceti E-I Landscape Texture by liacrow (8192×3072)
- Marathon ∞: Goran Svensson’s Landscapes (4096×2160)
- Monsters
- Marathon 1: nothin’ but upscales available, sorry
- Marathon 2/∞: Community/Freeverse Monsters (these are much higher-resolution than the ones that shipped with the XBLA release and look immeasurably better)
- Marathon ∞: General Tacticus’ Hi-Res Critters & VacBobs
- Scenery
- Marathon 1: General Tacticus’ 3D Scenery for M1
- Marathon 2/∞: Community/Freeverse Scenery Plugin
- Marathon ∞: General Tacticus’ Jjaro Scenery
- Textures
- Marathon 1: Total Texture Enhancement Pack (TTEP) by Tim Vogel & Jay Faircloth
- Marathon 2: Community/Freeverse Walls
- Marathon ∞: Goran Svensson’s textures (with kaosof’s parallax maps for the Sewage set)
- Weapons
- Marathon 1: General Tacticus’ M1 Weapons Redux
- Marathon 2: Community/Freeverse Weapons – M2
- Marathon ∞: Community/Freeverse Weapons – M∞
- April Fool’s Jokes
- Marathon 2 Landscapes: Pepperscapes by W’rkncacnter
- Marathon 2 Textures: AI Textures by W’rkncacnter
Upscaled Game Assets
- Entire Trilogy: Topaz Gigapixel upscales by W’rkncacnter
- Marathon ∞ Pixelmator Pro upscales by treellama:
Communities
Story & Lore References
- Marathon’s Story Page (if you have story questions, for the love of Yrro, go here first – 90% of them can be answered with a quick search here)
- Marathon Lore Archive (searchable archive of terminals from the trilogy and ARG material from Bungie’s upcoming game; mobile-friendlier, but excludes fourth-wall-breaking content like credit terminals)
- Scenarios on Lochnits (links, maps, terminals, & level flowcharts for major & many obscure fan scenarios)
Gameplay Resources
- Marathon Spoiler Guide
- Dr John Sumner’s Spoiler Guides (like playing on Total Carnage or fists-only? Then these extremely detailed spoiler guides may be for you. Also, they’re the only resources available for certain scenarios)
- Marathon Vidmasters’ Page
- Vidmaster films on YouTube:
- My channel (newer, films rendered in Aleph One)
- jteg’s channel (last updated in 2016, films rendered in emulators)
- Fracai’s maps (detailed maps of all three games)
- Level maps on Lhowon.org
- My Marathon Film Archive (covers both the trilogy and several third-party scenarios, and includes numerous films not yet on my channel as of 2024-09-12)
Wikis
- CyberAcme (Marathon wiki; while this is still getting started, it at least has actual standards for its articles. Please don’t link to Pfhorpedia; not only is it a Fandom wiki, but it’s so full of misinformation as to be entirely unsalvageable.)
- Wikipedia’s Marathon Trilogy article
- TV Tropes:
- Marathon Trilogy
- Marathon Expanded Universe (fan scenarios)
Music & Sound Resources
- Dr Craig Hardgrove’s soundtrack page (mostly older releases)
- My soundtrack page (newer releases and remasters of some older releases)
- My Marathon sound archive (FLAC files of: (a) every sound from the trilogy, (b) my remixes of sounds whose sources we know, and (c) my remasters of sounds whose sources we don’t)