Noob questions

For topics about the story, help in a certain level, game discussion, or finding/discussing content.

Post Sep 23rd '12, 23:33

I play Doom and edit it a lot, and am very familiar with it's quirks and how the engine works. As for Marathon, while I do play it, I don't edit it due to not being able to use many of the editors, as I use Windows (I plan on building a Hackintosh soon), and many of the Windows editors don't work on my computer anyway. I'm not terribly familiar with many of the engine quirks. So, I have many questions for those of you who are far more familiar with the game than I:

1. How does the enemy AI work? It seems that they somehow use pathfinding to chase their target, since they'll climb up stairs to get to you instead of just walking straight to you like in Doom (where they'll bump against the wall of the ledge trying to get to you like utter morons). How does the enemy movement work in general? Doom's AI pretty much just wanders in random directions while kinda drifting toward their target's general direction.

2. Why is it called "5D space"? It seems entirely like 2.5D to me, but with the addition of portal rendering on walls. Overall, you're still traveling on 3 axis, but can sometimes travel to different "planes" of the 3D space, so if anything, shouldn't it be called 4D space?

3. Where does Marathon Infinity fit on the timeline? I've read that it's story is as if the events of Marathon 2 never happened. Is it after the end of M2 (even though it never happened), or after M1?

4. Why is Marathon's field of view so low? Is it possible to configure it with a plugin mod to use 90 degrees FOV instead?

5. How are you supposed to pronounce many of the words in the S'pht language? Is S'pht said as "Suh-foot"? Is Lh'owon said as "Luh-owon"?


I'll probably have some more questions later. I think I want to get involved on these forums, just to have people to talk to Marathon about. Many people at the Doomworld forums don't like it. :(
Last edited by Blastfrog on Sep 23rd '12, 23:35, edited 1 time in total.
User avatar

Blastfrog

Post Sep 24th '12, 00:39

If you are interested in making content you might check out this guide if you haven't already. A bit outdated but still some good info:
http://www.pfhorums.com/viewtopic.php?t=5650

The guide above isn't updated for it, but physics models and new shapes can be implemented with Shapesfusion 0.6
http://www.pfhorums.com/viewtopic.php?t=13277

These windows tools don't work for you? What kind of problem are you having?


1. How does the enemy AI work?

The AI traces the center of transparent polygon edges/midpoints until it reaches the player. With maps with very large polygons (an overall bad idea), it may look like the enemy is walking away from the player as it tries to reach the center of an adjacent polygons.
http://www.webwonks.org/Marathon/Forge/has...op/things2.html

2. Why is it called "5D space"?

I don't have the mathematical fortitude to speak about such things, but its probably just a name that stuck.

4. Is it possible to configure it with a plugin mod to use 90 degrees FOV instead?

You can most definitely change the field of view using an mml script, and then put that into a plugin.
http://www.pfhorums.com/viewtopic.php?t=1994
Treellama's example can get your started there.
Last edited by Zott on Sep 24th '12, 00:44, edited 1 time in total.
Video Gamer Blog (With some articles by me!)

Look at Him Go, Weeee
User avatar

Zott
Earth

Post Sep 24th '12, 02:26

2. 5D Space

Other people here can probably answer this better than me, but... I think the "5" in 5D Space is there just for fun and isn't meant to be taken literally. The term is used when two spaces overlap each other and not for the engine in general, which is 2.5D. What I think happens is that Marathon's engine checks what to draw on the screen based on what polygons are in the player's view, so as long as two polygons aren't in the player's view at the same time they can occupy the same identical spot without breaking any rules.

3. Marathon Infinity

Marathon Infinity is complicated. You have to play it multiple times, paying close attention, maybe taking notes, and reading the Marathon Story Page, before you can get a firm handle on it. Marathon Infinity takes place during roughly the same time period as M2 and takes you through different versions of events. The player character is traveling through time searching for the correct series of events that will avoid an apocalypse and save everyone. In some of these timelines the ending of M1 is different and others it's the same. In all the timelines the events during the period of M2 are different with some overlap with M2's story. This essentially means that M2 never happened, except for the player character who is time traveling. The final "victory" timeline is the canonical state of reality in the Marathon story and it completely ends the story arcs of two main characters, Durandal and the Marine (player); although I believe most mods ignore this in favor of bringing back the old Marathon characters and feel.

5. S'pht names

You pronounce them phonetically. ;)
Last edited by philtron on Sep 24th '12, 02:32, edited 1 time in total.
Te Occidere Possunt Sed Te Edere Non Possunt Nefas Est
User avatar

