ROADLINES AND HAIRLINES

Hey Survivors,

We’ve got a quick new update for this week. We are mixing things up a little as the style of this weeks update is a little different as we’re focusing on a few excerpts from different members on the team. We’re still on track for the experimental release of 0.7.0 on October 30th as well as the non experimental release of 0.7.0 before the end of the year.

LEVEL DESIGN

One of our LD leads has an update from the Level Design department with some of the different happenings from the past week.

Nomad and Adam helped bring some much needed finishing touches to a vast number of locations by getting the LD team some much needed assets. The everyday clothing discarded amidst the chaos of the outbreak, or alternatively how everyones bedroom probably looked at some point in their life - was a key piece to help sell the atmosphere of the chaos and speed up the level design process that we were desperately lacking. Not anymore! And same goes for the campground pit stalls nomad helped bring to life, you can't have a campground without one of these somewhere in sight in case of an emergency.

Alongside that helping us put the cherry on top on some campgrounds, trails or house interiors - our lead level designer has been mostly occupied with getting Seebe and it's surroundings fleshed out like the Kananaskis Rafting Center, likely the main source of all of the beached rafts you can find alongside the river.

Patryk has been working on the other side of the map in Dead Man’s Flats. We’re excited to show more of the revamped town as we push closer to release.

While we have not done an accurate size comparison of Dead Man’s Flats and Canmore from 0.6.0 the iteration of Dead Man’s Flats in 0.7.0 is approaching the size of Canmore with the quality that 0.7.0 brings to the table.

INFECTED SPAWNING

We’ve got an update from our lead programmer regarding the spawning system for the infected as well as some of the behaviors that you can expect to encounter.

I’ve spoken directly to members of the community on Discord and I’ve personally reviewed a lot of the feedback regarding the infected spawns. Our previous system relied on dividing up the world into multiple grid cells and then managing the population based on data provided by volumes that were placed by level designers.

While I believe that the previous spawn system would’ve been quite effective at doing it’s job, I was not the original author of the system and I felt that it would be faster to work with a clean slate. I had the following goals in mind for the new infected spawning system were as follows:

  • Maintaining a believable infected population
  • If you approach a town, infected need to be wandering around. Inversely if you are in the middle of nowhere there should be minimal if any infected present.
  • Simulating hundreds of infected is something that is achievable down the line, but in the interim we need a system that allows us to maintain a believable population of infected while being clever about spawning and removing infected characters on the fly to save CPU time.
  • Allowing level designers to specify what type of infected should be present is key to helping enhance the feel of the game.
  • Allowing the player to temporarily clear out an area.
  • This includes using a sniper rifle to clear out a group of infected before you personally approach the town.
  • This includes silently dispatching of the infected via melee weapons.
  • Ensuring level designers have easy tools to work with.
  • Spawning additional infected when it makes sense.
  • We want players to have a challenge when they decide to use their guns to clear an area
  • Systems to spawn additional infected by design only use data from the underlying population management system but are not directly tied to it.
  • Luring infected away needs to be a viable strategy.
  • Numbers based approach.
  • I want to layer multiple spawn systems onto this and having a clean set of variables to work with is something that I consider key.

I spent a lot of time prototyping the new infected spawning system for 0.7.0, which resulted in starting over completely two times over. My most recent prototype was able to achieve all of the various goals that I had in mind for the system. While we’ve still got to do some further testing it appears that the system should provide a strong foundation moving forward.

Due to the changes we’ve made to the way that clothing layering works, we’re able to create new variations of infected much more easily than before.

So here’s a couple of pictures from the system I finished prototyping this week. You can see that as I move the player character marked by the red X, between the two different locations that the density of the idle infected (green dots) significantly changes. From a first person perspective, this shift is seamless.

The player in this picture is located to the left of the test town, you can see that the town hasn’t had all of their idle infected loaded in yet.
The player in this picture is located on the rooftop of the church, this increases the density of infected that are simulated within the town as the Survivor is currently located on-top of a church.

Lastly, the picture below is from the same session but I accidentally took this screenshot from the wrong angle but if you use the color of the debug text and the buildings as references you should be able to easily figure out where things are.

Regardless of my terrible ability to gather screenshots from the editor, you should be able to visualize how a player can travel through a town and how the game will maintain a population of idle infected that act as potential obstacles for the player to deal with.

You may notice that the total amount of infected characters can vary, this is by design as when you are on the outskirts of a town, you are only overlapping a few of the nodes. If you look closely at the picture of the Survivor standing on the roof of the church, you should be able to see the distance factor (DF in the debug text) falling off towards on the buildings that are further away from the Survivor.

