Your readers need to be able to empathize with your main character, otherwise they will not continue reading.
Best way to make them empathize is by making your character relatable.
'How?'
By giving your character flaws.
Make them human.
Your antagonist or villian should have a desirable quality.
For example: an evil villian that has a lot of riches.
Giving your villian some pros makes the reader root for your antagonist even more.
Face it, humans are drawn to flaws over perfection.
Counterintuitive, I know.
But you are creating friction.
You are sparking dual emotions in your readers.
This will make the readers go on an emotional roller coaster.
If you like stories, then sign up for my email list: eepurl.com/dCLm4H
I do storytelling emails where I take my readers onto a journey from my past
If you read carefully, you will leave with many lessons for life