Archive for the ‘ Ring Fling ’ Category

Ring Fling Version 1.1 and Weekend Sale

Today, I’ve released version 1.1 of Ring Fling and put it on sale for $.99 for the weekend.

So what’s in version 1.1? There are 2 new features, a crash fix, and some gameplay tweaks.

The first feature, and the one I’m most excited about, is the ability to set the number of rings each player starts with. I’ve documented my previous attempts at encouraging strategy in Ring Fling, but I think this feature will have the biggest impact to date. The idea is simple, if you want a more strategic game, drop the number of rings. This makes it so players need to think before firing and focus on timing and accuracy rather than spamming to win the game. I’ve also added a visual pulse to when you’re out of ammo so people start figuring out the mechanic a bit faster. On the other side of the coin, if you love the frantic pace of Ring Fling and want it to be even crazier, you can increase the number of rings and never need to think about conserving again.

The second feature was widely requested from both players and reviewers. In Ring Fling 1.1, you can set how many points you play to. So if you’d like to play a super quick duel against a friend, you can set it to be a 5 point game. If you want to have a grand slam, you can push up the winning score.

There was also a really bad crash fix that would happen if you played for a really long session, not THAT long on iPad3 actually. I can’t imagine anything more annoying than being in the middle of a game and having it crash on you. I’m sorry that I didn’t catch it earlier. I’d heard about this crash and had been trying to reproduce it for months and it wasn’t until a few weeks ago that I figured it out and was able to fix it.

If you’re extra curious, there are some other smaller changes. I reduced the number of points you needed to unlock later modifiers. The feedback was that it was just too slow. I added the ability to flip the screen over if you were so inclined. I made some changes to how releasing rings feels. Every now and then, if you didn’t follow through your swipe, the ring would go a lot slower. I didn’t want that to happen anymore. I tweaked the weights of the targets so rounds with 1 star didn’t take so much longer than rounds with 3 stars. I changed all the text to talk about stars and goals instead of jaggies and zones. After hearing so many people struggle with my bad terminology, I thought I’d stick with what everyone ended up calling them anyway.

If you’ve got any feedback or suggestions for new features, drop me a line on twitter @mugathur. Thanks for playing!

Also, as every update clears my reviews, I’d really appreciate it if you’d take the time to review Ring Fling and let me know what you think. =)

Ring Fling – Developer Diary 8 – Launch Day

I’ve been postponing and postponing this post because I wanted to be out of the bubble when I wrote it, but it just seems impossible. I’ll cut to the chase. Launch day was absolutely amazing. Short of getting engaged to my girlfriend earlier this year, it was probably the most exciting day of my life.

I woke up in the morning mentally counting the hours until 1PM, when New Zealand would launch. Since I have a day job, I had pre-written all the forum posts and emails and such that I had to send and had them all locked and loaded in my gmail drafts folder. The clock struck one and 24 hours of insanity began.

I genuinely couldn’t believe how supportive the iOS community was. In particular, I launched alongside Duckers by Retro Dreamer and Little Things Forever by KlickTock. Both of them were ridiculously helpful both in promoting Ring Fling, but also setting a great example of how to handle a game on launch day. But it wasn’t just them or just my friends. It was all kinds of people. It was press. It was players. It was all over the place.

When the day started, I had very low expectations. The only coverage that I thought I had any chance of getting was to be listed in Touch Arcade’s Coming Tonight feature. I knew that posting in the forums got you into the running and it seemed like they posted most, if not all, of the new games from the forums. However, that first day, I think I got something like 8 or 9 mentions including some pretty huge outlets.

And this is where the actual blog post starts because in that 24 hours, I learned what it was to be indie. At least to me. I think back to the times that I had in console games. I’m extremely proud of LittleBigPlanet and Ratchet & Clank. But there’s something missing. I’m proud of them as titles. I’m proud of the hard work I put into them. But the thing that’s missing is that I’m not proud that my contribution made them the great games that they were. It’s strange. I can think along the lines of “I wrote the switches code in LBP and without switches, the creator community couldn’t have done all the amazing things it did.” However, that’s true of joins and CSG shapes and loads of artwork and the pop-it and a huge list of other stuff. And I didn’t design or make the art for switches. Would people have even understood them if I designed them? If I wasn’t there, would LBP still have had switches? Would they be different in any way at all? We don’t have a time machine to AB test all this stuff. I’ll never know. After I left Media Molecule, they hired another gameplay programmer to replace me and he seemed to do at least as good a job as I did on everything. I’ll always be proud that I was lucky enough to be part of that team, but I’ll never know if I made a difference. I think that’s one of the reasons going gold and launch are exciting in console games, but there’s something awkward about them even beyond the sleep deprivation induced zombism.

