Better DD


Although the central place for design discussion is ##crawl-dev on freenode, some may find it helpful to discuss requests and suggestions here first.

bel

Cocytus Succeeder

Posts: 2184

Joined: Tuesday, 3rd February 2015, 22:05

Post Monday, 24th June 2019, 21:53

Better DD

[For an older thread discussing similar issues, and an older implementation as well, see this.]

DD has been a problematic (read: broken) species for a long time. The problems are well-known, but just to recapitulate, and to set the stage for the solution:

Problems:
  • God healing, vampiric draining and vamp weapons exist, so "no healing" is limited in practice.
  • The heal wounds cost (permanent MP loss) isn't really meaningful in practice because of the above factor, and the ability is too strong in general (especially in the early game, where you literally cannot die.)
  • Scummy and silly behaviour is encouraged: like leaving bags of HP alive, or using vampiric draining on popcorn instead of killing them with your executioner's axe.

Solution:
So, what's the solution? Well, here's mine. You can find it here, if you want to play around with it. Beware: I have done minimal testing.

  • You get a "heal on kills" mutation. Healing bonus on kills is same as what Makhleb provides.
  • Healing bonus gained over your max HP is stored in an "overflow". If your overflow reaches 30 HP, you get an ambrosia potion and your overflow is reduced by 30.
  • Ambrosia potion heals you like it normally does.
  • No healing from any other source. This includes:

    • You can quaff heal wounds and curing, but they will not heal you. They will still have the other effects, like curing rot.
    • No god healing: Ely Greater and Lesser Healing, Ru Draw Out Power, Trog's Hand, Yred's Drain Life, Makh and TSO's heal on kills. Gozag potion petition can grant heal wounds and curing, but as discussed above, they will not heal you.
    • No healing from vampiric draining.
    • No healing from vamp weapons.

    I've not handled Jiyva yet. Or Nemelex Elixir card. If I missed anything else, let me know.

We can now discuss the solution.

Why use heal on kills?
Clean, simple mechanism. Very common, since most DD worship Makhleb anyway.

As to why not use an exploration based system (which I used in my previous implementation), the main reason is that I no longer think that exploration-based piety makes sense. See this thread for my thoughts.

Other (smaller) reasons include problems with balancing the drop rate in the previous version: I found that the "healing buffer" wasn't smooth because branch ends are typically much tougher than the floors which come above them.

Why use a buffer in the form of ambrosia potions?
Crawl combat is very swingy and unpredictable, so a "no regen" species needs some sort of buffer to make it playable.

This particular implementation discourages "banking" easier monsters. You get the same healing no matter when you kill a monster. Ambrosia potions, on average, provide about 30 HP. So, I generate a potion at 30 HP overflow.

Why use ambrosia instead of heal wounds?
To discourage healing in combat.

Minor things and possible tweaks:

There are some quality of life improvements from the previous implementation. Only the "overflow" is stored as ambrosia potions, not the entire healing amount. Thus, button mashing to heal is reduced. Of course, simply granting heal-on-kills is strictly a buff to earlier implementation, but can easily be balanced by nerfing DD in some other way.

Healing functions can, of course, be tweaked if they are too generous or non-smooth or whatever. It's also possible to generate DD with a few ambrosia potions in case they find the early game too tough without healing.

Comments are welcome.
Last edited by bel on Monday, 24th June 2019, 22:27, edited 1 time in total.

For this message the author bel has received thanks: 2
Airwolf, Nekoatl

Swamp Slogger

Posts: 139

Joined: Saturday, 10th January 2015, 22:27

Post Monday, 24th June 2019, 22:17

Re: Better DD

I like the idea. Despite the sense that DD is one of - if not the - strongest races to play, I really don't enjoy playing them in their current design. Right now, they have an easy early game with the damage shaving and healing, and then go all-in on the existing healing mechanisms (Makhleb, vampiric draining, etc.) to cancel out the species' main disadvantage.

This would actually allow the species to play the game straight through (no stashing), with a range of gods and spells and weapons. It might take a little balancing, though.

That said, it almost feels like it'd be simpler to just add a "No healing when monsters are around" mechanism that lasted for a while after the monsters were gone, since that seems like your intended use of the accumulated ambrosia potions.

bel

Cocytus Succeeder

Posts: 2184

Joined: Tuesday, 3rd February 2015, 22:05

Post Monday, 24th June 2019, 22:30

Re: Better DD

Aean wrote:That said, it almost feels like it'd be simpler to just add a "No healing when monsters are around" mechanism that lasted for a while after the monsters were gone, since that seems like your intended use of the accumulated ambrosia potions.

It would be somewhat similar, but not really. Ambrosia potions are limited. Unlimited regeneration is, well, unlimited.

Zot Zealot

Posts: 1004

Joined: Thursday, 16th August 2018, 21:19

Post Monday, 24th June 2019, 23:33

Re: Better DD