I mostly balanced this system around the feel of the infected and I will still be doing some fine tuning as we continue to integrate the system into our game.

This new system is inspired by the version written for 0.6.0 but with some key changes.

  • Instead of using a grid, we simply use the volumes that level designers place down as nodes.
  • Each node is responsible for managing it’s own local population.
  • Infected can become detached from their owning node, they can also be reattached if the right conditions are met.

In conclusion for this segment, I’m quite happy with the results and from the amount of times I’ve ran through this test town you can really feel the difference between the two different systems.

MATERIAL AO FIXES

Before I pass off the next part of the update to Julian, I would like to highlight a few of the shading tweaks that I’ve done. First up is the fix to Material AO. Unreal Engine has had a bug with Material AO for a few years at this point, I had to go into the engine and adjust a few lines of code to restore the effect.

AO or ambient occlusion is essentially shadowing but on different scales with different scopes. Screen Space Ambient Occlusion or SSAO is soft shadowing for objects that are near each other.

Material AO on the other hand is essentially small scale shadowing on the surface of an object. Material AO in my opinion is extremely important for sealing the look of an object. There is literally no feasible way to approximate or calculate the detail that Material AO brings into the scene hence why this was a critical fix for us.

Without Material AO
With Material AO

SKIN SHADING

On-top of the Material AO fixes I’ve also made some changes to the skin shader for the Survivors. I’ve put a few days into a bit of an overhaul to the skin material itself. Our characters now utilize virtual texturing for their skin textures to bring out some of the finer details that are present in the scan data.


I think the changes to the overall appearance of the character have changed for the better. It is easy to make skin look great inside of a black box with spotlights so I’ve included a few pictures from a variety of scenarios ranging from worst case scenario to the best possible case scenario.

These are from the worst case scenario in terms of lighting. Partly Cloudy Sky @ 12:00PM without any adjustment of the sun angle.
Better scenario for lighting at approximately 9:00AM.

This is it for me, currently we’re feature locked so most of what I’ll be working on is refining things, hooking things back up and getting the game ready for the 0.7.0 EXP launch.

-Nik

RETROREFLECTIVE SHADING

Julian has been doing some level design work to help with the push for 0.7.0, however he’s also done some work on the retroreflective shading model that Dead Matter uses to greatly enhance the feeling of navigating with limited light sources at night.

Recently I have been hard at work on the retro-reflective shaders, improving them significantly since I first implemented them, massively improving their visual fidelity. My goal with these shaders is to give the environment a unique and realistic feel using something that is rarely seen in video games. Some of these will help guide survivors exploring or driving at night, warn them of imminent danger, or even spot other survivors wearing some retro-reflective clothing.

Rather than faking the effect by utilizing emissive and an inverted view vector, the shader itself was designed to be as physically accurate as possible, giving a realistic reflection angle to the light that is bounced back from the retro-reflective surface. By adding a special retro-reflective specular reflectance model along side the standard GGX specular reflectance model Unreal Engine 4 uses, and with a little math magic, we can achieve this realistic effect while also being highly optimized as to not negatively impact performance.

Some of the uses I currently have implemented using this shader include road signs, recessed pavement markers, road lines, infected eyes, animal eyes, vehicle liveries, special clothing and much more. These have all received a special treatment to give them proper retro-reflective effects that you would expect to visually match what these things look like in real life.

REALISTIC FOLIAGE

Dusty has made some amazing changes the foliage assets that we’re using to give them a far more realistic appearance. This is based on some community feedback. Luckily the Material AO fixes help with this process and the Material AO fixes directly benefit the Foliage.

CONCLUSION

We’ve made some really strong strides in the month of September and the outlook for October is really positive. There has been a lot of learning and growing that we have had to do as a studio and we believe that our efforts to better manage the project as well as place more attention to detail where it matters are now starting to pay off with results that speak for themselves.

It is no secret that we are still years away until Dead Matter hits a full 1.0 release but we are doing everything that we can to fulfill the vision that has been held for this game and to also release a game that our Backers can be proud to be a part of.

While 0.7.0 will not be the patch that has it all simply due to the amount of work that has gone into it, we feel that it has succeeded in being the necessary course correction for the future outlook of the game.

Thank you again to everyone that has helped make this project possible, we truly appreciate all the support from the bottom of our hearts and we cannot wait to meet up with some of you ingame when 0.7.0 ships.

<3,
QI Games