Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > Angband > Vanilla

Reply
 
Thread Tools Display Modes
Old November 10, 2012, 17:31   #1
fizzix
Prophet
 
Join Date: Aug 2009
Location: Madison, Wisconsin, US
Posts: 3,002
fizzix is on a distinguished road
More sensible group monster amounts

The current V algorithm for determining group monsters is.

Code:
randint(13) + current_dungeon_level - monster_level
It is capped at 1 on the low end and 25 on the high end. This is a relatively recent change, it used to be a straight random number between 1 and 32. IIRC the change was so that stronger monsters didn't come in huge packs if they were OoD. However, this has the somewhat unintended consequence of making weaker monsters always come in large groups, often 25. This is bad for two reasons.

1) Weaker monsters often aren't a challenge, and instead are an annoyance. There are some exceptions, like Zs, but for the most part there's no interesting game-play that results from having a large group of weak monsters.
2) Weaker monsters large group values means that they're likely to completely fill up vaults, preventing more interesting monsters from appearing. Similarly, they are very likely to dominate the unique escort provided the unique is placed in a room.

I propose the following change.
Code:
randint(13) + min(12, (current_dungeon_level - monster level))
Again, we cap the lower value at 1.

There is no change until monsters are at least 12 levels under-depth, at which point you get a random number between 12 and 25.

edit: for my own personal play I'm going to lower groups much more, but this seems like a more conservative change sensible for 3.5
fizzix is offline   Reply With Quote
Old November 10, 2012, 18:54   #2
Malak Darkhunter
Knight
 
Malak Darkhunter's Avatar
 
Join Date: May 2007
Location: US
Age: 41
Posts: 720
Malak Darkhunter is on a distinguished road
I like this fizzix, for my own personal copy I limited groups to only appearing as escorts but the monsters a little stronger and worth a little more exp.
__________________
let me try this workaround...oh crap computer just went black
Malak Darkhunter is offline   Reply With Quote
Old November 10, 2012, 22:17   #3
Derakon
Prophet
 
Derakon's Avatar
 
Join Date: Dec 2009
Posts: 8,770
Derakon is on a distinguished road
Sounds fair to me. Actually I'd be fine with the group size being a random number between 5 and 15, say, which is then capped appropriately if the monster type is OOD.
Derakon is offline   Reply With Quote
Old November 11, 2012, 01:53   #4
fizzix
Prophet
 
Join Date: Aug 2009
Location: Madison, Wisconsin, US
Posts: 3,002
fizzix is on a distinguished road
Quote:
Originally Posted by Derakon View Post
Sounds fair to me. Actually I'd be fine with the group size being a random number between 5 and 15, say, which is then capped appropriately if the monster type is OOD.
I'll probably try something along those ranges (maybe more like 3-10) in testplay and we'll see how it goes. I do think that we should keep changes to V somewhat conservative though.
fizzix is offline   Reply With Quote
Old November 11, 2012, 14:09   #5
half
Knight
 
half's Avatar
 
Join Date: Jan 2009
Posts: 902
half is on a distinguished road
For reference, in Sil I ended up with several flags:

FRIEND: has between 0 and 1 extra monsters
FRIENDS: has between 1 and 3 extra monsters
ESCORT: has between 4 and 7 extra monsters
ESCORTS: has between 8 and 16 extra monsters

Note how much smaller the group monster flags (FRIEND(S)) are than in V. I think this plays much better, so I'd encourage pretty extreme experimentation in your home version fizzix.

For the FRIEND(S) flags I have more chance of more appearing if they are easier monsters for that depth. This causes less of a problem in Sil as monsters can occur at most 2 levels before their depth and at most 2 levels after, so there are far fewer time-waster ('windshield') monsters.
half is offline   Reply With Quote
Old April 22, 2013, 10:58   #6
PowerWyrm
Prophet
 
PowerWyrm's Avatar
 
Join Date: Apr 2008
Posts: 2,580
PowerWyrm is on a distinguished road
Quote:
Originally Posted by fizzix View Post
The current V algorithm for determining group monsters is.

Code:
randint(13) + current_dungeon_level - monster_level
It is capped at 1 on the low end and 25 on the high end. This is a relatively recent change, it used to be a straight random number between 1 and 32. IIRC the change was so that stronger monsters didn't come in huge packs if they were OoD. However, this has the somewhat unintended consequence of making weaker monsters always come in large groups, often 25. This is bad for two reasons.

