Tweaking identification

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Derakon
    Prophet
    • Dec 2009
    • 9022

    Tweaking identification

    I've never been a big fan of the identification part of roguelike games. As a matter of practice you're not going to equip gear unless you know it's safe, which means you end up identifying or pseudo-identifying all the gear you see up until you're willing to just outright destroy items in the search for artifacts.

    I've come up with this alteration to the base game that I personally think will make it a great deal more fun (by eliminating tedium) without making it significantly more difficult:

    * The to-hit, to-dam, and to-ac modifiers of all items are always known
    * The number of charges on wands and staves is always known
    * Whether an item is an artifact or an ego-item is always known
    * ego-type is known so long as you have identified at least one of that type of ego-item before (e.g. once you've seen one Westernesse, you can recognize others on sight). This reveals their pvals.

    Notably, I don't intend to touch flavored items at all (except for noting the number of charges in wands and staves).

    I haven't looked at the Angband source code in over a decade. I've managed to figure out how to automatically identify every item that gets generated (add "object_notice_everything(j_ptr);" to make_object() in obj-make.c), but the more nuanced changes I'd like to try are going to be trickier. In particular, I have the following questions:

    * Is there any straightforward way of recognizing "equipment" as distinct from other types of items, or am I stuck checking TV_HARD_ARMOR, TV_SOFT_ARMOR, TV_DRAG_ARMOR, TV_SHIELD, etc.?
    * Is there currently a listing of ego-types the player has seen before anywhere? If not, is there a guide somewhere to modifying the save file so that I could figure out how to add such a listing?
    * Is it possible/feasible to display equipment modifiers without displaying pvals, and vice versa? (IIRC the number of charges on a wand/staff is also its pval, right?)

    As for balance considerations, here's the major changes to gameplay that I predict from this:
    * As soon as you find an item, you can make a keep/sell/reject decision. You don't need to carry it around to pseudo-ID it; you don't need to stop to cast Identify; you don't have to try destroying it in the hopes that it's an artifact. This grants a significant increase to the speed of gameplay.
    * You're less likely to accidentally skip over a useful item because of inventory constraints; you can also examine vaults with detection to determine if they're worth your while without actually having to enter.
    * Early game dungeon dives can be longer, since you aren't carting around a bunch of might-be-good, probably-not-useful equipment items waiting for pseudo-ID to kick in. You're still limited by flavor items for the first few dives, though.
    * Because you don't have to spend as much money on identification scrolls, and because you can prune out the crap items from your inventory without heading to town to ID them, money is easier to come by in the early game.

    On the whole, I think that the decreased tedium is worth the slight easing of gameplay.
  • PowerDiver
    Prophet
    • Mar 2008
    • 2820

    #2
    to_hitt and to_dam are the flag IDENT_ATTACK
    to_ac is IDENT_DEFENCE [SE?]
    or those into ->ident

    currently charges are known if aware, not worth effort to fix that I think

    to know whether ego or artifact, you might need to rewrite or copy sense_inventory to work on a single item, but it might be as simple as adding IDENT_SENSE

    there is an everseen entry in the ego type, but I think that's for any game ever, not just the current game. You could reset that at birth for every entry in e_info

    what you call equipment might be the function obj_can_wear

    equip modifier outputs are ruled by IDENT stuff above


    You might be halfway there just changing the time to pseudo to happen every game turn for every class, but then you would still have to pick up the items. Do you want to be able to recognize an ego from across the dungeon?


    Have you played much 3.1?

    Comment

    • Derakon
      Prophet
      • Dec 2009
      • 9022

      #3
      Thanks for the info! That should be very helpful.

      Re: recognizing items across the dungeon: I think my ideal would be that you can recognize the item as soon as you walk over it. Recognizing on-pickup would just add tedium, but recognizing on-generation makes detection very powerful ("Hmm...looks like the only item of interest in this GCV is that RoS +14 three squares from the exit; guess I'll just skip the rest").

      I'm playing 3.1 right now with my auto-*ID*-everything cheat, and I'm really tearing up the dungeon (with a hobbit warrior, currently getting nicely out of his depth through aggressive diving). Not having to deal with ID at all really speeds up gameplay, and I think it should be added as an "official" cheat. But no, I hadn't played 3.1 at all up until yesterday.

      So it sounds like my approach should be to add the following to a function in identify.c, which gets called when the player changes their position
      Code:
      for object on floor:
          if object is equippable:
              reveal to-hit, to-dam, to-ac
          if object is known ego-item or flavored item:
              *ID* item
          if object is not completely known:
              pseudo-ID object
      And then just figure out how to wipe the "known ego-items" list on death.

      Comment

      • PowerDiver
        Prophet
        • Mar 2008
        • 2820

        #4
        Originally posted by Derakon
        But no, I hadn't played 3.1 at all up until yesterday.
        ...
        figure out how to wipe the "known ego-items" list on death.
        3.1 is much improved in these issues. It's about halfway to what you would like.

        You should wipe egos at birth, not at death, if for no other reason than the ability to import a non-modified savefile of a dead char.

        Comment

        • Derakon
          Prophet
          • Dec 2009
          • 9022

          #5
          Well, it appears that my desire to work in C is even less than I anticipated, so I haven't made it very far with this. However, The Wanderer on RGRA (scroll to near the bottom of the thread) added a refinement to the simple auto-*ID* hack to make it ignore artifacts (thus avoiding breaking Preserve mode). I definitely support this being added as a cheat option, and I think everyone should try playing it at least once just to see how they feel about it.

          Comment

          • PowerDiver
            Prophet
            • Mar 2008
            • 2820

            #6
            Maybe if you change things to id when you step on them.

            The current movement is in the direction opposite to your change. A very recent change is that you cannot see the 4d5 dice on Ringil until you test it or id it. It shows up as 2d5 until then.

            There was also a recent thread suggesting that even known ring flavors should be ambiguous at a distance. I hope the specifics [color level ambiguity] I read do not happen, but I mention it is a sign of sentiment opposed to what you are proposing.

            Comment

            • Marble Dice
              Swordsman
              • Jun 2008
              • 412

              #7
              Originally posted by PowerDiver
              The current movement is in the direction opposite to your change. A very recent change is that you cannot see the 4d5 dice on Ringil until you test it or id it. It shows up as 2d5 until then.
              Is the current direction opposed to something like Derakon's proposal? I thought Takarria's take on identification was that you should be able to figure out what the items are without excessive use of identify, and it seems like all the ID-by-use has moved Angband much closer to the kind of system which Derakon proposes. The hiding base dice change was more about consistency within the current implementation than anything else, or at least that was my read on it.

              Comment

              • PowerDiver
                Prophet
                • Mar 2008
                • 2820

                #8
                Originally posted by Marble Dice
                Is the current direction opposed to something like Derakon's proposal? I thought Takarria's take on identification was that you should be able to figure out what the items are without excessive use of identify, and it seems like all the ID-by-use has moved Angband much closer to the kind of system which Derakon proposes. The hiding base dice change was more about consistency within the current implementation than anything else, or at least that was my read on it.
                Derakon is proposing knowing everything about every object that is detected. No testing at all. Detect it, and you know it. It is the opposite of learning by use, because there is no learning at all.

                I've been pushing for a system where you can apply what you learn about one weapon to a similar other weapon, but that requires some learning.

                Comment

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