I am constantly perplexed by villains.
As a fan of high-action fantasy and space opera, I demand villains that can operate on a grand scale — that can deliver conflict and challenge appropriate to my delusions of grandeur. However, as a slave to coherence and consistency, I demand villains whose motivations and actions can plausibly produce that level of challenge and conflict.
Now, I reject the notion that dumb action and plausible characters are mutually exclusive, as Hollywood and the AAA industry often seem to think. By all means, it’s a balance that’s hard to strike, but I think there’s rarely been as glorious a failure than the monstrous, enigmatic Reapers of the Mass Effect trilogy.
Earlier in the year, I decided that the wilderness areas of Baldur’s Gate were actually a good and enjoyable thing. I stand by that reasoning today, and look back fondly on that experience of replaying a game that really is a classic.
Except I’ve just been replaying Mass Effect, and it has areas that fulfil a similar function — “uncharted worlds”, optional planets you can land on which contain only side quests. The difference is that… they’re not particularly good or enjoyable.
I was at a game dev meet-up about a month ago now, where my pals sassed me silly for not having shipped a game yet. They’re right to do so — although I vigorously resist accusations of feature creep (it’s not creep if it’s all part of the original plan), it’s true that I’m making something rather large that isn’t going to be releasable until it’s “done” (this is the true curse of building narrative-driven things).
About a year ago, I set down my plan for the first release: a self-contained prologue to a bigger campaign, which would be short enough to manufacture in a sensible time-frame, but broad enough to stress out most of my features. “Sensible time-frame” is, of course, relative and it’s still got a long way to go.
So I asked myself: what’s the minimum viable game? What is the purest, simplest expression of top-down mech action that I can build and put in front of people?
When I was looking for pointers on how to do saving and loading, I was frustrated at the lack of depth in the tutorials that I found. I couldn’t find anything that went beyond explaining PlayerPrefs and serialisation. I mean, yes, duh, I have to read and write the data — but how should I structure it? How should I find it? What’s the best way to put it together again? What did you see?!
Thus, having recently finished a fully armed and operational saving and loading system in my own game, Exon, here is a complete run-down of how it works and why. Although I would expect saving and loading to be personal to the architecture of a particular game, I feel like I’ve ended up with a very flexible and generic system, so hopefully this dump will give future people a decent idea of how to approach this most important of features. Plus some reassurance — it’s actually not that scary!
So, I’ve been fairly quiet recently because 1) developing saving and loading systems has been a long invisible slog and 2) I’ve been replaying Morrowind (oops).
But with all the data that comprises a “campaign” in Exon being successfully written to disc, it was finally time to start trying to load it. Since I’ve told you the story of decomposing the world into text files in more than enough detail, it’s time to begin the story of reconstructing it…
Right, so my last dev diary was mostly theoeretical — how can one ensure every prefab and pre-placed object in Unity has a unique identifier that can then be associated with saved data and used to reassemble the game world later.
Having implemented said indexing mechanisms, there are a few gotchas to report, but it is overall working as advertised. Which means I have begun phase two: actually writing the data out.
When I decided that procedural generation was too much bother for not enough gain and switched over to hand-crafting scenarios, I figured that was the worst of my development headaches gone. After all, the more data that is static, the less you have to worry about while the game is actually turned on.
Then I realised that you’re still going to die a reasonable amount of times during the game. Then I realised that although the levels will be individually smallish, they’ll still be quite open.
What does death plus openness equal? Why, my dear, it means I must let you save and load your game, because fuck losing all that progress (to death or dinner).
For some reason, it has become a festive tradition that I replay UT2004. To the festive tunes of artists I never listen to at any other time of year, I will joyously frag my way up the singleplayer tournament ladder and… dream of how it could have been?
For the UT2004 singleplayer ladder has a “team management” mechanic that ultimately offers nothing but fires my creative juices right up.