forums | blogs | polls | tutorials | downloads | rules | help

How to Scale Monsters?

Dungeon Siege Fanatic's picture

So, I've successfully finished the SKRIT code that checks the players level and selects a monster from a pool of monsters to spawn. That's all well and good. However, as I am making custom monsters for my map, I need a little help with leveling said monsters. What I've basically been doing is leveling the monsters based on previous dungeon siege monsters, however, with all the variants in my mod, this will take FOREVER.

Thus, I was wondering if there was some kind of formula for leveling monsters, one which could be easily followed. For instance, if the character is level 26, the monsters stats should be this, this and this.

Looking through the DSLOA .GAS code, it seems like the original GPG developers did this, as 70% is commented as 'auto-generated'.

Thanks in advance guys! And happy siegeing!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Dungeon Siege Fanatic's picture
Ah Well

Thanks for the link. I guess I'll just have to base my monsters off of other Dungeon Siege monsters. Maybe I'll make a list of my own. Regardless, thank you for the help. It shouldn't be too hard to base them off of existing monsters.

I did do some digging in the components.gas of the DSLOA and there's some weird 'override' block inside of the skills block but it doesn't appear to actually do anything, sadly. If I do end up making a list I'll be sure to share it on this site for any possible future modders.

Once again, thanks for the response iryan, I'll be sure to dig through some of the DSLOA files for monsters to check the balancing.

DSLOA actor templates may help

Unfortunately there's not much available data on-line that's organized in a table of list which I could find doing a quick search. The Dungeon Siege Wiki has stats on most of the monsters in DS1 http://dungeonsiege.wikia.com/wiki/Dungeon_Siege_Enemies

Many of the templates in DSLOA have notations on what level the monsters were designed for which may help you. For instance in zaurask.gas; dsx_zaurask_fighter is noted as being balance for level 23, dsx_zaurask_fang is noted as being balanced for level 16, medium melee, zaurask_commander is noted as being balanced for level 16, hard melee, etc. That may help.

In my own work for Legends of Utrea, I just made clones of new monster templates that inherited from existing templates from DS1 and DSLOA, only creating base templates for new monsters not found in DS1 or DSLOA. There were several hundred leaf templates that had to be created and balanced, though since I was working with an existing map it was much simpler adjusting the stats.

So your idea of creating base templates adjusted for different levels beforehand and then changing a couple of lines (template name, specializes and name) could work.

Dungeon Siege Fanatic's picture
Doing it Before Hand

Do you know if there is any way I could level the templates beforehand? Like some formula I could use to create each template by hand, then go load them in with the pre-written content already written up?

For instance, I've got three monsters, monsters A, B, and C. I know how to make monster A spawn for level 1-3, monster B spawn for level 4-7, and monster C to spawn for level 8-10. However, I need to know what stats to give said monsters to make them scaled to these ranges. I'm okay with coding it all up before hand, I just need to know what stats I should give them to make it balanced.

Supported in DS2 but not sure in DS1

I'm not sure if there's an easy way to achieve what you want in DS1. You could make a curve for each parameter you need for reference but you'll still need numerous templates to get the variations in game.

That's why GPG extended the game engine in DS2 to support formulas in templates. Then they just needed to create root templates for various types of monsters ( trivial, weak, normal, rogue, tank and mini-boss, etc) upon which the monster templates inherited from depending on how powerful they wanted to make each monster. Then each monster's stats template declared the monster_level to be used in-game. This made it quite easy to make variants of each monster to appear in the game.

I don't know if DS1 would support such formulas in the template hierarchy. There's no indication in components.gas that it does and other major projects like Ultima 6 & Project Britannia still used the old system.