Good Advice and what to make of it

On April 23, 2011, in Good Advice, by Steffen Itterheim

If you’re reading this, I think it’s fair to assume you’re one of those developers who likes to read other developer’s blogs. If you’re anything like me, you’ve read a ton of different articles from various blogs, from very popular developers down to the “little man” just starting out with indie game development, or software development in general. A lot of these articles reveal good advice and tell a story about success, and sometimes failure. But with all these developer stories and the advice those developers give their readers, what should you make of it?

You’ll likely be asking yourself exactly this question while reading all those articles from Gamasutra all the way down to first-time-developer’s blogs.

What stops you? The back and forth!

The biggest problem with all this advice is that you may be tempted, and (as we all do) use it for rationalizing about certain decisions. If someone tells you you can’t make money on the App Store anymore, and there’s a lot of supportive evidence (eg dozens of iOS developers mentioning how little they make) – would that influence your decision not to publish a game on the App Store?

On the other side, have you been attracted to the App Store exactly because of the success stories in which iOS developers tell us how they were able to make a living off of it, and some even got rich (*) from the App Store? And then did you wonder how you could repeat that success? Later, did you think you were a fool to believe that this was even possible?

(*) rich as in: at least US $100,000 in less than a year.

So many questions, and what’s worse: to each question there are seemingly thousands of different answers. If you read a lot of developer blog posts, what you’ll learn eventually is that the best blog posts are from developers who took some advice, put it into action, tested and analyzed it and blogged about the results. This makes for very interesting posts and is advice supported by actual facts put into context. But more often than not you’ll come across another post by a different developer having taken the same advice but coming up with entirely different results. What should you make of that now?

Well, it turns out there’s only two things you can do:

Test it, or ignore it!

If you’re interested to find out if an advice works for you, you can only test it. Speculate and rationalize about it all you want, without applying the advice you’ll never know. And without some metrics it’ll be hard to figure out how much that particular advice helped your game to greater success. Particularly the metrics part was never something I was too keen on doing or monitoring. For my blogs I used the least possible amount of measure points, a bit of google analytics here and whatever stats I am provided with by my eCommerce vendor or iTunes Connect.

If you have the same disinterest about measuring the actual success of your website and product sales and marketing efforts, you can get away with the bare minimum too. As for making games, you should just make the game you love, for the platform you love developing for, and do everything the way you want to ignoring other developer’s advice entirely.

Some might say this may be dumb advice, but interestingly, if so much of a particular advice is subjective and works out differently for different developers, the best you can do for your game and with your time is to ignore that advice and find your own way. I suppose that most indie game developers’ biggest problem is actually finishing a game in the first place. Reading conflicting opinion pieces about game development and business can only lead to one thing:

Confusion with a chance of stagnation

Easy answers may or may not be not inexistent. But what’s for sure is that if you can’t make heads or tails out of a situation, your mind won’t stop thinking about this unresolved issue. It just keeps going at it. Should you better do A or rather go along with B? Both have their advantages and disadvantages. This is so difficult.

Did you ever catch yourself in this kind of thinking? Not knowing about something you are about to do or are in the middle of it, and not knowing the results and not even having any grounds to base your decisions on other than other people’s experiences, how could you possible decide which option is best for you?

The answer is: you don’t!

You just have to make a decision – any decision really – and the decisions you’ll feel most confident about come naturally. The stomach feeling. Your first reaction when confronted with a difficult choice. The first answer is the best when there’s no obvious choice. Always! Even the unreasonable choice. Why?

It’s the decision that’s right for you that’s right

That’s basically it. You just listen to your inner voice and it’ll guide you through the decisions that are too context-sensitive, so to speak. By that I mean if some piece of advice, the way to go, or any life decision for that matter – depends on a lot of variables of which most are outside your control and/or very specific to your life, your experience, your situation – then the best decision is the one that just feels right for you. And that’s almost always the gut-feeling reaction you have when confronted with a choice.

This has one big advantage: you’ll feel good about your decision, because you own it! And confidence in a decision is actually more important than which of the options you decided to do.

But alas, we humans are suckers for easy answers. We go through a lot to be able to get an easy answer, or even just to believe we found it. That’s why religion is so popular, it gives easy answers to complex and unsolvable questions. Conspiracy theories work in a similar fashion because they allow us to simply ignore the facts and allow us to accept the answers that we prefer to believe as true. Then we’ll find the evidence to support that believe. Simple and beautiful.

We want the feeling of confidence that a particular decision is the right one before acting on it. But unlike religion and thanks to the Internet we end up finding so many varying results and we lose the confidence to decide naturally what’s best for us. Too bad the bible doesn’t have the answer for us, nor does Roswell or the 9/11 inside job.

Against all odds

If 80% of the opinions and data on the Internet tell us to do one thing with our game to be able to make a living off of it, but that’s exactly something you have a bad feeling about – then you shouldn’t do it. Free yourself from thinking that that’s something you have to do (*) to be successful. That is never true.

(*) About the only things we really, really have to do are breathe, eat and drink. Everything else is entirely optional. Even fucking.

You can’t do something right if that’s not what you want to do, and you’ll feel much better about your game by not doing it, which in turn is likely going to make the game better. For example, many developers have a strong aversion against offering microtransactions in their games. If you’re one of them, ignore the advice to use microtransactions as the money-printing method and just don’t use them.

You can rest confident that if you added microtransactions without embracing them fully, you are likely not going to make much money off of it anyway. Because you think they suck the money right out of your gamers pockets – and then that’s what you’ll end up doing, and you’ll end up feeling terrible about doing it! You might even get rich financially against all odds but even then you’ll lose some of your spirit, something that makes you, well, you.

