We're making solid progress in the 0.2.x release cycle, and today we're able to take an early look at two major improvements in the pipeline. We have a working Player breathing life into custom maps designed in the Editor, and Character Studio where we can experiment with character randomization.
Sandbox Player
One of the key requirements for Patch 0.3 is the ability to play a custom map designed by us in the Editor. Internally we're now able to run Sandbox maps and test dynamics including character movement and construction. Testing pathfinding is particularly important as we've deprecated the memory inefficient grid based graph system in the Tutorial and developed a faster Tile-Based Navmesh system that supports updating during gameplay.
Developing a new pathfinding solution helps reduce the overall game footprint in addressable system memory ( reduced probability of a memory related crashes on marginal systems ), while making path calculations faster ( better frame rate ).
The blog video demonstrates a test case of running one group of villagers over a bridge while the other group run under it. This wasn't possible in the Tutorial ( anyone notice the rubble blocks in the Old Forge blocking access to the ramparts above the portcullis entrance? ), but for Sandbox it opens up lots of design options.
Character Studio
One of the frequent pieces of feedback we received following launch ( particularly in Let's Play videos ) concerned all the villagers looking like drones. Given that a major feature of Folk Tale is the detail of the lives of your Villagers and the adventures they become involved with, it's important that we give them an identity.
In the Sandbox Vision Presentation I explained why it wasn't possible to achieve full RPG level of visual customization due to memory constraints ( GPU texture memory and overall system memory ). Instead, we set out to give each villager a unique face, and show their currently equipped hand items ( tools and weapons ). In Dev Blog 10 I highlighted early development on facial customization, and since then we've expanded the customization system into something that is usable and will be included in Patch 0.3.
There's a lot more going on under the hood of Character Studio than first meets the eye, specifically to address technical objectives:
Minimal Memory Footprint
We've designed the character system using minimal base geometry and a single hair/skin texture to keep memory requirements down. We have one universal skeleton for all humans, two master head models - male and female - and a number of uniforms. We have a range of hair styles, eye brows, and facial hair, that we'll continue to add to throughout development to add more variety. All the geometry is combined at runtime into a single skinned mesh with just two materials: one for the uniform and one for the skin and hair, both of which are color tinted separately in the shader.
Performance
The more bones included in the skeleton the longer it takes the CPU to calculate the position of each vertex in each frame of animation before sending to the GPU, and that means lower frame rates. To achieve both a unique appearance AND good performance, we're baking appearances and then removing the influence of certain bones ( e.g. facial bones, 2nd-4th fingers ), reducing the bone count down from 140+ to around 60. This wasn't something we did in the Tutorial, and should achieve a performance boost.
Baking appearances does mean character faces won't be animated during normal gameplay, but will be during cinematics where facial animation can add a lot of emotion. We have implemented bake quality, so it might be possible on higher specification systems to enable facial animations during gameplay. It's something we'll be exploring after Patch 0.3 but is not something we're committing to at this stage.
Combining multiple meshes ( head, hair, facial hair, eye brows, uniform, exposed skin ), optimizing out bones and baking into one skinned mesh at runtime needs to be extremely fast considering how many characters we have and the possibility for changing weapons and tools, so we've invested time up front in optimizing the process. From very early proof of concept code taking 500ms per bake, within a matter of hours it was reduced to under 2ms. That means we can bake several characters at once ( for example when new villagers are created ) without significant impact on frame rate. In reality this only happens a few times every minute, or when hand-held gear is swapped out, so we are well within acceptable performance targets.
Universal Skeleton
Having a universal skeleton for all human characters means we can play any human animation on any human character. For example we can have men walking like women, but that's not the real use. The main strength lies in how we implement weapons. We're creating combat animations around weapon types: one-handed, two-handed, and dual wield. A pitch fork and halberd are somewhat similar in that they are held with two hands and look perfectly acceptable using the same combat animations. A sword and mace are also similar and can use the same one-handed combat animations.
In a game with lots of buildings, lots of characters, and lots of weapons, there's lots of creativity and trickery required in striking a balance between the quantity of assets and achieving an acceptable quality and accuracy of animations. The hard constraint of memory means eventually you hit limits, and you can't increase one without reducing the other.
While we only need randomization, baking and bone optimizations working for Patch 0.3, beyond that there's lots of potential for Character Studio. Here are just a few low-priority ideas we'll be considering at a later date:
sharing configuration text strings with others in the community forum to recreate characters;
naming and adding personality traits for inclusion in your games ( e.g. if you always want Henry The Coward to be one of your villagers );
uploading NPCs to Steam Workshop.
Art Assets - Characters
We're keeping up character production momentum with the addition of the male and female Peasant, Woodcutter and Baker. They Peasant and Woodcutter follow the visual style established in the Tutorial, but remade to fit the new customization system while standardizing the look of the villagers.
Art Assets - Buildings
Three more sandbox-spec buildings are finished ready for inclusion in the next patch: Stonecutter Lodge, Storehouse and Tavern. With the Player advancing at pace, the next step is to enable Resources ( Logging Camp, Iron Mine, Stone Quarry ) and early stage Sandbox gameplay ( resource collection and processing ).
We're making solid progress in the 0.2.x release cycle, and today we're able to take an early look at two major improvements in the pipeline. We have a working Player breathing life into custom maps designed in the Editor, and Character Studio where we can experiment with character randomization.
Sandbox Player
One of the key requirements for Patch 0.3 is the ability to play a custom map designed by us in the Editor. Internally we're now able to run Sandbox maps and test dynamics including character movement and construction. Testing pathfinding is particularly important as we've deprecated the memory inefficient grid based graph system in the Tutorial and developed a faster Tile-Based Navmesh system that supports updating during gameplay.
Developing a new pathfinding solution helps reduce the overall game footprint in addressable system memory ( reduced probability of a memory related crashes on marginal systems ), while making path calculations faster ( better frame rate ).
The blog video demonstrates a test case of running one group of villagers over a bridge while the other group run under it. This wasn't possible in the Tutorial ( anyone notice the rubble blocks in the Old Forge blocking access to the ramparts above the portcullis entrance? ), but for Sandbox it opens up lots of design options.
Character Studio
One of the frequent pieces of feedback we received following launch ( particularly in Let's Play videos ) concerned all the villagers looking like drones. Given that a major feature of Folk Tale is the detail of the lives of your Villagers and the adventures they become involved with, it's important that we give them an identity.
In the Sandbox Vision Presentation I explained why it wasn't possible to achieve full RPG level of visual customization due to memory constraints ( GPU texture memory and overall system memory ). Instead, we set out to give each villager a unique face, and show their currently equipped hand items ( tools and weapons ). In Dev Blog 10 I highlighted early development on facial customization, and since then we've expanded the customization system into something that is usable and will be included in Patch 0.3.
There's a lot more going on under the hood of Character Studio than first meets the eye, specifically to address technical objectives:
Minimal Memory Footprint
We've designed the character system using minimal base geometry and a single hair/skin texture to keep memory requirements down. We have one universal skeleton for all humans, two master head models - male and female - and a number of uniforms. We have a range of hair styles, eye brows, and facial hair, that we'll continue to add to throughout development to add more variety. All the geometry is combined at runtime into a single skinned mesh with just two materials: one for the uniform and one for the skin and hair, both of which are color tinted separately in the shader.
Performance
The more bones included in the skeleton the longer it takes the CPU to calculate the position of each vertex in each frame of animation before sending to the GPU, and that means lower frame rates. To achieve both a unique appearance AND good performance, we're baking appearances and then removing the influence of certain bones ( e.g. facial bones, 2nd-4th fingers ), reducing the bone count down from 140+ to around 60. This wasn't something we did in the Tutorial, and should achieve a performance boost.
Baking appearances does mean character faces won't be animated during normal gameplay, but will be during cinematics where facial animation can add a lot of emotion. We have implemented bake quality, so it might be possible on higher specification systems to enable facial animations during gameplay. It's something we'll be exploring after Patch 0.3 but is not something we're committing to at this stage.
Combining multiple meshes ( head, hair, facial hair, eye brows, uniform, exposed skin ), optimizing out bones and baking into one skinned mesh at runtime needs to be extremely fast considering how many characters we have and the possibility for changing weapons and tools, so we've invested time up front in optimizing the process. From very early proof of concept code taking 500ms per bake, within a matter of hours it was reduced to under 2ms. That means we can bake several characters at once ( for example when new villagers are created ) without significant impact on frame rate. In reality this only happens a few times every minute, or when hand-held gear is swapped out, so we are well within acceptable performance targets.
Universal Skeleton
Having a universal skeleton for all human characters means we can play any human animation on any human character. For example we can have men walking like women, but that's not the real use. The main strength lies in how we implement weapons. We're creating combat animations around weapon types: one-handed, two-handed, and dual wield. A pitch fork and halberd are somewhat similar in that they are held with two hands and look perfectly acceptable using the same combat animations. A sword and mace are also similar and can use the same one-handed combat animations.
In a game with lots of buildings, lots of characters, and lots of weapons, there's lots of creativity and trickery required in striking a balance between the quantity of assets and achieving an acceptable quality and accuracy of animations. The hard constraint of memory means eventually you hit limits, and you can't increase one without reducing the other.
While we only need randomization, baking and bone optimizations working for Patch 0.3, beyond that there's lots of potential for Character Studio. Here are just a few low-priority ideas we'll be considering at a later date:
sharing configuration text strings with others in the community forum to recreate characters;
naming and adding personality traits for inclusion in your games ( e.g. if you always want Henry The Coward to be one of your villagers );
uploading NPCs to Steam Workshop.
Art Assets - Characters
We're keeping up character production momentum with the addition of the male and female Peasant, Woodcutter and Baker. They Peasant and Woodcutter follow the visual style established in the Tutorial, but remade to fit the new customization system while standardizing the look of the villagers.
Art Assets - Buildings
Three more sandbox-spec buildings are finished ready for inclusion in the next patch: Stonecutter Lodge, Storehouse and Tavern. With the Player advancing at pace, the next step is to enable Resources ( Logging Camp, Iron Mine, Stone Quarry ) and early stage Sandbox gameplay ( resource collection and processing ).
#0067 Multiple Building LOD Models In Tutorial Visible #0068 Minimap Not Updating
Changes
Location Editor: Align Button Icons Added To Below Transform Gizmo Move Mode Torches behave better with Fog Of War
Developer Comments
This is a bug fix for the previous patch. There is a known issue with vsync in the Editor where it is capped at 30fps. This can be reset to 60fps by pressing 'V' twice.
#0067 Multiple Building LOD Models In Tutorial Visible #0068 Minimap Not Updating
Changes
Location Editor: Align Button Icons Added To Below Transform Gizmo Move Mode Torches behave better with Fog Of War
Developer Comments
This is a bug fix for the previous patch. There is a known issue with vsync in the Editor where it is capped at 30fps. This can be reset to 60fps by pressing 'V' twice.
Location Editor: Replaced Cloud System Location Editor: Mirrored Sky Dome Location Editor: Added Kobold Kit Location Editor: Added Grassland Animals Kit Location Editor: Added Humans Kit (Miner, Farmer) Location Editor: Added Beastman Kit Location Editor: Added New River Tiles ( Community Request ) Location Editor: Ground Shaders Changed To Rescale Textures Closer To Camera
Developer Comments
This patch updates the Location Editor. No changes have been made to the Tutorial. The character kits are currently art assets with their idle animations, and will come to life in a future 0.2.x patch. We strongly recommend reading the comprehensive guide to the Location Editor available at
You cannot currently delete roads ( use Undo instead ). This will be fixed in 0.2.3.0. Updating the terrain shaders is ongoing and may result in some visible UV seams and blurred decal textures ( in comparison to the now higher resolution tile textures )
Location Editor: Replaced Cloud System Location Editor: Mirrored Sky Dome Location Editor: Added Kobold Kit Location Editor: Added Grassland Animals Kit Location Editor: Added Humans Kit (Miner, Farmer) Location Editor: Added Beastman Kit Location Editor: Added New River Tiles ( Community Request ) Location Editor: Ground Shaders Changed To Rescale Textures Closer To Camera
Developer Comments
This patch updates the Location Editor. No changes have been made to the Tutorial. The character kits are currently art assets with their idle animations, and will come to life in a future 0.2.x patch. We strongly recommend reading the comprehensive guide to the Location Editor available at
You cannot currently delete roads ( use Undo instead ). This will be fixed in 0.2.3.0. Updating the terrain shaders is ongoing and may result in some visible UV seams and blurred decal textures ( in comparison to the now higher resolution tile textures )
With Patch 0.2.2 just around the corner we've been importing a lot of the assets from the last six months of dev blogs into the Editor, and some of the original assets from the Tutorial that we'll need for the next slice of playable content in 0.3. In the video we take a fly around the Human Village map in the Editor to visit some of the new assets.
Community Requested Assets
When we launched Patch 0.2.0 the community set to work with the Grassland Kit, combining assets to suggest new assets that would be useful to have. In Patch 0.2.2 we'll be adding some new assets that we've created in direct response to community feedback.
First up are additional water tiles. Now you can add tributaries and forks to your rivers, as well as multiple feeders into larger lakes.
Water presents a major navigational hazard ( especially since there is no swimming ) and a number of community members mocked together simple wooden bridges using the wood plank assets. We've taken those ideas a little further and introduced a number of complete bridge assets, three of which can be seen below.
Migrated and Extended Assets
The Tutorial established much of the Art Direction for Sandbox, and we'll be migrating many of the assets across for use in the Editor. While not strictly limited to Kobolds, the Kobold Camp Kit includes lots of useful assets for primitive races. Each of the monsters released in Patch 0.2.2 will in time have their own battle camp kits. The Undead will use the Graveyard Kit, while the Beastmen, Goblins and Ogres still need theirs creating at some point during the 0.2.x release cycle.
Farmer
The finishing touches are being made to the male and female Farmer, who along with the Miner shared in the previous blog will be included as assets in Patch 0.2.2.
What's In Production?
In a new section for the blog, we're going to start taking a look at what the team will be working on in the fortnight to come.
There's not much point going into any depth otherwise that we'll defeat the purpose of the next dev blog. Suffice to say that now the Editor is working well, focus has shifted towards developing a Player that can load in maps created in the Editor and actually play them. That means monsters coming to life, villagers performing work tasks in a run-time simulation, and possibly the occasional fight. UI will be extremely limited in early simulations, most likely relying on keyboard shortcuts to construction buildings. Work started on the final UI iteration in early January, and we'll be rolling that out across sandbox when the time comes.
Assets wise it's more of the same - new occupations created using the new character customization system in both male and female varieties, more buildings, and the resource points where workers go to harvest wood, stone, iron and meat.
With Patch 0.2.2 just around the corner we've been importing a lot of the assets from the last six months of dev blogs into the Editor, and some of the original assets from the Tutorial that we'll need for the next slice of playable content in 0.3. In the video we take a fly around the Human Village map in the Editor to visit some of the new assets.
Community Requested Assets
When we launched Patch 0.2.0 the community set to work with the Grassland Kit, combining assets to suggest new assets that would be useful to have. In Patch 0.2.2 we'll be adding some new assets that we've created in direct response to community feedback.
First up are additional water tiles. Now you can add tributaries and forks to your rivers, as well as multiple feeders into larger lakes.
Water presents a major navigational hazard ( especially since there is no swimming ) and a number of community members mocked together simple wooden bridges using the wood plank assets. We've taken those ideas a little further and introduced a number of complete bridge assets, three of which can be seen below.
Migrated and Extended Assets
The Tutorial established much of the Art Direction for Sandbox, and we'll be migrating many of the assets across for use in the Editor. While not strictly limited to Kobolds, the Kobold Camp Kit includes lots of useful assets for primitive races. Each of the monsters released in Patch 0.2.2 will in time have their own battle camp kits. The Undead will use the Graveyard Kit, while the Beastmen, Goblins and Ogres still need theirs creating at some point during the 0.2.x release cycle.
Farmer
The finishing touches are being made to the male and female Farmer, who along with the Miner shared in the previous blog will be included as assets in Patch 0.2.2.
What's In Production?
In a new section for the blog, we're going to start taking a look at what the team will be working on in the fortnight to come.
There's not much point going into any depth otherwise that we'll defeat the purpose of the next dev blog. Suffice to say that now the Editor is working well, focus has shifted towards developing a Player that can load in maps created in the Editor and actually play them. That means monsters coming to life, villagers performing work tasks in a run-time simulation, and possibly the occasional fight. UI will be extremely limited in early simulations, most likely relying on keyboard shortcuts to construction buildings. Work started on the final UI iteration in early January, and we'll be rolling that out across sandbox when the time comes.
Assets wise it's more of the same - new occupations created using the new character customization system in both male and female varieties, more buildings, and the resource points where workers go to harvest wood, stone, iron and meat.
Editor: Added Paint Tool Editor: Added Construction Kit Editor: Current location filename now shown on topbar Editor: 'F' now frames the selected object Editor: Frequency of warnings over lost data reduced Editor: Numpad-0 toggles UI and slows camera for making video flybys Editor: Enabled Anti-Aliasing Editor: Scale Mode usability improved
Known Issues
Editor: The rivet in the Construction Kit is untextured. Editor: If you move the camera quickly, auto-grass fails to update.
Developer Comments
This patch updates the Location Editor only. Certain tile sets have been removed following the addition of the Paint Tool, and holes may appear in maps created with Patch 0.2.0.1.
Editor: Added Paint Tool Editor: Added Construction Kit Editor: Current location filename now shown on topbar Editor: 'F' now frames the selected object Editor: Frequency of warnings over lost data reduced Editor: Numpad-0 toggles UI and slows camera for making video flybys Editor: Enabled Anti-Aliasing Editor: Scale Mode usability improved
Known Issues
Editor: The rivet in the Construction Kit is untextured. Editor: If you move the camera quickly, auto-grass fails to update.
Developer Comments
This patch updates the Location Editor only. Certain tile sets have been removed following the addition of the Paint Tool, and holes may appear in maps created with Patch 0.2.0.1.