We Are All Puny Humans
For the last three weeks, I have been up to my neck in writing serialization code. This is the code that will be responsible for saving and loading your game when you’re playing Human Orbit. It’s also responsible for saving and loading some of the files that are used in the modding tools that Human Orbit is created with.
A surprising thing about working with Unity as a game engine is that the in-built support for saving/loading even very basic games is very limited. This is a natural result of the flexibility of the engine – every game created using Unity has very different requirements in terms of what they need to be able to save and load, so there’s no magic solution that the Unity team could implement alone. So, it has been my responsibility to write out a complete system for handling save/load for Human Orbit.
Up until now, we have been making do with third-party serialization tools. These third-party tools are good-quality and have been sufficient for our internal builds and prototypes, but I took the decision to roll our own ready for use with the alpha, beta and production versions. The most popular third party serialization tools are capable of handling the sort of complexity involved in Human Orbit, but they do require a lot of human intervention to ensure that they are set up correctly. Worse still, it would be important for humans to remember to update the serialization set-up as the components of Human Orbit change. This is effort better spent elsewhere.
My response when I see something that is dependent upon the vigilance of a human is to recoil. Humans aren’t reliable like that. It’s a definite vector for the introduction of bugs and – in situations where a process can be automated – it’s a waste of that person’s time! So I search for ways to automate that process. I won’t go into the details of Autelia’s new serialization tool, but I will say this much: It does everything it can to avoid human intervention in the serialization of data. The proof will be in the pudding, but if it works according to my design then it will not require any of our artists or designers to understand how it works or what its requirements are. Better yet, it won’t waste their valuable time and effort on considering how best to go about setting up the scene for serialization. That time will be freed up for them to work on what they excel at: content creation.
Well, serialization is a very unglamorous business, so I apologise if this blog post has been dry! But you’ll be glad that I’ve spent so many weeks on it – you won’t get very far in Human Orbit without being able to save!