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

Random Teleporting in Boom

Recommended Posts

ZDoom derivatives allow random teleporting when entering a teleport that has multiple destinations with the same tag. Unfortunately, this does not work in Boom.

Ultimately this calls for some sort of contraption using conveyor belts, however, all attempts I have tried involved a closed circuit with the monsters passing over several gaps. When the doors in the circuit are closed, the monsters cannot pass the gaps, and falls within them and are scrolled into a teleporter (each one possessing an arbitrary tag). While this is not "truly random", as it depends on when the doors are closed and where the monsters are currently within the circuit, it is convincing enough for most needs.

However, this only works reliably with one monster at a time, as monsters are subject to getting stuck on one another and can clog the circuit. There are also issues where monsters will not teleport when the destination is blocked (in both the circuit, and the game's map). On top of that, I feel this is also way too complicated and high-maintenance for such a simple effect.

Does anyone have some ideas for what I can do here? Preferably I could use something where I can release monsters into the contraption at will, and then have them automatically dispersed across the map. I should note that the monsters may or may not be "active" once released into the contraption.

Help appreciated!

Share this post


Link to post

This is an example wad I made in 5 minutes. After loading, just shoot. While this is far from random and certainly needs tweaking, it's fairly simple.

Share this post


Link to post
Donce said:

This is an example wad I made in 5 minutes. After loading, just shoot. While this is far from random and certainly needs tweaking, it's fairly simple.


While it's a noteworthy trick in vanilla, it's not what I'm after. It depends too largely on the monster making the move, which is hardly random (it's mostly based on player location). It also assumes that the monster is active.

Share this post


Link to post

This work OK?

http://t.underworldgamers.com/wp-content/uploads/td-randomtp.zip

Seems to provide fairly random results. Tested in glprboom+ complevel 9.

You can crush the imp at the end of the map to allow for 100% kills. I've put 2 closets in. One with alert monsters and one with deaf monsters. The deaf monsters can cluster at times but I dare say tweaking the lifts I have in place would avoid that - in fact I probably have too many lifts... over complicating things as usual. You could just have a single moving floor that moves the monsters forward back a set amount but I figure having the imp activate the lifts adds more uncertainty to the mix. A player would possibly not know the difference however.

Travers

Share this post


Link to post

Awesome! This might actually work better than the method I used.

What I did was have a belt, where the monsters would be scrolling around it perpetually, passing through teleport linedefs as they went. The teleports wouldn't trigger because a barrel was blocking each destination. The purpose of this belt would divide the monsters randomly into groups, then each group would pass through another belt sending them off to the map. A lot of work for a one-time use trap.

I like your method here, because it's a bit more flexible to work with. I can actually add monsters after the traps have emptied. I'd have to ensure it's 100% reliable, but I think this might be the better approach. Thanks!

Share this post


Link to post
traversd said:

You can crush the imp at the end of the map to allow for 100% kills.


You could even change the imp for a lost soul at sector 4, since they do not go towards the kill count.

Share this post


Link to post

Instead of making monsters go into different teleporters, you can also try to move the teleport destination thing (TDT).

In Boom, monsters are teleported to a tagged sector which also has the TDT. So you can tag different sectors, but the one where your TDT is going to end up will be the destination. The TDT normally cannot be moved on conveyor, but that's easily changed by tweaking its thing properties. Once you can move the TDT around, you can use line-to-line teleporters to move the TDT to its target sector. Normally I use this just to eg. switch teleporter from 'inactive' to 'active' or something like that, but by using monster movement or the player's own actions you can make this target "random".

ZDoom originally broke this behaviour (teleport destinations were determined pre-game) but later reverted. But you should check if this is still the case.

Share this post


Link to post
Mordeth said:

The TDT normally cannot be moved on conveyor, but that's easily changed by tweaking its thing properties.

Or putting it in deep water (thanks TGH)

Sorry, this was complete rubbish, I was thinking of something else.

Share this post


Link to post

I've got this working really well in my map. To see how random the distribution was, I made sort of a bar graph in the automap with each segment of the teleport lead to it's own segment in the graph. ^_^

Sample result: click.

Aside from the outer teleport triggers, the rest had a pretty varied distribution each trial, which is what I'm after. To fix the outer triggers (not fixed in the above result), I increased the width of them. Each trial, it seemed that one of the triggers was more likely to be set off, making monsters teleport to a certain spot more often.