1) Weaker monsters often aren't a challenge, and instead are an annoyance. There are some exceptions, like Zs, but for the most part there's no interesting game-play that results from having a large group of weak monsters.
2) Weaker monsters large group values means that they're likely to completely fill up vaults, preventing more interesting monsters from appearing. Similarly, they are very likely to dominate the unique escort provided the unique is placed in a room.

I propose the following change.
Code:
randint(13) + min(12, (current_dungeon_level - monster level))
Again, we cap the lower value at 1.

There is no change until monsters are at least 12 levels under-depth, at which point you get a random number between 12 and 25.

edit: for my own personal play I'm going to lower groups much more, but this seems like a more conservative change sensible for 3.5
I just checked the new source for 3.5 and to my surprise it's the complete opposite that has been done: now monsters appear in larger groups!!

Monsters with FRIEND flag now appear in the same amount as monsters with the FRIENDS flag, which is complete nonsense: the FRIEND flag was added to deal with double monster entries (one entry at low level for one monster, one entry at higher level for a group of monsters).

The worst case that I can think of is the hellhound: old entries were L35 (single) and L78 (group). Now you get groups at depth 35, not mentioning out of depth groups at shallower depths... and didn't I mention that they come with the ai_packs tactics? Basically: you detect them, you flee the level; you don't detect them, game over.

I'd consider reverting the FRIEND flag to its old behavior, and even ensure that you only get 1 monster at base depth. The best would be of course to "simulate" the old behavior (1 monster at depth A, normal group of monsters at depth B, smaller group between A and B, larger group below B), but currently monster entries don't have min/max allocation depths like objects.
__________________
PWMAngband variant maintainer - check http://powerwyrm.monsite-orange.fr (or http://www.mangband.org/forum/viewforum.php?f=9) to learn more about this new variant!
PowerWyrm is offline   Reply With Quote
Old April 22, 2013, 14:15   #7
fizzix
Prophet
 
Join Date: Aug 2009
Location: Madison, Wisconsin, US
Posts: 3,002
fizzix is on a distinguished road
Quote:
Originally Posted by PowerWyrm View Post
I just checked the new source for 3.5 and to my surprise it's the complete opposite that has been done: now monsters appear in larger groups!!

Monsters with FRIEND flag now appear in the same amount as monsters with the FRIENDS flag, which is complete nonsense: the FRIEND flag was added to deal with double monster entries (one entry at low level for one monster, one entry at higher level for a group of monsters).

The worst case that I can think of is the hellhound: old entries were L35 (single) and L78 (group). Now you get groups at depth 35, not mentioning out of depth groups at shallower depths... and didn't I mention that they come with the ai_packs tactics? Basically: you detect them, you flee the level; you don't detect them, game over.

I'd consider reverting the FRIEND flag to its old behavior, and even ensure that you only get 1 monster at base depth. The best would be of course to "simulate" the old behavior (1 monster at depth A, normal group of monsters at depth B, smaller group between A and B, larger group below B), but currently monster entries don't have min/max allocation depths like objects.
This is the old behavior, it hasn't been changed, except in my personal version since it was "controversial". I have a branch in which I'm planning to completely overhaul this that I got basic functionality working this weekend. More details in the next post.
fizzix is offline   Reply With Quote
Old April 22, 2013, 15:10   #8
fizzix
Prophet
 
Join Date: Aug 2009
Location: Madison, Wisconsin, US
Posts: 3,002
fizzix is on a distinguished road
So, I've been working on tailoring FRIENDS and ESCORT(S) behavior. In an experimental branch, the details on what monsters accompany a given monster will be included in monster.txt as additional "friends: xxxx" lines for each monster. Each monster can have multiple lines. I believe this is a near universal improvement but there are a couple questions about how to go about things.

Currently, each friend line includes the name of the monster race, the probability of this entry being selected, the number of monsters (as an XdY distribution). This would allow us to create monster groups of various different races (think adventuring parties or mixed packs of kobolds, or Dwar with a dog escort.) We can also have specific monsters appear together (like Bill, Tom and Bert). In addition we can keep some packs of monsters small (like filthy urchins) while letting others remain large (like uruks)

Here are the questions I have.

1) Is there any other piece of information that might be useful in the friends input line?

2) What about throttling group numbers depending on monster level and current depth? This hasn't been implemented yet but it probably should be. The question is how. One option is to take a percentage of monsters that appear in the group value if they're near depth level. So if you find a hellhound who's dlevel 40 that rolls 12 friends, and you're dlevel 37. Maybe you only get half of those friends. Ideas on how exactly to throttle it would be helpful! This is most similar to current behavior

