Quite a bit in this WIP update as it's been three months since our last.
Under the hood, we've migrated to 3.5 beta, with the impact pretty much as expected (see earlier post). On top of the 3.5 performance boost provided by rendering on a second core, we've started cleaning up assets to use a few large texture atlases and a couple of shaders to reduce the draw calls.
Once UT announced the new GUI wasn't going to be shipped in 3.5, we grabbed an NGUI licence, and it's working out nicely now we've got our heads around the coordinates system. Extremely good support from Aren, the author. We ran some tests on the old OnGUI - oh my god. It's evil, stay clear and buy a third-party GUI solution unless you want frequent GC spikes.
We've added our own LOD extension to the distance-based culling system for trees (and other stuff), and thrown out Unity's tree billboard system because the shader doesn't respond to ambient light changes. Ok, so it's currently not as elegant, but you notice it a lot less than sunlit trees on a moonlit landscape. Only the green fir trees currently have LOD.
The video begins with the start screen, during which the object pool manager handles all the object instantiation to front load most allocation overhead and reduce garbage collection calls during gameplay.
Hitting start drops us into the voice-over intro using our cutscene manager. Basically it pushes a sequence of objects onto a queue in chronological order with each object having a cue-time. A Coroutine while loop pops all objects with the current timestamp, and then sleeps until the next cue is due, or until the cutscene finishes. All event objects inherit from a base class, with switch blocks managing each event type enabling us to do anything that is possible through the API.
We implemented quality settings several months ago, and the poor iMac used to render the videos is hard pushed with real-time shadows and reflections running so apologies if it's not uber smooth. We wanted to show off the visuals more than the frame rate. The game runs great on a gaming PC, but also runs on a Macbook Pro on low settings.
The intro ends and drops into the voice-acted tutorial system driven by the quest manager. All pretty simple, just needed to handle all those special cases where a player can skip things, or might trigger another in-game event that conflicts with the active GUI.
Night-time descends and drops us into the second fully animated cut scene. Pete our writer insisted we have London gangster goblins, and since that point the script moved further and further away from stereotypical fantasy. So much so in fact, we have a Mexican Wrestler based Goblin Witchdoctor with a height complex for the end of level boss, and a camp wizard who's Torrets-suffering familiar has been stolen. Goodbye fantasy, hello comedy.
Once the goblins have done their little acting debut, there's some placeholder combat to highlight the new character voice responses for selection and command. At least until the next bit of goblin cutscene is finished where they raid your village and run off with our reluctant hero's wife. When characters die, they now have their rotation adjusted to match the normal of the terrain under their feet to stop their corpse intersecting the terrain too much.
The sound effects have received a much needed overhaul thanks to our new sound designer Ro who's done a fantastic job. Still a few to add in, but most are new.
After a detour through the volcanic region, there's a first glimpse of the goblin occupied derelict barbican blocking the entrance to their swamp. The player will be needing the iron golem seen earlier to pound through those gates being clearing a path through the goblin village to free the slaves and confront the boss and his two ogre bodyguards.
And finally we have a brief glimpse of the snowy mountain region. Mostly early stage assets at the moment including the geometry for the Were-fu practicing monks.