What is success, anyway?

While you’re at it, you might also want to reconsider your definition of success. What do you really want to achieve? Without a clear goal for life, everything you do is prone to fail anyway. Do you really want to get rich? Or would you rather redefine rich as in: earning enough money to support yourself and your family while working less than 40 hours per month? Richness in time vs. richness in money. You can achieve the latter and not have the former, and vice versa. Think about it.

Why is it so important to know your life’s goal? Because it puts everything in context and guides you through the difficult decisions that could go either way. If given the option to work on a dull, boring and time-consuming job for 6 months but with great pay – would you do it if your life’s goal is to spend as much time as possible with your family? Would you do it if your life’s goal is to be creative and define your own destiny? Even if your goal is to get rich quick – would this job be the right choice for you and get you closer to your goal? Think about that, too.

In essence

If you can’t decide, ask yourself how you would decide if you just did this for yourself. That’s going to be the right answer. After that you can google the web and read through the conflicting opinions if you want, but unless there’s a clear indication that what you’re going to do is going to spell doom and failure – like making a porn app for the App Store (*) – you should just do what you feel is right. And do it with confidence.

If you do love porn so much and making the perfect porn app is your calling, let me tell you that the problem isn’t the porn, it’s the App Store! Once you realize that there are always other options, you’ll find other ways to succeed.

Interestingly, I’ve seen the oddest things happening when following your gut instinct against all odds and reason. There is this former colleague of mine who wants to re-engineer mathematics (website in german). He wrote a series of articles about his new way of doing mathematics with lots of tables and new definitions for multiplication and division to get rid of, among other things, the “division by zero” conundrum. On first and second sight it is probably the dumbest thing to do, right after suicide. But somehow it was also fascinating, and spawned an ongoing discussion and actually had me think about how the basics of our mathematics work. At the very least I realized just how much we take for granted without actually knowing too much about it. On the other hand, if you don’t know much about something, you probably shouldn’t try to re-invent it either.

The point is: you don’t always get the results you want, but you’re certainly going to get something of note if you follow your gut instincts and remain confident in your decisions and be involved with what you do. This is how the most exciting things get made. And exciting tends to attract more attention from others. What you do with this attention is up to you. And I’m sure you can do better than reinventing the wheel. Or mathematics, for that matter.

Tagged with:  

I’ve learned a lot about iPhone game programming, cocos2d for iPhone and Xcode, Objective-C and the Mac OS in the past year. I want to share my knowledge pertaining to cocos2d in specific and iPhone game development in general. I’ve created a completely new website dedicated to cocos2d over the last 2 weeks:

I made a 90+ (!) pages Tutorial about how to setup an Xcode project for professional work, including cross-referencing the cocos2d project, optimizing the build settings and adding targets for all platforms and purposes (eg debugging crashes). You can view the tutorial on my website or download it as PDF!

Since after 10 years in the game industry i’ve specialized in iPhone Game Development using cocos2d for iPhone i will always have something to say or add to this website. Let me know what you think and if you like it, please tweet it and recommend it to your peers, thank you!

Tagged with:  

Follow 1,300+ iPhone Developer Twitter users at once!

On March 24, 2010, in Good Advice, by Steffen Itterheim

Tim Haines started a Google Spreadsheet project that currently lists nearly 1,300 iPhone developers. If you want to get in on the fun, you can add yourself to the list.

Now, you might wonder, how the hell does that help me? Click on 1,300 links and follow them? No, you don’t have to that extraordinary task all by yourself! That’s what interns are for. Or even better: scripts.

David Clements wrote a Ruby script that will make you follow all the Twitterers on that list. Here’s the original blog post by David Clements.

To run the Ruby script, be not afraid as Mac OS X users already have Ruby installed. I had no previous Ruby experience and even managed to fix the script, so with my instructions you should be fine. Just open the and enter the following commands to download and install the Google Spreadsheet and Twitter gems for Ruby. Make sure you give each command a while to proceed, it may not seem to respond but eventually it will but it can take several seconds before you see any output. That’s normal.

Install Google Spreadsheet Ruby Gem:

gem sources -a
sudo gem install google-spreadsheet-ruby

Install Twitter Ruby Gem:

sudo gem install twitter

Now, download or copy & paste the iPhone Developer Twitter Auto-Follow script and save it to your HD. In switch to that folder but wait, you can’t run it just yet. Open it in any text editor and enter your Google account username and password as well as your Twitter username and password into the variables that are set to “XXXXXX”.

Now remain two little changes to the script since the Twitter Gem has changed and broke compatibility. So we need to fix it as i described in the only issue for that script.

Locate this line:

base =, twitter_pw)

… and replace it with these two lines:

httpauth =, twitter_pw)
base =

And then go look for this line:


… and replace it with this one:

base.friendship_create(matched_user, true)

If you want to follow everyone at once make sure you increase the number of iterations from 1,000 to something higher as there are currently almost 1,300 Twitterers in the list. The script says you should try to follow only few people at a time but that just seemed tedious to me and really, Twitter should be able to handle it. So i went ahead and followed everyone at once. I haven’t been punished by Twitter for it, meaning my account hasn’t been “suspended due to strange activity”. 😉

Now, still in make sure you’re in the same folder where you have saved the ruby script (let’s call it “”) and enter:


This script will run for many minutes so give it time. It should show repeated “Attempting to follow …” messages followed by “success” if everything is alright.

Of course, you can always follow me on Twitter directly and i’d be happy about that!

Tagged with: