Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > Angband > Vanilla

Reply
 
Thread Tools Display Modes
Old May 18, 2007, 21:51   #1
pav
Administrator
 
pav's Avatar
 
Join Date: Apr 2007
Location: Prague, Czech republic
Age: 42
Posts: 792
pav is on a distinguished road
Send a message via ICQ to pav
[V/NPP] Equipment optimizer - scoring rules

I spent last two evenings writing myself an equipment optimizing script. It goes basically like this:

- read up the character dump, parse powers from the item descriptions
- create all possible permutation of items worn, in backpack and in your home
- using user supplied scoring rules, score all permutations
- display the highest scoring permutation

It's written to understand NPP dumps, because that's the variant I happen to play lately, but this thread should be relevant to Vanilla too, as NPP is not that different to V when it comes to item features.

I need your help with scoring rules. Basically, how many points to award to various slays, brands and resists. I ignore weapon dice for now. I also decided to skip artifact activations, as there's many and I generally don't use them anyway.

At the moment I'm at this (there are some resists and slays missing, as I haven't encountered them yet in my current game):

Code:
	$scoring = array(
		"stats" => array("STR" => 10, "INT" => 5, "WIS" => 5, "DEX" => 3, "CON" => 5, "CHR" => 1),
		"slays" => array("orcs" => 10, "trolls" => 10, "evil" => 25, "undead" => 15, "animals" => 5, "giants" => 10, "dragons" => 20, "demons" => 15),
		"brands" => array("acid" => 40, "poison" => 50, "frost" => 35, "fire" => 30),
		"resists" => array("fire" => 25, "cold" => 25, "acid" => 30, "lightning" => 20, "disenchantment" => 20, "free action" => 100, "see invisible" => 50,
			"fear" => 10, "blindness" => 40, "poison" => 80, "confusion" => 42, "light" => 10, "dark" => 10, "nether" => 40, "nexus" => 35, "hold life" => 25,
			"shards" => 25),
		"sustains" => array("STR" => 2, "INT" => 1, "WIS" => 1, "DEX" => 1, "CON" => 2, "CHR" => 0),
		"blessed" => 1,
		"blows" => 10,
		"shooting power" => 15,
		"glowing" => 0,
		"damage" => 2,
		"speed" => 10,
		"telepathy" => 80,
		"tohit" => 1,
		"stealth" => 1,
		"searching" => 1,
		"slow digestion" => 2,
		"feather falling" => 3,
		);
I will need several profiles for different classes to score stats differently.

Now questions:

- which elemental brand is most worthwile?

- is speed really everything? I happen to be speed junkie. I'm awarding 10 score points per point of speed right now, which makes +10 speed match rbase.

- essential resists should be scored high (rbase, FA), because kit without them should be disqualified. What about the high resists like shards and nexus? Hard for me to decide on scoring for them.

- should I beef up damage? My +16 damage ring scores 32 now, which equals +6 in stats or +3 speed...

So, what would you change on these scoring rules?
__________________
See the elves and everything! http://angband.oook.cz
pav is offline   Reply With Quote
Old May 18, 2007, 22:09   #2
CJNyfalt
Swordsman
 
Join Date: May 2007
Posts: 289
CJNyfalt is on a distinguished road
- Well, I don't remember how glowing works in V & NPP, but it does add to light radius in some variants. If that is true I would give it at least +5.
- CHA, 0, nothing.
-Speed is fine.
- For brands, counting lines with contains IM_FIRE, IM_ELEC, ..., gives:
IM_ELEC - 98 lines
IM_POIS - 258 lines
IM_FIRE - 149 lines
IM_COLD - 177 lines
IM_ACID - 86 lines
So, for brands I would give poison - 10pts, fire & cold - 25-30pts, acid & lightning - 40-60pts
CJNyfalt is offline   Reply With Quote
Old May 18, 2007, 22:15   #3
pav
Administrator
 
pav's Avatar
 
Join Date: Apr 2007
Location: Prague, Czech republic
Age: 42
Posts: 792
pav is on a distinguished road
Send a message via ICQ to pav
Glowing adds +1 to light radius. Let's try +5 then.

I gave +1 to charisma just to promote adornment amulets over empty slot

As for brands, counting monsters which resist is an interesting approach, but I'd also like to include the damage multiplier. Wonder what these are in NPP... +10 for poison brand seems to shabby.
__________________
See the elves and everything! http://angband.oook.cz
pav is offline   Reply With Quote
Old May 18, 2007, 22:34   #4
pav
Administrator
 
pav's Avatar
 
Join Date: Apr 2007
Location: Prague, Czech republic
Age: 42
Posts: 792
pav is on a distinguished road
Send a message via ICQ to pav
Sample output:
Code:
33 items
27648 combinations considered
best score 1042 combo 0
best score 1064 combo 4
best score 1067 combo 84
best score 1070 combo 2308
Take off a Ring of Damage (+17)
Take off a Metal Cap of Telepathy [3,+8]
Wield a Ring of Resist Nether
Wield The Iron Helm 'Holhenneth' [5,+10] (+2)
+2 stats[WIS]
+2 stats[INT]
-17 damage
Losing telepathy
Gaining resists[nether]
+2 searching
__________________
See the elves and everything! http://angband.oook.cz
pav is offline   Reply With Quote
Old May 19, 2007, 00:22   #5
andrewdoull
Unangband maintainer
 
andrewdoull's Avatar
 
Join Date: Apr 2007
Location: Sydney, Australia
Age: 48
Posts: 872
andrewdoull is on a distinguished road
Quote:
Originally Posted by pav View Post
I spent last two evenings writing myself an equipment optimizing script. It goes basically like this:

