Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > Angband > Development

Reply
 
Thread Tools Display Modes
Old October 28, 2016, 19:00   #1
Pete Mack
Prophet
 
Join Date: Apr 2007
Location: Seattle, WA
Posts: 4,022
Donated: $40
Pete Mack is on a distinguished road
Ego distribution in V

With a nod towards Eddie's observation that boots of speed are too common, I took a look at the code. (As it happens i agree. Finding 3 pairs of speed or elvenkind in a vault is over the top.)
Unfortunately there is now way to generate a distribution of ego items by level in the wizard files. I will do that next.

In 3.0, rarity is proportional to 1/p, so boots of speed, with rarity 24, are 3x more rare than boots of free action, with rarity 8. Really common ego items have rarity 1; nearly all such are shallow items like single resist armor.

In 4.0, boots of speed are rarity 3, while boots of free action are rarity 10. So it looks like rarity should actually just be an unnormalized probability. But the original code p = 100 / rarity still stands. What's the deal here?

Further complicating the issue is that shallow weak stuff in 3.0 is has a max depth in 3.5, which means the distribution is more heavily renormalized in favor of powerful stuff as you go deeper. This means there needs to be roughly proportional less stuff at depth compared to shallow. I don't know how that works.

Edit: From what I understand, every single pair of ego boots in a greater vault deeper than 4000' will be boots of speed or elvenkind, since all other boot ego items top out by dl 100. That explains a LOT.

Last edited by Pete Mack; October 28, 2016 at 19:12.
Pete Mack is offline   Reply With Quote
Old October 28, 2016, 20:57   #2
takkaria
Veteran
 
takkaria's Avatar
 
Join Date: Apr 2007
Posts: 1,820
Donated: $40
takkaria is on a distinguished road
Quote:
Originally Posted by Pete Mack View Post
With a nod towards Eddie's observation that boots of speed are too common, I took a look at the code. (As it happens i agree. Finding 3 pairs of speed or elvenkind in a vault is over the top.)
Unfortunately there is now way to generate a distribution of ego items by level in the wizard files. I will do that next.

In 3.0, rarity is proportional to 1/p, so boots of speed, with rarity 24, are 3x more rare than boots of free action, with rarity 8. Really common ego items have rarity 1; nearly all such are shallow items like single resist armor.

In 4.0, boots of speed are rarity 3, while boots of free action are rarity 10. So it looks like rarity should actually just be an unnormalized probability. But the original code p = 100 / rarity still stands. What's the deal here?
I'm a bit confused with this too - ego items have a 'commonness', min&max depth set in the edit file on the 'alloc' line, but also rarity and depth on the 'info' line. As far as I can tell, both the ego item 'alloc' line depths and the 'info' line depths affect generation, just in different ways (confusing!) But the commonness specified on the 'alloc' line is unused; rarity on the 'info' line determines probability. This needs a bit of sorting out.
__________________
"Physician, heal thyself."
takkaria is offline   Reply With Quote
Old October 28, 2016, 21:09   #3
fizzix
Prophet
 
Join Date: Aug 2009
Location: Madison, Wisconsin, US
Posts: 2,925
fizzix is on a distinguished road
There is indeed probably some dead code here with regard to rarity and allocation. It's been a long time since I looked at this.

I had thought that stability and free action were also possible at deep depth, but maybe not, or perhaps that's been changed. Either way it's an easy switch to put them back in, then speed boots will drop proportionally by a lot.

One of the other changes to speed boots was that the bonus was given as an mvalue rather than a flat up 1d10 random value. This means speed boots on earlier levels will have on average a lower bonus than the ones on higher levels. This is another thing that can be tweaked. We can change the mbonus so that speed boots are still the most common drop at dlevel 90, but they average at about +5 rather than +7 to +8 as they do now.

Really though, what I would like more than anything is to change speed so it only affects move actions rather than all actions. The fact that speed boots are so powerful and completely outclass any other kind of boots is itself a problem.
fizzix is offline   Reply With Quote
Old October 28, 2016, 21:30   #4
Pete Mack
Prophet
 
