In-between Devlogs #040-041
September 25th 2020 by SDGNelson
Update on what I have been working on for Unturned 3.x and Unturned II.
I have ended up working on Unturned 3.x more than expected these past few weeks. There has been some nice progress on Unturned II as well nevertheless.
Transport Layer Rewrite
Rewriting this aspect of the netcode has been on my to-do list for a long time, and was the main task I mentioned in the previous devlog. In a case of bizarre timing Valve actually deprecated the old V1 Steam Networking the same day I began working on the new V2 Steam Networking! The changes are essentially ready to go now, and we just need a fix from the current Steam client beta.
If you are interested, here is the GitHub issue for future netcode rewrites.
Unity 2019 LTS
At the same time as working on the netcode rewrite I decided to import the game into Unity 2019 in the background. This upgrade proved more straightforward than 2017 to 2018, e.g. asset bundles are compatible, so I sorted out most of the immediately apparent bugs. Graphics jobs are no longer experimental which offered a nice performance boost. There were some interesting issues though, like the dual-render scope material needed to be reworked a bit and now perfectly matches the target color.
Potential UI Rewrite
Updating Unity has made the IMGUI issues even more apparent unfortunately, so rewriting the legacy UI might need to become a priority. I have not decided when to work on this yet, but my plan is to implement a wrapper class for each Unity UI system e.g. Button_IMGUI, Button_uGUI and Button_UIElements to protect against whichever UI system is currently most broken, and swap out the current classes with those.
Here is the GitHub issue for the UI rewrite.
There are a lot of requests for official video guides, and some of the community ones are out-of-date nowadays, so I intend to record a few that get right to the point. I read up on advice for improving the audio quality e.g. de-essing, and uploaded the first one here, but it will probably be re-recorded soon to address a few issues.
Some of the dual-wielding improvements like two-handing the pistol are mostly ready to go, and just need animations. Currently when holding a one-handed item that supports dual-wielding in your dominant hand and your non-dominant hand is empty the weapon will enter two-handed stance.
My plan is to do those animations in Blender. It feels roundabout to be converting back to Blender after starting with Blender for Unturned II originally, but I am glad to have used Maya because the change taught me a lot especially about rigging and automation. Blender feels very familiar, but I have been watching a lot of videos and reading posts to try and make sure I have a good understanding of the right way to do things.
Denizen Animation Improvements
The first version of left-handed characters in Unturned II flipped their mesh similar to in 3.x, but this has a lot of bad side effects like backwards text on clothes and not working properly in vehicles. I replaced this with some animgraph nodes to mirror the animation at runtime, e.g. when sitting in a car the seated pose is not mirrored but the weapon pose is.
To better represent where the melee strike hits the first person animation will copy the third person pose while swinging.
Late this week I began working on a simple tool for communication between the build machine and Unreal. This way it will be much quicker to tell it to upload to Steam or copy over some debug files.