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.74k stars 405 forks source link

Game Logic Inconsistencies: Husk Edition #9215

Closed Wheatley1001 closed 2 years ago

Wheatley1001 commented 2 years ago

Disclaimers

What happened?

Hypothesis: Husk logic is inconsistent throughout the multiple different variables in which the husk exists. There are husks, husked humans, and human husks (genetic). The consistent variable with all of these variations is the husk parasite, which according to a dev response is not supposed to protect from abyssal crushing depths (see: https://github.com/Regalis11/Barotrauma/issues/8810).

Aim: To see if the husk logic for pressure immunity in specific circumstances is consistent across all situations in which it is valid.

What I Tested: Each variable of the husk will be tested inside of the abyss. This will be done at depths above 3000 meters, and at depths below 3000 meters (as the husk wears what appears to be a regular diving suit, with a pressure rating of <3000M). I will test groups of ten (10) subjects in the sandbox mode across two (2) different sessions and record the results. This experiment will be conducted in the current unstable build of the game (0.18.3.0). Additionally, I will be repeating my experiment in the current stable build of the game (0.17.15) as a control variable.

Results:

KEY: G(x)= Group (number)

Unstable (primary):

Husk (G1):

Above 3000M = (test depth: 2508m) 0/10 dead to pressure Below 3000M = (test depth: 3452m) 0/10 dead to pressure

Husk (G2):

Above 3000M = (test depth: 2508m) 0/10 dead to pressure Below 3000M = (test depth: 3450m) 0/10 dead to pressure

Husk (human) (G1):

Above 3000M = (test depth: 2508m) 10/10 dead to pressure Below 3000M = (test depth: 3452m) 10/10 dead to pressure

Husk (human) (G2):

Above 3000M = (test depth: 2508m) 10/10 dead to pressure Below 3000M = (test depth: 3450m) 10/10 dead to pressure

Husk (human, genetic) (G1):

Above 3000M = (test depth: 2508m) 10/10 dead to pressure (NOTE: being within pressure inside the sub takes ~8 seconds to kill. Being within pressure outside the sub IMMEDIATELY kills) Below 3000M = (test depth: 3452m) 10/10 dead to pressure

Husk (human, genetic) (G2):

Above 3000M = (test depth: 2508m) 10/10 dead to pressure (NOTE: still following the previous note. Interestingly however, there is no warning whatsoever that the player is in immediate danger to crushing pressures. The screen does not shake, nor does the character bleed) Below 3000M = (test depth: 3450m) 10/10 dead to pressure

Stable (control):

Husk (G1):

Above 3000M = (test depth: 2504m) 0/10 dead to pressure Below 3000M = (test depth: 3450m) 0/10 dead to pressure

Husk (human) (G1):

Above 3000M = (test depth: 2504m) 10/10 dead to pressure Below 3000M = (test depth: 3450m) 10/10 dead to pressure

Husk (human, genetic) (G1):

Above 3000M = (test depth: 2504m) 10/10 dead to pressure (NOTE: same findings as unstable. Outside hull in the abyss = instant death. Inside hull in the abyss = no warning of danger, death within ~8 seconds) Below 3000M = (test depth: 3450m) 10/10 dead to pressure

Conclusion: The hypothesis was correct. Husk game logic is inconsistent between Husks as an enemy, Husked Humans as enemies, and Human Husks as an infected hybrid. In addition, diving suit logic does not apply to the Husk as an enemy, as they were able to survive beyond the recommended safety depths of the regular diving suit.

Recommendations: I'm not going to claim this is an oversight and demand a fix in the theme of making the player husks immune to abyssal pressures. Husks following the same game logic as Husked Humans (and diving suit logic) would solve this issue just as easily as making players immune to abyssal pressures would.

ADDITIONAL NOTES: Players who pass out due to lack of oxygen but become stage 3 husks during this time cannot be revived with CPR. Haven't extensively tested, however I'm willing to perform a study similar to this one for this specific issue if needed. Players, whilst in the abyss, will die in ~8 seconds if in a pressurised room. If that same player were to be in the exact same conditions with the only altered condition being the lack of a hull, the player dies immediately. Unsure if this is intentional or not, but important to note nonetheless. *Players in stage 3 of the Husk infection will consume oxygen from diving masks and diving suits, despite not needing oxygen.

Reproduction steps

  1. Start a sandbox game with 16 bots on a submarine of your choice (test was done using the Typhon 2).
  2. Move the submarine into the abyss, aiming for around 2500m in depth.
  3. Spawn 10 Husks outside of the submarine. Observe their behaviour.
  4. Spawn 10 Human Husks outside of the submarine. Observe their behaviour.
  5. Infect 10 crew members with the Husk infection, making sure they have Husk genes. Once they have entered the third stage of infection (where players no longer require oxygen and typically are pressure immune), take the infected character outside of the submarine. Observe the behaviour.
  6. Move the submarine deeper into the abyss, aiming for around 3450m in depth.
  7. Repeat steps 3, 4, and 5.
  8. Record findings and identify inconsistencies.

Bug prevalence

Happens every time I play

Version

0.18.3.0 (Unstable)

-

(both stable 0.17.15.0 and unstable 0.18.3.0 were used)

Which operating system did you encounter this bug on?

Windows

Relevant error messages and crash reports

No response

Regalis11 commented 2 years ago

Thank you for a very thorough issue report!

However, I don't quite agree that this inconsistency is a problem nor illogical (unless it causes some kind of gameplay issues, which I don't think it does?). The enemy husks are essentially just empty diving suits controlled by the husk creature (as explained in the loading screen tip "the so-called husk parasites slowly take over and consume the body of their host, eventually turning them into nothing but an empty exoskeleton controlled by the parasite"), while the recently transformed husked humans still clearly have a mostly human body, and it'd make sense for them to react to pressure in different ways.

Changing this could lead to other kinds of issues: if player-controlled husked humans were able to withstand abyssal pressures, it could lead to sort of "soft-lock" situations where a player can stay alive indefinitely inside a sub that's so deep it's impossible to salvage. And if the enemy husks didn't withstand abyssal pressures, we'd need to do changes to their AI to ensure they never end up that deep.

Wheatley1001 commented 2 years ago

Making player-controlled husks immune to abyssal pressures would make the genetic modification too powerful in my eyes. Some of the extra issues I found during this experiment (for example the weirdness of pressure killing you instantly outside of a hull and slowly inside of a hull, without any warning of the user being in danger) could help users identify the husk genes' fall-backs without thinking it's a bug if they get addressed, providing that they're issues at all. Your response is very interesting though. It could lay the groundworks for an independent husk creature outside of a human host to fully explain the pressure differences within the game, though that decision is ultimately down to you and your fellow developers. However you decide to go about it, by leaving the situation as it is, adding crushing depth changes, a new creature, or any other way, this report has given me more things to look into. Certainly more in the area of actual bugs as opposed to game logic investigations, but important areas to look into nonetheless.

Thank you for your time and for leaving a response to the report!

Regalis11 commented 2 years ago

We've decided not to address it at least for the time being.