Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Touchdown

Conveyor timings | PRB+ vs ZDOOM

Recommended Posts

Posted (edited)

note: this may be common knowledge, sorry if this is something that everyone knows or something that everyone asks about all the time.

 

I've noticed that there is a significant difference between the speed of voodoo dolls on conveyor belts between PrBOOM+ and ZDOOM which threw off my timings when I tested them in PRB+. So I made this beauty to test things out:

 

NjyeOU9l.jpg

 

Here's how it works: the three long sectors are conveyor belts (action 253) with the lenghts of the action lines of 8, 16 and 32 respectively. Trigger lines along the way are opening pillars to the right and they're all 64 units apart. I used a stopwatch to measure how much time passes between pillars to determine time it takes a voodoo doll to cross 64 units.

 

There are two main scenarios. The first one is the regular time between two pillars 64 units apart. The second one was measuring the time of the initial 64 units. The reason: voodoo dolls are unlocked, in this case, by a door (action 118) and there's a slight delay due to the fact that a door has to open and the voodoo dolls needs to gain speed.

 

Here's the problem though. It seems that in PRB+ in the case of the first two conveyors, 8 and 16 unit long, the voodoo doll is NOT moving at the proper speed. The player placed on top of one of them is moving significantly slower than the conveyor itself. The issue no longer applies to conveyor lines that are 32 or longer (the break point is 22, that's the shortest line that has the proper speed). Now, if I wiggle a little bit and stop, the speed issue is fixed on those slower conveyors.

 

Another thing to note: the doors are 8 units thick and are not conveyors themselves. In ZDOOM that makes no difference. In PRB+ the player briefly speeds up on those sectors.

 

So, here are the rough timings for crossing 64 units:

 

ACTION 253 / 8 UNITS LONG
ZDOOM: 7,2 sec
PRB+: 7,4 sec
PRB+ broken: 1 min 18sec

 

ACTION 253 / 16 UNITS LONG
ZDOOM: 3,7 sec
PRB+: 3,6 sec
PRB+ broken: 39 sec

 

ACTION 253 / 32 UNITS LONG
ZDOOM: 1,8 sec
PRB+: 1,8 sec
PRB+ broken: n/a

 

ACTION 253 / 32 UNITS LONG / PASSING THROUGH A DOOR
ZDOOM: 2,7 sec
PRB+: 2 sec
PRB+ broken: n/a

 

It would appear that there's close to no difference between ZDOOM and PRB+ after all, unless you're doing some super precise trickery that has to be absolutely perfect. As long as you're using conveyor lines are at least 22 units long that is, according to my masterful experiments.
_________________________

The reason I'm bringing this up is because in my stuff I use voodoo dolls on conveyors to trigger things sequentially but I'm not doing anything that requires perfect precision. So my question is: am I right about this or are there some other details that have to be considered? I googled some old thread where people were suggesting using lowering floors to help with the timing differences between PRB+ and ZDOOM... so I'm not sure. But if all I really need to do is to make sure the conveyor lines are long enough and that will guarantee roughly the same results, I will try to keep the PRB+ support.

 

BONUS QUESTIONS
While I'm at it, I might as well ask some things related to PRB+. I'm using what I believe is the last official version, 2.5.1.4.

 

1. It would appear that when I try to use GLBOOM+, voodoo dolls do not appear at all. They spawn just fine in software. This is true for all maps that use voodoo dolls. I'm not sure what's going on here. I re-downloaded PRB+ and the issue persists. [EDIT: SOLVED]

 

