[question] Jump, but only a limited height

Have a question, suggestion, or comment about Aleph One's features and functionality (Lua, MML, the engine itself, etc)? Post such topics here.
User avatar
Juzo-kun
Born on Board
Posts: 25
Joined: Mar 2nd '19, 11:02

Poking in the cheats.lua I got the code pieces to make the player jump. So I started with this:

Code: Select all

Triggers = {}

function Triggers.idle()

   for p in Players() do
      if Players[0].life > 10 then 
         -- jump!
         if p.action_flags.microphone_button then
      if not p._latched then
         p._latched = true
         p:accelerate(0, 0, 0.1)
      end
      p.action_flags.microphone_button = false
         else
      p._latched = false
         end
      end
   end
   
end
With this the player can't jump anymore if the shield is too low. I think.

I'd also like to limit the vertical amount of the jump. I guess I should check the .z (vertical position? Is that relative to floor or absolute?) or vertical velocity of the player every tick, then stop to apply the increment if that position/velocity is reached, but I admit I'm completely stumped on the syntax. Any suggestion or pointer is welcome [MSmile]
User avatar
ravenshining
Vidmaster
Posts: 892
Joined: Jun 17th '17, 22:50
Location: Hawai'i

That will allow any player to jump as long as player 0's health is above 10 which is probably not what you're going for. You're already in the loop, so use p.life instead of Players[0].life

If you want to limit the vertical amount, I'd start with reducing how much you're accelerating the player. There's a point I think where the player won't leave the ground if they don't accelerate enough, hopefully you'll get where you want before then.

Personally, if I were writing a jump script, I'd like to find a way to prevent it from allowing players to climb if they just jumped, and have no idea how to do that.
User avatar
Lion O Cyborg
Cyborg
Posts: 188
Joined: Jun 22nd '18, 19:00
Location: UK (which is IN EUROPE!)

Juzo-kun wrote:Poking in the cheats.lua I got the code pieces to make the player jump. So I started with this:

Code: Select all

Triggers = {}

function Triggers.idle()

   for p in Players() do
      if Players[0].life > 10 then 
         -- jump!
         if p.action_flags.microphone_button then
      if not p._latched then
         p._latched = true
         p:accelerate(0, 0, 0.1)
      end
      p.action_flags.microphone_button = false
         else
      p._latched = false
         end
      end
   end
   
end
With this the player can't jump anymore if the shield is too low. I think.

I'd also like to limit the vertical amount of the jump. I guess I should check the .z (vertical position? Is that relative to floor or absolute?) or vertical velocity of the player every tick, then stop to apply the increment if that position/velocity is reached, but I admit I'm completely stumped on the syntax. Any suggestion or pointer is welcome [MSmile]
Will you also do a crouch script and player animations for it too? There's a jump script similar to this which I use now: http://simplici7y.com/items/jump-script but there so far isn't one that implements jumping and crouching in the same script, like other 2.5D engine sourceports and, more appropriately, Damage Incorporated which uses the original Vulcan 2/Forge engine, albeit modified. Both scripts could be added to this one, and incorporated into future versions of Aleph One by default as a toggle in the preferences menu, so purists can simply turn it off on their copies, also like other 2.5D game sourceports.

The benefit of this is more complex level design in third party maps and if any are made without jump and crouch in mind (such as most current maps), vidding rules can be updated to include no jumping allowed unless it is required to beat the map, especially if there's not enough grenades for grenade jumping.
User avatar
Ku-rin
Born on Board
Posts: 59
Joined: Feb 15th '19, 15:14
Location: Not Invented Here

Did some fooling about with this. Adjust the variables at the top and play with it to see what works for you.

Note that messing with external velocity and positioning of the player will result in funky stuff, don't do that (unless you're bored.) Just use acceleration. Could always also tweak stuff in the physics model, but this seems to work ok with a default model.

Fun fact: If you don't check the z level for negative player z relative to the floor, stairs will eat you invariably. :lol:

Code: Select all

Triggers = {}

maxJumpHeight = 0.5
jumpAcceleration = 0.075
limiterAcceleration = -0.01

function Triggers.init()
	
	for p in Players() do
		p._jumpLimit = "noJump"
	end
	