I don’t know if this is true with everyone, but to me, doubt is a horrifyingly powerful force, especially with credit. In the years since I’ve met my fiance, Carly, I’ve become a lot more human. In fact, she always comments on the way I use the word human as though it’s a concept completely removed from me. But before that, I was explicitly working very hard to live a life without emotion and of the purest theoretical ethics. If you were to ask me to describe my fundamental philosophy in life in one word, that word would have been desert. By desert, I don’t mean the place with lots of sand. It’s also not a misspelling of the category of fatty foods, although they were also a big part of my life. By desert, I refer to the state of being deserving of something. It’s such a critical concept to me. It’s the difference between confidence and arrogance. It’s the difference between a reward and greed. It’s the difference between achievement and theft. It is the concept that goes deepest into the core of my being. When I interview people, my most important attribute I’m looking for isn’t their ability to code. It’s the relationship between how good they are and how good they think they are. People who think they’re better than they are aren’t ready to listen or learn or grow. In a few years, they will be left behind. People who think dramatically less of themselves than they should are not prepared to spread their knowledge and teach and nurture others. People who have a pretty good sense of where they stand, though, are incredible. They know there are people better than them in certain things and will always try to develop in those areas. They know what they possess and they’ll be happy to share it onward with others.

So to me, taking credit for something I didn’t do is a horrific crime. Even through this whole Ring Fling experience, I have some direct contributors to Ring Fling, but they’ve requested that I not be too loud about their contributions. Not sufficiently crediting them makes me feel like a fraud at times. So on a big project like LBP, for me to claim I was instrumental or irreplaceable in any way is riddled with doubt, and rightly so. With that many people in the mix, you’ll never know what it would have been like without a particular individual. And even on LBP, if I look back and try to make the objective list of people that the game fundamentally couldn’t have been as great without, I don’t put myself on that list. I got stuff done. I had a great time doing it. I’m happy that I did. I’m proud I helped out, but I’m pretty sure if I didn’t take the job, LBP would have been just as good.

So that’s why Ring Fling was so different. I basically did everything except for sound effects, app icon, and in game text. The game design was mine. The “art” was mine. And I definitely did all of the programming (except of course for Box2D, FreeType, and iOS). While that’s not 100%, it was enough to alleviate the doubt. When people said all the lovely things that were said about Ring Fling, I could take it to heart. It’s kind of funny that they handed out shirts at the end of LBP the said “I MADE THAT!” on the back. On launch day, that was the feeling that I was overwhelmed with. I made that. But this time, I actually did make that. And obviously, with the good, I have to take the bad as well. So when criticisms come in, they’re on me as well.

It’s funny to think about because the idea of combining Crossfire with Hungry Hungry Hippos is such a trivial one. The prototype that I had after my first two days was pretty much what anyone else would have done. At that point, I felt like I needed to release it as fast as possible because if I could make it in two days, anyone could make it in two days. As development continued, though, it was clear that Ring Fling was something that only I would make the way it was. There’s so much of how I think about things built into how the game is written. In the process of planning our wedding, I’ve realized what my approach to creating is. I’m not focused on trying to cram in as many super awesome things as I can into a piece of work. I’m focused on two things: removing anything that’s bad and keeping it coherent. I realized that an attitude like that would never make a Ratchet and Clank where it’s all about requiring a certain number of levels and just knowing some aren’t nearly as good as the others, but the overall experience is good. For me, it’s all an exercise in developing my taste and getting more accurate about what does and doesn’t work.

To me, launch day was many things, but more than anything else, launch day was the first time in my entire career that I felt like I deserved to take credit for something.

Ring Fling – Developer Diary 7 – Road To Launch