philtron

Post Sep 24th '12, 14:36

Sodaholic486 wrote:2. Why is it called "5D space"? It seems entirely like 2.5D to me, but with the addition of portal rendering on walls. Overall, you're still traveling on 3 axis, but can sometimes travel to different "planes" of the 3D space, so if anything, shouldn't it be called 4D space?

Counting time as a dimension, you need five dimensions to specify a point uniquely in the engine: X, Y, Z, time, and polygon.
User avatar

treellama
Pittsburgh

Post Sep 25th '12, 11:55

Thanks for the answers, everybody, I now have the info I needed. :) To address Zott on the issue of Windows utilities, I couldn't run Weland because I didn't have some of the necessary libraries installed correctly.

Anyway, when I pulled up Weland to try mapping, I was very surprised how much smaller Marathon's max map size is compared to Doom's. When taking player scale into account, Doom maps can be 12.8 times as large! I'm also surprised how downright strange Marathon's engine seems to work. Units are freaking huge, and everything is divided into very precise (for a video game, anyway) floating point numbers. I also find it bizarre how polygon floor and ceiling heights are given heights from a user defined table of heights, instead of the height itself being a property of the polygon, as it is with sectors in Doom.
User avatar

Blastfrog

Post Sep 25th '12, 12:28

Polygon heights are properties of their respective polygons, internally:

(from map.h)
Code: Select all
struct polygon_data /* 128 bytes */
{
    [...]
    world_distance floor_height, ceiling_height;
    [...]
};


Forge, Bungie's official map tool, organized these heights into a table for user convenience. This behavior (as almost all other Forge behavior) was replicated in Weland. We prefer the "table" presentation because it allows us to paint polygon heights rather than having to edit an individual polygon's height. From what I understand of Doom, sectors allow this kind of thing, but are built into the engine. Sectors seem to be a template of sorts for geometry that can be applied to multiple "polygons" at a time. No such thing exists in Marathon, so editors use kludges like the height table.

Other odd things:

Floating-point numbers are also an illusion. Marathon's internal units are integers. The "world unit" (roughly two meters long) is in fact 1024 smaller units. Weland and Forge presented distances as floating-point numbers, but older editors used the integer units. You'll notice that the game's rendering and general timing are tied together into the "tick," which is 1/30 * 1 second. The FPS cap is therefore 30 fps. I'm sure you'll find more weird stuff on your own.
underworld : simple fun netmaps // prahblum peack : simple rejected netmaps
azure dreams : simple horrible netmaps // v6.0!!!: thomas mann's greatest hits : simple simple netmaps
User avatar

irons
(.Y.)

Post Sep 26th '12, 22:15

Sodaholic486 wrote:3. Where does Marathon Infinity fit on the timeline? I've read that it's story is as if the events of Marathon 2 never happened. Is it after the end of M2 (even though it never happened), or after M1?


This question has been answered already but I think this is an excellent visual (with SPOILERS):

Last edited by Ares Ex Machina on Sep 26th '12, 22:22, edited 1 time in total.
User avatar

Ares Ex Machina

Post Sep 27th '12, 05:02

Man, I need to play Infinity again. I feel like one more playthrough and my level of understanding the story will be where I want it to be.
User avatar

Crater Creator

Post Sep 29th '12, 15:31

irons wrote:From what I understand of Doom, sectors allow this kind of thing, but are built into the engine. Sectors seem to be a template of sorts for geometry that can be applied to multiple "polygons" at a time.