end


function Triggers.idle()
	
	for p in Players() do
		
		p.overlays[0].text = p.z - p.polygon.floor.z
		p.overlays[1].text = "Unset"
		p.overlays[2].text = p._jumpLimit

		if p.z == p.polygon.floor.z then
		
			p._jumpLimit = "noJump"
		
			if p.action_flags.microphone_button and p.life > 10 then
		
				if not p._latched then
					p._latched = true
					p._jumpLimit = p.z + maxJumpHeight
					p:accelerate(0, 0, jumpAcceleration)
				end
			
				p.action_flags.microphone_button = false
			
			else
		
				p._latched = false
			
			end
		
			p.overlays[1].text = "On Ground"
			
		else
			
			p.overlays[1].text = "Airborne"
	
		end
		
		if p._jumpLimit ~= "noJump" then
	
			if p.z > p._jumpLimit and p.z > p.polygon.floor.z then
				p:accelerate(0, 0, limiterAcceleration)
			end

		end
		
	end

end
User avatar
treellama
Vidmaster
Posts: 6110
Joined: Jun 2nd '06, 02:05
Location: Pittsburgh
Contact:

I am definitely never incorporating this into the engine by default. What's the matter with you?
User avatar
Ku-rin
Born on Board
Posts: 59
Joined: Feb 15th '19, 15:14
Location: Not Invented Here

treellama wrote:I am definitely never incorporating this into the engine by default. What's the matter with you?
Self-inflicted late-onset Shaken Baby Syndrome from too much jumping, no doubt.
User avatar
Lion O Cyborg
Cyborg
Posts: 188
Joined: Jun 22nd '18, 19:00
Location: UK (which is IN EUROPE!)

treellama wrote:I am definitely never incorporating this into the engine by default. What's the matter with you?
Nothing is the matter with me, if it's me you were addressing. All other 2.5D engine sourceports have jumping and crouching as toggles in their preferences menu, usually with the default being off in the case of Doom. This means that people who don't like it or don't want to use it don't have to, and people that do want to use jumping and crouching aren't denied it. Therefore, everybody wins.


CAUTION: Potential Trigger Warning

This refusal to implement quality of life improvements that other engines now have thanks to sourceports is pointless and has to stop, especially as the main excuse is to "keep it true to the original games". Nevermind that sourceports like GZ Doom have compatibility options for just such situations. Ion Maiden even has a silent protagonist toggle that nobody uses. Just because someone wants an improvement doesn't mean you actually have to use it yourself when playing. I even said that jumping wouldn't be allowed in vidmaster runs unless it was a map specifically designed for it, of which there aren't any so far so that shouldn't be an issue. Vidding runs with jumping active in vanilla maps can be safely disqualified and jumping can't be used in netgames at all unless it's co-op and both players agree to it. (assuming there aren't compatibility or sync issues)

Thankfully Aleph One does do something similar to other engines in a way with scripts and plugins, but it's not as efficient, especially as the jump script I started using when I started playing Eternal 1.2 needs to sacrifice the Mic key to work like the Debugging jump from visual mode.

No antagonism is intended from this, I'm just stating how it is.
$lave

The great thing about open source software is that anyone is free to spend their time developing a different engine spinoff with whatever features they think are important. People with complaints about the direction of Aleph One are entirely free to spend their time developing their own codebase with different goals in mind.

Unless, of course, that seems like too much work and you'd rather just complain that the few kind people spending uncompensated free time making sure this engine even runs on modern systems are not doing what you want.
User avatar
Lion O Cyborg
Cyborg
Posts: 188
Joined: Jun 22nd '18, 19:00
Location: UK (which is IN EUROPE!)

$lave wrote:The great thing about open source software is that anyone is free to spend their time developing a different engine spinoff with whatever features they think are important. People with complaints about the direction of Aleph One are entirely free to spend their time developing their own codebase with different goals in mind.

Unless, of course, that seems like too much work and you'd rather just complain that the few kind people spending uncompensated free time making sure this engine even runs on modern systems are not doing what you want.
That is indeed the best thing about opensource software.

That said, not everyone has the skills or programming knowledge to make what they want, nor is actually aware of any difficulties people actually working on the engine may be having. What they see is what they end up assuming unless told otherwise, especially considering reactions I've seen both from my own posts and others about this sort of thing, including at least one thread from 2006 about this same topic. (I only even found that because I was looking to see if Aleph One versions of Damage Incorporated existed like I found with Excalibur. There isn't an A1 DI but I was able to find the Windows copy of the original Vulcan 2 engine one however). Believe me, the Steam forums are chock full of this way of thinking, particularly the Black Mesa one, though I'm not the OP of any of those thankfully.

