Has colonist AI improved lately?

Started by Holy-Fire, February 23, 2016, 07:14:06 PM

Previous topic - Next topic

TLHeart

Quote from: Limdood on March 02, 2016, 11:12:58 AM
If you don't want pawns to quit working to sleep, then use the activity restrictions.

My pawns are always set to a mandatory 2 hour "joy" time of day, and a 12 hour mandatory "work" time, with 10 hours of "anything" to get their sleep in (i don't like setting rest times for anything but night owls, they'll sleep when they need during anything time).

A pawn won't cancel his work during "work" time except under extreme collapse-level exhaustion.

The problem with your assumptions, ONLY the work time schedule is mandatory, all the others are suggested activity for that time period, if that activity is needed by the pawn. Joy is NOT mandatory.

Shurp

#31
Can we request at least that pawns won't run into burning buildings to put out fires, thereby incinerating themselves?  It's annoying when you forget to cut a vent hole for them... shouldn't some sort of self preservation say "hey, don't go in there!"

(Note that I didn't *tell* them to go in there -- they ran in on their own, and only one late arrival managed to save them by cutting a hole to the outside)

Wait a sec, wouldn't the Acme Interstellar Instant Roof Removal service take care of that?  I'll have to try that next time.  But a change to the pawn AI would be nice anyway.
If you give an annoying colonist a parka before banishing him to the ice sheet you'll only get a -3 penalty instead of -5.

And don't forget that the pirates chasing a refugee are often better recruits than the refugee is.

Britnoth

Can people please quit with the complaints about the AI doing stupid things because you aren't paying attention? that is the point of the game. The AI will do dumb things, unless you stop it.

If the AI is smart enough to play the game for you, what is the point in playing the game.

Shurp

I'm not asking the AI to decide where to chop the hole in the wall for me.  That's what the player is for, to do the complex stuff.  "Don't run into burning building and die" is pretty simple.
If you give an annoying colonist a parka before banishing him to the ice sheet you'll only get a -3 penalty instead of -5.

And don't forget that the pirates chasing a refugee are often better recruits than the refugee is.

Thane

Someone draw that. Pawns running into a burning building with humorous text of course.
It is regular practice to install peg legs and dentures on anyone you don't like around here. Think about that.

cultist

Quote from: Shurp on March 04, 2016, 01:33:01 AM
Wait a sec, wouldn't the Acme Interstellar Instant Roof Removal service take care of that?  I'll have to try that next time.

Yes, it will. If you can remove the roof, heat gets sucked out instantly.

Limdood

Quote from: Shurp on March 05, 2016, 10:59:53 AM
I'm not asking the AI to decide where to chop the hole in the wall for me.  That's what the player is for, to do the complex stuff.  "Don't run into burning building and die" is pretty simple.

But...

you told them to run into the building and die.

you had firefight checked....you didn't have the building forbidden...you didn't do one of the instant or pawn-work changes to make the situation nonlethal...and you didn't pause the game to change one or more of these previous things before the pawn walked in.

Running into a burning building to extinguish fires.
Pathing in front of a pawn about to shoot an animal.
chopping down the support for the roof directly above you.
Running out to haul/hunt/get items for crafting during a raid.
melee hitting a boomalope.

All of these are a result of user choice/error.  the amount of coding just to fix those 5 situations would be IMMENSE, it would cause dozens of other issues, and it would take away the fact that there are people who might have their pawns run into a lethally hot building (kiting melee tribals into death with a low-value pawn), or melee a boomalope (they're already in the base and you're confident you can easily heal).  You have the tools to make the pawns do what you want, whether its work thru exhaustion, or avoid lethal situations.

porcupine

Quote from: Limdood on March 05, 2016, 03:54:10 PM
Running into a burning building to extinguish fires.
Pathing in front of a pawn about to shoot an animal.
chopping down the support for the roof directly above you.
Running out to haul/hunt/get items for crafting during a raid.
melee hitting a boomalope.

All of these are a result of user choice/error.  the amount of coding just to fix those 5 situations would be IMMENSE
[...]

I think you overestimate the amount of coding required for a few of these things.  Remember, these are pawns acting on their own, not obeying direct instructions (which override their self-thought-out behavior, manual instructions would still override either way since clearly they're handled differently).

Quote from: Limdood on March 05, 2016, 03:54:10 PM
Running into a burning building to extinguish fires.

pawns path their way all the way to the spot where they intend to stand next to, in order to fight the fire.  Every "spot" has a temperature assigned to it.  If temperature = lethal, that spot == invalid, making a given path also invalid.  Avoids running into a burning building, but also running through one.

Quote from: Limdood on March 05, 2016, 03:54:10 PM
Pathing in front of a pawn about to shoot an animal.

A lot trickier to actually implement, but you could simply have colonists not path within X distance of a hunting pawn or its target (IE: say 10 square radius from either), and not accept a valid path as a direct line between the the two.  Sure, it's plausible the pawn paths directly adjacent to the line of fire, but it's unlikely to be the most viable route at that point, since the colonist would be more inclined to walk diagonally towards the outer circle of either.  He may still get shot walking behind the prey, but that's another matter.

I'm sure the cone if fire would be harder to account for, so I'm avoiding that one obviously.

Quote from: Limdood on March 05, 2016, 03:54:10 PM
chopping down the support for the roof directly above you.

Easy.  The engine already knows when a support is load bearing.  Make pawns not remove load bearing objects unless specifically instructed by user.

Quote from: Limdood on March 05, 2016, 03:54:10 PM
Running out to haul/hunt/get items for crafting during a raid.

I'll give you, this one is difficult to avoid.  I make an "inside" zone, and limit people to it during a raid.  Obviously this could cause other problems though if it was automatic during every raid (IE: long siege, where you're screwd by default, etc.)

Quote from: Limdood on March 05, 2016, 03:54:10 PM
melee hitting a boomalope.

If weapon == melee, flee.

erdrik

Quote from: Limdood on March 05, 2016, 03:54:10 PM
...Pathing in front of a pawn about to shoot an animal. ...
Id be more inclined to blame the player in this situation if it was possible to modify the pathing or give the colonist a new move command without messing with their current task.
As it is, giving a new move command to a colonist to avoid maybe getting shot by a friendly hunter will result in that colonist deciding the task they were doing is not so important anymore. Then some other colonist will take the task, and the time spent by the first colonist walking up to the hunter is wasted, and the new colonist has to walk that same path over again.

Obviously this is because the only way to issue a move command is to draft the colonist which causes the task to be freed up for other colonists. It would be nice if there was a "detour move" command that didn't draft the colonist or free the colonist from their current task. That way the player could manually modify the path to their task without requiring potentially half a dozen(or more) follow up commands to re-prioritize tasks.

Mikhail Reign

Hunting colonists could just create a cone of 'non preferred' area on front of them.  Other colonists would just not want to sand in the cone.

erdrik

Quote from: Mikhail Reign on March 06, 2016, 12:03:33 AM
Hunting colonists could just create a cone of 'non preferred' area on front of them.  Other colonists would just not want to sand in the cone.
Its not standing colonists Im worried about, its moving colonists that decided to path through the line of fire.
So it depends on whether a 'non preferred' area would be sufficient to prevent pathing, and how expensive that would be to CPU.

Limdood

Quote from: porcupine on March 05, 2016, 06:28:45 PM
Quote from: Limdood on March 05, 2016, 03:54:10 PM
Running into a burning building to extinguish fires.

pawns path their way all the way to the spot where they intend to stand next to, in order to fight the fire.  Every "spot" has a temperature assigned to it.  If temperature = lethal, that spot == invalid, making a given path also invalid.  Avoids running into a burning building, but also running through one.
This means that the game itself could prevent me from saving the life of a colonist in some situations....run out of my room, which is about to catch on fire, thru the burning hallway to safety....nope, not allowed to walk there.  coding which keeps the player from doing something they should be able to do NO MATTER WHAT isn't good coding.

Quote
Quote from: Limdood on March 05, 2016, 03:54:10 PM
Pathing in front of a pawn about to shoot an animal.

A lot trickier to actually implement, but you could simply have colonists not path within X distance of a hunting pawn or its target (IE: say 10 square radius from either), and not accept a valid path as a direct line between the the two.  Sure, it's plausible the pawn paths directly adjacent to the line of fire, but it's unlikely to be the most viable route at that point, since the colonist would be more inclined to walk diagonally towards the outer circle of either.  He may still get shot walking behind the prey, but that's another matter.

I'm sure the cone if fire would be harder to account for, so I'm avoiding that one obviously.
coding would obviously be hard here, and computer workload would be pretty big too, remember the hunter and target are constantly moving and repositioning.  also, would the computer get spammed with error messages if the hunter walks within 9 squares of a pathing pawn?  suddenly every square next to the pathing pawn would be disallowed.  I'm also fairly sure the path of a pawn isn't recalculated every square...you can see when you watch them walk across the map to train a moving animal...the path is recalculated every 5 steps or so, certainly enough time for even an AI with the restrictions you mention to move the hunter and the hunted to a new position which endangers the walking pawn, and everyone will be up in arms about the supposedly "fixed" problem.  Certainly the coding it is more complex than just...drafting and undrafting the hunter while the other pawn walks by.
Quote
Quote from: Limdood on March 05, 2016, 03:54:10 PM
chopping down the support for the roof directly above you.

Easy.  The engine already knows when a support is load bearing.  Make pawns not remove load bearing objects unless specifically instructed by user.
what?  a pawn will never remove a load bearing support you haven't explicitly told him to even now....you have to mark something to be mined or deconstructed for them to do so...which means you already DIRECTLY told them to do it.
Quote
Quote from: Limdood on March 05, 2016, 03:54:10 PM
Running out to haul/hunt/get items for crafting during a raid.

I'll give you, this one is difficult to avoid.  I make an "inside" zone, and limit people to it during a raid.  Obviously this could cause other problems though if it was automatic during every raid (IE: long siege, where you're screwd by default, etc.)

