Squelch, TMJ, and item drops

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • fizzix
    Prophet
    • Aug 2009
    • 3025

    Squelch, TMJ, and item drops

    I think there are many people who think the game is currently too generous with generation of ego items (and artifacts). In fact one of the ways to make the game harder is to reduce the frequency that these things show up. However, if you make egos less common, then you make more junk that the player has to sift through, which is annoying from a gameplay perspective. I think lots of us here have ideas for what the ideal way to go forward on this, and I'll share mine.

    For squelch settings, I want to add more granularity. We may move to a rune-based system or a squelch-by-power system, but in the meantime, maybe a more limited but easily implementable approach could work. Here's an outline of the different settings:

    bad, average, good: (same as current, excepting DSMs, see below)

    very good: with 1 resist: (for single resist armors)

    *very good*: Items with more than one resist: (armors of resistance)

    Excellent: with one high resist or ability: (probably robes of permanence here, DSMs go here because of the breath abilities, unfortunately would get put here, boots of stability)

    *Excellent*: with more than one high resist or ability: (High level DSMs are here, shields of preservation, crowns of serenity, helms of seeing?)

    Splendid: (these are all the *slays* that don't have a random ability, also branded and blessed weapons, armor that only affects a single stat goes here, including boots/cloaks of stealth, helms of INT, WIS.)

    *Splendid items*: (slay evil, gondolin, westernesse, holy avenger, dwarven and elvenkind armors, anything with +speed, +blows, +shots or +might)

    Obviously we have to take care of some other tricky items. Helms of beauty get removed from the game altogether, because I hate them.

    ------------------------------
    On its own these additional squelch settings help a *little* but not enough. You still need to physically ID a weapon or armor in order to determine it, so we need to improve here. Basically, what I would like is a squelch on sight for all classes at a certain clevel. This can be dependent on class/race, I don't care. But the average clevel that you get this ability should be around clevel 25. When you get this ability you can squelch everything immediately. This gets rid of TMJ and eliminates the ID minigame which is painful the first time you clear out a dragon pit or a greater vault.

    --------------------------------
    The next thing that needs to be done is to change the item drops. DROP_GOOD gets removed from most of the high level monsters. There are only 2 monsters greater than dlevel 60 that drop items but don't have DROP_GOOD (the dreadlord and the jabberwock). I would limit DROP_GOOD to GWoMC, GWoB, Pit Fiend, Black Reaver, GMM, Archlich and uniques. Every other monster would be stripped of DROP_GOOD.

    The next thing is to change how the game decides good and great objects. This is a recent change (3.1 I think?) and looks like,

    Code:
    /* Chance of being `good` and `great` */
    	int good_chance = (lev + 2) * 3;
    	int great_chance = MIN(lev / 4 + lev, 50);
    These are the percentage that an item is good or great. Basically at dlevel 10, 1/3 of the items you'll find are 'good'; and from dlevel 40 onwards, 1/2 of all items you find are great. If the item passes this roll, it gets an automated artifact roll.

    Now there's one other piece hidden in the code which allows a shortcut of these rolls.

    Code:
    /* Try to make a special artifact */
    	if (one_in_(good ? 10 : 1000)) {
    		if (make_artifact_special(j_ptr, lev)) {
    			if (value) *value = object_value_real(j_ptr, 1, FALSE, TRUE);
    			return TRUE;
    		}
    
    		/* If we failed to make an artifact, the player gets a great item */
    		good = great = TRUE;
    	}
    Basically a good item has a 10% chance of getting an artifact special roll. If the roll succeeds and the artifact generation fails, the item is forced great. Forced great items get 4 normal artifact rolls! In some sense, this is good because it makes DROP_GREAT monsters 4 times more likely to drop artifacts. DROP_GREAT items are only found in specific vault squares and are very special uniques. That is good, we want artifacts to be created in these situations.

    What I propose is to:
    1) good items that pass the special_artifact roll remain good, and do not turn into great items.

    2) the curve for good and great items is made much more flat. The current great curve should be the good curve and the actual great curve should max out lower. This needs some tweaking.

    These changes would be bad if we don't add squelch by sight and improved granularity.
  • Derakon
    Prophet
    • Dec 2009
    • 9022

    #2
    A few thoughts:

    * I've always found Vanilla's category-based squelch to be unintuitive and to require too much knowledge of what items can potentially be generated. IMO we should move away from that system to an ego- and item-type-based squelch (e.g. "Always squelch all good Tulwars; always squelch all good pointy weapons; always squelch all good melee weapons"). The categories in this system would be average, good, cursed, artifact, and then a separate category for every single ego combination. Those categories are then crossed with the eligible item categories (specific itemtype, item group, item supergroup (i.e. equipment slot)). This requires a few more settings on the part of the user, but also gives the user significantly more control over what gets squelched.

    * Rune-based ID, coupled with a per-ego and per-itemtype squelch, will deal with TMJ, and without requiring automatically IDing items at some artificial breakpoint. If you want a patch job to tide us along until rune-based ID is tested, I'd still put auto-ID later on the game for most classes; clvl 30 at the very earliest.

    * I'd like to switch all artifacts over to using the special artifact generation system, but that requires changing enough parts of the code that I'm not confident in my ability to make that change. Enough people have expressed interest in this idea that I'm reasonably confident someone with the required domain knowledge can do it, though. Or I'll man up and figure it out, eventually.

    * Any time you reduce the total number of items dropped, you'll probably end up hurting someone's edge case. When the initial item drop reduction went in, for example, warriors suddenly had a much harder time finding rods of Trap Location (which used to be findable by 600' at the latest). Fortunately, rune-based ID combined with granular squelch means that more items can be generated without creating lots of tedium.

    Comment

    • UglySquirrell
      Swordsman
      • Jul 2011
      • 293

      #3
      Maybe putting an area effect identify, would help speed up sifting through junk.

      Comment

      • Magnate
        Angband Devteam member
        • May 2007
        • 5110

        #4
        Originally posted by Derakon
        A few thoughts:

        * I've always found Vanilla's category-based squelch to be unintuitive and to require too much knowledge of what items can potentially be generated. IMO we should move away from that system to an ego- and item-type-based squelch (e.g. "Always squelch all good Tulwars; always squelch all good pointy weapons; always squelch all good melee weapons"). The categories in this system would be average, good, cursed, artifact, and then a separate category for every single ego combination. Those categories are then crossed with the eligible item categories (specific itemtype, item group, item supergroup (i.e. equipment slot)). This requires a few more settings on the part of the user, but also gives the user significantly more control over what gets squelched.

        * Rune-based ID, coupled with a per-ego and per-itemtype squelch, will deal with TMJ, and without requiring automatically IDing items at some artificial breakpoint. If you want a patch job to tide us along until rune-based ID is tested, I'd still put auto-ID later on the game for most classes; clvl 30 at the very earliest.

        * I'd like to switch all artifacts over to using the special artifact generation system, but that requires changing enough parts of the code that I'm not confident in my ability to make that change. Enough people have expressed interest in this idea that I'm reasonably confident someone with the required domain knowledge can do it, though. Or I'll man up and figure it out, eventually.

        * Any time you reduce the total number of items dropped, you'll probably end up hurting someone's edge case. When the initial item drop reduction went in, for example, warriors suddenly had a much harder time finding rods of Trap Location (which used to be findable by 600' at the latest). Fortunately, rune-based ID combined with granular squelch means that more items can be generated without creating lots of tedium.
        I think I'd actually support generating fewer items, but I'm not sure that fizzix was actually suggesting that. I'd rather reduce the overall numbers and then fix the edge cases.

        I am going to move artifacts to "special" generation btw - as soon as 3.3 is out. So don't worry about that. It's a prereq for all this item drop rebalancing.

        Personally I want programmable squelch: where I can specify exactly what attributes I do or don't want to see on any item. So for small metal shields I want to squelch them unless they have >= +3 CON, but for tulwars I want to squelch them if they lack a slay of x3 or better. For example. I don't have the skill to code the UI for this, though I could do the squelching logic by checking against a desired_squelch data structure. My basic point is that ego templates are not canon: they won't be the only way that items get generated with more than plusses, so basing a new squelch system on them is a bad idea.

        @fizzix: congrats for exposing why there have been so many ego items!! Really good forensic work, and a good case for change. It's obvious when you look at it like that!
        "Been away so long I hardly knew the place, gee it's good to be back home" - The Beatles

        Comment

        • fizzix
          Prophet
          • Aug 2009
          • 3025

          #5
          Originally posted by Magnate
          I think I'd actually support generating fewer items, but I'm not sure that fizzix was actually suggesting that. I'd rather reduce the overall numbers and then fix the edge cases.
          No, I'd want more items generated over all not less. While there is some difficulty in no finding -detection or Telepathy before dlevel 65 as a warrior, (as in my current game). I'm not sure this is quite the type of difficulty we are going for. This type of game usually turns into a "death by Azriel" for me. Maybe that's better than a "don't die at all" game that I've been getting used to. Not sure.

          (I certainly think telepathy should be a late game find, but -detection is hard to live without for warriors.)

          Comment

          • Nomad
            Knight
            • Sep 2010
            • 958

            #6
            Originally posted by Magnate
            Personally I want programmable squelch: where I can specify exactly what attributes I do or don't want to see on any item. So for small metal shields I want to squelch them unless they have >= +3 CON, but for tulwars I want to squelch them if they lack a slay of x3 or better. For example. I don't have the skill to code the UI for this, though I could do the squelching logic by checking against a desired_squelch data structure. My basic point is that ego templates are not canon: they won't be the only way that items get generated with more than plusses, so basing a new squelch system on them is a bad idea.
            I'm not sure how viable this is, but how about if you could, by using the k command, mark an item and all weaker varieties of that item for auto-squelching? So for instance, if you use k on a ring of strength +3, all rings of strength +1, +2, +3 will be squelched as soon as you find them, but if you find a +4 it won't. The same with weapons and armour; use k on a shield of resist fire, automatically squelch all shields of resist fire with the same or lower AC.

            I do think, if you're going to introduce that much granularity, it has to be possible to mark categories of stuff for squelching with one or two key presses in-game, because doing it with a menu interface would be nightmarish. (Although it would still need to be possible to clear/alter squelch options from the knowledge menu in case you want to un-squelch a category later.) Maybe there could be options when you press k and select an item, like 't'=just squelch this one, '!'=squelch all of this type with the same or lower pvals, '*'=squelch all items of this type regardless of pvals.

            Comment

            • Derakon
              Prophet
              • Dec 2009
              • 9022

              #7
              Originally posted by Magnate
              My basic point is that ego templates are not canon: they won't be the only way that items get generated with more than plusses, so basing a new squelch system on them is a bad idea.
              I'd like to hear more details about what this implies. Are you saying that the current ego-item system is heading out the door?

              ToME 2 has a very powerful and largely impossible-to-use squelch system. Making a system that's both powerful and easy to use will be difficult without referencing the specific characteristics of a given item, and if we can't use the ego templates for that, then the UI gets a lot more complicated...
              Squelch items based on what stat? (1: STR, 2: INT, 3: WIS, 4: CON, 5: DEX, 6: CHA)
              > 4
              Squelch items having a value less than or equal to:
              > 3
              Squelch items that go in which equipment slot? (...Shields: 6...)
              > 6
              I'm happy to use a system that automatically generates a set of possible squelching categories based on a specific item, even if that forgoes some power.

              Comment

              • fizzix
                Prophet
                • Aug 2009
                • 3025

                #8
                Originally posted by Derakon
                I'm happy to use a system that automatically generates a set of possible squelching categories based on a specific item, even if that forgoes some power.
                I think we're going to run into problems with a fully comprehensive squelch system. I'm not sure a user interface system exists that is both comprehensive and not cumbersome. However, I do think it's possible to eliminate most of the problems with the current squelch system by extending the category granularity slightly and making it so that objects that you might want at the endgame are at the highest valuability, and items that you wish to ignore are not.

                The current system rates dwarven shields higher than preservation shields which is rubbish. It also rates branded and *slay* weapons just as high as HA and gondolin weapons which is also rubbish. Of course the worst offender is that helms of beauty are higher rated than helms of serenity.

                Comment

                • ChodTheWacko
                  Adept
                  • Jul 2007
                  • 155

                  #9
                  Originally posted by fizzix
                  I think we're going to run into problems with a fully comprehensive squelch system. I'm not sure a user interface system exists that is both comprehensive and not cumbersome.


                  I would oh-so-love the ability to squelch only 'resist cold' items after I find an item of elvenkind. Also the current good/excellent item squelching must be totally confusing for newbies. Hell, it confuses me sometimes.


                  The idea of having a menu option which brings up a giant 2x2 grid of items vs ego-types would be horrifying. Even more insane would be a 2x2 grid with blanks so you could enter specific pval values per item/ego combination. That's nuts.

                  But, imho, if we take advantage of the unsquelch command, it's rather elegant.
                  If you squelch boots of resist cold, pop up:
                  a) squelch this object
                  b) squelch only boots of resist cold
                  c) squelch all items of resist cold

                  And if, further down the line, you ID some boots, and they are boots of resist cold (squelched), and you realize, 'gee, I need those now'. Then you do an unsquelch and you get the mirror menu options:
                  a) unsquelch this object
                  b) unsquelch only boots of resist cold
                  c) unsquelch all items of resist cold

                  And you are good to go.

                  For items with pvals you could also have option d:
                  d) (un)squelch rings of strength (+3 or less)


                  Because armor/weapons don't get squelched until you ID them, I think this is quite doable.
                  This wouldn't work for items that only get IDed once (potions/scrolls) since you never get informed that the item would have been there if you had squelch off. The current squelch menus must remain for those items.

                  Where it gets a bit messier is for stuff that has multiple egos, like both resist cold and resist fire. The option list will be pretty long for the first item or two, but I don't think it would really be that bad.

                  - Frank

                  Comment

                  • fizzix
                    Prophet
                    • Aug 2009
                    • 3025

                    #10
                    Originally posted by ChodTheWacko
                    Where it gets a bit messier is for stuff that has multiple egos, like both resist cold and resist fire. The option list will be pretty long for the first item or two, but I don't think it would really be that bad.
                    Actually, I think it would be that bad. It's possible that I'd want a crown of magi with Telep, but not one with feather falling. This isn't a rare case, this is a common one. How do you deal with that?

                    Comment

                    • Magnate
                      Angband Devteam member
                      • May 2007
                      • 5110

                      #11
                      Originally posted by Derakon
                      I'd like to hear more details about what this implies. Are you saying that the current ego-item system is heading out the door?
                      Well, first I'll say clearly that there's been no design decision on this - it's not something that takkaria has given a firm view on, and it's not even something I've discussed at any length with other devteam members. But my personal view is that the current framework of ego templates is quite limited in its ability to fill the gap between merely {good} items and artifacts. Sure, we can have as many templates as we like, and we can do more with them than we used to, but it's clumsy: if you want boots of stealth to drop less often than cloaks of stealth, you need to use two templates. So all the DSM egos now use their own templates, even though almost all of them are duplicates of other armour templates - because otherwise the relative rarities get all messed up. Also, you can only specify one degree of randomness: one random sustain, one random high resist OR one random "other ability".

                      So I would like to overhaul ego item generation completely, which probably means ultimately getting rid of the templates in their current form (but retaining some sort of theme system so we don't just get a random mish-mash of abilities). But this is quite a long way off - after the next generation of randarts (which incidentally will introduce themes and tone down the current random mish-mash ...).

                      Anyway, got to go and get a train, but rest assured I will post lots of stuff here asking for feedback before making any changes to egos.
                      "Been away so long I hardly knew the place, gee it's good to be back home" - The Beatles

                      Comment

                      • ChodTheWacko
                        Adept
                        • Jul 2007
                        • 155

                        #12
                        Originally posted by fizzix
                        Actually, I think it would be that bad. It's possible that I'd want a crown of magi with Telep, but not one with feather falling. This isn't a rare case, this is a common one. How do you deal with that?
                        In my ideal world, I want items squelched which do not contain anything that i consider useful, so I want an 'and' scenario, not a 'or'.

                        In your example, assume you squelch 'crown of magi (feather falling)'
                        and you mark both 'squelch: crown of magi' and 'squelch: feather falling'
                        If you later find 'crown of magi (telepathy)', the squelch code should scan the object and say: 'it has telepathy which is not squelchable' and not squelch the object.

                        If we do allow squelching of '<object+attribute>' combinations, it would also be nice if any specific item you equip is automatically marked 'unsquelchable'. The logic being once I find gloves of free action, I really don't care about any other gloves of free action anymore. But If I swap gloves, I don't want my existing gloves to be automatically dropped and vanish.

                        But I guess again, the question is 'Do you really get enough of a particular <ego>/<ego+specific object>/<ego+object+pval> that you want a squelch setting specific to that?

                        - Frank

                        Comment

                        • PowerDiver
                          Prophet
                          • Mar 2008
                          • 2820

                          #13
                          Originally posted by ChodTheWacko
                          If we do allow squelching of '<object+attribute>' combinations, it would also be nice if any specific item you equip is automatically marked 'unsquelchable'. The logic being once I find gloves of free action, I really don't care about any other gloves of free action anymore. But If I swap gloves, I don't want my existing gloves to be automatically dropped and vanish.
                          That would be horrible for squelching via wield-test.

                          If you don't want your existing gloves to be squelched, just inscribe them with "!k".

                          Comment

                          • fizzix
                            Prophet
                            • Aug 2009
                            • 3025

                            #14
                            Originally posted by PowerDiver
                            That would be horrible for squelching via wield-test.

                            If you don't want your existing gloves to be squelched, just inscribe them with "!k".
                            we really need to make that obvious to new people...it's really not clear at all.

                            Comment

                            • ChodTheWacko
                              Adept
                              • Jul 2007
                              • 155

                              #15
                              Originally posted by fizzix
                              we really need to make that obvious to new people...it's really not clear at all.
                              Thanks, Powerdiver, and good point.

                              I would never have guessed that !k blocked the auto squelcher.
                              I assumed all the ! stuff was to block user commands.

                              - Frank

                              Comment

                              Working...
                              😀
                              😂
                              🥰
                              😘
                              🤢
                              😎
                              😞
                              😡
                              👍
                              👎