[WIP] Gimmicks galore! (The Wastes)

Projects that have specifically been abandoned or considered "dead" get moved here, so people will quit bumping them. If your project has wound up here and it should not be, contact a moderator to have it moved back to the land of the living.
Locked
User avatar
Snarboo
Posts: 2599
Joined: Tue Nov 29, 2005 4:37 am

[WIP] Gimmicks galore! (The Wastes)

Post by Snarboo »

I've been toying around with the idea for mods that have some central gimmick, be it weapons, monsters, or powerups. This thread will be a "journal" of sorts for the various random ideas I manage to come up with.

Finished Projects:

Doom Monster Randomizer - This little mod randomizes monster spawns. If you've grown tired of knowing just what kind of monster is right around the corner, this is the mod for you! Comes in two flavors: vanilla and enhanced. Currently, only the vanilla edition is finished.

The vanilla edition randomizes most of the vanilla monsters. It's kind of bland, but it does include two new monsters: the heavy weapons dude for the Ultimate Doom, using Vader's lovely Chaingun Major sprites, and the Nightmare Imp, a sloppy hack by yours truly! Monster spawns are based on a weighted dropitem list. This means that the monster that would usually spawn will be the most common, followed by the next closest. The human enemies will see the most variation, followed by the demon, spectre, imp and Hell knight.

Some monsters have recieved minor improvements: Hell nobles now spawn green blood, cacodemons spawn blue blood, and lost souls spawn bulletpuffs instead of blood. Many monsters are randomized, partially due to a lack of similar monsters and partially because of Doom's few, scripted maps. Hell knights are one exception: they will sometimes spawn a Baron of Hell.

The enhanced edition is finished. It randomizes most of the monsters with a select few from the Beastiary. Most monsters have been modified from their Beastiary counterparts, but not in a bad way. Most of them had their health reduced to better match the original Doom monsters, along with some tweaks to painchance and other minor variables.

I know this has been done before, but I thought having a simple monster randomizer that doesn't spawn 50 billion different kinds of monsters would be nice for those that prefer something a little bit simpler. For those that want more, the enhanced edition should suit your needs without being excessive.

You can get the current final version of the vanilla and enhanced edition right here: Doom Monster Randomizer - Vanilla and Enhanced edition


Current Projects:

The Wastes - A mod with weapons inspired by those found in my favorite Build engine games, namely Blood, Duke Nukem 3D and Shadow Warrior. Other features are in the planning stages, such as custom monsters. Current release is beta 1.1, which can be found here.

Character Classes - A mod with 5+ characters, new weapons, armor system and power-ups planned. The mod is currently in the beta stages. Currently on hiatus. The current beta release can be found here: Character Class - beta 1.
Last edited by Snarboo on Sun Sep 27, 2009 7:29 pm, edited 14 times in total.
User avatar
TypeSaucy
Posts: 1000
Joined: Wed Sep 17, 2008 9:31 am

Re: [WIP] Gimmicks galore!

Post by TypeSaucy »

nice! i bet the enhanced one is gonna be more hardcore.
User avatar
Snarboo
Posts: 2599
Joined: Tue Nov 29, 2005 4:37 am

Re: [WIP] Gimmicks galore!

Post by Snarboo »

Current progress on the enhanced edition is good! I've almost finished it. I've also made some improvements to the vanilla edition and added one new monster: the lost spectre! Basically a fuzzy lost soul.
User avatar
Cardboard Marty
Posts: 1149
Joined: Sat Oct 23, 2004 8:29 am
Graphics Processor: nVidia with Vulkan support
Location: Robot Mountain
Contact:

Re: [WIP] Gimmicks galore!

Post by Cardboard Marty »

Loving the vanilla addition so far. The chaingunners seem to spawn quite a bit though, but I blame decorate's randomization for that more than anything. :P Very interesting to play through with this, definitely puts a spin on Doom :)
User avatar
Snarboo
Posts: 2599
Joined: Tue Nov 29, 2005 4:37 am

Re: [WIP] Gimmicks galore!

Post by Snarboo »

I'm glad to hear you're liking it so far! I noticed the chaingunner spawning more often than I thought it would myself. It must be ZDoom's randomization code, because in most cases, chaingunners are weighted the lowest in the dropitem list.

If you like lots of custom monsters, you'll love the enhanced edition. I've tried my best to keep it from suffering from the "wild zoo" effect by grouping similar monsters together and making sure no more than five kinds of monsters will drop from one spawner. It does get pretty hectic, though.
User avatar
Snarboo
Posts: 2599
Joined: Tue Nov 29, 2005 4:37 am

Re: [WIP] Gimmicks galore!

Post by Snarboo »

