i7 / kerkerkruip

Kerkerkruip - the interactive fiction roguelike game
kerkerkruip.org
84 stars 13 forks source link

Balance monster difficulty #356

Closed mciul closed 6 years ago

mciul commented 9 years ago

I'm using my new fighttest command (https://github.com/i7/kerkerkruip/commit/66284b084f46db45e4325f91aaa2d6977424b0f2) to see how various monsters measure up to each other. I'll record the stats here and we can consider whether any changes should be made.

In 100 fights, Israfel was killed 47 times and Bodmall was killed 53 times.

In 100 fights, the giant tentacle was killed 100 times and the minotaur was killed 0 times.

In 100 fights, the hound was killed 94 times and the demon of rage was killed 6 times. In 100 fights, the hound was killed 29 times and the chain golem was killed 71 times. In 100 fights, the hound was killed 84 times and the jumping bomb was killed 16 times. In 100 fights, the hound was killed 6 times and the angel of compassion was killed 94 times. In 100 fights, the chain golem was killed 99 times and the demon of rage was killed 1 times. In 100 fights, the chain golem was killed 86 times and the jumping bomb was killed 14 times. In 100 fights, the chain golem was killed 16 times and the angel of compassion was killed 84 times. In 100 fights, the rusted chain golem was killed 75 times and the Reaper was killed 25 times. In 100 fights, the jumping bomb was killed 6 times and the demon of rage was killed 94 times.

Notes:

mciul commented 8 years ago

Here's the latest stats: I've made a lot of changes to the Angel of Mercy, and I've also made some AI changes: there is now a chance to win rule for radiance, everyone gets to skip the size bonus/penalty when parrying (there's a weapon size penalty instead), and the AI has been tweaked to adjust for that, although I didn't make any changes to the "best defence" checks.

Table of fight results:

A a m g j R d h C s L t y H B O I U M
swarm of daggers 62 16 52 55 56 41 47 20 34 0 0 0 1 0 0 11 2 0 0
blood ape 38 A 39 30 21 36 10 37 21 0 1 0 0 0 0 0 1 0 0 0
ravenous armadillo 84 61 a 62 14 11 10 48 20 0 0 80 0 0 0 0 19 0 0 0
Miranda 48 70 38 m 27 30 35 62 21 0 1 3 2 0 0 0 4 0 0 0
chain golem 45 79 86 73 g 74 37 66 43 14 0 2 3 23 0 0 36 7 1 0
jumping bomb 44 64 89 70 26 j 65 59 22 48 0 18 20 39 0 0 44 0 11 0
Reaper 59 90 90 65 63 35 R 67 34 1 2 6 7 0 0 0 19 0 3 0
demon of rage 53 63 52 38 34 41 33 d 31 0 0 2 1 1 0 0 0 0 0 0
hound 80 79 80 79 57 78 66 69 h 0 5 5 3 5 0 0 23 0 0 0
angel of compassion 66 100 100 100 86 52 99 100 100 C 55 31 98 20 4 49 99 7 20 0
mindslug 100 99 100 99 100 100 98 100 95 45 s 95 48 51 1 0 99 15 9 0
giant tentacle 100 100 20 97 98 82 94 98 95 69 5 L 56 86 0 0 77 5 1 0
minotaur 100 100 100 98 97 80 93 99 97 2 51 44 t 61 17 2 80 13 10 0
angel of mercy 99 100 100 100 77 61 100 99 95 80 49 14 39 y 15 51 97 4 5 0
healer of Aite 100 100 100 100 100 100 100 100 100 96 99 100 83 85 H 41 100 80 54 0
Bodmall 100 100 100 100 100 100 100 100 100 51 100 100 98 49 59 B 100 37 63 0
overmind 89 99 81 96 64 56 81 100 77 1 0 23 20 3 0 0 O 0 6 0
Israfel 98 100 100 100 93 100 100 100 100 93 84 95 86 96 20 63 100 I 33 0
Automatos 100 100 100 100 99 89 97 100 100 80 91 99 90 95 46 37 94 67 U 0
Malygris 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 M

Rankings:

monster performance weakest defeater losses to defeater strongest defeated wins to defeated
blood ape 12% blood ape mindslug 1
Miranda 17% blood ape 30 mindslug 1
demon of rage 18% blood ape 37 angel of mercy 1
swarm of daggers 20% blood ape 38 Israfel 2
ravenous armadillo 21% blood ape 39 giant tentacle 80
Reaper 28% blood ape 10 Automatos 3
chain golem 31% blood ape 21 Automatos 1
jumping bomb 32% blood ape 36 Automatos 11
hound 33% blood ape 21 mindslug 5
overmind 41% blood ape 1 Automatos 6
giant tentacle 57% Miranda 3 Automatos 1
minotaur 60% Miranda 2 healer of Aite 17
angel of mercy 62% demon of rage 1 healer of Aite 15
angel of compassion 62% swarm of daggers 34 healer of Aite 4
mindslug 66% blood ape 1 healer of Aite 1
Bodmall 81% minotaur 2 healer of Aite 59
Israfel 82% swarm of daggers 2 healer of Aite 20
Automatos 83% Reaper 3 healer of Aite 46
healer of Aite 86% minotaur 17 healer of Aite
Malygris 100% Malygris Malygris

Observations:

Despite all I've done to fix the Angel of Mercy, its overall ranking has actually gone down slightly. I tweaked it to perform better in against lower-level opponents, but surprisingly, its performance against groups has dropped significantly. I would have expected its new singing ability to help with that, but I'm guessing the AI is not being smart with groups.

Israfel has fallen in the rankings, although the Level 4 rankings are very close. The Fanatics of Aite did better than the others - perhaps because the Angel of Mercy did worse against them. Perhaps it can be attributed to the improvements we've made to swords. Come to think of it, the mindslug's group also has multiple swords.

I checked the Mindslug's overall performance and it did quite a bit better against all three angels. That suggests to me that the AI tweaks have improved performance against radiant opponents, and Fafhrd and Mouser are getting double benefit from that. The Fanatics of Aite also did better against the Angel of Mercy and Israfel, but slightly worse against the Angel of Compassion.

I think in response to this, I'll give Israfel back its full healing power. I'm going to tweak the Angel of Mercy's AI and if it per Any other suggestions?

mciul commented 8 years ago

I reduced the mindslug and the Fanatics, and brought Israfel right back where it was before I started tweaking. The Fanatics are still doing best out of the Level 4 monsters, and Automatos is very close with both, but let's play with it this way and see how it goes.

I've also adjusted the fight test scripts so I can build the table from multiple results files. The tables below are the combined results of 300 fights between every pairing of monsters, and hopefully they are more accurate as a result:

Table of fight results:

A a m g j R d h C s L t y H B O I U M
swarm of daggers 184 70 163 149 150 96 154 65 93 0 1 2 1 0 0 31 0 0 0
blood ape 116 A 116 93 78 107 37 105 59 0 4 0 0 1 0 0 8 0 0 0
ravenous armadillo 230 184 a 180 47 26 19 151 75 0 2 244 0 0 0 0 45 0 0 0
Miranda 137 207 120 m 68 100 97 187 81 0 7 7 4 1 0 0 20 0 0 0
chain golem 151 222 253 232 g 221 121 214 140 61 0 4 7 41 0 0 91 15 9 0
jumping bomb 150 193 274 200 79 j 180 188 73 129 0 55 65 156 0 0 116 5 24 0
Reaper 204 263 281 203 179 120 R 208 118 1 14 13 22 4 0 0 62 0 3 0
demon of rage 146 195 149 113 86 112 92 d 78 0 6 2 3 1 0 0 3 0 0 0
hound 235 241 225 219 160 227 182 222 h 0 20 13 14 5 0 0 62 0 1 0
angel of compassion 207 300 300 300 239 171 299 300 300 C 177 86 292 64 9 173 298 26 69 0
mindslug 300 295 298 293 300 300 285 294 280 121 s 258 122 144 0 1 296 32 21 0
giant tentacle 299 300 56 293 296 245 287 298 287 214 40 L 162 277 0 0 214 3 3 0
minotaur 298 300 300 296 293 235 278 297 286 8 177 138 t 182 62 3 260 26 26 0
angel of mercy 299 299 300 299 259 144 296 299 295 236 156 23 118 y 86 156 299 8 18 0
healer of Aite 300 300 300 300 300 300 300 300 300 291 300 300 238 214 H 97 300 232 112 0
Bodmall 300 300 300 300 300 300 300 300 300 127 299 300 297 143 203 B 300 113 194 0
overmind 269 292 255 280 209 184 238 297 238 2 3 86 40 1 0 0 O 0 9 0
Israfel 300 300 300 300 285 295 300 300 300 274 268 297 271 292 68 187 300 I 136 0
Automatos 300 300 300 300 291 276 297 300 299 231 278 297 274 282 188 106 291 164 U 0
Malygris 300 300 300 300 300 300 300 300 300 300 300 300 300 300 300 300 300 300 300 M