The day I announced Ring Fling was incredible. The weekend before, I had just gotten engaged and I received a ton of awesome messages, emails, and mentions on twitter. I’d never experienced such an onslaught of positivity before. When I announced Ring Fling, there was really only one motivation. I wanted to put something on the internet to link to from emails to press. I didn’t expect anything to come of it. I just wanted to put something out there. The reception, though, was unbelievable. It was like the previous weekend all over again. Retweet after retweet. Congrats after congrats.

I’ve always been a bit self-conscious about Ring Fling and about solo development in general. I feel like I’ve worked on some incredible projects with incredible people. Whenever I’ve taken on a solo project, it’s become unbelievably clear what a small role I played on those massive projects and how limited my personal skill set was. It always made me feel a bit like a fraud. So on one hand, I was extremely happy with Ring Fling and how it had turned out, but on the other, it was a definite step down from LittleBigPlanet or even MonstrosCity. So the outpouring of support when it was announced was absolutely amazing.

Since the whole point of putting the announcement out there was to start contacting press, I started doing so. I had been given a short list of email addresses to contact from a friend and started sending emails. Something didn’t feel right, though. I was such a small fry. Who was going to care that I was announcing my game? I started a theme that stands at the core of the entire development and promotion of Ring Fling. I asked twitter. The resounding response was that I shouldn’t contact press until the app has been approved and promo codes are available.

I stopped writing emails and started compiling a list. Once again, I went to twitter for help. A super nice guy, Carson Whitsett, pointed me in the right direction. He sent me to a list of review sites, sent me the email he had sent to press, and included a bunch of other advice about the process he was currently going through. I’d never met him before or interacted with him on twitter. He just volunteered all of this help to me. To be honest, I was kind of blown away by it, but I’ve come to learn that it’s just the way the indie iOS scene works.

The next order of business was submitting a build to Apple. I thought I was basically there. I just wanted to spend a few more days testing before I submitted. I ended up submitting 4 days later on May 11th. It was the same day that I was submitting an app for work, which was kind of crazy. I went from having never submitted an app before to submitting 2 within 24 hours.

After that, it was a really awkward quiet period. I wasn’t going to contact press because I didn’t have promo codes and I wanted to get user feedback before I did any major iterations on the game so I had no code to write. The quiet didn’t last long, though, as Apple only took a week to approve the app. I had read that you should give sites at least 2 weeks to do reviews so that you can get a launch day review for your app and set the release date for May 31st. Now the real work was about to start.

Someone gave some advice that I thought made a lot of sense. I can’t remember who it was, but they said to send emails with promo codes to the top 10 sites and then send emails to the rest saying that promo codes were available if they were interested. Some of them were just email addresses and some of them were forms. I also included promo codes for all the forms that requested them. I ended up sending a total of 60 emails and 30 promo codes.

This was a very difficult process for me for many reasons. Firstly, I’m just a very awkward person. I’ve always been a very awkward person and it’s taken me loads of time and effort to become a socially functional person. The technique I’ve developed for interacting with people, though, is very adaptive. I spend a lot of time reading the other person and making tons of minor adjustments along the way. Me being social is a very manual process. Nothing comes naturally to me. Because of this, I’m terrible at conversations in groups because I can’t track everyone’s reactions at once and even if I could, I wouldn’t know how to respond appropriately to all those different reactions. So writing an email to somebody I know nothing about is a bit of a nightmare for me. Firstly, I have absolutely no information and don’t know how even to get started. Secondly, I’m not getting any feedback at any point so who knows what I’m going to drift into.

The second thing is authenticity. For each of the sites, I tried to read any recommendations they had for developers or tried to read enough of the site to get what their angle was or tried to gain some insight into who I was talking to. It just felt cold and wrong of me to just have a single email that I simply sent to everyone. However, after 8 or 9 emails, each customized version was less coherent than the original one that I had written. It really pained me that in the end, the majority of the emails were simple cut and paste jobs. I wish I knew who was receiving the emails and that I knew them better. I wish I had a decent gauge on if they’d care at all.