The enhanced edition is basically done now, except for one major flaw: for whatever reason, the custom boss monsters meant to spawn along with the Cyberdemon and Spider Mastermind are not executing their A_BossDeath script upon death. This is despite the fact that 1) both custom boss monsters inherit from the original bosses, 2) they both call A_BossDeath in their death states and 3) I also created two new actors that also inherit from the original bosses that work perfectly.

For example, my NewCyber actor, which is just the Cyberdemon with a species string and the DONTHURTSPECIES flag, will end the level on E2M8, but the Annihilator from the Beastiary that I modified a bit, despite inheriting from the Cyberdemon, won't. I'm going to upload the mod anyway, along with some code. Hopefully somebody can figure this out.

This is the first time I've had a problem with this, by the way. The other monsters which inherit from boss and special monsters, such as the Cybruiser and Chaingun Arachnotron, will execute their map script upon calling A_BossDeath.

On a more positive note, if I can get this fixed, I'll upload this to the /idgames archive. I would appreciate people posting as many comments about this as possible, too. Also, would anyone be willing to record and upload some gameplay footage of the enhanced edition as a promo? My computer isn't fast enough to play a game and record video at the same time. I'll try to think of some reward for doing so.

Here's the code for the curious:
Spoiler:
Edit:
Alright, I've uploaded a zip file that contains both the vanilla and enhanced edition together. The vanilla edition has recieved a few tweaks and new additions.

Here it is:
Doom Monster Randomizer - Vanilla and Enhanced edition
Gez
 
 
Posts: 17833
Joined: Fri Jul 06, 2007 3:22 pm

Re: [WIP] Gimmicks galore!

Post by Gez »

Snarboo wrote:I'm glad to hear you're liking it so far! I noticed the chaingunner spawning more often than I thought it would myself. It must be ZDoom's randomization code, because in most cases, chaingunners are weighted the lowest in the dropitem list.
There was a small bug in the RS code which screwed probabilities for weighted lists. It's been fixed in r1648.
Snarboo wrote:The enhanced edition is basically done now, except for one major flaw: for whatever reason, the custom boss monsters meant to spawn along with the Cyberdemon and Spider Mastermind are not executing their A_BossDeath script upon death. This is despite the fact that 1) both custom boss monsters inherit from the original bosses, 2) they both call A_BossDeath in their death states and 3) I also created two new actors that also inherit from the original bosses that work perfectly.
Do they have the BOSS and/or BOSSDEATH flags? Normally they should inherit them from their parent actor, but that is how RSes determine whether something is a boss or not, and they have special coding to make it work.
User avatar
Snarboo
Posts: 2599
Joined: Tue Nov 29, 2005 4:37 am

Re: [WIP] Gimmicks galore!

Post by Snarboo »

They had the BOSS flag set and I just now added the BOSSDEATH flag, but it's still not working properly.
Gez
 
 
Posts: 17833
Joined: Fri Jul 06, 2007 3:22 pm

Re: [WIP] Gimmicks galore!

Post by Gez »

I just loaded the code you typed and finished E2M8 successfully. Typing "kill cyberdemon" in the console told me there was 0 cyberdemons around, so it was indeed a NewCyber. I'm going to take a look at the mod since obviously something is wrong somewhere else.
Last edited by Gez on Tue Jun 23, 2009 9:22 am, edited 2 times in total.
User avatar
Snarboo
Posts: 2599
Joined: Tue Nov 29, 2005 4:37 am

Re: [WIP] Gimmicks galore!

Post by Snarboo »

The new monsters are located in the MONSTER text file, while the monster spawners are located in the DECORATE file. Monsters are organized by class, so the Annihilator is at the bottom of MONSTER along with the Demolisher, the other boss.
Gez
 
 
Posts: 17833
Joined: Fri Jul 06, 2007 3:22 pm

Re: [WIP] Gimmicks galore!

Post by Gez »

Ah, yes of course. Bosses aren't replaced with the "replaces" keyword. Try this alone and play through E2M8:

Code: Select all

actor NewCyber : Cyberdemon replaces Cyberdemon
{
   Species "General"
   +DONTHURTSPECIES
}
Notice that you win.

Now try this alone instead:

Code: Select all

actor NewCyber : Cyberdemon 16
{
   Species "General"
   +DONTHURTSPECIES
}
Notice that you don't anymore.

Here's a working code:

Code: Select all

/* Doom Monster Randomizer - Decorate Code
All code by Snarboo 2009 

This is the enhanced Monster randomizer. It 
includes a select few Beastiary monsters
for more monster variation. New monsters 
will be included in a separate decorate 
file to avoid clutter. */

#include MONSTER

// New Monsters from the Vanilla version