Not quite. In Doom, sectors ARE the polygons. No template or division type stuff going on. Difference is, they're not limited in the maximum number of angles that they can have, and they don't have to be convex. Sectors can even be made up of closed parts of geometry not even connected to each other. Also, if by "built into the engine" you mean that levels are hardcoded, then absolutely not. They're stored in WAD files, which are kinda like the sound, scenario, shapes, etc all built into one.

irons wrote:Marathon's internal units are integers. The "world unit" (roughly two meters long) is in fact 1024 smaller units. Weland and Forge presented distances as floating-point numbers, but older editors used the integer units.

How many pixels of a texture in a normal resolution texture cover a world unit? Is it 128 or 64? What is the player's standing viewheight (exact height of camera relative to the player's feet)? In Doom it's 41, and the floor textures are aligned at 64x64 pixels, and each unit is one pixel large, with each unit being divided into a fractional integer of 65536.

irons wrote:You'll notice that the game's rendering and general timing are tied together into the "tick," which is 1/30 * 1 second. The FPS cap is therefore 30 fps. I'm sure you'll find more weird stuff on your own.

Interesting. In Doom, it's referred to as "tics" instead of "ticks", and it's 35 tics a second, due to being designed for VGA monitors at a refresh rate of 70hz. Also, pixels/units in Doom aren't square. Vertically (along the Z axis), they are 1.2 times larger than they are horizontal, giving things a slightly stretched appearance. This is due to being designed for the standard DOS resolution of 320x200, being stretched over a 4:3 aspect ratio monitor.
User avatar

Blastfrog

Post Sep 30th '12, 09:49

Sodaholic486 wrote:Not quite. In Doom, sectors ARE the polygons. No template or division type stuff going on. Difference is, they're not limited in the maximum number of angles that they can have, and they don't have to be convex. Sectors can even be made up of closed parts of geometry not even connected to each other. Also, if by "built into the engine" you mean that levels are hardcoded, then absolutely not. They're stored in WAD files, which are kinda like the sound, scenario, shapes, etc all built into one.

I'm not sure if I conveyed what I mean correctly. A sector in Doom is a set of height values and other things that can be applied to shapes not connected at all on the map, right? If not, don't worry; I've hardly done any Doom mapping. I did not mean hardcoded levels, though. Ignore what I'm saying here if it's nonsense.

How many pixels of a texture in a normal resolution texture cover a world unit? Is it 128 or 64? What is the player's standing viewheight (exact height of camera relative to the player's feet)? In Doom it's 41, and the floor textures are aligned at 64x64 pixels, and each unit is one pixel large, with each unit being divided into a fractional integer of 65536.
It's 128 pixels/WU. The player's camera is at .6 WU, I think, and that bobs a little. It's also possible to change that in the physics file. Interestingly, this comes to a floating-point value of 1024 * 0.6 = 614.4. I tried looking for the viewpoint height in the source, but it has some weird constant in physics.cpp that I'm too lazy to look up: (1*FIXED_ONE)/5. I think the real value is 614.

By the way, this and other info is probably available at this link and on other pages in the same site. Pretty good references.

Interesting. In Doom, it's referred to as "tics" instead of "ticks", and it's 35 tics a second, due to being designed for VGA monitors at a refresh rate of 70hz. Also, pixels/units in Doom aren't square. Vertically (along the Z axis), they are 1.2 times larger than they are horizontal, giving things a slightly stretched appearance. This is due to being designed for the standard DOS resolution of 320x200, being stretched over a 4:3 aspect ratio monitor.


Glad Marathon isn't the only engine with weird stuff like this.
underworld : simple fun netmaps // prahblum peack : simple rejected netmaps
azure dreams : simple horrible netmaps // v6.0!!!: thomas mann's greatest hits : simple simple netmaps
User avatar

irons
(.Y.)


Return to Marathon Discussion



Who is online

Users browsing this forum: Hathomirr