Toggle between synchronised and non-synchronised sprite animation

Several bits of work this past week, relating to the new composable sprites, and overall animation.

Human cosmetic presets

While the possible combinations of generated humans could be huge (head shapes, colours, hair types, etc etc), the generation needs to be constrained so that we have cohesive groups. This is in contrast to the player character and adventurer NPCs that will come later, as they can be completely freeform and customisable. So for now, when humans are generated in a location, their skin colour is determined by the biome temperature of that location (for lack of sunlight measurements). Their hair colour can't be much brighter than the skin, and I'm picking mouth/eyes colour based on the contrast that it will have with the skin (from a small set of presets, not yellow eyes for example). Mouth colour has to be different than beard colour, and females would have a different set of mouth colours to men, towards more red/purple colours (yes, ludicrous, but is the best descriptor for 24x24 pixel sprites!).

Roles and equipment

Next logical thing is to test the above by easily creating groups. So I made some console command to create a troupe of 25 people, with varying heads but all "naked". Ok cool, but boring. Next was to develop "roles" for major AI races (e.g. commoner, warrior, thief, guard ) which would be associated with some skill progression (WIP) and starting equipment. So, for each of the generated people I can pick a random role and the result is a healthy mix of all roles, and a lot of visual variety.

Animation: synchronised or not

After generating a large group of people, crammed at a 5x5 grid, it's easy to notice the animation that is synchronised. Oryx sprites have this simplistic 2-frame bobbing animation. This could be jarring or not, I wasn't sure so I sent a question on Twitter, showing the bobbing versus a randomised version. Apparently the overwhelming majority seems to not like the synchronised version, but a few do, so now I've implemented both, they can be selected with an option, and it defaults to not-in-sync.

Next steps

Thinking always how to salvage things for a trailer, a bunch of people in settlements in different biomes sounds fine, so working on the settlement generator. This means some work on settlement "rooms" to represent houses, and work on making the settlement well-integrated with the biome.