actor NewHWGuy : ChaingunGuy replaces ChaingunGuy
/* Code borrowed from the Chaingun Major 
Bestiary Monster. Original code and 
graphics by Vader, minor edits by 
Snarboo.								*/
{
	Decal Bulletchip
	States
	{
	Spawn:
		CPS2 AB 10 A_Look
		Loop
	See:
		CPS2 AABBCCDD 3 A_Chase
		Loop
	Missile:
		CPS2 E 10 A_FaceTarget
		CPS2 FE 3 A_CPosAttack
		CPS2 F 1 A_CPosRefire
		Goto Missile+1
	Pain:
		CPS2 G 3
		CPS2 G 3 A_Pain
		Goto See
	Death:
		CPS2 H 5
		CPS2 I 5 A_Scream
		CPS2 J 5 A_Fall
		CPS2 KLMNO 5
		CPS2 P -1
		Stop
	XDeath:
		CPS2 Q 5 
		CPS2 R 5 A_XScream
		CPS2 S 5 A_Fall
		CPS2 TUVWX 5
		CPS2 Y -1
		Stop
	Raise:
		CPS2 P 5
		CPS2 ONMLKJIH 5
		Goto See
	}
}

actor NewImp : DoomImp replaces DoomImp
{
	Species "Imp"
}

actor NightmareImpBall : DoomImpBall
{
	Translation "Ice"
	RenderStyle Add
	Alpha 0.8
	Damage 5
	Speed 12
	FastSpeed 24
}

actor NightmareImp : DoomImp
{
	Species "Imp"
	Health 90
	RenderStyle Add
	Alpha 0.75
	Translation "Ice"
	BloodColor "Blue"
	obituary "%o was frozen by a Nightmare Imp."
  	hitobituary "%o was frostbitten by a Nightmare Imp."
	PainChance 180
	States
	{
	Missile:
    	TROO EF 8 A_FaceTarget
    	TROO G 6 A_BasicAttack (4, "imp/melee", "NightmareImpBall", 32)
    	Goto See
	}
}

// blood color changes for old monsters

actor NewCaco : Cacodemon replaces Cacodemon
{
	Species "Caco"
	BloodColor "Blue"
}

actor NewHellKnight : HellKnight replaces HellKnight
{
	Species "Noble"
	BloodColor "Green"
}

actor NewBaron : BaronofHell
{
	Species "Noble"
	BloodColor "Green"
}

actor BulletPuff2 : BulletPuff 
// for skeletal monsters
{
}

actor NewLostSoul : LostSoul replaces LostSoul
{
	Species "Anklebiter"
	Health 75
	RenderStyle Normal
	Alpha 1
	BloodType "BulletPuff2"
	BloodColor "Black"
}

actor LostSpectre : LostSoul
// New Lost Soul type
{
	Health 90
	RenderStyle Fuzzy
	Obituary "%o never saw it coming."
}

actor NewElemental : PainElemental replaces PainElemental
{
	Species "Spawner"
}

actor NewSpider : Arachnotron
{
	Species "Spider"
	+DONTHURTSPECIES
}

actor NewCyber : Cyberdemon
{
	Species "General"
	+DONTHURTSPECIES
}

actor NewBrain : SpiderMastermind
{
	Species "Leader"
	+DONTHURTSPECIES
}

// Monster Spawners

actor ZombieSpawner1 : RandomSpawner 3004
{
	DropItem "ZombieMan" 		255 6
    DropItem "ShotgunGuy" 		255 2
	DropItem "ChainsawZombie"   255 1
	DropItem "NewHWGuy" 		255 1
}

actor ZombieSpawner2 : RandomSpawner 9
{
	DropItem "ShotgunGuy" 		255 6
	DropItem "ZombieMan" 		255 2
	DropItem "ChainsawZombie"   255 1
    DropItem "NewHWGuy" 		255 1
}

actor ZombieSpawner3 : RandomSpawner 65
{
	DropItem "NewHWGuy" 		255 6
	DropItem "ShotgunGuy" 		255 2
	DropItem "ZombieMan" 		255 1
	DropItem "ChainsawZombie"   255 1
}

actor ImpSpawner : RandomSpawner 3001
{
	DropItem "NewImp" 			255 5
    DropItem "NightmareImp" 	255 2
	DropItem "SuperImp"			255 1
	DropItem "StoneImp"			255 1
	DropItem "SoulHarvester"	255	1
}

actor DemonSpawner1 : RandomSpawner 3002
{
	DropItem "Demon" 			255 6
    DropItem "BloodDemonClone" 	255 3
	DropItem "StoneDemon"		255 1
}

actor DemonSpawner2 : RandomSpawner 58
{
	DropItem "Spectre" 			255 6
    DropItem "BloodSpectre" 	255 3
	DropItem "StoneSpectre"		255 1
}

