This is a bit outside my usual area of expertise as a programmer, but seeing as world- and character building is often central to a game’s development, it makes perfect sense to dive into these topics. And what better way to start, than with character design! While the topic may seem fairly subjective and touchy-feely, there’s quite a few ground rules to go by, to ensure that you are doing a good job.
With that being said, what is mentioned here may not always be applicable to your context, but I believe that you will almost always be able to use some of it. I also want to point out that almost all of my knowledge presented here, comes from traditional writing more so than writing for video games, so take this with a grain of salt. However, I believe having cross-field experience can be very valuable.
Finally, an important thing that I do not cover here, is the fact I assume that you are working from some coherent universe. I will cover worldbuilding at another time, but when I talk about “interesting scenarios” you may realize that these often need to grow from interesting worlds, which are worth exploring and interacting with.
Building people from scratch:
Assuming that you know your world, but have yet to write the people for it:
Build from a purpose (scenario). When going from a completely blank slate to a character concept, it is a good idea is start with a scenario which you want to explore. By starting with a sequence of events, an exploration of something meaningful, the characters who execute this scenario are granted the purpose of making it happen. Writing multiple interesting scenarios and putting the same character through them, makes a good framework. If the scenarios are very different in their tone and it is hard to picture how the same characters could participate in both, this is actually a good thing. That means the character development required to get to this stage is unpredictable. It also means you have to work harder trying to reason for that development, but that is when the good stories happen.
Multiple stages of character development is another good idea. This can be hard to pull off if you start with your character and build scenarios for them. But as mentioned above, if you think about stories first rather than people, you can force yourself to come up with some crazy scenarios and some very evolving characters. This also means you should treat an evolving character in stages, almost as if each stage is a different person. That way you will always work with the history of a person, rather than running the risk of forgetting “where they are” in their personal journey, because you just wrote a single character profile template for them. Once you have a number of interesting key scenarios for a character, writing the transitions which cause the characters to go from one scenario to another, also becomes much easier, often feeling like you are discovering the stories in between, rather than coming up with them yourself.
Always iterate and look for opportunities. This may sound a little abstract, but the point is that nothing is ever set in stone until the rest of the team begins producing it (even then, things may change, but at a much higher cost). If you have followed the other two guidelines, you will have one or more character arcs, which are defined by key scenarios that you want each person to go through. Depending on how open your production is, treat each person and key scenario as interchangeable pieces, rather than immovable objects. You never know how swapping a scenario for one character might change their entire outlook and feel for the better, or how some characters may be better suited to become a single person, to ensure that there is enough interesting content and development to their arc.
Admittedly, this last point is more prevalent in traditional writing, than it is in a game development environment, due to how quickly production can lock things into place. But keeping such things in mind may present unseen opportunities for those who are aware of it.
Perhaps a little left-of-field, I found it suitable to talk about the concept of an “evil” character in this post. A well-written and relatable antagonist can carry an experience, while a poorly written one can completely ruin it. Not all games need a complex character to fulfill this role – look at DOOM for example; the whole narrative is just an excuse to blow up demons. But if you are not building a DOOM-like narrative, there are a lot of things you can do to make your villain not just passable – but turn them real in the mind of the player.
See no evil: The most common mistake I see in writing, is that the writer sets out to create a dislikeable character from the beginning. Making them dislikeable is probably the end goal, but thinking about them this way from the start, means that everything relating to the character tends to be influenced negatively. When this happens, it is implied that the antagonist is inherently evil, which – I am going to be a little controversial here – is not something I believe in. I believe that we all, in our own way, are convinced that we are doing good.
If you are a very empathic person, this is where you will have a head start. Compelling characters are logically motivated to do whatever they do, regardless of the player’s perception of those actions. As a writer, you have the responsibility of understanding this logic, to view the world from the perspective of your character, no matter how crooked. This process remains the same for all of your characters, no matter their intended roles, so it is important that you are able to stay neutral. Once again, if it is too ingrained in your mind that the character is “simply evil,” you will have a much harder time looking for the reasons behind their actions. That is why I have written “evil” in quotation marks, because in their eyes it is the player who is the bad guy.
A natural curiosity about people and an unwillingness to take sides on a hunch, is a great skill to have in this context.
It is very important to remember that understanding a character does not mean the same as personally agreeing with the actions of the character. But your morale and ethics as a real person, should be detached from you as a writer. In a way, you simply observe and record, not judge. You don’t have to be a crazy person to write one, but the effort to understand it is what makes it real – when you have to argue for its actions in the context you’ve created.
Show don’t tell: Having an extremely well-reasoned character whose history reveals them as a good person from a different background, does not mean you have to reveal all of those details. What creates a villain in a story is the selective presentation of information, showing the character as opposed to the ethics of the player. Selective truth is much better than lying, because it leaves room for discovery and shining fresh light on what we thought we knew. It leads us to believe that there is more than meets the eye, and that is when the character becomes real. This also helps with worldbuilding, because the character is a product of your universe (eg. “what else do I not know?“). Don’t underestimate the intelligence and imagination of your players when choosing what to omit. If you leave enough pieces, someone will figure out the bigger picture – or perhaps even better, come up with their own explanation and discuss it with others.