Quote from: Limdood on March 05, 2016, 03:54:10 PM
melee hitting a boomalope.

If weapon == melee, flee.
But...again, RESTRICTING what i can do in the coding and saying "look its fixed!" isn't fixing it...i may have a colony of brawlers and NEED to melee that boomalope/boomrat.

Adding ANY coding that just looks at a stupid thing that pawns do and says "NO!  you are now no longer able to do that" is, as Tynan said, contrary to the game...the jobs and orders given already TOLD the pawn to put out that fire, walk in front of that hunter, stab that boomalope, there may be a reason that the player NEEDS that to happen.

Also, to the issue of colonists walking in front of hunters being unavoidable, there are 3 options that work fairly well:
1) draft the hunter and manually have him shoot the animal ("hunting" by combat basically...doesn't work if the colonist can't haul)
2) draft and undraft the hunter as the pawn walks in front of him.  This will cancel the shot and give the other pawn plenty of time to clear the area.
3) my favorite, because it requires no direct supervision:  designate only 1 hunter, designate only animals on one small side of the base to be hunted at once, and only a few at a time.  In other words, make sure hunters/animals are never in the same area as haulers.  avoid 2 or more hunters, especially with different ranged weapons, because they could go in the same direction and shoot the same herd, killing the shorter ranged hunter (or either one of them trying to retrieve their kill)

