Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > Angband > Development

Reply
 
Thread Tools Display Modes
Old December 4, 2009, 05:41   #1
Derakon
Prophet
 
Derakon's Avatar
 
Join Date: Dec 2009
Posts: 8,450
Derakon is on a distinguished road
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.
Derakon is offline   Reply With Quote
Old December 4, 2009, 06:55   #2
PowerDiver
Prophet
 
Join Date: Mar 2008
Posts: 2,712
PowerDiver is on a distinguished road
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?
PowerDiver is offline   Reply With Quote
Old December 4, 2009, 15:32   #3
Derakon
Prophet
 
Derakon's Avatar
 
Join Date: Dec 2009
Posts: 8,450
Derakon is on a distinguished road
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.
Derakon is offline   Reply With Quote
Old December 4, 2009, 18:20   #4
PowerDiver
Prophet
 
Join Date: Mar 2008
Posts: 2,712
PowerDiver is on a distinguished road
Quote:
Originally Posted by Derakon View Post
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.
PowerDiver is offline   Reply With Quote
Old December 22, 2009, 05:27   #5
Derakon
Prophet
 
Derakon's Avatar
 
Join Date: Dec 2009
Posts: 8,450
Derakon is on a distinguished road
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.
Derakon is offline   Reply With Quote
Old December 22, 2009, 18:07   #6
PowerDiver
Prophet
 
Join Date: Mar 2008
Posts: 2,712
PowerDiver is on a distinguished road
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.
PowerDiver is offline   Reply With Quote
Old December 22, 2009, 18:34   #7
Marble Dice
Swordsman
 
Join Date: Jun 2008
Location: Columbia, MO. USA
Posts: 405
Marble Dice is on a distinguished road
Quote:
Originally Posted by PowerDiver View Post
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.
Marble Dice is offline   Reply With Quote
Old December 22, 2009, 19:48   #8
PowerDiver
Prophet
 
Join Date: Mar 2008
Posts: 2,712
PowerDiver is on a distinguished road
Quote:
Originally Posted by Marble Dice View Post
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.
PowerDiver 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


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


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