In the test map in the screenshot, I used 2 lost souls with 4 lifts each, but this actually seemed to make the results seem less random, so I removed one from the final thing. I also only had one failsafe teleport, to catch any monsters that didn't set off a trigger. I now have seven. You can actually see a failed imp right on the other side of my viewing window.

I think I've addressed all my problems now. So thanks for help.

Earlier I said:

ZDoom derivatives allow random teleporting when entering a teleport that has multiple destinations with the same tag. Unfortunately, this does not work in Boom.


I have noticed that Boom does something here. While testing my map with an untagged teleport linedef (tag 0), and several untagged destination points, the monsters ended up preferring one teleport destination over the other (should be the one with the lowest thing number or sector number or somesuch). I say prefer, because if that destination was blocked by another monster, it would jump to a different one.

Is that what is going on here? I only tested it with PrBoom, and I didn't try this out in a controlled situation. If I understand, this should happen with any tags, correct? What is going on here at the code level?

I ask, because this is a good failsafe method, for when the monster can't exit the trap and needs to loop back around. By having multiple loop landings at the beginning of the contraption, I can ensure the monster never gets stuck inside, without having to come up with any elaborate solution.

Share this post


Link to post

You could make a random generator using the Boom voodoo doll binary counter method. Or at least I think so. As I see it in my head it works.

Share this post


Link to post

Okay, here are the results from a few tests for comparison. All randomization at this point is from the lost soul triggering the lifts, which is alerted as soon as the map loads. If the lost soul's activity is delayed, this should produce further random results. I'm not quite sure why the leftmost teleport trigger is rarely activated though... I'll have to do some more investigating to see why.

Edit: whoops, seemed I had another sector tagged the same as the first teleport trigger. That's why nothing ever teleported to the first sector in the "graph". So the odds of something ending up there should be the same as something teleporting to the last sector.



Download: http://wadhost.fathax.com/files/randtele.zip

kristus said:

You could make a random generator using the Boom voodoo doll binary counter method. Or at least I think so. As I see it in my head it works.

Worst already made one based on the time the RNG is called. It used the method I described in my first post. Seemed to have a precision of a few tics. I'd link to the wad, but I'm not sure if he'd be okay with it.

Share this post


Link to post

And is a Dehacked patch required to move TDTs as mentioned by Mordeth? And if they are movable, can they be teleported?

Dehacked patch, or any alternative mode of editing thing properties eg EDF. Make it non-solid but disable 'not on map'. And once movable, they can be teleported too... after all, a TDT is just like any other Thing. Boom has line-to-line teleports so it starts to have use there... because without line-to-line teleports, you wouldn't be able to teleport a TDT unless the target sector already has a TDT... so... ;)

Share this post


Link to post
Mordeth said:

ZDoom originally broke this behaviour (teleport destinations were determined pre-game) but later reverted. But you should check if this is still the case.



Don't worry. The original sector-based teleporting code is there to stay any by now has even been used by some Hexen format maps.

Share this post


Link to post
Creaphis said:

This works for pushing most unpushables but seemingly not for teleport destinations. Or were you able to get it to work?

No, sorry, I was thinking of something else and ended up talking complete rubbish. [ Oh well, no change there then! :-) ]

Share this post


Link to post
traversd said:

And is a Dehacked patch required to move TDTs as mentioned by Mordeth? And if they are movable, can they be teleported?

Dehacked patch, or any alternative mode of editing thing properties eg EDF. Make it non-solid but disable 'not on map'. And once movable, they can be teleported too... after all, a TDT is just like any other Thing. Boom has line-to-line teleports so it starts to have use there... because without line-to-line teleports, you wouldn't be able to teleport a TDT unless the target sector already has a TDT... so... ;)


Ah ok.

Can anyone explain the boom voodoo doll binary counter method is?

BTW, I'm quoting myself. Did someone click edit/moderate instead of quote reply? ;o)

Share this post


Link to post

traversd said:
BTW, I'm quoting myself. Did someone click edit/moderate instead of quote reply? ;o)


Sorry, probably hit the wrong button when I replied to you :)

Share this post


Link to post
Guest
This topic is now closed to further replies.
×