Sunday, September 17, 2017

Cast of Characters

Part twelve in a weekly(👫) devlog.

Standard development disclaimers apply. This is pre-pre-pre-Alpha content, everything is subject to change, features may not be present in the final version, there's a very strong chance none of this will ever be released, etc. etc.

There shouldn't be any plot spoilers in these posts, but there will be occasional discussions related to characters, locations, mechanics, and other aspects of my potential upcoming Shadowrun campaign (tentatively titled "CalFree in Chains"). You may wish to skip them if you'd like to be completely surprised.

I've started chipping away at that massive 30-page scene that I was complaining about earlier. It's big, but I'm now feeling slightly reassured that it isn't too big... it would almost certainly be tedious if every mission in the game was this talky, but as a single semi-optional outing I think it works OK. It helps that it's divided across a bunch of different characters/terminals, so no single section is too long-winded, and each person has a pretty different tone/outlook, so hopefully it doesn't feel too repetitive.

Make It Special

This is also one of a couple of scenes where I'm re-using an existing map. Like in Caldecott, I'm taking some low-effort steps to help make it feel a little different: using new lighting and weather effects. After making Caldecott, though, I realized that I could view this as an opportunity for additional reactivity rather than as an obstacle to minimize. So, certain physical elements of the map can change based on the decisions you made during the previous mission in this location. And furthermore, you can re-encounter some of the same NPCs from your first visit. This gives yet another opportunity for reactivity, as they can comment on your prior actions, and may contribute to the sense that this is a persistent, coherent world. I hope that the end result of this is that players will go "Oh, cool, I'm back in Y, that means I can check in on X again and see how he/she is doing!" rather than "Ugh, nice map re-use lazy developer person."

Because players have flexibility in how they choose to run missions, between two and five scenes may have elapsed between their first and their second visit here. The longer it's been, the greater the risk that they will forget the characters from their first visit. I can help mitigate this through my writing, by giving them unique voices and roles. But I think it's even more helpful to give them unique appearances, striking portraits that players will recognize at a glance.

For the remainder of this post, I'd like to chat about NPC creation. This won't cover crew members, who are a lot more complex, but the majority of non-Shadowrunners who you will encounter over the game. I mentally classify these into two major groups, civilians and combatants. Civilians are quest-givers and other NPCs with whom you converse, combatants are dudes and dudettes whom you can shoot. Some characters will be both: it gives more weight to the combat if you've previously spoken with them and learned their objectives.


I usually start by dragging out the Civilian spawner from the Asset Library, which sets some initial AI settings and stuff that are helpful. You can also use the standard Actor Spawner; especially on a non-combat map, there won't be much difference between the two.

A civilian NPC will need three things: a name, a face, and a body.

What's In A Name?

I try to come up with "real" names for characters when I can: "Bob", "Twiddlywinks the Fierce", "Rutherford Wilson Nantucket III", etc. If I want to signal that this character is unimportant or meant to be attacked, then I'll use a role as their name: "Security Guard" or "Wallet Inspector" or something.

In this particular scene, I am using civilian job names for characters: "Plumber" and "Exterminator" and the like. This is mostly because I think players are more likely to remember their jobs than their names: just reading the name gives them some immediate context for who this person is.

Game Face

Honestly, the character portraits are a huge part of why I'm writing another mod for Shadowrun instead of striking out on another platform. There are a huge amount of great-looking, diverse, interesting character portraits in there, free for the taking.

If I already know the sort of character I'm looking for, I'll typically browse through the portraits in the content pack on disk. You can also use the in-game portrait browser, but I personally prefer the external approach which makes it easier to resize and view multiple images. I also have a personal stash of portraits that I like, and will scan through those to see if one fits the role/personality I'm envisioning.

More talented developers are able to draw their own new character portraits, a skill I greatly envy. Using the built-in portraits does have the advantage of a unified and familiar art style, but comes with its own challenges: in particular, virtually every portrait has already been used in one or more of the official campaigns, and it can be jarring to see a doppelganger suddenly appear in my campaign. So I try to avoid reusing the portraits of major NPCs, like Monika or Sam Watts or Gobbet.

Minor NPCs is a little risky, but in my opinion acceptable. If a character showed up once in a particular scene in a previous game, then I don't feel too bad about grabbing that image for my own game: for example, the minor villain Wren in Dragonfall was reused as the ally Tabitha in Antumbra Saga. My personal rule of thumb is that if I don't have a vivid memory of the character, it probably won't be too jarring to re-use it.

