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

[Boom] Sequenced switches

Recommended Posts

As I found no existing setup for this, I decided to explore the concept of sequenced switches in Boom using conveyors. After a few iterations and helpful feedback from @Nine Inch Heels, I was able to make one that is compatible in PrBoom+, Eternity and GZDoom that remains both optimal and relatively easy to implement. It uses a 32 mu activation line that should make it consistent between different ports.


The idea is that you have to press X number of switches in a specific order for something to happen. If you press a switch more than once, it will force you to start the sequence again. In the current iteration, there is no functionality to have one switch appear multiple times in the sequence; every switch is supposed to be pressed only once.


The included example has a five switch sequence, but it can be extended/reduced to the desired number of switches with relative ease, using the existing logic of the previous switches.


Here's some technical info in case you're interested:


Below is a picture of the overall look of the system:




The five lowermost closets each represent a switch, from 1 to 5. The last closet at the top contains a voodoo doll that is released once the sequence has been inputted correctly.


The basic idea revolves around two "systems" and a hard reset on pressing the first switch of the sequence. The first system keeps a count of how many times any switch in the system has been pressed. When this count exceeds the total number of switches, it will block the top most voodoo doll until the system has been reset. The second system keeps a rudimentary tally of the switches pressed; every time a switch is pressed, a floor lowers, making it possible for another floor (corresponding to the next switch) to be lowered. At the same time however (since the hard reset does not reset the aforementioned floor heights associated with individual switches) it raises the floor of the next switch to it's original position, thus making sure that every time a switch is pressed, the next one also needs to be pressed again.

The combination of these two systems makes it so that each switch needs to be pressed once and only once in every cycle, and in the correct order.


Included files are 

  • a testing environment to see into the inner workings while you're pressing the switches (seqswitchtest.wad)
  • a cleaned up version that can be directly copy/pasted into your map (seqswitchprefab.wad)


DOWNLOAD LINK: seqswitch.zip


If you have any questions, or encounter any bugs/issues, let me know!

Edited by Aurelius

Share this post

Link to post

Mind boggling. This is pretty incredible. Thank you (and Nine Inch Heels) for figuring this out! I'm sure this will be put to use in some very creative ways.


Just out of curiousity… is it at all possible to make this sequence timed? As in, the player has to press each button in the correct sequence within a certain time limit, and if they're too slow, they have to start the sequence over again? 

Share this post

Link to post

Definitely! You could, for example, create another conveyor with a lowering floor acting as a timer, and when that floor has lowered all the way down, the doll would zoom past a linedef that would lock the switch system, requiring you to press the first switch again to reset it.


Scratch that, it could not be stopped midway if you wanted to reset the timer. You could have the doll just move along a conveyor for the duration you wanted, and if the player wanted to reset, pressing the first switch could lower a wall with a pusher behind it that would push the doll into a teleporter and send it back to the start.

Edited by Aurelius

Share this post

Link to post
1 hour ago, RonnieJamesDiner said:

Just out of curiousity… is it at all possible to make this sequence timed? As in, the player has to press each button in the correct sequence within a certain time limit, and if they're too slow, they have to start the sequence over again? 

It think it should be possible to pull off.


If you place two additional triggers in each conveyor, in example one trigger that unlocks the next conveyor, and one that locks it after a certain period of time has passed, you could force a time restriction on players. Alternatively you could build a parallel conveyor that houses the timer for the next switch separately (which might be necessary in some cases, if for example you have to account for eventual spechits overflows).


The biggest problem I see with this is that this time restriction is very hard to communicate to players, because you would have two separate "failstates" for when a switch does nothing at all. One being the wrong order of switches pressed, and the other being the time restriction. How is the player supposed to be able to tell the difference when both failstates look the same in the game?


In my point of view, it would be best to tie this time constraint to something that is very visible in the map, in order to get the point across. If you can do that in ways people can wrap their heads around, because they can actually see it happen, then it should be all good.


As for setting this up in such a way that the whole system can reset itself if either failstate occurs, that might be a bit more complicated than the prefab Aurelius provided, but without trying to actually build something like that, and just based on "gut-feel".. Yeah, I think it's doable.

Share this post

Link to post

Like Nine Inch Heels said, the issue of having two failstates simultaneously would be incredibly difficult to communicate, and such a puzzle would overall be questionable in terms of gameplay. While mechanically it's most likely doable, the question is whether it is sensible.

Sequential puzzles in general tend to be about being aware of your surroundings, deciphering clues to figure out the order in which you need to press the switches. Adding a timer would divert the players attention elsewhere, forcing them to spend a few unsuccessful attempts at figuring out the order within time constraints, which would (as an experience) be somewhat equivalent to not having a timer at all.


Moreover, it would make more sense in a timed puzzle for the switches to be such that they can be pressed in any order (which would also be easier to communicate to the player). You could then use geometry and map layout to "force" the player to choose from one or two routes that are the only ones in which there is enough time to press all switches, thereby "naturally" coercing the player into doing it as a sequenced puzzle.

Share this post

Link to post

Hmm, yeah I didn't really consider the issue of communicating all of this to the player. Although, I suppose a "ticking" noise which played only while the sequence was active might do the trick, combined with a visual hint for the actual order of switches. But... yeah, would it even be fun anymore. I think you raise a good point about a timed puzzle being better served by an "any order" sequence, so that really the puzzle is figuring out which order gets you there in time.


All of that said, I'm slowly realizing I have no business trying to make complicated Boom mechanisms do fancy-pants things at this point (I've been staring at this WAD still trying to digest how exactly it works).


Thanks for the response though, both of you.  

Share this post

Link to post

@Aurelius, @Nine Inch Heels this is a great creation. Thank you. I was thinking about trying to implement something like this in a map I was making for the Zekhmet CP (with the solution being presented explicitly in a secret and hinted at elsewhere), and I was scratching my head thinking about how to do it. I may end up using this switch puzzle prefab with extreme thanks and credit.


As for communicating to the players, you could do it with a texture, explaining that there was a timer on each switch. Yes, the players would have to read it, but it could be done like that. It would be sort of like Lupinx-Kassman did at the beginning of Map 20 of CC4 (not to explain a puzzle, but just to provide exposition). Though, I agree that a timed puzzle of this sort where you have to press switches in a precise order with a limited amount of time between each press (and with the entire puzzle resetting if either the switches are pressed out of order or not quickly enough) might not be terribly fun from a gameplay point of view.

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