Pets and hunting

Started by Silvador, April 10, 2016, 02:53:45 AM

Previous topic - Next topic

Silvador

So, after a long absence from the game, I decided to get back into it when I saw a new updated had been released. I generated a world, selected a site, dropped my people on the planet and begun. The first thing I noticed was that I scored a Golden Retriever along with my three colonists/cast aways. That's great, I thought. But I'm a few days in, now, and I've noticed something that I'm sure more than a few people have probably noticed as well. Hunting with a pet around, especially if the pet is bonded with the hunter, can be... problematic.

As anyone who has played this game even once knows, colonists (especially new ones) aren't the best shot and anything within 180degrees in front of the colonist doing the hunting becomes a potential target. Normally this wouldn't be such a big deal, but when you tell your hunter to go out hunting and their faithful pet charges out to attack the hunted animal... Well, you can probably guess where I'm going with this.

Is there a way to give animals commands? Sit/stay, heel. I don't want to go out hunting now for fear of serving up Faithful Pet on the menu instead of Wild Buck.

[attachment deleted by admin - too old]

Negocromn

in the Animals tab you can set the areas your animals are allowed to be

Silvador

Quote from: Negocromn on April 10, 2016, 02:56:02 AM
in the Animals tab you can set the areas your animals are allowed to be

That's a bit on the restricting side, though. While it can be helpful, it can also moot the whole point of having a pet to hunt with.

For example, if I went hunting, I'd like to be able to take my dog out to hunt with me. I could send him to chase rabbits while I took pot-shots at a bear. Or keep him by my side and send him in for the kill if my gun doesn't do the job properly. And if crazed animals come barging into my colony, inside the restricted area, well, then that just throws the whole idea out the window altogether.

keylocke

iirc, the pets only defend the master when something gets close enough and tries to attack them.

most likely, the hunted animal became maddened and got close enough that the dog decided to defend the master. and since the master is equipped with a rifle with crap range at short range, they end up hitting the dog as collateral damage.

this usually occurs for animal revenge events.

when this happens, player usually needs to draft and run away or join their pet in melee combat, since shooting at pawns engaged in melee tends to get collateral damage.

Silvador

Yeah. It was a deer that went nutso, so I told my colonist to hunt it. I wasn't expecting the dog to go charging into the middle of the fight while my guy was firing wildly at who knows what.

Perhaps I should make a suggestion that handlers can teach and give animals commands, to prevent such accidents. Maybe Tynan already has that in the works for a future update...

Robovski

I have thought for a while it would be great to have it such that you DON'T have to have the pets muster with the colonist (which is the first step of training - obedience) as combat is a terrible place for your animals. It is nice to have the pet along when animal revenge happens but pets getting in hunting accidents is much like colonists in hunting accidents. Currently folk work around this but it might be address next update - there was a pretty big response by Tynan on the reddit yesterday mulling over what to do about all the hunting accidents.

geekest_cat

This is Tynan long Reddit post:

QuoteTynanSylvester 35 points 1 day ago*

It's not hard to detect targets who could potentially be hit, if nothing moved.

Of course, you'll still shoot allies who move into the firing line after you start aiming or fire. Shots take time to move to the target. But we can fix that by using a wider rectangle instead of a triangle.

The real hard part is what to do if an ally is in the way. You say 'put gun down' but what does that really mean?

Do we just wait? Well, what if our ally is downed or waiting or working on our firing path, and won't move? Now we're standing there waiting for a guy to move who never will and we look stupid.

So, we need to reposition. But how? Our optimal position is where we already are. So we need a new firing position search algorithm. We'll scan around and look for somewhere to stand to shoot our target. OK, so we can scan a ring of cells around the target, starting at those closest to us, looking for a position with line of sight to the target, like we do now. But we also need to do our friendly fire check on all these possible firing positions as well. So we do that, and reject positions where allies would be in the firing line.

But wait, there are cases where there's no firing position. So what do we do? We can't just fail the job easily (otherwise the jobgiver will just give it back to us and we'll just start and fail it over and over). Maybe we try to find closer positions. So we try that. Eventually we need to give up on avoiding friendly fire and just take a position.

But wait. Now, while finding firing positions against distant targets, we care about allies nearby in current positions. But this is wrong. If an ally was just passing near a target, we will end up rejecting a sensible firing position we should've taken, because the ally was moving and would've moved by the time we arrived anyway. So do we need to evaluate allies and perhaps compare their current path destination (if they have one) with our estimated travel time to guess that they will have moved by the time we arrive and fire?

Imagine a squirrel eating rice in the field while growers move around him and plant crops. A hunter can very easily end up in this stupid looking dithering dance as he tries to find a firing position while not risking hitting constantly-moving allies around the target. In fact, he could end up doing this forever and looking just as stupid as he does now. So is there a way to detect this case? Well, once again, even if we do detect it somehow (perhaps with a timeout or a max number of position finding attempts) we need to remember that it was detected and have the jobgiver not give a hunt job for this squirrel for a while.

But even if we do that, now the player is frustrated because the damn hunter won't shoot the squirrel eating the crops, even though he's marked to be hunted... and so on and so on.

My point is not that it's impossible but that you're vastly underestimating how difficult it is because you're glossing over the hard part, which is what the hunter should do when his shot is blocked. This is why hunting friendly fire has not been addressed so far. Because it's a very difficult problem and is, in truth, fundamentally impossible to fully solve anyway. I've chosen to leave this hairball alone in favor of more predictable improvements.

That said, something needs to be done so I think we'll dig into it for A14. But it still won't be a perfect solution.

Thank you for the props :)

EDIT: Maybe we should just cheat. Disable free intercept on hunter-fired projectiles unless it's against someone fighting the animal. Sometimes little design cheats are the best solution, and I see no easy way to exploit this (yet). Hmm.

Silvador

Why fix the shooter when we can fix the guy wandering into the fire? Instead of having the guy shooting stop shooting, allow allies to detect the cone of a shooter's aim and recognise that they are firing and act accordingly. They already can flee from threats, so implement that same mechanic.

"Oh, that guy is firing over there. I better not walk in front of him."

And, of course, allow us to manually overwrite this AI with the draft command and pet commands (if added).

geekest_cat

My two cents: what about animals having the same (flee/attack/do nothing) system than colonists?

So, a new type of behaviour could be coded just for pets, called "hunt", in which pets would sit next to the hunter and would wait for the hunted target to be killed to retrieve it to the nearest stockpile, while they would attack the animal target in case the hunter gets melee attacked by it?

This way, in case the hunter needs the pet assistance before getting melee hit by the target, they could easily draft and order it to attack; otherwise, it would sit peacefully by the hunter's side, just as well trained animals do. Maybe even that hunting option could be added as an additional pet skill to be learned.

Silvador

Had a mad Tortoise. Sent out my hunter to take care of it. Easy job. Dog came along. Job became less easy. Assigned an "allowed area" to the dog in the hopes that it would go back to the little sleeping quarters so as to avoid any of the usual hunting accidents... The dog stayed. The dog attacked!

Once again, I raise the subject: we need pet commands so they don't go charging into combat and get shot by their allies.

Yes: the allowed zone was created properly (coloured area designating the space I want the animal to go)
Yes: I selected the zone on the Animal tab
Yes: the dog was trained in obedience

What good are pets if we can't even control them with simple, trained commands to prevent them from getting shot by their masters' poor aim? How are we supposed to hunt or defend our colony if we avoid sending people out to hunt and defend for fear of them killing their pets?