We Shall Wake DEMO 7 was a success to NOKORI. We loved making it, and hopefully you guys enjoyed playing it. DEMO 7 will be available and free forever too, or atleast until we make something better that's also free. Consider it its own game, our gift to you (and yes, you can consider it a game, I think most people got around eight hours of gameplay out of it before putting it down).

Anyway, I'm excited about WSW, and hopefully you are too! But this is only the beginning. We still have a long way to go, and we're still going to need your help.

"What's the roadmap look like right now?"

Right now, we're working on getting a kickstarter ready. We're going to try and get We Shall Wake funded so it can reach its full potential. This involves some minor changes and preparations in the game engine, and getting some art assets ready so we can try and fill you in on what the whole game is going to be like.

Engine side, we updated INSOMNIA to "NNGINE." NNGINE is short for NOKORI ENGINE, and is an updated version of INSOMNIA. So, INSOMNIA is no more - we're now using our new NNGINE.
These upgrades included moving us from LWJGL2 to LWJGL3, and updating our math library from LibGDX to the new, shinier JOML.

This alone has netted us some major performance gains, but that's not it.

We're also working on a new level editor, proper Inverse Kinematics systems, Artinator as we call it, and new gameplay elements. New gameplay elements include wall-running and various parkour movement enhancements, and the new "trading card" system that I've been calling "DNA Cards" or "Psyche Cards."

The movements systems are too infantile to talk about, but I will elaborate more on the Psyche-Cards. I'm super excited about them. Check out this screenshot:

First of all, those of you who played DEMO 7 will notice the new health bar. That, along with the card in the bottom right.

The card is the psyche-card, and it's replacing the old Scanner some of you may have used in DEMO 7. Of course, you'll also notice the Psyche-card is missing key info, like the robots stats/traits. This is because the card is still a work in progress, it's missing some textures that are still being worked on.

Most of you know that We Shall Wake's robots are very emotional little tykes. This plays a roll in the narrative, but from a gameplay standpoint, it also plays a huge role.

The emotional state of an AI affects their fighting, movements, and synchronization in groups - they can even have nervous breakdowns if you destroy all of their friends in front of them in terrifying ways.

In the final game, this will be important to consider when collecting these Psyche-cards. You'll be able to use them to rebuild the robot and have them employed to defend your bases inside of the Yarib mega-structure the game takes place in. You'll need to consider how good they are at fighting, how good they work in groups, and how high their stress threshold is.

This is just one of We Shall Wake's deep systems of mechanics. The items system is its entire beast, along with custom movesets, for example.

Anyway, TLDR;

We're getting ready for a kickstarter

We improved the engine

I made it easier to scan AI personalities

You can also collect the souls of fallen enemies, essentially, and rebuild them later for your bases

