Angband Forums Ego distribution in V
 Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

 October 28, 2016, 19:00 #1 Pete Mack Prophet   Join Date: Apr 2007 Location: Seattle, WA Posts: 4,778 Donated: \$40 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.
October 28, 2016, 20:57   #2
takkaria
Veteran

Join Date: Apr 2007
Posts: 1,850
Donated: \$40
Quote:
 Originally Posted by Pete Mack 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."

 October 28, 2016, 21:09 #3 fizzix Prophet   Join Date: Aug 2009 Location: Madison, Wisconsin, US Posts: 2,999 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.
 October 28, 2016, 21:30 #4 Pete Mack Prophet   Join Date: Apr 2007 Location: Seattle, WA Posts: 4,778 Donated: \$40 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.
October 28, 2016, 23:02   #5
fizzix
Prophet

Join Date: Aug 2009
Posts: 2,999
Quote:
 Originally Posted by Pete Mack 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.

 October 29, 2016, 01:26 #6 Pete Mack Prophet   Join Date: Apr 2007 Location: Seattle, WA Posts: 4,778 Donated: \$40 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.
October 31, 2016, 01:44   #7
fizzix
Prophet

Join Date: Aug 2009
Posts: 2,999
Quote:
 Originally Posted by Pete Mack 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.

October 31, 2016, 09:37   #8
Nick
Vanilla maintainer

Join Date: Apr 2007
Location: Canberra, Australia
Age: 53
Posts: 7,113
Donated: \$60
Quote:
 Originally Posted by fizzix 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 for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.

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

 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 Rules
 Forum Jump User Control Panel Private Messages Subscriptions Who's Online Search Forums Forums Home Angband     AAR     Vanilla     Development     ToME     Sil     Variants     Competition The real world     Idle chatter     Oook! Obsolete     v4

 Similar Threads Thread Thread Starter Forum Replies Last Post Bogatyr Vanilla 2 December 5, 2014 10:31 jens Vanilla 67 June 28, 2011 16:14 dcztmband Vanilla 11 March 18, 2011 09:15 bebo Vanilla 74 August 20, 2010 02:54 andrewdoull Vanilla 5 February 18, 2009 18:41

All times are GMT +1. The time now is 06:16.