Using PC portraits raises different issues. There are tons of them and they're a great resource, and the majority of players won't have ever seen any one particular portraits. But, someone has played with it before, leading to the doppelganger problem again. I mitigate this somewhat by blocking players from selecting those particular portraits within my campaign (a technical process I won't address in this post). They still might be familiar from a previous campaign, which is mildly unfortunate but (in my opinion) not a huge problem... I've used my own character portraits in previous campaigns as an NPC and it didn't really bother me.

One nice cache of new portraits for CFiC has been previous campaigns. You can copy over portraits from Seattle, Dead Man's Switch, Berlin and Dragonfall that didn't make it into the new Hong Kong art pack. My preferred source here are the hireable runners (like the Nephilim Network): they never had a speaking role, and most players won't have recruited them anyways, so my use of them won't clash with existing play experiences. But NPC portraits and other backer images are fair game, too.

Some Body

Much like portraits, there's a really nice variety of 3D character models available for NPCs. These take two major forms: prefabricated models, which are simple to select and use but can't be customized, and "core" models, which allow you to select from a range of skin tones, hair colors and styles, and a few other modifiers (beards for males, horns for trolls). If you go the "core" route, you will also need to add an outfit for the NPC to wear, unless you want them in their underwear.

You can't preview these within the editor, and it's tedious to re-launch the game each time you want to verify something. Fortunately, folks have taken the time to create a model browser that lets you quickly view all of the available options within your web browser. A version of it is currently hosted on Dave of Death's site, though I prefer downloading to use offline.


One challenge: many of the portraits don't line up nicely with any of the available models. I try to get close, but, honestly, even the official portraits and models don't perfectly match, and I don't think players get that worked up about it. They'll notice if you match a portrait of a huge bald troll with the model of a svelte elven businesswoman, but they won't care too much if, say, she's wearing a jacket on her model and a tank top in her portrait.

If you go the "core" route and are using a PC portrait, you can also choose to look up the portrait code directly from hongkong.pcode.txt file. You'll still need to pick out an outfit, though.

Sidebar: one of the more annoying aspects of working in the Hong Kong engine is that, while HBS redid the ork and troll body models for the new game (which is great, they look a ton better now), they did not update the legacy outfits to match. You can still use them, but the characters' skin will clip through the clothing or otherwise look ridiculous. Bottom line: Hong Kong outfits work for all characters. Outfits from DFDC and earlier will work on humans, elves, and dwarves, but not on orks or trolls.


So, cool, that's how we create NPCs. What about people whom we want to shoot? We can skip the face portrait for most of these, since we'll never see them in the conversation interface. Most other elements of NPC creation still apply, and in addition we need to select the appropriate stats for them.


I usually start off by searching the Asset Library for "errant", which produces some great pre-generated enemy characters. These come with appropriate stats, equipment, and AI settings. They also come with default names and models, which I'll almost always want to override.

One side note: there isn't a melee enemy type in the Errant group, so I search for "triad" to find the "melee" characters. (Unfortunately, Triads do not include some other types like Shaman and Grenadier, so you need to mix and match between the two groups). If you want enemies to use swords instead of baseball bats, one easy approach is to use the melee character but manually replace its Thug_Melee gear with Adept_Melee gear.

I always use the lv1 versions of these characters. They are already set up to scale their character sheets, so when the player actually encounters them they will be advanced to the appropriate power level. If you were creating a linear campaign, you could manually select the level you wanted to use; but personally I would still use lv1 for this and scale them. That way, even if you later change your mind about the order of missions or power curve, you just need to update the CharacterScaleAmount variable rather than update dozens of character instances.

What about tougher enemies? I'm not really talking about bosses here, but I will note in passing that the "redsamurai" enemies from Gaichu's loyalty mission are nice, beefy opponents that also support level scaling. (Though the curve is a bit rough - they're way too powerful at lv1, and are more appropriate for mid- and end-game). 


I tend to follow HBS's convention here: each enemy has a 2-part name, with the first indicating their faction and the second indicating their combat role. Examples include "Lonestar Sniper", "Fuchi Mage", "Humanis Thug", etc. Faction isn't strictly necessary, but it contributes to the player's understanding of the encounter. The second part of the name is important since it has a strong impact on the player's strategy and decisions: if there's a mage on the battlefield, they need to know so they can deal with it now and not get surprised by a fireball next turn. (You can and should reinforce their identity by picking a corresponding character model, but, again, the Shadowrun engine is not very detailed and you can't expect players to pick up on the fact that one character is wearing a hood and another has a long gun.)

Boss-type enemies will usually have a distinctive name, like "Thomas" or "The Spirit Of Despair", which reinforces their uniqueness.


As with NPCs, we can browse for appropriate character models. I almost never bother with customized core models; there are great sets of existing enemy factions that you can draw from. What's really nice about this is that the opponents will be visually unified (similar color scheme and armor design) while individually distinct (varied skin tones, metatypes, genders, etc.). That helps make a fight feel coherent and also like you aren't fighting a bunch of clones.

When you're facing the same faction as in one of the existing games, that's great! You can make use of Aztechnology or Lonestar or Knight-Errant or whatever. When I need to use a faction that's unique to my games, I'll try and pick an existing faction that doesn't appear and co-opt it. For example, I used the Humanis faction to represent the Native Californians in Antumbra and Caldecott: they have a similar ideology and racial makeup. I initially used the Tsang Security to represent Shiawase, though I was able to update to proper Shiawase models after HBS added them to the expanded edition (thanks, HBS!).

So, yeah, that's about it! Compared to a lot of the other stuff I work on for the mod, personalizing NPCs is relatively quick and straightforward. I feel like you get a lot of bang for your buck: leveraging all the time and effort HBS has invested into making good-looking characters, who you can then recast into original roles in your own story.

Video games are a highly visual medium, and characters, along with maps, are the thing players will spend the most time looking at. Having them make sense and look good is a key element to engaging players. And, honestly, engaging myself as well: I love seeing those characters from my pages coming to life on my screen.

No comments:

Post a Comment