Thursday, 23 August 2012

Folk Tale WIP Update 5

by Simon Dean, Project Lead

Thanks for dropping in on Folk Tale WIP Update 5. It's been four months since update 4 and as you might expect there is a heap of cool new stuff to share. We've been focused on improving and adding content to create a richer world. There's new characters, an entire new set of hand painted buildings, traps, overhauled zones, new animations, bug fixes and of course improved performance.


Rich ( Technical Artist ) has done a grand job of remodelling the original buildings that were hacked together by myself to form part of the creative brief, creating a new hand-painted 4096x4096 texture atlas shared by human village assets to reduce draw calls. As the artist responsible for the human characters, it was only logical to have Rich make the buildings for visual consistency.

Keen-eyed followers may spot we've replaced Unity's Water4 with Tasharen Water. It's got really nice specular, and dual-colour water depth colours produces some nice blending. Okay, so it's missing a few features and had some initial hiccups with deferred rendering which Aren the author promptly fixed, but we don't miss Gerstner displacement all that much. There's an occasional frame flicker we're noticing which I haven't yet reported because I haven't confirmed it's a water issue.

With the remodelling of the buildings, we've taken the opportunity to add interiors and animations to buildings such as the Smelt and Woodcutter Lodge. Several player interactions will happen inside buildings, including the hiring of heroes at the Tavern. In the Monastery interior above, the monks heal fallen comrades back to health. We didn't want to have perma-death for heroes, so we're implementing a time penalty after which they can be rehired.

Tom ( Technical Artist ) has been working diligently cleaning up and adding to a long list of animations. Farming animations are now fixed, so no more moonwalking. Responding to feedback, we've broken the process in two, requiring time for the wheat to grow before it can be harvested. Miners now smelt iron ore before working it at an anvil and dunking it into water. Okay, so this may not be how iron bars were actually made, so we've played the "creative license" card. If you say "blacksmithing" the first mental image that forms is usually a hot fire and an anvil, so we've added those as visual hints to the smelt's function.

The new human Monk and Militia classes were a joint effort. Tom kicked off the modelling as he likes his edge flow a certain way so his animations deform nicely. Then it's over to Rich for UV and texture painting while Tom works on any new animations. Rich drops the low poly model into ZBrush for some additional sculpting and then does an AO bake to use as the values base for hand-painting the diffuse texture. Having generic rigs for humans and goblins means we can use any animation on any character. We're really looking forward to getting our hands on Mechanim in the upcoming Unity 4 as it should save Tom a fair chunk of time.

As a distraction from programming, Simon has re-sculpted a lot of the map. The layout of the Goblin Village in the swamp has been completely ripped out and redone to address performance and gameplay issues. Slavemaster Urzal - the end of level boss - has had his crib pimped to be more impressive thanks to the reusable environmental props Tom made some time ago.

The Snow Zone has been populated with evil monks and the main story quest item McDongle's Gem Of Rebooting. We had to replace the VLight volumetric lights system because it was allocating a ridiculous amount per frame, feeding the antiquated garbage collector in Mono 2.6. The gem shader and new volumetric light cones are courtesy of Advanced Surface Shaders which perform infinitely better.

Over in the Lava Zone, Ben ( Environment Artist ) has been finishing up work on the battlements and crumbled walls. We felt the zone was a little unpopulated with the player facing little challenge in progressing the main story quest, so we've brought a couple of dwarves out of retirement from a previous project to feature as ghosts, the idea being that the golem went crazy and killed them all. Being of similar proportion to the goblins, Tom skinned them onto our existing goblin rig and migrated the human blacksmithing animations across. The original texture map style didn't fit Folk Tale, but the recolouring and ghost shader mean that's not an issue.

Now we're getting close to the completing the originally planned content, we've got more time to focus on expanding gameplay. Work on our Trap Manager is finished, with spike and poison cloud traps added. Currently the wizard can sense something is not right and cast the Detect Traps spell ( seen casting above ), and time permitting we'd like to add a rogue hero hanging out in the Tavern.

As a precursor to more aggressive enemy AI, we've added faction ownership to resources. Before being able to extract resources including wood, stone and iron ore, the player must first send units to capture the faction flag. The design plan is to have each resource flag defended to present more of a challenge.


This WIP provides a first glimpse at the new user interface, which is still very much work in progress and being refined with each iteration. I'm personally bored of stereotypical fantasy UI, so we're drawing from application UI design and giving the UI a hint of business app feel. Through the UI players will be able to exert greater control over their villagers through class-specific action buttons for tasks such as spellcasting and taunts, locate and cycle through their entire population, and get detailed stats on each character. The next step is to extend the UI to include action targetting to unleash area spells such as Freeze. Quite literally the day before WIP recording commenced, Aleksey Fedetov launched his hardware cursor plugin. We had been waiting for the HW cursor project from Unity's NinjaCamp VII but there was no telling when or indeed if that would ever happen. I can only say we are very happy with it.


A personal thanks to Aron Granberg, developer of A*Pathfinding Project who I've had the pleasure of working closely with in the last four weeks. As well as fixing a few bugs, Aron has been adding a polygon system for modifying pathfinding node penalties. I'd previously been doing this with a texture reference, but that was cumbersome. The new tools work incredibly well, and as a result we can now exert much finer control over where characters can and cannot walk, and where they prefer to walk. Probably the biggest piece of code has been the action queue whereby characters now queue up a string of attacks and smoothly blend between them. Allowing players to break into a queue with prioritised commands was pretty straight forward, and apart from a few animation glitches, the system seems to have worked out very nicely.

Trees needed a fresh approach.  The previous trees used billboard leaves that looked great, but weren't visible in water reflections which was obvious as a bug.  So we've gone with static mesh trees, and an animated UV shader that shifts the leaves gently using sin functions helping give them a little life.

One of the more advanced features is the camera tracking system.  Rather than opt for a simple camera tracker, I wanted a more dynamic feel that avoided obstacles and didn't just go through them.  My approach was to determine a destination camera angle that would not only frame the final shot in the best way, but also solve any awkard terrain such as being up against a steep cliff.  There's still a few glitches to iron out, but overall I'm very pleased.

There's quite a lot of background manager code gone in that will never be seen or heard.  For example the voice over manager prevents the in-game advisor, player characters and cut-scene dialogue playing over each other, and handles streaming from asset bundles.


We've been lucky enough to have Roland helping us out over the last six months between freelancing jobs improving the sound effects.  Alas, our time together has drawn to a close as his visa just got approved so he could join the audio guys over at Valve.  I'd like to give him my sincere thanks, and look forward to giving him the beta.

And on that note, that's it for this update.  It's heads down for the final push then hopefully we can began closed beta.  Yay!