
There have been plenty of times when I experienced games that are simply too difficult to play. Enemies are simply way too powerful or unpredictable. I ended up just giving up ever playing those games again, even though the games have great graphics and great game mechanics.
Obstacles Avoidance

In the above, we have asteroids dropping down trying to hit the player. While it may seem simple to just spawn new asteroids from the top at certain game speed, we need to consider if the user has been provided enough space or gaps between asteroids to be able to maneuver through those asteroids, realistically.
Enemy Fire pattern
As player spends more time with your games, they will start recognising the different type of enemies they had met and the attacking pattern associated with the enemies.

Now imagine the enemies looks exactly the same, but suddenly have a different fire pattern.

Or even like this:

This will break the players’ expectation, and if they got hit, they will most likely feel like being cheated by the game.
As you can see, enemies design and implementation can make or break your game. More Playtesting can also help identifying playability issues and give you a chance to fix them before game release.