November 2nd 2018 by SDGNelson

Time here must be 1/3 speed because one week keeps turning into three...

Can I cut it down to two? Time will tell.

What's new:

Gradually bringing in community members to the semi-private Vehicle Demo! No video this week because now that it's more polished anyone can post videos, and I think some content creators will do a better job at that than me.

Feature-wise it's similar to last week, but both the game and dedicated server are now stable on Steam, and lots of little things got done like standing on moving vehicles in multiplayer, seat switching, passenger animations, emergency brake animations, glass smashing, season transitions... Lots of stuff.

What's the Vehicle Demo?

Just the vehicle gameplay, all other features stripped out for now.

When will the Vehicle Demo have everything?

I still need to revamp animations, character assets, clothes, etc for the new skeleton + rig. While working on the vehicles I decided on a bunch of improvements I want to make to the inventory first as well. More details below.

Who's got the Vehicle Demo?

Only a few people for now because it's very barebones, and if I automatically gave it out to everyone I think there would be a lot of confused feedback about why 4 is empty. Once I merge the rest of the features in it will not be as restricted.

What's next:

Character

After upgrading the animation pipeline, rig and character I still need to revamp a lot of that content. Note that I'm aware there's a lot of feedback that the character is too skinny right now: I will tweak it, and part of it is that it will look bulkier with clothes again. Primarily I made it skinnier so that you can see what's in your hands more easily.

Item Improvements

Maybe skip this section because it's boring to read.

Items were definitely influenced by my transition from Unity. After working on the vehicles I feel like my initial design is too component-focused. For example one of my components are ItemObserverComponents which are all attached to eachother, attached to the player. Instead these should be actors or at least maybe a Weapon actor which contains the weapon components. Similarly, all item instances are UObjects pointing to UObject item definitions, but because changing outers isn't supported over the network I have to redirect pointers post-duplication. This is not as mod-friendly (or Nelson-friendly), so I'm considering redesigning this around actors as well and moving item behaviors into components. This will probably take longer than anyone would like, but making a second pass at the core feature of the game will be super good in the long run.

Performance Improvements

I'm going to re-implement all of the prototype UI in Unreal's lower-level framework "Slate", and wrap it in their higher-level designer "UMG". Right now snow shaders are run in all seasons, whereas Unturned 3 swaps them out as-needed (well, more-so for rain). I'm going to add some engine features to support a global-swapout like this, and also use it for effects like grass displacement.

Behind the scenes anecdotes:

Surface Detail

You may have noticed that the fine-grain texture detail from some surfaces is gone for now. I might continue with it at some point, but it sounds like Epic has decided not to continue development of material layering past 4.19. Instead I intend to experiment with the spare channels for more interesting effects: right now the grass uses it for per-blade deformation, and I'm going to re-do the bushes to displace per-branch using vertex shaders. This will not have a big performance impact, and I expect it will look really cool to smoosh plants with your car.

Looping Horn Audio

After attempting to loop a few car horn samples I already had and failing I decided to try generating the sound instead. I hadn't tried anything like this before, but now I can imagine maybe doing it again for police sirens. Initially I went off the standard car horn frequencies I found on Wikipedia, and gradually ended up with this setup in Audition:

Engine

Some of the time spent stabilizing the demo was spent tracking down bizarre engine issues. At one point if you were the host on a listen server and a client entered the vehicle all of their animations would freeze, but this didn't happen on the dedicated server. After some head scratching it turns out the default character was freezing animations when movement replication was disabled. Lots of weird stuff like this... but mostly working now!