Attract/Repel mechanic

Started by Chibiabos, November 07, 2017, 10:40:40 AM

Previous topic - Next topic

Chibiabos

This may be too basic to introduce, but how about attract/repel game mechanics that affect pawn behavior?

Pawns incapable of 'scary' would be repelled away by gunfire, explosions, large predators, etc.  This could include untrained animals.  Pawns might also have things they are attracted to, wild herbivores for instance might get attracted to your colony's dense farming on maps that are spartan for forageables.

This could lead to new traits, such as 'Extrovert' whom seek to be near others, and 'Introvert' whom seek solitude.

Animals should generally be afraid of gunfire or explosions, unless they are trained to acclamate to it.  Social groups, such as herds of herbivores, could even stampede away from predators that are particularly powerful, or form up to fend off a predator, which could make for interesting dynamic gameplay (not just maddened against humanlike pawns if one of them is hunted or shot).
Proud supporter of Rimworld since α7 (October 2014)!

mistomaxo

you raise some good points. some self-preservation instincts for non-drafted pawns and animals would be a great addition

Limdood

pawns already have a "flee,ignore,attack" setting to address response to threats while not drafted.

pawns already have an attraction and a compatibility rating, hidden while not in dev more, to each other pawn in the game.

erdrik

#3
Quote from: Limdood on November 07, 2017, 02:09:13 PM
pawns already have a "flee,ignore,attack" setting to address response to threats while not drafted.
That doesn't account for scary things that aren't actually attacking them.
And I don't think the OP is suggesting they flee, but rather that the colonist's pathing produces a wide berth around whatever it is they consider "repellent".