Now that DEMO 7 is out (check it out if you haven't already), we've gotten a lot of feedback on We Shall Wake's combat systems and its nuances.

One of the main complaints stemmed from how group combat is approached and how that the air stomp is overpowered and over-relied upon. For example, we had always intended for people to fight in WSW in a more guerrilla pick them off one-by-one style; however, many players wanted a more direct approach.

The fact of the matter was, standing in the middle of a sixty man crowd of Leichts was not going to fly, and considering how powerful WSW makes you feel, that's exactly where you usually want to be. To solve this, the team came together and designed Compression-Fields, or C-Fields for short.

Every time Novem lands a blow on the ground with a normal combo, the force behind it is strong enough to throw an enemy back, but the MORS Model staple Infinity Engine uses its gravity altering effects to keep the enemy you hit in place.

However, this was not a smooth process. The team argued for hours upon the exact traits that the system would have. This ended up giving birth to two versions of the C-Field: the normal version, and the modified Stand Chip version.

By default, the C-Field will only blow enemies back a short distance, but when the Stand Chip is equipped, MORS09's nanobot based immune system will also materialize fists to throw them back even further while doing damage.

This was mainly created due to a dispute over whether or not the fists looked cool. It was a 50/50 divide, so I decided to make it an option. The stronger megafist version comes at the cost of having to use an item slot on it, whereas by default without it, it's pretty weak.

The C-Field has its limits though: it won't work on special enemy types.

Finally, to solve the Air Stomp issue, we made it derive its power from the amount of Energy left. When the attack lands, it uses energy and transfers it into the hit, so you have to vary your moves and regain that energy before it can do more damage. That said, you can use its crowd clearing effects to get space as much as you need.

Anyway - this patch came out last night. Boot up DEMO 7 and give it a try! We hope you enjoy the new features. Give us feedback on our new forums, or our twitter. We like hearing from all of you!

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!

Sorry for the late post! My birthday is Monday and I've been with family - just now getting some time to write this out.

This week we've been focusing on engine improvements and fixes. Xbox controller support is now fully working - as far as we know - and most of the kinks have been solved. We were having an issue with the old API in that it'd cause the JVM to crash randomly (which is you know, REALLY bad) so I ended up finding a more straight-forward XInput implementation to use.

Michael and I have been planning some new menu designs - we want to try and make ours a bit more fancy/pretty after being inspired by the new Persona5 trailer. So, we'll see what comes of that.

I've been tuning gameplay and ensuring that the controller feels right - so I have a lot to do there. I also began programming the Flieger. He'll be needing some specific animations - but other than that, everything is going smoothly.

So cool news - we've got new texture artists and modelers. We'll be doing some advertising stuff with the money we have as well. The above screenshot has some re-textured elements, done by our talented new artist Rebecca.

Our writer and I have completed We Shall Wake's campaign outline. Now we just have to fill it in.

All of the configuration menus are done too! We have a fully operational basic settings, input settings, and graphics settings menu now.

Here's the zinger - we have controller support now. I know how much you guys have wanted that one! Hopefully it'll suit you guys well. WSWGUI has been updated to support the controller, and should be pretty seamless in terms of navigating with the mouse and controller.

I also added a new game mode (actually two), Casual Mode and Turbo Mode. You can switch these in the basic settings menu. Casual Mode sets the game to be slower for new players - and Turbo Mode takes it to the next level and makes it faster for people like me who enjoy their games being 2fast.

Anyway, I also added a new customization system. People love customization - but I hate shoehorned RPG mechanics. So what I've done is hopefully hit a midpoint that both you and I can hopefully enjoy.

I'll be adding new moves as well soon, and Michael and I will be working on some fancy new effects for that.

Our new modeler has started on our new enemy type, the Flieger. Screenshots soon! See it first on our Twitter. We also post concept art on Patreon for patrons, so it may be worth checking out!

Rafael has some music in the works, which I'll put up on our YouTube channel eventually for your listening pleasure. Which I will also post a link to on our Twitter! I have part of a new track on our Patreon too, so if you're part of that, you can go listen to it already.

Other than that, We Shall Wake has been receiving its normal stablization fixes and is in a really good state right now. I will be releasing Demo 7 for our Patreon patrons to play soon. So make sure you get in on that! It's gonna be fun and hopefully have a decent amount of content.

Best part: we did this all in two weeks with five dollars. Imagine what we'll do with the rest of it!

My last exams are over at last (who the hell put them AFTER Christmas?!) and although I was able to work a bit on the WSW and Insomnia during this time, I've neglected this blog a bit. For the half dozen people who actually read this, I can happily announce that regular Wednesday updates will resume from now on.

I think everyone's noticed the new grass effect we have in the new trailer/combat demo. Rendering dense grass with a decent render distance is really hard. In our case, we decided to go all out and allocate a large amount of our GPU time budget for grass rendering. The idea is that for the outdoor scenes, we will not have a significant number of lights, allowing us to shift part of our lighting budget to grass rendering. In addition, since grass is a purely aesthetic effect, it is easy to tweak and even turn off completely in case your computer simply doesn't like drawing a few million straws of grass each frame...

More recently, the grass renderer was updated with support for TSRAA, Insomnia's novel anti-aliasing technique! This relatively cheap anti-aliasing method had a massive impact on the grass when enabled. And to think that to this day, there are a lot of engines that haven't even gotten decent anti-aliasing at all implemented...

Anyway, here's how it looks without TSRAA.

Aaaand with TSRAA.

The difference should be obvious. As always, I can say that it looks even more impressive under motion, especially subtle motion like when it sways in the wind, something FXAA or SMAA cannot deal with at all.

Finally, particle motion blur finally got the rewrite it deserved. It's be both faster and more accurate now. Even the code is simpler and cleaner. =P

Rant on spaghetti code

The most important thing when you're a programmer in a team working on a bigger project is to keep the code clean. What does "clean" mean? Apart from the obvious (good variable names, not letting methods and files get too big, add comments for complicated code, etc), the most important thing is to have as few dependencies between different parts of the code as possible. Essentially, we want the graphics engine to work like a magic black box. Brayden tells my code what to draw and where, and my code should get the work done. This means the magic box needs a number of controls, levers, buttons and displays so he can use it. These controls should be as simple as possible, yet flexible enough so that he can do what he wants with it. Brayden shouldn't need to, no, he shouldn't be ABLE to unscrew the lid of the box and jam his hand into it because he wants some piece of information or wants to do something the controls want let him do.

Why is this important? Maintainability. From Brayden's perspective, the graphics engine is a huge black box, but inside it there are a number of smaller black boxes wired together. There's a box labeled "Model Renderer", another one labeled "Particle Renderer", one named "Grass Renderer", etc. These are all connected to the main "graphics engine" controls in extremely specific and well-defined ways. This means that when Brayden pushes buttons on the graphics engine, they get translated to button-presses of the boxes inside it; button presses that the engine knows will work with the internal boxes. In the same sense, Brayden places my graphics engine box right next to his Combat and AI boxes, and wires them up as he sees fit.

Having strict rules on what code is allowed to access what code is extremely important. An hierarchical approach like this, where one part of the code knows (and cares) as little as possible about what other parts of the code does, is much easier to maintain, modify and expand. If the grass renderer suddenly had to be wired up to the model renderer, and the model renderer had to be wired up to the transparency handler and everything had to be wired up to everything else, we get a huge problem. Suddenly the boxes are no longer independent of each other, and modifying one may break another one. We end up with an extremely complex web of dependencies instead of a simple hierarchy, which means that over time adding features gets more and more complex and time-consuming. This is what's commonly called "spaghetti code". With the hierarchical approach, the rules we've set up limit the number of places that can be affected by a change, making the engine much more structured in the end. The point is that each box should be as simple as possible, and interact with as few other boxes as possible.

These last few weeks, I have spent a decent chunk of my time working upgrading controls and adding new controls to the graphics engine magic box. When Brayden wants some new piece of information or a control of some sort, I delve into the internals of the box and draw a new wire from a control to the module that holds that information or handles that part of the engine. Once I get too many free-running wires in the box, I bundle them up and create a new box which I task with managing that control, and that's how a new box is born! It's actually quite fun!

Hey guys! Sorry this is so late - I wrote this up Saturday morning and I guess I forgot to publish it.

Daniel is back, and we've been solving minor engine issues. We're now on track for releasing Demo 7 to our Patreon patrons - which will include our new Lambaste mode and a more fleshed out combat engine. I'll be including controller support (something many of you have requested) and some overhauled menus that allow you to tweak INSOMNIA to its very core!

I've been overhauling our grapple system - which is also part of our new "cutscene" system. It was a success! Which means we're on track for both. The new story script will be much more involving since we have an actual cash inflow now - so we have a lot more options for how crazy we can take the story.

I'm excited for this journey! It's only just beginning. Til next time.

We Shall Wake's patreon was a pretty good success. We have enough to move forward with development and keep our boat afloat. However, at this rate, it'd take nearly four years to get the funding needed for our software licensing! So keep telling your friends about us and help us build it up!

Nonetheless, I'll be putting a percentage each month into paying artists and another percentage into our "domain and software" fund. Currently myself and most of the rest of the team won't be receiving any money - but as long as it gets done, most of us are OK with that.

Anyhow: the game. Michael and I have been writing the script for the campaign, and I've been getting artists in place that will start next month. Most of our character concept work is done, and Ricky is working on some new environmental work. So the rest of this month will be preparation for next month - where WSW's 3d assets will begin to be made.

I've been doing some animating with Forrest as well, and I've been making various emotive stances/gestures for the AI to better convey their emotions. The AI feel a lot of things - but in their current form - you'd never know just by looking at them! Hopefully I'll fix that.

Along with this, I've been doing under the hood work on the animation system so that I can load in fully animated scenes into the game and attach them to their actors with minimal coding work. Something that's needed to be added for a long time.

I've also re-tuned and improved most of the game's menus, so that they look prettier and function better and more intuitively. However, I still have a lot of work to do on that front.

Controller support is one of my main priorities, however I'll have to take a very large detour due to certain issues with Xbox controller driver availability and its usage in Java. Nothing I certainly can't handle of course.

Finally, those who donated to our Patreon will be getting an early build of Demo 7 soon that allows you to play Lambaste mode with our current enemy types! So if you want in on that, make sure you donate $5 or more dollars to the page.

I think that covers everything. Here's this weeks Patreon shoutout to our new supporters:

Starting today, I will be giving shoutouts to our new patrons for each week on the blog. Those who donate a dollar or more to the We Shall Wake Patreon will get a shoutout here on our Saturday updates. Today will be a doozy in that it's on a Sunday.

If you don't want your name on a shoutout, you can email me at support@nokoriware.com ahead of time (or after the fact) and I'll omit it.

Anyway, special thanks to our first Patrons:

Ciaran O'Meara
8N
Brandon Mutinda
Woolie Madden
Jacob Plamondon

Thank you all for believing in us! We'll make this the best game we can!

If you want to help with the cause, please head over to our Patreon here.