, 14 tweets, 9 min read Read on Twitter
Hey #indiedevhour! We wanted to do a little series on assembling characters in Shores Unknown. This week we'll talk about general setup and character material. With screens & gifs!
But first, here's a gif of Birgit, because she's cool and owns an inn.
#gamedev #indiedev #lowpoly
Among the goals we had early on, one was to have as few repeatable, reused characters as possible in the game.

Pictured: one of the two debug "preview" levels where we test our freshly assembled dudes and dudettes.
Inside the project in #ue4 we use a data table we call CharacterStatics which is used to store every unique character look. Right now, about half-way into completing the main story content of the game, we're sitting at 223 entries in this table.
Early on, we knew we'd have to reuse body parts (our characters are modular) to build enough variations of NPCs. Two common approaches - multiple color atlases, or differently UV'd meshes all pointing to the same atlas - would've led to us drowning in duplicate assets.
So instead, we came with a workaround allowing us to keep only the assets we really needed. As the base of our material, we use a a grayscale gradient (left image) separated into a number of channels using a bunch of alpha masks to make a color atlas dynamically (right image).
Our material is actually a spaghetti made by a bunch of texture samplers set to shared, which are used for each channel's mask.
Could be improved by packing 4 masks into RGBA of a single texture or using TexCoord to offset a single mask.
Then multiply by colors and form Voltron!
With distance field masking disabled (props to @hippowombat for that one!), the material's still pretty light with 179 instructions on base pass shader, running without a problem on Nintendo Switch and older PCs. We also run a disintegration function for fading out our dead.
All the colors are exposed as parameters in the master material. This setup allows us to tweak all the colors as necessary in realtime, directly in the editor. As seen with Hilde, the most recent addition to our NPC roster.

#indiedevhour #lowpoly #rpg
Oh, and let's talk a bit about the shadow highlight based on atmospheric light vector node, which we initially implemented to beautify our Ren a while back and then integrated into the material for all characters.

Pictured: not-Ren (we call him the preview dude).
Default directional light shadows don't always look great on the faces of our stylized characters - so we lighten them up by mixing in some emissive color to parts of the mesh which are shadowed, with an added bonus of making characters easier to see in dimly lit levels.
By turning off "atmospheric/fog light" bool in the directional light affecting the characters, we can easily disable this feature when we want to keep a scene really dark and moody - and maybe keep a character's face in the shadow for story purposes ;)
And this wraps it up for today! None of this is particularly new - in fact, we were inspired by good old Baldur's Gate and Neverwinter Nights when it came to color tweaking - but we're quite happy with how the results look in-game. Hoping this will be useful to some other devs!
Next time, we'll talk about how this all comes together with the other part of our character-making process - body parts - to create a randomizer and save newly created variants to the Statics data table inside the editor via blutility.

#ue4 #indiedevhour #indiegame #gamedev
Shores Unknown is a tactical RPG in development for PC and Nintendo Switch, and we recently opened a Steam page! You can support our game by wishlisting it at store.steampowered.com/app/899460/Sho…

Thanks for reading and see you soon!
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Shores Unknown
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!

This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!