I just recently started using the Nexus7 I got at Google IO in earnest and thought I have a go at some 3D games. After continuously failing to download the larger than 1GB racing game I bought on the Android market I thought I’d go lower and got myself Running Fred, a very addictive running game recommended for players of Cannabalt. I installed, started and almost instantly sucked at the game.
Must be bad developers
And then I did what every developer seems to be hardwired to do: I started blaming the game, well, actually the game developers. I blamed that the game crashes a lot. I blamed that Google Now! opens up when I swipe over the bottom of the screen and I get killed as soon as I go back to the game. I blamed that 3D objects don’t appear smoothly but as a surprise at times.
All of this made me think the developers of the game are bad, or – the more evil version – that this is yet another “free” Android game that only becomes playable when you fork out money to buy upgrades to your character or skills. It seemed to me that the prices of those things are ridiculously high to reach just by playing the game.
Dealing with it
What didn’t occur to me for a long time was the simple fact that I was bad at the game and that it will take some learning for me to improve. I was too impatient. Now that I gritted my teeth and played the game a few times I don’t open up Google Now any longer as I realised you tap to jump and not swipe up like you do in Temple Run. I also breeze through the lower levels and manage to collect money to get better skills as I remember where the traps are and I am more confident in my game character’s abilities. I learned when to jump and when to double jump, how to tilt my device to go left and right and not accidentally use up expensive special skills by tilting too much. In other words: I know how to play the game and the longer I do it the more fun it is.
Some great reward
Of course I could have bought the upgrades and all the stuff up-front, too, but I am sure that if I had “cheated” that way I’d have lost interest in the game much sooner. Making the rewards less attainable can be a great motivator to make you try harder. This article How We Use In-Game Purchases To Teach Our Son Personal Responsibility explains how that can work with kids.
Play the game, not the blame game
Now what did I learn today? That having knowledge about something can make you very much a grumpy bastard who starts pointing fingers instead of having a go.
So next time I get the “this should be so much better, I know how to do it” feeling about a web product or idea, I will hold myself back more and have a play with it rather than being the first to dismiss it. Being clever in hindsight is simple, rolling out the product in the first place much harder and comes with a lot of deterrents that a quick “meh this sucks” could not even know about.
I also learned that impatience and trying to find the simple way out does get you some satisfaction but robs you of the longer term fun experience.
This is harder and I think it is the main reason for a lot of abstraction taking place. “CSS has no variables and mixins? Damn the standards body, they will never get to grips with that! Let’s build a preprocessor and a library and call the problem solved instead!”
In the short term, yes, this will help us to deliver things. In the long run, not so much as we fill the heads of new developers with syntax of an abstraction layer rather than what comes with browsers. And no, “browsers just need to adopt that syntax then” doesn’t work as upon more advanced analysis a lot of “great and quick solutions” fail to cover a lot of use cases.
Let’s not allow the – in a lot of cases perceived rather than real – need to deliver quickly stop us from creating great products build from maintained and solid parts rather than a quick stop-gap that will never be replaced later on. We owe it to us to learn whilst we work and we owe it to our clients and their users to build products that show the love that went into them.
View full post on Christian Heilmann