Nine Inch Heels Posted April 3, 2019 (edited) I quickly messed around with it a bit, and here's an iteration that works with taking only one point worth of damage, so it should be "immune" to difficulty settings.miko_02.zip Important edit here: Strike the part about difficulty settings, I actually just took 0 damage lol :/ I tested this only in PrBoom+, so I can't say much about Eternity for example, but the idea was to put the doll on a diagonal linedef, so it doesn't need to get nudged as hard. Edit: the speed of the doll in this case seems to be pretty close to half a map unit per second. I "tested" this by putting health bonuses at 32 mu distance apart and looking at PrBoom's ingame clock when they were picked up. So it's by no means "hyper precise", but maybe good enough to build something around. Another edit: I made another version that uses the same principle as above, but it has even less ground beneath the doll (sharper angle). As a consequence the doll travels along the "mikoveyor" significantly faster than in version_02: miko_03.zip I guess it stands to reason that if anybody wanted to use this trick more frequently, they would do well to create a prefab in Doombuilder, so they have a "constant" they can work with over time. Personally I'd probably use a "fast" prefab, because it's more flexible in the long run and it's easy to just make the mikoveyor longer if needed. (oh and I also put in a blue armour because I wanted to see if the armour would affect speed, but doesn't seem like it does that) Edited April 3, 2019 by Nine Inch Heels 6 Quote Share this post Link to post
Linguica Posted April 3, 2019 52 minutes ago, Nine Inch Heels said: I guess it stands to reason that if anybody wanted to use this trick more frequently, they would do well to create a prefab in Doombuilder, That would be the idea, if we can develop a "idiomatic" vanilla conveyor belt with known properties that people can paste into their maps. For instance if you wanted an "arena battle" you could paste in a voodoo script, lengthen it to last 60 seconds or whatever, and then add line specials in that duration to open new doors or raise/lower sectors at certain times. 2 Quote Share this post Link to post
Ribbiks Posted April 3, 2019 theoretically, if this didn't work in modern ports could one simply make two copies of the closet: this vanilla version + a boom scrolling version (that could disable the vanilla one in addition to its other tasks)? That way you'd have voodoo-scripting functionality that works everywhere (assuming vanilla exes safely ignore boom actions). 9 Quote Share this post Link to post
gaspe Posted April 3, 2019 The conveyor belt made in vanilla is very interesting. However pushing a voodoo doll with an explosion so it triggers an action was done before. I always considered it to be a sort of trademark of the russian mappers, to my knowledge those were the only ones to use this, and with this method in limit-removing they make some actions that won't be normally possible in that format. It was done in ALT and Epic 2, for example. 2 Quote Share this post Link to post
SaladBadger Posted April 3, 2019 (edited) Vanilla shouldn't have any problem on unknown specials, due to the way walkover vs. use specials are implemented. The only trouble I forsee with that is timing, but with enough work it should be possible to do and make maps that makes everyone happy! Seriously though this is some fucking clever application of interesting glitches folk have discovered, and it serious disappoints me that every. last. fucking. thread. about a cool trick devolves into complaining about how it doesn't work on x source port. it's okay, I have multiple versions of four engines on my machine ready to handle anything... I get that GZ can't do it due to floating point but I seriously don't think that needs to be a reason to say "okay don't do it" because I can just load up choco, prboom+, or eternity if I want to play a really cool map that uses it. Hmm, I wonder how hard it would be to modify an engine to print the velocity of a given voodoo doll, with that it would be easy to make precise timings. gaspe: Yeah, hence why Ling mentioned prior art. This is ultimately just clever application of things that have been known for varying amounts of time. Edited April 3, 2019 by SaladBadger 2 Quote Share this post Link to post
Linguica Posted April 3, 2019 3 minutes ago, gaspe said: The conveyor belt made in vanilla is very interesting. However pushing a voodoo doll with an explosion so it triggers an action was done before. Oh, I know. On 4/1/2019 at 6:09 PM, Linguica said: Well did you know you can very easily combine it with prior art @Mechadon had a lot of trouble getting voodoo scripting to work more-or-less reliably in Doom 64 for Doom 2 so that was where my memory went first. 0 Quote Share this post Link to post
Pegleg Posted April 3, 2019 I will be honest--at first, I didn't comprehend what was going on until I saw the discussion regarding momentum imparted by the explosion. Now, I have to say that this is brilliant. It would take a fair amount of work to be able to properly "script" events down to the instant, but it would still make rough scripting possible in vanilla. And, awesomely, it allows for multiple triggers, which, to my knowledge, hasn't been done before. 1 hour ago, Ribbiks said: theoretically, if this didn't work in modern ports could one simply make two copies of the closet: this vanilla version + a boom scrolling version (that could disable the vanilla one in addition to its other tasks)? That way you'd have voodoo-scripting functionality that works everywhere (assuming vanilla exes safely ignore boom actions). I like this idea. It's a bit more elegant than NIH's idea to have a voodoo doll fall into a deep pit, triggering linedefs on the way down. You could just do something like have a conveyor belt take a voodoo doll across a line that lowers a wall between the barrel(s) and the other voodoo doll(s), thus preventing the "mikoveyor" triggers from every being activated. If you loaded it up in Chocolate or Crispy, the conveyor belt just wouldn't work--it wouldn't crash the level. It's a little extra work, but I like the idea. 56 minutes ago, Linguica said: @Mechadon had a lot of trouble getting voodoo scripting to work more-or-less reliably in Doom 64 for Doom 2 so that was where my memory went first. I also initially thought about Doom 64 for Doom 2 and some of the "scripted" events that took place. 3 Quote Share this post Link to post
Linguica Posted April 3, 2019 @Nine Inch Heels spent some time experimenting with one of the stumbling blocks to developing a "universal" mikoveyor, which is that its timing relies on damaging a voodoo doll, but skill 1 and skill 2 deal different amounts of damage. This wouldn't be insurmountable except that skill 1 and 2 also share the same map thing placement so you can't even make a separate device for skill 1. NIH made a crude test concept to try and reroute the voodoo doll on skill 1, which is maybe workable, but I am going to have to think about any other possible differences I could exploit. mikoveyor_itydt_fork_poc.wad.zip 2 Quote Share this post Link to post
YukiHerz Posted April 3, 2019 Is there a compendium of weird vanilla tricks? 2 Quote Share this post Link to post
Linguica Posted April 3, 2019 25 minutes ago, YukiHerz said: Is there a compendium of weird vanilla tricks? Not really? https://www.doomworld.com/idgames/docs/editing/spcial12 has a WAD showing off many old school tricks. https://www.doomworld.com/idgames/docs/editing/ikspcial has some more advanced ones. 2 Quote Share this post Link to post
Linguica Posted April 3, 2019 @Nine Inch Heels seems to have overcome the skill 1 / skill 2 problem. The level should end after 1 minute on any skill level! miko_layered_1_minute.zip 5 Quote Share this post Link to post
crazyflyingdonut Posted April 3, 2019 It can barely move 1 pixel per second! 0 Quote Share this post Link to post
Linguica Posted April 3, 2019 If you want it to move faster you can deal more damage to it. The speed it moves is not terribly important so long as it's consistent and predictable. Making it go as slow as possible is nice in that it minimizes the amount of damage it has to cause to the player, and it doesn't need a whole lot of space to have a long timer if you wanted one for some reason. 0 Quote Share this post Link to post
wolfmcbeard Posted April 3, 2019 This is kinda cool, though I haven't the slightest clue what a voodoo doll is in Doom let alone how to use it, but it looks cool if a bit slow, but as stated, more damage = more speed. 2 Quote Share this post Link to post
Nine Inch Heels Posted April 3, 2019 1 minute ago, wolfmcbeard said: I haven't the slightest clue what a voodoo doll is in Doom let alone how to use it there are several use cases for dolls. one is to simply allow a single switch to do several different things in a map "at once". another use case is to time events in a certain manner for staged fights. Basically the dolls can trigger actions instead of the player, and that's what makes them so good. 5 Quote Share this post Link to post
wolfmcbeard Posted April 3, 2019 Welp, time to spend some quality time in DB figuring out dolls then, because I would love to use that kind of thing over linedef triggers in certain circumstances. 1 Quote Share this post Link to post
Nootrac4571 Posted April 3, 2019 I love this, I'm definitely going to spend an hour or two playing around with it on the weekend. 0 Quote Share this post Link to post
Linguica Posted April 3, 2019 Quick and dirty proof of concept (doesn't actually work on skill 1, couldn't be bothered...) fart.wad.zip 15 Quote Share this post Link to post
Szymanski Posted April 3, 2019 Impressive, idgi (the sliding) but I'll think about it tomorrow 0 Quote Share this post Link to post
KVELLER Posted April 3, 2019 Not gonna lie, I thought this was an April Fools joke. 3 Quote Share this post Link to post
Snakes Posted April 3, 2019 This is very cool stuff and has some interesting potential. Great way to simulate a conveyor belt with minimal risk to player health, which is something the classic barrel + voodoo doll technique lacked, and with a frictionless twist as well! 0 Quote Share this post Link to post
Dragonfly Posted April 3, 2019 Okay this is pretty damn amazing. I'd love to see someone commit to making an actual map utilising a lot of recent discoveries. The 'infinite falling' mechanic in a playable space, these conveyors, lingortals, etc! 3 Quote Share this post Link to post
Noiser Posted April 3, 2019 This is very cool! After getting used to the boom format I really missed the tricks with conveyor belts. Thanks Linguica and Nine Inch Heels! 2 Quote Share this post Link to post
traversd Posted April 4, 2019 I presume Dehacked features are not worthwhile in this space to try and mitigate or remove the damage to the viewport player object? 1 Quote Share this post Link to post
Edward850 Posted April 4, 2019 (edited) 9 minutes ago, traversd said: I presume Dehacked features are not worthwhile in this space to try and mitigate or remove the damage to the viewport player object? There is no dehacked feature that can do such a thing. Namely, you cannot push an object in any way without dealing at least 1 point of damage. However, what could be done is the 3rd entry in the PLAYPAL could be modified to look normal, thus make the effect less apparent. Edited April 4, 2019 by Edward850 1 Quote Share this post Link to post
Noiser Posted April 4, 2019 (edited) Or, if you are desperate to mask it, maybe you can put the main trigger under a damaging floor area. I think it's alright with some health pickups nearby. Edited April 4, 2019 by Noiser 4 Quote Share this post Link to post
Revae Posted April 4, 2019 On 4/2/2019 at 4:29 PM, Linguica said: Really? No one else thinks this is interesting? Isn't this, like, the vanilla-compat holy grail, being able to do Boom-esque scripted events? I do. Cool as hell. 1 Quote Share this post Link to post
traversd Posted April 4, 2019 56 minutes ago, Noiser said: Or, if you are desperate to mask it, maybe you can put the main trigger under a damaging floor area. I think it's alright with some health pickups nearby. Yeh did think that, could even start the sequence maybe as a player runs over a damaging floor earlier in the map? 0 Quote Share this post Link to post
Nine Inch Heels Posted April 4, 2019 (edited) Alright, did some more messing around, and ended up with something that might serve as a prefab for those who are eager to try this in their own maps, but don't want to spend so much time on getting things going. For the sake of keeping this short-ish but providing at least some insight, I made a couple screenshots to give a basic explanation about how things are put together, and how you can use this very early prefab: mikovey_early_prefab_v01.zip <<Make sure you read both these spoilers before starting to play around with this.>> Some basics: Spoiler Right here is the current iteration of the "mikoveyor": Green square is the doll, the light blue one on the right side is the barrel. And the highlighted linedef is an exit linedef set to 1 minute after the barrel explodes. Notice that there are 3 more linedefs to the right of the highlighted linedef. Each one of those will trigger an event 15 seconds earlier than the previous one. And on the far left, there's the 2 minute mark, in case you want to use that for something. Each one of the red linedefs is 54 map units in length, and the highlighted yellow one is 216 map units. So, we can indeed determine the "speed" of the doll to a relatively precise degree: 1 minute = 216 map units. Unfortunately that's a slightly ugly number when divided by 60 seconds, which is why I'll do some more experimenting with this in the next days to see if I can get something that is less awkward to calculate. For the time being, the 1 minute and 15 second indexes of the prefab should at least help you to get a rough idea in terms of how to space your triggers for more intricate setups. Beneath the doll there are 2 trigger lines, which are mandatory to have for this prefab, especially for those of you who want to work within strict vanilla limits: You will need to have both these linedefs in there, because one of them is there to stop the crushers (important for strict vanilla), and the other is there to make this prefab "immune" to the 50% less damage taken on Itytd. It walls off another barrel (wall is highlighted in screenie below): With that said, be sure to give both these linedefs a look in the editor, so you get a better understanding of what the hell I'm talking about. ;-) How to use the prefab: Spoiler For convenience's sake I moved all actions the prefab currently uses and needs (all 2 of them) to tag 501 (starts and stops the crushers), and 502 (walls off the itytd barrel). Hopefully this will make it easy enough to insert this into any work in progress vanilla format map you may have by staying away from the usual tag ranges I've seen people use. For testing purposes I left in the walkover trigger and the switch, so if you wanna do some science, the walkover trigger is a very reliable way to start setups at a precise point in time. If you don't like science, just remove the walkover trigger and the switch. Simply put in whatever actions you want along the mikoveyor, experiment with it a little bit if needed, and keep in mind that the doll moves at relatively slow speeds. So if you want to have lots of stuff happen in short succession, you may need to get a little creative with your linedef placement (or change barrel placement to get more speed at the expense of dealing more damage - be sure to not just kill players accidentally with your trigger). After setting up your desired actions on the mikoveyor, you're done with all difficulty settings except for itytd. In order to make this itytd compatible, you just drag-select the entire mikoveyor like so, and copy it: When it's copied, look for the small triangle I placed, it's there to help you get the whole thing pasted and moved in the proper position, if you want to support itytd, that is (itytd doll and barrel are already pre-placed for your convenience): After pasting, while still in edit selection mode (happens automatically when pasting) make sure you line up the copied mikoveyor like so: And this is pretty much how your prefab should look like when zoomed out a little: Now you have a vanilla compatible boom-esque setup for all your chaotic gameplay purposes. In the bottom you have anything that happens on "Hey not too rough" or higher, and the upper mikoveyor is there for "I'm too young to die". Due to the copy pasting, and the delay of the upper itytd barrel, actions on itytd will happen with about half a second delay, if you really want/need more precision, just move the triggers on the mikoveyor a few map units towards the doll to compensate for the delay.Also note that you don't have to use an exact copy, you can also use this setup to make itytd and hntr a lot more different than the usual "twice the ammo, half the damage taken", so there's ample room for creativity as well.Adding more dolls: Every now and then this causes some confusion for people new to conveyors, or when you just forget about it: You're using several player 1 starts here. So if you want more conveyors and more dolls, you may find yourself starting on the mikoveyor instead of the map every now and then. A good rule of thumb is that the last player start you place will be the one that you will be in control of when starting your game. Anyway, that's it from me for now. In case something seems to just not come together, or there are any issues with the prefab I may not have caught, be sure to let me know, and I'll fix things as soon as I have the time to spare. Quick edit: Stuff I wanna be looking into is a way to maybe get around the risk of killing players with the trigger damage, and a setup that can loop for at least a limited number of times. Edited April 4, 2019 by Nine Inch Heels 9 Quote Share this post Link to post
Revae Posted April 4, 2019 You could force an invulnerability pickup when you trigger the conveyor. To my knowledge it's not possible to make something that pushes a player without it dealing damage. If something deals 0 damage it no longer pushes right? So you couldn't set up a monster thing that fires a 0 damage fireball then disappears and have that work... 0 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.