#135 AI: turnskip

Closed
opened 1 week ago by eugeneloza · 1 comments

I've got some time to investigate AI bugs (turnskips I've been talking about lately). So, it seems like the following pattern:

Analyzed thoroughly the following monsters:

  • Vampiric bat 3,08
  • Ghoul 3,17
  • Goblin maniac 3,17
  • Red blob 3,08
  • Vase monster 2,60
  • Female red demon 3,03
  • Male red demon 3,00
  • Skeleton 1,86
  • Male blue demon 3,04
  • Female blue demon 2,04
  • Lizard 1,06

All the monsters, except Lizards and Skeletons in average skip 3 turns while moving towards the player or just randomly (2,95 turns to be more accurate based on average 150-200 samples (error ~0.1 turns)). The max turnskip I've seen were 13 turns by Female red demon, followed up by 11 turns by a Vampiric bat, and 10 by Goblin maniac (also 10 by Male blue demon, however, I'm not 100% sure if it wasn't shooting at that record).

Skeletons skip 2 turns average (1.86) and lizards skip 1 turn (1.06) (i.e. lizards don't skip any turns at all). I didn't do observations for crows and wisp's shadows, but it feels like crows skip 3 turns and shadows skip 2 turns. It also feels that Female blue demons also skip only 2 turns (based on 23 observations), however, it's not as certain as for Skeletons.

It also feels like turnskip is more likely to occur in case the monster is in some "unexpected" situation - either too many other monsters around, or there is no "simple" way towards the player.

That's empiric notes :) Now for the gameplay.

First of all, I'm not really sure it should be changed. It's fine the way it is.

First of all, it gives a chance to run away from enemies. Second, with current amount of LP, the enemies will become too hard to kill if they move quickly (and are a lot of). Especially this concerns such dangerous opponents, as crows.

This also brings quiet a lot of randomness into the gameplay: enemy may close-in to the player in either 3 turns, or in 10+. And randomness (in normal range) is sorta inherent to roguelikes :)

Thou, it just doesn't feel right. When looking at enemies that just stand there without moving, the feel of an intense battle is lost. Moreover, it doesn't seem justified, when the enemies are very slow to move, but quiet agile to shoot or to attack the player (e.g. in Dungeon Crawl Stone Soup you'd expect slow monsters attack also less frequently and fast opponents, such as bats could attack twice per turn).

So, for the start I'd suggest trying to understand "why does it happen". And to decide whether any further steps are required.

Just let's stress this again. If the AI movement issue is fixed, then rebalancing of enemy LP is required.

I've got some time to investigate AI bugs (turnskips I've been talking about lately). So, it seems like the following pattern: Analyzed thoroughly the following monsters: * Vampiric bat 3,08 * Ghoul 3,17 * Goblin maniac 3,17 * Red blob 3,08 * Vase monster 2,60 * Female red demon 3,03 * Male red demon 3,00 * Skeleton 1,86 * Male blue demon 3,04 * Female blue demon 2,04 * Lizard 1,06 All the monsters, except Lizards and Skeletons in average skip **3 turns** while moving towards the player or just randomly (2,95 turns to be more accurate based on average 150-200 samples (error ~0.1 turns)). The max turnskip I've seen were 13 turns by Female red demon, followed up by 11 turns by a Vampiric bat, and 10 by Goblin maniac (also 10 by Male blue demon, however, I'm not 100% sure if it wasn't shooting at that record). Skeletons skip **2 turns** average (1.86) and lizards skip **1 turn** (1.06) (i.e. lizards don't skip any turns at all). I didn't do observations for crows and wisp's shadows, but it feels like crows skip 3 turns and shadows skip 2 turns. It also feels that Female blue demons also skip only 2 turns (based on 23 observations), however, it's not as certain as for Skeletons. It also feels like turnskip is more likely to occur in case the monster is in some "unexpected" situation - either too many other monsters around, or there is no "simple" way towards the player. That's empiric notes :) Now for the gameplay. First of all, I'm not really sure it should be changed. It's fine the way it is. First of all, it gives a chance to run away from enemies. Second, with current amount of LP, the enemies will become too hard to kill if they move quickly (and are a lot of). Especially this concerns such dangerous opponents, as crows. This also brings quiet a lot of randomness into the gameplay: enemy may close-in to the player in either 3 turns, or in 10+. And randomness (in normal range) is sorta inherent to roguelikes :) Thou, it just doesn't feel right. When looking at enemies that just stand there without moving, the feel of an intense battle is lost. Moreover, it doesn't seem justified, when the enemies are very slow to move, but quiet agile to shoot or to attack the player (e.g. in Dungeon Crawl Stone Soup you'd expect slow monsters attack also less frequently and fast opponents, such as bats could attack twice per turn). So, for the start I'd suggest trying to understand "why does it happen". And to decide whether any further steps are required. Just let's stress this again. If the AI movement issue is fixed, then rebalancing of enemy LP is required.
themightyglider commented 5 days ago
Owner

Sorry that I didn't answer your posts that long. I had a very busy time but hope it will become better this week.

It seems you discovered a feature here not a bug (mostly). Monsters have a attribut called move_border. This can be between 0 and 10. At the beginning of every turn 1d10 is rolled for every monster. Only if the result of this roll is higher than move_border the monster can move in this turn. If no good move is possible (eg. A move that reduces distance toward the player) a random move is done. Standing still is a valid random move, so the chance that a monster doesn't move when it cant reach the player is a bit higher then it would be if a good move was possible.

Sorry that I didn't answer your posts that long. I had a very busy time but hope it will become better this week. It seems you discovered a feature here not a bug (mostly). Monsters have a attribut called move_border. This can be between 0 and 10. At the beginning of every turn 1d10 is rolled for every monster. Only if the result of this roll is higher than move_border the monster can move in this turn. If no good move is possible (eg. A move that reduces distance toward the player) a random move is done. Standing still is a valid random move, so the chance that a monster doesn't move when it cant reach the player is a bit higher then it would be if a good move was possible.
Sign in to join this conversation.
No Milestone
No assignee
2 Participants
Loading...
Cancel
Save
There is no content yet.