So yes, I do agree with you. I would happily make something myself if I knew how to code anything other than HTML and CSS. For now I need to get back to my Mac at some point to practice with Weland and learn Lua and MML to make a start. And I need to learn Shapefusion as well, but I may be able to use the Anvil manual to some extent, like I use the Forge one for Weland.

So far the only actual game I've programmed was a crappy little breakout crossed with space invaders clone on Gamemaker that I made for College back in 2015 or 2016, inspired in part by Gnop and the remake of Whisky Galore I'd watched being recorded the former of those two years.
User avatar
Ku-rin
Born on Board
Posts: 59
Joined: Feb 15th '19, 15:14
Location: Not Invented Here

Eh, the Lua works fine. Who wants to listen to people talk anyway? If anything the mic key should play a fart noise by default.

I mean, having some action key triggers for some configurable arbitrary aux keys would be neat, but I don't expect that to happen, and I know I'm not going to make a branch just for that. It's not exactly "Bridges and Balconies" but it's probably not anyone's priority at the moment either. I doubt anyone sees it as necessary, when there are a lot of things that are more necessary (and take time and effort.)

On the other hand, we occasionally get really cool stuff like Lua persistence and that new scratch space to send notes across HUD/Level scripts and such, which is nice. I appreciate these things.
Lion O Cyborg wrote:This refusal to implement quality of life improvements that other engines now have thanks to sourceports is pointless and has to stop, especially as the main excuse is to "keep it true to the original games".
Now this right here isn't helpful or even convincing. In a word, it's impudent. From someone else's perspective, it boils down to where that you're saying they have no right not to do work that you deem necessary. You're making demands of the (mostly) friendly person who makes your software toy nicer on the regular without getting paid, a person who owes you jack and shit. Please don't do that. I'll assume you probably didn't mean to come off as an ass, but you did.

Bloated side-note: Prefacing something like that with a sarcastic 'trigger warning' is like saying "I know I'm just going to say something that I know you'll disagree with, but no tag-backs!" It comes off as a disingenuous attempt to color your position as being valid due to controversy. It's a popular tactic in this day and age, one that lays waste to any prospect of purposeful discussion. It is not unlike a bright neon sign indicating an argument made in bad faith, regardless of intent. Try not doing that either? If you want to troll someone, troll them, if you want to convince them of something, do that. Don't blur the lines, that shit is lame.
Sharkie Lino

2007, is that you?
patrick
Mjolnir Mark IV
Posts: 466
Joined: Sep 22nd '08, 17:10
Location: 末法

tragedy of the commons.png
User avatar
Lion O Cyborg
Cyborg
Posts: 188
Joined: Jun 22nd '18, 19:00
Location: UK (which is IN EUROPE!)

Ku-rin wrote:Eh, the Lua works fine. Who wants to listen to people talk anyway? If anything the mic key should play a fart noise by default.

I mean, having some action key triggers for some configurable arbitrary aux keys would be neat, but I don't expect that to happen, and I know I'm not going to make a branch just for that. It's not exactly "Bridges and Balconies" but it's probably not anyone's priority at the moment either. I doubt anyone sees it as necessary, when there are a lot of things that are more necessary (and take time and effort.)