It was quickly approaching launch day and I hadn’t hadn’t got much of a response. I got emails from all the pay-to-review sites to see if I wanted to buy a review. I think I got a total of one promo code request from the 30 emails where I didn’t include one. Of all the sites I did include promo codes for, none of them sent back any sort of response. It’s a bit of an awkward situation. I know it’s impossible for these sites to respond to every single inbound email. Also, opening the communication channels can be dangerous sometimes, especially if you have something negative to say. If a site responded to me and said they weren’t going to review my app, I’d understand. However, I can imagine that some developers wouldn’t and would try to start an argument on why they deserve to be reviewed. The difficult thing for developer, though, is that I have no idea if they saw my email and thought it wasn’t good enough or if they just missed it in the flood of emails.

According to iTunes Connect, as of the morning of launch day, 3 of the 30 promo codes had been redeemed. At the time, I was kind of sad about it. I don’t think I was expecting a much bigger response, but part of me was hoping for one. I started thinking about what I did wrong and how I could do better next time. I regretted pushing the game back two weeks for launch day reviews since it was clear there wouldn’t be any. It was a good reality check, though. I was still very excited about having a game out on the app store, but I had accepted it was just going to be a game that I was proud of that nobody had ever heard of. Then launch day happened.

Ring Fling – Developer Diary 6 – WTF

I hope that Ring Fling straddles a strange line between ridiculously simple and what in the world is going on. The second part is definitely reinforced by the Huffington Post headline of “Ring Fling – The Most Confusing iOS Game Ever?

One of my major goals for Ring Fling was to not have a tutorial. In fact, one of my early goals was not to have any menus at all. When you tapped the Ring Fling icon, I wanted the game to start up into a 4 player game where 4 AI players were already going at it. While this would have been a bit baffling at first, I have enough faith in the human race to believe they could look at it and eventually see the “Tap to Play” text and have a go at it.

I learn by doing. I’ve never been a big fan of reading programming text books. I’d just rather try it and see where things go wrong. It’s really one of my fundamental beliefs. I’m actually in Anaheim at my parents’ house for the week. My mom isn’t too well, so I’ve stopped by to help out on my way to WWDC. My parents and I have never really seen eye to eye. In their upbringing, authority was more important than anything. You listened to your elders because they had experienced more and knew better. While I never disagreed that my parents knew more than me, I feel that always listening to authority leaves a massive gaping hole in one’s consciousness around the question why. Even if the authority fully explains why they think a particular thing should be a certain way, there’s always going to be something theoretical about it. When you’ve done something based on your own reasons and your own emotions and your own gut, when something goes right or wrong, you really feel it. It sticks with you. You grow as a person.

For this reason, modern games with modern tutorials really bother me. I worked in the social game space for 2 years and in the social game space, I feel there are some of the most condescending and useless tutorials in the history of video games. It’s gotten so far beyond teaching a player about how your game works and shifted completely to training them to do what you want. I don’t want to make games for lab rats. I want to make games that even when you evaluate them with your conscious mind, you’re happy about the experiences you had with them. I think it’s also important to appeal to the subconscious, especially in the feel of moment to moment gameplay, but I don’t want to make games that only appeal to the subconscious.

I had to give in to having a menu because I added the 2 zone board. I really kept going back and forth on this. Even a week before submitting to Apple, I was considering taking it out. The one thing that forced my hand in keeping it in was that I actually had a lot of fun playing with the 2 zone board on iPhone. I wonder if Ring Fling would have been a better game if I kept with the constraint of no menus. I guess we’ll never know.

Anyway, the thing I did succeed in was having no tutorial. Before I went to that night of pub testing, my solution for no tutorial was having no complexity. There was infinite ammo. There were no gameplay modifiers. There was no charging of shots. You would just fling rings as fast as you could. While it wasn’t a bad game, it wasn’t very interesting to work on or think about. So I wanted to make the game a little bit deeper, but had to think about how I’d train the player without a tutorial.

The first thing I focused on was creating an environment where mistakes were safe. Obviously, the main thing that helps is that it’s just a game. Nobody’s life is on the line. You don’t lose a bunch of money if you don’t play well. However, I wanted to make sure that losing wasn’t a big deal. If you didn’t do well in a round, you have a quick 3-2-1 countdown to relax and then back to action. If you lose a game, you hit OK and start a new one. There are no cutscenes or massive dialogs or stat summaries or anything. You’re two taps away from a new game.

