Ring Fling – Developer Diary 1 – Origins
Howdy everyone. As you’ve hopefully all heard, Ring Fling has been approved by Apple and will be coming out on May 31st. I’m so much more excited about it then I ever imagined I would be. On one hand, I recognize that it’s a modest little game, but on the other hand, I genuinely feel like it’s really polished, approachable, and most importantly, loads of fun. While I’m bursting with energy, I thought I’d wrote some blog posts about it’s creation.
This one will be an origin story. Disappointingly, this is an origin story without radioactive spiders and even without a cat named Mr. Chubbikins. The idea for Ring Fling was born out of a series of failures. I’ve wanted to make a touch-based game for ages. I’ve previously written about Mismatch, which was a push-pull puzzle game which started out on PC, but was going well enough to convince me to buy a Mac to port our FTG codebase to iOS. Shortly afterward, though, FTG was abandoned and I started working on Facebook games.
It wasn’t until a random week about six months ago that I decided I wanted to take another stab at iOS. In fact, I decided I wanted to go whole hog into iOS. I deleted a lot of code that week. Firstly, I deleted all the console style code from FTG. There was so much code for handling control pads and doing all the various cross platform bits that I just got sick of maintaining. The bigger change, though, was that I deleted every line of code that Luke had written. It’s not that any of the code was bad or that Luke would have sued me if I used it. It was just that it was such a small codebase at that point, that I wanted to understand every single bit of it. I couldn’t have something break and have to ask Luke what was going on or anything like that.
The luxury I had was that I had a lot of “spare” time. I was working for a company in San Mateo called A Bit Lucky and I was working California hours from London. My normal work day was from 4PM until 1AM, which meant I had every morning to do whatever I wanted. It’s a sad state of affairs, but “whatever I wanted” at the time meant diving in things like serialization, resource management, memory management, etc. It’s the kind of stuff I always took for granted in the rest of my programming life. I don’t think I’d ever recommend to other people to write any of these things for themselves in this day and age, but it was very enlightening to do it once.
At the beginning of 2012, I decided to go freelance. My primary goal was to eek out 1 day a week to build up my game design skills. I had been making games for 8 years at that point, yet my ability to design games was just laughable. Everyone thinks they would be a great game designer, but actually designing games with a coherent set of complementary mechanics is absurdly difficult. The problem for me, was that as a programmer, my job was just to type other people’s ideas into the computer. The problem wasn’t that I wasn’t getting recognition or nobody was listening to my brilliant ideas. It was more than I knew if none of my ideas ever got to the player, I wouldn’t know if they were any good and I’d never get better at game design. It was a cycle that would ensure I’d always just be an implementer of other people’s ideas.
So, I sold my 4 days a week and started prototyping ideas on my 1 day a week. I started prototyping a strategy game. The idea was to make a game on two levels. There would be a world map level that was turn based and played like Civilization and then a city level, which would play like an RTS. I made the single biggest mistake that everyone makes on their first project. It was too big–way way way too big. It’s not that I couldn’t have made good progress one day a week. It was that it had too many mechanics for my game design abilities. There was no chance that I could ever make all the mechanics work together at all, let alone to balance them for both simplicity and depth.
So I decided to simplify things. I removed all the RTS elements and tried to convert it to a simultaneous turn-based asynchronous game. To be honest, it was horrible. There were definitely some interesting ideas going on. I played through a few games with my girlfriend and there was definitely something there. What was lacking, though, was anything to make it feel like it belonged on iOS. Every touch interaction was just pressing a button. It could have been done just as easily in Flash and probably would have been way better. I decided to take a day off of it and try to do something that “felt good.”
One of the great things about only doing 1 day a week as an indie was that if I had an idea I was really excited about, it would probably be a few days before I actually got to work on it. I know that sounds like it would be a disadvantage, but I thought it was great. Because my coding skills aren’t bad, but my game design skills are pretty weak, it gave me plenty of time to think about things and think through the obvious versions that wouldn’t work before committing them to code. It also gives me 8 tube journeys to play and dissect games to think about what makes the work. This week in particular, was especially lucky for me. I was organizing and event called GDC Left Behind, which was a series of random drinks in the UK for game developers who didn’t get to go to GDC. I went to 4 out of 5 of the events and got to chat about some ideas I had with some serious game design minds.
By the end of the week, I knew exactly what I was going to prototype. It was a mashup between Hungry Hungry Hippos and Crossfire. I dubbed it Operation Hippo Vomit.