Not Every Enemy Attack Has to Do Damage
Everybody remembers the obstacle / enemy that freezes you in place in some way or another.
Consider this the enemy version of causing non-violent conflict. The enemy can annoy, hamper and setback the player in many interesting ways that will add variety to the gameplay and increase the challenge for players. Think of enemies that slow the player down inconveniently, taunt the player at key moments or in some way undo the work that the player is doing or has just done. This type of non-violent but passive-aggressive interference can add a legitimate challenge to bland gameplay and can even be used to spice up aggressive and violent attacks. The enemy can also set up puzzles or be part of a puzzle challenge that requires the player to use critical thinking. Imagine using an electrical enemy to power a puzzle piece and requiring the player to reach and then defeat the enemy which then gives the player access to the puzzle piece. This is one example of a way to re-use enemy gameplay features and adapting them for another purpose. The electrical enemy didn’t try to shock or hurt the player, but was instead using it’s abilities to power a puzzle.
You Always Want the Player to Dislike the Enemy
Having a friendly or semi-reluctant villain in a video game usually does not work well. What works best as far as providing gameplay that players find rewarding is having a villain or enemy that goes out of their way to get under the player’s skin. Taunting and boasting are both common tactics used by developers to get players more interested in taking on the enemies of the game. This big boss is usually featured in smaller battles or at least cut-scenes and storytelling throughout the game to build up the anticipation but also to give the player some time to develop a disdain for main villain.
Even smaller or less powerful enemies should provoke the player into attacking them. Sometimes annoying features or sounds can get players motivated, or the enemy may be actively trying to hinder the player and while the player completes a task, and then the player finally gets to deal with the offending enemy once the task is complete. Other times you can have characters that players grow to like be attacked or otherwise disturbed by an enemy to increase the player’s motivation to “avenge” the character they like. Causing the player to have a healthy disdain for the game’s enemies, puzzles and villains will definitely help keep players satisfied and anticipating what’s coming up next.
Use Dynamic Difficulty to Give the Player Some Help
There should be some mechanism in the game to measure when the player is getting their butt kicked repeatedly or is failing over and over so that counter measures can be taken to help the player get past a particular point. Enemies can go slower, cause less damage or purposefully block less attacks to decrease the difficulty. You can provide additional supplies, power-ups or health to unfortunate players as well. Of course you can also choose to have characters or enemies that comically criticize or taunt players who take advantage of these measures if you want to provide some extra incentive for players to improve.