A few other thoughts I had after playing:
The enemies have fairly simple AI, where once they notice you, they just chase you infinitely. I think that can work, but it could perhaps be improved by doing this:
Give each enemy a bit of a different movement speed. - That way, they won't bunch up as much, and it makes them feel a bit more different and therefore more natural.
- For example, if the current running speed for enemies is, say "5", you could make some move at speed "3" (quite slow) and they're therefore easier to get away from. Another could be "5" (full speed) who slowly gains on you, and is therefore more persistent and more dangerous.
- This has the benefits of making them feel like they have different personalities, different threat level, and produce different dynamics for the player to deal with. All just by varying their speeds!
- (Another character could be 4, another could be 3.5, etc). You could just hand-tweak their speeds, or give them some code that randomises their speed on Start() or something.
Also, you could add a basic check system that lets a chasing enemy go back to being a pastroling enemy.
- For example, add some code that runs when they are in the chase state, which says something like, "Each Frame (or each 0.5 seconds), do a raycast to see if I can see the player (if it gets blocked by a wall or other collider, it counds as they can't see the player for that check).
- If I can't see the player on that check, increment a timer/counter. Keep adding up these checks. "If I don't see the player for [6 seconds], go back to patroling/walking around."
- If at any point within those 6 seconds they DO see the player, keep chasing, and reset the counter to "0" again.
- So, they keep chasing the player, but if they don't see the player for everty check they do within 6 consecutive seconds, they go back to patroling. At that point, they could also say something like "Damn it! They go away." Or, "Where did they go? Run and hide! I'll find you later!".
- This lets the player know the enemy gave up, and it's also satisfying to hear that you've outsmarted them.