The next thing I thought about was layering the complexity. There are only two things that you need to know in order to play the game. The first is that you swipe to fling rings. The second is that the red things are bad. So for the first one, I kind of cheated. I put in text. I also put glows on the AI players to simulate what a finger was doing. To be honest, most people I watch play figured it out even before I put either of those in. The second one was a bit more difficult. Whenever one of the jaggies goes into a zone, I pulse the increased scores. It gets across the point that there is an association between score and jaggies going into zones, but when three things flash at once, I don’t think the human mind is very good as forming the association, especially when it’s an association to something non-intuitive. I think the thing that’s less immediate but does sink it in is when you get scored on and your number doesn’t pulse. I think at a fundamental level, after seeing it pulse before and experiencing it not pulse makes you feel like you don’t like that as much as when it does pulse. I know it sounds ridiculous, but this is how I think. There are a lot of advanced mechanics that I don’t think are required to have a good time. For example, how ammo works is reasonably complex, but as long as you know that when your bar is empty, you can’t fling rings, it’s fine. The more you play, the more you’ll notice that when a ring enters your zone, that little number pulses, but it’s not critical. I also added the instruction text “Hold to Charge” after you’ve successfully flung a few rings. It goes away after you’ve successfully charged a few rings. In most games that I’ve observed, that never happens. Ha ha.

The biggest thing I had trouble with and toiled over were the modifiers. In my early build, all the gameplay modifiers were unlocked at all times. So there were already so many things going on and it was a fast-paced game and on top of that random stuff was changing behind your back. I’m glad I decided to go with random modifers rather than player activated ones, but there’s a certain WTF experience you get with randomness. The next version was to start with simple modifiers and slowly introduce more and more complex ones behind the scenes. The idea was that I wouldn’t use modifiers where you need to understand how ammo works until you probably understand how ammo works. But then the confusing part is when do modifiers unlock and why? So what I eventually ended up with was that you can unlock the modifiers by just scoring points. The more points you score, the more modifiers you unlock. It was a nice simple mechanism that allowed me to make it so that you didn’t have to think about modifiers when you first played the game and also made it clear when a new modifier was going to become active.

The last thing I spent a lot of time on for training purposes was AI. Originally, I just wrote a really stupid AI so I could take screenshots. Trying to play 4 players at once and take screenshots is not fun. I wasn’t actually thinking I was going to ship any AI players. It was designed as a 4 player game and I didn’t know if I wanted to be judged as a 1 player game. But then I saw how people responded to watching the AI. As soon as the game started, and the AI went at it, people started mimicking. Comparing the time it took people to start playing with and without AI was huge. Without the AI, people would sit there for a bit and ponder what was going on and what they should be doing. With AI, people just jumped in. So I tried to extend this idea a bit further. First, I wrote an algorithm for the AI to start leading, but then follow. What I mean by this is that at first, the AI just plays how it wants to play. As it collects data on how the player plays, though, it’ll start trying to balance itself properly. So, if the player is firing really slowly and infrequently, the AI will do the same. If the player is charging lots of rings, the AI will do the same. Also, if the player is doing very well, the AI will become a bit more aggressive and if the player is doing poorly, the AI will become a bit more passive.

I’m actually really happy with the way that the learning process in Ring Fling has gone. In the play sessions that I’ve had with co-workers at Mind Candy, people seem to get the basics without any problem. The people who have played a few times get the more advanced concepts. So yes, watching my trailer is a pretty baffling experience, but it’s a game that’s meant to be played and if you play it, things will make sense. I hope.

I think this is the last post about the actual development side of Ring Fling. I can’t wait to write about PR / Marketing and launch. If you have any questions about anything Ring Fling related or not, drop a line in the comments.

Ring Fling – Developer Diary 5 – Strategery

Ring Fling launched today! It’s very tempting to give up on the continuity of this developer diary series and just jump to launch, but I’m going to refrain from that. Firstly, I think it’ll take some time for it all to sink in with me. Today has been unbelievably awesome. I’m still trying to put into perspective the number of times things went several magnitudes more awesome than I expected. So, I’m going to stay the course and talk about balancing Ring Fling.

I walked into that pub thinking I was basically done. I had all the features in. It was fun to play. I was 90% there–or so I thought. I wasn’t even in the ballpark. I was about 12 hours into development at that point. That’s about 10% of the total time I ended up spending.