- read up the character dump, parse powers from the item descriptions
- create all possible permutation of items worn, in backpack and in your home
- using user supplied scoring rules, score all permutations
- display the highest scoring permutation

It's written to understand NPP dumps, because that's the variant I happen to play lately, but this thread should be relevant to Vanilla too, as NPP is not that different to V when it comes to item features.

I need your help with scoring rules. Basically, how many points to award to various slays, brands and resists. I ignore weapon dice for now. I also decided to skip artifact activations, as there's many and I generally don't use them anyway.

At the moment I'm at this (there are some resists and slays missing, as I haven't encountered them yet in my current game):

Code:
    $scoring = array(
        "stats" => array("STR" => 10, "INT" => 5, "WIS" => 5, "DEX" => 3, "CON" => 5, "CHR" => 1),
        "slays" => array("orcs" => 10, "trolls" => 10, "evil" => 25, "undead" => 15, "animals" => 5, "giants" => 10, "dragons" => 20, "demons" => 15),
        "brands" => array("acid" => 40, "poison" => 50, "frost" => 35, "fire" => 30),
        "resists" => array("fire" => 25, "cold" => 25, "acid" => 30, "lightning" => 20, "disenchantment" => 20, "free action" => 100, "see invisible" => 50,
            "fear" => 10, "blindness" => 40, "poison" => 80, "confusion" => 42, "light" => 10, "dark" => 10, "nether" => 40, "nexus" => 35, "hold life" => 25,
            "shards" => 25),
        "sustains" => array("STR" => 2, "INT" => 1, "WIS" => 1, "DEX" => 1, "CON" => 2, "CHR" => 0),
        "blessed" => 1,
        "blows" => 10,
        "shooting power" => 15,
        "glowing" => 0,
        "damage" => 2,
        "speed" => 10,
        "telepathy" => 80,
        "tohit" => 1,
        "stealth" => 1,
        "searching" => 1,
        "slow digestion" => 2,
        "feather falling" => 3,
        );
I will need several profiles for different classes to score stats differently.

Now questions:

- which elemental brand is most worthwile?
I can add code to Angband relatively easily to compute the effectiveness of each slay in isolation. In Unangband, it generates the following table (note the actual values will be completely different for Angband or NPPAngband):

Spoiler File -- Relative Slay Power (0.6.2)

Note: 1000 power equals no benefit

Slay Power
------------------------------------- -----
Slay Nature 1922
Brand Holy 2251
Slay Undead 1288
Slay Demon 1107
Slay Orc 1076
Slay Troll 1043
Slay Giant 1108
Slay Dragon 1286
Execute Dragon 1572
Execute Demon 1215
Execute Undead 1576
Brand Poison 1725
Brand Acid 2284
Brand Elec 2170
Brand Fire 2481
Brand Cold 1825
Brand Lite 1327
Brand Dark 2535
Slay Man 1179
Slay Elf 1303
Slay Dwarf 1028

This is going to be used for the new artifact code and will just be a side effect of this code (but a useful one for game balancing purposes). So you'll be able to get a more concrete values when that goes in.

In the meantime you could patch the existing Chris Carr/Robertson randart.c into a version of Angband it was designed for in order to get the same table produced. You'll need to enable logging in the randart.c file.

Quote:
- is speed really everything? I happen to be speed junkie. I'm awarding 10 score points per point of speed right now, which makes +10 speed match rbase.

- essential resists should be scored high (rbase, FA), because kit without them should be disqualified. What about the high resists like shards and nexus? Hard for me to decide on scoring for them.

- should I beef up damage? My +16 damage ring scores 32 now, which equals +6 in stats or +3 speed...

So, what would you change on these scoring rules?
I would also recommend having a look at the Angband borg code, which basically implements the same thing.

Note the borg, not being a human player, undoubtedly uses different weightings, but it'll be a good guide.

Andrew
__________________
The Roflwtfzomgbbq Quylthulg summons L33t Paladins -more-
In UnAngband, the level dives you.
ASCII Dreams: http://roguelikedeveloper.blogspot.com
Unangband: http://unangband.blogspot.com
andrewdoull is offline   Reply With Quote
Old May 27, 2007, 03:51   #6
Chris Wesling
Rookie
 
Chris Wesling's Avatar
 
Join Date: Apr 2007
Location: California
Age: 61
Posts: 17
Chris Wesling is on a distinguished road
Quote:
Originally Posted by pav View Post
Sample output:
Code:
33 items
27648 combinations considered
best score 1042 combo 0
best score 1064 combo 4
best score 1067 combo 84
best score 1070 combo 2308
Take off a Ring of Damage (+17)
Take off a Metal Cap of Telepathy [3,+8]
Wield a Ring of Resist Nether
Wield The Iron Helm 'Holhenneth' [5,+10] (+2)
+2 stats[WIS]
+2 stats[INT]
-17 damage
Losing telepathy
Gaining resists[nether]
+2 searching
Personally, I wouldn't give up telepathy for nether resists unless I was running into a lot of nether breathers. You might want to give telepathy a boost.
Chris Wesling is offline   Reply With Quote
Old May 27, 2007, 13:17   #7
pav
Administrator
 
pav's Avatar
 
Join Date: Apr 2007
Location: Prague, Czech republic
Age: 42
Posts: 792
pav is on a distinguished road
Send a message via ICQ to pav
Quote:
Originally Posted by Chris Wesling View Post
Personally, I wouldn't give up telepathy for nether resists unless I was running into a lot of nether breathers. You might want to give telepathy a boost.
Neither would I. I zeroed the weight of telepathy just for the sake of taking the sample output.
__________________
See the elves and everything! http://angband.oook.cz
pav 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 06:41.


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