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

Most creative DEHACKED custom monster?

Recommended Posts

Zeke's molotov in Mac Batman Doom is notably different!

 

In both versions, Zeke uses the Pain Elemental attack to spawn a "molotov" (Lost Soul).

 

In the PC version, the molotov is sharply angled toward the ground due to the LS being affected by gravity. When it dies, it spawns a single flame - in other words, exactly what you would expect.

 

On the Mac version, it somehow spawns a grid(!) of flames. I'm not even sure that the projectile is visible; the flames seem to appear right away.

 

Player view:

luHvxcC.png

 

Map View:

rDwdOXk.png

(See the Things that are facing right and lined up suspiciously straight in the middle of the room? Those are the flames)

 

It turns out that Doominator patches use the same format as Dehacked, with some limitations from the PC version (you can't rename the maps, as you can see in the screenshot).  In fact, it can supposedly apply most DEH patches directly. I suppose this makes sense since the core Doom gameplay code is identical across platforms.  The Mac patches are formatted a bit differently than the PC version, but I think that's due to Dehacked auto-formatting when you save (the Mac files appear to be hand written).

 

I tried tracing through the DEH versus the Mac patches but I'm not seeing what is causing the difference in behavior. However, I haven't looked at a Dehacked patch in at least 15 years so I'm probably not the most qualified to look :)  The grid effect is bizarre.  I can't think of anything in Doom that has that behavior...

 

I've attached the two Mac patch files in case anybody else wants to have a look. I have no idea why it's split into two; maybe that's part of the mystery. The instructions say to apply one before the other.

mac batman patches.zip

 

EDIT: Zeke is Thing 88

Edited by david_a

Share this post


Link to post
16 minutes ago, david_a said:

The grid effect is bizarre.  I can't think of anything in Doom that has that behavior...

Icon of Sin death explosions is the most likely thing I can think of offhand?

Share this post


Link to post
1 hour ago, ETTiNGRiNDER said:

Icon of Sin death explosions is the most likely thing I can think of offhand?

Even those are just spawned in a straight line though. The grid those flames spawn in is so oddly perfect in it’s spacing. I have to get to the bottom of this! Great find.

Share this post


Link to post

LOL that’s amazing. I really wish ACE Team would have written a bit more about the development of Batman Doom since it must have taken an enormous amount of planning. Did they start with the engine hack and work backwards to fill in the rest of the game, I wonder?

 

Anyway glad I could be of help in solving a 19 year old Doom mystery :)

Share this post


Link to post

That's fantastic. I remember being puzzled by the lost soul thing in boom ; I wrote a quake style gibs patch using the lost soul for gibs and PE code pointers and ended up switching to Mancubus fireballs for the final version because of unexplained crashes. Its possible I was relying on the LS limit in vanilla too when I started it. 

Share this post


Link to post

I think I got the effect recreated too. Load this DEH after batman.deh and vbatman.deh in Chocolate Doom (the only one I tested in) or whatever other port keeps the 21 Lost Soul limit.  I plan on uploading this to idgames unless somebody finds a problem with it.

Patch File for DeHackEd v3.0

Doom version = 21
Patch format = 6

# The Mac version also had lower damage to compensate for the increased number of flames
Thing 19 (LOST SOUL-ZEKE SHOT)
Missile damage = 1

Frame 718
Sprite number = 110
Sprite subnumber = 32768
Duration = 2
Next frame = 203

Frame 907
Next frame = 718

EDIT: Uploaded to idgames! Whoo!  Crossed that one off my bucket list

Edited by david_a

Share this post


Link to post

Could the Zeke behaviour be approximated on unlimited lost soul ports by running through several frames of pain elemental codepoints and just stopping after, say, 5/6 instances instead of an infinite loop that only ended due to an engine limitation?

Share this post


Link to post
47 minutes ago, Scuba Steve said:

Could the Zeke behaviour be approximated on unlimited lost soul ports by running through several frames of pain elemental codepoints and just stopping after, say, 5/6 instances instead of an infinite loop that only ended due to an engine limitation?

I don’t see how. You would have to:

1) swap Zeke’s Lost Soul attack for another projectile attack (I’m guessing Batman Doom uses all of them)

2) have that projectile call PainDie a few times when dying

 

#2 wouldn’t produce the same effect because the fire wouldn’t spread nearly as much - you would only have three spots of fire since nothing is moving. 

 

Even #1 probably has side effects because the Lost Soul still has to look like fire (due to PainDie) but whatever projectile you swapped for is probably very different. 

 

