FakeFishGames / Barotrauma

A 2D online multiplayer game taking place in a submarine travelling through the icy depths of Jupiter's moon Europa.
http://www.barotraumagame.com/
1.75k stars 406 forks source link

Bots/AI is completely ignoring broken devices instead of repairing, not following orders #11124

Open NaturalBornCamper opened 1 year ago

NaturalBornCamper commented 1 year ago

Disclaimers

What happened?

Bots completely ignore broken things. Happens with several of them, not only the electrical engineer. One of the assistant also had this issue but it died so I don't have him anymore on my savegame for you to test. This happens ALL the time, restarting the game does nothing. Sometimes he repairs but he always ends up ignoring a few of them.

Here's my savefile Here's a video of the issue happening where you can clearly see he has the order to fix electrical devices already, then I delete the order and put it back but he still ignores. I then switch over to the character to repair myself (so it's not a skill or tool issue).

https://user-images.githubusercontent.com/1697306/221036862-493fd44e-addb-4b7e-ad52-a7ea137dfd4a.mp4

Reproduction steps

  1. Be in submarine
  2. Watch bot ignore repairs

Bug prevalence

Happens every time I play

Version

0.21.6.0

-

No response

Which operating system did you encounter this bug on?

Windows

Relevant error messages and crash reports

No response

itchyOwl commented 1 year ago

Found some minor issues regarding to this (fixed in Regalis11/Barotrauma-development/pull/3947), but I'm not able to repro the main issue. None of the items were broken in the save, so I throwed an emp grenade and checked how the bots repair things. Noticed that they do have some issues with the double-hull structure of the engine room: image.png

Also noticed that they might at first think they can't repair the targets that are deterioriating fast because they were too "hasty" on making the decision. But I think that mainly affects items that are under water, like the engine on your save (Not sure what's up with it, but the pump in the lower room doesn't seem to drain the water entirely. Seems that you have some custom wirings and logic component etc there, which might affect it?)

NaturalBornCamper commented 1 year ago

Flooded engine was just so my electrical engineer could increase his mechanic skills while I was shopping in the station, forgot to drain the engine room before I shared the savegame file ;)

Engineer ignoring repairs happens mostly in mission, for example when engine goes from 100% -> 0% and junction boxes overload (although my electrical engineer also stops fixing the engine at some point in the station when I flooded it. You can reproduce this by just telling the Electrical engineer to fix the engine then letting it work AFK while you go for lunch, and when you're back, he should just be hanging around haha). The easiest way I found to make the electrical engineer ignore those junction boxes is to just randomly navigate around putting stress on them, breaking the junction boxes and at some point you will notice he just stops repairing (this is how it happens all the time, in missions).

As for custom wiring, I don't think any of it is changing the AI repairs. It's mostly to shut down the o2 production to save power according to o2 levels, some custom door circuits and made some tests with battery connections.

Another thing I might think of: my previous captain got stuck, clipped in a cave wall. I used a cheat to give myself a new one during that mission and left my old one behind. Not sure if this messed up something, however the electrical engineer that refuses to repair is a bot I've had since the beginning of the game.

itchyOwl commented 1 year ago

Thanks for the details! I'll try to repro it again.

JeroonBosch commented 1 year ago

Not yet fixed, moving back

itchyOwl commented 1 year ago

Jeroen was maybe able to repro it, but then couldn't. I wasn't, but didn't use too much time on it. Let's keep the ticket open. Maybe I'll be able to repro and fix this eventually.

itchyOwl commented 1 year ago

I might have encountered this, but wasn't running a debugger. In my case clearing the orders and reissuing them helped.

Arctomachine commented 1 year ago

Happens to me from time to time. Sometimes it is after nuclear explosion in abandoned outpost. Then bots repair most devices, but ignore some. Other times it is after the only bot with repair task comes back from beacon station and all devices get damaged by that time. My guess: it happens when there are too many broken devices at the same time.

Regalis11 commented 1 year ago

@itchyOwl do you have any idea whether the AI fixes in the summer patch might've addressed any issues related to this?

itchyOwl commented 1 year ago

I don't think there's anything in the summer patch. Regalis11/Barotrauma-development@4b57870 might have affected this, but only if the original issue was fixed by reissuing the order. And that's an older fix. Not sure if we should keep the ticket open. At least there's no need to actively look into it, unless we get further reports/info about it.

Adrenesis commented 4 weeks ago

@itchyOwl Hi, new player here, using absolutly no mods. I am using a customised Dugong which does not have any edit on the room layout.

I am sure this issue must stay open, as the current is quite impressivly bad.

Here is a non exhaustive list of what I encountered in 50 hours of playing (during the 5 last days): -bots glitching in the airlock during fights (either staying doing nothing especially when they are people transported for a mission, or getting out of the ship by the first hole done by the monster to kill themselves ???) -bots unable to climb ladder -bots unable to open doors when on a ladders => some notes on that at the bottom -bots not being aware they should fix leaks in ballast and saying randomly "hey, I need a dive suit" when 5 are available -bots being erased when the game reset to the last save after dying (which could go in its own issue) -guards not being able to keep their state machine when using a ladder and glitching from aggressive to passive

Reissuing the order fixed some of those glitches and some (like all the ladder glitches) not at all. The game should also have an order for the bots to fix leaks outside.

To be honest with you, as a game developer, I think that in the current state I would mobilise one part of the team to just redo the whole state machine of the bots. Glitches are happening very randomly and waiting for reproducing sample will not lead somewhere.

Also while fine tuning the Dugong I tried to bind the room at the bottom right of the ship, I was not able to make the game consider the space at the right of the right ballast as inside even by stretching wall and background to make sure it is sealed. => This is because I did not discover the Hull and Gaps item in the editor, nonetheless there should be at least a Hull/Gaps automatic functionnality or at least a warning for the user to know about them (the lazy way).

On that last point, when generating waypoints for bots while not changing the layout leads to different waypoint layout (which seems like a big code smell here, because waypoints should be deterministic and not random) => Seems to be heavily linked to if the sub just got loaded and sprite/waypoint offsets.

The game is excellent but these glitches are very dampening for the user experience, because all of the in-game bot glitching are happening mostly when you are not aware of it, leading most of time to an essential submarine function not being handled and mostly to death of the players. In the current I wouldn't even try to do a singleplayer campaign because of that.

=> Concerning bots and ladder, I noticed that (easily reproducible with the setup lower) not only the waypoint generator placed 2 waypoint too close on the top ladder (leading to a bug where if you reselect the ladder waypoint on the door it becomes a ladder+door waypoint, but also there is probably the glitch where if bots have things to do slightly out of range (which I'll find back the reference)

image

itchyOwl commented 3 weeks ago

Hello Ardenesis! I'm sorry you've encountered so many issues. However, none of them seem to be related to this ticket. It's more constructive to give us a detailed description of each issue, rather than just quickly list a bunch of issues. Jumping into conclusions doesn't help at all. Most of the things you mentioned have been ticketed before, but shouldn't been issues anymore. If you still encounter issues, please create detailed tickets about them, so that we can actually do something about them.

Adrenesis commented 3 weeks ago

Hello itchyOwl (please watch out for nicknames ^^),

I'm sorry, I was discovering the repo at this time. I completed some of the issues I was mentionning, I also started to explore the code itself. I saw there are many issue closed and open concerning those subjects, I'll complete my research (and referencing similar issues) once done.

However there should be an issue referencing AI issues in general to have an index of glitches and their dependencies while solving them. Thank you again for you answer.