I like the idea to make DD more streamlined, and allow them more variety of gods.

How would you prevent the situation where these Ambrosia potions become like food, where for some playstyles they never run out? Or would that not be a problem if it happened?

Ziggurat Zagger

Posts: 8786

Joined: Sunday, 5th May 2013, 08:25

Post Tuesday, 25th June 2019, 02:58

Re: Better DD

this proposal is better than current DD but it's also like, just an HP version of pakellas, and i'm not sure that's gonna work well either

bel

Cocytus Succeeder

Posts: 2184

Joined: Tuesday, 3rd February 2015, 22:05

Post Tuesday, 25th June 2019, 08:09

Re: Better DD

It's definitely possible (I noticed a lot of old Pakellas code in the same places I inserted my DD code). However, the problem with Pakellas, as I understood it, was that evocations are hard to balance; and you don't really want "conjurers who just use evocations" to be a thing.

This species has less interactions with the other mechanics of the game, so it will be easier to balance. As long as the main idea of "HP is a strategic resource also instead of just a tactical resource" is maintained.

Abyss Ambulator

Posts: 1131

Joined: Tuesday, 4th January 2011, 15:03

Post Tuesday, 25th June 2019, 08:47

Re: Better DD

bel wrote:As long as the main idea of "HP is a strategic resource also instead of just a tactical resource" is maintained.


I guess you know but this exactly is the assumption that simply does not work in DCSS, which is full of non-threatening monsters. If HP is a strategic resource, then there is a strong incentive to not use it against weak monsters. Who enjoys kiting entire yak packs killing them with some ranged option so that they do no damage.

Current DD only bearable because it is overpowered. The main problem with HP as a strategic resource is that this will remain so: either unbearable to play or overpowered, no middle ground.

For this message the author sanka has received thanks: 3
duvessa, Nekoatl, VeryAngryFelid

bel

Cocytus Succeeder

Posts: 2184

Joined: Tuesday, 3rd February 2015, 22:05

Post Tuesday, 25th June 2019, 08:56

Re: Better DD

That's what the damage-shaving part is supposed to mitigate.

Anyway, I am not going here into whether DD should exist or not, or whether ranged weapons should exist or not. Those are separate discussions. As I say in the title, I'm aiming for a "better DD". Whether "better DD" is still too bad, I don't know.
User avatar

Slime Squisher

Posts: 405

Joined: Sunday, 27th January 2019, 13:50

Post Tuesday, 25th June 2019, 18:42

Re: Better DD

bel wrote:That's what the damage-shaving part is supposed to mitigate.

Anyway, I am not going here into whether DD should exist or not, or whether ranged weapons should exist or not. Those are separate discussions. As I say in the title, I'm aiming for a "better DD". Whether "better DD" is still too bad, I don't know.


In this thread there were plenty of interesting ideas thrown about. Not sure if your proposed changes were made with it as inspiration or independently, and it doesn't really matter at this point. I do like the mechanics of HP getting regained without consumables or divine help, so that's a step in the right direction from my (limited) perspective.
So yes, your proposed DD may well be better than the existing species imo.
There is always something new to learn.

bel

Cocytus Succeeder

Posts: 2184

Joined: Tuesday, 3rd February 2015, 22:05

Post Tuesday, 25th June 2019, 23:42

Re: Better DD

I'm aware of that thread, but that thread proposes unlimited regeneration for DD. That is not what I have in mind. There are some other suggestions further down which come close to what I'm proposing here.

My solution isn't really "inspired" by that thread though. It's much older, and is based on an idea by Siegurt many years ago (the thread is linked at the top). Siegurt also proposed a similar solution in the thread you linked.

Ziggurat Zagger

Posts: 6454

Joined: Tuesday, 30th October 2012, 19:06

Post Tuesday, 25th June 2019, 23:45

Re: Better DD

bel wrote:I'm aware of that thread, but that thread proposes unlimited regeneration for DD. That is not what I have in mind. There are some other suggestions further down which come close to what I'm proposing here.

My solution isn't really "inspired" by that thread though. It's much older, and is based on an idea by Siegurt many years ago (the thread is linked at the top). Siegurt also proposed a similar solution in the thread you linked.

Yes, I remember proposing ambrosia as a logical non-tactical healing resource to replace /HW for DD
Spoiler: show
This high quality signature has been hidden for your protection. To unlock it's secret, send 3 easy payments of $9.99 to me, by way of your nearest theta band or ley line. Complete your transmission by midnight tonight for a special free gift!

bel

Cocytus Succeeder

Posts: 2184

Joined: Tuesday, 3rd February 2015, 22:05

Post Tuesday, 25th June 2019, 23:47

Re: Better DD

Just as an idea: one mechanic which could be used instead of the "heal on kills" is the Bloodborne "rally" mechanic. Whenever you take damage, for a short time afterwards, if you damage a monster, you regain some HP. This mechanic promotes a fast-paced style of play. Bloodborne also has no natural HP regeneration and essentially drops heal wounds potions (vials of blood) when you kill monsters -- except that the healing is percentage of total HP instead of fixed amount.

