monster sizes are so small

Ask about editing graphics, sounds, models, music, etc here!
Shaders (GLSL) and SNDINFO questions also go here!

Moderators: GZDoom Developers, Raze Developers

Forum rules
Before asking on how to use a ZDoom feature, read the ZDoom wiki first. If you still don't understand how to use a feature, then ask here.
Post Reply
User avatar
TRONTRON
Posts: 5
Joined: Sun Apr 23, 2023 1:37 pm
Preferred Pronouns: They/Them
Operating System Version (Optional): windows 11
Contact:

monster sizes are so small

Post by TRONTRON »

I am currently making new monsters for my doom mod but I notice that the original sprite size for monsters is just so very small. When I'm making my monsters do I have to make them this small or is there a way to size them down in game?
User avatar
Enjay
 
 
Posts: 26952
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland
Contact:

Re: monster sizes are so small

Post by Enjay »

I assume that you mean you are making sprites that are larger than the Doom originals (where human-like sprites are typically only around 56 pixels tall)?

If so, then you can indeed scale your larger sprites down to make them effectively higher resolution sprites. Both ZScript and DECORATE support scale properties when defining an actor, and these can be used to scale the sprites of any enemy that you create down to a suitable size. e.g. giving a 128 tall sprite a scale factor of 0.5 will make it 64 world units tall, but it will retain the detail from the 128 pixels.

DECORATE:

Code: Select all

 ACTOR MyActor 
 {
    Scale 0.5
    Plus whatever other code you need
ZScript

Code: Select all

CLASS MyActor
{ 
	Default 
	{
		Scale 0.75;
		Plus whatever other default entries you need
	}
Plus whatever other code you need
There are other ways to scale actors and sprites too, but this might be the most straight forward. If it's not suitable, provide more detail of what you are trying to do. There will be a way to do it.
User avatar
TRONTRON
Posts: 5
Joined: Sun Apr 23, 2023 1:37 pm
Preferred Pronouns: They/Them
Operating System Version (Optional): windows 11
Contact:

Re: monster sizes are so small

Post by TRONTRON »

That tells me precisely what I needed to know thank you
ShootGuys
Posts: 5
Joined: Wed Apr 30, 2025 11:50 am
Operating System Version (Optional): Android 11

Re: monster sizes are so small

Post by ShootGuys »

For variety you could also have a script that randomly sets the scale of monsters, so some are short and some are tall. I think you could also randomly set the width as well. I did that in a mod ages ago but am not sure if I still have a back up of it. I'll check an external hard drive later to see if I backed up the mod there and if so I'll paste the decorate code I used to randomly set monster size if you're interested.
User avatar
Enjay
 
 
Posts: 26952
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland
Contact:

Re: monster sizes are so small

Post by Enjay »

That's actually reasonably straight forward to do directly in the actor's ZScript. I do it with a lot of my custom enemies and decorations. A frame in the spawn state sequence sets a random scale value. IMO, it's best not to make very different values possible because then you could end up with a very small, and a very big one standing right next to each other - and that just looks weird and makes if very obvious what you have done. This also means that it isn't usually necessary to alter the hitbox size - just make it somewhere in the middle of the randomisation extremes.

example of scaling from one of my actors:

Code: Select all

PRIS A 0 A_SetScale (frandom(0.95,1.1));
There are also several other things to consider (here are just a few that I have come across):
It's a good idea to give the enemies an idle state sequence. If the enemy loses their target (e.g. when a player dies), they go back to their spawn state sequence and re-scale themselves. There are a few ways to fix this but the easiest (IMO) is to give them an idle state sequence. If an enemy has an idle sequence, they go to that, rather than the spawn sequence when they lose their target. So, no more rescaling - and you can get the enemy to do things in their idle state too - like wander around instead of just stopping on the spot.

If an enemy has been set to be dormant in a map, it won't scale itself until it becomes activated. If the player sees that, they can see the change in size. e.g. I had some enemies that were initially like decorations in tanks in a science lab. They were set to be dormant. That meant that they were too big anyway (they needed to be scaled down to look right), but the tanks break and the monsters get released in full view of the player. So, I had to place them as active, rather than dormant, and then freeze them after a couple of tics in an open script when the map starts and before the player could see them.

Also, if you are doing something like having the player teleport invisibly from one location to another identical location (to fake a continuous corridor or whatever) and there are some decorations that are set to randomly scale (e.g. natural scenery like trees would be a suitable candidate here) then the decorations on either side of the teleport setup need to be given the same scale. Otherwise, you can see the size change when you teleport, and this breaks the illusion.

That all probably sounds like a lot of hassle, but in reality, most of the time, those issues simply don't get encountered. So, it just needs to be addressed in the very few occasions when it's a problem, and addressing it is actually pretty easy.


And, as ever, there are alternatives to the above too, if someone wanted to do it a different way. This is just something that I set up years ago and saw no need to change. Or, it doesn't need to be done at all.
ShootGuys
Posts: 5
Joined: Wed Apr 30, 2025 11:50 am
Operating System Version (Optional): Android 11

Re: monster sizes are so small

Post by ShootGuys »

Unfortunately I didn't back up my Doom mod, but Enjay's post is quite helpful.

Whelp, time to start a new Doom mod.
User avatar
Enjay
 
 
Posts: 26952
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland
Contact:

Re: monster sizes are so small

Post by Enjay »

You lost your work? Bummer. :(

Just to be clear, everything I spoke about in my most recent post is only relevant if you are scaling the actors randomly using the method I suggested. If you are just putting a scale value in the default section of the actor's code, they will be scaled to that size when they spawn and that's that. None of the above considerations will be necessary.
Post Reply

Return to “Assets (and other stuff)”