Join Date: Apr 2007
Location: Seattle, WA
Posts: 4,022
Donated: $40
Pete Mack is on a distinguished road
OK, that makes sense, in a perverse kind of way. Then the root cause for excessive high-end egos like Boots of Speed is the max_level for weaker ego items
Let:
P(E) = the probability of a given ego type
P(T) = the probability of a given object class (Boots, armor, etc)
X = the probability that an object is promoted to excellent. Then for a given ego type,
P(E) = X * P(E|T) * P(E)
That is, the ego probability can be decomposed to the relative probabilities of different ego types within a given object class. Once the weaker items go out of scope, the odds for a particular ego type are renormalized within that class, NOT compared to all other ego types. So by the time you hit a vault (any vault) at level 91, essentially all ego boots will be generated at dept 101+, so all ego boots will be either speed or elvenkind. This is why ego boots are so ridiculously common in Vanilla now. Obviously the same holds for weapons, too, so for excellent items:
* All slings will be Buckland
* All crossbows will be Haradrim (No heavy crossbows at all)
* All bows will be Lothlorien
* All melee weapons will be one of the Big 3. (Gondolin is ideal for Mages in melee to save mana and ammo for major targets.)

I used to think a nice MoD Acid brand was a big find. Now those are essentially impossible, and I end up meleeing Morgoth with a big 3 +2 Attacks or HA almost every game.

The way to solve this, but still get rid of junk, is to make allocation probability proportional to the probability of the base probability for objects of that class multiplied by the chance for a particular ego type. That way, ALL boots will be rare by DL 90, but those that are ego will be very very good.

So all types will still have the same fraction ego, but boots will simply be rarer relative to other object types. The result is more consumables relative to objects as you get deeper, but those objects you do find will still have a high probability of being good.
Pete Mack is offline   Reply With Quote
Old October 28, 2016, 23:02   #5
fizzix
Prophet
 
Join Date: Aug 2009
Location: Madison, Wisconsin, US
Posts: 2,925
fizzix is on a distinguished road
Quote:
Originally Posted by Pete Mack View Post
The way to solve this, but still get rid of junk, is to make allocation probability proportional to the probability of the base probability for objects of that class multiplied by the chance for a particular ego type. That way, ALL boots will be rare by DL 90, but those that are ego will be very very good.
If I remember correctly, something like this was very hard to do giving the codebase at the time. But this is probably something we should look at again very soon.
fizzix is offline   Reply With Quote
Old October 29, 2016, 01:26   #6
Pete Mack
Prophet
 
Join Date: Apr 2007
Location: Seattle, WA
Posts: 4,022
Donated: $40
Pete Mack is on a distinguished road
Otherwise, the easy thing to do is just ignore max_level. That will dilute the good stuff. Just set ignore on the ego type and it goes away on walk-over. With rune based ID, the whole problem of too much junk is very much ameliorated.
Pete Mack is offline   Reply With Quote
Old October 31, 2016, 01:44   #7
fizzix
Prophet
 
Join Date: Aug 2009
Location: Madison, Wisconsin, US
Posts: 2,925
fizzix is on a distinguished road
Quote:
Originally Posted by Pete Mack View Post
Otherwise, the easy thing to do is just ignore max_level. That will dilute the good stuff. Just set ignore on the ego type and it goes away on walk-over. With rune based ID, the whole problem of too much junk is very much ameliorated.
Yeah, I think I agree with this. With rune-ID and squelch-by-rune, the ego distribution changes that I put in for 3.4 are obsolete.

I need to check to see if generating stats in the current version is still very slow. That has hampered my ability to do comparisons in the most recent versions.
fizzix is offline   Reply With Quote
Old October 31, 2016, 09:37   #8
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 52
Posts: 6,478
Donated: $60
Nick is on a distinguished road
Quote:
Originally Posted by fizzix View Post
I need to check to see if generating stats in the current version is still very slow. That has hampered my ability to do comparisons in the most recent versions.
If stats are still slow, we can look at optimising for stats runs - taking out visual stuff, for example.
__________________
One Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness bind them.
Nick 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
randarts distribution? Bogatyr Vanilla 2 December 5, 2014 10:31
Point-based stat distribution is too powerful jens Vanilla 67 June 28, 2011 16:14
[3.2.0] High Elf Mage point-based distribution dcztmband Vanilla 11 March 18, 2011 09:15
playtesting new item distribution - r2025 bebo Vanilla 74 August 20, 2010 02:54
Poll: Do you like Angband's new stat potion distribution? andrewdoull Vanilla 5 February 18, 2009 18:41


All times are GMT +1. The time now is 05:03.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, vBulletin Solutions, Inc.