I always felt it odd that colonists, especially ones "incapable of scary/violence"/wimps, would just walk straight over a bear with out a second thought. Outside the most jaded and experienced of us(and even many of them), most people would at the very least give pause to, and then walk very much away, and around a wild bear. (assuming their goal wasn't to hunt said bear)

Quote from: Limdood on November 07, 2017, 02:09:13 PM
pawns already have an attraction and a compatibility rating, hidden while not in dev more, to each other pawn in the game.
Again that doesn't really attract tho.
It just triggers a reaction whenever they happen to be in close proximity to each other.
I think the OP wants the "attract" part to have a colonist actively seek out social interaction more often or maybe more precisely. I know Ive seen several occasions when my colonists would go to a "gather spot" to "relax socially" only for them to sit there all alone for while, and then continue on with their tasks before anyone else actually arrived to be social with.

Limdood

Quote from: erdrik on November 07, 2017, 10:49:09 PM
That doesn't account for scary things that aren't actually attacking them.
And I don't think the OP is suggesting they flee, but rather that the colonist's pathing produces a wide berth around whatever it is they consider "repellent".
Scary things that aren't attacking them....aren't threats at the time.  With the possible exception of fire (which they already avoid, although the pathing tends to border on "daredevil"), a potentially deadly creature that isn't hunting isn't a threat...I recently had a patched up escape pod survivor hobble off the map, only for him to be attacked by a fox...which ordinarily isn't a threat to humans at all. 

Additionally, your proposed idea of giving threats a wide berth INSTEAD of fleeing falls apart in practice.  If the threat is moving (and all "flee" triggered threats DO move), then the wide berth path needs to not only be calculated very often, but will likely often result in WILDLY out of the way paths...trying to go over a bear at the top of the map, only to have the bear wander up and have to backtrack all the way around.

The flee/ignore/attack mechanic works for a very basic response to threats...with the sole exception of the no-notification "being hunted," the player is immediately made aware of any threat that might trigger that response, including hunting/taming manhunters.
Quote
Quote from: Limdood on November 07, 2017, 02:09:13 PM
pawns already have an attraction and a compatibility rating, hidden while not in dev more, to each other pawn in the game.
Again that doesn't really attract tho.
It just triggers a reaction whenever they happen to be in close proximity to each other.
I think the OP wants the "attract" part to have a colonist actively seek out social interaction more often or maybe more precisely. I know Ive seen several occasions when my colonists would go to a "gather spot" to "relax socially" only for them to sit there all alone for while, and then continue on with their tasks before anyone else actually arrived to be social with.
This also could not work...or if it were implemented in the only possible way it could, it would come up rarely enough not to be noticed anyways.

Pawns don't HAVE free time or preference-based actions.  with the sole exception of being idle or drafted, their actions depend 100% on their work order/schedule and the proximity of objects.  If hauling is next on their priority, and they aren't hungry or exhausted (which the work restriction ignores tired anyways), then they WILL move to the nearest unreserved object to be hauled and move it.  They don't have any leeway to wander a few steps out of their way to say "what's up" to a nearby buddy.  Removing the godlike automation of the work priority would essentially require a complete overhaul of ALL pawn AI mechanics and would turn Rimworld into a completely different game.  And it would be a very frustrating game, where you set up complicated schedules and work orders, and then watch pawns occasionally arbitrarily ignore them with no seeming reason or solution.

Assuming you're aware of that, and the suggestion was ONLY for idle pawns, you'd still have to prevent those pawns from endlessly interacting with busy pawns.  Assuming you're aware of THAT as well, and were implying that this should only be a feature of idle pawns interacting with idle pawns, then i can't see it making much, if any impact on games.

erdrik

Quote from: Limdood on November 08, 2017, 11:07:35 AM
Scary things that aren't attacking them....aren't threats at the time. ...
What a thing is, and what a person THINKS it is are often entirely two different things.
ESPECIALLY when that person has one of the traits I mentioned.
(wimp, incapable of violence/scary, ect..)
Being fearful of things tends to distort a persons perspective of it.

Things that may not actually be threats BECOME threats in their eyes.
And i don't care how brave the colonist is suppose to be, walking straight over the tile a wild bear is on with no consequence or reaction is utterly ridiculous.

Quote from: Limdood on November 08, 2017, 11:07:35 AM
...
Additionally, your proposed idea of giving threats a wide berth INSTEAD of fleeing falls apart in practice.
First of all, it was NOT a proposed idea.
Re-read my post. It was a statement of what people would ACTUALLY do.
Meaning in real life. Show me someone who is willing to just walk up and past a wild bear, within a few feet, and you'll have shown me someone who is either brave to the point of stupidity or has a death wish.
Everyone else with even a lick of common sense would indeed walk SOMEWHERE ELSE.

Quote from: Limdood on November 08, 2017, 11:07:35 AM
...
If the threat is moving (and all "flee" triggered threats DO move), then the wide berth path needs to not only be calculated very often, but will likely often result in WILDLY out of the way paths...trying to go over a bear at the top of the map, only to have the bear wander up and have to backtrack all the way around.
Secondly, you are incorrect:
1. Colonist ALREADY adjust their pathing on the fly.
Whether for other pawns, a door that was suddenly forbidden, or being put into a restricted zone.

2. If the "scary pawn" is moving through a choke point, then a simple solution would be to have the pawn back off, and WAIT for the "scary pawn" pass.
(frankly, I think this functionality would be beneficial to pathing in general. The "backtrack the long way around" problem is not a symptom of choke points being obstructed by moving pawns, but of pawns being unable to recognize, "queue", and wait for the obstruction to pass)

Quote from: Limdood on November 08, 2017, 11:07:35 AM
The flee/ignore/attack mechanic works for a very basic response to threats...
It also INTERRUPTS the pawns tasks, and causes them to lose their "reservations" on things.
Too often a colonist will travel half way across the map, get "flee" triggered, and some other colonist will then reserve the item the first colonist was going for. Wasting the time and effort of both.

Flee mechanics are NOT for avoiding or preventing a threatening event, but for fleeing from a threatening event THAT HAS ALREADY HAPPENED.

Quote from: Limdood on November 08, 2017, 11:07:35 AM
This also could not work...or if it were implemented in the only possible way it could, it would come up rarely enough not to be noticed anyways.
...
BS.
Implement it the same way every other social task is implemented.
Just add another colonist to the task.
Parties and marriages already show that it is possible to call multiple pawns to the same task location.

Get a Random Colonist that is also seeking social interactions, or who's schedule is currently "anything" or "joy".
Tell both pawns to go be social at the same location.

Limdood

Quote from: erdrik on November 08, 2017, 05:10:34 PM
Get a Random Colonist that is also seeking social interactions, or who's schedule is currently "anything" or "joy".
Tell both pawns to go be social at the same location.
This in particular needs a quote, because it is EXACTLY what doesn't work due to the way the AI is structured.  social interactions are NOT prioritized.  Parties and Weddings create an event that calls pawns to a location.  One of the ONLY reasons they aren't incredibly annoying is the huge mood boost they give everyone.  Having pawns randomly create "lets socialize with colonist X" events would be horrific, especially considering earlier in your post you were talking about wasted time.

All other socialization in the game is incidental...pawns randomly attempt social interactions based on their current mood when they find themselves in the same general area as another pawn.  They will NEVER autonomously seek out other pawn because said behavior would then need to have a work priority and a job type (see the implementation of the hospitality mod), and when that job comes up, they would vigorously seek out the nearest person applicable for the interaction over and over until a new, higher priority job appeared or there were no more applicable targets.  Hardly the organic experience proposed. 

Adding a social event would be incredibly disruptive to the normal pace of the game (even with the big benefit, i bet you've been annoyed at the timing of some parties or weddings in the past).  Adding a socialization work type would simply make a pawn spam the job until he couldn't anymore, because that's how work behaves in this game.  Trying to make pawn-seeking behavior organic within the normal progression of the day breaks the entire work priority system in the same way the people constantly asking for pawns to "haul the item they walk past on the way to bed" fail to understand - that when you ask for the game to GUESS what the player wants, you remove the player's ability to plan and predict what is going to happen, which ultimately results in watching a game, rather than playing one.


As to the other, nonquoted points:
-Yes, they run from threats and lose reservations on their job...there is something trying to kill them after all...the alternative is...death?  Wasted time tends to be less inefficient than a rescue, patch up, and limb replacement...again, this mechanic ONLY comes into play in situations where the player really should already be handling the situation...if you have a raid, manhunters, or bug hives on the map, you probably should have your pawns drafted or restricted to zones that don't endanger them.

- pawns currently do recalculate their route periodically, but not that often.  Send a pawn to talk to a moving visitor or trade caravan leader and you'll see how often it updates.  It would be very easy to get "too close" in between the recalculate time, and you run into pawns getting hurt because the game is trying to be clever, rather than a simple "threat = flee."  And again...zones or drafting.  Flee serves its purpose of MAYBE giving the hunter who was on the other side of the map when a raid appeared and you didn't notice and didn't draft him a CHANCE to live.

-reacting to every possible dangerous animal...isn't in the game for gameplay reasons.  You JUST voiced your frustration with "flee" cancelling work and wasting bunches of time.  Obviously realism would diminish gameplay to have the pawn constantly refuse to do something because there's a scary fox/snake out there.  It's a pretty clear case of realism and gameplay being at odds, so gameplay wins...it wouldn't be fun to have to wait 60+ days for crops to grow, or deal with the actual time it would take to build a fueled generator or cut through 1 cubic meter of solid stone either.  It wouldn't be fun to have a colonist waste loads of time refusing to walk out the door because there's a fox out there.  It might be realistic, but it would, generally, reduce fun.

erdrik

Quote from: Limdood on November 08, 2017, 05:56:27 PM
...This in particular needs a quote, because it is EXACTLY what doesn't work due to the way the AI is structured.  social interactions are NOT prioritized. Parties and Weddings create an event that calls pawns to a location. ...
Really? Funny. I could have sworn Ive frequently seen my colonists go and sit down at a table and quote: "Relax Socially" as a joy activity. Without the need for it to be triggered by an event.
Oh, right I sworn that because I have and they do.
Interesting that.

Also interesting? Colonists that are called to a specific location during tasks.
Like when a patient automatically goes and rests at a hospital bed, and calls the doctor over to them.

Further:
Quote from: Limdood on November 08, 2017, 05:56:27 PM
...
One of the ONLY reasons they aren't incredibly annoying is the huge mood boost they give everyone.  Having pawns randomly create "lets socialize with colonist X" events would be horrific, especially considering earlier in your post you were talking about wasted time.
...

Quote from: erdrik on November 08, 2017, 05:10:34 PM
Get a Random Colonist that is also seeking social interactions, or who's schedule is currently "anything" or "joy".
Tell both pawns to go be social at the same location.
Quote from: erdrik on November 08, 2017, 05:10:34 PM
... is also seeking social interactions, or who's schedule is currently "anything" or "joy".
...

Quote from: erdrik on November 08, 2017, 05:10:34 PM
... seeking social interactions ... who's schedule is currently "anything" or "joy"
...

Tell me again how it is a waste of time, when it is telling pawns to do what they are already trying to do???


So lets review:

-Pawns, as a task and not an event, will go and attempt joy activities on their own as a pretense to "Relax Socially".
-Pawns, as a task and not an event, will go on their own to a location that has a need for one of their tasks/jobs.
-There is schedule restrictions specifically for "Joy" or "Do Anything", and thus it is expected the pawn will go do things outside player control and it not be considered "wasting time".


How exactly is the AI "not structured for it" when it already does it frequently for other tasks???

Limdood

because joy is a job. 

lets try this again.

Joy is a job.  eating is a job, sleeping is a job, hauling is a job, doctoring is a job, laying in bed when injured is a job.

a pawn sits at a table and relaxes socially (even when alone) because 1) his joy threshhold OR work restrict type told him to do a joy activity and 2) the table was the nearest or lowest tolerance joy activity available.  Odds are there was another pawn at that table...eating or also relaxing socially, triggered by the exact same mechanics.