I’m sure ZDoom can pull it off in a multitude of ways but I know nothing about it. Perhaps EDGE can too with DDF.  As long as you can keep the PainDie behavior but customize which Thing gets spawned you can just define different things for each Fire stage. Fire 1 would die and spawn three Fire 2, etc, until the last stage which just dies.  

Share this post


Link to post

Yeah, I would go with "remake it in the port's features" if you're talking about the more GCS-like ports.  For PrBoom and the like I'm pretty sure they allow for the limit to be turned back on in user options.  The switch for such has to at least exist somewhere in there for demo compatiblity, so it could be -complevel'ed on in any case I'd think.

 

On another note, one takeaway I'm getting from this thread is: part of why Batman Doom had the opportunity to do all this wacky creative stuff is because it was a true total conversion that didn't keep any of the Doom creatures, so was free to repurpose peculiarities of things like arch-vile resurrections and pain elemental soul spawning into entire new things.  A lot of partial conversions that aimed to be more "Doom but with some funky new stuff" probably wouldn't have been as willing to completely eliminate some of those monster behaviors in order to remake them into something different.

Share this post


Link to post
1 hour ago, Scuba Steve said:

Could the Zeke behaviour be approximated on unlimited lost soul ports by running through several frames of pain elemental codepoints and just stopping after, say, 5/6 instances instead of an infinite loop that only ended due to an engine limitation?

You'd need to have a system where the original attack spawns three Gen1 fires, which in turn each spawn three Gen2 fires, bringing you to 12, which in turn each spawn one additional Gen3 fire (bringing you to 24) to have an approximation of the original effect without the limit.

 

Note that in GZDoom, for example, the lost soul limit compatibility option can be forced on through MAPINFO.

Share this post


Link to post
1 hour ago, ETTiNGRiNDER said:

On another note, one takeaway I'm getting from this thread is: part of why Batman Doom had the opportunity to do all this wacky creative stuff is because it was a true total conversion that didn't keep any of the Doom creatures, so was free to repurpose peculiarities of things like arch-vile resurrections and pain elemental soul spawning into entire new things.  A lot of partial conversions that aimed to be more "Doom but with some funky new stuff" probably wouldn't have been as willing to completely eliminate some of those monster behaviors in order to remake them into something different.

Yeah you’re right, which is why I’m interested in how they designed it. Did they start with a clean sheet of all the weapon, enemy, and map actions and figure out how to combine everything, or did things grow more organically?

 

Some of these effects require pretty arcane knowledge of how Doom works, but on the other hand the way they’re combined seems to have a bit of the naivety of someone who isn’t stuck thinking about how the actions fit together in a Doom context. 

Share this post


Link to post

While I have no direct knowledge of how Batman Doom was developed, I did spend a lot of time messing around with DeHackEd before the source code was released, and the process was basically: take the list of code pointers that DeHackEd makes available, and figure out how you can repurpose and recontextualize those behaviors in a way to do something new and interesting. So for instance you know that the code pointer to spawn a bunch of explosions for the Icon of Sin exists - so what can you do with it? Well, you could use it to have the effect of a giant explosion, obviously, and if you spawned a bunch in a row it would be like a moving explosion. Well, is there some way to do that? I guess you could take the Icon cube spawner, and set the code pointer on the cube itself and only have one spawn point so the cube slowly moves along its path generating a field of explosions in its wake... and then we can make that the ending of an Axis Chemical Plant map where everything blows up? Etc.

 

Then you just do this for every code pointer in the game, and you figure out how to write a DeHackEd patch that basically makes all-new everything, but piece it out of the existing code pointers and frames. In vanilla as well, you can only put code pointers onto frames that already have them, which adds an extra wrinkle: you can't add a new behavior to just everything and in fact you have a hard limits at how many frames can have a code pointer at all. So you end up doing a combination logic puzzle and engineering triage, where you have to come up with cool ideas that can maybe work, figure out how to implement them, and then make sure you have the necessary frames and code pointer slots available. It was like the part in Apollo 13 where they have to Macgyver together a vent adapter or whatever using just the bare-minimum parts they had available to them.

 

In general a complex DeHackEd patch was a TOTALLY different experience from making a Decorate / ZScript mod. It was much more intricate and involved, but there was also a concurrently greater sense of accomplishment at making the game juuuust baaarely do something it was never even remotely intended to do.

Share this post


Link to post

