I have to say, first off, that this is going to be one of the least interesting releases ever. There’s basically nothing changed that you’ll notice. What there is, though, is quite important.
First off, I rewrote the build system entirely, in scons instead of make. This is entirely meaningless to the end-user, but it means that modifying the build system in the future will be much easier. This is a good thing. It makes Zorba less stressed.
Second, I added a small intro screen explaining what exactly you can expect from the game. If you’re reading this, you probably already know what to expect, but the average dude coming in off the metaphorical street probably won’t. So while that’s not exciting either, it’s important.
Third – and most importantly – I finally have a good crash reporting system. If the game crashes, it will beg permission to report the crash dump to my servers, and if given permission, give me information on what went wrong. I actually have no idea if it’s been crashing for people – with luck it hasnt been – but the reason I don’t know is because, fundamentally, nobody ever reports crashes, they just roll their eyes, say “oh, indie developers” and delete the game.
Which is not ideal from my point of view.
There’s a lot of subtlety in a crash reporting system. For example, I’ve got mine rigged up so I can return messages, based on the game version, before the potentially large crash dump is sent. So if I start getting flooded with crashes that I’ve fixed, I can tell people to go download the new improved version, please, and stop bothering me with things I already know. (Perhaps not in those words.) Not only that but I can also return messages after the crash dump is sent, so I can analyze it server-side and return things like “your graphics card sucks” or “your RAM is bad”. And it transmits the data in a compressed form to save on bandwidth, and it records as much information as I can without violating the privacy of my users.
Oh, yeah, that too. I don’t violate user privacy. I don’t send a single byte before the user has said “yes, I am fine with sending my debug log to Mandible.” I’ve carefully checked the debug file to make sure I don’t include anything that’s identifiable (and removed a few debug printouts that went a bit too far, in fact) – the worst I can do is tell you what kind of graphics hardware you have, and what kind of joysticks you have plugged in. Which is obviously kind of important for debugging. I do not feel bad for including this.
Any kind of reporting of this type, of course, has to be agonizing careful about privacy issues. And, inevitably, someone is going to get annoyed at what I’m doing.
At least this way, I can tell them to just click “no”.