Bungie’s Marathon Trilogy was a game I relentlessly played back in the days when I owned a Macintosh LC630. The final instalment came provided with the original level design tools, named Forge and Anvil. I had as much fun making my own levels back then as I did exploring the ones provided in the original trilogy.
The original level design was amazing, but fans of the game had pushed the bar further, initially by building their own mapping tools for the first two Marathon Games, and then making use of Forge when it was provided with the final instalment.
Some users managed to achieve some pretty impressive things using the provided tools which shouldn’t be possible within the original game engine.
Here are two of my own examples, demonstrating a couple of effects which appear to defy the engine’s limitations:
This effect is actually deceptively simple to achieve.
The effect is when you hit the switch, you get an explosion and blow a hole in the wall. You can see a demo further down the page.
The limitations of the Marathon engine don’t allow you to have a fully enclosed elevator with a single door opening into two floors. However, you can apply some trickery to make this happen!
I’ve made a short YouTube video to demonstrate both of the above items.
I was proud of the above two effects back in the day, because although other level designers also applied them, I figured them out for myself before I saw them in other levels.
Bungie (creators of the Marathon Trilogy) went on to better things, but they open sourced the code for Marathon Infinity, which became known as Aleph One.
The Aleph One community has done wonderful things with the original engine, including: Support for 3D models, a markup language named MML and dynamic scripting based on Lua.
I’ve been working on my own modifications with Lua and MML to implement proper ledges and moving platforms and vehicles, a la newer true 3D engines.
The video below shows work to date on creating a basic moving platform:
The aim is to create something with easy setup so to implement these features you don’t need to do any coding of your own.
To be continued…