MONTHLY ROUNDUP - APRIL 2021
Hey there folks. As April comes to a close, we’ve come back up on that time where we round up everything we’ve talked about over the course of the month, and then take a little look at what the plan for May is. Let’s take it from the top, shall we?
WHAT WE HAD ON THE GO
After last month’s roundup post, a number of people noted that they found the format used somewhat difficult to follow. For the sake of readability, this section has been broken down by department so that you can skip around to whatever interests you most, or you can just jump ahead to the ‘what’s next’ section to see what we’re doing as we move into the month of May if you’re already caught up on what we’ve been working on over the last several weeks.
CODE TEAM
As we stated in our last monthly roundup post, our code department had instituted a full feature lock on development. To ensure that 0.7.0 can begin to make good headway towards resolving many of the issues seen in previous patches, we’ve been focused on auditing our entire codebase, slowly reintroducing systems as they’re looked over and cleaned up. Due to the number of coders we’ve had working on Dead Matter over the years, there was inevitably times when coding styles didn’t entirely align with what our modern standards now look like, and there have been quite a few lurking issues hiding under the surface that we needed to take the time to properly look for. In addition to this, systems that had previously been functional and then were disabled or broken for one reason or another have also been getting some love as part of this pass. Things such as animals, which had to be temporarily disabled due to some nasty spawning bugs, have been getting some much-needed TLC, meaning that 0.7.0 should see the return of a few older systems we’ve previously talked about or disabled during the CA.
The work on things such as animal AI has farther-reaching consequences than just fixing some issues with animals not working how they should, mind. Alongside the work to correct issues animal behaviour and spawning, our AI has also been moved over to a system that is derived from the basic functionality that drives our base player characters. This greatly simplifies building AI functionality since all non-infected AI now function like a basic player character, meaning that testing AI interactions with various things in the world is far easier than it used to be - instead of needing to rely on scattershot testing of AI interactions with content in the world, we’re now able to simply ‘play’ as our AI to test these interactions in a far more comprehensive manner. While for animals this is fairly impactful, where this will truly begin to shine is with our NPCs, especially with ones that will be found in the world - as they’re based upon our player characters, it’s now far easier for us to make our NPCs interact with the world just like a player character would, meaning that adding systems to support AI behaviour such as driving vehicles or using various objects in the world is far easier, as it can merely be derived from the interactions that a normal player would be able to engage in within the game.
Other systems, such as the UI system, have also gotten some major attention. Some seemingly minor issues with how our item icon renderer worked for objects found in your inventory or containers ended up concealing some far bigger issues that we found and fixed this month. Previously items being loaded into memory were causing hitching as their icons were loaded - this was due to an issue with the resolution of icons created by the icon renderer, resulting in items having absurdly high resolution icons that ate up a ton of memory and slowed down streaming of other more important content. This has been fixed, and our new icon renderer also produces far higher quality icons. We’ve also been attempting to clean up some minor bugs that resulted in some pretty nasty QoL issues - things such as tooltips vanishing off the side of your screen under certain circumstances should no longer happen, and overall the inventory system has been set up to get a somewhat more substantial pass once we’re beyond the feature lock period.
Thankfully, many of our systems have also been cleanly ported over with few or no issues. Systems such as the Stat Manager, used to handle the vital statistics of player characters, have been given a clean bill of health and moved back into the game. While progress on this can be somewhat slow at times, this entire pass on the codebase has worked wonders for cleaning up some less than great coding practices that our team members - past and present - engaged in. Now that we’re beginning to get through many of the ‘baseline’ features, we’re rapidly approaching a point where the game should be a compilable, playable project again.
In pursuit of that, our animation system has also been seeing some serious work to clean it up and make it work a lot better than it used to. The system we used to use had a number of limitations that greatly restricted our ability to produce good looking animations under certain conditions, especially third person animations, as well as introducing unnecessary complexity in systems based around actions such as traversal through our world. Systems such as our vaulting component have had a borderline excessive number of issues with them, and this new animation system should greatly streamline both the implementation of these features, as well as the reimplementation of other previously functional traversal systems, and will also make addressing bugs with these systems far easier than they previously were. On top of all this, our toolkit for animations based on inverse kinematics has become far more versatile, meaning that animations - especially third person animations - are far easier to create and implement into the game.
ART TEAM
While the code team has been looking at getting our code base back to where it should be, our art team has been divided between a handful of critical tasks. Given that the skillsets of our art team members are of varying applicability during a major push such as the one we’ve been undergoing recently, there’s been a variety of tasks underway over the course of the last month to ensure that 0.7.0 meets our internal targets for getting the project back on course.
Our LD team has primarily been working hard on the worldspace revamp this month. Given the sheer scope of some of the work they’re doing, this is nothing short of a monumental task. Part of their focus has been on correcting some critical planning failures that occurred during the development of our current worldspace. Unfortunately, due to calls made by members of our LD team, parts of the worldspace were designed in a manner that not only was not authentic to the region that Dead Matter is attempting to capture, but actually caused worse performance. Much of this is a side-effect of the variation in how locations are built in more eastern regions of North America, versus how towns and rural development actually happen in regions such as Alberta. While for many who live in the eastern provinces of Canada or the eastern United States the idea of more distributed rural housing districts along more isolated back roads is the norm, in Alberta you frequently tend to see developments built up in clusters, with larger spaces between them. A failure to adhere to this ended up making our world feel rather wrong and caused areas that should’ve felt more built up to instead feel fairly sparse and underdeveloped, in some cases caused locations to end up being larger than their real-world equivalents in a manner that tended to hamper gameplay by making places tedious to explore, and due to how level streaming in UE4 works also tended to result in significant performance losses.
This simply isn’t acceptable, and so a major push for our LD team has been identifying these problem areas, and improving the layout of our world to fix these issues while creating a world that feels more genuine and better fleshed out. In many cases this should result in towns feeling larger and more urban than they did in previous CA builds of Dead Matter, and also has given us a chance to address other oddities with the layout of our game world, such as the lack of well-planned environment flow in locations where players were generally expected to engage in more exploration-heavy tasks. This should ensure that the 0.7.0 version of the Southern Alberta map is much more intuitive and interesting to explore, and will also help greatly with making the world feel more lived in and less like the collective population of the region snapped out of existence all at once.
While the LD department has been working on that, the more technically-involved members of our 3d art department have been working on optimizing the assets used in the world. Unfortunately, quite a few bad choices had been made over the course of the game’s development that resulted in some pretty nasty performance losses. Improperly configured materials or world assets that were unnecessarily complex have been seeing an optimization pass to reduce their impact on performance, and certain practices that were being followed by the team have been amended to ensure that these kinds of issues don’t rear their head again. We’ve also been taking the time to improve or enhance our materials where possible - due to the fact that a not-insignificant number of our materials were unnecessarily complex, after cleaning them up we often had extra overhead to built new functionality into them, or implement better versions of effects that previously didn’t look as good as they could. In the coming weeks, as we prepare to provide an early look at the new worldspace, the impact of these changes should be quite evident. Many of our world assets and architectural assets are now able to look far nicer than previously possible, and it works wonders to elevate the work done by our art team.
Other members of our 3d art team have been busy working on new assets to go along with the cleaned up assets our CA backers will be seeing in 0.7.0 - this means that alongside older content you’ve been able to experience in previous versions of the CA, we’ll also have a decent chunk of new content alongside. Shown a couple of weeks ago, these new assets from weapon artist extraordinaire Stefan are going to allow us to lean back in the direction of our Canadian setting:
Beyond these additions from the 3d art team, our character art team has also been hard at work. With the new work underway on our animation system, our character artists have been busy moving our content over to this new system. Given the number of pieces of clothing and other accessories already present in the game, this is no mean feat, and combined with their ongoing work on replacing placeholder outfits, they’ve been busy all month on a number of rather thankless tasks such as refitting outfits and ensuring they work properly on our new skeleton.
While our visual artists have been hard at work on these tasks, our audio department has also been doing everything possible to assist with the push towards 0.7.0. While UE4’s native audio system is versatile, it lacks many features that an audio producer would want to use to ensure that Dead Matter’s audioscape works properly and sounds great. To address this, we’ve been transitioning our audio pipeline over to WWise over the course of the last month. WWise is an extremely powerful toolkit for building various functionality for audio - ranging from integrating weather sounds into our weather system, to having sounds dynamically vary based upon environmental factors, setting up these features is far easier working with WWise. While we suspect that having WWise fully implemented will not be completed until after the release of 0.7.0, it’s still a critical task that we’ll be working on as development on 0.7.0 continues.
WHAT’S NEXT?
Going into May, we’re finally reaching the point where we’ll soon be able to start getting back into the game as a compiled project. As this happens, our ability to work on and properly test game systems will greatly expand, and we’ll be in a far better position to test the changes we have underway with our world. Better still, we’ll be able to start pushing out the first few sneak peeks at the work we have underway on Dead Matter’s world revamp. Now that we’re hitting a point where we’re finalizing work on the migration of many systems, we’ll soon enough be able to lift our feature lock on the code team, and start the process of integrating systems such as those for improved lighting - both exterior and interior - and also begin examining older systems that were no longer extant in the codebase for restoration into the game. As our level design work needs to be approached with these systems in mind, the sooner we’re able to test with them and truly understand their impact on gameplay, the sooner we can begin finalizing parts of our worldspace for 0.7.0.
May is poised to be a busy month for us - between all the work on the game to ensure that 0.7.0 is as good a patch as possible, as well as the fast-approaching completion of renovations on our office, we’re excited to begin taking the first ‘real’ steps into a better version of our project, and bring all of you along for the ride.
As we close out this update, we really need to let all of you know how grateful we are for your ongoing support. We realize that it’s often frustrating to only see text-format posts about things like this, but it’s all in the interest of ensuring that you get the game as we show it to you. Transparency is still our number one focus going ahead with this push, and we’re always thankful for the support you’ve all been willing to extend to us as we work through this situation.
Stay tuned, and see you all next week.