After the pub testing, I knew there were loads of changes that needed to be made. On top of the changes that I had implemented in the pub, I had a huge list of feature requests from people who I have tons of respect for. More importantly, though, I watched them play and mentally noted things that concerned me.

There were a handful of things that worried me. The input handling wasn’t quiet right. There were behaviors that I just didn’t really consider. However, there was one thing that stood out more than anything else. There was absolutely no strategy. Scoring was nearly impossible and the only viable strategy was to spam rings as hard as you could.

In fact, this reminds me of a massive regret I have about the trailer. I recorded the trailer and edited it together in a rush. I posted a blog post announcing Ring Fling and it became clear that people wanted a video. I’m much better at writing code than I am at writing English and my descriptions just weren’t cutting it. So I set up a crazy Rube Goldberg mechanism to record some gameplay and edited it together. It was the first time I had ever edited any video ever. So the massive regret that I have is that when selecting clips, I seemed to grab the most “exciting” clips, which all show me and Carly spamming rings. In actuality, as the game is currently balanced, it’s much easier to win by patiently charging and shooting fast, accurate rings rather than a spread of random small rings. At least making that insane trailer got me a mention on the Huffington Post.

Anyway, I was very concerned that there was no strategy. After that day, every feature that I added was intended to encourage players to fling rings in a less spammy way. So the first feature was actually a recommendation from Luke at the pub testing. I tried to get it in live at the pub, but messed something up and got confused. The feature was charging rings. In a very simple way, it provided a benefit to holding a ring down and not just continuously firing a stream of poorly aimed rings.

The next feature was an ammo limit. In the original version, you could fling as many rings as you wanted. The first version of an ammo limit I tried was just a refresh time. Every quarter of a second, you’d get another ring to fling. However, it ended up being a really awkward thing to balance. If you were under attack, it was no where near enough to feel like you stood a chance. You’d just feel like once people ganged up on you, it was over. Also, when you weren’t under attack, it was way more rings than you could effectively use. To find the solution I shipped with, I actually thought back to my days playing Crossfire. I remember that when someone went massively on the offense, it meant the defending player had more ball bearings to fire back. It was a very nice risk-reward balancing mechanism. So I implemented conservation of rings. If you shot a ring, you had one less ring. If a ring entered your zone, you gained an extra ring. This created a few dynamics that I really like. The first was that if you were under attack, you implicitly got more rings to defend yourself. Secondly, it emphasized accuracy in two ways. It emphasized accuracy immediately in that you had limited rings, you needed to make them count. The more advanced way it emphasized accuracy, though, is that you always wanted to get a perfect shot so that the ring would bounce back into your own zone. This is a technique much easier to pull off in 2 player than 4 player games.

The last feature toward the goal of reducing spamming was the gameplay modifiers. At first, the theory was that you’d want to fire less rings when there was no modifier active since in a few seconds, you’d get much better rings than the ones you were currently firing. This gave you a few seconds while modifiers were inactive for everyone to take a little breather. This didn’t have nearly as big an effect as I had hoped for. In fact, in a lot of games I play, people spam much harder when the gameplay modifiers are inactive since the rings are weaker. They feel like they need to fire more to make up for it. The actual effect that I observed, and was happy with, was that because the the rings were more powerful with active modifiers, it was now possible to shoot a single ring in the perfect way to score. This is especially true with the Heavy Hitters and Fast Forward modes.

Once I had these features in, I could pretty much always defeat a spammy player by choosing better tactics. While new players will always start spamming rings, as long as it’s not the best way to win, I hope that players will drift into choosing better strategies over time. It’s not to say it’s not still an intense game. It’s just that if played optimally, it’s not a completely mindless flickfest.

Ring Fling – Developer Diary 4 – Pub Testing

On the second day of development, I was feeling great about where Ring Fling had gotten and decided to see if anyone wanted to meet me down at the pub and have a go. My very kind friend, Mike Bithell, volunteered to play Ring Fling and give me some feedback. The boys from Makielab were also up for a laugh. Little did I know, that Ring Fling had gone Alpha.

