Motley Crew

Hey Folks! We're definitely making headway on the crew portraits.

As you can see from today's image, I finally figured out how to texture swap. After a couple of hours of failing to do things the "right" way, I just hacked some code to do it my way. (Basically, exposed a texture property that would otherwise be private on each SpriteMeshInstance.) And it worked!

And with that running, it's all about adding variety. I put together some more face parts, and hacked together a half dozen variations for each piece. And in the code, it randomly selects from this pool to make each face, pretty much using any piece it wants. The one restriction I placed was skin color, so the sprites match when they overlay. Here's an (admittedly too small) gif of them in action:


Hard to see at that size, I know. Sorry. I should figure out a better way to make gifs. (Let me know if you have any tips!)

However, you can hopefully tell that each crew member is looking around, blinking, and having emotions. It's still not hooked up to actual AI data, but there's a random emote script I hacked together so I could see it in action.

My feeling is that this could work, from a tech point of view. But the art, animation, and overall UI is going to need fiddling to work. That, and the portraits won't be very good at second-to-second AI status. No way a player can keep an eye on all those faces while playing the game, and hope to notice who's in what mood.

However, I seem to recall Sim City 4 did a few tricks like changing the background color and/or shaking heads to draw attention if something is really bad. Maybe the crew just does these subtle emotes most of the time, and it's up to the player to notice. But when it's a crisis (fire, fight, etc.) the portrait comes to life with head bobbing/shaking, background changes, or other cues? Like, when you have a minute, you might scan the faces for signs of trouble. But if TSHTF, they'll catch your eye no matter what part of the screen you're looking at.

Whatever the case, I think it's a worthy addition to the UI. It reinforces the notion that you have live crew members with needs, and it's at-a-glance info on their current statuses. And with a few animation tricks, I think they can become good UI indicators to do stuff in your peripheral vision if they need your attention. I might also be able to reuse these at a larger scale for when you're face-to-face with AI, or when you click on an AI to see exactly what they're doing.


Marc13Bautista's picture

Can't help but look back on Kerbal Space Program's portraits! Very interesting!

Free Elusive Skill = Athletic x4 in ATN Enclave encounter

matsy's picture

I use SnagIT for GIFs at work. It lets you draw the location on screen, record it and then save as a gif.

So all of the portraits will always be visible? Does this mean that potentially there will be a cap on the amount of crew members?

Rovlad's picture

There definitely needs to be more skin colors than two. :)

dcfedor's picture

@Marc, oh yeah! I forgot about those. And they actually emote, too. I was wracking my brain, trying to think of examples, and totally forgot that one.

And iirc, they do a sort of head shake panic when things are bad. Though, theirs is mostly for visual kicks, I think. There isn't any penalty for when one Kerbal freaks out vs. when one doesn't.

I do occasionally find myself looking at the portrait to see if I should be worried about something, though :)

@matsy, I'll have to look into SnagIT. I've heard good things about LICEcap and GifCam, too.

As for number of portraits, good question! I wasn't originally planning to limit the number of crew. But doing the UI this way would impose a limit.

So, I think the answer is still TBD. I might fiddle with this setup for a bit, and see how it goes.

I'm sort of thinking I'll need some sort of in-situ indicator over each AI anyway, to avoid constant mental-mapping between on-screen characters and the portraits. (Think The Sims and the floating diamond over their head.) And if that's the case, maybe the portrait is only for the selected crew? We'll have to see what works best in practice.

@Rovlad, and now you can see why NS had gray a paper doll :)

Ideally, I'd like to have more customization options, but also avoid drawing/maintaining too many assets. And the first thing that comes to mind here is a color-replacing shader. I.e. setup color-coded sprites as a base, and use shaders and data to remap those base colors to whatever the player wants.

Dan Fedor - Founder, Blue Bottle Games

Rovlad's picture

I was actually talking more about crew portrait variety rather than main character generation.
I wouldn't mind if MC was pre-established like in NS or even completely absent like in most simulators/managers.

dcfedor's picture

Yeah, the extra variety would be useful in a couple of ways. More visually interesting, sure, but also would make it easier to distinguish faces. Possibly even lend them some implied personality.

Dan Fedor - Founder, Blue Bottle Games