Death Egg Posted March 27, 2017 (edited) Is there a limit to how many enemies you could have with DEHACKED? I have a vague idea for a mod that would involve multiple enemies, as long as enough states are freed from objects is there a limit to how many new ones you can make? And do they all count toward the monster count too? EDIT: The original enemies will be changed to be new too. Most likely almost all of the enemies will share a death state since it will free up so many frames for animation of other enemies. (All the enemies will explode) Edited March 27, 2017 by Death Egg 0 Share this post Link to post
bonnie Posted March 27, 2017 Technically yes, you can only have as many enemies as there are things. You can replace others things like items and decorations as long as you use the correct flags and use and call for the correct states. You cannot however (afaik), add additional things using unused states. And yes, I'm pretty sure they can count towards the monster count, so long as you tick off the "Affects kill %" flag for the thing. I think. I dunno. :( 0 Share this post Link to post
scifista42 Posted March 27, 2017 (edited) On a technical level, DEHACKED doesn't separate things into any categories, like monsters, projectiles, pickups, decorations, or whatever else. Every thing type has the same properties that you can set to arbitrary values, and only these values will determine the thing's behavior - a certain combination of properties will make a monster, another combination will make a pickupable item, but a creative modder could potentially invent a new combination that makes a thing that is simultaneously a monster and a pickupable item, or even a thing undescribable by any category of things found in the original Doom games. It's true that certain several thing types have special hardcoded behavior that cannot be changed (if you kill a Zombieman, he always drops a clip of bullets), but this isn't forbidding said thing types to be redefined into something completely different than they originally were by changing their normal properties (you can redefine a Zombieman into an explosive barrel that doesn't move or do any monster-like behavior at all, then it will drop a clip of bullets upon death, but otherwise work just fine as an explosive barrel - alternatively, you can redefine him into a non-damagable object, then his ability to drop a clip of bullets upon death will not manifest simply because he won't ever be dying). So yes, you can redefine anything into nearly anything else, as long as you don't run out of available states and thing types, and you're OK with losing the original ones. 4 hours ago, Death Egg said: And do they all count toward the monster count too? Counting towards the monster count is determined by one flag in a thing's properties, so it's completely under your control which things will count and which ones will not. Edited March 27, 2017 by scifista42 1 Share this post Link to post
42PercentHealth Posted March 27, 2017 46 minutes ago, scifista42 said: It's true that certain several thing types have special hardcoded behavior that cannot be changed (if you kill a Zombieman, he always drops a clip of bullets), but this isn't forbidding said thing types to be redefined into something completely different than they originally were by changing their normal properties (you can redefine a Zombieman into an explosive barrel that doesn't move or do any monster-like behavior at all, then it will drop a clip of bullets upon death, but otherwise work just fine as an explosive barrel - alternatively, you can redefine him into a non-damagable object, then his ability to drop a clip of bullets upon death will not manifest simply because he won't ever be dying). Ah... I think I understand now why the plasma marine enemies in Scythe 2 and Resurgence drop bullets instead of cells. They replaced the original SS Nazi. 0 Share this post Link to post
kb1 Posted March 27, 2017 You cannot exceed the original number of things, the original number of frames, the original number of sounds, or even the original number of 4-letter sprite names. And, there's some special considerations with the player's first-person weapon frames, and the pickup frames and/or pickup things, at least in vanilla. Ports with MBF support extend the number of things a frames by a small amount. A final thing to consider is that, for vanilla, your PWAD must contain ALL sprites that will be used in your game. This is because vanilla cannot grab the sprite images from 2 separate sources, like it would for other resources. I hope I described this clearly. 0 Share this post Link to post
BigDickBzzrak Posted March 27, 2017 Also, some modern badass advanced ports, such as Doom Retro and recently Crispy Doom (ZDoom and Eternity too, i think?), add a whole new bunch of frames and thing numbers for modders' use. 0 Share this post Link to post
Bauul Posted March 27, 2017 (edited) 3 hours ago, scifista42 said: It's true that certain several thing types have special hardcoded behavior that cannot be changed (if you kill a Zombieman, he always drops a clip of bullets) You could however also change the clip of bullets into something else. Although this would then change every bullet clip in the game. I once created a mod that changed every bullet clip into a faster, melee only zombie. This meant when you killed a zombie you got... another zombie! It was effectively a mod that added various levels of aggression to monsters before we had anything like Decorate. It did however end up populating the whole game with angry melee zombies and less bullets, so I think I turned armor bonuses into bullet clips to make up for it. 1 Share this post Link to post
Voros Posted March 27, 2017 Or use BEX instead, if you're not aiming for vanilla. It'll certainly be neater. 0 Share this post Link to post
kb1 Posted March 28, 2017 18 minutes ago, bzzrak said: Also, some modern badass advanced ports, such as Doom Retro and recently Crispy Doom (ZDoom and Eternity too, i think?), add a whole new bunch of frames and thing numbers for modders' use. I made a case for all ports doing this, on these forums, some time ago, but it never went anywhere. The idea was that all ports would add a modest, agreed-upon chunk of blank frames, blank thing slots, and maybe some blank sound slots. Additionally, ports would add a very small set of very general code pointers, like for firing a missile, or dropping a thing. The idea was to provide a simple, DEHACK-y, vanilla-like way to add custom monsters without swapping them for the originals. Kind of like a new standard, agreed-upon feature set. With everyone adding the same features, these monsters would work everywhere, and even respect demo compatibility. I still think it's a good idea, especially because adding this to a port is generally pretty easy, though it may require a workaround or two, to work seamlessly with ports that support user-defined thing/frame/sound creation. Effectively, it would make all source ports "badass", almost for free :) 1 Share this post Link to post
scifista42 Posted March 28, 2017 7 hours ago, kb1 said: A final thing to consider is that, for vanilla, your PWAD must contain ALL sprites that will be used in your game. This is because vanilla cannot grab the sprite images from 2 separate sources, like it would for other resources. To be precise: If a PWAD contains at least 1 sprite lump with a name that matches any IWAD sprite lump name, the engine will crash upon startup, unless the PWAD actually contains all of such sprite lumps. However, including custom sprites in a PWAD without reincluding all non-replaced IWAD sprites can be done by renaming some 4-letter sprite names in DEHACKED's String table to unique ones and renaming the 4-letter names of all custom sprites to these unique names (for example, rename string "TROO" to "TRO2", and safely include custom sprites named "TRO2**"), or by using frames of existing sprite names beyond the range of the IWAD sprites (for example, the IWAD's health bonus sprites include frames A-D, so you can safely add frames E-Z of the same sprite name). 0 Share this post Link to post
Death Egg Posted March 28, 2017 A lot of interesting information I didn't know about. Including every resource wouldn't be an issue; if I went in this direction for my mod it would be an IWAD anyway, so it would have to include every resource. 0 Share this post Link to post
riderr3 Posted March 28, 2017 (edited) Free states with actions can be borrowed from baron, mastermind and cyberdemon - "bossdeath". This actions anyway not used in Doom 2. Also fatso and arachnotron have "bossdeath" actions which only used on map07. Also keen with it's action "keendie" can open the doors on any map. You can even create monster who can shoot BFG projectiles, but you need sacrifice other monster projectile. And you can change archvile to another thing, so you can receive a LOTS of free states and actions (even 2 monsters can be created from turning archvile to static hell pillar, as example). Edited March 29, 2017 by riderr3 1 Share this post Link to post