Obviously, on and indie title, there are no publishers and no milestones. I was just coding along doing whatever I felt like. In the console game industry, there are 4 major milestones for a game: green light, alpha, beta, and gold. In theory, green light is when you have a “vertical slice” of the game to determine if the project is worth moving forward on or not, alpha is when the game is feature complete, beta is when all the critical bugs are fixed, and gold is when you have a party. In my experiences, though, it’s very different. Green light is when you’ve hacked together a demo that convinces that publisher that you might actually be able to finish a game. Alpha is when you’ve made the game you originally set out to make in your game design document. Beta is when you’ve changed the game you thought you were making into a game that you’d be happy to show to the public. Gold is when you send a build to your publisher and feel really awkward for a few weeks because you have no work to do, but you don’t know if you’re actually done yet.

Anyway, by my own definition, Alpha is when you’ve made the game you originally set out to make. The implication is obviously that the game you set out to make is generally not any good. There’s no real way to know that it wasn’t going to be any good, though, other than to make it and try it. Well, if you’ve had as much experience as me, it’s easy to know that it won’t be any good, but nearly impossible to know exactly what parts won’t be good and what kinds of solutions will address those problems.

So we sat down at the pub and started to play. One of the incredible things about having such talented friends is that within 10 seconds, people were demanding changes. Fully expecting this to happen, I had brought my laptop. I’d never done live coding like that before. Within about 20 minutes, we had done 10 iterations on the game. We tweaked the sizes of each of the zones. We added clearing of rings in between rounds. We limited to the number of rings you could fling. It was incredible how much better the game got after 20 minutes of tweaking.

However, it was clear that there was still a lot of work to be done. There were quite a few features that were requested that I couldn’t get done in a few minutes and I added all of those to a list. What really stood out, though, was that playing Ring Fling for 20 minutes was exhausting. There wasn’t a whole lot of strategy involved. It was just a game of speed and accuracy. While that wasn’t the end of the world, it wasn’t something I was remarkably happy with. In fact, one of my biggest regrets with the gameplay video I posted is that I didn’t show much strategy with charged shots. I was just in a rush to edit something together that I grabbed all the “exciting” parts rather than clearly demonstrating the full range of the game.

We spent the rest of the night just chatting about Ring Fling, Thomas, and Makies. I wrote down any ideas that I thought could make the game even the slightest bit more varied and strategic. Before that night, I naively thought I could have the app ready for App Store submission with another 6 hours or so, bringing the total up to 18 hours. However, after a 20 minute play session at the pub and a conversation for a few hours afterward, I knew I’d be investing a whole lot more time into Ring Fling. I had started on my path to Beta, turning this little game into something I’d be proud to release on the App Store.

Ring Fling – Developer Diary 3 – The Point

Once I had a working prototype, I knew my velocity was about to slow down. Making the transition from nothing to something can be a very fast process. It’s not always the case, but for Ring Fling, it definitely was. However, going from something to something good has never been a fast process. The next thing to figure out in Ring Fling was what the point was, specifically, how the scoring would work.

When I got started, I didn’t think much about scoring, but in the back of my mind, I had a really simple solution. In my head, every player would start with a certain number of points and when they hit zero points, they’d be knocked out of the game and the remaining players would continue until one player was left standing. It didn’t take long to get this implemented, but in about as much time as it took to program, it became clear that it was fundamentally flawed.

At the time, it was only a 4 player game. If the last two players left were on the same side, especially on the short side of the iPad, the game was effectively impossible. I wasn’t quite ready to give up on the structure quite yet so I tried a number of things. I tried removing the knocked out players from the board completely to give more space to bounce rings, but that didn’t help much. The jaggies (at the time a square) would constantly get stuck in the corner. I also implemented a mode where once it got down to 2 players, those players would shift to the opposite sides of the screen. While this solved the problem, it felt really strange. In theory, if there were 4 people sitting down and playing a game, suddenly one player would have to stand up and move. So while I didn’t move forward with that solution, the code I wrote for it made it pretty trivial to implement the 4 player board.