2. Since I know nothing about how compatibilities work in PRB+, let me ask this. To make sure sure the right compatibilities are set for strong limit removing format that only uses BOOM features (let's say Vela Pax or Deus Vult II), all I need is to make a shortcut of prboom-plus.exe and add complevel so it looks like this in properties, is that correct?

 

prboom-plus.exe" -complevel 9

 

3. Also, is complevel in any way related to compatibility settings in PRB+ itself? I mean, from what I understand it is but there's a whole section called DOOM Compatibility in the menu but it doesn't seem to be affected by using complevel at all.

Edited by Touchdown

Share this post


Link to post
44 minutes ago, Touchdown said:

While I'm at it, I might as well ask some things related to PRB+. I'm using what I believe is the last official version, 2.5.1.4.

Latest version is 2.5.1.5.

 

1. You're doing something wrong.

2. If you need to make absolutely certain, be sure to set the default compatibility level in the general settings.

3. The compatibility settings are for when you're using the default compatibility level, so they're irrelevant when you use different complevels.

 

If anything, it would almost certainly be zdoom that's wrong, since most of its behavior is wrong. I have literally no idea how you've managed to make voodoo dolls not spawn in glboom+, but if you need more help, you can use this starterpack that comes with some handy .bat files you can use to set the complevel more easily and stuff. It uses the latest version prboom+ and is preconfigured. prboom-plus-2.5.1.5-starterpack_v3.zip

 

I had no idea zdoom was off on the conveyor belt timings though, thank you for informing me friend... unless you actually are doing something wrong, in that case, I've learned nothing :c

Share this post


Link to post

Haha, ok, I feel stupid now but I think I understand what happened.

 

Basically glboom+ has things displayed as Icons on the automap by default and apparently voodoo dolls do not show up when that is the case. So when I tried to use one of the switches that releases a voodoo doll on a conveyor belt, the trigger didn't work but not because there were no voodoo dolls but because I used the 8 unit long action 253 line that does not move the doll at the correct speed (as I explained earlier). But I didn't know that at the time so I just used iddt to see what's going on and couldn't see the voodoo doll - so I wrongly assumed that they didn't spawn. But the real reason was the speed malfunction. Well, at least that mystery is solved.

 

48 minutes ago, bonnie said:

Latest version is 2.5.1.5.

 

1. You're doing something wrong.

2. If you need to make absolutely certain, be sure to set the default compatibility level in the general settings.

3. The compatibility settings are for when you're using the default compatibility level, so they're irrelevant when you use different complevels.

 

Oh, it says "test" so I assumed it's not completely stable and used the latest non-test version.

 

So from what I understand the default settings in the menu (everything set to 'NO' except dead players can exit the level) is complevel 9?

Share this post


Link to post
1 hour ago, Touchdown said:

Another thing to note: the doors are 8 units thick and are not conveyors themselves. In ZDOOM that makes no difference. In PRB+ the player briefly speeds up on those sectors.

What happens here AFAIK is that in Boom, when an actor is at least partly on a conveyor belt sector, it gets accelerated by the conveyor's vector. So what happens if your actor is partly on a conveyor belt sector, partly on a door sector, and partly on another conveyor belt sector? Well it's partly on two conveyor belt sectors, so it's accelerated twice!

ZDoom uses a different logic where the speed vector that's added to the actor is the average of the conveyors that affect it.

 

However, ZDoom does have a compatibility option to use Boom's behavior. You can set it from ZMAPINFO if your map requires it for proper timing of voodoo doll shenanigans. If you set it and you still find behavioral differences between the latest GZDoom and PrBoom+, please report it as a bug, with your test map, on the ZDoom forums.

Share this post


Link to post
12 minutes ago, Touchdown said:

Basically glboom+ has things displayed as Icons on the automap by default and apparently voodoo dolls do not show up when that is the case. So when I tried to use one of the switches that releases a voodoo doll on a conveyor belt, the trigger didn't work but not because there were no voodoo dolls but because I used the 8 unit long action 253 line that does not move the doll at the correct speed (as I explained earlier). But I didn't know that at the time so I just used iddt to see what's going on and couldn't see the voodoo doll - so I wrongly assumed that they didn't spawn. But the real reason was the speed malfunction. Well, at least that mystery is solved.

you silly goose c:

 

12 minutes ago, Touchdown said:

So from what I understand the default settings in the menu (everything set to 'NO' except dead players can exit the level) is complevel 9?

i dont know, i never actually look in there

when i said set the default compatibility level in the general settings, i mean there's a literal setting on page 2 of general settings that says "default compatibility level", which you can set to "boom".

 

oh well it's solved anyways with that thing gez said hooray everybody wins

Share this post


Link to post
Posted (edited)

 

Quote

However, ZDoom does have a compatibility option to use Boom's behavior. You can set it from ZMAPINFO if your map requires it for proper timing of voodoo doll shenanigans. If you set it and you still find behavioral differences between the latest GZDoom and PrBoom+, please report it as a bug, with your test map, on the ZDoom forums.

 

Thank you mentioning that! I've always assumed if I was to use voodoo conveyers in a boom map then I would just have to accepted that things might be different when playing in zdoom. 

Share this post


Link to post
33 minutes ago, Gez said:

However, ZDoom does have a compatibility option to use Boom's behavior. You can set it from ZMAPINFO if your map requires it for proper timing of voodoo doll shenanigans. If you set it and you still find behavioral differences between the latest GZDoom and PrBoom+, please report it as a bug, with your test map, on the ZDoom forums.

 

By default I'm using the discontinued standalone ZDOOM but I do have the latest GZDOOM as well (3.4.1), both set to BOOM (strict) in the options, which shows "BOOM Scrollers are additive" (is that the one?) set to YES. I can't see any difference though when I change this option. Maybe it's really subtle but definitely not as noticable as in PrBOOM+.

 

31 minutes ago, bonnie said:

when i said set the default compatibility level in the general settings, i mean there's a literal setting on page 2 of general settings that says "default compatibility level", which you can set to "boom".

 

Oh, I do have that set to BOOM. I was just wondering what it has to do with the DOOM Compatibility settings because those appear to be unaffected by anything - unlike in (G)ZDOOM where changing the general compatibility shows all the different changes.

Share this post


Link to post
Posted (edited)
3 hours ago, Touchdown said:

Here's the problem though. It seems that in PRB+ in the case of the first two conveyors, 8 and 16 unit long, the voodoo doll is NOT moving at the proper speed.

The problem is actually that boom conveyors aren't operating at the proper speeds in ZDoom based ports. Boom came first, ZDoom merely implemented the conveyors that boom format came with, but ZDoom has a different physics engine is roughly what's the issue there as far as I can understand it.

 

If you want for conveyor based timers to work reliably in both ports (Boom and ZDoom derivative), you need to use "raise ceiling actions" and lower the ceilings which block the dolls accordingly, instead of messing with the length of the conveyor.

 

If you raise a ceiling at slow speed with boom generalized actions, it raises 35 map units per second, which equals the speed at which a voodoo doll travels in boom when you use an 32 mu sized action 252 linedef.

 

All you really need to do here as far as I know is to translate conveyor length into ceiling heights (or "lowths", "depths", whatever), and you should get almost precisely the same results in Boom and ZDoom based source ports with the very same conveyor and ceiling height setups.

 

EDIT: Using the ceiling height method is also really nice if you want to have the conveyor timers in a more "compact" kinda setup. Makes them less clunky to work with, and potentially allows you to have them near the spot in the map you're working on, which can be really convenient for keeping track of the tags and such for debugging purposes (if that needs be, for that matter).

Share this post


Link to post
1 hour ago, Nine Inch Heels said:

The problem is actually that boom conveyors aren't operating at the proper speeds in ZDoom based ports. Boom came first, ZDoom merely implemented the conveyors that boom format came with, but ZDoom has a different physics engine is roughly what's the issue there as far as I can understand it.

 

If you want for conveyor based timers to work reliably in both ports (Boom and ZDoom derivative), you need to use "raise ceiling actions" and lower the ceilings which block the dolls accordingly, instead of messing with the length of the conveyor.

 

If you raise a ceiling at slow speed with boom generalized actions, it raises 35 map units per second, which equals the speed at which a voodoo doll travels in boom when you use an 32 mu sized action 252 linedef.

 

All you really need to do here as far as I know is to translate conveyor length into ceiling heights (or "lowths", "depths", whatever), and you should get almost precisely the same results in Boom and ZDoom based source ports with the very same conveyor and ceiling height setups.

 

EDIT: Using the ceiling height method is also really nice if you want to have the conveyor timers in a more "compact" kinda setup. Makes them less clunky to work with, and potentially allows you to have them near the spot in the map you're working on, which can be really convenient for keeping track of the tags and such for debugging purposes (if that needs be, for that matter).

 

Thanks for the info, I'll try to toy around with that. But honestly for my needs I'm not sure if there's a point. I've just tested a long 4224 unit conveyor for a ~2min ride (32 unit long 253 action linedef) and I got 1min 59sec in ZDOOM versus 2min 2sec in PRB+. Not a huge difference and I'll probably not even reach 2min worth of triggers anyway. But yeah, I'll try that out.

 

2 hours ago, Gez said:

What happens here AFAIK is that in Boom, when an actor is at least partly on a conveyor belt sector, it gets accelerated by the conveyor's vector. So what happens if your actor is partly on a conveyor belt sector, partly on a door sector, and partly on another conveyor belt sector? Well it's partly on two conveyor belt sectors, so it's accelerated twice!

ZDoom uses a different logic where the speed vector that's added to the actor is the average of the conveyors that affect it.

 

Sorry for confusion but you can disregard my comment on that. I forgot that DB retains the tag when you make a new sector within a tagged sector. The reason there was a speed bump in PRB+ was that both the conveyor AND the door had the same tag, even though I was sure that wasn't the case until I actually checked. Now that I fixed it, neither ZDOOM nor PRB+ have a speed bump when crossing the door sector.

Share this post


Link to post

Alright, so it really is quite simple. Again, thanks to Nine Inch Heels for bringing my attention to this. For a rising ceiling 35 units at slow speed is 1sec. You start at ceiling 21 for the first second (because the player is 56 units tall, 56-35=21) and keep substracting 35 for each subsequent second. So ceiling -119 is 5sec, -994 is 30sec, -2044 is 60sec, -4144 is 120sec and so on. Time to rework my garbage conveyor triggers!

 

Also a bonus note on how it compares to ZDOOM. From what I can tell the difference isn't really a whole lot so, again, unless conveyor trickery is used for something that's meant to be really precise, it should work roughly the same in both ports - monster triggers for instance should not really suffer too much. BUT there is a noticable difference. I used the 2min mark for the comparison because it's a fair amount of time for a trigger. In PRB+ I always get exactly 120sec but in ZDOOM? ~117.7sec. That's over 2sec faster than in PRB+.

Share this post


Link to post

You can simply set the ceiling for your conveyors to "0", set the floor of the conveyors to "-56", and then you only need to look at how much you lower the ceiling pieces that block the dolls. Makes it nice and easy, no need to keep track of what height the conveyor ceiling is at. It's basically just entering "raw numbers" when you do it that way.

Share this post


Link to post
5 hours ago, Touchdown said:

In PRB+ I always get exactly 120sec but in ZDOOM? ~117.7sec. That's over 2sec faster than in PRB+.

ZDoom's tics were a bit shorter than they should be, as they lasted exactly 28 milliseconds. 28*35=980 milliseconds instead of 1000 as expected. And 98% of 120 is 117.6, mystery solved.

 

This was fixed in GZDoom 3.2.2 by refactoring the timer code, so, again, this should behave just like PrBoom+ in the latest GZDoom.

Share this post


Link to post

Sorry, I didn't read anything, but this might help:

 

Share this post


Link to post

Try Sugar, Water Purple from Mayhem 2018 Purple and watch how the raising circular platforms differ

 

No idea how to fix it

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×