Linguica Posted May 27, 2020 I was clued into https://rbkz.blogspot.com/2020/05/magical-missile-mystery-tour.html where @Ribbiks was screwing around with Dehacked sourcery. I was moved to research the quartet of action functions that involve the "tracer" field of the mobj. Here are some conclusions. First, here's a simplified list of the functions. I have renamed "target" and "tracer" to "A" and "B" because I find the names of those fields more confusing than helpful. SKELMISSILE: spawn newmobj at actor VILETARGET: spawn newmobj at location of actor.A actor.B = newmobj IN COMMON FOR SPAWNING NEW MOBJ: newmobj.A = actor newmobj.B = actor.A VILEATTACK: move mobj at actor.B to location of actor.A FIRE: check line of sight between actor.A and actor.B move actor to location of actor.B So you can combine these in some interesting ways. For instance, if you do VILETARGET immediately followed by FIRE, you get: spawn newmobj at actor.A newmobj.A = actor newmobj.B = actor.A actor.B = newmobj check sight between actor.A and actor.B (trivial) move actor to location of actor.B This results in the enemy teleporting right up to you. TELEPORT.DEH.zip Or, as Ribbiks showed, you can do SKELMISSILE and then have the missile call VILEATTACK: spawn newmobj at actor newmobj.A = actor newmobj.B = actor.A move newmobj.B to location of newmobj.A This results in the enemy teleporting its target right up to it! It also happens to hurt itself with the archvile blast and die in this case in the process lol. COMEHERE.DEH.zip BE CAREFUL TRYING THESE, THEY HAVE THE POTENTIAL TO CRASH YOUR SOURCE PORT AND/OR SYSTEM. I MANAGED TO HARD LOCK DOSBOX ENTIRELY BY RUNNING ONE IN DOOM2.EXE 43 Quote Share this post Link to post
Grain of Salt Posted May 27, 2020 This is possibly the best way to kill former humans. 6 Quote Share this post Link to post
Redneckerz Posted May 27, 2020 Would a limit raising exectuable like Doom-Plus mitigate the issue, or do you need a further hack extension for this in terms of heapsize or lump stack? I.R.Dumb question, i know. Another chapter in Linguica's Codex Of Doom. 0 Quote Share this post Link to post
Linguica Posted May 27, 2020 The effects of these DEHs are probably extremely non memory safe. God knows what memory it's stomping on when it runs, I haven't tested it much. That is left as an exercise for the reader. 0 Quote Share this post Link to post
printz Posted May 27, 2020 I saw a related trick in a Doom 2 v1.666 mod called "RJDoom" which had a teleporting archvile called "Lucifer". The vile would cycle its walking states through the demon spawn fire frames (which also call A_Fire). This caused the monster to teleport at random locations, sometimes impossible ones (such as below the floor), sometimes crashing Doom. Now I'm thinking it may be trying to teleport to long-gone (and memory-invalid) archvile flame objects. I may have tried this in Ultimate Doom but the monster would no longer teleport, but perhaps it didn't fulfill the sight condition. 2 Quote Share this post Link to post
Linguica Posted May 27, 2020 If I do SKELMISSILE and then have the fireball do VILETARGET, it sets the tracer for the revenant missile to a flame on top of the revenant, which makes it boomerang back, or sometimes get stuck in a loop. BOOMRANG.DEH.zip 19 Quote Share this post Link to post
Angry Saint Posted May 27, 2020 22 minutes ago, Linguica said: If I do SKELMISSILE and then have the fireball do VILETARGET, it sets the tracer for the revenant missile to a flame on top of the revenant, which makes it boomerang back, or sometimes get stuck in a loop. BOOMRANG.DEH.zip A monster with a "fire field" which hurt you if you get too close is something worth working on, IMO 2 Quote Share this post Link to post
Linguica Posted May 28, 2020 17 hours ago, Angry Saint said: A monster with a "fire field" which hurt you if you get too close is something worth working on, IMO So something like this? FLAMES.DEH.zip 11 Quote Share this post Link to post
SilverMiner Posted May 28, 2020 What prog do you use to record these GIFs? 1 Quote Share this post Link to post
DuckReconMajor Posted May 28, 2020 (edited) I'd only scrolled down enough to see the top of that last gif and legit thought it was from Hexen. It looks incredible. edit: to add on to SilverMiner's question, is that Crispy Doom? I thought this was still vanilla in the Box but i see a crosshair. I was going to try running this earlier but i was deterred by your disclaimer and didn't feel like starting up dosbox Edited May 28, 2020 by DuckReconMajor 0 Quote Share this post Link to post
Redneckerz Posted May 28, 2020 If Ling continues down this patch we end up with a legit successor to The Sky Maybe.* *It would be infinitely more playable, though. 3 Quote Share this post Link to post
Linguica Posted May 28, 2020 I have observed something very odd. I was screwing with that patch on Map16 with fast monsters. I got a revenant to make a big long fire trail, then I killed the revenant and observed the fire trails. I expected them all to last forever because they're "endlessly" circling but I was very wrong. If you don't want to watch the whole video here is a GIF showing off the gist of it. What is going on here? This is not a random walk or anything. Something is causing these endlessly circling revenant balls to occasionally "migrate" in clearly established directions. My only thought is that the revenant fireball's tracer pointer is being trashed when the fire it's tracing disappears, and occasionally that memory address... gets overwritten with something relating to another one of the live and moving enemies on the map (of which Map16 has a ton)? It's very weird stuff. 6 Quote Share this post Link to post
Doomkid Posted May 28, 2020 1 hour ago, SilverMiner said: What prog do you use to record these GIFs? You can use OBS or FRAPS to record videos, then convert them to gif format at ezgif.com 2 Quote Share this post Link to post
Linguica Posted May 28, 2020 @Quasar suggests that what is happening is that the constantly spawning tracer puffs eventually overwrite the memory location of the vanished archvile fire it was originally homing on, and so the fireball changes its homing target to a random tracer puff. This explains why the fireballs seem to sort of clump and migrate towards one another. It also sort of makes it a system of strange attractors which is pretty cool. 5 Quote Share this post Link to post
Redneckerz Posted May 28, 2020 23 minutes ago, Linguica said: @Quasar suggests that what is happening is that the constantly spawning tracer puffs eventually overwrite the memory location of the vanished archvile fire it was originally homing on, and so the fireball changes its homing target to a random tracer puff. This explains why the fireballs seem to sort of clump and migrate towards one another. It also sort of makes it a system of strange attractors which is pretty cool. That gif makes up for a very Doomy take on Conway's Game of Life, with Revenant Fireballs being automatons. Would this kind of experimentation that you are doing be of any usefulness to the VizDoom project? 0 Quote Share this post Link to post
Swalzi Posted May 28, 2020 4 hours ago, Linguica said: What is going on here? This is not a random walk or anything. The GIF and wording here reminded me of a scene in John Carpenter's "The Thing." Blair runs a simulation on his computer, showing how the "Thing" assimilates its victim. Blair glazing the computer screen in disbelief, then uncertainty into what the future beholds. 3 Quote Share this post Link to post
Linguica Posted May 28, 2020 I STRONGLY suggest turning your volume way down for this one. The spawn cube is the only projectile in the game that has a target set - to a spawn target, naturally. But what if the spawn target(s) followed the player around? SPWNSPOT.DEH.zip 6 Quote Share this post Link to post
Linguica Posted May 28, 2020 Variation on a theme... OHMYGOD.DEH.zip 11 Quote Share this post Link to post
printz Posted May 28, 2020 (edited) A few of these tricks look like they depend on dangling pointers and may not be supported even by Boom (which does Mobj reference counting), and @fraggle will have quite a task to best emulate them in Chocolate-Doom. BTW, replacing the Final Boss with something else sounds like an excellent idea! Edited May 28, 2020 by printz 0 Quote Share this post Link to post
Linguica Posted May 28, 2020 I accidentally realized that putting the SpawnFly code pointer in an enemy's attack state will forcibly set the reactiontime to -1, and so the monster will never attack you again, unless attacked first, which resets reactiontime to 0 and lets a single attack happen in return. You can also set the monster's reaction time in Dehacked to -1 so that it will never attack first. This effectively makes a "NPC" which walks around, doesn't attack you, and will do a tit-for-tat retaliation if hit, but not with the cheesy edited pain state like I've seen. I edited the trooper for a sample DEH: NPC.DEH.zip 4 Quote Share this post Link to post
Linguica Posted May 30, 2020 Give the archvile flame a negative speed, let it wake up and walk several steps with 0-length frames, then you have a spot somewhere pseudorandomly in front of the player to screw around with. One could use this concept to make, say, damaging area denial spots pop up in front of the player randomly. ARCHHELP.DEH.zip 8 Quote Share this post Link to post
Linguica Posted May 30, 2020 Geez, this was almost embarrassingly easy in comparison. Why not turn the archvile into a bona fide summoner? SUMMONER.DEH.zip (I used the revenant fireball for the spawn pointer but I think any projectile type would work?) 16 Quote Share this post Link to post
ReaperAA Posted May 30, 2020 57 minutes ago, Linguica said: Geez, this was almost embarrassingly easy in comparison. Why not turn the archvile into a bona fide summoner? @Noiser You might like this. 3 Quote Share this post Link to post
printz Posted May 30, 2020 59 minutes ago, Linguica said: Geez, this was almost embarrassingly easy in comparison. Why not turn the archvile into a bona fide summoner? That's quite awesome, but don't monsters risk being blocked at spawn? 0 Quote Share this post Link to post
Linguica Posted May 30, 2020 Not particularly, it's more robust than you'd think. Because it's an invisible archvile fire effect, it gets placed directly in front of the player. The archie fire then moonwalks itself backwards instantaneously, which means it can bump into things and change course and so forth, and its final position is by definition valid because it validly walked itself there. It only seems to really "fail" when it spawns a monster on the edge of a ledge so it's stuck in place. 1 Quote Share this post Link to post
printz Posted May 30, 2020 (edited) I did see some mancubi and arachnotrons stuck on the house (tested the same dreary map)! But otherwise no monsters stuck on other monsters. But how does it manage to escape the player's own collision box?! Huge enough speed to be able to step out? What if player is surrounded everywhere? Is player ultimately going to get stuck? Edited May 30, 2020 by printz 1 Quote Share this post Link to post
Fonze Posted May 30, 2020 I've said in the discord already but this is all super cool, has so very much potential and I love to see it! Also, it's amazing that the fire basically legitimately 'walks' itself around to make this happen; that's extremely robust! Wrt the stuck monsters: would it then be possible to adjust the size of the fire's hitbox to make it larger so bigger monsters don't get stuck in geometry (walls/ledges)? Seems a similar problem to what you'd find if you sized an area for a teleport destination then ported a large mob there. 0 Quote Share this post Link to post
Linguica Posted May 31, 2020 The problem is that the arachnotron has a radius of 64 (compare the player's 16). I can try to foolproof it by making the archie fire bigger but it's placed 24 units away from the player so I can't make it much wider than that or otherwise it will get stuck on the player. The projectile that spawns the monster could also be of 64 radius, but that means a whole lot of fireballs ends up blowing up on nearby geometry and don't spawn anything. 0 Quote Share this post Link to post
Dark Pulse Posted May 31, 2020 (edited) On 5/28/2020 at 2:55 PM, Linguica said: Variation on a theme... OHMYGOD.DEH.zip On 5/28/2020 at 5:19 PM, Linguica said: idk IDK.DEH.zip Linguica's over here figuring out how to make Touhou Doom run under vanilla. Edited May 31, 2020 by Dark Pulse 3 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.