2a and 1a) We could add another input which would be the depth at which to allow these friends. This could simulate PowerWyrm's behavior where hellhounds could only have the friends flag triggered at dlevel 50. Or we can even tier it so that one flag gets triggered at 50 and additional friends come in at 70. We can do this in conjunction with 2 or instead of it, although I'm thinking instead is probably better. This can also allow asymmetric groupings, so that you can make the balrog of moria have the same escort as gothmog (including gothmog) if you're deeper than dlevel 95. From user perspective, this just looks like gothmog was summoned with a balrog escort. Maybe a maximum level for escorts is desirable as well? So that weaker orcs are passed over for lesser orcs after certain depths?

3) Naturally a big chunk of the changes will involve going through the entire monster.txt file and adding the friends tags. Community suggestions would be helpful here. How many hounds should come in hound packs? How many orcs in orc packs? Should mature and ancient dragons come with an entourage of like lesser dragons? Anything that the community would really like to see?

4) Which uniques should be "grouped" together. The trolls are an obvious choice. Do these uniques need other changes as well? Should I make bill, tom and bert a bit weaker and maybe drop a bit less now that you encounter all three at once?
fizzix is offline   Reply With Quote
Old April 22, 2013, 22:21   #9
Oramin
Swordsman
 
Join Date: Jun 2012
Posts: 371
Oramin is on a distinguished road
So, you're planning on making sure that when The Balrog of Moria shows up on L45 he won't have 8 Lesser Balrogs with him as part of his escorts?

(We won't mention that it just happened in my 3.3.2 game)
Oramin is offline   Reply With Quote
Old April 22, 2013, 22:53   #10
Antoine
Ironband/Quickband Maintainer
 
Join Date: Nov 2007
Posts: 1,007
Antoine is on a distinguished road
You are brilliant.

Some content suggestions follow:
  • Bill / Bert / Tom
  • Maggot's dogs
  • Orcs should have Wolves
  • Uruks should have Wargs and Crebain
  • Trolls should have Orcs
  • Giants should have 'co-aligned' Hounds
  • Mummies should have Skeletons and Zombies
  • Occasionally a warrior monster should appear with a party of characters of similar level - i.e. a Novice Paladin could have a Novice Priest, Novice Mage and Novice Rogue with him
  • Ringwraiths should have lower level Ringwraiths
  • The Witch-King should also have a Winged Horror (sometimes)
  • A Mumak should have Haradrim (new mobs) as well as other Mumaks
  • A Zephyr Huntmaster (new mob) should have assorted Zephyr Hounds
  • Boldor should have all surviving Yeek uniques
  • Azog should have all surviving Orc uniques
  • The Elemental Lords should have various creatures of the same element
  • Saruman should have Wormtongue and Uruks
  • Ar-Pharazon should have Black Numenoreans (new mobs)
  • Ancalagon should have all surviving Dragon uniques
  • Sauron should have all surviving Ringwraiths and (sometimes) the Mouth
  • Morgoth should have Angband-denizens such as Thuringwethil and Carcharoth

I think most dragons and Maiar are solitary and should not have friends.

To shortcut the process, why don't you consider adding a SUMMON_FIRST flag to some mobs. If a mob with this flag is generated at the start of the level, then one of its summoning spells is picked randomly and cast at its location. You could give this flag to a Druid, for instance, to make sure he would appear with animals. It would be quicker than selecting FRIENDS for him.

Finally, can I suggest some improved AI here. Could apply to both FRIENDS and summons.
  • - An escort should wake up if its boss wakes up
  • - A boss should wake up if one of its escort wakes up
  • - If an escort can see its boss but cannot see you, it tries to step towards its boss
  • - If an escort is confused, it may permanently forget who its boss is
  • - If a boss is killed, its escorts are confused for a few turns.

For bonus points, every monster on the level should regard Morgoth as its boss (except, perhaps, some of the deeper uniques such as Ungoliant).
__________________
Ironband - http://angband.oook.cz/ironband/
Antoine is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Vanilla group AI bug fizzix Development 0 January 10, 2010 04:12
Angband Facebook group CJNyfalt Idle chatter 0 June 1, 2009 10:07
Excessive amounts of gold? Sean Vanilla 3 March 19, 2009 16:44
Variant maintainers group game Antoine Variants 9 February 7, 2009 23:17


All times are GMT +1. The time now is 17:36.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.