Unfinished Terminal script features

Have a question, suggestion, or comment about Aleph One's features and functionality (Lua, MML, the engine itself, etc)? Post such topics here.

Unfinished Terminal script features

Post Sep 25th '19, 20:46

In the terminal scripting guide by marrub here: viewtopic.php?f=24&t=39290 It references terminal script commands that were not implemented into Marathon 2 and Infinity but are still around in Aleph One's code, albeit unfinished.

They are:

#CAMERA: Similar in theme I guess to Build engine games like Duke Nukem 3D and Ion Maiden, it would display a camera shot from a certain object, specified by an ID number, presumably an actual surveillance camera. Whether it pans or not we might never know...

#MOVIE: Similar to PICT but for video files in a Movie folder. This is the most desirable of the lost commands, especially if said movies contain voice acting. (mods only. The Marathon Trilogy itself doesn't need voice acting. Anniversary or 4, sure, but doing it right would be difficult)

#TRACK: Plays a track from an audio file in Music.

I think that in future Aleph One builds, those features should be fully implemented for use in mods and scenarios, as they could revolutionise the way terminals can be used, without actually getting rid of what they do best (i.e what they currently do) at all. This would add to the complexity and immersion of maps.

For example:

We could have security stations in Pfhor buildings where they are tracking you with cameras. The objective would be to smash some circuits to shut down the terminals connected to the cameras.

Track commands could be used in Juke boxes for city levels or for voice acting on terminal text, with player character voices in whatever hypothetical scenarios not showing up on the terminal (as they are not messages typed in and the character is actually speaking). The PC dialog text could appear in some cases such as coms between human characters, but only if it's just audio and pictures along with the normal text. Depending on how it is coded, it could even change the background music, such as when something happens in a level or the story that causes the tone to shift.

Movie commands, tying in with above, could show characters on-screen interacting with the player character. Animation of any style, or live action footage for said video files? Use whatever you please. It's all a matter of personal style. For maps and pictures in such cases, audio could be used as a continuation of the movie track dialog and another movie if/when video footage appears again in the same terminal. Once again, this is an idea for third party mods and scenarios only, not the actual trilogy.

Movie commands could also be used in other purposes like footage on Bob eye-cams uploaded to a terminal for viewing, short films or something in some types of level like a city (think Bioshock Infinite or the short video animations in System Shock 1) and other such things.

Personally I think adding those in is a really cool idea and could add some spice to future scenarios. Current ones don't need to make use of those features once implemented but options for it and/or limited use of them could be nice. In terms of mods built with those features in mind, my suggestions are:

An idea for a remake of Strife (namely the Veteran Edition) in the Aleph One engine, which could be an enhancement over the original game on id Tech 1. This could also use level back and forth like PID A1 uses.

A Metroidvania themed game taking place on the Marathon, other UESC places, or an entirely new universe not connected to Marathon.

A horror themed scenario based around finding lost footage, text and audio logs in any kind of setting. Be it space, abandoned city, underground base, Aquatic Base (one of my favourite tropes) or haunted houses (assuming they have computers in them and limited power).

Remakes of the classic Doom games but with better architecture, proper liquids, smoother movement, Marathon 1's non-nerfed grenade climbing, flamethrower jetpacking etc. for ease of movement in vertically themed levels, low gravity on the levels taking place on moons and mars and an actual story instead of terribly written text screens at the end of an episode or chapter. Text crawls can still appear at the end, but only there and be better written than id did.

Any other ideas for future scenarios using fully implemented missing/lost terminal scripting commands are welcome as that's all I can think of. (I lack imagination sometimes, I know.)

It may have to wait until Aleph One version 5 or something as there are likely other issues needing fixed right now that I may not be aware of.

*can't remember what version it is now: my folders have what looks like date codes on them to separate versions.
User avatar

Lion O Cyborg
UK (which is IN EUROPE!)

Post Sep 25th '19, 22:41

There’s no need to implement #TRACK; I’m almost certain it can already be implemented with existing Lua commands, though I haven’t tried. It’s certainly possible to use Lua to change the music that plays in a level based on specific conditions; though I don’t know if tying it to a specific terminal is possible, you can almost certainly tie it to the activation of a specific tag and then have the terminal activate that tag. If I had an application where I thought it would sound good and make story sense to change the music in a level, I might try writing code for it, but I haven’t yet found one.