actor HellKnightSpawner : RandomSpawner 69
{
	DropItem "NewHellKnight" 	255 5
    DropItem "Satyr"			255 3
	DropItem "HellWarrior" 		255 2
}

actor BaronSpawner : RandomSpawner replaces BaronofHell
{
	DropItem "NewBaron"		255 8
	DropItem "Cybruiser"	255 2
}

actor CacoSpawner : RandomSpawner 3005
{
	DropItem "NewCaco"		255 6
	DropItem "Cacolich" 	255 3
	DropItem "Fallen"		255 1
}

actor SoulSpawner : RandomSpawner 3006
{
	DropItem "NewLostSoul"	255 5
	DropItem "LostSpectre"	255 3
	DropItem "Guardian"		255 2
}

actor ElementalSpawner : RandomSpawner 71
{
	DropItem "NewElemental"		255 7
	DropItem "TorturedSoul"		255 3
}

actor SpiderSpawner : RandomSpawner replaces Arachnotron
{
	DropItem "NewSpider"	255 5
	DropItem "CGunSpider"	255 5
}

actor CyberSpawner : RandomSpawner replaces Cyberdemon
{
	DropItem "NewCyber"		255 8
	DropItem "Annihilator"	255 2
}

actor BrainSpawner : RandomSpawner replaces SpiderMastermind
{
	DropItem "NewBrain"		255 9
	DropItem "Demolisher"	255 1
}
You simply need to use "replaces" for replacing bossdeath monsters. The reason is the way A_BossDeath behaves in the first place. For a level, it looks what kind of monster is supposed to trigger a special effect. For example, E2M8 = Cyberdemon. Then it looks if that monster is being replaced by another, using an information field that is filled by the decorate parser when it stumbles upon a "replaces" keyword. So, NewCyber. Then it notices there aren't any monster of that type that have been placed on the map, since their doomednum has been hijacked by something else.

The other substitution method doesn't work. Since you're not using the original actors directly anyway, it's no big deal, is it?
User avatar
Snarboo
Posts: 2599
Joined: Tue Nov 29, 2005 4:37 am

Re: [WIP] Gimmicks galore!

Post by Snarboo »

Gez wrote:The other substitution method doesn't work. Since you're not using the original actors directly anyway, it's no big deal, is it?
I didn't realize that! That works perfectly then. Thanks man. :)

Edit:
I just uploaded a fixed version of the enhanced edition. I still need to fix the vanilla edition, but that will have to wait. I've been working on this for a few hours, so I'm taking a break. :)

Doom Monster Randomizer - Vanilla and Enhanced (fixed) edition
User avatar
Cardboard Marty
Posts: 1149
Joined: Sat Oct 23, 2004 8:29 am
Graphics Processor: nVidia with Vulkan support
Location: Robot Mountain
Contact:

Re: [WIP] Gimmicks galore!

Post by Cardboard Marty »

Loving the enhanced edition. I'm glad I finally have a mod like this that doesn't succumb to the zoo effect. The monsters were nicely chosen :D

Cant' wait to see this weapon mod you've got coming :D
User avatar
Snarboo
Posts: 2599
Joined: Tue Nov 29, 2005 4:37 am

Re: [WIP] Gimmicks galore!

Post by Snarboo »

Thanks again, Marty. :) I'm glad that the monster variety is a problem.

I just fixed up the vanilla edition with the improvements I made to the enhanced one, so I'll upload that in a minute. However, I'm still considering adding a few new monster variants to both, such as a special Red Baron similar to the Doom 64 Baron and possibly a Hell Spectre.

The enhanced edition doesn't replace the Mancubus, the Revenant or the Archvile because I felt I couldn't find suitable replacements for them, but that might change. I probably won't replace the Archvile, unless I can find a similar monster with a heal ability.

Edit:
I actually just added those changes I mentioned to the two editions. Here it is:
Doom Monster Randomizer - Vanilla and Enhanced Edition

This adds two new monster and a few enhancements. The two new monsters are the Hell Spectre and the Red Baron, both of which have stronger attacks to their counterparts, but have lower health. New blood types for fuzzy and transparent monsters were also added. Fuzzy spectres now have fuzzy blood, and transparent monsters have transparent blood. Other minor changes include tinkering around with a few monsters' blood colors.
User avatar
Ethril
Posts: 2677
Joined: Sun Nov 16, 2008 2:59 am
Location: with you in the dark

Re: [WIP] Gimmicks galore!

Post by Ethril »

Snarboo wrote:Red Baron
FFFFFFFFFFF
I was using that joke for something I'm working on.

Meh, no big deal.
Locked

Return to “Abandoned/Dead Projects”