My university exams are finally over and I've been able to solely focus on WSW and Insomnia for the last week. I have finally gotten time to do the changes and additions that I've been wanting to do but haven't had time for due to school. There's been a lot of different changes that improve the quality of special effects, and optimizations for both high-end and low-end computers, but first I'd like to show a nice picture of what I've been working on the last few days.

Depth of field, the accurate bokeh kind, once again inspired by the clever folks behind the tech of Call of Duty: Advanced Warfare. This special effect will be featured in cutscenes only and will have a fairly high performance impact, but it'll hopefully make them look gorgeous. We're not planning on using it during actual gameplay. Sadly, I've hit a really annoying performance bug in the Nvidia shader compiler, and all my attempts at working around the bug has failed so far. It's funny and sad how I as an indie developer making my first engine have encountered more than 10 different bugs in different drivers so far.

Anyway, here's a quick (okay, maybe not that quick) rundown of some of the biggest changes.

TL;DR:

- TSRAA anti-aliasing got a big performance improvement and some small quality improvements.
- Motion blur has had some bugs fixed, performance improved and blur quality improved.
- Vignette effect (can be disabled).
- Improved physics engine performance for complicated levels with many objects.
- Much sharper and faster sun shadows.
- The 3D model renderer is now better and faster at determining what to draw.
- Grass has been updated with a physics simulation and certain attacks can disturb and move it.
- Shared GPU buffer system improves performance a lot, mostly on older computers.
- SSAO got itself some big quality and performance improvements.

The advanced TSRAA anti-aliasing system WSW uses has received a big performance improvement. The performance of 4x and 8x anti-aliasing is significantly better. In addition, TSRAA's interaction with transparent effects has also been improved meaning higher quality in some edge cases (pun intended).

Motion blur is closely integrated with TSRAA. It turns out that putting both motion blur and TSRAA, two complicated high-quality effects, in the same shader was too much for the compiler to handle leading to suboptimal performance. I've split up the two and moved the motion blur to a different shader allowing both TSRAA and motion blur to gain optimal performance. This gives even better performance when motion blur is enabled, and it now barely has a performance hit. I also fixed a bug that sometimes caused the motion blur shader to use a lower quality blur at times when that was a bad idea, leading to ugly little boxes on the screen. Finally, I bumped up the quality of the blur itself since the shader has so good performance now. In the end, both performance and quality are better than before.

An optional vignette effect has been added. Don't worry, you can disable it if you don't like it. =P

The physics engine got itself a performance upgrade. It now uses a better data structure to quickly determine which objects to test against which. This was something that was worrying me as it could limit our ability to have complicated levels and lots of units at the same time, but since the most performance critical parts of the physics engine are almost 70x faster now, this shouldn't be a problem anymore.

Sun shadows have been significantly improved with proper cascaded shadow mapping. That means sharper sun shadows at higher distances while at the same time giving better performance.

The 3D model rendering system now better takes the distance to the camera into account when determining what to draw. It's now significantly faster at discarding out-of-range models and avoiding doing work for objects that don't end up being rendered.

The grass has gotten a significant quality update. The grass is now based on a simple CPU-side physics, allowing for local disturbance of individual grass patches. Many special attacks and explosions now affect the grass around it. In addition, how the grass is disturbed and bent has been improved to reduce the amount of stretching and maintain the shape of the grass patches.

The most performance critical internal renderers have been upgraded to use a shared buffer system. Before, each camera and shadow map would reserve its own buffers from the graphics card to store data in, but now they all share one big buffer each frame instead. This means that the number of buffers Insomnia handles each frame has been reduced to a handful instead of hundreds while also reducing the overhead of each view. It suffices to say that performance is better, especially with older cards that couldn't handle lots of buffers as efficiently where the difference can be an almost 50% gain in some cases.

Insomnia's homegrown ambient occlusion effect (SSAO) has been upgraded with improvements inspired by Scalable Ambient Occlusion. The ambient occlusion is now done at four times the old resolution with a higher detection radius, better sample layout and more accurate blurring while still getting significantly better performance.

It's been a while since we've updated the blog. We've been pretty occupied with our new Twitter and getting the public build of DEMO 7 ready for everyone to try - plus I myself have been busy with graduating highschool, so I'm just now finally getting to sit down and work.

I'm terrible at organizing these posts, so I'm just gonna give you all a list of what we've added in these past few months.

10 new moves

Vast AI improvements that'll challenge even the best action game players

Graphical improvements

Massive performance improvements

New graphical effects

More particle effects

BUILDER: the precursor to townbuilding that can be used to make custom gametypes

Various tools for BUILDER: make race modes, survival modes, team survival modes, king of the hill modes

UI improvements

New attack effects

Cutscene that teases at We Shall Wake

End-game teaser that elaborates further on Novem and Decem's relationship

Turbo mode is now faster, casual mode is now slower

New shop at the main menu

Pause button (you can actually pause the game now)

Main menu lets you access the pause menu

Fixes for the UI on larger resolutions

And that's not all - I still have a lot I want to add before the big release.

Now, to elaborate on some of these new features:

10 New Moves and Shop Menu

One of the more loud complaints about the private build of DEMO 7 was that a lot of players had trouble finding all of the moves available in the demo, therefore assuming that we only had around 20 moves in the game when in reality we have about 50. To fix this, I added a shop menu so you can buy all of the moves from the main menu with ingame currency - a la Devil May Cry and God Hand.

As for the new moves, I've added primarily new Utility Moves that give the player more options to stylishly murder robots with.

AI Improvements

Another complaint was that the AI was too easy to "cheese." To remedy this, I've added brand new counter systems for specific moves. Enemies will jump away from air stomps, deflect your bullets, grab you and execute you, and dodge your attacks more frequently. You wanted difficulty, and I'm going to give it to you.

Pause Menu

Probably the greatest edition. You can pause the game and edit your moveset and itemset without the fear of being attacked/having to rush. I also added one to the main menu, so you can work straight from the main menu rather than having to get into the game to do it.

BUILDER

Builder was in the private demo as the House Defense System, but I've added onto it and made a complete gametype editor with it as well. You can now build and customize your gametypes in a really versatile way and can make any survival-based gametype you could ever really want.

BUILDER is also going to be the baseline for the eventual townbuilding in We Shall Wake, which was drawn from an old game called Dark Cloud. One of the main features of We Shall Wake will be building and defending your villages.

That's it for this week! I'll drop back by with a release date later this month. Daniel will be coming in with some of his fancy performance numbers too here in a bit. Hang tight!