Bloodborne is also a game where you get to wear very little protective armour, so we could give DD something like Dr "no body armour" and no shield. Not sure if that would work in a game like DCSS though. The reason it works in Bloodborne is that all monsters are slower than you, so you can avoid most of them by just running through them. Also, Bloodborne doesn't have permadeath.
Last edited by bel on Wednesday, 26th June 2019, 00:00, edited 4 times in total.

Blades Runner

Posts: 616

Joined: Thursday, 25th October 2012, 03:19

Post Tuesday, 25th June 2019, 23:50

Re: Better DD

I like your ideas. I would play DD versus currently, I have no interest in playing DD. One thing to consider: the new version may be very interesting early and mid game, but by late game, it could become too powerful. I'm of the opinion that heals on kills is about the best thing you can have, and is one of the (if not the) biggest considerations in god selections and overall training.

I would probably like to start taking Vehumet with DD, because you could have:
* lichform (you can't with TSO)
* mana on kills (partial with TSO, none with Makhleb)
* high level kill spells easier to cast thanks to Vehumet (not with either TSO or Mak)
* be able to train armour and melee stuff without bad aptitudes
* be tanky in general (multiplicative effect for a hybrid that could also cast late game)

I hate to say it, because I'd love to play it, but it might be a bit overpowered for extended. It could be even better than gnolls.

bel

Cocytus Succeeder

Posts: 2184

Joined: Tuesday, 3rd February 2015, 22:05

Post Saturday, 13th July 2019, 01:43

Re: Better DD

I'm trying to achieve the result that, at any point in the game, the "total damage taken" should be roughly equal to (ideally, a little less than) "total healing".

I have been trying various healing functions and might have found a half-decent one: (Monster XP)^2 / (Player XP). Also, the player starts with 3 potions of ambrosia (to smooth out any initial hiccups).

Here's a graph of a partial run of DDFi. I played somewhat riskily: not worshipping a god, not entering Lair etc. So there should be a little bit more slack in the system than the graph shows.
Attachments
plot-turn-ouch-heal-ratio.png
plot-turn-ouch-heal-ratio.png (4.7 KiB) Viewed 5980 times

Zot Zealot

Posts: 1004

Joined: Thursday, 16th August 2018, 21:19

Post Saturday, 13th July 2019, 09:19

Re: Better DD

That's pretty cool.
What happens when you do go through Lair? I'm curious whether you end up with a huge ambrosia stockpile.

bel

Cocytus Succeeder

Posts: 2184

Joined: Tuesday, 3rd February 2015, 22:05

Post Saturday, 13th July 2019, 16:19

Re: Better DD

Nvm, the healing function goes to crap as soon as I enter the Lair branches. Back to the drawing board.

bel

Cocytus Succeeder

Posts: 2184

Joined: Tuesday, 3rd February 2015, 22:05

Post Saturday, 13th July 2019, 16:25

Re: Better DD

petercordia wrote:That's pretty cool.
What happens when you do go through Lair? I'm curious whether you end up with a huge ambrosia stockpile.

In general, the game becomes easier as one goes through Lair. I cannot fix the game difficulty curve by a healing function. Also, keep in mind that I am a fairly experienced player. I want to make the curve to make sure the game remains playable for most players. So I wound tend to err towards more slack rather than less slack.

With the above healing function (now discarded), going through Lair wouldn't make much of a difference because easy monsters tend to not give too much healing anyway. Since the healing depends on (Monster XP) squared, it's very heavily dependent on monster difficulty. Easy monsters tend to give very little healing.

Anyway, as I said, this function doesn't work anyway.

bel

Cocytus Succeeder

Posts: 2184

Joined: Tuesday, 3rd February 2015, 22:05

Post Tuesday, 6th August 2019, 06:03

Re: Better DD

I have been trying various healing functions. I finally found a somewhat convoluted function which fits pretty well. Details under spoiler tag. Here's a sample run till the first rune. No worship. Did D15, Orc, skipped most of Lair, then did Spider.

  Code:
 Dungeon Crawl Stone Soup version 0.24-a0-469-gb38e9025f7 (tiles) character file.

Game seed: 11270143999282968936

non-stepdown-xp-decay-xl the Severer (DDGl)        Turns: 27923, Time: 03:08:36

Health: 150/150    AC: 26    Str: 23    XL:     16   Next: 53%
Magic:  25/25      EV: 28    Int: 10    God:    No God 0 (0)
Gold:   349        SH: 19    Dex: 15    Spells: 15/15 levels left

rFire    + . .     SeeInvis +   a - +5 broad axe (flame)
rCold    . . .     Gourm    .   D - +0 large shield
rNeg     + . .     Faith    .   q - +1 plate armour {rF+}
rPois    +         Spirit   .   y - +1 hat {MR+}
rElec    .         Reflect  .   g - +2 cloak {rPois}
rCorr    .         Harm     .   W - +1 pair of gloves
MR       +++..                  c - +1 pair of boots
Stlth    ..........             b - amulet of the acrobat
HPRegen  0.00/turn              I - ring of see invisible
MPRegen  0.19/turn              j - +2 ring of evasion

@: acrobat, non-regenerating
A: damage resistance, heal wounds, heals on kill, negative energy resistance 1,
sense surroundings 2, no regeneration
}: 1/15 runes: gossamer
a: Heal Wounds


