Monday, December 30, 2013

2012 - The launch of GameMaker: Studio

At the end of 2011, we set to work making a new product, GameMaker: Studio, with the intent that we could show it off at GDC in San Francisco in March. This gave us only a few short months to pull everything together, although this time, most of the hard graft fell to Russell. He had to convert all the nasty automated build scripts we had, into something that could work in a product, which wasn't an easy task.

We recoloured the IDE again so that it once more looked like a newer product and set about making the necessary IDE changes. Also part of this major release was bringing our Mac exporter up to date, and making it complete. Up until now, it worked just enough for the games we released, which were fairly simple so far. On top of this we also decided to add Box2D physics into the product to help mark it as a major update from the original.

To help squash bugs, we also released it as an open Beta, allowing all developers to play with it and help us track down bugs. This did result in several large "bug only" releases, but helped the stability a lot.

During this time, I was asked to speak at GDC on an HTML5 track by Darius Kazemi, something I was please to do. I love to do public speaking, particually when it's something I can actually speak with authority on! So while all this was going on, I was also preparing my slides for my first GDC talk, and the games guys were putting together a couple of demos for us to show off.

So in March, we were ready to head off. Geoff designed some large banners for the stand - a significant step up over our first stand at GDC Europe the year before, and Russell and I took them on as oversized luggage. That was a challenge! I searched for a week or so to find bags they would fit in, and ended up with 2 very large Ski bags, each of which could fit half the stand. Still once it was on the plane, it wasn't too much effort, but getting a Taxi big enough to take us to the hotel was fun.

Having not been to San Francisco before, I had expected to get Sunday free, but we hadn't finished splitting the demos, or written our scripts for our talks Sandy had decided we would do, so we actually spend the whole of Sunday in Sandy's hotel room finishing it all off, ready for the show. Sandy, his better half Caitlin, and Michel Cassius however, went out for a day of shopping, leaving us to plod on. We finished in time for us all to have a nice meal together at night, and we were finally ready for the show.

GDC 2012, San Francisco
It turned out to be an extremely busy show at that, and even though we booked late, we had lucked out on the location of the stand, and were directly across from Google, so there was lots of foot traffic. We got lots of interest, and loads of folk downloaded the beta to give it a whirl so we came back feeling good about the future.

But now the hard work of wrapping it all up into a fully viable product began, and there were quite a few late nights to make it happen. One thing we've tried hard to do, is avoid lots of crunch. Sure, it comes with the territory, but there is no excuse for excessive crunch, and while we work hard to achieve the deadlines we set, Sandy has always been flexible when it comes to them, making sure the product comes first, but without killing the staff - something we're all immensely grateful for.

Studio marked a major milestone for YoYo Games, with this product we were firmly looking to the professional developer; that is, a developer that wants to make money from his games not just for fun. Because of the effort involved, and the new target audience, the price was a lot more than the current community thought it would be, and they weren't happy. This was to be expected though, these guys were basically folk who bought Game Maker for $15 and many had been getting free updates for years. To suddenly have to pay hundreds of dollars seemed like a rip off to them, yet to a professional developer, a couple of hundred dollars with no royalties seemed like a deal that was too good to be true. But if YoYo was to grow, we needed these professionals to take us seriously, and shows like GDC were all about raising awareness of who we are and what we are doing.  Of course,we'd seen this already with GameMaker: HTML5, but it came back with a vengeance for Studio.

This isn't to say everyone felt like this, no, it was mostly the very old core GM devs who simply felt that YoYo should more or less be giving everything away for free - or close to it. But Game Maker was no longer a hobby project by a one man band, YoYo now had staff, offices and bills to pay, and this meant it had to be realistic on pricing, but that didn't matter, and suddenly everyone was a marketing expert.

While all this was going on, I'd decided to create a Deluxe version of Simply Solitaire at home, to see if it would help kick it back up the charts a bit. I had also merged the products into one, as previously we had 2 code bases, one for phone, and one for tablet. This was a nightmare, so I merged them into one, and created a new Pro and Free version. This went on sale at the start of April, but aside from now simplifying our code (and finally giving both Landscape and Portrait versions in one app), it failed to boost the app up the charts, which was a shame. One thing it did do though, was get a complaint from someone who owned the trademark of Simple Solitaire Deluxe, something we obviously knew nothing about. So we quickly rebranded as Simple Solitaire Pro and pushed out an update. The owners of the Deluxe trademark were friendly enough and this satisfied them and Apple.

