Wednesday, 31 October 2007

Monsters with class

Firstly, thanks Mikolaj for picking up and fixing lots of errors with my most recent changes to add monster classes. Monster classes, you might ask. Well what are those?

They're roughly equivalent to ego-monsters in T.o.M.E. Because Unangband puts much greater restrictions on what monsters can be generated at what level, I need lots more monsters for sufficient variety, particularly deeper in the dungeon. You've probably seen the Young/Mature/Old/Ancient Large/Huge/Giant Fast/Furious/Deadly Experienced/Veteran etc. prefixes that a lot of monsters get at the moment. These modify the monster maximum hp, armour class and speed for monsters which have LEVEL_AGE, LEVEL_SIZE, LEVEL_SPEED and LEVEL_POWER flags. There are basically 3 breakpoints for each flag, at 5 levels deeper, 10 levels deeper and 15 levels deeper. You'll also have seen one monster in each large group is bigger/stronger/faster/older than the others - he is the next category more powerful than would be expected for a monster of this depth.

Well, monster classes is another flag (LEVEL_CLASS) which means that the monster can appear as a variety of different classes: warrior, mage, priest, archer, thief, 5 levels deeper than it would initially appear. For each additional five levels, the monster gets an additional class - warrior and priest --> paladin, for instance. These classes have additional attacks and spells, and get a similar boost to their other stats.

So why am I not implementing these as separate monsters? Well, I could. But Unangband has 1312 different monster types at the moment, and I keep adding them: the latest is the Rotting Icky Thing which is what you get when you re-animate an icky thing - it tends not to last very long.

In fact, I'm bumping up against the re-enlarged description limits at the moment - I'll have to expand them again if I want to add too many monsters - you may notice that the last few monster descriptions have been commented out.

The disadvantages with not separating them out are many: inaccurate monster memory, possibly unbalanced class combinations, and so on. The advantage: well, a quick back of the envelope grep means that I'd have to add 172 * 5 * 4 * 3 =~ 10,000 extra races for all the possible class combinations (some of which may not be that interesting) and ~3,000 extra monster races for all the other level flags.

So I'm interested in feedback - should I separate these out as different monsters or not? Or is it not that interesting to run into Black orc scouts, Black orc archers, Black orc mages etc in all their permutations - you'd be quite happy with just Black orcs.


Gareth LovesTha Pye said...

if it allows for item drops to be more tailored to the class dropping it I'd love it. Without that more variety is good, as long as it doesn't add more complexity to thinking about how to treat monsters.

tormodh said...

As long as I can diffe... diffre.. (differentiate) see who of that bunch of normal Black orcs is a Deadly Veteran Black orc ArchMage before I'm killed off by a Manastorm--

I'd be happy about it, I guess. Maybe.

Can I turn it off at compile/birth time? ;)

jagwio said...

Sounds like fun! Could there be some way for the monster memory to ignore the creature's bonuses?

Andrew Doull said...

Well, the idea is, you'd run into a mix of Deadly Black Orcs, Veteran Black Orcs, and Black Orc Mages, Priests, Warriors etc. all at the same depth, which would be at least +5 levels deeper than when you first started encountering Black Orcs.

And, you'll have to wait for the 256 colour implementation to be able to distinguish them... otherwise I run out of colours...

tormodh said...

After thinking a bit, I've come around to thinking I would like it. It would make me think more, look more.

Don't you go get it implemented in Vanilla, though :)

Andrew Doull said...

That's Andrew Sidwell. I'm a different Andrew - also known as UnAndrew.

ben.citak said...

I like the idea, as long as I can visually identify their differences.
256 colors? Yes!
Another thing that occurs to me is that I think it would be better if only a few monsters per group were classed, and the rest were bourgeois, if you get my meaning. Like they were leaders or something. They are monsters, after all.