You are on level 4 of the Spider Nest.
You are not hungry.

You have visited 4 branches of the dungeon, and seen 25 of its levels.
You have also visited: Ice Cave.

You have collected 2211 gold pieces.
You have spent 1862 gold pieces at shops.


Innate Abilities, Weirdness & Mutations

You are resistant to damage.
You can heal yourself by infusing magical energy.
You may heal when you kill monsters.
You resist negative energy. (rN+)
You passively map the area around you.
You do not regenerate.


   Skills:
 + Level 11.1 Fighting
 * Level 17.5 Axes
 - Level 1.7 Throwing
 + Level 13.5 Armour
 + Level 12.1 Dodging
 + Level 12.7 Shields
 + Level 12.7 Evocations


You have 15 spell levels left.
You don't know any spells.
Your spell library contains the following spells:

 Spells                   Type           Power        Failure   Level  Hunger
 Freeze                   Ice            0 (25)       100%        1    50
 Magic Dart               Conj           0 (25)       100%        1    50
 Sandblast                Erth           0 (50)       100%        1    50
 Blink                    Tloc           N/A          100%        2    100
 Call Imp                 Summ           0 (100)      100%        2    100
 Ensorcelled Hibernation  Hex/Ice        0 (50)       100%        2    100
 Passwall                 Tmut/Erth      0 (120)      100%        2    100
 Shroud of Golubria       Chrm/Tloc      0 (50)       100%        2    100
 Slow                     Hex            0 (100)      100%        2    100
 Throw Frost              Conj/Ice       0 (50)       100%        2    100
 Conjure Flame            Conj/Fire      0 (100)      100%        3    150
 Gell's Gravitas          Tloc           0 (200)      100%        3    150
 Lesser Beckoning         Tloc           0 (200)      100%        3    150
 Mephitic Cloud           Conj/Pois/Air  0 (100)      100%        3    150
 Ozocubu's Armour         Chrm/Ice       0 (100)      100%        3    150
 Stone Arrow              Conj/Erth      0 (50)       100%        3    150
 Teleport Other           Tloc           0 (100)      100%        3    150
 Leda's Liquefaction      Hex/Erth       0 (200)      100%        4    250
 Passage of Golubria      Tloc           N/A          100%        4    250
 Petrify                  Tmut/Erth      0 (100)      100%        4    250
 Summon Ice Beast         Ice/Summ       0 (100)      100%        4    250
 Throw Icicle             Conj/Ice       0 (100)      100%        4    250
 Bolt of Magma            Conj/Fire/Erth 0 (200)      100%        5    400
 Borgnjor's Vile Clutch   Necr/Erth      0 (200)      100%        5    400
 Lee's Rapid Deconstruct  Erth           0 (200)      100%        5    400
 Silence                  Hex/Air        0 (200)      100%        5    400
 Darkness                 Hex            0 (200)      100%        6    550
 Iron Shot                Conj/Erth      0 (200)      100%        6    550
 Shadow Creatures         Summ           N/A          100%        6    550
 Statue Form              Tmut/Erth      0 (150)      100%        6    550
 Shatter                  Erth           0 (200)      100%        9    1000


Inventory:

Hand Weapons
 a - a +5 broad axe of flaming (weapon)
 s - the cursed +0 mace of Frustration {crush, MR+}   
   
   It inflicts extra damage upon your enemies.
   
   It affects your resistance to hostile enchantments.
   It has a curse placed upon it.
Missiles
 d - 2 throwing nets {=f}
 k - 2 curare-tipped darts {=f}
 n - 77 poisoned darts (quivered)
 K - 23 boomerangs
Armour
 c - a +1 pair of boots (worn)
 g - a +2 cloak of poison resistance (worn)
 q - a +1 plate armour of fire resistance (worn)
 y - a +1 hat of magic resistance (worn)
 D - a +0 large shield (worn)
 V - a scarf of repulsion
 W - a +1 pair of gloves (worn)