Neither pawn sought out another pawn for that activity or called another pawn to them.  Both pawns can easily socialize, but that is the system we have now...they socialize -IF- they are in the same location, they do not go to the same location -TO- socialize (excepting parties and marriages, sort of)

Resting in bed is a job (in the work tab, under patient or bed rest).  Doctoring is a job (under doctor).  Your pawn didn't instigate a social activity, he went to lay in a bed injured because 1) he was seriously wounded, which triggers an automatic run to bed (if able) OR 2) his work priority told him to go rest off an injury.  The doctor didn't head over to the bed to treat him or cheer him up (both doctor work-types) until the patient pawn got to the bed, at which point the NEXT pawn with doctor as their highest available priority at the time would reserve the patient for tending as soon as he became available.

The work types.  make.  sense.  Every action a pawn takes happens for a reason that can be figured out by the work-priority.  When you CAN'T figure out why pawns take actions, because the calculations are hidden or arbitrary, then you can't fix problems.

You want to hijack the "any" work type?  the any work type allows the pawns to rest or partake in joy activities if needs get low...without that work type, breaks start happening all over the place, even if you schedule in joy activities (which, according to what you're advocating, would not necessarily be for joy anymore...which makes using that work type to fill the joy need...not work.).

If you want to ADD IN another restrict type for social...fine?  Each of the other 4 restrict types serve vital functions in gameplay, and changing them in any way has HUGE consequences.  So you can add a 5th restrict type to...do nothing?  cause a few more hookups, breakups, fistfights and mental breaks? fine by me, just don't F with the tons of people using the 4 work types now to awkwardly shoehorn forced socialization.

erdrik

#9
Quote from: Limdood on November 08, 2017, 10:45:43 PM
because joy is a job. 
*slow clap*
Nice point, captain obvious.

Quote from: Limdood on November 08, 2017, 10:45:43 PM
Joy is a job.  eating is a job, sleeping is a job, hauling is a job, doctoring is a job, laying in bed when injured is a job.
Joy is a job, that includes telling colonists to go to gather points and be social.
The "be social" part is indeed just happen stance of whether or not some other colonists happens to be there at the time. But if multiple colonist are already on the schedule for "joy" and they get joy from the "go to gather points" task why is it a problem to call someone else(that is also already on the joy schedule) over to do it at the same location?? The other colonist is already looking for joy activities. Its not going to "F" with your job restrictions.

How exactly is it a problem to have multiple colonists, filtered to only colonists in their 'joy" or "anything" job restrictions to go to the same location at the same time??

Posted in General:
Quote from: Limdood on November 09, 2017, 08:49:57 AM
...
I USUALLY use a 7 sleep, 17 anything restrict, ...

This single line has done more to explain your hardline opposition than literally anything else you've posted.

You are using the "anything" restriction as a catch all, instead of actually making use of the restrictions. Its no wonder you are worried so much about potential anarchy. Seriously, you are basically saying to your colonists "do whatever, don't care" and then complaining at the idea that they could do anything.

Limdood

Joy has tolerances....if colonist X and Y go to the table for joy, but colonist Z doesn't, it's probably because colonist Z has too much social joy already.

Also, socialization is actively avoided by many people playing...the drawbacks far outweigh the benefits.  I DON'T WANT my colonists heading to the same room for joy.  I'm tired of my noseless, earless, one-eyed colony looking like a leper retreat.

grrizo

Lavish meal, now with extra Yorkshire terrier meat.