We plodded with the work, and on and Studio was finally released on 22nd of May and we were finally able to draw a breath. Sales went well, when out of the blue YoYo got an invite to display at Google I/O, so Russell, Malcolm and Sandy all headed off while the rest of us carried on. We finally got another payment system in place, and hoped that this would solve all our problems - it helped a lot, but didn't quite.

Around July we had a very interesting call with Steam, and as they were about to open up a new software store, they were interested in getting GameMaker on there. Now, Sandy had been very rude to them the last time we spoke - things just weren't right for us to do anything, so it was a little embarrassing, but Valve are a great company, and everything was laughed off and smoothed over, and it was decided we would be one of the very few launch products for their new store. We asked when it was launching, and they just laughed again. Valve time is well known for being whenever they are ready, so we never felt much of a rush. We said we would look to add Steam Workshop support - something they were utterly thrilled at, but we had to make certain restrictions in the runner, and so the infamous Sandbox mode appeared. This was to protect users from rogue code, and to make sure everything was secure.


Russell was busy with other things, so I set to work making a new Steam version, when all of a sudden we got another slightly panicked call saying it had all been pushed up, and we had just a month to launch. We debated how much time we had, and how much I had to do, but we decided to just go for it, and put everything we'd planned into it. This included Steam workshop support and the the new Player app. I took the sample app they provided as it had both Mac and Windows support, and stripped it back, then added the player support, including downloading of subscription games, and playing them. This turned out to be a mistake, the sample app must have been written by an intern, as it was pretty nasty, and the Mac code was done totally wrongly. Russell took over the port of the Mac version and fudged it enough that it worked - if only just.  It was extremely hard work, and the whole month was basically crunch - something none of us wanted, but we had to be ready when Steam was.

I finished up all the new licensing system, plugged in the DLC engine they used and managed to get the whole of GameMaker and the exports onto Steam, Sandy was ecstatic, and Steam...well, it got delayed by about a month. Typical. Still, our work was done, and while I was off on holiday, Steam launched their Software store. We got some great press from it, and the new Free version we created for it's launch went down well. On top of that, we appeared to be the only bit of software that had implemented the Steam Workshop, so steam were extremely pleased with us as well. It might have almost killed me, but it was certainly worth it.

While all this was going on, Stuart and Sandy had been working hard with Microsoft, and we had added window 8 Javascript support, and we had started work on windows RT support - for native support on desktop, and phones/surfaces. Unity had announced this as well, but in typical Unity fashion, they announced a lot, and delivered very little. We on the other had managed to deliver what we promised, and Microsoft were also extremely pleased with what we delivered.

Enter November, and possibly the darkest hour - as it were, of my time here. The DRM bug. The "skull and crossbones" had been added to keep hackers at bay, and it had done just that since it's launch (and it wasn't for their lack of trying either) - which was quite an impressive feat, but additional checks were added by the team and in certain cases these simply failed, and resulted in false positives springing up. The additional code simply wasn't tested properly and a few users - only around only 0.02%  if memory serves were hit bit this. Most were able to restore from backups, but a couple weren't. We got a fix out within 2 days, but the damage was done. It was blown up out of all proportion, and folk were shouting how stupid it was and that they would never use GameMaker again, even when most of the folk complaining it turned out, never used it anyway. While the original code was mine, the bug that cause it wasn't, but the outside world needed someone to blame and it fell on me, which was fine. One thing about being outspoken in other cases, when things go wrong, you have to take it on the chin no matter who is to blame.

However they were right about one thing... my personal fight with the pirates had blinded me to our paying customers, and no matter what protection you put in to a product, it should never, EVER hurt a legit user, no matter how small the number. It was a painful lesson for me, not least because I'd seriously upset Sandy, and he's put a lot on the line for YoYo over the years, so his disappointment in the resulting news scandal was something I was quite upset over. We removed the offending checks, and then removed all other checks that could hurt an end user. In fact, the protection went totally passive. It still checks itself, and the various licenses, but it now only records and stores the issue for later analysis, and while we do now know who has a cracked copy, we haven't decided what to do about it yet.

So while 2012 was mostly a positive year with some astounding releases and work, it ended on a low, partly because I knew how out of proportion the whole DRM thing was, but mostly because I'd disappointed Sandy, and he has enough on his plate than to deal with stuff like this. So lesson learnt, I was looking forward to 2013 and getting back to the great foundation we'd built with Studio.


No comments: