Before you read on, check this out: What? Were you raised by wolves? I just thought I would share.
With great characters, one can make an addictive book even if the plot is a little thin. This is what real life is like, isn't it? Life doesn't have a plot or intricate storylines, but you'll find wonderful people (maybe not in all cases, but certainly memorable).
Every character should act like a real person who has been shaped and influenced by life. Everyone has been shaped by a past. They should have an automatic reaction to their surroundings. If say, a character was betrayed by a friend, they might have trust issues later on in their life. If they were attacked by dogs as a child, they might end up having a fear of dogs and will be uneasy around them even after counselling and therapy.
Why are you writing a story? What makes you to spend hours upon hours sitting there, trying to put your story into words? We all have something we want to achieve in life, right? We make our decisions to help us get there. We may waver at certain times or even stop chasing it altogether and find something else. Characters should be the same. What motivates a character and guides their decisions?
Adding to this, characters have basic and secondary motivations just like us. Everything that we (and your characters) do, there's something that influences every aspect of our lives, like a fear, desire or need. This includes times when we think we're not using our heads and acting based on instinct. This is called basic motivation.
Secondary motivations represent needs and desires that can be satisfied. If a writer writes books to earn money, they might stop once they're satisfied with the amount of money. This is secondary motivation. If a writer writes books because of their passion, then they would keep on writing even if they have enough money to live comfortably for the rest of their life. This would be the basic motivation that would keep them going.
Characters need to be consistent. If a character has a fear of any type of transportation and gets sick on them, they're not going to willingly ride a train. They can't get over a fear easily when they have to fight while the train is moving. They're going to be sick and be pummeled by their enemy unless someone comes to their rescue or the train stops.
Not every character will reveal his/her motivations to the reader. Focus on motivations supporting the plot, the ones you want to matter to the reader. Don't go around creating backstories for characters who appear in one scene and putting it in your work. If it helps you make them more realistic, then go ahead and keep it stored away somewhere safe. Think about it like this; readers don't want to read about the person walking by for pages while your main character is crying on a bench.
Every character has their own point of view. We all perceive things differently based on our thoughts, experiences, attitude, memories and emotions. Characters have their own unique views, just like we do. It's very important to know your character's history and background to know their attitude and their perception.
Every character has more than one problem. Their only problem shouldn't just be the main conflict of the story. They have everyday problems to worry about, just like you and me. Granted, they might be different problems like keeping dwarves from diggy-digging holes under their houses or stopping android prototypes from wreaking havoc in their lab. Just don't give them too many problems or they'll end up stealing the story away from the main conflict.
Characters need to have realistic-sounding voices. Not everyone speaks in proper English while talking to people. Some have accents. If they're immigrants, those who are in their teens and older tend to have slightly accented English (or another language), but children usually learn to speak like they were born in the country and might forget their first language. Some (or most) teenagers use slang and invent new terms. Just go to Urban Dictionary to see some.
No writing dialogue like you're writing a research paper and using fancy-schmancy terminology unless the character has a good reason to, like if they're a researcher trying to explain what they do.
Another thing to remember is that characters need to grow and develop over the course of the story. It's rather boring if one character who rushes into things without thinking stays the same way by the end. There should be something that makes them think twice about doing that. Maybe someone important to them got hurt as a consequence in the middle of the story. Things like this are what make stories interesting.
One trick I discovered to creating realistic characters is to put them into various situations and watch how they get themselves out of it. Don't just order them what to do, say or think. Let them figure it out. Poke them with sticks and see how they react. Will they cry, yell at you to stop or break the stick (and your arm) in half?
This might end up driving you crazy if your characters develop to the point where they are fully conscious and start judging your life from your brain...no...I'm not saying this from personal experience, what are you talking about? (= _ = ;)