Jewellery
 b - an amulet of the acrobat (around neck)
 f - an uncursed ring of protection from fire
 j - a +2 ring of evasion (right hand)
 w - the ring "Zyckef" {Wiz rF+ rC+++ rN+ Dex-4}   
   
   [ring of wizardry]
   
   It improves your spell success rate.
   It affects your dexterity (-4).
   It protects you from fire.
   It renders you almost immune to cold.
   It protects you from negative energy.
 C - an uncursed ring of resist corrosion
 I - a ring of see invisible (left hand)
 O - the ring of Dasidyah {+Fly rElec rF+ rC+ Stlth+}   
   
   [ring of protection from fire]
   
   It protects you from fire.
   It protects you from cold.
   It insulates you from electricity.
   It lets you fly.
   It makes you more stealthy.
Wands
 r - a wand of acid (1)
 G - a wand of random effects (20)
 H - a wand of digging (2)
 T - a wand of flame (65)
 U - a wand of paralysis (1)
 Y - a wand of disintegration (8)
Scrolls
 e - 2 scrolls of identify {@r1}
 l - 5 scrolls of teleportation {@r4}
 x - a scroll of silence {!r}
 A - a scroll of holy word
 B - a scroll of torment {!r}
 E - 9 scrolls of remove curse
 L - 2 scrolls of vulnerability {!r}
 M - a scroll of fog
 P - 4 scrolls of fear
 Q - 2 scrolls of blinking
 S - 2 scrolls of magic mapping
Potions
 h - a potion of agility
 o - 4 potions of cancellation
 p - 2 potions of magic
 t - 4 potions of haste {@q3}
 u - a potion of resistance
 v - 3 potions of brilliance
 z - 4 potions of heal wounds {@q2}
 F - 13 potions of ambrosia
 J - 2 potions of lignification {!q}
 N - 5 potions of curing {@q1}
 X - 2 potions of mutation {!q}
 Z - a potion of berserk rage {!q}
Miscellaneous
 i - a phial of floods (inert)
 m - a lightning rod (4/4)
Comestibles
 R - 31 rations


Dungeon Overview and Level Annotations

Branches:
Dungeon (15/15)            Temple (0/1) D:5            Lair (4/6) D:8
 Spider (4/4) Lair:4          Orc (2/2) D:12            Elf (0/3) Orc:2
 Depths (0/5) D:15       
 Swamp: Lair:2-4    Shoals: Lair:2-4    Vaults: D:13-14     

Altars:
Ashenzari
Dithmenos
Makhleb
Ru
Trog
Uskayaw
Yredelemnul
Beogh