On the other hand, we occasionally get really cool stuff like Lua persistence and that new scratch space to send notes across HUD/Level scripts and such, which is nice. I appreciate these things.
Lion O Cyborg wrote:This refusal to implement quality of life improvements that other engines now have thanks to sourceports is pointless and has to stop, especially as the main excuse is to "keep it true to the original games".
Bloated side-note: Prefacing something like that with a sarcastic 'trigger warning' is like saying "I know I'm just going to say something that I know you'll disagree with, but no tag-backs!" It comes off as a disingenuous attempt to color your position as being valid due to controversy. It's a popular tactic in this day and age, one that lays waste to any prospect of purposeful discussion. It is not unlike a bright neon sign indicating an argument made in bad faith, regardless of intent. Try not doing that either? If you want to troll someone, troll them, if you want to convince them of something, do that. Don't blur the lines, that shit is lame.
I prefaced it with a trigger warning because people have started flame wars with me in the past on the Story Forum just because I had the nerve to voice my own opinions on Aleph One or what I'd like any future Marathon instalments in the franchise (if any) to have. I was not trolling or intending to do so. I figured putting a disclaimer in for people not to read the below stuff in case it offended them was being helpful. Clearly not.

It was not sarcastic at all, not that it's easy to tell from text. I had no idea it was a tactic that trolls used either as I generally steer clear of social media. Youtube, Steam and the Marathon sites being the closest I've ever come to using it.

For the first part, no. I did not intend to come off as an ass, so I explained myself in my last reply:
That is indeed the best thing about opensource software.

That said, not everyone has the skills or programming knowledge to make what they want, nor is actually aware of any difficulties people actually working on the engine may be having. What they see is what they end up assuming unless told otherwise, especially considering reactions I've seen both from my own posts and others about this sort of thing, including at least one thread from 2006 about this same topic. (I only even found that because I was looking to see if Aleph One versions of Damage Incorporated existed like I found with Excalibur. There isn't an A1 DI but I was able to find the Windows copy of the original Vulcan 2 engine one however). Believe me, the Steam forums are chock full of this way of thinking, particularly the Black Mesa one, though I'm not the OP of any of those thankfully.

So yes, I do agree with you. I would happily make something myself if I knew how to code anything other than HTML and CSS. For now I need to get back to my Mac at some point to practice with Weland and learn Lua and MML to make a start. And I need to learn Shapefusion as well, but I may be able to use the Anvil manual to some extent, like I use the Forge one for Weland.

So far the only actual game I've programmed was a crappy little breakout crossed with space invaders clone on Gamemaker that I made for College back in 2015 or 2016, inspired in part by Gnop and the remake of Whisky Galore I'd watched being recorded the former of those two years.
The aforementioned flame wars and/or toxic reactions I've either seen or been part of have also made me less trusting of some users here, even though their work is great and they may mean well in what they say to me. It doesn't help I have AS, OCD and ADD which means my behaviour may not be what people expect. I haven't brought up that I have those since my earliest days in the Story Forum as I don't want people to assume I'm using them as excuses.

Since reading this, I'm just going to automatically assume my post quoted above will be seen as sarcastic and disingenuous as well, even though it's not, solely because of the wording used.
User avatar
Ku-rin
Born on Board
Posts: 59
Joined: Feb 15th '19, 15:14
Location: Not Invented Here

Ahh, naw. I think you're good actually. You don't seem malicious at all.

Just think before you say stuff like that. Trigger warning is lame no matter what. If you're gonna throw a punch don't tell somebody you're gonna throw a punch, just do it. If you don't believe in your opinion, why will anyone else?

Be kind to Mama Treellama, that's all I really wanted to say.

Edit: I could see how AS et al would read out that way. No judgement, I can kind of understand. You meant well enough. Above still applies in whatever sense makes any to yourself?

Edit Deux: I was often the guy 'asking' for stuff a decade ago. You ain't I, and so I just hope you get my jist when I say don't do that, when I mean, I did that, I wasn't quite right, so maybe don't do that. And be nice to Mama Treellama or they'll put you in the house of detention.
User avatar
treellama
Vidmaster
Posts: 6110
Joined: Jun 2nd '06, 02:05
Location: Pittsburgh
Contact:

Ku-Rin wrote:the house of detention.
Image
User avatar
Lion O Cyborg
Cyborg
Posts: 188
Joined: Jun 22nd '18, 19:00
Location: UK (which is IN EUROPE!)

Ku-rin wrote:Ahh, naw. I think you're good actually. You don't seem malicious at all.