I think the key difference is, like ETTiNGRiNDER said, that they were making a true TC. When I was doing Dehacked stuff back in the day I wouldn’t have dreamed of radically changing things to the extent Batman Doom did because I wasn’t making brand new resources to go along with it. When you’re just dealing with the Doom resources and whatever other sprites you an scrounge off of showelware CDs and painstakingly download overnight on your modem it kind of limits your horizons.  ACE Team could do things like animate Killer Croc picking a rock off the ground which opened up so many more doors for them.  

Edited by david_a

Share this post


Link to post
3 hours ago, Linguica said:

In general a complex DeHackEd patch was a TOTALLY different experience from making a Decorate / ZScript mod. It was much more intricate and involved, but there was also a concurrently greater sense of accomplishment at making the game juuuust baaarely do something it was never even remotely intended to do.

Somewhere in a closet in my parent's house is a folder with about a dozen pages of printed code pointers for use with Ghostbusters Doom. I had every frame listed that had a codepointer, what each one did, and what frames I still had available for use. The Archivile frames were a prime source of code pointer-assigned frames since every frame of the fire had one and there were dozens of frames.

 

I also remember Doom's moronic handling of "ammo use" and setting anything other than the BFG to 0... did something really odd... did it start giving you negative ammo capacity? I had to reverse engineer the plasmagun as the BFG so the proton pack could have unlimited ammo. It was a real shame I was so young when I was doing the Ghostbusters Doom work because there was still this mentality that a game had to still be Doom... 32 levels, 8 similar doom-like weapons... it wasn't until Batman Doom that I started redoing a bunch of the game because "Shit... I can make something that plays NOTHING like Doom! It's mostly why I never finished it... I hated everything I had done up until the last year of development, and didn't want to start over.

Share this post


Link to post

In Rekkr I originally wanted to change the max health to 150 and have you start with 75. The soul sphere would act as a bigger health pack essentially. This caused weird behavior in vanilla Doom, but wouldnt replicate in chocolate, or other source ports. It (or maybe a combination of these changes plus others) made the missiles collide with whatever fired them. So as soon as you launched anything you'd take damage, monsters couldn't shoot properly, etc. As soon as I changed the health/armor back to defaults the problem disappeared.

No idea why.

Share this post


Link to post
On 12/27/2018 at 4:53 AM, david_a said:

I think I got the effect recreated too. Load this DEH after batman.deh and vbatman.deh in Chocolate Doom (the only one I tested in) or whatever other port keeps the 21 Lost Soul limit.  I plan on uploading this to idgames unless somebody finds a problem with it.


Patch File for DeHackEd v3.0

Doom version = 21
Patch format = 6

# The Mac version also had lower damage to compensate for the increased number of flames
Thing 19 (LOST SOUL-ZEKE SHOT)
Missile damage = 1

Frame 718
Sprite number = 110
Sprite subnumber = 32768
Duration = 2
Next frame = 203

Frame 907
Next frame = 718

EDIT: Uploaded to idgames! Whoo!  Crossed that one off my bucket list

Link! I want the link!

Share this post


Link to post
6 hours ago, taufan99 said:

Link! I want the link!

It hasn’t been accepted yet; I’m guessing they’re taking a holiday break

Share this post


Link to post

Not entirely accurate to say it'll crash ports that remove the limit; it'll only crash if the limit is actually turned off -- you'll usually get a way to toggle it back on, either through an option just for that or through a more general mechanism like PrBoom's complevels.

Share this post


Link to post
11 minutes ago, Gez said:

Not entirely accurate to say it'll crash ports that remove the limit; it'll only crash if the limit is actually turned off -- you'll usually get a way to toggle it back on, either through an option just for that or through a more general mechanism like PrBoom's complevels.

yeah yeah, anyone who knows that can probably figure out to toggle it on :)  From what I remember ZDoom has a lot of issues running it anyway (even with the additional ZDoom fix DEH) so I didn't want to claim something that I wasn't sure was going to work.

Share this post


Link to post

I had forgotten about Ghostbusters doom! despite it being unfinished it really had some neat dehacked tricks, specially on the weapons side, it even had a 'car' for a couple of stages, and also i always loved how killing a person would spawn a ghost lol. A shame it didn't saw completion, but back then i used to dig into that dehacked patch just to see how everything worked

Share this post


Link to post
7 minutes ago, pc234 said:

Action Doom's imps are one DeHackEd monster I can think of, followed up by the imp test tubes(?) and cocoons in the same wad.

 

Pretty sure they aren't dehacked 

Share this post


Link to post
Just now, Jon said:

 

Pretty sure they aren't dehacked 

Just checked the DEH file, yes they are.

The imp replaces the clip, and the Zombieman and SS are the two imp spawners.

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
×