Development Diary #2

Sky, Snow, Buildings & Engine Improvements

Contents
Introduction
New Sky System
Dynamic Snow Effects
Residential Buildings
Engine Improvements

The second entry in the Dead Matter Developer Diaries, posted on October 3rd, 2017 on the official Dead Matter Forums.

Author Note: This post was made early in the Dead Matter development and some of the information provided may be outdated at the time of reading.

New Sky System

Dead Matter Developer Chaoss has created a new sky system, based on real world data for Alberta, Canada, where Dead Matter takes place. The big difference in using real world data rather than presets, is that seasons will actually matter. The nights in the summer will be short and bright and in the winter months longer and darker.
As part of this new system, he also improved the night sky, which is now showing you an accurate star map with real world stars and constellations, which can be used to navigate your way through the darkness.

Dynamic Snow Effects

Sticking with the theme of seasons, let's talk about snow. In the first development diary developer Yad showed us surface porosity and wetness effects he's been working on.
Since then, the system has been extended to support snow... dynamic snow, that will slowly cover everything under a white blanket.

Residential Buildings

Besides the new sky system, Chaoss has created this new building set for residential type houses.
In Dead Matter, most buildings are composed of building sets, modular pieces. This allows for more variety through mixing different assets.

Engine Improvements

Lead programmer jooni has some things to say about his work as well. Network optimization, inventory, player status component and world expansion:
Inventory
I've been working on network optimizations for our Inventory system. It was in a functional yet rough state for the Kickstarter, the gun I held in the gameplay video was actually dragged in from a backpack I was wearing ingame. The only drawback to the system we were using is that every item was an actor, no items were ever 'sleeping' and this would potentially cause a massive strain on the network for the amount of items we intend to have on the map in the near future.
My solution is that I've written an Actor Component that stores an array of structs that contain a ClassID and two bytes of data with an option for additional data to be appended. Only the items that are currently in a players inventory will be converted to actors, this preserves all of the previous flexibility and functionality of our inventory system. I have to rewrite the crafting system to reflect the new system as crafting benches will now need to use the struct based system. I will also need to rewrite the UI which is why I don't have any meaty screenshots for this.
According to a few stress tests, the new system allows for an extreme amount of items to be present on the map before the network comes close to being under any sort of strain. This is a massive for us and ensures that we'll be able to keep the amount of depth we have planned for our inventory system.
The UI isn't ready to show off at all and I was not able to put a lot of time into it due to having a sinus infection.
Player Status Component
I've gone ahead and changed a few things on the Player Status Component, which is responsible for keeping track of a players health making it extremely lightweight on bandwidth. I also added some disease transmission options, a basic example that I created using this system is a simple cold being spread by coughing. Masks will mitigate the spread of colds and other diseases. Adding any new factor into this is incredibly simple. I try to make it so all of our code is as modular as possible in order to make sure we can very quickly iterate new features.
World Expansion
At the start of the month I made some changes to Unreal Engine itself earlier this month and expanded the maximum world size to be 1.5x larger than the former world maximum world size. I also got client origin shifting working properly (after some minor adjustments), this allows us to have a much more massive world than we'll ever need. The reason I expanded the map was to allow us to expand our map in the future, it also fixes a lot of issues that prevented us from using Cascaded Shadow Maps as well as all floating point precision issues. It took a little bit of debugging for some minor networking issues but after an hour I got it all committed and ready to go.
I've also started to make some changes to the way our world is loaded. I will go into more detail regarding this in a future dev diary.
jooni / Dead Matter Forums

Comments

No comments yet!

Add Yours

Before posting, please take a moment to read our Comment Policy and review our Privacy Policy regarding comments.