The next solution I tried was to have score count up. Instead of losing a point every time a jaggie is pushed into your zone, everyone else would gain a point. It definitely felt less clear than the losing point solution. It’s obviously much easier for people to associate one cause to one effect rather than one cause to three effects, but at the end of the day, it worked and the other one didn’t. One other nice upside of this solution was that nobody ever had to sit out and do nothing. I remember when I was in college, the big game was Counterstrike. One thing that prevented me from ever getting into it was that as a beginner, the majority of my time was spent sitting and waiting for a timer. Firstly, with the count up scoring, it’s not immediately obvious when it’s mathematically impossible for you to win. Especially with the frantic action, doing the math is generally not a high priority. Secondly, even if you can’t possibly win, you can still do your best to make sure your nemesis can’t either.

This is a great example of the fastest part of the iterative process. You start coding something up and you just know it isn’t going to work. Sometimes it’s simply obvious, sometimes your experience serves you well. Once you’ve worked out all the obvious stuff, though, it’s time to get some more eyes on it–or in my case, some more fingers. It was time for a play test.

Ring Fling – Developer Diary 2 – Prototyping

I had picked my game concept and I was ready to start prototyping. Well, I should have been ready to start prototyping, but mentally, I wasn’t. Starting a new project is always a little bit intimidating, but when you’ve started so many and finished none of them, there’s that much more weighing you down. I was considering just writing blog posts all day instead of starting the prototype, but Twitter shouted me down. I did end up stalling a little bit by sorting out some stuff with the NHS and taking a long walk to grab some lunch. When I got back from lunch, though, I was ready to go.

It was definitely the wrong attitude to have. It’s important with prototypes to know they might go no where. It’s just part of the process. Sometimes ideas just work out. Sometimes it’s not the right time for ideas. The most important thing, though, is to know when a prototype has failed. With my last project, there were too many variables. I had to implement a large number of things before I could even think about if the game was going to work. I wasn’t about to make the same mistake again.

Ring Fling was going to live or die by one thing–whether I could make swiping to fling feel like second nature. I’m a big fan of the physical manipulation approach for touch screen devices. I love the app Clear and have used it to track all my tasks on Ring Fling. It’s a perfect example of building a user interface that maps naturally onto physical actions we’re already accustomed to. From the get go, I decided that Ring Fling was going to be a game for everyone. I wasn’t going to make a game that only other game developers could appreciate or a game just for people who know a particular genre well. I wanted to make sure it was a game that absolutely anyone could play. I remember whenever Mark Healey was asked what the target audience for LittleBigPlanet was, he would say “people with thumbs.” I remember how many people who didn’t consider themselves gamers would perk up when I mentioned I had worked on LBP and it was something that really stuck with me.

So the first thing I prototyped was creating little squares when you swiped from the bottom left corner of the screen. I implemented the obvious version of it. It kept track of the speed of your finger and when you let go, it used that speed for the projectile. In some ways, it wasn’t far off, but in a thousand other ways, I knew I had a lot of work to do. Just as it took me many years to realize that there’s a big difference between what someone does with a control pad and what they think they’ve done on a control pad, the same holds for touch screens. For example, even when doing a steady swipe, you tend to slow down for the last few frames, even if you don’t realize it. Also, people vastly underestimate how fast they can swipe their fingers across a touch screen.

Even without rules or even an objective for the game, I was able to determine if I thought the core interaction would ever feel just right. While I did go back to the swipe code over and over throughout the project, it was absolutely key to getting it to a point where I was confident that it could be brought to shippable.

Once I felt confident that the core mechanic was going to work, I threw in all the other pieces: 3 other players, targets to shoot at, and playfield boundaries. I put in some really basic graphics and we were playing. I played a few rounds with Carly and things were feeling good. I’d put in 6 hours so far and I felt pretty confident that this was a game I’d actually ship. I had no idea exactly what the final product would look like, but I knew that at it’s core, it would feel simple and fun. That was enough to make me confident that this was going to end up being something I’d be happy to put my name to.

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.

Ring Fling Coming May 31st

I’m super excited to announce the Ring Fling has been approved by Apple and will be available on iPad, iPhone, and iPod Touch on May 31st.

I’m absolutely overflowing with excitement and pride. Ring Fling is the first game that I’ve designed, programmed, and done the art for. It was an absolutely amazing experience to have so much control over the project and I’m so happy with how it’s turned out. It’s only now starting to hit me that I’m actually going to have my own game out in the world.

I’m so thankful for all the people who have helped me make this game a reality and all the people who have been so supportive and helped me get the word out about it.