Just think before you say stuff like that. Trigger warning is lame no matter what. If you're gonna throw a punch don't tell somebody you're gonna throw a punch, just do it. If you don't believe in your opinion, why will anyone else?

Be kind to Mama Treellama, that's all I really wanted to say.

Edit: I could see how AS et al would read out that way. No judgement, I can kind of understand. You meant well enough. Above still applies in whatever sense makes any to yourself?

Edit Deux: I was often the guy 'asking' for stuff a decade ago. You ain't I, and so I just hope you get my jist when I say don't do that, when I mean, I did that, I wasn't quite right, so maybe don't do that. And be nice to Mama Treellama or they'll put you in the house of detention.
Thank you man. :) But yeah, the jump Lua does do me well. Crouching isn't included with it but that's not the most important thing right now. After all, Strife on the Doom engine (vanilla and Vetaran) has jumping but no crouching. The lua script makes Marathon like that a bit, especially if it's used in a metroidvania scenario like that game.

No worries on the House of Detention: Bob broke me out once and I've a knack for finding hidden air vents and pipes:

https://tombraiders.net/stella/walks/TR ... und-10.jpg

https://steamcommunity.com/sharedfiles/ ... 1569163935

https://youtu.be/5yfSuqIS8HI?list=PLBiA ... jRjo&t=113
User avatar
Ku-rin
Born on Board
Posts: 59
Joined: Feb 15th '19, 15:14
Location: Not Invented Here

The only problem with crouching as I see it is that you have to put the player's position (or that of their feet) under the floor with a pure Lua approach. The alternative is to use running for crouching via physics, which is obviously horrid for those who enjoy running. If you only want to run, you could use the walking player physics for crouching, but I feel like that tradeoff isn't necessarily worthwhile in every situation. And, from a 3rd person perspective, your marine's legs will still be merged into the ground, because there isn't a way to fit a separate set of sequences to that.

So, even with Lua, the main issue with going under the floor is that stairs, or any kind of normally climbable ledge, becomes non-climbable. See, your basic option for crouching involves using the position fuction on the player, which means that their normal step threshold is now underground too.

