It is hard to talk about poison as a mechanic in games because its implementation is so varied. Generally though it acts as a damage over time (DOT) where small amounts of damage are taken over long periods of time. Each instance of damage is so tiny that it doesn’t feel threatening, until you look back 30 seconds later and realize half your health is gone.
Butterfree is pictured here condemning this poor child to a slow and painful death via poison.
Side note: Butterfree is the best Pokemon.
Poison forces the player to have to do something. Once poisoned you have to either cure yourself with an antidote (assuming you won’t immediately get poisoned again), or get more aggressive and kill whatever poisoned you so you can get somewhere safe and wait out the effect. Poison makes it so that you can’t just sit back and try to learn enemy attack patterns because you are constantly taking damage. Time is not on your side when you’re poisoned and you have to do something.
The first problem with implementing poison in a game like Enter the Gungeon (EtG) is the health bar. In EtG you have a small amount of discrete health. You can only take 4-6 hits at the start of the game before dying, and all sources of damage only deal 1 damage. This is a problem for poison because it wants to do a small amount of damage over a long period of time but with this health system we can only hurt the player in increments of 1.
If the health system doesn’t provide the granularity we need to implement a poison mechanic then we will have to add that granularity outside of the health system.
EtG does this by adding a meter that measures how poisoned you are, which when filled causes you to take damage. This results in a damage threat that is very small yet if ignored long enough results in a surprising about of damage. That is the threat we want out of a poison mechanic.
By making getting poisoned a gradual thing instead of a true/false status condition we can greatly expand upon when/how it is used.