News:

Welcome to the new Sinister Design forums!

Main Menu

Gaps in and bugs in enemy AI

Started by KZ, February 05, 2010, 07:48:12 PM

Previous topic - Next topic

KZ

The initial thread can be found here. Essentially, help CraigStern imrpove the enemy AI in TSoG by making it more efficient- if you find a situation where the enemy could've made a better move, or attack in a way as to deal more damage to teammates, or simply glitched, write a short summary here (on occaison a screenshot can come in handy).
Welcome to the forums!
Read the rules, use proper grammar and punctuation, play the games, share your ideas and enjoy your stay!

CraigStern

Quote from: KZ on February 05, 2010, 07:48:12 PM(on occaison a screenshot can come in handy).

I just want to emphasize this more--always post a screenshot if you can! It saves me a huge amount of trouble trying to figure out the placement of the various units involved.

algebra15

I'm not quite sure that this is a bug, but with one-move-per-turn units, like the Ghost Knight and the Bronze Golem, in the battle "Bug Hunting," when you are separated from the unit by only a wall object, they will move off to one side, but then go right back to where they were, and get no closer to the Hero. Very useful for regenerating Psy points, but I don't think that was intended. Maybe smarter AI, or maybe a low percentage of a random motion so as to break the monotony. If the character has destroyed all of the units but a slow mover, this means they can sit still for as long as they like and win the battle by surviving 35 turns.
This is Gambit. The cards are about to explode. Goodbye!

Alan

similarly, you can trick the units in the parent rescue mission, with Arman, even though they have more than one move.  Once the AI sends some units in one of the corridors, if you go to a different corrridor and keep moving up and down it, the AI units in their corridors keep moving up and down their corridor trying to match you, and end up not trying to get closer to you horizontally- although the best move (splitting the AI forces so that some approach the final corridor from the bottom and the top) would likely be difficult to program...

algebra15

Just figured something out. If you want to take down a slow mover like a B. Golem or a Ghost Knight or Stone Golem, you can draw their fire with a Solid State Shield. You can use Set to make the shield, then keep people out of range. Use Set's static shield to boost the Solid State's health, then let the opponent damage it. If Set has a high Psy Defense level, you have one or two turns in between each time you need to heal the shield with Mega, and can regenerate the Psy Points. If you need to increase the Shield's health, this is something of a drain on Set's PsP, and having to maintain the shield's health doesn't help; so... you can recruit the Hero to help maintain the Shield while Set gets the PsP necesary to upgrade the Solid State Shield. The Hero also helps if the shield is taking more than half of Set's Mega Shield healing power per turn. 
Once this shield is in place, the enemy is facing it, and you are free to hit it with attacks of any type, even the ones it may be resistant to, or ones that take a lot of PsP-- without getting hit once by the opponent. However, it's mostly just fun for the player to have an almost-invincible shield standing there, and to know that the actual characters aren't getting hit, and I don't know that this allows you to do anything you couldn't already do. Just thought I'd let you know!




Oh, it works for Shadow Bugs too!
This is Gambit. The cards are about to explode. Goodbye!

Ertxiem

The "corridor blocking" gap referred by Alan exists since TRPG2.
I think that the AI could be programmed to overcame that problem in 4 ways:
- The deterministic way would rely on an unit advancing preferably on the direction where the distance is bigger;
- The probabilistic way would rely on tossing a coin when 2 paths are available;
- The (occasionally) random way would rely on, from time to time (or with probability 20%), an enemy would move in a random direction, while the rest of the time the enemy would use the regular AI with one of the above 2 choices, if necessary.
- The hard way would imply a (shortest) path finding algorithm by the AI.

The hard way would be the best way, if not for the fact that it's hard to code and potentially slows down the execution time. The way that the Telepath World is made (deterministically) is more consistent with the first option. However, the second option may result more often in the enemies finding a way out.
Ert, the Dead Cow.
With 2 small Mandelbrot sets as the spots.

Frosty

I can't post a screenshot, but if you use Luca's juxtapose while she is over a chasm, the person gets over the chasm, wether they float or not. Sorry I can't post a screenshot.
Yeah, I'm a snowman. Got a problem with that?

Presentiment

^ that isn't an AI problem, and

I thought it was intentional.

Zhampir

Correct Presentiment, this is not a bug in enemy AI but it is a bug in the AI. There should likely be a check ran to see if the space Luca is on is normally reachable by non fliers. Sure she can teleport them to the other side of a wall but she shouldn't be able to teleport them into the wall.

KZ

She doesn't teleport folks into a wall, as she herself cannot be over it. However, she can teleport folks over chasms, lava, etc. It would be too difficult and time consuming to code othersiwe, hence I suggest giving an explanation to the said phenomena: Luca continues to link-up to and support the unit she just juxtaposed with, such that some of here characteristics, like flying, are still partly residuent with the person she swapped places with, thus, she is more alive after juxtapose, whilst the person is more in the spirit realm, and has a few lingering properties for a short period of time.
Welcome to the forums!
Read the rules, use proper grammar and punctuation, play the games, share your ideas and enjoy your stay!

Zhampir

That... is very interesting, but couldn't that suggest that if Luca wanted(and knew how to) to she could switch her ghostly form for the form of a living person? (that would be an interesting plot twist, especially if  an odd romance was started between Luca and Duvalier before she turned human)

KZ

Ok, here is a small AI improvement that can be made for the Lesser Ghost: as indicated on the image, the ghost was on the red tile, it could've easily backstabbed Arman (green path), but instead it went for a side-attack (red path), methinks the AI could be more powerful, if it would go for back-stabbing more often

Welcome to the forums!
Read the rules, use proper grammar and punctuation, play the games, share your ideas and enjoy your stay!

Zhampir

perhaps the AI was trying to keep from being attacked itself?

Alan

Yes, that is possible what Zhampir said... In my experience I have found the AI takes backstabbing opportunities most, if not all, of the time... although a look at the image makes it apparent that not only did the ghost take the less powerful attack, but I believe made itself more, not less open to attack... If it had backstabbed Arman, it would have its side and back covered because of the board edge and line of barrels... now it not only had a weaker attack, but arman can walk around the barrels and backstab the ghost... its two positions also don't really put it farther from anyone else who can hit the ghost (except  Set, who couldn't harm the ghost anyways, and could probably still reach the ghost in its current position if he did have attacks.)

Alan

Okay, looked at the map agian, Zhampir could still be right... depending on skills and turn order in the backstab position the ghost could be in range of Rahel, Griffin, and the Hero, and possibly can't be reached by some or all of those.  But even if there was some sort of self-protection code, it wouldn't make sense in this sort of situation, as a good number of ghosts are still alive and the AI should just do as much damage as possible... since there are other targets for the heroes, dealing less damage to protect a single ghost makes no sense.