• movement [was Re: starting monk vorpal blade]

    From Pat Rankin@21:1/5 to Klaus Kassner on Mon Mar 14 11:55:17 2022
    On Monday, March 14, 2022 at 6:19:16 AM UTC-7, Klaus Kassner wrote:
    [...] It is, however, a possibility that this is actually already NH 3.6.x code and that it is erroneously posted under the NH 3.4.3 heading.

    In general that's a possibility. In this case, it hasn't happened.

    Prior to 3.3.0, being Fast increased hero's movement by 1/3,
    being VeryFast doubled the normal speed. Unused movement
    points, if any, carried over to the next turn so that the 1/3
    increase accumulated enough for an extra move every third
    turn.

    Starting in 3.3.0, that was changed. Being Fast had a 2/3
    chance to get the non-Fast number of movement points and
    1/3 chance to get 50% more than normal, for an average
    movement allotment of 33% faster than normal. So the
    average stayed the same but it was no longer predictable
    when you would receive an extra move. At that same time,
    VeryFast was changed to have 2/3 chance for 150% movement
    and 1/3 chance for 200%, giving an average of 67% more
    movement than normal speed. So both less than the doubling
    effect it had before and also not predictable.

    It stayed that way up through 3.6.0, inclusive. That version
    left the hero's movement alone but changed monster
    movement so that it was no longer predictable and also
    slightly faster on average. For monsters which moved at
    normal human speed, sometimes they would lose a turn
    relative to a normal speed hero, other times they would
    gain a turn and that was a little more likely than the chance
    to lose one. So a hero trying to run away from a monster
    that nominally had the same speed would sometimes get
    caught and hit. Or fighting toe-to-toe, sometimes the
    monster would get two hits instead of just one. (Other
    times it would get none but players didn't seem to notice
    that aspect.) A lot of people complained, or more likely it
    was a smaller number of people complaining loudly.

    In 3.6.1 the movement system was changed for both the
    hero and for monsters. The slight boost for monsters in
    3.6.0 was removed. For both hero and monsters, unused
    movement no longer carries over but instead gives a
    percentage chance for extra moves. Being Fast has 2/3
    chance for 1 move and 1/3 chance for 2 moves, so is
    still 33% faster than normal speed. VeryFast gives 1/3
    chance for 1 move and 2/3 chance for 2 moves, same 67%
    increase over normal speed as 3.3.0 through 3.6.0.

    An actual move requires 12 points of movement. Anyone
    with normal human speed gets 12 points per turn, so
    makes 1 move per turn. If a monster gets only 4 points
    per turn, its first turn it wouldn't move and 4 points would
    carry over. On its second turn it would get 4 new points
    and add to the carried over 4 points, it still wouldn't be able
    to move but this time 8 not-yet-used points would carry
    over. Then on its third turn, it would have 12 points and
    make a move, with nothing to carry over. That was the old
    system. Starting in 3.6.1, if a monster has 4 movement
    points it has a 1/3 (4 out of 12) chance to move. If it
    doesn't move, the unused points are thrown away rather
    than carried over. On its next turn it will again have a 4/12
    chance to move. For a fast monster that gets 18 points
    per turn, it will always move at least once, using 12 of the
    18 points, and have 50% (6/12) chance to move twice. For
    either slower than human or faster, the average movement
    is the same as it was prior to 3.6.0 but actual movement
    is no longer predictable.

    In theory a slow monster could move every single turn
    or never move at all but a reasonable RNG should result
    in matching the average expected movement over time.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Klaus Kassner@21:1/5 to All on Thu Mar 17 17:24:39 2022
    Am 14.03.2022 um 19:55 schrieb Pat Rankin:
    On Monday, March 14, 2022 at 6:19:16 AM UTC-7, Klaus Kassner wrote:
    [...] It is, however, a possibility that this is actually already NH 3.6.x >> code and that it is erroneously posted under the NH 3.4.3 heading.

    In general that's a possibility. In this case, it hasn't happened.

    Yes, I realized that by looking for and finding the corresponding code
    part in NH 3.6.1. Since it was different, it was clear that a random
    component was already present in the algorithm for moves per turn of NH
    3.4.3.
    Starting in 3.3.0, that was changed. Being Fast had a 2/3
    chance to get the non-Fast number of movement points and
    1/3 chance to get 50% more than normal, for an average
    movement allotment of 33% faster than normal. So the
    average stayed the same but it was no longer predictable
    when you would receive an extra move. At that same time,
    VeryFast was changed to have 2/3 chance for 150% movement
    and 1/3 chance for 200%, giving an average of 67% more
    movement than normal speed. So both less than the doubling
    effect it had before and also not predictable.

    Right. And this allowed to conclude that you were sure to get 2 moves in
    a turn, if you had gotten only 1 in the preceding turn, provided you
    were very fast and unencumbered. The sequence of moves per turn was a
    random sequence with 1/3 ones and 2/3 twos, but it was not an
    uncorrelated sequence. Ones were anti-correlated -- i.e. you never had
    only one move on two consecutive turns each, and clusters of m times 2
    moves per turn (after the occurrence of a single move per turn) had a probability of slightly higher than (2/3)^m for small m. (The exact
    formula is prob{m consecutive 2} = prod_k=1^m (2/3 -(-1/3)^k. That can
    be derived with the help of recurrence relations.)
    In 3.6.1 the movement system was changed for both the
    hero and for monsters. The slight boost for monsters in
    3.6.0 was removed. For both hero and monsters, unused
    movement no longer carries over but instead gives a
    percentage chance for extra moves. Being Fast has 2/3
    chance for 1 move and 1/3 chance for 2 moves, so is
    still 33% faster than normal speed. VeryFast gives 1/3
    chance for 1 move and 2/3 chance for 2 moves, same 67%
    increase over normal speed as 3.3.0 through 3.6.0.

    Yes, now it is as random as it can be with the probabilities 1/3 and
    2/3. The number of moves in two consecutive turns is uncorrelated.
    Clusters of m times 1 move (after a 2-move occurrence) have probability
    (1/3)^m and clusters of m times 2 moves have (2/3)^m.

    I must say that I liked the old system better, because it gives you an additional option for improvement of your game via skillful action
    rather than by a random decision. It could be a life-saver in situations
    where you wish to escape a covetous monster while being on the upstairs.
    If you zap it with a wand of teleport in a turn where you are sure to
    have 2 moves, you should be able to escape upstairs, before it returns. Provided, of course, the moves are not obtained alternatingly with those
    of the monster. I presume, the player first gets his moves and then all
    the monsters get theirs and then the turn ends?

    An actual move requires 12 points of movement. Anyone
    with normal human speed gets 12 points per turn, so
    makes 1 move per turn. If a monster gets only 4 points
    per turn, its first turn it wouldn't move and 4 points would
    carry over. On its second turn it would get 4 new points
    and add to the carried over 4 points, it still wouldn't be able
    to move but this time 8 not-yet-used points would carry
    over. Then on its third turn, it would have 12 points and
    make a move, with nothing to carry over. That was the old
    system. Starting in 3.6.1, if a monster has 4 movement
    points it has a 1/3 (4 out of 12) chance to move. If it
    doesn't move, the unused points are thrown away rather
    than carried over. On its next turn it will again have a 4/12
    chance to move. For a fast monster that gets 18 points
    per turn, it will always move at least once, using 12 of the
    18 points, and have 50% (6/12) chance to move twice. For
    either slower than human or faster, the average movement
    is the same as it was prior to 3.6.0 but actual movement
    is no longer predictable.

    I don't mind that for monsters, but I would prefer the player's moves to
    have this extra bit of predictability that would make the above strategy
    a viable one.

    In theory a slow monster could move every single turn
    or never move at all but a reasonable RNG should result
    in matching the average expected movement over time.

    For a very slow monster, it is certainly better not to have it
    predictably stay unmoving a long time...

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)