May 2nd 2018
Yikes, it's been too long!
This is not a very interesting post compared to the other ones, more-so a what's up in my life report.
Let me preface this with: I'm still working on 3.x, and 4.x is still happening.
Unfortunately I've accidentally burned myself out. It's been a long time since this happened (maybe 2016?), but my excitement for 4 has caught up with me. For the past several months I'd been using basically all my available time to work on 4.x seven days a week. Probably around the last blog post I'd been starting to burn out, but this recent week I admitted to myself that I need to recharge - I've been having a really hard time focusing, getting a lot less done, and unintentionally avoiding work e.g. sleeping abnormally long hours.
I'm hoping that if I steer clear of working for the next few days I can start to get back to normal, albeit more healthily trying to limit the amount of time I spend. It's really frustrating because I want to work on 4, but shouldn't be. I'll keep you posted on how this goes. It's strange thinking back to ye olden days when I released airplanes, helicopters and watercraft into the game within two weeks, but I think that's primarily because I was less conscious of long term code quality/maintainability.
While I feel my skill has improved in a lot of areas over the course of working on 3, I realized last month that this is definitely not true for rigging. (Rigging is the process of preparing a 3D mesh like a character, weapon or vehicle for animation. While a simple rig can get the job done, a polished one improves the quality of animation and makes animating it easier.)
Contrary to my recent post about Blender I decided to give Maya a try, as in the game development industry it's generally viewed as the defacto software for 3D animation and rigging. After following a lot of training materials and comparing to Blender I have to say I agree that Maya is the better option right now, however I expect I'll still be using Blender for static meshes. Learning the other software has also exposed me to a bunch of different workflows which will help in Blender, especially the scripting aspect - I'd never really investigated scripting in Blender and in retrospect it would have saved a lot of time.
Specifically scripting wise I uploaded some simple tools I wrote for Maya which streamline working with UE4 here, and might do something similar for Blender though some concepts like display layer coloring don't carry over. Once I'm happy with the character rig for 4 I intend to upload it as well to get feedback and allow modders to start using it.
Continuous Integration (CI)
Previously I've written about improving test coverage for 4, and going hand in hand with that is CI. I'm setting up my laptop to build the latest versions and run tests to ensure everything's working, and I think it could be interesting to have a beta branch on Steam that's always updated with the most recent (but least stable) builds. More relevant for the moment - I'm planning to start doing some tests like these for 3.
For example with the Ireland update everything seemed good to go and was working fine on the server, but after including a small patch to a few map-related files (vehicles, spawns) that was only tested in singleplayer the map didn't load properly on the server in the release version, so I think it would help to automatically load the client and server on every map prior to an update to make sure they all load OK.
As an anecdote it's been weird working on 3 with my focus being on 4, as I find myself having a harder time remembering where exactly everything is code-wise, and moments of confusion between C++ and C#. Chances are there'll come a day when someone else knows 3's code better than me! (though I think that's still a long ways off)
After Steam Dev Days 2016 and talking with the devs of some of my favourite long lifecycle games I was in a very anti-sequel mindset, and made some comments in my post-conference blog post that are very opposite to how everything's been shaping up for 4. While my plan is to continue updating 3 as its own game, I think it's safe to say that 4.x is going to be Unturned II - there's already been some discussion about this on the forums, and I think that especially with the different direction of 4 and separation of versions it will be less confusing to call it Unturned II. 🙂