June and July saw us get stuck in the humid, stinking summer bog named “saving and loading”.
This was a task that we originally estimated would take 3-4 weeks to complete. We chuckled at the thought of it taking that long. After all, we'd being preparing for it since last Christmas...
Nobody’s laughing now.
At time of writing, we’re on about week 6 of getting saving and loading ready for our players. And we haven’t even started to test it in final build conditions!
Sadly, this makes for the longest gap between versions we’ve had since our pre-alpha launch back in April. The added pressure of being behind schedule when you’ve got sales to earn and players to keep happy is, well, pretty darn stressful.
But that’s not to say that it’s been unproductive month in total. Despite our lead programmer consumed with the huge task of saving and loading, a lot of good stuff has been poured into the game.
The Saving Situation
Sometimes I wish we could hire more people to make things go faster (assuming more people would actually help with that). This month we chatted (again) about recruiting a 2nd full-time programmer to help, but we just can’t afford it yet when our own potential livelihoods are on the line. It's a constant temptation though, especially when you see promising people on Reddit offering their services.
We became so overdue with our deadline this month that even I started learning how to code! Sometimes I get an inferiority complex that I can’t program, (despite the fact I work as designer, producer, marketing guy, environment artist, and tester). There still feels like an expectation out there that indie game designers should code. Desperate for more progress, I started an online course to learn how to code (this one if you’re interested). It's neat learning the basics of C# but I can tell straight away, coding is not something that I enjoy enough to get good at it. I have to force it whereas the rest of my duties come naturally and just flow.
Anyway, as I struggled with that, Nick exhausted every waking hour on saving and loading. Piecing together his war stories as told over Skype, I think our problems started because we tried to make our own custom solution but I might be wrong. As mentioned in previous blogs, Unity doesn’t come with any built-in support for save games. That left 2 options: Buy a third-party solution or create our own. Both have risks. The Unity Asset Store sells a lot of overpriced crap at times. You really have to be confident you’re getting what you want, especially when money is tight. Then you have to hope whoever is making it will keep it updated. We weren’t convinced by any of the existing third-party save game solutions and felt they'd add as much work as they'd solve.
So for better or worse, Nick started to make his own that we could use not only on Atomic Society but on any subsequent games.
We hit many unforeseen problems and struggled with so many elements: keeping the system flexible when we don’t know what needs to saved months down the line, learning the complex aspects of JSON and serialisation (without any access to paid tutorials) making it so saving your game just saves the gameplay elements and not all the Unity game engine elements that are entwined with everything. On top of all that, there's a huge amount of testing to do with each step. And we haven't even got started on the UI yet. So many unexpected snags.
The lesson we’ve learnt is - do your saving and loading system as soon as you can! Not 1.5 years into development when your game is a complex machine. The catch-22 of that is that a year ago (when we should’ve theoretically done this) we probably weren't experienced enough to do so!
It pains me though to tell our customers “nope, not this week” week after week but there's nothing I can do about it. We're working at full speed and there's always the problem of burnout. It stings seeing Nick (one of the hardest working person I know) disappointed because he can’t figure it all out as quickly as we’d like. He's taking an enforced rest at the moment to avoid tunnel-vision setting in.
I still feel we're on the home straight with the problem, but I'm passed the point where I can promise a release date. 0.0.4 will come when it comes, and hopefully there's still something out there who gives a damn when it does!
One feature that we did get up and running this month is our new town stats screen. There’s a lot of stuff for players to keep track of in AS and we needed a single screen where they people can monitor how they’re doing. Adam did the math for this and worked out a system to track the most vital statistics. As you can see in the image below, you can now see things like how many people are homeless, starving, old, builders, etc. It's really useful as a player.
We also made it track crime statistics. The game will track the murder rate in your town for example, letting you know if the laws you’ve picked are having any big effect over the last 30 days. Personally, I’m always a bit wary of stats, I don’t want players staring at a boring old menu for the hours. It’s about finding a line between what we can show in the game world and what should go in a menu. This new stats screen is a definite step in the right direction.
Summer peaks and we were lucky to regain the full-time focus of our artist, Nani. Nani happens to be a teacher as her day job and that doesn’t leave a lot of time for (almost) unpaid game development. But it’s the school holidays now thank goodness so she started pouring in the artwork again.
0.0.4 will see numerous cosmetic tweaks: re-done buttons, clearer background textures, redone menus, certain ruins have gained more details, and some of the quirkier animations have been smoothed out. She also created some post-apocalyptic cattle for the livestock ranch building. Some guerrilla artwork went into this. Every building in Atomic Society has a fixed set of textures. We don’t have many to choose from to keep performance as high as possible. So if you look closely, you’ll see our cows actually have wooden skin. Something to go back and sort later on if anybody notices!
In addition to that, I experimented with depth of field, giving our bleak landscapes a sense that they’re much larger than they really are, and I modified many of the lighting and image effects in-game and on the frontend screens. I have to admit, some of our 3D models are on the simple side. They have to be in a game where you can build vast towns. But a 3D model looks only as bad as its lighting. By tinkering with SSAO and other effects I was able to add additional detail to the characters, essentially getting more detail out of nothing.
The quirk of this is that it's given the game a more stylised, comic book style look which I actually think looks quite cool. It's not overdone or cel-shaded or anything, but it makes up for what we lack in verisimilitude somewhat.
Every new version we include has a new environment to play with. 0.0.4 brings the Canyons. Canyons is a unique map and I’ll be interested to hear how players get on with it. Basically, on most levels you have full freedom to fly across the landscape with the camera. But on this level you don’t. The canyon walls are so high that even the overview camera can’t get over them. You have to explore the canyon as if you were stuck inside it. I’m a fan of our desert-themed maps and its fun building a settlement at the bottom of the Grand Canyon. This latest map, our 5th so far, is ready to go in 0.0.4.
We also expanded the construction system to give players more choices. In 0.0.4 you can now cancel constructions once placed, and to demolish buildings that are no longer wanted. This took a little effort as when you place a building in AS it actually deforms the scenery, and paints a texture onto the environment. Removing both at run-time took a little fuss. The added (sneaky) bonus to this is that now we can tell players to demolish a building if for some unfortunate reason it gets bugged!
On top of that we made a small gameplay tweak to how building materials get delivered. It used to be the case that builder citizens physically had to go to the storehouse, get what they need, and deliver it to the building site. The problem? They’re about as reliable as a real-world delivery person without a sat nav. Waiting for stuff isn’t cool so this is one of the rare cases where we favoured fun over realism and building materials now warp to where they’re needed. This removes a lot of the frustrating and downtime in making settlements and lets people get on with the fun stuff.
We had a few players who are Linux fans so this month we’ll be putting out an experimental Linux build of the game alongside the Windows build. We were fortunate enough one of our players volunteered to test it to see if it works at all and the results were positive so far. Linux will not be officially supported for a while, but it will give a performance kick to those brave enough to use this test build.
The game grows each month, but the bug log grows too! There are currently 30 confirmed bugs in Atomic Society and who knows how many undiscovered ones. Some are serious, like employees refusing to work. Some are semi-serious, like hanging bodies dangling from their bellies rather than their necks. As an "Early Access" game (sort of) it's hard finding the balance between what must be fixed and what we can leave lurking in the background for players. It's the weird modern way of development where you're constantly releasing buggy software.
At least our players have been helpful in reporting them over on our forum.
A very obscure Youtuber who I'd never heard of decided to make a rather crude video about our game. This was a bit surreal as it’s the first time it’s happened (though other streamers have mentioned us). The guy must’ve bought the game with his own money as we're definitely not sending out press copies. Needless to say, his video was a bit of a disaster (it barely got 32 views and isn't exactly fun to watch). The guy got confused immediately, through a mixture of ignoring warning messages and playing at a tiny resolution that cut off help messages. Yet despite all that... I loved watching it! As a designer I just want to watch people play the game. It's fascinating even when it goes wrong.
Based on what I saw him do from afar, I was able to make immediate changes for 0.0.4 that should ease new players in. For example, the town leader now spawns with some starting resources, meaning there’s less busy work at the start of the game. Adam is now working on a more comprehensive tutorial system. And I also locked off unfinished levels in the game. Up to now, we let players play on even unfinished maps if they’re curious enough, albeit with a warning. That was fine, but most players probably ignore those warnings so I've had to disable them.
Hopefully when the next version is out with working save games I might try and contact a few streamers, just to get feedback if nothing else. I'm not sure it's a good idea? It is still very early days.
Wrapping It Up & Prediction Time
So that's it for this weird dev blog where we're stuck between versions.
Reading back, last month's’ predictions of what would happen this month turned out to be pretty spot on. We were able to include all the features I'd guessed at, even if we couldn't finish the dreaded saving and loading we still got most of it in.
Next month I predict we’ll start implementing more of the society judgements such as the prison system, (executing everybody is a tad insane), add more buildings that actually work, and start implementing UI adding in more sound effects.
And of course, most of all, I hope we actually finish saving and loading!
Game development never goes at the pace you want it to. It's either too manic or too slow. I know this as a player of other games where stuff changed too often, or too slowly.
I just have to hope that's the way it's got to be.
The Road to Release
Every month we release a personal and honest look at the making of Atomic Society.