I’m also not sure if #MOVIE is actually implemented, but it’s possible to embed movies that load at the start of a specific level. Blauwe Vingers definitely did that (I probably mangled the spelling as I don’t speak Dutch; sorry) and I think EMR may have as well. That’s actually better than having it activated by a terminal; having a movie play within a level would break up the flow of gameplay. It might work for certain genres of games, but given that Marathon gameplay (after the first game, anyway) continues when you’re reading terminals, requiring players to be able to watch a movie sort of defeats the purpose – there’s no reasonably intuitive way to implement scrolling through a movie with the existing key bindings in the engine like there is with text.

The camera angle might be a good feature, though it’d be complicated to introduce and I’m certain Hopper and TL don’t have time to implement it. When I was playing Ryoko’s Metroidvania prototype I was thinking that it would be nice to have a portal gun implemented in the engine; if that feature were implemented, it might be possible to use the same code to implement a portal gun. But I think the odds of it ever being implemented are slim, unless someone with an interest in writing it learns C++. That’s the state the engine is pretty much in right now; there are really only two developers actively working on it (three if you count TrajansRow’s iOS port, I guess, but I don’t know how much he’s [?] contributed to the Mac/Windows/Linux branch) and neither of them exactly have the ability to work on it full-time.

But yeah, Ryoko’s Metroidvania prototype is a thing. The architecture is complete filler, and it’s not very difficult, but it’s a ton of fun to play. I’ve considered using some of the code from that for WMAiD or Chronicles, but haven’t yet thought of an application where the level transitions would be more than a gimmick. One of the problems is that you get loading screens every time you switch from one region to another, so you’d have to design the architecture so you’d only get loading screens at areas where there’s a natural break in the level (airlocks, for instance). The bigger problem is that 1.2.1, which is currently labeled the ‘stable release’ of Aleph One, crashes if you transition levels fifteen times without dying. So until 1.3, which fixes the problem, becomes the stable release, I can’t see myself actually wanting to build a whole set of levels around that idea.
“People should not be afraid of their governments. Governments should be afraid of their people.” —V, V for Vendetta (Alan Moore)

“The trouble is that we have a bad habit, encouraged by pedants and sophisticates, of considering happiness as something rather stupid. Only pain is intellectual, only evil interesting. This is the treason of the artist: a refusal to admit the banality of evil and the terrible boredom of pain. If you can’t lick ’em, join ’em. If it hurts, repeat it. But to praise despair is to condemn delight, to embrace violence is to lose hold of everything else. We have almost lost hold; we can no longer describe happy man, nor make any celebration of joy.” —Ursula K. Le Guin, “The Ones Who Walk Away from Omelas”

“If others had not been foolish, we should be so.” —William Blake, The Marriage of Heaven and Hell

Last.fm · Marathon Chronicles · Marathon Eternal 1.2 · Where Monsters Are in Dreams · YouTube Vidmaster’s Challenge
User avatar

The Man
Sarasota, FL

Post Sep 27th '19, 14:30

The Man wrote:There’s no need to implement #TRACK; I’m almost certain it can already be implemented with existing Lua commands, though I haven’t tried. It’s certainly possible to use Lua to change the music that plays in a level based on specific conditions; though I don’t know if tying it to a specific terminal is possible, you can almost certainly tie it to the activation of a specific tag and then have the terminal activate that tag. If I had an application where I thought it would sound good and make story sense to change the music in a level, I might try writing code for it, but I haven’t yet found one.

I’m also not sure if #MOVIE is actually implemented, but it’s possible to embed movies that load at the start of a specific level. Blauwe Vingers definitely did that (I probably mangled the spelling as I don’t speak Dutch; sorry) and I think EMR may have as well. That’s actually better than having it activated by a terminal; having a movie play within a level would break up the flow of gameplay. It might work for certain genres of games, but given that Marathon gameplay (after the first game, anyway) continues when you’re reading terminals, requiring players to be able to watch a movie sort of defeats the purpose – there’s no reasonably intuitive way to implement scrolling through a movie with the existing key bindings in the engine like there is with text.