Shops:
D:7 ?   D:9 *   D:12 *   Orc:2 }[?[

Annotations:
D:11 exclusion: obsidian statue
D:12 exclusion: 2 downstairs
D:13 Kirke, Rupert
D:14 exclusion: upstairs
D:15 exclusion: upstairs
Spider:2 2 runed translucent doors, Cumifues's ghost, journeyman MiMo
Spider:3 Mara
Spider:4 Donald

...##...#..^......#...##......
..##.^.##.........##)..##.###.
.##...##^.^^^^^....##...### ##
.##^.##.^.#.^...#...##..#    #
.##..#.^.###...###..^#..#
###.....^.#....^#...^...#
###....^..^........^.^..##
##......^................#
##..#....#.......#.^..#^.#
##..#...###.^...###...#..#
##..##...#.......#^..##..#
 #...#^........@....^#...#
 #..##.^.#.....^.#...##^.#
 #..#...###..^..###.^.#..#
 #..#....#.......#....#..#
 #.......................#
 ##.....^..........^....##
  ##......#.....#.....^##
   #.....###...###.....#
   #..#...#^.^^.#...#..#
  ##..##........^..##..##
  #..###...........###..#


There are no monsters in sight!

Message History

The moth of wrath is heavily wounded.
You block the moth of wrath's attack.
You slash the moth of wrath!
You burn the moth of wrath.
The moth of wrath is almost dead.
The moth of wrath bites you but does no damage.
You slice the moth of wrath!!
You burn the moth of wrath.
You kill the moth of wrath!
You healed: 3 HP from killing the monster!
No target in view!
You see here a moth of wrath corpse.
Unknown command.
Unknown command.
Unknown command.
Found a glowing long sword.
Unknown command.
Unknown command.
Move the cursor to view the level map, or type ? for a list of commands.
Returning to the game...
Unknown command.
Unknown command.
Unknown command.
Saving game... please wait.
Level annotation: Donald
Welcome back, non-stepdown-xp-decay-xl the Deep Dwarf Gladiator.
Unknown command.
Unknown command.
Unknown command.
Saving game... please wait.

Action                   |  1- 3 |  4- 6 |  7- 9 | 10-12 | 13-15 | 16-18 || total
-------------------------+-------+-------+-------+-------+-------+-------++-------
Melee: War axe           |   102 |   190 |   459 |   560 |       |       ||  1311
       Broad axe         |       |       |       |   159 |  1475 |   314 ||  1948
Throw: Throwing net      |     3 |     4 |     1 |       |       |       ||     8
       Dart              |       |    26 |    38 |    94 |    40 |    16 ||   214
Evoke: Wand              |       |       |     8 |    28 |    67 |    20 ||   123
       Lightning rod     |       |       |       |       |       |     4 ||     4
       Phial of floods   |       |       |       |       |       |     1 ||     1
  Use: Scroll            |       |     5 |     5 |    15 |    17 |     1 ||    43
       Potion            |       |       |     6 |     7 |    22 |     3 ||    38
 Stab: Sleeping          |     1 |       |       |       |       |       ||     1
       Held in net/web   |       |     2 |       |       |       |       ||     2
       Paralysed         |       |       |       |    15 |    12 |     4 ||    31
       Invisible         |       |       |       |     2 |       |       ||     2
       Confused          |       |       |       |     3 |       |       ||     3
  Eat: Chunk             |     1 |     8 |     7 |    27 |    30 |     6 ||    79
       Ration            |       |       |     1 |       |     3 |     1 ||     5
Armor: Leather armour    |    31 |    18 |       |       |       |       ||    49
       Plate armour      |       |    31 |   261 |   273 |   527 |   163 ||  1255
Dodge: Dodged            |    53 |    99 |   212 |   343 |   675 |   125 ||  1507
       Deflected         |       |     2 |     7 |     7 |     6 |       ||    22
Block: Shield            |       |       |       |       |   703 |       ||   703
       Large shield      |       |       |       |       |    56 |   327 ||   383

Levels and vault maps discovered:
[+gen,+vis] D:1:      minmay_arrival_nine_rooms, layout_loops_ring
[+gen,+vis] D:2:      layout_basic, first_ration, uniq_jessica
[+gen,+vis] D:3:      layout_basic, serial_bayou_lagoon_a
[+gen,+vis] D:4:      layout_cave_pools, minitemple, serial_column_ruins,
                      column_ruins_hut, column_ruins_corridor_corner,
                      column_ruins_grid_1, column_ruins_open_small,
                      column_ruins_open_small, column_ruins_columns_straight,
                      column_ruins_grid_1, column_ruins_columns_straight
[+gen,+vis] D:5:      layout_rooms, minmay_temple_entry_waves, uniq_eustachio
[+gen,+vis] D:6:      layout_rooms, serial_bayou_pond_a, sword_in_stone,
                      uniq_sigmund
[+gen,+vis] D:7:      layout_cave_pools, serial_shops, nicolae_shop_waterfront,
                      grunt_ogre_cave, makhleb_heckhound_becter, uniq_duvessa
[+gen,+vis] D:8:      layout_loops_ring, eat_drink_and_be_merry_uskayaw,
                      dpeg_oklobed_lair, nicolae_dithmenos_shadow_blocks
[+gen,+vis] D:9:      layout_irregular_city, kennysheep_mini_moat, serial_shops,
                      shop
[+gen,+vis] D:10:     layout_roguey, serial_shops, shop, uniq_nergalle
[+gen,+vis] D:11:     layout_big_octagon, grunt_ministairs_3, minivault_16,
                      lemuel_flame_loot_1
[+gen,+vis] D:12:     layout_loops_corners, minmay_orc_entry_guard_dogs,
                      serial_shops, nicolae_shop_trees, hangedman_decor_points,
                      minmay_misc_feat_nine_boxes, uniq_snorg, uniq_maurice
[+gen,+vis] D:13:     layout_roguey, david_vaults_1, serial_shops, shop,
                      uniq_rupert, uniq_kirke
[+gen,+vis] D:14:     layout_irregular_city, grunt_decor_arrowhead
[+gen,+vis] D:15:     hangedman_depths_entry_civil_slaughter, layout_cave_pools,
                      nicolae_ru_awakened_eye, basic_altar, abandoned_shop,
                      uniq_louise, uniq_nessos
[-gen,-vis] Temple
[+gen,+vis] Lair:1:   layout_hall_layers, gammafunk_ghost_grave,
                      chequers_serial_rivers_large_a, cheibrodos_lair_lostbears
[+gen,+vis] Lair:2:   layout_hall_layers, minmay_shoals_entry_hut
[+gen,+vis] Lair:3:   layout_cave_pods
[+gen,+vis] Lair:4:   beast_lair_carwin_large_2, layout_hall_layers,
                      spider_nest_entry_funnel_web, special_room
                      [special_room_mythical_zoo]
[-gen,-vis] Lair:5
[-gen,-vis] Lair:6
[-gen,-vis] Swamp:1
[-gen,-vis] Swamp:2
[-gen,-vis] Swamp:3
[-gen,-vis] Swamp:4
[-gen,-vis] Shoals:1
[-gen,-vis] Shoals:2
[-gen,-vis] Shoals:3
[-gen,-vis] Shoals:4
[-gen,-vis] Snake:1
[-gen,-vis] Snake:2
[-gen,-vis] Snake:3
[-gen,-vis] Snake:4
[+gen,+vis] Spider:1: layout_spider_delve
[+gen,+vis] Spider:2: layout_spider_delve, ebering_ghost_disaster_area,
                      drop_trap, nicolae_spider_webbed_stairs, uniq_jorgrun
[+gen,+vis] Spider:3: layout_spider_delve, uniq_mara
[+gen,+vis] Spider:4: johnstein_spider_rune_arachne_lair, uniq_arachne,
                      uniq_donald
[-gen,-vis] Slime:1
[-gen,-vis] Slime:2
[-gen,-vis] Slime:3
[-gen,-vis] Slime:4
[-gen,-vis] Slime:5
[+gen,+vis] Orc:1:    layout_caves, basic_altar
[+gen,+vis] Orc:2:    st_orc_pillars, layout_caves,
                      portal_ice_cave_entry_ice_beasts, hangedman_minor_magic
[-gen,-vis] Elf:1
[-gen,-vis] Elf:2
[-gen,-vis] Elf:3
[-gen,-vis] Vaults:1
[-gen,-vis] Vaults:2
[-gen,-vis] Vaults:3
[-gen,-vis] Vaults:4
[-gen,-vis] Vaults:5
[-gen,-vis] Crypt:1
[-gen,-vis] Crypt:2
[-gen,-vis] Crypt:3
[-gen,-vis] Tomb:1
[-gen,-vis] Tomb:2
[-gen,-vis] Tomb:3
[-gen,-vis] Depths:1
[-gen,-vis] Depths:2
[-gen,-vis] Depths:3
[-gen,-vis] Depths:4
[-gen,-vis] Depths:5
[-gen,-vis] Hell
[-gen,-vis] Dis:1
[-gen,-vis] Dis:2
[-gen,-vis] Dis:3
[-gen,-vis] Dis:4
[-gen,-vis] Dis:5
[-gen,-vis] Dis:6
[-gen,-vis] Dis:7
[-gen,-vis] Geh:1
[-gen,-vis] Geh:2
[-gen,-vis] Geh:3
[-gen,-vis] Geh:4
[-gen,-vis] Geh:5
[-gen,-vis] Geh:6
[-gen,-vis] Geh:7
[-gen,-vis] Coc:1
[-gen,-vis] Coc:2
[-gen,-vis] Coc:3
[-gen,-vis] Coc:4
[-gen,-vis] Coc:5
[-gen,-vis] Coc:6
[-gen,-vis] Coc:7
[-gen,-vis] Tar:1
[-gen,-vis] Tar:2
[-gen,-vis] Tar:3
[-gen,-vis] Tar:4
[-gen,-vis] Tar:5
[-gen,-vis] Tar:6
[-gen,-vis] Tar:7
[-gen,-vis] Zot:1
[-gen,-vis] Zot:2
[-gen,-vis] Zot:3
[-gen,-vis] Zot:4
[-gen,-vis] Zot:5
[-gen,-vis] Abyss:1
[-gen,-vis] Abyss:2
[-gen,-vis] Abyss:3
[-gen,-vis] Abyss:4
[-gen,-vis] Abyss:5
[-gen,-vis] Pan
[-gen,-vis] Zig:1
[-gen,-vis] Zig:2
[-gen,-vis] Zig:3
[-gen,-vis] Zig:4
[-gen,-vis] Zig:5
[-gen,-vis] Zig:6
[-gen,-vis] Zig:7
[-gen,-vis] Zig:8
[-gen,-vis] Zig:9
[-gen,-vis] Zig:10
[-gen,-vis] Zig:11
[-gen,-vis] Zig:12
[-gen,-vis] Zig:13
[-gen,-vis] Zig:14
[-gen,-vis] Zig:15
[-gen,-vis] Zig:16
[-gen,-vis] Zig:17
[-gen,-vis] Zig:18
[-gen,-vis] Zig:19
[-gen,-vis] Zig:20
[-gen,-vis] Zig:21
[-gen,-vis] Zig:22
[-gen,-vis] Zig:23
[-gen,-vis] Zig:24
[-gen,-vis] Zig:25
[-gen,-vis] Zig:26
[-gen,-vis] Zig:27
[-gen,-vis] Bazaar
[-gen,-vis] Trove
[-gen,-vis] Sewer
[-gen,-vis] Ossuary
[-gen,-vis] Bailey
[-gen,-vis] IceCv
[-gen,-vis] Volcano
[-gen,-vis] WizLab
[-gen,-vis] Desolation
[-gen,-vis] Gauntlet

Vanquished Creatures
  Arachne (Spider:4)
  Jorgrun (Spider:2)
  Louise (D:15)
  4 ghost moths
  4 emperor scorpions
  5 entropy weavers
  Nessos (D:15)
  3 spark wasps
  Snorg (D:12)
  2 ettins
  5 hydras
  3 centaur warriors
  2 two-headed ogres (D:14)
  2 ogre magi (D:15)
  5 orc high priests (Orc:2)
  2 tengu warriors
  Nergalle (D:10)
  8 orc knights (Orc:2)
  A wolf spider zombie (D:15)
  10 ugly things (D:14)
  3 orc sorcerers
  3 deep elf magi
  6 elephants (Lair:4)
  30 wolf spiders
  10 orb spiders
  4 manticores
  A salamander (Spider:3)
  3 moths of wrath (Spider:4)
  Maurice (D:12)
  2 ice statues (IceCv)
  5 cyclopes
  2 centaur zombies
  A black mamba (Spider:2)
  A torpor snail (Spider:4)
  A spiny frog (Lair:3)
  9 centaur skeletons
  8 yaktaurs
  An efreet (D:14)
  4 rime drakes
  14 demonic crawlers
  4 komodo dragons
  A yaktaur (shapeshifter) (D:15)
  7 ice devils (IceCv)
  42 jumping spiders
  5 trolls
  5 blink frogs (Lair:2)
  A meliai (Spider:4)
  8 hornets
  4 slime creatures (D:12)
  9 hippogriffs
  49 redbacks
  A spriggan (Spider:1)
  A wraith (D:14)
  2 wyverns (Lair:4)
  18 yaks
  2 hungry ghosts
  3 hogs (D:14)
  5 basilisks
  28 tarantellas
  Eustachio (D:4)
  7 wargs
  A soldier ant (D:10)
  An acid dragon (D:11)
  A soldier ant (shapeshifter) (Spider:4)
  4 water moccasins
  Duvessa (D:7)
  2 porcupines
  2 swamp drakes
  7 sky beasts
  A hornet zombie (D:14)
  35 orc warriors
  12 ice beasts
  A black bear (Spider:3)
  2 eyes of draining (Spider:4)
  3 phantoms
  2 centaurs
  9 ogres
  10 wolves
  4 crocodiles
  11 bullfrogs
  A big kobold (D:8)
  3 gnoll sergeants (D:6)
  Dowan (D:7)
  2 wyvern skeletons (D:11)
  2 scorpions
  4 killer bees (D:9)
  3 howler monkeys
  14 wights
  An electric eel (Spider:3)
  2 bullfrog zombies
  10 crimson imps
  6 hounds
  21 orc wizards
  5 bullfrog skeletons
  19 orc priests
  An iron imp (Orc:2)
  3 jellies
  Jessica (D:2)
  2 iguanas (D:10)
  10 worker ants
  A hound skeleton (D:6)
  A worker ant zombie (D:10)
  2 howler monkey zombies
  11 adders
  6 shadow imps
  8 white imps
  9 ufetubi (IceCv)
  An ooze (D:1)
  An adder skeleton (D:4)
  3 worms
  3 dart slugs
  5 leopard geckos
  92 orcs
  2 bats (D:1)
  6 giant cockroaches
  9 goblins (D:1)
  7 hobgoblins
  11 jackals
  5 quokkas
  A ball python (D:6)
  5 frilled lizards
  A jackal skeleton (D:7)
  12 kobolds
  A leopard gecko skeleton (D:5)
  9 rats
  A plant (D:3)
807 creatures vanquished.

Vanquished Creatures (others)
  A reaper (IceCv)
  A jumping spider (Spider:4)
  An orc warrior (D:11)
  2 worker ants
  3 white imps (IceCv)
  An ufetubus (IceCv)
  2 orcs (D:11)
  6 fungi
  7 plants
24 creatures vanquished.

Grand Total: 831 creatures vanquished



Spoiler: show
Looking at the exper_value function which calculates monster XP, it's basically the following:
  Code:
(16+HP)*HD^2*Diff*speed*mod/1000


This value is then put through various stepdowns.

I reverse-engineered the stepdowns to calculate the "Raw XP". Call it R. I then divided R by HD^2 to remove the HD dependence. Let H = R / HD^2. This is the "raw healing factor".

To calculate actual healing, I then multiplied the raw healing factor by a decay function which depends on monster HD and player XL. The idea behind the decay function is that killing an Ogre will give a lot of healing at XL 5 (when it's dangerous), but give very little healing at XL 10 (when it's popcorn).

Specifically the decay function is pow(2, 2 * (HD - XL) / XL)
Attachments
plot-turn-ouch-heal-ratio.png
plot-turn-ouch-heal-ratio.png (4.59 KiB) Viewed 5679 times

bel

Cocytus Succeeder

Posts: 2184

Joined: Tuesday, 3rd February 2015, 22:05

Post Monday, 25th November 2019, 13:45

Re: Better DD

I haven't found time to work on this more.

That said, the latest healing function is quite serviceable in practice. It is enough for a proof of concept, at least, and it can always be tweaked if needed. The branch is playable, if people want to playtest or try it out or whatever. There is some debugging and measurement message spam (used to construct those graphs above) in your morgue file and your main message window, but it doesn't affect play in any way.

Return to Game Design Discussion

Who is online

Users browsing this forum: No registered users and 15 guests

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.