What Makes A Good Character? 5 Things That Make The Difference

The main character of a story can make or break its appeal to a reader. How many books have you read that you couldn’t fully get into because the main character was irritating or poorly developed? When you’re reading a book you experience the world, to at least some extent, through the eyes of the protagonist. This obviously varies somewhat with different choices of perspective but, even when you’re not looking through the main character’s eyes in a first-person narration, you’ll be spending more time with the main character than anybody else in the story. In most cases the plot is being moved along by choices and actions made by the main character, and if you can’t stand that character then you’re going to have a much harder time feeling invested in the rest of the book.

This isn’t to say that all main characters have to be lovely people in order for a story to be successful! There are a whole host of examples of protagonists we love to hate, the anti-heroes and morally complicated main characters who we follow compulsively even when we deeply disagree with them. But if a good main character doesn’t actually have to be good, what do they need? I don’t know if I can give you a definitive answer on that, but here are some of my thoughts.


If I’m going to hang out with a character, maybe even inside their head, for any length of time, I want to feel like there’s something more to them than meets the eye. I want to feel that I’ll be rewarded for paying attention to them, that there’s something interesting to learn in their backstory or the way they think. One author in particular who I think creates wonderful characters is Laini Taylor, if you’ve ever read one of her books you will probably have noticed that not just the main character, but almost every supporting character in her stories has texture. Personality. They don’t feel like they’ve been put in the story to serve a single purpose (be a minor enemy, deliver a witty line, present a plot obstacle), they feel alive. I love it when all of the characters in a story feel like they have some depth to them, but I can overlook two-dimensional side characters. If the main character of a story feels like a cardboard cut-out though, I can’t get invested in the story.

It’s hard to write a character with depth if you don’t know them that well yourself, so if you’re struggling with that it might be worth taking some time out to really interrogate your protagonist and see if you can’t find some unexpected depths to reveal!


It can be maddeningly frustrating to grow to care about a character, to understand them as fully as you can, only for them to go and do something that seems to come out of nowhere. This can come from different things – an attempt to surprise the reader, for example, or from necessity after writing a character into an impossible situation. Whatever the reason, when I’m reading and a character does something that seems to contradict everything that’s been written about them up to that point, it just comes across as bad writing to me. It makes the characters feel less real, and makes me less interested in what happens to them.

Of course, real people aren’t perfectly consistent, and it would be weird to expect that from our fictional characters. But a character’s core traits, opinions and values shouldn’t change randomly over the course of a story. If they do change, it should be for good reason, adequately explored within the narrative. Which brings me neatly onto my next point!


“But Laura!” you’re complaining in my head right now, “You just said characters had to be consistent!” Yes, I did, imaginary reader. But consistent is not the same as static. Characters can and should grow and change throughout a story, with a couple of caveats.

  1. The change should have clear cause, not just come out of nowhere.
  2. The speed of the change should be justified by the context of the story, and not accelerated for plot convenience.

Point 2 is where, in my opinion, a significant amount of the frustration with Game of Thrones’ last season came from. I’m not going to go into any spoilers here, but many viewers were left frustrated by major characters seeming to act in ways that didn’t make sense. And yes, there were reasons for those characters behaving in the ways they did! But no matter how strong the reasons are, it’s hard for an audience to get on board with a massive character change if they’re not given time to really see and feel that change occurring.

Character development is a powerful thing. Breaking Bad was a masterclass in showing how a character’s mental and emotional state, combined with their context, can lead to enormous changes in values and behaviours. Things that season 1 Walter White would have found unthinkable were par for the course by the time the show came to wrap up, but each step towards the darkness made absolute sense for the character.

Walter White is one of the best examples I know of character development.
Image by Виктория Бородинова from Pixabay

Clear Motivation

If you want a reader to get invested in your main character’s journey, they need to have a good sense of what the destination is meant to be. Your character doesn’t have to want something physical or concrete – sure, they might want a particular job, or to win a competition, or to make something amazing. But they might also want independence, freedom or to find love. Whatever your character wants, that needs to be clearly shown pretty near the start of your story. In an ideal world it also needs to drive your character’s decisions and actions, and those decisions and actions need to drive the majority of the plot, but more on that in a moment.

A character’s motivation may well change over the course of a story (observe my previous point about character development!). The protagonist who starts out longing for fame might come to understand what they really want is recognition from people close to them, and decide to prioritise building up those relationships. There’s nothing wrong with a character re-evaluating what they want, as long as there’s strong narrative justification for that, but reading about a character who doesn’t really want or care about anything is really hard work.


Have you ever read a book where it felt like the plot was just happening to the main character, who passively reacted to things as they came up? Sometimes these types of stories emerge from main characters who don’t have a clear desire or motivation guiding them, but I’ve also seen it happen when the character does know what they want. Whichever is the case, it’s frustrating to read. You want to feel like the main character is driving the plot forward, making choices that change their circumstances or affect the people around them.

Reading about things happening to somebody for no reason has very limited appeal. Reading about somebody striving for something important to them on the other hand? That’s a story that’s going somewhere, pun sort of intended.

What do you think makes a good main character?

Those are five things that are particularly important to me in the main characters I read or watch, and they’re the things I try to take into account when I’m writing my own stories. What do you think is the most important? Have I missed off any traits that you think make a really strong character? Let me know your thoughts in the comments!

3 Replies to “What Makes A Good Character? 5 Things That Make The Difference”

  1. Thank you for the insightful article! I have never read anything by Laini Taylor; will definitely check her out. I feel my antagonists are developed better but feel my mc needs more flaws. Excellent blog!


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s