The camera angle might be a good feature, though it’d be complicated to introduce and I’m certain Hopper and TL don’t have time to implement it. When I was playing Ryoko’s Metroidvania prototype I was thinking that it would be nice to have a portal gun implemented in the engine; if that feature were implemented, it might be possible to use the same code to implement a portal gun. But I think the odds of it ever being implemented are slim, unless someone with an interest in writing it learns C++. That’s the state the engine is pretty much in right now; there are really only two developers actively working on it (three if you count TrajansRow’s iOS port, I guess, but I don’t know how much he’s [?] contributed to the Mac/Windows/Linux branch) and neither of them exactly have the ability to work on it full-time.

But yeah, Ryoko’s Metroidvania prototype is a thing. The architecture is complete filler, and it’s not very difficult, but it’s a ton of fun to play. I’ve considered using some of the code from that for WMAiD or Chronicles, but haven’t yet thought of an application where the level transitions would be more than a gimmick. One of the problems is that you get loading screens every time you switch from one region to another, so you’d have to design the architecture so you’d only get loading screens at areas where there’s a natural break in the level (airlocks, for instance). The bigger problem is that 1.2.1, which is currently labeled the ‘stable release’ of Aleph One, crashes if you transition levels fifteen times without dying. So until 1.3, which fixes the problem, becomes the stable release, I can’t see myself actually wanting to build a whole set of levels around that idea.


The bit about the terminal movies breaking flow is true, and I see we are both on the same page in that it would only really work for specific scenarios. If it was added to current scenarios like Eternal, it would have to be kept very limited, such as for the live video feed Leela shows you at the end of chapter 2 being an actual short video clip accompanying the text.

Otherwise, overuse of in-terminal video that you cannot skip through, especially long ones would come across as the video disks, and emails in Doom 3 crammed together, which killed the pacing of Doom 3 for me. That was probably why Doom 4 switched to terminals for world building like Marathon and kept the major current story features that used cutscenes succinct and punchy, whereas since Marathon is normally entirely text based, it can get away with text walls as the as the player is not expected to sit through all of it if they don't want to.

Therefore, in-terminal video clips in Marathon would have to be similarly short as most story sections in Doom 4 so as to avoid wasting the player's time. Movies before levels could conceivably be longer, but hopefully not too long, and only used to show off things that can't happen in-engine easily prior to the level starting e.g. if one modded Infinity to include movies, one such one could be implementing the cut sequence from Infinity where Marcus sails through space after entering that timeline to reach Boomer before Naw Man He's Close ala the cut sequence in Halo 2 (replaced with the Durian bomb), switching to gameplay when he enters the hull breach at the start of the map.

Portal guns I'm not sure about unless we're talking the Displacer cannon from Half Life Opposing Force (BFG as primary fire, teleport to specific polygons or secret stashes as secondary) as the teleportation feature of that could just be a portable jump pad instead of opening gateways between far apart polygons. Defining and/or coding such definitions of where using the teleport feature will take you in Weland I'm not sure how it could be done.

I didn't know that track features outside terminals were already implemented, so that's one thing to cross off. Might still be interesting to see though.

I'll need to check the Metroidvania scenario/WAD as I'd heard of it but hadn't searched for it. Thank you for the link.

As for the movies at the start of levels, I'd need to see if there's MML or Lua for that when I get on to learning those script languages. Thanks for the information. You raised some good points too. :)
User avatar

Lion O Cyborg
UK (which is IN EUROPE!)

Post Sep 30th '19, 04:38

Camera stuff in Lua is pretty cut and dry, but you're always replacing the entire screen with the new camera. For MPDX I had separate objects that you could interface with to look through cameras, kind of like Duke. You can do some overlay stuff with HUD scripting to make it look good, as well as effects with MML-doctored infravision/faders to make nightvision cameras, or just to add some flicker and scan lines. It's fairly easy, although moving the camera around is a bit trickier, especially if its moving with player input.

Plugging that into a terminal somehow would be kind of cool I suppose.

https://github.com/vacuum-forest/MPDX/b ... ameras.lua
User avatar

Ku-rin
Not Invented Here


Return to Aleph One Discussion



Who is online

Users browsing this forum: No registered users

cron