I guess maybe one could do the physics/draw switcheroo like in the bridge trick CC did (http://simplici7y.com/items/better-bridges-5). I think it involved moving the player between where it appears to be above the actual floor polygon and a floor to walk on so you're not floating, with idle/postidle commands. I've also adapted this general idea for ladders, so that the forward/backwards velocity could be used for climbing and descending. The player sees themselves at so-and-so height when the frame draws, but for the brief interval where it counts they're on the floor for physics. I imagine it may be applicable here as well.

Even if this works, I still have no idea what to do about the 3rd person view. And, you'll need to eat a control from someplace. One could do what Vasara does, and check to see if the mic key is held down, thereby giving it an extra function, to crouch.

I may or may not go and do this at some point, but that's basically what would be involved.
User avatar
Lion O Cyborg
Cyborg
Posts: 188
Joined: Jun 22nd '18, 19:00
Location: UK (which is IN EUROPE!)

Ku-rin wrote:The only problem with crouching as I see it is that you have to put the player's position (or that of their feet) under the floor with a pure Lua approach. The alternative is to use running for crouching via physics, which is obviously horrid for those who enjoy running. If you only want to run, you could use the walking player physics for crouching, but I feel like that tradeoff isn't necessarily worthwhile in every situation. And, from a 3rd person perspective, your marine's legs will still be merged into the ground, because there isn't a way to fit a separate set of sequences to that.

So, even with Lua, the main issue with going under the floor is that stairs, or any kind of normally climbable ledge, becomes non-climbable. See, your basic option for crouching involves using the position fuction on the player, which means that their normal step threshold is now underground too.

I guess maybe one could do the physics/draw switcheroo like in the bridge trick CC did (http://simplici7y.com/items/better-bridges-5). I think it involved moving the player between where it appears to be above the actual floor polygon and a floor to walk on so you're not floating, with idle/postidle commands. I've also adapted this general idea for ladders, so that the forward/backwards velocity could be used for climbing and descending. The player sees themselves at so-and-so height when the frame draws, but for the brief interval where it counts they're on the floor for physics. I imagine it may be applicable here as well.

Even if this works, I still have no idea what to do about the 3rd person view. And, you'll need to eat a control from someplace. One could do what Vasara does, and check to see if the mic key is held down, thereby giving it an extra function, to crouch.

I may or may not go and do this at some point, but that's basically what would be involved.
I remember reading somewhere that the underground option could even cause you to glitch under stairs when attempting to climb. For finding a key that's hardly used to consume, maybe either the Recentre View, Turn > Strafe or Move>Look key could work? I never use those and I'm not sure if there's anyone else here who does, unless it's intended for a "Classic Mode" run of PID A1.

Shame that the source code for Damage Incorporated probably wasn't released. If it was, being able to either copy or port the jump and crouch code from that, along with any other useful stuff that Vulcan 2/Forge engine build added would help with issues like this, though even if it was, it I don't know if the movement codes would be easily implemented as a Lua or MML script instead of as an engine update. No worries though.


Side Note: Speaking of DI, I tried looking for the windows version of the Orion editor for it just now to see what it's like compared to Forge based editors, but I couldn't find any downloads for it. There's the Mac version here: https://www.myabandonware.com/game/dama ... orated-3ig but I don't think it's compatible with OSX. That site is incidentally where I found my version of DI for Windows (as the Mac version is likely the same idea regarding OSX).
User avatar
HelviusRufus
Cyborg
Posts: 257
Joined: Apr 15th '15, 03:37

Simply, Marathon scenarios are created to be without jumping (aside from the occasional grenade or rocket jump) and the artists go to a great deal of effort to make clever routes to get to seemingly unattainable places. Often putting a visible prize there to let you know it can be done. Jumping just negates all that creative work. It also lessens the creativity o the player. This is an old Durandal film, but it still runs on Marathon Durandal i.e. Marathon 2. Starting about 2:20 into the film is a bit of style.

Smooth talkin slow walkin Marathon style.
I just play 'em; I don't know how they work.
User avatar
Meerjel01
Mjolnir Mark IV
Posts: 422
Joined: Nov 4th '17, 09:59

Should it be more fair putting jumping in a separate engine then? Together with light mapping?

https://www.youtube.com/watch?v=-6MpPPau70E
User avatar
Lion O Cyborg
Cyborg
Posts: 188
Joined: Jun 22nd '18, 19:00
Location: UK (which is IN EUROPE!)

HelviusRufus wrote:Simply, Marathon scenarios are created to be without jumping (aside from the occasional grenade or rocket jump) and the artists go to a great deal of effort to make clever routes to get to seemingly unattainable places. Often putting a visible prize there to let you know it can be done. Jumping just negates all that creative work. It also lessens the creativity o the player. This is an old Durandal film, but it still runs on Marathon Durandal i.e. Marathon 2. Starting about 2:20 into the film is a bit of style.

Smooth talkin slow walkin Marathon style.
And yet most people ignore those routes entirely in favour of grenade jumping or grenade climbing unless they know where they are and simply want to fill out the map, a good example being eschewing the lava diving in Eat the Path in favour of wall-walking from the hard path lift to the doorway next to the In Home/No Home secret. All a jump script does is the same thing but without needlessly wasting health and ammo so grenade jumping can be saved for the really tricky ones normal jumping can't reach, such as bypassing the Colony Ship for Sale puzzle with grenade climbing to the exit door. Just saying.

By all means you don't have to make scenarios to require jumping, as being able to reach those areas without doing so is certainly impressive. However I do feel it's important to give both sides of the coin, listing why others including me like jumping in those things or how it can actually improve map design in scenarios designed for it if the map maker is really good. So it doesn't so much negate all the creative work as it does simply require it to be modified to fit the new controls, as demonstrated below:

Despite not running on Aleph One, for some examples; Ion Maiden, Strife: Veteran Edition (which like Marathon with Jump Lua on, also has no crouching) and Brutal Doom Extermination Day are good examples of jumping in 2.5D being used creatively. I guess that applies to all Build engine games, but Ion Maiden especially.

Ion Maiden's most complex ones are reserved for secrets only, like how Grenade jumping is required for secrets in Marathon, whereas BDED has some areas where you have to leap across gaps or mantle ledges in order to proceed, mostly in city levels or hell levels with Dead Streets and older versions of the Eye of the Storm map being the most extreme I remember.

https://www.youtube.com/watch?v=gsmR5i3_RuQ

https://steamuserimages-a.akamaihd.net/ ... 224736CC1/

https://steamcommunity.com/sharedfiles/ ... 1856313876

https://youtu.be/w7zq9X_tI8k?t=347

https://youtu.be/H1ZDR6xlwUk?list=PLoxV ... qtt1&t=251

I haven't listed Strife's examples as unlike the others, they're pretty basic. While a lot of these example links are for city based levels, it can still be used for other level themes too. Those are just the best examples I could think of.
User avatar
HelviusRufus
Cyborg
Posts: 257
Joined: Apr 15th '15, 03:37

Screamernail wrote:Should it be more fair putting jumping in a separate engine then
This is fine. There is a good LUA for jumping in the Cheats LUA. It can be easily extracted and put in a custom LUA if'n someone wants to do that. Voila - jumping if'n you want it.
But... the contention here is to have it added to the engine. And that is not a good idea. If you go through the Pfhorums, you'll find many requests for certain functions along with the counter arguments. In addition, you'll find arguments over functions added or changed. There comes a point when you have a system that works that you should leave it alone.

Relatedly, there have been products that have been designed with great attention paid to consumer desires and wants. The most famous of these products is the Edsel.

PS. I find it interesting that the Pfhorums spell checker flags Pfhorums.
I just play 'em; I don't know how they work.
User avatar
Lion O Cyborg
Cyborg
Posts: 188
Joined: Jun 22nd '18, 19:00
Location: UK (which is IN EUROPE!)

HelviusRufus wrote:
Screamernail wrote:Should it be more fair putting jumping in a separate engine then
This is fine. There is a good LUA for jumping in the Cheats LUA. It can be easily extracted and put in a custom LUA if'n someone wants to do that. Voila - jumping if'n you want it.
But... the contention here is to have it added to the engine. And that is not a good idea..
It is a good idea but that doesn't mean people have to use it if it's not their cup of tea. My above post gives the reasons why, plus video and screenshot examples of how Marathon style levels could be built with that in mind if the map maker chooses to allow jumping. Even some Doom scenarios disallow jumping in their readme files and setting GZ Doom's jump and/or crouch controls to "default" disables it for those particular WADs, but not others such as the old Strife WAD. Pirate Doom is such an example of the latter.

That said, the Jump Lua works fine and it can be toggled on and off so long as someone has it, so a refined version of that script designed as a plugin might be the best of both worlds. Might be, I don't know if plugins are that advanced to add entirely new keybinds. It does free up the Single Player script slot for something else though, so the jump LUA as a plugin still has potential.
User avatar
Ku-rin
Born on Board
Posts: 59
Joined: Feb 15th '19, 15:14
Location: Not Invented Here

Plugins are simply a way to package Lua/MML. No magic there as far as capabilities outside of Lua/MML.

The entirety of available controls are listed in the MML reference. Action triggers in Lua are limited to what Lua will recognize. What the hell "Action Trigger State" is in MML's keyboard defaults I don't grok. Maybe there's a way somewhere in that, I dunno. It is cryptic.

Code: Select all

Keyboard-Defaults Element: <keyboard>
This element is for setting the default keyboard settings. It has an attribute "set" which indicates which of the three sets to set keys for (Standard, Arrows, PowerBook), and a child element <key> with attributes

    index: which key action
    sdl: the SDL key code 

Here are the various actions:

    Moving Forward
    Moving Backward
    Turning Left
    Turning Right
    Sidestepping Left
    Sidestepping Right
    Looking Left
    Looking Right
    Looking Up
    Looking Down
    Looking Center
    Cycle Weapons Backward
    Cycle Weapons Forward
    Left Trigger State
    Right Trigger State
    Sidestep Don't Turn
    Run Don't Walk
    Look Don't Turn
    Action Trigger State
    Toggle Map
    Microphone Button 
patrick
Mjolnir Mark IV
Posts: 466
Joined: Sep 22nd '08, 17:10
Location: 末法

quality is job one.png
Post Reply