Rankings:

monster performance weakest defeater losses to defeater strongest defeated wins to defeated
blood ape 12% blood ape mindslug 4
demon of rage 17% blood ape 105 mindslug 6
Miranda 18% blood ape 93 mindslug 7
swarm of daggers 20% blood ape 116 angel of compassion 93
ravenous armadillo 21% blood ape 116 mindslug 2
Reaper 29% blood ape 37 Automatos 3
chain golem 31% blood ape 78 Automatos 9
hound 32% blood ape 59 Automatos 1
jumping bomb 33% blood ape 107 Automatos 24
overmind 42% blood ape 8 Automatos 9
giant tentacle 57% demon of rage 2 Automatos 3
minotaur 60% demon of rage 3 healer of Aite 62
angel of mercy 62% blood ape 1 healer of Aite 86
angel of compassion 63% swarm of daggers 93 healer of Aite 9
mindslug 63% blood ape 4 Automatos 21
Bodmall 82% minotaur 3 healer of Aite 203
Israfel 83% chain golem 15 healer of Aite 68
Automatos 83% Reaper 3 healer of Aite 188
healer of Aite 83% minotaur 62 healer of Aite
Malygris 100% Malygris Malygris
mciul commented 8 years ago

I just had an awesome game with the following monsters:

armadillo wisps of pain Angel of Compassion hound angel of mercy Fanatics of Aite

I killed the armadillo, and fought the hound in the Temple of Nomos, sacrificing after I used the scales ability. I went to the quartering room and tried random scrolls until I summoned a malignant chanter and got ghoulified. This was a great combination! I killed the Angel of Mercy, the angel of compassion and the wisps, sacrificed the power of compassion, and fought the fanatics.

It's been a while since I reworked the damage system, but the Tormentor of Aite can't hurt you at all if you're undead! (I wonder if we should add some AI so she unreadies the staff of pain if her enemy is undead) I managed to kill the healer and the defender with the malignant chanter's help (he died in the process), then sacrificed the power of Mercy before killing the tormentor.

I went to fight Malygris. I didn't have any teleportation controllers, but I had the rod of the master builder, so I narrowed the path to the quartering room. I softened him up with grenades from the Laboratory then went downstairs to fight him. As soon as he teleported away, I headed over there so I could have the rotting corpse's help when the assassin showed up. I took a couple of hits but survived, then went to find Malygris again. Here's my favorite part: I used the gauntlet of attraction to steal the dagger of draining!

Malygris didn't survive long enough after that to really get to use it, but it was so satisfying.

The game may be slightly easy now, but I might also just be playing smarter. How does everyone else feel about it?

Notes on the Angel of Mercy: The angel sang a lot in this game, which was a bit frustrating - the main effect was to prolong the fight. I have tweaked the AI slightly so it will hopefully parry more instead. The Angel of Mercy is a bit like the jumping bomb in that it won't hurt you for a while, but when it does it can crush you pretty hard. In this game, the Angel mostly attacked the malignant chanter and didn't hurt me.

VictorGijsbers commented 6 years ago

That sounds like an awesome game. :-) I love the table of fighting scores. It's looking pretty good too, with all level 4 creatures around 82% (except the overmind, but that's fine); all level 3 creatures around 60%, all level 2 creatures around 30% and all level 1 creatures around 20%. One exception: the blood ape. I think I'll tweak it a bit so that his combat power increases a little more as he grows in size.