Article original published on the Maia blog
With Maia maturing, this week’s hotfix up on Steam (fixing the food production and dehydration issues) and the full ten hours of campaign (with voiceover!) in production, I’m taking some time to address why it’s all taking so bloody long. Maia has been delayed several times, and by many factors, most of them stupid. Many people assume the unprecedented level of simulation or the custom engine have been the issues, but it’s far more complex than that. To improve for the future it’s worth addressing mistakes made, opportunities missed and who needs to be lined up against a wall. So without further delay… here’s how to delay your indie game.
Maia was the first UK Kickstarter to launch, and during my campaign I promised a lot.
As the UK's big name developers cottoned on to the idea of crowdfunding and prepared their own campaigns, I noticed them making a lot of suspect promises. Having worked with and with people who have worked with those developers, I knew they were stretching the truth and I resolved myself not to become like them.
I set some dates for an alpha release, for a Steam Early Access release, and I was determined to hit them. When those dates approached, it became clear that I was unlikely to hit my milestones for features, and I wasn’t best pleased with the stability either. I decided to launch anyway, because I felt that keeping the promise of those dates was important. I was wrong – dates are the one thing you can shift about indefinitely, with good reason, and anyone with a brain will understand why.
Launching at an early stage caused a support backlog of biblical proportions. My engine will run on almost anything. I’ve spent a lot of time ensuring it. But problems crop up none-the-less. When you sell five figures on your first day, even a small amount of issues are suddenly a full time job for an entire team of QA staff and programmers. As a solo bedroom programmer I was quite unprepared to deal with it. This cost me months, and frankly continues to cost me time and money every day.
Honestly, I should have planned the Steam Early Access launch for the exact day the Kickstarter money ran out, and not a day sooner. Had we launched it six months later, Maia would already be shipped.
The engine is OpenGL and uses SDL for windowing. It seemed entirely feasible to support Macbook Pros, and potentially even the lower-end machines. Sadly Apple just doesn’t care about graphics performance at all.
Despite claiming to, their drivers just don’t properly implement the OpenGL specifications. Many API functions that graphics programmers use to optimise their engines will drop a Macbook down to five frames a second. You’ll see it flushing the graphics pipeline for no reason, or a hardware call being run entirely in software. Then a new OSX update will hit and everything will change again, yet at the same time I will need to still cater for the previous releases and older machines. Much like Apple's smug advertising, it’s unbearable.
Dates are the one thing you can shift about indefinitely, with good reason, and anyone with a brain will understand why.
Let’s not forget that requiring a £3,000 Macbook to build and test the game on was a non-trivial amount of money for our budget. Has Mac support broken even? Unlikely. Would I support Mac again? No.
Supporting low end machines
The engine is super lightweight, and should run on low-end machines very well. Big chunks of game simulation run through different threads with pretty good cache efficiency and using a minimum of RAM. However, I knew that supporting integrated graphics was not something we wanted to do. I had a feeling that I would end up supporting them anyway.
A large number of people on low-end machines did not understand or sometimes entirely ignored the system specifications of the game and bought it despite only having integrated graphics. This was before Steam had any sort of clear refund policy and as such I started to get a lot of anger on the forums and in reviews.
With a PR disaster on my hands, I decided that implementing support for integrated graphics would be a worthwhile use of my time. I am unsure as to whether it was. It caused me quite a bit of stress. Whilst I could live with poor performance, I again found massive support gaps in Intel’s drivers. The engine now needed multiple paths for these low end chips, I even ended up reimplementing all of my shaders just to get them to run.
Intel for their part was reasonably helpful. As well as some test hardware, the developer relations team provided me with resources and contacts to discuss the problems with. But with many of the integrated systems, once they are out of the door, that’s it. They wouldn’t be fixing the clear replicable bugs I had found in the HD 3000 and HD 4000 systems.
Linux, for all it’s faults, has not been too much of a problem. For the most part, the game functioned well, sometimes even better than on Windows. However, recently there was a big shake-up with the graphics stack and it was an unpleasant surprise for me. The largest distributions decided to deprecate the closed source binary drivers for ATI graphics and switch over to their open source ones.
I won’t go into the technical details, but for the first time in a long time a problem was entirely out of my hands, and entirely unfixable, and it took me a long time to realise this. This ruined our schedule, disappointed a lot of fans and demoralised me further.
I should probably note also that off-the-shelf engines would not have solved any of the above problems in the game. Indeed, being beholden to them for fixing their own support would have left me absolutely stuck several times over.
The Machine Studios office is fantastic, but I should have got it a year or two earlier than I did.
Her Majesty’s Revenue and Customs
Anything the tax man says to you down the phone is in bad faith. In late 2013 I was pointed towards a helpline and asked for some advice, received it and filed some tax information using it. I realised that they had been wrong and made moves to correct it. They said they had corrected it, but continued to chase tax on it for many months. My accountant made moves to sort it out and also had it confirmed that it had been corrected.
If you’ve ever seen a certain Terry Gilliam film, you know where this was going. I continued to receive letters and phone calls. No amount of paperwork, calls – mostly spent being ping-ponged around departments or on hold – or complaints could fix their horrendous antiquated bureaucracy. At one point I gave in and just paid it. They repaid it immediately, as nothing was owed.
They eventually sold the fictional debt to a third-party debt collector who started ringing me on Saturday and Sunday mornings at 8am and literally threatening me. This whole episode went on for over six months.
HSBC spent the best part of three months setting up a bank account for the company. After them messing up the paperwork twice at their end, many hours on the phone, and several trips to the bank for them to scan my passport and documents I got mildly annoyed. I went into a branch, waving the paperwork and demanded to some answers about my bank account. They took the paperwork from me. I was taken to a little room, sat down, and was asked what sort of bank account I wanted.
I was confused. “My bank account,” I asked slowly. “I want my business bank account”. This was met by similar confusion and another sales pitch, delivered a little slower. I cut in, and tried to explain.
The bank worker frowned and typed into a computer. “I’m sorry you don’t have a bank account with us – there’s nothing on record.”
I walked out immediately.
I called Natwest, and for all their awfulness, they got our business account set up in about a week. I even had a nice conversation about the game down the phone to their business team manager who was happy I wasn’t making that zombie game with all that violence her son had started playing.
I wouldn’t advise getting a business account with Natwest however. The reality now in 2016 is that private banks are the only ones really working for their customers money.
There has not been a day since December 2012 when I have not stared into space and felt some sort of doubt, guilt or anguish over the game.
The Machine Studios office is fantastic. It’s great to have a space to separate my work life and home life and to allow me to have on site staff who can receive real time feedback from me. The mistake here is I should have got it a year or two earlier than I did.
Before moving into the office I was working from my bedroom in a shared flat. My bed was directly behind my desk in my dark little concrete apartment in South Oxford. I did push local indies to co-work in cafes and other workspaces, but I spent a lot of time quite alone. Needless to say that’s not good for anyone’s mental or physical health.
When I got the office I saw a huge productivity boost and Ruairi, our QA guy, noticed a significant drop in bugs making it into testing. And that productivity has remained. It’s a shame I didn’t have it far earlier. I should have started looking the day we were funded.
The monthly milestones we were putting out until recently have been great for keeping Early Access players engaged with my development process(this one is a bit longer and soon we will be pushing builds to Steam weekly and then daily). They’ve also kept me quite focused and helped us move the game towards a beta state. However, they have come at a significant time cost. Doing a release involves several very time consuming things.
Firstly, finalising a build locks down things in development, we lose a bit of agility and some time every time we do it. It also involves building and testing several different releases… Windows 32bit, Windows 64bit, Windows Intel GPU, Linux 64 and OSX. Those then have to be uploaded to Steam and our own servers for people to download, and then be tested again.
Producing the update announcements, crowd funding updates, screenshots, videos and tweets – no point doing the release unless people see these and play the update – can take a few hours to an entire day.
Any update I release nowadays or any press I release will be followed by 20 to 30 emails of people who have lost their keys or forgotten their accounts. That eats up time.
After the release, we are then usually hit by another round of support tokens. There will be some changes on some operating systems or some drivers that will have broken something and we will need to replicate and fix it.
This whole process can take up to a week. That’s a pretty big stall. It’s worthwhile in many ways, and was critical mid-development testing, but very costly in terms of time. It should be noted that despite the regular updates, we still got plenty of people on the internet claiming the game was abandoned. They weren’t all morons, as of course more updates means you get less coverage. Even a really meaty Maia update with some great fun features and an entertaining update video won’t get a stub article on most sites at the moment. Annoying when they’ll be the first to skewer you when you do go silent for a little bit.
When my Kickstarter completed “fufillment” companies just didn’t exist and when they started to pop up they didn’t provide anywhere near the level of service I wanted to provide my backers. I ended up signing, rolling, packing and applying the correct postage to hundreds of poster tubes.
Royal Mail provides no way to buy and print postage to different international addresses in bulk. So I had to apply the stamps by hand. Thousands of pounds worth of stamps. It’s a good thing they are now self adhesive or I’d have some sort of saliva deficiency right now.
That and sending out backer keys. I set up a mass mailing system and sent everyone keys twice. Despite all my preparation, a large number of people lost their keys or had them land in spam boxes. Any update I release nowadays or any press I release will be followed by 20 to 30 emails of people who have lost their keys or forgotten their accounts. That eats up time.
If I did it again I would probably invest time to create some sort of automated key claiming system, but there’s not much else you can do when trying to herd 8,000 or so busy and distracted people towards their Steam key.
There has not been a day since December 2012 when I have not stared into space and felt some sort of doubt, guilt or anguish over the game. Once you have such pressure, this Damocles’ sword hanging over you, it becomes very hard to do anything else with your life.
It’s almost impossible for me to enjoy playing another computer game – not that I have the time for them anyway. I find myself zoning out whilst watching films in the cinema or reading a book. Any TV show with episodes over 10 to 20 minutes causes me literal stress. And when you are this stressed you don’t work well. Which leads to more anxiety and guilt. It’s pretty fabulous.
I had some pretty bad periods in 2014 where people would struggle to talk to me about anything. It’s better now that the game is on track for completion, although money worries do eat at me now as we approach the finishing line. Especially now that I have other people’s livelihoods in my hands. I am a big anti-crunch advocate, however time off is of little value when you can’t switch off.
Not much you can do about a shadow of dry anxiety though. Having a plan helps. Hitting goals and signing them on. Drinking beer.
This blog has taken three hours, what a waste. Don’t write blogs.