Shurp

Actually, just simply adding a "hey this room is f'ing hot" graphic -- turning the inside red, for example -- would be enough.  When pawns are fighting a fire and start catching on fire it's not remotely obvious that the problem is the room temperature is 350'.  You have to put your cursor over them and look in the lower right hand corner to see what the problem is.  And when you're trying to keep your base from burning down your attention is focused elsewhere... especially when you've just survived a raid by 4 inferno cannon equipped centipedes.

"OK, gotta get Bill to the infirmary, and Mary, now Joe's going over to the medical stockpile to grab xerigium... ok, wtf, why is Bob on fire?  Why is Phil on fire?  Why is *everyone* fire?  WTF!!!" panic panic panic

If you give an annoying colonist a parka before banishing him to the ice sheet you'll only get a -3 penalty instead of -5.

And don't forget that the pirates chasing a refugee are often better recruits than the refugee is.

porcupine

Limdood:

So your argument is that you want to micro-manage your pawns at every available opportunity, and that's your prerogative.

Having said that, the game has already made various improvements since the original A1 to reduce this.  Why?  Because while it may not be obvious to you, most players do not find it satisfying to micromanage "dumb" AI.  This game was setup, and sold to emulate a Rimworld colony.  Nowhere in the description did it say the colonists were all developmentally delayed, and only the Darts branded escape pods made it out.

I was deconstructing your argument of how extreme the coding would be, as many of those items are not.  This argument is otherwise stale, and moot either way;  It's Tynan's prerogative how much unnecessary micro-management he wants to saddle his player base with.

Devon_v

I feel like crisis mode is the time when you want to micromanage things. If your pawns can even intelligently get through a raid or a disaster, you almost might as well play SimCity for all the input you're having on things.

Just kinda reminds me of some of the "what, you mean I actually have to DO something?" reactions to the sappers.

Some sort of general "thermal cam" mode like the beauty display would be nice though, and can't be difficult to code at all.