Nine Inch Heels Posted January 17, 2020 (edited) Why exactly this "guide"? Because in spite of all the kinds of tutorials out there, a lot of maps I've come across in recent past, as well as my very own first few mapping attempts and even "high profile" releases, seem to struggle every once in a while with a supposedly simple aspect of mapping. What can I learn here, and will there be a quiz after? If you're interested in getting the desired effect out of your teleport closets in the future, this piece of work right here might just be what the doctor ordered. As for formats covered, we'll be looking at vanilla Doom2 actions (but limit removing!) for example's sake, because it should be easy to apply the "logic" behind those closets to whichever format you prefer, be it "ZDoom in Cookie Crumbles", "YouDeeUmmEff", or "Ba-Da-Boom". What we're not going to look at here, however, are things such as scrollers. It would be too much to combine "classic closets" and "scrollers" into a single guide, or essay, or whatever this qualifies as. On the bright side, there will be a quiz, if a few exercises count as such. So, yay! Oh, and I’ll have all the images in spoilers, because I think it looks a bit better overall. Back To Basics (Skip ahead to the next post if you are familiar with the fundamentals, and never have problems with getting simple setups to work) Let's remind ourselves real quick how "teleport closets the way id did" can look, so we can see what the core parts of these closets are. For this purpose I've chosen map 16 from doom 2. Feel free to open that in your builder to have a look for yourself, if you want to. What we see there are 4 main parts: The blue arrow indicates sound propagation. We need the contents of the closet to become "active" somehow, and sound is a tried and tested method. Once the player fires any weapon, including fists, the closet is "armed", assuming the sound can propagate unhindered, and things don't have an ambush flag. Depending on map structure you could also go for "visual contact" to activate the monsters, which is quite handy if you want to prevent pacifists from cheesing your devious ambushes. Be warned however that visual contact also means that things in closets may attempt to shoot at the player in the "playspace", which can seem "buggy", or cause infights in the closets. So keep that in mind whenever you use a "visual activator" for closets. The green arrows show where the teleport destinations are located. That's where our minions will show up to do as they damn well please. Don't forget to tag the sectors individually, otherwise the destinations won't do their job, and make sure there's enough empty space around the destination so that even the biggest monsters in your closet fit into the playspace proper. Note that the engine will only make use of one teleport destination per sector (and it's gonna stick to that destination no matter what!), whereas "mapspots" (ZDoom and UDMF) have their own tag which allows for several functioning "destinations" inside a single sector. The red arrows show where the barriers are. This is how we control when the monsters will start teleporting into the map. If you don't prevent the monsters from reaching the green teleport linedefs behind the barrier, they start populating the map as soon as they get "active". So, to make sure things show up when we want to, we need those barriers, and they need to be hooked to a tripwire or switch in the map, because they need to "drop" somehow, too. The green teleport linedefs behind the barriers. Simple walkover linedefs (repeatable ones!) that can be activated by monsters. In this case the linedefs have different tags, which is to allow monsters to make checks for "open destinations" in different locations from within the same closet. You don't necessarily need multiple tags for each and every closet, but for anything that is a bit more sizeable it helps to make sure the closets empties itself in a timely manner. When using teleport linedefs, make sure their front side is facing the direction from where things will approach it! Teleport linedefs are one-directional! Important to note here is that things don't teleport when their "boundaries" make contact with a teleport linedef, but when their centerpoint does. If you build something and somehow things don't warp, and you've checked everything else, see if things can actually move far enough, because that might be what's the cause of your problem. Well, that sure is quite a large closet for its day and age. To get warmed up proper, and avoid getting any cramps during the next part of this guide, let's start with something simple. First, we'll look at how to teleport 4 imps to the same destination, and then we'll teleport 4 imps to 2 different destinations... So here's 4 imps to 1 destination, a very simple "teleport stick": This closet is easy to build in just a few steps: - I place 4 imps before drawing anything. This way I know how to size up the closet before I even start drawing - I draw the "outer box" - I add the barrier (red arrow), raise it, and use one of its linedefs as my teleport linedef (Green Arrow. Make sure it's a repeatable action!) - I add a "cat's ear" (blue arrow) and join it to a sector in the map - Done A few notes about this setup: Sound propagation here is done via a "cat's ear" (blue arrow). These tacked-on sectors can be merged with a sector in the map, and they will allow the sound from inside the map to reach the imps and "activate" them. You don't have to use this method, but I find it quite useful, because it makes it easy to track when/if something gets activated. Handy when you build something big, and want to quickly check if everything can be expected to work when you test your map. Cat's ears also allow you to liberally change the position of your teleport closets, which is an advantage the classic "sound tunnels" do not have. If you want to check if everything is still joined properly, even after making a series of edits to your map, just go into sector mode, hover your mouse over one of the cat ears, zoom out, and see if the ears are still merged with a sector in the map. This way you avoid unfortunate surprises when you edit the playspace, and accidentally "un-join" something prior to testing. It eliminates one check in case you need to "troubleshoot", so it's a useful routine to develop, IMO. If you use a cat's ear that is joined to the map proper, but sound still doesn't reach the monsters in the closet, have a look at ceiling and floor heights, in some cases the height variation might be a problem. I use a triangular barrier instead of a rectangular one, because it works fine and am I'm lazy (she says while writing this goddamn essay), and also it's a bit more "compact", if you're into "optimizing" your setups a little and want to save linedefs for something else. The closet’s size is pretty damn snug, just enough for the 4 imps, with a little bit of wiggle room when the barrier drops, so that the imps can reach the teleport linedef. This closet works reasonably quick, but isn't "super fast", a decent fit for small ambushes in an early map of a megawad. And here's a simple closet to warp 4 imps to 2 separate locations: It is just as easy to build as the previous one, it merely involves an additional step: The impassable linedef down the middle. This one is there to make sure that the imps stay in their assigned "lanes", so that we will always have 2 imps showing in 2 spots no matter what. You could also use a monsterblocking linedef instead of an impassable one, I just prefer the visual clarity that comes with these brighter linedefs. What if we wanted to warp 40 imps to a single location? Would this setup be feasible? The answer is yes and no. It will get the job done eventually, but it might not do a good job. And why that is will be something we're going to investigate in the next chapters. Edited January 17, 2020 by Nine Inch Heels 53 Quote Share this post Link to post
Nine Inch Heels Posted January 17, 2020 The Nuances I hope you're all warmed up now, neurons firing and whatnot, because now we're going to have another look at doom 2 map 16, and its big south east closet. There is a lot more that we can learn from how the closet is built into the map. Time for a lowdown. To begin with, when you look at the map in its entirety, you'll notice that there are almost no spots in the entire map from where the sound won't propagate into the closet, which is to make sure that it has a very high chance of getting "armed", regardless of where the player picks fights. Have a look at the teleport linedefs, notice that they have a certain distance from the wall? This is important to keep in mind, because things need to be slightly "on top" of a teleport linedef to be able to warp. Also keep in mind that teleport linedefs are one directional, and need to be approached from the front side in order to do anything. What's also important to note is that at no point in time things in the closet will have a visual on the player prior to teleporting, which is especially important for closets such as this one, which house a variety of monsters that could start infighting. On further inspection we also see that the closet's position relative to the map correlates with how the teleport linedefs in it are laid out. Another observation worth pointing out is that there's quite a bit of "space" in the closet. What I mean is the ratio of empty space relative to the area occupied by monsters from the onset. This allows the monsters in the closet to "scramble" their positions once they're "active", which in turn means that, depending on how the situation in the closet has developed by the time you lower the barrier, you get a different "output". You can even test this for yourself. Play the map a little, drop a save before you grab the invuln on the pillar in that acid lake, and then grab the invuln at different times to see where and when the first monster warps in, and which type of monster it is. Or just IDCLIP and have a look inside the closet for a while, I guess that also works. Furthermore, the amount of " empty space" in the closet dictates how much "pressure" there is. Think of it as a bottle that is filled with pressurized gas, or a soda can. A high monster density with little open space means high pressure, and a lot of open space with few monsters means low pressure. This is why for example in slaughter maps you have situations where - at first - a room gets flooded really fast, to a point where it seems impossible to win if things keep spawning like that, but a few moments later the dynamics of the fight change, because as the closets empty themselves, the monster to space ratio changes and therefore the pressure in the closet lowers. Speaking of pressure, another factor that greatly impacts how fast a closet unloads is how many destinations it is made to support. The more destinations are available, the faster the pressure lowers in the closet. To summarize, there is a lot of nuance to building these supposedly simple teleport closets. Depending on what kind of effect you are looking to get out of your setups, you may need to consider things like size, shape, and monster density in your closets, as well as monster types, and the number of destinations a closet needs to support. Conversely, if a closet doesn’t provide the effect you were hoping to achieve, you now know that there are several things you may need to be looking at in order to solve your problem. In other words, how you build your teleport closets can make the difference between a fight that drags and ends up feeling like "busy-work", and a fast paced thrill that will give people sweaty palms as they fight for their lives. In addition to that, oversized teleport closets can cause monsters to warp in with very high delay, to the point where players might miss them during their playthrough, which is something that will rub casual completionists as well as ambitious UVmaxers the wrong way. Applied science Since we now understand that teleport closets can be made such that they behave differently, and therefore can be made to serve specific purposes, let's look at some of the options we have to "refit" the map 16 teleport closet, to better grasp the nuances of teleport closets overall. Here's where you get to cover your hand in blood. Time for an exercise! For this purpose, I've made a small and ugly map in Doom2 format, I hope you like D_RUNNIN, here you go: Closetquiz.zip I've copied the monsters from Doom2 map 16 over into this map, built a relatively large "arena" with 3 teleport destinations (tag 1, 2, 3), added a shootswitch to start the map proper (tag 4), and I placed a tripwire linedef (tag 5) which will lower the barriers in the closet. I also added ample ammo and enough health, so that even the greenest of doomers can win. I've taken care of sound propagation already by way of merging sectors, this allows us to move the closet liberally around the map if we need to. And of course there's also an exit. Let's start with something simple. Your objective is to slightly "de-randomize" the order in which the monsters spawn. Ideally imps should show up first, then cacos, and then mancubi. It doesn't need to be absolutely "perfect", just a handful of edits to get into the groove and preventing for example that a mancubus spawns prior to an imp. The rules for this task: You may make edits to the closet's original geometry, as well as adding linedefs and sectors to it. You may not move monsters around in the closet! If you're done with all the edits you wanted to make, fire the map up for testing, and see how everything works out. If you want to compare your solution to mine, alongside a few explanations for why my closet looks the way it does, check the spoiler below: As I said, some very simple edits, nothing highly optimized or anything. quiz1.zip What I've done there is "railing" the monsters. I use the size of the mancubi to make sure that they can't get past any other monster in the closet, therefore dictating that other monsters need to leave the closet before the mancs can reach the teleport line. I've used the linedefs of the barrier as my teleport linedefs, and some of the linedefs are flipped. The reason I flipped some linedefs is that teleport linedefs are "one directional", so, in order for a teleport to happen, you need to approach the linedef from the front, which is where the "noses" are located. If a teleport destination is blocked, things will walk over the teleport linedef, hit the outer wall of the closet, and then, thanks to the flipped linedefs, they get another shot at teleporting after turning around. That's what the flipped linedefs are there for. You won't always need these, but when building bigger closets, they sure help with achieving a more "steady" output. In case your closet looked somewhat similar to mine, with just a few very basic edits, you may have noticed during testing that it takes a long time for the mancubi to appear, and some even show up pretty damn late. That's not just because they're the last in the line, it's also because they're very slow. So, our next task will be trying to optimize the entire process in order to avoid overly late arrivals. For this exercise we'll draw an entirely new closet from scratch, right next to your edited one, because that's where we'll move the monsters. The previous rule that we want mancubi to show up later than everything else still applies. Once you're confident that your newly constructed closet will work, fire the map up, and see how the situation develops. And, as before, in the spoiler below is how I built my new closet, alongside some explanations. Still a very simple and easy to understand setup. quiz2.zip I've rearranged the monsters a little, railed everything to keep the order of the spawns intact, and reduced the amount of empty space in the closet to a healthy minimum. It is possible to speed things up even further, but when you compare this closet's functionality to the one where I made some very simple edits, which also kept virtually all the "air" in the closet as it were, you may notice that now there are no annoyingly late arrivals any more, and that's what we were looking for in the first place. Let's say we things to work even faster. Have look at this setup. If you want to, you can rebuild this one for yourself, it's just a few simple steps, and a little bit of routine doesn't hurt, right? I think it's safe to say there's a trend here: The faster we want a closet to "unload" its contents, the shorter the closets need to be. But why? One reason is "pressure". Like I mentioned previously, the ratio of monsters to open space is a factor for these traditional closets. So, if you have very small closets, the pressure when the last few monsters aim to make the jump is relatively high in comparison to a bigger build like in the first and second exercise. But there's another factor that matters in particular for these "railed" setups, where the goal is to keep the order of spawns reasonably consistent. And that's "thing kinetics™", and I'm not talking kinetic energy. You see, things in doom have a very, very rudimentary AI to help them move in the general direction of the player, and one of the quirks of this AI is that things in doom never turn around 180° unless they have to, or stop moving for some reason (ie in order to shoot or because of a successful pain chance roll by the player). Since our sound activated closets are made such that things do not have vision of the player, the latter case never applies, so we're left with "doesn't 180° unless it has to". This matters in particular when you want to teleport slow moving monsters like for example a mancubus. When a manc's teleport destination is blocked, he will cross the linedefs without warping at all, and then he'll trample all the way to the opposite side of the closet, from where he will start his next attempt. This is what can cause pretty huge delays, hence some monsters need a bit of "babysitting" every once in a while, if you want to stage your fights proper, and keep the players on their toes. Now that we know how things move in closets we're finally back to our "40 imp stick". Will it warp 40 imps successfully? Sure. But what effect will it accomplish? When you look at the imp-stick in its original state, you'll probably notice that it'll start off pretty quickly for a single destination setup, but the more imps leave the closet, the slower the whole process becomes, until eventually it ends up being a "drip feed" with a pretty high chance for very late arrivals, too. That's because "less pressure" later down the line, as well as "things don't 180° unless they have to". So now we've finally understood that "size matters™", even in Classic Doom. Whambam! Done! End of this guide...? Well, no. 23 Quote Share this post Link to post
Nine Inch Heels Posted January 17, 2020 Advanced Science, and randomization issues There are some more tricks and techniques you can employ to step up your "closet game". Let's have another look at "quiz2.wad". Remember when I said "things don't 180° unless they have to"? Why not add teleport linedefs and barriers on both sides of the closet? Wouldn't that work? Yeah, it does, if we rearrange the positions of the monsters accordingly, to keep the order of the spawns roughly intact. Fire up the map in your builder, and see what you can accomplish. If you're done with all your edits, test again to see if and how everything works. Now Let's see how such a 2-sided setup could look in the builder: This setup reduces the time things need to reach a teleport linedef after a failed attempt. So that's nice. However, if you were to rebuild and test this setup several times over, you might encounter cases where some imps and cacos will show up even after mancs appeared in the map. Those cases may be rare, but why does this happen at all? Cacos and imps are on both sides of the mancs and deny them access to the teleport linedefs, so everything should be hunky-dory, right? Here's what the problem is: Once things start making checks for "open destinations" in order to warp, it's all down to what the game engine decides to do, and how long certain teleport destinations will be blocked in the map itself. An imp which just moves away from the teleport destination will open it up again faster than an imp which starts firing at the player right after warping in, and an imp that shoots repeatedly will block a teleport destination even longer. In some cases this means that, as things get more wiggle room in the closet, the closet will unload "unevenly", or one-sided, if you will. The result could be that the imps and cacos on one side of the mancs are gone already, which then grants the mancs pre-emptive access to the teleport linedefs. This is further exacerbated by the infight potential of these monsters, which can cause "traffic jams" if the infights end up blocking the destinations even longer. Like I said, this isn't necessarily a huge issue in this case, because the size as well as the low speed of the mancs will keep the process of unloading the closet fairly consistent overall. It gets more problematic when you have things of equal size in closets. If you mix for example imps, shotgunners, revenants and arch viles, you will lose a lot of the consistency you previously had. To give this a closer look, let's take our 2 sided setup, and modify its contents a little bit. Here's the map I edited, in case you didn't feel like doing it yourself: randomwarps.zip If you feel like this is too hard, just IDDQD in order to see what happens. I think it's surprisingly fun to play for that little bit of effort. But I digress. When you fire this one up in your builder to take a look at how I arranged the gunners, imps, revs and viles. You'll see that the viles are neatly boxed in. However, as I said previously, these 2 sided setups can be a lot less consistent, and if you give this map a few attempts you'll definitely experience first hand what I mean, if you pay just a little bit of attention to the order in which things show up, or get toasted. You'll also notice that this setup is a lot more "volatile" with regards to infights. Since the original order is practically impossible to maintain for longer periods of time, our monsters show up in a mixed fashion really early. This can be a desirable effect, if you want some spectacle without the full extent of the threat all these monsters could pose, because many of them are busy with something else before engaging the player, for some time anyway. The inconsistency of the viles in this particular case can cause problems for many a doomer out there. For the majority of monsters a 2-sided build will work just fine, but the viles could use some special care, because they are key threats in this scenario. So let's engage our trusty Doom-builder again to see what we can do to prevent early viles. When you're done with your edits, take a look at how I approached this problem: Let's have a "side by side" comparison: As you see in the spoiler, I have marked the indivivdual "lanes" with different floor textures for the sake of visual clarity. And instead of letting viles scramble liberally among all other monsters, they're now "queued" to show up late into the fight. However, the early skirmishes among the other monsters are still kept intact, because spectacle and such. And, as before, if you feel like it's too hard, just IDDQD to see how everything develops without getting toasted, have a shot at it: randomwarps2.zip Now this fight plays a bit differently. It develops from early skirmishes where you can zip around to your heart's content to a climax where you need to pay extra attention to the viles, and oust them as quickly as possible. In the previous "scrambled" setup, the viles could show up pretty much whenever. Whichever variation you prefer is entirely up to you, but for the sake of the learning experience, let's talk a bit about the ramifications of both setups: "Scrambling" is a decent option if you want to keep players guessing when something important will show up in the map. As such it is a nice tool to keep encounters interesting, even after a few playthroughs. In the grand scheme of it all, the time at which the viles appear will "average out" to some degree, however, on a small sample size basis, the proclivity for unpredictable "spawns" also means that there's a fairly wide range of outcomes, some of which can be potentially lethal for the best of players. The takeaway here is that monsters which serve pivotal roles during a fight need to be used with caution, or a higher degree of control. An alternative way to keep the potential lethalty of randomness in check could be a setup such as the following, which uses longer "lanes" to delay the viles a little more in the interest of overall consistency. Be aware though that now we're back to a situation where things may need to travel long paths before being able to warp, so this is usually a more sensible approach for fights that take a bit longer and/or don't employ particularly slow moving monsters: "The queued up viles": This takes early "sudden lethalty" out of the equation. If that's what you're looking for, you now know how to facilitate this effect. This is a 2-sided blade, however. You get the bonus of a climax, but this climax also delivers quite a punch when you don't see it coming. The flipside is that we've eliminated a great deal of randomness, so a fight with such a setup is more "learnable" for players, since it's easier to anticipate the arrival of the viles after a couple tries. Personally, I find it easier to "forgive" repeated deaths on the same fight if I am under the impression that I'm still making some manner of progress on my way to ultimately beating it proper. What you think is right for your map is your call to make. Mixing queued setups and scramblers: This might be a neat compromise. Instead of having all the viles queued, we could put some of them back into the scramblers in order to keep players guessing a little bit, while still having a punchy finish. Your mileage may vary depending on the size of your setups and how many viles you’ll allow to scramble, so if you want try this method while having a very specific effect in mind, you may have to devote some additional time to testing the "range" of your closets. The Art of “Chronomancy”, and why it makes a difference Up to this point we've managed the order in which things appear by way of "railing" monsters in a particular order inside a closet. This also means that the monsters in the closet share the same teleport linedefs and destinations. So what do we do if we want to stage a fight where things spawn in a certain order, but instead of sharing the same destinations we want them show up in different locations at different times? Here's one way to accomplish this, it isn't the only way to do it, but it works, is easy to understand, and therefore easy to replicate. For this purpose you can use the large "sample map" you edited previously again, so fire up your builder once more, choose 3 different types of monsters, and pick one or two target destinations for each type, but not 3. How do we now make sure things spawn at different times in different locations? The answer is to simply adjust the barrier height. If that's what you want to use, you need to be mindful of things that could fly over the barrier ahead of time, so if you use flyers, make sure to adjust the ceiling height of your closet such that this doesn't happen. When you use an action that lowers a floor or ceiling slowly, it will move at a speed of 35mapunits/second, and this is how we can make sure that different things spawn in different places at different times. And the best part is that we can estimate with relative ease just what kind of barrier height we need to use, and from there the rest is simple fine tuning. For my sample I've decided to go with imps, shotties, and revs, and I want them to show up in the map in exactly that order, but only with a slight delay, so that a new wave will start warping in while I'm still busy with the previous one. My goal here is to create something like an " easy uphill fight" that keeps me sufficiently busy, but doesn't overwhelm me either. Here's how it turned out: timedwarps.zip I feel like that's enough exercise for this particular purpose. Now that you know how to combine the previously mentioned methods with timers, which enables you to exercise even more control over how your fights play in the end, I'd say it's a good time to move on to the final chapter, after which we'll wrap this up, I hope. 22 Quote Share this post Link to post
Nine Inch Heels Posted January 17, 2020 (edited) The rare and elusive Line Of Sight based setup I don't know about you, but after all this carnage I'm up for something that can contribute to the atmosphere of a "spooky" map. So let's have ourselves some brainstorming. What about a dark corridor or something like that, maybe with an unassuming pickup in it, like a shotgun, and then we'll scare players with imps that show up instantly. Let's have it: ambushed.zip So, before I get into any explanations as to how this works, be sure to play the map. I'd say this is sufficiently spooky for the time being, so let's see: In order for any of this to work, even if the player doesn't shoot, we need to plan ahead a little bit. Remember when I said you can use "visual contact" instead of sound to activate monsters? This is exactly what happens here. The things I wanted to warp in have a visual on the player from the onset, and they're very far away from the player and the playspace to make sure you don't hear any of the "wake-up-barks". An important detail here is the height of the barrier. I raised it 25 mapunits, because 24 is the limit for how far players and ground bound monsters can climb a single step. This means that as soon as the barrier lowers by just 1 mapunit, which is virtually instantly, things can start moving. That's why this setup is so "responsive". Furthermore you'll probably notice what looks like mapping errors at first glance: Not only are the teleport linedefs placed "inside" the monsters, but the barrier is also inside of them, so they're stuck. If you take a closer look, you'll also notice I've given one of the monsters a bit more room to move around, and that's also quite important in order for this to work. So let's look at these "tricks" one by one. The teleport linedefs here are placed "inside" the monster's hitbox because monsters never activate teleport linedefs with their "boundaries". They need to be slightly on top of a teleport linedef in order to make a check for an open destination. We can use this aspect to make sure that things spawn the very second they start moving, which is key for "snappy" ambushes likes this one. Another small detail is that I split the linedef down the middle, and flipped one half of it. That's to make sure that even if a destination should get blocked, the next attempt to warp happens very quickly. The barrier is placed the way it is to make sure things are stuck. This prevents the monsters from shooting into the map, which I said early on may be a disadvantage of "visual activation". That's really all there is to it. If you want to see a slightly different method in action, check this map out: Ambushed2.zip What I did here was to "sink" things into the floor for 25mu, then I instapop the floor on which they are resting, and wouldn't you know it? You're in trouble. This trick with the floor works even with very small sectors. If you wanted, you could place the monsters on a very small hole, 1x1mu and 25mu deep, and it still should work just fine. Feel free to give it a try if you want to. Why does one monster need more space than the others, though? Things in doom move in "increments", so we're back to "thing kinetics™" once more. The monster's speed determines the size of the increments in which it moves. So, the faster the monster, the larger the minimum increment, and as consequence, the larger the minimum amount of space required for it to move to begin with. This is important to know in case you build something like this, but a monster doesn't warp at all. It might not have enough room to move its minimum increment, therefore it can’t reach the teleport linedef. After dealing with all the usual troubleshooting, like checking sector tags, linedef tags, thing orientation, space at the teleport destination, and so forth, this one might just be what's causing trouble. So it's worthwhile having that in the back of your head. What have we learned after this ordeal? We learned about "pressure", and how the size of our closets can be used to increase or decrease it the way we want, in order to "pace" our fights in a more controlled fashion We also figured out how to determine the order in which monsters spawn into the map We've looked into how to randomize spawn-order entirely or partially, and how that affects a fight's dynamics We now understand that different monsters have different movement speeds, and that we need take that into consideration when constructing our setups We've dipped our toes into using timers for even more elaborate fights and setpieces We've seen sound and visual activation in action, and understand that both methods require different approaches in order to work Seems sufficient to me. I hope that, in spite of how lengthy this was, it was still a worthwhile read. I'm not a native english speaking person, so my "style" probably leaves a lot to be desired, but hopefully it's good enough to be understandable. I'm sure there are more tricks out there to facilitate similar effects as the ones I tried to showcase here, but at the end of the day it really just boils down to knowing how things "work", and finding ways to take advantage of that behaviour. Once you have the basic principles down, you should be able to custom-fit your setups in a way that you feel is right for your maps, and the good thing is that this is "hands-on craftsmanship" which will work for you regardless of your preferred format, and it's usually easy to troubleshoot, too. In case you encounter any problems with the sample maps, or you tried something yourself that didn't work and you couldn't find an answer here at all, feel free to let me know via PM or discord or whatever, so I can have a look at the problem, and keep this thing thorough. Thank you guys so much for reading all or any of this, and apologies if my sample maps were a bit too evil for some of you. Edited January 18, 2020 by Nine Inch Heels 31 Quote Share this post Link to post
Nine Inch Heels Posted January 17, 2020 Reserved for future additions 4 Quote Share this post Link to post
Spectre01 Posted January 17, 2020 Great thread. I've got a simple question about monster hitboxes and teleports. How much of the hitbox needs to pass over a teleport line for the warp to trigger? Especially with large enemies like the Mastermind and making closets for them. 1 Quote Share this post Link to post
Guest Unregistered account Posted January 17, 2020 9 minutes ago, Spectre01 said: Great thread. I've got a simple question about monster hitboxes and teleports. How much of the hitbox needs to pass over a teleport line for the warp to trigger? Especially with large enemies like the Mastermind and making closets for them. It's their centre point. So when their exact middle passes the line they teleport 0 Quote Share this post Link to post
Nine Inch Heels Posted January 17, 2020 13 minutes ago, Spectre01 said: Great thread. I've got a simple question about monster hitboxes and teleports. How much of the hitbox needs to pass over a teleport line for the warp to trigger? Especially with large enemies like the Mastermind and making closets for them. You can use as little as 1mu for basically everything, if you want to be on the safe side of things. This one here does that, and it works on -cl 2 as well as -cl -1, so anything from nilla to MBF: bigwarps.zip (weird how the tron is always a mite later than the rest) As for the minimum, I guess I can try and just experiment a little bit this weekend. While giving it a quick look, I noticed things still show up really quickly when the teleport linedef is slightly less than 3/8ths inside a manc or SMM for example, but I can't give a definitive answer right now, sorry. I wouldn't be surprised if this has something to do with the size of a monster's minimum increment of movement, but this is just me speculating, so take it with a grain of salt. I'll look into it though, perhaps using PrB+'s slow-mo feature might come in handy here. 4 Quote Share this post Link to post
Marcaek Posted January 18, 2020 (edited) Tutorials like this are very important in a community which has come to largely share specific aspects of map construction via word of mouth. More of this pls Edited January 18, 2020 by Marcaek 9 Quote Share this post Link to post
reflex17 Posted January 18, 2020 (edited) That's a really awesome writeup, thanks for posting it. Edited January 18, 2020 by reflex17 0 Quote Share this post Link to post
Gez Posted January 18, 2020 57 minutes ago, Nine Inch Heels said: Note that the engine will only make use of one teleport destination per sector (and it's gonna stick to that destination no matter what!), whereas "mapspots" (ZDoom and UDMF) have their own tag which allows for several functioning "destinations" inside a single sector. Sorry to barge in, little digression: using generic "map spots" for teleport destination is a heavily discouraged practice, even in ZDoom. You're still supposed to use the regular teleport destinations (thing type 14). Other than that, yes, in Doom format only sectors (and, kinda sorta, lines) can have tags. In Hexen format and UDMF, things can have tags too, including teleport destination things. Thing tags are usually called TID (Thing ID) to distinguish them from sector tags. If a tag is given but a TID isn't (which will, by definition, always be the case in Doom format maps), the teleport will always be to the first teleport destination thing found while scanning through the tagged sectors. If a non-zero TID is given, the teleport will be in a random teleport destination with the relevant TID. You can also give both a non-zero tag and a non-zero TID, the teleport will be in a random destination matching the given TID and located in a sector matching the given tag. 3 Quote Share this post Link to post
Bauul Posted January 28, 2020 Super useful guide NiN, thanks! There's a lot of nuance to teleport closets it's easy to overlook. I've been developing an alternative approach to monster teleport closets recently, an approach I call the 'absolute overkill' method. It looks a little like this: The trick is to have 300 teleport lines for every monster. Or more if you can. Granted it's the most sector-inefficient thing in the entire world, but if the aim is to empty the monster closet as fast as physically possible, with no care for the order that the monsters teleport, it works like a charm. 6 Quote Share this post Link to post
Nine Inch Heels Posted January 28, 2020 (edited) Glad you found it useful. 8 minutes ago, Bauul said: The trick is to have 300 teleport lines for every monster. Or more if you can. As for your approach, if it's like a handful of monsters, or maybe dozen, it's gonna work perfectly fine. The problem with bigger numbers in these cases is that it can cause "stuttering", sometimes even on good machines. If too many monsters make checks for destinations at the same time, the game has trouble keeping up (no multicore support for the "gamesim", etc), so excessive linedef-spam is ill-advised for bigger encounters, where several dozen or even hundreds of things compete for the same target destination. Such a "brute-force-method" is best used cautiously, is all I'm saying. Edited January 28, 2020 by Nine Inch Heels 4 Quote Share this post Link to post
PeterMoro Posted March 27, 2020 OMG Thank you so much for this thread! It definitely solved a few mysteries for me and also there's not too much information about this on the internet. Except a few threads here on Doomworld. Everyone's got different answers and techniques. What you wrote was clear and fantastic. Looks like there are 4 main ways to spawn in monsters: 1.visual cue (monster sees Doomguy through a hidden hole in the wall and then walks over teleport line. ) 2.sound cue (monster hears Doomguy / gunfire through a hidden tube in the wall and then walks over teleport line. ) 3. joined sector cue (monster hears Doomguy / gunfire through an adjacent sector that shares another sector in the map; and then walks over teleport line. ) 4. linedef + scrolling floor cue (Doomguy walks over a linedef which makes the floor of a monster closet move and push the monsters into a teleport line.) I'm writing to ask about the "linedef + scrolling floor cue" because it's the best form for me, in terms of control. I'm having a problem with it though: monsters aren't being teleported. They are being moved over the teleport line but they aren't teleporting. Can't figure it out except maybe its because they aren't "woken up" (aware of Doomguy's presence.) Does anyone know what I'm doing wrong? To be clear: Ambush is turned off. There is adequate sector space. The floor is scrolling correctly when I walk over the linedef. I can successfully spawn monsters using the other methods (above). I have tried when monster walks over and also when monster bumps linedef. Can't figure it out. Thx for the replies. 1 Quote Share this post Link to post
Nine Inch Heels Posted March 27, 2020 @PeterMoro I chose not to cover scroller based setups in this guide simply because it's a concept that justifies a topic of its own, and this guide here already turned out to be quite an extensive one. In most cases the reason why scrolled monsters do not teleport is due to their target destination being blocked. So they scroll over the linedef, make a check for an open spot, find none, and then that's it... Unless the scroller you're using "loops", like for example by teleporting monsters that didn't make a successful check back to the start of the conveyor, so they get another chance each time they end up being blocked from entering the map. This is also why teleporting larger numbers of monsters via scrollers, especially when you have only very few target destinations, is usually ill-advised. IMO scrolling monsters over teleport lines is best used in cases where you want things to do their "wake-up yell" near the player, or to prevent cases that can occur where players simply don't shoot at all. All that being said, you could still use looping setups to do the job, but I would highly recommend not doing any exotic kinds of setups like you can find in eviternity, where monsters are basically standing on a sort of carousel. Straight line scrollers, with backup loops is one way to do it, the other would be for example boom's "acceleration scrollers", where the floor scrolls when the height of a control sector changes. Keep in mind though that you want to avoid situations where a large number of things (like a few hundreds at once) makes checks during the same gametic, because it can cause stuttering due to how the gamesim only runs on a single CPU-core, regardless of sourceport used. 2 Quote Share this post Link to post
PeterMoro Posted March 27, 2020 (edited) Thanks for the detailed reply! Yes, I understand how spawning multiple monsters in the same gametic would likely crash the sourceport (especially on my crappy PC). Definitely gunna avoid that. Unfortunately none of your advice solves my dilemma. The monsters are being moved over the line but not spawning. Worst of all, I'm sure the solution is totally simple but I just can't figure it out. These screenshots might help: (*This is not my actual gameplay map, this is a separate map to practise spawning) Edit:I just noticed the screenshots say the teleport is silent (71). That's an error but in any case, normal teleport (70) makes no difference. Edited March 27, 2020 by PeterMoro correction 0 Quote Share this post Link to post
Nine Inch Heels Posted March 27, 2020 On a cursory look "when monster bumps" isn't what you should be using. "Bump" literally means moving up to a line that immediately stops/alters thing movement. So anything monsters can just walk over won't count as a "bump". Walkover triggers are the way to go here. Also, monsters will never bump anything unless they're being pushed/scrolled up to something, so bumping is quite unreliable, and best used when something is meant to affect players rather than monsters, IMO. Not sure about the linedef with that tag 2, but scrolling south looks fine to me. I wouldn't use "when player walks over", however. Permanent scrollers usually work better, and you can just block monsters with lowered ceiling pieces which raise when players cross a particular line in the map. I'm not 100% sure how UDMF handles the multiplayer flag, but in general things that are there in single player should also be there in multiplayer, so I'd remove that flag from the tele-dest and see if it makes a difference. 3 Quote Share this post Link to post
PeterMoro Posted March 27, 2020 SOLVED! @Nine Inch Heels Thank you for your input! The problem was in fact when monster bumps and i changed it when monster walks over. Now they teleport in just fine. I must have tried 100 combinations except that one. Doh. oh well, glad to have it figured out. Cheers. 1 Quote Share this post Link to post
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.